From b3c1f817856b1bd50798a764a9e1e9937e98b6f0 Mon Sep 17 00:00:00 2001 From: Ian VanSchooten Date: Fri, 12 Aug 2022 23:25:36 -0400 Subject: [PATCH 01/62] Move builder-vite files into monorepo They're copied mostly straight, as-is from their old versions. Adjustments will be made in subsequent commits. --- code/.vscode/settings.json | 3 + code/lib/builder-vite/README.md | 225 ++++++++++++++++++ code/lib/builder-vite/package.json | 50 ++++ code/lib/builder-vite/src/build.ts | 32 +++ .../builder-vite/src/code-generator-plugin.ts | 132 ++++++++++ code/lib/builder-vite/src/codegen-entries.ts | 43 ++++ .../builder-vite/src/codegen-iframe-script.ts | 110 +++++++++ .../src/codegen-importfn-script.ts | 56 +++++ .../src/codegen-modern-iframe-script.ts | 68 ++++++ .../src/codegen-set-addon-channel.ts | 18 ++ .../src/declarations/extract-stories.d.ts | 18 ++ .../declarations/svetle-stories-loader.d.ts | 7 + code/lib/builder-vite/src/envs.ts | 50 ++++ code/lib/builder-vite/src/index.ts | 82 +++++++ .../src/inject-export-order-plugin.ts | 29 +++ code/lib/builder-vite/src/input/iframe.html | 29 +++ .../src/input/react-dom-client-placeholder.js | 3 + code/lib/builder-vite/src/list-stories.ts | 20 ++ code/lib/builder-vite/src/optimizeDeps.ts | 125 ++++++++++ .../docgen-handlers/actualNameHandler.ts | 46 ++++ .../builder-vite/src/plugins/mdx-plugin.ts | 75 ++++++ code/lib/builder-vite/src/plugins/no-fouc.ts | 54 +++++ .../builder-vite/src/plugins/react-docgen.ts | 66 +++++ .../builder-vite/src/plugins/svelte-docgen.ts | 97 ++++++++ .../builder-vite/src/plugins/vue-docgen.ts | 23 ++ .../builder-vite/src/source-loader-plugin.ts | 96 ++++++++ .../lib/builder-vite/src/svelte/csf-plugin.ts | 52 ++++ .../builder-vite/src/transform-iframe-html.ts | 36 +++ .../builder-vite/src/types/envs-raw.type.ts | 1 + .../src/types/extended-options.type.ts | 9 + code/lib/builder-vite/src/types/index.ts | 2 + .../builder-vite/src/types/react-docgen.d.ts | 22 ++ .../src/utils/transform-abs-path.ts | 11 + .../builder-vite/src/virtual-file-names.ts | 4 + code/lib/builder-vite/src/vite-config.ts | 199 ++++++++++++++++ code/lib/builder-vite/src/vite-server.ts | 41 ++++ code/lib/builder-vite/tsconfig.json | 19 ++ 37 files changed, 1953 insertions(+) create mode 100644 code/.vscode/settings.json create mode 100644 code/lib/builder-vite/README.md create mode 100644 code/lib/builder-vite/package.json create mode 100644 code/lib/builder-vite/src/build.ts create mode 100644 code/lib/builder-vite/src/code-generator-plugin.ts create mode 100644 code/lib/builder-vite/src/codegen-entries.ts create mode 100644 code/lib/builder-vite/src/codegen-iframe-script.ts create mode 100644 code/lib/builder-vite/src/codegen-importfn-script.ts create mode 100644 code/lib/builder-vite/src/codegen-modern-iframe-script.ts create mode 100644 code/lib/builder-vite/src/codegen-set-addon-channel.ts create mode 100644 code/lib/builder-vite/src/declarations/extract-stories.d.ts create mode 100644 code/lib/builder-vite/src/declarations/svetle-stories-loader.d.ts create mode 100644 code/lib/builder-vite/src/envs.ts create mode 100644 code/lib/builder-vite/src/index.ts create mode 100644 code/lib/builder-vite/src/inject-export-order-plugin.ts create mode 100644 code/lib/builder-vite/src/input/iframe.html create mode 100644 code/lib/builder-vite/src/input/react-dom-client-placeholder.js create mode 100644 code/lib/builder-vite/src/list-stories.ts create mode 100644 code/lib/builder-vite/src/optimizeDeps.ts create mode 100644 code/lib/builder-vite/src/plugins/docgen-handlers/actualNameHandler.ts create mode 100644 code/lib/builder-vite/src/plugins/mdx-plugin.ts create mode 100644 code/lib/builder-vite/src/plugins/no-fouc.ts create mode 100644 code/lib/builder-vite/src/plugins/react-docgen.ts create mode 100644 code/lib/builder-vite/src/plugins/svelte-docgen.ts create mode 100644 code/lib/builder-vite/src/plugins/vue-docgen.ts create mode 100644 code/lib/builder-vite/src/source-loader-plugin.ts create mode 100644 code/lib/builder-vite/src/svelte/csf-plugin.ts create mode 100644 code/lib/builder-vite/src/transform-iframe-html.ts create mode 100644 code/lib/builder-vite/src/types/envs-raw.type.ts create mode 100644 code/lib/builder-vite/src/types/extended-options.type.ts create mode 100644 code/lib/builder-vite/src/types/index.ts create mode 100644 code/lib/builder-vite/src/types/react-docgen.d.ts create mode 100644 code/lib/builder-vite/src/utils/transform-abs-path.ts create mode 100644 code/lib/builder-vite/src/virtual-file-names.ts create mode 100644 code/lib/builder-vite/src/vite-config.ts create mode 100644 code/lib/builder-vite/src/vite-server.ts create mode 100644 code/lib/builder-vite/tsconfig.json diff --git a/code/.vscode/settings.json b/code/.vscode/settings.json new file mode 100644 index 000000000000..25fa6215fdd3 --- /dev/null +++ b/code/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "typescript.tsdk": "node_modules/typescript/lib" +} diff --git a/code/lib/builder-vite/README.md b/code/lib/builder-vite/README.md new file mode 100644 index 000000000000..88d077113f2d --- /dev/null +++ b/code/lib/builder-vite/README.md @@ -0,0 +1,225 @@ +# Storybook builder for Vite + +Build your stories with [vite](https://vitejs.dev/) for fast startup times and near-instant HMR. + +# Table of Contents + +- [Migration from storybook-builder-vite](#migration-from-storybook-builder-vite) +- [Installation](#installation) +- [Usage](#usage) + - [Getting started with Vite and Storybook (on a new project)](#getting-started-with-vite-and-storybook-on-a-new-project) + - [Migration from webpack / CRA](#migration-from-webpack--cra) + - [Customize Vite config](#customize-vite-config) + - [Svelte Customization](#svelte-customization) + - [TypeScript](#typescript) + - [React Docgen](#react-docgen) + - [Note about working directory](#note-about-working-directory) +- [Known issues](#known-issues) +- [Contributing](#contributing) + - [About this codebase](#about-this-codebase) + +## Migration from storybook-builder-vite + +This project has moved from `storybook-builder-vite` to `@storybook/builder-vite` as part of a larger effort to improve Vite support in Storybook. To automatically migrate your existing project, you can run + +```bash +npx sb@next automigrate +``` + +To manually migrate: + +1. Remove `storybook-builder-vite` from your `package.json` dependencies +2. Install `@storybook/builder-vite` +3. Update your `core.builder` setting in `.storybook/main.js` to `@storybook/builder-vite`. + +## Installation + +Requirements: + +- Vite 3.0 or newer (for Vite v2 (2.5+), use `@storybook/builder-vite@0.1.x`) +- Storybook 6.4.0 or newer (for storybook 6.3, use `storybook-builder-vite@0.1.16`) + +```bash +npm install @storybook/builder-vite --save-dev +``` + +or + +```bash +yarn add --dev @storybook/builder-vite +``` + +or + +```bash +pnpm add --save-dev @storybook/builder-vite +``` + +Note: when using `pnpm`, you may need to enable [shamefully-hoist](https://pnpm.io/npmrc#shamefully-hoist), until https://github.com/storybookjs/builder-vite/issues/55 can be fixed. + +## Usage + +In your `main.js` configuration file, +set `core: { builder: "@storybook/builder-vite" }`. + +> For autoreload of react stories to work, they need to have a `.stories.tsx` or `.stories.jsx` file suffix. +> See also [#53](https://github.com/storybookjs/builder-vite/pull/53) + +The builder supports both development mode in Storybook, and building a static production version. + +### Getting started with Vite and Storybook (on a new project) + +See https://vitejs.dev/guide/#scaffolding-your-first-vite-project, + +``` +npm create vite@latest # follow the prompts +npx sb init --builder @storybook/builder-vite && npm run storybook +``` + +### Migration from webpack / CRA + +1. Install `vite` and `@storybook/builder-vite` +2. Remove any explicit project dependencies on `webpack`, `react-scripts`, and any other webpack plugins or loaders. +3. If you were previously using `@storybook/manager-webpack5`, you'll need to remove it, since currently the vite builder only works with `manager-webpack4`, which is the default and does not need to be installed manually. Also remove `@storybook/builder-webpack5` or `@storybook/builder-webpack4` if they are installed. +4. Set `core: { builder: "@storybook/builder-vite" }` in your `.storybook/main.js` file. +5. Remove storybook webpack cache (`rm -rf node_modules/.cache`) +6. Update your `/public/index.html` file for vite (be sure there are no `%PUBLIC_URL%` inside it, which is a CRA variable) +7. Be sure that any files containing JSX syntax use a `.jsx` or `.tsx` file extension, which [vite requires](https://vitejs.dev/guide/features.html#jsx). This includes `.storybook/preview.jsx` if it contains JSX syntax. +8. If you are using `@storybook/addon-interactions`, for now you'll need to add a [workaround](https://github.com/storybookjs/storybook/issues/18399) for jest-mock relying on the node `global` variable by creating a `.storybook/preview-head.html` file containing the following: + +```html + +``` + +9. Start up your storybook using the same `yarn storybook` or `npm run storybook` commands you are used to. + +For other details about the differences between vite and webpack projects, be sure to read through the [vite documentation](https://vitejs.dev/). + +### Customize Vite config + +The builder will _not_ read your `vite.config.js` file by default. + +In `.storybook/main.js` (or whatever your Storybook config file is named) +you can override the Vite config: + +```javascript +// use `mergeConfig` to recursively merge Vite options +const { mergeConfig } = require('vite'); + +module.exports = { + async viteFinal(config, { configType }) { + // return the customized config + return mergeConfig(config, { + // customize the Vite config here + resolve: { + alias: { foo: 'bar' }, + }, + }); + }, + // ... other options here +}; +``` + +The `viteFinal` function will give you `config` which is +the builder's own Vite config. You can tweak this as you want, +for example to set up aliases, add new plugins etc. + +The `configType` variable will be either `"DEVELOPMENT"` or `"PRODUCTION"`. + +The function should return the updated Vite configuration. + +### Svelte Customization + +When using this builder with Svelte, your `.storybook/main.js` (or equivalent) +can contain a `svelteOptions` object to pass custom options to +[`vite-plugin-svelte`](https://github.com/sveltejs/vite-plugin-svelte/tree/main/packages/vite-plugin-svelte): + +```javascript +const preprocess = require('svelte-preprocess'); + +module.exports = { + svelteOptions: { + preprocess: preprocess({ + typescript: true, + postcss: true, + sourceMap: true, + }), + }, +}; +``` + +### TypeScript + +Configure your `.storybook/main.ts` to use TypeScript: + +```typescript +import type { StorybookViteConfig } from '@storybook/builder-vite'; + +const config: StorybookViteConfig = { + // other storybook options..., + async viteFinal(config, options) { + // modify and return config + }, +}; + +export default config; +``` + +Or alternatively, you can use named exports: + +```typescript +import type { ViteFinal } from '@storybook/builder-vite'; + +export const viteFinal: ViteFinal = async (config, options) => { + // modify and return config +}; +``` + +See [Customize Vite config](#customize-vite-config) for details about using `viteFinal`. + +### React Docgen + +Docgen is used in Storybook to populate the props table in docs view, the controls panel, and for several other addons. Docgen is supported in vue and react, and there are two docgen options when using react, `react-docgen` and `react-docgen-typescript`. You can learn more about the pros/cons of each in [this gist](https://gist.github.com/shilman/036313ffa3af52ca986b375d90ea46b0). By default, if we find a `typescript` dependency in your `package.json` file, we will assume you're using typescript and will choose `react-docgen-typescript`. You can change this by setting the `typescript.reactDocgen` option in your `.storybook/main.js` file: + +```javascript +module.exports = { + typescript: { + reactDocgen: 'react-docgen` + } +} +``` + +If you're using TypeScript, we encourage you to experiment and see which option works better for your project. + +### Note about working directory + +The builder will by default enable Vite's [server.fs.strict](https://vitejs.dev/config/#server-fs-strict) +option, for increased security. The default project `root` is set to the parent directory of the +storybook configuration directory. This can be overridden in viteFinal. + +## Known issues + +- HMR: saving a story file does not hot-module-reload, a full reload happens instead. HMR works correctly when saving component files. + +## Contributing + +The Vite builder cannot build itself. +Are you willing to contribute? We are especially looking for vue and svelte experts, as the current maintainers are react users. + +https://github.com/storybookjs/builder-vite/issues/11 + +Have a look at the GitHub issues for known bugs. If you find any new bugs, +feel free to create an issue or send a pull request! + +Please read the [How to contribute](/CONTRIBUTING.md) guide. + +### About this codebase + +The code is a monorepo with the core `@storybook/builder-vite` package, +and examples (like `examples/react`) to test the builder implementation. + +Similar to the main storybook monorepo, you need yarn to develop this builder, because the project is organized as yarn workspaces. +This lets you write new code in the core builder package, and instantly use them from +the example packages. diff --git a/code/lib/builder-vite/package.json b/code/lib/builder-vite/package.json new file mode 100644 index 000000000000..086d7f0c61b2 --- /dev/null +++ b/code/lib/builder-vite/package.json @@ -0,0 +1,50 @@ +{ + "name": "@storybook/builder-vite", + "version": "0.2.2", + "description": "A plugin to run and build Storybooks with Vite", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "author": "Eirik Sletteberg", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/storybookjs/builder-vite.git", + "directory": "packages/builder-vite" + }, + "homepage": "https://github.com/storybookjs/builder-vite/#readme", + "dependencies": { + "@joshwooding/vite-plugin-react-docgen-typescript": "0.0.5", + "@storybook/core-common": "^6.4.3", + "@storybook/mdx1-csf": "^0.0.4", + "@storybook/node-logger": "^6.4.3", + "@storybook/source-loader": "^6.4.3", + "@vitejs/plugin-react": "^2.0.0", + "ast-types": "^0.14.2", + "es-module-lexer": "^0.9.3", + "glob": "^7.2.0", + "glob-promise": "^4.2.0", + "magic-string": "^0.26.1", + "react-docgen": "^6.0.0-alpha.0", + "slash": "^3.0.0", + "sveltedoc-parser": "^4.2.1" + }, + "devDependencies": { + "@storybook/mdx2-csf": "^0.0.3", + "@sveltejs/vite-plugin-svelte": "^1.0.0", + "@types/express": "^4.17.13", + "@types/node": "^17.0.23", + "vue-docgen-api": "^4.40.0" + }, + "peerDependencies": { + "@storybook/mdx2-csf": "^0.0.3", + "vite": ">= 3.0.0" + }, + "peerDependenciesMeta": { + "@storybook/mdx2-csf": { + "optional": true + } + }, + "publishConfig": { + "access": "public" + } +} diff --git a/code/lib/builder-vite/src/build.ts b/code/lib/builder-vite/src/build.ts new file mode 100644 index 000000000000..d0a36401fc7f --- /dev/null +++ b/code/lib/builder-vite/src/build.ts @@ -0,0 +1,32 @@ +import { build as viteBuild } from 'vite'; +import { stringifyProcessEnvs } from './envs'; +import { commonConfig } from './vite-config'; + +import type { EnvsRaw, ExtendedOptions } from './types'; + +export async function build(options: ExtendedOptions) { + const { presets } = options; + + const baseConfig = await commonConfig(options, 'build'); + const config = { + ...baseConfig, + build: { + outDir: options.outputDir, + emptyOutDir: false, // do not clean before running Vite build - Storybook has already added assets in there! + sourcemap: true, + }, + }; + + const finalConfig = await presets.apply('viteFinal', config, options); + + const envsRaw = await presets.apply>('env'); + // Stringify env variables after getting `envPrefix` from the final config + const envs = stringifyProcessEnvs(envsRaw, finalConfig.envPrefix); + // Update `define` + finalConfig.define = { + ...finalConfig.define, + ...envs, + }; + + await viteBuild(finalConfig); +} diff --git a/code/lib/builder-vite/src/code-generator-plugin.ts b/code/lib/builder-vite/src/code-generator-plugin.ts new file mode 100644 index 000000000000..753cce7a5fa3 --- /dev/null +++ b/code/lib/builder-vite/src/code-generator-plugin.ts @@ -0,0 +1,132 @@ +import * as fs from 'fs'; +import * as path from 'path'; +import { mergeConfig } from 'vite'; +import { transformIframeHtml } from './transform-iframe-html'; +import { generateIframeScriptCode } from './codegen-iframe-script'; +import { generateModernIframeScriptCode } from './codegen-modern-iframe-script'; +import { generateImportFnScriptCode } from './codegen-importfn-script'; +import { generateVirtualStoryEntryCode, generatePreviewEntryCode } from './codegen-entries'; +import { generateAddonSetupCode } from './codegen-set-addon-channel'; + +import type { Plugin } from 'vite'; +import type { ExtendedOptions } from './types'; + +import { virtualAddonSetupFile, virtualFileId, virtualPreviewFile, virtualStoriesFile } from './virtual-file-names'; + +export function codeGeneratorPlugin(options: ExtendedOptions): Plugin { + const iframePath = path.resolve(__dirname, '..', 'input', 'iframe.html'); + let iframeId: string; + + // noinspection JSUnusedGlobalSymbols + return { + name: 'storybook-vite-code-generator-plugin', + enforce: 'pre', + configureServer(server) { + // invalidate the whole vite-app.js script on every file change. + // (this might be a little too aggressive?) + server.watcher.on('change', () => { + const appModule = server.moduleGraph.getModuleById(virtualFileId); + if (appModule) { + server.moduleGraph.invalidateModule(appModule); + } + const storiesModule = server.moduleGraph.getModuleById(virtualStoriesFile); + if (storiesModule) { + server.moduleGraph.invalidateModule(storiesModule); + } + }); + + // Adding new story files is not covered by the change event above. So we need to detect this and trigger + // HMR to update the importFn. + server.watcher.on('add', (path) => { + // TODO maybe use the stories declaration in main + if (/\.stories\.([tj])sx?$/.test(path) || /\.(story|stories).mdx$/.test(path)) { + // We need to emit a change event to trigger HMR + server.watcher.emit('change', virtualStoriesFile); + } + }); + }, + config(config, { command }) { + // If we are building the static distribution, add iframe.html as an entry. + // In development mode, it's not an entry - instead, we use an express middleware + // to serve iframe.html. The reason is that Vite's dev server (at the time of writing) + // does not support virtual files as entry points. + if (command === 'build') { + if (!config.build) { + config.build = {}; + } + config.build.rollupOptions = { + ...config.build.rollupOptions, + input: iframePath, + }; + } + + // Detect if react 18 is installed. If not, alias it to a virtual placeholder file. + try { + require.resolve('react-dom/client', { paths: [config.root || process.cwd()] }); + } catch (e) { + if (isNodeError(e) && e.code === 'MODULE_NOT_FOUND') { + config.resolve = mergeConfig(config.resolve ?? {}, { + alias: { + 'react-dom/client': path.resolve(__dirname, '..', 'input', 'react-dom-client-placeholder.js'), + }, + }); + } + } + }, + configResolved(config) { + iframeId = `${config.root}/iframe.html`; + }, + resolveId(source) { + if (source === virtualFileId) { + return virtualFileId; + } else if (source === iframePath) { + return iframeId; + } else if (source === virtualStoriesFile) { + return virtualStoriesFile; + } else if (source === virtualPreviewFile) { + return virtualPreviewFile; + } else if (source === virtualAddonSetupFile) { + return virtualAddonSetupFile; + } + }, + async load(id) { + const storyStoreV7 = options.features?.storyStoreV7; + if (id === virtualStoriesFile) { + if (storyStoreV7) { + return generateImportFnScriptCode(options); + } else { + return generateVirtualStoryEntryCode(options); + } + } + + if (id === virtualAddonSetupFile) { + return generateAddonSetupCode(); + } + + if (id === virtualPreviewFile && !storyStoreV7) { + return generatePreviewEntryCode(options); + } + + if (id === virtualFileId) { + if (storyStoreV7) { + return generateModernIframeScriptCode(options); + } else { + return generateIframeScriptCode(options); + } + } + + if (id === iframeId) { + return fs.readFileSync(path.resolve(__dirname, '..', 'input', 'iframe.html'), 'utf-8'); + } + }, + async transformIndexHtml(html, ctx) { + if (ctx.path !== '/iframe.html') { + return; + } + return transformIframeHtml(html, options); + }, + }; +} + +// Refines an error received from 'catch' to be a NodeJS exception +const isNodeError = (error: unknown): error is NodeJS.ErrnoException => error instanceof Error; diff --git a/code/lib/builder-vite/src/codegen-entries.ts b/code/lib/builder-vite/src/codegen-entries.ts new file mode 100644 index 000000000000..7cdbb0eb4c8d --- /dev/null +++ b/code/lib/builder-vite/src/codegen-entries.ts @@ -0,0 +1,43 @@ +import { loadPreviewOrConfigFile } from '@storybook/core-common'; +import type { Options } from '@storybook/core-common'; +import slash from 'slash'; +import { normalizePath } from 'vite'; +import type { ExtendedOptions } from './types'; +import { listStories } from './list-stories'; + +const absoluteFilesToImport = (files: string[], name: string) => + files.map((el, i) => `import ${name ? `* as ${name}_${i} from ` : ''}'/@fs/${normalizePath(el)}'`).join('\n'); + +export async function generateVirtualStoryEntryCode(options: ExtendedOptions) { + const storyEntries = await listStories(options); + const resolveMap = storyEntries.reduce>( + (prev, entry) => ({ ...prev, [entry]: entry.replace(slash(process.cwd()), '.') }), + {} + ); + const modules = storyEntries.map((entry, i) => `${JSON.stringify(entry)}: story_${i}`).join(','); + + return ` + ${absoluteFilesToImport(storyEntries, 'story')} + + function loadable(key) { + return {${modules}}[key]; + } + + Object.assign(loadable, { + keys: () => (${JSON.stringify(Object.keys(resolveMap))}), + resolve: (key) => (${JSON.stringify(resolveMap)}[key]) + }); + + export function configStories(configure) { + configure(loadable, { hot: import.meta.hot }, false); + } + `.trim(); +} + +export async function generatePreviewEntryCode({ configDir }: Options) { + const previewFile = loadPreviewOrConfigFile({ configDir }); + if (!previewFile) return ''; + + return `import * as preview from '${slash(previewFile)}'; + export default preview;`; +} diff --git a/code/lib/builder-vite/src/codegen-iframe-script.ts b/code/lib/builder-vite/src/codegen-iframe-script.ts new file mode 100644 index 000000000000..0e181ab2d5a5 --- /dev/null +++ b/code/lib/builder-vite/src/codegen-iframe-script.ts @@ -0,0 +1,110 @@ +import { virtualPreviewFile, virtualStoriesFile } from './virtual-file-names'; +import { transformAbsPath } from './utils/transform-abs-path'; +import type { ExtendedOptions } from './types'; + +export async function generateIframeScriptCode(options: ExtendedOptions) { + const { presets, frameworkPath, framework } = options; + const frameworkImportPath = frameworkPath || `@storybook/${framework}`; + + const presetEntries = await presets.apply('config', [], options); + const configEntries = [...presetEntries].filter(Boolean); + + const absoluteFilesToImport = (files: string[], name: string) => + files.map((el, i) => `import ${name ? `* as ${name}_${i} from ` : ''}'${transformAbsPath(el)}'`).join('\n'); + + const importArray = (name: string, length: number) => new Array(length).fill(0).map((_, i) => `${name}_${i}`); + + // noinspection UnnecessaryLocalVariableJS + /** @todo Inline variable and remove `noinspection` */ + // language=JavaScript + const code = ` + // Ensure that the client API is initialized by the framework before any other iframe code + // is loaded. That way our client-apis can assume the existence of the API+store + import { configure } from '${frameworkImportPath}'; + + import * as clientApi from "@storybook/client-api"; + import { logger } from '@storybook/client-logger'; + ${absoluteFilesToImport(configEntries, 'config')} + import * as preview from '${virtualPreviewFile}'; + import { configStories } from '${virtualStoriesFile}'; + + const { + addDecorator, + addParameters, + addLoader, + addArgTypesEnhancer, + addArgsEnhancer, + setGlobalRender, + } = clientApi; + + const configs = [${importArray('config', configEntries.length).concat('preview.default').join(',')}].filter(Boolean) + + configs.forEach(config => { + Object.keys(config).forEach((key) => { + const value = config[key]; + switch (key) { + case 'args': { + if (typeof clientApi.addArgs !== "undefined") { + return clientApi.addArgs(value); + } else { + return logger.warn( + "Could not add global args. Please open an issue in storybookjs/builder-vite." + ); + } + } + case 'argTypes': { + if (typeof clientApi.addArgTypes !== "undefined") { + return clientApi.addArgTypes(value); + } else { + return logger.warn( + "Could not add global argTypes. Please open an issue in storybookjs/builder-vite." + ); + } + } + case 'decorators': { + return value.forEach((decorator) => addDecorator(decorator, false)); + } + case 'loaders': { + return value.forEach((loader) => addLoader(loader, false)); + } + case 'parameters': { + return addParameters({ ...value }, false); + } + case 'argTypesEnhancers': { + return value.forEach((enhancer) => addArgTypesEnhancer(enhancer)); + } + case 'argsEnhancers': { + return value.forEach((enhancer) => addArgsEnhancer(enhancer)) + } + case 'render': { + return setGlobalRender(value) + } + case 'globals': + case 'globalTypes': { + const v = {}; + v[key] = value; + return addParameters(v, false); + } + case 'decorateStory': + case 'applyDecorators': + case 'renderToDOM': { + return null; // This key is not handled directly in v6 mode. + } + default: { + // eslint-disable-next-line prefer-template + return console.log(key + ' was not supported :( !'); + } + } + }); + }) + + /* TODO: not quite sure what to do with this, to fix HMR + if (import.meta.hot) { + import.meta.hot.accept(); + } + */ + + configStories(configure); + `.trim(); + return code; +} diff --git a/code/lib/builder-vite/src/codegen-importfn-script.ts b/code/lib/builder-vite/src/codegen-importfn-script.ts new file mode 100644 index 000000000000..958ca5c59efd --- /dev/null +++ b/code/lib/builder-vite/src/codegen-importfn-script.ts @@ -0,0 +1,56 @@ +import * as path from 'path'; +import { normalizePath } from 'vite'; +import type { Options } from '@storybook/core-common'; +import { logger } from '@storybook/node-logger'; + +import { listStories } from './list-stories'; + +/** + * This file is largely based on https://github.com/storybookjs/storybook/blob/d1195cbd0c61687f1720fefdb772e2f490a46584/lib/core-common/src/utils/to-importFn.ts + */ + +/** + * Paths get passed either with no leading './' - e.g. `src/Foo.stories.js`, + * or with a leading `../` (etc), e.g. `../src/Foo.stories.js`. + * We want to deal in importPaths relative to the working dir, so we normalize + */ +function toImportPath(relativePath: string) { + return relativePath.startsWith('../') ? relativePath : `./${relativePath}`; +} + +/** + * This function takes an array of stories and creates a mapping between the stories' relative paths + * to the working directory and their dynamic imports. The import is done in an asynchronous function + * to delay loading. It then creates a function, `importFn(path)`, which resolves a path to an import + * function and this is called by Storybook to fetch a story dynamically when needed. + * @param stories An array of absolute story paths. + */ +async function toImportFn(stories: string[]) { + const objectEntries = stories.map((file) => { + const ext = path.extname(file); + const relativePath = normalizePath(path.relative(process.cwd(), file)); + if (!['.js', '.jsx', '.ts', '.tsx', '.mdx'].includes(ext)) { + logger.warn(`Cannot process ${ext} file with storyStoreV7: ${relativePath}`); + } + + return ` '${toImportPath(relativePath)}': async () => import('/@fs/${file}')`; + }); + + return ` + const importers = { + ${objectEntries.join(',\n')} + }; + + export async function importFn(path) { + return importers[path](); + } + `; +} + +export async function generateImportFnScriptCode(options: Options) { + // First we need to get an array of stories and their absolute paths. + const stories = await listStories(options); + + // We can then call toImportFn to create a function that can be used to load each story dynamically. + return (await toImportFn(stories)).trim(); +} diff --git a/code/lib/builder-vite/src/codegen-modern-iframe-script.ts b/code/lib/builder-vite/src/codegen-modern-iframe-script.ts new file mode 100644 index 000000000000..837254930c69 --- /dev/null +++ b/code/lib/builder-vite/src/codegen-modern-iframe-script.ts @@ -0,0 +1,68 @@ +import { loadPreviewOrConfigFile } from '@storybook/core-common'; +import { virtualStoriesFile, virtualAddonSetupFile } from './virtual-file-names'; +import { transformAbsPath } from './utils/transform-abs-path'; +import type { ExtendedOptions } from './types'; + +export async function generateModernIframeScriptCode(options: ExtendedOptions) { + const { presets, configDir, framework } = options; + + const previewOrConfigFile = loadPreviewOrConfigFile({ configDir }); + const presetEntries = await presets.apply('config', [], options); + const configEntries = [...presetEntries, previewOrConfigFile] + .filter(Boolean) + .map((configEntry) => transformAbsPath(configEntry)); + + const generateHMRHandler = (framework: string): string => { + // Web components are not compatible with HMR, so disable HMR, reload page instead. + if (framework === 'web-components') { + return ` + if (import.meta.hot) { + import.meta.hot.decline(); + }`.trim(); + } + + return ` + if (import.meta.hot) { + import.meta.hot.accept('${virtualStoriesFile}', (newModule) => { + // importFn has changed so we need to patch the new one in + preview.onStoriesChanged({ importFn: newModule.importFn }); + }); + + import.meta.hot.accept(${JSON.stringify(configEntries)}, ([...newConfigEntries]) => { + const newGetProjectAnnotations = () => composeConfigs(newConfigEntries); + + // getProjectAnnotations has changed so we need to patch the new one in + preview.onGetProjectAnnotationsChanged({ getProjectAnnotations: newGetProjectAnnotations }); + }); + }`.trim(); + }; + + /** + * This code is largely taken from https://github.com/storybookjs/storybook/blob/d1195cbd0c61687f1720fefdb772e2f490a46584/lib/builder-webpack4/src/preview/virtualModuleModernEntry.js.handlebars + * Some small tweaks were made to `getProjectAnnotations` (since `import()` needs to be resolved asynchronously) + * and the HMR implementation has been tweaked to work with Vite. + * @todo Inline variable and remove `noinspection` + */ + const code = ` + import { composeConfigs, PreviewWeb } from '@storybook/preview-web'; + import { ClientApi } from '@storybook/client-api'; + import '${virtualAddonSetupFile}'; + import { importFn } from '${virtualStoriesFile}'; + + const getProjectAnnotations = async () => + composeConfigs(await Promise.all([${configEntries + .map((configEntry) => `import('${configEntry}')`) + .join(',\n')}])); + + const preview = new PreviewWeb(); + + window.__STORYBOOK_PREVIEW__ = preview; + window.__STORYBOOK_STORY_STORE__ = preview.storyStore; + window.__STORYBOOK_CLIENT_API__ = new ClientApi({ storyStore: preview.storyStore }); + + preview.initialize({ importFn, getProjectAnnotations }); + + ${generateHMRHandler(framework)}; + `.trim(); + return code; +} diff --git a/code/lib/builder-vite/src/codegen-set-addon-channel.ts b/code/lib/builder-vite/src/codegen-set-addon-channel.ts new file mode 100644 index 000000000000..5cc3c8ed6c2d --- /dev/null +++ b/code/lib/builder-vite/src/codegen-set-addon-channel.ts @@ -0,0 +1,18 @@ +export function generateAddonSetupCode() { + return ` + import createPostMessageChannel from '@storybook/channel-postmessage'; + import createWebSocketChannel from '@storybook/channel-websocket'; + import { addons } from '@storybook/addons'; + + const channel = createPostMessageChannel({ page: 'preview' }); + addons.setChannel(channel); + window.__STORYBOOK_ADDONS_CHANNEL__ = channel; + + const { SERVER_CHANNEL_URL } = globalThis; + if (SERVER_CHANNEL_URL) { + const serverChannel = createWebSocketChannel({ url: SERVER_CHANNEL_URL }); + addons.setServerChannel(serverChannel); + window.__STORYBOOK_SERVER_CHANNEL__ = serverChannel; + } + `.trim(); +} diff --git a/code/lib/builder-vite/src/declarations/extract-stories.d.ts b/code/lib/builder-vite/src/declarations/extract-stories.d.ts new file mode 100644 index 000000000000..2731f657cc5e --- /dev/null +++ b/code/lib/builder-vite/src/declarations/extract-stories.d.ts @@ -0,0 +1,18 @@ +/** + * @see https://github.com/storybookjs/addon-svelte-csf/blob/f72b8f28dabbb99c92e12d0170d3c1db4397ee7c/src/parser/extract-stories.ts + */ +declare module '@storybook/addon-svelte-csf/dist/cjs/parser/extract-stories' { + interface StoryDef { + name: string; + template: boolean; + source: string; + hasArgs: boolean; + } + + interface StoriesDef { + stories: Record; + allocatedIds: string[]; + } + + function extractStories(component: string): { stories: StoriesDef; allocatedIds: string[] }; +} diff --git a/code/lib/builder-vite/src/declarations/svetle-stories-loader.d.ts b/code/lib/builder-vite/src/declarations/svetle-stories-loader.d.ts new file mode 100644 index 000000000000..1ae04708af52 --- /dev/null +++ b/code/lib/builder-vite/src/declarations/svetle-stories-loader.d.ts @@ -0,0 +1,7 @@ +/** + * @see https://github.com/storybookjs/addon-svelte-csf/blob/f72b8f28dabbb99c92e12d0170d3c1db4397ee7c/src/parser/svelte-stories-loader.ts + * @see https://github.com/sveltejs/svelte/blob/deed340cf5d9c278f9a0605297ad6e4a3a1579d9/src/compiler/compile/utils/get_name_from_filename.ts + */ +declare module '@storybook/addon-svelte-csf/dist/cjs/parser/svelte-stories-loader' { + function getNameFromFilename(filename: string): string; +} diff --git a/code/lib/builder-vite/src/envs.ts b/code/lib/builder-vite/src/envs.ts new file mode 100644 index 000000000000..e5ad6c50e183 --- /dev/null +++ b/code/lib/builder-vite/src/envs.ts @@ -0,0 +1,50 @@ +import { stringifyEnvs } from '@storybook/core-common'; + +import type { EnvsRaw } from './types'; +import type { UserConfig } from 'vite'; + +// Allowed env variables on the client +const allowedEnvVariables = [ + 'STORYBOOK', + // Vite `import.meta.env` default variables + // @see https://github.com/vitejs/vite/blob/6b8d94dca2a1a8b4952e3e3fcd0aed1aedb94215/packages/vite/types/importMeta.d.ts#L68-L75 + 'BASE_URL', + 'MODE', + 'DEV', + 'PROD', + 'SSR', +]; + +// Env variables starts with env prefix will be exposed to your client source code via `import.meta.env` +export const allowedEnvPrefix = ['VITE_', 'STORYBOOK_']; + +/** + * Customized version of stringifyProcessEnvs from @storybook/core-common which + * uses import.meta.env instead of process.env and checks for allowed variables. + */ +export function stringifyProcessEnvs(raw: EnvsRaw, envPrefix: UserConfig['envPrefix']) { + const updatedRaw: EnvsRaw = {}; + const envs = Object.entries(raw).reduce( + (acc: EnvsRaw, [key, value]) => { + // Only add allowed values OR values from array OR string started with allowed prefixes + if ( + allowedEnvVariables.includes(key) || + (Array.isArray(envPrefix) && !!envPrefix.find((prefix) => key.startsWith(prefix))) || + (typeof envPrefix === 'string' && key.startsWith(envPrefix)) + ) { + acc[`import.meta.env.${key}`] = JSON.stringify(value); + updatedRaw[key] = value; + } + return acc; + }, + { + // Default fallback + 'process.env.XSTORYBOOK_EXAMPLE_APP': '""', + } + ); + // support destructuring like + // const { foo } = import.meta.env; + envs['import.meta.env'] = JSON.stringify(stringifyEnvs(updatedRaw)); + + return envs; +} diff --git a/code/lib/builder-vite/src/index.ts b/code/lib/builder-vite/src/index.ts new file mode 100644 index 000000000000..bb813f53cabf --- /dev/null +++ b/code/lib/builder-vite/src/index.ts @@ -0,0 +1,82 @@ +// noinspection JSUnusedGlobalSymbols + +import * as fs from 'fs'; +import * as path from 'path'; +import { transformIframeHtml } from './transform-iframe-html'; +import { createViteServer } from './vite-server'; +import { build as viteBuild } from './build'; + +import type { Builder, StorybookConfig, Options } from '@storybook/core-common'; +import type { RequestHandler, Request, Response } from 'express'; +import type { InlineConfig, UserConfig, ViteDevServer } from 'vite'; +import type { ExtendedOptions } from './types'; + +// Storybook's Stats are optional Webpack related property +export type ViteStats = null; + +export type ViteBuilder = Builder; + +export type ViteFinal = (config: InlineConfig, options: Options) => InlineConfig | Promise; + +export type StorybookViteConfig = StorybookConfig & { + viteFinal: ViteFinal; +}; + +function iframeMiddleware(options: ExtendedOptions, server: ViteDevServer): RequestHandler { + return async (req, res, next) => { + if (!req.url.match(/^\/iframe\.html($|\?)/)) { + next(); + return; + } + + // We need to handle `html-proxy` params for style tag HMR https://github.com/storybookjs/builder-vite/issues/266#issuecomment-1055677865 + // e.g. /iframe.html?html-proxy&index=0.css + if (req.query['html-proxy'] !== undefined) { + next(); + return; + } + + const indexHtml = fs.readFileSync(path.resolve(__dirname, '..', 'input', 'iframe.html'), 'utf-8'); + const generated = await transformIframeHtml(indexHtml, options); + const transformed = await server.transformIndexHtml('/iframe.html', generated); + res.setHeader('Content-Type', 'text/html'); + res.status(200).send(transformed); + }; +} + +export const start: ViteBuilder['start'] = async ({ startTime, options, router, server: devServer }) => { + const server = await createViteServer(options as ExtendedOptions, devServer); + + // Just mock this endpoint (which is really Webpack-specific) so we don't get spammed with 404 in browser devtools + // TODO: we should either show some sort of progress from Vite, or just try to disable the whole Loader in the Manager UI. + router.get('/progress', (req: Request, res: Response) => { + res.header('Cache-Control', 'no-cache'); + res.header('Content-Type', 'text/event-stream'); + }); + + router.use(await iframeMiddleware(options as ExtendedOptions, server)); + router.use(server.middlewares); + + async function bail(e?: Error): Promise { + try { + return await server.close(); + } catch (err) { + console.warn('unable to close vite server'); + } + + throw e; + } + + return { + bail, + stats: null, + totalTime: process.hrtime(startTime), + }; +}; + +export const build: ViteBuilder['build'] = async ({ options }) => { + return viteBuild(options as ExtendedOptions); +}; + +export const corePresets = []; +export const previewPresets = []; diff --git a/code/lib/builder-vite/src/inject-export-order-plugin.ts b/code/lib/builder-vite/src/inject-export-order-plugin.ts new file mode 100644 index 000000000000..09e009922b63 --- /dev/null +++ b/code/lib/builder-vite/src/inject-export-order-plugin.ts @@ -0,0 +1,29 @@ +import { parse } from 'es-module-lexer'; +import MagicString from 'magic-string'; + +export const injectExportOrderPlugin = { + name: 'storybook-vite-inject-export-order-plugin', + // This should only run after the typescript has been transpiled + enforce: 'post', + async transform(code: string, id: string) { + if (!/\.stories\.([tj])sx?$/.test(id) && !/(stories|story).mdx$/.test(id)) { + return; + } + // TODO: Maybe convert `injectExportOrderPlugin` to function that returns object, + // and run `await init;` once and then call `parse()` without `await`, + // instead of calling `await parse()` every time. + const [, exports] = await parse(code); + + if (exports.includes('__namedExportsOrder')) { + // user has defined named exports already + return; + } + const s = new MagicString(code); + const orderedExports = exports.filter((e) => e !== 'default'); + s.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports)};`); + return { + code: s.toString(), + map: s.generateMap({ hires: true, source: id }), + }; + }, +}; diff --git a/code/lib/builder-vite/src/input/iframe.html b/code/lib/builder-vite/src/input/iframe.html new file mode 100644 index 000000000000..bcabc10ead11 --- /dev/null +++ b/code/lib/builder-vite/src/input/iframe.html @@ -0,0 +1,29 @@ + + + + + + <!-- [TITLE HERE] --> + + + + + + +
+
+ + + diff --git a/code/lib/builder-vite/src/input/react-dom-client-placeholder.js b/code/lib/builder-vite/src/input/react-dom-client-placeholder.js new file mode 100644 index 000000000000..ac58bff7de38 --- /dev/null +++ b/code/lib/builder-vite/src/input/react-dom-client-placeholder.js @@ -0,0 +1,3 @@ +// This file is to work around https://github.com/vitejs/vite/issues/6007 +// For react < 18 projects, where `react-dom/client` does not exist, yet is +// conditionally imported by @storybook/react. diff --git a/code/lib/builder-vite/src/list-stories.ts b/code/lib/builder-vite/src/list-stories.ts new file mode 100644 index 000000000000..08be02004df1 --- /dev/null +++ b/code/lib/builder-vite/src/list-stories.ts @@ -0,0 +1,20 @@ +import * as path from 'path'; +import { promise as glob } from 'glob-promise'; +import { normalizeStories } from '@storybook/core-common'; + +import type { Options } from '@storybook/core-common'; + +export async function listStories(options: Options) { + return ( + await Promise.all( + normalizeStories(await options.presets.apply('stories', [], options), { + configDir: options.configDir, + workingDir: options.configDir, + }).map(({ directory, files }) => { + const pattern = path.join(directory, files); + + return glob(path.isAbsolute(pattern) ? pattern : path.join(options.configDir, pattern)); + }) + ) + ).reduce((carry, stories) => carry.concat(stories), []); +} diff --git a/code/lib/builder-vite/src/optimizeDeps.ts b/code/lib/builder-vite/src/optimizeDeps.ts new file mode 100644 index 000000000000..fbe560720ed4 --- /dev/null +++ b/code/lib/builder-vite/src/optimizeDeps.ts @@ -0,0 +1,125 @@ +import * as path from 'path'; +import { normalizePath, resolveConfig, UserConfig } from 'vite'; +import { listStories } from './list-stories'; + +import type { ExtendedOptions } from './types'; + +const INCLUDE_CANDIDATES = [ + '@base2/pretty-print-object', + '@emotion/core', + '@emotion/is-prop-valid', + '@emotion/styled', + '@mdx-js/react', + '@storybook/addon-docs > acorn-jsx', + '@storybook/addon-docs', + '@storybook/addons', + '@storybook/channel-postmessage', + '@storybook/channel-websocket', + '@storybook/client-api', + '@storybook/client-logger', + '@storybook/core/client', + '@storybook/csf', + '@storybook/preview-web', + '@storybook/react > acorn-jsx', + '@storybook/react', + '@storybook/svelte', + '@storybook/vue3', + 'acorn-jsx', + 'acorn-walk', + 'acorn', + 'airbnb-js-shims', + 'ansi-to-html', + 'axe-core', + 'color-convert', + 'deep-object-diff', + 'doctrine', + 'emotion-theming', + 'escodegen', + 'estraverse', + 'fast-deep-equal', + 'global', + 'html-tags', + 'isobject', + 'jest-mock', + 'loader-utils', + 'lodash/cloneDeep', + 'lodash/isFunction', + 'lodash/isPlainObject', + 'lodash/isString', + 'lodash/mapKeys', + 'lodash/mapValues', + 'lodash/pick', + 'lodash/pickBy', + 'lodash/startCase', + 'lodash/throttle', + 'lodash/uniq', + 'markdown-to-jsx', + 'memoizerific', + 'overlayscrollbars', + 'polished', + 'prettier/parser-babel', + 'prettier/parser-flow', + 'prettier/parser-typescript', + 'prop-types', + 'qs', + 'react-dom', + 'react-dom/client', + 'react-fast-compare', + 'react-is', + 'react-textarea-autosize', + 'react', + 'react/jsx-runtime', + 'refractor/core', + 'refractor/lang/bash.js', + 'refractor/lang/css.js', + 'refractor/lang/graphql.js', + 'refractor/lang/js-extras.js', + 'refractor/lang/json.js', + 'refractor/lang/jsx.js', + 'refractor/lang/markdown.js', + 'refractor/lang/markup.js', + 'refractor/lang/tsx.js', + 'refractor/lang/typescript.js', + 'refractor/lang/yaml.js', + 'regenerator-runtime/runtime.js', + 'slash', + 'stable', + 'store2', + 'synchronous-promise', + 'telejson', + 'ts-dedent', + 'unfetch', + 'util-deprecate', + 'uuid-browser/v4', + 'vue', + 'warning', +]; + +/** + * Helper function which allows us to `filter` with an async predicate. Uses Promise.all for performance. + */ +const asyncFilter = async (arr: string[], predicate: (val: string) => Promise) => + Promise.all(arr.map(predicate)).then((results) => arr.filter((_v, index) => results[index])); + +export async function getOptimizeDeps( + config: UserConfig & { configFile: false; root: string }, + options: ExtendedOptions +) { + const { root } = config; + const absoluteStories = await listStories(options); + const stories = absoluteStories.map((storyPath) => normalizePath(path.relative(root, storyPath))); + const resolvedConfig = await resolveConfig(config, 'serve', 'development'); + + // This function converts ids which might include ` > ` to a real path, if it exists on disk. + // See https://github.com/vitejs/vite/blob/67d164392e8e9081dc3f0338c4b4b8eea6c5f7da/packages/vite/src/node/optimizer/index.ts#L182-L199 + const resolve = resolvedConfig.createResolver({ asSrc: false }); + const include = await asyncFilter(INCLUDE_CANDIDATES, async (id) => Boolean(await resolve(id))); + + return { + // We don't need to resolve the glob since vite supports globs for entries. + entries: stories, + // We need Vite to precompile these dependencies, because they contain non-ESM code that would break + // if we served it directly to the browser. + include, + }; +} diff --git a/code/lib/builder-vite/src/plugins/docgen-handlers/actualNameHandler.ts b/code/lib/builder-vite/src/plugins/docgen-handlers/actualNameHandler.ts new file mode 100644 index 000000000000..36b3a19cec9e --- /dev/null +++ b/code/lib/builder-vite/src/plugins/docgen-handlers/actualNameHandler.ts @@ -0,0 +1,46 @@ +/** + * This is heavily based on the react-docgen `displayNameHandler` + * (https://github.com/reactjs/react-docgen/blob/26c90c0dd105bf83499a83826f2a6ff7a724620d/src/handlers/displayNameHandler.ts) + * but instead defines an `actualName` property on the generated docs that is taken first from the component's actual name. + * This addresses an issue where the name that the generated docs are stored under is incorrectly named with the `displayName` + * and not the component's actual name. + * + * This is inspired by `actualNameHandler` from https://github.com/storybookjs/babel-plugin-react-docgen, but is modified + * directly from displayNameHandler, using the same approach as babel-plugin-react-docgen. + */ + +import { namedTypes as t } from 'ast-types'; +import type { NodePath } from 'ast-types/lib/node-path'; +import { getNameOrValue, isReactForwardRefCall } from 'react-docgen/dist/utils'; +// import { getNameOrValue, isReactForwardRefCall } from 'react-docgen/lib/utils'; +import type { Importer } from 'react-docgen/dist/parse'; +// import type { Importer } from 'react-docgen/lib/parse'; +import type Documentation from 'react-docgen/lib/Documentation'; + +export default function actualNameHandler(documentation: Documentation, path: NodePath, importer: Importer): void { + if (t.ClassDeclaration.check(path.node) || t.FunctionDeclaration.check(path.node)) { + documentation.set('actualName', getNameOrValue(path.get('id'))); + } else if ( + t.ArrowFunctionExpression.check(path.node) || + t.FunctionExpression.check(path.node) || + isReactForwardRefCall(path, importer) + ) { + let currentPath = path; + while (currentPath.parent) { + if (t.VariableDeclarator.check(currentPath.parent.node)) { + documentation.set('actualName', getNameOrValue(currentPath.parent.get('id'))); + return; + } else if (t.AssignmentExpression.check(currentPath.parent.node)) { + const leftPath = currentPath.parent.get('left'); + if (t.Identifier.check(leftPath.node) || t.Literal.check(leftPath.node)) { + documentation.set('actualName', getNameOrValue(leftPath)); + return; + } + } + currentPath = currentPath.parent; + } + // Could not find an actual name + documentation.set('actualName', ''); + } + return; +} diff --git a/code/lib/builder-vite/src/plugins/mdx-plugin.ts b/code/lib/builder-vite/src/plugins/mdx-plugin.ts new file mode 100644 index 000000000000..9f52e1b4446e --- /dev/null +++ b/code/lib/builder-vite/src/plugins/mdx-plugin.ts @@ -0,0 +1,75 @@ +import type { Options } from '@storybook/core-common'; +import { Plugin } from 'vite'; + +const isStorybookMdx = (id: string) => id.endsWith('stories.mdx') || id.endsWith('story.mdx'); + +function injectRenderer(code: string, mdx2: boolean) { + if (mdx2) { + return ` + import React from 'react'; + ${code} + `; + } + + return ` + /* @jsx mdx */ + import React from 'react'; + import { mdx } from '@mdx-js/react'; + ${code} + `; +} + +/** + * Storybook uses two different loaders when dealing with MDX: + * + * - *stories.mdx and *story.mdx are compiled with the CSF compiler + * - *.mdx are compiled with the MDX compiler directly + * + * @see https://github.com/storybookjs/storybook/blob/next/addons/docs/docs/recipes.md#csf-stories-with-arbitrary-mdx + */ +export function mdxPlugin(options: Options): Plugin { + const { features } = options; + + let reactRefresh: Plugin | undefined; + + return { + name: 'storybook-vite-mdx-plugin', + enforce: 'pre', + configResolved({ plugins }) { + // @vitejs/plugin-react-refresh has been upgraded to @vitejs/plugin-react, + // and the name of the plugin performing `transform` has been changed from 'react-refresh' to 'vite:react-babel', + // to be compatible, we need to look for both plugin name. + // We should also look for the other plugins names exported from @vitejs/plugin-react in case there are some internal refactors. + const reactRefreshPlugins = plugins.filter( + (p) => + p.name === 'react-refresh' || + p.name === 'vite:react-babel' || + p.name === 'vite:react-refresh' || + p.name === 'vite:react-jsx' + ); + reactRefresh = reactRefreshPlugins.find((p) => p.transform); + }, + async transform(src, id, options) { + if (id.match(/\.mdx?$/)) { + // @ts-ignore + const { compile } = features?.previewMdx2 + ? await import('@storybook/mdx2-csf') + : await import('@storybook/mdx1-csf'); + + const mdxCode = String(await compile(src, { skipCsf: !isStorybookMdx(id) })); + + const modifiedCode = injectRenderer(mdxCode, Boolean(features?.previewMdx2)); + + const result = await reactRefresh?.transform!.call(this, modifiedCode, `${id}.jsx`, options); + + if (!result) return modifiedCode; + + if (typeof result === 'string') return result; + + const { code, map: resultMap } = result; + + return { code, map: !resultMap || typeof resultMap === 'string' ? resultMap : { ...resultMap, sources: [id] } }; + } + }, + }; +} diff --git a/code/lib/builder-vite/src/plugins/no-fouc.ts b/code/lib/builder-vite/src/plugins/no-fouc.ts new file mode 100644 index 000000000000..f4e811604062 --- /dev/null +++ b/code/lib/builder-vite/src/plugins/no-fouc.ts @@ -0,0 +1,54 @@ +import type { Plugin } from 'vite'; + +/** + * This plugin is a workaround to inject some styles into the `` of the iframe to + * prevent the "no story" text from appearing breifly while the page loads in. + * + * It can be removed, and these styles placed back into the head, + * when https://github.com/vitejs/vite/issues/6737 is closed. + */ +export function noFouc(): Plugin { + return { + name: 'no-fouc', + enforce: 'post', + async transformIndexHtml(html, ctx) { + if (ctx.path !== '/iframe.html') { + return; + } + + return insertHeadStyles(html); + }, + }; +} + +/** + * Insert default styles to hide storybook elements as the page loads until JS can + * add the official storybook default head styles and scripts. These lines are mostly + * taken from https://github.com/storybookjs/storybook/blob/next/lib/core-common/templates/base-preview-head.html#L6-L20 + */ +function insertHeadStyles(html: string) { + return html.replace( + '', + ` + + + `.trim() + ); +} diff --git a/code/lib/builder-vite/src/plugins/react-docgen.ts b/code/lib/builder-vite/src/plugins/react-docgen.ts new file mode 100644 index 000000000000..29e4c615a839 --- /dev/null +++ b/code/lib/builder-vite/src/plugins/react-docgen.ts @@ -0,0 +1,66 @@ +import path from 'path'; +import { + parse, + handlers as docgenHandlers, + resolver as docgenResolver, + importers as docgenImporters, +} from 'react-docgen'; +import type { DocumentationObject } from 'react-docgen/lib/Documentation'; +import MagicString from 'magic-string'; +import type { Plugin } from 'vite'; +import { createFilter } from 'vite'; +import actualNameHandler from './docgen-handlers/actualNameHandler'; + +type DocObj = DocumentationObject & { actualName: string }; + +// TODO: None of these are able to be overridden, so `default` is aspirational here. +const defaultHandlers = Object.values(docgenHandlers).map((handler) => handler); +const defaultResolver = docgenResolver.findAllExportedComponentDefinitions; +const defaultImporter = docgenImporters.makeFsImporter(); +const handlers = [...defaultHandlers, actualNameHandler]; + +type Options = { + include?: string | RegExp | (string | RegExp)[]; + exclude?: string | RegExp | (string | RegExp)[]; +}; + +export function reactDocgen({ + include = /\.(mjs|tsx?|jsx?)$/, + exclude = [/node_modules\/.*/, '**/**.stories.tsx'], +}: Options = {}): Plugin { + const cwd = process.cwd(); + const filter = createFilter(include, exclude); + + return { + name: 'react-docgen', + enforce: 'pre', + async transform(src: string, id: string) { + const relPath = path.relative(cwd, id); + if (!filter(relPath)) return; + + try { + // Since we're using `findAllExportedComponentDefinitions`, this will always be an array. + const docgenResults = parse(src, defaultResolver, handlers, { importer: defaultImporter, filename: id }) as + | DocObj[]; + const s = new MagicString(src); + + docgenResults.forEach((info) => { + const { actualName, ...docgenInfo } = info; + if (actualName) { + const docNode = JSON.stringify(docgenInfo); + s.append(`;${actualName}.__docgenInfo=${docNode}`); + } + }); + + return { + code: s.toString(), + map: s.generateMap({ hires: true, source: id }), + }; + } catch (e) { + // Usually this is just an error from react-docgen that it couldn't find a component + // Only uncomment for troubleshooting + // console.error(e); + } + }, + }; +} diff --git a/code/lib/builder-vite/src/plugins/svelte-docgen.ts b/code/lib/builder-vite/src/plugins/svelte-docgen.ts new file mode 100644 index 000000000000..94aec15ea59b --- /dev/null +++ b/code/lib/builder-vite/src/plugins/svelte-docgen.ts @@ -0,0 +1,97 @@ +import type { Plugin } from 'vite'; +import MagicString from 'magic-string'; +import path from 'path'; +import fs from 'fs'; +import svelteDoc from 'sveltedoc-parser'; +import type { SvelteParserOptions } from 'sveltedoc-parser'; +import { logger } from '@storybook/node-logger'; +import { preprocess } from 'svelte/compiler'; + +// Most of the code here should probably be exported by @storybook/svelte and reused here. +// See: https://github.com/storybookjs/storybook/blob/next/app/svelte/src/server/svelte-docgen-loader.ts + +// From https://github.com/sveltejs/svelte/blob/8db3e8d0297e052556f0b6dde310ef6e197b8d18/src/compiler/compile/utils/get_name_from_filename.ts +// Copied because it is not exported from the compiler +function getNameFromFilename(filename: string) { + if (!filename) return null; + + const parts = filename.split(/[/\\]/).map(encodeURI); + + if (parts.length > 1) { + const index_match = parts[parts.length - 1].match(/^index(\.\w+)/); + if (index_match) { + parts.pop(); + parts[parts.length - 1] += index_match[1]; + } + } + + const base = parts + .pop() + ?.replace(/%/g, 'u') + .replace(/\.[^.]+$/, '') + .replace(/[^a-zA-Z_$0-9]+/g, '_') + .replace(/^_/, '') + .replace(/_$/, '') + .replace(/^(\d)/, '_$1'); + + if (!base) { + throw new Error(`Could not derive component name from file ${filename}`); + } + + return base[0].toUpperCase() + base.slice(1); +} + +export function svelteDocgen(svelteOptions: Record): Plugin { + const cwd = process.cwd(); + const { preprocess: preprocessOptions, logDocgen = false } = svelteOptions; + + return { + name: 'svelte-docgen', + async transform(src: string, id: string) { + if (/\.(svelte)$/.test(id)) { + const resource = path.relative(cwd, id); + + let docOptions; + if (preprocessOptions) { + const src = fs.readFileSync(resource).toString(); + + const { code: fileContent } = await preprocess(src, preprocessOptions, { filename: resource }); + + docOptions = { + fileContent, + }; + } else { + docOptions = { filename: resource }; + } + + // set SvelteDoc options + const options: SvelteParserOptions = { + ...docOptions, + version: 3, + }; + + const s = new MagicString(src); + + try { + const componentDoc = await svelteDoc.parse(options); + // get filename for source content + const file = path.basename(resource); + + componentDoc.name = path.basename(file); + + const componentName = getNameFromFilename(resource); + s.append(`;${componentName}.__docgen = ${JSON.stringify(componentDoc)}`); + } catch (error: any) { + if (logDocgen) { + logger.error(error); + } + } + + return { + code: s.toString(), + map: s.generateMap({ hires: true, source: id }), + }; + } + }, + }; +} diff --git a/code/lib/builder-vite/src/plugins/vue-docgen.ts b/code/lib/builder-vite/src/plugins/vue-docgen.ts new file mode 100644 index 000000000000..f0e9ee4775bd --- /dev/null +++ b/code/lib/builder-vite/src/plugins/vue-docgen.ts @@ -0,0 +1,23 @@ +import { parse } from 'vue-docgen-api'; +import type { Plugin } from 'vite'; +import MagicString from 'magic-string'; + +export function vueDocgen(): Plugin { + return { + name: 'vue-docgen', + + async transform(src: string, id: string) { + if (/\.(vue)$/.test(id)) { + const metaData = await parse(id); + const metaSource = JSON.stringify(metaData); + const s = new MagicString(src); + s.append(`;_sfc_main.__docgenInfo = ${metaSource}`); + + return { + code: s.toString(), + map: s.generateMap({ hires: true, source: id }), + }; + } + }, + }; +} diff --git a/code/lib/builder-vite/src/source-loader-plugin.ts b/code/lib/builder-vite/src/source-loader-plugin.ts new file mode 100644 index 000000000000..65d5a4d2682a --- /dev/null +++ b/code/lib/builder-vite/src/source-loader-plugin.ts @@ -0,0 +1,96 @@ +import type { Plugin } from 'vite'; +import sourceLoaderTransform from '@storybook/source-loader'; +import type { ExtendedOptions } from './types'; +import MagicString from 'magic-string'; + +const storyPattern = /\.stories\.[jt]sx?$/; +const storySourcePattern = /var __STORY__ = "(.*)"/; +const storySourceReplacement = '--STORY_SOURCE_REPLACEMENT--'; + +const mockClassLoader = (id: string) => ({ emitWarning: (message: string) => console.warn(message), resourcePath: id }); + +// HACK: Until we can support only node 15+ and use string.prototype.replaceAll +const replaceAll = (str: string, search: string, replacement: string) => { + return str.split(search).join(replacement); +}; + +export function sourceLoaderPlugin(config: ExtendedOptions): Plugin | Plugin[] { + if (config.configType === 'DEVELOPMENT') { + return { + name: 'storybook-vite-source-loader-plugin', + enforce: 'pre', + async transform(src: string, id: string) { + if (id.match(storyPattern)) { + const code: string = await sourceLoaderTransform.call(mockClassLoader(id), src); + const s = new MagicString(src); + // Entirely replace with new code + s.overwrite(0, src.length, code); + + return { + code: s.toString(), + map: s.generateMap({ hires: true, source: id }), + }; + } + }, + }; + } + + // In production, we need to be fancier, to avoid vite:define plugin from replacing values inside the `__STORY__` string + const storySources = new WeakMap>(); + + return [ + { + name: 'storybook-vite-source-loader-plugin', + enforce: 'pre', + buildStart() { + storySources.set(config, new Map()); + }, + async transform(src: string, id: string) { + if (id.match(storyPattern)) { + let code: string = await sourceLoaderTransform.call(mockClassLoader(id), src); + const [_, sourceString] = code.match(storySourcePattern) ?? [null, null]; + if (sourceString) { + const map = storySources.get(config); + map?.set(id, sourceString); + + // Remove story source so that it is not processed by vite:define plugin + code = replaceAll(code, sourceString, storySourceReplacement); + } + + const s = new MagicString(src); + // Entirely replace with new code + s.overwrite(0, src.length, code); + + return { + code: s.toString(), + map: s.generateMap(), + }; + } + }, + }, + { + name: 'storybook-vite-source-loader-plugin-post', + enforce: 'post', + buildStart() { + storySources.set(config, new Map()); + }, + async transform(src: string, id: string) { + if (id.match(storyPattern)) { + const s = new MagicString(src); + const map = storySources.get(config); + const storySourceStatement = map?.get(id); + // Put the previously-extracted source back in + if (storySourceStatement) { + const newCode = replaceAll(src, storySourceReplacement, storySourceStatement); + s.overwrite(0, src.length, newCode); + } + + return { + code: s.toString(), + map: s.generateMap(), + }; + } + }, + }, + ]; +} diff --git a/code/lib/builder-vite/src/svelte/csf-plugin.ts b/code/lib/builder-vite/src/svelte/csf-plugin.ts new file mode 100644 index 000000000000..844fdfc4ef96 --- /dev/null +++ b/code/lib/builder-vite/src/svelte/csf-plugin.ts @@ -0,0 +1,52 @@ +import { getNameFromFilename } from '@storybook/addon-svelte-csf/dist/cjs/parser/svelte-stories-loader'; +import { readFileSync } from 'fs'; +import { extractStories } from '@storybook/addon-svelte-csf/dist/cjs/parser/extract-stories'; +const parser = require.resolve('@storybook/addon-svelte-csf/dist/esm/parser/collect-stories').replace(/[/\\]/g, '/'); +import type { Options } from '@sveltejs/vite-plugin-svelte'; +import * as svelte from 'svelte/compiler'; +import MagicString from 'magic-string'; + +export default function csfPlugin(svelteOptions?: Options) { + return { + name: 'storybook-addon-svelte-csf', + enforce: 'post', + async transform(code: string, id: string) { + if (/\.stories\.svelte$/.test(id)) { + const s = new MagicString(code); + const component = getNameFromFilename(id); + let source = readFileSync(id).toString(); + if (svelteOptions && svelteOptions.preprocess) { + source = (await svelte.preprocess(source, svelteOptions.preprocess, { filename: id })).code; + } + const all = extractStories(source); + const { stories } = all; + const storyDef = Object.entries(stories) + .filter(([, def]) => !def.template) + .map(([id]) => `export const ${id} = __storiesMetaData.stories[${JSON.stringify(id)}];`) + .join('\n'); + + s.replace('export default', '// export default'); + + const namedExportsOrder = Object.entries(stories) + .filter(([, def]) => !def.template) + .map(([id]) => id); + + const output = [ + '', + `import parser from '${parser}';`, + `const __storiesMetaData = parser(${component}, ${JSON.stringify(all)});`, + 'export default __storiesMetaData.meta;', + `export const __namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`, + storyDef, + ].join('\n'); + + s.append(output); + + return { + code: s.toString(), + map: s.generateMap({ hires: true, source: id }), + }; + } + }, + }; +} diff --git a/code/lib/builder-vite/src/transform-iframe-html.ts b/code/lib/builder-vite/src/transform-iframe-html.ts new file mode 100644 index 000000000000..4af39393f77b --- /dev/null +++ b/code/lib/builder-vite/src/transform-iframe-html.ts @@ -0,0 +1,36 @@ +import { normalizeStories } from '@storybook/core-common'; +import type { CoreConfig } from '@storybook/core-common'; +import type { ExtendedOptions } from './types'; + +export type PreviewHtml = string | undefined; + +export async function transformIframeHtml(html: string, options: ExtendedOptions) { + const { configType, features, framework, presets, serverChannelUrl, title } = options; + const headHtmlSnippet = await presets.apply('previewHead'); + const bodyHtmlSnippet = await presets.apply('previewBody'); + const logLevel = await presets.apply('logLevel', undefined); + const frameworkOptions = await presets.apply(`${framework}Options`, {}); + const coreOptions = await presets.apply('core'); + const stories = normalizeStories(await options.presets.apply('stories', [], options), { + configDir: options.configDir, + workingDir: process.cwd(), + }).map((specifier) => ({ + ...specifier, + importPathMatcher: specifier.importPathMatcher.source, + })); + + return html + .replace('', title || 'Storybook') + .replace('[CONFIG_TYPE HERE]', configType || '') + .replace('[LOGLEVEL HERE]', logLevel || '') + .replace(`'[FRAMEWORK_OPTIONS HERE]'`, JSON.stringify(frameworkOptions || {})) + .replace( + `'[CHANNEL_OPTIONS HERE]'`, + JSON.stringify(coreOptions && coreOptions.channelOptions ? coreOptions.channelOptions : {}) + ) + .replace(`'[FEATURES HERE]'`, JSON.stringify(features || {})) + .replace(`'[STORIES HERE]'`, JSON.stringify(stories || {})) + .replace(`'[SERVER_CHANNEL_URL HERE]'`, JSON.stringify(serverChannelUrl)) + .replace('', headHtmlSnippet || '') + .replace('', bodyHtmlSnippet || ''); +} diff --git a/code/lib/builder-vite/src/types/envs-raw.type.ts b/code/lib/builder-vite/src/types/envs-raw.type.ts new file mode 100644 index 000000000000..cb62e513aacd --- /dev/null +++ b/code/lib/builder-vite/src/types/envs-raw.type.ts @@ -0,0 +1 @@ +export type EnvsRaw = Record; diff --git a/code/lib/builder-vite/src/types/extended-options.type.ts b/code/lib/builder-vite/src/types/extended-options.type.ts new file mode 100644 index 000000000000..b9867d364909 --- /dev/null +++ b/code/lib/builder-vite/src/types/extended-options.type.ts @@ -0,0 +1,9 @@ +import type { Options } from '@storybook/core-common'; + +// Using instead of `Record` to provide better aware of used options +type IframeOptions = { + frameworkPath: string; + title: string; +}; + +export type ExtendedOptions = Options & IframeOptions; diff --git a/code/lib/builder-vite/src/types/index.ts b/code/lib/builder-vite/src/types/index.ts new file mode 100644 index 000000000000..e50c278bbd1e --- /dev/null +++ b/code/lib/builder-vite/src/types/index.ts @@ -0,0 +1,2 @@ +export * from './envs-raw.type'; +export * from './extended-options.type'; diff --git a/code/lib/builder-vite/src/types/react-docgen.d.ts b/code/lib/builder-vite/src/types/react-docgen.d.ts new file mode 100644 index 000000000000..cc2a8d6322fb --- /dev/null +++ b/code/lib/builder-vite/src/types/react-docgen.d.ts @@ -0,0 +1,22 @@ +// TODO: delete this stub file once a new alpha of react-docgen is released (will include ts types). + +declare module 'react-docgen' { + declare const parse; + declare const handlers; + declare const resolver; + declare const importers; +} + +declare module 'react-docgen/lib/Documentation' { + export type DocumentationObject = Record; + export default Documentation; +} + +declare module 'react-docgen/dist/utils' { + declare const getNameOrValue; + declare const isReactForwardRefCall; +} + +declare module 'react-docgen/dist/parse' { + declare type Importer = any; +} diff --git a/code/lib/builder-vite/src/utils/transform-abs-path.ts b/code/lib/builder-vite/src/utils/transform-abs-path.ts new file mode 100644 index 000000000000..bd8c89f8fbc3 --- /dev/null +++ b/code/lib/builder-vite/src/utils/transform-abs-path.ts @@ -0,0 +1,11 @@ +import path from 'path'; +import { normalizePath } from 'vite'; + +// We need to convert from an absolute path, to a traditional node module import path, +// so that vite can correctly pre-bundle/optimize +export function transformAbsPath(absPath: string) { + const splits = absPath.split(`node_modules${path.sep}`); + // Return everything after the final "node_modules/" + const module = normalizePath(splits[splits.length - 1]); + return module; +} diff --git a/code/lib/builder-vite/src/virtual-file-names.ts b/code/lib/builder-vite/src/virtual-file-names.ts new file mode 100644 index 000000000000..0da0c5517dec --- /dev/null +++ b/code/lib/builder-vite/src/virtual-file-names.ts @@ -0,0 +1,4 @@ +export const virtualFileId = '/virtual:/@storybook/builder-vite/vite-app.js'; +export const virtualStoriesFile = '/virtual:/@storybook/builder-vite/storybook-stories.js'; +export const virtualPreviewFile = '/virtual:/@storybook/builder-vite/preview-entry.js'; +export const virtualAddonSetupFile = '/virtual:/@storybook/builder-vite/setup-addons.js'; diff --git a/code/lib/builder-vite/src/vite-config.ts b/code/lib/builder-vite/src/vite-config.ts new file mode 100644 index 000000000000..bf8a9dacf4d7 --- /dev/null +++ b/code/lib/builder-vite/src/vite-config.ts @@ -0,0 +1,199 @@ +import * as path from 'path'; +import fs from 'fs'; +import { Plugin } from 'vite'; +import { TypescriptConfig } from '@storybook/core-common'; +import viteReact from '@vitejs/plugin-react'; + +import { allowedEnvPrefix as envPrefix } from './envs'; +import { codeGeneratorPlugin } from './code-generator-plugin'; +import { injectExportOrderPlugin } from './inject-export-order-plugin'; +import { mdxPlugin } from './plugins/mdx-plugin'; +import { noFouc } from './plugins/no-fouc'; +import { sourceLoaderPlugin } from './source-loader-plugin'; + +import type { UserConfig } from 'vite'; +import type { ExtendedOptions } from './types'; + +export type PluginConfigType = 'build' | 'development'; + +export function readPackageJson(): Record | false { + const packageJsonPath = path.resolve('package.json'); + if (!fs.existsSync(packageJsonPath)) { + return false; + } + + const jsonContent = fs.readFileSync(packageJsonPath, 'utf8'); + return JSON.parse(jsonContent); +} + +// Vite config that is common to development and production mode +export async function commonConfig( + options: ExtendedOptions, + _type: PluginConfigType +): Promise { + const { framework } = options; + + return { + configFile: false, + root: path.resolve(options.configDir, '..'), + cacheDir: 'node_modules/.vite-storybook', + envPrefix, + define: {}, + resolve: + framework === 'vue3' + ? { + alias: { + vue: 'vue/dist/vue.esm-bundler.js', + }, + } + : {}, + plugins: await pluginConfig(options, _type), + }; +} + +export async function pluginConfig(options: ExtendedOptions, _type: PluginConfigType) { + const { framework, presets } = options; + const svelteOptions: Record = await presets.apply('svelteOptions', {}, options); + + const plugins = [ + codeGeneratorPlugin(options), + sourceLoaderPlugin(options), + mdxPlugin(options), + noFouc(), + injectExportOrderPlugin, + // We need the react plugin here to support MDX. + viteReact({ + // Do not treat story files as HMR boundaries, storybook itself needs to handle them. + exclude: [/\.stories\.([tj])sx?$/, /node_modules/].concat(framework === 'react' ? [] : [/\.([tj])sx?$/]), + }), + { + name: 'vite-plugin-storybook-allow', + enforce: 'post', + config(config) { + // if there is no allow list then Vite allows anything in the root directory + // if there is an allow list then Vite allows anything in the listed directories + // add the .storybook directory only if there's an allow list so that we don't end up + // disallowing the root directory unless it's already disallowed + if (config?.server?.fs?.allow) { + config.server.fs.allow.push('.storybook'); + } + }, + }, + ] as Plugin[]; + if (framework === 'vue' || framework === 'vue3') { + try { + const vuePlugin = require('@vitejs/plugin-vue'); + plugins.push(vuePlugin()); + const { vueDocgen } = await import('./plugins/vue-docgen'); + plugins.push(vueDocgen()); + } catch (err) { + if ((err as NodeJS.ErrnoException).code === 'MODULE_NOT_FOUND') { + throw new Error( + '@storybook/builder-vite requires @vitejs/plugin-vue to be installed ' + + 'when using @storybook/vue or @storybook/vue3.' + + ' Please install it and start storybook again.' + ); + } + throw err; + } + } + if (framework === 'svelte') { + try { + const sveltePlugin = require('@sveltejs/vite-plugin-svelte').svelte; + + // We need to create two separate svelte plugins, one for stories, and one for other svelte files + // because stories.svelte files cannot be hot-module-reloaded. + // Suggested in: https://github.com/sveltejs/vite-plugin-svelte/issues/321#issuecomment-1113205509 + + // First, create an array containing user exclude patterns, to combine with ours. + const userExclude = Array.isArray(svelteOptions?.exclude) + ? svelteOptions?.exclude + : svelteOptions?.exclude + ? [svelteOptions?.exclude] + : []; + + // These are the svelte stories we need to exclude from HMR + const storyPatterns = ['**/*.story.svelte', '**/*.stories.svelte']; + // Non-story svelte files + // Starting in 1.0.0-next.42, svelte.config.js is included by default. + // We disable that, but allow it to be overridden in svelteOptions + plugins.push(sveltePlugin({ ...svelteOptions, exclude: [...userExclude, ...storyPatterns] })); + // Svelte stories without HMR + const storySveltePlugin = sveltePlugin({ + ...svelteOptions, + exclude: userExclude, + include: storyPatterns, + hot: false, + }); + plugins.push({ + // Starting in 1.0.0-next.43, the plugin function returns an array of plugins. We only want the first one here. + ...(Array.isArray(storySveltePlugin) ? storySveltePlugin[0] : storySveltePlugin), + name: 'vite-plugin-svelte-stories', + }); + } catch (err) { + if ((err as NodeJS.ErrnoException).code === 'MODULE_NOT_FOUND') { + throw new Error( + '@storybook/builder-vite requires @sveltejs/vite-plugin-svelte to be installed' + + ' when using @storybook/svelte.' + + ' Please install it and start storybook again.' + ); + } + throw err; + } + + const { loadSvelteConfig } = require('@sveltejs/vite-plugin-svelte'); + const config = { ...loadSvelteConfig(), ...svelteOptions }; + + try { + const csfPlugin = require('./svelte/csf-plugin').default; + plugins.push(csfPlugin(config)); + } catch (err) { + // Not all projects use `.stories.svelte` for stories, and by default 6.5+ does not auto-install @storybook/addon-svelte-csf. + // If it's any other kind of error, re-throw. + if ((err as NodeJS.ErrnoException).code !== 'MODULE_NOT_FOUND') { + throw err; + } + } + + const { svelteDocgen } = await import('./plugins/svelte-docgen'); + plugins.push(svelteDocgen(config)); + } + + if (framework === 'preact') { + plugins.push(require('@preact/preset-vite').default()); + } + + if (framework === 'react') { + const { reactDocgen: reactDocgenOption, reactDocgenTypescriptOptions } = await presets.apply( + 'typescript', + {} as TypescriptConfig + ); + + if (reactDocgenOption === 'react-docgen-typescript') { + plugins.push( + require('@joshwooding/vite-plugin-react-docgen-typescript')({ + ...reactDocgenTypescriptOptions, + // We *need* this set so that RDT returns default values in the same format as react-docgen + savePropValueAsString: true, + }) + ); + } + + // Add react-docgen so long as the option is not false + if (typeof reactDocgenOption === 'string') { + const { reactDocgen } = await import('./plugins/react-docgen'); + // Needs to run before the react plugin, so add to the front + plugins.unshift( + // If react-docgen is specified, use it for everything, otherwise only use it for non-typescript files + reactDocgen({ include: reactDocgenOption === 'react-docgen' ? /\.(mjs|tsx?|jsx?)$/ : /\.(mjs|jsx?)$/ }) + ); + } + } + + if (framework === 'glimmerx') { + const plugin = require('vite-plugin-glimmerx/index.cjs'); + plugins.push(plugin.default()); + } + + return plugins; +} diff --git a/code/lib/builder-vite/src/vite-server.ts b/code/lib/builder-vite/src/vite-server.ts new file mode 100644 index 000000000000..49849d36cc32 --- /dev/null +++ b/code/lib/builder-vite/src/vite-server.ts @@ -0,0 +1,41 @@ +import { createServer } from 'vite'; +import { stringifyProcessEnvs } from './envs'; +import { getOptimizeDeps } from './optimizeDeps'; +import { commonConfig } from './vite-config'; + +import type { Server } from 'http'; +import type { EnvsRaw, ExtendedOptions } from './types'; + +export async function createViteServer(options: ExtendedOptions, devServer: Server) { + const { port, presets } = options; + + const baseConfig = await commonConfig(options, 'development'); + const defaultConfig = { + ...baseConfig, + server: { + middlewareMode: true, + hmr: { + port, + server: devServer, + }, + fs: { + strict: true, + }, + }, + appType: 'custom' as const, + optimizeDeps: await getOptimizeDeps(baseConfig, options), + }; + + const finalConfig = await presets.apply('viteFinal', defaultConfig, options); + + const envsRaw = await presets.apply>('env'); + // Stringify env variables after getting `envPrefix` from the final config + const envs = stringifyProcessEnvs(envsRaw, finalConfig.envPrefix); + // Update `define` + finalConfig.define = { + ...finalConfig.define, + ...envs, + }; + + return createServer(finalConfig); +} diff --git a/code/lib/builder-vite/tsconfig.json b/code/lib/builder-vite/tsconfig.json new file mode 100644 index 000000000000..fb09353cd547 --- /dev/null +++ b/code/lib/builder-vite/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "strict": true, + "rootDir": ".", + "outDir": "dist", + "lib": ["es2019", "es2020.promise", "es2020.bigint", "es2020.string"], + "module": "CommonJS", + "target": "ES2019", + "declaration": true, + "sourceMap": true, + "inlineSources": true, + "skipLibCheck": true, + "esModuleInterop": true, + "resolveJsonModule": true, + "types": ["@types/node"] + } +} + + From f80ef5f40ab5ecaf29e83f1435809de4c724d2fc Mon Sep 17 00:00:00 2001 From: Ian VanSchooten Date: Fri, 12 Aug 2022 23:41:54 -0400 Subject: [PATCH 02/62] Add storybook dependencies These were all implicit dependencies before, which caused problems for pnpm --- code/lib/builder-vite/package.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/code/lib/builder-vite/package.json b/code/lib/builder-vite/package.json index 086d7f0c61b2..b79ee1b12ffe 100644 --- a/code/lib/builder-vite/package.json +++ b/code/lib/builder-vite/package.json @@ -14,10 +14,16 @@ "homepage": "https://github.com/storybookjs/builder-vite/#readme", "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.0.5", - "@storybook/core-common": "^6.4.3", - "@storybook/mdx1-csf": "^0.0.4", - "@storybook/node-logger": "^6.4.3", - "@storybook/source-loader": "^6.4.3", + "@storybook/addons": "7.0.0-alpha.19", + "@storybook/channel-postmessage": "7.0.0-alpha.19", + "@storybook/channel-websocket": "7.0.0-alpha.19", + "@storybook/client-api": "7.0.0-alpha.19", + "@storybook/client-logger": "7.0.0-alpha.19", + "@storybook/core-common": "7.0.0-alpha.19", + "@storybook/mdx1-csf": "0.0.5-canary.13.9ce928a.0", + "@storybook/node-logger": "7.0.0-alpha.19", + "@storybook/preview-web": "7.0.0-alpha.19", + "@storybook/source-loader": "7.0.0-alpha.19", "@vitejs/plugin-react": "^2.0.0", "ast-types": "^0.14.2", "es-module-lexer": "^0.9.3", From bc4828ac98e99bdd5d7ac2ae050ac7bd3cf271bb Mon Sep 17 00:00:00 2001 From: Ian VanSchooten Date: Sat, 13 Aug 2022 00:37:49 -0400 Subject: [PATCH 03/62] Update package.json --- code/lib/builder-vite/package.json | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/code/lib/builder-vite/package.json b/code/lib/builder-vite/package.json index b79ee1b12ffe..abddf18a7190 100644 --- a/code/lib/builder-vite/package.json +++ b/code/lib/builder-vite/package.json @@ -1,17 +1,22 @@ { "name": "@storybook/builder-vite", - "version": "0.2.2", + "version": "7.0.0-alpha.19", "description": "A plugin to run and build Storybooks with Vite", - "main": "dist/index.js", - "types": "dist/index.d.ts", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "types": "dist/types/index.d.ts", "author": "Eirik Sletteberg", "license": "MIT", "repository": { "type": "git", - "url": "https://github.com/storybookjs/builder-vite.git", - "directory": "packages/builder-vite" + "url": "https://github.com/storybookjs/storybook.git", + "directory": "code/lib/builder-vite" + }, + "homepage": "https://github.com/storybookjs/storybook/tree/main/code/lib/builder-vite/#readme", + "scripts": { + "check": "tsc --noEmit", + "prepare": "node ../../../scripts/prepare.js" }, - "homepage": "https://github.com/storybookjs/builder-vite/#readme", "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.0.5", "@storybook/addons": "7.0.0-alpha.19", @@ -52,5 +57,6 @@ }, "publishConfig": { "access": "public" - } + }, + "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" } From ecfc44417b0db4d2bb83a7ae8e779367ef37de55 Mon Sep 17 00:00:00 2001 From: Ian VanSchooten Date: Sat, 13 Aug 2022 00:39:05 -0400 Subject: [PATCH 04/62] Fix (most) linting errors --- code/lib/builder-vite/package.json | 11 +- code/lib/builder-vite/src/envs.ts | 2 +- code/lib/builder-vite/src/index.ts | 30 +- .../src/inject-export-order-plugin.ts | 11 +- .../docgen-handlers/actualNameHandler.ts | 11 +- .../builder-vite/src/plugins/mdx-plugin.ts | 35 +- code/lib/builder-vite/src/plugins/no-fouc.ts | 4 +- .../builder-vite/src/plugins/react-docgen.ts | 9 +- .../builder-vite/src/plugins/svelte-docgen.ts | 77 ++-- .../builder-vite/src/plugins/vue-docgen.ts | 24 +- .../lib/builder-vite/src/svelte/csf-plugin.ts | 79 ++-- code/lib/builder-vite/src/vite-config.ts | 31 +- code/lib/builder-vite/src/vite-server.ts | 3 +- code/yarn.lock | 419 +++++++++++++++++- 14 files changed, 605 insertions(+), 141 deletions(-) diff --git a/code/lib/builder-vite/package.json b/code/lib/builder-vite/package.json index abddf18a7190..3567b0f9d180 100644 --- a/code/lib/builder-vite/package.json +++ b/code/lib/builder-vite/package.json @@ -37,22 +37,27 @@ "magic-string": "^0.26.1", "react-docgen": "^6.0.0-alpha.0", "slash": "^3.0.0", - "sveltedoc-parser": "^4.2.1" + "sveltedoc-parser": "^4.2.1", + "vite": "3", + "vue-docgen-api": "^4.40.0" }, "devDependencies": { "@storybook/mdx2-csf": "^0.0.3", "@sveltejs/vite-plugin-svelte": "^1.0.0", "@types/express": "^4.17.13", "@types/node": "^17.0.23", - "vue-docgen-api": "^4.40.0" + "svelte": "^3.49.0" }, "peerDependencies": { "@storybook/mdx2-csf": "^0.0.3", - "vite": ">= 3.0.0" + "svelte": "^3.0.0" }, "peerDependenciesMeta": { "@storybook/mdx2-csf": { "optional": true + }, + "svelte": { + "optional": true } }, "publishConfig": { diff --git a/code/lib/builder-vite/src/envs.ts b/code/lib/builder-vite/src/envs.ts index e5ad6c50e183..107391642627 100644 --- a/code/lib/builder-vite/src/envs.ts +++ b/code/lib/builder-vite/src/envs.ts @@ -1,7 +1,7 @@ import { stringifyEnvs } from '@storybook/core-common'; -import type { EnvsRaw } from './types'; import type { UserConfig } from 'vite'; +import type { EnvsRaw } from './types'; // Allowed env variables on the client const allowedEnvVariables = [ diff --git a/code/lib/builder-vite/src/index.ts b/code/lib/builder-vite/src/index.ts index bb813f53cabf..50de112bd30c 100644 --- a/code/lib/builder-vite/src/index.ts +++ b/code/lib/builder-vite/src/index.ts @@ -2,21 +2,25 @@ import * as fs from 'fs'; import * as path from 'path'; -import { transformIframeHtml } from './transform-iframe-html'; -import { createViteServer } from './vite-server'; -import { build as viteBuild } from './build'; - import type { Builder, StorybookConfig, Options } from '@storybook/core-common'; import type { RequestHandler, Request, Response } from 'express'; import type { InlineConfig, UserConfig, ViteDevServer } from 'vite'; +import { transformIframeHtml } from './transform-iframe-html'; +import { createViteServer } from './vite-server'; +import { build as viteBuild } from './build'; import type { ExtendedOptions } from './types'; // Storybook's Stats are optional Webpack related property -export type ViteStats = null; +export type ViteStats = { + toJson: () => any; +}; export type ViteBuilder = Builder; -export type ViteFinal = (config: InlineConfig, options: Options) => InlineConfig | Promise; +export type ViteFinal = ( + config: InlineConfig, + options: Options +) => InlineConfig | Promise; export type StorybookViteConfig = StorybookConfig & { viteFinal: ViteFinal; @@ -36,7 +40,10 @@ function iframeMiddleware(options: ExtendedOptions, server: ViteDevServer): Requ return; } - const indexHtml = fs.readFileSync(path.resolve(__dirname, '..', 'input', 'iframe.html'), 'utf-8'); + const indexHtml = fs.readFileSync( + path.resolve(__dirname, '..', 'input', 'iframe.html'), + 'utf-8' + ); const generated = await transformIframeHtml(indexHtml, options); const transformed = await server.transformIndexHtml('/iframe.html', generated); res.setHeader('Content-Type', 'text/html'); @@ -44,7 +51,12 @@ function iframeMiddleware(options: ExtendedOptions, server: ViteDevServer): Requ }; } -export const start: ViteBuilder['start'] = async ({ startTime, options, router, server: devServer }) => { +export const start: ViteBuilder['start'] = async ({ + startTime, + options, + router, + server: devServer, +}) => { const server = await createViteServer(options as ExtendedOptions, devServer); // Just mock this endpoint (which is really Webpack-specific) so we don't get spammed with 404 in browser devtools @@ -69,7 +81,7 @@ export const start: ViteBuilder['start'] = async ({ startTime, options, router, return { bail, - stats: null, + stats: { toJson: () => null }, totalTime: process.hrtime(startTime), }; }; diff --git a/code/lib/builder-vite/src/inject-export-order-plugin.ts b/code/lib/builder-vite/src/inject-export-order-plugin.ts index 09e009922b63..4afd67cd5111 100644 --- a/code/lib/builder-vite/src/inject-export-order-plugin.ts +++ b/code/lib/builder-vite/src/inject-export-order-plugin.ts @@ -1,14 +1,17 @@ import { parse } from 'es-module-lexer'; import MagicString from 'magic-string'; +import { createFilter } from 'vite'; + +const include = [/\.stories\.([tj])sx?$/, /(stories|story).mdx$/]; +const filter = createFilter(include); export const injectExportOrderPlugin = { name: 'storybook-vite-inject-export-order-plugin', // This should only run after the typescript has been transpiled enforce: 'post', async transform(code: string, id: string) { - if (!/\.stories\.([tj])sx?$/.test(id) && !/(stories|story).mdx$/.test(id)) { - return; - } + if (!filter(id)) return undefined; + // TODO: Maybe convert `injectExportOrderPlugin` to function that returns object, // and run `await init;` once and then call `parse()` without `await`, // instead of calling `await parse()` every time. @@ -16,7 +19,7 @@ export const injectExportOrderPlugin = { if (exports.includes('__namedExportsOrder')) { // user has defined named exports already - return; + return undefined; } const s = new MagicString(code); const orderedExports = exports.filter((e) => e !== 'default'); diff --git a/code/lib/builder-vite/src/plugins/docgen-handlers/actualNameHandler.ts b/code/lib/builder-vite/src/plugins/docgen-handlers/actualNameHandler.ts index 36b3a19cec9e..ddf860b37ee8 100644 --- a/code/lib/builder-vite/src/plugins/docgen-handlers/actualNameHandler.ts +++ b/code/lib/builder-vite/src/plugins/docgen-handlers/actualNameHandler.ts @@ -17,7 +17,11 @@ import type { Importer } from 'react-docgen/dist/parse'; // import type { Importer } from 'react-docgen/lib/parse'; import type Documentation from 'react-docgen/lib/Documentation'; -export default function actualNameHandler(documentation: Documentation, path: NodePath, importer: Importer): void { +export default function actualNameHandler( + documentation: Documentation, + path: NodePath, + importer: Importer +): void { if (t.ClassDeclaration.check(path.node) || t.FunctionDeclaration.check(path.node)) { documentation.set('actualName', getNameOrValue(path.get('id'))); } else if ( @@ -30,7 +34,9 @@ export default function actualNameHandler(documentation: Documentation, path: No if (t.VariableDeclarator.check(currentPath.parent.node)) { documentation.set('actualName', getNameOrValue(currentPath.parent.get('id'))); return; - } else if (t.AssignmentExpression.check(currentPath.parent.node)) { + } + + if (t.AssignmentExpression.check(currentPath.parent.node)) { const leftPath = currentPath.parent.get('left'); if (t.Identifier.check(leftPath.node) || t.Literal.check(leftPath.node)) { documentation.set('actualName', getNameOrValue(leftPath)); @@ -42,5 +48,4 @@ export default function actualNameHandler(documentation: Documentation, path: No // Could not find an actual name documentation.set('actualName', ''); } - return; } diff --git a/code/lib/builder-vite/src/plugins/mdx-plugin.ts b/code/lib/builder-vite/src/plugins/mdx-plugin.ts index 9f52e1b4446e..eee7043481ab 100644 --- a/code/lib/builder-vite/src/plugins/mdx-plugin.ts +++ b/code/lib/builder-vite/src/plugins/mdx-plugin.ts @@ -1,5 +1,6 @@ import type { Options } from '@storybook/core-common'; -import { Plugin } from 'vite'; +import type { Plugin } from 'vite'; +import { createFilter } from 'vite'; const isStorybookMdx = (id: string) => id.endsWith('stories.mdx') || id.endsWith('story.mdx'); @@ -31,6 +32,8 @@ export function mdxPlugin(options: Options): Plugin { const { features } = options; let reactRefresh: Plugin | undefined; + const include = /\.mdx?$/; + const filter = createFilter(include); return { name: 'storybook-vite-mdx-plugin', @@ -50,26 +53,30 @@ export function mdxPlugin(options: Options): Plugin { reactRefresh = reactRefreshPlugins.find((p) => p.transform); }, async transform(src, id, options) { - if (id.match(/\.mdx?$/)) { - // @ts-ignore - const { compile } = features?.previewMdx2 - ? await import('@storybook/mdx2-csf') - : await import('@storybook/mdx1-csf'); + if (!filter(id)) return undefined; - const mdxCode = String(await compile(src, { skipCsf: !isStorybookMdx(id) })); + // @ts-expect-error typescript doesn't think compile exists, but it does. + const { compile } = features?.previewMdx2 + ? await import('@storybook/mdx2-csf') + : await import('@storybook/mdx1-csf'); - const modifiedCode = injectRenderer(mdxCode, Boolean(features?.previewMdx2)); + const mdxCode = String(await compile(src, { skipCsf: !isStorybookMdx(id) })); - const result = await reactRefresh?.transform!.call(this, modifiedCode, `${id}.jsx`, options); + const modifiedCode = injectRenderer(mdxCode, Boolean(features?.previewMdx2)); - if (!result) return modifiedCode; + const result = await reactRefresh?.transform!.call(this, modifiedCode, `${id}.jsx`, options); - if (typeof result === 'string') return result; + if (!result) return modifiedCode; - const { code, map: resultMap } = result; + if (typeof result === 'string') return result; - return { code, map: !resultMap || typeof resultMap === 'string' ? resultMap : { ...resultMap, sources: [id] } }; - } + const { code, map: resultMap } = result; + + return { + code, + map: + !resultMap || typeof resultMap === 'string' ? resultMap : { ...resultMap, sources: [id] }, + }; }, }; } diff --git a/code/lib/builder-vite/src/plugins/no-fouc.ts b/code/lib/builder-vite/src/plugins/no-fouc.ts index f4e811604062..8e741db2464f 100644 --- a/code/lib/builder-vite/src/plugins/no-fouc.ts +++ b/code/lib/builder-vite/src/plugins/no-fouc.ts @@ -12,9 +12,7 @@ export function noFouc(): Plugin { name: 'no-fouc', enforce: 'post', async transformIndexHtml(html, ctx) { - if (ctx.path !== '/iframe.html') { - return; - } + if (ctx.path !== '/iframe.html') return undefined; return insertHeadStyles(html); }, diff --git a/code/lib/builder-vite/src/plugins/react-docgen.ts b/code/lib/builder-vite/src/plugins/react-docgen.ts index 29e4c615a839..d3e0ae64766c 100644 --- a/code/lib/builder-vite/src/plugins/react-docgen.ts +++ b/code/lib/builder-vite/src/plugins/react-docgen.ts @@ -36,12 +36,14 @@ export function reactDocgen({ enforce: 'pre', async transform(src: string, id: string) { const relPath = path.relative(cwd, id); - if (!filter(relPath)) return; + if (!filter(relPath)) return undefined; try { // Since we're using `findAllExportedComponentDefinitions`, this will always be an array. - const docgenResults = parse(src, defaultResolver, handlers, { importer: defaultImporter, filename: id }) as - | DocObj[]; + const docgenResults = parse(src, defaultResolver, handlers, { + importer: defaultImporter, + filename: id, + }) as DocObj[]; const s = new MagicString(src); docgenResults.forEach((info) => { @@ -60,6 +62,7 @@ export function reactDocgen({ // Usually this is just an error from react-docgen that it couldn't find a component // Only uncomment for troubleshooting // console.error(e); + return undefined; } }, }; diff --git a/code/lib/builder-vite/src/plugins/svelte-docgen.ts b/code/lib/builder-vite/src/plugins/svelte-docgen.ts index 94aec15ea59b..22378e1a6658 100644 --- a/code/lib/builder-vite/src/plugins/svelte-docgen.ts +++ b/code/lib/builder-vite/src/plugins/svelte-docgen.ts @@ -6,6 +6,7 @@ import svelteDoc from 'sveltedoc-parser'; import type { SvelteParserOptions } from 'sveltedoc-parser'; import { logger } from '@storybook/node-logger'; import { preprocess } from 'svelte/compiler'; +import { createFilter } from 'vite'; // Most of the code here should probably be exported by @storybook/svelte and reused here. // See: https://github.com/storybookjs/storybook/blob/next/app/svelte/src/server/svelte-docgen-loader.ts @@ -18,10 +19,10 @@ function getNameFromFilename(filename: string) { const parts = filename.split(/[/\\]/).map(encodeURI); if (parts.length > 1) { - const index_match = parts[parts.length - 1].match(/^index(\.\w+)/); - if (index_match) { + const indexMatch = parts[parts.length - 1].match(/^index(\.\w+)/); + if (indexMatch) { parts.pop(); - parts[parts.length - 1] += index_match[1]; + parts[parts.length - 1] += indexMatch[1]; } } @@ -44,54 +45,58 @@ function getNameFromFilename(filename: string) { export function svelteDocgen(svelteOptions: Record): Plugin { const cwd = process.cwd(); const { preprocess: preprocessOptions, logDocgen = false } = svelteOptions; + const include = /\.(svelte)$/; + const filter = createFilter(include); return { name: 'svelte-docgen', async transform(src: string, id: string) { - if (/\.(svelte)$/.test(id)) { - const resource = path.relative(cwd, id); + if (!filter(id)) return undefined; - let docOptions; - if (preprocessOptions) { - const src = fs.readFileSync(resource).toString(); + const resource = path.relative(cwd, id); - const { code: fileContent } = await preprocess(src, preprocessOptions, { filename: resource }); + let docOptions; + if (preprocessOptions) { + const src = fs.readFileSync(resource).toString(); - docOptions = { - fileContent, - }; - } else { - docOptions = { filename: resource }; - } + const { code: fileContent } = await preprocess(src, preprocessOptions, { + filename: resource, + }); - // set SvelteDoc options - const options: SvelteParserOptions = { - ...docOptions, - version: 3, + docOptions = { + fileContent, }; + } else { + docOptions = { filename: resource }; + } - const s = new MagicString(src); + // set SvelteDoc options + const options: SvelteParserOptions = { + ...docOptions, + version: 3, + }; - try { - const componentDoc = await svelteDoc.parse(options); - // get filename for source content - const file = path.basename(resource); + const s = new MagicString(src); - componentDoc.name = path.basename(file); + try { + const componentDoc = await svelteDoc.parse(options); + // get filename for source content + const file = path.basename(resource); - const componentName = getNameFromFilename(resource); - s.append(`;${componentName}.__docgen = ${JSON.stringify(componentDoc)}`); - } catch (error: any) { - if (logDocgen) { - logger.error(error); - } - } + componentDoc.name = path.basename(file); - return { - code: s.toString(), - map: s.generateMap({ hires: true, source: id }), - }; + const componentName = getNameFromFilename(resource); + s.append(`;${componentName}.__docgen = ${JSON.stringify(componentDoc)}`); + } catch (error: any) { + if (logDocgen) { + logger.error(error); + } } + + return { + code: s.toString(), + map: s.generateMap({ hires: true, source: id }), + }; }, }; } diff --git a/code/lib/builder-vite/src/plugins/vue-docgen.ts b/code/lib/builder-vite/src/plugins/vue-docgen.ts index f0e9ee4775bd..066b44df134c 100644 --- a/code/lib/builder-vite/src/plugins/vue-docgen.ts +++ b/code/lib/builder-vite/src/plugins/vue-docgen.ts @@ -1,23 +1,27 @@ import { parse } from 'vue-docgen-api'; import type { Plugin } from 'vite'; +import { createFilter } from 'vite'; import MagicString from 'magic-string'; export function vueDocgen(): Plugin { + const include = /\.(vue)$/; + const filter = createFilter(include); + return { name: 'vue-docgen', async transform(src: string, id: string) { - if (/\.(vue)$/.test(id)) { - const metaData = await parse(id); - const metaSource = JSON.stringify(metaData); - const s = new MagicString(src); - s.append(`;_sfc_main.__docgenInfo = ${metaSource}`); + if (!filter(id)) return undefined; + + const metaData = await parse(id); + const metaSource = JSON.stringify(metaData); + const s = new MagicString(src); + s.append(`;_sfc_main.__docgenInfo = ${metaSource}`); - return { - code: s.toString(), - map: s.generateMap({ hires: true, source: id }), - }; - } + return { + code: s.toString(), + map: s.generateMap({ hires: true, source: id }), + }; }, }; } diff --git a/code/lib/builder-vite/src/svelte/csf-plugin.ts b/code/lib/builder-vite/src/svelte/csf-plugin.ts index 844fdfc4ef96..ce6cfe9c1561 100644 --- a/code/lib/builder-vite/src/svelte/csf-plugin.ts +++ b/code/lib/builder-vite/src/svelte/csf-plugin.ts @@ -1,52 +1,59 @@ import { getNameFromFilename } from '@storybook/addon-svelte-csf/dist/cjs/parser/svelte-stories-loader'; import { readFileSync } from 'fs'; import { extractStories } from '@storybook/addon-svelte-csf/dist/cjs/parser/extract-stories'; -const parser = require.resolve('@storybook/addon-svelte-csf/dist/esm/parser/collect-stories').replace(/[/\\]/g, '/'); import type { Options } from '@sveltejs/vite-plugin-svelte'; import * as svelte from 'svelte/compiler'; import MagicString from 'magic-string'; +import { createFilter } from 'vite'; + +const parser = require + .resolve('@storybook/addon-svelte-csf/dist/esm/parser/collect-stories') + .replace(/[/\\]/g, '/'); export default function csfPlugin(svelteOptions?: Options) { + const include = /\.stories\.svelte$/; + const filter = createFilter(include); + return { name: 'storybook-addon-svelte-csf', enforce: 'post', async transform(code: string, id: string) { - if (/\.stories\.svelte$/.test(id)) { - const s = new MagicString(code); - const component = getNameFromFilename(id); - let source = readFileSync(id).toString(); - if (svelteOptions && svelteOptions.preprocess) { - source = (await svelte.preprocess(source, svelteOptions.preprocess, { filename: id })).code; - } - const all = extractStories(source); - const { stories } = all; - const storyDef = Object.entries(stories) - .filter(([, def]) => !def.template) - .map(([id]) => `export const ${id} = __storiesMetaData.stories[${JSON.stringify(id)}];`) - .join('\n'); - - s.replace('export default', '// export default'); - - const namedExportsOrder = Object.entries(stories) - .filter(([, def]) => !def.template) - .map(([id]) => id); - - const output = [ - '', - `import parser from '${parser}';`, - `const __storiesMetaData = parser(${component}, ${JSON.stringify(all)});`, - 'export default __storiesMetaData.meta;', - `export const __namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`, - storyDef, - ].join('\n'); - - s.append(output); - - return { - code: s.toString(), - map: s.generateMap({ hires: true, source: id }), - }; + if (!filter(id)) return undefined; + + const s = new MagicString(code); + const component = getNameFromFilename(id); + let source = readFileSync(id).toString(); + if (svelteOptions && svelteOptions.preprocess) { + source = (await svelte.preprocess(source, svelteOptions.preprocess, { filename: id })).code; } + const all = extractStories(source); + const { stories } = all; + const storyDef = Object.entries(stories) + .filter(([, def]) => !def.template) + .map(([id]) => `export const ${id} = __storiesMetaData.stories[${JSON.stringify(id)}];`) + .join('\n'); + + s.replace('export default', '// export default'); + + const namedExportsOrder = Object.entries(stories) + .filter(([, def]) => !def.template) + .map(([id]) => id); + + const output = [ + '', + `import parser from '${parser}';`, + `const __storiesMetaData = parser(${component}, ${JSON.stringify(all)});`, + 'export default __storiesMetaData.meta;', + `export const __namedExportsOrder = ${JSON.stringify(namedExportsOrder)};`, + storyDef, + ].join('\n'); + + s.append(output); + + return { + code: s.toString(), + map: s.generateMap({ hires: true, source: id }), + }; }, }; } diff --git a/code/lib/builder-vite/src/vite-config.ts b/code/lib/builder-vite/src/vite-config.ts index bf8a9dacf4d7..604d24f0c326 100644 --- a/code/lib/builder-vite/src/vite-config.ts +++ b/code/lib/builder-vite/src/vite-config.ts @@ -3,15 +3,13 @@ import fs from 'fs'; import { Plugin } from 'vite'; import { TypescriptConfig } from '@storybook/core-common'; import viteReact from '@vitejs/plugin-react'; - +import type { UserConfig } from 'vite'; import { allowedEnvPrefix as envPrefix } from './envs'; import { codeGeneratorPlugin } from './code-generator-plugin'; import { injectExportOrderPlugin } from './inject-export-order-plugin'; import { mdxPlugin } from './plugins/mdx-plugin'; import { noFouc } from './plugins/no-fouc'; import { sourceLoaderPlugin } from './source-loader-plugin'; - -import type { UserConfig } from 'vite'; import type { ExtendedOptions } from './types'; export type PluginConfigType = 'build' | 'development'; @@ -64,7 +62,9 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig // We need the react plugin here to support MDX. viteReact({ // Do not treat story files as HMR boundaries, storybook itself needs to handle them. - exclude: [/\.stories\.([tj])sx?$/, /node_modules/].concat(framework === 'react' ? [] : [/\.([tj])sx?$/]), + exclude: [/\.stories\.([tj])sx?$/, /node_modules/].concat( + framework === 'react' ? [] : [/\.([tj])sx?$/] + ), }), { name: 'vite-plugin-storybook-allow', @@ -82,6 +82,7 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig ] as Plugin[]; if (framework === 'vue' || framework === 'vue3') { try { + // eslint-disable-next-line import/no-extraneous-dependencies, global-require const vuePlugin = require('@vitejs/plugin-vue'); plugins.push(vuePlugin()); const { vueDocgen } = await import('./plugins/vue-docgen'); @@ -99,6 +100,7 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig } if (framework === 'svelte') { try { + // eslint-disable-next-line import/no-extraneous-dependencies, global-require const sveltePlugin = require('@sveltejs/vite-plugin-svelte').svelte; // We need to create two separate svelte plugins, one for stories, and one for other svelte files @@ -106,11 +108,13 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig // Suggested in: https://github.com/sveltejs/vite-plugin-svelte/issues/321#issuecomment-1113205509 // First, create an array containing user exclude patterns, to combine with ours. - const userExclude = Array.isArray(svelteOptions?.exclude) - ? svelteOptions?.exclude - : svelteOptions?.exclude - ? [svelteOptions?.exclude] - : []; + + let userExclude = []; + if (Array.isArray(svelteOptions?.exclude)) { + userExclude = svelteOptions?.exclude; + } else if (svelteOptions?.exclude) { + userExclude = [svelteOptions?.exclude]; + } // These are the svelte stories we need to exclude from HMR const storyPatterns = ['**/*.story.svelte', '**/*.stories.svelte']; @@ -141,10 +145,12 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig throw err; } + // eslint-disable-next-line import/no-extraneous-dependencies, global-require const { loadSvelteConfig } = require('@sveltejs/vite-plugin-svelte'); const config = { ...loadSvelteConfig(), ...svelteOptions }; try { + // eslint-disable-next-line import/no-extraneous-dependencies, global-require const csfPlugin = require('./svelte/csf-plugin').default; plugins.push(csfPlugin(config)); } catch (err) { @@ -160,6 +166,7 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig } if (framework === 'preact') { + // eslint-disable-next-line import/no-extraneous-dependencies, global-require plugins.push(require('@preact/preset-vite').default()); } @@ -171,6 +178,7 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig if (reactDocgenOption === 'react-docgen-typescript') { plugins.push( + // eslint-disable-next-line import/no-extraneous-dependencies, global-require require('@joshwooding/vite-plugin-react-docgen-typescript')({ ...reactDocgenTypescriptOptions, // We *need* this set so that RDT returns default values in the same format as react-docgen @@ -185,12 +193,15 @@ export async function pluginConfig(options: ExtendedOptions, _type: PluginConfig // Needs to run before the react plugin, so add to the front plugins.unshift( // If react-docgen is specified, use it for everything, otherwise only use it for non-typescript files - reactDocgen({ include: reactDocgenOption === 'react-docgen' ? /\.(mjs|tsx?|jsx?)$/ : /\.(mjs|jsx?)$/ }) + reactDocgen({ + include: reactDocgenOption === 'react-docgen' ? /\.(mjs|tsx?|jsx?)$/ : /\.(mjs|jsx?)$/, + }) ); } } if (framework === 'glimmerx') { + // eslint-disable-next-line import/no-extraneous-dependencies, global-require, import/extensions const plugin = require('vite-plugin-glimmerx/index.cjs'); plugins.push(plugin.default()); } diff --git a/code/lib/builder-vite/src/vite-server.ts b/code/lib/builder-vite/src/vite-server.ts index 49849d36cc32..26ecbc4d51ad 100644 --- a/code/lib/builder-vite/src/vite-server.ts +++ b/code/lib/builder-vite/src/vite-server.ts @@ -1,9 +1,8 @@ +import type { Server } from 'http'; import { createServer } from 'vite'; import { stringifyProcessEnvs } from './envs'; import { getOptimizeDeps } from './optimizeDeps'; import { commonConfig } from './vite-config'; - -import type { Server } from 'http'; import type { EnvsRaw, ExtendedOptions } from './types'; export async function createViteServer(options: ExtendedOptions, devServer: Server) { diff --git a/code/yarn.lock b/code/yarn.lock index 450d347a1a3f..551a63d35b6d 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -516,6 +516,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/core@npm:7.18.10" + dependencies: + "@ampproject/remapping": ^2.1.0 + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.18.10 + "@babel/helper-compilation-targets": ^7.18.9 + "@babel/helper-module-transforms": ^7.18.9 + "@babel/helpers": ^7.18.9 + "@babel/parser": ^7.18.10 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.18.10 + "@babel/types": ^7.18.10 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.1 + semver: ^6.3.0 + checksum: 94f749fb8bb844f5c5324513cac23edf781e24c15645a513eb54afc0e2f71d8c15c02e61f216a79f0f997deafc062b7c54bf2ebf31a2f62d0dd12bcbbc15dc97 + languageName: node + linkType: hard + "@babel/eslint-parser@npm:^7.16.3": version: 7.18.9 resolution: "@babel/eslint-parser@npm:7.18.9" @@ -552,6 +575,17 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.18.10": + version: 7.18.12 + resolution: "@babel/generator@npm:7.18.12" + dependencies: + "@babel/types": ^7.18.10 + "@jridgewell/gen-mapping": ^0.3.2 + jsesc: ^2.5.1 + checksum: 0a81453f3d6f458b6eeac046cb47b897674ea12ac7c72068faed1762aedade2290fbd139fcb605c4ea8386014aa87a0c96e609d8c469b434ab5923189e075ad1 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:7.16.7": version: 7.16.7 resolution: "@babel/helper-annotate-as-pure@npm:7.16.7" @@ -805,6 +839,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/helper-string-parser@npm:7.18.10" + checksum: d32cba5466806e79a8e6242773619fd72dd504e5f432752811c143e7d721c18c5143322a583f18ea0e8ba579de8a5ea32552dc79ef14f76fb2990d5b71fa06ef + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-validator-identifier@npm:7.18.6" @@ -862,6 +903,15 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.18.10, @babel/parser@npm:^7.18.11": + version: 7.18.11 + resolution: "@babel/parser@npm:7.18.11" + bin: + parser: ./bin/babel-parser.js + checksum: babaa1a445681102f9d5e6dfae5155720eefe60e0b4f2623aa1a9454252e6ea840b5bce0e1f07fb880bf0a3f604d4b6220cf368a09dd6b77b462f9e2cb618e15 + languageName: node + linkType: hard + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.16.7, @babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" @@ -1728,6 +1778,28 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx-self@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3fb17ae87eb264f77c5d1b30f4687f863f849bf4e8892159aee8e6bd069ff66d909f378dffdb7e6e157f9424cfbfe7c48e884aceac39e33f6a8abbdb04f83303 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: af95477936a29f6c8c33277d6f1c8484309f7c8ddd2cb19a8e90d0ea944eb6a988d2ba21f4b9948918aa801cd0aaddbae6cea57a076f8cae2126fd5a43dbf57a + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx@npm:^7.12.12, @babel/plugin-transform-react-jsx@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-react-jsx@npm:7.18.6" @@ -1743,6 +1815,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/plugin-transform-react-jsx@npm:7.18.10" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.9 + "@babel/plugin-syntax-jsx": ^7.18.6 + "@babel/types": ^7.18.10 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c993bd897df448928ce02f27a69cb5a9b9eafd8ab1dc70aaeee42ba501f5cb358efcf71b54f3b2c575852bbad622d7a0d0366268bc255b243e21290f7c18df1d + languageName: node + linkType: hard + "@babel/plugin-transform-react-pure-annotations@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.18.6" @@ -2253,6 +2340,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/template@npm:7.18.10" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/parser": ^7.18.10 + "@babel/types": ^7.18.10 + checksum: d807944427b8899125e71687d2f631731e44a64a155d39e479ff9d1eaf5341de78c5c19cf64d3341bd676e16f779f13b588aac0ec75bf65f822d8936ee227490 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.0.0, @babel/traverse@npm:^7.1.0, @babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.12.11, @babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.13.0, @babel/traverse@npm:^7.16.10, @babel/traverse@npm:^7.18.9, @babel/traverse@npm:^7.4.3, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.0, @babel/traverse@npm:^7.7.2, @babel/traverse@npm:^7.8.6": version: 7.18.9 resolution: "@babel/traverse@npm:7.18.9" @@ -2271,6 +2369,24 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.18.10": + version: 7.18.11 + resolution: "@babel/traverse@npm:7.18.11" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.18.10 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.18.9 + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/parser": ^7.18.11 + "@babel/types": ^7.18.10 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 04d5342190a2699ac314767a2af2e67e1a3f77e15c02c1801834e77eb50d2fa633dbc30dc64dccf0eabd40b1e7a4b1c04b67d0664030e54902e90e5c1b773f75 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.11.5, @babel/types@npm:^7.12.11, @babel/types@npm:^7.12.6, @babel/types@npm:^7.12.7, @babel/types@npm:^7.13.12, @babel/types@npm:^7.16.7, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.2.0, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.0, @babel/types@npm:^7.4.4, @babel/types@npm:^7.6.1, @babel/types@npm:^7.7.0, @babel/types@npm:^7.7.2, @babel/types@npm:^7.8.3, @babel/types@npm:^7.8.6, @babel/types@npm:^7.8.7, @babel/types@npm:^7.9.6": version: 7.18.9 resolution: "@babel/types@npm:7.18.9" @@ -2281,6 +2397,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.18.10, @babel/types@npm:^7.18.8": + version: 7.18.10 + resolution: "@babel/types@npm:7.18.10" + dependencies: + "@babel/helper-string-parser": ^7.18.10 + "@babel/helper-validator-identifier": ^7.18.6 + to-fast-properties: ^2.0.0 + checksum: 62f50bc10967cff9cb9f1b46ba38946a6d084bdfba4587ad80898fc2a3812e51895f65fe21dcaa7d78e494d7e319acf0e4445492a3a9ae1331a806d660754f47 + languageName: node + linkType: hard + "@base2/pretty-print-object@npm:1.0.1": version: 1.0.1 resolution: "@base2/pretty-print-object@npm:1.0.1" @@ -3756,6 +3883,22 @@ __metadata: languageName: node linkType: hard +"@joshwooding/vite-plugin-react-docgen-typescript@npm:0.0.5": + version: 0.0.5 + resolution: "@joshwooding/vite-plugin-react-docgen-typescript@npm:0.0.5" + dependencies: + "@rollup/pluginutils": ^4.2.1 + glob: ^7.2.0 + glob-promise: ^4.2.0 + magic-string: ^0.26.1 + react-docgen-typescript: ^2.1.1 + peerDependencies: + typescript: ">= 4.3.x" + vite: ">2.0.0-0" + checksum: 075dc5a98122e66ef4203550fb4050a283a0c889d55cce729219b0707ddc703162c07dafd188363e398bdbd5c3604aa9b310d845c37402dffb284ff1669394e1 + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.1.0": version: 0.1.1 resolution: "@jridgewell/gen-mapping@npm:0.1.1" @@ -6605,6 +6748,16 @@ __metadata: languageName: node linkType: hard +"@rollup/pluginutils@npm:^4.2.1": + version: 4.2.1 + resolution: "@rollup/pluginutils@npm:4.2.1" + dependencies: + estree-walker: ^2.0.1 + picomatch: ^2.2.2 + checksum: 3ee56b2c8f1ed8dfd0a92631da1af3a2dfdd0321948f089b3752b4de1b54dc5076701eadd0e5fc18bd191b77af594ac1db6279e83951238ba16bf8a414c64c48 + languageName: node + linkType: hard + "@rushstack/eslint-patch@npm:^1.0.8, @rushstack/eslint-patch@npm:^1.1.0": version: 1.1.4 resolution: "@rushstack/eslint-patch@npm:1.1.4" @@ -7565,6 +7718,45 @@ __metadata: languageName: unknown linkType: soft +"@storybook/builder-vite@workspace:lib/builder-vite": + version: 0.0.0-use.local + resolution: "@storybook/builder-vite@workspace:lib/builder-vite" + dependencies: + "@joshwooding/vite-plugin-react-docgen-typescript": 0.0.5 + "@storybook/addons": 7.0.0-alpha.19 + "@storybook/channel-postmessage": 7.0.0-alpha.19 + "@storybook/channel-websocket": 7.0.0-alpha.19 + "@storybook/client-api": 7.0.0-alpha.19 + "@storybook/client-logger": 7.0.0-alpha.19 + "@storybook/core-common": 7.0.0-alpha.19 + "@storybook/mdx1-csf": 0.0.5-canary.13.9ce928a.0 + "@storybook/mdx2-csf": ^0.0.3 + "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/preview-web": 7.0.0-alpha.19 + "@storybook/source-loader": 7.0.0-alpha.19 + "@sveltejs/vite-plugin-svelte": ^1.0.0 + "@types/express": ^4.17.13 + "@types/node": ^17.0.23 + "@vitejs/plugin-react": ^2.0.0 + ast-types: ^0.14.2 + es-module-lexer: ^0.9.3 + glob: ^7.2.0 + glob-promise: ^4.2.0 + magic-string: ^0.26.1 + react-docgen: ^6.0.0-alpha.0 + slash: ^3.0.0 + svelte: ^3.49.0 + sveltedoc-parser: ^4.2.1 + vite: 3 + vue-docgen-api: ^4.40.0 + peerDependencies: + "@storybook/mdx2-csf": ^0.0.3 + peerDependenciesMeta: + "@storybook/mdx2-csf": + optional: true + languageName: unknown + linkType: soft + "@storybook/builder-webpack5@7.0.0-alpha.19, @storybook/builder-webpack5@workspace:lib/builder-webpack5": version: 0.0.0-use.local resolution: "@storybook/builder-webpack5@workspace:lib/builder-webpack5" @@ -9588,6 +9780,27 @@ __metadata: languageName: node linkType: hard +"@sveltejs/vite-plugin-svelte@npm:^1.0.0": + version: 1.0.1 + resolution: "@sveltejs/vite-plugin-svelte@npm:1.0.1" + dependencies: + "@rollup/pluginutils": ^4.2.1 + debug: ^4.3.4 + deepmerge: ^4.2.2 + kleur: ^4.1.5 + magic-string: ^0.26.2 + svelte-hmr: ^0.14.12 + peerDependencies: + diff-match-patch: ^1.0.5 + svelte: ^3.44.0 + vite: ^3.0.0 + peerDependenciesMeta: + diff-match-patch: + optional: true + checksum: 08f7f1e29a76d62c5f00a258a35e134c4d928fb81ce882a4582feb71560661dfe9aae12785b43f6b6dfc6ec19eb41f1aa8a794c15b313735233563445aaa1bb2 + languageName: node + linkType: hard + "@svgr/babel-plugin-add-jsx-attribute@npm:^5.4.0": version: 5.4.0 resolution: "@svgr/babel-plugin-add-jsx-attribute@npm:5.4.0" @@ -10558,7 +10771,7 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^17.0": +"@types/node@npm:^17.0, @types/node@npm:^17.0.23": version: 17.0.45 resolution: "@types/node@npm:17.0.45" checksum: 0db377133d709b33a47892581a21a41cd7958f22723a3cc6c71d55ac018121382de42fbfc7970d5ae3e7819dbe5f40e1c6a5174aedf7e7964e9cb8fa72b580b0 @@ -11421,6 +11634,23 @@ __metadata: languageName: node linkType: hard +"@vitejs/plugin-react@npm:^2.0.0": + version: 2.0.1 + resolution: "@vitejs/plugin-react@npm:2.0.1" + dependencies: + "@babel/core": ^7.18.10 + "@babel/plugin-transform-react-jsx": ^7.18.10 + "@babel/plugin-transform-react-jsx-development": ^7.18.6 + "@babel/plugin-transform-react-jsx-self": ^7.18.6 + "@babel/plugin-transform-react-jsx-source": ^7.18.6 + magic-string: ^0.26.2 + react-refresh: ^0.14.0 + peerDependencies: + vite: ^3.0.0 + checksum: 67e37622b0aa82506fdce4e6ad786f09362fb2eec1789e3d10ff139860b460bb3cea7adccc3100f6a7e4f6b84c9f20abf8d8ace29e52ccc17c3e1ad0bc23f3a6 + languageName: node + linkType: hard + "@vue/babel-helper-vue-jsx-merge-props@npm:^1.2.1": version: 1.2.1 resolution: "@vue/babel-helper-vue-jsx-merge-props@npm:1.2.1" @@ -12474,6 +12704,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.6.0": + version: 8.8.0 + resolution: "acorn@npm:8.8.0" + bin: + acorn: bin/acorn + checksum: 5efce4f59554e0ab766f32932cba34b86cc2ecdf24fcd27463beff41d8a1b1b9575c21f92c1b9f7f82b93374a9d5aed33c91f93e2d0cb1bdf3f1e06ec131e816 + languageName: node + linkType: hard + "address@npm:^1.0.1, address@npm:^1.1.2": version: 1.2.0 resolution: "address@npm:1.2.0" @@ -13352,6 +13591,15 @@ __metadata: languageName: node linkType: hard +"ast-types@npm:0.15.2": + version: 0.15.2 + resolution: "ast-types@npm:0.15.2" + dependencies: + tslib: ^2.0.1 + checksum: 5b26e3656e9e8d1db8c8d14971d0cb88ca0138aacce72171cb4cd4555fc8dc53c07e821c568e57fe147366931708fefd25cb9d7e880d42ce9cb569947844c962 + languageName: node + linkType: hard + "ast-types@npm:0.9.6": version: 0.9.6 resolution: "ast-types@npm:0.9.6" @@ -20259,7 +20507,7 @@ __metadata: languageName: node linkType: hard -"es-module-lexer@npm:^0.9.0": +"es-module-lexer@npm:^0.9.0, es-module-lexer@npm:^0.9.3": version: 0.9.3 resolution: "es-module-lexer@npm:0.9.3" checksum: be77d73aee709fdc68d22b9938da81dfee3bc45e8d601629258643fe5bfdab253d6e2540035e035cfa8cf52a96366c1c19b46bcc23b4507b1d44e5907d2e7f6c @@ -21112,7 +21360,7 @@ __metadata: languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.0.0, eslint-visitor-keys@npm:^3.3.0": +"eslint-visitor-keys@npm:^3.0.0, eslint-visitor-keys@npm:^3.1.0, eslint-visitor-keys@npm:^3.3.0": version: 3.3.0 resolution: "eslint-visitor-keys@npm:3.3.0" checksum: fc6a9b5bdee8d90e35e7564fd9db10fdf507a2c089a4f0d4d3dd091f7f4ac6790547c8b1b7a760642ef819f875ef86dd5bcb8cdf01b0775f57a699f4e6a20a18 @@ -21203,6 +21451,17 @@ __metadata: languageName: node linkType: hard +"espree@npm:9.2.0": + version: 9.2.0 + resolution: "espree@npm:9.2.0" + dependencies: + acorn: ^8.6.0 + acorn-jsx: ^5.3.1 + eslint-visitor-keys: ^3.1.0 + checksum: fa0acceb6bf151193b873379ba8ee3771c93ce3b656aeb9fe4a36adcf170e315925096e8addddd2d347ae6026ab18febc5892e314e6b109b61a9c3be75f88dc0 + languageName: node + linkType: hard + "espree@npm:^7.3.0, espree@npm:^7.3.1": version: 7.3.1 resolution: "espree@npm:7.3.1" @@ -23528,6 +23787,17 @@ __metadata: languageName: node linkType: hard +"glob-promise@npm:^4.2.0": + version: 4.2.2 + resolution: "glob-promise@npm:4.2.2" + dependencies: + "@types/glob": ^7.1.3 + peerDependencies: + glob: ^7.1.6 + checksum: 3eb01bed2901539365df6a4d27800afb8788840647d01f9bf3500b3de756597f2ff4b8c823971ace34db228c83159beca459dc42a70968d4e9c8200ed2cc96bd + languageName: node + linkType: hard + "glob-to-regexp@npm:^0.3.0": version: 0.3.0 resolution: "glob-to-regexp@npm:0.3.0" @@ -28831,7 +29101,7 @@ __metadata: languageName: node linkType: hard -"kleur@npm:^4.0.3": +"kleur@npm:^4.0.3, kleur@npm:^4.1.5": version: 4.1.5 resolution: "kleur@npm:4.1.5" checksum: e9de6cb49657b6fa70ba2d1448fd3d691a5c4370d8f7bbf1c2f64c24d461270f2117e1b0afe8cb3114f13bbd8e51de158c2a224953960331904e636a5e4c0f2a @@ -30129,7 +30399,7 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:^0.26.0": +"magic-string@npm:^0.26.0, magic-string@npm:^0.26.1, magic-string@npm:^0.26.2": version: 0.26.2 resolution: "magic-string@npm:0.26.2" dependencies: @@ -35561,6 +35831,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.16": + version: 8.4.16 + resolution: "postcss@npm:8.4.16" + dependencies: + nanoid: ^3.3.4 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: 971e10b5492ffce3d30e39ffba1b4f135d0c751bf774493babe4cb89ddb4995aabb2ce290f48bbf1d9ae60016a6ad492535e614b22b15322f977c7744e800fa2 + languageName: node + linkType: hard + "posthtml-parser@npm:^0.10.1": version: 0.10.2 resolution: "posthtml-parser@npm:0.10.2" @@ -36811,6 +37092,26 @@ __metadata: languageName: node linkType: hard +"react-docgen@npm:^6.0.0-alpha.0": + version: 6.0.0-alpha.3 + resolution: "react-docgen@npm:6.0.0-alpha.3" + dependencies: + "@babel/core": ^7.7.5 + "@babel/generator": ^7.12.11 + ast-types: ^0.14.2 + commander: ^2.19.0 + doctrine: ^3.0.0 + estree-to-babel: ^3.1.0 + neo-async: ^2.6.1 + node-dir: ^0.1.10 + resolve: ^1.17.0 + strip-indent: ^3.0.0 + bin: + react-docgen: bin/react-docgen.js + checksum: 284bba5528d5e9084c3ed36b2d2fec8fc5d55f3fb8ca544ec3a0d1ab98c39001ecb7db6e03a1088b82eb3d750c1343cde2fc9b7729540277eda40e10f38912d8 + languageName: node + linkType: hard + "react-dom@npm:16.14.0, react-dom@npm:^16.14.0, react-dom@npm:^16.8.0": version: 16.14.0 resolution: "react-dom@npm:16.14.0" @@ -37067,6 +37368,13 @@ __metadata: languageName: node linkType: hard +"react-refresh@npm:^0.14.0": + version: 0.14.0 + resolution: "react-refresh@npm:0.14.0" + checksum: b8ae07ad153357d77830928a7f1fc2df837aabefee907fa273ba04c7643f3b860e986f1d4b7ada9b721c8d79b8c24b5b911a314a1a2398b105f1b13d19ea2b8d + languageName: node + linkType: hard + "react-refresh@npm:^0.9.0": version: 0.9.0 resolution: "react-refresh@npm:0.9.0" @@ -37524,6 +37832,18 @@ __metadata: languageName: node linkType: hard +"recast@npm:0.21.1": + version: 0.21.1 + resolution: "recast@npm:0.21.1" + dependencies: + ast-types: 0.15.2 + esprima: ~4.0.0 + source-map: ~0.6.1 + tslib: ^2.0.1 + checksum: f3e103a21594dc3ef1d481f81be327d349798e7d1b9a57cecfac5d4cadc59e3865b12a28f364f7191e158b16c9deaf6cb3341953d591fe63d22e4ad5b6a995dd + languageName: node + linkType: hard + "recast@npm:^0.11.17": version: 0.11.23 resolution: "recast@npm:0.11.23" @@ -38988,6 +39308,20 @@ __metadata: languageName: node linkType: hard +"rollup@npm:>=2.75.6 <2.77.0 || ~2.77.0": + version: 2.77.3 + resolution: "rollup@npm:2.77.3" + dependencies: + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 7e04ba4e8fdbc3a4a368013e4b788044c16fe94e7301aacbf38e37210983e159b97887ddd3333be9f78fedb30264f094c111ff56a0207c21d4e1745248a7aa42 + languageName: node + linkType: hard + "rollup@npm:^2.43.1, rollup@npm:^2.60.2, rollup@npm:^2.74.1": version: 2.77.0 resolution: "rollup@npm:2.77.0" @@ -41489,7 +41823,7 @@ __metadata: languageName: unknown linkType: soft -"svelte-hmr@npm:^0.14.2": +"svelte-hmr@npm:^0.14.12, svelte-hmr@npm:^0.14.2": version: 0.14.12 resolution: "svelte-hmr@npm:0.14.12" peerDependencies: @@ -41570,7 +41904,7 @@ __metadata: languageName: node linkType: hard -"svelte@npm:^3.31.2, svelte@npm:^3.48.0": +"svelte@npm:^3.31.2, svelte@npm:^3.48.0, svelte@npm:^3.49.0": version: 3.49.0 resolution: "svelte@npm:3.49.0" checksum: 22bf1a252911c03fcbb840c89e02493af29304c8920e67cb2d63bb9477892dd7babd2fdeed9147328e72ba38211427e0658831b89ef63563415091b643fb116d @@ -41588,6 +41922,17 @@ __metadata: languageName: node linkType: hard +"sveltedoc-parser@npm:^4.2.1": + version: 4.3.1 + resolution: "sveltedoc-parser@npm:4.3.1" + dependencies: + eslint: 8.4.1 + espree: 9.2.0 + htmlparser2-svelte: 4.1.0 + checksum: 38e0258956fcf1bbe2ecc61286b73e96eedbec62e236c6b3adfc7055a4b2b50034b99f887a9e5eaccac233a87ccbc9434abe156f6a3ef25a640dcb54a4b99f46 + languageName: node + linkType: hard + "svg-parser@npm:^2.0.2": version: 2.0.4 resolution: "svg-parser@npm:2.0.4" @@ -44262,6 +44607,38 @@ __metadata: languageName: node linkType: hard +"vite@npm:3": + version: 3.0.7 + resolution: "vite@npm:3.0.7" + dependencies: + esbuild: ^0.14.47 + fsevents: ~2.3.2 + postcss: ^8.4.16 + resolve: ^1.22.1 + rollup: ">=2.75.6 <2.77.0 || ~2.77.0" + peerDependencies: + less: "*" + sass: "*" + stylus: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + less: + optional: true + sass: + optional: true + stylus: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 6d34332bbd3eab2928cdb720b2d8cfe22153908e4061fe0d509c9a9870f3db33652c9370da86c4705732f4da55dd54c4705f9ca5ca3e3b8f4bdd9177130988ef + languageName: node + linkType: hard + "vlq@npm:^0.2.1": version: 0.2.3 resolution: "vlq@npm:0.2.3" @@ -44384,6 +44761,25 @@ __metadata: languageName: unknown linkType: soft +"vue-docgen-api@npm:^4.40.0": + version: 4.52.0 + resolution: "vue-docgen-api@npm:4.52.0" + dependencies: + "@babel/parser": ^7.13.12 + "@babel/types": ^7.18.8 + "@vue/compiler-dom": ^3.2.0 + "@vue/compiler-sfc": ^3.2.0 + ast-types: 0.14.2 + hash-sum: ^1.0.2 + lru-cache: ^4.1.5 + pug: ^3.0.2 + recast: 0.21.1 + ts-map: ^1.0.3 + vue-inbrowser-compiler-independent-utils: ^4.52.0 + checksum: 38e7d44205a6fc14fc28c98e77f89fee5167ef0ad59e9083fcf17f8b9fb9e7aa20941a107b6b67fa7f9bfbf5bf0159925ac750b4d99ee06154e01a2695bf58ad + languageName: node + linkType: hard + "vue-docgen-api@npm:^4.44.23, vue-docgen-api@npm:^4.46.0": version: 4.47.0 resolution: "vue-docgen-api@npm:4.47.0" @@ -44473,6 +44869,15 @@ __metadata: languageName: node linkType: hard +"vue-inbrowser-compiler-independent-utils@npm:^4.52.0": + version: 4.52.0 + resolution: "vue-inbrowser-compiler-independent-utils@npm:4.52.0" + peerDependencies: + vue: ">=2" + checksum: 20d8577a94cd7e0a591ba1f0bea7ccbe87d51389b33523ad7b86bc1f6e13c78f3438b837ed78631b6e7cb4ef7a56b1d6d2a70a5f51b6f6fc100d644438ae28aa + languageName: node + linkType: hard + "vue-inbrowser-compiler-utils@npm:^4.44.23": version: 4.46.0 resolution: "vue-inbrowser-compiler-utils@npm:4.46.0" From fe4c852783dd39823e01451e33a3a18a59c76379 Mon Sep 17 00:00:00 2001 From: Ian VanSchooten Date: Sat, 13 Aug 2022 00:39:28 -0400 Subject: [PATCH 05/62] Add builder-vite to nx and workspace --- code/nx.json | 1 + code/workspace.json | 1 + 2 files changed, 2 insertions(+) diff --git a/code/nx.json b/code/nx.json index 238750d72cae..b085aa64d1b2 100644 --- a/code/nx.json +++ b/code/nx.json @@ -87,6 +87,7 @@ "@storybook/builder-manager": { "implicitDependencies": [] }, "@storybook/addons": { "implicitDependencies": [] }, "@storybook/api": { "implicitDependencies": [] }, + "@storybook/builder-vite": { "implicitDependencies": [] }, "@storybook/builder-webpack5": { "implicitDependencies": [] }, "@storybook/channel-postmessage": { "implicitDependencies": [] }, "@storybook/channel-websocket": { "implicitDependencies": [] }, diff --git a/code/workspace.json b/code/workspace.json index f5f67f24ee49..e6e0e3ef28fd 100644 --- a/code/workspace.json +++ b/code/workspace.json @@ -66,6 +66,7 @@ "@storybook/addons": { "root": "lib/addons", "type": "library" }, "@storybook/api": { "root": "lib/api", "type": "library" }, + "@storybook/builder-vite": { "root": "lib/builder-vite", "type": "library" }, "@storybook/builder-webpack5": { "root": "lib/builder-webpack5", "type": "library" }, "@storybook/channel-postmessage": { "root": "lib/channel-postmessage", "type": "library" }, "@storybook/channel-websocket": { "root": "lib/channel-websocket", "type": "library" }, From 01e3663b76d141be58b107be8311bf40a1b7bb20 Mon Sep 17 00:00:00 2001 From: Michael Shilman Date: Sun, 14 Aug 2022 11:50:22 +0800 Subject: [PATCH 06/62] Vite core, react, and example app (WIP) --- code/examples/vite-react-app/.eslintrc.js | 11 + code/examples/vite-react-app/.gitignore | 24 ++ .../vite-react-app/.storybook/main.cjs | 8 + .../.storybook/preview-head.html | 3 + .../vite-react-app/.storybook/preview.js | 9 + code/examples/vite-react-app/index.html | 13 + code/examples/vite-react-app/package.json | 27 ++ code/examples/vite-react-app/src/App.css | 42 ++ code/examples/vite-react-app/src/App.jsx | 46 +++ code/examples/vite-react-app/src/favicon.svg | 15 + code/examples/vite-react-app/src/index.css | 13 + code/examples/vite-react-app/src/logo.svg | 7 + code/examples/vite-react-app/src/main.jsx | 11 + .../vite-react-app/src/stories/Button.jsx | 50 +++ .../src/stories/Button.stories.jsx | 40 ++ .../vite-react-app/src/stories/Header.jsx | 59 +++ .../src/stories/Header.stories.jsx | 24 ++ .../src/stories/Introduction.stories.mdx | 211 ++++++++++ .../vite-react-app/src/stories/Page.jsx | 69 ++++ .../src/stories/Page.stories.jsx | 25 ++ .../src/stories/assets/code-brackets.svg | 1 + .../src/stories/assets/colors.svg | 1 + .../src/stories/assets/comments.svg | 1 + .../src/stories/assets/direction.svg | 1 + .../src/stories/assets/flow.svg | 1 + .../src/stories/assets/plugin.svg | 1 + .../src/stories/assets/repo.svg | 1 + .../src/stories/assets/stackalt.svg | 1 + .../vite-react-app/src/stories/button.css | 30 ++ .../vite-react-app/src/stories/header.css | 32 ++ .../vite-react-app/src/stories/page.css | 69 ++++ code/examples/vite-react-app/vite.config.js | 7 + code/frameworks/react-vite/README.md | 1 + code/frameworks/react-vite/package.json | 106 +++++ code/frameworks/react-vite/preset.js | 1 + code/frameworks/react-vite/src/index.ts | 2 + .../docgen-handlers/actualNameHandler.ts | 48 +++ .../react-vite/src/plugins/react-docgen.ts | 69 ++++ code/frameworks/react-vite/src/preset.ts | 58 +++ code/frameworks/react-vite/src/types.ts | 64 +++ code/frameworks/react-vite/src/typings.d.ts | 46 +++ code/frameworks/react-vite/tsconfig.json | 10 + code/lib/builder-vite/package.json | 4 +- .../builder-vite/src/codegen-iframe-script.ts | 11 +- .../src/codegen-modern-iframe-script.ts | 12 +- .../src/codegen-set-addon-channel.ts | 4 +- .../src/types/extended-options.type.ts | 2 + code/lib/channel-websocket/src/index.ts | 3 + code/lib/core-vite/README.md | 3 + code/lib/core-vite/package.json | 50 +++ code/lib/core-vite/src/index.ts | 1 + code/lib/core-vite/src/types.ts | 30 ++ code/lib/core-vite/tsconfig.json | 12 + code/nx.json | 5 +- code/workspace.json | 4 + code/yarn.lock | 363 +++++++++++++++++- scripts/check-package.js | 2 +- 57 files changed, 1743 insertions(+), 21 deletions(-) create mode 100644 code/examples/vite-react-app/.eslintrc.js create mode 100644 code/examples/vite-react-app/.gitignore create mode 100644 code/examples/vite-react-app/.storybook/main.cjs create mode 100644 code/examples/vite-react-app/.storybook/preview-head.html create mode 100644 code/examples/vite-react-app/.storybook/preview.js create mode 100644 code/examples/vite-react-app/index.html create mode 100644 code/examples/vite-react-app/package.json create mode 100644 code/examples/vite-react-app/src/App.css create mode 100644 code/examples/vite-react-app/src/App.jsx create mode 100644 code/examples/vite-react-app/src/favicon.svg create mode 100644 code/examples/vite-react-app/src/index.css create mode 100644 code/examples/vite-react-app/src/logo.svg create mode 100644 code/examples/vite-react-app/src/main.jsx create mode 100644 code/examples/vite-react-app/src/stories/Button.jsx create mode 100644 code/examples/vite-react-app/src/stories/Button.stories.jsx create mode 100644 code/examples/vite-react-app/src/stories/Header.jsx create mode 100644 code/examples/vite-react-app/src/stories/Header.stories.jsx create mode 100644 code/examples/vite-react-app/src/stories/Introduction.stories.mdx create mode 100644 code/examples/vite-react-app/src/stories/Page.jsx create mode 100644 code/examples/vite-react-app/src/stories/Page.stories.jsx create mode 100644 code/examples/vite-react-app/src/stories/assets/code-brackets.svg create mode 100644 code/examples/vite-react-app/src/stories/assets/colors.svg create mode 100644 code/examples/vite-react-app/src/stories/assets/comments.svg create mode 100644 code/examples/vite-react-app/src/stories/assets/direction.svg create mode 100644 code/examples/vite-react-app/src/stories/assets/flow.svg create mode 100644 code/examples/vite-react-app/src/stories/assets/plugin.svg create mode 100644 code/examples/vite-react-app/src/stories/assets/repo.svg create mode 100644 code/examples/vite-react-app/src/stories/assets/stackalt.svg create mode 100644 code/examples/vite-react-app/src/stories/button.css create mode 100644 code/examples/vite-react-app/src/stories/header.css create mode 100644 code/examples/vite-react-app/src/stories/page.css create mode 100644 code/examples/vite-react-app/vite.config.js create mode 100644 code/frameworks/react-vite/README.md create mode 100644 code/frameworks/react-vite/package.json create mode 100644 code/frameworks/react-vite/preset.js create mode 100644 code/frameworks/react-vite/src/index.ts create mode 100644 code/frameworks/react-vite/src/plugins/docgen-handlers/actualNameHandler.ts create mode 100644 code/frameworks/react-vite/src/plugins/react-docgen.ts create mode 100644 code/frameworks/react-vite/src/preset.ts create mode 100644 code/frameworks/react-vite/src/types.ts create mode 100644 code/frameworks/react-vite/src/typings.d.ts create mode 100644 code/frameworks/react-vite/tsconfig.json create mode 100644 code/lib/core-vite/README.md create mode 100644 code/lib/core-vite/package.json create mode 100644 code/lib/core-vite/src/index.ts create mode 100644 code/lib/core-vite/src/types.ts create mode 100644 code/lib/core-vite/tsconfig.json diff --git a/code/examples/vite-react-app/.eslintrc.js b/code/examples/vite-react-app/.eslintrc.js new file mode 100644 index 000000000000..593bd9708109 --- /dev/null +++ b/code/examples/vite-react-app/.eslintrc.js @@ -0,0 +1,11 @@ +module.exports = { + extends: ['../../.eslintrc.js'], + env: { + browser: true, + }, + rules: { + 'import/extensions': [0], + 'import/no-unresolved': [0], + 'react/react-in-jsx-scope': [0], + }, +}; diff --git a/code/examples/vite-react-app/.gitignore b/code/examples/vite-react-app/.gitignore new file mode 100644 index 000000000000..a547bf36d8d1 --- /dev/null +++ b/code/examples/vite-react-app/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/code/examples/vite-react-app/.storybook/main.cjs b/code/examples/vite-react-app/.storybook/main.cjs new file mode 100644 index 000000000000..3328a5e5af4f --- /dev/null +++ b/code/examples/vite-react-app/.storybook/main.cjs @@ -0,0 +1,8 @@ +module.exports = { + stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], + addons: ['@storybook/addon-essentials'], + framework: '@storybook/react-vite', + features: { + storyStoreV7: true, + }, +}; diff --git a/code/examples/vite-react-app/.storybook/preview-head.html b/code/examples/vite-react-app/.storybook/preview-head.html new file mode 100644 index 000000000000..05da1e9dfbfe --- /dev/null +++ b/code/examples/vite-react-app/.storybook/preview-head.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/code/examples/vite-react-app/.storybook/preview.js b/code/examples/vite-react-app/.storybook/preview.js new file mode 100644 index 000000000000..d3914580a724 --- /dev/null +++ b/code/examples/vite-react-app/.storybook/preview.js @@ -0,0 +1,9 @@ +export const parameters = { + actions: { argTypesRegex: '^on[A-Z].*' }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, +}; diff --git a/code/examples/vite-react-app/index.html b/code/examples/vite-react-app/index.html new file mode 100644 index 000000000000..b46ab83364e3 --- /dev/null +++ b/code/examples/vite-react-app/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/code/examples/vite-react-app/package.json b/code/examples/vite-react-app/package.json new file mode 100644 index 000000000000..1e037c833991 --- /dev/null +++ b/code/examples/vite-react-app/package.json @@ -0,0 +1,27 @@ +{ + "name": "@storybook/example-vite-react-app", + "version": "7.0.0-alpha.19", + "scripts": { + "build": "vite build", + "build-storybook": "STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true sb build", + "dev": "vite", + "preview": "vite preview", + "storybook": "STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true sb dev --no-manager-cache" + }, + "dependencies": { + "react": "^17.0.2", + "react-dom": "^17.0.2" + }, + "devDependencies": { + "@mdx-js/preact": "^1.6.0", + "@mdx-js/react": "^1.6.0", + "@storybook/addon-essentials": "7.0.0-alpha.19", + "@storybook/builder-vite": "^0.1.33", + "@storybook/react": "7.0.0-alpha.19", + "@storybook/react-vite": "7.0.0-alpha.19", + "@vitejs/plugin-react": "^1.0.7", + "prop-types": "^15.8.1", + "sb": "7.0.0-alpha.19", + "vite": "^2.9.0" + } +} diff --git a/code/examples/vite-react-app/src/App.css b/code/examples/vite-react-app/src/App.css new file mode 100644 index 000000000000..8da3fde63d9e --- /dev/null +++ b/code/examples/vite-react-app/src/App.css @@ -0,0 +1,42 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; + pointer-events: none; +} + +@media (prefers-reduced-motion: no-preference) { + .App-logo { + animation: App-logo-spin infinite 20s linear; + } +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #61dafb; +} + +@keyframes App-logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +button { + font-size: calc(10px + 2vmin); +} diff --git a/code/examples/vite-react-app/src/App.jsx b/code/examples/vite-react-app/src/App.jsx new file mode 100644 index 000000000000..28cea7c891ff --- /dev/null +++ b/code/examples/vite-react-app/src/App.jsx @@ -0,0 +1,46 @@ +/* eslint-disable no-shadow */ +import { useState } from 'react'; +import logo from './logo.svg'; +import './App.css'; + +function App() { + const [count, setCount] = useState(0); + + return ( +
+
+ logo +

Hello Vite + React!

+

+ +

+

+ Edit App.jsx and save to test HMR updates. +

+

+ + Learn React + + {' | '} + + Vite Docs + +

+
+
+ ); +} + +export default App; diff --git a/code/examples/vite-react-app/src/favicon.svg b/code/examples/vite-react-app/src/favicon.svg new file mode 100644 index 000000000000..de4aeddc12bd --- /dev/null +++ b/code/examples/vite-react-app/src/favicon.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/code/examples/vite-react-app/src/index.css b/code/examples/vite-react-app/src/index.css new file mode 100644 index 000000000000..ec2585e8c0bb --- /dev/null +++ b/code/examples/vite-react-app/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', + 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', + monospace; +} diff --git a/code/examples/vite-react-app/src/logo.svg b/code/examples/vite-react-app/src/logo.svg new file mode 100644 index 000000000000..6b60c1042f58 --- /dev/null +++ b/code/examples/vite-react-app/src/logo.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/code/examples/vite-react-app/src/main.jsx b/code/examples/vite-react-app/src/main.jsx new file mode 100644 index 000000000000..6832e7832bb9 --- /dev/null +++ b/code/examples/vite-react-app/src/main.jsx @@ -0,0 +1,11 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import './index.css'; +import App from './App'; + +ReactDOM.render( + + + , + document.getElementById('root') +); diff --git a/code/examples/vite-react-app/src/stories/Button.jsx b/code/examples/vite-react-app/src/stories/Button.jsx new file mode 100644 index 000000000000..15dde3920956 --- /dev/null +++ b/code/examples/vite-react-app/src/stories/Button.jsx @@ -0,0 +1,50 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import './button.css'; + +/** + * Primary UI component for user interaction + */ +export const Button = ({ primary, backgroundColor, size, label, ...props }) => { + const mode = primary ? 'storybook-button--primary' : 'storybook-button--secondary'; + return ( + + ); +}; + +Button.propTypes = { + /** + * Is this the principal call to action on the page? + */ + primary: PropTypes.bool, + /** + * What background color to use + */ + backgroundColor: PropTypes.string, + /** + * How large should the button be? + */ + size: PropTypes.oneOf(['small', 'medium', 'large']), + /** + * Button contents + */ + label: PropTypes.string.isRequired, + /** + * Optional click handler + */ + onClick: PropTypes.func, +}; + +Button.defaultProps = { + backgroundColor: null, + primary: false, + size: 'medium', + onClick: undefined, +}; diff --git a/code/examples/vite-react-app/src/stories/Button.stories.jsx b/code/examples/vite-react-app/src/stories/Button.stories.jsx new file mode 100644 index 000000000000..61f6e19e14d7 --- /dev/null +++ b/code/examples/vite-react-app/src/stories/Button.stories.jsx @@ -0,0 +1,40 @@ +import React from 'react'; + +import { Button } from './Button'; + +// More on default export: https://storybook.js.org/docs/react/writing-stories/introduction#default-export +export default { + title: 'Example/Button', + component: Button, + // More on argTypes: https://storybook.js.org/docs/react/api/argtypes + argTypes: { + backgroundColor: { control: 'color' }, + }, +}; + +// More on component templates: https://storybook.js.org/docs/react/writing-stories/introduction#using-args +const Template = (args) => ; diff --git a/code/examples/official-storybook/stories/title/CustomTitle.stories.js b/code/examples/official-storybook/stories/title/CustomTitle.stories.js index 1ff5710b11d1..12182a5d961e 100644 --- a/code/examples/official-storybook/stories/title/CustomTitle.stories.js +++ b/code/examples/official-storybook/stories/title/CustomTitle.stories.js @@ -8,4 +8,4 @@ export default { component: Button, }; -export const Basic = () => ; diff --git a/code/examples/preact-kitchen-sink/package.json b/code/examples/preact-kitchen-sink/package.json index ceace462a3dc..9718da38547f 100644 --- a/code/examples/preact-kitchen-sink/package.json +++ b/code/examples/preact-kitchen-sink/package.json @@ -1,6 +1,6 @@ { "name": "preact-example", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "scripts": { "build": "cross-env NODE_ENV=production webpack --progress --hide-modules", @@ -14,18 +14,18 @@ }, "devDependencies": { "@babel/core": "^7.12.10", - "@storybook/addon-a11y": "7.0.0-alpha.19", - "@storybook/addon-actions": "7.0.0-alpha.19", - "@storybook/addon-backgrounds": "7.0.0-alpha.19", - "@storybook/addon-highlight": "7.0.0-alpha.19", - "@storybook/addon-links": "7.0.0-alpha.19", - "@storybook/addon-storyshots": "7.0.0-alpha.19", - "@storybook/addon-storysource": "7.0.0-alpha.19", - "@storybook/addon-viewport": "7.0.0-alpha.19", - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/preact": "7.0.0-alpha.19", - "@storybook/preact-webpack5": "7.0.0-alpha.19", - "@storybook/source-loader": "7.0.0-alpha.19", + "@storybook/addon-a11y": "7.0.0-alpha.21", + "@storybook/addon-actions": "7.0.0-alpha.21", + "@storybook/addon-backgrounds": "7.0.0-alpha.21", + "@storybook/addon-highlight": "7.0.0-alpha.21", + "@storybook/addon-links": "7.0.0-alpha.21", + "@storybook/addon-storyshots": "7.0.0-alpha.21", + "@storybook/addon-storysource": "7.0.0-alpha.21", + "@storybook/addon-viewport": "7.0.0-alpha.21", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/preact": "7.0.0-alpha.21", + "@storybook/preact-webpack5": "7.0.0-alpha.21", + "@storybook/source-loader": "7.0.0-alpha.21", "@types/prop-types": "^15.7.3", "@types/react": "^17", "@types/react-dom": "^17", @@ -38,7 +38,7 @@ "raw-loader": "^4.0.2", "react": "^17.0.2", "react-dom": "^17.0.2", - "storybook": "7.0.0-alpha.19", + "storybook": "7.0.0-alpha.21", "svg-url-loader": "^7.1.1", "webpack": "5", "webpack-dev-server": "^4.8.1" diff --git a/code/examples/react-ts/package.json b/code/examples/react-ts/package.json index 112c7e19f018..96f400db8c51 100644 --- a/code/examples/react-ts/package.json +++ b/code/examples/react-ts/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/example-react-ts", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "scripts": { "build-storybook": "cross-env STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true storybook build", @@ -17,15 +17,15 @@ "@babel/preset-env": "^7.12.11", "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", - "@storybook/addon-essentials": "7.0.0-alpha.19", - "@storybook/addon-storyshots": "7.0.0-alpha.19", - "@storybook/addon-storysource": "7.0.0-alpha.19", - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/cli": "7.0.0-alpha.19", - "@storybook/components": "7.0.0-alpha.19", - "@storybook/react": "7.0.0-alpha.19", - "@storybook/react-webpack5": "7.0.0-alpha.19", - "@storybook/theming": "7.0.0-alpha.19", + "@storybook/addon-essentials": "7.0.0-alpha.21", + "@storybook/addon-storyshots": "7.0.0-alpha.21", + "@storybook/addon-storysource": "7.0.0-alpha.21", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/cli": "7.0.0-alpha.21", + "@storybook/components": "7.0.0-alpha.21", + "@storybook/react": "7.0.0-alpha.21", + "@storybook/react-webpack5": "7.0.0-alpha.21", + "@storybook/theming": "7.0.0-alpha.21", "@testing-library/dom": "^7.31.2", "@testing-library/react": "12.1.2", "@testing-library/user-event": "^13.1.9", @@ -34,7 +34,7 @@ "@types/react-dom": "^16.9.14", "cross-env": "^7.0.3", "lodash": "^4.17.21", - "storybook": "7.0.0-alpha.19", + "storybook": "7.0.0-alpha.21", "typescript": "~4.6.3", "webpack": "5" } diff --git a/code/examples/react-ts/src/__snapshots__/storyshots.test.ts.snap b/code/examples/react-ts/src/__snapshots__/storyshots.test.ts.snap index a3430706744a..fbd5d981a4b7 100644 --- a/code/examples/react-ts/src/__snapshots__/storyshots.test.ts.snap +++ b/code/examples/react-ts/src/__snapshots__/storyshots.test.ts.snap @@ -46,12 +46,12 @@ exports[`Storyshots Custom Prefix/AutoTitle Basic 1`] = ` .emotion-0 svg { display: inline-block; - height: 14px; - width: 14px; + height: 12px; + width: 12px; vertical-align: top; margin-right: 4px; - margin-top: -1px; - margin-bottom: -1px; + margin-top: 0; + margin-bottom: 0; pointer-events: none; } @@ -81,8 +81,9 @@ exports[`Storyshots Custom Prefix/AutoTitle Basic 1`] = ` `; exports[`Storyshots Custom Prefix/CustomTitle Basic 1`] = ` @@ -131,12 +132,12 @@ exports[`Storyshots Custom Prefix/CustomTitle Basic 1`] = ` .emotion-0 svg { display: inline-block; - height: 14px; - width: 14px; + height: 12px; + width: 12px; vertical-align: top; margin-right: 4px; - margin-top: -1px; - margin-bottom: -1px; + margin-top: 0; + margin-bottom: 0; pointer-events: none; } @@ -166,8 +167,9 @@ exports[`Storyshots Custom Prefix/CustomTitle Basic 1`] = ` `; exports[`Storyshots Demo/AccountForm Standard 1`] = ` diff --git a/code/examples/react-ts/src/title/AutoTitle.stories.js b/code/examples/react-ts/src/title/AutoTitle.stories.js index 125c1157c1c1..a7fcbf4a4e82 100644 --- a/code/examples/react-ts/src/title/AutoTitle.stories.js +++ b/code/examples/react-ts/src/title/AutoTitle.stories.js @@ -9,4 +9,4 @@ export default { component: Button, }; -export const Basic = () => ; diff --git a/code/examples/react-ts/src/title/CustomTitle.stories.js b/code/examples/react-ts/src/title/CustomTitle.stories.js index 1ff5710b11d1..12182a5d961e 100644 --- a/code/examples/react-ts/src/title/CustomTitle.stories.js +++ b/code/examples/react-ts/src/title/CustomTitle.stories.js @@ -8,4 +8,4 @@ export default { component: Button, }; -export const Basic = () => ; diff --git a/code/examples/server-kitchen-sink/package.json b/code/examples/server-kitchen-sink/package.json index c5efae0f52d1..6639e8ac6bf0 100644 --- a/code/examples/server-kitchen-sink/package.json +++ b/code/examples/server-kitchen-sink/package.json @@ -1,6 +1,6 @@ { "name": "server-kitchen-sink", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "description": "", "keywords": [], @@ -14,15 +14,15 @@ "storybook": "SERVER_PORT=1137 storybook dev -p 9006 --quiet" }, "devDependencies": { - "@storybook/addon-a11y": "7.0.0-alpha.19", - "@storybook/addon-actions": "7.0.0-alpha.19", - "@storybook/addon-backgrounds": "7.0.0-alpha.19", - "@storybook/addon-controls": "7.0.0-alpha.19", - "@storybook/addon-highlight": "7.0.0-alpha.19", - "@storybook/addon-links": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", - "@storybook/server": "7.0.0-alpha.19", - "@storybook/server-webpack5": "7.0.0-alpha.19", + "@storybook/addon-a11y": "7.0.0-alpha.21", + "@storybook/addon-actions": "7.0.0-alpha.21", + "@storybook/addon-backgrounds": "7.0.0-alpha.21", + "@storybook/addon-controls": "7.0.0-alpha.21", + "@storybook/addon-highlight": "7.0.0-alpha.21", + "@storybook/addon-links": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", + "@storybook/server": "7.0.0-alpha.21", + "@storybook/server-webpack5": "7.0.0-alpha.21", "concurrently": "^5.3.0", "cors": "^2.8.5", "express": "~4.17.1", @@ -30,6 +30,6 @@ "nodemon": "^2.0.7", "pug": "^3.0.0", "safe-identifier": "^0.4.1", - "storybook": "7.0.0-alpha.19" + "storybook": "7.0.0-alpha.21" } } diff --git a/code/examples/standalone-preview/package.json b/code/examples/standalone-preview/package.json index 6a18add58228..3d7fa82ea037 100644 --- a/code/examples/standalone-preview/package.json +++ b/code/examples/standalone-preview/package.json @@ -1,20 +1,20 @@ { "name": "standalone-preview", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "scripts": { "storybook": "cross-env STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true storybook dev -p 9011 -c ../official-storybook --no-manager-cache --preview-url=http://localhost:1337/external-iframe.html", "storybook-preview": "cross-env PREVIEW_URL=external-iframe.html parcel ./storybook.html --port 1337" }, "devDependencies": { - "@storybook/addon-docs": "7.0.0-alpha.19", - "@storybook/cli": "7.0.0-alpha.19", - "@storybook/react": "7.0.0-alpha.19", - "@storybook/react-webpack5": "7.0.0-alpha.19", + "@storybook/addon-docs": "7.0.0-alpha.21", + "@storybook/cli": "7.0.0-alpha.21", + "@storybook/react": "7.0.0-alpha.21", + "@storybook/react-webpack5": "7.0.0-alpha.21", "cross-env": "^7.0.3", "parcel": "2.0.1", "react": "16.14.0", "react-dom": "16.14.0", - "storybook": "7.0.0-alpha.19" + "storybook": "7.0.0-alpha.21" } } diff --git a/code/examples/svelte-kitchen-sink/package.json b/code/examples/svelte-kitchen-sink/package.json index 9c2065eed75b..b5e43abb3ec8 100644 --- a/code/examples/svelte-kitchen-sink/package.json +++ b/code/examples/svelte-kitchen-sink/package.json @@ -1,6 +1,6 @@ { "name": "svelte-example", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "scripts": { "build-storybook": "storybook build", @@ -10,24 +10,24 @@ "global": "^4.4.0" }, "devDependencies": { - "@storybook/addon-a11y": "7.0.0-alpha.19", - "@storybook/addon-actions": "7.0.0-alpha.19", - "@storybook/addon-backgrounds": "7.0.0-alpha.19", - "@storybook/addon-controls": "7.0.0-alpha.19", - "@storybook/addon-docs": "7.0.0-alpha.19", - "@storybook/addon-highlight": "7.0.0-alpha.19", - "@storybook/addon-interactions": "7.0.0-alpha.19", - "@storybook/addon-links": "7.0.0-alpha.19", - "@storybook/addon-storyshots": "7.0.0-alpha.19", - "@storybook/addon-storysource": "7.0.0-alpha.19", - "@storybook/addon-viewport": "7.0.0-alpha.19", - "@storybook/addons": "7.0.0-alpha.19", + "@storybook/addon-a11y": "7.0.0-alpha.21", + "@storybook/addon-actions": "7.0.0-alpha.21", + "@storybook/addon-backgrounds": "7.0.0-alpha.21", + "@storybook/addon-controls": "7.0.0-alpha.21", + "@storybook/addon-docs": "7.0.0-alpha.21", + "@storybook/addon-highlight": "7.0.0-alpha.21", + "@storybook/addon-interactions": "7.0.0-alpha.21", + "@storybook/addon-links": "7.0.0-alpha.21", + "@storybook/addon-storyshots": "7.0.0-alpha.21", + "@storybook/addon-storysource": "7.0.0-alpha.21", + "@storybook/addon-viewport": "7.0.0-alpha.21", + "@storybook/addons": "7.0.0-alpha.21", "@storybook/jest": "^0.0.10", - "@storybook/source-loader": "7.0.0-alpha.19", - "@storybook/svelte": "7.0.0-alpha.19", - "@storybook/svelte-webpack5": "7.0.0-alpha.19", + "@storybook/source-loader": "7.0.0-alpha.21", + "@storybook/svelte": "7.0.0-alpha.21", + "@storybook/svelte-webpack5": "7.0.0-alpha.21", "@storybook/testing-library": "0.0.14-next.0", - "storybook": "7.0.0-alpha.19", + "storybook": "7.0.0-alpha.21", "svelte-jester": "^2.3.2", "svelte-preprocess": "^4.10.6" }, diff --git a/code/examples/vite-react-app/package.json b/code/examples/vite-react-app/package.json index 5f3a32170712..c0cf2034bce6 100644 --- a/code/examples/vite-react-app/package.json +++ b/code/examples/vite-react-app/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/example-vite-react-app", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "scripts": { "build": "vite build", "build-storybook": "STORYBOOK_DISPLAY_WARNING=true DISPLAY_WARNING=true sb build", @@ -15,13 +15,13 @@ "devDependencies": { "@mdx-js/preact": "^1.6.0", "@mdx-js/react": "^1.6.0", - "@storybook/addon-essentials": "7.0.0-alpha.19", - "@storybook/builder-vite": "7.0.0-alpha.19", - "@storybook/react": "7.0.0-alpha.19", - "@storybook/react-vite": "7.0.0-alpha.19", + "@storybook/addon-essentials": "7.0.0-alpha.21", + "@storybook/builder-vite": "7.0.0-alpha.21", + "@storybook/react": "7.0.0-alpha.21", + "@storybook/react-vite": "7.0.0-alpha.21", "@vitejs/plugin-react": "^1.0.7", "prop-types": "^15.8.1", - "sb": "7.0.0-alpha.19", + "sb": "7.0.0-alpha.21", "vite": "^2.9.0" } } diff --git a/code/examples/vue-3-cli/package.json b/code/examples/vue-3-cli/package.json index 416262da2f2d..b3b7c099f90b 100644 --- a/code/examples/vue-3-cli/package.json +++ b/code/examples/vue-3-cli/package.json @@ -1,6 +1,6 @@ { "name": "vue-3-cli-example", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "scripts": { "build": "vue-cli-service build", @@ -14,21 +14,21 @@ }, "devDependencies": { "@babel/core": "^7.12.10", - "@storybook/addon-actions": "7.0.0-alpha.19", - "@storybook/addon-essentials": "7.0.0-alpha.19", - "@storybook/addon-interactions": "7.0.0-alpha.19", - "@storybook/addon-links": "7.0.0-alpha.19", - "@storybook/addon-storyshots": "7.0.0-alpha.19", + "@storybook/addon-actions": "7.0.0-alpha.21", + "@storybook/addon-essentials": "7.0.0-alpha.21", + "@storybook/addon-interactions": "7.0.0-alpha.21", + "@storybook/addon-links": "7.0.0-alpha.21", + "@storybook/addon-storyshots": "7.0.0-alpha.21", "@storybook/jest": "^0.0.10", "@storybook/testing-library": "0.0.14-next.0", - "@storybook/vue3": "7.0.0-alpha.19", - "@storybook/vue3-webpack5": "7.0.0-alpha.19", + "@storybook/vue3": "7.0.0-alpha.21", + "@storybook/vue3-webpack5": "7.0.0-alpha.21", "@vue/cli-plugin-babel": "^5.0.4", "@vue/cli-plugin-typescript": "^5.0.4", "@vue/cli-service": "^5.0.4", "@vue/compiler-sfc": "^3.2.36", "babel-loader": "^8.2.5", - "storybook": "7.0.0-alpha.19", + "storybook": "7.0.0-alpha.21", "typescript": "~4.6.3", "vue-jest": "^5.0.0-alpha.8", "vue-loader": "^16.0.0" diff --git a/code/examples/vue-cli/package.json b/code/examples/vue-cli/package.json index cde4061040bc..18ae2d2f3272 100644 --- a/code/examples/vue-cli/package.json +++ b/code/examples/vue-cli/package.json @@ -1,6 +1,6 @@ { "name": "vue-cli-example", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "scripts": { "build": "vue-cli-service build", @@ -15,16 +15,16 @@ "vue-property-decorator": "^9.1.2" }, "devDependencies": { - "@storybook/addon-controls": "7.0.0-alpha.19", - "@storybook/addon-essentials": "7.0.0-alpha.19", + "@storybook/addon-controls": "7.0.0-alpha.21", + "@storybook/addon-essentials": "7.0.0-alpha.21", "@storybook/preset-scss": "^1.0.3", - "@storybook/source-loader": "7.0.0-alpha.19", - "@storybook/vue": "7.0.0-alpha.19", - "@storybook/vue-webpack5": "7.0.0-alpha.19", + "@storybook/source-loader": "7.0.0-alpha.21", + "@storybook/vue": "7.0.0-alpha.21", + "@storybook/vue-webpack5": "7.0.0-alpha.21", "@vue/cli-plugin-babel": "^5.0.4", "@vue/cli-plugin-typescript": "^5.0.4", "@vue/cli-service": "^5.0.4", - "storybook": "7.0.0-alpha.19", + "storybook": "7.0.0-alpha.21", "typescript": "~4.6.3", "vue-template-compiler": "^2.6.14" } diff --git a/code/examples/vue-kitchen-sink/package.json b/code/examples/vue-kitchen-sink/package.json index 54a86fd03b65..07fe0ff72c7f 100644 --- a/code/examples/vue-kitchen-sink/package.json +++ b/code/examples/vue-kitchen-sink/package.json @@ -1,6 +1,6 @@ { "name": "vue-example", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "scripts": { "build": "cross-env NODE_ENV=production webpack --progress --hide-modules", @@ -14,29 +14,29 @@ }, "devDependencies": { "@babel/core": "^7.12.10", - "@storybook/addon-a11y": "7.0.0-alpha.19", - "@storybook/addon-actions": "7.0.0-alpha.19", - "@storybook/addon-backgrounds": "7.0.0-alpha.19", - "@storybook/addon-controls": "7.0.0-alpha.19", - "@storybook/addon-docs": "7.0.0-alpha.19", - "@storybook/addon-highlight": "7.0.0-alpha.19", - "@storybook/addon-interactions": "7.0.0-alpha.19", - "@storybook/addon-links": "7.0.0-alpha.19", - "@storybook/addon-storyshots": "7.0.0-alpha.19", - "@storybook/addon-storysource": "7.0.0-alpha.19", - "@storybook/addon-viewport": "7.0.0-alpha.19", - "@storybook/addons": "7.0.0-alpha.19", + "@storybook/addon-a11y": "7.0.0-alpha.21", + "@storybook/addon-actions": "7.0.0-alpha.21", + "@storybook/addon-backgrounds": "7.0.0-alpha.21", + "@storybook/addon-controls": "7.0.0-alpha.21", + "@storybook/addon-docs": "7.0.0-alpha.21", + "@storybook/addon-highlight": "7.0.0-alpha.21", + "@storybook/addon-interactions": "7.0.0-alpha.21", + "@storybook/addon-links": "7.0.0-alpha.21", + "@storybook/addon-storyshots": "7.0.0-alpha.21", + "@storybook/addon-storysource": "7.0.0-alpha.21", + "@storybook/addon-viewport": "7.0.0-alpha.21", + "@storybook/addons": "7.0.0-alpha.21", "@storybook/jest": "^0.0.10", - "@storybook/source-loader": "7.0.0-alpha.19", + "@storybook/source-loader": "7.0.0-alpha.21", "@storybook/testing-library": "0.0.14-next.0", - "@storybook/vue": "7.0.0-alpha.19", - "@storybook/vue-webpack5": "7.0.0-alpha.19", + "@storybook/vue": "7.0.0-alpha.21", + "@storybook/vue-webpack5": "7.0.0-alpha.21", "@vue/babel-preset-jsx": "^1.2.4", "babel-loader": "^8.2.5", "cross-env": "^7.0.3", "file-loader": "^6.2.0", "prop-types": "^15.7.2", - "storybook": "7.0.0-alpha.19", + "storybook": "7.0.0-alpha.21", "svg-url-loader": "^7.1.1", "vue-loader": "^15.9.6", "vue-style-loader": "^4.1.3", diff --git a/code/examples/web-components-kitchen-sink/package.json b/code/examples/web-components-kitchen-sink/package.json index f29e0d6ec66e..df0b72c875ab 100644 --- a/code/examples/web-components-kitchen-sink/package.json +++ b/code/examples/web-components-kitchen-sink/package.json @@ -1,6 +1,6 @@ { "name": "web-components-kitchen-sink", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "description": "", "keywords": [], diff --git a/code/frameworks/angular/package.json b/code/frameworks/angular/package.json index 47a10acc91dc..d7926bcab7aa 100644 --- a/code/frameworks/angular/package.json +++ b/code/frameworks/angular/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/angular", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.", "keywords": [ "storybook", @@ -34,19 +34,19 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/api": "7.0.0-alpha.19", - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", - "@storybook/core-server": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/api": "7.0.0-alpha.21", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", + "@storybook/core-server": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", "@storybook/semver": "^7.3.2", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/store": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "@types/react": "^16.14.23", "@types/react-dom": "^16.9.14", @@ -128,5 +128,5 @@ "access": "public" }, "builders": "dist/types/builders/builders.json", - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/frameworks/ember/package.json b/code/frameworks/ember/package.json index c74346af58b8..da07fe0cbf91 100644 --- a/code/frameworks/ember/package.json +++ b/code/frameworks/ember/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/ember", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.", "homepage": "https://github.com/storybookjs/storybook/tree/main/frameworks/ember", "bugs": { @@ -30,11 +30,11 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "react": "16.14.0", @@ -58,5 +58,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/frameworks/html-webpack5/package.json b/code/frameworks/html-webpack5/package.json index afbc7f8bc903..1f1f874500dc 100644 --- a/code/frameworks/html-webpack5/package.json +++ b/code/frameworks/html-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html-webpack5", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -50,10 +50,10 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/html": "7.0.0-alpha.19", - "@storybook/preset-html-webpack": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/html": "7.0.0-alpha.21", + "@storybook/preset-html-webpack": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -79,5 +79,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/frameworks/preact-webpack5/package.json b/code/frameworks/preact-webpack5/package.json index d83770ec622b..4857f112d52e 100644 --- a/code/frameworks/preact-webpack5/package.json +++ b/code/frameworks/preact-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact-webpack5", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" @@ -50,10 +50,10 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/preact": "7.0.0-alpha.19", - "@storybook/preset-preact-webpack": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/preact": "7.0.0-alpha.21", + "@storybook/preset-preact-webpack": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "react": "16.14.0", @@ -80,5 +80,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/frameworks/react-vite/package.json b/code/frameworks/react-vite/package.json index 630bb0856c78..0539c9564285 100644 --- a/code/frameworks/react-vite/package.json +++ b/code/frameworks/react-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-vite", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -60,10 +60,10 @@ "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.0.4", "@rollup/pluginutils": "^4.2.0", - "@storybook/builder-vite": "7.0.0-alpha.19", - "@storybook/core-server": "7.0.0-alpha.19", - "@storybook/core-vite": "7.0.0-alpha.19", - "@storybook/react": "7.0.0-alpha.19", + "@storybook/builder-vite": "7.0.0-alpha.21", + "@storybook/core-server": "7.0.0-alpha.21", + "@storybook/core-vite": "7.0.0-alpha.21", + "@storybook/react": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "@vitejs/plugin-react": "^1.0.8", "ast-types": "^0.14.2", diff --git a/code/frameworks/react-webpack5/package.json b/code/frameworks/react-webpack5/package.json index aae2d5f8cfcb..8bcf983d0a48 100644 --- a/code/frameworks/react-webpack5/package.json +++ b/code/frameworks/react-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react-webpack5", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -51,9 +51,9 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/preset-react-webpack": "7.0.0-alpha.19", - "@storybook/react": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/preset-react-webpack": "7.0.0-alpha.21", + "@storybook/react": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2" }, @@ -87,5 +87,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/frameworks/server-webpack5/package.json b/code/frameworks/server-webpack5/package.json index f5df621c62f1..212a3e079431 100644 --- a/code/frameworks/server-webpack5/package.json +++ b/code/frameworks/server-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server-webpack5", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -50,10 +50,10 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/preset-server-webpack": "7.0.0-alpha.19", - "@storybook/server": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/preset-server-webpack": "7.0.0-alpha.21", + "@storybook/server": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "react": "16.14.0", @@ -75,5 +75,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/frameworks/svelte-webpack5/package.json b/code/frameworks/svelte-webpack5/package.json index a81016522bdb..c59e38a6d0e4 100644 --- a/code/frameworks/svelte-webpack5/package.json +++ b/code/frameworks/svelte-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte-webpack5", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -51,10 +51,10 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/preset-svelte-webpack": "7.0.0-alpha.19", - "@storybook/svelte": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/preset-svelte-webpack": "7.0.0-alpha.21", + "@storybook/svelte": "7.0.0-alpha.21", "core-js": "^3.8.2", "react": "16.14.0", "react-dom": "16.14.0" @@ -82,5 +82,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/frameworks/vue-webpack5/package.json b/code/frameworks/vue-webpack5/package.json index b4da7c561705..eda338d37bff 100644 --- a/code/frameworks/vue-webpack5/package.json +++ b/code/frameworks/vue-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue-webpack5", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -50,10 +50,10 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/preset-vue-webpack": "7.0.0-alpha.19", - "@storybook/vue": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/preset-vue-webpack": "7.0.0-alpha.21", + "@storybook/vue": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "react": "16.14.0", @@ -86,5 +86,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/frameworks/vue3-webpack5/package.json b/code/frameworks/vue3-webpack5/package.json index 7f518562ee7b..250130b58e42 100644 --- a/code/frameworks/vue3-webpack5/package.json +++ b/code/frameworks/vue3-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3-webpack5", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -50,10 +50,10 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/preset-vue3-webpack": "7.0.0-alpha.19", - "@storybook/vue3": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/preset-vue3-webpack": "7.0.0-alpha.21", + "@storybook/vue3": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "react": "16.14.0", @@ -83,5 +83,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/frameworks/web-components-webpack5/package.json b/code/frameworks/web-components-webpack5/package.json index 6ac085813068..29dc9af6c511 100644 --- a/code/frameworks/web-components-webpack5/package.json +++ b/code/frameworks/web-components-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components-webpack5", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit-html", @@ -53,10 +53,10 @@ }, "dependencies": { "@babel/preset-env": "^7.12.11", - "@storybook/builder-webpack5": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/preset-web-components-webpack": "7.0.0-alpha.19", - "@storybook/web-components": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/preset-web-components-webpack": "7.0.0-alpha.21", + "@storybook/web-components": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "react": "16.14.0", @@ -82,5 +82,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lerna.json b/code/lerna.json index 895fb00fa98c..4906debb0d08 100644 --- a/code/lerna.json +++ b/code/lerna.json @@ -2,5 +2,5 @@ "npmClient": "yarn", "useWorkspaces": true, "registry": "https://registry.npmjs.org", - "version": "7.0.0-alpha.19" + "version": "7.0.0-alpha.21" } diff --git a/code/lib/addons/package.json b/code/lib/addons/package.json index 059c5f1471e8..3e4c5c5182ed 100644 --- a/code/lib/addons/package.json +++ b/code/lib/addons/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/addons", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook addons store", "keywords": [ "storybook" @@ -34,13 +34,13 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/api": "7.0.0-alpha.19", - "@storybook/channels": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/api": "7.0.0-alpha.21", + "@storybook/channels": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/router": "7.0.0-alpha.19", - "@storybook/theming": "7.0.0-alpha.19", + "@storybook/router": "7.0.0-alpha.21", + "@storybook/theming": "7.0.0-alpha.21", "@types/webpack-env": "^1.16.4", "core-js": "^3.8.2", "global": "^4.4.0" @@ -52,5 +52,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/api/package.json b/code/lib/api/package.json index 608bef4f3041..d52a2f744718 100644 --- a/code/lib/api/package.json +++ b/code/lib/api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/api", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Core Storybook API & Context", "keywords": [ "storybook" @@ -32,13 +32,13 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/channels": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/channels": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/router": "7.0.0-alpha.19", + "@storybook/router": "7.0.0-alpha.21", "@storybook/semver": "^7.3.2", - "@storybook/theming": "7.0.0-alpha.19", + "@storybook/theming": "7.0.0-alpha.21", "core-js": "^3.8.2", "dequal": "^2.0.2", "global": "^4.4.0", @@ -65,5 +65,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/api/src/version.ts b/code/lib/api/src/version.ts index a6322b24e3e7..a307a30fa83e 100644 --- a/code/lib/api/src/version.ts +++ b/code/lib/api/src/version.ts @@ -1 +1 @@ -export const version = '7.0.0-alpha.19'; +export const version = '7.0.0-alpha.21'; diff --git a/code/lib/blocks/package.json b/code/lib/blocks/package.json index 40a132d19726..57ff82699267 100644 --- a/code/lib/blocks/package.json +++ b/code/lib/blocks/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/blocks", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook Doc Blocks", "keywords": [ "storybook" @@ -41,16 +41,16 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/api": "7.0.0-alpha.19", - "@storybook/channels": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/components": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/api": "7.0.0-alpha.21", + "@storybook/channels": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/components": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/preview-web": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", - "@storybook/theming": "7.0.0-alpha.19", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/preview-web": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", + "@storybook/theming": "7.0.0-alpha.21", "color-convert": "^2.0.1", "core-js": "^3.8.2", "dequal": "^2.0.2", @@ -64,7 +64,7 @@ "util-deprecate": "^1.0.2" }, "devDependencies": { - "@storybook/addons": "7.0.0-alpha.19" + "@storybook/addons": "7.0.0-alpha.21" }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0" @@ -77,5 +77,5 @@ "./src/index.ts" ] }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/builder-manager/package.json b/code/lib/builder-manager/package.json index 3649daef14ae..5e1c124efee2 100644 --- a/code/lib/builder-manager/package.json +++ b/code/lib/builder-manager/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-manager", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook manager builder", "keywords": [ "storybook" @@ -42,9 +42,9 @@ }, "dependencies": { "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", - "@storybook/ui": "7.0.0-alpha.19", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", + "@storybook/ui": "7.0.0-alpha.21", "@types/ejs": "^3.1.1", "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10", "browser-assert": "^1.2.1", @@ -68,5 +68,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/builder-vite/package.json b/code/lib/builder-vite/package.json index b7e58ea8a776..d5457a5cc502 100644 --- a/code/lib/builder-vite/package.json +++ b/code/lib/builder-vite/package.json @@ -1,35 +1,35 @@ { "name": "@storybook/builder-vite", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "A plugin to run and build Storybooks with Vite", - "main": "dist/cjs/index.js", - "module": "dist/esm/index.js", - "types": "dist/types/index.d.ts", - "author": "Eirik Sletteberg", - "license": "MIT", + "homepage": "https://github.com/storybookjs/storybook/tree/main/code/lib/builder-vite/#readme", "repository": { "type": "git", "url": "https://github.com/storybookjs/storybook.git", "directory": "code/lib/builder-vite" }, - "homepage": "https://github.com/storybookjs/storybook/tree/main/code/lib/builder-vite/#readme", + "license": "MIT", + "author": "Eirik Sletteberg", + "main": "dist/cjs/index.js", + "module": "dist/esm/index.js", + "types": "dist/types/index.d.ts", "scripts": { "check": "tsc --noEmit", "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { "@joshwooding/vite-plugin-react-docgen-typescript": "0.0.5", - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/channel-postmessage": "7.0.0-alpha.19", - "@storybook/channel-websocket": "7.0.0-alpha.19", - "@storybook/client-api": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/core-vite": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/channel-postmessage": "7.0.0-alpha.21", + "@storybook/channel-websocket": "7.0.0-alpha.21", + "@storybook/client-api": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/core-vite": "7.0.0-alpha.21", "@storybook/mdx1-csf": "0.0.5-canary.13.9ce928a.0", - "@storybook/node-logger": "7.0.0-alpha.19", - "@storybook/preview-web": "7.0.0-alpha.19", - "@storybook/source-loader": "7.0.0-alpha.19", + "@storybook/node-logger": "7.0.0-alpha.21", + "@storybook/preview-web": "7.0.0-alpha.21", + "@storybook/source-loader": "7.0.0-alpha.21", "@vitejs/plugin-react": "^2.0.0", "ast-types": "^0.14.2", "es-module-lexer": "^0.9.3", diff --git a/code/lib/builder-webpack5/package.json b/code/lib/builder-webpack5/package.json index 5f97bba807b1..622cabd9a0b2 100644 --- a/code/lib/builder-webpack5/package.json +++ b/code/lib/builder-webpack5/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/builder-webpack5", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -34,23 +34,23 @@ }, "dependencies": { "@babel/core": "^7.12.10", - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/api": "7.0.0-alpha.19", - "@storybook/channel-postmessage": "7.0.0-alpha.19", - "@storybook/channel-websocket": "7.0.0-alpha.19", - "@storybook/channels": "7.0.0-alpha.19", - "@storybook/client-api": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/components": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", - "@storybook/core-webpack": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", - "@storybook/preview-web": "7.0.0-alpha.19", - "@storybook/router": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/api": "7.0.0-alpha.21", + "@storybook/channel-postmessage": "7.0.0-alpha.21", + "@storybook/channel-websocket": "7.0.0-alpha.21", + "@storybook/channels": "7.0.0-alpha.21", + "@storybook/client-api": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/components": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", + "@storybook/core-webpack": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", + "@storybook/preview-web": "7.0.0-alpha.21", + "@storybook/router": "7.0.0-alpha.21", "@storybook/semver": "^7.3.2", - "@storybook/store": "7.0.0-alpha.19", - "@storybook/theming": "7.0.0-alpha.19", + "@storybook/store": "7.0.0-alpha.21", + "@storybook/theming": "7.0.0-alpha.21", "@types/node": "^14.0.10 || ^16.0.0", "babel-loader": "^8.2.5", "babel-plugin-named-exports-order": "^0.0.2", @@ -95,5 +95,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/channel-postmessage/package.json b/code/lib/channel-postmessage/package.json index 7150cb97f0db..8a43c058f7b4 100644 --- a/code/lib/channel-postmessage/package.json +++ b/code/lib/channel-postmessage/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-postmessage", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "", "keywords": [ "storybook" @@ -34,9 +34,9 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/channels": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/channels": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "qs": "^6.10.0", @@ -48,5 +48,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/channel-websocket/package.json b/code/lib/channel-websocket/package.json index 74e54f26ec68..1bc5766e7e7b 100644 --- a/code/lib/channel-websocket/package.json +++ b/code/lib/channel-websocket/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channel-websocket", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "", "keywords": [ "storybook" @@ -34,8 +34,8 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/channels": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", + "@storybook/channels": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "telejson": "^6.0.8" @@ -46,5 +46,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/channels/package.json b/code/lib/channels/package.json index 19987aa5040e..03c944452de7 100644 --- a/code/lib/channels/package.json +++ b/code/lib/channels/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/channels", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "", "keywords": [ "storybook" @@ -57,5 +57,5 @@ "./src/index.ts" ] }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/cli-sb/package.json b/code/lib/cli-sb/package.json index 71ba872a2ec0..411fdcda7a0c 100644 --- a/code/lib/cli-sb/package.json +++ b/code/lib/cli-sb/package.json @@ -1,6 +1,6 @@ { "name": "sb", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook CLI", "keywords": [ "storybook" @@ -25,7 +25,7 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/cli": "7.0.0-alpha.19" + "@storybook/cli": "7.0.0-alpha.21" }, "devDependencies": { "typescript": "~4.6.3" @@ -33,5 +33,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/cli-storybook/package.json b/code/lib/cli-storybook/package.json index 85a5526403a1..64ad0f8cdbad 100644 --- a/code/lib/cli-storybook/package.json +++ b/code/lib/cli-storybook/package.json @@ -1,6 +1,6 @@ { "name": "storybook", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook CLI", "keywords": [ "storybook" @@ -28,7 +28,7 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/cli": "7.0.0-alpha.19" + "@storybook/cli": "7.0.0-alpha.21" }, "devDependencies": { "typescript": "~4.6.3" @@ -36,5 +36,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/cli/package.json b/code/lib/cli/package.json index b1278cab3dc4..069476866e6c 100644 --- a/code/lib/cli/package.json +++ b/code/lib/cli/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/cli", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook's CLI - easiest method of adding storybook to your projects", "keywords": [ "cli", @@ -48,13 +48,13 @@ "dependencies": { "@babel/core": "^7.12.10", "@babel/preset-env": "^7.12.11", - "@storybook/codemod": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/core-server": "7.0.0-alpha.19", - "@storybook/csf-tools": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", + "@storybook/codemod": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/core-server": "7.0.0-alpha.21", + "@storybook/csf-tools": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", "@storybook/semver": "^7.3.2", - "@storybook/telemetry": "7.0.0-alpha.19", + "@storybook/telemetry": "7.0.0-alpha.21", "boxen": "^5.1.2", "chalk": "^4.1.0", "commander": "^6.2.1", @@ -81,7 +81,7 @@ "update-notifier": "^5.0.1" }, "devDependencies": { - "@storybook/client-api": "7.0.0-alpha.19", + "@storybook/client-api": "7.0.0-alpha.21", "@types/cross-spawn": "^6.0.2", "@types/degit": "^2.8.3", "@types/prompts": "^2.0.9", @@ -96,5 +96,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/cli/src/automigrate/fixes/builder-vite.ts b/code/lib/cli/src/automigrate/fixes/builder-vite.ts index df264724180e..05d15aa1a36f 100644 --- a/code/lib/cli/src/automigrate/fixes/builder-vite.ts +++ b/code/lib/cli/src/automigrate/fixes/builder-vite.ts @@ -5,7 +5,7 @@ import { ConfigFile, readConfig, writeConfig } from '@storybook/csf-tools'; import { getStorybookInfo } from '@storybook/core-common'; import { Fix } from '../types'; -import { PackageJson, writePackageJson } from '../../js-package-manager'; +import { PackageJson } from '../../js-package-manager'; const logger = console; @@ -70,7 +70,7 @@ export const builderVite: Fix = { if (!dryRun) { delete dependencies['storybook-builder-vite']; delete devDependencies['storybook-builder-vite']; - writePackageJson(packageJson); + packageManager.writePackageJson(packageJson); } logger.info(`Adding '@storybook/builder-vite' as dev dependency`); diff --git a/code/lib/cli/src/automigrate/fixes/index.ts b/code/lib/cli/src/automigrate/fixes/index.ts index 766d7db30352..e43ad3f2025d 100644 --- a/code/lib/cli/src/automigrate/fixes/index.ts +++ b/code/lib/cli/src/automigrate/fixes/index.ts @@ -7,6 +7,7 @@ import { eslintPlugin } from './eslint-plugin'; import { builderVite } from './builder-vite'; import { npm7 } from './npm7'; import { sbScripts } from './sb-scripts'; +import { newFrameworks } from './new-frameworks'; import { Fix } from '../types'; export * from '../types'; @@ -20,4 +21,5 @@ export const fixes: Fix[] = [ builderVite, npm7, sbScripts, + newFrameworks, ]; diff --git a/code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts b/code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts new file mode 100644 index 000000000000..482389d3bf8e --- /dev/null +++ b/code/lib/cli/src/automigrate/fixes/new-frameworks.test.ts @@ -0,0 +1,229 @@ +/* eslint-disable no-underscore-dangle */ +import path from 'path'; +import { JsPackageManager } from '../../js-package-manager'; +import { newFrameworks } from './new-frameworks'; + +// eslint-disable-next-line global-require, jest/no-mocks-import +jest.mock('fs-extra', () => require('../../../../../__mocks__/fs-extra')); + +const checkNewFrameworks = async ({ packageJson, main }) => { + if (main) { + // eslint-disable-next-line global-require + require('fs-extra').__setMockFiles({ + [path.join('.storybook', 'main.js')]: `module.exports = ${JSON.stringify(main)};`, + }); + } + const packageManager = { + retrievePackageJson: () => ({ dependencies: {}, devDependencies: {}, ...packageJson }), + } as JsPackageManager; + return newFrameworks.check({ packageManager }); +}; + +describe('new-frameworks fix', () => { + describe('should no-op', () => { + it('in sb < 7', async () => { + const packageJson = { dependencies: { '@storybook/vue': '^6.2.0' } }; + await expect( + checkNewFrameworks({ + packageJson, + main: {}, + }) + ).resolves.toBeFalsy(); + }); + + it('in sb 7 with no main', async () => { + const packageJson = { dependencies: { '@storybook/vue': '^7.0.0' } }; + await expect( + checkNewFrameworks({ + packageJson, + main: undefined, + }) + ).resolves.toBeFalsy(); + }); + + it('in sb 7 with no framework field in main', async () => { + const packageJson = { dependencies: { '@storybook/vue': '^7.0.0' } }; + await expect( + checkNewFrameworks({ + packageJson, + main: {}, + }) + ).resolves.toBeFalsy(); + }); + + it('in sb 7 with no builder', async () => { + const packageJson = { dependencies: { '@storybook/vue': '^7.0.0' } }; + await expect( + checkNewFrameworks({ + packageJson, + main: { + framework: '@storybook/vue', + }, + }) + ).resolves.toEqual( + expect.objectContaining({ + frameworkPackage: '@storybook/vue-webpack5', + dependenciesToAdd: ['@storybook/vue-webpack5'], + dependenciesToRemove: ['@storybook/vue'], + }) + ); + }); + + it('in sb 7 with unsupported package', async () => { + const packageJson = { dependencies: { '@storybook/riot': '^7.0.0' } }; + await expect( + checkNewFrameworks({ + packageJson, + main: { + framework: '@storybook/riot', + core: { + builder: 'webpack5', + }, + }, + }) + ).resolves.toBeFalsy(); + }); + + // TODO: once we have vite frameworks e.g. @storybook/react-vite, then we should remove this test + it('in sb 7 with vite', async () => { + const packageJson = { dependencies: { '@storybook/react': '^7.0.0' } }; + await expect( + checkNewFrameworks({ + packageJson, + main: { + framework: '@storybook/react', + core: { + builder: '@storybook/builder-vite', + }, + }, + }) + ).resolves.toBeFalsy(); + }); + }); + + describe('sb >= 7', () => { + describe('new-frameworks dependency', () => { + it('should update to @storybook/react-webpack5', async () => { + const packageJson = { + dependencies: { + '@storybook/react': '^7.0.0-alpha.0', + '@storybook/builder-webpack5': '^6.5.9', + '@storybook/manager-webpack5': '^6.5.9', + }, + }; + await expect( + checkNewFrameworks({ + packageJson, + main: { + framework: '@storybook/react', + core: { + builder: { + name: 'webpack5', + options: { + lazyCompilation: true, + }, + }, + }, + reactOptions: { + fastRefresh: true, + }, + }, + }) + ).resolves.toEqual( + expect.objectContaining({ + frameworkPackage: '@storybook/react-webpack5', + dependenciesToAdd: ['@storybook/react-webpack5'], + dependenciesToRemove: [ + '@storybook/builder-webpack5', + '@storybook/manager-webpack5', + '@storybook/react', + ], + frameworkOptions: { + fastRefresh: true, + }, + builderInfo: { + name: 'webpack5', + options: { + lazyCompilation: true, + }, + }, + }) + ); + }); + it('should update only builders in @storybook/angular', async () => { + const packageJson = { + dependencies: { + '@storybook/angular': '^7.0.0-alpha.0', + '@storybook/builder-webpack5': '^6.5.9', + '@storybook/manager-webpack5': '^6.5.9', + }, + }; + await expect( + checkNewFrameworks({ + packageJson, + main: { + framework: '@storybook/angular', + core: { + builder: { + name: 'webpack5', + options: { + lazyCompilation: true, + }, + }, + }, + angularOptions: { + enableIvy: true, + }, + }, + }) + ).resolves.toEqual( + expect.objectContaining({ + frameworkPackage: '@storybook/angular', + dependenciesToAdd: [], + dependenciesToRemove: ['@storybook/builder-webpack5', '@storybook/manager-webpack5'], + frameworkOptions: { + enableIvy: true, + }, + builderInfo: { + name: 'webpack5', + options: { + lazyCompilation: true, + }, + }, + }) + ); + }); + }); + + // TODO: enable this once Vite is supported + // eslint-disable-next-line jest/no-disabled-tests + it.skip('should update to @storybook/react-vite', async () => { + const packageJson = { + dependencies: { + '@storybook/react': '^7.0.0-alpha.0', + '@storybook/builder-vite': '^0.0.2', + }, + }; + await expect( + checkNewFrameworks({ + packageJson, + main: { + framework: '@storybook/react', + core: { + builder: '@storybook/builder-vite', + }, + }, + }) + ).resolves.toEqual( + expect.objectContaining({ + dependenciesToAdd: '@storybook/react-vite', + dependenciesToRemove: [ + '@storybook/react', + 'storybook-builder-vite', + '@storybook/builder-vite', + ], + }) + ); + }); + }); +}); diff --git a/code/lib/cli/src/automigrate/fixes/new-frameworks.ts b/code/lib/cli/src/automigrate/fixes/new-frameworks.ts new file mode 100644 index 000000000000..24864113d31f --- /dev/null +++ b/code/lib/cli/src/automigrate/fixes/new-frameworks.ts @@ -0,0 +1,245 @@ +import chalk from 'chalk'; +import dedent from 'ts-dedent'; +import semver from '@storybook/semver'; +import { ConfigFile, readConfig, writeConfig } from '@storybook/csf-tools'; +import { getStorybookInfo } from '@storybook/core-common'; + +import type { Fix } from '../types'; +import type { PackageJsonWithDepsAndDevDeps } from '../../js-package-manager'; +import { getStorybookVersionSpecifier } from '../../helpers'; + +const logger = console; + +const packagesMap = { + '@storybook/react': { + webpack5: '@storybook/react-webpack5', + vite: '@storybook/react-vite', + }, + '@storybook/preact': { + webpack5: '@storybook/preact-webpack5', + }, + '@storybook/server': { + webpack5: '@storybook/server-webpack5', + }, + '@storybook/angular': { + webpack5: '@storybook/angular', + }, + '@storybook/vue': { + webpack5: '@storybook/vue-webpack5', + vite: '@storybook/vue-vite', + }, + '@storybook/vue3': { + webpack5: '@storybook/vue3-webpack5', + vite: '@storybook/vue3-vite', + }, + '@storybook/svelte': { + webpack5: '@storybook/svelte-webpack5', + vite: '@storybook/svelte-vite', + }, + '@storybook/web-components': { + webpack5: '@storybook/web-components-webpack5', + }, + '@storybook/html': { + webpack5: '@storybook/html-webpack5', + }, +}; + +interface NewFrameworkRunOptions { + main: ConfigFile; + packageJson: PackageJsonWithDepsAndDevDeps; + dependenciesToAdd: string[]; + dependenciesToRemove: string[]; + frameworkPackage: string; + frameworkOptions: Record; + builderInfo: { + name: string; + options: Record; + }; +} + +export const getBuilder = (builder: string | { name: string }) => { + if (typeof builder === 'string') { + return builder.includes('vite') ? 'vite' : 'webpack5'; + } + + return builder?.name.includes('vite') ? 'vite' : 'webpack5'; +}; + +export const getFrameworkOptions = (framework: string, main: ConfigFile) => { + const frameworkOptions = main.getFieldValue([`${framework}Options`]); + return frameworkOptions || {}; +}; + +/** + * Does the user have separate framework and builders (e.g. @storybook/react + core.builder -> webpack5? + * + * If so: + * - Remove the dependencies (@storybook/react + @storybook/builder-webpack5 + @storybook/manager-webpack5) + * - Install the correct new package e.g. (@storybook/react-webpack5) + * - Update the main config to use the new framework + * -- moving core.builder into framework.options.builder + * -- moving frameworkOptions (e.g. reactOptions) into framework.options + */ +export const newFrameworks: Fix = { + id: 'newFrameworks', + + async check({ packageManager }) { + const packageJson = packageManager.retrievePackageJson(); + const allDeps = { ...packageJson.dependencies, ...packageJson.devDependencies }; + + const config = getStorybookInfo(packageJson); + const { mainConfig, version: storybookVersion, framework } = config; + if (!mainConfig) { + logger.warn('Unable to find storybook main.js config, skipping'); + return null; + } + + const storybookCoerced = storybookVersion && semver.coerce(storybookVersion)?.version; + if (!storybookCoerced) { + logger.warn(dedent` + ❌ Unable to determine storybook version, skipping ${chalk.cyan('newFrameworks')} fix. + 🤔 Are you running automigrate from your project directory? + `); + return null; + } + + if (!semver.gte(storybookCoerced, '7.0.0')) { + return null; + } + + // If in the future the eslint plugin has a framework option, using main to extract the framework field will be very useful + const main = await readConfig(mainConfig); + + const frameworkPackage = main.getFieldValue(['framework']) as keyof typeof packagesMap; + const builder = main.getFieldValue(['core', 'builder']); + + if (!frameworkPackage) { + return null; + } + + const supportedPackages = Object.keys(packagesMap); + if (!supportedPackages.includes(frameworkPackage)) { + return null; + } + + const builderInfo = { + name: getBuilder(builder), + options: main.getFieldValue(['core', 'builder', 'options']) || {}, + } as const; + + // TODO: once we have vite frameworks e.g. @storybook/react-vite, then we support it here + // and remove ['storybook-builder-vite', '@storybook/builder-vite'] from deps + if (builderInfo.name === 'vite') { + return null; + } + + const frameworkOptions = getFrameworkOptions(framework, main); + + const dependenciesToRemove = [ + '@storybook/builder-webpack5', + '@storybook/manager-webpack5', + '@storybook/builder-webpack4', + '@storybook/manager-webpack4', + ].filter((dep) => allDeps[dep]); + + const newFrameworkPackage = packagesMap[frameworkPackage][builderInfo.name]; + const dependenciesToAdd = []; + + // some frameworks didn't change e.g. Angular, Ember + if (newFrameworkPackage !== frameworkPackage) { + dependenciesToRemove.push(frameworkPackage); + dependenciesToAdd.push(newFrameworkPackage); + } + + return { + main, + dependenciesToAdd, + dependenciesToRemove, + frameworkPackage: newFrameworkPackage, + frameworkOptions, + builderInfo, + packageJson, + }; + }, + + prompt() { + return dedent` + We've detected you are using an older format of Storybook frameworks and builders. + + In Storybook 7, frameworks also specify the builder to be used. + + We can remove the dependencies that are no longer needed and install the new framework that already includes the builder. + + To learn more about the framework field, see: ${chalk.yellow( + 'https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#framework-field-mandatory' + )} + + ${chalk.underline(chalk.bold(chalk.cyan('Webpack4 users')))} + + Unless you're using Storybook's Vite builder, this automigration will install a Webpack5-based framework. + + If you were using Storybook's Webpack4 builder (default in 6.x, discontinued in 7.0), this could be a breaking + change--especially if your project has a custom webpack configuration. + + To learn more about migrating from Webpack4, see: ${chalk.yellow( + 'https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#webpack4-support-discontinued' + )} + `; + }, + + async run({ + result: { + dependenciesToAdd, + dependenciesToRemove, + main, + frameworkPackage, + frameworkOptions, + builderInfo, + packageJson, + }, + packageManager, + dryRun, + }) { + logger.info(`✅ Removing legacy dependencies: ${dependenciesToRemove.join(', ')}`); + if (!dryRun) { + packageManager.removeDependencies( + { skipInstall: dependenciesToAdd.length > 0, packageJson }, + dependenciesToRemove + ); + } + if (dependenciesToAdd.length > 0) { + logger.info(`✅ Installing new dependencies: ${dependenciesToAdd.join(', ')}`); + if (!dryRun) { + const versionToInstall = getStorybookVersionSpecifier(packageJson); + const depsToAdd = dependenciesToAdd.map((dep) => `${dep}@${versionToInstall}`); + packageManager.addDependencies({ installAsDevDependencies: true }, depsToAdd); + } + } + + if (!dryRun) { + logger.info(`✅ Updating framework field in main.js`); + const currentCore = main.getFieldValue(['core']); + main.setFieldValue(['framework', 'name'], frameworkPackage); + main.setFieldValue(['framework', 'options'], frameworkOptions); + + if (currentCore?.builder) { + delete currentCore.builder; + } + + if (Object.keys(builderInfo.options).length > 0) { + main.setFieldValue(['framework', 'options', 'builder'], builderInfo.options); + } + + if (currentCore) { + if (Object.keys(currentCore).length === 0) { + // TODO: this should delete the field instead + main.setFieldValue(['core'], {}); + } else { + main.setFieldValue(['core'], currentCore); + } + } + + await writeConfig(main); + } + }, +}; diff --git a/code/lib/cli/src/automigrate/index.ts b/code/lib/cli/src/automigrate/index.ts index a20325c86119..0eab9bca3d9c 100644 --- a/code/lib/cli/src/automigrate/index.ts +++ b/code/lib/cli/src/automigrate/index.ts @@ -57,7 +57,7 @@ export const automigrate = async ({ fixId, dryRun, yes }: FixOptions = {}) => { logger.info(`✅ ran ${chalk.cyan(f.id)} migration`); } catch (error) { logger.info(`❌ error when running ${chalk.cyan(f.id)} migration:`); - logger.info(error.message); + logger.info(error); logger.info(); } } else { diff --git a/code/lib/cli/src/detect.test.ts b/code/lib/cli/src/detect.test.ts index 9d83e30be6bb..6caf23f682e3 100644 --- a/code/lib/cli/src/detect.test.ts +++ b/code/lib/cli/src/detect.test.ts @@ -275,22 +275,23 @@ const MOCK_FRAMEWORK_FILES: { describe('Detect', () => { it(`should return type HTML if html option is passed`, () => { (readPackageJson as jest.Mock).mockImplementation(() => true); - expect(detect({ html: true })).toBe(ProjectType.HTML); + expect(detect({ dependencies: {} }, { html: true })).toBe(ProjectType.HTML); }); it(`should return type UNDETECTED if neither packageJson or bowerJson exist`, () => { (readPackageJson as jest.Mock).mockImplementation(() => false); (getBowerJson as jest.Mock).mockImplementation(() => false); - expect(detect()).toBe(ProjectType.UNDETECTED); + expect(detect(undefined)).toBe(ProjectType.UNDETECTED); }); it(`should return language typescript if the dependency is present`, () => { - (readPackageJson as jest.Mock).mockImplementation(() => ({ - dependencies: { - typescript: '1.0.0', - }, - })); - expect(detectLanguage()).toBe(SupportedLanguage.TYPESCRIPT); + expect( + detectLanguage({ + dependencies: { + typescript: '1.0.0', + }, + }) + ).toBe(SupportedLanguage.TYPESCRIPT); }); it(`should return language javascript by default`, () => { diff --git a/code/lib/cli/src/detect.ts b/code/lib/cli/src/detect.ts index d6b5269db697..cf207cc08130 100644 --- a/code/lib/cli/src/detect.ts +++ b/code/lib/cli/src/detect.ts @@ -13,12 +13,7 @@ import { CoreBuilder, } from './project_types'; import { getBowerJson, paddedLog } from './helpers'; -import { - PackageJson, - readPackageJson, - JsPackageManager, - PackageJsonWithMaybeDeps, -} from './js-package-manager'; +import { PackageJson, JsPackageManager, PackageJsonWithMaybeDeps } from './js-package-manager'; import { detectNextJS } from './detect-nextjs'; const viteConfigFiles = ['vite.config.ts', 'vite.config.js', 'vite.config.mjs']; @@ -153,14 +148,9 @@ export function isStorybookInstalled( return false; } -export function detectLanguage() { +export function detectLanguage(packageJson?: PackageJson) { let language = SupportedLanguage.JAVASCRIPT; - let packageJson; - try { - packageJson = readPackageJson(); - } catch (err) { - // - } + const bowerJson = getBowerJson(); if (!packageJson && !bowerJson) { return language; @@ -173,13 +163,10 @@ export function detectLanguage() { return language; } -export function detect(options: { force?: boolean; html?: boolean } = {}) { - let packageJson; - try { - packageJson = readPackageJson(); - } catch (err) { - // - } +export function detect( + packageJson: PackageJson, + options: { force?: boolean; html?: boolean } = {} +) { const bowerJson = getBowerJson(); if (!packageJson && !bowerJson) { diff --git a/code/lib/cli/src/generators/RAX/index.ts b/code/lib/cli/src/generators/RAX/index.ts index 82230e673a20..02ce74816455 100644 --- a/code/lib/cli/src/generators/RAX/index.ts +++ b/code/lib/cli/src/generators/RAX/index.ts @@ -1,6 +1,5 @@ import { baseGenerator } from '../baseGenerator'; import { Generator } from '../types'; -import { writePackageJson } from '../../js-package-manager'; const generator: Generator = async (packageManager, npmOptions, options) => { const [latestRaxVersion] = await packageManager.getVersions('rax'); @@ -17,7 +16,7 @@ const generator: Generator = async (packageManager, npmOptions, options) => { packageJson.dependencies['rax-text'] = packageJson.dependencies['rax-text'] || raxVersion; packageJson.dependencies['rax-view'] = packageJson.dependencies['rax-view'] || raxVersion; - writePackageJson(packageJson); + packageManager.writePackageJson(packageJson); await baseGenerator(packageManager, npmOptions, options, 'rax', { extraPackages: ['rax'], diff --git a/code/lib/cli/src/initiate.ts b/code/lib/cli/src/initiate.ts index 7887e91d879e..c3c60308856e 100644 --- a/code/lib/cli/src/initiate.ts +++ b/code/lib/cli/src/initiate.ts @@ -42,7 +42,14 @@ const installStorybook = ( skipInstall: options.skipInstall, }; - const language = detectLanguage(); + let packageJson; + try { + packageJson = packageManager.readPackageJson(); + } catch (err) { + // + } + + const language = detectLanguage(packageJson); const generatorOptions = { language, @@ -283,7 +290,7 @@ export async function initiate(options: CommandOptions, pkg: Package): Promise) { const packageJson = this.retrievePackageJson(); - writePackageJson({ + this.writePackageJson({ ...packageJson, scripts: { ...packageJson.scripts, @@ -308,12 +341,23 @@ export abstract class JsPackageManager { }); } + public addPackageResolutions(versions: Record) { + const packageJson = this.retrievePackageJson(); + const resolutions = this.getResolutions(packageJson, versions); + this.writePackageJson({ ...packageJson, ...resolutions }); + } + protected abstract runInstall(): void; protected abstract runAddDeps(dependencies: string[], installAsDevDependencies: boolean): void; protected abstract runRemoveDeps(dependencies: string[]): void; + protected abstract getResolutions( + packageJson: PackageJson, + versions: Record + ): Record; + /** * Get the latest or all versions of the input package available on npmjs.com * @@ -328,6 +372,7 @@ export abstract class JsPackageManager { public executeCommand(command: string, args: string[], stdio?: 'pipe' | 'inherit'): string { const commandResult = spawnSync(command, args, { + cwd: this.cwd, stdio: stdio ?? 'pipe', encoding: 'utf-8', }); diff --git a/code/lib/cli/src/js-package-manager/JsPackageManagerFactory.ts b/code/lib/cli/src/js-package-manager/JsPackageManagerFactory.ts index 6a7c9d38840b..371720418c8e 100644 --- a/code/lib/cli/src/js-package-manager/JsPackageManagerFactory.ts +++ b/code/lib/cli/src/js-package-manager/JsPackageManagerFactory.ts @@ -6,35 +6,35 @@ import { Yarn2Proxy } from './Yarn2Proxy'; import { Yarn1Proxy } from './Yarn1Proxy'; export class JsPackageManagerFactory { - public static getPackageManager(forceNpmUsage = false): JsPackageManager { + public static getPackageManager(forceNpmUsage = false, cwd?: string): JsPackageManager { if (forceNpmUsage) { - return new NPMProxy(); + return new NPMProxy({ cwd }); } - const yarnVersion = getYarnVersion(); - const hasYarnLockFile = findUpSync('yarn.lock'); + const yarnVersion = getYarnVersion(cwd); + const hasYarnLockFile = findUpSync('yarn.lock', { cwd }); - const hasNPMCommand = hasNPM(); + const hasNPMCommand = hasNPM(cwd); if (yarnVersion && (hasYarnLockFile || !hasNPMCommand)) { - return yarnVersion === 1 ? new Yarn1Proxy() : new Yarn2Proxy(); + return yarnVersion === 1 ? new Yarn1Proxy({ cwd }) : new Yarn2Proxy({ cwd }); } if (hasNPMCommand) { - return new NPMProxy(); + return new NPMProxy({ cwd }); } throw new Error('Unable to find a usable package manager within NPM, Yarn and Yarn 2'); } } -function hasNPM() { - const npmVersionCommand = spawnSync('npm', ['--version']); +function hasNPM(cwd?: string) { + const npmVersionCommand = spawnSync('npm', ['--version'], { cwd }); return npmVersionCommand.status === 0; } -function getYarnVersion(): 1 | 2 | undefined { - const yarnVersionCommand = spawnSync('yarn', ['--version']); +function getYarnVersion(cwd?: string): 1 | 2 | undefined { + const yarnVersionCommand = spawnSync('yarn', ['--version'], { cwd }); if (yarnVersionCommand.status !== 0) { return undefined; diff --git a/code/lib/cli/src/js-package-manager/NPMProxy.test.ts b/code/lib/cli/src/js-package-manager/NPMProxy.test.ts index 789e1f6ee53e..9350b0eae96c 100644 --- a/code/lib/cli/src/js-package-manager/NPMProxy.test.ts +++ b/code/lib/cli/src/js-package-manager/NPMProxy.test.ts @@ -1,5 +1,4 @@ import { NPMProxy } from './NPMProxy'; -import * as PackageJsonHelper from './PackageJsonHelper'; describe('NPM Proxy', () => { let npmProxy: NPMProxy; @@ -22,6 +21,21 @@ describe('NPM Proxy', () => { }); }); + describe('setRegistryUrl', () => { + it('should run `npm config set registry https://foo.bar`', () => { + const executeCommandSpy = jest.spyOn(npmProxy, 'executeCommand').mockReturnValue(''); + + npmProxy.setRegistryURL('https://foo.bar'); + + expect(executeCommandSpy).toHaveBeenCalledWith('npm', [ + 'config', + 'set', + 'registry', + 'https://foo.bar', + ]); + }); + }); + describe('installDependencies', () => { describe('npm6', () => { it('should run `npm install`', () => { @@ -107,7 +121,7 @@ describe('NPM Proxy', () => { it('should only change package.json without running install', () => { const executeCommandSpy = jest.spyOn(npmProxy, 'executeCommand').mockReturnValue('7.0.0'); const writePackageSpy = jest - .spyOn(PackageJsonHelper, 'writePackageJson') + .spyOn(npmProxy, 'writePackageJson') .mockImplementation(jest.fn); npmProxy.removeDependencies( @@ -205,4 +219,30 @@ describe('NPM Proxy', () => { expect(version).toEqual(`^${packageVersion}`); }); }); + + describe('addPackageResolutions', () => { + it('adds resolutions to package.json and account for existing resolutions', () => { + const writePackageSpy = jest.spyOn(npmProxy, 'writePackageJson').mockImplementation(jest.fn); + + jest.spyOn(npmProxy, 'retrievePackageJson').mockImplementation( + jest.fn(() => ({ + overrides: { + bar: 'x.x.x', + }, + })) + ); + + const versions = { + foo: 'x.x.x', + }; + npmProxy.addPackageResolutions(versions); + + expect(writePackageSpy).toHaveBeenCalledWith({ + overrides: { + ...versions, + bar: 'x.x.x', + }, + }); + }); + }); }); diff --git a/code/lib/cli/src/js-package-manager/NPMProxy.ts b/code/lib/cli/src/js-package-manager/NPMProxy.ts index 5c9f76aaae5d..64edffa7a6b7 100644 --- a/code/lib/cli/src/js-package-manager/NPMProxy.ts +++ b/code/lib/cli/src/js-package-manager/NPMProxy.ts @@ -1,5 +1,6 @@ import semver from '@storybook/semver'; import { JsPackageManager } from './JsPackageManager'; +import type { PackageJson } from './PackageJson'; export class NPMProxy extends JsPackageManager { readonly type = 'npm'; @@ -60,6 +61,28 @@ export class NPMProxy extends JsPackageManager { return this.uninstallArgs; } + setRegistryURL(url: string) { + if (url) { + this.executeCommand('npm', ['config', 'set', 'registry', url]); + } else { + this.executeCommand('npm', ['config', 'delete', 'registry']); + } + } + + getRegistryURL() { + const url = this.executeCommand('npm', ['config', 'get', 'registry']).trim(); + return url === 'undefined' ? undefined : url; + } + + protected getResolutions(packageJson: PackageJson, versions: Record) { + return { + overrides: { + ...packageJson.overrides, + ...versions, + }, + }; + } + protected runInstall(): void { this.executeCommand('npm', this.getInstallArgs(), 'inherit'); } diff --git a/code/lib/cli/src/js-package-manager/PackageJsonHelper.ts b/code/lib/cli/src/js-package-manager/PackageJsonHelper.ts deleted file mode 100644 index e013783745e4..000000000000 --- a/code/lib/cli/src/js-package-manager/PackageJsonHelper.ts +++ /dev/null @@ -1,20 +0,0 @@ -import path from 'path'; -import fs from 'fs'; -import type { PackageJson } from '@storybook/core-common'; - -export function readPackageJson(): PackageJson { - const packageJsonPath = path.resolve('package.json'); - if (!fs.existsSync(packageJsonPath)) { - throw new Error(`Could not read package.json file at ${packageJsonPath}`); - } - - const jsonContent = fs.readFileSync(packageJsonPath, 'utf8'); - return JSON.parse(jsonContent); -} - -export function writePackageJson(packageJson: PackageJson) { - const content = `${JSON.stringify(packageJson, null, 2)}\n`; - const packageJsonPath = path.resolve('package.json'); - - fs.writeFileSync(packageJsonPath, content, 'utf8'); -} diff --git a/code/lib/cli/src/js-package-manager/Yarn1Proxy.test.ts b/code/lib/cli/src/js-package-manager/Yarn1Proxy.test.ts index c6655cd597bb..90a7df8b9b8c 100644 --- a/code/lib/cli/src/js-package-manager/Yarn1Proxy.test.ts +++ b/code/lib/cli/src/js-package-manager/Yarn1Proxy.test.ts @@ -1,5 +1,4 @@ import { Yarn1Proxy } from './Yarn1Proxy'; -import * as PackageJsonHelper from './PackageJsonHelper'; describe('Yarn 1 Proxy', () => { let yarn1Proxy: Yarn1Proxy; @@ -22,6 +21,21 @@ describe('Yarn 1 Proxy', () => { }); }); + describe('setRegistryUrl', () => { + it('should run `yarn config set npmRegistryServer https://foo.bar`', () => { + const executeCommandSpy = jest.spyOn(yarn1Proxy, 'executeCommand').mockReturnValue(''); + + yarn1Proxy.setRegistryURL('https://foo.bar'); + + expect(executeCommandSpy).toHaveBeenCalledWith('yarn', [ + 'config', + 'set', + 'npmRegistryServer', + 'https://foo.bar', + ]); + }); + }); + describe('installDependencies', () => { it('should run `yarn`', () => { const executeCommandSpy = jest.spyOn(yarn1Proxy, 'executeCommand').mockReturnValue(''); @@ -62,7 +76,7 @@ describe('Yarn 1 Proxy', () => { it('skipInstall should only change package.json without running install', () => { const executeCommandSpy = jest.spyOn(yarn1Proxy, 'executeCommand').mockReturnValue('7.0.0'); const writePackageSpy = jest - .spyOn(PackageJsonHelper, 'writePackageJson') + .spyOn(yarn1Proxy, 'writePackageJson') .mockImplementation(jest.fn); yarn1Proxy.removeDependencies( @@ -126,4 +140,32 @@ describe('Yarn 1 Proxy', () => { await expect(yarn1Proxy.latestVersion('@storybook/addons')).rejects.toThrow(); }); }); + + describe('addPackageResolutions', () => { + it('adds resolutions to package.json and account for existing resolutions', () => { + const writePackageSpy = jest + .spyOn(yarn1Proxy, 'writePackageJson') + .mockImplementation(jest.fn); + + jest.spyOn(yarn1Proxy, 'retrievePackageJson').mockImplementation( + jest.fn(() => ({ + resolutions: { + bar: 'x.x.x', + }, + })) + ); + + const versions = { + foo: 'x.x.x', + }; + yarn1Proxy.addPackageResolutions(versions); + + expect(writePackageSpy).toHaveBeenCalledWith({ + resolutions: { + ...versions, + bar: 'x.x.x', + }, + }); + }); + }); }); diff --git a/code/lib/cli/src/js-package-manager/Yarn1Proxy.ts b/code/lib/cli/src/js-package-manager/Yarn1Proxy.ts index 88368e3f0ea6..bcb0c01ae213 100644 --- a/code/lib/cli/src/js-package-manager/Yarn1Proxy.ts +++ b/code/lib/cli/src/js-package-manager/Yarn1Proxy.ts @@ -1,4 +1,5 @@ import { JsPackageManager } from './JsPackageManager'; +import type { PackageJson } from './PackageJson'; export class Yarn1Proxy extends JsPackageManager { readonly type = 'yarn1'; @@ -15,6 +16,28 @@ export class Yarn1Proxy extends JsPackageManager { return `yarn ${command}`; } + setRegistryURL(url: string) { + if (url) { + this.executeCommand('yarn', ['config', 'set', 'npmRegistryServer', url]); + } else { + this.executeCommand('yarn', ['config', 'delete', 'npmRegistryServer']); + } + } + + getRegistryURL() { + const url = this.executeCommand('yarn', ['config', 'get', 'npmRegistryServer']).trim(); + return url === 'undefined' ? undefined : url; + } + + protected getResolutions(packageJson: PackageJson, versions: Record) { + return { + resolutions: { + ...packageJson.resolutions, + ...versions, + }, + }; + } + protected runInstall(): void { this.executeCommand('yarn', [], 'inherit'); } diff --git a/code/lib/cli/src/js-package-manager/Yarn2Proxy.test.ts b/code/lib/cli/src/js-package-manager/Yarn2Proxy.test.ts index 30c90f9be32b..93faad9aa82e 100644 --- a/code/lib/cli/src/js-package-manager/Yarn2Proxy.test.ts +++ b/code/lib/cli/src/js-package-manager/Yarn2Proxy.test.ts @@ -1,5 +1,4 @@ import { Yarn2Proxy } from './Yarn2Proxy'; -import * as PackageJsonHelper from './PackageJsonHelper'; describe('Yarn 2 Proxy', () => { let yarn2Proxy: Yarn2Proxy; @@ -32,6 +31,21 @@ describe('Yarn 2 Proxy', () => { }); }); + describe('setRegistryUrl', () => { + it('should run `yarn config set npmRegistryServer https://foo.bar`', () => { + const executeCommandSpy = jest.spyOn(yarn2Proxy, 'executeCommand').mockReturnValue(''); + + yarn2Proxy.setRegistryURL('https://foo.bar'); + + expect(executeCommandSpy).toHaveBeenCalledWith('yarn', [ + 'config', + 'set', + 'npmRegistryServer', + 'https://foo.bar', + ]); + }); + }); + describe('addDependencies', () => { it('with devDep it should run `yarn install -D @storybook/addons`', () => { const executeCommandSpy = jest.spyOn(yarn2Proxy, 'executeCommand').mockReturnValue(''); @@ -62,7 +76,7 @@ describe('Yarn 2 Proxy', () => { it('skipInstall should only change package.json without running install', () => { const executeCommandSpy = jest.spyOn(yarn2Proxy, 'executeCommand').mockReturnValue('7.0.0'); const writePackageSpy = jest - .spyOn(PackageJsonHelper, 'writePackageJson') + .spyOn(yarn2Proxy, 'writePackageJson') .mockImplementation(jest.fn); yarn2Proxy.removeDependencies( @@ -132,4 +146,32 @@ describe('Yarn 2 Proxy', () => { await expect(yarn2Proxy.latestVersion('@storybook/addons')).rejects.toThrow(); }); }); + + describe('addPackageResolutions', () => { + it('adds resolutions to package.json and account for existing resolutions', () => { + const writePackageSpy = jest + .spyOn(yarn2Proxy, 'writePackageJson') + .mockImplementation(jest.fn); + + jest.spyOn(yarn2Proxy, 'retrievePackageJson').mockImplementation( + jest.fn(() => ({ + resolutions: { + bar: 'x.x.x', + }, + })) + ); + + const versions = { + foo: 'x.x.x', + }; + yarn2Proxy.addPackageResolutions(versions); + + expect(writePackageSpy).toHaveBeenCalledWith({ + resolutions: { + ...versions, + bar: 'x.x.x', + }, + }); + }); + }); }); diff --git a/code/lib/cli/src/js-package-manager/Yarn2Proxy.ts b/code/lib/cli/src/js-package-manager/Yarn2Proxy.ts index 133c384e00b7..4ab59b903d4b 100644 --- a/code/lib/cli/src/js-package-manager/Yarn2Proxy.ts +++ b/code/lib/cli/src/js-package-manager/Yarn2Proxy.ts @@ -1,4 +1,5 @@ import { JsPackageManager } from './JsPackageManager'; +import type { PackageJson } from './PackageJson'; export class Yarn2Proxy extends JsPackageManager { readonly type = 'yarn2'; @@ -15,6 +16,28 @@ export class Yarn2Proxy extends JsPackageManager { return `yarn ${command}`; } + setRegistryURL(url: string) { + if (url) { + this.executeCommand('yarn', ['config', 'set', 'npmRegistryServer', url]); + } else { + this.executeCommand('yarn', ['config', 'delete', 'npmRegistryServer']); + } + } + + getRegistryURL() { + const url = this.executeCommand('yarn', ['config', 'get', 'npmRegistryServer']).trim(); + return url === 'undefined' ? undefined : url; + } + + protected getResolutions(packageJson: PackageJson, versions: Record) { + return { + resolutions: { + ...packageJson.resolutions, + ...versions, + }, + }; + } + protected runInstall(): void { this.executeCommand('yarn', [], 'inherit'); } diff --git a/code/lib/cli/src/js-package-manager/index.ts b/code/lib/cli/src/js-package-manager/index.ts index 13cc52f4ed04..3a2b877d5030 100644 --- a/code/lib/cli/src/js-package-manager/index.ts +++ b/code/lib/cli/src/js-package-manager/index.ts @@ -1,4 +1,3 @@ export * from './JsPackageManagerFactory'; export * from './JsPackageManager'; export * from './PackageJson'; -export * from './PackageJsonHelper'; diff --git a/code/lib/cli/src/versions.ts b/code/lib/cli/src/versions.ts index ecf4318b71c3..df0414409d71 100644 --- a/code/lib/cli/src/versions.ts +++ b/code/lib/cli/src/versions.ts @@ -1,81 +1,81 @@ // auto generated file, do not edit export default { - '@storybook/addon-a11y': '7.0.0-alpha.19', - '@storybook/addon-actions': '7.0.0-alpha.19', - '@storybook/addon-backgrounds': '7.0.0-alpha.19', - '@storybook/addon-controls': '7.0.0-alpha.19', - '@storybook/addon-docs': '7.0.0-alpha.19', - '@storybook/addon-essentials': '7.0.0-alpha.19', - '@storybook/addon-highlight': '7.0.0-alpha.19', - '@storybook/addon-interactions': '7.0.0-alpha.19', - '@storybook/addon-jest': '7.0.0-alpha.19', - '@storybook/addon-links': '7.0.0-alpha.19', - '@storybook/addon-measure': '7.0.0-alpha.19', - '@storybook/addon-outline': '7.0.0-alpha.19', - '@storybook/addon-storyshots': '7.0.0-alpha.19', - '@storybook/addon-storyshots-puppeteer': '7.0.0-alpha.19', - '@storybook/addon-storysource': '7.0.0-alpha.19', - '@storybook/addon-toolbars': '7.0.0-alpha.19', - '@storybook/addon-viewport': '7.0.0-alpha.19', - '@storybook/addons': '7.0.0-alpha.19', - '@storybook/angular': '7.0.0-alpha.19', - '@storybook/api': '7.0.0-alpha.19', - '@storybook/blocks': '7.0.0-alpha.19', - '@storybook/builder-manager': '7.0.0-alpha.19', - '@storybook/builder-vite': '7.0.0-alpha.19', - '@storybook/builder-webpack5': '7.0.0-alpha.19', - '@storybook/channel-postmessage': '7.0.0-alpha.19', - '@storybook/channel-websocket': '7.0.0-alpha.19', - '@storybook/channels': '7.0.0-alpha.19', - '@storybook/cli': '7.0.0-alpha.19', - '@storybook/client-api': '7.0.0-alpha.19', - '@storybook/client-logger': '7.0.0-alpha.19', - '@storybook/codemod': '7.0.0-alpha.19', - '@storybook/components': '7.0.0-alpha.19', - '@storybook/core-client': '7.0.0-alpha.19', - '@storybook/core-common': '7.0.0-alpha.19', - '@storybook/core-events': '7.0.0-alpha.19', - '@storybook/core-server': '7.0.0-alpha.19', - '@storybook/core-vite': '7.0.0-alpha.19', - '@storybook/core-webpack': '7.0.0-alpha.19', - '@storybook/csf-tools': '7.0.0-alpha.19', - '@storybook/docs-tools': '7.0.0-alpha.19', - '@storybook/ember': '7.0.0-alpha.19', - '@storybook/html': '7.0.0-alpha.19', - '@storybook/html-webpack5': '7.0.0-alpha.19', - '@storybook/instrumenter': '7.0.0-alpha.19', - '@storybook/node-logger': '7.0.0-alpha.19', - '@storybook/postinstall': '7.0.0-alpha.19', - '@storybook/preact': '7.0.0-alpha.19', - '@storybook/preact-webpack5': '7.0.0-alpha.19', - '@storybook/preset-html-webpack': '7.0.0-alpha.19', - '@storybook/preset-preact-webpack': '7.0.0-alpha.19', - '@storybook/preset-react-webpack': '7.0.0-alpha.19', - '@storybook/preset-server-webpack': '7.0.0-alpha.19', - '@storybook/preset-svelte-webpack': '7.0.0-alpha.19', - '@storybook/preset-vue-webpack': '7.0.0-alpha.19', - '@storybook/preset-vue3-webpack': '7.0.0-alpha.19', - '@storybook/preset-web-components-webpack': '7.0.0-alpha.19', - '@storybook/preview-web': '7.0.0-alpha.19', - '@storybook/react': '7.0.0-alpha.19', - '@storybook/react-vite': '7.0.0-alpha.19', - '@storybook/react-webpack5': '7.0.0-alpha.19', - '@storybook/router': '7.0.0-alpha.19', - '@storybook/server': '7.0.0-alpha.19', - '@storybook/server-webpack5': '7.0.0-alpha.19', - '@storybook/source-loader': '7.0.0-alpha.19', - '@storybook/store': '7.0.0-alpha.19', - '@storybook/svelte': '7.0.0-alpha.19', - '@storybook/svelte-webpack5': '7.0.0-alpha.19', - '@storybook/telemetry': '7.0.0-alpha.19', - '@storybook/theming': '7.0.0-alpha.19', - '@storybook/ui': '7.0.0-alpha.19', - '@storybook/vue': '7.0.0-alpha.19', - '@storybook/vue-webpack5': '7.0.0-alpha.19', - '@storybook/vue3': '7.0.0-alpha.19', - '@storybook/vue3-webpack5': '7.0.0-alpha.19', - '@storybook/web-components': '7.0.0-alpha.19', - '@storybook/web-components-webpack5': '7.0.0-alpha.19', - sb: '7.0.0-alpha.19', - storybook: '7.0.0-alpha.19', + '@storybook/addon-a11y': '7.0.0-alpha.21', + '@storybook/addon-actions': '7.0.0-alpha.21', + '@storybook/addon-backgrounds': '7.0.0-alpha.21', + '@storybook/addon-controls': '7.0.0-alpha.21', + '@storybook/addon-docs': '7.0.0-alpha.21', + '@storybook/addon-essentials': '7.0.0-alpha.21', + '@storybook/addon-highlight': '7.0.0-alpha.21', + '@storybook/addon-interactions': '7.0.0-alpha.21', + '@storybook/addon-jest': '7.0.0-alpha.21', + '@storybook/addon-links': '7.0.0-alpha.21', + '@storybook/addon-measure': '7.0.0-alpha.21', + '@storybook/addon-outline': '7.0.0-alpha.21', + '@storybook/addon-storyshots': '7.0.0-alpha.21', + '@storybook/addon-storyshots-puppeteer': '7.0.0-alpha.21', + '@storybook/addon-storysource': '7.0.0-alpha.21', + '@storybook/addon-toolbars': '7.0.0-alpha.21', + '@storybook/addon-viewport': '7.0.0-alpha.21', + '@storybook/addons': '7.0.0-alpha.21', + '@storybook/angular': '7.0.0-alpha.21', + '@storybook/api': '7.0.0-alpha.21', + '@storybook/blocks': '7.0.0-alpha.21', + '@storybook/builder-manager': '7.0.0-alpha.21', + '@storybook/builder-vite': '7.0.0-alpha.21', + '@storybook/builder-webpack5': '7.0.0-alpha.21', + '@storybook/channel-postmessage': '7.0.0-alpha.21', + '@storybook/channel-websocket': '7.0.0-alpha.21', + '@storybook/channels': '7.0.0-alpha.21', + '@storybook/cli': '7.0.0-alpha.21', + '@storybook/client-api': '7.0.0-alpha.21', + '@storybook/client-logger': '7.0.0-alpha.21', + '@storybook/codemod': '7.0.0-alpha.21', + '@storybook/components': '7.0.0-alpha.21', + '@storybook/core-client': '7.0.0-alpha.21', + '@storybook/core-common': '7.0.0-alpha.21', + '@storybook/core-events': '7.0.0-alpha.21', + '@storybook/core-server': '7.0.0-alpha.21', + '@storybook/core-vite': '7.0.0-alpha.21', + '@storybook/core-webpack': '7.0.0-alpha.21', + '@storybook/csf-tools': '7.0.0-alpha.21', + '@storybook/docs-tools': '7.0.0-alpha.21', + '@storybook/ember': '7.0.0-alpha.21', + '@storybook/html': '7.0.0-alpha.21', + '@storybook/html-webpack5': '7.0.0-alpha.21', + '@storybook/instrumenter': '7.0.0-alpha.21', + '@storybook/node-logger': '7.0.0-alpha.21', + '@storybook/postinstall': '7.0.0-alpha.21', + '@storybook/preact': '7.0.0-alpha.21', + '@storybook/preact-webpack5': '7.0.0-alpha.21', + '@storybook/preset-html-webpack': '7.0.0-alpha.21', + '@storybook/preset-preact-webpack': '7.0.0-alpha.21', + '@storybook/preset-react-webpack': '7.0.0-alpha.21', + '@storybook/preset-server-webpack': '7.0.0-alpha.21', + '@storybook/preset-svelte-webpack': '7.0.0-alpha.21', + '@storybook/preset-vue-webpack': '7.0.0-alpha.21', + '@storybook/preset-vue3-webpack': '7.0.0-alpha.21', + '@storybook/preset-web-components-webpack': '7.0.0-alpha.21', + '@storybook/preview-web': '7.0.0-alpha.21', + '@storybook/react': '7.0.0-alpha.21', + '@storybook/react-vite': '7.0.0-alpha.21', + '@storybook/react-webpack5': '7.0.0-alpha.21', + '@storybook/router': '7.0.0-alpha.21', + '@storybook/server': '7.0.0-alpha.21', + '@storybook/server-webpack5': '7.0.0-alpha.21', + '@storybook/source-loader': '7.0.0-alpha.21', + '@storybook/store': '7.0.0-alpha.21', + '@storybook/svelte': '7.0.0-alpha.21', + '@storybook/svelte-webpack5': '7.0.0-alpha.21', + '@storybook/telemetry': '7.0.0-alpha.21', + '@storybook/theming': '7.0.0-alpha.21', + '@storybook/ui': '7.0.0-alpha.21', + '@storybook/vue': '7.0.0-alpha.21', + '@storybook/vue-webpack5': '7.0.0-alpha.21', + '@storybook/vue3': '7.0.0-alpha.21', + '@storybook/vue3-webpack5': '7.0.0-alpha.21', + '@storybook/web-components': '7.0.0-alpha.21', + '@storybook/web-components-webpack5': '7.0.0-alpha.21', + sb: '7.0.0-alpha.21', + storybook: '7.0.0-alpha.21', }; diff --git a/code/lib/client-api/package.json b/code/lib/client-api/package.json index ea9ba4eb570d..decec4b741d8 100644 --- a/code/lib/client-api/package.json +++ b/code/lib/client-api/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-api", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook Client API", "keywords": [ "storybook" @@ -34,13 +34,13 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/channel-postmessage": "7.0.0-alpha.19", - "@storybook/channels": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/channel-postmessage": "7.0.0-alpha.21", + "@storybook/channels": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/store": "7.0.0-alpha.21", "@types/qs": "^6.9.5", "@types/webpack-env": "^1.16.4", "core-js": "^3.8.2", @@ -64,5 +64,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/client-logger/package.json b/code/lib/client-logger/package.json index 971c50cd2744..de6cc396ba33 100644 --- a/code/lib/client-logger/package.json +++ b/code/lib/client-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/client-logger", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "", "keywords": [ "storybook" @@ -43,5 +43,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/codemod/package.json b/code/lib/codemod/package.json index 750554619fe9..f864a8bd2381 100644 --- a/code/lib/codemod/package.json +++ b/code/lib/codemod/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/codemod", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "A collection of codemod scripts written with JSCodeshift", "keywords": [ "storybook" @@ -45,8 +45,8 @@ "@babel/types": "^7.12.11", "@mdx-js/mdx": "^1.6.22", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/csf-tools": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", + "@storybook/csf-tools": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", "core-js": "^3.8.2", "cross-spawn": "^7.0.3", "globby": "^11.0.2", @@ -63,5 +63,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/components/package.json b/code/lib/components/package.json index 19c4d9fb78ff..bac21fa0f572 100644 --- a/code/lib/components/package.json +++ b/code/lib/components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/components", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Core Storybook Components", "keywords": [ "storybook" @@ -51,9 +51,9 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/client-logger": "7.0.0-alpha.19", + "@storybook/client-logger": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/theming": "7.0.0-alpha.19", + "@storybook/theming": "7.0.0-alpha.21", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0", @@ -100,5 +100,5 @@ ], "platform": "neutral" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/components/src/Button/Button.tsx b/code/lib/components/src/Button/Button.tsx index 378c8f4f3429..7ef58930d3a7 100644 --- a/code/lib/components/src/Button/Button.tsx +++ b/code/lib/components/src/Button/Button.tsx @@ -41,13 +41,13 @@ const ButtonWrapper = styled.button<{ svg: { display: 'inline-block', - height: small ? 14 : 16, - width: small ? 14 : 16, + height: small ? 12 : 14, + width: small ? 12 : 14, verticalAlign: 'top', marginRight: small ? 4 : 6, - marginTop: small ? -1 : -2, - marginBottom: small ? -1 : -2, + marginTop: small ? 0 : -1, + marginBottom: small ? 0 : -1, /* Necessary for js mouse events to not glitch out when hovering on svgs */ pointerEvents: 'none', @@ -74,7 +74,7 @@ const ButtonWrapper = styled.button<{ display: 'block', margin: 0, }, - ...(small ? { padding: 9 } : { padding: 12 }), + ...(small ? { padding: 10 } : { padding: 13 }), } : {}, ({ theme, primary, secondary, gray }) => { diff --git a/code/lib/components/src/icon/icon.stories.tsx b/code/lib/components/src/icon/icon.stories.tsx index 92892d5e9a1d..128b9f73a32d 100644 --- a/code/lib/components/src/icon/icon.stories.tsx +++ b/code/lib/components/src/icon/icon.stories.tsx @@ -1,77 +1,89 @@ import React from 'react'; -import { styled } from '@storybook/theming'; -import { storiesOf } from '@storybook/react'; +import { styled, css } from '@storybook/theming'; import { Icons } from './icon'; import { icons, IconKey } from './icons'; -const Meta = styled.div({ - color: '#333', - fontSize: 12, -}); +const Meta = styled.div` + color: #666; + font-size: 12px; +`; -interface ItemProps { - minimal?: boolean; -} +const Item = styled.li<{ minimal?: boolean }>` + display: inline-flex; + flex-direction: row; + align-items: center; + flex: 0 1 16%; + min-width: 120px; + margin: 16px; -const Item = styled.div( - { - display: 'inline-flex', - flexDirection: 'row', - alignItems: 'center', - flex: '0 1 20%', - minWidth: 120, + svg { + margin-right: 6px; + width: 14px; + height: 14px; + } - padding: '0px 7.5px 20px', + ${(props) => + props.minimal && + css` + flex: none; + min-width: auto; + padding: 0; + margin: 16px; - '& svg': { - marginRight: 10, - width: 24, - height: 24, - }, - }, - ({ minimal }) => - minimal - ? { - flex: 'none', - minWidth: 'auto', - padding: 0, - background: '#fff', - border: '1px solid #666', + svg { + display: block; + margin-right: 0; + width: 14px; + height: 14px; + } + `}; +`; - '& svg': { - display: 'block', - marginRight: 0, - width: 48, - height: 48, - }, - } - : {} -); +const List = styled.ul` + display: flex; + flex-flow: row wrap; + list-style: none; + padding: 0; + margin: 0; +`; + +const Header = styled.h2` + font-size: 16px; + margin: 16px; +`; -const List = styled.div({ - display: 'flex', - flexFlow: 'row wrap', -}); +export default { + title: 'Basics/Icon', + component: Icons, +}; -const list = Object.keys(icons).sort() as IconKey[]; +export const Basic = (args) => ; +Basic.args = { icon: 'watch' }; -storiesOf('Basics/Icon', module) - .add('labels', () => ( +export const Labels = () => ( + <> +
{Object.keys(icons).length} icons
- {list.map((key) => ( + {Object.keys(icons).map((key) => ( - {key} + + {key} ))} - )) - .add('no labels', () => ( + +); + +export const NoLabels = () => ( + <> +
{Object.keys(icons).length} icons
- {list.map((key) => ( + {Object.keys(icons).map((key) => ( - + ))} - )); + +); diff --git a/code/lib/components/src/icon/icon.tsx b/code/lib/components/src/icon/icon.tsx index d70111546fa7..aac07647181a 100644 --- a/code/lib/components/src/icon/icon.tsx +++ b/code/lib/components/src/icon/icon.tsx @@ -1,39 +1,47 @@ -import React, { ComponentProps, memo } from 'react'; +import React, { FunctionComponent, ComponentProps, memo } from 'react'; import { styled } from '@storybook/theming'; -import icons, { IconKey } from './icons'; +import { icons, IconKey } from './icons'; -import Svg from './svg'; +const Svg = styled.svg` + display: inline-block; + shape-rendering: inherit; + transform: translate3d(0, 0, 0); + vertical-align: middle; -const Path = styled.path({ - fill: 'currentColor', -}); + path { + fill: currentColor; + } +`; export interface IconsProps extends ComponentProps { - icon?: IconKey; - symbol?: IconKey; + icon: IconType; + useSymbol?: boolean; } -// TODO: if we can resize the 1024 to 20, we can remove the size attributes -export const Icons = memo(({ icon, symbol, ...props }) => ( - - {symbol ? : } - -)); +export const Icons: FunctionComponent = ({ icon, useSymbol, ...props }: IconsProps) => { + return ( + + {useSymbol ? : icons[icon]} + + ); +}; + +export type IconType = keyof typeof icons; export interface SymbolsProps extends ComponentProps { icons?: IconKey[]; } export const Symbols = memo(({ icons: keys = Object.keys(icons) }) => ( - {keys.map((key: IconKey) => ( - + {icons[key]} ))} - + )); diff --git a/code/lib/components/src/icon/icons.tsx b/code/lib/components/src/icon/icons.tsx index f2a39cb16c1b..2a24d9f3948c 100644 --- a/code/lib/components/src/icon/icons.tsx +++ b/code/lib/components/src/icon/icons.tsx @@ -1,316 +1,1427 @@ +import React from 'react'; + // Icon paths export const icons = { - mobile: - 'M648 64h-272c-66.274 0-120 53.726-120 120v656c0 66.274 53.726 120 120 120h272c66.274 0 120-53.726 120-120v-656c0-66.274-53.726-120-120-120zM376 144h272c22.056 0 40 17.944 40 40v495.968h-352v-495.968c0-22.056 17.946-40 40-40zM648 880h-272c-22.054 0-40-17.944-40-40v-80.032h352v80.032c0 22.056-17.944 40-40 40zM544.034 819.962c0 17.676-14.33 32.002-32.004 32.002-17.67 0-32-14.326-32-32.002 0-17.672 14.33-31.998 32-31.998 17.674-0 32.004 14.326 32.004 31.998z', - watch: - 'M736.172 108.030c0-11.044-8.956-20-20-20h-408.282c-11.044 0-20 8.956-20 20 0 11.046 8.956 20 20 20h408.282c11.044 0 20-8.954 20-20zM736.172 50.37c0-11.044-8.956-20-20-20h-408.282c-11.044 0-20 8.956-20 20s8.956 20 20 20h408.282c11.044 0 20-8.956 20-20zM736.172 973.692c0-11.044-8.956-20-20-20h-408.282c-11.044 0-20 8.956-20 20s8.956 20 20 20h408.282c11.044 0 20-8.956 20-20zM736.172 916.030c0-11.044-8.956-20-20-20h-408.282c-11.044 0-20 8.956-20 20 0 11.046 8.956 20 20 20h408.282c11.044 0 20-8.954 20-20zM717.53 228c18.904 0 34.286 15.14 34.286 33.75v500.502c0 18.61-15.38 33.75-34.286 33.75h-411.43c-18.904 0-34.286-15.14-34.286-33.75v-500.502c0-18.61 15.38-33.75 34.286-33.75h411.43zM717.53 148h-411.43c-63.118 0-114.286 50.928-114.286 113.75v500.502c0 62.822 51.166 113.75 114.286 113.75h411.43c63.118 0 114.286-50.926 114.286-113.75v-500.502c-0.002-62.822-51.168-113.75-114.286-113.75v0zM680.036 511.53c0 22.090-17.91 40-40 40h-128.004c-5.384 0-10.508-1.078-15.196-3.006-0.124-0.048-0.254-0.086-0.376-0.132-0.61-0.262-1.188-0.57-1.782-0.86-0.572-0.276-1.16-0.528-1.718-0.828-0.204-0.112-0.39-0.246-0.594-0.364-0.918-0.514-1.832-1.050-2.704-1.64-0.086-0.058-0.164-0.128-0.254-0.188-10.492-7.21-17.382-19.284-17.382-32.98v-151.5c0-22.094 17.91-40 40.004-40 22.088 0 40 17.906 40 40v111.498h88c22.094-0.002 40.002 17.91 40.006 40z', - tablet: - 'M200.022 927.988h624.018c1.38 0 2.746-0.072 4.090-0.208 20.168-2.050 35.91-19.080 35.91-39.792v-751.916c0-22.092-17.91-40-40-40h-624.018c-22.098 0-40 17.908-40 40v751.916c0 22.094 17.906 40 40 40zM512.002 878.206c-17.674 0-32.004-14.328-32.004-31.998 0-17.678 14.33-32.002 32.004-32.002 17.67 0 32 14.324 32 32.002 0 17.67-14.33 31.998-32 31.998zM240.022 176.078h544.018v591.902h-544.018v-591.902z', - browser: - 'M920.004 128h-816.008c-1.38 0-2.746 0.070-4.090 0.208-20.168 2.048-35.91 19.080-35.91 39.792v688c0 22.090 17.91 40 40 40h816.008c22.098 0 40-17.91 40-40v-688c-0-22.094-17.906-40-40-40zM368 177.78c17.674 0 32.004 14.328 32.004 31.998 0 17.676-14.33 32.002-32.004 32.002-17.67 0-32-14.326-32-32.002 0-17.67 14.33-31.998 32-31.998zM272 177.78c17.674 0 32.004 14.328 32.004 31.998 0 17.676-14.33 32.002-32.004 32.002-17.67 0-32-14.326-32-32.002 0-17.67 14.33-31.998 32-31.998zM176 177.78c17.674 0 32.004 14.328 32.004 31.998 0 17.676-14.33 32.002-32.004 32.002-17.67 0-32-14.326-32-32.002 0-17.67 14.33-31.998 32-31.998zM880.004 815.996h-736.008v-527.988h736.008v527.988z', - sidebar: - 'M920.032 127.858h-816c-22.092 0-40 17.908-40 40v688c0 22.092 17.908 40 40 40h316.578c1.13 0.096 2.266 0.172 3.422 0.172s2.292-0.078 3.424-0.172h492.576c22.092 0 40-17.908 40-40v-688c0-22.092-17.908-40-40-40zM144.032 207.858h240v608h-240v-608zM880.032 815.858h-416v-608h416v608zM198.734 288.030c0-17.674 14.328-32 32.002-32h66.396c17.672 0 32 14.326 32 32 0 17.676-14.324 32-32 32h-66.398c-17.674 0-32-14.326-32-32zM198.734 416.030c0-17.674 14.328-32 32.002-32h66.396c17.672 0 32 14.326 32 32 0 17.676-14.324 32-32 32h-66.398c-17.674 0-32-14.326-32-32zM198.734 544.030c0-17.674 14.328-32 32.002-32h66.396c17.672 0 32 14.326 32 32 0 17.676-14.324 32-32 32h-66.398c-17.674 0-32-14.326-32-32z', - sidebaralt: - 'M64 167.944v688c0 22.092 17.908 40 40 40h816c22.092 0 40-17.908 40-40v-688c0-22.092-17.908-40-40-40h-816c-22.092 0-40 17.908-40 40zM880 815.944h-240v-608h240v608zM144 207.944h416v608h-416v-608zM793.296 320.118h-66.398c-17.676 0-32-14.324-32-32 0-17.674 14.328-32 32-32h66.396c17.674 0 32.002 14.326 32.002 32 0 17.672-14.324 32-32 32zM793.296 448.118h-66.398c-17.676 0-32-14.324-32-32 0-17.674 14.328-32 32-32h66.396c17.674 0 32.002 14.326 32.002 32 0 17.672-14.324 32-32 32zM793.296 576.118h-66.398c-17.676 0-32-14.324-32-32 0-17.674 14.328-32 32-32h66.396c17.674 0 32.002 14.326 32.002 32 0 17.672-14.324 32-32 32z', - bottombar: - 'M85 121h854c24 0 42 18 42 41v700c0 23-18 41-42 41H608a44 44 0 0 1-7 0H85c-24 0-42-18-42-41V162c0-23 18-41 42-41zm41 535v165h772V656H126zm0-82h772V202H126v372zm185 197h-69c-19 0-34-14-34-32s15-33 34-33h69c19 0 34 15 34 33s-15 32-34 32zm236 0h-70c-18 0-33-14-33-32s15-33 33-33h70c18 0 33 15 33 33s-15 32-33 32zm235 0h-70c-18 0-33-14-33-32s15-33 33-33h70c18 0 33 15 33 33s-15 32-33 32z', - useralt: - 'M533 960a850 850 0 0 0 386-92v-19c0-117-242-223-306-234-20-3-21-58-21-58s59-58 72-137c35 0 56-84 21-113 2-31 45-243-173-243S337 276 338 307c-34 29-13 113 22 113 13 79 72 137 72 137s-1 55-21 58c-64 11-301 115-306 231a855 855 0 0 0 428 114z', - user: 'M814 805a525 525 0 00-217-116c-17-3-17-50-17-50s50-49 61-116c29 0 48-71 18-96 1-26 38-206-147-206S364 401 365 427c-30 25-11 96 18 96 11 67 61 116 61 116s0 47-17 50c-39 6-154 53-217 116a418 418 0 015-590 418 418 0 01594 0 418 418 0 015 590M512 0a512 512 0 100 1024A512 512 0 00512 0', - useradd: - 'M87 859c-30-12-59-27-87-43 5-105 221-200 279-210 19-3 19-53 19-53s-54-53-65-125c-32 0-51-76-20-103-1-28-40-221 158-221 199 0 160 193 158 221 32 27 12 103-19 103-12 72-66 125-66 125s1 50 19 53c59 10 279 107 279 213v18a781 781 0 0 1-655 22zm892-565h-91v-90a45 45 0 1 0-91 0v90h-91a45 45 0 1 0 0 91h91v91a45 45 0 1 0 91 0v-91h91a45 45 0 1 0 0-91z', - users: - 'M360 128c193 0 155 182 154 208 31 25 12 97-19 97-11 67-64 118-64 118s1 47 19 50c57 9 271 100 271 200v16a771 771 0 0 1-637 21c-29-11-57-25-84-40 4-99 215-189 271-197 18-3 18-50 18-50s-52-51-63-118c-31 0-50-72-19-97-1-26-40-208 153-208zm416 66c133 0 107 125 106 144 21 17 8 66-13 66-8 47-44 81-44 81s0 33 12 34c40 6 187 69 187 138v46c-80 27-163 41-249 41l-9-1c-16-31-44-61-83-90a546 546 0 0 0-111-64c47-38 117-66 143-70 12-1 12-34 12-34s-36-34-43-81c-21 0-34-49-13-66-1-19-27-144 105-144z', - profile: - 'M761 631c0-13-10-23-22-23H285c-12 0-22 10-22 23 0 12 10 23 22 23h454c12 0 22-11 22-23zm0 100c0-12-10-22-22-22H285c-12 0-22 10-22 22 0 13 10 23 22 23h454c12 0 22-10 22-23zm0 101c0-13-10-23-22-23H285c-12 0-22 10-22 23s10 23 22 23h454c12 0 22-10 22-23zM832 0c59 0 107 49 107 109v807c-1 60-49 108-107 108H130c-25 0-45-20-45-46V46a45 45 0 0 1 45-46h702zm0 91H174v842h658c10 0 18-9 18-18V110c0-10-8-19-18-19zM384 532l-39-20c2-49 100-93 126-97 8-1 8-25 8-25s-24-24-29-57c-14 0-23-35-9-48-1-13-18-102 71-102s72 89 71 102c14 13 5 48-9 48-5 33-29 57-29 57s0 24 8 25c27 4 126 49 126 98v8a346 346 0 0 1-295 11z', - bookmark: - 'M772 1012L511 761l-260 251a49 49 0 0 1-52 10c-18-7-29-24-29-43V132c0-25 21-46 47-46h588c26 0 47 21 47 46v847c0 19-11 36-29 43a49 49 0 0 1-51-10z', - bookmarkhollow: - 'M772 1012L511 761l-260 251a49 49 0 0 1-52 10c-18-7-29-24-29-43V132c0-25 21-46 47-46h588c26 0 47 21 47 46v847c0 19-11 36-29 43a49 49 0 0 1-51-10zM545 664l213 205V181H265v688l213-205c9-9 21-14 33-14s24 5 34 14z', - book: 'M896.054 159.774c-0.122-52.914-43.048-95.774-95.992-95.774h-632.004c-1.754 0-3.468 0.154-5.164 0.372-19.644 2.54-34.836 19.292-34.836 39.628v816c0 22.094 17.91 40 40 40h632.004c52.642 0 95.368-42.378 95.968-94.88h0.036v-705.332l-0.012-0.014zM368.062 144h80v271.922l-11.728-11.718c-15.62-15.606-40.924-15.606-56.542 0l-11.728 11.718v-271.922zM816.036 864.204c-0.1 8.712-7.268 15.796-15.972 15.796h-592.004v-736h80.004v368.426c0 16.176 9.742 30.758 24.684 36.954 14.944 6.192 32.146 2.778 43.586-8.656l51.728-51.68 51.728 51.68c7.652 7.644 17.876 11.708 28.28 11.708 5.156 0 10.356-1 15.306-3.050 14.944-6.196 24.684-20.778 24.684-36.954v-368.428h272c8.796 0 15.972 7.16 15.992 15.958l-0.016 704.246z', - repository: - 'M856.020 159.804c-0.122-52.916-43.048-95.774-95.992-95.774h-591.968c-1.754 0-3.468 0.154-5.164 0.37-19.644 2.54-34.836 19.292-34.836 39.63v784.584c0 22.094 17.91 40 40 40h151.972v63.594c0 10.876 6.548 20.682 16.598 24.844 10.046 4.164 21.612 1.87 29.304-5.818l34.78-34.748 34.78 34.748c5.144 5.14 12.020 7.87 19.014 7.87 3.466 0 6.962-0.672 10.292-2.052 10.048-4.164 16.598-13.968 16.598-24.844v-63.594h278.63c52.642 0 95.368-42.38 95.968-94.882h0.036v-673.916l-0.012-0.012zM776.020 159.988l-0.014 504.628h-519.974v-520.584h503.996c8.796-0 15.972 7.158 15.992 15.956zM760.028 848.616h-278.63v-56h-161.366v56h-111.972v-104h567.944l-0.002 88.204c-0.102 8.71-7.27 15.796-15.974 15.796zM320.032 240.396c0-17.67 14.328-31.998 31.998-31.998s32.002 14.326 32.002 31.998c0 17.674-14.332 32-32.002 32-17.672-0.002-31.998-14.326-31.998-32zM320.032 349.79c0-17.67 14.328-31.998 31.998-31.998s32.002 14.328 32.002 31.998c0 17.676-14.332 32-32.002 32-17.672 0-31.998-14.324-31.998-32zM320.032 459.188c0-17.67 14.328-32 31.998-32s32.002 14.328 32.002 32c0 17.674-14.332 31.998-32.002 31.998-17.672 0-31.998-14.324-31.998-31.998zM384.032 568.582c0 17.674-14.332 31.998-32.002 31.998s-31.998-14.324-31.998-31.998c0-17.67 14.328-32 31.998-32 17.67 0.002 32.002 14.33 32.002 32z', - star: 'M763.972 919.5c-6.368 0-12.758-1.518-18.61-4.596l-233.358-122.688-233.37 122.688c-13.476 7.090-29.808 5.904-42.124-3.042-12.318-8.95-18.486-24.118-15.912-39.124l44.57-259.856-188.792-184.028c-10.904-10.626-14.828-26.524-10.124-41.004s17.222-25.034 32.292-27.222l260.906-37.912 116.686-236.42c6.738-13.652 20.644-22.296 35.87-22.296v0c15.226 0 29.13 8.644 35.87 22.298l116.674 236.418 260.906 37.912c15.068 2.19 27.586 12.742 32.292 27.222s0.782 30.376-10.124 41.004l-188.792 184.028 44.24 257.93c0.62 2.796 0.946 5.704 0.946 8.688 0 22.054-17.848 39.942-39.888 40-0.054 0-0.106 0-0.158 0z', - starhollow: - 'M763.972 919.5c-6.368 0-12.758-1.518-18.61-4.596l-233.358-122.688-233.37 122.688c-13.476 7.090-29.808 5.904-42.124-3.042-12.318-8.95-18.486-24.118-15.912-39.124l44.57-259.856-188.792-184.028c-10.904-10.626-14.828-26.524-10.124-41.004s17.222-25.034 32.292-27.222l260.906-37.912 116.686-236.42c6.738-13.652 20.644-22.296 35.87-22.296v0c15.226 0 29.13 8.644 35.87 22.298l116.674 236.418 260.906 37.912c15.068 2.19 27.586 12.742 32.292 27.222s0.782 30.376-10.124 41.004l-188.792 184.028 44.24 257.93c0.62 2.796 0.946 5.704 0.946 8.688 0 22.054-17.848 39.942-39.888 40-0.054 0-0.106 0-0.158 0zM190.256 428.144l145.812 142.13c9.428 9.192 13.73 22.432 11.504 35.406l-34.424 200.7 180.244-94.758c11.654-6.13 25.576-6.126 37.226 0l180.232 94.756-34.422-200.698c-2.226-12.974 2.076-26.214 11.504-35.406l145.812-142.13-201.51-29.282c-13.030-1.892-24.292-10.076-30.118-21.882l-90.114-182.596-90.122 182.598c-5.826 11.804-17.090 19.988-30.118 21.88l-201.506 29.282z', - circle: 'M1024 512A512 512 0 110 512a512 512 0 011024 0z', - circlehollow: - 'M1024 512A512 512 0 100 512a512 512 0 001024 0zM215 809a418 418 0 010-594 418 418 0 01594 0 418 418 0 010 594 418 418 0 01-594 0z', - heart: - 'M895.032 194.328c-20.906-21.070-46.492-37.316-76.682-48.938-30.104-11.71-63.986-17.39-101.474-17.39-19.55 0-38.744 2.882-57.584 9.094-18.472 6.062-36.584 14.242-54.072 24.246-17.476 9.828-34.056 21.276-49.916 33.898-16.038 12.8-30.456 25.572-43.346 38.664-13.52-13.092-28.026-25.864-43.616-38.664-15.684-12.624-32.080-24.070-49.382-33.898-17.214-10.004-35.414-18.184-54.704-24.246-19.104-6.21-38.568-9.094-58.034-9.094-37.126 0-70.56 5.68-100.48 17.39-29.732 11.622-55.328 27.868-76.328 48.938-20.994 21.094-37.214 46.962-48.478 77.328-11.174 30.544-16.942 64.5-16.942 101.812 0 21.628 3.068 43.078 9.19 64.53 6.308 21.096 14.416 41.986 24.876 61.642 10.446 19.656 22.702 38.488 36.584 56.59 13.88 18.124 28.388 34.516 43.344 49.58l305.766 305.112c8.466 7.558 18.11 11.444 28.204 11.444 10.726 0 19.914-3.884 27.308-11.444l305.934-304.226c14.78-14.772 29.382-31.368 43.166-49.378 14.058-18.212 26.314-37.222 37.042-57.23 10.9-19.924 19.192-40.638 25.406-62 6.218-21.188 9.198-42.61 9.198-64.618 0-37.312-5.592-71.268-16.582-101.812-11.264-30.366-27.22-56.236-48.398-77.33z', - hearthollow: - 'M716.876 208c27.708 0 52.092 4.020 72.47 11.948l0.132 0.052 0.13 0.050c19.866 7.644 35.774 17.664 48.632 30.624l0.166 0.168 0.17 0.168c12.586 12.536 22.304 28.27 29.706 48.094 7.782 21.786 11.726 46.798 11.726 74.364 0 14.658-1.95 28.426-5.958 42.086l-0.028 0.092-0.026 0.092c-4.866 16.72-11.006 31.752-18.776 45.952l-0.162 0.298-0.16 0.296c-8.81 16.434-18.58 31.532-29.864 46.148l-0.204 0.264c-11.316 14.786-23.48 28.708-36.154 41.378l-277.122 275.574-276.94-276.35c-13.32-13.43-25.248-27.074-36.488-41.75-11.386-14.848-21.284-30.136-29.444-45.49-7.206-13.54-13.494-29.17-18.7-46.472-4.030-14.264-5.988-28.044-5.988-42.116 0-27.36 4.042-52.314 12.016-74.176 7.214-19.378 17.344-35.708 30.066-48.492 12.998-13.042 28.958-23.148 48.826-30.914 20.436-8 43.764-11.886 71.32-11.886 11.536 0 22.738 1.742 33.298 5.174l0.374 0.122 0.376 0.12c13.116 4.122 26.066 9.874 38.494 17.094l0.34 0.2 0.344 0.196c12.736 7.234 25.308 15.876 38.43 26.412 14.486 11.906 27.060 23.048 38.428 34.056l56.994 55.192 55.662-56.532c10.324-10.484 22.18-21.040 36.242-32.264 13.382-10.646 26.216-19.38 39.228-26.698l0.256-0.144 0.254-0.144c13.008-7.442 26.228-13.386 39.294-17.676l0.050-0.016 0.050-0.018c10.354-3.414 20.998-5.076 32.54-5.076zM716.876 128c-19.55 0-38.744 2.882-57.584 9.094-18.472 6.062-36.584 14.242-54.072 24.246-17.476 9.828-34.056 21.276-49.916 33.898-16.038 12.8-30.456 25.572-43.346 38.664-13.52-13.092-28.026-25.864-43.616-38.664-15.684-12.624-32.080-24.070-49.382-33.898-17.214-10.004-35.414-18.184-54.704-24.246-19.104-6.21-38.568-9.094-58.034-9.094-37.126 0-70.56 5.68-100.48 17.39-29.732 11.622-55.328 27.868-76.328 48.938-20.994 21.094-37.214 46.962-48.478 77.328-11.174 30.544-16.942 64.5-16.942 101.812 0 21.628 3.068 43.078 9.19 64.53 6.308 21.096 14.416 41.986 24.876 61.642 10.446 19.656 22.702 38.488 36.584 56.59 13.88 18.124 28.388 34.516 43.344 49.58l305.766 305.112c8.466 7.558 18.11 11.444 28.204 11.444 10.726 0 19.914-3.884 27.308-11.444l305.934-304.226c14.78-14.772 29.382-31.368 43.166-49.378 14.058-18.212 26.314-37.222 37.042-57.23 10.9-19.924 19.192-40.638 25.406-62 6.218-21.188 9.198-42.61 9.198-64.618 0-37.312-5.592-71.268-16.582-101.812-11.262-30.366-27.216-56.234-48.396-77.328-20.906-21.070-46.492-37.316-76.682-48.938-30.106-11.712-63.988-17.392-101.476-17.392v0z', - facehappy: - 'M512 0a512 512 0 110 1024A512 512 0 01512 0zm0 91.4c-112.3 0-218 43.8-297.4 123.2A417.8 417.8 0 0091.4 512c0 112.3 43.8 218 123.2 297.4A417.8 417.8 0 00512 932.6c112.3 0 218-43.8 297.4-123.2A417.8 417.8 0 00932.6 512c0-112.3-43.8-218-123.2-297.4A417.8 417.8 0 00512 91.4zm248 493.7c15.2 0 28.7 7.5 37 19l2.6 3.9a46 46 0 015.8 18l.3 4.9c0 6.6-1.4 13-4 18.7l-2.1 4.1A329 329 0 01232 663l-5.5-9.3a46 46 0 01-2-41.2l2-4.2v-.2a45.6 45.6 0 0176.7-4l2.5 4a237.9 237.9 0 00410 7.7l4.5-7.7a46 46 0 0139.7-22.9zM329.7 292.6a73.1 73.1 0 110 146.2 73.1 73.1 0 010-146.2zm365.2 0a73.1 73.1 0 110 146.2 73.1 73.1 0 010-146.2z', - facesad: - 'M512 0a512 512 0 110 1024A512 512 0 01512 0zm0 91.4c-112.3 0-218 43.8-297.4 123.2A417.8 417.8 0 0091.4 512c0 112.3 43.8 218 123.2 297.4A417.8 417.8 0 00512 932.6c112.3 0 218-43.8 297.4-123.2A417.8 417.8 0 00932.6 512c0-112.3-43.8-218-123.2-297.4A417.8 417.8 0 00512 91.4zm1.1 449.2a329 329 0 01281.1 157.7l5.5 9.2a46 46 0 012 41.3l-2 4.1v.3a45.6 45.6 0 01-76.7 4l-2.6-4a238 238 0 00-410-7.7l-4.5 7.7a46 46 0 01-76.6 4l-2.6-4a46 46 0 01-5.9-18l-.2-5c0-6.6 1.4-12.9 4-18.6l2.1-4.2a329 329 0 01286.4-166.8zm-183.4-248a73.1 73.1 0 110 146.2 73.1 73.1 0 010-146.2zm365.2 0a73.1 73.1 0 110 146.2 73.1 73.1 0 010-146.2z', - faceneutral: - 'M512 0a512 512 0 110 1024A512 512 0 01512 0zm0 91.4c-112.3 0-218 43.8-297.4 123.2A417.8 417.8 0 0091.4 512c0 112.3 43.8 218 123.2 297.4A417.8 417.8 0 00512 932.6c112.3 0 218-43.8 297.4-123.2A417.8 417.8 0 00932.6 512c0-112.3-43.8-218-123.2-297.4A417.8 417.8 0 00512 91.4zm248 521.2a45.7 45.7 0 014.7 91.2l-4.7.2H266.3a45.7 45.7 0 01-4.7-91.2l4.7-.2H760zm-430.3-320a73.1 73.1 0 110 146.2 73.1 73.1 0 010-146.2zm365.2 0a73.1 73.1 0 110 146.2 73.1 73.1 0 010-146.2z', - lock: 'M896.032 915.53v-467.498c0-19.102-13.402-35.052-31.31-39.026-0.21-0.046-0.414-0.12-0.628-0.162-0.444-0.090-0.904-0.13-1.354-0.208-2.186-0.37-4.416-0.606-6.708-0.606h-55.902l0.002-55.85h0.020c0-159.14-129.010-288.15-288.15-288.15-159.128 0-288.13 128.992-288.15 288.118v55.884h-54.852c-20.71 0-37.746 15.742-39.792 35.91-0.136 1.344-0.208 2.708-0.208 4.090v463.332c-0.618 2.792-0.968 5.688-0.968 8.668 0 22.094 17.91 40 40 40h688.27c22.092 0 40-17.91 40-40-0.002-1.524-0.104-3.024-0.27-4.502zM209 488.032h607.032v392h-607.032v-392zM303.85 352.182c0-114.776 93.376-208.15 208.15-208.15 114.59 0 207.842 93.074 208.142 207.596 0 0.084-0.012 0.164-0.012 0.248v56.156h-416.284l0.004-55.85zM552.164 691.858l-0.002 58.188c0.004 22.088-17.906 39.996-39.996 39.998-22.094 0.002-40.004-17.906-40-40v-57.974c-14.704-11.726-24.134-29.782-24.134-50.048 0-35.346 28.654-64 64-64s64 28.654 64 64c0 20.142-9.318 38.104-23.868 49.836z', - unlock: - 'M896.032 915.53v-467.498c0-1.988-0.194-3.926-0.472-5.834-0.11-0.744-0.192-1.498-0.34-2.226-1.524-7.44-5.136-14.1-10.164-19.408-0.252-0.266-0.48-0.554-0.738-0.814-0.496-0.494-1.036-0.944-1.554-1.412-0.43-0.386-0.84-0.8-1.288-1.17-0.292-0.24-0.608-0.446-0.904-0.676-2.506-1.954-5.244-3.616-8.176-4.934-0.744-0.334-1.504-0.632-2.27-0.922-4.39-1.656-9.124-2.604-14.094-2.604h-552.184l0.002-55.85c0-114.776 93.376-208.15 208.15-208.15 86.038 0 160.034 52.474 191.7 127.096 0.012 0.028 0.030 0.044 0.042 0.072 5.978 14.566 20.284 24.832 37.006 24.832 22.090 0 40-17.906 40-40 0-4.71-0.86-9.21-2.354-13.41-0.182-0.694-0.42-1.438-0.782-2.292-43.666-103.582-146.14-176.296-265.612-176.296-159.128 0-288.13 128.994-288.15 288.12v55.882h-54.85c-20.71 0-37.746 15.742-39.792 35.91-0.136 1.344-0.208 2.708-0.208 4.090v463.332c-0.618 2.794-0.968 5.688-0.968 8.668 0 22.094 17.91 40 40 40h688.27c22.092 0 40-17.91 40-40-0.002-1.528-0.104-3.028-0.27-4.506zM209 488.032h607.032v392h-607.032v-392zM552.164 691.86l-0.002 58.186c0.004 22.088-17.906 39.996-39.996 40-22.094 0-40.004-17.908-40-40v-57.976c-14.702-11.726-24.134-29.782-24.134-50.048 0-35.346 28.654-64 64-64s64 28.654 64 64c0 20.142-9.318 38.102-23.868 49.838z', - key: 'M768.032 320.032c0 35.346-28.654 64-64 64s-64-28.654-64-64 28.654-64 64-64 64 28.654 64 64zM960.032 353.092c0 159.062-128.946 288.010-288.008 288.010-35.306 0-69.124-6.368-100.38-17.996l-27.736 27.738-0.002 54.464c0 0.016 0.002 0.028 0.002 0.040 0 11.046-4.478 21.046-11.716 28.29-6.334 6.332-14.784 10.55-24.196 11.508-1.346 0.136-2.708 0.208-4.090 0.208h-71.748l-0.002 71.96c0 0.012 0.002 0.040 0.002 0.040 0 11.046-4.478 21.046-11.716 28.286-6.334 6.336-14.784 10.554-24.196 11.508-1.346 0.136-2.708 0.208-4.090 0.208h-71.996l-0.002 62.684c0 22.094-17.908 40-40 40-0.022 0-0.042 0-0.062 0-0.022 0-0.042 0-0.064 0h-175.996c-13.76 0-25.888-6.95-33.086-17.524-4.362-6.406-6.916-14.14-6.916-22.476v-112c0-0.664 0.066-1.308 0.1-1.964 0.032-0.618 0.034-1.234 0.092-1.852 0.11-1.148 0.288-2.278 0.492-3.398 0.024-0.128 0.034-0.258 0.058-0.386 1.614-8.378 5.848-15.808 11.808-21.446l325.456-325.458c-11.642-31.274-18.020-65.11-18.020-100.44 0-159.060 128.946-288.006 288.006-288.006 159.060-0.004 288.006 128.942 288.006 288.002zM880.032 353.092c0-114.696-93.312-208.006-208.008-208.006s-208.006 93.31-208.006 208.006c0 43.208 13.246 83.376 35.884 116.668l-57.36 57.362c-0.136-0.184-0.27-0.368-0.408-0.546l-298.102 298.106-0.002 55.356h96.124v-62.684c0-0.708 0.070-1.394 0.106-2.094 0.036-0.664 0.036-1.336 0.102-1.992 0.132-1.316 0.334-2.61 0.592-3.882 0.006-0.028 0.008-0.058 0.014-0.090 0.258-1.262 0.58-2.5 0.956-3.714 0.012-0.040 0.018-0.078 0.030-0.118 4.676-15.032 17.976-26.262 34.114-27.902 1.344-0.136 2.708-0.208 4.090-0.208h71.998v-67.64c-0.156-1.434-0.248-2.882-0.248-4.36 0-22.094 17.908-40 40-40h71.998v-30.692c0-0.148 0.020-0.29 0.022-0.438 0.008-10.226 3.912-20.45 11.714-28.254l55.99-55.988c1.982-1.984 4.124-3.71 6.38-5.188l18.68-18.684c33.030 22.090 72.702 34.992 115.332 34.992 114.694-0 208.008-93.314 208.008-208.010z', - arrowleftalt: - 'M107.854 539.924l282.834 283.272c15.594 15.65 40.92 15.692 56.568 0.1 15.648-15.594 15.694-40.92 0.1-56.568l-214.838-215.040h655.412c22.092 0 40-17.908 40-40s-17.908-40-40-40h-655l214.75-214.61c15.64-15.602 15.672-40.928 0.070-56.568-7.814-7.834-18.066-11.752-28.32-11.75-10.22 0-20.442 3.892-28.25 11.68l-283.242 282.93c-15.634 15.594-15.672 40.91-0.084 56.554z', - arrowrightalt: - 'M916.266 483.792l-282.834-283.272c-15.594-15.65-40.92-15.692-56.568-0.1-15.648 15.594-15.694 40.92-0.1 56.568l214.838 215.040h-655.412c-22.092 0-40 17.908-40 40s17.908 40 40 40h655l-214.748 214.61c-15.64 15.602-15.672 40.928-0.070 56.568 7.814 7.834 18.066 11.752 28.32 11.75 10.22 0 20.442-3.892 28.25-11.68l283.242-282.93c15.632-15.596 15.67-40.91 0.082-56.554z', - sync: 'M135.6 442.5a41 41 0 0130 12l94.9 94.6c16 16 16 42 0 58s-42.1 16-58.2 0l-30.1-30a341.9 341.9 0 0095 178.6c65.3 65 152 101 244.3 101 92.3 0 179-36 244.3-101a345 345 0 0066.8-93.6 41.1 41.1 0 0174.3 35v.2l-.1.2-5.2 10.3a427.8 427.8 0 01-380 230.9A427.5 427.5 0 0190.1 585.8l-20 20c-16 16-42 16-58.2 0a41 41 0 010-58l93.6-93.3a41 41 0 0130-12zm376-357.2c208.9 0 382.8 149.5 420.1 347.1l22-22c16.1-16 42.2-16 58.2 0s16 42 0 58l-93.5 93.4a41 41 0 01-30 12 41 41 0 01-30-12L763.5 467a41 41 0 010-58c16-16 42.1-16 58.2 0l26.8 26.8a342 342 0 00-92.7-167.6c-65.3-65-152-101-244.3-101-92.3 0-179 36-244.2 101a345.2 345.2 0 00-66.9 93.6 41.1 41.1 0 01-74.3-35v-.2l.2-.2c.7-1.7.2-.8 5.1-10.3A427.8 427.8 0 01511.5 85.3z', - reply: - 'M679.496 431.738c-0.414-0.062-0.834-0.102-1.266-0.102h-477.482l171.506-171.504c15.622-15.622 15.622-40.95-0.002-56.57-15.62-15.624-40.948-15.624-56.568 0l-239.734 239.732c-0.958 0.956-1.868 1.958-2.724 3.006-0.328 0.402-1.884 2.482-2.324 3.138-0.36 0.54-1.696 2.77-2.008 3.352-0.308 0.58-1.424 2.936-1.676 3.544-0.036 0.086-0.468 1.268-0.648 1.774-0.23 0.636-0.474 1.266-0.672 1.918-0.186 0.612-0.818 3.13-0.95 3.788-0.148 0.748-0.522 3.318-0.574 3.862-0.262 2.642-0.262 5.3 0 7.942 0.044 0.448 0.412 3.032 0.58 3.874 0.112 0.556 0.74 3.088 0.958 3.808 0.158 0.524 1.036 2.992 1.328 3.7 0.192 0.458 1.298 2.828 1.688 3.552 0.208 0.386 0.446 0.75 0.666 1.126 0.436 0.752 1.844 2.888 2.084 3.224 0.52 0.724 4.262 5.074 4.29 5.098l239.718 239.72c15.62 15.618 40.948 15.618 56.57 0 15.62-15.624 15.622-40.948 0-56.57l-171.516-171.514h471.296c114.52 0.084 207.688 93.124 207.988 207.594 0 0.084-0.012 0.164-0.012 0.248v95.876c-0.004 22.094 17.906 40.002 40 40 22.090-0.002 40-17.91 39.996-39.998l0.004-95.57h0.020c0-156.594-124.914-284.012-280.536-288.048z', - undo: 'M230 301h480a240 240 0 1 1 0 481H235c-23 0-42-20-42-43 0-24 19-43 42-43h475a155 155 0 0 0 0-310H228l3 3 65 65a45 45 0 0 1-65 64L90 376a45 45 0 0 1 0-64l142-142a45 45 0 1 1 64 65l-63 62-3 4z', - transfer: - 'M916.25 348.726l-125 124.688c-7.808 7.79-18.032 11.68-28.25 11.68-10.254 0.002-20.506-3.918-28.32-11.75-15.602-15.64-15.57-40.966 0.070-56.568l56.508-56.368h-655.258c-22.092 0-40-17.908-40-40s17.908-40 40-40h655.672l-57.006-57.206c-15.594-15.646-15.548-40.972 0.1-56.566s40.972-15.55 56.568 0.098l125 125.438c15.588 15.644 15.548 40.958-0.084 56.554zM107.666 731.892l125 125.438c15.596 15.648 40.92 15.692 56.568 0.098s15.694-40.92 0.1-56.566l-57.006-57.206h655.672c22.092 0 40-17.908 40-40s-17.908-40-40-40h-655.258l56.508-56.368c15.64-15.602 15.672-40.928 0.070-56.568-7.814-7.832-18.066-11.752-28.32-11.75-10.218 0-20.442 3.89-28.25 11.68l-125 124.688c-15.632 15.596-15.672 40.91-0.084 56.554z', - redirect: - 'M913.852 702.796c-15.594-15.648-40.922-15.694-56.57-0.1l-57.204 57.006v-451.424c0-0.372-0.028-0.736-0.074-1.098-0.458-99.016-80.86-179.15-179.988-179.15-99.412 0-180 80.592-180 180 0 0.084 0.004 0.166 0.004 0.248h-0.004v343.504h-0.006c0 0.082 0.006 0.164 0.006 0.248 0 55.14-44.86 100-100 100s-100-44.86-100-100c0-0.084 0.006-0.166 0.006-0.248h-0.002v-483.752c0-22.092-17.91-40-40-40s-40.004 17.908-40.004 40v483.752c0 0.018 0.002 0.036 0.002 0.054 0 0.064-0.002 0.128-0.002 0.194 0 99.408 80.59 180 180 180 99.412 0 180-80.592 180-180 0-0.084-0.004-0.166-0.004-0.248h0.004v-343.504h0.008c0-0.082-0.008-0.164-0.008-0.248 0-55.138 44.86-100 100-100s100 44.862 100 100c0 0.084-0.008 0.166-0.008 0.248h0.070v451.008l-56.368-56.506c-15.602-15.642-40.93-15.67-56.566-0.070-7.836 7.814-11.754 18.066-11.754 28.32 0 10.218 3.894 20.442 11.68 28.252l124.692 125c15.594 15.632 40.91 15.67 56.554 0.084l125.434-125c15.652-15.598 15.692-40.92 0.102-56.57z', - expand: - 'M433.4 578.8l6.2 5.2a44.8 44.8 0 010 63.3L238.4 849.1h100.3a44.8 44.8 0 018 88.8l-8 .8H130l-6.2-.5 2.7.3h-.3a44.7 44.7 0 01-24.8-10.2l-.3-.3-.3-.2-.3-.4-.3-.2-.3-.2v-.2h-.1l-.2-.1a45.7 45.7 0 01-13.5-24.8l-.3-1.7a45 45 0 01-.5-5.3V685.7a44.8 44.8 0 0189-8.1l.6 8 .1 100L376.3 584a44.8 44.8 0 0157.1-5.2zm157.2 0a44.8 44.8 0 0157.1 5.2L849 785.7v-100l.8-8.1a44.8 44.8 0 0188.9 8V895a45 45 0 01-.5 5.3l-.3 1.7a38.6 38.6 0 01-2.8 9.4 43.4 43.4 0 01-9.6 14.2l-4.7 4.2 2-1.7.7-.6-.3.4a44.1 44.1 0 01-4.4 3.3l-.6.4a45.8 45.8 0 01-20.4 7h-.3.9l1.8-.3-6.2.5H685.3l-8-.8a44.8 44.8 0 018-88.8h100.3L584.4 647.3a44.8 44.8 0 010-63.3zM98.5 925.5l1.3 1.3.1.2.6.4a45 45 0 002 1.7l.7.6-4.7-4.2zM893.9 85.3h.9-.8l6.2.5a45 45 0 00-1.8-.2l-.9-.1h-1l-.5-.1h-1.2 2.7l.3.1a44.7 44.7 0 0125.4 10.7l.3.3v.1l.3.2.3.2v.2h.1l.2.1.6.6.5.6A45.6 45.6 0 01938 122l.3 1.7c.3 1.8.4 3.6.5 5.3v209.2a44.8 44.8 0 01-89 8.1l-.6-8-.1-100L647.7 440a44.8 44.8 0 01-57.1 5.2l-6.2-5.2a44.8 44.8 0 010-63.3l201.2-201.8H685.3a44.8 44.8 0 01-8-88.8l8-.8H894h-.1zm-555.2 0l8 .8a44.8 44.8 0 01-8 88.8H238.4l201.2 201.8a44.8 44.8 0 010 63.3l-6.2 5.2a44.8 44.8 0 01-57.1-5.2L175 238.3v100l-.8 8.1a44.8 44.8 0 01-88.9-8V129c0-1.7.2-3.5.5-5.3l.3-1.7a38.6 38.6 0 012.8-9.4 43.4 43.4 0 019.6-14.2l4.7-4.2-2 1.7.2-.3a43.7 43.7 0 0124.8-10.2h1.3l.3-.1h2.3-.1 208.7zm582 9l4.8 4.2-1.3-1.3-.1-.2-.5-.4h-.1l-.6-.6-1.4-1.1-.7-.6zm-790.7-9h-2l-.5.1h-1l-.9.2c-.6 0-1.2 0-1.8.2l6.2-.5z', - expandalt: - 'M479.7 13.4L205.4 287.6a45.7 45.7 0 1064.7 64.7l242-242 241.8 241.9a45.7 45.7 0 1064.7-64.7L544.4 13.4a45.6 45.6 0 00-64.7 0M512 1024a45.6 45.6 0 01-32.3-13.4L205.4 736.5a45.7 45.7 0 1164.7-64.7l241.8 241.8 242-241.9a45.7 45.7 0 1164.7 64.7l-274.3 274.2c-9 9-20.7 13.4-32.4 13.4', - collapse: - 'M479.7 411L205.4 136.6a45.7 45.7 0 1164.7-64.6L512 314 753.9 72.2a45.7 45.7 0 1164.7 64.6L544.4 411a45.6 45.6 0 01-64.7 0M512 598.3a45.6 45.6 0 00-32.3 13.4L205.4 885.8a45.7 45.7 0 1064.7 64.7l241.8-241.8 242 242a45.7 45.7 0 1064.7-64.7L544.3 611.7c-9-8.9-20.7-13.4-32.4-13.4', - grow: 'M541.146 448.384c-1.694-0.216-3.408-0.37-5.162-0.37h-367.968c-1.754 0-3.468 0.152-5.162 0.37-19.646 2.538-34.838 19.292-34.838 39.63v368.032c0 22.094 17.91 40 40 40h367.968c13.808 0 25.98-6.996 33.168-17.636 0.102-0.148 0.184-0.308 0.282-0.458 0.612-0.924 1.2-1.862 1.722-2.838 0.046-0.082 0.080-0.172 0.124-0.254 2.994-5.61 4.704-12.008 4.704-18.808v-368.036c0-20.34-15.192-37.094-34.838-39.632zM208.016 816.046v-288.032h287.968v288.032h-287.968zM736.032 856.046c0 22.090-17.908 40-40 40-22.090 0-40-17.908-40-40v-487.902l-488.016 0.002c-22.090 0-40-17.91-40-40s17.908-40.002 40-40.002h528.016c1.754 0 3.468 0.152 5.162 0.37 19.646 2.538 34.838 19.292 34.838 39.63v527.902zM896.032 168.030v688.004c-0.002 22.088-17.91 39.996-40 39.996s-40.002-17.908-40.002-40c0 0 0.002-304.026 0.002-304.040v-343.96h-343.96c-0.014 0-304.040 0.002-304.040 0.002-22.090 0-40-17.91-40-40s17.908-40.002 40-40.002h688c1.754 0 3.468 0.152 5.162 0.37 19.646 2.536 34.838 19.29 34.838 39.63z', - arrowleft: - 'M257.93 511.976c0-10.236 3.902-20.47 11.71-28.282l344.098-344.158c15.622-15.624 40.946-15.624 56.57-0.006 15.622 15.622 15.624 40.948 0.004 56.568l-315.82 315.876 315.868 315.922c15.618 15.624 15.618 40.952-0.004 56.568-15.622 15.62-40.95 15.618-56.57-0.006l-344.146-344.202c-7.808-7.81-11.71-18.044-11.71-28.28z', - arrowup: - 'M512.024 256c10.236 0 20.47 3.904 28.282 11.712l344.154 344.098c15.624 15.62 15.624 40.946 0.006 56.57-15.622 15.622-40.948 15.624-56.568 0.004l-315.876-315.82-315.922 315.868c-15.624 15.618-40.952 15.618-56.568-0.004-15.62-15.624-15.618-40.95 0.006-56.57l344.204-344.144c7.81-7.81 18.046-11.714 28.282-11.714z', - arrowdown: - 'M511.976 768.002c-10.236 0-20.47-3.904-28.282-11.712l-344.154-344.098c-15.624-15.62-15.624-40.946-0.006-56.57 15.622-15.622 40.948-15.624 56.568-0.004l315.876 315.82 315.922-315.868c15.624-15.618 40.952-15.616 56.568 0.004 15.62 15.624 15.618 40.95-0.006 56.57l-344.204 344.144c-7.81 7.81-18.046 11.714-28.282 11.714z', - arrowright: - 'M768.072 514.022c0 10.236-3.904 20.47-11.712 28.282l-344.098 344.156c-15.62 15.624-40.946 15.624-56.568 0.006-15.622-15.622-15.624-40.948-0.006-56.568l315.82-315.876-315.868-315.922c-15.618-15.624-15.618-40.952 0.004-56.568 15.624-15.62 40.95-15.618 56.57 0.006l344.144 344.204c7.81 7.81 11.714 18.044 11.714 28.28z', - chevrondown: - 'M511.976 833c-10.236 0-20.47-3.904-28.282-11.712l-471.934-471.874c-15.624-15.62-15.624-40.946-0.006-56.57 15.622-15.622 40.948-15.624 56.568-0.004l443.652 443.598 443.61-443.556c15.624-15.618 40.952-15.616 56.568 0.004 15.62 15.624 15.618 40.95-0.006 56.57l-471.89 471.832c-7.808 7.808-18.044 11.712-28.28 11.712z', - back: 'M512 932.6c-112.3 0-218-43.8-297.4-123.2A417.8 417.8 0 0191.4 512c0-112.3 43.8-218 123.2-297.4A417.8 417.8 0 01512 91.4c112.3 0 218 43.8 297.4 123.2A417.8 417.8 0 01932.6 512c0 112.3-43.8 218-123.2 297.4A417.8 417.8 0 01512 932.6zm0 91.4A512 512 0 10512 0a512 512 0 000 1024zM232.7 542.5l142.8 143.3a45.7 45.7 0 0064.8-64.5L375 555.9h383.7a45.7 45.7 0 000-91.4H375.6l64.6-64.4a45.7 45.7 0 10-64.6-64.8L232.8 477.8a45.7 45.7 0 00-.1 64.6z', - download: - 'M543.8 791.3a45.7 45.7 0 01-64.6 0l-142.5-143a45.6 45.6 0 010-64.6 45.7 45.7 0 0164.7 0l64.5 64.7V265.2a45.7 45.7 0 1191.4 0v383.6l65.4-65.1a45.7 45.7 0 1164.5 64.8L543.8 791.3zM1024 512A512 512 0 110 512a512 512 0 011024 0zm-91.4 0c0-112.3-43.8-218-123.2-297.4A417.8 417.8 0 00512 91.4c-112.3 0-218 43.8-297.4 123.2A417.8 417.8 0 0091.4 512c0 112.3 43.8 218 123.2 297.4A417.8 417.8 0 00512 932.6c112.3 0 218-43.8 297.4-123.2A417.8 417.8 0 00932.6 512z', - upload: - 'M480.2 232.7a45.7 45.7 0 0164.6 0l142.5 143a45.6 45.6 0 010 64.6 45.7 45.7 0 01-64.7 0L558 375.5v383.2a45.7 45.7 0 11-91.4 0V375.2l-65.4 65.1a45.7 45.7 0 11-64.5-64.8l143.4-142.8zM0 512a512 512 0 111024 0A512 512 0 010 512zm91.4 0c0 112.3 43.8 218 123.2 297.4A417.8 417.8 0 00512 932.6c112.3 0 218-43.8 297.4-123.2A417.8 417.8 0 00932.6 512c0-112.3-43.8-218-123.2-297.4A417.8 417.8 0 00512 91.4c-112.3 0-218 43.8-297.4 123.2A417.8 417.8 0 0091.4 512z', - proceed: - 'M791.3 480.2L648.5 336.8a45.7 45.7 0 10-64.8 64.5l65.1 65.4H265.2a45.7 45.7 0 100 91.4h383.2l-64.6 64.5a45.7 45.7 0 0064.6 64.7l142.8-142.5a45.7 45.7 0 00.1-64.6M512 0a512 512 0 100 1024A512 512 0 00512 0m0 91.4c112.3 0 218 43.8 297.4 123.2A417.8 417.8 0 01932.6 512c0 112.3-43.8 218-123.2 297.4A417.8 417.8 0 01512 932.6c-112.3 0-218-43.8-297.4-123.2A417.8 417.8 0 0191.4 512c0-112.3 43.8-218 123.2-297.4A417.8 417.8 0 01512 91.4', - info: 'M874.04 149.96c199.95 199.95 199.95 524.14 0 724.08-199.95 199.95-524.13 199.95-724.08 0-199.95-199.95-199.95-524.13 0-724.08 199.95-199.95 524.13-199.95 724.08 0zM512 91.43c-112.34 0-217.95 43.75-297.39 123.18-79.43 79.44-123.18 185.05-123.18 297.4 0 112.33 43.75 217.94 123.18 297.38 79.44 79.43 185.05 123.18 297.4 123.18 112.33 0 217.94-43.75 297.38-123.18C888.82 729.95 932.57 624.34 932.57 512c0-112.34-43.75-217.95-123.18-297.39C729.95 135.18 624.34 91.43 512 91.43zm1.14 318.96a45.73 45.73 0 00-45.11 38.3l-.6 7.42v274.28a45.71 45.71 0 0090.83 7.42l.6-7.42V456.11a45.72 45.72 0 00-45.72-45.72zm0-162.25a45.72 45.72 0 100 91.44 45.72 45.72 0 000-91.44z', - question: - 'M874.04 149.96c199.95 199.95 199.95 524.13 0 724.08-199.95 199.95-524.13 199.95-724.08 0-199.95-199.95-199.95-524.13 0-724.08 199.95-199.95 524.13-199.95 724.08 0zM512 91.43c-112.34 0-217.95 43.75-297.39 123.18-79.43 79.44-123.18 185.05-123.18 297.4 0 112.33 43.75 217.95 123.18 297.38 79.44 79.43 185.05 123.18 297.4 123.18 112.33 0 217.94-43.75 297.38-123.18C888.82 729.96 932.57 624.34 932.57 512c0-112.34-43.75-217.95-123.18-297.39C729.95 135.18 624.34 91.43 512 91.43zm1.14 640.9a45.72 45.72 0 100 91.43 45.72 45.72 0 000-91.44zm-1.14-549c-111.3 0-201.52 90.22-201.52 201.52a45.71 45.71 0 0090.84 7.41l.6-7.47c.03-60.68 49.4-110.03 110.08-110.03 60.7 0 110.1 49.38 110.1 110.09 0 60.7-49.4 110.09-110.1 110.09v.17a45.68 45.68 0 00-44.57 45.65v100.58a45.7 45.7 0 1091.42 0v-60.46c88.7-21.12 154.67-100.87 154.67-196.03 0-111.3-90.22-201.52-201.52-201.52z', - support: - 'M512 932.57c-87.57 0-171.05-26.59-241.23-75.93l106-106a273.98 273.98 0 00135.26 35.62c46.7 0 93.41-11.88 135.22-35.6l105.98 105.98c-70.19 49.34-153.66 75.93-241.23 75.93m-344.64-661.8l105.97 105.98c-47.44 83.63-47.43 186.86.02 270.49L167.36 753.22C118.02 683.04 91.43 599.56 91.43 512c0-87.57 26.59-171.05 75.93-241.23m585.87-103.41L647.29 273.3a273.95 273.95 0 00-135.26-35.61c-46.74 0-93.47 11.9-135.3 35.63L270.77 167.36C340.96 118.02 424.43 91.43 512 91.43s171.05 26.59 241.23 75.93m-370.5 473.91c-71.3-71.3-71.3-187.3 0-258.6a181.7 181.7 0 01129.3-53.55h.02c48.83 0 94.74 19.02 129.28 53.56 71.29 71.29 71.29 187.3 0 258.6a181.66 181.66 0 01-129.3 53.55 181.67 181.67 0 01-129.3-53.56m473.91 111.95L750.68 647.27c47.48-83.65 47.48-186.91.02-270.56l105.94-105.94c49.34 70.18 75.93 153.66 75.93 241.23s-26.59 171.04-75.93 241.22m17.4-603.26c-199.95-199.95-524.13-199.95-724.08 0-199.95 199.95-199.95 524.13 0 724.08 199.95 199.95 524.13 199.95 724.08 0 199.95-199.95 199.95-524.13 0-724.08', - alert: - 'M511.998 623.846c-22.090 0-40-17.906-40-40v-208c0-22.090 17.91-40 40-40v0c22.090 0 40.004 17.91 40.004 40v208c0 22.094-17.914 40-40.004 40v0zM511.998 743.846c22.090 0 40.004-17.906 40.004-40v0c0-22.090-17.914-40-40.004-40v0c-22.090 0-40 17.91-40 40v0c0 22.094 17.91 40 40 40v0zM512.142 211.808l-340.074 589.028h680.148l-340.074-589.028zM512.142 92.51c14.5 0 29 9.526 40 28.58l398.638 690.462c22 38.106 4 69.282-40 69.282h-797.278c-44 0-62-31.176-40-69.282l398.638-690.462c11.002-19.052 25.502-28.58 40.002-28.58v0z', - bell: 'M901.344 760.018l-57.644-77.648c-7.906-7.906-11.77-38.284-11.71-48.646h0.042v-200.588h-0.364c-6.878-148.106-114.428-269.902-255.792-298.528 0.208-2.1 0.318-4.228 0.318-6.384 0-35.452-28.738-64.194-64.194-64.194-35.458 0-64.194 28.742-64.194 64.194 0 2.19 0.112 4.352 0.326 6.486-141.128 28.802-248.446 150.488-255.316 298.426h-0.364v200.588h0.042c0.058 10.362-3.804 40.74-11.71 48.646l-57.644 77.648c-8.802 8.802-16.35 18.978-16.35 32.208 0 22.092 17.908 40 40 40h255.876c-0.814 5.412-1.28 10.936-1.28 16.576 0 61.43 49.794 111.23 111.23 111.23 61.432 0 111.228-49.8 111.228-111.23 0-5.638-0.464-11.164-1.282-16.576h255.128c22.092 0 40-17.908 40-40 0.004-13.23-7.542-23.404-16.346-32.208zM272.732 436.848c2.862-61.602 29.032-119.104 73.69-161.91 44.786-42.93 103.628-66.62 165.692-66.706h0.26c62.062 0.086 120.906 23.776 165.692 66.706 44.658 42.806 70.828 100.308 73.69 161.91l0.278 5.962v149.384h-479.58v-149.384l0.278-5.962zM543.846 848.8c0 17.22-14.010 31.23-31.228 31.23-17.22 0-31.23-14.010-31.23-31.23 0-6.096 1.784-11.768 4.82-16.576h52.818c3.038 4.81 4.82 10.482 4.82 16.576zM512.484 752.226h-283.922l14.572-19.63c12.064-14.542 20.078-33.27 24.982-58.158 0.146-0.742 0.276-1.496 0.416-2.244h487.42c0.138 0.748 0.268 1.5 0.414 2.244 4.904 24.888 12.918 43.616 24.982 58.158l14.572 19.63h-283.436z', - rss: 'M256.094 865.048c0 53.020-42.972 96-96 96-53.020 0-96-42.98-96-96 0-53.016 42.98-96 96-96s96 42.984 96 96zM510.020 918.352c-0.018-0.172-0.042-0.344-0.050-0.52-0.054-0.676-0.124-1.34-0.214-2.004-10.582-105.644-57.866-200.46-128.894-271.536v0c-71.074-71.054-165.906-118.352-271.564-128.934-0.664-0.090-1.33-0.16-2.006-0.214-0.174-0.016-0.348-0.040-0.52-0.054-0.254-0.024-0.5-0.024-0.742-0.008-0.64-0.032-1.278-0.098-1.922-0.098-22.098 0-40 17.908-40 40 0 20.582 15.542 37.516 35.536 39.738 0.042 0.004 0.066 0.036 0.106 0.040 84.82 8.098 163.514 45.024 224.542 106.042v0c61.036 61.036 97.964 139.738 106.070 224.574 0.004 0.040 0.036 0.070 0.042 0.106 2.222 19.988 19.156 35.536 39.736 35.536 22.092 0 40-17.902 40-40 0-0.644-0.066-1.282-0.098-1.922 0-0.246 0-0.492-0.022-0.746zM734.688 918.45c-0.004-0.090-0.018-0.186-0.024-0.276-0.040-0.544-0.058-1.102-0.124-1.638-10.972-167.816-83.558-318.804-195.33-430.616h0.002c-111.812-111.788-262.81-184.384-430.644-195.36-0.542-0.060-1.094-0.084-1.642-0.122-0.092-0.008-0.182-0.016-0.272-0.022-0.020-0.002-0.042 0.004-0.054 0.004-0.836-0.052-1.664-0.124-2.512-0.124-22.092 0-40 17.908-40 40 0 21.036 16.246 38.24 36.874 39.842 0.046 0.008 0.078 0.038 0.128 0.042 66.876 4.086 131.786 19.292 193.406 45.358 70.472 29.81 133.78 72.494 188.166 126.874v0c54.394 54.396 97.090 117.71 126.902 188.204 26.064 61.624 41.274 126.532 45.362 193.408 0.004 0.052 0.036 0.080 0.042 0.13 1.604 20.624 18.802 36.87 39.844 36.87 22.090 0 40-17.904 40-40 0-0.85-0.074-1.678-0.126-2.514-0.002-0.024 0.006-0.040 0.002-0.060zM959.126 920.556c-0.002-0.094 0.008-0.164 0.004-0.262-10.342-231.204-108.314-439.604-261.486-592.796v-0.002c-153.2-153.19-361.61-251.174-592.828-261.518-0.096-0.004-0.168 0.006-0.262 0.004-0.176-0.004-0.348-0.030-0.524-0.030-22.098 0-40 17.91-40 40 0 20.988 16.168 38.164 36.716 39.834 0.184 0.042 0.356 0.086 0.566 0.098 97.040 4.314 191.186 25.538 280.376 63.258 97.14 41.090 184.406 99.928 259.368 174.876v0c74.96 74.964 133.81 162.24 174.908 259.398 37.718 89.19 58.946 183.336 63.26 280.376 0.010 0.208 0.052 0.38 0.096 0.562 1.67 20.552 18.848 36.72 39.834 36.72 22.092 0 40-17.906 40-40-0-0.17-0.024-0.342-0.028-0.518z', - edit: 'M948.56 263.376c12.704-12.708 15.072-31.836 7.11-46.936-1.84-3.524-4.232-6.832-7.192-9.792-0.286-0.286-0.594-0.528-0.886-0.8l-129.318-128.634c-0.048-0.048-0.088-0.106-0.138-0.154-7.812-7.812-18.050-11.716-28.292-11.714-10.242-0.004-20.484 3.902-28.296 11.714-0.064 0.066-0.12 0.136-0.184 0.204l-636.168 636.168c-5.868 5.134-10.21 11.958-12.298 19.748l-47.606 177.664c-3.7 13.804 0.248 28.534 10.352 38.638 7.602 7.6 17.816 11.714 28.288 11.714 3.452 0 6.93-0.446 10.352-1.364l177.664-47.606c7.296-1.956 13.732-5.904 18.74-11.216l521.486-521.484c1.126-0.904 2.222-1.87 3.268-2.914 1.042-1.044 2.006-2.138 2.91-3.264l107.75-107.748c0.836-0.71 1.668-1.432 2.458-2.224zM806.9 291.66l-73.592-73.202 56.61-56.61 73.594 73.2-56.612 56.612zM281.566 816.996l-73.4-73.4 468.572-468.568 73.594 73.202-468.766 468.766zM160.496 864.628l11.742-43.822 32.080 32.080-43.822 11.742z', - paintbrush: - 'M946.58 293.66c12.704-12.708 15.072-31.836 7.108-46.938-1.838-3.524-4.23-6.83-7.19-9.79-0.282-0.282-0.588-0.52-0.876-0.792l-129.338-128.654c-0.046-0.046-0.084-0.098-0.13-0.144-7.814-7.812-18.056-11.718-28.296-11.714-10.24 0-20.48 3.906-28.292 11.714-0.064 0.066-0.12 0.138-0.184 0.206l-557.048 557.048c-2.194 2.192-4.042 4.59-5.622 7.11-70.624 87.486-17.922 195.43-174.738 239.554 0 0 64.758 18.11 144.33 18.11 74.374 0 161.678-15.824 221.23-77.020 0.394-0.364 0.808-0.696 1.192-1.078l1.734-1.734c0.852-0.798 1.678-1.578 2.504-2.426 0.348-0.356 0.668-0.728 1.010-1.086l168.756-168.756c1.126-0.906 2.224-1.872 3.272-2.918 1.044-1.044 2.008-2.14 2.914-3.266l375.212-375.212c0.834-0.706 1.664-1.424 2.452-2.214zM537.462 589.402l-73.594-73.206 324.068-324.064 73.594 73.2-324.068 324.070zM388.178 667.684c-13.288-13.632-28.584-23.974-44.78-31.016l63.902-63.902 73.596 73.204-64.246 64.248c-6.498-15.23-15.964-29.698-28.472-42.534zM229.848 791.928c8.294-30.346 14.852-54.332 32.416-73.862 0.83-0.864 2.664-2.702 4.26-4.286 8.030-6.792 17.534-8.246 24.198-8.246 14.386 0 29.026 6.554 40.162 17.98 19.592 20.106 21.934 49.238 5.596 66.874l-1.712 1.712c-0.798 0.752-1.612 1.524-2.462 2.354l-0.86 0.84-0.834 0.864c-30.666 31.79-75.914 45.424-118.104 50.542 7.53-18.888 12.598-37.426 17.34-54.772z', - close: - 'M150 150a512 512 0 11724 724 512 512 0 01-724-724zm69.3 64.2A418.5 418.5 0 0095.9 512a418.5 418.5 0 00123.4 297.8A418.5 418.5 0 00517 933.2 418.5 418.5 0 00815 809.8 418.5 418.5 0 00938.4 512 418.5 418.5 0 00815 214.2 418.5 418.5 0 00517 90.8a418.5 418.5 0 00-297.8 123.4zM655 304a46 46 0 0165 65L577 512l143 143a46 46 0 11-65 65L512 577 369 720a46 46 0 11-65-65l143-143-143-143a46 46 0 0165-65l143 143 143-143z', - closeAlt: - 'M586.7 512L936 861.4a52.8 52.8 0 0 1-74.6 74.7L512 586.7 162.6 936A52.8 52.8 0 0 1 88 861.4L437.3 512 88 162.6A52.8 52.8 0 1 1 162.6 88L512 437.3 861.4 88a52.8 52.8 0 1 1 74.7 74.7L586.7 512z', - trash: - 'M919.5 225.208h-215.5v-120.080c0-20.344-15.192-37.096-34.836-39.632-1.696-0.216-3.41-0.372-5.164-0.372h-304.004c-1.754 0-3.468 0.152-5.164 0.372-19.644 2.54-34.836 19.292-34.836 39.628v120.084h-215.996c-22.090 0-40 17.912-40 40.002 0 22.092 17.91 40 40 40h27.216l53.916 615.914h0.214c0 22.092 17.91 40 40 40h573.372c22.094 0 40-17.91 40-40h0.148l53.916-615.914h26.716c22.090 0 40-17.91 40-40s-17.908-40.002-39.998-40.002zM399.996 145.126h224.004v80.082h-224.004v-80.082zM762.062 881.124h-500.124l-50.414-575.912h600.954l-50.416 575.912zM632.004 697.124v-240c-0.004-22.092 17.906-40.002 40-40.002 22.090 0.002 40 17.908 40 40.002l-0.004 240.002c0.004 22.088-17.906 39.996-39.996 39.998-22.094 0.002-40.004-17.906-40-40zM311.996 697.124v-240c-0.004-22.092 17.906-40.002 40-40.002 22.090 0.002 40 17.908 40 40.002l-0.004 240.002c0.004 22.088-17.906 39.996-39.996 39.998-22.094 0.002-40.004-17.906-40-40zM472 697.124v-240c-0.004-22.092 17.906-40.002 40-40.002 22.090 0.002 40 17.908 40 40.002l-0.004 240.002c0.004 22.088-17.906 39.996-39.996 39.998-22.094 0.002-40.004-17.906-40-40z', - cross: - 'M1013.286 955.716l-443.72-443.716 443.718-443.718c15.622-15.622 15.62-40.948-0.004-56.566-15.618-15.622-40.942-15.622-56.562 0l-443.716 443.718-443.72-443.718c-15.62-15.624-40.946-15.622-56.566 0-15.622 15.62-15.622 40.944 0 56.566l443.722 443.718-443.722 443.722c-15.622 15.618-15.62 40.942 0 56.56s40.948 15.622 56.566 0l443.72-443.718 443.722 443.718c15.618 15.624 40.942 15.622 56.56 0 15.62-15.618 15.622-40.944 0.002-56.566z', - delete: - 'M874 150A512 512 0 10150 874 512 512 0 00874 150zm-659.4 64.6A417.8 417.8 0 01512 91.4c97 0 188.9 32.6 263.3 92.6L184 775.3A417.4 417.4 0 0191.4 512c0-112.4 43.7-218 123.2-297.4zm594.8 594.8A417.8 417.8 0 01512 932.6c-97 0-189-32.7-263.3-92.6L840 248.7A417.4 417.4 0 01932.6 512c0 112.3-43.8 218-123.2 297.4z', - add: 'M512-.2a512 512 0 110 1024 512 512 0 010-1024zm0 91.4c-112.3 0-218 43.8-297.4 123.2A417.8 417.8 0 0091.4 511.8c0 112.4 43.8 218 123.2 297.4A417.8 417.8 0 00512 932.4c112.3 0 218-43.8 297.4-123.2a417.8 417.8 0 00123.2-297.4c0-112.3-43.8-218-123.2-297.4A417.8 417.8 0 00512 91.2zm1.1 129.2a45.7 45.7 0 0145.7 45.7v201.1H760a45.7 45.7 0 010 91.5H558.8v201.1a45.7 45.7 0 11-91.4 0V558.7H266.3a45.7 45.7 0 110-91.5h201.1V266.1a45.7 45.7 0 0145.7-45.7z', - subtract: - 'M512 0a512 512 0 110 1024A512 512 0 01512 0zm4 94A418 418 0 0094 515a418 418 0 00422 422 418 418 0 00421-422A418 418 0 00516 94zm244 372a46 46 0 010 92H264a46 46 0 110-92z', - plus: 'M921.002 473h-368.008v-368.004c0.002-22.090-17.906-39.996-39.996-39.996-22.088 0-39.998 17.91-39.998 40v368h-368.002c-22.094 0-40 17.908-39.998 40-0.002 22.090 17.904 39.996 39.996 39.996l368.004-0.002v368.010c0 22.094 17.908 40 40 39.996 22.090 0.004 39.996-17.902 39.996-39.996v-368.010h368.010c22.090 0.002 39.994-17.906 39.994-39.996-0-22.088-17.908-39.998-39.998-39.998z', - document: - 'M764 1c12 0 24 4 32 13l129 132c9 8 13 20 13 31v802c0 24-20 44-45 44H131c-25 0-45-20-45-44V45c0-24 20-44 45-44h633zm-48 89H175v844h674l-1-707h-87c-22 0-40-15-44-36v-8l-1-93zm-16 584a45 45 0 0 1 8 89H324a45 45 0 0 1-8-88l8-1h376zm0-187a45 45 0 0 1 8 89l-8 1H324a45 45 0 0 1-8-89l8-1h376zm0-186a45 45 0 0 1 8 88l-8 1H324a45 45 0 0 1-8-89h384z', - folder: - 'M571 274h327c23 0 41 18 41 41v488c0 22-18 40-41 40H126c-23 0-41-18-41-40V242c0-34 27-61 61-61h317c18 0 35 7 47 21l61 72zm-119-8H170v492h684V359H531l-79-93z', - component: - 'M171 469h298V171H246c-42 0-75 33-75 75v223zm0 86v223c0 42 33 75 75 75h223V555H171zm682-86V246c0-42-33-75-75-75H555v298h298zm0 86H555v298h223c42 0 75-33 75-75V555zM256 85h512c94 0 171 77 171 171v512c0 94-77 171-171 171H256c-94 0-171-77-171-171V256c0-94 77-171 171-171z', - calendar: - 'M920.036 160.030h-112.004v-72c0-22.092-17.906-40.004-40-40.004-22.090 0-40 17.906-40 40v72.004h-432v-72c0-22.092-17.906-40.004-40-40.004-22.090 0-40 17.906-40 40v72.004h-112.004c-1.38 0-2.746 0.070-4.090 0.208-20.168 2.046-35.91 19.080-35.91 39.792v688c0 22.090 17.91 40 40 40h816.008c22.098 0 40-17.91 40-40v-688c0-22.094-17.908-40-40-40zM356.032 848.026h-212.004v-142.662h212.004v142.662zM356.032 665.364h-212.004v-162.664h212.004v162.664zM356.032 462.7h-212.004v-142.662h212.004v142.662zM628.032 848.026h-232v-142.662h232v142.662zM628.032 665.364h-232v-162.664h232v162.664zM628.032 462.7h-232v-142.662h232v142.662zM880.036 848.026h-212.004v-142.662h212.004v142.662zM880.036 665.364h-212.004v-162.664h212.004v162.664zM880.036 462.7h-212.004v-142.662h212.004v142.662z', - graphline: - 'M820.536 489.23c-15.624 15.618-40.954 15.618-56.57 0l-42.006-42.002-169.898 169.9c-7.822 7.82-18.076 11.722-28.326 11.712-10.248 0.008-20.496-3.894-28.314-11.712l-96.178-96.182-140.67 140.674c-15.624 15.622-40.954 15.618-56.57-0.004-15.624-15.618-15.624-40.946 0-56.566l168.946-168.946c7.812-7.816 18.058-11.72 28.3-11.716 10.238-0.002 20.476 3.904 28.29 11.716l96.204 96.204 168.91-168.91c0.33-0.356 0.626-0.73 0.972-1.076 7.824-7.824 18.084-11.726 28.34-11.712 10.252-0.012 20.508 3.892 28.332 11.714 0.346 0.346 0.64 0.72 0.972 1.074l69.266 69.266c15.62 15.618 15.616 40.942 0 56.566zM880 144h-736v736h736v-736zM920 64c22.092 0 40 17.908 40 40v816c0 22.092-17.908 40-40 40h-816c-22.092 0-40-17.908-40-40v-816c0-22.092 17.908-40 40-40h816z', - docchart: - 'M919.938 128h-816.008c-1.38 0-2.746 0.070-4.090 0.208-20.168 2.046-35.91 19.080-35.91 39.792v688c0 22.090 17.91 40 40 40h816.008c22.098 0 40-17.91 40-40v-688c0-22.094-17.906-40-40-40zM395.934 470.67h232v162.664h-232v-162.664zM355.934 633.334h-212.004v-162.664h212.004v162.664zM395.934 430.67v-142.662h232v142.662h-232zM667.934 470.67h212.004v162.664h-212.004v-162.664zM667.934 430.67v-142.662h212.004v142.662h-212.004zM355.934 288.008v142.662h-212.004v-142.662h212.004zM143.93 673.334h212.004v142.662h-212.004v-142.662zM395.934 673.334h232v142.662h-232v-142.662zM667.934 673.334h212.004v142.662h-212.004v-142.662z', - doclist: - 'M919.938 128h-816.008c-1.38 0-2.746 0.070-4.090 0.208-20.168 2.046-35.91 19.080-35.91 39.792v688c0 22.090 17.91 40 40 40h816.008c22.098 0 40-17.91 40-40v-688c-0-22.094-17.906-40-40-40zM143.93 288.008h736.008v527.988h-736.008v-527.988zM248 400.004c0-22.090 17.91-40 40-40h448c22.094 0 40 17.906 40 40 0 22.090-17.906 40-40 40h-448c-22.090 0-40-17.91-40-40zM776 552.002c0 22.094-17.906 40-40 40h-448c-22.090 0-40-17.906-40-40 0-22.090 17.91-40 40-40h448c22.094 0 40 17.91 40 40zM776 704c0 22.094-17.906 40-40 40h-448c-22.090 0-40-17.906-40-40 0-22.090 17.91-40 40-40h448c22.094 0 40 17.91 40 40z', - category: - 'M925.224 256.37c-1.694-0.216-3.408-0.37-5.162-0.37h-816c-1.754 0-3.468 0.152-5.162 0.37-19.646 2.538-34.838 19.292-34.838 39.63v624c0 22.094 17.91 40 40 40h816c13.808 0 25.98-6.996 33.168-17.636 0.102-0.148 0.184-0.308 0.282-0.458 0.612-0.924 1.2-1.862 1.722-2.838 0.046-0.082 0.080-0.172 0.124-0.254 2.994-5.61 4.704-12.008 4.704-18.808v-624.004c0-20.342-15.19-37.096-34.838-39.632zM144.062 880v-544h736v544h-736zM896.11 180c0 11.044-8.954 20-20 20h-728.032c-11.046 0-20-8.956-20-20v0c0-11.046 8.954-20 20-20h728.032c11.046 0 20 8.954 20 20v0zM832.094 84c0 11.044-8.954 20-20 20h-600c-11.046 0-20-8.956-20-20v0c0-11.046 8.954-20 20-20h600c11.046 0 20 8.954 20 20v0z', - grid: 'M437.162 552.368c-1.694-0.216-3.408-0.37-5.162-0.37h-263.978c-1.754 0-3.468 0.152-5.162 0.37-19.646 2.538-34.838 19.292-34.838 39.63v264.040c0 22.094 17.91 40 40 40h263.978c13.808 0 25.98-6.996 33.168-17.636 0.102-0.148 0.184-0.308 0.282-0.458 0.612-0.924 1.2-1.862 1.722-2.838 0.046-0.082 0.080-0.172 0.124-0.254 2.994-5.61 4.704-12.008 4.704-18.808v-264.044c0-20.34-15.19-37.094-34.838-39.632zM208.022 816.038v-184.040h183.978v184.040h-183.978zM437.162 128.4c-1.694-0.216-3.408-0.37-5.162-0.37h-263.978c-1.754 0-3.468 0.152-5.162 0.37-19.646 2.538-34.838 19.292-34.838 39.63v263.968c0 22.094 17.91 40 40 40h263.978c13.808 0 25.98-6.996 33.168-17.636 0.102-0.148 0.184-0.308 0.282-0.458 0.612-0.924 1.2-1.862 1.722-2.838 0.046-0.082 0.080-0.172 0.124-0.254 2.994-5.61 4.704-12.008 4.704-18.808v-263.972c0-20.342-15.19-37.096-34.838-39.632zM208.022 392v-183.968h183.978v183.968h-183.978zM861.212 552.368c-1.694-0.216-3.408-0.37-5.162-0.37h-264.050c-1.754 0-3.468 0.152-5.162 0.37-19.646 2.538-34.838 19.292-34.838 39.63v264.040c0 22.094 17.91 40 40 40h264.048c13.808 0 25.98-6.996 33.168-17.636 0.102-0.148 0.184-0.308 0.282-0.458 0.612-0.924 1.2-1.862 1.722-2.838 0.046-0.082 0.080-0.172 0.124-0.254 2.994-5.61 4.704-12.008 4.704-18.808v-264.044c0.002-20.34-15.19-37.094-34.836-39.632zM632 816.038v-184.040h184.048v184.040h-184.048zM861.212 128.4c-1.694-0.216-3.408-0.37-5.162-0.37h-264.050c-1.754 0-3.468 0.152-5.162 0.37-19.646 2.538-34.838 19.292-34.838 39.63v263.968c0 22.094 17.91 40 40 40h264.048c13.808 0 25.98-6.996 33.168-17.636 0.102-0.148 0.184-0.308 0.282-0.458 0.612-0.924 1.2-1.862 1.722-2.838 0.046-0.082 0.080-0.172 0.124-0.254 2.994-5.61 4.704-12.008 4.704-18.808v-263.972c0.002-20.342-15.19-37.096-34.836-39.632zM632 392v-183.968h184.048v183.968h-184.048z', - copy: 'M960.132 210.186c0-0.444-0.050-0.874-0.066-1.312-0.024-0.684-0.044-1.366-0.104-2.046-0.060-0.74-0.158-1.468-0.26-2.198-0.080-0.564-0.156-1.128-0.258-1.692-0.146-0.792-0.328-1.566-0.518-2.34-0.124-0.508-0.244-1.014-0.39-1.518-0.224-0.784-0.488-1.548-0.76-2.312-0.176-0.49-0.344-0.98-0.538-1.466-0.302-0.754-0.642-1.486-0.988-2.216-0.224-0.472-0.436-0.946-0.68-1.41-0.398-0.762-0.838-1.496-1.284-2.228-0.242-0.396-0.466-0.798-0.722-1.19-0.608-0.924-1.262-1.81-1.942-2.678-0.132-0.168-0.248-0.346-0.382-0.512-0.98-1.212-2.028-2.364-3.14-3.454l-104.020-104.9c-3.714-3.714-7.988-6.518-12.542-8.464-0.088-0.040-0.174-0.084-0.262-0.122-0.994-0.418-2.006-0.774-3.024-1.108-0.242-0.080-0.474-0.176-0.72-0.252-0.942-0.288-1.894-0.516-2.854-0.732-0.334-0.076-0.658-0.176-0.996-0.244-0.998-0.2-2.004-0.336-3.010-0.458-0.306-0.038-0.606-0.1-0.912-0.13-1.322-0.13-2.65-0.204-3.976-0.204h-391.784c-1.754 0-3.468 0.152-5.162 0.372-19.646 2.538-34.838 19.29-34.838 39.628v145.516h-279.874c-1.754 0-3.468 0.152-5.162 0.372-19.646 2.538-34.838 19.29-34.838 39.628v628.28c0 22.094 17.91 40 40 40h496.118c13.808 0 25.98-6.996 33.168-17.636 0.102-0.148 2.084-3.466 2.128-3.548 2.992-5.612 4.704-12.010 4.704-18.808 0 0 0 0 0-0.004v-145.518h279.874c13.808 0 25.98-6.996 33.168-17.636 0.102-0.148 2.084-3.466 2.128-3.548 2.992-5.612 4.704-12.010 4.704-18.808 0 0 0 0 0-0.004v-521.828c0.008-0.23-0.016-0.458-0.014-0.688 0.002-0.202 0.028-0.39 0.028-0.584zM144.124 878.792v-548.278h311.752v65.186c0 22.090 17.91 40 40 40h64.366v443.092h-416.118zM640.244 693.278v-296.31c0.006-0.23-0.018-0.458-0.014-0.688 0.004-0.196 0.030-0.382 0.030-0.578 0-0.444-0.052-0.874-0.066-1.312-0.024-0.684-0.044-1.366-0.104-2.046-0.062-0.74-0.16-1.468-0.262-2.198-0.078-0.564-0.152-1.128-0.258-1.692-0.144-0.792-0.324-1.566-0.516-2.34-0.124-0.508-0.246-1.014-0.39-1.518-0.226-0.784-0.488-1.548-0.76-2.312-0.174-0.49-0.342-0.98-0.538-1.466-0.302-0.754-0.64-1.486-0.988-2.216-0.222-0.472-0.438-0.946-0.68-1.41-0.398-0.762-0.838-1.496-1.284-2.228-0.242-0.396-0.466-0.798-0.724-1.19-0.606-0.924-1.262-1.81-1.942-2.678-0.13-0.168-0.246-0.346-0.382-0.512-0.978-1.212-2.028-2.364-3.138-3.454l-104.020-104.9c-3.714-3.714-7.988-6.518-12.542-8.464-0.088-0.040-0.172-0.084-0.262-0.122-0.994-0.418-2.004-0.774-3.024-1.108-0.242-0.080-0.476-0.176-0.72-0.252-0.942-0.288-1.896-0.516-2.854-0.732-0.334-0.076-0.658-0.176-0.996-0.244-0.998-0.2-2.004-0.336-3.012-0.458-0.304-0.038-0.602-0.1-0.91-0.13-1.322-0.13-2.648-0.204-3.976-0.204h-31.916v-105.516h311.752v65.186c0 22.090 17.91 40 40 40h64.366v443.092h-239.87z', - certificate: - 'M832.032 384.032c0-176.728-143.266-320-320-320s-320 143.272-320 320c0 104.662 50.25 197.584 127.938 255.966v311.5c0 16.174 9.74 30.756 24.682 36.952 4.954 2.052 10.152 3.050 15.31 3.050 10.402 0 20.626-4.060 28.276-11.702l123.726-123.58 123.772 123.332c11.452 11.412 28.644 14.804 43.574 8.608 14.93-6.2 24.66-20.776 24.66-36.942v-311.124c77.756-58.376 128.062-151.342 128.062-256.060zM272.032 384.032c0-64.106 24.964-124.374 70.292-169.706 45.33-45.33 105.6-70.294 169.708-70.294s124.376 24.964 169.708 70.294c45.33 45.332 70.292 105.6 70.292 169.706s-24.964 124.376-70.292 169.704c-45.33 45.33-105.6 70.294-169.708 70.294s-124.376-24.964-169.708-70.294c-45.328-45.328-70.292-105.598-70.292-169.704zM623.968 854.89l-83.804-83.508c-15.622-15.564-40.898-15.552-56.502 0.034l-83.694 83.594v-171.17c34.878 13.042 72.632 20.192 112.062 20.192 39.382 0 77.094-7.13 111.938-20.142v171z', - print: - 'M925.922 304.496c-1.698-0.218-3.41-0.37-5.166-0.37h-88.64v-93.548c0.006-0.21-0.016-0.422-0.014-0.634 0.004-0.212 0.036-0.416 0.036-0.63 0-0.478-0.054-0.942-0.074-1.416-0.024-0.636-0.042-1.27-0.094-1.906-0.066-0.776-0.168-1.54-0.276-2.302-0.074-0.534-0.146-1.066-0.242-1.596-0.15-0.82-0.338-1.624-0.538-2.424-0.12-0.48-0.23-0.958-0.37-1.436-0.234-0.812-0.506-1.608-0.792-2.398-0.164-0.462-0.322-0.924-0.504-1.38-0.318-0.788-0.668-1.552-1.036-2.316-0.208-0.436-0.406-0.88-0.628-1.312-0.424-0.802-0.88-1.574-1.352-2.344-0.218-0.358-0.422-0.724-0.656-1.078-0.636-0.972-1.324-1.91-2.042-2.82-0.098-0.124-0.182-0.252-0.282-0.376-0.988-1.224-2.048-2.388-3.172-3.488l-104.004-104.882c-3.696-3.696-7.948-6.486-12.466-8.432-0.122-0.050-0.224-0.11-0.344-0.16-0.974-0.41-1.966-0.756-2.962-1.084-0.262-0.086-0.512-0.19-0.78-0.272-0.926-0.284-1.87-0.506-2.812-0.722-0.346-0.080-0.684-0.182-1.034-0.252-0.988-0.198-1.988-0.334-2.988-0.456-0.31-0.040-0.618-0.102-0.93-0.134-1.324-0.132-2.652-0.204-3.978-0.204h-455.67c-1.754 0-3.468 0.152-5.162 0.37-19.646 2.538-34.838 19.29-34.838 39.63v200h-87.356c-1.754 0-3.468 0.152-5.164 0.37-19.644 2.538-34.836 19.29-34.836 39.63v320c0 22.094 17.91 40 40 40h87.368v216c0 22.094 17.91 40 40 40h560.006c13.81 0 25.982-6.996 33.17-17.636 0.102-0.146 0.184-0.306 0.282-0.458 0.612-0.922 1.2-1.86 1.722-2.836 0.046-0.082 0.080-0.17 0.124-0.254 2.994-5.612 4.704-12.008 4.704-18.808 0 0 0 0 0-0.004v-216h88.624c13.808 0 25.982-6.996 33.168-17.636 0.104-0.148 0.186-0.308 0.286-0.458 0.612-0.922 1.198-1.862 1.72-2.836 0.046-0.082 0.082-0.172 0.124-0.256 2.994-5.61 4.702-12.008 4.702-18.806 0 0 0 0 0-0.004v-320c0-20.344-15.186-37.096-34.834-39.636zM272.116 144.128h375.634v65.186c0 1.38 0.070 2.746 0.208 4.090 2.048 20.168 19.080 35.91 39.792 35.91h64.366v54.812h-480v-159.998zM272.124 880.126v-327.998h480.006v327.998zM880.756 384.128v239.998h-48.624v-111.998c0-20.34-15.19-37.092-34.836-39.63-1.694-0.218-565.17-0.372-565.17-0.372-1.754 0-3.468 0.152-5.162 0.372-19.646 2.538-34.838 19.29-34.838 39.628v112h-47.368v-239.998zM664.124 608.126c22.092 0 40 17.908 40 40s-17.908 40-40 40h-304c-22.092 0-40-17.908-40-40s17.908-40 40-40h304zM704.124 784.126c0 22.092-17.908 40-40 40h-304c-22.092 0-40-17.908-40-40s17.908-40 40-40h304c22.092 0 40 17.908 40 40z', - listunordered: - 'M961 233c0 22.090-17.908 40-40 40h-607.996c-22.090 0-40-17.908-40-40v0c0-22.090 17.908-40.002 40-40.002h607.996c22.092 0 40 17.912 40 40.002v0zM961 793c0-22.090-17.908-40.002-40-40.002h-607.996c-22.092 0-40 17.912-40 40.002v0c0 22.092 17.91 40 40 40h607.996c22.092 0 40-17.91 40-40v0zM961 606.332c0-22.090-17.908-40-40-40h-607.996c-22.092 0-40 17.91-40 40v0c0 22.094 17.91 40 40 40h607.996c22.092 0 40-17.91 40-40v0zM961 419.668c0-22.090-17.908-40.004-40-40.004h-607.996c-22.092 0-40 17.914-40 40.004v0c0 22.090 17.91 40 40 40h607.996c22.092-0 40-17.91 40-40v0zM129 168.998c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zM129 728.998c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zM129 542.332c-35.346 0-64 28.652-64 64 0 35.344 28.654 64 64 64s64-28.656 64-64c0-35.348-28.654-64-64-64zM129 355.664c-35.346 0-64 28.656-64 64 0 35.348 28.654 64 64 64s64-28.652 64-64c0-35.344-28.654-64-64-64z', - graphbar: - 'M324.832 513c22.090 0 40 17.91 40 40v304c0 22.090-17.906 40-40 40v0c-22.090 0-40-17.906-40-40v-304c0-22.090 17.91-40 40-40v0zM884.832 128.998c-22.090 0-40 17.906-40 40v688.002c0 22.094 17.91 40 40 40v0c22.094 0 40-17.91 40-40v-688.002c0-22.094-17.91-40-40-40v0zM698.164 256.998c-22.090 0-40 17.91-40 40v560.002c0 22.094 17.91 40 40 40v0c22.094 0 40-17.91 40-40v-560.002c0-22.090-17.91-40-40-40v0zM511.5 384.998c-22.090 0-40.004 17.91-40.004 40v432.002c0 22.094 17.914 40 40.004 40v0c22.090 0 40-17.91 40-40v-432.002c0-22.090-17.91-40-40-40v0zM139.168 641c-22.090 0-40 17.91-40 40v176c0 22.094 17.91 40 40 40v0c22.094 0 40-17.91 40-40v-176c0-22.090-17.91-40-40-40v0z', - menu: 'M960 232c0 22.092-17.908 40-40.002 40h-815.996c-22.092 0-40-17.908-40-40v0c0-22.090 17.908-40 40-40h815.998c22.092 0 40 17.91 40 40v0zM768 416c0 22.090-17.908 40-40 40h-624c-22.090 0-40-17.908-40-40v0c0-22.090 17.908-40.002 40-40.002h624c22.092 0.002 40 17.914 40 40.002v0zM832 608c0 22.092-17.906 40.002-40 40.002h-688c-22.090 0-40-17.91-40-40.002v0c0-22.090 17.908-40 40-40h688c22.094 0 40 17.912 40 40v0zM576 792c0 22.094-17.91 40-40.002 40h-431.998c-22.090 0-40-17.906-40-40v0c0-22.094 17.908-40.002 40-40.002h432c22.094 0.002 40 17.912 40 40.002v0z', - filter: - 'M962.030 168.032c0 22.092-17.908 40-40.002 40h-815.996c-22.092 0-40-17.908-40-40v0c0-22.090 17.908-40 40-40h815.998c22.092 0 40 17.908 40 40v0zM770 544.034c0 22.090-17.908 40-40 40h-432c-22.090 0-40-17.908-40-40v0c0-22.090 17.908-40.002 40-40.002h432c22.090 0 40 17.912 40 40.002v0zM642.030 728.032c0 22.094-17.91 40-40.002 40h-175.998c-22.090 0-40-17.906-40-40v0c0-22.094 17.908-40.002 40-40.002h176c22.094 0.002 40 17.91 40 40.002v0zM866 352.030c0 22.092-17.906 40.002-40 40.002h-624c-22.090 0-40-17.91-40-40.002v0c0-22.090 17.908-40 40-40h624c22.092 0 40 17.91 40 40v0zM512.030 928.034c22.090 0 40.004-17.906 40.004-40v0c0-22.090-17.914-40-40.004-40v0c-22.090 0-40 17.91-40 40v0c0 22.092 17.91 40 40 40v0z', - ellipsis: - 'M184 393c66.274 0 120 53.73 120 120s-53.726 120-120 120c-66.286 0-120-53.73-120-120s53.714-120 120-120zM512 393c66.272 0 120 53.73 120 120s-53.728 120-120 120c-66.286 0-120-53.73-120-120s53.714-120 120-120zM840 393c66.272 0 120 53.73 120 120s-53.728 120-120 120c-66.286 0-120-53.73-120-120s53.714-120 120-120z', - cog: 'M512 288a224 224 0 0 0 0 448h2a225 225 0 0 0 52-7 47 47 0 0 0-23-90 130 130 0 0 1-31 3 131 131 0 1 1 127-101v1a47 47 0 1 0 91 19 224 224 0 0 0-218-273zM409 0c-67 14-131 40-186 77v98c0 13-6 25-15 33-8 9-20 15-33 15H77C40 278 14 341 0 409l69 68c9 10 14 22 13 34 1 13-4 25-13 34L0 614c14 68 41 132 78 188h97c13 0 25 6 33 15 9 8 15 20 15 33v97c55 37 119 63 187 77l68-69a46 46 0 0 1 36-13c11 0 23 4 32 13l69 69c68-14 131-40 186-77v-98c0-13 6-25 15-34 8-8 20-14 33-14h98c37-56 63-119 77-186l-69-70c-10-9-14-21-14-34 0-12 4-24 14-34l69-69c-14-67-40-129-77-184h-98c-13 0-25-6-33-15-9-8-15-20-15-33V77C746 40 683 14 615 0l-69 69a46 46 0 0 1-35 14c-11 0-23-5-33-14L409 0zm-28 103l32 32c26 26 61 41 98 41h3c37 0 72-15 98-41l32-31c22 7 43 16 64 26v46c0 37 15 73 42 99 26 27 62 42 99 42h45c11 20 19 41 26 63l-31 31c-26 27-41 63-41 100 0 38 15 74 41 100l32 32c-8 22-17 44-27 65h-45c-37 0-73 15-99 42-27 26-42 62-42 99v44c-21 11-42 20-65 27l-31-31c-26-26-61-41-98-41h-3c-37 0-72 15-98 41l-32 32c-22-8-44-17-65-28v-43c0-37-15-73-42-99-26-27-62-42-99-42h-44c-11-21-20-44-28-67l32-31c26-26 41-62 40-100 1-37-14-73-40-100l-31-30c7-23 16-44 26-65h45c37 0 73-15 99-42 27-26 42-62 42-99v-45c21-10 43-19 65-27z', - wrench: - 'M959.438 274.25c0-22.090-17.914-40-40.004-40-11.16 0-21.242 4.582-28.496 11.954l-60.152 60.148c-15.622 15.622-40.946 15.618-56.566-0.004l-56.57-56.566c-15.622-15.622-15.622-40.95 0-56.57l59.55-59.546c7.75-7.292 12.614-17.618 12.614-29.102 0-22.090-17.914-40-40.004-40-1.598 0-3.164 0.122-4.71 0.304-0.012 0-0.020-0.008-0.032-0.004-94.958 11.586-168.504 92.492-168.504 190.574 0 23.528 4.238 46.058 11.98 66.886l-503.078 503.074c-1.496 1.496-2.8 3.102-4.012 4.758-10.914 13.676-17.454 30.992-17.454 49.848 0 44.188 35.818 79.996 79.996 79.996 18.906 0 36.27-6.574 49.964-17.54 1.614-1.188 3.18-2.464 4.64-3.926l503.078-503.078c20.828 7.742 43.36 11.98 66.882 11.98 97.988 0 178.828-73.402 190.54-168.222v-0.012c0.2-1.628 0.338-3.272 0.338-4.952zM151.996 912c-22.090 0-40-17.906-40-40 0-22.090 17.91-40 40-40s40.004 17.91 40.004 40c0 22.094-17.914 40-40.004 40z', - nut: 'M512 286a229 229 0 0 0-233 226c0 124 104 225 233 225h2a240 240 0 0 0 54-7c21-5 35-24 35-45a48 48 0 0 0-59-45 139 139 0 0 1-32 3c-75 0-136-59-136-131 0-73 61-132 136-132a134 134 0 0 1 132 161v1l-2 9c0 26 22 47 49 47a48 48 0 0 0 47-37c4-16 6-33 6-49 0-125-104-226-232-226m0-286c-16 0-33 4-47 12L90 223a91 91 0 0 0-47 79v420c0 33 18 63 47 79l375 211a96 96 0 0 0 94 0l375-211c29-16 47-46 47-79V302c0-33-18-63-47-79L559 12c-14-8-31-12-47-12m0 91l375 211v420L512 933 137 722V302L512 91', - camera: - 'M925.164 208.372c-1.694-0.218-3.408-0.372-5.162-0.372h-471.968v-39.962c0-20.344-15.192-37.096-34.836-39.63-1.696-0.218-3.41-0.374-5.164-0.374h-176.004c-1.754 0-3.468 0.152-5.164 0.374-19.644 2.538-34.836 19.29-34.836 39.626v39.966h-88.032c-1.754 0-3.468 0.152-5.162 0.372-19.646 2.536-34.838 19.29-34.838 39.628v528c0 22.094 17.91 40 40 40h816.004c13.808 0 25.98-6.996 33.168-17.636 0.102-0.148 0.184-0.308 0.282-0.46 0.612-0.922 1.2-1.86 1.722-2.836 0.046-0.082 0.080-0.172 0.124-0.254 2.994-5.61 4.704-12.008 4.704-18.808v-528.004c-0-20.342-15.192-37.096-34.838-39.63zM880.002 736h-736.004v-448h736.004v448zM512 402.522c60.368 0 109.478 49.112 109.478 109.478s-49.112 109.478-109.478 109.478-109.478-49.112-109.478-109.478 49.11-109.478 109.478-109.478zM512 322.522c-104.644 0-189.478 84.832-189.478 189.478 0 104.644 84.834 189.478 189.478 189.478 104.646 0 189.478-84.834 189.478-189.478 0-104.646-84.832-189.478-189.478-189.478v0z', - eye: 'M1008.714 490.522c-9.002-12.594-223.276-308.808-496.684-308.808-273.444 0-487.682 296.214-496.684 308.808l-15.316 21.49 15.316 21.466c9.002 12.618 223.24 308.808 496.684 308.808 273.408 0 487.682-296.19 496.684-308.808l15.316-21.466-15.316-21.49zM807.68 631.688c-46 39.142-92.558 70.064-138.382 91.904-53.874 25.676-106.786 38.694-157.266 38.694-50.49 0-103.406-13.018-157.282-38.696-45.826-21.838-92.382-52.758-138.378-91.902-53.708-45.706-94.302-92.122-116.61-119.672 22.36-27.602 63.028-74.094 116.612-119.696 45.996-39.146 92.554-70.068 138.378-91.908 53.876-25.678 106.792-38.698 157.28-38.698 50.48 0 103.39 13.020 157.264 38.696 45.824 21.842 92.382 52.764 138.382 91.91 53.602 45.614 94.264 92.098 116.624 119.696-22.306 27.544-62.898 73.954-116.622 119.672zM692.032 512.036c0 99.41-80.588 180-180 180s-180-80.59-180-180c0-99.406 80.588-179.998 180-179.998s180 80.59 180 179.998z', - eyeclose: - 'M75.744 948.314c-15.62-15.62-15.62-40.948 0-56.564l816-816c15.626-15.624 40.95-15.624 56.57 0 15.624 15.62 15.626 40.946 0.004 56.57l-816 815.994c-15.62 15.62-40.95 15.62-56.572 0zM332.032 512.034c0 20.104 3.296 39.434 9.376 57.484l228.104-228.106c-18.050-6.080-37.38-9.376-57.48-9.376-99.412-0.004-180 80.588-180 179.996zM692.032 512.034c0-20.1-3.3-39.432-9.38-57.484l-228.106 228.11c18.052 6.080 37.384 9.376 57.488 9.376 99.412 0 180-80.59 180-180zM1008.716 490.522c-4.98-6.968-72.86-100.8-178.81-183.22l-57.040 57.040c11.624 8.8 23.24 18.128 34.814 27.98 53.6 45.614 94.264 92.1 116.624 119.696-22.304 27.544-62.896 73.954-116.62 119.672-46 39.14-92.56 70.064-138.384 91.904-53.872 25.676-106.786 38.694-157.266 38.694-37.448 0-76.234-7.18-115.76-21.36l-61.486 61.49c54.786 24.22 114.45 39.87 177.248 39.87 273.41 0 487.684-296.19 496.686-308.808l15.316-21.468-15.316-21.49zM216.372 631.69c-53.708-45.706-94.3-92.12-116.61-119.672 22.36-27.6 63.028-74.094 116.612-119.696 46-39.146 92.554-70.068 138.38-91.908 53.874-25.68 106.79-38.7 157.28-38.7 37.46 0 76.264 7.188 115.8 21.38l61.484-61.484c-54.796-24.236-114.474-39.896-177.286-39.896-273.446 0-487.684 296.214-496.686 308.808l-15.316 21.49 15.314 21.466c4.98 6.984 72.866 100.84 178.84 183.26l57.040-57.040c-11.64-8.806-23.264-18.144-34.854-28.008z', - photo: - 'M920 64h-816c-22.092 0-40 17.91-40 40v816c0 22.094 17.908 40 40 40h816c22.092 0 40-17.906 40-40v-816c0-22.090-17.908-40-40-40zM880 144v449.782l-235.39-235.392c-7.502-7.5-17.676-11.714-28.286-11.714s-20.784 4.214-28.286 11.716l-169.804 169.804-40.958-40.958c-15.622-15.622-40.95-15.622-56.57 0l-176.708 176.708v-519.946h736.002zM144 880v-102.914l204.992-204.994 215.972 215.974c7.81 7.81 18.048 11.714 28.286 11.714s20.474-3.904 28.286-11.714c15.62-15.622 15.62-40.95 0-56.57l-146.732-146.73 141.522-141.524 263.676 263.68v173.078h-736.002zM356.174 400.542c52.466 0 95-42.536 95-95s-42.534-95-95-95-95 42.536-95 95 42.534 95 95 95zM356.174 250.542c30.326 0 55 24.672 55 55s-24.674 55-55 55-55-24.672-55-55 24.674-55 55-55z', - video: - 'M926.050 273.364c-9.556 0-20.574 3.8-32.278 11.812l-189.738 129.894v-151.068c0-20.342-15.192-37.094-34.838-39.63-1.694-0.218-3.408-0.372-5.162-0.372h-560.002c-1.754 0-3.468 0.152-5.162 0.372-19.646 2.538-34.838 19.29-34.838 39.628v496.002c0 22.092 17.91 40 40 40h560.004c13.808 0 25.98-6.998 33.168-17.638 0.102-0.148 0.184-0.308 0.282-0.458 0.612-0.922 1.2-1.862 1.722-2.836 0.046-0.082 0.080-0.172 0.124-0.254 2.994-5.612 4.704-12.010 4.704-18.81v-151.066l189.738 129.886c11.706 8.012 22.718 11.812 32.278 11.812 20.092 0 33.736-16.806 33.736-46.622v-384.032c0-29.816-13.644-46.62-33.738-46.62zM624.036 720h-480.004v-415.998h480.004v415.998zM879.788 632.3l-175.728-120.296 175.728-120.302v240.598zM240.688 663.534c-22.090 0-40-17.906-40-40v0c0-22.090 17.91-40 40-40v0c22.090 0 40.004 17.91 40.004 40v0c0 22.092-17.914 40-40.004 40v0z', - speaker: - 'M692.070 580.856c18.156-18.156 28.152-42.266 28.152-67.89-0.008-25.622-10.002-49.726-28.148-67.872-8.476-8.478-18.308-15.188-29-19.922-0.222-0.098-0.408-0.22-0.566-0.364-13.294-6.5-22.476-20.116-22.476-35.914 0-22.090 17.91-40 40-40 5.774 0 11.246 1.248 16.204 3.45 0.016 0.006 0.026 0.008 0.040 0.016 19.292 8.656 37.036 20.832 52.368 36.164 33.254 33.254 51.574 77.446 51.58 124.43 0.006 46.996-18.31 91.204-51.58 124.472-15.064 15.062-32.45 27.074-51.344 35.7-0.154 0.070-0.286 0.112-0.434 0.176-5.124 2.382-10.812 3.75-16.832 3.75-22.090 0-40-17.906-40-40 0-16.196 9.644-30.112 23.488-36.402 0.156-0.11 0.32-0.216 0.516-0.304 10.314-4.712 19.81-11.268 28.032-19.49zM861.778 275.386c-47.824-47.824-107.946-79.588-173.204-92.242-0.356-0.078-0.712-0.146-1.072-0.214-0.060-0.012-0.124-0.026-0.186-0.038-0.506-0.096-0.976-0.162-1.422-0.208-1.918-0.282-3.868-0.476-5.864-0.476-22.090 0-40 17.91-40 40 0 19.024 13.292 34.91 31.084 38.968 0.352 0.128 0.728 0.244 1.162 0.326 48.7 9.268 95.226 32.748 132.934 70.452 99.972 99.972 100.054 261.984-0.002 362.040-37.684 37.684-84.152 61.14-132.788 70.426-0.084 0.016-0.144 0.046-0.224 0.066-18.338 3.644-32.166 19.816-32.166 39.222 0 22.094 17.91 40 40 40 2.776 0 5.484-0.286 8.102-0.822 0.094-0.018 0.172-0.018 0.27-0.038 65.32-12.626 125.496-44.406 173.376-92.286 131.008-131.008 131.008-344.172 0-475.176zM525.988 159.516v704.968c0 22.090-17.906 40-40 40-12.73 0-24.046-5.966-31.374-15.234l-51.056-61.722v0.216l-122.14-147.666h-177.386c-22.090 0-40-17.906-40-40v0 0-256c0-5.22 1.030-10.194 2.85-14.766 0.104-0.266 0.184-0.542 0.294-0.804 0.39-0.924 0.844-1.812 1.3-2.702 0.134-0.26 0.242-0.538 0.382-0.794 0.246-0.456 0.54-0.878 0.804-1.324 6.972-11.726 19.734-19.61 34.368-19.61h177.386l173.13-209.238c7.324-9.316 18.67-15.324 31.44-15.324 22.092-0 40.002 17.91 40.002 40zM445.988 270.826l-126.708 153.252h-175.248v176h175.248l19.832 23.998h0.17l106.708 129.112v-482.362z', - phone: - 'M742.52 960c-76.266 0-163.184-32.364-258.338-96.194-73.798-49.504-136.41-106.904-175.938-146.34-43.282-43.222-105.612-111.376-156.842-190.682-66.576-103.062-95.348-196.038-85.518-276.344 8.952-73.326 50.674-134.292 120.664-176.304 10.95-6.63 23.76-10.134 37.054-10.134 32.752 0 71.124 23.354 120.764 73.494 36.434 36.802 70.108 79.22 89.472 106.644 46.698 66.176 60.686 107.352 48.286 142.136-12.638 35.538-35.534 55.704-52.25 70.428-5.662 5.006-9.95 8.854-13.070 12.262 4.040 7.542 11.744 19.868 26.054 37.476 42.388 52.076 90.548 89.024 111.972 100.874 3.308-2.96 7.11-7.168 12.352-13.152 14.87-16.81 35.062-39.636 70.482-52.28 7.978-2.842 16.498-4.276 25.35-4.276 44.172 0 108.804 44.078 155.246 81.056 45.834 36.494 103.292 90.498 127.104 132.612 22.602 39.596 14.982 68.64 4.596 86.006-48.138 80.296-119.862 122.718-207.44 122.718zM224.758 144.53c-47.558 29.426-73.566 67.28-79.468 115.618-7.494 61.224 17.17 136.326 73.308 223.226 49.902 77.252 112.994 144.35 146.16 177.472 30.296 30.222 91.906 88.17 163.988 136.524 81.738 54.83 153.662 82.63 213.772 82.63 58.618 0 103.506-26.526 137.138-81.076-0.47-1.536-1.532-4.062-3.854-8.132-14.584-25.794-57.006-69.202-105.642-108.156-58.776-47.074-96.708-63.894-106.756-64.982-15.348 5.826-25.020 16.758-36.178 29.372-12.542 14.318-28.31 32.316-55.476 41.528l-6.25 2.12h-6.598c-8.704 0-31.826 0-86.73-43.378-32.196-25.438-64.65-57.534-91.38-90.374-35.712-43.942-51.41-77.764-46.674-100.548l0.55-2.642 0.9-2.546c9.19-26 26.284-41.118 41.364-54.458 12.726-11.208 23.698-20.874 29.494-36.378-0.606-4.398-5.076-23.488-37.948-70.072-15.882-22.494-45.746-60.376-77.614-93.084-39.93-40.986-60.106-50.546-66.106-52.664z', - flag: 'M168 960.060c-22.092 0-40-17.908-40-40v-816.36c0-22.092 17.908-40 40-40h687.698c16.178 0 30.764 9.746 36.956 24.694 6.192 14.946 2.77 32.15-8.67 43.59l-188.918 188.922 189.218 189.216c11.44 11.442 14.862 28.646 8.67 43.592-6.192 14.948-20.776 24.694-36.956 24.694h-647.998v341.654c0 22.090-17.908 39.998-40 39.998zM208 498.406h551.428l-149.218-149.216c-15.622-15.622-15.622-40.95 0-56.568l148.918-148.922h-551.128v354.706z', - pin: 'M512 959.916c-13.36 0-25.84-6.672-33.262-17.782l-242.080-362.324c-0.12-0.176-0.236-0.356-0.354-0.536-36.394-54.5-55.63-118.042-55.63-183.804 0-182.696 148.632-331.324 331.326-331.324 182.696 0 331.328 148.628 331.328 331.324 0 60.71-16.554 119.98-47.906 171.652-0.758 1.528-1.618 3.016-2.578 4.45l-5.786 8.664c-0.054 0.082-0.112 0.164-0.168 0.246-0.042 0.070-0.104 0.16-0.148 0.23l-241.484 361.426c-7.422 11.106-19.898 17.778-33.258 17.778zM303.458 535.784l0.026 0.040c0.038 0.054 0.158 0.238 0.194 0.292l208.324 311.796 212.374-317.86c0.376-0.696 0.778-1.382 1.198-2.062 24.7-39.708 37.758-85.532 37.758-132.52 0-138.582-112.746-251.324-251.328-251.324s-251.326 112.742-251.326 251.324c0 50.054 14.674 98.39 42.432 139.782 0.114 0.176 0.232 0.356 0.348 0.532zM512 304.4c49.98 0 90.64 40.66 90.64 90.64 0 49.976-40.66 90.636-90.64 90.636s-90.64-40.66-90.64-90.636c0-49.98 40.66-90.64 90.64-90.64zM512 224.4c-94.242 0-170.64 76.398-170.64 170.64s76.398 170.636 170.64 170.636 170.64-76.394 170.64-170.636-76.398-170.64-170.64-170.64v0z', - compass: - 'M512 0a512 512 0 110 1024A512 512 0 01512 0zm0 91.4c-112.3 0-218 43.8-297.4 123.2A417.8 417.8 0 0091.4 512c0 112.3 43.8 218 123.2 297.4A417.8 417.8 0 00512 932.6c112.3 0 218-43.8 297.4-123.2A417.8 417.8 0 00932.6 512c0-112.3-43.8-218-123.2-297.4A417.8 417.8 0 00512 91.4zm242.4 178.1a22.9 22.9 0 012.9 28.9L574.9 571.7l-3.2 3.2-273.3 182.4a22.9 22.9 0 01-31.7-31.7l181-271.6c1.7-2.5 3.8-4.6 6.3-6.3l271.6-181c9-6 21.1-4.9 28.8 2.8zM483.2 483.3l-115 172.4 172.5-115-57.5-57.4z', - globe: - 'M533.6 1.6a144.2 144.2 0 00-43.2 0A511.7 511.7 0 000 512.6 511.7 511.7 0 00512 1024c282.8 0 512-229 512-511.4a511.7 511.7 0 00-490.4-511zM930 467H749c-3.6-105.7-20-204.7-47.2-282.5a494.4 494.4 0 00-24.2-58.2 419.3 419.3 0 01131.8 89.3A416.7 416.7 0 01930.2 467zM512 931.5c-75.3 0-137.3-163.3-145.4-373.3h290.8c-8.1 210-70.1 373.3-145.4 373.3zM366.5 467c7.4-200.2 63.7-358.5 134-374.3a406.8 406.8 0 0123 0c70.3 15.9 126.6 174.1 134 374.3h-291zM214.6 215.5A420.7 420.7 0 01346.4 126c-8.7 17.7-16.9 37.1-24.2 58.2-27.1 78-43.6 177-47.2 282.5H94a416.7 416.7 0 01120.7-251.3zM93.9 558.2H275c3.8 104.8 20.2 203 47 280.3a488.6 488.6 0 0025.8 61 420.4 420.4 0 01-133.3-89.9A416.7 416.7 0 0193.9 558.2zm715.5 251.4a420.4 420.4 0 01-133.3 90c9.3-18.4 18-38.8 25.7-61.1 27-77.4 43.3-175.5 47-280.3h181.3a416.7 416.7 0 01-120.7 251.4z', - location: - 'M1024 512a512 512 0 10-512.1 512C643 1024 774 974 874 874s150-231 150-362zM809.4 809.4a417.4 417.4 0 01-251.7 120.7v-153a45.7 45.7 0 00-91.5 0v153a417 417 0 01-251.6-120.7A417.7 417.7 0 0194 557.7h153a45.7 45.7 0 000-91.5h-153a417.3 417.3 0 01120.7-251.6A417.5 417.5 0 01466.2 93.8v153a45.7 45.7 0 0091.4 0v-153a417.4 417.4 0 01251.8 120.7A417.5 417.5 0 01930 466.2H777a45.7 45.7 0 000 91.4h153a417.3 417.3 0 01-120.7 251.7v.1z', - search: - 'M218 670a318 318 0 0 1 0-451 316 316 0 0 1 451 0 318 318 0 0 1 0 451 316 316 0 0 1-451 0m750 240L756 698a402 402 0 1 0-59 60l212 212c16 16 42 16 59 0 16-17 16-43 0-60', - zoom: 'M220 670a316 316 0 0 1 0-450 316 316 0 0 1 450 0 316 316 0 0 1 0 450 316 316 0 0 1-450 0zm749 240L757 698a402 402 0 1 0-59 59l212 212a42 42 0 0 0 59-59zM487 604a42 42 0 0 1-84 0V487H286a42 42 0 1 1 0-84h117V286a42 42 0 1 1 84 0v117h117a42 42 0 0 1 0 84H487v117z', - zoomout: - 'M757 698a402 402 0 1 0-59 59l212 212a42 42 0 0 0 59-59L757 698zM126 445a316 316 0 0 1 319-319 316 316 0 0 1 318 319 316 316 0 0 1-318 318 316 316 0 0 1-319-318zm160 42a42 42 0 1 1 0-84h318a42 42 0 0 1 0 84H286z', - zoomreset: - 'M148 560a318 318 0 0 0 522 110 316 316 0 0 0 0-450 316 316 0 0 0-450 0c-11 11-21 22-30 34v4h47c25 0 46 21 46 46s-21 45-46 45H90c-13 0-25-6-33-14-9-9-14-20-14-33V156c0-25 20-45 45-45s45 20 45 45v32l1 1a401 401 0 0 1 623 509l212 212a42 42 0 0 1-59 59L698 757A401 401 0 0 1 65 570a42 42 0 0 1 83-10z', - timer: - 'M571.5 0a42.7 42.7 0 010 85.3h-16.7l-.2 53.1a441.6 441.6 0 01221.2 84.9l44.7-44.6a42.7 42.7 0 0160.3 60.3l-41.5 41.5a443.8 443.8 0 11-370-142l.1-53.2H452A42.7 42.7 0 01452 0h119.5zM512 221.7a356 356 0 00-253.5 105 356 356 0 00-105 253.5 356 356 0 00105 253.5 356 356 0 00253.5 105 356 356 0 00253.5-105 356.2 356.2 0 00105-253.5 356 356 0 00-105-253.5 356 356 0 00-253.5-105zm-.1 52.7a42.7 42.7 0 0142.6 42.6v206.6a68.2 68.2 0 0125.3 47.3l.2 5.8a68.2 68.2 0 11-110.8-53.4V317a42.7 42.7 0 0142.7-42.6z', - time: 'M512 0a512 512 0 110 1024A512 512 0 01512 0zm0 91.4c-112.3 0-218 43.8-297.4 123.2A417.8 417.8 0 0091.4 512c0 112.3 43.8 218 123.2 297.4A417.8 417.8 0 00512 932.6c112.3 0 218-43.8 297.4-123.2A417.8 417.8 0 00932.6 512c0-112.3-43.8-218-123.2-297.4A417.8 417.8 0 00512 91.4zm0 54.9a45.7 45.7 0 0145.7 45.7v280H759a45.7 45.7 0 010 91.4H512c-6.1 0-12-1.2-17.4-3.4l-.4-.2-2-1c-.7-.3-1.4-.5-2-.9l-.7-.4-3-1.9-.4-.2c-12-8.2-19.8-22-19.8-37.7V192a45.7 45.7 0 0145.7-45.7z', - lightning: - 'M320.022 1022.644c-7.408 0-14.852-2.052-21.44-6.238-15.292-9.714-22.144-28.494-16.706-45.774l115.186-365.908-214.552-52.57c-14.714-3.606-26.128-15.214-29.486-29.988-3.356-14.772 1.92-30.174 13.632-39.786l576-472.662c14.458-11.864 35.208-12.126 49.962-0.626 14.752 11.496 19.568 31.682 11.594 48.602l-171.202 363.256 208.648 51.756c14.29 3.544 25.476 14.652 29.124 28.914s-0.834 29.376-11.668 39.344l-512 471.112c-7.586 6.984-17.308 10.568-27.092 10.568zM279.236 493.49l178.314 43.69c10.74 2.632 19.912 9.59 25.336 19.226s6.62 21.086 3.298 31.636l-83.030 263.76 347.066-319.352-183.82-45.596c-11.63-2.884-21.356-10.832-26.498-21.656-5.144-10.822-5.164-23.382-0.054-34.22l116.31-246.788-376.922 309.3z', - lightningoff: - 'M310 374L76 150a37 37 0 0 1 0-54c15-14 41-14 56 0l816 778c16 15 16 39 0 54a41 41 0 0 1-56 0L666 712l-57-54-242-230-57-54zm-32 28l57 54-44 38 115 29 78 76-75 254 169-165 57 54-279 271c-8 7-17 11-26 11-7 0-14-2-20-6a41 41 0 0 1-16-46l109-367-203-52c-14-4-25-16-28-30-4-15 1-31 13-40l93-81zm124-108L731 9c13-12 33-12 47-1 14 12 19 32 11 49L627 421l198 52c13 4 24 15 27 29 4 14-1 29-11 39l-89 87-56-54 42-41-118-31-80-76 109-242-190 165-57-55z', - dashboard: - 'M512 85.3a512 512 0 01361 875c-99.5-44-225-70.4-361.6-70.4-136.1 0-261.4 26.2-360.8 70A512 512 0 01512 85.4zm0 91.5c-112.4 0-218 43.7-297.4 123.1A417.8 417.8 0 0091.4 597.3c0 93 30 181.5 85.5 254.2 101-34.8 215.3-53 334.5-53 119.6 0 234.2 18.3 335.5 53.4a417.3 417.3 0 0085.7-254.6c0-112.3-43.8-218-123.2-297.4a417.5 417.5 0 00-275-122.6l-22.4-.5zm219.7 115.7a45.7 45.7 0 0116.7 62.4L580.4 646c6.5 17.1 6.7 36.6-.6 54.3l-4.3 8.7A73.1 73.1 0 11501.3 600l168-291a45.7 45.7 0 0162.4-16.6z', - hourglass: - 'M511.926 801.946c-22.090 0-40-17.906-40-40v0c0-22.090 17.91-40 40-40v0c22.090 0 40.004 17.91 40.004 40v0c0 22.094-17.914 40-40.004 40v0zM831.682 915.242c0.192 1.582 0.318 3.186 0.318 4.82 0 22.090-17.908 40-40 40h-560c-22.092 0-40-17.914-40-40 0-2.438 0.252-4.812 0.67-7.128 2.36-53.636 18.034-105.7 45.852-151.554 0.734-1.476 1.562-2.912 2.492-4.296l5.582-8.364c0.054-0.080 0.11-0.158 0.164-0.238 0.042-0.068 0.098-0.156 0.144-0.222l157.704-236.036-158.5-237.228c-0.116-0.17-0.23-0.342-0.34-0.516-32.842-49.178-51.11-105.994-53.368-165.044-0.238-1.762-0.402-3.546-0.402-5.374 0-22.090 17.908-40 40-40h560c22.092 0 40 17.914 40 40 0 2.056-0.204 4.064-0.504 6.038-2.194 54.020-17.886 106.48-45.894 152.648-0.734 1.472-1.562 2.91-2.492 4.294l-5.582 8.366c-0.054 0.078-0.11 0.156-0.164 0.236-0.042 0.068-0.098 0.154-0.144 0.222l-157.734 236.082 158.468 237.182c0.116 0.168 0.23 0.344 0.34 0.516 32.946 49.33 51.226 106.346 53.39 165.596zM749.958 144.060h-475.99c6.138 31.304 18.384 61.124 36.354 87.916 0.118 0.17 0.23 0.344 0.342 0.514l0.024 0.038c0.036 0.054 0.15 0.23 0.186 0.284l54.286 81.25h293.596l58.196-87.1c0.366-0.67 0.75-1.334 1.154-1.99 15.492-24.916 26.228-52.324 31.852-80.912zM497.528 512.178l-0.032 0.046 14.426 21.592 93.378-139.756h-186.692l78.92 118.118zM305.96 799.156c-15.498 24.91-26.234 52.318-31.856 80.906h476.052c-6.138-31.304-18.384-61.122-36.354-87.918-0.118-0.168-0.23-0.344-0.342-0.512l-0.024-0.040c-0.036-0.050-0.15-0.23-0.186-0.282l-140.242-209.902-28.98 43.374c-7.166 10.72-19.21 17.162-32.11 17.162-12.896 0-24.942-6.442-32.11-17.166l-28.76-43.044-143.938 215.428c-0.36 0.674-0.744 1.338-1.15 1.994z', - play: 'M878.78 477.856l-591.884-341.722c-9.464-5.464-18.426-8.050-26.386-8.048-19.516 0.002-33.002 15.546-33.002 42.338v683.446c0 26.792 13.482 42.338 33.002 42.338 7.96 0 16.924-2.586 26.386-8.048l591.884-341.722c32.664-18.864 32.664-49.724 0-68.582z', - playnext: - 'M222 136l513 342 12 10V192a64 64 0 01128 0v640a64 64 0 01-128 0V536l-12 10-513 342c-8 5-16 8-23 8-17 0-28-16-28-42V170c0-26 11-42 28-42 7 0 15 3 23 8z', - playback: - 'M823 136L311 478l-12 10V192a64 64 0 00-128 0v640a64 64 0 10128 0V536l12 10 512 342c8 5 16 8 23 8 17 0 29-16 29-42V170c0-26-12-42-29-42-7 0-15 3-23 8z', - stop: 'M1024 512A512 512 0 100 512a512 512 0 001024 0zM215 809a418 418 0 010-594 418 418 0 01594 0 418 418 0 010 594 418 418 0 01-594 0zm471-78H338c-25 0-45-20-45-45V338c0-25 20-45 45-45h348c25 0 45 20 45 45v348c0 25-20 45-45 45z', - stopalt: - 'M894 85H130c-25 0-45 20-45 45v764c0 25 20 45 45 45h764c25 0 45-20 45-45V130c0-25-20-45-45-45z', - rewind: - 'm631.8 642.6 345 245.4c7.7 5.4 15 8 21.4 8 15.9 0 26.8-15.5 26.8-42.3V170.3c0-26.8-11-42.3-26.8-42.3-6.4 0-13.7 2.6-21.4 8l-345 245.4v-211c0-26.9-10.9-42.4-26.8-42.4-6.4 0-13.7 2.6-21.4 8L129 459.4V192a64 64 0 0 0-128 0v640a64 64 0 0 0 128 0V564.6L583.6 888c7.7 5.4 15 8 21.4 8 15.9 0 26.8-15.5 26.8-42.3v-211Z', - fastforward: - 'M398.2 386.4 53.2 141c-7.7-5.4-15-8-21.4-8C15.9 133 5 148.5 5 175.3v683.4C5 885.5 16 901 31.8 901c6.4 0 13.7-2.6 21.4-8l345-245.4v211c0 26.9 11 42.4 26.8 42.4 6.4 0 13.7-2.6 21.4-8L901 569.6V837a64 64 0 0 0 128 0V197a64 64 0 0 0-128 0v267.4L446.4 141c-7.7-5.4-15-8-21.4-8-15.9 0-26.8 15.5-26.8 42.3v211Z', - email: - 'M960.032 268.004c0.748-10.040-2.246-20.364-9.226-28.684-5.984-7.132-13.938-11.62-22.394-13.394-0.13-0.026-0.268-0.066-0.396-0.092-1.082-0.22-2.172-0.376-3.272-0.5-0.25-0.032-0.492-0.080-0.742-0.102-1.028-0.096-2.052-0.136-3.090-0.156-0.292-0.002-0.582-0.042-0.876-0.042h-816.008c-21.416 0-38.848 16.844-39.898 38-0.034 0.628-0.092 1.256-0.096 1.89 0 0.034-0.006 0.074-0.006 0.114 0 0.050 0.008 0.102 0.008 0.152v495.692c0 0.054-0.008 0.106-0.008 0.156 0 22.090 17.91 40 40 40h816.004c13.808 0 25.98-6.996 33.17-17.636 0.1-0.148 0.182-0.312 0.28-0.458 0.606-0.93 1.196-1.868 1.722-2.84 0.046-0.082 0.080-0.172 0.124-0.258 2.992-5.604 4.704-12.008 4.704-18.804v0 0-493.038zM144.032 350.156l339.946 281.188c6.568 6.434 14.918 10.168 23.564 11.122 0.16 0.024 0.32 0.050 0.48 0.066 0.838 0.082 1.676 0.114 2.518 0.14 0.496 0.020 0.994 0.058 1.492 0.058s0.996-0.042 1.492-0.058c0.842-0.028 1.68-0.058 2.518-0.14 0.16-0.016 0.32-0.042 0.48-0.066 8.646-0.958 16.996-4.688 23.564-11.122l339.946-281.206v370.894h-736v-370.876zM215.066 305.030h593.91l-296.946 245.422-296.964-245.422z', - - link: 'M743.52 529.234c5.616-5.616 83.048-83.046 88.462-88.46 30.944-32.778 47.97-75.636 47.97-120.792 0-47.048-18.304-91.26-51.542-124.484-33.228-33.22-77.43-51.516-124.458-51.516-45.024 0-87.792 16.94-120.536 47.72l-104.458 104.456c-30.792 32.738-47.734 75.512-47.734 120.548 0 41.916 14.576 81.544 41.248 113.196 3.264 3.876 6.666 7.664 10.292 11.29 4.258 4.258 8.704 8.262 13.304 12.022 0.054 0.080 0.096 0.152 0.148 0.232 9.572 7.308 15.778 18.804 15.778 31.776 0 22.094-17.914 40-40.004 40-8.542 0-16.442-2.696-22.938-7.26-2.746-1.93-20.622-17.43-30.35-28.050-0.008-0.010-0.018-0.018-0.026-0.028-4.992-5.432-13.234-15.23-18.552-22.65s-16.556-25.872-17.036-26.736c-0.7-1.262-2.974-5.526-3.422-6.39-0.69-1.334-6.118-12.67-6.114-12.67-14.342-31.96-22.332-67.4-22.332-104.728 0-60.826 21.198-116.648 56.58-160.544 0.252-0.314 4.61-5.594 6.594-7.866 0.304-0.35 5.038-5.636 7.16-7.874 0.252-0.268 105.86-105.874 106.128-106.126 45.902-43.584 107.958-70.314 176.264-70.314 141.382 0 255.998 114.5 255.998 256 0 68.516-26.882 130.688-70.652 176.61-0.144 0.148-109.854 109.546-112.090 111.528-0.958 0.848-5.072 4.352-5.072 4.352-6.448 5.434-13.132 10.592-20.1 15.378 0.412-6.836 0.644-13.702 0.644-20.6 0-26.46-3.108-52.206-8.918-76.918l-0.236-1.102zM616.144 767.82c35.382-43.896 56.58-99.718 56.58-160.544 0-37.328-7.99-72.768-22.332-104.728 0.004 0 0.006-0.002 0.010-0.004-0.258-0.576-0.538-1.14-0.8-1.714-0.686-1.498-2.894-6.112-3.296-6.93-0.668-1.344-2.952-5.732-3.386-6.604-3.48-6.982-8.708-15.126-9.49-16.366-0.498-0.792-0.996-1.58-1.502-2.364-0.834-1.29-15.364-22.066-26.656-34.466-0.008-0.010-0.018-0.018-0.026-0.028-7.056-8.448-24.932-24.198-30.35-28.050-6.47-4.602-14.396-7.26-22.938-7.26-22.090 0-40.004 17.906-40.004 40 0 12.97 6.206 24.466 15.778 31.776 0.052 0.080 0.094 0.152 0.148 0.232 4.602 3.76 20.334 19.434 23.598 23.31 26.672 31.65 41.248 71.28 41.248 113.196 0 45.038-16.944 87.81-47.734 120.548l-104.458 104.456c-32.742 30.782-75.512 47.72-120.536 47.72-47.028 0-91.228-18.294-124.458-51.516-33.236-33.224-51.542-77.436-51.542-124.484 0-45.154 17.028-88.014 47.97-120.792 5.414-5.414 40.812-40.812 68.958-68.958 7.176-7.176 13.888-13.886 19.504-19.502v-0.002c-0.356-1.562-0.246-1.096-0.246-1.096-5.81-24.712-8.918-50.458-8.918-76.918 0-6.898 0.232-13.764 0.644-20.6-6.966 4.788-20.1 15.33-20.1 15.33-0.734 0.62-9.518 8.388-11.68 10.45-0.16 0.154-105.338 105.33-105.482 105.478-43.77 45.922-70.652 108.094-70.652 176.61 0 141.5 114.616 256 255.998 256 68.306 0 130.362-26.73 176.264-70.314 0.27-0.254 105.876-105.86 106.128-106.126 0.004-0.002 13.506-15.426 13.758-15.74z', - paperclip: - 'M824.25 369.354c68.146-70.452 67.478-182.784-2.094-252.354-70.296-70.296-184.266-70.296-254.558 0-0.014 0.012-0.028 0.026-0.042 0.042-0.004 0.002-0.006 0.004-0.010 0.008l-433.144 433.142c-0.036 0.036-0.074 0.068-0.11 0.106-0.054 0.052-0.106 0.11-0.16 0.162l-2.668 2.67c-0.286 0.286-0.528 0.596-0.8 0.888-43.028 44.88-66.664 103.616-66.664 165.986 0 64.106 24.962 124.376 70.292 169.704 45.328 45.33 105.598 70.292 169.706 70.292 50.612 0 98.822-15.57 139.186-44.428 4.932-1.952 9.556-4.906 13.544-8.894l16.802-16.802c0.056-0.056 0.116-0.112 0.172-0.168 0.038-0.038 0.074-0.076 0.112-0.116l289.010-289.014c15.622-15.618 15.62-40.942 0-56.56s-40.948-15.62-56.566 0l-289.124 289.122c-62.482 62.484-163.792 62.484-226.274 0-62.484-62.482-62.484-163.79 0-226.272h-0.002l433.134-433.12c0.058-0.060 0.112-0.122 0.172-0.18 38.99-38.99 102.43-38.99 141.42 0 38.992 38.99 38.99 102.432 0 141.422-0.058 0.060-0.122 0.114-0.18 0.17l0.006 0.006-280.536 280.534c-0.002-0.002-0.002-0.004-0.004-0.006l-79.978 79.98c-0.010 0.010-0.016 0.020-0.028 0.028-0.008 0.012-0.018 0.018-0.028 0.028l-0.064 0.062c-15.622 15.624-40.944 15.624-56.562 0-15.624-15.62-15.624-40.944-0.002-56.566l0.062-0.062c0.010-0.010 0.018-0.020 0.028-0.028 0.008-0.012 0.020-0.018 0.028-0.028l79.98-79.978c-0.002-0.002-0.004-0.002-0.006-0.004l136.508-136.512c15.622-15.62 15.62-40.944-0.002-56.562-15.618-15.62-40.946-15.62-56.564 0l-219.342 219.344c-1.284 1.284-2.42 2.652-3.494 4.052-40.4 47.148-38.316 118.184 6.322 162.824 44.64 44.638 115.674 46.722 162.82 6.324 1.402-1.072 2.772-2.21 4.054-3.494l2.83-2.832c0.002 0 0.002 0 0.002 0s0 0 0 0l360.54-360.54c0.058-0.056 0.12-0.114 0.18-0.172 0.050-0.050 0.098-0.106 0.15-0.158l0.994-0.994c0.34-0.338 0.63-0.702 0.952-1.052z', - box: 'M960.016 408.080c0-0.672-0.046-1.342-0.078-2.014-0.032-0.594-0.044-1.19-0.102-1.782-0.068-0.726-0.186-1.448-0.294-2.17-0.080-0.54-0.144-1.080-0.248-1.616-0.138-0.724-0.326-1.442-0.506-2.16-0.134-0.534-0.252-1.070-0.408-1.6-0.196-0.662-0.436-1.314-0.668-1.968-0.204-0.582-0.396-1.166-0.628-1.74-0.226-0.56-0.494-1.11-0.75-1.662-0.3-0.656-0.598-1.312-0.934-1.954-0.242-0.454-0.514-0.894-0.774-1.342-0.414-0.716-0.83-1.43-1.292-2.124-0.256-0.382-0.538-0.752-0.806-1.128-0.514-0.716-1.036-1.428-1.602-2.116-0.090-0.11-0.162-0.226-0.254-0.336-0.244-0.292-0.516-0.542-0.768-0.826-0.534-0.6-1.068-1.198-1.644-1.772-0.48-0.478-0.982-0.924-1.48-1.376-0.354-0.316-0.674-0.658-1.040-0.964l-405.788-335.666c-6.568-6.436-14.918-10.166-23.564-11.124-0.16-0.022-0.32-0.050-0.48-0.066-0.838-0.082-1.676-0.11-2.518-0.14-0.496-0.020-0.994-0.058-1.492-0.058s-0.996 0.040-1.492 0.058c-0.842 0.028-1.68 0.058-2.518 0.14-0.16 0.016-0.32 0.044-0.48 0.066-8.646 0.956-16.996 4.688-23.564 11.124l-405.662 335.542c-7.13 5.982-11.616 13.93-13.392 22.382-0.032 0.14-0.070 0.278-0.1 0.42-0.212 1.072-0.37 2.152-0.494 3.238-0.032 0.258-0.078 0.51-0.106 0.77-0.086 0.89-0.114 1.786-0.138 2.68-0.014 0.39-0.052 0.78-0.054 1.17 0 0.040-0.006 0.074-0.006 0.114v204.856c-0.958 12.434 3.854 25.128 14.134 33.754l405.662 335.54c6.568 6.438 14.918 10.168 23.564 11.124 0.16 0.020 0.32 0.050 0.48 0.066 0.838 0.082 1.676 0.114 2.518 0.14 0.496 0.020 0.994 0.058 1.492 0.058 0.054 0 0.11-0.008 0.162-0.008 0.042 0 0.084 0.008 0.126 0.008 0.342 0 0.672-0.042 1.012-0.050 0.062-0.004 0.126-0.008 0.192-0.008 0.134-0.004 0.27-0.020 0.402-0.024 10.602-0.422 20.136-4.938 27.054-12.046l404.526-334.624c0.084-0.066 0.166-0.136 0.248-0.204l0.12-0.098c0.17-0.144 0.314-0.304 0.48-0.45 0.814-0.704 1.614-1.43 2.37-2.2 0.296-0.3 0.562-0.624 0.85-0.934 0.602-0.652 1.2-1.308 1.756-2 0.3-0.372 0.566-0.758 0.852-1.136 0.504-0.672 1.002-1.344 1.462-2.046 0.242-0.368 0.458-0.75 0.686-1.124 0.458-0.754 0.908-1.508 1.316-2.292 0.164-0.312 0.304-0.636 0.46-0.954 0.426-0.872 0.832-1.746 1.196-2.652 0.092-0.23 0.168-0.464 0.256-0.696 0.376-0.996 0.728-2 1.026-3.032 0.042-0.148 0.074-0.296 0.114-0.442 0.306-1.102 0.578-2.218 0.79-3.356 0.016-0.082 0.024-0.164 0.038-0.246 0.212-1.184 0.382-2.378 0.49-3.598v0c0.1-1.156 0.176-2.32 0.176-3.5v-204.86c0.024-0.318 0.022-0.638 0.040-0.958 0.026-0.668 0.074-1.338 0.074-2.008zM143.89 493.202l328.14 271.42v103.902l-328.14-271.18v-104.142zM552.032 764.402l327.868-271.212v103.88l-327.868 270.972v-103.64zM511.898 122.66l345.348 285.42-345.348 285.42-345.374-285.42 345.374-285.42z', - structure: - 'M954.324 833.3c0.208-0.558 0.388-1.128 0.586-1.692 0.3-0.868 0.608-1.734 0.882-2.61 0.234-0.746 0.444-1.5 0.66-2.25 0.212-0.734 0.432-1.464 0.624-2.204 0.204-0.766 0.378-1.54 0.562-2.308 0.18-0.766 0.366-1.528 0.528-2.292 0.146-0.692 0.272-1.386 0.402-2.082 0.168-0.89 0.332-1.778 0.476-2.668 0.090-0.566 0.164-1.136 0.244-1.704 0.148-1.058 0.29-2.118 0.404-3.18 0.042-0.422 0.080-0.852 0.12-1.274 0.118-1.23 0.212-2.46 0.282-3.696 0.018-0.304 0.030-0.606 0.042-0.906 0.062-1.36 0.098-2.718 0.104-4.082 0-0.114 0.008-0.226 0.008-0.34 0-0.128-0.010-0.258-0.010-0.39-0.006-1.368-0.042-2.734-0.104-4.102-0.014-0.296-0.030-0.594-0.044-0.89-0.070-1.246-0.166-2.492-0.284-3.738-0.042-0.434-0.084-0.864-0.128-1.292-0.116-1.050-0.25-2.098-0.4-3.144-0.088-0.628-0.18-1.258-0.282-1.882-0.13-0.8-0.276-1.598-0.428-2.394-0.162-0.868-0.332-1.73-0.518-2.594-0.116-0.524-0.24-1.046-0.364-1.57-0.264-1.128-0.542-2.25-0.846-3.36-0.070-0.254-0.144-0.504-0.214-0.754-11.38-40.382-48.464-69.996-92.488-69.996-3.066 0-6.096 0.16-9.088 0.442l-264.576-458.262c21.080-29.698 24.3-70.13 4.9-103.732-12.596-21.816-32.458-36.812-54.764-43.724-0.062-0.020-0.124-0.036-0.186-0.054-1.394-0.43-2.798-0.83-4.21-1.196-0.296-0.076-0.596-0.142-0.894-0.216-1.208-0.3-2.422-0.586-3.642-0.84-0.384-0.082-0.774-0.148-1.16-0.224-1.168-0.228-2.338-0.444-3.514-0.626-0.384-0.060-0.776-0.112-1.162-0.168-1.208-0.174-2.416-0.332-3.63-0.46-0.35-0.038-0.7-0.066-1.048-0.1-1.27-0.12-2.54-0.218-3.814-0.29-0.32-0.018-0.642-0.032-0.964-0.044-1.294-0.058-2.594-0.094-3.892-0.1-0.166 0-0.328-0.012-0.492-0.012-0.19 0-0.376 0.014-0.564 0.014-1.21 0.008-2.42 0.040-3.63 0.092-0.494 0.022-0.986 0.046-1.478 0.074-0.992 0.060-1.986 0.136-2.978 0.226-0.722 0.064-1.442 0.134-2.16 0.214-0.696 0.080-1.392 0.17-2.090 0.266-1.014 0.136-2.026 0.286-3.032 0.452-0.352 0.060-0.704 0.124-1.054 0.19-44.97 8.028-79.122 47.302-79.122 94.582 0 20.756 6.602 39.958 17.79 55.67l-264.58 458.26c-2.954-0.274-5.94-0.434-8.962-0.434-53.078 0-96.11 43.032-96.11 96.11 0 53.082 43.032 96.11 96.11 96.11 38.8 0 72.208-23.004 87.386-56.11l529.202-0.004c0.138 0.304 0.292 0.606 0.436 0.91 0.226 0.48 0.456 0.958 0.69 1.434 0.474 0.968 0.966 1.93 1.476 2.882 0.214 0.402 0.432 0.8 0.65 1.2 0.314 0.566 0.604 1.14 0.93 1.708 0.284 0.488 0.59 0.958 0.88 1.442 0.122 0.2 0.244 0.398 0.37 0.602 27.086 44.372 84.766 59.278 130.040 33.136 18.864-10.89 32.624-27.214 40.478-45.852 0.054-0.132 0.104-0.266 0.158-0.398 0.518-1.248 1.020-2.506 1.486-3.776zM238.414 744.282l264.542-458.204c0.424 0.042 0.85 0.064 1.276 0.098 0.668 0.056 1.334 0.112 2.004 0.152 0.652 0.040 1.306 0.066 1.96 0.092 1.122 0.046 2.244 0.076 3.368 0.084 0.146 0.002 0.292 0.012 0.438 0.012 0.168 0 0.334-0.012 0.502-0.014 1.436-0.004 2.874-0.040 4.31-0.108 0.088-0.006 0.176-0.010 0.262-0.014 1.376-0.070 2.75-0.168 4.124-0.296l264.596 458.298c-3.48 4.894-6.514 10.122-9.042 15.636h-529.226c-2.546-5.55-5.602-10.814-9.114-15.736z', - cpu: 'M392.016 672.016h240.032c22.092 0 40-17.908 40-40v-240.032c0-22.092-17.908-40-40-40h-240.032c-22.092 0-40 17.908-40 40v240.032c0 22.092 17.908 40 40 40zM432.016 431.984h160.032v160.032h-160.032v-160.032zM864.032 424h71.98c22.094 0 40.004-17.906 40.004-40 0-22.092-17.906-40-40-40h-71.984v-143.968c0-22.092-17.908-40-40-40h-144v-72.012c0-22.094-17.906-40.004-40-40.004-22.090 0-40 17.906-40 40v72.016h-176v-72.012c0-22.094-17.906-40.004-40-40.004-22.090 0-40 17.906-40 40v72.016h-144c-22.092 0-40 17.908-40 40v143.968h-71.984c-22.094 0-40 17.908-40 40s17.91 40 40 40h71.984v176h-71.984c-22.094 0-40 17.908-40 40s17.91 40 40 40h71.984v144.030c0 22.092 17.908 40 40 40h144v71.954c0 22.094 17.906 40 40 40s40-17.91 40-40v-71.954h176v71.954c0 22.094 17.906 40 40 40s40-17.91 40-40v-71.954h144c22.092 0 40-17.908 40-40v-144.030h71.98c22.094 0 40.004-17.906 40.004-40 0-22.092-17.906-40-40-40h-71.984v-176zM784.032 784.032h-143.692c-0.104 0-0.204-0.016-0.308-0.016s-0.206 0.016-0.308 0.016h-127.382c-0.104 0-0.204-0.016-0.308-0.016s-0.206 0.016-0.308 0.016h-127.382c-0.104 0-0.204-0.016-0.308-0.016s-0.206 0.016-0.308 0.016h-143.696v-544h544v544z', - memory: - 'M320.032 416.032v-152.968c0-22.094 17.91-40 40-40 22.094 0 40 17.91 40 40.004v152.964c0 22.090-17.906 40-40 40s-40-17.908-40-40zM512 456.032c22.094 0 40-17.91 40-40v-152.964c0-22.094-17.906-40.004-40-40.004-22.090 0-40 17.906-40 40v152.968c0 22.092 17.908 40 40 40zM664.032 456.032c22.094 0 40-17.91 40-40v-82.996c0-22.094-17.906-40.004-40-40.004-22.090 0-40 17.906-40 40v83c0 22.092 17.906 40 40 40zM864.018 316.616v603.418c0 0.004 0 0.004 0 0.004 0 6.798-1.71 13.198-4.704 18.808-0.044 0.084-0.078 0.172-0.124 0.254-0.524 0.976-1.112 1.914-1.722 2.836-0.098 0.15-0.18 0.312-0.282 0.46-7.188 10.638-19.36 17.634-33.168 17.634h-623.99c-22.090 0-40-17.908-40-40v-343.574c-0.002-0.142-0.022-0.282-0.022-0.426 0-0.142 0.020-0.282 0.022-0.426v-471.574c0-20.34 15.192-37.092 34.838-39.63 1.694-0.216 3.408-0.37 5.162-0.37l411.254 0.052c10.594-0.286 21.282 3.58 29.368 11.668l211.672 212.206c7.906 7.908 11.792 18.298 11.696 28.66zM240.026 144.034v391.998h543.99v-203.27l-188.252-188.728h-355.738zM784.016 880.032v-264h-543.99v264h543.99z', - database: - 'M895.95 221.364c-3.414-87.32-173.972-157.672-383.918-157.672s-380.504 70.352-383.918 157.672h-0.082v578.328c0 88.552 171.918 160.338 384 160.338s384-71.786 384-160.338v-578.328h-0.082zM798.412 430.578c-15.6 11.386-37.69 22.346-63.882 31.696-60.984 21.77-140.002 33.758-222.498 33.758s-161.514-11.988-222.498-33.758c-26.192-9.348-48.282-20.308-63.88-31.696-8.706-6.352-13.646-11.608-16.122-14.874v-92.9c70.29 37.478 179.654 61.566 302.5 61.566s232.21-24.088 302.5-61.566v92.9c-2.476 3.266-7.416 8.522-16.12 14.874zM814.532 514.464v93.24c-2.474 3.266-7.416 8.522-16.12 14.874-15.6 11.386-37.69 22.346-63.882 31.696-60.984 21.77-140.002 33.758-222.498 33.758s-161.514-11.988-222.498-33.758c-26.192-9.348-48.282-20.308-63.88-31.696-8.706-6.352-13.646-11.608-16.122-14.874v-93.24c70.29 37.48 179.654 61.566 302.5 61.566s232.21-24.086 302.5-61.566zM225.652 209.146c15.6-11.386 37.69-22.346 63.88-31.696 60.984-21.77 140.002-33.758 222.498-33.758s161.514 11.988 222.498 33.758c26.192 9.348 48.282 20.308 63.882 31.696 8.704 6.352 13.646 11.608 16.12 14.874v0.026c-2.474 3.266-7.416 8.522-16.12 14.874-15.6 11.386-37.69 22.346-63.882 31.696-60.984 21.77-140.002 33.758-222.498 33.758s-161.514-11.988-222.498-33.758c-26.192-9.348-48.282-20.308-63.88-31.696-8.706-6.352-13.646-11.608-16.122-14.874v-0.026c2.476-3.268 7.418-8.524 16.122-14.874zM798.412 814.578c-15.6 11.386-37.69 22.346-63.882 31.696-60.984 21.77-140.002 33.758-222.498 33.758s-161.514-11.988-222.498-33.758c-26.192-9.348-48.282-20.308-63.88-31.696-8.714-6.36-13.66-11.62-16.13-14.886h0.010v-93.228c70.29 37.48 179.654 61.566 302.5 61.566s232.21-24.086 302.5-61.566v93.228h0.010c-2.474 3.266-7.42 8.526-16.132 14.886z', - power: - 'M320 118.3a45.7 45.7 0 0122.5 85.6 384.6 384.6 0 00-120.8 93.4A380.9 380.9 0 00128 548.6c0 102.5 39.9 199 112.4 271.5A381.5 381.5 0 00512 932.5c102.5 0 199-39.9 271.5-112.4a381.5 381.5 0 00112.4-271.5c0-98.1-36.5-190.6-103.1-262l-2-2-9.4-9.5a384.2 384.2 0 00-100-71.2 45.6 45.6 0 0139.6-82.2l.6.3h.2l.1.1h.1l2 1 4 2 1.9 1 3.5 1.9a480.6 480.6 0 0144.9 27l2 1.3v-.3.1a475.4 475.4 0 11-545.3 6.2l3.6-2.6v.1a471.4 471.4 0 0151.7-31.7l3.7-2 1.4-.7.3-.2 6.4-3.1.1-.1h.1l.7-.3c5.2-2.1 11-3.4 17-3.4zM511.8 0c25 0 45.3 20 45.7 45v421.3a45.7 45.7 0 01-91.4.7V45.7A45.7 45.7 0 01511.9 0z', - outbox: - 'M960.062 616v304c0 1.382-0.070 2.746-0.208 4.090-2.046 20.172-19.080 35.91-39.792 35.91h-816c-22.090 0-40-17.906-40-40v-304c0-22.090 17.91-40 40-40s40 17.91 40 40v264h736v-264c0-22.090 17.91-40 40-40s40 17.912 40 40zM664.732 200.168l-124.41-124.41c-0.014-0.014-0.024-0.028-0.038-0.042-3.57-3.57-7.664-6.284-12.018-8.222-5.316-2.368-11.028-3.54-16.742-3.47-0.14-0.002-0.276-0.020-0.414-0.020-13.552 0-25.512 6.756-32.748 17.072l-119.1 119.092c-15.622 15.62-15.618 40.948 0.002 56.57 15.622 15.62 40.95 15.62 56.568 0l55.276-55.276v462.54c0 22.094 17.912 40 40.002 40 22.092 0 40-17.91 40-40v-464.314l57.052 57.052c15.622 15.624 40.948 15.62 56.568 0 15.628-15.624 15.628-40.952 0.002-56.572z', - share: - 'M896.006 920c0 22.090-17.91 40-40 40h-688.006c-22.090 0-40-17.906-40-40v-549.922c-0.838-3.224-1.33-6.588-1.33-10.072 0-22.090 17.908-40.004 40-40.004h178.66c22.092 0.004 40 17.914 40 40.004 0 22.088-17.908 40-40 40h-137.33v479.996h607.998v-479.996h-138.658c-22.090 0-40-17.912-40-40 0-22.090 17.906-40.004 40-40.004h178.658c22.090 0 40 17.91 40 40v559.844c0 0.050 0.008 0.102 0.008 0.154zM665.622 200.168l-124.452-124.45c-8.042-8.042-18.65-11.912-29.186-11.674-1.612-0.034-3.222 0-4.828 0.16-0.558 0.054-1.098 0.16-1.648 0.238-0.742 0.104-1.484 0.192-2.218 0.338-0.656 0.13-1.29 0.31-1.934 0.472-0.622 0.154-1.244 0.292-1.86 0.476-0.64 0.196-1.258 0.436-1.886 0.66-0.602 0.216-1.208 0.414-1.802 0.66-0.598 0.248-1.17 0.54-1.754 0.814-0.598 0.282-1.202 0.546-1.788 0.86-0.578 0.312-1.13 0.664-1.694 1-0.552 0.332-1.116 0.644-1.654 1.006-0.67 0.448-1.3 0.942-1.942 1.426-0.394 0.302-0.806 0.576-1.196 0.894-1.046 0.858-2.052 1.768-3.008 2.726l-124.398 124.39c-15.622 15.62-15.618 40.948 0.002 56.57 15.622 15.62 40.95 15.62 56.568 0l56.164-56.166v439.426c0 22.094 17.912 40 40.002 40 22.092 0 40-17.91 40-40v-441.202l57.942 57.942c15.622 15.624 40.948 15.62 56.568 0 15.626-15.618 15.626-40.946 0.002-56.566z', - button: - 'M644.634 802.32c-4.558 5.434-10.254 9.328-16.446 11.672l0.008 0.024-45.628 16.606 27.54 75.66c7.554 20.756-3.148 43.71-23.906 51.266s-43.714-3.146-51.27-23.906l-27.54-75.656-47.63 17.29c-6.020 1.956-12.586 2.518-19.254 1.342-21.75-3.836-36.282-24.582-32.45-46.34l30.57-173.328c2.55-14.476 12.61-25.714 25.458-30.508 0.292-0.118 0.586-0.23 0.878-0.34 0.238-0.084 0.476-0.168 0.718-0.246 12.942-4.624 27.91-2.492 39.196 6.98l134.824 113.13c16.932 14.2 19.144 39.432 4.932 56.354zM960.002 664v-368.082c0-22.092-17.908-40-40-40h-816c-22.092 0-40 17.908-40 40l-0.292 368.238c0 22.092 17.908 40 40 40h240.292c22.092 0 40-17.908 40-40s-17.908-40-40-40h-200.292l0.292-288.238h736v288.082h-200c-22.092 0-40 17.908-40 40s17.908 40 40 40h240c22.092 0 40-17.908 40-40z', - form: 'M948.362 178.828l-471.082 470.086c-0.24 0.25-0.45 0.52-0.698 0.77-7.82 7.82-18.070 11.722-28.32 11.712-10.25 0.010-20.504-3.892-28.324-11.712-0.262-0.262-0.48-0.546-0.734-0.812l-221.736-221.738c-15.624-15.622-15.624-40.95 0-56.566 15.618-15.622 40.946-15.624 56.57 0l194.224 194.222 443.53-442.528c15.622-15.618 40.95-15.618 56.57 0 15.62 15.62 15.62 40.946 0 56.566zM98.372 128.448c-18.926 0-34.266 15.342-34.266 34.268v699.032c0 18.926 15.34 34.266 34.266 34.266h699.032c18.926 0 34.266-15.34 34.266-34.266v-430.588c0 0 0.002-1.184 0.002-1.788 0-22.090-17.914-40-40.004-40s-40 17.91-40 40c0 0.288 0.002 386.64 0.002 386.64h-607.562v-607.564h600.002c22.090-0.002 40.002-17.906 40.002-40 0-22.090-17.914-40-40.004-40z', - check: - 'M948.598 199.75c-15.622-15.618-40.95-15.618-56.57 0l-535.644 535.644-224.060-224.062c-15.624-15.624-40.954-15.62-56.57 0-15.624 15.62-15.624 40.948 0 56.568l251.574 251.574c0.252 0.266 0.472 0.55 0.734 0.812 7.82 7.82 18.072 11.724 28.322 11.714 10.25 0.010 20.502-3.894 28.322-11.714 0.248-0.248 0.456-0.518 0.698-0.77l563.196-563.202c15.618-15.618 15.618-40.94-0.002-56.564z', - batchaccept: - 'M684 277L271 772l-1 1a40 40 0 0 1-56 5l-1-1L14 610a40 40 0 1 1 52-61l169 142 387-465a40 40 0 0 1 62 51zm340 234c0-22-18-40-40-40H808a40 40 0 0 0 0 80h176c22 0 40-18 40-40zm0-216c0-22-18-40-40-40H808a40 40 0 0 0 0 80h176c22 0 40-18 40-40zm0 432c0-22-18-40-40-40H808a40 40 0 0 0 0 80h176c22 0 40-18 40-40z', - batchdeny: - 'M1024 512c0-22-18-40-40-40H808a40 40 0 0 0 0 80h176c22 0 40-18 40-40zm0-216c0-22-18-40-40-40H808a40 40 0 0 0 0 80h176c22 0 40-18 40-40zm0 432c0-22-18-40-40-40H808a40 40 0 0 0 0 80h176c22 0 40-18 40-40zM625 236c16 15 16 41 0 56L406 512l220 220a40 40 0 1 1-57 57L349 568 129 788a40 40 0 1 1-57-56l220-220L73 292a40 40 0 0 1 56-57l220 220 219-219c16-16 41-16 57 0z', - home: 'M948.12 483.624l-407.814-407.754c-7.812-7.808-18.046-11.712-28.282-11.712-10.238 0-20.472 3.904-28.282 11.712l-407.92 407.86c-15.624 15.622-15.624 40.948-0.006 56.57s40.944 15.622 56.568 0.004l19.616-19.612v366.708c0 22.090 17.91 40 40 40h190.696c0.416 0.014 0.82 0.062 1.238 0.062 11.054 0 21.060-4.484 28.3-11.734 7.266-7.244 11.766-17.262 11.766-28.332 0-0.418-0.050-0.822-0.062-1.238v-263.204h176.060v263.934c0 22.090 17.91 40 40 40l191.876 0.124c2.292 0 4.524-0.236 6.708-0.608 0.45-0.074 0.91-0.116 1.356-0.206 0.21-0.044 0.414-0.116 0.628-0.162 17.906-3.972 31.308-19.924 31.308-39.026v-366.492l19.682 19.68c15.622 15.62 40.948 15.616 56.568-0.006s15.618-40.948-0.004-56.568zM791.876 448.272v398.71l-111.874-0.074v-263.876c0-0.020-0.002-0.042-0.002-0.062 0-0.006 0-0.014 0-0.022 0-22.090-17.91-40-40-40h-254.002c-0.556 0-1.1 0.060-1.65 0.084-0.14-0.002-0.274-0.022-0.414-0.022-22.090 0-40 17.91-40 40v264.382h-111.934v-399.392c0-2.286-0.234-4.512-0.604-6.694l280.626-280.584 280.514 280.472c-0.412 2.302-0.66 4.658-0.66 7.078z', - admin: - 'M919.596 847.534h-88.414v-467.716l88.75-0.044c13.688-0.132 26.958-7.25 34.294-19.96 11.044-19.13 4.49-43.596-14.642-54.64l-407.904-235.676c-0.44-0.254-0.894-0.45-1.34-0.684-0.542-0.29-1.084-0.578-1.638-0.84-0.696-0.328-1.4-0.62-2.108-0.904-0.478-0.194-0.954-0.388-1.44-0.56-0.78-0.282-1.564-0.524-2.352-0.754-0.442-0.126-0.878-0.256-1.324-0.37-0.808-0.206-1.618-0.376-2.43-0.528-0.468-0.088-0.934-0.174-1.404-0.246-0.768-0.116-1.534-0.204-2.302-0.274-0.554-0.052-1.108-0.096-1.664-0.124-0.672-0.034-1.34-0.044-2.012-0.044-0.67 0-1.338 0.012-2.010 0.044-0.556 0.030-1.11 0.072-1.664 0.124-0.77 0.070-1.536 0.158-2.302 0.274-0.468 0.072-0.938 0.158-1.402 0.246-0.814 0.152-1.624 0.322-2.432 0.528-0.444 0.114-0.882 0.242-1.322 0.37-0.79 0.23-1.574 0.472-2.356 0.754-0.484 0.172-0.958 0.368-1.438 0.56-0.708 0.286-1.41 0.576-2.11 0.904-0.554 0.262-1.094 0.55-1.636 0.84-0.446 0.234-0.9 0.43-1.34 0.684l-407.906 235.672c-19.128 11.044-25.686 35.51-14.64 54.64 7.34 12.71 20.606 19.828 34.292 19.96v0.044h89.842v467.716h-89.474c-22.090 0-40 17.91-40 40s17.91 40 40 40h128.276c0.402 0.012 0.794 0.060 1.2 0.060s0.796-0.048 1.2-0.060h183.602c0.402 0.012 0.794 0.060 1.2 0.060s0.796-0.048 1.2-0.060h183.602c0.402 0.012 0.794 0.060 1.2 0.060s0.796-0.048 1.2-0.060h313.154c22.098 0 40-17.91 40-40-0.006-22.090-17.914-39.996-40.006-39.996zM751.182 847.534h-105.94v-467.716h105.94v467.716zM252.93 299.816l258.736-149.486 258.738 149.486h-517.474zM565.242 379.816v467.716h-106v-467.716h106zM273.242 379.816h106v467.716h-106v-467.716z', - paragraph: - 'M728.032 96.032h-116.98c-0.026 0-0.050-0.004-0.076-0.004s-0.050 0.004-0.076 0.004h-199.848c-0.026 0-0.050-0.004-0.076-0.004s-0.050 0.004-0.076 0.004h-31.924c-123.712 0-224 100.292-224 224 0 121.032 95.994 219.628 216 223.842v344.158c0 22.092 17.91 40 40 40 22.086 0 40-17.908 40-40v-712h120v712c0 22.092 17.91 40 40 40 22.086 0 40-17.908 40-40v-712h77.056c22.094 0 40-17.91 40-40 0-22.092-17.91-40-40-40z', - - basket: - 'M632.254 695.604v-112.016c-0.004-22.092 17.906-40.002 40-40.002 22.090 0.002 40 17.908 40 40.002l-0.004 112.018c0.004 22.088-17.906 39.996-39.996 39.998-22.094 0.002-40.004-17.904-40-40zM352.246 735.604c22.090-0.002 40-17.91 39.996-39.998l0.004-112.018c0-22.094-17.91-40-40-40.002-22.094 0-40.004 17.91-40 40.002v112.016c-0.004 22.096 17.906 40.002 40 40zM512.25 735.604c22.090-0.002 40-17.91 39.996-39.998l0.004-112.018c0-22.094-17.91-40-40-40.002-22.094 0-40.004 17.91-40 40.002v112.016c-0.004 22.096 17.906 40.002 40 40zM950.3 397.424c-7.596-8.686-18.574-13.67-30.114-13.67h-313.284c0.87 5.196 1.346 10.524 1.346 15.966 0 24.608-9.27 47.044-24.494 64.034h290.684l-47.318 351.376-629.908-0.030-47.502-351.346h291.034c-15.224-16.988-24.494-39.426-24.494-64.034 0-5.444 0.476-10.772 1.346-15.966h-313.66c-11.542 0-22.524 4.986-30.12 13.678-7.596 8.694-11.066 20.242-9.52 31.682l51.614 381.742 0.050 0.042c5.832 47.424 46.222 84.158 95.222 84.172l0.054 0.034 601.816-0.034c0.042 0 0.082 0.002 0.124 0.002 49.414 0 90.090-37.34 95.396-85.336l51.258-380.64c1.54-11.44-1.934-22.984-9.53-31.672zM805.492 105.34c-15.622-15.622-40.95-15.624-56.572 0.004l-230.684 230.684c-2.052-0.2-4.132-0.306-6.236-0.306-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64c0-2.652-0.18-5.262-0.494-7.83l229.986-229.98c15.622-15.624 15.616-40.95-0-56.572z', - credit: - 'M376.188 672.062h-112.124c-22.092 0-40-17.908-40-40s17.908-40 40-40h112.124c22.092 0 40 17.908 40 40s-17.908 40-40 40zM960 232.002v560c0 6.8-1.708 13.2-4.704 18.81-0.044 0.082-0.078 0.172-0.124 0.254-0.524 0.974-1.112 1.914-1.722 2.836-0.098 0.15-0.18 0.31-0.282 0.458-7.188 10.64-19.36 17.638-33.168 17.638h-816c-22.090 0-40-17.908-40-40v-559.998c0-20.34 15.192-37.092 34.838-39.628 1.694-0.218 3.408-0.372 5.162-0.372h816c1.754 0 3.468 0.152 5.162 0.372 19.646 2.536 34.838 19.288 34.838 39.63zM144 272.002v80.030h736v-80.030h-736zM880 751.998v-239.966h-736v239.966h736z', - shield: - 'M875.146 148.994c-0.064-0.040-0.116-0.094-0.184-0.132-92.714-52.39-221.036-84.83-362.846-84.83-138.512 0-270.346 34.356-362.51 84.618-0.606 0.33-1.138 0.658-1.608 0.986-11.954 6.918-20.016 19.81-20.016 34.614v451.4c0 12.7 5.938 23.996 15.166 31.32l340.538 281.676c6.568 6.434 14.918 10.168 23.564 11.122 0.16 0.024 0.32 0.050 0.48 0.066 0.838 0.082 1.676 0.114 2.518 0.14 0.496 0.020 0.994 0.058 1.492 0.058s0.996-0.040 1.492-0.058c0.842-0.032 1.68-0.058 2.518-0.14 0.16-0.016 0.32-0.042 0.48-0.066 8.646-0.958 16.996-4.688 23.564-11.122l339.36-280.718c10.326-7.23 17.094-19.2 17.094-32.762v-450.918c0.002-15.254-8.54-28.506-21.102-35.254zM207.984 208.212c36.292-18.168 77.668-32.854 123.356-43.722 57.062-13.576 117.884-20.458 180.778-20.458s123.714 6.882 180.778 20.458c30.186 7.182 58.474 16.040 84.674 26.456l-490.846 490.848-78.738-65.070v-408.512zM511.742 867.75l-163.078-134.77 467.586-467.584v350.69l-304.508 251.664z', - beaker: - 'M848.64 790.56l-208.638-361.374v-252.062h24c22.092 0 40-17.908 40-40s-17.908-40-40-40h-304.002c-22.092 0-40 17.908-40 40s17.908 40 40 40h24v252.066l-208.636 361.37c-44 76.208-8 138.564 80 138.564h513.278c87.998 0 123.998-62.354 79.998-138.564zM464 177.124h96.002l-0.070 273.376 63.872 110.628h-223.678c35.932-62.268 63.872-110.684 63.876-110.692v-273.312zM768.64 849.124h-513.278c-8.28 0-14.186-0.976-17.968-2 1.004-3.792 3.112-9.394 7.25-16.564 0 0 54.598-94.614 109.316-189.436l316.026-0.002 109.374 189.44c4.138 7.168 6.246 12.77 7.25 16.562-3.784 1.024-9.69 2-17.97 2z', - thumbsup: - 'M256.972 768.004c0-8.67-3.156-16.158-9.484-22.534-6.332-6.34-13.836-9.484-22.504-9.458-8.682 0-16.188 3.172-22.516 9.458-6.33 6.344-9.488 13.84-9.488 22.534 0 8.692 3.158 16.186 9.488 22.532 6.328 6.286 13.834 9.458 22.516 9.458 8.668 0.028 16.172-3.118 22.504-9.458 6.328-6.376 9.484-13.868 9.484-22.532zM832.948 480.010c0-17.004-6.478-31.908-19.468-44.734-13.014-12.82-27.834-19.25-44.512-19.276h-175.97c0-19.328 7.98-45.904 24.004-79.724 15.968-33.826 23.978-60.568 23.978-80.256 0-32.646-5.332-56.808-15.994-72.48-10.664-15.664-31.988-23.484-63.98-23.484-8.696 8.64-15.012 22.828-19.032 42.486-4.020 19.69-9.102 40.606-15.254 62.752-6.168 22.172-16.080 40.382-29.762 54.738-7.344 7.68-20.168 22.832-38.5 45.496-1.326 1.67-5.164 6.65-11.512 15.010-6.342 8.342-11.594 15.178-15.762 20.508-4.156 5.308-9.91 12.386-17.252 21.218-7.328 8.862-14 16.186-19.988 22.038-5.986 5.794-12.412 11.73-19.26 17.744-6.852 5.984-13.508 10.5-19.99 13.48-6.478 3.010-12.4 4.484-17.756 4.512h-15.982v320.010h15.982c4.332 0 9.596 0.492 15.774 1.504 6.168 1.012 11.676 2.080 16.488 3.258 4.812 1.144 11.154 2.98 19.002 5.466 7.862 2.512 13.702 4.424 17.502 5.74 3.812 1.31 9.732 3.422 17.756 6.238 8.026 2.842 12.866 4.586 14.506 5.272 70.324 24.334 127.304 36.504 170.996 36.504h60.482c64.006 0 96.024-27.836 96.024-83.478 0-8.664-0.848-18.016-2.514-27.996 10.004-5.334 17.936-14.084 23.758-26.276 5.824-12.172 8.724-24.416 8.778-36.746 0-12.366-3.008-23.844-9.024-34.51 17.664-16.682 26.524-36.496 26.524-59.496 0-8.308-1.696-17.554-5.032-27.72-3.336-10.202-7.492-18.104-12.468-23.762 10.636-0.328 19.55-8.15 26.714-23.486 7.192-15.34 10.744-28.82 10.744-40.496v-0.054zM896.984 479.516c0 29.638-8.204 56.816-24.5 81.506 2.98 10.994 4.484 22.476 4.484 34.482 0 25.674-6.344 49.68-19.004 71.99 1.012 7 1.506 14.164 1.506 21.488 0 33.688-10.008 63.354-29.968 89.026 0.326 46.32-13.834 82.904-42.518 109.756-28.682 26.848-66.522 40.246-113.496 40.246h-64.528c-31.99 0-63.542-3.746-94.742-11.268-31.168-7.492-67.246-18.402-108.23-32.758-38.662-13.312-61.656-19.956-68.984-19.956h-143.996c-17.664 0-32.742-6.292-45.252-18.784-12.508-12.5-18.756-27.588-18.756-45.254v-319.982c0-17.666 6.248-32.728 18.756-45.226 12.51-12.52 27.588-18.784 45.252-18.784h136.998c12.002-8.010 34.818-33.822 68.478-77.484 19.33-24.99 37.168-46.344 53.508-64.008 7.996-8.314 13.918-22.586 17.744-42.766 3.828-20.178 8.912-41.232 15.256-63.24 6.36-21.984 16.68-40.002 30.994-53.998 13.002-12.362 28.012-18.514 45.018-18.514 27.998 0 53.152 5.414 75.464 16.242 22.31 10.828 39.316 27.748 50.964 50.77 11.704 23.002 17.5 53.978 17.5 92.962 0 31.008-7.984 63-23.98 96.028h88.014c34.67 0 64.634 12.628 89.956 37.98 25.346 25.346 38.008 55.144 38.008 89.49l0.054 0.056z', - mirror: - 'M857 127.778h-688c-22.092 0-40 17.91-40 40v688c0 22.090 17.908 40 40 40h688c22.094 0 40-17.91 40-40v-688c0-22.092-17.906-40-40-40zM817 815.778h-608v-1.086l606.914-606.914h1.086v608z', - switchalt: - 'M923.946 63.418h-631.232c-20.268 0-36.7 16.432-36.7 36.7v155.286h-155.284c-20.268 0-36.7 16.432-36.7 36.7v631.23c0 20.268 16.43 36.7 36.7 36.7h631.23c20.272 0 36.7-16.432 36.7-36.7v-155.286h155.286c20.272 0 36.7-16.432 36.7-36.7v-631.23c-0.002-20.268-16.43-36.7-36.7-36.7zM688.66 880.032h-544.628v-544.628h111.984v395.946c0 20.268 16.43 36.7 36.7 36.7h395.944v111.982zM688.66 688.046h-352.644v-352.644h352.644v352.644zM880.644 688.046h-111.984v-395.946c0-20.268-16.428-36.7-36.7-36.7h-395.944v-111.984h544.628v544.63z', - commit: - 'M984.032 472h-186.808c-19.474-140.12-139.74-248-285.222-248s-265.748 107.88-285.222 248h-186.746c-22.092 0-40 17.912-40 40.002 0 22.092 17.91 40 40 40h186.746c19.476 140.122 139.74 247.998 285.222 247.998s265.746-107.876 285.222-247.998h186.808c22.092 0 40-17.91 40-40s-17.908-40.002-40-40.002zM512 720c-114.692 0-208-93.308-208-208s93.308-208 208-208 208 93.308 208 208-93.308 208-208 208z', - branch: - 'M861.968 312.032c0-66.168-53.832-120-120-120s-120 53.832-120 120c0 50.55 31.436 93.87 75.77 111.516-5.384 20.352-15.71 39.68-29.844 54.92-28.828 31.092-72.202 46.858-128.91 46.858-77.162 0-129.12 26.162-162.984 55.12V297.15c46.556-16.512 80-60.974 80-113.12 0-66.168-53.832-120-120-120s-120 53.832-120 120c0 52.146 33.444 96.608 80 113.12v429.762c-46.556 16.512-80 60.974-80 113.12 0 66.168 53.832 120 120 120s120-53.832 120-120c0-50.926-31.902-94.514-76.758-111.908 5.222-26.17 16.578-51.154 32.558-70.432 28.8-34.746 71.592-52.364 127.184-52.364 99.498 0 156.922-39.408 187.574-72.466 27.402-29.554 45.708-67.194 52.48-106.716 48.078-15.66 82.93-60.882 82.93-114.114zM336 144.032c22.056 0 40 17.944 40 40s-17.944 40-40 40-40-17.944-40-40 17.944-40 40-40zm0 736c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40zm405.968-528c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.942 40-40 40z', - merge: - 'M776.306 456.032c-51.602 0-95.696 32.744-112.612 78.542-69.674-6.072-141.482-31.012-197.386-69.306-46.266-31.69-100.392-85.728-111.792-168.92 45.4-17.12 77.79-60.998 77.79-112.314 0-66.168-53.832-120-120-120s-120 53.832-120 120c0 52.146 33.444 96.608 80 113.12v429.762c-46.556 16.512-80 60.974-80 113.12 0 66.168 53.832 120 120 120s120-53.832 120-120c0-52.146-33.444-96.608-80-113.12V471.444c19.622 21.888 42.618 41.898 68.792 59.828 68.422 46.868 156.64 77.042 241.646 83.462 16.14 47.23 60.932 81.3 113.56 81.3 66.168 0 120-53.832 120-120s-53.83-120.002-119.998-120.002zm-464-312c22.056 0 40 17.944 40 40s-17.944 40-40 40-40-17.944-40-40 17.942-40 40-40zm0 736c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40zm464-264c-22.056 0-40-17.944-40-40s17.944-40 40-40 40 17.944 40 40-17.944 40-40 40z', - pullrequest: - 'M631 157c104 1 171 52 171 166v397a123 123 0 1 1-82 0V323c0-63-27-83-90-84h-24l22 23a41 41 0 1 1-58 58l-93-93a41 41 0 0 1 1-58l93-93a41 41 0 1 1 58 58l-23 23h25zM222 314a123 123 0 1 1 82 0v406a123 123 0 1 1-82 0V314zm41 564a41 41 0 1 0 0-82 41 41 0 0 0 0 82zm0-639a41 41 0 1 0 0-83 41 41 0 0 0 0 83zm498 639a41 41 0 1 0 0-82 41 41 0 0 0 0 82z', - chromatic: - 'M512 0a512 512 0 110 1024A512 512 0 01512 0zM368 452v284a144 144 0 00274 59c-10-4-20-8-29-14l-111-64c-6-3-10-10-10-16V523l-124-71zm454 89c-8 7-17 13-26 18L551 701l81 46 1 1a144 144 0 00189-207zm-493-89l-81 47h-1a143 143 0 00-52 196 144 144 0 00137 71c-2-10-3-21-3-32V452zm375-195l-12 1c2 10 3 21 3 32v128c0 7-4 13-10 17l-154 88v144l245-142 2-1a144 144 0 00-74-267zm-384 0c-51 0-99 28-125 72-28 49-25 109 7 154 8-7 17-13 26-18l111-64a20 20 0 0120 0l153 88 124-71-244-141-1-1c-22-12-46-19-71-19zm192-111c-57 0-107 33-130 83 10 4 19 8 29 14l245 141v-96c-2-79-66-142-144-142z', - twitter: - 'M960 233.114c-32.946 14.616-68.41 24.5-105.598 28.942 37.954-22.762 67.098-58.774 80.856-101.688-35.52 21.054-74.894 36.368-116.726 44.598-33.542-35.724-81.316-58.038-134.204-58.038-101.496 0-183.796 82.292-183.796 183.814 0 14.424 1.628 28.45 4.758 41.89-152.75-7.668-288.22-80.872-378.876-192.072-15.822 27.15-24.898 58.706-24.898 92.42 0 63.776 32.458 120.034 81.782 153.010-30.116-0.944-58.458-9.212-83.262-22.982-0.028 0.75-0.028 1.546-0.028 2.324 0 89.070 63.356 163.334 147.438 180.256-15.426 4.186-31.664 6.426-48.442 6.426-11.836 0-23.35-1.146-34.574-3.28 23.406 73.006 91.286 126.16 171.726 127.632-62.914 49.324-142.18 78.696-228.314 78.696-14.828 0-29.448-0.876-43.842-2.568 81.33 52.138 177.96 82.574 281.786 82.574 338.11 0 523-280.104 523-523.014 0-7.986-0.164-15.914-0.542-23.778 35.952-25.96 67.124-58.318 91.756-95.162z', - google: - 'M799.094 79.996c0 0-200.938 0-267.936 0-120.126 0-233.188 91.004-233.188 196.434 0 107.692 81.904 194.624 204.124 194.624 8.496 0 16.75-0.148 24.812-0.74-7.942 15.186-13.594 32.286-13.594 50.022 0 29.974 16.094 54.226 36.466 74.042-15.376 0-30.248 0.438-46.438 0.438-148.782 0.036-263.312 94.784-263.312 193.056 0 96.758 125.534 157.312 274.312 157.312 169.656 0 263.312-96.25 263.312-193.024 0-77.6-22.908-124.062-93.686-174.156-24.216-17.128-70.534-58.812-70.534-83.32 0-28.69 8.19-42.868 51.406-76.624 44.346-34.63 75.688-83.302 75.688-139.944 0-67.372-30-133.058-86.374-154.746h85l59.942-43.374zM701.504 735.438c2.092 8.992 3.276 18.226 3.276 27.624 0 78.226-50.374 139.304-194.934 139.304-102.874 0-177.124-65.078-177.124-143.304 0-76.622 92.122-140.434 194.934-139.32 24.004 0.254 46.376 4.136 66.69 10.702 55.812 38.834 95.874 60.808 107.158 104.994zM536.844 443.782c-69-2.094-134.624-77.212-146.564-167.876-11.874-90.664 34.378-160.030 103.442-157.97 68.996 2.060 134.594 74.818 146.53 165.432 11.906 90.696-34.408 162.508-103.408 160.414z', - gdrive: - 'M465.926 641.356l-149.328 258.708h494.074l149.328-258.708h-494.074zM917.704 567.988l-256.33-444.048h-298.686l256.356 444.048h298.66zM320.236 197.442l-256.236 443.914 149.36 258.708 256.23-443.914-149.354-258.708z', - youtube: - 'M704.010 511.988c0-12.332-5.038-21.358-15.042-26.992l-255.982-159.99c-10.344-6.666-21.178-6.998-32.51-1.008-10.988 5.984-16.492 15.312-16.492 28.002v320c0 12.69 5.504 22.018 16.492 28.002 5.332 2.678 10.516 3.996 15.506 3.996 6.668 0 12.334-1.644 17.004-4.98l255.982-160.014c10.004-5.69 15.042-14.684 15.042-26.992v-0.024zM960 511.988c0 31.99-0.164 56.98-0.488 75.032-0.334 17.99-1.754 40.738-4.27 68.25-2.516 27.504-6.262 52.058-11.27 73.742-5.332 24.338-16.84 44.85-34.504 61.496-17.64 16.63-38.306 26.308-61.96 28.988-73.992 8.342-185.824 12.526-335.508 12.526-149.668 0-261.5-4.184-335.5-12.526-23.662-2.656-44.414-12.302-62.242-28.988-17.834-16.678-29.412-37.182-34.744-61.496-4.672-21.684-8.258-46.238-10.756-73.742-2.508-27.512-3.928-50.26-4.254-68.25-0.342-18.050-0.504-43.042-0.504-75.032 0-31.998 0.162-57.010 0.504-75.008 0.326-18.022 1.746-40.768 4.254-68.28 2.498-27.474 6.262-52.082 11.252-73.744 5.34-24.336 16.842-44.842 34.504-61.496 17.648-16.654 38.324-26.332 61.986-29.010 74-8.312 185.832-12.472 335.5-12.472 149.684 0 261.516 4.16 335.508 12.472 23.654 2.678 44.406 12.356 62.232 29.010 17.826 16.678 29.422 37.16 34.73 61.496 4.702 21.662 8.256 46.27 10.772 73.744 2.516 27.512 3.936 50.258 4.27 68.28 0.324 17.998 0.488 43.010 0.488 75.008z', - facebook: - 'M582.52 960h-167.88v-448h-112v-154.396l112-0.052-0.166-90.948c-0.036-125.974 34.12-202.604 182.484-202.604h123.542v154.424h-77.19c-57.782 0-60.566 21.56-60.566 61.85l-0.218 77.278h138.854l-16.376 154.394-122.36 0.052-0.124 448.002z', - medium: - 'M0 0v1024h1024v-1024h-1024zM850.708 242.614l-54.918 52.655c-3.858 2.965-6.321 7.581-6.321 12.772 0 0.933 0.080 1.847 0.232 2.736l-0.014-0.095v386.883c-0.139 0.794-0.219 1.708-0.219 2.641 0 5.191 2.462 9.807 6.283 12.744l0.038 0.028 53.637 52.655v11.558h-269.774v-11.558l55.559-53.936c5.461-5.456 5.461-7.068 5.461-15.413v-312.719l-154.477 392.344h-20.874l-179.851-392.344v262.947c-0.209 1.465-0.329 3.156-0.329 4.875 0 9.848 3.924 18.78 10.293 25.317l-0.008-0.008 72.258 87.649v11.558h-204.895v-11.558l72.263-87.649c6.070-6.284 9.81-14.852 9.81-24.293 0-2.081-0.182-4.12-0.53-6.101l0.031 0.21v-304.044c0.086-0.804 0.135-1.737 0.135-2.682 0-7.844-3.389-14.896-8.782-19.773l-0.023-0.021-64.234-77.378v-11.558h199.438l154.157 338.083 135.53-338.083h190.123v11.558z', - graphql: - 'M576 849a85 85 0 0 0-125-2L253 733l1-3h517l2 5-197 114zM451 177l2 2-258 448-3-1V398a85 85 0 0 0 61-107l198-114zm321 114a85 85 0 0 0 61 107v228l-3 1-258-448 2-2 198 114zM254 689a85 85 0 0 0-24-42l259-447a86 86 0 0 0 47 0l259 448a85 85 0 0 0-24 41H254zm643-54c-7-4-15-7-23-9V398a86 86 0 1 0-82-142L595 142a85 85 0 1 0-165 0L233 256a85 85 0 1 0-82 142v228a85 85 0 1 0 82 142l197 114a85 85 0 1 0 164-2l196-114a86 86 0 1 0 107-131z', - redux: - 'M359.016 943.608c-23.82 5.948-47.642 8.322-71.512 8.322-88.208 0-168.084-36.982-207.444-96.534-52.432-79.882-70.296-249.182 102.538-374.356 3.586 19.078 10.746 45.292 15.492 60.834-22.656 16.652-58.39 50.064-81.046 95.324-32.19 63.184-28.61 126.404 9.54 184.798 26.194 39.304 67.926 63.176 121.564 70.34 65.598 8.332 131.154-3.582 194.332-36.94 92.998-48.898 155.014-107.282 195.49-187.162-10.702-10.75-17.818-26.248-19.074-44.15-1.168-36.942 27.45-67.922 64.388-69.132h2.418c35.73 0 65.55 28.61 66.714 64.384 1.206 35.73-24.986 65.546-59.548 69.132-65.6 134.686-181.254 225.312-333.852 255.14zM902.646 540.622c-90.59-106.072-224.11-164.488-376.708-164.488h-19.072c-10.744-21.444-33.402-35.752-58.388-35.752h-2.418c-36.944 1.186-65.548 32.192-64.392 69.13 1.216 35.774 30.99 64.394 66.81 64.394h2.328c26.242-1.208 48.894-17.892 58.434-40.542h21.45c90.624 0 176.46 26.234 253.968 77.482 59.55 39.36 102.49 90.576 126.356 152.596 20.24 50.052 19.074 98.952-2.42 140.64-33.356 63.228-89.37 97.794-163.292 97.794-47.69 0-92.998-14.33-116.822-25.082-13.118 11.958-36.984 31.028-53.64 42.944 51.226 23.87 103.7 36.94 153.762 36.94 114.446 0 199.070-63.132 231.268-126.362 34.562-69.13 32.188-188.326-57.224-289.694zM297.046 708.706c1.21 35.828 30.984 64.394 66.764 64.394h2.368c36.992-1.168 65.556-32.15 64.39-69.132-1.162-35.732-30.984-64.394-66.758-64.394h-2.376c-2.418 0-5.958 0-8.332 1.208-48.89-81.090-69.132-169.27-62.014-264.648 4.792-71.528 28.616-133.516 70.346-184.766 34.568-44.106 101.326-65.57 146.598-66.758 126.402-2.396 180.044 154.968 183.576 218.144 15.542 3.584 41.734 11.936 59.644 17.892-14.328-193.118-133.526-293.266-247.97-293.266-107.28 0-206.236 77.484-245.552 191.932-54.848 152.596-19.070 299.212 47.644 414.826-5.912 8.374-9.494 21.498-8.328 34.568z', - github: - 'M214.6 809.4A417.8 417.8 0 0191.4 512c0-112.3 43.8-218 123.2-297.4A417.8 417.8 0 01512 91.4c112.3 0 218 43.8 297.4 123.2A417.8 417.8 0 01932.6 512c0 112.3-43.8 218-123.2 297.4-49 49-108 84.3-172.2 104.3v-74.4c0-39.5-13.6-68.6-40.7-87.2a354 354 0 0091.9-19.6c15.8-5.6 30-12.2 42.6-19.9a177.8 177.8 0 0036.3-29.8 175 175 0 0029.1-41.7 228 228 0 0018.6-55.9c4.6-21.7 6.9-45.6 6.9-71.7 0-50.7-16.5-93.8-49.5-129.4 15-39.2 13.4-81.8-4.9-127.9l-12.2-1.4c-8.5-1-23.8 2.6-45.8 10.8-22 8.1-46.8 21.5-74.3 40.1a450.9 450.9 0 00-121-16.1 442 442 0 00-120.5 16.1 419.6 419.6 0 00-49.3-29.1c-15.5-7.7-27.9-13-37.2-15.7a127.6 127.6 0 00-41.4-5.6c-2.3.3-4 .6-4.9 1-18.3 46.3-20 89-4.9 127.8a183.5 183.5 0 00-49.5 129.4c0 26.1 2.3 50 6.9 71.7a228.3 228.3 0 0018.6 56 175 175 0 0029.1 41.6 177.9 177.9 0 0036.3 29.8 223.4 223.4 0 0042.6 19.9A353.2 353.2 0 00432 752c-26.8 18.3-40.2 47.3-40.2 87.2v75.9a418.4 418.4 0 01-177-105.8M512 0a512 512 0 100 1024A512 512 0 00512 0', - bitbucket: - 'M362.3 395l53 276.5h195.4l34-198.4h283l-74.4 457a30 30 0 01-29.7 25.3H210.7a41 41 0 01-40-34.2l-127.6-775a30 30 0 0130-34.9l877.8.2a30 30 0 0130 34.8L940.5 395H362.3z', - gitlab: - 'M186.9 75a18.7 18.7 0 0135.6 0l108.8 333.4h361.4L512 961.8 331.3 408.4H78.1zM78.1 408.5L512 961.8 36.8 618.2a37.1 37.1 0 01-13.6-41.6L78 408.4zm867.8 0l55 168.2c5 15.3-.5 32.1-13.7 41.6L512 961.8l434-553.4zM837.1 75l108.8 333.3H692.7L801.5 75a18.7 18.7 0 0135.6 0z', - azuredevops: - 'M0,378.6 L95.8,252 L454.4,106.2 L454.4,1 L768.8,231 L126.6,355.8 L126.6,706.8 L0,670.2 L0,378.6 Z M1024,188.8 L1024,814 L778.6,1023 L381.8,892.6 L381.8,1023 L126.6,706.6 L769,783.2 L769,231 L1024,188.8 Z', - discord: - 'M371 147c-14 0-126 3-245 91 0 0-126 227-126 507 0 0 74 126 268 132l58-71c-111-34-153-103-153-103l24 15 4 2 8 4a668 668 0 0 0 420 68 629 629 0 0 0 228-89s-44 71-159 103l58 71c194-7 268-133 268-132 0-280-126-507-126-507-126-94-246-91-246-91l-12 14a576 576 0 0 1 218 110 729 729 0 0 0-441-81l-15 1c-31 4-105 14-199 56-33 14-52 24-52 24s72-69 230-114l-9-10h-1zm-23 323c50 0 91 43 90 97 0 53-40 96-90 96-49 0-89-43-89-96 0-54 39-97 89-97zm321 0c49 0 89 43 89 97 0 53-39 96-89 96s-90-43-90-96c0-54 40-97 90-97z', - contrast: - 'M368 713h79l266-266v-79L368 713zm192 0h153V560L560 713zm98-402h-79L311 579v79l347-347zm-192 0H311v155l155-155zm467 402V91H311v128h452c23 0 42 19 42 42v452h128zM713 933V805H261c-23 0-42-19-42-42V311H91v622h622zM982 0c23 0 42 19 42 42v721c0 23-19 42-42 42H805v177c0 23-19 42-42 42H42c-23 0-42-19-42-42V261c0-23 19-42 42-42h177V42c0-23 19-42 42-42h721z', - unfold: - 'M512 645l8 1c21 4 37 22 37 44v181l52-52 6-6a45 45 0 0 1 58 69l-129 129-7 5a45 45 0 0 1-57-5L351 882l-5-6a45 45 0 0 1 5-57l7-6c17-12 41-10 57 6l52 52V690l1-8c4-21 22-37 44-37zM337 275a45 45 0 1 1 0 90H229l91 102h382l91-102H685a45 45 0 1 1 0-90h208c39 0 59 46 34 75L782 512l145 162c25 29 5 75-34 75H685a45 45 0 1 1 0-90h108l-91-102H320l-91 102h108a45 45 0 1 1 0 90H129c-38 0-59-46-33-75l144-162L96 350c-24-27-8-69 26-74l7-1h208zM537 8l7 6 129 129a45 45 0 0 1-58 68l-6-5-52-52v181c0 22-16 40-37 44h-8c-22 0-40-15-44-36l-1-8V153l-52 53a45 45 0 0 1-57 5l-7-5a45 45 0 0 1-5-57l5-6L480 14c16-16 40-18 57-6z', - sharealt: - 'M130 85h332a45 45 0 0 1 8 89l-8 1H175v674h674V557a45 45 0 0 1 89-8l1 8v337c0 22-16 40-37 44l-8 1H130c-22 0-40-16-44-37l-1-8V130c0-22 16-40 37-44l8-1h332-332zm555 0h210l5 1-6-1a45 45 0 0 1 32 13l-5-4 3 3 2 1a46 46 0 0 1 12 24v2l1 5v209a45 45 0 0 1-89 8l-1-8V238L544 544a45 45 0 0 1-57 5l-7-5a45 45 0 0 1 0-64l306-305H685a45 45 0 0 1-8-89l8-1h209-209z', - accessibility: - 'M512 0a512 512 0 110 1024A512 512 0 01512 0zm0 89.6a422.4 422.4 0 100 844.8 422.4 422.4 0 000-844.8zm262.2 250a40.9 40.9 0 01-27.5 49.3l-169.1 50.7c-8.2 2.7-15.1 11-13.7 20.5 1.3 27.4 1.5 76.5 7 98.4 12.9 59 82.4 214.4 91 233.6a56 56 0 014.9 19 40 40 0 01-40 40c-18 0-30.3-12.7-38.2-28.4A34096 34096 0 01510.9 664l-77.7 165.7-1.3 2.1a40 40 0 01-69.3-39.7c8.6-19 78-174.5 90.8-233.6 5.5-21.9 6-71 7.3-98.4a21 21 0 00-13.7-20.5l-169.1-50.7a40.7 40.7 0 01-27.5-50.7c6.9-20.5 30.2-30.1 50.9-24.6 0 0 154.6 49.3 209.6 49.3s213.8-50.7 213.8-50.7c20.6-5.5 44 6.8 49.5 27.4zm-264-171.2a76.7 76.7 0 110 153.4c-42.6 0-77-34.2-77-76.7 0-41 34.4-76.7 77-76.7z', - accessibilityalt: - 'M512 0a512 512 0 110 1024A512 512 0 01512 0zm262.2 339.6c-5.5-20.6-28.9-32.9-49.5-27.4 0 0-158.8 50.7-213.8 50.7s-209.6-49.3-209.6-49.3c-20.7-5.5-44 4-51 24.6A40.7 40.7 0 00278 389l169 50.7a21 21 0 0113.8 20.5c-1.3 27.4-1.8 76.5-7.3 98.4-12.9 59.1-82.2 214.5-90.8 233.6a40 40 0 1070.6 37.5L511 664a34096 34096 0 0077.7 158.7c7.9 15.7 20.2 28.4 38.2 28.4a40 40 0 0040-40 56 56 0 00-4.8-19c-8.7-19.2-78.2-174.5-91.1-233.6-5.5-21.9-5.7-71-7-98.4-1.4-9.6 5.5-17.8 13.7-20.5l169.1-50.7a40.9 40.9 0 0027.5-49.3zm-264-171.2c-42.6 0-77 35.6-77 76.7a76.7 76.7 0 0077 76.7 76.7 76.7 0 100-153.4z', - markup: - 'M1010.6 479.7L736.4 205.4a45.7 45.7 0 10-64.7 64.6l242 242L671.7 754a45.7 45.7 0 1064.7 64.6l274.1-274.2a45.6 45.6 0 000-64.6M0 511.9c0-11.7 4.5-23.4 13.4-32.3l274.1-274.2a45.7 45.7 0 1164.7 64.6L110.4 512l241.9 241.9a45.7 45.7 0 01-64.7 64.6L13.4 544.2C4.4 535.3 0 523.6 0 512', - outline: - 'M180.1 714.3V844h129.6v94.8h-180c-24.2 0-44-19.5-44.4-43.7V714.3h94.8zM619.3 844v94.8H404.7v-94.8h214.6zm319.4-129.6v180c0 24.2-19.5 44-43.7 44.4H714.3v-94.8H844V714.3h94.8zm0-309.6v214.6h-94.8V404.7h94.8zm-758.6 0v214.6H85.3V404.7h94.8zm331.9 34a73.2 73.2 0 110 146.4 73.2 73.2 0 010-146.3zM894.2 85.4c24.3 0 44 19.5 44.5 43.7V309.7h-94.8V180H714.3V85.3h180zm-584.5 0v94.8H180v129.6H85.3v-180c0-24.2 19.5-44 43.7-44.4H309.7zm309.6 0v94.8H404.7V85.3h214.6z', - verified: - 'M719 66l30 56c12 23 35 40 61 44l62 11c45 8 76 51 70 96l-9 63c-4 26 5 52 23 71l44 46c32 33 32 85 0 118l-44 46a85 85 0 00-23 71l9 63c6 45-25 88-70 96l-62 11c-26 4-49 21-61 44l-30 56a85 85 0 01-113 36l-57-27a85 85 0 00-74 0l-57 27c-42 21-92 4-113-36l-30-56a85 85 0 00-61-44l-62-11c-45-8-76-51-70-96l9-63c4-26-5-52-23-71l-44-46a85 85 0 010-118l44-46c18-19 27-45 23-71l-9-63c-6-45 25-88 70-96l62-11c26-4 49-21 61-44l30-56c21-40 71-57 113-36l57 27c23 12 51 12 74 0l57-27c42-21 92-4 113 36zm70 258a46 46 0 00-59 5L437 622 294 480l-6-5a46 46 0 00-59 69l175 175 6 5c18 13 43 11 59-5l326-325 4-6c13-18 12-43-4-59z', - comment: - 'M936 85l6 1c22 3 39 21 39 44v709c0 8-2 15-5 21l-2 4c-9 12-23 20-38 20H427l-131 127c-9 9-21 13-34 13-25 0-46-20-46-45v-95H88c-25 0-45-20-45-45V130a45 45 0 0145-45zm-46 89H134v620h756V174zM768 544c25 0 46 20 46 44 0 25-21 45-46 45H256c-25 0-46-20-46-45 0-24 21-44 46-44zm0-208c25 0 46 20 46 44 0 25-21 45-46 45H256c-25 0-46-20-46-45 0-24 21-44 46-44z', - commentadd: - 'M937 85l6 1c23 3 40 21 40 44v711c0 7-2 14-5 21l-3 4c-8 12-22 19-38 19H428l-131 128c-9 9-22 13-35 13-25 0-45-20-45-45v-96H89c-26 0-46-20-46-44V130a45 45 0 0146-45zm-45 90H134v621h758V175zm-379 97c22 0 40 18 40 40v134h132a40 40 0 010 81H553v132a40 40 0 11-80 0V527H341a40 40 0 110-81h132V312c0-22 18-40 40-40z', - requestchange: - 'M937 85l6 1c23 3 40 21 40 44v711c0 7-2 14-5 21l-3 4c-8 12-22 19-38 19H428l-131 128c-9 9-22 13-35 13-25 0-45-20-45-45v-96H89c-26 0-46-20-46-44V130a45 45 0 0146-45zm-45 90H134v621h758V175zM585 310c18-18 47-18 65 0l143 144c18 17 18 46 0 64L650 661a46 46 0 01-65 0 46 46 0 010-65l65-64H266a46 46 0 110-92h384l-65-65a46 46 0 010-65z', - comments: - 'M978.3 92.2a45 45 0 0145.7 44.6v535.6a45.2 45.2 0 01-45.7 44.6h-125v122c0 7.7-2 14.8-5.5 21.3l-2.3 3.7a46.1 46.1 0 01-38 19.6H298.8L168 1011a47 47 0 01-34.3 13.1c-25.2 0-45.7-20-45.7-44.6v-95.8H45.7c-25.2 0-45.7-20-45.7-44.5V303.4A45 45 0 0145.7 259h125v-122a45 45 0 0139.8-44.3c1.3-.1 257.2-.3 767.8-.4zM761.9 348H91.4v446.5H762V348zm-125 264c25.3 0 45.8 20 45.8 44.6A45.2 45.2 0 01637 701H216.4c-25.3 0-45.7-20-45.7-44.5a45.2 45.2 0 0145.7-44.6H637zm295.7-430.7H262V259h505.1l46.3.4a45 45 0 0139.8 44.2v324.3h79.3V181.3zM637 441.3c25.2 0 45.7 20 45.7 44.6a45.2 45.2 0 01-45.7 44.6H216.4c-25.3 0-45.7-20-45.7-44.6a45.2 45.2 0 0145.7-44.5H637z', - ruler: - 'M83 110c-22 0-40 18-40 40v176a40 40 0 0080 0v-49h778v49a40 40 0 0080 0V150a40 40 0 10-80 0v49H123v-49c0-22-18-40-40-40zm40 458v266h778V568h-63v115a40 40 0 11-80 0V568h-63v46a40 40 0 11-80 0v-46h-63v115a40 40 0 11-80 0V568h-63v46a40 40 0 11-80 0v-46h-63v115a40 40 0 11-80 0V568h-63zm103-80h691c36 0 64 28 64 64v298c0 36-28 64-64 64H107c-36 0-64-28-64-64V552c0-36 28-64 64-64h119z', -}; - -export default icons; + user: ( + <> + + + ), + useralt: ( + <> + + + ), + useradd: ( + <> + + + ), + users: ( + <> + + + + ), + profile: ( + <> + + + + ), + facehappy: ( + <> + + + + ), + faceneutral: ( + <> + + + + ), + facesad: ( + <> + + + + ), + accessibility: ( + <> + + + + + ), + accessibilityalt: ( + <> + + + ), + arrowup: ( + <> + + + ), + arrowdown: ( + <> + + + ), + arrowleft: ( + <> + + + ), + arrowright: ( + <> + + + ), + arrowupalt: ( + <> + + + ), + arrowdownalt: ( + <> + + + ), + arrowleftalt: ( + <> + + + ), + arrowrightalt: ( + <> + + + ), + expandalt: ( + <> + + + ), + collapse: ( + <> + + + ), + expand: ( + <> + + + ), + unfold: ( + <> + + + + + ), + transfer: ( + <> + + + ), + redirect: ( + <> + + + ), + undo: ( + <> + + + ), + reply: ( + <> + + + ), + sync: ( + <> + + + ), + upload: ( + <> + + + + ), + download: ( + <> + + + + ), + back: ( + <> + + + + ), + proceed: ( + <> + + + + ), + refresh: ( + <> + + + ), + globe: ( + <> + + + ), + compass: ( + <> + + + + ), + location: ( + <> + + + ), + pin: ( + <> + + + + ), + time: ( + <> + + + + ), + dashboard: ( + <> + + + + ), + timer: ( + <> + + + + ), + home: ( + <> + + + ), + admin: ( + <> + + + + ), + info: ( + <> + + + + ), + question: ( + <> + + + + ), + support: ( + <> + + + ), + alert: ( + <> + + + + ), + email: ( + <> + + + ), + phone: ( + <> + + + ), + link: ( + <> + + + + ), + unlink: ( + <> + + + ), + bell: ( + <> + + + ), + rss: ( + <> + + + + + ), + sharealt: ( + <> + + + + ), + share: ( + <> + + + + ), + circlehollow: ( + <> + + + ), + circle: , + bookmarkhollow: ( + <> + + + ), + bookmark: ( + <> + + + ), + hearthollow: ( + <> + + + ), + heart: ( + <> + + + ), + starhollow: ( + <> + + + ), + star: ( + <> + + + ), + certificate: ( + <> + + + ), + verified: ( + <> + + + ), + thumbsup: ( + <> + + + ), + shield: ( + <> + + + ), + basket: ( + <> + + + + + ), + beaker: ( + <> + + + ), + hourglass: ( + <> + + + + ), + flag: ( + <> + + + ), + cloudhollow: ( + <> + + + ), + cloud: , + edit: ( + <> + + + ), + cog: ( + <> + + + + ), + nut: ( + <> + + + + ), + wrench: ( + <> + + + ), + ellipsis: ( + <> + + + ), + check: ( + <> + + + ), + form: ( + <> + + + + ), + batchdeny: ( + <> + + + ), + batchaccept: ( + <> + + + ), + controls: ( + <> + + + ), + plus: ( + <> + + + ), + closeAlt: ( + <> + + + ), + cross: ( + <> + + + ), + trash: ( + <> + + + + ), + pinalt: ( + <> + + + ), + unpin: ( + <> + + + ), + add: ( + <> + + + + ), + subtract: ( + <> + + + + ), + close: ( + <> + + + + ), + delete: ( + <> + + + ), + passed: ( + <> + + + ), + changed: ( + <> + + + ), + failed: ( + <> + + + ), + clear: ( + <> + + + ), + comment: ( + <> + + + + ), + commentadd: ( + <> + + + + ), + requestchange: ( + <> + + + + ), + comments: ( + <> + + + + ), + lock: ( + <> + + + + ), + unlock: ( + <> + + + + ), + key: ( + <> + + + + ), + outbox: ( + <> + + + + ), + credit: ( + <> + + + + ), + button: ( + <> + + + + ), + type: ( + <> + + + + ), + pointerdefault: ( + <> + + + ), + pointerhand: ( + <> + + + ), + browser: ( + <> + + + ), + tablet: ( + <> + + + ), + mobile: ( + <> + + + ), + watch: ( + <> + + + ), + sidebar: ( + <> + + + + ), + sidebaralt: ( + <> + + + + ), + sidebaralttoggle: ( + <> + + + + ), + sidebartoggle: ( + <> + + + + ), + bottombar: ( + <> + + + + ), + bottombartoggle: ( + <> + + + + ), + cpu: ( + <> + + + + ), + database: ( + <> + + + ), + memory: ( + <> + + + + ), + structure: ( + <> + + + ), + box: ( + <> + + + ), + power: ( + <> + + + + ), + photo: ( + <> + + + + ), + component: ( + <> + + + ), + grid: ( + <> + + + ), + outline: ( + <> + + + ), + photodrag: ( + <> + + + + + ), + search: ( + <> + + + ), + zoom: ( + <> + + + + ), + zoomout: ( + <> + + + + ), + zoomreset: ( + <> + + + ), + eye: ( + <> + + + + ), + eyeclose: ( + <> + + + + ), + lightning: ( + <> + + + ), + lightningoff: ( + <> + + + ), + contrast: ( + <> + + + ), + switchalt: ( + <> + + + ), + mirror: ( + <> + + + ), + grow: ( + <> + + + + + ), + paintbrush: ( + <> + + + ), + ruler: ( + <> + + + + ), + stop: ( + <> + + + + ), + camera: ( + <> + + + + ), + video: ( + <> + + + + ), + speaker: ( + <> + + + + + ), + play: ( + <> + + + ), + playback: ( + <> + + + ), + playnext: ( + <> + + + ), + rewind: ( + <> + + + ), + fastforward: ( + <> + + + ), + stopalt: ( + <> + + + ), + book: ( + <> + + + ), + document: ( + <> + + + + ), + copy: ( + <> + + + ), + category: ( + <> + + + + ), + folder: ( + <> + + + ), + print: ( + <> + + + + ), + graphline: ( + <> + + + + ), + calendar: ( + <> + + + ), + graphbar: ( + <> + + + ), + menu: ( + <> + + + ), + menualt: ( + <> + + + ), + filter: ( + <> + + + ), + docchart: ( + <> + + + ), + doclist: ( + <> + + + + ), + markup: ( + <> + + + ), + bold: ( + <> + + + ), + italic: , + paperclip: ( + <> + + + ), + listordered: ( + <> + + + ), + listunordered: ( + <> + + + ), + paragraph: ( + <> + + + ), + markdown: ( + <> + + + + ), + repository: ( + <> + + + + ), + commit: ( + <> + + + ), + branch: ( + <> + + + ), + pullrequest: ( + <> + + + ), + merge: ( + <> + + + ), + apple: ( + <> + + + ), + linux: ( + <> + + + ), + ubuntu: ( + <> + + + ), + windows: ( + <> + + + ), + storybook: ( + <> + + + ), + azuredevops: ( + <> + + + ), + bitbucket: ( + <> + + + ), + chrome: ( + <> + + + ), + chromatic: ( + <> + + + ), + componentdriven: ( + <> + + + ), + discord: ( + <> + + + ), + facebook: ( + <> + + + ), + figma: ( + <> + + + ), + gdrive: ( + <> + + + ), + github: ( + <> + + + ), + gitlab: ( + <> + + + ), + google: ( + <> + + + ), + graphql: ( + <> + + + ), + medium: ( + <> + + + ), + redux: ( + <> + + + ), + twitter: ( + <> + + + ), + youtube: ( + <> + + + ), + vscode: ( + <> + + + ), +} as const; export type IconKey = keyof typeof icons; diff --git a/code/lib/core-client/package.json b/code/lib/core-client/package.json index 9f754bff57f3..77b492d3bb5b 100644 --- a/code/lib/core-client/package.json +++ b/code/lib/core-client/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-client", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -34,16 +34,16 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/channel-postmessage": "7.0.0-alpha.19", - "@storybook/channel-websocket": "7.0.0-alpha.19", - "@storybook/client-api": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/channel-postmessage": "7.0.0-alpha.21", + "@storybook/channel-websocket": "7.0.0-alpha.21", + "@storybook/client-api": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/preview-web": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", - "@storybook/ui": "7.0.0-alpha.19", + "@storybook/preview-web": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", + "@storybook/ui": "7.0.0-alpha.21", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", @@ -64,5 +64,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/core-common/package.json b/code/lib/core-common/package.json index 289525ffb4d7..64dc401aff5e 100644 --- a/code/lib/core-common/package.json +++ b/code/lib/core-common/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-common", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -69,7 +69,7 @@ "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/node-logger": "7.0.0-alpha.19", + "@storybook/node-logger": "7.0.0-alpha.21", "@storybook/semver": "^7.3.2", "@types/babel__core": "^7.0.0", "@types/express": "^4.7.0", @@ -125,5 +125,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/core-events/package.json b/code/lib/core-events/package.json index 2c17594850c0..43b3f7c2452e 100644 --- a/code/lib/core-events/package.json +++ b/code/lib/core-events/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-events", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Event names used in storybook core", "keywords": [ "storybook" @@ -55,5 +55,5 @@ "./src/index.ts" ] }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/core-server/package.json b/code/lib/core-server/package.json index 34b2f0dd08ef..34acf2221cc4 100644 --- a/code/lib/core-server/package.json +++ b/code/lib/core-server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-server", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -35,17 +35,17 @@ "dependencies": { "@aw-web-design/x-default-browser": "1.4.88", "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-manager": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/builder-manager": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/csf-tools": "7.0.0-alpha.19", + "@storybook/csf-tools": "7.0.0-alpha.21", "@storybook/docs-mdx": "0.0.1-canary.12433cf.0", - "@storybook/node-logger": "7.0.0-alpha.19", + "@storybook/node-logger": "7.0.0-alpha.21", "@storybook/semver": "^7.3.2", - "@storybook/store": "7.0.0-alpha.19", - "@storybook/telemetry": "7.0.0-alpha.19", + "@storybook/store": "7.0.0-alpha.21", + "@storybook/telemetry": "7.0.0-alpha.21", "@types/node": "^14.0.10 || ^16.0.0", "@types/node-fetch": "^2.5.7", "@types/pretty-hrtime": "^1.0.0", @@ -77,7 +77,7 @@ "ws": "^8.2.3" }, "devDependencies": { - "@storybook/builder-webpack5": "7.0.0-alpha.19", + "@storybook/builder-webpack5": "7.0.0-alpha.21", "@types/compression": "^1.7.0", "@types/ip": "^1.1.0", "@types/serve-favicon": "^2.5.2", @@ -101,5 +101,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/core-vite/package.json b/code/lib/core-vite/package.json index 4e42c850571c..90d17f23ccbf 100644 --- a/code/lib/core-vite/package.json +++ b/code/lib/core-vite/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-vite", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -34,8 +34,8 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", "@types/node": "^14.0.10 || ^16.0.0", "core-js": "^3.8.2", "ts-dedent": "^2.0.0" diff --git a/code/lib/core-webpack/package.json b/code/lib/core-webpack/package.json index e4adc3097ad8..c3fe5d1a29b3 100644 --- a/code/lib/core-webpack/package.json +++ b/code/lib/core-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/core-webpack", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook framework-agnostic API", "keywords": [ "storybook" @@ -34,8 +34,8 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/core-common": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", + "@storybook/core-common": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", "@types/node": "^14.0.10 || ^16.0.0", "core-js": "^3.8.2", "ts-dedent": "^2.0.0" @@ -46,5 +46,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/csf-tools/package.json b/code/lib/csf-tools/package.json index dec5a5690215..769a77ef0ccd 100644 --- a/code/lib/csf-tools/package.json +++ b/code/lib/csf-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/csf-tools", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "", "keywords": [ "storybook" @@ -56,5 +56,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/docs-tools/package.json b/code/lib/docs-tools/package.json index 345c8c50dd51..28afebb51e82 100644 --- a/code/lib/docs-tools/package.json +++ b/code/lib/docs-tools/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/docs-tools", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Shared utility functions for frameworks to implement docs", "keywords": [ "storybook" @@ -36,7 +36,7 @@ "dependencies": { "@babel/core": "^7.12.10", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/store": "7.0.0-alpha.21", "core-js": "^3.8.2", "doctrine": "^3.0.0", "lodash": "^4.17.21" @@ -49,5 +49,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/instrumenter/package.json b/code/lib/instrumenter/package.json index 3b3112174a20..b93d3ade0b00 100644 --- a/code/lib/instrumenter/package.json +++ b/code/lib/instrumenter/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/instrumenter", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "", "keywords": [ "storybook" @@ -41,9 +41,9 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0" }, @@ -53,5 +53,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/node-logger/package.json b/code/lib/node-logger/package.json index ecef8c72e253..33bc1611e0dc 100644 --- a/code/lib/node-logger/package.json +++ b/code/lib/node-logger/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/node-logger", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "", "keywords": [ "storybook" @@ -47,5 +47,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/postinstall/package.json b/code/lib/postinstall/package.json index 860d8e4f8890..71f1c175af3a 100644 --- a/code/lib/postinstall/package.json +++ b/code/lib/postinstall/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/postinstall", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook addons postinstall utilities", "keywords": [ "api", @@ -46,5 +46,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/preview-web/package.json b/code/lib/preview-web/package.json index d2bd995c35db..6d710782b266 100644 --- a/code/lib/preview-web/package.json +++ b/code/lib/preview-web/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preview-web", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "", "keywords": [ "storybook" @@ -41,13 +41,13 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/channel-postmessage": "7.0.0-alpha.19", - "@storybook/channels": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/channel-postmessage": "7.0.0-alpha.21", + "@storybook/channels": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/store": "7.0.0-alpha.21", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", @@ -63,5 +63,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/router/package.json b/code/lib/router/package.json index fe50f0e8e51f..41404c84cf8f 100644 --- a/code/lib/router/package.json +++ b/code/lib/router/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/router", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Core Storybook Router", "keywords": [ "storybook" @@ -34,7 +34,7 @@ "prepare": "ts-node ../../../scripts/prebundle.ts" }, "dependencies": { - "@storybook/client-logger": "7.0.0-alpha.19", + "@storybook/client-logger": "7.0.0-alpha.21", "core-js": "^3.8.2", "memoizerific": "^1.11.3", "qs": "^6.10.0" @@ -58,5 +58,5 @@ "access": "public" }, "bundlerEntrypoint": "./src/index.ts", - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/source-loader/package.json b/code/lib/source-loader/package.json index 3fabb327a3ce..ea141d86c47b 100644 --- a/code/lib/source-loader/package.json +++ b/code/lib/source-loader/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/source-loader", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Source loader", "keywords": [ "lib", @@ -35,8 +35,8 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", "core-js": "^3.8.2", "estraverse": "^5.2.0", @@ -54,5 +54,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/store/package.json b/code/lib/store/package.json index f7c17bd5a849..60016fffa738 100644 --- a/code/lib/store/package.json +++ b/code/lib/store/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/store", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "", "keywords": [ "storybook" @@ -41,9 +41,9 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", "core-js": "^3.8.2", "dequal": "^2.0.2", @@ -66,5 +66,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/telemetry/package.json b/code/lib/telemetry/package.json index 090d1351ddf3..10d0c8b24d1b 100644 --- a/code/lib/telemetry/package.json +++ b/code/lib/telemetry/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/telemetry", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Telemetry logging for crash reports and usage statistics", "keywords": [ "storybook" @@ -34,8 +34,8 @@ "prepare": "node ../../../scripts/prepare.js" }, "dependencies": { - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-common": "7.0.0-alpha.19", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-common": "7.0.0-alpha.21", "chalk": "^4.1.0", "core-js": "^3.8.2", "detect-package-manager": "^2.0.1", @@ -52,5 +52,5 @@ "publishConfig": { "access": "public" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/theming/package.json b/code/lib/theming/package.json index ed9b73cf401c..6dec6fbe0f29 100644 --- a/code/lib/theming/package.json +++ b/code/lib/theming/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/theming", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Core Storybook Components", "keywords": [ "storybook" @@ -47,7 +47,7 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/client-logger": "7.0.0-alpha.19", + "@storybook/client-logger": "7.0.0-alpha.21", "core-js": "^3.8.2", "memoizerific": "^1.11.3" }, @@ -80,5 +80,5 @@ ], "post": "./scripts/fix-theme-type-export.ts" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/ui/package.json b/code/lib/ui/package.json index a18c307a0fec..492124e5acd6 100644 --- a/code/lib/ui/package.json +++ b/code/lib/ui/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/ui", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Core Storybook UI", "keywords": [ "storybook" @@ -54,18 +54,18 @@ "devDependencies": { "@babel/core": "^7.12.10", "@fal-works/esbuild-plugin-global-externals": "^2.1.2", - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/api": "7.0.0-alpha.19", - "@storybook/channel-postmessage": "7.0.0-alpha.19", - "@storybook/channel-websocket": "7.0.0-alpha.19", - "@storybook/channels": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/components": "7.0.0-alpha.19", - "@storybook/core-events": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/api": "7.0.0-alpha.21", + "@storybook/channel-postmessage": "7.0.0-alpha.21", + "@storybook/channel-websocket": "7.0.0-alpha.21", + "@storybook/channels": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/components": "7.0.0-alpha.21", + "@storybook/core-events": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/router": "7.0.0-alpha.19", + "@storybook/router": "7.0.0-alpha.21", "@storybook/semver": "^7.3.2", - "@storybook/theming": "7.0.0-alpha.19", + "@storybook/theming": "7.0.0-alpha.21", "@testing-library/react": "^11.2.2", "copy-to-clipboard": "^3.3.1", "core-js": "^3.8.2", @@ -104,5 +104,5 @@ "./src/runtime.ts" ] }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/lib/ui/src/components/notifications/NotificationItem.tsx b/code/lib/ui/src/components/notifications/NotificationItem.tsx index 0ff2813f0ead..c60dacfd2950 100644 --- a/code/lib/ui/src/components/notifications/NotificationItem.tsx +++ b/code/lib/ui/src/components/notifications/NotificationItem.tsx @@ -85,6 +85,7 @@ const ItemContent: FC> = ({ diff --git a/code/lib/ui/src/components/sidebar/Menu.tsx b/code/lib/ui/src/components/sidebar/Menu.tsx index 1096620ef8e5..e15b4fc9fb22 100644 --- a/code/lib/ui/src/components/sidebar/Menu.tsx +++ b/code/lib/ui/src/components/sidebar/Menu.tsx @@ -44,7 +44,7 @@ export const MenuButton: FC & { highlighted: boole >(({ highlighted, theme }) => ({ position: 'relative', overflow: 'visible', - padding: 7, + padding: 8, transition: 'none', // prevents button border from flashing when focused/blurred '&:focus': { background: theme.barBg, diff --git a/code/lib/ui/src/components/sidebar/RefIndicator.tsx b/code/lib/ui/src/components/sidebar/RefIndicator.tsx index 569a952247ba..7d1601e685e2 100644 --- a/code/lib/ui/src/components/sidebar/RefIndicator.tsx +++ b/code/lib/ui/src/components/sidebar/RefIndicator.tsx @@ -157,7 +157,7 @@ const CurrentVersion: FC = ({ url, versions }) => { return ( {currentVersionId} - + ); }; diff --git a/code/lib/ui/src/components/sidebar/TreeNode.tsx b/code/lib/ui/src/components/sidebar/TreeNode.tsx index 29af6f0c6a92..04c47c700831 100644 --- a/code/lib/ui/src/components/sidebar/TreeNode.tsx +++ b/code/lib/ui/src/components/sidebar/TreeNode.tsx @@ -147,7 +147,7 @@ export const GroupNode: FunctionComponent< > = React.memo(({ children, isExpanded = false, isExpandable = false, ...props }) => ( {isExpandable ? : null} - + {children} )); @@ -156,7 +156,7 @@ export const ComponentNode: FunctionComponent> ({ theme, children, isExpanded, isExpandable, isSelected, ...props }) => ( {isExpandable && } - + {children} ) @@ -166,7 +166,7 @@ export const DocumentNode: FunctionComponent< ComponentProps & { docsMode: boolean } > = React.memo(({ theme, children, docsMode, ...props }) => ( - + {children} )); @@ -174,7 +174,7 @@ export const DocumentNode: FunctionComponent< export const StoryNode: FunctionComponent> = React.memo( ({ theme, children, ...props }) => ( - + {children} ) diff --git a/code/lib/ui/src/settings/release_notes.tsx b/code/lib/ui/src/settings/release_notes.tsx index 4e279fde172a..b15bde0c204c 100644 --- a/code/lib/ui/src/settings/release_notes.tsx +++ b/code/lib/ui/src/settings/release_notes.tsx @@ -44,7 +44,8 @@ const AlertIcon = styled(((props) => ) as FC< Omit, 'icon'> >)(({ theme }) => ({ color: theme.color.mediumdark, - width: 40, + width: 32, + height: 32, margin: '0 auto', })); diff --git a/code/package.json b/code/package.json index 3286bd071b80..e6f093a570e0 100644 --- a/code/package.json +++ b/code/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/root", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "private": true, "description": "Storybook is an open source tool for developing UI components in isolation for React, Vue and Angular. It makes building stunning UIs organized and efficient.", "keywords": [ diff --git a/code/presets/html-webpack/package.json b/code/presets/html-webpack/package.json index 824a896e3d16..13008b4bb244 100644 --- a/code/presets/html-webpack/package.json +++ b/code/presets/html-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-html-webpack", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -50,7 +50,7 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/core-webpack": "7.0.0-alpha.19", + "@storybook/core-webpack": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "html-loader": "^3.1.0", @@ -76,5 +76,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/presets/preact-webpack/package.json b/code/presets/preact-webpack/package.json index 5189c38e50d4..6587d6bb3ebd 100644 --- a/code/presets/preact-webpack/package.json +++ b/code/presets/preact-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-preact-webpack", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Preact: Develop Preact Component in isolation.", "keywords": [ "storybook" @@ -51,7 +51,7 @@ }, "dependencies": { "@babel/plugin-transform-react-jsx": "^7.12.12", - "@storybook/core-webpack": "7.0.0-alpha.19", + "@storybook/core-webpack": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "react": "16.14.0", @@ -77,5 +77,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/presets/react-webpack/package.json b/code/presets/react-webpack/package.json index 84968c6f18b6..06fdde91d55a 100644 --- a/code/presets/react-webpack/package.json +++ b/code/presets/react-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-react-webpack", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for React: Develop React Component in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -74,10 +74,10 @@ "@babel/preset-flow": "^7.12.1", "@babel/preset-react": "^7.12.10", "@pmmmwh/react-refresh-webpack-plugin": "^0.5.5", - "@storybook/core-webpack": "7.0.0-alpha.19", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", - "@storybook/react": "7.0.0-alpha.19", + "@storybook/core-webpack": "7.0.0-alpha.21", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", + "@storybook/react": "7.0.0-alpha.21", "@storybook/react-docgen-typescript-plugin": "1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0", "@storybook/semver": "^7.3.2", "@types/node": "^14.14.20 || ^16.0.0", @@ -123,5 +123,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/presets/server-webpack/package.json b/code/presets/server-webpack/package.json index 09e907114fd8..e0f163350cff 100644 --- a/code/presets/server-webpack/package.json +++ b/code/presets/server-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-server-webpack", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -55,9 +55,9 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/core-server": "7.0.0-alpha.19", - "@storybook/core-webpack": "7.0.0-alpha.19", - "@storybook/server": "7.0.0-alpha.19", + "@storybook/core-server": "7.0.0-alpha.21", + "@storybook/core-webpack": "7.0.0-alpha.21", + "@storybook/server": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -86,5 +86,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/presets/svelte-webpack/package.json b/code/presets/svelte-webpack/package.json index 23ce53b5d049..4c07511b6875 100644 --- a/code/presets/svelte-webpack/package.json +++ b/code/presets/svelte-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-svelte-webpack", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -65,8 +65,8 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/core-webpack": "7.0.0-alpha.19", - "@storybook/node-logger": "7.0.0-alpha.19", + "@storybook/core-webpack": "7.0.0-alpha.21", + "@storybook/node-logger": "7.0.0-alpha.21", "core-js": "^3.8.2", "react": "16.14.0", "react-dom": "16.14.0", @@ -98,5 +98,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/presets/vue-webpack/package.json b/code/presets/vue-webpack/package.json index b8bb7edd3eac..c2aee2735d23 100644 --- a/code/presets/vue-webpack/package.json +++ b/code/presets/vue-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue-webpack", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Vue: Develop Vue Component in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -60,8 +60,8 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/core-webpack": "7.0.0-alpha.19", - "@storybook/docs-tools": "7.0.0-alpha.19", + "@storybook/core-webpack": "7.0.0-alpha.21", + "@storybook/docs-tools": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "react": "16.14.0", @@ -100,5 +100,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/presets/vue3-webpack/package.json b/code/presets/vue3-webpack/package.json index 9dc2005607f0..327921f213b6 100644 --- a/code/presets/vue3-webpack/package.json +++ b/code/presets/vue3-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-vue3-webpack", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.", "keywords": [ "storybook" @@ -61,8 +61,8 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/core-webpack": "7.0.0-alpha.19", - "@storybook/docs-tools": "7.0.0-alpha.19", + "@storybook/core-webpack": "7.0.0-alpha.21", + "@storybook/docs-tools": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "core-js": "^3.8.2", "react": "16.14.0", @@ -98,5 +98,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/presets/web-components-webpack/package.json b/code/presets/web-components-webpack/package.json index de60848030ca..78fe556d49d4 100644 --- a/code/presets/web-components-webpack/package.json +++ b/code/presets/web-components-webpack/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preset-web-components-webpack", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.", "keywords": [ "lit-html", @@ -55,7 +55,7 @@ "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/preset-env": "^7.12.11", - "@storybook/core-webpack": "7.0.0-alpha.19", + "@storybook/core-webpack": "7.0.0-alpha.21", "@types/node": "^14.14.20 || ^16.0.0", "babel-loader": "^7.0.0 || ^8.0.0", "babel-plugin-bundled-import-meta": "^0.3.1", @@ -82,5 +82,5 @@ ], "platform": "node" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/renderers/html/package.json b/code/renderers/html/package.json index fb2dc3261559..009021e85e86 100644 --- a/code/renderers/html/package.json +++ b/code/renderers/html/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/html", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook HTML renderer", "keywords": [ "storybook" @@ -50,12 +50,12 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/preview-web": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/preview-web": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "react": "16.14.0", @@ -81,5 +81,5 @@ ], "platform": "browser" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/renderers/preact/package.json b/code/renderers/preact/package.json index 360b1b18b497..02ceacfa71bd 100644 --- a/code/renderers/preact/package.json +++ b/code/renderers/preact/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/preact", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook Preact renderer", "keywords": [ "storybook" @@ -50,10 +50,10 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/store": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "react": "16.14.0", @@ -80,5 +80,5 @@ ], "platform": "browser" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/renderers/react/package.json b/code/renderers/react/package.json index e0206329db9c..ef337c7c6930 100644 --- a/code/renderers/react/package.json +++ b/code/renderers/react/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/react", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook React renderer", "keywords": [ "storybook" @@ -34,12 +34,12 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", "@types/estree": "^0.0.51", "@types/node": "^14.14.20 || ^16.0.0", "acorn": "^7.4.1", @@ -84,5 +84,5 @@ ], "platform": "browser" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/renderers/server/package.json b/code/renderers/server/package.json index 31de1b3f6f3b..cef147a8f4d5 100644 --- a/code/renderers/server/package.json +++ b/code/renderers/server/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/server", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook Server renderer", "keywords": [ "storybook" @@ -50,11 +50,11 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/preview-web": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/preview-web": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "react": "16.14.0", @@ -77,5 +77,5 @@ ], "platform": "browser" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/renderers/svelte/package.json b/code/renderers/svelte/package.json index 24eb431564ec..4fa82748ac15 100644 --- a/code/renderers/svelte/package.json +++ b/code/renderers/svelte/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/svelte", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook Svelte renderer", "keywords": [ "storybook" @@ -54,12 +54,12 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "react": "16.14.0", @@ -87,5 +87,5 @@ ], "platform": "browser" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/renderers/vue/package.json b/code/renderers/vue/package.json index 53709aa7625b..bcffbdc7831d 100644 --- a/code/renderers/vue/package.json +++ b/code/renderers/vue/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook Vue renderer", "keywords": [ "storybook" @@ -50,12 +50,12 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "react": "16.14.0", @@ -85,5 +85,5 @@ ], "platform": "browser" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/renderers/vue3/package.json b/code/renderers/vue3/package.json index 0630ec2927a5..696f5bf0329f 100644 --- a/code/renderers/vue3/package.json +++ b/code/renderers/vue3/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/vue3", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook Vue 3 renderer", "keywords": [ "storybook" @@ -51,11 +51,11 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "react": "16.14.0", @@ -85,5 +85,5 @@ ], "platform": "browser" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/renderers/web-components/package.json b/code/renderers/web-components/package.json index a1b048d8717b..15cf29d65179 100644 --- a/code/renderers/web-components/package.json +++ b/code/renderers/web-components/package.json @@ -1,6 +1,6 @@ { "name": "@storybook/web-components", - "version": "7.0.0-alpha.19", + "version": "7.0.0-alpha.21", "description": "Storybook web-components renderer", "keywords": [ "lit-html", @@ -52,14 +52,14 @@ "prepare": "../../../scripts/prepare/bundle.ts" }, "dependencies": { - "@storybook/addons": "7.0.0-alpha.19", - "@storybook/api": "7.0.0-alpha.19", - "@storybook/client-logger": "7.0.0-alpha.19", - "@storybook/core-client": "7.0.0-alpha.19", + "@storybook/addons": "7.0.0-alpha.21", + "@storybook/api": "7.0.0-alpha.21", + "@storybook/client-logger": "7.0.0-alpha.21", + "@storybook/core-client": "7.0.0-alpha.21", "@storybook/csf": "0.0.2--canary.0899bb7.0", - "@storybook/docs-tools": "7.0.0-alpha.19", - "@storybook/preview-web": "7.0.0-alpha.19", - "@storybook/store": "7.0.0-alpha.19", + "@storybook/docs-tools": "7.0.0-alpha.21", + "@storybook/preview-web": "7.0.0-alpha.21", + "@storybook/store": "7.0.0-alpha.21", "core-js": "^3.8.2", "global": "^4.4.0", "react": "16.14.0", @@ -86,5 +86,5 @@ ], "platform": "browser" }, - "gitHead": "74bdb53f67dd59bae2661c668d2d5d4296113281" + "gitHead": "d8cdc5b21af68e69c6eefeaae0e1efadd06947ea" } diff --git a/code/yarn.lock b/code/yarn.lock index 5a8f1a883564..563187dd3cc5 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -6929,19 +6929,19 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-a11y@7.0.0-alpha.19, @storybook/addon-a11y@workspace:*, @storybook/addon-a11y@workspace:addons/a11y": +"@storybook/addon-a11y@7.0.0-alpha.21, @storybook/addon-a11y@workspace:*, @storybook/addon-a11y@workspace:addons/a11y": version: 0.0.0-use.local resolution: "@storybook/addon-a11y@workspace:addons/a11y" dependencies: - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/theming": 7.0.0-alpha.21 "@testing-library/react": ^11.2.2 axe-core: ^4.2.0 core-js: ^3.8.2 @@ -6962,17 +6962,17 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-actions@7.0.0-alpha.19, @storybook/addon-actions@workspace:*, @storybook/addon-actions@workspace:addons/actions": +"@storybook/addon-actions@7.0.0-alpha.21, @storybook/addon-actions@workspace:*, @storybook/addon-actions@workspace:addons/actions": version: 0.0.0-use.local resolution: "@storybook/addon-actions@workspace:addons/actions" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/theming": 7.0.0-alpha.21 "@types/lodash": ^4.14.167 core-js: ^3.8.2 dequal: ^2.0.2 @@ -6997,17 +6997,17 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-backgrounds@7.0.0-alpha.19, @storybook/addon-backgrounds@workspace:*, @storybook/addon-backgrounds@workspace:addons/backgrounds": +"@storybook/addon-backgrounds@7.0.0-alpha.21, @storybook/addon-backgrounds@workspace:*, @storybook/addon-backgrounds@workspace:addons/backgrounds": version: 0.0.0-use.local resolution: "@storybook/addon-backgrounds@workspace:addons/backgrounds" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/theming": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 memoizerific: ^1.11.3 @@ -7025,20 +7025,20 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-controls@7.0.0-alpha.19, @storybook/addon-controls@workspace:*, @storybook/addon-controls@workspace:addons/controls": +"@storybook/addon-controls@7.0.0-alpha.21, @storybook/addon-controls@workspace:*, @storybook/addon-controls@workspace:addons/controls": version: 0.0.0-use.local resolution: "@storybook/addon-controls@workspace:addons/controls" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/blocks": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/blocks": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/node-logger": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/node-logger": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 core-js: ^3.8.2 lodash: ^4.17.21 ts-dedent: ^2.0.0 @@ -7053,7 +7053,7 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-docs@7.0.0-alpha.19, @storybook/addon-docs@workspace:*, @storybook/addon-docs@workspace:addons/docs": +"@storybook/addon-docs@7.0.0-alpha.21, @storybook/addon-docs@workspace:*, @storybook/addon-docs@workspace:addons/docs": version: 0.0.0-use.local resolution: "@storybook/addon-docs@workspace:addons/docs" dependencies: @@ -7062,23 +7062,23 @@ __metadata: "@babel/preset-env": ^7.12.11 "@jest/transform": ^26.6.2 "@mdx-js/react": ^1.6.22 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/blocks": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/blocks": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/csf-tools": 7.0.0-alpha.19 - "@storybook/docs-tools": 7.0.0-alpha.19 + "@storybook/csf-tools": 7.0.0-alpha.21 + "@storybook/docs-tools": 7.0.0-alpha.21 "@storybook/mdx1-csf": 0.0.5-canary.13.9ce928a.0 "@storybook/mdx2-csf": 0.0.4-canary.14.04ffbe8.0 - "@storybook/node-logger": 7.0.0-alpha.19 - "@storybook/postinstall": 7.0.0-alpha.19 - "@storybook/preview-web": 7.0.0-alpha.19 - "@storybook/source-loader": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/node-logger": 7.0.0-alpha.21 + "@storybook/postinstall": 7.0.0-alpha.21 + "@storybook/preview-web": 7.0.0-alpha.21 + "@storybook/source-loader": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 "@types/util-deprecate": ^1.0.0 babel-loader: ^8.2.5 core-js: ^3.8.2 @@ -7104,25 +7104,25 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-essentials@7.0.0-alpha.19, @storybook/addon-essentials@workspace:*, @storybook/addon-essentials@workspace:addons/essentials": +"@storybook/addon-essentials@7.0.0-alpha.21, @storybook/addon-essentials@workspace:*, @storybook/addon-essentials@workspace:addons/essentials": version: 0.0.0-use.local resolution: "@storybook/addon-essentials@workspace:addons/essentials" dependencies: "@babel/core": ^7.12.10 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-controls": 7.0.0-alpha.19 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-measure": 7.0.0-alpha.19 - "@storybook/addon-outline": 7.0.0-alpha.19 - "@storybook/addon-toolbars": 7.0.0-alpha.19 - "@storybook/addon-viewport": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 - "@storybook/vue": 7.0.0-alpha.19 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-controls": 7.0.0-alpha.21 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-measure": 7.0.0-alpha.21 + "@storybook/addon-outline": 7.0.0-alpha.21 + "@storybook/addon-toolbars": 7.0.0-alpha.21 + "@storybook/addon-viewport": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 + "@storybook/vue": 7.0.0-alpha.21 "@types/jest": ^26.0.16 core-js: ^3.8.2 ts-dedent: ^2.0.0 @@ -7157,12 +7157,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-highlight@7.0.0-alpha.19, @storybook/addon-highlight@workspace:*, @storybook/addon-highlight@workspace:addons/highlight": +"@storybook/addon-highlight@7.0.0-alpha.21, @storybook/addon-highlight@workspace:*, @storybook/addon-highlight@workspace:addons/highlight": version: 0.0.0-use.local resolution: "@storybook/addon-highlight@workspace:addons/highlight" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@types/webpack-env": ^1.16.0 core-js: ^3.8.2 global: ^4.4.0 @@ -7170,22 +7170,22 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-interactions@7.0.0-alpha.19, @storybook/addon-interactions@workspace:*, @storybook/addon-interactions@workspace:addons/interactions": +"@storybook/addon-interactions@7.0.0-alpha.21, @storybook/addon-interactions@workspace:*, @storybook/addon-interactions@workspace:addons/interactions": version: 0.0.0-use.local resolution: "@storybook/addon-interactions@workspace:addons/interactions" dependencies: "@devtools-ds/object-inspector": ^1.1.2 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/instrumenter": 7.0.0-alpha.19 + "@storybook/instrumenter": 7.0.0-alpha.21 "@storybook/jest": ^0.0.10 "@storybook/testing-library": 0.0.14-next.0 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/theming": 7.0.0-alpha.21 core-js: ^3.8.2 formik: ^2.2.9 global: ^4.4.0 @@ -7204,16 +7204,16 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-jest@7.0.0-alpha.19, @storybook/addon-jest@workspace:*, @storybook/addon-jest@workspace:addons/jest": +"@storybook/addon-jest@7.0.0-alpha.21, @storybook/addon-jest@workspace:*, @storybook/addon-jest@workspace:addons/jest": version: 0.0.0-use.local resolution: "@storybook/addon-jest@workspace:addons/jest" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 react-sizeme: ^3.0.1 @@ -7230,15 +7230,15 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-links@7.0.0-alpha.19, @storybook/addon-links@workspace:*, @storybook/addon-links@workspace:addons/links": +"@storybook/addon-links@7.0.0-alpha.21, @storybook/addon-links@workspace:*, @storybook/addon-links@workspace:addons/links": version: 0.0.0-use.local resolution: "@storybook/addon-links@workspace:addons/links" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/router": 7.0.0-alpha.19 + "@storybook/router": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 prop-types: ^15.7.2 @@ -7255,15 +7255,15 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-measure@7.0.0-alpha.19, @storybook/addon-measure@workspace:*, @storybook/addon-measure@workspace:addons/measure": +"@storybook/addon-measure@7.0.0-alpha.21, @storybook/addon-measure@workspace:*, @storybook/addon-measure@workspace:addons/measure": version: 0.0.0-use.local resolution: "@storybook/addon-measure@workspace:addons/measure" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 core-js: ^3.8.2 global: ^4.4.0 @@ -7279,15 +7279,15 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-outline@7.0.0-alpha.19, @storybook/addon-outline@workspace:*, @storybook/addon-outline@workspace:addons/outline": +"@storybook/addon-outline@7.0.0-alpha.21, @storybook/addon-outline@workspace:*, @storybook/addon-outline@workspace:addons/outline": version: 0.0.0-use.local resolution: "@storybook/addon-outline@workspace:addons/outline" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 core-js: ^3.8.2 global: ^4.4.0 @@ -7317,20 +7317,20 @@ __metadata: languageName: node linkType: hard -"@storybook/addon-storyshots-puppeteer@7.0.0-alpha.19, @storybook/addon-storyshots-puppeteer@workspace:*, @storybook/addon-storyshots-puppeteer@workspace:addons/storyshots/storyshots-puppeteer": +"@storybook/addon-storyshots-puppeteer@7.0.0-alpha.21, @storybook/addon-storyshots-puppeteer@workspace:*, @storybook/addon-storyshots-puppeteer@workspace:addons/storyshots/storyshots-puppeteer": version: 0.0.0-use.local resolution: "@storybook/addon-storyshots-puppeteer@workspace:addons/storyshots/storyshots-puppeteer" dependencies: "@axe-core/puppeteer": ^4.2.0 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/node-logger": 7.0.0-alpha.21 "@types/jest-image-snapshot": ^4.1.3 "@types/puppeteer": ^5.4.0 core-js: ^3.8.2 jest-image-snapshot: ^4.3.0 puppeteer: ^2.0.0 || ^3.0.0 peerDependencies: - "@storybook/addon-storyshots": 7.0.0-alpha.19 + "@storybook/addon-storyshots": 7.0.0-alpha.21 puppeteer: ">=2.0.0" peerDependenciesMeta: puppeteer: @@ -7338,7 +7338,7 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-storyshots@7.0.0-alpha.19, @storybook/addon-storyshots@workspace:*, @storybook/addon-storyshots@workspace:addons/storyshots/storyshots-core": +"@storybook/addon-storyshots@7.0.0-alpha.21, @storybook/addon-storyshots@workspace:*, @storybook/addon-storyshots@workspace:addons/storyshots/storyshots-core": version: 0.0.0-use.local resolution: "@storybook/addon-storyshots@workspace:addons/storyshots/storyshots-core" dependencies: @@ -7346,18 +7346,18 @@ __metadata: "@angular/platform-browser-dynamic": ^13.3.6 "@emotion/jest": ^11.8.0 "@jest/transform": ^26.6.2 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/angular": 7.0.0-alpha.19 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/angular": 7.0.0-alpha.21 "@storybook/babel-plugin-require-context-hook": 1.0.1 - "@storybook/client-api": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/core-webpack": 7.0.0-alpha.19 + "@storybook/client-api": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/core-webpack": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/react": 7.0.0-alpha.19 - "@storybook/vue": 7.0.0-alpha.19 - "@storybook/vue3": 7.0.0-alpha.19 + "@storybook/react": 7.0.0-alpha.21 + "@storybook/vue": 7.0.0-alpha.21 + "@storybook/vue3": 7.0.0-alpha.21 "@types/glob": ^7.1.3 "@types/jest": ^26.0.16 "@types/jest-specific-snapshot": ^0.5.3 @@ -7428,17 +7428,17 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-storysource@7.0.0-alpha.19, @storybook/addon-storysource@workspace:*, @storybook/addon-storysource@workspace:addons/storysource": +"@storybook/addon-storysource@7.0.0-alpha.21, @storybook/addon-storysource@workspace:*, @storybook/addon-storysource@workspace:addons/storysource": version: 0.0.0-use.local resolution: "@storybook/addon-storysource@workspace:addons/storysource" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/router": 7.0.0-alpha.19 - "@storybook/source-loader": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/router": 7.0.0-alpha.21 + "@storybook/source-loader": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 "@types/react": ^16.14.23 "@types/react-syntax-highlighter": 11.0.5 core-js: ^3.8.2 @@ -7457,15 +7457,15 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-toolbars@7.0.0-alpha.19, @storybook/addon-toolbars@workspace:*, @storybook/addon-toolbars@workspace:addons/toolbars": +"@storybook/addon-toolbars@7.0.0-alpha.21, @storybook/addon-toolbars@workspace:*, @storybook/addon-toolbars@workspace:addons/toolbars": version: 0.0.0-use.local resolution: "@storybook/addon-toolbars@workspace:addons/toolbars" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 core-js: ^3.8.2 typescript: ~4.6.3 peerDependencies: @@ -7479,16 +7479,16 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addon-viewport@7.0.0-alpha.19, @storybook/addon-viewport@workspace:*, @storybook/addon-viewport@workspace:addons/viewport": +"@storybook/addon-viewport@7.0.0-alpha.21, @storybook/addon-viewport@workspace:*, @storybook/addon-viewport@workspace:addons/viewport": version: 0.0.0-use.local resolution: "@storybook/addon-viewport@workspace:addons/viewport" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 memoizerific: ^1.11.3 @@ -7505,17 +7505,17 @@ __metadata: languageName: unknown linkType: soft -"@storybook/addons@7.0.0-alpha.19, @storybook/addons@workspace:*, @storybook/addons@workspace:lib/addons": +"@storybook/addons@7.0.0-alpha.21, @storybook/addons@workspace:*, @storybook/addons@workspace:lib/addons": version: 0.0.0-use.local resolution: "@storybook/addons@workspace:lib/addons" dependencies: - "@storybook/api": 7.0.0-alpha.19 - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/router": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/router": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 "@types/webpack-env": ^1.16.4 core-js: ^3.8.2 global: ^4.4.0 @@ -7547,7 +7547,7 @@ __metadata: languageName: node linkType: hard -"@storybook/angular@7.0.0-alpha.19, @storybook/angular@workspace:*, @storybook/angular@workspace:frameworks/angular": +"@storybook/angular@7.0.0-alpha.21, @storybook/angular@workspace:*, @storybook/angular@workspace:frameworks/angular": version: 0.0.0-use.local resolution: "@storybook/angular@workspace:frameworks/angular" dependencies: @@ -7564,19 +7564,19 @@ __metadata: "@angular/platform-browser": ^13.3.6 "@angular/platform-browser-dynamic": ^13.3.6 "@nrwl/workspace": ^14.1.4 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 - "@storybook/core-server": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 + "@storybook/core-server": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 "@storybook/semver": ^7.3.2 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/store": 7.0.0-alpha.21 "@types/autoprefixer": ^9.7.2 "@types/node": ^14.14.20 || ^16.0.0 "@types/react": ^16.14.23 @@ -7633,17 +7633,17 @@ __metadata: languageName: unknown linkType: soft -"@storybook/api@7.0.0-alpha.19, @storybook/api@workspace:*, @storybook/api@workspace:lib/api": +"@storybook/api@7.0.0-alpha.21, @storybook/api@workspace:*, @storybook/api@workspace:lib/api": version: 0.0.0-use.local resolution: "@storybook/api@workspace:lib/api" dependencies: - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/router": 7.0.0-alpha.19 + "@storybook/router": 7.0.0-alpha.21 "@storybook/semver": ^7.3.2 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/theming": 7.0.0-alpha.21 "@types/lodash": ^4.14.167 "@types/qs": ^6 "@types/semver": ^7.3.4 @@ -7701,21 +7701,21 @@ __metadata: languageName: node linkType: hard -"@storybook/blocks@7.0.0-alpha.19, @storybook/blocks@workspace:*, @storybook/blocks@workspace:lib/blocks": +"@storybook/blocks@7.0.0-alpha.21, @storybook/blocks@workspace:*, @storybook/blocks@workspace:lib/blocks": version: 0.0.0-use.local resolution: "@storybook/blocks@workspace:lib/blocks" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/preview-web": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/preview-web": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 color-convert: ^2.0.1 core-js: ^3.8.2 dequal: ^2.0.2 @@ -7732,14 +7732,14 @@ __metadata: languageName: unknown linkType: soft -"@storybook/builder-manager@7.0.0-alpha.19, @storybook/builder-manager@workspace:lib/builder-manager": +"@storybook/builder-manager@7.0.0-alpha.21, @storybook/builder-manager@workspace:lib/builder-manager": version: 0.0.0-use.local resolution: "@storybook/builder-manager@workspace:lib/builder-manager" dependencies: "@fal-works/esbuild-plugin-global-externals": ^2.1.2 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 - "@storybook/ui": 7.0.0-alpha.19 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 + "@storybook/ui": 7.0.0-alpha.21 "@types/ejs": ^3.1.1 "@yarnpkg/esbuild-plugin-pnp": ^3.0.0-rc.10 browser-assert: ^1.2.1 @@ -7754,23 +7754,23 @@ __metadata: languageName: unknown linkType: soft -"@storybook/builder-vite@7.0.0-alpha.19, @storybook/builder-vite@workspace:lib/builder-vite": +"@storybook/builder-vite@7.0.0-alpha.21, @storybook/builder-vite@workspace:lib/builder-vite": version: 0.0.0-use.local resolution: "@storybook/builder-vite@workspace:lib/builder-vite" dependencies: "@joshwooding/vite-plugin-react-docgen-typescript": 0.0.5 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/channel-postmessage": 7.0.0-alpha.19 - "@storybook/channel-websocket": 7.0.0-alpha.19 - "@storybook/client-api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/core-vite": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/channel-postmessage": 7.0.0-alpha.21 + "@storybook/channel-websocket": 7.0.0-alpha.21 + "@storybook/client-api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/core-vite": 7.0.0-alpha.21 "@storybook/mdx1-csf": 0.0.5-canary.13.9ce928a.0 "@storybook/mdx2-csf": ^0.0.3 - "@storybook/node-logger": 7.0.0-alpha.19 - "@storybook/preview-web": 7.0.0-alpha.19 - "@storybook/source-loader": 7.0.0-alpha.19 + "@storybook/node-logger": 7.0.0-alpha.21 + "@storybook/preview-web": 7.0.0-alpha.21 + "@storybook/source-loader": 7.0.0-alpha.21 "@sveltejs/vite-plugin-svelte": ^1.0.0 "@types/express": ^4.17.13 "@types/node": ^17.0.23 @@ -7798,28 +7798,28 @@ __metadata: languageName: unknown linkType: soft -"@storybook/builder-webpack5@7.0.0-alpha.19, @storybook/builder-webpack5@workspace:lib/builder-webpack5": +"@storybook/builder-webpack5@7.0.0-alpha.21, @storybook/builder-webpack5@workspace:lib/builder-webpack5": version: 0.0.0-use.local resolution: "@storybook/builder-webpack5@workspace:lib/builder-webpack5" dependencies: "@babel/core": ^7.12.10 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/channel-postmessage": 7.0.0-alpha.19 - "@storybook/channel-websocket": 7.0.0-alpha.19 - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 - "@storybook/core-webpack": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 - "@storybook/preview-web": 7.0.0-alpha.19 - "@storybook/router": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/channel-postmessage": 7.0.0-alpha.21 + "@storybook/channel-websocket": 7.0.0-alpha.21 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 + "@storybook/core-webpack": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 + "@storybook/preview-web": 7.0.0-alpha.21 + "@storybook/router": 7.0.0-alpha.21 "@storybook/semver": ^7.3.2 - "@storybook/store": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/store": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 "@types/node": ^14.0.10 || ^16.0.0 "@types/terser-webpack-plugin": ^5.2.0 "@types/webpack-dev-middleware": ^5.3.0 @@ -7858,13 +7858,13 @@ __metadata: languageName: unknown linkType: soft -"@storybook/channel-postmessage@7.0.0-alpha.19, @storybook/channel-postmessage@workspace:*, @storybook/channel-postmessage@workspace:lib/channel-postmessage": +"@storybook/channel-postmessage@7.0.0-alpha.21, @storybook/channel-postmessage@workspace:*, @storybook/channel-postmessage@workspace:lib/channel-postmessage": version: 0.0.0-use.local resolution: "@storybook/channel-postmessage@workspace:lib/channel-postmessage" dependencies: - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 qs: ^6.10.0 @@ -7873,12 +7873,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/channel-websocket@7.0.0-alpha.19, @storybook/channel-websocket@workspace:*, @storybook/channel-websocket@workspace:lib/channel-websocket": +"@storybook/channel-websocket@7.0.0-alpha.21, @storybook/channel-websocket@workspace:*, @storybook/channel-websocket@workspace:lib/channel-websocket": version: 0.0.0-use.local resolution: "@storybook/channel-websocket@workspace:lib/channel-websocket" dependencies: - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 telejson: ^6.0.8 @@ -7886,7 +7886,7 @@ __metadata: languageName: unknown linkType: soft -"@storybook/channels@7.0.0-alpha.19, @storybook/channels@workspace:*, @storybook/channels@workspace:lib/channels": +"@storybook/channels@7.0.0-alpha.21, @storybook/channels@workspace:*, @storybook/channels@workspace:lib/channels": version: 0.0.0-use.local resolution: "@storybook/channels@workspace:lib/channels" dependencies: @@ -7908,20 +7908,20 @@ __metadata: languageName: node linkType: hard -"@storybook/cli@7.0.0-alpha.19, @storybook/cli@workspace:*, @storybook/cli@workspace:lib/cli": +"@storybook/cli@7.0.0-alpha.21, @storybook/cli@workspace:*, @storybook/cli@workspace:lib/cli": version: 0.0.0-use.local resolution: "@storybook/cli@workspace:lib/cli" dependencies: "@babel/core": ^7.12.10 "@babel/preset-env": ^7.12.11 - "@storybook/client-api": 7.0.0-alpha.19 - "@storybook/codemod": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/core-server": 7.0.0-alpha.19 - "@storybook/csf-tools": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/client-api": 7.0.0-alpha.21 + "@storybook/codemod": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/core-server": 7.0.0-alpha.21 + "@storybook/csf-tools": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 "@storybook/semver": ^7.3.2 - "@storybook/telemetry": 7.0.0-alpha.19 + "@storybook/telemetry": 7.0.0-alpha.21 "@types/cross-spawn": ^6.0.2 "@types/degit": ^2.8.3 "@types/prompts": ^2.0.9 @@ -7960,17 +7960,17 @@ __metadata: languageName: unknown linkType: soft -"@storybook/client-api@7.0.0-alpha.19, @storybook/client-api@workspace:*, @storybook/client-api@workspace:lib/client-api": +"@storybook/client-api@7.0.0-alpha.21, @storybook/client-api@workspace:*, @storybook/client-api@workspace:lib/client-api": version: 0.0.0-use.local resolution: "@storybook/client-api@workspace:lib/client-api" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/channel-postmessage": 7.0.0-alpha.19 - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/channel-postmessage": 7.0.0-alpha.21 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/store": 7.0.0-alpha.21 "@types/qs": ^6.9.5 "@types/webpack-env": ^1.16.4 core-js: ^3.8.2 @@ -7990,7 +7990,7 @@ __metadata: languageName: unknown linkType: soft -"@storybook/client-logger@7.0.0-alpha.19, @storybook/client-logger@workspace:*, @storybook/client-logger@workspace:lib/client-logger": +"@storybook/client-logger@7.0.0-alpha.21, @storybook/client-logger@workspace:*, @storybook/client-logger@workspace:lib/client-logger": version: 0.0.0-use.local resolution: "@storybook/client-logger@workspace:lib/client-logger" dependencies: @@ -8010,15 +8010,15 @@ __metadata: languageName: node linkType: hard -"@storybook/codemod@7.0.0-alpha.19, @storybook/codemod@workspace:*, @storybook/codemod@workspace:lib/codemod": +"@storybook/codemod@7.0.0-alpha.21, @storybook/codemod@workspace:*, @storybook/codemod@workspace:lib/codemod": version: 0.0.0-use.local resolution: "@storybook/codemod@workspace:lib/codemod" dependencies: "@babel/types": ^7.12.11 "@mdx-js/mdx": ^1.6.22 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/csf-tools": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/csf-tools": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 core-js: ^3.8.2 cross-spawn: ^7.0.3 globby: ^11.0.2 @@ -8032,14 +8032,14 @@ __metadata: languageName: unknown linkType: soft -"@storybook/components@7.0.0-alpha.19, @storybook/components@workspace:*, @storybook/components@workspace:lib/components": +"@storybook/components@7.0.0-alpha.21, @storybook/components@workspace:*, @storybook/components@workspace:lib/components": version: 0.0.0-use.local resolution: "@storybook/components@workspace:lib/components" dependencies: "@popperjs/core": ^2.6.0 - "@storybook/client-logger": 7.0.0-alpha.19 + "@storybook/client-logger": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/theming": 7.0.0-alpha.21 "@testing-library/jest-dom": ^5.16.4 "@types/color-convert": ^2.0.0 "@types/lodash": ^4.14.182 @@ -8074,20 +8074,20 @@ __metadata: languageName: unknown linkType: soft -"@storybook/core-client@7.0.0-alpha.19, @storybook/core-client@workspace:lib/core-client": +"@storybook/core-client@7.0.0-alpha.21, @storybook/core-client@workspace:lib/core-client": version: 0.0.0-use.local resolution: "@storybook/core-client@workspace:lib/core-client" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/channel-postmessage": 7.0.0-alpha.19 - "@storybook/channel-websocket": 7.0.0-alpha.19 - "@storybook/client-api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/channel-postmessage": 7.0.0-alpha.21 + "@storybook/channel-websocket": 7.0.0-alpha.21 + "@storybook/client-api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/preview-web": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 - "@storybook/ui": 7.0.0-alpha.19 + "@storybook/preview-web": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 + "@storybook/ui": 7.0.0-alpha.21 ansi-to-html: ^0.6.11 core-js: ^3.8.2 global: ^4.4.0 @@ -8103,7 +8103,7 @@ __metadata: languageName: unknown linkType: soft -"@storybook/core-common@7.0.0-alpha.19, @storybook/core-common@workspace:lib/core-common": +"@storybook/core-common@7.0.0-alpha.21, @storybook/core-common@workspace:lib/core-common": version: 0.0.0-use.local resolution: "@storybook/core-common@workspace:lib/core-common" dependencies: @@ -8130,7 +8130,7 @@ __metadata: "@babel/preset-typescript": ^7.12.7 "@babel/register": ^7.12.1 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/node-logger": 7.0.0-alpha.21 "@storybook/semver": ^7.3.2 "@types/babel__core": ^7.0.0 "@types/compression": ^1.7.0 @@ -8174,7 +8174,7 @@ __metadata: languageName: unknown linkType: soft -"@storybook/core-events@7.0.0-alpha.19, @storybook/core-events@workspace:*, @storybook/core-events@workspace:lib/core-events": +"@storybook/core-events@7.0.0-alpha.21, @storybook/core-events@workspace:*, @storybook/core-events@workspace:lib/core-events": version: 0.0.0-use.local resolution: "@storybook/core-events@workspace:lib/core-events" dependencies: @@ -8192,24 +8192,24 @@ __metadata: languageName: node linkType: hard -"@storybook/core-server@7.0.0-alpha.19, @storybook/core-server@workspace:lib/core-server": +"@storybook/core-server@7.0.0-alpha.21, @storybook/core-server@workspace:lib/core-server": version: 0.0.0-use.local resolution: "@storybook/core-server@workspace:lib/core-server" dependencies: "@aw-web-design/x-default-browser": 1.4.88 "@discoveryjs/json-ext": ^0.5.3 - "@storybook/builder-manager": 7.0.0-alpha.19 - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/builder-manager": 7.0.0-alpha.21 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/csf-tools": 7.0.0-alpha.19 + "@storybook/csf-tools": 7.0.0-alpha.21 "@storybook/docs-mdx": 0.0.1-canary.12433cf.0 - "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/node-logger": 7.0.0-alpha.21 "@storybook/semver": ^7.3.2 - "@storybook/store": 7.0.0-alpha.19 - "@storybook/telemetry": 7.0.0-alpha.19 + "@storybook/store": 7.0.0-alpha.21 + "@storybook/telemetry": 7.0.0-alpha.21 "@types/compression": ^1.7.0 "@types/ip": ^1.1.0 "@types/node": ^14.0.10 || ^16.0.0 @@ -8257,12 +8257,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/core-vite@7.0.0-alpha.19, @storybook/core-vite@workspace:lib/core-vite": +"@storybook/core-vite@7.0.0-alpha.21, @storybook/core-vite@workspace:lib/core-vite": version: 0.0.0-use.local resolution: "@storybook/core-vite@workspace:lib/core-vite" dependencies: - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 "@types/node": ^14.0.10 || ^16.0.0 core-js: ^3.8.2 ts-dedent: ^2.0.0 @@ -8270,12 +8270,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/core-webpack@7.0.0-alpha.19, @storybook/core-webpack@workspace:*, @storybook/core-webpack@workspace:lib/core-webpack": +"@storybook/core-webpack@7.0.0-alpha.21, @storybook/core-webpack@workspace:*, @storybook/core-webpack@workspace:lib/core-webpack": version: 0.0.0-use.local resolution: "@storybook/core-webpack@workspace:lib/core-webpack" dependencies: - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 "@types/node": ^14.0.10 || ^16.0.0 core-js: ^3.8.2 ts-dedent: ^2.0.0 @@ -8283,7 +8283,7 @@ __metadata: languageName: unknown linkType: soft -"@storybook/csf-tools@7.0.0-alpha.19, @storybook/csf-tools@workspace:*, @storybook/csf-tools@workspace:lib/csf-tools": +"@storybook/csf-tools@7.0.0-alpha.21, @storybook/csf-tools@workspace:*, @storybook/csf-tools@workspace:lib/csf-tools": version: 0.0.0-use.local resolution: "@storybook/csf-tools@workspace:lib/csf-tools" dependencies: @@ -8368,13 +8368,13 @@ __metadata: languageName: node linkType: hard -"@storybook/docs-tools@7.0.0-alpha.19, @storybook/docs-tools@workspace:*, @storybook/docs-tools@workspace:lib/docs-tools": +"@storybook/docs-tools@7.0.0-alpha.21, @storybook/docs-tools@workspace:*, @storybook/docs-tools@workspace:lib/docs-tools": version: 0.0.0-use.local resolution: "@storybook/docs-tools@workspace:lib/docs-tools" dependencies: "@babel/core": ^7.12.10 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/store": 7.0.0-alpha.21 core-js: ^3.8.2 doctrine: ^3.0.0 jest-specific-snapshot: ^4.0.0 @@ -8396,15 +8396,15 @@ __metadata: languageName: node linkType: hard -"@storybook/ember@7.0.0-alpha.19, @storybook/ember@workspace:*, @storybook/ember@workspace:frameworks/ember": +"@storybook/ember@7.0.0-alpha.21, @storybook/ember@workspace:*, @storybook/ember@workspace:frameworks/ember": version: 0.0.0-use.local resolution: "@storybook/ember@workspace:frameworks/ember" dependencies: - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 react: 16.14.0 @@ -8437,14 +8437,14 @@ __metadata: "@babel/preset-env": ^7.12.11 "@babel/preset-react": ^7.12.10 "@babel/preset-typescript": ^7.12.7 - "@storybook/addon-essentials": 7.0.0-alpha.19 - "@storybook/addon-storyshots": 7.0.0-alpha.19 - "@storybook/addon-storysource": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/cli": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/react-webpack5": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/addon-essentials": 7.0.0-alpha.21 + "@storybook/addon-storyshots": 7.0.0-alpha.21 + "@storybook/addon-storysource": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/cli": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/react-webpack5": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 "@types/babel__preset-env": ^7 "@types/react": ^16.14.23 "@types/react-dom": ^16.9.14 @@ -8452,7 +8452,7 @@ __metadata: lodash: ^4.17.21 react: 16.14.0 react-dom: 16.14.0 - sb: 7.0.0-alpha.19 + sb: 7.0.0-alpha.21 typescript: ~4.6.3 webpack: 5 languageName: unknown @@ -8465,15 +8465,15 @@ __metadata: "@babel/preset-env": ^7.12.11 "@babel/preset-react": ^7.12.10 "@babel/preset-typescript": ^7.12.7 - "@storybook/addon-essentials": 7.0.0-alpha.19 - "@storybook/addon-storyshots": 7.0.0-alpha.19 - "@storybook/addon-storysource": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/cli": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/react": 7.0.0-alpha.19 - "@storybook/react-webpack5": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/addon-essentials": 7.0.0-alpha.21 + "@storybook/addon-storyshots": 7.0.0-alpha.21 + "@storybook/addon-storysource": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/cli": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/react": 7.0.0-alpha.21 + "@storybook/react-webpack5": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 "@testing-library/dom": ^7.31.2 "@testing-library/react": 12.1.2 "@testing-library/user-event": ^13.1.9 @@ -8486,7 +8486,7 @@ __metadata: prop-types: 15.7.2 react: 16.14.0 react-dom: 16.14.0 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 typescript: ~4.6.3 webpack: 5 languageName: unknown @@ -8498,15 +8498,15 @@ __metadata: dependencies: "@mdx-js/preact": ^1.6.0 "@mdx-js/react": ^1.6.0 - "@storybook/addon-essentials": 7.0.0-alpha.19 - "@storybook/builder-vite": 7.0.0-alpha.19 - "@storybook/react": 7.0.0-alpha.19 - "@storybook/react-vite": 7.0.0-alpha.19 + "@storybook/addon-essentials": 7.0.0-alpha.21 + "@storybook/builder-vite": 7.0.0-alpha.21 + "@storybook/react": 7.0.0-alpha.21 + "@storybook/react-vite": 7.0.0-alpha.21 "@vitejs/plugin-react": ^1.0.7 prop-types: ^15.8.1 react: ^17.0.2 react-dom: ^17.0.2 - sb: 7.0.0-alpha.19 + sb: 7.0.0-alpha.21 vite: ^2.9.0 languageName: unknown linkType: soft @@ -8525,15 +8525,15 @@ __metadata: resolution: "@storybook/external-docs@workspace:examples/external-docs" dependencies: "@babel/preset-env": ^7.17.10 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-essentials": 7.0.0-alpha.19 - "@storybook/blocks": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-essentials": 7.0.0-alpha.21 + "@storybook/blocks": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/preview-web": 7.0.0-alpha.19 - "@storybook/react": 7.0.0-alpha.19 - "@storybook/react-webpack5": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/preview-web": 7.0.0-alpha.21 + "@storybook/react": 7.0.0-alpha.21 + "@storybook/react-webpack5": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 "@testing-library/dom": ^7.31.2 "@testing-library/user-event": ^13.1.9 "@types/babel__preset-env": ^7 @@ -8549,20 +8549,20 @@ __metadata: prop-types: ^15.8.1 react: 16.14.0 react-dom: 16.14.0 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 typescript: ~4.6.3 webpack: 5 languageName: unknown linkType: soft -"@storybook/html-webpack5@7.0.0-alpha.19, @storybook/html-webpack5@workspace:*, @storybook/html-webpack5@workspace:frameworks/html-webpack5": +"@storybook/html-webpack5@7.0.0-alpha.21, @storybook/html-webpack5@workspace:*, @storybook/html-webpack5@workspace:frameworks/html-webpack5": version: 0.0.0-use.local resolution: "@storybook/html-webpack5@workspace:frameworks/html-webpack5" dependencies: - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/html": 7.0.0-alpha.19 - "@storybook/preset-html-webpack": 7.0.0-alpha.19 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/html": 7.0.0-alpha.21 + "@storybook/preset-html-webpack": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 global: ^4.4.0 @@ -8574,16 +8574,16 @@ __metadata: languageName: unknown linkType: soft -"@storybook/html@7.0.0-alpha.19, @storybook/html@workspace:*, @storybook/html@workspace:renderers/html": +"@storybook/html@7.0.0-alpha.21, @storybook/html@workspace:*, @storybook/html@workspace:renderers/html": version: 0.0.0-use.local resolution: "@storybook/html@workspace:renderers/html" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/preview-web": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/preview-web": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 react: 16.14.0 @@ -8595,13 +8595,13 @@ __metadata: languageName: unknown linkType: soft -"@storybook/instrumenter@7.0.0-alpha.19, @storybook/instrumenter@workspace:*, @storybook/instrumenter@workspace:lib/instrumenter": +"@storybook/instrumenter@7.0.0-alpha.21, @storybook/instrumenter@workspace:*, @storybook/instrumenter@workspace:lib/instrumenter": version: 0.0.0-use.local resolution: "@storybook/instrumenter@workspace:lib/instrumenter" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 typescript: ~4.6.3 @@ -8713,7 +8713,7 @@ __metadata: languageName: node linkType: hard -"@storybook/node-logger@7.0.0-alpha.19, @storybook/node-logger@workspace:*, @storybook/node-logger@workspace:lib/node-logger": +"@storybook/node-logger@7.0.0-alpha.21, @storybook/node-logger@workspace:*, @storybook/node-logger@workspace:lib/node-logger": version: 0.0.0-use.local resolution: "@storybook/node-logger@workspace:lib/node-logger" dependencies: @@ -8740,7 +8740,7 @@ __metadata: languageName: node linkType: hard -"@storybook/postinstall@7.0.0-alpha.19, @storybook/postinstall@workspace:*, @storybook/postinstall@workspace:lib/postinstall": +"@storybook/postinstall@7.0.0-alpha.21, @storybook/postinstall@workspace:*, @storybook/postinstall@workspace:lib/postinstall": version: 0.0.0-use.local resolution: "@storybook/postinstall@workspace:lib/postinstall" dependencies: @@ -8752,14 +8752,14 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preact-webpack5@7.0.0-alpha.19, @storybook/preact-webpack5@workspace:*, @storybook/preact-webpack5@workspace:frameworks/preact-webpack5": +"@storybook/preact-webpack5@7.0.0-alpha.21, @storybook/preact-webpack5@workspace:*, @storybook/preact-webpack5@workspace:frameworks/preact-webpack5": version: 0.0.0-use.local resolution: "@storybook/preact-webpack5@workspace:frameworks/preact-webpack5" dependencies: - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/preact": 7.0.0-alpha.19 - "@storybook/preset-preact-webpack": 7.0.0-alpha.19 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/preact": 7.0.0-alpha.21 + "@storybook/preset-preact-webpack": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 preact: ^10.5.13 @@ -8772,14 +8772,14 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preact@7.0.0-alpha.19, @storybook/preact@workspace:*, @storybook/preact@workspace:renderers/preact": +"@storybook/preact@7.0.0-alpha.21, @storybook/preact@workspace:*, @storybook/preact@workspace:renderers/preact": version: 0.0.0-use.local resolution: "@storybook/preact@workspace:renderers/preact" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/store": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 preact: ^10.5.13 @@ -8811,11 +8811,11 @@ __metadata: languageName: node linkType: hard -"@storybook/preset-html-webpack@7.0.0-alpha.19, @storybook/preset-html-webpack@workspace:*, @storybook/preset-html-webpack@workspace:presets/html-webpack": +"@storybook/preset-html-webpack@7.0.0-alpha.21, @storybook/preset-html-webpack@workspace:*, @storybook/preset-html-webpack@workspace:presets/html-webpack": version: 0.0.0-use.local resolution: "@storybook/preset-html-webpack@workspace:presets/html-webpack" dependencies: - "@storybook/core-webpack": 7.0.0-alpha.19 + "@storybook/core-webpack": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 html-loader: ^3.1.0 @@ -8828,12 +8828,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preset-preact-webpack@7.0.0-alpha.19, @storybook/preset-preact-webpack@workspace:*, @storybook/preset-preact-webpack@workspace:presets/preact-webpack": +"@storybook/preset-preact-webpack@7.0.0-alpha.21, @storybook/preset-preact-webpack@workspace:*, @storybook/preset-preact-webpack@workspace:presets/preact-webpack": version: 0.0.0-use.local resolution: "@storybook/preset-preact-webpack@workspace:presets/preact-webpack" dependencies: "@babel/plugin-transform-react-jsx": ^7.12.12 - "@storybook/core-webpack": 7.0.0-alpha.19 + "@storybook/core-webpack": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 preact: ^10.5.13 @@ -8846,17 +8846,17 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preset-react-webpack@7.0.0-alpha.19, @storybook/preset-react-webpack@workspace:*, @storybook/preset-react-webpack@workspace:presets/react-webpack": +"@storybook/preset-react-webpack@7.0.0-alpha.21, @storybook/preset-react-webpack@workspace:*, @storybook/preset-react-webpack@workspace:presets/react-webpack": version: 0.0.0-use.local resolution: "@storybook/preset-react-webpack@workspace:presets/react-webpack" dependencies: "@babel/preset-flow": ^7.12.1 "@babel/preset-react": ^7.12.10 "@pmmmwh/react-refresh-webpack-plugin": ^0.5.5 - "@storybook/core-webpack": 7.0.0-alpha.19 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 - "@storybook/react": 7.0.0-alpha.19 + "@storybook/core-webpack": 7.0.0-alpha.21 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 + "@storybook/react": 7.0.0-alpha.21 "@storybook/react-docgen-typescript-plugin": 1.0.2-canary.6.9d540b91e815f8fc2f8829189deb00553559ff63.0 "@storybook/semver": ^7.3.2 "@types/node": ^14.14.20 || ^16.0.0 @@ -8893,13 +8893,13 @@ __metadata: languageName: node linkType: hard -"@storybook/preset-server-webpack@7.0.0-alpha.19, @storybook/preset-server-webpack@workspace:*, @storybook/preset-server-webpack@workspace:presets/server-webpack": +"@storybook/preset-server-webpack@7.0.0-alpha.21, @storybook/preset-server-webpack@workspace:*, @storybook/preset-server-webpack@workspace:presets/server-webpack": version: 0.0.0-use.local resolution: "@storybook/preset-server-webpack@workspace:presets/server-webpack" dependencies: - "@storybook/core-server": 7.0.0-alpha.19 - "@storybook/core-webpack": 7.0.0-alpha.19 - "@storybook/server": 7.0.0-alpha.19 + "@storybook/core-server": 7.0.0-alpha.21 + "@storybook/core-webpack": 7.0.0-alpha.21 + "@storybook/server": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 fs-extra: ^9.0.1 @@ -8915,12 +8915,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preset-svelte-webpack@7.0.0-alpha.19, @storybook/preset-svelte-webpack@workspace:*, @storybook/preset-svelte-webpack@workspace:presets/svelte-webpack": +"@storybook/preset-svelte-webpack@7.0.0-alpha.21, @storybook/preset-svelte-webpack@workspace:*, @storybook/preset-svelte-webpack@workspace:presets/svelte-webpack": version: 0.0.0-use.local resolution: "@storybook/preset-svelte-webpack@workspace:presets/svelte-webpack" dependencies: - "@storybook/core-webpack": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 + "@storybook/core-webpack": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 core-js: ^3.8.2 react: 16.14.0 react-dom: 16.14.0 @@ -8936,12 +8936,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preset-vue-webpack@7.0.0-alpha.19, @storybook/preset-vue-webpack@workspace:*, @storybook/preset-vue-webpack@workspace:presets/vue-webpack": +"@storybook/preset-vue-webpack@7.0.0-alpha.21, @storybook/preset-vue-webpack@workspace:*, @storybook/preset-vue-webpack@workspace:presets/vue-webpack": version: 0.0.0-use.local resolution: "@storybook/preset-vue-webpack@workspace:presets/vue-webpack" dependencies: - "@storybook/core-webpack": 7.0.0-alpha.19 - "@storybook/docs-tools": 7.0.0-alpha.19 + "@storybook/core-webpack": 7.0.0-alpha.21 + "@storybook/docs-tools": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 react: 16.14.0 @@ -8964,12 +8964,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preset-vue3-webpack@7.0.0-alpha.19, @storybook/preset-vue3-webpack@workspace:*, @storybook/preset-vue3-webpack@workspace:presets/vue3-webpack": +"@storybook/preset-vue3-webpack@7.0.0-alpha.21, @storybook/preset-vue3-webpack@workspace:*, @storybook/preset-vue3-webpack@workspace:presets/vue3-webpack": version: 0.0.0-use.local resolution: "@storybook/preset-vue3-webpack@workspace:presets/vue3-webpack" dependencies: - "@storybook/core-webpack": 7.0.0-alpha.19 - "@storybook/docs-tools": 7.0.0-alpha.19 + "@storybook/core-webpack": 7.0.0-alpha.21 + "@storybook/docs-tools": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 "@vue/compiler-sfc": ^3.2.33 core-js: ^3.8.2 @@ -8990,14 +8990,14 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preset-web-components-webpack@7.0.0-alpha.19, @storybook/preset-web-components-webpack@workspace:*, @storybook/preset-web-components-webpack@workspace:presets/web-components-webpack": +"@storybook/preset-web-components-webpack@7.0.0-alpha.21, @storybook/preset-web-components-webpack@workspace:*, @storybook/preset-web-components-webpack@workspace:presets/web-components-webpack": version: 0.0.0-use.local resolution: "@storybook/preset-web-components-webpack@workspace:presets/web-components-webpack" dependencies: "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/preset-env": ^7.12.11 - "@storybook/core-webpack": 7.0.0-alpha.19 + "@storybook/core-webpack": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 babel-loader: ^7.0.0 || ^8.0.0 babel-plugin-bundled-import-meta: ^0.3.1 @@ -9011,17 +9011,17 @@ __metadata: languageName: unknown linkType: soft -"@storybook/preview-web@7.0.0-alpha.19, @storybook/preview-web@workspace:*, @storybook/preview-web@workspace:lib/preview-web": +"@storybook/preview-web@7.0.0-alpha.21, @storybook/preview-web@workspace:*, @storybook/preview-web@workspace:lib/preview-web": version: 0.0.0-use.local resolution: "@storybook/preview-web@workspace:lib/preview-web" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/channel-postmessage": 7.0.0-alpha.19 - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/channel-postmessage": 7.0.0-alpha.21 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/store": 7.0.0-alpha.21 ansi-to-html: ^0.6.11 core-js: ^3.8.2 global: ^4.4.0 @@ -9052,16 +9052,16 @@ __metadata: languageName: node linkType: hard -"@storybook/react-vite@7.0.0-alpha.19, @storybook/react-vite@workspace:frameworks/react-vite": +"@storybook/react-vite@7.0.0-alpha.21, @storybook/react-vite@workspace:frameworks/react-vite": version: 0.0.0-use.local resolution: "@storybook/react-vite@workspace:frameworks/react-vite" dependencies: "@joshwooding/vite-plugin-react-docgen-typescript": 0.0.4 "@rollup/pluginutils": ^4.2.0 - "@storybook/builder-vite": 7.0.0-alpha.19 - "@storybook/core-server": 7.0.0-alpha.19 - "@storybook/core-vite": 7.0.0-alpha.19 - "@storybook/react": 7.0.0-alpha.19 + "@storybook/builder-vite": 7.0.0-alpha.21 + "@storybook/core-server": 7.0.0-alpha.21 + "@storybook/core-vite": 7.0.0-alpha.21 + "@storybook/react": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 "@vitejs/plugin-react": ^1.0.8 ast-types: ^0.14.2 @@ -9083,13 +9083,13 @@ __metadata: languageName: unknown linkType: soft -"@storybook/react-webpack5@7.0.0-alpha.19, @storybook/react-webpack5@workspace:*, @storybook/react-webpack5@workspace:frameworks/react-webpack5": +"@storybook/react-webpack5@7.0.0-alpha.21, @storybook/react-webpack5@workspace:*, @storybook/react-webpack5@workspace:frameworks/react-webpack5": version: 0.0.0-use.local resolution: "@storybook/react-webpack5@workspace:frameworks/react-webpack5" dependencies: - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/preset-react-webpack": 7.0.0-alpha.19 - "@storybook/react": 7.0.0-alpha.19 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/preset-react-webpack": 7.0.0-alpha.21 + "@storybook/react": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 jest-specific-snapshot: ^4.0.0 @@ -9106,17 +9106,17 @@ __metadata: languageName: unknown linkType: soft -"@storybook/react@7.0.0-alpha.19, @storybook/react@workspace:*, @storybook/react@workspace:renderers/react": +"@storybook/react@7.0.0-alpha.21, @storybook/react@workspace:*, @storybook/react@workspace:renderers/react": version: 0.0.0-use.local resolution: "@storybook/react@workspace:renderers/react" dependencies: "@babel/core": ^7.11.5 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 "@types/estree": ^0.0.51 "@types/node": ^14.14.20 || ^16.0.0 "@types/util-deprecate": ^1.0.0 @@ -9419,11 +9419,11 @@ __metadata: languageName: unknown linkType: soft -"@storybook/router@7.0.0-alpha.19, @storybook/router@workspace:*, @storybook/router@workspace:lib/router": +"@storybook/router@7.0.0-alpha.21, @storybook/router@workspace:*, @storybook/router@workspace:lib/router": version: 0.0.0-use.local resolution: "@storybook/router@workspace:lib/router" dependencies: - "@storybook/client-logger": 7.0.0-alpha.19 + "@storybook/client-logger": 7.0.0-alpha.21 core-js: ^3.8.2 dequal: ^2.0.2 global: ^4.4.0 @@ -9470,14 +9470,14 @@ __metadata: languageName: node linkType: hard -"@storybook/server-webpack5@7.0.0-alpha.19, @storybook/server-webpack5@workspace:*, @storybook/server-webpack5@workspace:frameworks/server-webpack5": +"@storybook/server-webpack5@7.0.0-alpha.21, @storybook/server-webpack5@workspace:*, @storybook/server-webpack5@workspace:frameworks/server-webpack5": version: 0.0.0-use.local resolution: "@storybook/server-webpack5@workspace:frameworks/server-webpack5" dependencies: - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/preset-server-webpack": 7.0.0-alpha.19 - "@storybook/server": 7.0.0-alpha.19 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/preset-server-webpack": 7.0.0-alpha.21 + "@storybook/server": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 react: 16.14.0 @@ -9486,15 +9486,15 @@ __metadata: languageName: unknown linkType: soft -"@storybook/server@7.0.0-alpha.19, @storybook/server@workspace:*, @storybook/server@workspace:renderers/server": +"@storybook/server@7.0.0-alpha.21, @storybook/server@workspace:*, @storybook/server@workspace:renderers/server": version: 0.0.0-use.local resolution: "@storybook/server@workspace:renderers/server" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/preview-web": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/preview-web": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 react: 16.14.0 @@ -9504,12 +9504,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/source-loader@7.0.0-alpha.19, @storybook/source-loader@workspace:*, @storybook/source-loader@workspace:lib/source-loader": +"@storybook/source-loader@7.0.0-alpha.21, @storybook/source-loader@workspace:*, @storybook/source-loader@workspace:lib/source-loader": version: 0.0.0-use.local resolution: "@storybook/source-loader@workspace:lib/source-loader" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 core-js: ^3.8.2 estraverse: ^5.2.0 @@ -9523,13 +9523,13 @@ __metadata: languageName: unknown linkType: soft -"@storybook/store@7.0.0-alpha.19, @storybook/store@workspace:*, @storybook/store@workspace:lib/store": +"@storybook/store@7.0.0-alpha.21, @storybook/store@workspace:*, @storybook/store@workspace:lib/store": version: 0.0.0-use.local resolution: "@storybook/store@workspace:lib/store" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 core-js: ^3.8.2 dequal: ^2.0.2 @@ -9548,14 +9548,14 @@ __metadata: languageName: unknown linkType: soft -"@storybook/svelte-webpack5@7.0.0-alpha.19, @storybook/svelte-webpack5@workspace:*, @storybook/svelte-webpack5@workspace:frameworks/svelte-webpack5": +"@storybook/svelte-webpack5@7.0.0-alpha.21, @storybook/svelte-webpack5@workspace:*, @storybook/svelte-webpack5@workspace:frameworks/svelte-webpack5": version: 0.0.0-use.local resolution: "@storybook/svelte-webpack5@workspace:frameworks/svelte-webpack5" dependencies: - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/preset-svelte-webpack": 7.0.0-alpha.19 - "@storybook/svelte": 7.0.0-alpha.19 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/preset-svelte-webpack": 7.0.0-alpha.21 + "@storybook/svelte": 7.0.0-alpha.21 core-js: ^3.8.2 react: 16.14.0 react-dom: 16.14.0 @@ -9569,16 +9569,16 @@ __metadata: languageName: unknown linkType: soft -"@storybook/svelte@7.0.0-alpha.19, @storybook/svelte@workspace:*, @storybook/svelte@workspace:renderers/svelte": +"@storybook/svelte@7.0.0-alpha.21, @storybook/svelte@workspace:*, @storybook/svelte@workspace:renderers/svelte": version: 0.0.0-use.local resolution: "@storybook/svelte@workspace:renderers/svelte" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 react: 16.14.0 @@ -9592,12 +9592,12 @@ __metadata: languageName: unknown linkType: soft -"@storybook/telemetry@7.0.0-alpha.19, @storybook/telemetry@workspace:*, @storybook/telemetry@workspace:lib/telemetry": +"@storybook/telemetry@7.0.0-alpha.21, @storybook/telemetry@workspace:*, @storybook/telemetry@workspace:lib/telemetry": version: 0.0.0-use.local resolution: "@storybook/telemetry@workspace:lib/telemetry" dependencies: - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 chalk: ^4.1.0 core-js: ^3.8.2 detect-package-manager: ^2.0.1 @@ -9637,7 +9637,7 @@ __metadata: languageName: node linkType: hard -"@storybook/theming@7.0.0-alpha.19, @storybook/theming@workspace:*, @storybook/theming@workspace:lib/theming": +"@storybook/theming@7.0.0-alpha.21, @storybook/theming@workspace:*, @storybook/theming@workspace:lib/theming": version: 0.0.0-use.local resolution: "@storybook/theming@workspace:lib/theming" dependencies: @@ -9645,7 +9645,7 @@ __metadata: "@emotion/is-prop-valid": ^1.1.2 "@emotion/react": ^11.8.1 "@emotion/styled": ^11.8.1 - "@storybook/client-logger": 7.0.0-alpha.19 + "@storybook/client-logger": 7.0.0-alpha.21 "@types/fs-extra": ^9.0.6 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 @@ -9678,24 +9678,24 @@ __metadata: languageName: node linkType: hard -"@storybook/ui@7.0.0-alpha.19, @storybook/ui@workspace:*, @storybook/ui@workspace:lib/ui": +"@storybook/ui@7.0.0-alpha.21, @storybook/ui@workspace:*, @storybook/ui@workspace:lib/ui": version: 0.0.0-use.local resolution: "@storybook/ui@workspace:lib/ui" dependencies: "@babel/core": ^7.12.10 "@fal-works/esbuild-plugin-global-externals": ^2.1.2 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/channel-postmessage": 7.0.0-alpha.19 - "@storybook/channel-websocket": 7.0.0-alpha.19 - "@storybook/channels": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/channel-postmessage": 7.0.0-alpha.21 + "@storybook/channel-websocket": 7.0.0-alpha.21 + "@storybook/channels": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/router": 7.0.0-alpha.19 + "@storybook/router": 7.0.0-alpha.21 "@storybook/semver": ^7.3.2 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/theming": 7.0.0-alpha.21 "@testing-library/react": ^11.2.2 copy-to-clipboard: ^3.3.1 core-js: ^3.8.2 @@ -9725,14 +9725,14 @@ __metadata: languageName: unknown linkType: soft -"@storybook/vue-webpack5@7.0.0-alpha.19, @storybook/vue-webpack5@workspace:*, @storybook/vue-webpack5@workspace:frameworks/vue-webpack5": +"@storybook/vue-webpack5@7.0.0-alpha.21, @storybook/vue-webpack5@workspace:*, @storybook/vue-webpack5@workspace:frameworks/vue-webpack5": version: 0.0.0-use.local resolution: "@storybook/vue-webpack5@workspace:frameworks/vue-webpack5" dependencies: - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/preset-vue-webpack": 7.0.0-alpha.19 - "@storybook/vue": 7.0.0-alpha.19 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/preset-vue-webpack": 7.0.0-alpha.21 + "@storybook/vue": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 react: 16.14.0 @@ -9751,14 +9751,14 @@ __metadata: languageName: unknown linkType: soft -"@storybook/vue3-webpack5@7.0.0-alpha.19, @storybook/vue3-webpack5@workspace:*, @storybook/vue3-webpack5@workspace:frameworks/vue3-webpack5": +"@storybook/vue3-webpack5@7.0.0-alpha.21, @storybook/vue3-webpack5@workspace:*, @storybook/vue3-webpack5@workspace:frameworks/vue3-webpack5": version: 0.0.0-use.local resolution: "@storybook/vue3-webpack5@workspace:frameworks/vue3-webpack5" dependencies: - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/preset-vue3-webpack": 7.0.0-alpha.19 - "@storybook/vue3": 7.0.0-alpha.19 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/preset-vue3-webpack": 7.0.0-alpha.21 + "@storybook/vue3": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 "@vue/compiler-sfc": 3.0.0 core-js: ^3.8.2 @@ -9774,16 +9774,16 @@ __metadata: languageName: unknown linkType: soft -"@storybook/vue3@7.0.0-alpha.19, @storybook/vue3@workspace:*, @storybook/vue3@workspace:renderers/vue3": +"@storybook/vue3@7.0.0-alpha.21, @storybook/vue3@workspace:*, @storybook/vue3@workspace:renderers/vue3": version: 0.0.0-use.local resolution: "@storybook/vue3@workspace:renderers/vue3" dependencies: "@digitak/esrun": ^3.2.2 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 react: 16.14.0 @@ -9798,16 +9798,16 @@ __metadata: languageName: unknown linkType: soft -"@storybook/vue@7.0.0-alpha.19, @storybook/vue@workspace:*, @storybook/vue@workspace:renderers/vue": +"@storybook/vue@7.0.0-alpha.21, @storybook/vue@workspace:*, @storybook/vue@workspace:renderers/vue": version: 0.0.0-use.local resolution: "@storybook/vue@workspace:renderers/vue" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 react: 16.14.0 @@ -9828,10 +9828,10 @@ __metadata: resolution: "@storybook/web-components-webpack5@workspace:frameworks/web-components-webpack5" dependencies: "@babel/preset-env": ^7.12.11 - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/core-common": 7.0.0-alpha.19 - "@storybook/preset-web-components-webpack": 7.0.0-alpha.19 - "@storybook/web-components": 7.0.0-alpha.19 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/core-common": 7.0.0-alpha.21 + "@storybook/preset-web-components-webpack": 7.0.0-alpha.21 + "@storybook/web-components": 7.0.0-alpha.21 "@types/node": ^14.14.20 || ^16.0.0 core-js: ^3.8.2 lit-html: 2.0.2 @@ -9843,18 +9843,18 @@ __metadata: languageName: unknown linkType: soft -"@storybook/web-components@7.0.0-alpha.19, @storybook/web-components@workspace:*, @storybook/web-components@workspace:renderers/web-components": +"@storybook/web-components@7.0.0-alpha.21, @storybook/web-components@workspace:*, @storybook/web-components@workspace:renderers/web-components": version: 0.0.0-use.local resolution: "@storybook/web-components@workspace:renderers/web-components" dependencies: - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/api": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 - "@storybook/core-client": 7.0.0-alpha.19 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/api": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 + "@storybook/core-client": 7.0.0-alpha.21 "@storybook/csf": 0.0.2--canary.0899bb7.0 - "@storybook/docs-tools": 7.0.0-alpha.19 - "@storybook/preview-web": 7.0.0-alpha.19 - "@storybook/store": 7.0.0-alpha.19 + "@storybook/docs-tools": 7.0.0-alpha.21 + "@storybook/preview-web": 7.0.0-alpha.21 + "@storybook/store": 7.0.0-alpha.21 core-js: ^3.8.2 global: ^4.4.0 lit-html: 2.0.2 @@ -13046,22 +13046,22 @@ __metadata: "@angular/platform-browser-dynamic": ^13.3.6 "@compodoc/compodoc": ^1.1.18 "@ngrx/store": ^13.2.0 - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-controls": 7.0.0-alpha.19 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-interactions": 7.0.0-alpha.19 - "@storybook/addon-jest": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/addon-storyshots": 7.0.0-alpha.19 - "@storybook/addon-storysource": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/angular": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-controls": 7.0.0-alpha.21 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-interactions": 7.0.0-alpha.21 + "@storybook/addon-jest": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/addon-storyshots": 7.0.0-alpha.21 + "@storybook/addon-storysource": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/angular": 7.0.0-alpha.21 "@storybook/babel-plugin-require-context-hook": 1.0.1 "@storybook/jest": ^0.0.10 - "@storybook/source-loader": 7.0.0-alpha.19 + "@storybook/source-loader": 7.0.0-alpha.21 "@storybook/testing-library": 0.0.14-next.0 "@types/core-js": ^2.5.4 "@types/jest": ^26.0.16 @@ -13077,7 +13077,7 @@ __metadata: protractor: ~7.0.0 rxjs: ^6.6.7 sass: ^1.43.4 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 storybook-addon-angular-ivy: ^0.0.1 telejson: ^6.0.8 ts-jest: ^26.4.4 @@ -17636,28 +17636,28 @@ __metadata: resolution: "cra-kitchen-sink@workspace:examples/cra-kitchen-sink" dependencies: "@pmmmwh/react-refresh-webpack-plugin": ^0.5.5 - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-jest": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/addon-storyshots": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/client-logger": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-jest": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/addon-storyshots": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/client-logger": 7.0.0-alpha.21 "@storybook/preset-create-react-app": ^4.1.0 - "@storybook/react": 7.0.0-alpha.19 - "@storybook/react-webpack5": 7.0.0-alpha.19 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/react": 7.0.0-alpha.21 + "@storybook/react-webpack5": 7.0.0-alpha.21 + "@storybook/theming": 7.0.0-alpha.21 global: ^4.4.0 prop-types: ^15.7.2 react: 16.14.0 react-dom: 16.14.0 react-lifecycles-compat: ^3.0.4 react-scripts: ^5.0.1 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 webpack: 5 languageName: unknown linkType: soft @@ -17666,15 +17666,15 @@ __metadata: version: 0.0.0-use.local resolution: "cra-ts-essentials@workspace:examples/cra-ts-essentials" dependencies: - "@storybook/addon-essentials": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/builder-webpack5": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 + "@storybook/addon-essentials": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/builder-webpack5": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 "@storybook/preset-create-react-app": ^4.1.0 - "@storybook/react": 7.0.0-alpha.19 - "@storybook/react-webpack5": 7.0.0-alpha.19 + "@storybook/react": 7.0.0-alpha.21 + "@storybook/react-webpack5": 7.0.0-alpha.21 "@storybook/testing-library": ^0.0.9 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/theming": 7.0.0-alpha.21 "@types/jest": ^26.0.16 "@types/node": ^14.14.20 || ^16.0.0 "@types/react": ^16.14.23 @@ -17684,7 +17684,7 @@ __metadata: react: 16.14.0 react-dom: 16.14.0 react-scripts: ^5.0.1 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 ts-node: ^10.4.0 typescript: ~4.6.3 webpack: 5 @@ -17695,16 +17695,16 @@ __metadata: version: 0.0.0-use.local resolution: "cra-ts-kitchen-sink@workspace:examples/cra-ts-kitchen-sink" dependencies: - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/builder-webpack5": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/builder-webpack5": 7.0.0-alpha.21 "@storybook/preset-create-react-app": ^4.1.0 - "@storybook/react": 7.0.0-alpha.19 - "@storybook/react-webpack5": 7.0.0-alpha.19 + "@storybook/react": 7.0.0-alpha.21 + "@storybook/react-webpack5": 7.0.0-alpha.21 "@types/enzyme": ^3.10.8 "@types/jest": 25.2.3 "@types/node": ^14.14.20 || ^16.0.0 @@ -17719,7 +17719,7 @@ __metadata: react-dom: 16.14.0 react-moment-proptypes: ^1.7.0 react-scripts: ^5.0.1 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 ts-node: ^10.4.0 typescript: ~4.6.3 webpack: 5 @@ -20062,19 +20062,19 @@ __metadata: dependencies: "@babel/core": ^7.12.10 "@ember/optional-features": ^2.0.0 - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-controls": 7.0.0-alpha.19 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/addon-storysource": 7.0.0-alpha.19 - "@storybook/addon-viewport": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/ember": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-controls": 7.0.0-alpha.21 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/addon-storysource": 7.0.0-alpha.21 + "@storybook/addon-viewport": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/ember": 7.0.0-alpha.21 "@storybook/ember-cli-storybook": ^0.2.1 - "@storybook/source-loader": 7.0.0-alpha.19 + "@storybook/source-loader": 7.0.0-alpha.21 babel-loader: ^8.2.5 broccoli-asset-rev: ^3.0.0 browserify-zlib: ^0.2.0 @@ -20096,7 +20096,7 @@ __metadata: loader.js: ^4.7.0 os-browserify: ^0.3.0 shx: ^0.3.2 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 stream-browserify: ^3.0.0 vm-browserify: ^1.1.2 webpack: 5 @@ -24936,31 +24936,31 @@ __metadata: version: 0.0.0-use.local resolution: "html-kitchen-sink@workspace:examples/html-kitchen-sink" dependencies: - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-controls": 7.0.0-alpha.19 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-jest": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-controls": 7.0.0-alpha.21 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-jest": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 "@storybook/addon-postcss": ^2.0.0 - "@storybook/addon-storyshots": 7.0.0-alpha.19 - "@storybook/addon-storysource": 7.0.0-alpha.19 - "@storybook/addon-viewport": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/client-api": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 - "@storybook/html": 7.0.0-alpha.19 - "@storybook/html-webpack5": 7.0.0-alpha.19 - "@storybook/source-loader": 7.0.0-alpha.19 + "@storybook/addon-storyshots": 7.0.0-alpha.21 + "@storybook/addon-storysource": 7.0.0-alpha.21 + "@storybook/addon-viewport": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/client-api": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 + "@storybook/html": 7.0.0-alpha.21 + "@storybook/html-webpack5": 7.0.0-alpha.21 + "@storybook/source-loader": 7.0.0-alpha.21 autoprefixer: ^10.0.1 eventemitter3: ^4.0.7 format-json: ^1.0.3 global: ^4.4.0 postcss: ^8.2.4 postcss-color-rebeccapurple: ^6.0.0 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 languageName: unknown linkType: soft @@ -33632,33 +33632,33 @@ __metadata: dependencies: "@emotion/jest": ^11.8.0 "@pmmmwh/react-refresh-webpack-plugin": ^0.5.5 - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-controls": 7.0.0-alpha.19 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-interactions": 7.0.0-alpha.19 - "@storybook/addon-jest": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/addon-storyshots": 7.0.0-alpha.19 - "@storybook/addon-storyshots-puppeteer": 7.0.0-alpha.19 - "@storybook/addon-storysource": 7.0.0-alpha.19 - "@storybook/addon-toolbars": 7.0.0-alpha.19 - "@storybook/addon-viewport": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/cli": 7.0.0-alpha.19 - "@storybook/components": 7.0.0-alpha.19 - "@storybook/core-events": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-controls": 7.0.0-alpha.21 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-interactions": 7.0.0-alpha.21 + "@storybook/addon-jest": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/addon-storyshots": 7.0.0-alpha.21 + "@storybook/addon-storyshots-puppeteer": 7.0.0-alpha.21 + "@storybook/addon-storysource": 7.0.0-alpha.21 + "@storybook/addon-toolbars": 7.0.0-alpha.21 + "@storybook/addon-viewport": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/cli": 7.0.0-alpha.21 + "@storybook/components": 7.0.0-alpha.21 + "@storybook/core-events": 7.0.0-alpha.21 "@storybook/design-system": ^5.4.7 "@storybook/jest": ^0.0.10 - "@storybook/node-logger": 7.0.0-alpha.19 - "@storybook/react": 7.0.0-alpha.19 - "@storybook/react-webpack5": 7.0.0-alpha.19 - "@storybook/router": 7.0.0-alpha.19 - "@storybook/source-loader": 7.0.0-alpha.19 + "@storybook/node-logger": 7.0.0-alpha.21 + "@storybook/react": 7.0.0-alpha.21 + "@storybook/react-webpack5": 7.0.0-alpha.21 + "@storybook/router": 7.0.0-alpha.21 + "@storybook/source-loader": 7.0.0-alpha.21 "@storybook/testing-library": 0.0.14-next.0 - "@storybook/theming": 7.0.0-alpha.19 + "@storybook/theming": 7.0.0-alpha.21 "@testing-library/dom": ^7.31.2 "@testing-library/user-event": ^13.1.9 chromatic: ^6.0.2 @@ -33674,7 +33674,7 @@ __metadata: prop-types: ^15.7.2 react: 16.14.0 react-dom: 16.14.0 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 terser-webpack-plugin: ^5.3.1 uuid-browser: ^3.1.0 webpack: 5 @@ -36051,18 +36051,18 @@ __metadata: resolution: "preact-example@workspace:examples/preact-kitchen-sink" dependencies: "@babel/core": ^7.12.10 - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/addon-storyshots": 7.0.0-alpha.19 - "@storybook/addon-storysource": 7.0.0-alpha.19 - "@storybook/addon-viewport": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 - "@storybook/preact": 7.0.0-alpha.19 - "@storybook/preact-webpack5": 7.0.0-alpha.19 - "@storybook/source-loader": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/addon-storyshots": 7.0.0-alpha.21 + "@storybook/addon-storysource": 7.0.0-alpha.21 + "@storybook/addon-viewport": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 + "@storybook/preact": 7.0.0-alpha.21 + "@storybook/preact-webpack5": 7.0.0-alpha.21 + "@storybook/source-loader": 7.0.0-alpha.21 "@types/prop-types": ^15.7.3 "@types/react": ^17 "@types/react-dom": ^17 @@ -36077,7 +36077,7 @@ __metadata: raw-loader: ^4.0.2 react: ^17.0.2 react-dom: ^17.0.2 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 svg-url-loader: ^7.1.1 webpack: 5 webpack-dev-server: ^4.8.1 @@ -39809,11 +39809,11 @@ __metadata: languageName: node linkType: hard -"sb@7.0.0-alpha.19, sb@workspace:lib/cli-sb": +"sb@7.0.0-alpha.21, sb@workspace:lib/cli-sb": version: 0.0.0-use.local resolution: "sb@workspace:lib/cli-sb" dependencies: - "@storybook/cli": 7.0.0-alpha.19 + "@storybook/cli": 7.0.0-alpha.21 typescript: ~4.6.3 bin: sb: ./index.js @@ -40187,15 +40187,15 @@ __metadata: version: 0.0.0-use.local resolution: "server-kitchen-sink@workspace:examples/server-kitchen-sink" dependencies: - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-controls": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/node-logger": 7.0.0-alpha.19 - "@storybook/server": 7.0.0-alpha.19 - "@storybook/server-webpack5": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-controls": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/node-logger": 7.0.0-alpha.21 + "@storybook/server": 7.0.0-alpha.21 + "@storybook/server-webpack5": 7.0.0-alpha.21 concurrently: ^5.3.0 cors: ^2.8.5 express: ~4.17.1 @@ -40203,7 +40203,7 @@ __metadata: nodemon: ^2.0.7 pug: ^3.0.0 safe-identifier: ^0.4.1 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 languageName: unknown linkType: soft @@ -41112,15 +41112,15 @@ __metadata: version: 0.0.0-use.local resolution: "standalone-preview@workspace:examples/standalone-preview" dependencies: - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/cli": 7.0.0-alpha.19 - "@storybook/react": 7.0.0-alpha.19 - "@storybook/react-webpack5": 7.0.0-alpha.19 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/cli": 7.0.0-alpha.21 + "@storybook/react": 7.0.0-alpha.21 + "@storybook/react-webpack5": 7.0.0-alpha.21 cross-env: ^7.0.3 parcel: 2.0.1 react: 16.14.0 react-dom: 16.14.0 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 languageName: unknown linkType: soft @@ -41216,11 +41216,11 @@ __metadata: languageName: node linkType: hard -"storybook@7.0.0-alpha.19, storybook@workspace:lib/cli-storybook": +"storybook@7.0.0-alpha.21, storybook@workspace:lib/cli-storybook": version: 0.0.0-use.local resolution: "storybook@workspace:lib/cli-storybook" dependencies: - "@storybook/cli": 7.0.0-alpha.19 + "@storybook/cli": 7.0.0-alpha.21 typescript: ~4.6.3 bin: sb: ./index.js @@ -41968,25 +41968,25 @@ __metadata: version: 0.0.0-use.local resolution: "svelte-example@workspace:examples/svelte-kitchen-sink" dependencies: - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-controls": 7.0.0-alpha.19 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-interactions": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/addon-storyshots": 7.0.0-alpha.19 - "@storybook/addon-storysource": 7.0.0-alpha.19 - "@storybook/addon-viewport": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-controls": 7.0.0-alpha.21 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-interactions": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/addon-storyshots": 7.0.0-alpha.21 + "@storybook/addon-storysource": 7.0.0-alpha.21 + "@storybook/addon-viewport": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 "@storybook/jest": ^0.0.10 - "@storybook/source-loader": 7.0.0-alpha.19 - "@storybook/svelte": 7.0.0-alpha.19 - "@storybook/svelte-webpack5": 7.0.0-alpha.19 + "@storybook/source-loader": 7.0.0-alpha.21 + "@storybook/svelte": 7.0.0-alpha.21 + "@storybook/svelte-webpack5": 7.0.0-alpha.21 "@storybook/testing-library": 0.0.14-next.0 global: ^4.4.0 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 svelte-jester: ^2.3.2 svelte-preprocess: ^4.10.6 languageName: unknown @@ -44904,22 +44904,22 @@ __metadata: resolution: "vue-3-cli-example@workspace:examples/vue-3-cli" dependencies: "@babel/core": ^7.12.10 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-essentials": 7.0.0-alpha.19 - "@storybook/addon-interactions": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/addon-storyshots": 7.0.0-alpha.19 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-essentials": 7.0.0-alpha.21 + "@storybook/addon-interactions": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/addon-storyshots": 7.0.0-alpha.21 "@storybook/jest": ^0.0.10 "@storybook/testing-library": 0.0.14-next.0 - "@storybook/vue3": 7.0.0-alpha.19 - "@storybook/vue3-webpack5": 7.0.0-alpha.19 + "@storybook/vue3": 7.0.0-alpha.21 + "@storybook/vue3-webpack5": 7.0.0-alpha.21 "@vue/cli-plugin-babel": ^5.0.4 "@vue/cli-plugin-typescript": ^5.0.4 "@vue/cli-service": ^5.0.4 "@vue/compiler-sfc": ^3.2.36 babel-loader: ^8.2.5 core-js: ^3.8.2 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 typescript: ~4.6.3 vue: ^3.0.0 vue-jest: ^5.0.0-alpha.8 @@ -44940,17 +44940,17 @@ __metadata: version: 0.0.0-use.local resolution: "vue-cli-example@workspace:examples/vue-cli" dependencies: - "@storybook/addon-controls": 7.0.0-alpha.19 - "@storybook/addon-essentials": 7.0.0-alpha.19 + "@storybook/addon-controls": 7.0.0-alpha.21 + "@storybook/addon-essentials": 7.0.0-alpha.21 "@storybook/preset-scss": ^1.0.3 - "@storybook/source-loader": 7.0.0-alpha.19 - "@storybook/vue": 7.0.0-alpha.19 - "@storybook/vue-webpack5": 7.0.0-alpha.19 + "@storybook/source-loader": 7.0.0-alpha.21 + "@storybook/vue": 7.0.0-alpha.21 + "@storybook/vue-webpack5": 7.0.0-alpha.21 "@vue/cli-plugin-babel": ^5.0.4 "@vue/cli-plugin-typescript": ^5.0.4 "@vue/cli-service": ^5.0.4 core-js: ^3.8.2 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 typescript: ~4.6.3 vue: ^2.6.12 vue-class-component: ^7.2.6 @@ -45017,29 +45017,29 @@ __metadata: resolution: "vue-example@workspace:examples/vue-kitchen-sink" dependencies: "@babel/core": ^7.12.10 - "@storybook/addon-a11y": 7.0.0-alpha.19 - "@storybook/addon-actions": 7.0.0-alpha.19 - "@storybook/addon-backgrounds": 7.0.0-alpha.19 - "@storybook/addon-controls": 7.0.0-alpha.19 - "@storybook/addon-docs": 7.0.0-alpha.19 - "@storybook/addon-highlight": 7.0.0-alpha.19 - "@storybook/addon-interactions": 7.0.0-alpha.19 - "@storybook/addon-links": 7.0.0-alpha.19 - "@storybook/addon-storyshots": 7.0.0-alpha.19 - "@storybook/addon-storysource": 7.0.0-alpha.19 - "@storybook/addon-viewport": 7.0.0-alpha.19 - "@storybook/addons": 7.0.0-alpha.19 + "@storybook/addon-a11y": 7.0.0-alpha.21 + "@storybook/addon-actions": 7.0.0-alpha.21 + "@storybook/addon-backgrounds": 7.0.0-alpha.21 + "@storybook/addon-controls": 7.0.0-alpha.21 + "@storybook/addon-docs": 7.0.0-alpha.21 + "@storybook/addon-highlight": 7.0.0-alpha.21 + "@storybook/addon-interactions": 7.0.0-alpha.21 + "@storybook/addon-links": 7.0.0-alpha.21 + "@storybook/addon-storyshots": 7.0.0-alpha.21 + "@storybook/addon-storysource": 7.0.0-alpha.21 + "@storybook/addon-viewport": 7.0.0-alpha.21 + "@storybook/addons": 7.0.0-alpha.21 "@storybook/jest": ^0.0.10 - "@storybook/source-loader": 7.0.0-alpha.19 + "@storybook/source-loader": 7.0.0-alpha.21 "@storybook/testing-library": 0.0.14-next.0 - "@storybook/vue": 7.0.0-alpha.19 - "@storybook/vue-webpack5": 7.0.0-alpha.19 + "@storybook/vue": 7.0.0-alpha.21 + "@storybook/vue-webpack5": 7.0.0-alpha.21 "@vue/babel-preset-jsx": ^1.2.4 babel-loader: ^8.2.5 cross-env: ^7.0.3 file-loader: ^6.2.0 prop-types: ^15.7.2 - storybook: 7.0.0-alpha.19 + storybook: 7.0.0-alpha.21 svg-url-loader: ^7.1.1 vue: ^2.6.12 vue-loader: ^15.9.6 diff --git a/docs/addons/introduction.md b/docs/addons/introduction.md index 7558e16786b4..0d6f0ed986cf 100644 --- a/docs/addons/introduction.md +++ b/docs/addons/introduction.md @@ -9,7 +9,7 @@ Browse our [addon catalog](https://storybook.js.org/addons) to install an existi ## Storybook basics -Before writing your first addon, let’s take a look at the basics of Storybook’s architecture. While Storybook presents a unified user interface, under the hood it’s divided down the middle into **Manager** and **Preview**. +Before writing your first [addon](https://storybook.js.org/addons), let’s take a look at the basics of Storybook’s architecture. While Storybook presents a unified user interface, under the hood it’s divided down the middle into **Manager** and **Preview**. The **Manager** is the UI responsible for rendering the: diff --git a/docs/faq.md b/docs/faq.md index fe91b55ce3f2..b7375d2b331b 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -226,41 +226,9 @@ With the release of version 5.3, we've updated how you can write your stories mo ### What icons are available for my toolbar or my addon? With the [`@storybook/components`](https://www.npmjs.com/package/@storybook/components) package, you get a set of icons that you can use to customize your UI. Use the table below as a reference while writing your addon or defining your Storybook global types. -Go through this [story](https://5a375b97f4b14f0020b0cda3-wbeulgbetj.chromatic.com/?path=/story/basics-icon--labels) to see how the icons look. - -| accessibility | accessibilityalt | add | admin | alert | -| -------------- | ---------------- | ------------ | ------------ | ------------- | -| arrowdown | arrowleft | arrowleftalt | arrowright | arrowrightalt | -| arrowup | back | basket | batchaccept | batchdeny | -| beaker | bell | bitbucket | book | bookmark | -| bookmarkhollow | bottombar | box | branch | browser | -| button | calendar | camera | category | certificate | -| check | chevrondown | chromatic | circle | circlehollow | -| close | closeAlt | cog | collapse | comment | -| commit | compass | component | contrast | copy | -| cpu | credit | cross | dashboard | database | -| delete | discord | docchart | doclist | document | -| download | edit | ellipsis | email | expand | -| expandalt | eye | eyeclose | facebook | facehappy | -| faceneutral | facesad | filter | flag | folder | -| form | gdrive | github | gitlab | globe | -| google | graphbar | graphline | graphql | grid | -| grow | heart | hearthollow | home | hourglass | -| info | key | lightning | lightningoff | link | -| listunordered | location | lock | markup | medium | -| memory | menu | merge | mirror | mobile | -| nut | outbox | outline | paintbrush | paperclip | -| paragraph | phone | photo | pin | play | -| plus | power | print | proceed | profile | -| pullrequest | question | redirect | redux | reply | -| repository | requestchange | rss | search | share | -| sharealt | shield | sidebar | sidebaralt | speaker | -| star | starhollow | stop | structure | subtract | -| support | switchalt | sync | tablet | thumbsup | -| time | timer | transfer | trash | twitter | -| undo | unfold | unlock | upload | user | -| useradd | useralt | users | video | watch | -| wrench | youtube | zoom | zoomout | zoomreset | +Go through this [story](https://main--5a375b97f4b14f0020b0cda3.chromatic.com/?path=/story/basics-icon--labels) to see how the icons look. + + ### I see a "No Preview" error with a Storybook production build diff --git a/scripts/next-repro-generators/generate-repros.ts b/scripts/next-repro-generators/generate-repros.ts index 5d2f66dfff22..c58681dd226f 100755 --- a/scripts/next-repro-generators/generate-repros.ts +++ b/scripts/next-repro-generators/generate-repros.ts @@ -1,12 +1,14 @@ /* eslint-disable no-console */ import { join, relative } from 'path'; -import program from 'commander'; import { command } from 'execa'; import type { Options as ExecaOptions } from 'execa'; import pLimit from 'p-limit'; import prettyTime from 'pretty-hrtime'; import { copy, emptyDir, ensureDir, rename, writeFile } from 'fs-extra'; +import { program } from 'commander'; import reproTemplates from '../../code/lib/cli/src/repro-templates'; +import storybookVersions from '../../code/lib/cli/src/versions'; +import { JsPackageManagerFactory } from '../../code/lib/cli/src/js-package-manager/JsPackageManagerFactory'; // @ts-ignore import { maxConcurrentTasks } from '../utils/concurrency'; @@ -14,12 +16,33 @@ import { maxConcurrentTasks } from '../utils/concurrency'; import { localizeYarnConfigFiles, setupYarn } from './utils/yarn'; import { GeneratorConfig } from './utils/types'; import { getStackblitzUrl, renderTemplate } from './utils/template'; +import { JsPackageManager } from '../../code/lib/cli/src/js-package-manager'; const OUTPUT_DIRECTORY = join(__dirname, '..', '..', 'repros'); const BEFORE_DIR_NAME = 'before-storybook'; const AFTER_DIR_NAME = 'after-storybook'; -const addStorybook = async (baseDir: string) => { +const sbInit = async (cwd: string) => { + const sbCliBinaryPath = join(__dirname, `../../code/lib/cli/bin/index.js`); + console.log(`🎁 Installing storybook`); + const env = { STORYBOOK_DISABLE_TELEMETRY: 'true' }; + await runCommand(`${sbCliBinaryPath} init`, { cwd, env }); +}; + +const LOCAL_REGISTRY_URL = 'http://localhost:6000'; +const withLocalRegistry = async (packageManager: JsPackageManager, action: () => Promise) => { + const prevUrl = packageManager.getRegistryURL(); + try { + console.log(`📦 Configuring local registry: ${LOCAL_REGISTRY_URL}`); + packageManager.setRegistryURL(LOCAL_REGISTRY_URL); + await action(); + } finally { + console.log(`📦 Restoring registry: ${prevUrl}`); + packageManager.setRegistryURL(prevUrl); + } +}; + +const addStorybook = async (baseDir: string, localRegistry: boolean) => { const beforeDir = join(baseDir, BEFORE_DIR_NAME); const afterDir = join(baseDir, AFTER_DIR_NAME); const tmpDir = join(baseDir, 'tmp'); @@ -29,14 +52,16 @@ const addStorybook = async (baseDir: string) => { await copy(beforeDir, tmpDir); - const sbCliBinaryPath = join(__dirname, `../../code/lib/cli/bin/index.js`); - await runCommand(`${sbCliBinaryPath} init`, { - cwd: tmpDir, - env: { - STORYBOOK_DISABLE_TELEMETRY: 'true', - }, - }); + const packageManager = JsPackageManagerFactory.getPackageManager(false, tmpDir); + if (localRegistry) { + await withLocalRegistry(packageManager, async () => { + packageManager.addPackageResolutions(storybookVersions); + await sbInit(tmpDir); + }); + } else { + await sbInit(tmpDir); + } await rename(tmpDir, afterDir); }; @@ -68,7 +93,10 @@ const addDocumentation = async ( await writeFile(join(afterDir, 'README.md'), contents); }; -const runGenerators = async (generators: (GeneratorConfig & { dirName: string })[]) => { +const runGenerators = async ( + generators: (GeneratorConfig & { dirName: string })[], + localRegistry = true +) => { console.log(`🤹‍♂️ Generating repros with a concurrency of ${maxConcurrentTasks}`); const limit = pLimit(maxConcurrentTasks); @@ -91,7 +119,7 @@ const runGenerators = async (generators: (GeneratorConfig & { dirName: string }) await localizeYarnConfigFiles(baseDir, beforeDir); - await addStorybook(baseDir); + await addStorybook(baseDir, localRegistry); await addDocumentation(baseDir, { name, dirName }); @@ -106,19 +134,37 @@ const runGenerators = async (generators: (GeneratorConfig & { dirName: string }) ); }; -const generate = async () => { - runGenerators( - Object.entries(reproTemplates).map(([dirName, configuration]) => ({ +const generate = async ({ + template, + localRegistry, +}: { + template?: string; + localRegistry?: boolean; +}) => { + const generatorConfigs = Object.entries(reproTemplates) + .map(([dirName, configuration]) => ({ dirName, ...configuration, })) - ); -}; + .filter(({ dirName }) => { + if (template) { + return dirName === template; + } + + return true; + }); -program.description('Create a reproduction from a set of possible templates'); -program.parse(process.argv); + runGenerators(generatorConfigs, localRegistry); +}; -generate().catch((e) => { - console.trace(e); - process.exit(1); -}); +program + .description('Create a reproduction from a set of possible templates') + .option('--template