From 07195acf6df4576165c8a67bdbc520e034fde085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Collonval?= Date: Fri, 30 Jun 2023 14:48:49 +0200 Subject: [PATCH 1/5] Add CDN example --- README.md | 10 +++++----- examples/cdn/README.md | 4 ++++ examples/cdn/index.html | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 examples/cdn/README.md create mode 100644 examples/cdn/index.html diff --git a/README.md b/README.md index a3f23403..c9923dca 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # UI Toolkit for Jupyter -**WIP this is early work in progress.** But don't hesitate to open issues and PRs if you want to -help. +> Don't hesitate to open issues and PRs if you want to +> help. [![Extension status](https://img.shields.io/badge/status-ready-success 'The package is ready to be used')](https://jupyterlab-contrib.github.io/) [![NPM Version](https://img.shields.io/npm/v/@jupyter/web-components?color=blue)](https://www.npmjs.com/package/@jupyter/web-components) -[![Extension status](https://img.shields.io/badge/cdn-jsdelivr-brightgreen)](https://www.jsdelivr.com/package/npm/@jupyter/web-components) -[![Extension status](https://img.shields.io/badge/cdn-unpkg-brightgreen)](https://unpkg.com/browse/@jupyter/web-components/) +[![jsdelivr status](https://img.shields.io/badge/cdn-jsdelivr-brightgreen)](https://www.jsdelivr.com/package/npm/@jupyter/web-components) +[![unpkg status](https://img.shields.io/badge/cdn-unpkg-brightgreen)](https://unpkg.com/browse/@jupyter/web-components/) [![Toolkit CI Status](https://github.com/jupyterlab-contrib/jupyter-ui-toolkit/actions/workflows/ci.yml/badge.svg)](https://github.com/jupyterlab-contrib/jupyter-ui-toolkit/actions/workflows/ci.yml) [![Deploy Docs Status](https://github.com/jupyterlab-contrib/jupyter-ui-toolkit/actions/workflows/docs-cd.yml/badge.svg)](https://jupyterlab-contrib.github.io/jupyter-ui-toolkit/) @@ -77,7 +77,7 @@ A pre-bundled script that contains all APIs needed to use Jupyter UI Toolkit is diff --git a/examples/cdn/README.md b/examples/cdn/README.md new file mode 100644 index 00000000..5ea91e77 --- /dev/null +++ b/examples/cdn/README.md @@ -0,0 +1,4 @@ +# Using the toolkit from CDN + +This example demonstrates how to use the Jupyter UI toolkit from CDN with +JupyterLab theming on. diff --git a/examples/cdn/index.html b/examples/cdn/index.html new file mode 100644 index 00000000..fa352a36 --- /dev/null +++ b/examples/cdn/index.html @@ -0,0 +1,40 @@ + + + + + + Jupyter UI toolkit using CDN + + + + + + + + Click me! + Click me! + + + + + \ No newline at end of file From 0791f915c7df4e17ae28a218d40a0349c6c1af54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Collonval?= Date: Fri, 30 Jun 2023 14:50:30 +0200 Subject: [PATCH 2/5] Update toolkit artwork --- .../docs/assets/toolkit-artwork.png | Bin 86051 -> 88949 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/packages/components/docs/assets/toolkit-artwork.png b/packages/components/docs/assets/toolkit-artwork.png index e73aa4c2ba71f861dc499e4db2e29cd2413da059..3a4f0b1ca4ff04db1430a2e0049894883a6d95af 100644 GIT binary patch literal 88949 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 From 1bd9c2908f5375d05b8ddc8f69a18f8abdee3245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Collonval?= Date: Fri, 30 Jun 2023 17:49:05 +0200 Subject: [PATCH 3/5] Storybook as only documentation website --- CHANGELOG.md | 2 +- README.md | 3 +- packages/components/.storybook/main.js | 41 ++++++++++++------- packages/components/docs/Introduction.mdx | 0 packages/components/docs/api-report.mdx | 7 ++++ packages/components/docs/changelog.mdx | 7 ++++ packages/components/docs/components.md | 9 ---- packages/components/package.json | 2 + .../accordion-item/accordion-item.stories.ts | 2 +- .../src/accordion/accordion.stories.ts | 2 +- .../anchored-region.stories.mdx | 2 +- .../components/src/avatar/avatar.stories.ts | 2 +- .../components/src/badge/badge.stories.ts | 2 +- .../breadcrumb-item.stories.ts | 2 +- .../src/breadcrumb/breadcrumb.stories.ts | 2 +- .../components/src/button/button.stories.ts | 2 +- packages/components/src/card/card.stories.ts | 2 +- .../src/checkbox/checkbox.stories.ts | 2 +- .../src/combobox/combobox.stories.ts | 2 +- .../src/data-grid/data-grid.stories.ts | 2 +- .../src/date-field/date-field.stories.ts | 2 +- .../components/src/divider/divider.stories.ts | 2 +- .../src/menu-item/menu-item.stories.ts | 2 +- packages/components/src/menu/menu.stories.ts | 2 +- .../src/number-field/number-field.stories.ts | 2 +- .../components/src/option/option.stories.ts | 2 +- .../progress-ring/progress-ring.stories.ts | 2 +- .../src/progress/progress.stories.ts | 2 +- .../src/radio-group/radio-group.stories.ts | 2 +- .../components/src/radio/radio.stories.ts | 2 +- .../components/src/search/search.stories.ts | 2 +- .../components/src/select/select.stories.ts | 2 +- .../src/slider-label/slider-label.stories.ts | 2 +- .../components/src/slider/slider.stories.ts | 2 +- .../components/src/switch/switch.stories.ts | 2 +- packages/components/src/tabs/tabs.stories.ts | 2 +- .../src/text-area/text-area.stories.ts | 2 +- .../src/text-field/text-field.stories.ts | 2 +- .../components/src/toolbar/toolbar.stories.ts | 2 +- .../components/src/tooltip/tooltip.stories.ts | 2 +- .../src/tree-item/tree-item.stories.ts | 2 +- .../src/tree-view/tree-view.stories.ts | 2 +- 42 files changed, 78 insertions(+), 61 deletions(-) create mode 100644 packages/components/docs/Introduction.mdx create mode 100644 packages/components/docs/api-report.mdx create mode 100644 packages/components/docs/changelog.mdx delete mode 100644 packages/components/docs/components.md diff --git a/CHANGELOG.md b/CHANGELOG.md index ee6117f9..0fbd4c60 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ -## 0.10.1 +## 0.10.0 ([Full Changelog](https://github.com/jupyterlab-contrib/jupyter-ui-toolkit/compare/v0.9.1...d687dc2f1f656ac2e6782cf8ffc6edcbf6bcf6bb)) diff --git a/README.md b/README.md index c9923dca..1e9158df 100644 --- a/README.md +++ b/README.md @@ -90,8 +90,7 @@ The above CDN location points to the latest release of `@jupyter/web-components` Further documentation can be found in the following places: -- [Component Docs](https://github.com/jupyterlab-contrib/jupyter-ui-toolkit/tree/main/packages/components/docs/components.md) -- [Storybook (Interactive Component Sandbox)](https://jupyterlab-contrib.github.io/jupyter-ui-toolkit/) +- [Interactive documentation](https://jupyterlab-contrib.github.io/jupyter-ui-toolkit/) - [Toolkit Extension Samples](https://github.com/jupyterlab-contrib/jupyter-ui-toolkit/tree/main/packages/lab-example): [Try online](https://mybinder.org/v2/gh/jupyterlab-contrib/jupyter-ui-toolkit/main) diff --git a/packages/components/.storybook/main.js b/packages/components/.storybook/main.js index a99e292e..e931b2f4 100644 --- a/packages/components/.storybook/main.js +++ b/packages/components/.storybook/main.js @@ -1,30 +1,41 @@ module.exports = { - stories: ['../src/**/*.stories.mdx', '../src/**/*.stories.ts'], + stories: [ + '../docs/**/*.mdx', + '../src/**/*.stories.mdx', + '../src/**/*.stories.ts' + ], addons: [ + '@storybook/addon-docs', '@storybook/addon-links', '@storybook/addon-essentials', '@storybook/addon-a11y' ], - features: { - postcss: false - }, webpackFinal: async config => { - config.module.rules.push({ - test: /\.ts$/, - sideEffects: true, - use: [ - { - loader: 'ts-loader', - options: { - configFile: 'tsconfig.storybook.json' + config.module.rules.push( + { + test: /\.ts$/, + sideEffects: true, + use: [ + { + loader: 'ts-loader', + options: { + configFile: 'tsconfig.storybook.json' + } } - } - ] - }); + ] + }, + { + test: /\.md$/, + type: 'asset/source' + } + ); return config; }, framework: { name: '@storybook/html-webpack5', options: {} + }, + docs: { + autodocs: 'tag' } }; diff --git a/packages/components/docs/Introduction.mdx b/packages/components/docs/Introduction.mdx new file mode 100644 index 00000000..e69de29b diff --git a/packages/components/docs/api-report.mdx b/packages/components/docs/api-report.mdx new file mode 100644 index 00000000..b8ae3842 --- /dev/null +++ b/packages/components/docs/api-report.mdx @@ -0,0 +1,7 @@ +import { Meta } from '@storybook/addon-docs'; +import { Markdown } from '@storybook/blocks'; +import APIReport from './api-report.md'; + + + +{APIReport} diff --git a/packages/components/docs/changelog.mdx b/packages/components/docs/changelog.mdx new file mode 100644 index 00000000..b534f213 --- /dev/null +++ b/packages/components/docs/changelog.mdx @@ -0,0 +1,7 @@ +import { Meta } from '@storybook/addon-docs'; +import { Markdown } from '@storybook/blocks'; +import Changelog from '../../CHANGELOG.md'; + + + +{Changelog} diff --git a/packages/components/docs/components.md b/packages/components/docs/components.md deleted file mode 100644 index be4db795..00000000 --- a/packages/components/docs/components.md +++ /dev/null @@ -1,9 +0,0 @@ -# Component Documentation List - -Here you can find a list of all the components currently available in the toolkit with links to documentation for each component. - -| Component | Doc Link | -| --------- | -------- | -| | | - - diff --git a/packages/components/package.json b/packages/components/package.json index a3e24bcf..a3cda4a8 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -58,9 +58,11 @@ "@rollup/plugin-typescript": "^8.2.0", "@storybook/addon-a11y": "^7.0.23", "@storybook/addon-actions": "^7.0.23", + "@storybook/addon-docs": "^7.0.24", "@storybook/addon-essentials": "^7.0.23", "@storybook/addon-links": "^7.0.23", "@storybook/addons": "^7.0.23", + "@storybook/blocks": "^7.0.24", "@storybook/html": "^7.0.23", "@storybook/html-webpack5": "^7.0.23", "@storybook/theming": "^7.0.23", diff --git a/packages/components/src/accordion-item/accordion-item.stories.ts b/packages/components/src/accordion-item/accordion-item.stories.ts index 7be49054..7d168c71 100644 --- a/packages/components/src/accordion-item/accordion-item.stories.ts +++ b/packages/components/src/accordion-item/accordion-item.stories.ts @@ -4,7 +4,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Accordion Item', + title: 'Components/Accordion Item', parameters: { controls: { diff --git a/packages/components/src/accordion/accordion.stories.ts b/packages/components/src/accordion/accordion.stories.ts index 4b003eee..d70638f5 100644 --- a/packages/components/src/accordion/accordion.stories.ts +++ b/packages/components/src/accordion/accordion.stories.ts @@ -4,7 +4,7 @@ import type { HtmlRenderer, Meta, StoryObj, StoryFn } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Accordion', + title: 'Components/Accordion', parameters: { controls: { diff --git a/packages/components/src/anchored-region/anchored-region.stories.mdx b/packages/components/src/anchored-region/anchored-region.stories.mdx index 55f18252..fc6fa077 100644 --- a/packages/components/src/anchored-region/anchored-region.stories.mdx +++ b/packages/components/src/anchored-region/anchored-region.stories.mdx @@ -1,6 +1,6 @@ import { Meta } from '@storybook/addon-docs'; - + # Anchored Region diff --git a/packages/components/src/avatar/avatar.stories.ts b/packages/components/src/avatar/avatar.stories.ts index abcc4b7d..cf6a0067 100644 --- a/packages/components/src/avatar/avatar.stories.ts +++ b/packages/components/src/avatar/avatar.stories.ts @@ -4,7 +4,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Avatar', + title: 'Components/Avatar', argTypes: { shape: { control: 'select', options: ['circle', 'square', 'default'] }, fill: { diff --git a/packages/components/src/badge/badge.stories.ts b/packages/components/src/badge/badge.stories.ts index 5d70f7ce..93a16016 100644 --- a/packages/components/src/badge/badge.stories.ts +++ b/packages/components/src/badge/badge.stories.ts @@ -4,7 +4,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Badge', + title: 'Components/Badge', argTypes: { circular: { control: 'boolean' }, fill: { diff --git a/packages/components/src/breadcrumb-item/breadcrumb-item.stories.ts b/packages/components/src/breadcrumb-item/breadcrumb-item.stories.ts index 0a5ce8fc..d02b709f 100644 --- a/packages/components/src/breadcrumb-item/breadcrumb-item.stories.ts +++ b/packages/components/src/breadcrumb-item/breadcrumb-item.stories.ts @@ -4,7 +4,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { getFaIcon, setTheme } from '../utilities/storybook'; export default { - title: 'Breadcrumb Item', + title: 'Components/Breadcrumb Item', argTypes: { href: { control: 'boolean' }, startIcon: { control: 'boolean' }, diff --git a/packages/components/src/breadcrumb/breadcrumb.stories.ts b/packages/components/src/breadcrumb/breadcrumb.stories.ts index 40c33c60..b80845b0 100644 --- a/packages/components/src/breadcrumb/breadcrumb.stories.ts +++ b/packages/components/src/breadcrumb/breadcrumb.stories.ts @@ -4,7 +4,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { getFaIcon, setTheme } from '../utilities/storybook'; export default { - title: 'Breadcrumb', + title: 'Components/Breadcrumb', argTypes: { customChildren: { control: 'boolean' }, svgSeparator: { control: 'boolean' }, diff --git a/packages/components/src/button/button.stories.ts b/packages/components/src/button/button.stories.ts index 35870038..bf9db4d3 100644 --- a/packages/components/src/button/button.stories.ts +++ b/packages/components/src/button/button.stories.ts @@ -5,7 +5,7 @@ import { action } from '@storybook/addon-actions'; import { getFaIcon, setTheme } from '../utilities/storybook'; export default { - title: 'Button', + title: 'Components/Button', argTypes: { label: { control: 'text' }, appearance: { diff --git a/packages/components/src/card/card.stories.ts b/packages/components/src/card/card.stories.ts index befc98d9..963dfb7c 100644 --- a/packages/components/src/card/card.stories.ts +++ b/packages/components/src/card/card.stories.ts @@ -5,7 +5,7 @@ import { neutralForegroundRest, typeRampBaseFontSize } from '../design-tokens'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Card', + title: 'Components/Card', parameters: { controls: { disabled: true diff --git a/packages/components/src/checkbox/checkbox.stories.ts b/packages/components/src/checkbox/checkbox.stories.ts index ea8e1d1c..ac63bad1 100644 --- a/packages/components/src/checkbox/checkbox.stories.ts +++ b/packages/components/src/checkbox/checkbox.stories.ts @@ -6,7 +6,7 @@ import { setTheme } from '../utilities/storybook'; import { Checkbox } from './index'; export default { - title: 'Checkbox', + title: 'Components/Checkbox', argTypes: { label: { control: 'text' }, isChecked: { control: 'boolean' }, diff --git a/packages/components/src/combobox/combobox.stories.ts b/packages/components/src/combobox/combobox.stories.ts index f4019ed3..462f0027 100644 --- a/packages/components/src/combobox/combobox.stories.ts +++ b/packages/components/src/combobox/combobox.stories.ts @@ -7,7 +7,7 @@ import { getFaIcon, setTheme } from '../utilities/storybook'; import { Combobox } from './index'; export default { - title: 'Combobox', + title: 'Components/Combobox', argTypes: { isOpen: { control: 'boolean' }, isDisabled: { control: 'boolean' }, diff --git a/packages/components/src/data-grid/data-grid.stories.ts b/packages/components/src/data-grid/data-grid.stories.ts index 205011c4..8d7bdbae 100644 --- a/packages/components/src/data-grid/data-grid.stories.ts +++ b/packages/components/src/data-grid/data-grid.stories.ts @@ -7,7 +7,7 @@ import { setTheme } from '../utilities/storybook'; import { DataGrid } from './index'; export default { - title: 'Data Grid', + title: 'Components/Data Grid', argTypes: {}, parameters: { controls: { disabled: true }, diff --git a/packages/components/src/date-field/date-field.stories.ts b/packages/components/src/date-field/date-field.stories.ts index 124650f3..26f0f454 100644 --- a/packages/components/src/date-field/date-field.stories.ts +++ b/packages/components/src/date-field/date-field.stories.ts @@ -7,7 +7,7 @@ import { getFaIcon, setTheme } from '../utilities/storybook'; import { DateField } from './index'; export default { - title: 'Date Field', + title: 'Components/Date Field', argTypes: { label: { control: 'text' }, value: { control: 'number' }, diff --git a/packages/components/src/divider/divider.stories.ts b/packages/components/src/divider/divider.stories.ts index b2881e2b..e0876ee0 100644 --- a/packages/components/src/divider/divider.stories.ts +++ b/packages/components/src/divider/divider.stories.ts @@ -5,7 +5,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Divider', + title: 'Components/Divider', argTypes: { orientation: { control: 'radio', options: ['horizontal', 'vertical'] } }, diff --git a/packages/components/src/menu-item/menu-item.stories.ts b/packages/components/src/menu-item/menu-item.stories.ts index 6974b376..5406a74e 100644 --- a/packages/components/src/menu-item/menu-item.stories.ts +++ b/packages/components/src/menu-item/menu-item.stories.ts @@ -5,7 +5,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { getFaIcon, setTheme } from '../utilities/storybook'; export default { - title: 'Menu Item', + title: 'Components/Menu Item', argTypes: { role: { control: 'radio', diff --git a/packages/components/src/menu/menu.stories.ts b/packages/components/src/menu/menu.stories.ts index d8be6009..dcfbc34a 100644 --- a/packages/components/src/menu/menu.stories.ts +++ b/packages/components/src/menu/menu.stories.ts @@ -5,7 +5,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { getFaIcon, setTheme } from '../utilities/storybook'; export default { - title: 'Menu', + title: 'Components/Menu', parameters: { controls: { disabled: true diff --git a/packages/components/src/number-field/number-field.stories.ts b/packages/components/src/number-field/number-field.stories.ts index 866ebd55..73eafb6a 100644 --- a/packages/components/src/number-field/number-field.stories.ts +++ b/packages/components/src/number-field/number-field.stories.ts @@ -7,7 +7,7 @@ import { getFaIcon, setTheme } from '../utilities/storybook'; import { NumberField } from './index'; export default { - title: 'Number Field', + title: 'Components/Number Field', argTypes: { label: { control: 'text' }, placeholder: { control: 'text' }, diff --git a/packages/components/src/option/option.stories.ts b/packages/components/src/option/option.stories.ts index 7bc8532b..61edc7a1 100644 --- a/packages/components/src/option/option.stories.ts +++ b/packages/components/src/option/option.stories.ts @@ -5,7 +5,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Option', + title: 'Components/Option', argTypes: { label: { control: 'text' }, isDisabled: { control: 'boolean' }, diff --git a/packages/components/src/progress-ring/progress-ring.stories.ts b/packages/components/src/progress-ring/progress-ring.stories.ts index 88fb7974..99b19985 100644 --- a/packages/components/src/progress-ring/progress-ring.stories.ts +++ b/packages/components/src/progress-ring/progress-ring.stories.ts @@ -5,7 +5,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Progress Ring', + title: 'Components/Progress Ring', argTypes: { min: { control: 'number', min: 0 }, max: { control: 'number', min: 0 }, diff --git a/packages/components/src/progress/progress.stories.ts b/packages/components/src/progress/progress.stories.ts index 312022f5..9b68ef84 100644 --- a/packages/components/src/progress/progress.stories.ts +++ b/packages/components/src/progress/progress.stories.ts @@ -5,7 +5,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Progress', + title: 'Components/Progress', argTypes: { min: { control: 'number', min: 0 }, max: { control: 'number', min: 0 }, diff --git a/packages/components/src/radio-group/radio-group.stories.ts b/packages/components/src/radio-group/radio-group.stories.ts index 7df5ad3b..fbd96055 100644 --- a/packages/components/src/radio-group/radio-group.stories.ts +++ b/packages/components/src/radio-group/radio-group.stories.ts @@ -6,7 +6,7 @@ import { action } from '@storybook/addon-actions'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Radio Group', + title: 'Components/Radio Group', argTypes: { isDisabled: { control: 'boolean' }, isReadOnly: { control: 'boolean' }, diff --git a/packages/components/src/radio/radio.stories.ts b/packages/components/src/radio/radio.stories.ts index 683140c1..bf76d419 100644 --- a/packages/components/src/radio/radio.stories.ts +++ b/packages/components/src/radio/radio.stories.ts @@ -6,7 +6,7 @@ import { action } from '@storybook/addon-actions'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Radio', + title: 'Components/Radio', argTypes: { isChecked: { control: 'boolean' }, isDisabled: { control: 'boolean' }, diff --git a/packages/components/src/search/search.stories.ts b/packages/components/src/search/search.stories.ts index a8b95479..c3adf35c 100644 --- a/packages/components/src/search/search.stories.ts +++ b/packages/components/src/search/search.stories.ts @@ -7,7 +7,7 @@ import { getFaIcon, setTheme } from '../utilities/storybook'; import { Search } from './index'; export default { - title: 'Search', + title: 'Components/Search', argTypes: { label: { control: 'text' }, placeholder: { control: 'text' }, diff --git a/packages/components/src/select/select.stories.ts b/packages/components/src/select/select.stories.ts index fd3c58f9..eb835cff 100644 --- a/packages/components/src/select/select.stories.ts +++ b/packages/components/src/select/select.stories.ts @@ -6,7 +6,7 @@ import { action } from '@storybook/addon-actions'; import { getFaIcon, setTheme } from '../utilities/storybook'; export default { - title: 'Select', + title: 'Components/Select', argTypes: { isOpen: { control: 'boolean' }, isDisabled: { control: 'boolean' }, diff --git a/packages/components/src/slider-label/slider-label.stories.ts b/packages/components/src/slider-label/slider-label.stories.ts index 8f341952..efd9f755 100644 --- a/packages/components/src/slider-label/slider-label.stories.ts +++ b/packages/components/src/slider-label/slider-label.stories.ts @@ -5,7 +5,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Slider Label', + title: 'Components/Slider Label', argTypes: { hideMark: { control: 'boolean' }, disabled: { control: 'boolean' } diff --git a/packages/components/src/slider/slider.stories.ts b/packages/components/src/slider/slider.stories.ts index 6cf5f2dd..2a7d0926 100644 --- a/packages/components/src/slider/slider.stories.ts +++ b/packages/components/src/slider/slider.stories.ts @@ -6,7 +6,7 @@ import { action } from '@storybook/addon-actions'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Slider', + title: 'Components/Slider', argTypes: { value: { control: 'range', min: 0, max: 10, step: 5 }, orientation: { control: 'radio', options: ['horizontal', 'vertical'] }, diff --git a/packages/components/src/switch/switch.stories.ts b/packages/components/src/switch/switch.stories.ts index e4c7f5fd..bf7c1b4c 100644 --- a/packages/components/src/switch/switch.stories.ts +++ b/packages/components/src/switch/switch.stories.ts @@ -7,7 +7,7 @@ import { setTheme } from '../utilities/storybook'; import { Switch } from './index'; export default { - title: 'Switch', + title: 'Components/Switch', argTypes: { label: { control: 'text' }, withMessages: { control: 'boolean' }, diff --git a/packages/components/src/tabs/tabs.stories.ts b/packages/components/src/tabs/tabs.stories.ts index 4f646416..0bc4365e 100644 --- a/packages/components/src/tabs/tabs.stories.ts +++ b/packages/components/src/tabs/tabs.stories.ts @@ -6,7 +6,7 @@ import { action } from '@storybook/addon-actions'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Tabs', + title: 'Components/Tabs', argTypes: { activePanel: { control: 'select', options: [null, 'One', 'Two', 'Three'] }, activeIndicator: { control: 'boolean' }, diff --git a/packages/components/src/text-area/text-area.stories.ts b/packages/components/src/text-area/text-area.stories.ts index 6d5a87e7..cdfba2d3 100644 --- a/packages/components/src/text-area/text-area.stories.ts +++ b/packages/components/src/text-area/text-area.stories.ts @@ -7,7 +7,7 @@ import { setTheme } from '../utilities/storybook'; import { TextArea } from './index'; export default { - title: 'Text Area', + title: 'Components/Text Area', argTypes: { label: { control: 'text' }, placeholder: { control: 'text' }, diff --git a/packages/components/src/text-field/text-field.stories.ts b/packages/components/src/text-field/text-field.stories.ts index 21c0562d..fe66c5da 100644 --- a/packages/components/src/text-field/text-field.stories.ts +++ b/packages/components/src/text-field/text-field.stories.ts @@ -7,7 +7,7 @@ import { getFaIcon, setTheme } from '../utilities/storybook'; import { TextField } from './index'; export default { - title: 'Text Field', + title: 'Components/Text Field', argTypes: { label: { control: 'text' }, placeholder: { control: 'text' }, diff --git a/packages/components/src/toolbar/toolbar.stories.ts b/packages/components/src/toolbar/toolbar.stories.ts index fca0c3e7..62da981b 100644 --- a/packages/components/src/toolbar/toolbar.stories.ts +++ b/packages/components/src/toolbar/toolbar.stories.ts @@ -5,7 +5,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Toolbar', + title: 'Components/Toolbar', argTypes: { startSlot: { control: 'boolean' }, endSlot: { control: 'boolean' } diff --git a/packages/components/src/tooltip/tooltip.stories.ts b/packages/components/src/tooltip/tooltip.stories.ts index b84c2a97..e24d28fa 100644 --- a/packages/components/src/tooltip/tooltip.stories.ts +++ b/packages/components/src/tooltip/tooltip.stories.ts @@ -5,7 +5,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { setTheme } from '../utilities/storybook'; export default { - title: 'Tooltip', + title: 'Components/Tooltip', argTypes: { visible: { control: 'boolean' }, position: { diff --git a/packages/components/src/tree-item/tree-item.stories.ts b/packages/components/src/tree-item/tree-item.stories.ts index 8fca332a..93ab9d7c 100644 --- a/packages/components/src/tree-item/tree-item.stories.ts +++ b/packages/components/src/tree-item/tree-item.stories.ts @@ -4,7 +4,7 @@ import type { StoryFn, Meta, StoryObj } from '@storybook/html'; import { getFaIcon, setTheme } from '../utilities/storybook'; export default { - title: 'Tree Item', + title: 'Components/Tree Item', argTypes: { selected: { control: 'boolean' }, beforeContent: { control: 'boolean' }, diff --git a/packages/components/src/tree-view/tree-view.stories.ts b/packages/components/src/tree-view/tree-view.stories.ts index 614a74be..6b00e277 100644 --- a/packages/components/src/tree-view/tree-view.stories.ts +++ b/packages/components/src/tree-view/tree-view.stories.ts @@ -7,7 +7,7 @@ import { setTheme } from '../utilities/storybook'; import { TreeView } from './index'; export default { - title: 'Tree View', + title: 'Components/Tree View', parameters: { controls: { disabled: true From 58cd14c405d8378a185f79435878ecab092ee2bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Collonval?= Date: Fri, 30 Jun 2023 18:38:54 +0200 Subject: [PATCH 4/5] Improve documentation structure --- CONTRIBUTING.md | 6 +- packages/components/.storybook/main.js | 16 +- packages/components/.storybook/preview.js | 7 +- packages/components/docs/Introduction.mdx | 14 + packages/components/docs/changelog.mdx | 2 +- packages/components/docs/contributing.mdx | 7 + packages/components/docs/getting-started.mdx | 49 + packages/components/package.json | 1 + .../src/accordion-item/accordion-item.test.ts | 2 +- .../src/accordion/accordion.test.ts | 2 +- packages/components/src/avatar/avatar.test.ts | 6 +- packages/components/src/badge/badge.test.ts | 2 +- .../breadcrumb-item/breadcrumb-item.test.ts | 10 +- .../src/breadcrumb/breadcrumb.test.ts | 10 +- packages/components/src/button/button.test.ts | 16 +- packages/components/src/card/card.test.ts | 2 +- .../components/src/checkbox/checkbox.test.ts | 8 +- .../components/src/combobox/combobox.test.ts | 6 +- .../src/data-grid/data-grid.test.ts | 2 +- .../src/date-field/date-field.test.ts | 10 +- .../components/src/divider/divider.test.ts | 4 +- .../src/menu-item/menu-item.test.ts | 8 +- packages/components/src/menu/menu.test.ts | 2 +- .../src/number-field/number-field.test.ts | 16 +- packages/components/src/option/option.test.ts | 6 +- .../src/progress-ring/progress-ring.test.ts | 2 +- .../components/src/progress/progress.test.ts | 2 +- .../src/radio-group/radio-group.test.ts | 8 +- packages/components/src/radio/radio.test.ts | 8 +- packages/components/src/search/search.test.ts | 14 +- packages/components/src/select/select.test.ts | 8 +- .../src/slider-label/slider-label.test.ts | 4 +- packages/components/src/slider/slider.test.ts | 6 +- packages/components/src/switch/switch.test.ts | 8 +- packages/components/src/tabs/tabs.test.ts | 6 +- .../src/text-area/text-area.test.ts | 12 +- .../src/text-field/text-field.test.ts | 18 +- .../components/src/toolbar/toolbar.test.ts | 2 +- .../components/src/tooltip/tooltip.test.ts | 2 +- .../src/tree-item/tree-item.test.ts | 8 +- .../src/tree-view/tree-view.test.ts | 2 +- yarn.lock | 1017 ++++++++++++++++- 42 files changed, 1218 insertions(+), 123 deletions(-) create mode 100644 packages/components/docs/contributing.mdx create mode 100644 packages/components/docs/getting-started.mdx diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a3a0db48..3f17da59 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,7 +14,7 @@ questions about these issues. ## Development installation -You will need to install `yarn` (for example with `npm install --global yarn`). +You will need to install `yarn` (for example with `npm install --global yarn && yarn set version berry`). To build the components packages, execute: @@ -35,7 +35,7 @@ yarn start To test locally the JupyterLab demo extension, using `conda` package manager: ```sh -conda create -n jupyter-toolkit -c conda-forge -y nodejs yarn jupyterlab=3 +conda create -n jupyter-toolkit -c conda-forge -y nodejs yarn=3 jupyterlab=4 conda activate jupyter-toolkit yarn install yarn build @@ -70,7 +70,7 @@ and the issues it solves before a pull request is opened. ## Issue Management -Opening an issue lets community members participate in the design +[Opening an issue](https://github.com/jupyterlab-contrib/jupyter-ui-toolkit/issues/new/choose) lets community members participate in the design discussion, makes others aware of work being done, and sets the stage for a fruitful community interaction. A pull request should reference the issue it is addressing. Once the pull request is merged, the issue diff --git a/packages/components/.storybook/main.js b/packages/components/.storybook/main.js index e931b2f4..ab60c9dd 100644 --- a/packages/components/.storybook/main.js +++ b/packages/components/.storybook/main.js @@ -1,3 +1,5 @@ +import remarkGfm from 'remark-gfm'; + module.exports = { stories: [ '../docs/**/*.mdx', @@ -5,7 +7,16 @@ module.exports = { '../src/**/*.stories.ts' ], addons: [ - '@storybook/addon-docs', + { + name: '@storybook/addon-docs', + options: { + mdxPluginOptions: { + mdxCompileOptions: { + remarkPlugins: [remarkGfm] + } + } + } + }, '@storybook/addon-links', '@storybook/addon-essentials', '@storybook/addon-a11y' @@ -36,6 +47,7 @@ module.exports = { options: {} }, docs: { - autodocs: 'tag' + autodocs: true, + defaultName: 'Documentation' } }; diff --git a/packages/components/.storybook/preview.js b/packages/components/.storybook/preview.js index 7a0e3ed2..6db7bc55 100644 --- a/packages/components/.storybook/preview.js +++ b/packages/components/.storybook/preview.js @@ -41,10 +41,9 @@ const globalTypes = { // Array of plain string values or MenuItem shape (see below) items: [ { value: '#006CBE', right: '🔵', title: 'blue' }, - { value: '#DA1A5F', title: 'pink' } - ], - // Property that specifies if the name of the item will be displayed - showName: false + { value: '#DA1A5F', title: 'pink' }, + { value: '#f2c812', title: 'yellow' } + ] } } }; diff --git a/packages/components/docs/Introduction.mdx b/packages/components/docs/Introduction.mdx index e69de29b..aeb9c07c 100644 --- a/packages/components/docs/Introduction.mdx +++ b/packages/components/docs/Introduction.mdx @@ -0,0 +1,14 @@ +# Jupyter UI toolkit + +## Components + +Here is the list of components part of the Jupyter UI toolkit: + +| Name | Reference | Documentation | +| ----------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------- | +| `accordion` | [Accordion pattern](https://www.w3.org/WAI/ARIA/apg/patterns/accordion/) | [Stories](?path=/story/components-accordion--documentation) | +| `anchor` | [Anchor element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a) | [Stories](?path=/story/components-anchor--documentation) | +| `anchored-region` | Position content relative to another "anchor" element | [Stories](?path=/story/components-anchored-region--documentation) | +| `avatar` | Visual represent an user or an object | [Stories](?path=/story/components-avatar--documentation) | +| `badge` | Highlight an item and attract attention or flag status | [Stories](?path=/story/components-badge--documentation) | +| `breadcrumb` | [Breadcrumb pattern](https://www.w3.org/WAI/ARIA/apg/patterns/breadcrumb/) | [Stories](?path=/story/components-breadcrumb--documentation) | diff --git a/packages/components/docs/changelog.mdx b/packages/components/docs/changelog.mdx index b534f213..8d7d340a 100644 --- a/packages/components/docs/changelog.mdx +++ b/packages/components/docs/changelog.mdx @@ -1,6 +1,6 @@ import { Meta } from '@storybook/addon-docs'; import { Markdown } from '@storybook/blocks'; -import Changelog from '../../CHANGELOG.md'; +import Changelog from '../../../CHANGELOG.md'; diff --git a/packages/components/docs/contributing.mdx b/packages/components/docs/contributing.mdx new file mode 100644 index 00000000..db3233e4 --- /dev/null +++ b/packages/components/docs/contributing.mdx @@ -0,0 +1,7 @@ +import { Meta } from '@storybook/addon-docs'; +import { Markdown } from '@storybook/blocks'; +import Contributing from '../../../CONTRIBUTING.md'; + + + +{Contributing} diff --git a/packages/components/docs/getting-started.mdx b/packages/components/docs/getting-started.mdx new file mode 100644 index 00000000..5b050410 --- /dev/null +++ b/packages/components/docs/getting-started.mdx @@ -0,0 +1,49 @@ +import { Meta } from '@storybook/addon-docs'; + + + +# Getting started + +This toolkit provides [web components](https://developer.mozilla.org/en-US/docs/Web/API/Web_components) styled for Jupyter frontends. But you can use +them independently of Jupyter frontends. + +> As web components are a web standard, you can use them in any popular framework such as Vue, Svelte,... . +> The only one not fully supported them yet is React. Therefore the toolkit provides a React flavored of +> the component through the package `@jupyter/react-components`. + +The toolkit can be consumed directly by importing it in your HTML webpage or by adding as a NPM dependency to your project. + +## HTML integration (through CDN) + +A pre-bundled script that contains all APIs needed to use Jupyter UI Toolkit is available on CDN. You can use this script by adding [`type="module"`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Modules) to the script element and then importing from the CDN. + +```html + + + + + + + +``` + +The above CDN location points to the latest release of `@jupyter/web-components`. It is advised that when you deploy your site or app, you import the specific version you have developed and tested with. + +> A [example](https://raw.githubusercontent.com/jupyterlab-contrib/jupyter-ui-toolkit/main/examples/cdn) is available in the project repository. + +## NPM package + +To install the `web-components` library, use either `npm` or `yarn` as follows: + +```shell +npm install --save @jupyter/web-components +``` + +```shell +yarn add @jupyter/web-components +``` + +> If you need the React components of the toolkit, you need to install `@jupyter/react-components`. diff --git a/packages/components/package.json b/packages/components/package.json index a3cda4a8..00142cb8 100644 --- a/packages/components/package.json +++ b/packages/components/package.json @@ -77,6 +77,7 @@ "prettier": "^2.8.8", "react": "^18.2.0", "react-dom": "^18.2.0", + "remark-gfm": "^3.0.1", "rimraf": "^5.0.1", "rollup": "^2.40.0", "rollup-plugin-delete": "^2.0.0", diff --git a/packages/components/src/accordion-item/accordion-item.test.ts b/packages/components/src/accordion-item/accordion-item.test.ts index 4039c668..8cf3248a 100644 --- a/packages/components/src/accordion-item/accordion-item.test.ts +++ b/packages/components/src/accordion-item/accordion-item.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=accordion-item--default'); + await page.goto('/iframe.html?id=components-accordion-item--default'); expect(await page.locator('jp-accordion-item').screenshot()).toMatchSnapshot( 'accordion-item-default.png' diff --git a/packages/components/src/accordion/accordion.test.ts b/packages/components/src/accordion/accordion.test.ts index 2d715dde..006696e6 100644 --- a/packages/components/src/accordion/accordion.test.ts +++ b/packages/components/src/accordion/accordion.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=accordion--default'); + await page.goto('/iframe.html?id=components-accordion--default'); expect(await page.locator('jp-accordion').screenshot()).toMatchSnapshot( 'accordion-default.png' diff --git a/packages/components/src/avatar/avatar.test.ts b/packages/components/src/avatar/avatar.test.ts index 7cd10759..fbfc635f 100644 --- a/packages/components/src/avatar/avatar.test.ts +++ b/packages/components/src/avatar/avatar.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=avatar--default'); + await page.goto('/iframe.html?id=components-avatar--default'); expect(await page.locator('jp-avatar').screenshot()).toMatchSnapshot( 'avatar-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Square', async ({ page }) => { - await page.goto('/iframe.html?id=avatar--square'); + await page.goto('/iframe.html?id=components-avatar--square'); expect(await page.locator('jp-avatar').screenshot()).toMatchSnapshot( 'avatar-square.png' @@ -20,7 +20,7 @@ test('Square', async ({ page }) => { }); test('With Image', async ({ page }) => { - await page.goto('/iframe.html?id=avatar--with-image'); + await page.goto('/iframe.html?id=components-avatar--with-image'); expect(await page.locator('jp-avatar').screenshot()).toMatchSnapshot( 'avatar-with-image.png' diff --git a/packages/components/src/badge/badge.test.ts b/packages/components/src/badge/badge.test.ts index 35bd6bef..fc8c3d94 100644 --- a/packages/components/src/badge/badge.test.ts +++ b/packages/components/src/badge/badge.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=badge--default'); + await page.goto('/iframe.html?id=components-badge--default'); expect(await page.locator('jp-badge').screenshot()).toMatchSnapshot( 'badge-default.png' diff --git a/packages/components/src/breadcrumb-item/breadcrumb-item.test.ts b/packages/components/src/breadcrumb-item/breadcrumb-item.test.ts index 722d5ae5..83581490 100644 --- a/packages/components/src/breadcrumb-item/breadcrumb-item.test.ts +++ b/packages/components/src/breadcrumb-item/breadcrumb-item.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=breadcrumb-item--default'); + await page.goto('/iframe.html?id=components-breadcrumb-item--default'); expect(await page.locator('jp-breadcrumb-item').screenshot()).toMatchSnapshot( 'breadcrumb-item-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Without href', async ({ page }) => { - await page.goto('/iframe.html?id=breadcrumb-item--without-href'); + await page.goto('/iframe.html?id=components-breadcrumb-item--without-href'); expect(await page.locator('jp-breadcrumb-item').screenshot()).toMatchSnapshot( 'breadcrumb-item-without-href.png' @@ -20,7 +20,9 @@ test('Without href', async ({ page }) => { }); test('With Start Icon', async ({ page }) => { - await page.goto('/iframe.html?id=breadcrumb-item--with-start-icon'); + await page.goto( + '/iframe.html?id=components-breadcrumb-item--with-start-icon' + ); expect(await page.locator('jp-breadcrumb-item').screenshot()).toMatchSnapshot( 'breadcrumb-item-with-start-icon.png' @@ -28,7 +30,7 @@ test('With Start Icon', async ({ page }) => { }); test('With End Icon', async ({ page }) => { - await page.goto('/iframe.html?id=breadcrumb-item--with-end-icon'); + await page.goto('/iframe.html?id=components-breadcrumb-item--with-end-icon'); expect(await page.locator('jp-breadcrumb-item').screenshot()).toMatchSnapshot( 'breadcrumb-item-with-end-icon.png' diff --git a/packages/components/src/breadcrumb/breadcrumb.test.ts b/packages/components/src/breadcrumb/breadcrumb.test.ts index bc73938f..3717c8a6 100644 --- a/packages/components/src/breadcrumb/breadcrumb.test.ts +++ b/packages/components/src/breadcrumb/breadcrumb.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=breadcrumb--default'); + await page.goto('/iframe.html?id=components-breadcrumb--default'); expect(await page.locator('jp-breadcrumb').screenshot()).toMatchSnapshot( 'breadcrumb-default.png' @@ -12,7 +12,9 @@ test('Default', async ({ page }) => { }); test('With Custom Children', async ({ page }) => { - await page.goto('/iframe.html?id=breadcrumb--with-custom-children'); + await page.goto( + '/iframe.html?id=components-breadcrumb--with-custom-children' + ); expect(await page.locator('jp-breadcrumb').screenshot()).toMatchSnapshot( 'breadcrumb-with-custom-children.png' @@ -20,7 +22,7 @@ test('With Custom Children', async ({ page }) => { }); test('With Start Icon', async ({ page }) => { - await page.goto('/iframe.html?id=breadcrumb--with-start-icon'); + await page.goto('/iframe.html?id=components-breadcrumb--with-start-icon'); expect(await page.locator('jp-breadcrumb').screenshot()).toMatchSnapshot( 'breadcrumb-with-start-icon.png' @@ -28,7 +30,7 @@ test('With Start Icon', async ({ page }) => { }); test('With End Icon', async ({ page }) => { - await page.goto('/iframe.html?id=breadcrumb--with-end-icon'); + await page.goto('/iframe.html?id=components-breadcrumb--with-end-icon'); expect(await page.locator('jp-breadcrumb').screenshot()).toMatchSnapshot( 'breadcrumb-with-end-icon.png' diff --git a/packages/components/src/button/button.test.ts b/packages/components/src/button/button.test.ts index 01b542a3..3afbcebf 100644 --- a/packages/components/src/button/button.test.ts +++ b/packages/components/src/button/button.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=button--default'); + await page.goto('/iframe.html?id=components-button--default'); expect(await page.locator('jp-button').screenshot()).toMatchSnapshot( 'button-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Error', async ({ page }) => { - await page.goto('/iframe.html?id=button--error'); + await page.goto('/iframe.html?id=components-button--error'); expect(await page.locator('jp-button').screenshot()).toMatchSnapshot( 'button-error.png' @@ -20,7 +20,7 @@ test('Error', async ({ page }) => { }); test('Neutral', async ({ page }) => { - await page.goto('/iframe.html?id=button--neutral'); + await page.goto('/iframe.html?id=components-button--neutral'); expect(await page.locator('jp-button').screenshot()).toMatchSnapshot( 'button-neutral.png' @@ -28,7 +28,7 @@ test('Neutral', async ({ page }) => { }); test('Lightweight', async ({ page }) => { - await page.goto('/iframe.html?id=button--lightweight'); + await page.goto('/iframe.html?id=components-button--lightweight'); expect(await page.locator('jp-button').screenshot()).toMatchSnapshot( 'button-lightweight.png' @@ -36,7 +36,7 @@ test('Lightweight', async ({ page }) => { }); // test('With Autofocus', async ({ page }) => { -// await page.goto('/iframe.html?id=button--with-autofocus'); +// await page.goto('/iframe.html?id=components-button--with-autofocus'); // expect( // await page.locator('jp-button').screenshot() @@ -44,7 +44,7 @@ test('Lightweight', async ({ page }) => { // }); test('With Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=button--with-disabled'); + await page.goto('/iframe.html?id=components-button--with-disabled'); expect(await page.locator('jp-button').screenshot()).toMatchSnapshot( 'button-with-disabled.png' @@ -52,7 +52,7 @@ test('With Disabled', async ({ page }) => { }); test('With Start Icon', async ({ page }) => { - await page.goto('/iframe.html?id=button--with-start-icon'); + await page.goto('/iframe.html?id=components-button--with-start-icon'); expect(await page.locator('jp-button').screenshot()).toMatchSnapshot( 'button-with-start-icon.png' @@ -60,7 +60,7 @@ test('With Start Icon', async ({ page }) => { }); test('Icon Only', async ({ page }) => { - await page.goto('/iframe.html?id=button--icon-only'); + await page.goto('/iframe.html?id=components-button--icon-only'); expect(await page.locator('jp-button').screenshot()).toMatchSnapshot( 'button-icon-only.png' diff --git a/packages/components/src/card/card.test.ts b/packages/components/src/card/card.test.ts index aafa3deb..718b9c7f 100644 --- a/packages/components/src/card/card.test.ts +++ b/packages/components/src/card/card.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=card--default'); + await page.goto('/iframe.html?id=components-card--default'); expect(await page.locator('jp-card').screenshot()).toMatchSnapshot( 'card-default.png' diff --git a/packages/components/src/checkbox/checkbox.test.ts b/packages/components/src/checkbox/checkbox.test.ts index 037bdbb5..b4819d87 100644 --- a/packages/components/src/checkbox/checkbox.test.ts +++ b/packages/components/src/checkbox/checkbox.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=checkbox--default'); + await page.goto('/iframe.html?id=components-checkbox--default'); expect(await page.locator('jp-checkbox').screenshot()).toMatchSnapshot( 'checkbox-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Checked', async ({ page }) => { - await page.goto('/iframe.html?id=checkbox--with-checked'); + await page.goto('/iframe.html?id=components-checkbox--with-checked'); expect(await page.locator('jp-checkbox').screenshot()).toMatchSnapshot( 'checkbox-with-checked.png' @@ -20,7 +20,7 @@ test('Checked', async ({ page }) => { }); test('Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=checkbox--with-disabled'); + await page.goto('/iframe.html?id=components-checkbox--with-disabled'); expect(await page.locator('jp-checkbox').screenshot()).toMatchSnapshot( 'checkbox-disabled.png' @@ -28,7 +28,7 @@ test('Disabled', async ({ page }) => { }); test('Indeterminate', async ({ page }) => { - await page.goto('/iframe.html?id=checkbox--with-indeterminate'); + await page.goto('/iframe.html?id=components-checkbox--with-indeterminate'); expect(await page.locator('jp-checkbox').screenshot()).toMatchSnapshot( 'checkbox-indeterminate.png' diff --git a/packages/components/src/combobox/combobox.test.ts b/packages/components/src/combobox/combobox.test.ts index 5dc761ee..ff27a79d 100644 --- a/packages/components/src/combobox/combobox.test.ts +++ b/packages/components/src/combobox/combobox.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=combobox--default'); + await page.goto('/iframe.html?id=components-combobox--default'); expect(await page.locator('jp-combobox').screenshot()).toMatchSnapshot( 'combobox-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=combobox--with-disabled'); + await page.goto('/iframe.html?id=components-combobox--with-disabled'); expect(await page.locator('jp-combobox').screenshot()).toMatchSnapshot( 'combobox-disabled.png' @@ -20,7 +20,7 @@ test('Disabled', async ({ page }) => { }); test('Custom Indicator', async ({ page }) => { - await page.goto('/iframe.html?id=combobox--with-custom-indicator'); + await page.goto('/iframe.html?id=components-combobox--with-custom-indicator'); expect(await page.locator('jp-combobox').screenshot()).toMatchSnapshot( 'combobox-custom-indicator.png' diff --git a/packages/components/src/data-grid/data-grid.test.ts b/packages/components/src/data-grid/data-grid.test.ts index d8a293e5..02dcb8f1 100644 --- a/packages/components/src/data-grid/data-grid.test.ts +++ b/packages/components/src/data-grid/data-grid.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=data-grid--default'); + await page.goto('/iframe.html?id=components-data-grid--default'); expect(await page.locator('jp-data-grid').screenshot()).toMatchSnapshot( 'data-grid-default.png' diff --git a/packages/components/src/date-field/date-field.test.ts b/packages/components/src/date-field/date-field.test.ts index 0f2c3291..4ab95dfa 100644 --- a/packages/components/src/date-field/date-field.test.ts +++ b/packages/components/src/date-field/date-field.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=date-field--default'); + await page.goto('/iframe.html?id=components-date-field--default'); expect(await page.locator('jp-date-field').screenshot()).toMatchSnapshot( 'date-field-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('With Autofocus', async ({ page }) => { - await page.goto('/iframe.html?id=date-field--with-autofocus'); + await page.goto('/iframe.html?id=components-date-field--with-autofocus'); expect(await page.locator('jp-date-field').screenshot()).toMatchSnapshot( 'date-field-with-autofocus.png' @@ -20,7 +20,7 @@ test('With Autofocus', async ({ page }) => { }); test('With Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=date-field--with-disabled'); + await page.goto('/iframe.html?id=components-date-field--with-disabled'); expect(await page.locator('jp-date-field').screenshot()).toMatchSnapshot( 'date-field-with-disabled.png' @@ -28,7 +28,7 @@ test('With Disabled', async ({ page }) => { }); test('With Readonly', async ({ page }) => { - await page.goto('/iframe.html?id=date-field--with-readonly'); + await page.goto('/iframe.html?id=components-date-field--with-readonly'); expect(await page.locator('jp-date-field').screenshot()).toMatchSnapshot( 'date-field-with-readonly.png' @@ -36,7 +36,7 @@ test('With Readonly', async ({ page }) => { }); test('With Start Icon', async ({ page }) => { - await page.goto('/iframe.html?id=date-field--with-start-icon'); + await page.goto('/iframe.html?id=components-date-field--with-start-icon'); expect(await page.locator('jp-date-field').screenshot()).toMatchSnapshot( 'date-field-with-start-icon.png' diff --git a/packages/components/src/divider/divider.test.ts b/packages/components/src/divider/divider.test.ts index a20083f1..096a91d9 100644 --- a/packages/components/src/divider/divider.test.ts +++ b/packages/components/src/divider/divider.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=divider--default'); + await page.goto('/iframe.html?id=components-divider--default'); expect(await page.locator('jp-divider').screenshot()).toMatchSnapshot( 'divider-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Vertical', async ({ page }) => { - await page.goto('/iframe.html?id=divider--vertical'); + await page.goto('/iframe.html?id=components-divider--vertical'); expect(await page.locator('jp-divider').screenshot()).toMatchSnapshot( 'divider-vertical.png' diff --git a/packages/components/src/menu-item/menu-item.test.ts b/packages/components/src/menu-item/menu-item.test.ts index c4b4ef89..c8edc4cf 100644 --- a/packages/components/src/menu-item/menu-item.test.ts +++ b/packages/components/src/menu-item/menu-item.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=menu-item--default'); + await page.goto('/iframe.html?id=components-menu-item--default'); expect(await page.locator('jp-menu-item').screenshot()).toMatchSnapshot( 'menu-item-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=menu-item--disabled'); + await page.goto('/iframe.html?id=components-menu-item--disabled'); expect(await page.locator('jp-menu-item').screenshot()).toMatchSnapshot( 'menu-item-disabled.png' @@ -20,7 +20,7 @@ test('Disabled', async ({ page }) => { }); test('Checkbox', async ({ page }) => { - await page.goto('/iframe.html?id=menu-item--checkbox'); + await page.goto('/iframe.html?id=components-menu-item--checkbox'); expect(await page.locator('jp-menu-item').screenshot()).toMatchSnapshot( 'menu-item-checkbox.png' @@ -28,7 +28,7 @@ test('Checkbox', async ({ page }) => { }); test('Radio', async ({ page }) => { - await page.goto('/iframe.html?id=menu-item--radio'); + await page.goto('/iframe.html?id=components-menu-item--radio'); expect(await page.locator('jp-menu-item').screenshot()).toMatchSnapshot( 'menu-item-radio.png' diff --git a/packages/components/src/menu/menu.test.ts b/packages/components/src/menu/menu.test.ts index 591e9223..7a4cac8b 100644 --- a/packages/components/src/menu/menu.test.ts +++ b/packages/components/src/menu/menu.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=menu--default'); + await page.goto('/iframe.html?id=components-menu--default'); expect( await page.locator('#storybook-root > jp-menu').screenshot() diff --git a/packages/components/src/number-field/number-field.test.ts b/packages/components/src/number-field/number-field.test.ts index 0b1a31f3..4f4429f1 100644 --- a/packages/components/src/number-field/number-field.test.ts +++ b/packages/components/src/number-field/number-field.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=number-field--default'); + await page.goto('/iframe.html?id=components-number-field--default'); expect(await page.locator('jp-number-field').screenshot()).toMatchSnapshot( 'number-field-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('With Placeholder', async ({ page }) => { - await page.goto('/iframe.html?id=number-field--with-placeholder'); + await page.goto('/iframe.html?id=components-number-field--with-placeholder'); expect(await page.locator('jp-number-field').screenshot()).toMatchSnapshot( 'number-field-with-placeholder.png' @@ -20,7 +20,7 @@ test('With Placeholder', async ({ page }) => { }); test('With Autofocus', async ({ page }) => { - await page.goto('/iframe.html?id=number-field--with-autofocus'); + await page.goto('/iframe.html?id=components-number-field--with-autofocus'); expect(await page.locator('jp-number-field').screenshot()).toMatchSnapshot( 'number-field-with-autofocus.png' @@ -28,7 +28,7 @@ test('With Autofocus', async ({ page }) => { }); test('With Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=number-field--with-disabled'); + await page.goto('/iframe.html?id=components-number-field--with-disabled'); expect(await page.locator('jp-number-field').screenshot()).toMatchSnapshot( 'number-field-with-disabled.png' @@ -36,7 +36,7 @@ test('With Disabled', async ({ page }) => { }); test('With Size', async ({ page }) => { - await page.goto('/iframe.html?id=number-field--with-size'); + await page.goto('/iframe.html?id=components-number-field--with-size'); expect(await page.locator('jp-number-field').screenshot()).toMatchSnapshot( 'number-field-with-size.png' @@ -44,7 +44,7 @@ test('With Size', async ({ page }) => { }); test('With Max Length', async ({ page }) => { - await page.goto('/iframe.html?id=number-field--with-max-length'); + await page.goto('/iframe.html?id=components-number-field--with-max-length'); expect(await page.locator('jp-number-field').screenshot()).toMatchSnapshot( 'number-field-with-max-length.png' @@ -52,7 +52,7 @@ test('With Max Length', async ({ page }) => { }); test('With Readonly', async ({ page }) => { - await page.goto('/iframe.html?id=number-field--with-readonly'); + await page.goto('/iframe.html?id=components-number-field--with-readonly'); expect(await page.locator('jp-number-field').screenshot()).toMatchSnapshot( 'number-field-with-readonly.png' @@ -60,7 +60,7 @@ test('With Readonly', async ({ page }) => { }); test('With Start Icon', async ({ page }) => { - await page.goto('/iframe.html?id=number-field--with-start-icon'); + await page.goto('/iframe.html?id=components-number-field--with-start-icon'); expect(await page.locator('jp-number-field').screenshot()).toMatchSnapshot( 'number-field-with-start-icon.png' diff --git a/packages/components/src/option/option.test.ts b/packages/components/src/option/option.test.ts index a5131e5d..f307b1a2 100644 --- a/packages/components/src/option/option.test.ts +++ b/packages/components/src/option/option.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=option--default'); + await page.goto('/iframe.html?id=components-option--default'); expect(await page.locator('jp-option').screenshot()).toMatchSnapshot( 'option-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('With Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=option--with-disabled'); + await page.goto('/iframe.html?id=components-option--with-disabled'); expect(await page.locator('jp-option').screenshot()).toMatchSnapshot( 'option-disabled.png' @@ -20,7 +20,7 @@ test('With Disabled', async ({ page }) => { }); test('With Selected', async ({ page }) => { - await page.goto('/iframe.html?id=option--with-selected'); + await page.goto('/iframe.html?id=components-option--with-selected'); expect(await page.locator('jp-option').screenshot()).toMatchSnapshot( 'option-selected.png' diff --git a/packages/components/src/progress-ring/progress-ring.test.ts b/packages/components/src/progress-ring/progress-ring.test.ts index 70cb327b..3bbaba37 100644 --- a/packages/components/src/progress-ring/progress-ring.test.ts +++ b/packages/components/src/progress-ring/progress-ring.test.ts @@ -7,7 +7,7 @@ test('With value', async ({ browserName, page }) => { // FIXME test.skip(browserName === 'webkit', 'Progress ring bar animation unstable.'); - await page.goto('/iframe.html?id=progress-ring--with-value'); + await page.goto('/iframe.html?id=components-progress-ring--with-value'); // Ensure the progress animation is finished await page.waitForTimeout(200); diff --git a/packages/components/src/progress/progress.test.ts b/packages/components/src/progress/progress.test.ts index 8ab084d8..b01cd2d5 100644 --- a/packages/components/src/progress/progress.test.ts +++ b/packages/components/src/progress/progress.test.ts @@ -7,7 +7,7 @@ test('With value', async ({ browserName, page }) => { // FIXME test.skip(browserName === 'webkit', 'Progress bar animation unstable.'); - await page.goto('/iframe.html?id=progress--with-value'); + await page.goto('/iframe.html?id=components-progress--with-value'); // Ensure the progress animation is finished await page.waitForTimeout(200); diff --git a/packages/components/src/radio-group/radio-group.test.ts b/packages/components/src/radio-group/radio-group.test.ts index 9723d248..a036de36 100644 --- a/packages/components/src/radio-group/radio-group.test.ts +++ b/packages/components/src/radio-group/radio-group.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=radio-group--default'); + await page.goto('/iframe.html?id=components-radio-group--default'); expect(await page.locator('jp-radio-group').screenshot()).toMatchSnapshot( 'radio-group-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Vertical', async ({ page }) => { - await page.goto('/iframe.html?id=radio-group--vertical'); + await page.goto('/iframe.html?id=components-radio-group--vertical'); expect(await page.locator('jp-radio-group').screenshot()).toMatchSnapshot( 'radio-group-vertical.png' @@ -20,7 +20,7 @@ test('Vertical', async ({ page }) => { }); test('Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=radio-group--with-disabled'); + await page.goto('/iframe.html?id=components-radio-group--with-disabled'); expect(await page.locator('jp-radio-group').screenshot()).toMatchSnapshot( 'radio-group-disabled.png' @@ -28,7 +28,7 @@ test('Disabled', async ({ page }) => { }); test('Read-only', async ({ page }) => { - await page.goto('/iframe.html?id=radio-group--with-read-only'); + await page.goto('/iframe.html?id=components-radio-group--with-read-only'); expect(await page.locator('jp-radio-group').screenshot()).toMatchSnapshot( 'radio-group-read-only.png' diff --git a/packages/components/src/radio/radio.test.ts b/packages/components/src/radio/radio.test.ts index 593161f0..5b953c2a 100644 --- a/packages/components/src/radio/radio.test.ts +++ b/packages/components/src/radio/radio.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=radio--default'); + await page.goto('/iframe.html?id=components-radio--default'); expect(await page.locator('jp-radio').screenshot()).toMatchSnapshot( 'radio-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Checked', async ({ page }) => { - await page.goto('/iframe.html?id=radio--with-checked'); + await page.goto('/iframe.html?id=components-radio--with-checked'); expect(await page.locator('jp-radio').screenshot()).toMatchSnapshot( 'radio-checked.png' @@ -20,7 +20,7 @@ test('Checked', async ({ page }) => { }); test('Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=radio--with-disabled'); + await page.goto('/iframe.html?id=components-radio--with-disabled'); expect(await page.locator('jp-radio').screenshot()).toMatchSnapshot( 'radio-disabled.png' @@ -28,7 +28,7 @@ test('Disabled', async ({ page }) => { }); test('Read-only', async ({ page }) => { - await page.goto('/iframe.html?id=radio--with-read-only'); + await page.goto('/iframe.html?id=components-radio--with-read-only'); expect(await page.locator('jp-radio').screenshot()).toMatchSnapshot( 'radio-read-only.png' diff --git a/packages/components/src/search/search.test.ts b/packages/components/src/search/search.test.ts index 175ffc08..0e0c47fe 100644 --- a/packages/components/src/search/search.test.ts +++ b/packages/components/src/search/search.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=search--default'); + await page.goto('/iframe.html?id=components-search--default'); expect(await page.locator('jp-search').screenshot()).toMatchSnapshot( 'search-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('With Placeholder', async ({ page }) => { - await page.goto('/iframe.html?id=search--with-placeholder'); + await page.goto('/iframe.html?id=components-search--with-placeholder'); expect(await page.locator('jp-search').screenshot()).toMatchSnapshot( 'search-with-placeholder.png' @@ -20,7 +20,7 @@ test('With Placeholder', async ({ page }) => { }); test('With Autofocus', async ({ page }) => { - await page.goto('/iframe.html?id=search--with-autofocus'); + await page.goto('/iframe.html?id=components-search--with-autofocus'); expect(await page.locator('jp-search').screenshot()).toMatchSnapshot( 'search-with-autofocus.png' @@ -28,7 +28,7 @@ test('With Autofocus', async ({ page }) => { }); test('With Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=search--with-disabled'); + await page.goto('/iframe.html?id=components-search--with-disabled'); expect(await page.locator('jp-search').screenshot()).toMatchSnapshot( 'search-with-disabled.png' @@ -36,7 +36,7 @@ test('With Disabled', async ({ page }) => { }); test('With Size', async ({ page }) => { - await page.goto('/iframe.html?id=search--with-size'); + await page.goto('/iframe.html?id=components-search--with-size'); expect(await page.locator('jp-search').screenshot()).toMatchSnapshot( 'search-with-size.png' @@ -44,7 +44,7 @@ test('With Size', async ({ page }) => { }); test('With Maxlength', async ({ page }) => { - await page.goto('/iframe.html?id=search--with-max-length'); + await page.goto('/iframe.html?id=components-search--with-max-length'); expect(await page.locator('jp-search').screenshot()).toMatchSnapshot( 'search-with-maxlength.png' @@ -52,7 +52,7 @@ test('With Maxlength', async ({ page }) => { }); test('With Search Icon', async ({ page }) => { - await page.goto('/iframe.html?id=search--with-search-icon'); + await page.goto('/iframe.html?id=components-search--with-search-icon'); expect(await page.locator('jp-search').screenshot()).toMatchSnapshot( 'search-with-search-icon.png' diff --git a/packages/components/src/select/select.test.ts b/packages/components/src/select/select.test.ts index 74129bd4..cfd5d08f 100644 --- a/packages/components/src/select/select.test.ts +++ b/packages/components/src/select/select.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=select--default'); + await page.goto('/iframe.html?id=components-select--default'); expect(await page.locator('jp-select').screenshot()).toMatchSnapshot( 'select-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('WithOpen', async ({ page }) => { - await page.goto('/iframe.html?id=select--with-open'); + await page.goto('/iframe.html?id=components-select--with-open'); expect(await page.locator('jp-select').screenshot()).toMatchSnapshot( 'select-with-open.png' @@ -20,7 +20,7 @@ test('WithOpen', async ({ page }) => { }); test('WithDisabled', async ({ page }) => { - await page.goto('/iframe.html?id=select--with-disabled'); + await page.goto('/iframe.html?id=components-select--with-disabled'); expect(await page.locator('jp-select').screenshot()).toMatchSnapshot( 'select-with-disabled.png' @@ -28,7 +28,7 @@ test('WithDisabled', async ({ page }) => { }); test('WithCustomIndicator', async ({ page }) => { - await page.goto('/iframe.html?id=select--with-custom-indicator'); + await page.goto('/iframe.html?id=components-select--with-custom-indicator'); expect(await page.locator('jp-select').screenshot()).toMatchSnapshot( 'select-with-custom-indicator.png' diff --git a/packages/components/src/slider-label/slider-label.test.ts b/packages/components/src/slider-label/slider-label.test.ts index 262173cb..bd622a48 100644 --- a/packages/components/src/slider-label/slider-label.test.ts +++ b/packages/components/src/slider-label/slider-label.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=slider-label--default'); + await page.goto('/iframe.html?id=components-slider-label--default'); expect(await page.locator('body').screenshot()).toMatchSnapshot( 'slider-label-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('With Hide Mark', async ({ page }) => { - await page.goto('/iframe.html?id=slider-label--with-hide-mark'); + await page.goto('/iframe.html?id=components-slider-label--with-hide-mark'); expect(await page.locator('body').screenshot()).toMatchSnapshot( 'slider-label-with-hide-mark.png' diff --git a/packages/components/src/slider/slider.test.ts b/packages/components/src/slider/slider.test.ts index d33e8e56..6318b688 100644 --- a/packages/components/src/slider/slider.test.ts +++ b/packages/components/src/slider/slider.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=slider--default'); + await page.goto('/iframe.html?id=components-slider--default'); expect(await page.locator('body').screenshot()).toMatchSnapshot( 'slider-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Vertical', async ({ page }) => { - await page.goto('/iframe.html?id=slider--vertical'); + await page.goto('/iframe.html?id=components-slider--vertical'); expect(await page.locator('body').screenshot()).toMatchSnapshot( 'slider-vertical.png' @@ -23,7 +23,7 @@ test('With Disabled', async ({ browserName, page }) => { // FIXME test.skip(browserName === 'webkit', 'Slider thumb animation unstable.'); - await page.goto('/iframe.html?id=slider--with-disabled'); + await page.goto('/iframe.html?id=components-slider--with-disabled'); expect(await page.locator('body').screenshot()).toMatchSnapshot( 'slider-with-disabled.png' diff --git a/packages/components/src/switch/switch.test.ts b/packages/components/src/switch/switch.test.ts index 8c136e7a..b2d81fd3 100644 --- a/packages/components/src/switch/switch.test.ts +++ b/packages/components/src/switch/switch.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=switch--default'); + await page.goto('/iframe.html?id=components-switch--default'); expect(await page.locator('jp-switch').screenshot()).toMatchSnapshot( 'switch-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Checked', async ({ page }) => { - await page.goto('/iframe.html?id=switch--with-checked'); + await page.goto('/iframe.html?id=components-switch--with-checked'); expect(await page.locator('jp-switch').screenshot()).toMatchSnapshot( 'switch-with-checked.png' @@ -20,7 +20,7 @@ test('Checked', async ({ page }) => { }); test('Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=switch--with-disabled'); + await page.goto('/iframe.html?id=components-switch--with-disabled'); expect(await page.locator('jp-switch').screenshot()).toMatchSnapshot( 'switch-disabled.png' @@ -28,7 +28,7 @@ test('Disabled', async ({ page }) => { }); test('With Messages', async ({ page }) => { - await page.goto('/iframe.html?id=switch--with-messages'); + await page.goto('/iframe.html?id=components-switch--with-messages'); expect(await page.locator('jp-switch').screenshot()).toMatchSnapshot( 'switch-with-messages.png' diff --git a/packages/components/src/tabs/tabs.test.ts b/packages/components/src/tabs/tabs.test.ts index c6f6aae8..3148251d 100644 --- a/packages/components/src/tabs/tabs.test.ts +++ b/packages/components/src/tabs/tabs.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=tabs--default'); + await page.goto('/iframe.html?id=components-tabs--default'); expect(await page.locator('jp-tabs').screenshot()).toMatchSnapshot( 'tabs-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Vertical', async ({ page }) => { - await page.goto('/iframe.html?id=tabs--vertical'); + await page.goto('/iframe.html?id=components-tabs--vertical'); expect(await page.locator('jp-tabs').screenshot()).toMatchSnapshot( 'tabs-vertical.png' @@ -20,7 +20,7 @@ test('Vertical', async ({ page }) => { }); test('Without Indicator', async ({ page }) => { - await page.goto('/iframe.html?id=tabs--without-indicator'); + await page.goto('/iframe.html?id=components-tabs--without-indicator'); expect(await page.locator('jp-tabs').screenshot()).toMatchSnapshot( 'tabs-without-indicator.png' diff --git a/packages/components/src/text-area/text-area.test.ts b/packages/components/src/text-area/text-area.test.ts index 3dc099b6..14cf0c99 100644 --- a/packages/components/src/text-area/text-area.test.ts +++ b/packages/components/src/text-area/text-area.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=text-area--default'); + await page.goto('/iframe.html?id=components-text-area--default'); expect(await page.locator('jp-text-area').screenshot()).toMatchSnapshot( 'text-area-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('With Placeholder', async ({ page }) => { - await page.goto('/iframe.html?id=text-area--with-placeholder'); + await page.goto('/iframe.html?id=components-text-area--with-placeholder'); expect(await page.locator('jp-text-area').screenshot()).toMatchSnapshot( 'text-area-with-placeholder.png' @@ -20,7 +20,7 @@ test('With Placeholder', async ({ page }) => { }); test('With Autofocus', async ({ page }) => { - await page.goto('/iframe.html?id=text-area--with-autofocus'); + await page.goto('/iframe.html?id=components-text-area--with-autofocus'); expect(await page.locator('jp-text-area').screenshot()).toMatchSnapshot( 'text-area-with-autofocus.png' @@ -28,7 +28,7 @@ test('With Autofocus', async ({ page }) => { }); test('With Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=text-area--with-disabled'); + await page.goto('/iframe.html?id=components-text-area--with-disabled'); expect(await page.locator('jp-text-area').screenshot()).toMatchSnapshot( 'text-area-with-disabled.png' @@ -36,7 +36,7 @@ test('With Disabled', async ({ page }) => { }); test('With Max Length', async ({ page }) => { - await page.goto('/iframe.html?id=text-area--with-max-length'); + await page.goto('/iframe.html?id=components-text-area--with-max-length'); expect(await page.locator('jp-text-area').screenshot()).toMatchSnapshot( 'text-area-with-max-length.png' @@ -44,7 +44,7 @@ test('With Max Length', async ({ page }) => { }); test('With Readonly', async ({ page }) => { - await page.goto('/iframe.html?id=text-area--with-readonly'); + await page.goto('/iframe.html?id=components-text-area--with-readonly'); expect(await page.locator('jp-text-area').screenshot()).toMatchSnapshot( 'text-area-with-readonly.png' diff --git a/packages/components/src/text-field/text-field.test.ts b/packages/components/src/text-field/text-field.test.ts index 0d6a5ca2..e388dc36 100644 --- a/packages/components/src/text-field/text-field.test.ts +++ b/packages/components/src/text-field/text-field.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=text-field--default'); + await page.goto('/iframe.html?id=components-text-field--default'); expect(await page.locator('jp-text-field').screenshot()).toMatchSnapshot( 'text-field-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('With Placeholder', async ({ page }) => { - await page.goto('/iframe.html?id=text-field--with-placeholder'); + await page.goto('/iframe.html?id=components-text-field--with-placeholder'); expect(await page.locator('jp-text-field').screenshot()).toMatchSnapshot( 'text-field-with-placeholder.png' @@ -20,7 +20,7 @@ test('With Placeholder', async ({ page }) => { }); test('With Autofocus', async ({ page }) => { - await page.goto('/iframe.html?id=text-field--with-autofocus'); + await page.goto('/iframe.html?id=components-text-field--with-autofocus'); expect(await page.locator('jp-text-field').screenshot()).toMatchSnapshot( 'text-field-with-autofocus.png' @@ -28,7 +28,7 @@ test('With Autofocus', async ({ page }) => { }); test('With Disabled', async ({ page }) => { - await page.goto('/iframe.html?id=text-field--with-disabled'); + await page.goto('/iframe.html?id=components-text-field--with-disabled'); expect(await page.locator('jp-text-field').screenshot()).toMatchSnapshot( 'text-field-with-disabled.png' @@ -36,7 +36,7 @@ test('With Disabled', async ({ page }) => { }); test('With Size', async ({ page }) => { - await page.goto('/iframe.html?id=text-field--with-size'); + await page.goto('/iframe.html?id=components-text-field--with-size'); expect(await page.locator('jp-text-field').screenshot()).toMatchSnapshot( 'text-field-with-size.png' @@ -44,7 +44,7 @@ test('With Size', async ({ page }) => { }); test('With Type', async ({ page }) => { - await page.goto('/iframe.html?id=text-field--with-type'); + await page.goto('/iframe.html?id=components-text-field--with-type'); expect(await page.locator('jp-text-field').screenshot()).toMatchSnapshot( 'text-field-with-type.png' @@ -52,7 +52,7 @@ test('With Type', async ({ page }) => { }); test('With Max Length', async ({ page }) => { - await page.goto('/iframe.html?id=text-field--with-max-length'); + await page.goto('/iframe.html?id=components-text-field--with-max-length'); expect(await page.locator('jp-text-field').screenshot()).toMatchSnapshot( 'text-field-with-max-length.png' @@ -60,7 +60,7 @@ test('With Max Length', async ({ page }) => { }); test('With Readonly', async ({ page }) => { - await page.goto('/iframe.html?id=text-field--with-readonly'); + await page.goto('/iframe.html?id=components-text-field--with-readonly'); expect(await page.locator('jp-text-field').screenshot()).toMatchSnapshot( 'text-field-with-readonly.png' @@ -68,7 +68,7 @@ test('With Readonly', async ({ page }) => { }); test('With Start Icon', async ({ page }) => { - await page.goto('/iframe.html?id=text-field--with-start-icon'); + await page.goto('/iframe.html?id=components-text-field--with-start-icon'); expect(await page.locator('jp-text-field').screenshot()).toMatchSnapshot( 'text-field-with-start-icon.png' diff --git a/packages/components/src/toolbar/toolbar.test.ts b/packages/components/src/toolbar/toolbar.test.ts index d70fa6f1..4216bb8b 100644 --- a/packages/components/src/toolbar/toolbar.test.ts +++ b/packages/components/src/toolbar/toolbar.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=toolbar--default'); + await page.goto('/iframe.html?id=components-toolbar--default'); expect(await page.locator('jp-toolbar').screenshot()).toMatchSnapshot( 'toolbar-default.png' diff --git a/packages/components/src/tooltip/tooltip.test.ts b/packages/components/src/tooltip/tooltip.test.ts index 890d025b..1dd705ab 100644 --- a/packages/components/src/tooltip/tooltip.test.ts +++ b/packages/components/src/tooltip/tooltip.test.ts @@ -5,7 +5,7 @@ import { test, expect } from '@playwright/test'; import { Tooltip } from './index'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=tooltip--default'); + await page.goto('/iframe.html?id=components-tooltip--default'); await page.locator('jp-button').waitFor(); await page.evaluate(() => { diff --git a/packages/components/src/tree-item/tree-item.test.ts b/packages/components/src/tree-item/tree-item.test.ts index 94c7b0de..c614cf49 100644 --- a/packages/components/src/tree-item/tree-item.test.ts +++ b/packages/components/src/tree-item/tree-item.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=tree-item--default'); + await page.goto('/iframe.html?id=components-tree-item--default'); expect(await page.locator('jp-tree-item').screenshot()).toMatchSnapshot( 'tree-item-default.png' @@ -12,7 +12,7 @@ test('Default', async ({ page }) => { }); test('Selected', async ({ page }) => { - await page.goto('/iframe.html?id=tree-item--selected'); + await page.goto('/iframe.html?id=components-tree-item--selected'); expect(await page.locator('jp-tree-item').screenshot()).toMatchSnapshot( 'tree-item-selected.png' @@ -20,7 +20,7 @@ test('Selected', async ({ page }) => { }); test('With Before Content', async ({ page }) => { - await page.goto('/iframe.html?id=tree-item--with-before-content'); + await page.goto('/iframe.html?id=components-tree-item--with-before-content'); expect(await page.locator('jp-tree-item').screenshot()).toMatchSnapshot( 'tree-item-with-before-content.png' @@ -28,7 +28,7 @@ test('With Before Content', async ({ page }) => { }); test('With After Content', async ({ page }) => { - await page.goto('/iframe.html?id=tree-item--with-after-content'); + await page.goto('/iframe.html?id=components-tree-item--with-after-content'); expect(await page.locator('jp-tree-item').screenshot()).toMatchSnapshot( 'tree-item-with-after-content.png' diff --git a/packages/components/src/tree-view/tree-view.test.ts b/packages/components/src/tree-view/tree-view.test.ts index 4f06c29c..dade1790 100644 --- a/packages/components/src/tree-view/tree-view.test.ts +++ b/packages/components/src/tree-view/tree-view.test.ts @@ -4,7 +4,7 @@ import { test, expect } from '@playwright/test'; test('Default', async ({ page }) => { - await page.goto('/iframe.html?id=tree-view--default'); + await page.goto('/iframe.html?id=components-tree-view--default'); expect(await page.locator('jp-tree-view').screenshot()).toMatchSnapshot( 'tree-view-default.png' diff --git a/yarn.lock b/yarn.lock index 6d77e3ee..2165dc03 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2495,9 +2495,11 @@ __metadata: "@rollup/plugin-typescript": ^8.2.0 "@storybook/addon-a11y": ^7.0.23 "@storybook/addon-actions": ^7.0.23 + "@storybook/addon-docs": ^7.0.24 "@storybook/addon-essentials": ^7.0.23 "@storybook/addon-links": ^7.0.23 "@storybook/addons": ^7.0.23 + "@storybook/blocks": ^7.0.24 "@storybook/html": ^7.0.23 "@storybook/html-webpack5": ^7.0.23 "@storybook/theming": ^7.0.23 @@ -2512,6 +2514,7 @@ __metadata: prettier: ^2.8.8 react: ^18.2.0 react-dom: ^18.2.0 + remark-gfm: ^3.0.1 rimraf: ^5.0.1 rollup: ^2.40.0 rollup-plugin-delete: ^2.0.0 @@ -3972,6 +3975,38 @@ __metadata: languageName: node linkType: hard +"@storybook/addon-docs@npm:^7.0.24": + version: 7.0.24 + resolution: "@storybook/addon-docs@npm:7.0.24" + dependencies: + "@babel/core": ^7.20.2 + "@babel/plugin-transform-react-jsx": ^7.19.0 + "@jest/transform": ^29.3.1 + "@mdx-js/react": ^2.1.5 + "@storybook/blocks": 7.0.24 + "@storybook/client-logger": 7.0.24 + "@storybook/components": 7.0.24 + "@storybook/csf-plugin": 7.0.24 + "@storybook/csf-tools": 7.0.24 + "@storybook/global": ^5.0.0 + "@storybook/mdx2-csf": ^1.0.0 + "@storybook/node-logger": 7.0.24 + "@storybook/postinstall": 7.0.24 + "@storybook/preview-api": 7.0.24 + "@storybook/react-dom-shim": 7.0.24 + "@storybook/theming": 7.0.24 + "@storybook/types": 7.0.24 + fs-extra: ^11.1.0 + remark-external-links: ^8.0.0 + remark-slug: ^6.0.0 + ts-dedent: ^2.0.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 79883b62ddc703a463b36bfd9c2a112ab9ef0160e87be59f3d2f1061a9a342a2516bbcdc92d06bf1133d47e3610c1d74d5e728036aa8b43c2f0e74f3454638bc + languageName: node + linkType: hard + "@storybook/addon-essentials@npm:^7.0.23": version: 7.0.23 resolution: "@storybook/addon-essentials@npm:7.0.23" @@ -4192,6 +4227,39 @@ __metadata: languageName: node linkType: hard +"@storybook/blocks@npm:7.0.24, @storybook/blocks@npm:^7.0.24": + version: 7.0.24 + resolution: "@storybook/blocks@npm:7.0.24" + dependencies: + "@storybook/channels": 7.0.24 + "@storybook/client-logger": 7.0.24 + "@storybook/components": 7.0.24 + "@storybook/core-events": 7.0.24 + "@storybook/csf": ^0.1.0 + "@storybook/docs-tools": 7.0.24 + "@storybook/global": ^5.0.0 + "@storybook/manager-api": 7.0.24 + "@storybook/preview-api": 7.0.24 + "@storybook/theming": 7.0.24 + "@storybook/types": 7.0.24 + "@types/lodash": ^4.14.167 + color-convert: ^2.0.1 + dequal: ^2.0.2 + lodash: ^4.17.21 + markdown-to-jsx: ^7.1.8 + memoizerific: ^1.11.3 + polished: ^4.2.2 + react-colorful: ^5.1.2 + telejson: ^7.0.3 + ts-dedent: ^2.0.0 + util-deprecate: ^1.0.2 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: a03f13a01f148e1221c56cdba5ebeac299bd780fce51d740562b7529ad24ec24f26d4990b77899e806592883ab5042ed8118110d8e26615f6cf7126c3b99ec56 + languageName: node + linkType: hard + "@storybook/builder-manager@npm:7.0.23": version: 7.0.23 resolution: "@storybook/builder-manager@npm:7.0.23" @@ -4287,6 +4355,20 @@ __metadata: languageName: node linkType: hard +"@storybook/channel-postmessage@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/channel-postmessage@npm:7.0.24" + dependencies: + "@storybook/channels": 7.0.24 + "@storybook/client-logger": 7.0.24 + "@storybook/core-events": 7.0.24 + "@storybook/global": ^5.0.0 + qs: ^6.10.0 + telejson: ^7.0.3 + checksum: 950e52c80463ff84de4c2c94a4c01b9366af86f0f6094a4f84bbce806561c332a9fc63098e8ba4cc066626cb6954e7c04ba3071a2691ae7c5aaa8348c3cfa909 + languageName: node + linkType: hard + "@storybook/channel-websocket@npm:7.0.23": version: 7.0.23 resolution: "@storybook/channel-websocket@npm:7.0.23" @@ -4306,6 +4388,13 @@ __metadata: languageName: node linkType: hard +"@storybook/channels@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/channels@npm:7.0.24" + checksum: 68f8fb9c0f59a21cf471aff0518aba0997e5691ca06c0d1d78a1578a9ecabce53b8d82b39a64f96d06669bfab68d99fe9d13fad6552f21df73e799e2170cd5b2 + languageName: node + linkType: hard + "@storybook/cli@npm:7.0.23": version: 7.0.23 resolution: "@storybook/cli@npm:7.0.23" @@ -4374,6 +4463,15 @@ __metadata: languageName: node linkType: hard +"@storybook/client-logger@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/client-logger@npm:7.0.24" + dependencies: + "@storybook/global": ^5.0.0 + checksum: fb71495535d3be50c6199b04caed286fd13de8d83e07fce5001bd4db247957b148f889c449074facfaa07fec39080de34d412985a0f4be6920cd5d34c3ce56fa + languageName: node + linkType: hard + "@storybook/codemod@npm:7.0.23": version: 7.0.23 resolution: "@storybook/codemod@npm:7.0.23" @@ -4414,6 +4512,25 @@ __metadata: languageName: node linkType: hard +"@storybook/components@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/components@npm:7.0.24" + dependencies: + "@storybook/client-logger": 7.0.24 + "@storybook/csf": ^0.1.0 + "@storybook/global": ^5.0.0 + "@storybook/theming": 7.0.24 + "@storybook/types": 7.0.24 + memoizerific: ^1.11.3 + use-resize-observer: ^9.1.0 + util-deprecate: ^1.0.2 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 7fbaf208f3e0f46b8eaabce2eb6901b04a07f0b361afe50efd378404bd19ffae0b6d507856ae9ba7ea1bcecc4e8eebad812b1ad808dcbae85f71c21fd8141c4b + languageName: node + linkType: hard + "@storybook/core-client@npm:7.0.23": version: 7.0.23 resolution: "@storybook/core-client@npm:7.0.23" @@ -4453,6 +4570,35 @@ __metadata: languageName: node linkType: hard +"@storybook/core-common@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/core-common@npm:7.0.24" + dependencies: + "@storybook/node-logger": 7.0.24 + "@storybook/types": 7.0.24 + "@types/node": ^16.0.0 + "@types/node-fetch": ^2.6.4 + "@types/pretty-hrtime": ^1.0.0 + chalk: ^4.1.0 + esbuild: ^0.17.0 + esbuild-register: ^3.4.0 + file-system-cache: 2.3.0 + find-up: ^5.0.0 + fs-extra: ^11.1.0 + glob: ^8.1.0 + glob-promise: ^6.0.2 + handlebars: ^4.7.7 + lazy-universal-dotenv: ^4.0.0 + node-fetch: ^2.0.0 + picomatch: ^2.3.0 + pkg-dir: ^5.0.0 + pretty-hrtime: ^1.0.3 + resolve-from: ^5.0.0 + ts-dedent: ^2.0.0 + checksum: e66216ebab5c073051e47a67bd484eb0b80cfc030369f1ecd32533424933ae5bffbfa007239f421982f5390151dcd7180c08c20718b432e5f4e63d38936899e6 + languageName: node + linkType: hard + "@storybook/core-events@npm:7.0.23": version: 7.0.23 resolution: "@storybook/core-events@npm:7.0.23" @@ -4460,6 +4606,13 @@ __metadata: languageName: node linkType: hard +"@storybook/core-events@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/core-events@npm:7.0.24" + checksum: 1bf563ed16551acf7caee56c5be5a47f67612b13ad1e97bb23cdd3f337a2fc82a0c0160421f02f254dba7d7bfc641c6aa36b534903ffca9afb2ec67c01870845 + languageName: node + linkType: hard + "@storybook/core-server@npm:7.0.23": version: 7.0.23 resolution: "@storybook/core-server@npm:7.0.23" @@ -4532,6 +4685,16 @@ __metadata: languageName: node linkType: hard +"@storybook/csf-plugin@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/csf-plugin@npm:7.0.24" + dependencies: + "@storybook/csf-tools": 7.0.24 + unplugin: ^0.10.2 + checksum: fe7c545a21f38794ca96a97bcaf1ce84662e816227ecd801a04344904235eadca2878fd36ae24b279006874f95cd5b3d4f7d5ac3307b17ad188e223e6d0321fb + languageName: node + linkType: hard + "@storybook/csf-tools@npm:7.0.23": version: 7.0.23 resolution: "@storybook/csf-tools@npm:7.0.23" @@ -4549,6 +4712,23 @@ __metadata: languageName: node linkType: hard +"@storybook/csf-tools@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/csf-tools@npm:7.0.24" + dependencies: + "@babel/generator": ~7.21.1 + "@babel/parser": ~7.21.2 + "@babel/traverse": ~7.21.2 + "@babel/types": ~7.21.2 + "@storybook/csf": ^0.1.0 + "@storybook/types": 7.0.24 + fs-extra: ^11.1.0 + recast: ^0.23.1 + ts-dedent: ^2.0.0 + checksum: c60ace6ad36c0c89968d5ee094a645913a92d2c90aea6b103ab623ad07544052f093662ce6cb20876559294fe3c6b2a6d54a57a7f25d28b1c32aef1086366dba + languageName: node + linkType: hard + "@storybook/csf@npm:^0.0.1": version: 0.0.1 resolution: "@storybook/csf@npm:0.0.1" @@ -4589,6 +4769,21 @@ __metadata: languageName: node linkType: hard +"@storybook/docs-tools@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/docs-tools@npm:7.0.24" + dependencies: + "@babel/core": ^7.12.10 + "@storybook/core-common": 7.0.24 + "@storybook/preview-api": 7.0.24 + "@storybook/types": 7.0.24 + "@types/doctrine": ^0.0.3 + doctrine: ^3.0.0 + lodash: ^4.17.21 + checksum: 23cfc5fd4c4d62c35cd140ea7964be05228ae44d5b7bd71de8aee283a38190c66a8de8564afa2d4c301dbfff532570416aeca55e917f181ca2565ea720a6a5b4 + languageName: node + linkType: hard + "@storybook/global@npm:^5.0.0": version: 5.0.0 resolution: "@storybook/global@npm:5.0.0" @@ -4656,6 +4851,32 @@ __metadata: languageName: node linkType: hard +"@storybook/manager-api@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/manager-api@npm:7.0.24" + dependencies: + "@storybook/channels": 7.0.24 + "@storybook/client-logger": 7.0.24 + "@storybook/core-events": 7.0.24 + "@storybook/csf": ^0.1.0 + "@storybook/global": ^5.0.0 + "@storybook/router": 7.0.24 + "@storybook/theming": 7.0.24 + "@storybook/types": 7.0.24 + dequal: ^2.0.2 + lodash: ^4.17.21 + memoizerific: ^1.11.3 + semver: ^7.3.7 + store2: ^2.14.2 + telejson: ^7.0.3 + ts-dedent: ^2.0.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 2938f7848bb36d9471db0d908a02cb297219df542a3dbe586dffd7c6960ad71cc2c695272dfa7675c7aaeb5c55873e608d5b438e3f41a10843a05aa32ce8a6ec + languageName: node + linkType: hard + "@storybook/manager@npm:7.0.23": version: 7.0.23 resolution: "@storybook/manager@npm:7.0.23" @@ -4682,6 +4903,18 @@ __metadata: languageName: node linkType: hard +"@storybook/node-logger@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/node-logger@npm:7.0.24" + dependencies: + "@types/npmlog": ^4.1.2 + chalk: ^4.1.0 + npmlog: ^5.0.1 + pretty-hrtime: ^1.0.3 + checksum: a70afae655f7ce7b8937b97e4c09537ed726c0bf88609021904486314866d4db14914358984a8b25fd06ac331034bbf9684fb3671728ad4560882aceca5e521b + languageName: node + linkType: hard + "@storybook/postinstall@npm:7.0.23": version: 7.0.23 resolution: "@storybook/postinstall@npm:7.0.23" @@ -4689,6 +4922,13 @@ __metadata: languageName: node linkType: hard +"@storybook/postinstall@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/postinstall@npm:7.0.24" + checksum: a78947a2b6cfb9646dd436e79c8a0f0aeaa3a346e977f716e8af7bf5608092bb8a6f0ad5982aba7f13f1b6afec488dcb09a863ca7620bba7ce05c6bc42c5eef1 + languageName: node + linkType: hard + "@storybook/preset-html-webpack@npm:7.0.23": version: 7.0.23 resolution: "@storybook/preset-html-webpack@npm:7.0.23" @@ -4726,6 +4966,29 @@ __metadata: languageName: node linkType: hard +"@storybook/preview-api@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/preview-api@npm:7.0.24" + dependencies: + "@storybook/channel-postmessage": 7.0.24 + "@storybook/channels": 7.0.24 + "@storybook/client-logger": 7.0.24 + "@storybook/core-events": 7.0.24 + "@storybook/csf": ^0.1.0 + "@storybook/global": ^5.0.0 + "@storybook/types": 7.0.24 + "@types/qs": ^6.9.5 + dequal: ^2.0.2 + lodash: ^4.17.21 + memoizerific: ^1.11.3 + qs: ^6.10.0 + synchronous-promise: ^2.0.15 + ts-dedent: ^2.0.0 + util-deprecate: ^1.0.2 + checksum: ce702286652794b6517b16671692c621a5c9c14364e98cfee795b9b3874d29cd3de82f349f414450897ae077f58784f750de3472707367924eb29f36f9231726 + languageName: node + linkType: hard + "@storybook/preview@npm:7.0.23": version: 7.0.23 resolution: "@storybook/preview@npm:7.0.23" @@ -4743,6 +5006,16 @@ __metadata: languageName: node linkType: hard +"@storybook/react-dom-shim@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/react-dom-shim@npm:7.0.24" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 91cf559924d161cd6e8b9be7d231bb94bad102d8383015a808c41e46b85b50783182414d59938e5e4de7c796c490cae347c356b450ac17b1cff80162cebc289d + languageName: node + linkType: hard + "@storybook/router@npm:7.0.23": version: 7.0.23 resolution: "@storybook/router@npm:7.0.23" @@ -4757,6 +5030,20 @@ __metadata: languageName: node linkType: hard +"@storybook/router@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/router@npm:7.0.24" + dependencies: + "@storybook/client-logger": 7.0.24 + memoizerific: ^1.11.3 + qs: ^6.10.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 525e8cc31cb3ba8d6e4140a4bba7ceecf9edc81c745d91d7d1c73cc589c70b1a5deb1b9aefe9f3f3b0ffdec68b1b5b570342044711a3375c2c0f2f661ef8de04 + languageName: node + linkType: hard + "@storybook/store@npm:7.0.23": version: 7.0.23 resolution: "@storybook/store@npm:7.0.23" @@ -4799,6 +5086,21 @@ __metadata: languageName: node linkType: hard +"@storybook/theming@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/theming@npm:7.0.24" + dependencies: + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0 + "@storybook/client-logger": 7.0.24 + "@storybook/global": ^5.0.0 + memoizerific: ^1.11.3 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: f44edb7f71816d4d05877b39873f64b3d1616d65c8b948d32a9160e4f9fdd550b6a8e7356d8badbe978e0bd83e39c106863e7ccb824b357dd15402b2b7bf9d11 + languageName: node + linkType: hard + "@storybook/types@npm:7.0.23": version: 7.0.23 resolution: "@storybook/types@npm:7.0.23" @@ -4811,6 +5113,18 @@ __metadata: languageName: node linkType: hard +"@storybook/types@npm:7.0.24": + version: 7.0.24 + resolution: "@storybook/types@npm:7.0.24" + dependencies: + "@storybook/channels": 7.0.24 + "@types/babel__core": ^7.0.0 + "@types/express": ^4.7.0 + file-system-cache: 2.3.0 + checksum: 38bcd0c8a43760309281de433636c2d6ca4d59bfd99de62382afef8235b0a1dcf8fa9dae68263837962ee3a85cfd55f6e4e82adcba65cf07f48362f716c8cfec + languageName: node + linkType: hard + "@tootallnate/once@npm:1": version: 1.1.2 resolution: "@tootallnate/once@npm:1.1.2" @@ -4909,6 +5223,15 @@ __metadata: languageName: node linkType: hard +"@types/debug@npm:^4.0.0": + version: 4.1.8 + resolution: "@types/debug@npm:4.1.8" + dependencies: + "@types/ms": "*" + checksum: a9a9bb40a199e9724aa944e139a7659173a9b274798ea7efbc277cb084bc37d32fc4c00877c3496fac4fed70a23243d284adb75c00b5fdabb38a22154d18e5df + languageName: node + linkType: hard + "@types/detect-port@npm:^1.3.0": version: 1.3.3 resolution: "@types/detect-port@npm:1.3.3" @@ -5094,6 +5417,15 @@ __metadata: languageName: node linkType: hard +"@types/mdast@npm:^3.0.0": + version: 3.0.11 + resolution: "@types/mdast@npm:3.0.11" + dependencies: + "@types/unist": "*" + checksum: 3b04cf465535553b47a1811c247668bd6cfeb54d99a2c9dbb82ccd0f5145d271d10c3169f929701d8cd55fd569f0d2e459a50845813ba3261f1fb0395a288cea + languageName: node + linkType: hard + "@types/mdx@npm:^2.0.0": version: 2.0.5 resolution: "@types/mdx@npm:2.0.5" @@ -5136,6 +5468,13 @@ __metadata: languageName: node linkType: hard +"@types/ms@npm:*": + version: 0.7.31 + resolution: "@types/ms@npm:0.7.31" + checksum: daadd354aedde024cce6f5aa873fefe7b71b22cd0e28632a69e8b677aeb48ae8caa1c60e5919bb781df040d116b01cb4316335167a3fc0ef6a63fa3614c0f6da + languageName: node + linkType: hard + "@types/node-fetch@npm:^2.5.7, @types/node-fetch@npm:^2.6.4": version: 2.6.4 resolution: "@types/node-fetch@npm:2.6.4" @@ -5278,7 +5617,7 @@ __metadata: languageName: node linkType: hard -"@types/unist@npm:^2.0.0": +"@types/unist@npm:*, @types/unist@npm:^2.0.0": version: 2.0.6 resolution: "@types/unist@npm:2.0.6" checksum: 25cb860ff10dde48b54622d58b23e66214211a61c84c0f15f88d38b61aa1b53d4d46e42b557924a93178c501c166aa37e28d7f6d994aba13d24685326272d5db @@ -6371,6 +6710,13 @@ __metadata: languageName: node linkType: hard +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824 + languageName: node + linkType: hard + "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" @@ -6773,6 +7119,13 @@ __metadata: languageName: node linkType: hard +"ccount@npm:^2.0.0": + version: 2.0.1 + resolution: "ccount@npm:2.0.1" + checksum: 48193dada54c9e260e0acf57fc16171a225305548f9ad20d5471e0f7a8c026aedd8747091dccb0d900cde7df4e4ddbd235df0d8de4a64c71b12f0d3303eeafd4 + languageName: node + linkType: hard + "chalk@npm:4.1.0": version: 4.1.0 resolution: "chalk@npm:4.1.0" @@ -6811,6 +7164,13 @@ __metadata: languageName: node linkType: hard +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: cf1643814023697f725e47328fcec17923b8f1799102a8a79c1514e894815651794a2bffd84bb1b3a4b124b050154e4529ed6e81f7c8068a734aecf07a6d3def + languageName: node + linkType: hard + "chardet@npm:^0.7.0": version: 0.7.0 resolution: "chardet@npm:0.7.0" @@ -7546,7 +7906,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -7584,6 +7944,15 @@ __metadata: languageName: node linkType: hard +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: ^2.0.0 + checksum: f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 + languageName: node + linkType: hard + "dedent@npm:0.7.0, dedent@npm:^0.7.0": version: 0.7.0 resolution: "dedent@npm:0.7.0" @@ -7707,7 +8076,7 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.2": +"dequal@npm:^2.0.0, dequal@npm:^2.0.2": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 @@ -7771,6 +8140,13 @@ __metadata: languageName: node linkType: hard +"diff@npm:^5.0.0": + version: 5.1.0 + resolution: "diff@npm:5.1.0" + checksum: c7bf0df7c9bfbe1cf8a678fd1b2137c4fb11be117a67bc18a0e03ae75105e8533dbfb1cda6b46beb3586ef5aed22143ef9d70713977d5fb1f9114e21455fba90 + languageName: node + linkType: hard + "dir-glob@npm:^3.0.1": version: 3.0.1 resolution: "dir-glob@npm:3.0.1" @@ -8266,6 +8642,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^5.0.0": + version: 5.0.0 + resolution: "escape-string-regexp@npm:5.0.0" + checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + languageName: node + linkType: hard + "eslint-config-prettier@npm:^6.15.0": version: 6.15.0 resolution: "eslint-config-prettier@npm:6.15.0" @@ -10261,6 +10644,13 @@ __metadata: languageName: node linkType: hard +"is-buffer@npm:^2.0.0": + version: 2.0.5 + resolution: "is-buffer@npm:2.0.5" + checksum: 764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 + languageName: node + linkType: hard + "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.4": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -10450,6 +10840,13 @@ __metadata: languageName: node linkType: hard +"is-plain-obj@npm:^4.0.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + languageName: node + linkType: hard + "is-plain-object@npm:^2.0.4": version: 2.0.4 resolution: "is-plain-object@npm:2.0.4" @@ -11459,6 +11856,13 @@ __metadata: languageName: node linkType: hard +"kleur@npm:^4.0.3": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 1dc476e32741acf0b1b5b0627ffd0d722e342c1b0da14de3e8ae97821327ca08f9fb944542fb3c126d90ac5f27f9d804edbe7c585bf7d12ef495d115e0f22c12 + languageName: node + linkType: hard + "known-css-properties@npm:^0.26.0": version: 0.26.0 resolution: "known-css-properties@npm:0.26.0" @@ -11803,6 +12207,13 @@ __metadata: languageName: node linkType: hard +"longest-streak@npm:^3.0.0": + version: 3.1.0 + resolution: "longest-streak@npm:3.1.0" + checksum: d7f952ed004cbdb5c8bcfc4f7f5c3d65449e6c5a9e9be4505a656e3df5a57ee125f284286b4bf8ecea0c21a7b3bf2b8f9001ad506c319b9815ad6a63a47d0fd0 + languageName: node + linkType: hard + "loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -11967,6 +12378,13 @@ __metadata: languageName: node linkType: hard +"markdown-table@npm:^3.0.0": + version: 3.0.3 + resolution: "markdown-table@npm:3.0.3" + checksum: 8fcd3d9018311120fbb97115987f8b1665a603f3134c93fbecc5d1463380c8036f789e2a62c19432058829e594fff8db9ff81c88f83690b2f8ed6c074f8d9e10 + languageName: node + linkType: hard + "markdown-to-jsx@npm:^7.1.8, markdown-to-jsx@npm:^7.2.1": version: 7.2.1 resolution: "markdown-to-jsx@npm:7.2.1" @@ -11992,6 +12410,134 @@ __metadata: languageName: node linkType: hard +"mdast-util-find-and-replace@npm:^2.0.0": + version: 2.2.2 + resolution: "mdast-util-find-and-replace@npm:2.2.2" + dependencies: + "@types/mdast": ^3.0.0 + escape-string-regexp: ^5.0.0 + unist-util-is: ^5.0.0 + unist-util-visit-parents: ^5.0.0 + checksum: b4ce463c43fe6e1c38a53a89703f755c84ab5437f49bff9a0ac751279733332ca11c85ed0262aa6c17481f77b555d26ca6d64e70d6814f5b8d12d34a3e53a60b + languageName: node + linkType: hard + +"mdast-util-from-markdown@npm:^1.0.0": + version: 1.3.1 + resolution: "mdast-util-from-markdown@npm:1.3.1" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + decode-named-character-reference: ^1.0.0 + mdast-util-to-string: ^3.1.0 + micromark: ^3.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-decode-string: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + unist-util-stringify-position: ^3.0.0 + uvu: ^0.5.0 + checksum: c2fac225167e248d394332a4ea39596e04cbde07d8cdb3889e91e48972c4c3462a02b39fda3855345d90231eb17a90ac6e082fb4f012a77c1d0ddfb9c7446940 + languageName: node + linkType: hard + +"mdast-util-gfm-autolink-literal@npm:^1.0.0": + version: 1.0.3 + resolution: "mdast-util-gfm-autolink-literal@npm:1.0.3" + dependencies: + "@types/mdast": ^3.0.0 + ccount: ^2.0.0 + mdast-util-find-and-replace: ^2.0.0 + micromark-util-character: ^1.0.0 + checksum: 1748a8727cfc533bac0c287d6e72d571d165bfa77ae0418be4828177a3ec73c02c3f2ee534d87eb75cbaffa00c0866853bbcc60ae2255babb8210f7636ec2ce2 + languageName: node + linkType: hard + +"mdast-util-gfm-footnote@npm:^1.0.0": + version: 1.0.2 + resolution: "mdast-util-gfm-footnote@npm:1.0.2" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.3.0 + micromark-util-normalize-identifier: ^1.0.0 + checksum: 2d77505f9377ed7e14472ef5e6b8366c3fec2cf5f936bb36f9fbe5b97ccb7cce0464d9313c236fa86fb844206fd585db05707e4fcfb755e4fc1864194845f1f6 + languageName: node + linkType: hard + +"mdast-util-gfm-strikethrough@npm:^1.0.0": + version: 1.0.3 + resolution: "mdast-util-gfm-strikethrough@npm:1.0.3" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.3.0 + checksum: 17003340ff1bba643ec4a59fd4370fc6a32885cab2d9750a508afa7225ea71449fb05acaef60faa89c6378b8bcfbd86a9d94b05f3c6651ff27a60e3ddefc2549 + languageName: node + linkType: hard + +"mdast-util-gfm-table@npm:^1.0.0": + version: 1.0.7 + resolution: "mdast-util-gfm-table@npm:1.0.7" + dependencies: + "@types/mdast": ^3.0.0 + markdown-table: ^3.0.0 + mdast-util-from-markdown: ^1.0.0 + mdast-util-to-markdown: ^1.3.0 + checksum: 8b8c401bb4162e53f072a2dff8efbca880fd78d55af30601c791315ab6722cb2918176e8585792469a0c530cebb9df9b4e7fede75fdc4d83df2839e238836692 + languageName: node + linkType: hard + +"mdast-util-gfm-task-list-item@npm:^1.0.0": + version: 1.0.2 + resolution: "mdast-util-gfm-task-list-item@npm:1.0.2" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-to-markdown: ^1.3.0 + checksum: c9b86037d6953b84f11fb2fc3aa23d5b8e14ca0dfcb0eb2fb289200e172bb9d5647bfceb4f86606dc6d935e8d58f6a458c04d3e55e87ff8513c7d4ade976200b + languageName: node + linkType: hard + +"mdast-util-gfm@npm:^2.0.0": + version: 2.0.2 + resolution: "mdast-util-gfm@npm:2.0.2" + dependencies: + mdast-util-from-markdown: ^1.0.0 + mdast-util-gfm-autolink-literal: ^1.0.0 + mdast-util-gfm-footnote: ^1.0.0 + mdast-util-gfm-strikethrough: ^1.0.0 + mdast-util-gfm-table: ^1.0.0 + mdast-util-gfm-task-list-item: ^1.0.0 + mdast-util-to-markdown: ^1.0.0 + checksum: 7078cb985255208bcbce94a121906417d38353c6b1a9acbe56ee8888010d3500608b5d51c16b0999ac63ca58848fb13012d55f26930ff6c6f3450f053d56514e + languageName: node + linkType: hard + +"mdast-util-phrasing@npm:^3.0.0": + version: 3.0.1 + resolution: "mdast-util-phrasing@npm:3.0.1" + dependencies: + "@types/mdast": ^3.0.0 + unist-util-is: ^5.0.0 + checksum: c5b616d9b1eb76a6b351d195d94318494722525a12a89d9c8a3b091af7db3dd1fc55d294f9d29266d8159a8267b0df4a7a133bda8a3909d5331c383e1e1ff328 + languageName: node + linkType: hard + +"mdast-util-to-markdown@npm:^1.0.0, mdast-util-to-markdown@npm:^1.3.0": + version: 1.5.0 + resolution: "mdast-util-to-markdown@npm:1.5.0" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + longest-streak: ^3.0.0 + mdast-util-phrasing: ^3.0.0 + mdast-util-to-string: ^3.0.0 + micromark-util-decode-string: ^1.0.0 + unist-util-visit: ^4.0.0 + zwitch: ^2.0.0 + checksum: 64338eb33e49bb0aea417591fd986f72fdd39205052563bb7ce9eb9ecc160824509bfacd740086a05af355c6d5c36353aafe95cab9e6927d674478757cee6259 + languageName: node + linkType: hard + "mdast-util-to-string@npm:^1.0.0": version: 1.1.0 resolution: "mdast-util-to-string@npm:1.1.0" @@ -11999,6 +12545,15 @@ __metadata: languageName: node linkType: hard +"mdast-util-to-string@npm:^3.0.0, mdast-util-to-string@npm:^3.1.0": + version: 3.2.0 + resolution: "mdast-util-to-string@npm:3.2.0" + dependencies: + "@types/mdast": ^3.0.0 + checksum: dc40b544d54339878ae2c9f2b3198c029e1e07291d2126bd00ca28272ee6616d0d2194eb1c9828a7c34d412a79a7e73b26512a734698d891c710a1e73db1e848 + languageName: node + linkType: hard + "media-typer@npm:0.3.0": version: 0.3.0 resolution: "media-typer@npm:0.3.0" @@ -12098,6 +12653,335 @@ __metadata: languageName: node linkType: hard +"micromark-core-commonmark@npm:^1.0.0, micromark-core-commonmark@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-core-commonmark@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-factory-destination: ^1.0.0 + micromark-factory-label: ^1.0.0 + micromark-factory-space: ^1.0.0 + micromark-factory-title: ^1.0.0 + micromark-factory-whitespace: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-classify-character: ^1.0.0 + micromark-util-html-tag-name: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: c6dfedc95889cc73411cb222fc2330b9eda6d849c09c9fd9eb3cd3398af246167e9d3cdb0ae3ce9ae59dd34a14624c8330e380255d41279ad7350cf6c6be6c5b + languageName: node + linkType: hard + +"micromark-extension-gfm-autolink-literal@npm:^1.0.0": + version: 1.0.5 + resolution: "micromark-extension-gfm-autolink-literal@npm:1.0.5" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ec2f6bc4a3eb238c1b8be9744454ffbc2957e3d8a248697af5a26bb21479862300c0e40e0a92baf17c299ddf70d4bc4470d4eee112cd92322f87d81e45c2e83d + languageName: node + linkType: hard + +"micromark-extension-gfm-footnote@npm:^1.0.0": + version: 1.1.2 + resolution: "micromark-extension-gfm-footnote@npm:1.1.2" + dependencies: + micromark-core-commonmark: ^1.0.0 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: c151a629ee1cd92363c018a50f926a002c944ac481ca72b3720b9529e9c20f1cbef98b0fefdcd2d594af37d0d9743673409cac488af0d2b194210fd16375dcb7 + languageName: node + linkType: hard + +"micromark-extension-gfm-strikethrough@npm:^1.0.0": + version: 1.0.7 + resolution: "micromark-extension-gfm-strikethrough@npm:1.0.7" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-classify-character: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 169e310a4408feade0df80180f60d48c5cc5b7070e5e75e0bbd914e9100273508162c4bb20b72d53081dc37f1ff5834b3afa137862576f763878552c03389811 + languageName: node + linkType: hard + +"micromark-extension-gfm-table@npm:^1.0.0": + version: 1.0.7 + resolution: "micromark-extension-gfm-table@npm:1.0.7" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 4853731285224e409d7e2c94c6ec849165093bff819e701221701aa7b7b34c17702c44f2f831e96b49dc27bb07e445b02b025561b68e62f5c3254415197e7af6 + languageName: node + linkType: hard + +"micromark-extension-gfm-tagfilter@npm:^1.0.0": + version: 1.0.2 + resolution: "micromark-extension-gfm-tagfilter@npm:1.0.2" + dependencies: + micromark-util-types: ^1.0.0 + checksum: 7d2441df51f890c86f8e7cf7d331a570b69c8105fa1c2fc5b737cb739502c16c8ee01cf35550a8a78f89497c5dfacc97cf82d55de6274e8320f3aec25e2b0dd2 + languageName: node + linkType: hard + +"micromark-extension-gfm-task-list-item@npm:^1.0.0": + version: 1.0.5 + resolution: "micromark-extension-gfm-task-list-item@npm:1.0.5" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 929f05343d272cffb8008899289f4cffe986ef98fc622ebbd1aa4ff11470e6b32ed3e1f18cd294adb69cabb961a400650078f6c12b322cc515b82b5068b31960 + languageName: node + linkType: hard + +"micromark-extension-gfm@npm:^2.0.0": + version: 2.0.3 + resolution: "micromark-extension-gfm@npm:2.0.3" + dependencies: + micromark-extension-gfm-autolink-literal: ^1.0.0 + micromark-extension-gfm-footnote: ^1.0.0 + micromark-extension-gfm-strikethrough: ^1.0.0 + micromark-extension-gfm-table: ^1.0.0 + micromark-extension-gfm-tagfilter: ^1.0.0 + micromark-extension-gfm-task-list-item: ^1.0.0 + micromark-util-combine-extensions: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: c4a917c16d7aa5d00d1767b5ce5f3b1a78c0de11dbd5c8f69d2545083568aa6bb13bd9d8e4c7fec5f4da10e7ed8344b15acffc843b33a615c17396a118bc2bc1 + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-destination@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 9e2b5fb5fedbf622b687e20d51eb3d56ae90c0e7ecc19b37bd5285ec392c1e56f6e21aa7cfcb3c01eda88df88fe528f3acb91a5f57d7f4cba310bc3cd7f824fa + languageName: node + linkType: hard + +"micromark-factory-label@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-label@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: fcda48f1287d9b148c562c627418a2ab759cdeae9c8e017910a0cba94bb759a96611e1fc6df33182e97d28fbf191475237298983bb89ef07d5b02464b1ad28d5 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-space@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: b58435076b998a7e244259a4694eb83c78915581206b6e7fc07b34c6abd36a1726ade63df8972fbf6c8fa38eecb9074f4e17be8d53f942e3b3d23d1a0ecaa941 + languageName: node + linkType: hard + +"micromark-factory-title@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-title@npm:1.1.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 4432d3dbc828c81f483c5901b0c6591a85d65a9e33f7d96ba7c3ae821617a0b3237ff5faf53a9152d00aaf9afb3a9f185b205590f40ed754f1d9232e0e9157b1 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-factory-whitespace@npm:1.1.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ef0fa682c7d593d85a514ee329809dee27d10bc2a2b65217d8ef81173e33b8e83c549049764b1ad851adfe0a204dec5450d9d20a4ca8598f6c94533a73f73fcd + languageName: node + linkType: hard + +"micromark-util-character@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-character@npm:1.2.0" + dependencies: + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 089e79162a19b4a28731736246579ab7e9482ac93cd681c2bfca9983dcff659212ef158a66a5957e9d4b1dba957d1b87b565d85418a5b009f0294f1f07f2aaac + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-chunked@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: c435bde9110cb595e3c61b7f54c2dc28ee03e6a57fa0fc1e67e498ad8bac61ee5a7457a2b6a73022ddc585676ede4b912d28dcf57eb3bd6951e54015e14dc20b + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-classify-character@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 8499cb0bb1f7fb946f5896285fcca65cd742f66cd3e79ba7744792bd413ec46834f932a286de650349914d02e822946df3b55d03e6a8e1d245d1ddbd5102e5b0 + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-combine-extensions@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: ee78464f5d4b61ccb437850cd2d7da4d690b260bca4ca7a79c4bb70291b84f83988159e373b167181b6716cb197e309bc6e6c96a68cc3ba9d50c13652774aba9 + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-numeric-character-reference@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: 4733fe75146e37611243f055fc6847137b66f0cde74d080e33bd26d0408c1d6f44cabc984063eee5968b133cb46855e729d555b9ff8d744652262b7b51feec73 + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-decode-string@npm:1.1.0" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: f1625155db452f15aa472918499689ba086b9c49d1322a08b22bfbcabe918c61b230a3002c8bc3ea9b1f52ca7a9bb1c3dd43ccb548c7f5f8b16c24a1ae77a813 + languageName: node + linkType: hard + +"micromark-util-encode@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-encode@npm:1.1.0" + checksum: 4ef29d02b12336918cea6782fa87c8c578c67463925221d4e42183a706bde07f4b8b5f9a5e1c7ce8c73bb5a98b261acd3238fecd152e6dd1cdfa2d1ae11b60a0 + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-html-tag-name@npm:1.2.0" + checksum: ccf0fa99b5c58676dc5192c74665a3bfd1b536fafaf94723bd7f31f96979d589992df6fcf2862eba290ef18e6a8efb30ec8e1e910d9f3fc74f208871e9f84750 + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-normalize-identifier@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: 8655bea41ffa4333e03fc22462cb42d631bbef9c3c07b625fd852b7eb442a110f9d2e5902a42e65188d85498279569502bf92f3434a1180fc06f7c37edfbaee2 + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-resolve-all@npm:1.1.0" + dependencies: + micromark-util-types: ^1.0.0 + checksum: 1ce6c0237cd3ca061e76fae6602cf95014e764a91be1b9f10d36cb0f21ca88f9a07de8d49ab8101efd0b140a4fbfda6a1efb72027ab3f4d5b54c9543271dc52c + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^1.0.0": + version: 1.2.0 + resolution: "micromark-util-sanitize-uri@npm:1.2.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: 6663f365c4fe3961d622a580f4a61e34867450697f6806f027f21cf63c92989494895fcebe2345d52e249fe58a35be56e223a9776d084c9287818b40c779acc1 + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-subtokenize@npm:1.1.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 4a9d780c4d62910e196ea4fd886dc4079d8e424e5d625c0820016da0ed399a281daff39c50f9288045cc4bcd90ab47647e5396aba500f0853105d70dc8b1fc45 + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-symbol@npm:1.1.0" + checksum: 02414a753b79f67ff3276b517eeac87913aea6c028f3e668a19ea0fc09d98aea9f93d6222a76ca783d20299af9e4b8e7c797fe516b766185dcc6e93290f11f88 + languageName: node + linkType: hard + +"micromark-util-types@npm:^1.0.0, micromark-util-types@npm:^1.0.1": + version: 1.1.0 + resolution: "micromark-util-types@npm:1.1.0" + checksum: b0ef2b4b9589f15aec2666690477a6a185536927ceb7aa55a0f46475852e012d75a1ab945187e5c7841969a842892164b15d58ff8316b8e0d6cc920cabd5ede7 + languageName: node + linkType: hard + +"micromark@npm:^3.0.0": + version: 3.2.0 + resolution: "micromark@npm:3.2.0" + dependencies: + "@types/debug": ^4.0.0 + debug: ^4.0.0 + decode-named-character-reference: ^1.0.0 + micromark-core-commonmark: ^1.0.1 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-combine-extensions: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: 56c15851ad3eb8301aede65603473443e50c92a54849cac1dadd57e4ec33ab03a0a77f3df03de47133e6e8f695dae83b759b514586193269e98c0bf319ecd5e4 + languageName: node + linkType: hard + "micromatch@npm:^4.0.0, micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": version: 4.0.5 resolution: "micromatch@npm:4.0.5" @@ -12382,7 +13266,7 @@ __metadata: languageName: node linkType: hard -"mri@npm:^1.2.0": +"mri@npm:^1.1.0, mri@npm:^1.2.0": version: 1.2.0 resolution: "mri@npm:1.2.0" checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 @@ -14425,6 +15309,18 @@ __metadata: languageName: node linkType: hard +"remark-gfm@npm:^3.0.1": + version: 3.0.1 + resolution: "remark-gfm@npm:3.0.1" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-gfm: ^2.0.0 + micromark-extension-gfm: ^2.0.0 + unified: ^10.0.0 + checksum: 02254f74d67b3419c2c9cf62d799ec35f6c6cd74db25c001361751991552a7ce86049a972107bff8122d85d15ae4a8d1a0618f3bc01a7df837af021ae9b2a04e + languageName: node + linkType: hard + "remark-slug@npm:^6.0.0": version: 6.1.0 resolution: "remark-slug@npm:6.1.0" @@ -14738,6 +15634,15 @@ __metadata: languageName: node linkType: hard +"sade@npm:^1.7.3": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: ^1.1.0 + checksum: 0756e5b04c51ccdc8221ebffd1548d0ce5a783a44a0fa9017a026659b97d632913e78f7dca59f2496aa996a0be0b0c322afd87ca72ccd909406f49dbffa0f45d + languageName: node + linkType: hard + "safe-buffer@npm:5.1.1": version: 5.1.1 resolution: "safe-buffer@npm:5.1.1" @@ -15986,6 +16891,13 @@ __metadata: languageName: node linkType: hard +"trough@npm:^2.0.0": + version: 2.1.0 + resolution: "trough@npm:2.1.0" + checksum: a577bb561c2b401cc0e1d9e188fcfcdf63b09b151ff56a668da12197fe97cac15e3d77d5b51f426ccfd94255744a9118e9e9935afe81a3644fa1be9783c82886 + languageName: node + linkType: hard + "ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0": version: 2.2.0 resolution: "ts-dedent@npm:2.2.0" @@ -16314,6 +17226,21 @@ __metadata: languageName: node linkType: hard +"unified@npm:^10.0.0": + version: 10.1.2 + resolution: "unified@npm:10.1.2" + dependencies: + "@types/unist": ^2.0.0 + bail: ^2.0.0 + extend: ^3.0.0 + is-buffer: ^2.0.0 + is-plain-obj: ^4.0.0 + trough: ^2.0.0 + vfile: ^5.0.0 + checksum: 053e7c65ede644607f87bd625a299e4b709869d2f76ec8138569e6e886903b6988b21cd9699e471eda42bee189527be0a9dac05936f1d069a5e65d0125d5d756 + languageName: node + linkType: hard + "unique-filename@npm:^1.1.1": version: 1.1.1 resolution: "unique-filename@npm:1.1.1" @@ -16366,6 +17293,24 @@ __metadata: languageName: node linkType: hard +"unist-util-is@npm:^5.0.0": + version: 5.2.1 + resolution: "unist-util-is@npm:5.2.1" + dependencies: + "@types/unist": ^2.0.0 + checksum: ae76fdc3d35352cd92f1bedc3a0d407c3b9c42599a52ab9141fe89bdd786b51f0ec5a2ab68b93fb532e239457cae62f7e39eaa80229e1cb94875da2eafcbe5c4 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^3.0.0": + version: 3.0.3 + resolution: "unist-util-stringify-position@npm:3.0.3" + dependencies: + "@types/unist": ^2.0.0 + checksum: dbd66c15183607ca942a2b1b7a9f6a5996f91c0d30cf8966fb88955a02349d9eefd3974e9010ee67e71175d784c5a9fea915b0aa0b0df99dcb921b95c4c9e124 + languageName: node + linkType: hard + "unist-util-visit-parents@npm:^3.0.0": version: 3.1.1 resolution: "unist-util-visit-parents@npm:3.1.1" @@ -16376,6 +17321,16 @@ __metadata: languageName: node linkType: hard +"unist-util-visit-parents@npm:^5.0.0, unist-util-visit-parents@npm:^5.1.1": + version: 5.1.3 + resolution: "unist-util-visit-parents@npm:5.1.3" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + checksum: 8ecada5978994f846b64658cf13b4092cd78dea39e1ba2f5090a5de842ba4852712c02351a8ae95250c64f864635e7b02aedf3b4a093552bb30cf1bd160efbaa + languageName: node + linkType: hard + "unist-util-visit@npm:^2.0.0": version: 2.0.3 resolution: "unist-util-visit@npm:2.0.3" @@ -16387,6 +17342,17 @@ __metadata: languageName: node linkType: hard +"unist-util-visit@npm:^4.0.0": + version: 4.1.2 + resolution: "unist-util-visit@npm:4.1.2" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + unist-util-visit-parents: ^5.1.1 + checksum: 95a34e3f7b5b2d4b68fd722b6229972099eb97b6df18913eda44a5c11df8b1e27efe7206dd7b88c4ed244a48c474a5b2e2629ab79558ff9eb936840295549cee + languageName: node + linkType: hard + "universal-user-agent@npm:^6.0.0": version: 6.0.0 resolution: "universal-user-agent@npm:6.0.0" @@ -16538,6 +17504,20 @@ __metadata: languageName: node linkType: hard +"uvu@npm:^0.5.0": + version: 0.5.6 + resolution: "uvu@npm:0.5.6" + dependencies: + dequal: ^2.0.0 + diff: ^5.0.0 + kleur: ^4.0.3 + sade: ^1.7.3 + bin: + uvu: bin.js + checksum: 09460a37975627de9fcad396e5078fb844d01aaf64a6399ebfcfd9e55f1c2037539b47611e8631f89be07656962af0cf48c334993db82b9ae9c3d25ce3862168 + languageName: node + linkType: hard + "v8-compile-cache@npm:2.3.0, v8-compile-cache@npm:^2.3.0": version: 2.3.0 resolution: "v8-compile-cache@npm:2.3.0" @@ -16649,6 +17629,28 @@ __metadata: languageName: node linkType: hard +"vfile-message@npm:^3.0.0": + version: 3.1.4 + resolution: "vfile-message@npm:3.1.4" + dependencies: + "@types/unist": ^2.0.0 + unist-util-stringify-position: ^3.0.0 + checksum: d0ee7da1973ad76513c274e7912adbed4d08d180eaa34e6bd40bc82459f4b7bc50fcaff41556135e3339995575eac5f6f709aba9332b80f775618ea4880a1367 + languageName: node + linkType: hard + +"vfile@npm:^5.0.0": + version: 5.3.7 + resolution: "vfile@npm:5.3.7" + dependencies: + "@types/unist": ^2.0.0 + is-buffer: ^2.0.0 + unist-util-stringify-position: ^3.0.0 + vfile-message: ^3.0.0 + checksum: 642cce703afc186dbe7cabf698dc954c70146e853491086f5da39e1ce850676fc96b169fcf7898aa3ff245e9313aeec40da93acd1e1fcc0c146dc4f6308b4ef9 + languageName: node + linkType: hard + "walker@npm:^1.0.8": version: 1.0.8 resolution: "walker@npm:1.0.8" @@ -17199,3 +18201,10 @@ __metadata: checksum: 084b2f16043ac0a892914ee29cc0b4fafd9338133eec0345cd6ced25e814f647fa67be1090ad5f606759c2c1f2f8c28127960ba187f437f1caf6fb8cd45d7336 languageName: node linkType: hard + +"zwitch@npm:^2.0.0": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6 + languageName: node + linkType: hard From dce1db4be2d12c9a8a95f444f5163095af5393a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Collonval?= Date: Tue, 4 Jul 2023 16:49:09 +0200 Subject: [PATCH 5/5] Fulfill the components list --- packages/components/docs/Introduction.mdx | 42 ++++++++++++++++++----- packages/components/src/button/README.md | 2 +- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/packages/components/docs/Introduction.mdx b/packages/components/docs/Introduction.mdx index aeb9c07c..c2696bf9 100644 --- a/packages/components/docs/Introduction.mdx +++ b/packages/components/docs/Introduction.mdx @@ -2,13 +2,39 @@ ## Components +The component tags are prefixed by `jp-` (`anchored-region` ➙ `jp-anchored-region`) +when using `@jupyter/web-components` and are capitalized (`anchored-region` ➙ `AnchoredRegion`) when using `@jupyter/react-components`. + Here is the list of components part of the Jupyter UI toolkit: -| Name | Reference | Documentation | -| ----------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------- | -| `accordion` | [Accordion pattern](https://www.w3.org/WAI/ARIA/apg/patterns/accordion/) | [Stories](?path=/story/components-accordion--documentation) | -| `anchor` | [Anchor element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a) | [Stories](?path=/story/components-anchor--documentation) | -| `anchored-region` | Position content relative to another "anchor" element | [Stories](?path=/story/components-anchored-region--documentation) | -| `avatar` | Visual represent an user or an object | [Stories](?path=/story/components-avatar--documentation) | -| `badge` | Highlight an item and attract attention or flag status | [Stories](?path=/story/components-badge--documentation) | -| `breadcrumb` | [Breadcrumb pattern](https://www.w3.org/WAI/ARIA/apg/patterns/breadcrumb/) | [Stories](?path=/story/components-breadcrumb--documentation) | +| Name | Reference | Documentation | +| ----------------- | ---------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- | +| `accordion` | [Accordion pattern](https://www.w3.org/WAI/ARIA/apg/patterns/accordion/) | [Stories](?path=/story/components-accordion--documentation) | +| `anchor` | [Anchor element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a) | [Stories](?path=/story/components-anchor--documentation) | +| `anchored-region` | Position content relative to another "anchor" element | [Stories](?path=/story/components-anchored-region--documentation) | +| `avatar` | Visual represent an user or an object | [Stories](?path=/story/components-avatar--documentation) | +| `badge` | Highlight an item and attract attention or flag status | [Stories](?path=/story/components-badge--documentation) | +| `breadcrumb` | [Breadcrumb pattern](https://www.w3.org/WAI/ARIA/apg/patterns/breadcrumb/) | [Stories](?path=/story/components-breadcrumb--documentation) | +| `button` | [Button element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button) | [Stories](?path=/story/components-button--documentation) | +| `card` | Visual container | [Stories](?path=/story/components-card--documentation) | +| `checkbox` | [Checkbox element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input/checkbox) | [Stories](?path=/story/components-checkbox--documentation) | +| `combobox` | [Combobox element](https://www.w3.org/WAI/ARIA/apg/patterns/combobox/) | [Stories](?path=/story/components-combobox--documentation) | +| `data-grid` | [Grid pattern](https://www.w3.org/WAI/ARIA/apg/patterns/grid/) | [Stories](?path=/story/components-data-grid--documentation) | +| `date-field` | [Date input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/date) | [Stories](?path=/story/components-date-field--documentation) | +| `divider` | [Horizontal or vertical rule](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/hr) | [Stories](?path=/story/components-divider--documentation) | +| `menu` | [Menu](https://www.w3.org/WAI/ARIA/apg/patterns/menubar/) | [Stories](?path=/story/components-menu--documentation) | +| `number-field` | [Number input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/number) | [Stories](?path=/story/components-number-field--documentation) | +| `progress` | [Meter pattern](https://www.w3.org/WAI/ARIA/apg/patterns/meter/) as line | [Stories](?path=/story/components-progress--documentation) | +| `progress-ring` | [Meter pattern](https://www.w3.org/WAI/ARIA/apg/patterns/meter/) as ring | [Stories](?path=/story/components-progress-ring--documentation) | +| `radio-group` | [Radio pattern](https://www.w3.org/WAI/ARIA/apg/patterns/radio/) | [Stories](?path=/story/components-radio-group--documentation) | +| `search` | [Search input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search) | [Stories](?path=/story/components-search--documentation) | +| `select` | [Select element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select) | [Stories](?path=/story/components-select--documentation) | +| `skeleton` | [Skeleton element](https://open-ui.org/components/skeleton.research/) | [Stories](?path=/story/components-skeleton--documentation) | +| `slider` | [Range input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range) | [Stories](?path=/story/components-slider--documentation) | +| `switch` | [Switch pattern](https://www.w3.org/WAI/ARIA/apg/patterns/switch/) | [Stories](?path=/story/components-switch--documentation) | +| `tabs` | [Tab panel pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/) | [Stories](?path=/story/components-tabs--documentation) | +| `text-area` | [Text area element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea) | [Stories](?path=/story/components-text-area--documentation) | +| `text-field` | [Text input element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/text) | [Stories](?path=/story/components-text-field--documentation) | +| `toolbar` | [Toolbar pattern](https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/) | [Stories](?path=/story/components-toolbar--documentation) | +| `tooltip` | [Tooltip pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/) | [Stories](?path=/story/components-tooltip--documentation) | +| `tree-view` | [Tree view pattern](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/) | [Stories](?path=/story/components-tree-view--documentation) | diff --git a/packages/components/src/button/README.md b/packages/components/src/button/README.md index b3f5c9fa..df0ba887 100644 --- a/packages/components/src/button/README.md +++ b/packages/components/src/button/README.md @@ -1,6 +1,6 @@ # Jupyter Button -The `jp-button` is a web component implementation of a [button element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button). The `jp-button` also supports several visual appearances––primary, secondary, and icon. +The `jp-button` is a web component implementation of a [button element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button). The `jp-button` also supports several visual appearances; primary, secondary, and icon. ## Attributes