diff --git a/README.md b/README.md
index ef5b39a00..4fedf02aa 100644
--- a/README.md
+++ b/README.md
@@ -23,6 +23,7 @@
| ------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------- |
| Core | [`@juntossomosmais/atomium`](https://github.com/juntossomosmais/atomium/pkgs/npm/atomium) | | [README](./packages/core/README.md) |
| React | [`@juntossomosmais/atomium/react`](https://github.com/juntossomosmais/atomium/pkgs/npm/atomium) | | [README](./packages/react/README.md) |
+| Vue | [`@juntossomosmais/atomium/vue`](https://github.com/juntossomosmais/atomium/pkgs/npm/atomium) | | [README](./packages/react/README.md) |
| Tokens | [`@juntossomosmais/atomium-tokens`](https://github.com/juntossomosmais/atomium/pkgs/npm/atomium-tokens) | | [README](./packages/tokens/README.md) |
## About
@@ -69,6 +70,12 @@ If you want to run React Stories locally, you need to run the following command
npm run docs-react:start
```
+And if you want to run Vue Stories locally, you need to run the following command before `npm start`:
+
+```bash
+npm run docs-vue:start
+```
+
### Running Tests
```bash
@@ -89,8 +96,10 @@ npm run docs:build
* `apps/docs`: Contains the main documentation for the project.
* `apps/docs-react`: Provides a React version of Storybook for showcasing components.
+* `apps/docs-vue`: Provides a Vue version of Storybook for showcasing components.
* `packages/core`: The core of Atomium, responsible for building all the components.
* `packages/react`: The React version of Atomium, automatically generated by Stencil.
+* `packages/vue`: The Vue version of Atomium, automatically generated by Stencil.
* `packages/tokens`: Contains the design tokens for Atomium, where all the tokens are defined.
* `packages/icons`: Contains the icons used in Atomium, where all the icons are stored.
* `utils/**`: Contains utility modules used throughout the project, providing various helper functions and tools.
diff --git a/apps/docs-react/.storybook/preview.ts b/apps/docs-react/.storybook/preview.ts
index 0c521b403..6689d19e9 100644
--- a/apps/docs-react/.storybook/preview.ts
+++ b/apps/docs-react/.storybook/preview.ts
@@ -1,5 +1,3 @@
-import { defineCustomElements } from '@juntossomosmais/atomium/loader'
-
import { CustomViewports } from '@atomium/storybook-utils/custom-viewports'
import DocumentationTemplate from '@atomium/storybook-utils/DocumentationTemplate.mdx'
@@ -8,8 +6,6 @@ import '@atomium/storybook-utils/preview.css'
import '@juntossomosmais/atomium-tokens/tokens.css'
import '@juntossomosmais/atomium/dist/core/core.css'
-defineCustomElements()
-
const preview = {
parameters: {
viewport: {
diff --git a/apps/docs-vue/.storybook/main.ts b/apps/docs-vue/.storybook/main.ts
new file mode 100644
index 000000000..1efc25c8d
--- /dev/null
+++ b/apps/docs-vue/.storybook/main.ts
@@ -0,0 +1,21 @@
+module.exports = {
+ stories: [
+ '../stories/*.stories.@(js|jsx|ts|tsx|mdx)',
+ '../../../packages/core/src/**/*.vue.stories.@(js|jsx|ts|tsx|mdx)',
+ ],
+ addons: [
+ '@storybook/addon-essentials',
+ '@storybook/addon-docs',
+ '@storybook/addon-actions',
+ '@storybook/addon-a11y',
+ '@storybook/addon-viewport',
+ '@storybook/theming',
+ ],
+ framework: {
+ name: '@storybook/vue3-vite',
+ options: {},
+ },
+ docs: {
+ autodocs: true,
+ },
+}
diff --git a/apps/docs-vue/.storybook/manager-head.html b/apps/docs-vue/.storybook/manager-head.html
new file mode 100644
index 000000000..a971f32f5
--- /dev/null
+++ b/apps/docs-vue/.storybook/manager-head.html
@@ -0,0 +1,7 @@
+
+
+
diff --git a/apps/docs-vue/.storybook/manager.ts b/apps/docs-vue/.storybook/manager.ts
new file mode 100644
index 000000000..859d761e4
--- /dev/null
+++ b/apps/docs-vue/.storybook/manager.ts
@@ -0,0 +1,7 @@
+import { addons } from '@storybook/addons'
+
+import theme from '@atomium/storybook-utils/theme'
+
+addons.setConfig({
+ theme,
+})
diff --git a/apps/docs-vue/.storybook/preview.ts b/apps/docs-vue/.storybook/preview.ts
new file mode 100644
index 000000000..6689d19e9
--- /dev/null
+++ b/apps/docs-vue/.storybook/preview.ts
@@ -0,0 +1,21 @@
+import { CustomViewports } from '@atomium/storybook-utils/custom-viewports'
+import DocumentationTemplate from '@atomium/storybook-utils/DocumentationTemplate.mdx'
+
+import '@atomium/storybook-utils/preview.css'
+
+import '@juntossomosmais/atomium-tokens/tokens.css'
+import '@juntossomosmais/atomium/dist/core/core.css'
+
+const preview = {
+ parameters: {
+ viewport: {
+ viewports: CustomViewports,
+ },
+ actions: { argTypesRegex: '^atom.*' },
+ docs: {
+ page: DocumentationTemplate,
+ },
+ },
+}
+
+export default preview
diff --git a/apps/docs-vue/package.json b/apps/docs-vue/package.json
new file mode 100644
index 000000000..7743855d8
--- /dev/null
+++ b/apps/docs-vue/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "@atomium/docs-vue",
+ "private": true,
+ "scripts": {
+ "start": "storybook dev -p 8006 --no-open",
+ "build": "storybook build -o ../docs/storybook-static/vue"
+ },
+ "nx": {
+ "targets": {
+ "build": {
+ "dependsOn": [
+ {
+ "projects": [
+ "@juntossomosmais/atomium-vue"
+ ],
+ "target": "build"
+ }
+ ]
+ }
+ }
+ }
+}
diff --git a/apps/docs-vue/stories/0_Introduction.stories.mdx b/apps/docs-vue/stories/0_Introduction.stories.mdx
new file mode 100644
index 000000000..222625dd0
--- /dev/null
+++ b/apps/docs-vue/stories/0_Introduction.stories.mdx
@@ -0,0 +1,34 @@
+import { Meta } from '@storybook/addon-docs'
+
+
+
+# About Vue Components
+
+All [Vue Components is generated by Stencil](https://stenciljs.com/docs/vue) using [Stencil's output target](https://stenciljs.com/docs/vue#output-targets) to automatically generate Vue components from our Atomium's web components.
+
+The target of this stories is run Atomium's web components in Vue environment and show how to use the components.
+
+**!important**
+
+There is a problem to render the code of [Vue's components outputed by Stencil in Storybook](https://github.com/storybookjs/storybook/issues/22287), so the code of the components is not shown correctly in the stories.
+
+Example, in [Button component](?path=/docs/react_components-button--docs):
+
+```jsx
+{
+ render: args => createButton(args),
+ args: {
+ ...ButtonComponentArgs
+ }
+}
+```
+
+The code above is not shown correctly in the stories, but it is correct in the source code:
+
+```jsx
+
+ Button
+
+```
+
+Just keep in mind that when check the code of the components inside Storybook
diff --git a/apps/docs-vue/vite.config.js b/apps/docs-vue/vite.config.js
new file mode 100644
index 000000000..baf6fcbb6
--- /dev/null
+++ b/apps/docs-vue/vite.config.js
@@ -0,0 +1,14 @@
+import { fileURLToPath, URL } from 'node:url'
+
+import vue from '@vitejs/plugin-vue'
+import { defineConfig } from 'vite'
+
+// https://vitejs.dev/config/
+export default defineConfig({
+ plugins: [vue()],
+ resolve: {
+ alias: {
+ '@': fileURLToPath(new URL('./src', import.meta.url)),
+ },
+ },
+})
diff --git a/apps/docs/.storybook/main.ts b/apps/docs/.storybook/main.ts
index 2af4cc8b3..08874cb68 100644
--- a/apps/docs/.storybook/main.ts
+++ b/apps/docs/.storybook/main.ts
@@ -1,5 +1,32 @@
import type { StorybookConfig } from '@storybook/web-components-webpack5'
+function getStorybookRefs(configType: string) {
+ if (configType === 'DEVELOPMENT') {
+ return {
+ react: {
+ title: 'React (localhost:7006)',
+ url: 'http://localhost:7006',
+ },
+ vue: {
+ title: 'Vue (localhost:8006)',
+ url: 'http://localhost:8006',
+ },
+ }
+ }
+ return {
+ react: {
+ title: 'React Library',
+ url: 'react',
+ expanded: false,
+ },
+ vue: {
+ title: 'Vue Library',
+ url: 'vue',
+ expanded: false,
+ },
+ }
+}
+
const config: StorybookConfig = {
stories: [
'../stories/**/*.stories.@(js|jsx|ts|tsx|mdx)',
@@ -23,22 +50,8 @@ const config: StorybookConfig = {
docs: {
autodocs: true,
},
- refs: (config, { configType }) => {
- if (configType === 'DEVELOPMENT') {
- return {
- react: {
- title: 'React (localhost:7006)',
- url: 'http://localhost:7006',
- },
- }
- }
- return {
- react: {
- title: 'React Library',
- url: 'react',
- expanded: false,
- },
- }
+ refs: (config, { configType = '' }) => {
+ return getStorybookRefs(configType)
},
}
diff --git a/apps/docs/stories/architecture-decision-records/0007-why-do-we-transpile-web-components-for-react-and-not-for-vue.stories.mdx b/apps/docs/stories/architecture-decision-records/0007-why-do-we-transpile-web-components-for-react-and-not-for-vue.stories.mdx
deleted file mode 100644
index 0ea4d461b..000000000
--- a/apps/docs/stories/architecture-decision-records/0007-why-do-we-transpile-web-components-for-react-and-not-for-vue.stories.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Meta } from '@storybook/addon-docs'
-
-
-
-# ADR 0007: Why do we transpile Web Components for React and not for Vue?
-
-๐๏ธ 2023-04 ยท โ๏ธ [@felipefialho](https://twitter.com/felipefialho_)
-
-## Context
-
-We need to use Web Components in our projects built with Vue and React (Next.js) while maintaining a good Developer Experience (DX).
-
-## Problems
-
-### React
-
-- We need to use `Event Listeners` to handle events and methods when using Web Components
-- React [use `SyntheticEvent` to handle events](https://legacy.reactjs.org/docs/events.html), and we need to convert it to `CustomEvent` to use Web Components
-- Props that use `array` or `object` need to be converted to JSON for compatibility
-- We need to use `ref` to access the Web Component API in React
-- Sometimes, we need to create wrappers to effectively use Web Components in React
-- Overall, the Developer Experience in React is not optimal when working with Web Components
-
-### Vue
-
-- Props that use `array` or `object` need to be converted to JSON for compatibility
-
-## Decision
-
-To address these challenges, we have decided to use Stencil to create a transpiled version of Web Components specifically for React, while keeping the original version for Vue.
-
-Currently, we are using Vue 2 (as of April 2022), and the transpiler of Stencil is not compatible with Vue 2, however, Vue provides a good DX and seamless compatibility with Web Components.
-
-In the future, when we migrate to Vue 3, we may reevaluate this decision and consider transpiling Web Components for Vue as well.
diff --git a/apps/docs/stories/architecture-decision-records/0007-why-do-we-transpile-web-components-for-react-and-vue.stories.mdx b/apps/docs/stories/architecture-decision-records/0007-why-do-we-transpile-web-components-for-react-and-vue.stories.mdx
new file mode 100644
index 000000000..89c174bb0
--- /dev/null
+++ b/apps/docs/stories/architecture-decision-records/0007-why-do-we-transpile-web-components-for-react-and-vue.stories.mdx
@@ -0,0 +1,40 @@
+import { Meta } from '@storybook/addon-docs'
+
+
+
+# ADR 0007: Why do we transpile Web Components for React and Vue?
+
+๐๏ธ ~2023-04~ 2024-05 ยท โ๏ธ [@felipefialho](https://twitter.com/felipefialho_)
+
+## Context
+
+We need to use Web Components in our projects built with Vue and React (Next.js) while maintaining a good Developer Experience (DX).
+
+## Problems
+
+### React
+
+- We need to use `Event Listeners` to handle events and methods when using Web Components
+- React [use `SyntheticEvent` to handle events](https://legacy.reactjs.org/docs/events.html), and we need to convert it to `CustomEvent` to use Web Components
+- Props that use `array` or `object` need to be converted to JSON for compatibility
+- We need to use `ref` to access the Web Component API in React
+- Sometimes, we need to create wrappers to effectively use Web Components in React
+- Overall, the Developer Experience in React is not optimal when working with Web Components
+
+### Vue
+
+- Props that use `array` or `object` need to be converted to JSON for compatibility
+- We need to use `ref` to access the Web Component API in Vue
+- We need to create wrappers to effectively use Web Components in Vue and it is not always straightforward
+
+## Decision
+
+~To address these challenges, we have decided to use Stencil to create a transpiled version of Web Components specifically for React, while keeping the original version for Vue.~
+
+~Currently, we are using Vue 2 (as of April 2022), and the transpiler of Stencil is not compatible with Vue 2, however, Vue provides a good DX and seamless compatibility with Web Components.~
+
+~In the future, when we migrate to Vue 3, we may reevaluate this decision and consider transpiling Web Components for Vue as well.~
+
+### Update
+
+Now we are using Vue 3, and we have decided to transpile Web Components for both React and Vue to provide a better Developer Experience (DX) and to ensure compatibility with the latest versions of both libraries.
diff --git a/package-lock.json b/package-lock.json
index bd65de40e..dc5b2cfa3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -39,6 +39,8 @@
"@storybook/react": "^7.6.17",
"@storybook/react-webpack5": "^7.6.17",
"@storybook/theming": "^7.6.17",
+ "@storybook/vue3": "^7.6.6",
+ "@storybook/vue3-vite": "^7.6.6",
"@storybook/web-components": "^7.6.17",
"@storybook/web-components-webpack5": "^7.6.17",
"@testing-library/jest-dom": "^6.4.4",
@@ -48,6 +50,7 @@
"@types/react-dom": "^18.3.0",
"@typescript-eslint/eslint-plugin": "^7.8.0",
"@typescript-eslint/parser": "^7.8.0",
+ "@vitejs/plugin-vue": "^4.0.0",
"autoprefixer": "^10.4.19",
"babel-loader": "^9.1.3",
"babel-plugin-transform-scss": "^1.2.0",
@@ -84,6 +87,7 @@
"ts-node": "^10.9.2",
"tslib": "^2.6.2",
"typescript": "^5.4.5",
+ "vite": "^4.1.4",
"vue": "^3.4.26"
},
"engines": {
@@ -98,6 +102,9 @@
"apps/docs-react": {
"name": "@atomium/docs-react"
},
+ "apps/docs-vue": {
+ "name": "@atomium/docs-vue"
+ },
"node_modules/@aashutoshrathi/word-wrap": {
"version": "1.2.6",
"dev": true,
@@ -132,6 +139,10 @@
"resolved": "apps/docs-react",
"link": true
},
+ "node_modules/@atomium/docs-vue": {
+ "resolved": "apps/docs-vue",
+ "link": true
+ },
"node_modules/@atomium/scss-utils": {
"resolved": "utils/scss",
"link": true
@@ -6969,297 +6980,430 @@
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-7.6.17.tgz",
- "integrity": "sha512-GMaBd8/RzivuAmWrYSt9Rga3j8WLcu5LCMYiPVs+XKXsKAC8lTkV0WRWh8Nk6wTmfzsRQ2acwFjSG5oE4ClZKA==",
+ "node_modules/@storybook/builder-vite": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-7.6.19.tgz",
+ "integrity": "sha512-llYpfYCHQCD0nPy+5J+H67iKcOpBrexIFO13wXxHQyl27Z+1T2JJj4cHqZs5S3a2XLiwf4df44NBvvwV5cmJmQ==",
"dev": true,
"dependencies": {
- "@babel/core": "^7.23.2",
- "@storybook/channels": "7.6.17",
- "@storybook/client-logger": "7.6.17",
- "@storybook/core-common": "7.6.17",
- "@storybook/core-events": "7.6.17",
- "@storybook/core-webpack": "7.6.17",
- "@storybook/node-logger": "7.6.17",
- "@storybook/preview": "7.6.17",
- "@storybook/preview-api": "7.6.17",
- "@swc/core": "^1.3.82",
- "@types/node": "^18.0.0",
- "@types/semver": "^7.3.4",
- "babel-loader": "^9.0.0",
+ "@storybook/channels": "7.6.19",
+ "@storybook/client-logger": "7.6.19",
+ "@storybook/core-common": "7.6.19",
+ "@storybook/csf-plugin": "7.6.19",
+ "@storybook/node-logger": "7.6.19",
+ "@storybook/preview": "7.6.19",
+ "@storybook/preview-api": "7.6.19",
+ "@storybook/types": "7.6.19",
+ "@types/find-cache-dir": "^3.2.1",
"browser-assert": "^1.2.1",
- "case-sensitive-paths-webpack-plugin": "^2.4.0",
- "cjs-module-lexer": "^1.2.3",
- "constants-browserify": "^1.0.0",
- "css-loader": "^6.7.1",
- "es-module-lexer": "^1.4.1",
+ "es-module-lexer": "^0.9.3",
"express": "^4.17.3",
- "fork-ts-checker-webpack-plugin": "^8.0.0",
+ "find-cache-dir": "^3.0.0",
"fs-extra": "^11.1.0",
- "html-webpack-plugin": "^5.5.0",
- "magic-string": "^0.30.5",
- "path-browserify": "^1.0.1",
- "process": "^0.11.10",
- "semver": "^7.3.7",
- "style-loader": "^3.3.1",
- "swc-loader": "^0.2.3",
- "terser-webpack-plugin": "^5.3.1",
- "ts-dedent": "^2.0.0",
- "url": "^0.11.0",
- "util": "^0.12.4",
- "util-deprecate": "^1.0.2",
- "webpack": "5",
- "webpack-dev-middleware": "^6.1.1",
- "webpack-hot-middleware": "^2.25.1",
- "webpack-virtual-modules": "^0.5.0"
+ "magic-string": "^0.30.0",
+ "rollup": "^2.25.0 || ^3.3.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
},
+ "peerDependencies": {
+ "@preact/preset-vite": "*",
+ "typescript": ">= 4.3.x",
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0",
+ "vite-plugin-glimmerx": "*"
+ },
"peerDependenciesMeta": {
+ "@preact/preset-vite": {
+ "optional": true
+ },
"typescript": {
"optional": true
+ },
+ "vite-plugin-glimmerx": {
+ "optional": true
}
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/@types/node": {
- "version": "18.19.21",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.21.tgz",
- "integrity": "sha512-2Q2NeB6BmiTFQi4DHBzncSoq/cJMLDdhPaAoJFnFCyD9a8VPZRf7a1GAwp1Edb7ROaZc5Jz/tnZyL6EsWMRaqw==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/channels": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.19.tgz",
+ "integrity": "sha512-2JGh+i95GwjtjqWqhtEh15jM5ifwbRGmXeFqkY7dpdHH50EEWafYHr2mg3opK3heVDwg0rJ/VBptkmshloXuvA==",
"dev": true,
"dependencies": {
- "undici-types": "~5.26.4"
+ "@storybook/client-logger": "7.6.19",
+ "@storybook/core-events": "7.6.19",
+ "@storybook/global": "^5.0.0",
+ "qs": "^6.10.0",
+ "telejson": "^7.2.0",
+ "tiny-invariant": "^1.3.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/client-logger": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.19.tgz",
+ "integrity": "sha512-oGzOxbmLmciSIfd5gsxDzPmX8DttWhoYdPKxjMuCuWLTO2TWpkCWp1FTUMWO72mm/6V/FswT/aqpJJBBvdZ3RQ==",
"dev": true,
"dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
+ "@storybook/global": "^5.0.0"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/core-common": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.19.tgz",
+ "integrity": "sha512-njwpGzFJrfbJr/AFxGP8KMrfPfxN85KOfSlxYnQwRm5Z0H1D/lT33LhEBf5m37gaGawHeG7KryxO6RvaioMt2Q==",
"dev": true,
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
+ "@storybook/core-events": "7.6.19",
+ "@storybook/node-logger": "7.6.19",
+ "@storybook/types": "7.6.19",
+ "@types/find-cache-dir": "^3.2.1",
+ "@types/node": "^18.0.0",
+ "@types/node-fetch": "^2.6.4",
+ "@types/pretty-hrtime": "^1.0.0",
+ "chalk": "^4.1.0",
+ "esbuild": "^0.18.0",
+ "esbuild-register": "^3.5.0",
+ "file-system-cache": "2.3.0",
+ "find-cache-dir": "^3.0.0",
+ "find-up": "^5.0.0",
+ "fs-extra": "^11.1.0",
+ "glob": "^10.0.0",
+ "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"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/cosmiconfig": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
- "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/core-events": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.19.tgz",
+ "integrity": "sha512-K/W6Uvum0ocZSgjbi8hiotpe+wDEHDZlvN+KlPqdh9ae9xDK8aBNBq9IelCoqM+uKO1Zj+dDfSQds7CD781DJg==",
"dev": true,
"dependencies": {
- "@types/parse-json": "^4.0.0",
- "import-fresh": "^3.2.1",
- "parse-json": "^5.0.0",
- "path-type": "^4.0.0",
- "yaml": "^1.10.0"
+ "ts-dedent": "^2.0.0"
},
- "engines": {
- "node": ">=10"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz",
- "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/csf-plugin": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-7.6.19.tgz",
+ "integrity": "sha512-yUP0xfJyR8e6fmCgKoEt4c1EvslF8dZ8wtwVLE5hnC3kfs7xt8RVDiKLB/9NhYjY3mD/oOesX60HqRXDgJQHwA==",
"dev": true,
"dependencies": {
- "@babel/code-frame": "^7.16.7",
- "chalk": "^4.1.2",
- "chokidar": "^3.5.3",
- "cosmiconfig": "^7.0.1",
- "deepmerge": "^4.2.2",
- "fs-extra": "^10.0.0",
- "memfs": "^3.4.1",
- "minimatch": "^3.0.4",
- "node-abort-controller": "^3.0.1",
- "schema-utils": "^3.1.1",
- "semver": "^7.3.5",
- "tapable": "^2.2.1"
- },
- "engines": {
- "node": ">=12.13.0",
- "yarn": ">=1.0.0"
+ "@storybook/csf-tools": "7.6.19",
+ "unplugin": "^1.3.1"
},
- "peerDependencies": {
- "typescript": ">3.6.0",
- "webpack": "^5.11.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
- "version": "10.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
- "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/csf-tools": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.19.tgz",
+ "integrity": "sha512-8Vzia3cHhDdGHuS3XKXJReCRxmfRq3vmTm/Te9yKZnPSAsC58CCKcMh8FNEFJ44vxYF9itKTkRutjGs+DprKLQ==",
"dev": true,
"dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
+ "@babel/generator": "^7.23.0",
+ "@babel/parser": "^7.23.0",
+ "@babel/traverse": "^7.23.2",
+ "@babel/types": "^7.23.0",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/types": "7.6.19",
+ "fs-extra": "^11.1.0",
+ "recast": "^0.23.1",
+ "ts-dedent": "^2.0.0"
},
- "engines": {
- "node": ">=12"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/node-logger": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.19.tgz",
+ "integrity": "sha512-2g29QC44Zl1jKY37DmQ0/dO7+VSKnGgPI/x0mwVwQffypSapxH3rwLLT5Q5XLHeFyD+fhRu5w9Cj4vTGynJgpA==",
"dev": true,
- "engines": {
- "node": ">=8"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/preview": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.19.tgz",
+ "integrity": "sha512-VqRPua2koOQTOteB+VvuKNXFYQ7IDEopaPpj9Nx+3kom+bqp0hWdAysWcm6CtKN2GGzBQm+5PvGibMNdawsaVg==",
"dev": true,
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/semver": {
- "version": "7.6.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
- "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/preview-api": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.19.tgz",
+ "integrity": "sha512-04hdMSQucroJT4dBjQzRd7ZwH2hij8yx2nm5qd4HYGkd1ORkvlH6GOLph4XewNJl5Um3xfzFQzBhvkqvG0WaCQ==",
"dev": true,
"dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
+ "@storybook/channels": "7.6.19",
+ "@storybook/client-logger": "7.6.19",
+ "@storybook/core-events": "7.6.19",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/global": "^5.0.0",
+ "@storybook/types": "7.6.19",
+ "@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"
},
- "engines": {
- "node": ">=10"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/@storybook/builder-vite/node_modules/@storybook/types": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.19.tgz",
+ "integrity": "sha512-DeGYrRPRMGTVfT7o2rEZtRzyLT2yKTI2exgpnxbwPWEFAduZCSfzBrcBXZ/nb5B0pjA9tUNWls1YzGkJGlkhpg==",
"dev": true,
"dependencies": {
- "has-flag": "^4.0.0"
+ "@storybook/channels": "7.6.19",
+ "@types/babel__core": "^7.0.0",
+ "@types/express": "^4.7.0",
+ "file-system-cache": "2.3.0"
},
- "engines": {
- "node": ">=8"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/builder-webpack5/node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
+ "node_modules/@storybook/builder-vite/node_modules/@types/node": {
+ "version": "18.19.33",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz",
+ "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
},
- "node_modules/@storybook/channels": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.17.tgz",
- "integrity": "sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA==",
+ "node_modules/@storybook/builder-vite/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.6.17",
- "@storybook/core-events": "7.6.17",
- "@storybook/global": "^5.0.0",
- "qs": "^6.10.0",
- "telejson": "^7.2.0",
- "tiny-invariant": "^1.3.1"
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@storybook/cli": {
+ "node_modules/@storybook/builder-vite/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@storybook/builder-vite/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@storybook/builder-vite/node_modules/es-module-lexer": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz",
+ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==",
+ "dev": true
+ },
+ "node_modules/@storybook/builder-vite/node_modules/glob": {
+ "version": "10.3.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz",
+ "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.6",
+ "minimatch": "^9.0.1",
+ "minipass": "^7.0.4",
+ "path-scurry": "^1.11.0"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@storybook/builder-vite/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@storybook/builder-vite/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@storybook/builder-vite/node_modules/minipass": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz",
+ "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/@storybook/builder-vite/node_modules/rollup": {
+ "version": "3.29.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+ "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+ "dev": true,
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=14.18.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/@storybook/builder-vite/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@storybook/builder-webpack5": {
"version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.17.tgz",
- "integrity": "sha512-1sCo+nCqyR+nKfTcEidVu8XzNoECC7Y1l+uW38/r7s2f/TdDorXaIGAVrpjbSaXSoQpx5DxYJVaKCcQuOgqwcA==",
+ "resolved": "https://registry.npmjs.org/@storybook/builder-webpack5/-/builder-webpack5-7.6.17.tgz",
+ "integrity": "sha512-GMaBd8/RzivuAmWrYSt9Rga3j8WLcu5LCMYiPVs+XKXsKAC8lTkV0WRWh8Nk6wTmfzsRQ2acwFjSG5oE4ClZKA==",
"dev": true,
"dependencies": {
"@babel/core": "^7.23.2",
- "@babel/preset-env": "^7.23.2",
- "@babel/types": "^7.23.0",
- "@ndelangen/get-tarball": "^3.0.7",
- "@storybook/codemod": "7.6.17",
+ "@storybook/channels": "7.6.17",
+ "@storybook/client-logger": "7.6.17",
"@storybook/core-common": "7.6.17",
"@storybook/core-events": "7.6.17",
- "@storybook/core-server": "7.6.17",
- "@storybook/csf-tools": "7.6.17",
+ "@storybook/core-webpack": "7.6.17",
"@storybook/node-logger": "7.6.17",
- "@storybook/telemetry": "7.6.17",
- "@storybook/types": "7.6.17",
+ "@storybook/preview": "7.6.17",
+ "@storybook/preview-api": "7.6.17",
+ "@swc/core": "^1.3.82",
+ "@types/node": "^18.0.0",
"@types/semver": "^7.3.4",
- "@yarnpkg/fslib": "2.10.3",
- "@yarnpkg/libzip": "2.3.0",
- "chalk": "^4.1.0",
- "commander": "^6.2.1",
- "cross-spawn": "^7.0.3",
- "detect-indent": "^6.1.0",
- "envinfo": "^7.7.3",
- "execa": "^5.0.0",
+ "babel-loader": "^9.0.0",
+ "browser-assert": "^1.2.1",
+ "case-sensitive-paths-webpack-plugin": "^2.4.0",
+ "cjs-module-lexer": "^1.2.3",
+ "constants-browserify": "^1.0.0",
+ "css-loader": "^6.7.1",
+ "es-module-lexer": "^1.4.1",
"express": "^4.17.3",
- "find-up": "^5.0.0",
+ "fork-ts-checker-webpack-plugin": "^8.0.0",
"fs-extra": "^11.1.0",
- "get-npm-tarball-url": "^2.0.3",
- "get-port": "^5.1.1",
- "giget": "^1.0.0",
- "globby": "^11.0.2",
- "jscodeshift": "^0.15.1",
- "leven": "^3.1.0",
- "ora": "^5.4.1",
- "prettier": "^2.8.0",
- "prompts": "^2.4.0",
- "puppeteer-core": "^2.1.1",
- "read-pkg-up": "^7.0.1",
+ "html-webpack-plugin": "^5.5.0",
+ "magic-string": "^0.30.5",
+ "path-browserify": "^1.0.1",
+ "process": "^0.11.10",
"semver": "^7.3.7",
- "strip-json-comments": "^3.0.1",
- "tempy": "^1.0.1",
+ "style-loader": "^3.3.1",
+ "swc-loader": "^0.2.3",
+ "terser-webpack-plugin": "^5.3.1",
"ts-dedent": "^2.0.0",
- "util-deprecate": "^1.0.2"
- },
- "bin": {
- "getstorybook": "bin/index.js",
- "sb": "bin/index.js"
+ "url": "^0.11.0",
+ "util": "^0.12.4",
+ "util-deprecate": "^1.0.2",
+ "webpack": "5",
+ "webpack-dev-middleware": "^6.1.1",
+ "webpack-hot-middleware": "^2.25.1",
+ "webpack-virtual-modules": "^0.5.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/@storybook/cli/node_modules/agent-base": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
- "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
+ "node_modules/@storybook/builder-webpack5/node_modules/@types/node": {
+ "version": "18.19.21",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.21.tgz",
+ "integrity": "sha512-2Q2NeB6BmiTFQi4DHBzncSoq/cJMLDdhPaAoJFnFCyD9a8VPZRf7a1GAwp1Edb7ROaZc5Jz/tnZyL6EsWMRaqw==",
"dev": true,
- "engines": {
- "node": ">= 6.0.0"
+ "dependencies": {
+ "undici-types": "~5.26.4"
}
},
- "node_modules/@storybook/cli/node_modules/ansi-styles": {
+ "node_modules/@storybook/builder-webpack5/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
@@ -7274,7 +7418,7 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@storybook/cli/node_modules/chalk": {
+ "node_modules/@storybook/builder-webpack5/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
@@ -7290,40 +7434,65 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@storybook/cli/node_modules/commander": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
- "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "node_modules/@storybook/builder-webpack5/node_modules/cosmiconfig": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz",
+ "integrity": "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==",
"dev": true,
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
"engines": {
- "node": ">= 6"
+ "node": ">=10"
}
},
- "node_modules/@storybook/cli/node_modules/extract-zip": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
- "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
+ "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-8.0.0.tgz",
+ "integrity": "sha512-mX3qW3idpueT2klaQXBzrIM/pHw+T0B/V9KHEvNrqijTq9NFnMZU6oreVxDYcf33P8a5cW+67PjodNHthGnNVg==",
"dev": true,
"dependencies": {
- "concat-stream": "^1.6.2",
- "debug": "^2.6.9",
- "mkdirp": "^0.5.4",
- "yauzl": "^2.10.0"
+ "@babel/code-frame": "^7.16.7",
+ "chalk": "^4.1.2",
+ "chokidar": "^3.5.3",
+ "cosmiconfig": "^7.0.1",
+ "deepmerge": "^4.2.2",
+ "fs-extra": "^10.0.0",
+ "memfs": "^3.4.1",
+ "minimatch": "^3.0.4",
+ "node-abort-controller": "^3.0.1",
+ "schema-utils": "^3.1.1",
+ "semver": "^7.3.5",
+ "tapable": "^2.2.1"
},
- "bin": {
- "extract-zip": "cli.js"
+ "engines": {
+ "node": ">=12.13.0",
+ "yarn": ">=1.0.0"
+ },
+ "peerDependencies": {
+ "typescript": ">3.6.0",
+ "webpack": "^5.11.0"
}
},
- "node_modules/@storybook/cli/node_modules/extract-zip/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/@storybook/builder-webpack5/node_modules/fork-ts-checker-webpack-plugin/node_modules/fs-extra": {
+ "version": "10.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
+ "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
"dependencies": {
- "ms": "2.0.0"
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/@storybook/cli/node_modules/has-flag": {
+ "node_modules/@storybook/builder-webpack5/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
@@ -7332,13 +7501,214 @@
"node": ">=8"
}
},
- "node_modules/@storybook/cli/node_modules/https-proxy-agent": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
- "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
+ "node_modules/@storybook/builder-webpack5/node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"dependencies": {
- "agent-base": "5",
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@storybook/builder-webpack5/node_modules/semver": {
+ "version": "7.6.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz",
+ "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@storybook/builder-webpack5/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@storybook/builder-webpack5/node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/@storybook/channels": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.17.tgz",
+ "integrity": "sha512-GFG40pzaSxk1hUr/J/TMqW5AFDDPUSu+HkeE/oqSWJbOodBOLJzHN6CReJS6y1DjYSZLNFt1jftPWZZInG/XUA==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/client-logger": "7.6.17",
+ "@storybook/core-events": "7.6.17",
+ "@storybook/global": "^5.0.0",
+ "qs": "^6.10.0",
+ "telejson": "^7.2.0",
+ "tiny-invariant": "^1.3.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/cli": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-7.6.17.tgz",
+ "integrity": "sha512-1sCo+nCqyR+nKfTcEidVu8XzNoECC7Y1l+uW38/r7s2f/TdDorXaIGAVrpjbSaXSoQpx5DxYJVaKCcQuOgqwcA==",
+ "dev": true,
+ "dependencies": {
+ "@babel/core": "^7.23.2",
+ "@babel/preset-env": "^7.23.2",
+ "@babel/types": "^7.23.0",
+ "@ndelangen/get-tarball": "^3.0.7",
+ "@storybook/codemod": "7.6.17",
+ "@storybook/core-common": "7.6.17",
+ "@storybook/core-events": "7.6.17",
+ "@storybook/core-server": "7.6.17",
+ "@storybook/csf-tools": "7.6.17",
+ "@storybook/node-logger": "7.6.17",
+ "@storybook/telemetry": "7.6.17",
+ "@storybook/types": "7.6.17",
+ "@types/semver": "^7.3.4",
+ "@yarnpkg/fslib": "2.10.3",
+ "@yarnpkg/libzip": "2.3.0",
+ "chalk": "^4.1.0",
+ "commander": "^6.2.1",
+ "cross-spawn": "^7.0.3",
+ "detect-indent": "^6.1.0",
+ "envinfo": "^7.7.3",
+ "execa": "^5.0.0",
+ "express": "^4.17.3",
+ "find-up": "^5.0.0",
+ "fs-extra": "^11.1.0",
+ "get-npm-tarball-url": "^2.0.3",
+ "get-port": "^5.1.1",
+ "giget": "^1.0.0",
+ "globby": "^11.0.2",
+ "jscodeshift": "^0.15.1",
+ "leven": "^3.1.0",
+ "ora": "^5.4.1",
+ "prettier": "^2.8.0",
+ "prompts": "^2.4.0",
+ "puppeteer-core": "^2.1.1",
+ "read-pkg-up": "^7.0.1",
+ "semver": "^7.3.7",
+ "strip-json-comments": "^3.0.1",
+ "tempy": "^1.0.1",
+ "ts-dedent": "^2.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "bin": {
+ "getstorybook": "bin/index.js",
+ "sb": "bin/index.js"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/cli/node_modules/agent-base": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
+ "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
+ "node_modules/@storybook/cli/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@storybook/cli/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@storybook/cli/node_modules/commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/@storybook/cli/node_modules/extract-zip": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz",
+ "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==",
+ "dev": true,
+ "dependencies": {
+ "concat-stream": "^1.6.2",
+ "debug": "^2.6.9",
+ "mkdirp": "^0.5.4",
+ "yauzl": "^2.10.0"
+ },
+ "bin": {
+ "extract-zip": "cli.js"
+ }
+ },
+ "node_modules/@storybook/cli/node_modules/extract-zip/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/@storybook/cli/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@storybook/cli/node_modules/https-proxy-agent": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
+ "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
+ "dev": true,
+ "dependencies": {
+ "agent-base": "5",
"debug": "4"
},
"engines": {
@@ -8380,217 +8750,921 @@
"resolved": "https://registry.npmjs.org/@storybook/preview/-/preview-7.6.17.tgz",
"integrity": "sha512-LvkMYK/y6alGjwRVNDIKL1lFlbyZ0H0c8iAbcQkiMoaFiujMQyVswMDKlWcj42Upfr/B1igydiruomc+eUt0mw==",
"dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/preview-api": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.17.tgz",
+ "integrity": "sha512-wLfDdI9RWo1f2zzFe54yRhg+2YWyxLZvqdZnSQ45mTs4/7xXV5Wfbv3QNTtcdw8tT3U5KRTrN1mTfTCiRJc0Kw==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/channels": "7.6.17",
+ "@storybook/client-logger": "7.6.17",
+ "@storybook/core-events": "7.6.17",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/global": "^5.0.0",
+ "@storybook/types": "7.6.17",
+ "@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"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/react": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/react/-/react-7.6.17.tgz",
+ "integrity": "sha512-lVqzQSU03rRJWYW+gK2gq6mSo3/qtnVICY8B8oP7gc36jVu4ksDIu45bTfukM618ODkUZy0vZe6T4engK3azjA==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/client-logger": "7.6.17",
+ "@storybook/core-client": "7.6.17",
+ "@storybook/docs-tools": "7.6.17",
+ "@storybook/global": "^5.0.0",
+ "@storybook/preview-api": "7.6.17",
+ "@storybook/react-dom-shim": "7.6.17",
+ "@storybook/types": "7.6.17",
+ "@types/escodegen": "^0.0.6",
+ "@types/estree": "^0.0.51",
+ "@types/node": "^18.0.0",
+ "acorn": "^7.4.1",
+ "acorn-jsx": "^5.3.1",
+ "acorn-walk": "^7.2.0",
+ "escodegen": "^2.1.0",
+ "html-tags": "^3.1.0",
+ "lodash": "^4.17.21",
+ "prop-types": "^15.7.2",
+ "react-element-to-jsx-string": "^15.0.0",
+ "ts-dedent": "^2.0.0",
+ "type-fest": "~2.19",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@storybook/react-docgen-typescript-plugin": {
+ "version": "1.0.6--canary.9.0c3f3b7.0",
+ "resolved": "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.6--canary.9.0c3f3b7.0.tgz",
+ "integrity": "sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.1.1",
+ "endent": "^2.0.1",
+ "find-cache-dir": "^3.3.1",
+ "flat-cache": "^3.0.4",
+ "micromatch": "^4.0.2",
+ "react-docgen-typescript": "^2.2.2",
+ "tslib": "^2.0.0"
+ },
+ "peerDependencies": {
+ "typescript": ">= 4.x",
+ "webpack": ">= 4"
+ }
+ },
+ "node_modules/@storybook/react-dom-shim": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.17.tgz",
+ "integrity": "sha512-32Sa/G+WnvaPiQ1Wvjjw5UM9rr2c4GDohwCcWVv3/LJuiFPqNS6zglAtmnsrlIBnUwRBMLMh/ekCTdqMiUmfDw==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@storybook/react-webpack5": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/react-webpack5/-/react-webpack5-7.6.17.tgz",
+ "integrity": "sha512-qGc2JxaSmvPXV7ndxA/8qPtPLK7lAwejL/QdrzLXhxEmVdZLMew640FBYgOV/zWnehV3BnivThln/8PsQyst/g==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/builder-webpack5": "7.6.17",
+ "@storybook/preset-react-webpack": "7.6.17",
+ "@storybook/react": "7.6.17",
+ "@types/node": "^18.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.22.0",
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@storybook/react-webpack5/node_modules/@types/node": {
+ "version": "18.19.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@storybook/react/node_modules/@types/estree": {
+ "version": "0.0.51",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@storybook/react/node_modules/@types/node": {
+ "version": "18.19.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@storybook/react/node_modules/acorn": {
+ "version": "7.4.1",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/@storybook/router": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.17.tgz",
+ "integrity": "sha512-GnyC0j6Wi5hT4qRhSyT8NPtJfGmf82uZw97LQRWeyYu5gWEshUdM7aj40XlNiScd5cZDp0owO1idduVF2k2l2A==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/client-logger": "7.6.17",
+ "memoizerific": "^1.11.3",
+ "qs": "^6.10.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/telemetry": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.17.tgz",
+ "integrity": "sha512-WOcOAmmengYnGInH98Px44F47DSpLyk20BM+Z/IIQDzfttGOLlxNqBBG1XTEhNRn+AYuk4aZ2JEed2lCjVIxcA==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/client-logger": "7.6.17",
+ "@storybook/core-common": "7.6.17",
+ "@storybook/csf-tools": "7.6.17",
+ "chalk": "^4.1.0",
+ "detect-package-manager": "^2.0.1",
+ "fetch-retry": "^5.0.2",
+ "fs-extra": "^11.1.0",
+ "read-pkg-up": "^7.0.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/telemetry/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@storybook/telemetry/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@storybook/telemetry/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@storybook/telemetry/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@storybook/theming": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.17.tgz",
+ "integrity": "sha512-ZbaBt3KAbmBtfjNqgMY7wPMBshhSJlhodyMNQypv+95xLD/R+Az6aBYbpVAOygLaUQaQk4ar7H/Ww6lFIoiFbA==",
+ "dev": true,
+ "dependencies": {
+ "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
+ "@storybook/client-logger": "7.6.17",
+ "@storybook/global": "^5.0.0",
+ "memoizerific": "^1.11.3"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
+ "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ }
+ },
+ "node_modules/@storybook/types": {
+ "version": "7.6.17",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.17.tgz",
+ "integrity": "sha512-GRY0xEJQ0PrL7DY2qCNUdIfUOE0Gsue6N+GBJw9ku1IUDFLJRDOF+4Dx2BvYcVCPI5XPqdWKlEyZdMdKjiQN7Q==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/channels": "7.6.17",
+ "@types/babel__core": "^7.0.0",
+ "@types/express": "^4.7.0",
+ "file-system-cache": "2.3.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/vue3/-/vue3-7.6.19.tgz",
+ "integrity": "sha512-u3Lp9IeqOpsG6NwMK5AiimGwu/Jn3RAslLCdjqWvohXCZkcTMRCNAn+7W5ax7fa/kY/MeW3cm4RSUtWis0fphg==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/core-client": "7.6.19",
+ "@storybook/docs-tools": "7.6.19",
+ "@storybook/global": "^5.0.0",
+ "@storybook/preview-api": "7.6.19",
+ "@storybook/types": "7.6.19",
+ "@vue/compiler-core": "^3.0.0",
+ "lodash": "^4.17.21",
+ "ts-dedent": "^2.0.0",
+ "type-fest": "~2.19",
+ "vue-component-type-helpers": "latest"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
+ "node_modules/@storybook/vue3-vite": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/vue3-vite/-/vue3-vite-7.6.19.tgz",
+ "integrity": "sha512-VYqJBLxZ3c+ZYEGbEHsc5DKE7iAmwWFk4QS7XRSxr7tKvmuwNr53SugsLhKfb4cRfTG3iJw8p48U0e6TkiHeug==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/builder-vite": "7.6.19",
+ "@storybook/core-server": "7.6.19",
+ "@storybook/vue3": "7.6.19",
+ "@vitejs/plugin-vue": "^4.0.0",
+ "magic-string": "^0.30.0",
+ "vue-docgen-api": "^4.40.0"
+ },
+ "engines": {
+ "node": "^14.18 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ },
+ "peerDependencies": {
+ "vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/builder-manager": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/builder-manager/-/builder-manager-7.6.19.tgz",
+ "integrity": "sha512-Dt5OLh97xeWh4h2mk9uG0SbCxBKHPhIiHLHAKEIDzIZBdwUhuyncVNDPHW2NlXM+S7U0/iKs2tw05waqh2lHvg==",
+ "dev": true,
+ "dependencies": {
+ "@fal-works/esbuild-plugin-global-externals": "^2.1.2",
+ "@storybook/core-common": "7.6.19",
+ "@storybook/manager": "7.6.19",
+ "@storybook/node-logger": "7.6.19",
+ "@types/ejs": "^3.1.1",
+ "@types/find-cache-dir": "^3.2.1",
+ "@yarnpkg/esbuild-plugin-pnp": "^3.0.0-rc.10",
+ "browser-assert": "^1.2.1",
+ "ejs": "^3.1.8",
+ "esbuild": "^0.18.0",
+ "esbuild-plugin-alias": "^0.2.1",
+ "express": "^4.17.3",
+ "find-cache-dir": "^3.0.0",
+ "fs-extra": "^11.1.0",
+ "process": "^0.11.10",
+ "util": "^0.12.4"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/channels": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.19.tgz",
+ "integrity": "sha512-2JGh+i95GwjtjqWqhtEh15jM5ifwbRGmXeFqkY7dpdHH50EEWafYHr2mg3opK3heVDwg0rJ/VBptkmshloXuvA==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/client-logger": "7.6.19",
+ "@storybook/core-events": "7.6.19",
+ "@storybook/global": "^5.0.0",
+ "qs": "^6.10.0",
+ "telejson": "^7.2.0",
+ "tiny-invariant": "^1.3.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/client-logger": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.19.tgz",
+ "integrity": "sha512-oGzOxbmLmciSIfd5gsxDzPmX8DttWhoYdPKxjMuCuWLTO2TWpkCWp1FTUMWO72mm/6V/FswT/aqpJJBBvdZ3RQ==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/global": "^5.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/core-common": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.19.tgz",
+ "integrity": "sha512-njwpGzFJrfbJr/AFxGP8KMrfPfxN85KOfSlxYnQwRm5Z0H1D/lT33LhEBf5m37gaGawHeG7KryxO6RvaioMt2Q==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/core-events": "7.6.19",
+ "@storybook/node-logger": "7.6.19",
+ "@storybook/types": "7.6.19",
+ "@types/find-cache-dir": "^3.2.1",
+ "@types/node": "^18.0.0",
+ "@types/node-fetch": "^2.6.4",
+ "@types/pretty-hrtime": "^1.0.0",
+ "chalk": "^4.1.0",
+ "esbuild": "^0.18.0",
+ "esbuild-register": "^3.5.0",
+ "file-system-cache": "2.3.0",
+ "find-cache-dir": "^3.0.0",
+ "find-up": "^5.0.0",
+ "fs-extra": "^11.1.0",
+ "glob": "^10.0.0",
+ "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"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/core-events": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.19.tgz",
+ "integrity": "sha512-K/W6Uvum0ocZSgjbi8hiotpe+wDEHDZlvN+KlPqdh9ae9xDK8aBNBq9IelCoqM+uKO1Zj+dDfSQds7CD781DJg==",
+ "dev": true,
+ "dependencies": {
+ "ts-dedent": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/core-server": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-7.6.19.tgz",
+ "integrity": "sha512-7mKL73Wv5R2bEl0kJ6QJ9bOu5YY53Idu24QgvTnUdNsQazp2yUONBNwHIrNDnNEXm8SfCi4Mc9o0mmNRMIoiRA==",
+ "dev": true,
+ "dependencies": {
+ "@aw-web-design/x-default-browser": "1.4.126",
+ "@discoveryjs/json-ext": "^0.5.3",
+ "@storybook/builder-manager": "7.6.19",
+ "@storybook/channels": "7.6.19",
+ "@storybook/core-common": "7.6.19",
+ "@storybook/core-events": "7.6.19",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/csf-tools": "7.6.19",
+ "@storybook/docs-mdx": "^0.1.0",
+ "@storybook/global": "^5.0.0",
+ "@storybook/manager": "7.6.19",
+ "@storybook/node-logger": "7.6.19",
+ "@storybook/preview-api": "7.6.19",
+ "@storybook/telemetry": "7.6.19",
+ "@storybook/types": "7.6.19",
+ "@types/detect-port": "^1.3.0",
+ "@types/node": "^18.0.0",
+ "@types/pretty-hrtime": "^1.0.0",
+ "@types/semver": "^7.3.4",
+ "better-opn": "^3.0.2",
+ "chalk": "^4.1.0",
+ "cli-table3": "^0.6.1",
+ "compression": "^1.7.4",
+ "detect-port": "^1.3.0",
+ "express": "^4.17.3",
+ "fs-extra": "^11.1.0",
+ "globby": "^11.0.2",
+ "ip": "^2.0.1",
+ "lodash": "^4.17.21",
+ "open": "^8.4.0",
+ "pretty-hrtime": "^1.0.3",
+ "prompts": "^2.4.0",
+ "read-pkg-up": "^7.0.1",
+ "semver": "^7.3.7",
+ "telejson": "^7.2.0",
+ "tiny-invariant": "^1.3.1",
+ "ts-dedent": "^2.0.0",
+ "util": "^0.12.4",
+ "util-deprecate": "^1.0.2",
+ "watchpack": "^2.2.0",
+ "ws": "^8.2.3"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/csf-tools": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-7.6.19.tgz",
+ "integrity": "sha512-8Vzia3cHhDdGHuS3XKXJReCRxmfRq3vmTm/Te9yKZnPSAsC58CCKcMh8FNEFJ44vxYF9itKTkRutjGs+DprKLQ==",
+ "dev": true,
+ "dependencies": {
+ "@babel/generator": "^7.23.0",
+ "@babel/parser": "^7.23.0",
+ "@babel/traverse": "^7.23.2",
+ "@babel/types": "^7.23.0",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/types": "7.6.19",
+ "fs-extra": "^11.1.0",
+ "recast": "^0.23.1",
+ "ts-dedent": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/manager": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/manager/-/manager-7.6.19.tgz",
+ "integrity": "sha512-fZWQcf59x4P0iiBhrL74PZrqKJAPuk9sWjP8BIkGbf8wTZtUunbY5Sv4225fOL4NLJbuX9/RYLUPoxQ3nucGHA==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/node-logger": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.19.tgz",
+ "integrity": "sha512-2g29QC44Zl1jKY37DmQ0/dO7+VSKnGgPI/x0mwVwQffypSapxH3rwLLT5Q5XLHeFyD+fhRu5w9Cj4vTGynJgpA==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/preview-api": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.19.tgz",
+ "integrity": "sha512-04hdMSQucroJT4dBjQzRd7ZwH2hij8yx2nm5qd4HYGkd1ORkvlH6GOLph4XewNJl5Um3xfzFQzBhvkqvG0WaCQ==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/channels": "7.6.19",
+ "@storybook/client-logger": "7.6.19",
+ "@storybook/core-events": "7.6.19",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/global": "^5.0.0",
+ "@storybook/types": "7.6.19",
+ "@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"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/telemetry": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.19.tgz",
+ "integrity": "sha512-rA5xum4I36M57iiD3uzmW0MOdpl0vEpHWBSAa5hK0a0ALPeY9TgAsQlI/0dSyNYJ/K7aczEEN6d4qm1NC4u10A==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/client-logger": "7.6.19",
+ "@storybook/core-common": "7.6.19",
+ "@storybook/csf-tools": "7.6.19",
+ "chalk": "^4.1.0",
+ "detect-package-manager": "^2.0.1",
+ "fetch-retry": "^5.0.2",
+ "fs-extra": "^11.1.0",
+ "read-pkg-up": "^7.0.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@storybook/types": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.19.tgz",
+ "integrity": "sha512-DeGYrRPRMGTVfT7o2rEZtRzyLT2yKTI2exgpnxbwPWEFAduZCSfzBrcBXZ/nb5B0pjA9tUNWls1YzGkJGlkhpg==",
+ "dev": true,
+ "dependencies": {
+ "@storybook/channels": "7.6.19",
+ "@types/babel__core": "^7.0.0",
+ "@types/express": "^4.7.0",
+ "file-system-cache": "2.3.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/@types/node": {
+ "version": "18.19.33",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz",
+ "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/glob": {
+ "version": "10.3.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz",
+ "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.6",
+ "minimatch": "^9.0.1",
+ "minipass": "^7.0.4",
+ "path-scurry": "^1.11.0"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/minipass": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz",
+ "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/semver": {
+ "version": "7.6.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz",
+ "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@storybook/vue3-vite/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/@storybook/preview-api": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.17.tgz",
- "integrity": "sha512-wLfDdI9RWo1f2zzFe54yRhg+2YWyxLZvqdZnSQ45mTs4/7xXV5Wfbv3QNTtcdw8tT3U5KRTrN1mTfTCiRJc0Kw==",
+ "node_modules/@storybook/vue3/node_modules/@storybook/channels": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-7.6.19.tgz",
+ "integrity": "sha512-2JGh+i95GwjtjqWqhtEh15jM5ifwbRGmXeFqkY7dpdHH50EEWafYHr2mg3opK3heVDwg0rJ/VBptkmshloXuvA==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.6.17",
- "@storybook/client-logger": "7.6.17",
- "@storybook/core-events": "7.6.17",
- "@storybook/csf": "^0.1.2",
+ "@storybook/client-logger": "7.6.19",
+ "@storybook/core-events": "7.6.19",
"@storybook/global": "^5.0.0",
- "@storybook/types": "7.6.17",
- "@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"
+ "telejson": "^7.2.0",
+ "tiny-invariant": "^1.3.1"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/react": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/react/-/react-7.6.17.tgz",
- "integrity": "sha512-lVqzQSU03rRJWYW+gK2gq6mSo3/qtnVICY8B8oP7gc36jVu4ksDIu45bTfukM618ODkUZy0vZe6T4engK3azjA==",
+ "node_modules/@storybook/vue3/node_modules/@storybook/client-logger": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-7.6.19.tgz",
+ "integrity": "sha512-oGzOxbmLmciSIfd5gsxDzPmX8DttWhoYdPKxjMuCuWLTO2TWpkCWp1FTUMWO72mm/6V/FswT/aqpJJBBvdZ3RQ==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.6.17",
- "@storybook/core-client": "7.6.17",
- "@storybook/docs-tools": "7.6.17",
- "@storybook/global": "^5.0.0",
- "@storybook/preview-api": "7.6.17",
- "@storybook/react-dom-shim": "7.6.17",
- "@storybook/types": "7.6.17",
- "@types/escodegen": "^0.0.6",
- "@types/estree": "^0.0.51",
- "@types/node": "^18.0.0",
- "acorn": "^7.4.1",
- "acorn-jsx": "^5.3.1",
- "acorn-walk": "^7.2.0",
- "escodegen": "^2.1.0",
- "html-tags": "^3.1.0",
- "lodash": "^4.17.21",
- "prop-types": "^15.7.2",
- "react-element-to-jsx-string": "^15.0.0",
- "ts-dedent": "^2.0.0",
- "type-fest": "~2.19",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=16.0.0"
+ "@storybook/global": "^5.0.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "typescript": {
- "optional": true
- }
}
},
- "node_modules/@storybook/react-docgen-typescript-plugin": {
- "version": "1.0.6--canary.9.0c3f3b7.0",
- "resolved": "https://registry.npmjs.org/@storybook/react-docgen-typescript-plugin/-/react-docgen-typescript-plugin-1.0.6--canary.9.0c3f3b7.0.tgz",
- "integrity": "sha512-KUqXC3oa9JuQ0kZJLBhVdS4lOneKTOopnNBK4tUAgoxWQ3u/IjzdueZjFr7gyBrXMoU6duutk3RQR9u8ZpYJ4Q==",
+ "node_modules/@storybook/vue3/node_modules/@storybook/core-client": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-7.6.19.tgz",
+ "integrity": "sha512-F0V9nzcEnj6DIpnw2ilrxsV4d9ibyyQS+Wi2uQtXy+wCQQm9PeBVqrOywjXAY2F9pcoftXOaepfhp8jrxX4MXw==",
"dev": true,
"dependencies": {
- "debug": "^4.1.1",
- "endent": "^2.0.1",
- "find-cache-dir": "^3.3.1",
- "flat-cache": "^3.0.4",
- "micromatch": "^4.0.2",
- "react-docgen-typescript": "^2.2.2",
- "tslib": "^2.0.0"
+ "@storybook/client-logger": "7.6.19",
+ "@storybook/preview-api": "7.6.19"
},
- "peerDependencies": {
- "typescript": ">= 4.x",
- "webpack": ">= 4"
- }
- },
- "node_modules/@storybook/react-dom-shim": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-7.6.17.tgz",
- "integrity": "sha512-32Sa/G+WnvaPiQ1Wvjjw5UM9rr2c4GDohwCcWVv3/LJuiFPqNS6zglAtmnsrlIBnUwRBMLMh/ekCTdqMiUmfDw==",
- "dev": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
}
},
- "node_modules/@storybook/react-webpack5": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/react-webpack5/-/react-webpack5-7.6.17.tgz",
- "integrity": "sha512-qGc2JxaSmvPXV7ndxA/8qPtPLK7lAwejL/QdrzLXhxEmVdZLMew640FBYgOV/zWnehV3BnivThln/8PsQyst/g==",
+ "node_modules/@storybook/vue3/node_modules/@storybook/core-common": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-7.6.19.tgz",
+ "integrity": "sha512-njwpGzFJrfbJr/AFxGP8KMrfPfxN85KOfSlxYnQwRm5Z0H1D/lT33LhEBf5m37gaGawHeG7KryxO6RvaioMt2Q==",
"dev": true,
"dependencies": {
- "@storybook/builder-webpack5": "7.6.17",
- "@storybook/preset-react-webpack": "7.6.17",
- "@storybook/react": "7.6.17",
- "@types/node": "^18.0.0"
- },
- "engines": {
- "node": ">=16.0.0"
+ "@storybook/core-events": "7.6.19",
+ "@storybook/node-logger": "7.6.19",
+ "@storybook/types": "7.6.19",
+ "@types/find-cache-dir": "^3.2.1",
+ "@types/node": "^18.0.0",
+ "@types/node-fetch": "^2.6.4",
+ "@types/pretty-hrtime": "^1.0.0",
+ "chalk": "^4.1.0",
+ "esbuild": "^0.18.0",
+ "esbuild-register": "^3.5.0",
+ "file-system-cache": "2.3.0",
+ "find-cache-dir": "^3.0.0",
+ "find-up": "^5.0.0",
+ "fs-extra": "^11.1.0",
+ "glob": "^10.0.0",
+ "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"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "@babel/core": "^7.22.0",
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "typescript": "*"
- },
- "peerDependenciesMeta": {
- "@babel/core": {
- "optional": true
- },
- "typescript": {
- "optional": true
- }
}
},
- "node_modules/@storybook/react-webpack5/node_modules/@types/node": {
- "version": "18.19.0",
+ "node_modules/@storybook/vue3/node_modules/@storybook/core-events": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-7.6.19.tgz",
+ "integrity": "sha512-K/W6Uvum0ocZSgjbi8hiotpe+wDEHDZlvN+KlPqdh9ae9xDK8aBNBq9IelCoqM+uKO1Zj+dDfSQds7CD781DJg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "undici-types": "~5.26.4"
+ "ts-dedent": "^2.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/react/node_modules/@types/estree": {
- "version": "0.0.51",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@storybook/react/node_modules/@types/node": {
- "version": "18.19.0",
+ "node_modules/@storybook/vue3/node_modules/@storybook/docs-tools": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/docs-tools/-/docs-tools-7.6.19.tgz",
+ "integrity": "sha512-JuwV6wtm7Hb7Kb5ValChfxy4J7XngfrSQNpvwsDCSBNVcQUv2y843hvclpa26Ptfr/c7zpUX8r9FGSaMDy+2aQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "undici-types": "~5.26.4"
+ "@storybook/core-common": "7.6.19",
+ "@storybook/preview-api": "7.6.19",
+ "@storybook/types": "7.6.19",
+ "@types/doctrine": "^0.0.3",
+ "assert": "^2.1.0",
+ "doctrine": "^3.0.0",
+ "lodash": "^4.17.21"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/react/node_modules/acorn": {
- "version": "7.4.1",
+ "node_modules/@storybook/vue3/node_modules/@storybook/node-logger": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-7.6.19.tgz",
+ "integrity": "sha512-2g29QC44Zl1jKY37DmQ0/dO7+VSKnGgPI/x0mwVwQffypSapxH3rwLLT5Q5XLHeFyD+fhRu5w9Cj4vTGynJgpA==",
"dev": true,
- "license": "MIT",
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/router": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/router/-/router-7.6.17.tgz",
- "integrity": "sha512-GnyC0j6Wi5hT4qRhSyT8NPtJfGmf82uZw97LQRWeyYu5gWEshUdM7aj40XlNiScd5cZDp0owO1idduVF2k2l2A==",
+ "node_modules/@storybook/vue3/node_modules/@storybook/preview-api": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/preview-api/-/preview-api-7.6.19.tgz",
+ "integrity": "sha512-04hdMSQucroJT4dBjQzRd7ZwH2hij8yx2nm5qd4HYGkd1ORkvlH6GOLph4XewNJl5Um3xfzFQzBhvkqvG0WaCQ==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.6.17",
+ "@storybook/channels": "7.6.19",
+ "@storybook/client-logger": "7.6.19",
+ "@storybook/core-events": "7.6.19",
+ "@storybook/csf": "^0.1.2",
+ "@storybook/global": "^5.0.0",
+ "@storybook/types": "7.6.19",
+ "@types/qs": "^6.9.5",
+ "dequal": "^2.0.2",
+ "lodash": "^4.17.21",
"memoizerific": "^1.11.3",
- "qs": "^6.10.0"
+ "qs": "^6.10.0",
+ "synchronous-promise": "^2.0.15",
+ "ts-dedent": "^2.0.0",
+ "util-deprecate": "^1.0.2"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/telemetry": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/telemetry/-/telemetry-7.6.17.tgz",
- "integrity": "sha512-WOcOAmmengYnGInH98Px44F47DSpLyk20BM+Z/IIQDzfttGOLlxNqBBG1XTEhNRn+AYuk4aZ2JEed2lCjVIxcA==",
+ "node_modules/@storybook/vue3/node_modules/@storybook/types": {
+ "version": "7.6.19",
+ "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.19.tgz",
+ "integrity": "sha512-DeGYrRPRMGTVfT7o2rEZtRzyLT2yKTI2exgpnxbwPWEFAduZCSfzBrcBXZ/nb5B0pjA9tUNWls1YzGkJGlkhpg==",
"dev": true,
"dependencies": {
- "@storybook/client-logger": "7.6.17",
- "@storybook/core-common": "7.6.17",
- "@storybook/csf-tools": "7.6.17",
- "chalk": "^4.1.0",
- "detect-package-manager": "^2.0.1",
- "fetch-retry": "^5.0.2",
- "fs-extra": "^11.1.0",
- "read-pkg-up": "^7.0.1"
+ "@storybook/channels": "7.6.19",
+ "@types/babel__core": "^7.0.0",
+ "@types/express": "^4.7.0",
+ "file-system-cache": "2.3.0"
},
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/storybook"
}
},
- "node_modules/@storybook/telemetry/node_modules/ansi-styles": {
+ "node_modules/@storybook/vue3/node_modules/@types/node": {
+ "version": "18.19.33",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.33.tgz",
+ "integrity": "sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==",
+ "dev": true,
+ "dependencies": {
+ "undici-types": "~5.26.4"
+ }
+ },
+ "node_modules/@storybook/vue3/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
@@ -8605,7 +9679,16 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/@storybook/telemetry/node_modules/chalk": {
+ "node_modules/@storybook/vue3/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@storybook/vue3/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
@@ -8621,61 +9704,71 @@
"url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/@storybook/telemetry/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/@storybook/vue3/node_modules/glob": {
+ "version": "10.3.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz",
+ "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==",
"dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.6",
+ "minimatch": "^9.0.1",
+ "minipass": "^7.0.4",
+ "path-scurry": "^1.11.0"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
"engines": {
- "node": ">=8"
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@storybook/telemetry/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/@storybook/vue3/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
"engines": {
"node": ">=8"
}
},
- "node_modules/@storybook/theming": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-7.6.17.tgz",
- "integrity": "sha512-ZbaBt3KAbmBtfjNqgMY7wPMBshhSJlhodyMNQypv+95xLD/R+Az6aBYbpVAOygLaUQaQk4ar7H/Ww6lFIoiFbA==",
+ "node_modules/@storybook/vue3/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
"dev": true,
"dependencies": {
- "@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
- "@storybook/client-logger": "7.6.17",
- "@storybook/global": "^5.0.0",
- "memoizerific": "^1.11.3"
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
- },
- "peerDependencies": {
- "react": "^16.8.0 || ^17.0.0 || ^18.0.0",
- "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@storybook/types": {
- "version": "7.6.17",
- "resolved": "https://registry.npmjs.org/@storybook/types/-/types-7.6.17.tgz",
- "integrity": "sha512-GRY0xEJQ0PrL7DY2qCNUdIfUOE0Gsue6N+GBJw9ku1IUDFLJRDOF+4Dx2BvYcVCPI5XPqdWKlEyZdMdKjiQN7Q==",
+ "node_modules/@storybook/vue3/node_modules/minipass": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz",
+ "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/@storybook/vue3/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"dependencies": {
- "@storybook/channels": "7.6.17",
- "@types/babel__core": "^7.0.0",
- "@types/express": "^4.7.0",
- "file-system-cache": "2.3.0"
+ "has-flag": "^4.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/storybook"
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/@storybook/web-components": {
@@ -9858,14 +10951,27 @@
"integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
"dev": true
},
+ "node_modules/@vitejs/plugin-vue": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+ "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
+ "dev": true,
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "vite": "^4.0.0 || ^5.0.0",
+ "vue": "^3.2.25"
+ }
+ },
"node_modules/@vue/compiler-core": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.26.tgz",
- "integrity": "sha512-N9Vil6Hvw7NaiyFUFBPXrAyETIGlQ8KcFMkyk6hW1Cl6NvoqvP+Y8p1Eqvx+UdqsnrnI9+HMUEJegzia3mhXmQ==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.27.tgz",
+ "integrity": "sha512-E+RyqY24KnyDXsCuQrI+mlcdW3ALND6U7Gqa/+bVwbcpcR3BRRIckFoz7Qyd4TTlnugtwuI7YgjbvsLmxb+yvg==",
"dev": true,
"dependencies": {
"@babel/parser": "^7.24.4",
- "@vue/shared": "3.4.26",
+ "@vue/shared": "3.4.27",
"entities": "^4.5.0",
"estree-walker": "^2.0.2",
"source-map-js": "^1.2.0"
@@ -9884,26 +10990,26 @@
}
},
"node_modules/@vue/compiler-dom": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.26.tgz",
- "integrity": "sha512-4CWbR5vR9fMg23YqFOhr6t6WB1Fjt62d6xdFPyj8pxrYub7d+OgZaObMsoxaF9yBUHPMiPFK303v61PwAuGvZA==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.27.tgz",
+ "integrity": "sha512-kUTvochG/oVgE1w5ViSr3KUBh9X7CWirebA3bezTbB5ZKBQZwR2Mwj9uoSKRMFcz4gSMzzLXBPD6KpCLb9nvWw==",
"dev": true,
"dependencies": {
- "@vue/compiler-core": "3.4.26",
- "@vue/shared": "3.4.26"
+ "@vue/compiler-core": "3.4.27",
+ "@vue/shared": "3.4.27"
}
},
"node_modules/@vue/compiler-sfc": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.26.tgz",
- "integrity": "sha512-It1dp+FAOCgluYSVYlDn5DtZBxk1NCiJJfu2mlQqa/b+k8GL6NG/3/zRbJnHdhV2VhxFghaDq5L4K+1dakW6cw==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.27.tgz",
+ "integrity": "sha512-nDwntUEADssW8e0rrmE0+OrONwmRlegDA1pD6QhVeXxjIytV03yDqTey9SBDiALsvAd5U4ZrEKbMyVXhX6mCGA==",
"dev": true,
"dependencies": {
"@babel/parser": "^7.24.4",
- "@vue/compiler-core": "3.4.26",
- "@vue/compiler-dom": "3.4.26",
- "@vue/compiler-ssr": "3.4.26",
- "@vue/shared": "3.4.26",
+ "@vue/compiler-core": "3.4.27",
+ "@vue/compiler-dom": "3.4.27",
+ "@vue/compiler-ssr": "3.4.27",
+ "@vue/shared": "3.4.27",
"estree-walker": "^2.0.2",
"magic-string": "^0.30.10",
"postcss": "^8.4.38",
@@ -9911,62 +11017,62 @@
}
},
"node_modules/@vue/compiler-ssr": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.26.tgz",
- "integrity": "sha512-FNwLfk7LlEPRY/g+nw2VqiDKcnDTVdCfBREekF8X74cPLiWHUX6oldktf/Vx28yh4STNy7t+/yuLoMBBF7YDiQ==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.27.tgz",
+ "integrity": "sha512-CVRzSJIltzMG5FcidsW0jKNQnNRYC8bT21VegyMMtHmhW3UOI7knmUehzswXLrExDLE6lQCZdrhD4ogI7c+vuw==",
"dev": true,
"dependencies": {
- "@vue/compiler-dom": "3.4.26",
- "@vue/shared": "3.4.26"
+ "@vue/compiler-dom": "3.4.27",
+ "@vue/shared": "3.4.27"
}
},
"node_modules/@vue/reactivity": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.26.tgz",
- "integrity": "sha512-E/ynEAu/pw0yotJeLdvZEsp5Olmxt+9/WqzvKff0gE67tw73gmbx6tRkiagE/eH0UCubzSlGRebCbidB1CpqZQ==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.27.tgz",
+ "integrity": "sha512-kK0g4NknW6JX2yySLpsm2jlunZJl2/RJGZ0H9ddHdfBVHcNzxmQ0sS0b09ipmBoQpY8JM2KmUw+a6sO8Zo+zIA==",
"dev": true,
"dependencies": {
- "@vue/shared": "3.4.26"
+ "@vue/shared": "3.4.27"
}
},
"node_modules/@vue/runtime-core": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.26.tgz",
- "integrity": "sha512-AFJDLpZvhT4ujUgZSIL9pdNcO23qVFh7zWCsNdGQBw8ecLNxOOnPcK9wTTIYCmBJnuPHpukOwo62a2PPivihqw==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.27.tgz",
+ "integrity": "sha512-7aYA9GEbOOdviqVvcuweTLe5Za4qBZkUY7SvET6vE8kyypxVgaT1ixHLg4urtOlrApdgcdgHoTZCUuTGap/5WA==",
"dev": true,
"dependencies": {
- "@vue/reactivity": "3.4.26",
- "@vue/shared": "3.4.26"
+ "@vue/reactivity": "3.4.27",
+ "@vue/shared": "3.4.27"
}
},
"node_modules/@vue/runtime-dom": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.26.tgz",
- "integrity": "sha512-UftYA2hUXR2UOZD/Fc3IndZuCOOJgFxJsWOxDkhfVcwLbsfh2CdXE2tG4jWxBZuDAs9J9PzRTUFt1PgydEtItw==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.27.tgz",
+ "integrity": "sha512-ScOmP70/3NPM+TW9hvVAz6VWWtZJqkbdf7w6ySsws+EsqtHvkhxaWLecrTorFxsawelM5Ys9FnDEMt6BPBDS0Q==",
"dev": true,
"dependencies": {
- "@vue/runtime-core": "3.4.26",
- "@vue/shared": "3.4.26",
+ "@vue/runtime-core": "3.4.27",
+ "@vue/shared": "3.4.27",
"csstype": "^3.1.3"
}
},
"node_modules/@vue/server-renderer": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.26.tgz",
- "integrity": "sha512-xoGAqSjYDPGAeRWxeoYwqJFD/gw7mpgzOvSxEmjWaFO2rE6qpbD1PC172YRpvKhrihkyHJkNDADFXTfCyVGhKw==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.27.tgz",
+ "integrity": "sha512-dlAMEuvmeA3rJsOMJ2J1kXU7o7pOxgsNHVr9K8hB3ImIkSuBrIdy0vF66h8gf8Tuinf1TK3mPAz2+2sqyf3KzA==",
"dev": true,
"dependencies": {
- "@vue/compiler-ssr": "3.4.26",
- "@vue/shared": "3.4.26"
+ "@vue/compiler-ssr": "3.4.27",
+ "@vue/shared": "3.4.27"
},
"peerDependencies": {
- "vue": "3.4.26"
+ "vue": "3.4.27"
}
},
"node_modules/@vue/shared": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.26.tgz",
- "integrity": "sha512-Fg4zwR0GNnjzodMt3KRy2AWGMKQXByl56+4HjN87soxLNU9P5xcJkstAlIeEF3cU6UYOzmJl1tV0dVPGIljCnQ==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.27.tgz",
+ "integrity": "sha512-DL3NmY2OFlqmYYrzp39yi3LDkKxa5vZVwxWdQ3rG0ekuWscHraeIbnI8t+aZK7qhYqEqWKTUdijadunb9pnrgA==",
"dev": true
},
"node_modules/@webassemblyjs/ast": {
@@ -10676,6 +11782,12 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
+ "dev": true
+ },
"node_modules/assert": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz",
@@ -10689,6 +11801,12 @@
"util": "^0.12.5"
}
},
+ "node_modules/assert-never": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
+ "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==",
+ "dev": true
+ },
"node_modules/assign-symbols": {
"version": "1.0.0",
"dev": true,
@@ -11137,6 +12255,18 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/babel-walk": {
+ "version": "3.0.0-canary-5",
+ "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
+ "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/types": "^7.9.6"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
"node_modules/bail": {
"version": "2.0.2",
"dev": true,
@@ -11676,6 +12806,15 @@
"url": "https://github.com/sponsors/wooorm"
}
},
+ "node_modules/character-parser": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
+ "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==",
+ "dev": true,
+ "dependencies": {
+ "is-regex": "^1.0.3"
+ }
+ },
"node_modules/chokidar": {
"version": "3.5.3",
"dev": true,
@@ -12293,6 +13432,16 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/constantinople": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz",
+ "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.6.0",
+ "@babel/types": "^7.6.1"
+ }
+ },
"node_modules/constants-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
@@ -13274,6 +14423,12 @@
"node": ">=6.0.0"
}
},
+ "node_modules/doctypes": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
+ "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==",
+ "dev": true
+ },
"node_modules/dom-accessibility-api": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.6.3.tgz",
@@ -14211,6 +15366,12 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/esm-resolve": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/esm-resolve/-/esm-resolve-1.0.11.tgz",
+ "integrity": "sha512-LxF0wfUQm3ldUDHkkV2MIbvvY0TgzIpJ420jHSV1Dm+IlplBEWiJTKWM61GtxUfvjV6iD4OtTYFGAGM2uuIUWg==",
+ "dev": true
+ },
"node_modules/espree": {
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
@@ -16017,6 +17178,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/hash-sum": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz",
+ "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==",
+ "dev": true
+ },
"node_modules/hasown": {
"version": "2.0.0",
"dev": true,
@@ -16689,6 +17856,28 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-expression": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz",
+ "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^7.1.1",
+ "object-assign": "^4.1.1"
+ }
+ },
+ "node_modules/is-expression/node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/is-extendable": {
"version": "1.0.1",
"dev": true,
@@ -16873,6 +18062,12 @@
"integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==",
"dev": true
},
+ "node_modules/is-promise": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
+ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==",
+ "dev": true
+ },
"node_modules/is-regex": {
"version": "1.1.4",
"dev": true,
@@ -20641,6 +21836,12 @@
"jiti": "bin/jiti.js"
}
},
+ "node_modules/js-stringify": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
+ "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==",
+ "dev": true
+ },
"node_modules/js-tokens": {
"version": "4.0.0",
"dev": true,
@@ -20962,6 +22163,16 @@
"node": "*"
}
},
+ "node_modules/jstransformer": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
+ "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==",
+ "dev": true,
+ "dependencies": {
+ "is-promise": "^2.0.0",
+ "promise": "^7.0.1"
+ }
+ },
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@@ -24086,16 +25297,16 @@
"license": "MIT"
},
"node_modules/path-scurry": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
- "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"dev": true,
"dependencies": {
- "lru-cache": "^9.1.1 || ^10.0.0",
+ "lru-cache": "^10.2.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
- "node": ">=16 || 14 >=14.17"
+ "node": ">=16 || 14 >=14.18"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
@@ -24930,6 +26141,15 @@
"node": ">=0.4.0"
}
},
+ "node_modules/promise": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
+ "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
+ "dev": true,
+ "dependencies": {
+ "asap": "~2.0.3"
+ }
+ },
"node_modules/promise.series": {
"version": "0.2.0",
"dev": true,
@@ -25069,6 +26289,130 @@
"integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
"dev": true
},
+ "node_modules/pug": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz",
+ "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==",
+ "dev": true,
+ "dependencies": {
+ "pug-code-gen": "^3.0.2",
+ "pug-filters": "^4.0.0",
+ "pug-lexer": "^5.0.1",
+ "pug-linker": "^4.0.0",
+ "pug-load": "^3.0.0",
+ "pug-parser": "^6.0.0",
+ "pug-runtime": "^3.0.1",
+ "pug-strip-comments": "^2.0.0"
+ }
+ },
+ "node_modules/pug-attrs": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz",
+ "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==",
+ "dev": true,
+ "dependencies": {
+ "constantinople": "^4.0.1",
+ "js-stringify": "^1.0.2",
+ "pug-runtime": "^3.0.0"
+ }
+ },
+ "node_modules/pug-code-gen": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz",
+ "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==",
+ "dev": true,
+ "dependencies": {
+ "constantinople": "^4.0.1",
+ "doctypes": "^1.1.0",
+ "js-stringify": "^1.0.2",
+ "pug-attrs": "^3.0.0",
+ "pug-error": "^2.0.0",
+ "pug-runtime": "^3.0.0",
+ "void-elements": "^3.1.0",
+ "with": "^7.0.0"
+ }
+ },
+ "node_modules/pug-error": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz",
+ "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==",
+ "dev": true
+ },
+ "node_modules/pug-filters": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz",
+ "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==",
+ "dev": true,
+ "dependencies": {
+ "constantinople": "^4.0.1",
+ "jstransformer": "1.0.0",
+ "pug-error": "^2.0.0",
+ "pug-walk": "^2.0.0",
+ "resolve": "^1.15.1"
+ }
+ },
+ "node_modules/pug-lexer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz",
+ "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==",
+ "dev": true,
+ "dependencies": {
+ "character-parser": "^2.2.0",
+ "is-expression": "^4.0.0",
+ "pug-error": "^2.0.0"
+ }
+ },
+ "node_modules/pug-linker": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz",
+ "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==",
+ "dev": true,
+ "dependencies": {
+ "pug-error": "^2.0.0",
+ "pug-walk": "^2.0.0"
+ }
+ },
+ "node_modules/pug-load": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz",
+ "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==",
+ "dev": true,
+ "dependencies": {
+ "object-assign": "^4.1.1",
+ "pug-walk": "^2.0.0"
+ }
+ },
+ "node_modules/pug-parser": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz",
+ "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==",
+ "dev": true,
+ "dependencies": {
+ "pug-error": "^2.0.0",
+ "token-stream": "1.0.0"
+ }
+ },
+ "node_modules/pug-runtime": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz",
+ "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==",
+ "dev": true
+ },
+ "node_modules/pug-strip-comments": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz",
+ "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==",
+ "dev": true,
+ "dependencies": {
+ "pug-error": "^2.0.0"
+ }
+ },
+ "node_modules/pug-walk": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz",
+ "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==",
+ "dev": true
+ },
"node_modules/pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -28242,6 +29586,12 @@
"node": ">=0.6"
}
},
+ "node_modules/token-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz",
+ "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==",
+ "dev": true
+ },
"node_modules/tough-cookie": {
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz",
@@ -28374,6 +29724,12 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/ts-map": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/ts-map/-/ts-map-1.0.3.tgz",
+ "integrity": "sha512-vDWbsl26LIcPGmDpoVzjEP6+hvHZkBkLW7JpvwbCv/5IYPJlsbzCVXY3wsCeAxAUeTclNOUZxnLdGh3VBD/J6w==",
+ "dev": true
+ },
"node_modules/ts-node": {
"version": "10.9.2",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
@@ -29208,17 +30564,97 @@
"url": "https://opencollective.com/unified"
}
},
+ "node_modules/vite": {
+ "version": "4.5.3",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.3.tgz",
+ "integrity": "sha512-kQL23kMeX92v3ph7IauVkXkikdDRsYMGTVl5KY2E9OY4ONLvkHf04MDTbnfo6NKxZiDLWzVpP5oTa8hQD8U3dg==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.18.10",
+ "postcss": "^8.4.27",
+ "rollup": "^3.27.1"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "peerDependencies": {
+ "@types/node": ">= 14",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/rollup": {
+ "version": "3.29.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
+ "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
+ "dev": true,
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=14.18.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/void-elements": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
+ "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/vue": {
- "version": "3.4.26",
- "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.26.tgz",
- "integrity": "sha512-bUIq/p+VB+0xrJubaemrfhk1/FiW9iX+pDV+62I/XJ6EkspAO9/DXEjbDFoe8pIfOZBqfk45i9BMc41ptP/uRg==",
+ "version": "3.4.27",
+ "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.27.tgz",
+ "integrity": "sha512-8s/56uK6r01r1icG/aEOHqyMVxd1bkYcSe9j8HcKtr/xTOFWvnzIVTehNW+5Yt89f+DLBe4A569pnZLS5HzAMA==",
"dev": true,
"dependencies": {
- "@vue/compiler-dom": "3.4.26",
- "@vue/compiler-sfc": "3.4.26",
- "@vue/runtime-dom": "3.4.26",
- "@vue/server-renderer": "3.4.26",
- "@vue/shared": "3.4.26"
+ "@vue/compiler-dom": "3.4.27",
+ "@vue/compiler-sfc": "3.4.27",
+ "@vue/runtime-dom": "3.4.27",
+ "@vue/server-renderer": "3.4.27",
+ "@vue/shared": "3.4.27"
},
"peerDependencies": {
"typescript": "*"
@@ -29229,6 +30665,65 @@
}
}
},
+ "node_modules/vue-component-type-helpers": {
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/vue-component-type-helpers/-/vue-component-type-helpers-2.0.17.tgz",
+ "integrity": "sha512-2car49m8ciqg/JjgMBkx7o/Fd2A7fHESxNqL/2vJYFLXm4VwYO4yH0rexOi4a35vwNgDyvt17B07Vj126l9rAQ==",
+ "dev": true
+ },
+ "node_modules/vue-docgen-api": {
+ "version": "4.78.0",
+ "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.78.0.tgz",
+ "integrity": "sha512-RsZf+qzTttCCAN9v7AKmBykc2QWmO8csVk1c2aXeOktomSOu0NA7sgK4ObuRB5lpmtOvTnwuxssyYmxXxABr+A==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.21.4",
+ "@babel/types": "^7.21.4",
+ "@vue/compiler-dom": "^3.2.0",
+ "@vue/compiler-sfc": "^3.2.0",
+ "ast-types": "^0.16.1",
+ "esm-resolve": "^1.0.8",
+ "hash-sum": "^2.0.0",
+ "lru-cache": "^8.0.3",
+ "pug": "^3.0.2",
+ "recast": "^0.23.1",
+ "ts-map": "^1.0.3",
+ "vue-inbrowser-compiler-independent-utils": "^4.69.0"
+ },
+ "peerDependencies": {
+ "vue": ">=2"
+ }
+ },
+ "node_modules/vue-docgen-api/node_modules/ast-types": {
+ "version": "0.16.1",
+ "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.16.1.tgz",
+ "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/vue-docgen-api/node_modules/lru-cache": {
+ "version": "8.0.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz",
+ "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==",
+ "dev": true,
+ "engines": {
+ "node": ">=16.14"
+ }
+ },
+ "node_modules/vue-inbrowser-compiler-independent-utils": {
+ "version": "4.71.1",
+ "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-independent-utils/-/vue-inbrowser-compiler-independent-utils-4.71.1.tgz",
+ "integrity": "sha512-K3wt3iVmNGaFEOUR4JIThQRWfqokxLfnPslD41FDZB2ajXp789+wCqJyGYlIFsvEQ2P61PInw6/ph5iiqg51gg==",
+ "dev": true,
+ "peerDependencies": {
+ "vue": ">=2"
+ }
+ },
"node_modules/vue-template-compiler": {
"version": "2.7.14",
"dev": true,
@@ -29578,6 +31073,21 @@
"node": ">=8"
}
},
+ "node_modules/with": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz",
+ "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==",
+ "dev": true,
+ "dependencies": {
+ "@babel/parser": "^7.9.6",
+ "@babel/types": "^7.9.6",
+ "assert-never": "^1.2.1",
+ "babel-walk": "3.0.0-canary-5"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
"node_modules/wordwrap": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
@@ -29902,7 +31412,10 @@
},
"packages/core": {
"name": "@juntossomosmais/atomium",
- "version": "1.15.1"
+ "version": "1.16.0",
+ "devDependencies": {
+ "vue": "^3.4.27"
+ }
},
"packages/icons": {
"name": "@juntossomosmais/atomium-icons"
diff --git a/package.json b/package.json
index fbbd0adc7..4ec87f9af 100644
--- a/package.json
+++ b/package.json
@@ -15,9 +15,10 @@
"utils/*"
],
"scripts": {
- "build": "nx build @juntossomosmais/atomium && nx build @juntossomosmais/atomium-react",
- "docs:build": "nx build @atomium/docs && nx build @atomium/docs-react",
+ "build": "nx build @juntossomosmais/atomium && nx build @juntossomosmais/atomium-react && nx build @juntossomosmais/atomium-vue",
+ "docs:build": "nx build @atomium/docs && nx build @atomium/docs-react && nx build @atomium/docs-vue",
"docs-react:start": "nx run @atomium/docs-react:start",
+ "docs-vue:start": "nx run @atomium/docs-vue:start",
"icons:build": "nx build @juntossomosmais/atomium-icons",
"postinstall": "nx run @juntossomosmais/atomium:prebuild",
"pre-commit": "git rev-parse -q --no-revs --verify MERGE_HEAD || lint-staged",
@@ -55,6 +56,9 @@
"@storybook/react": "^7.6.17",
"@storybook/react-webpack5": "^7.6.17",
"@storybook/theming": "^7.6.17",
+ "@storybook/vue3": "^7.6.6",
+ "@storybook/vue3-vite": "^7.6.6",
+ "@vitejs/plugin-vue": "^4.0.0",
"@storybook/web-components": "^7.6.17",
"@storybook/web-components-webpack5": "^7.6.17",
"@testing-library/jest-dom": "^6.4.4",
@@ -100,6 +104,7 @@
"ts-node": "^10.9.2",
"tslib": "^2.6.2",
"typescript": "^5.4.5",
+ "vite": "^4.1.4",
"vue": "^3.4.26"
},
"lint-staged": {
diff --git a/packages/core/src/components/alert/stories/alert.vue.stories.tsx b/packages/core/src/components/alert/stories/alert.vue.stories.tsx
new file mode 100644
index 000000000..ac185a690
--- /dev/null
+++ b/packages/core/src/components/alert/stories/alert.vue.stories.tsx
@@ -0,0 +1,68 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomAlert } from '@juntossomosmais/atomium/vue'
+
+import { AlertComponentArgs, AlertStoryArgs } from './alert.args'
+
+export default {
+ title: 'Components/Alert',
+ ...AlertStoryArgs,
+} as Meta
+
+const createAlert = (args) => ({
+ components: { AtomAlert },
+ setup() {
+ return { args }
+ },
+ template: `
+
+ `,
+})
+
+export const Default: StoryObj = {
+ render: (args) => createAlert(args),
+ args: {
+ ...AlertComponentArgs,
+ },
+}
+
+export const Info: StoryObj = {
+ render: (args) => createAlert(args),
+ args: {
+ ...AlertComponentArgs,
+ color: 'info',
+ icon: 'account-multiple',
+ },
+}
+
+export const Success: StoryObj = {
+ render: (args) => createAlert(args),
+ args: {
+ ...AlertComponentArgs,
+ color: 'success',
+ icon: 'heart',
+ },
+}
+
+export const Warning: StoryObj = {
+ render: (args) => createAlert(args),
+ args: {
+ ...AlertComponentArgs,
+ color: 'warning',
+ icon: 'alert',
+ },
+}
+
+export const Danger: StoryObj = {
+ render: (args) => createAlert(args),
+ args: {
+ ...AlertComponentArgs,
+ color: 'danger',
+ icon: 'account-multiple',
+ },
+}
diff --git a/packages/core/src/components/badge/stories/badge.vue.stories.tsx b/packages/core/src/components/badge/stories/badge.vue.stories.tsx
new file mode 100644
index 000000000..351806127
--- /dev/null
+++ b/packages/core/src/components/badge/stories/badge.vue.stories.tsx
@@ -0,0 +1,84 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomBadge } from '@juntossomosmais/atomium/vue'
+
+import { BadgeStoryArgs } from './badge.args'
+
+export default {
+ title: 'Components/Badge',
+ ...BadgeStoryArgs,
+} as Meta
+
+const createBadge = (args) => ({
+ components: { AtomBadge },
+ setup() {
+ return { args }
+ },
+ template: `
+ {{ args.label }}
+ `,
+})
+
+export const Primary: StoryObj = {
+ render: (args) => createBadge(args),
+ args: {
+ type: 'primary',
+ label: 'Badge',
+ },
+}
+
+export const Secondary: StoryObj = {
+ render: (args) => createBadge(args),
+ args: {
+ ...Primary.args,
+ type: 'secondary',
+ },
+}
+
+export const Success: StoryObj = {
+ render: (args) => createBadge(args),
+ args: {
+ ...Primary.args,
+ type: 'success',
+ },
+}
+
+export const Warning: StoryObj = {
+ render: (args) => createBadge(args),
+ args: {
+ ...Primary.args,
+ type: 'warning',
+ },
+}
+
+export const Danger: StoryObj = {
+ render: (args) => createBadge(args),
+ args: {
+ ...Primary.args,
+ type: 'danger',
+ },
+}
+
+export const Neutral: StoryObj = {
+ render: (args) => createBadge(args),
+ args: {
+ ...Primary.args,
+ type: 'neutral',
+ },
+}
+
+export const Dark: StoryObj = {
+ render: (args) => createBadge(args),
+ args: {
+ ...Primary.args,
+ type: 'dark',
+ },
+}
+
+export const Info: StoryObj = {
+ render: (args) => createBadge(args),
+ args: {
+ ...Primary.args,
+ type: 'info',
+ },
+}
diff --git a/packages/core/src/components/breadcrumb/stories/breadcrumb.vue.stories.tsx b/packages/core/src/components/breadcrumb/stories/breadcrumb.vue.stories.tsx
new file mode 100644
index 000000000..53f93c459
--- /dev/null
+++ b/packages/core/src/components/breadcrumb/stories/breadcrumb.vue.stories.tsx
@@ -0,0 +1,40 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomBreadcrumb } from '@juntossomosmais/atomium/vue'
+
+import { BreadcrumbStoryArgs } from './breadcrumb.args'
+
+export default {
+ title: 'Components/Breadcrumb',
+ ...BreadcrumbStoryArgs,
+} as Meta
+
+const createBreadcrumb = (args) => ({
+ components: { AtomBreadcrumb },
+ setup() {
+ return { args }
+ },
+ template: ``,
+})
+
+export const Default: StoryObj = {
+ render: (args) => createBreadcrumb(args),
+ args: {
+ items: [
+ {
+ text: 'First level',
+ title: 'Go to first level',
+ redirect: () => console.log('/first'),
+ },
+ {
+ text: 'Intermediary level',
+ title: 'Go to intermediary level',
+ redirect: () => console.log('/intermediary'),
+ },
+ {
+ text: 'Current level',
+ title: 'This is the current level',
+ },
+ ],
+ },
+}
diff --git a/packages/core/src/components/button/stories/button.vue.stories.tsx b/packages/core/src/components/button/stories/button.vue.stories.tsx
new file mode 100644
index 000000000..4679afea8
--- /dev/null
+++ b/packages/core/src/components/button/stories/button.vue.stories.tsx
@@ -0,0 +1,181 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomButton, AtomIcon } from '@juntossomosmais/atomium/vue'
+
+import { ButtonComponentArgs, ButtonStoryArgs } from './button.args'
+
+export default {
+ title: 'Components/Button',
+ ...ButtonStoryArgs,
+} as Meta
+
+const createButton = (args, themeColor = 'light') => ({
+ components: { AtomButton },
+ setup() {
+ return { args, themeColor }
+ },
+ template: `
+
+ `,
+})
+
+export const Primary: StoryObj = {
+ render: (args) => createButton(args),
+ args: {
+ ...ButtonComponentArgs,
+ },
+}
+
+export const Secondary: StoryObj = {
+ render: (args) => createButton(args),
+ args: {
+ ...Primary.args,
+ color: 'secondary',
+ fill: 'outline',
+ },
+}
+
+export const White: StoryObj = {
+ render: (args) => createButton(args, 'dark'),
+ args: {
+ ...Primary.args,
+ color: 'white',
+ fill: 'outline',
+ },
+}
+
+export const Text: StoryObj = {
+ render: (args) => createButton(args),
+ args: {
+ ...Primary.args,
+ color: 'secondary',
+ fill: 'clear',
+ },
+}
+
+export const CircleButton = {
+ render: (args) => ({
+ components: { AtomButton, AtomIcon },
+ setup() {
+ return { args }
+ },
+ template: `
+
+
+
+ `,
+ }),
+ args: {
+ ...Primary.args,
+ color: 'secondary',
+ fill: 'outline',
+ shape: 'circle',
+ },
+}
+
+export const Disabled: StoryObj = {
+ render: (args) => createButton(args),
+ args: {
+ ...Primary.args,
+ disabled: true,
+ },
+}
+
+export const IconAndText = {
+ render: (args) => ({
+ components: { AtomButton, AtomIcon },
+ setup() {
+ return { args }
+ },
+ template: `
+
+
+ {{ args.label }}
+
+ `,
+ }),
+ args: {
+ ...Primary.args,
+ },
+}
+
+export const Link = {
+ render: (args) => ({
+ components: { AtomButton },
+ setup() {
+ return { args }
+ },
+ template: `
+
+ {{ args.label }}
+
+ `,
+ }),
+ argTypes: {
+ href: {
+ options: ['Download', 'Navigate'],
+ mapping: {
+ Download: '/custom/jsm.svg',
+ Navigate: 'https://www.juntossomosmais.com.br',
+ },
+ },
+ download: {
+ control: 'text',
+ },
+ target: {
+ options: ['_blank', '_self', '_parent', '_top'],
+ },
+ },
+ args: {
+ ...Primary.args,
+ href: undefined,
+ download: undefined,
+ target: undefined,
+ },
+}
diff --git a/packages/core/src/components/carousel/stories/carousel.core.stories.tsx b/packages/core/src/components/carousel/stories/carousel.core.stories.tsx
index 48dc74bb4..422284a4a 100644
--- a/packages/core/src/components/carousel/stories/carousel.core.stories.tsx
+++ b/packages/core/src/components/carousel/stories/carousel.core.stories.tsx
@@ -1,6 +1,8 @@
import { Meta, StoryObj } from '@storybook/web-components'
import { html } from 'lit'
+import './carousel.css'
+
import { CarouselComponentArgs, CarouselStoryArgs } from './carousel.args'
export default {
@@ -16,26 +18,14 @@ const createCarousel = (args) => {
has-navigation=${args.hasNavigation}
has-pagination=${args.hasPagination}
>
-
-
- Example 1
-
+
+ Example 1
-
-
- Example 2
-
+
+ Example 2
-
-
- Example 3
-
+
+ Example 3
`
@@ -67,19 +57,11 @@ export const Autoplay: StoryObj = {
export const Thumbnails: StoryObj = {
render: () => html`
-
-
- Example 1
-
+
+ Example 1
-
-
- Example 2
-
+
+ Example 2
diff --git a/packages/core/src/components/carousel/stories/carousel.css b/packages/core/src/components/carousel/stories/carousel.css
new file mode 100644
index 000000000..8e993fa0e
--- /dev/null
+++ b/packages/core/src/components/carousel/stories/carousel.css
@@ -0,0 +1,20 @@
+.slide {
+ align-items: center;
+ background-color: var(--color-brand-primary-regular);
+ color: var(--color-neutral-white);
+ display: flex;
+ height: 300px;
+ justify-content: center;
+}
+
+.slide:nth-child(1) {
+ background-color: var(--color-brand-primary-regular);
+}
+
+.slide:nth-child(2) {
+ background-color: var(--color-brand-secondary-regular);
+}
+
+.slide:nth-child(3) {
+ background-color: var(--color-contextual-success-regular);
+}
diff --git a/packages/core/src/components/carousel/stories/carousel.react.stories.tsx b/packages/core/src/components/carousel/stories/carousel.react.stories.tsx
index d3c6fb32d..3384702cc 100644
--- a/packages/core/src/components/carousel/stories/carousel.react.stories.tsx
+++ b/packages/core/src/components/carousel/stories/carousel.react.stories.tsx
@@ -2,6 +2,8 @@ import { AtomCarousel, AtomCarouselItem } from '@juntossomosmais/atomium/react'
import { Meta, StoryObj } from '@storybook/react'
import React from 'react'
+import './carousel.css'
+
import { CarouselComponentArgs, CarouselStoryArgs } from './carousel.args'
export default {
@@ -17,47 +19,14 @@ const createCarousel = (args) => (
hasNavigation={args.hasNavigation}
hasPagination={args.hasPagination}
>
-
-
- Example 1
-
+
+ Example 1
-
-
- Example 2
-
+
+ Example 2
-
-
- Example 3
-
+
+ Example 3
)
@@ -93,33 +62,11 @@ export const Thumbnails = () => {
return (
-
-
- Example 1
-
+
+ Example 1
-
-
- Example 2
-
+
+ Example 2
)
diff --git a/packages/core/src/components/carousel/stories/carousel.vue.stories.tsx b/packages/core/src/components/carousel/stories/carousel.vue.stories.tsx
new file mode 100644
index 000000000..5dee4afa6
--- /dev/null
+++ b/packages/core/src/components/carousel/stories/carousel.vue.stories.tsx
@@ -0,0 +1,96 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomCarousel, AtomCarouselItem } from '@juntossomosmais/atomium/vue'
+
+import './carousel.css'
+
+import { CarouselComponentArgs, CarouselStoryArgs } from './carousel.args'
+
+export default {
+ title: 'Components/Carousel',
+ ...CarouselStoryArgs,
+} as Meta
+
+const createCarousel = (args) => ({
+ components: { AtomCarousel, AtomCarouselItem },
+ setup() {
+ return { args }
+ },
+ template: `
+
+
+
+ Example 1
+
+
+
+
+ Example 2
+
+
+
+
+ Example 3
+
+
+
+ `,
+})
+
+export const Default: StoryObj = {
+ render: (args) => createCarousel(args),
+ args: {
+ ...CarouselComponentArgs,
+ },
+}
+
+export const Loop: StoryObj = {
+ render: (args) => createCarousel(args),
+ args: {
+ ...CarouselComponentArgs,
+ loop: true,
+ },
+}
+
+export const Autoplay: StoryObj = {
+ render: (args) => createCarousel(args),
+ args: {
+ ...CarouselComponentArgs,
+ autoplay: 3000,
+ },
+}
+
+const createCarouselWithThumbnails = () => ({
+ components: { AtomCarousel, AtomCarouselItem },
+ data() {
+ return {
+ thumbnails: [
+ 'https://via.placeholder.com/50',
+ 'https://via.placeholder.com/50',
+ ],
+ }
+ },
+ template: `
+
+
+
+ Example 1
+
+
+
+
+ Example 2
+
+
+
+ `,
+})
+
+export const Thumbnails = () => {
+ return createCarouselWithThumbnails()
+}
diff --git a/packages/core/src/components/chip/stories/chip.vue.stories.tsx b/packages/core/src/components/chip/stories/chip.vue.stories.tsx
new file mode 100644
index 000000000..f655eb0a3
--- /dev/null
+++ b/packages/core/src/components/chip/stories/chip.vue.stories.tsx
@@ -0,0 +1,69 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomChip } from '@juntossomosmais/atomium/vue'
+
+import { ChipComponentArgs, ChipStoryArgs } from './chip.args'
+
+export default {
+ title: 'Components/Chip',
+ ...ChipStoryArgs,
+} as Meta
+
+const createChip = (args) => ({
+ components: { AtomChip },
+ setup() {
+ return { args }
+ },
+ template: `
+
+ {{ args.label }}
+
+ `,
+})
+
+export const Default: StoryObj = {
+ render: (args) => createChip(args),
+ args: {
+ ...ChipComponentArgs,
+ },
+}
+
+export const Disabled: StoryObj = {
+ render: (args) => createChip(args),
+ args: {
+ ...ChipComponentArgs,
+ disabled: true,
+ },
+}
+
+export const Activated: StoryObj = {
+ render: (args) => createChip(args),
+ args: {
+ ...ChipComponentArgs,
+ activated: true,
+ },
+}
+
+export const WithIcon: StoryObj = {
+ render: (args) => createChip(args),
+ args: {
+ ...ChipComponentArgs,
+ icon: 'check',
+ },
+}
+
+export const WithClose: StoryObj = {
+ render: (args) => createChip(args),
+ args: {
+ ...ChipComponentArgs,
+ close: true,
+ },
+}
diff --git a/packages/core/src/components/grid/stories/grid.args.ts b/packages/core/src/components/grid/stories/grid.args.ts
index f9ac9b9c1..ad12f1c37 100644
--- a/packages/core/src/components/grid/stories/grid.args.ts
+++ b/packages/core/src/components/grid/stories/grid.args.ts
@@ -1,6 +1,6 @@
+import { Category } from '@atomium/storybook-utils/enums/table'
import { withActions } from '@storybook/addon-actions/decorator'
-import { Category } from '@atomium/storybook-utils/enums/table'
export const GridStoryArgs = {
decorators: [withActions],
@@ -59,16 +59,3 @@ export const GridStoryArgs = {
},
},
}
-
-export const GridCSS = `
- .col > div {
- box-shadow:
- 0px 2px 1px -1px var(--color-neutral-light-3),
- 0px 1px 2px 0px var(--color-neutral-light-4),
- 0px 1px 3px 0px var(--color-neutral-light-4);
- border-radius: var(--border-radius);
- color: var(--color-neutral-light-2);
- padding: var(--spacing-xsmall);
- text-align: center;
- }
-`
diff --git a/packages/core/src/components/grid/stories/grid.core.stories.tsx b/packages/core/src/components/grid/stories/grid.core.stories.tsx
index 64053e351..fae844dc7 100644
--- a/packages/core/src/components/grid/stories/grid.core.stories.tsx
+++ b/packages/core/src/components/grid/stories/grid.core.stories.tsx
@@ -1,8 +1,9 @@
import { Meta, StoryObj } from '@storybook/web-components'
-
import { html } from 'lit'
-import { GridCSS, GridStoryArgs } from './grid.args'
+import { GridStoryArgs } from './grid.args'
+
+import './grid.css'
export default {
title: 'Components/Grid',
@@ -34,10 +35,6 @@ export const Default: StoryObj = {
size=8 & size-md=6
-
-
`,
}
@@ -63,10 +60,6 @@ export const AutoSize: StoryObj = {
size=auto
-
-
`,
}
@@ -94,10 +87,6 @@ export const Offset: StoryObj = {
2
-
-
`,
}
@@ -119,9 +108,5 @@ export const PushAndPull: StoryObj = {
3
-
-
`,
}
diff --git a/packages/core/src/components/grid/stories/grid.css b/packages/core/src/components/grid/stories/grid.css
new file mode 100644
index 000000000..7f064458b
--- /dev/null
+++ b/packages/core/src/components/grid/stories/grid.css
@@ -0,0 +1,10 @@
+.col > div {
+ border-radius: var(--border-radius);
+ box-shadow:
+ 0 2px 1px -1px var(--color-neutral-light-3),
+ 0 1px 2px 0 var(--color-neutral-light-4),
+ 0 1px 3px 0 var(--color-neutral-light-4);
+ color: var(--color-neutral-light-2);
+ padding: var(--spacing-xsmall);
+ text-align: center;
+}
diff --git a/packages/core/src/components/grid/stories/grid.react.stories.tsx b/packages/core/src/components/grid/stories/grid.react.stories.tsx
index d98b7caf9..4287f7c45 100644
--- a/packages/core/src/components/grid/stories/grid.react.stories.tsx
+++ b/packages/core/src/components/grid/stories/grid.react.stories.tsx
@@ -1,9 +1,11 @@
+import { AtomCol, AtomGrid } from '@juntossomosmais/atomium/react'
import { Meta, StoryObj } from '@storybook/react'
import React from 'react'
-import { AtomCol, AtomGrid } from '@juntossomosmais/atomium/react'
-import { GridCSS, GridStoryArgs } from './grid.args'
+import { GridStoryArgs } from './grid.args'
+
+import './grid.css'
export default {
title: 'Components/Grid',
@@ -37,8 +39,6 @@ export const Default: StoryObj = {
size=8 & sizeMd=6
-
-
),
}
@@ -66,8 +66,6 @@ export const AutoSize: StoryObj = {
size=auto
-
-
),
}
@@ -101,8 +99,6 @@ export const Offset: StoryObj = {
2
-
-
),
}
@@ -126,8 +122,6 @@ export const PushAndPull: StoryObj = {
3
-
-
),
}
diff --git a/packages/core/src/components/grid/stories/grid.vue.stories.tsx b/packages/core/src/components/grid/stories/grid.vue.stories.tsx
new file mode 100644
index 000000000..59b3ad1e1
--- /dev/null
+++ b/packages/core/src/components/grid/stories/grid.vue.stories.tsx
@@ -0,0 +1,137 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomCol, AtomGrid } from '@juntossomosmais/atomium/vue'
+
+import { GridStoryArgs } from './grid.args'
+
+import './grid.css'
+
+export default {
+ title: 'Components/Grid',
+ ...GridStoryArgs,
+} as Meta
+
+export const Default: StoryObj = {
+ render: () => ({
+ components: { AtomGrid, AtomCol },
+ template: `
+
+
+
+ size=8
+
+
+ size=6 & sizeMd=4
+
+
+ size=4 & sizeMd=4
+
+
+ size=8 & sizeMd=6
+
+
+ size=8 & sizeMd=10
+
+
+ size=8 & sizeMd=10
+
+
+ size=8 & sizeMd=6
+
+
+
+ `,
+ }),
+}
+
+export const AutoSize: StoryObj = {
+ render: () => ({
+ components: { AtomGrid, AtomCol },
+ template: `
+
+
+
+ size=auto
+
+
+ size=auto
+
+
+ default
+
+
+ default
+
+
+ size=auto
+
+
+ size=auto
+
+
+
+ `,
+ }),
+}
+
+export const Offset: StoryObj = {
+ render: () => ({
+ components: { AtomGrid, AtomCol },
+ template: `
+
+
+ Column 2 has offset
set to "3"
+
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+
+
+ Column 1 has offset
set to "4"
+
+
+
+ 1
+
+
+ 2
+
+
+
+ `,
+ }),
+}
+
+export const PushAndPull: StoryObj = {
+ render: () => ({
+ components: { AtomGrid, AtomCol },
+ template: `
+
+
+ Column 1 has push
set to "4"
and
+ column 2 has pull
set to "4"
+
+
+
+
+ 1
+
+
+ 2
+
+
+ 3
+
+
+
+ `,
+ }),
+}
diff --git a/packages/core/src/components/icon/stories/icon.vue.stories.tsx b/packages/core/src/components/icon/stories/icon.vue.stories.tsx
new file mode 100644
index 000000000..e33e1ba0d
--- /dev/null
+++ b/packages/core/src/components/icon/stories/icon.vue.stories.tsx
@@ -0,0 +1,32 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomIcon } from '@juntossomosmais/atomium/vue'
+
+import { IconComponentArgs, IconStoryArgs } from './icon.args'
+
+export default {
+ title: 'Components/Icon',
+ component: AtomIcon,
+ ...IconStoryArgs,
+} as Meta
+
+const createIcon = (args) => ({
+ components: { AtomIcon },
+ setup() {
+ return { args }
+ },
+ template: `
+
+ `,
+})
+
+export const Default: StoryObj = {
+ render: (args) => createIcon(args),
+ args: {
+ ...IconComponentArgs,
+ },
+}
diff --git a/packages/core/src/components/input/stories/input.args.ts b/packages/core/src/components/input/stories/input.args.ts
index 34ae21804..3058514b2 100644
--- a/packages/core/src/components/input/stories/input.args.ts
+++ b/packages/core/src/components/input/stories/input.args.ts
@@ -312,4 +312,6 @@ export const InputComponentArgs = {
clearInput: false,
readonly: false,
passwordToggle: false,
+ value: '',
+ helperText: '',
}
diff --git a/packages/core/src/components/input/stories/input.vue.stories.tsx b/packages/core/src/components/input/stories/input.vue.stories.tsx
new file mode 100644
index 000000000..8452c877f
--- /dev/null
+++ b/packages/core/src/components/input/stories/input.vue.stories.tsx
@@ -0,0 +1,112 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomInput } from '@juntossomosmais/atomium/vue'
+
+import { ref } from 'vue'
+
+import { InputComponentArgs, InputStoryArgs } from './input.args'
+
+export default {
+ title: 'Components/Input',
+ ...InputStoryArgs,
+} as Meta
+
+const createInput = (args) => ({
+ components: { AtomInput },
+ setup() {
+ return { args }
+ },
+ template: `
+
+ `,
+})
+
+export const Default: StoryObj = {
+ render: (args) => createInput(args),
+ args: {
+ ...InputComponentArgs,
+ },
+}
+
+export const Password: StoryObj = {
+ render: (args) => createInput(args),
+ args: {
+ ...InputComponentArgs,
+ type: 'password',
+ passwordToggle: true,
+ },
+}
+
+export const Disabled: StoryObj = {
+ render: (args) => createInput(args),
+ args: {
+ ...InputComponentArgs,
+ disabled: true,
+ },
+}
+
+export const InputIcon: StoryObj = {
+ render: (args) => createInput(args),
+ args: {
+ ...InputComponentArgs,
+ icon: 'magnify',
+ },
+}
+
+export const HelperText: StoryObj = {
+ render: (args) => createInput(args),
+ args: {
+ ...InputComponentArgs,
+ helperText: 'This is a helper text example',
+ },
+}
+
+export const ErrorState = {
+ render: () => ({
+ components: { AtomInput },
+ setup() {
+ const hasError = ref(false)
+
+ const validateEmail = (email) => {
+ return email.match(/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$/)
+ }
+
+ const validate = (value) => {
+ hasError.value = false
+
+ if (value === '') return
+
+ return validateEmail(value)
+ ? (hasError.value = false)
+ : (hasError.value = true)
+ }
+
+ return { hasError, validate }
+ },
+ template: `
+
+ `,
+ }),
+}
diff --git a/packages/core/src/components/select/stories/select.args.ts b/packages/core/src/components/select/stories/select.args.ts
index 4cd6932b1..0d2cc8665 100644
--- a/packages/core/src/components/select/stories/select.args.ts
+++ b/packages/core/src/components/select/stories/select.args.ts
@@ -163,4 +163,8 @@ export const SelectComponentArgs = {
placeholder: 'Select an option',
mode: 'md',
fill: 'solid',
+ value: '',
+ icon: '',
+ helperText: '',
+ errorText: '',
}
diff --git a/packages/core/src/components/select/stories/select.vue.stories.tsx b/packages/core/src/components/select/stories/select.vue.stories.tsx
new file mode 100644
index 000000000..97c79e954
--- /dev/null
+++ b/packages/core/src/components/select/stories/select.vue.stories.tsx
@@ -0,0 +1,87 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomSelect } from '@juntossomosmais/atomium/vue'
+
+import { SelectComponentArgs, SelectStoryArgs } from './select.args'
+
+export default {
+ title: 'Components/Select',
+ ...SelectStoryArgs,
+} as Meta
+
+const createSelect = (args) => ({
+ components: { AtomSelect },
+ setup() {
+ return { args }
+ },
+ template: `
+
+ `,
+})
+
+export const Default: StoryObj = {
+ render: (args) => createSelect(args),
+ args: {
+ ...SelectComponentArgs,
+ },
+}
+
+export const Disabled: StoryObj = {
+ render: (args) => createSelect(args),
+ args: {
+ ...SelectComponentArgs,
+ disabled: true,
+ },
+}
+
+export const SelectIcon: StoryObj = {
+ render: (args) => createSelect(args),
+ args: {
+ ...SelectComponentArgs,
+ icon: 'account-multiple',
+ },
+}
+
+export const HelperText: StoryObj = {
+ render: (args) => createSelect(args),
+ args: {
+ ...SelectComponentArgs,
+ helperText: 'Example of helper text',
+ },
+}
+
+export const ErrorText: StoryObj = {
+ render: (args) => createSelect(args),
+ args: {
+ ...SelectComponentArgs,
+ errorText: 'Example of error text',
+ },
+}
+
+export const Multiple: StoryObj = {
+ render: (args) => createSelect(args),
+ args: {
+ ...SelectComponentArgs,
+ multiple: true,
+ },
+}
diff --git a/packages/core/src/components/tag/stories/tag.vue.stories.tsx b/packages/core/src/components/tag/stories/tag.vue.stories.tsx
new file mode 100644
index 000000000..b2a96cb55
--- /dev/null
+++ b/packages/core/src/components/tag/stories/tag.vue.stories.tsx
@@ -0,0 +1,145 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomTag } from '@juntossomosmais/atomium/vue'
+
+import { TagStoryArgs } from './tag.args'
+
+export default {
+ title: 'Components/Tag',
+ ...TagStoryArgs,
+} as Meta
+
+const createTag = (args) => ({
+ components: { AtomTag },
+ setup() {
+ return { args }
+ },
+ template: `
+
+ {{ args.label }}
+
+ `,
+})
+
+export const Success: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'success',
+ label: 'Promotion',
+ icon: '',
+ },
+}
+
+export const SuccessWithIcon: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'success',
+ label: 'Promotion',
+ icon: 'tag',
+ },
+}
+
+export const Danger: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'danger',
+ label: 'Canceled',
+ icon: '',
+ },
+}
+
+export const DangerWithIcon: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'danger',
+ label: 'Canceled',
+ icon: 'close-circle-outline',
+ },
+}
+
+export const Warning: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'warning',
+ label: 'In Progress',
+ icon: '',
+ },
+}
+
+export const WarningWithIcon: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'warning',
+ label: 'In Progress',
+ icon: 'timer-outline',
+ },
+}
+
+export const Info: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'info',
+ label: 'Partial Delivery',
+ icon: '',
+ },
+}
+
+export const InfoWithIcon: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'info',
+ label: 'Partial Delivery',
+ icon: 'truck',
+ },
+}
+
+export const Dark: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'dark',
+ label: 'Most rescued',
+ icon: '',
+ },
+}
+
+export const DarkWithIcon: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'dark',
+ label: 'Most rescued',
+ icon: 'wallet-giftcard',
+ },
+}
+
+export const Light: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'light',
+ label: 'More Points',
+ icon: '',
+ },
+}
+
+export const LightWithIcon: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ color: 'light',
+ label: 'More Points',
+ icon: 'plus-thick',
+ },
+}
+
+export const CustomColor: StoryObj = {
+ render: (args) => createTag(args),
+ args: {
+ label: 'Most Loved',
+ icon: 'heart',
+ customBackgroundColor: '#a006fa',
+ customTextColor: '#00ff95',
+ },
+}
diff --git a/packages/core/src/components/textarea/stories/textarea.args.ts b/packages/core/src/components/textarea/stories/textarea.args.ts
index 3da50d3f4..a54ffb85d 100644
--- a/packages/core/src/components/textarea/stories/textarea.args.ts
+++ b/packages/core/src/components/textarea/stories/textarea.args.ts
@@ -271,5 +271,7 @@ export const TextareaComponentArgs = {
mode: 'md',
disabled: false,
readonly: false,
- autoGrow: false,
+ value: '',
+ helperText: '',
+ icon: '',
}
diff --git a/packages/core/src/components/textarea/stories/textarea.vue.stories.tsx b/packages/core/src/components/textarea/stories/textarea.vue.stories.tsx
new file mode 100644
index 000000000..1cb80c02d
--- /dev/null
+++ b/packages/core/src/components/textarea/stories/textarea.vue.stories.tsx
@@ -0,0 +1,126 @@
+import { Meta, StoryObj } from '@storybook/vue3'
+
+import { AtomTextarea } from '@juntossomosmais/atomium/vue'
+
+import { ref } from 'vue'
+
+import { TextareaComponentArgs, TextareaStoryArgs } from './textarea.args'
+
+export default {
+ title: 'Components/Textarea',
+ ...TextareaStoryArgs,
+} as Meta
+
+const createTextarea = (args) => ({
+ components: { AtomTextarea },
+ setup() {
+ return { args }
+ },
+ template: `
+
+ `,
+})
+
+export const Default: StoryObj = {
+ render: (args) => createTextarea(args),
+ args: {
+ ...TextareaComponentArgs,
+ },
+}
+
+export const Disabled: StoryObj = {
+ render: (args) => createTextarea(args),
+ args: {
+ ...TextareaComponentArgs,
+ disabled: true,
+ },
+}
+
+export const TextareaIcon: StoryObj = {
+ render: (args) => createTextarea(args),
+ args: {
+ ...TextareaComponentArgs,
+ icon: 'account-multiple',
+ },
+}
+
+export const HelperText: StoryObj = {
+ render: (args) => createTextarea(args),
+ args: {
+ ...TextareaComponentArgs,
+ helperText: 'This is a helper text example',
+ },
+}
+
+export const ErrorState = {
+ render: () => ({
+ components: { AtomTextarea },
+ setup() {
+ const hasError = ref(false)
+
+ const validateEmail = (email) => {
+ return email.match(/[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}$/)
+ }
+
+ const validate = (value) => {
+ hasError.value = false
+
+ if (value === '') return
+
+ return validateEmail(value)
+ ? (hasError.value = false)
+ : (hasError.value = true)
+ }
+
+ return { hasError, validate }
+ },
+ template: `
+
+ `,
+ }),
+}
+
+export const WithCounter: StoryObj = {
+ render: () => ({
+ components: { AtomTextarea },
+ methods: {
+ counterFormatter(inputLength, maxLength) {
+ return `${inputLength}/300`
+ },
+ },
+ template: `
+
+ `,
+ }),
+}
diff --git a/packages/core/stencil.config.ts b/packages/core/stencil.config.ts
index c3d251131..e708c359c 100644
--- a/packages/core/stencil.config.ts
+++ b/packages/core/stencil.config.ts
@@ -6,6 +6,103 @@ import { vueOutputTarget } from '@stencil/vue-output-target'
import { reactBooleanFixOutputTarget } from './output-target/react-boolean'
+// Since Ionic components are imported in `global.ts`
+// we need to exclude them here to avoid unnecessary imports in the React and Vue output module
+const excludeComponents = [
+ 'ion-accordion',
+ 'ion-accordion-group',
+ 'ion-action-sheet',
+ 'ion-alert',
+ 'ion-app',
+ 'ion-avatar',
+ 'ion-back-button',
+ 'ion-backdrop',
+ 'ion-badge',
+ 'ion-breadcrumb',
+ 'ion-breadcrumbs',
+ 'ion-button',
+ 'ion-buttons',
+ 'ion-card',
+ 'ion-card-content',
+ 'ion-card-header',
+ 'ion-card-subtitle',
+ 'ion-card-title',
+ 'ion-checkbox',
+ 'ion-chip',
+ 'ion-col',
+ 'ion-content',
+ 'ion-datetime',
+ 'ion-datetime-button',
+ 'ion-fab',
+ 'ion-fab-button',
+ 'ion-fab-list',
+ 'ion-footer',
+ 'ion-grid',
+ 'ion-header',
+ 'ion-icon',
+ 'ion-img',
+ 'ion-infinite-scroll',
+ 'ion-infinite-scroll-content',
+ 'ion-input',
+ 'ion-item',
+ 'ion-item-divider',
+ 'ion-item-group',
+ 'ion-item-option',
+ 'ion-item-options',
+ 'ion-item-sliding',
+ 'ion-label',
+ 'ion-list',
+ 'ion-list-header',
+ 'ion-loading',
+ 'ion-menu',
+ 'ion-menu-button',
+ 'ion-menu-toggle',
+ 'ion-modal',
+ 'ion-nav',
+ 'ion-nav-link',
+ 'ion-note',
+ 'ion-picker',
+ 'ion-picker-column',
+ 'ion-picker-column-internal',
+ 'ion-picker-internal',
+ 'ion-popover',
+ 'ion-progress-bar',
+ 'ion-radio',
+ 'ion-radio-group',
+ 'ion-range',
+ 'ion-refresher',
+ 'ion-refresher-content',
+ 'ion-reorder',
+ 'ion-reorder-group',
+ 'ion-ripple-effect',
+ 'ion-route',
+ 'ion-route-redirect',
+ 'ion-router',
+ 'ion-router-link',
+ 'ion-router-outlet',
+ 'ion-row',
+ 'ion-searchbar',
+ 'ion-segment',
+ 'ion-segment-button',
+ 'ion-select',
+ 'ion-select-option',
+ 'ion-select-popover',
+ 'ion-skeleton-text',
+ 'ion-spinner',
+ 'ion-split-pane',
+ 'ion-tab',
+ 'ion-tab-bar',
+ 'ion-tab-button',
+ 'ion-tabs',
+ 'ion-text',
+ 'ion-textarea',
+ 'ion-thumbnail',
+ 'ion-title',
+ 'ion-toast',
+ 'ion-toggle',
+ 'ion-toolbar',
+]
+
export const config: Config = {
namespace: 'core',
plugins: [
@@ -28,108 +125,14 @@ export const config: Config = {
proxiesFile: '../vue/src/components/index.ts',
includeDefineCustomElements: true,
includePolyfills: true,
+ excludeComponents,
}),
reactOutputTarget({
componentCorePackage: '@juntossomosmais/atomium',
proxiesFile: '../react/src/components/index.ts',
includeDefineCustomElements: true,
includePolyfills: true,
- // Since Ionic components are imported in `global.ts`
- // we need to exclude them here to avoid unnecessary imports in the React output module
- excludeComponents: [
- 'ion-accordion',
- 'ion-accordion-group',
- 'ion-action-sheet',
- 'ion-alert',
- 'ion-app',
- 'ion-avatar',
- 'ion-back-button',
- 'ion-backdrop',
- 'ion-badge',
- 'ion-breadcrumb',
- 'ion-breadcrumbs',
- 'ion-button',
- 'ion-buttons',
- 'ion-card',
- 'ion-card-content',
- 'ion-card-header',
- 'ion-card-subtitle',
- 'ion-card-title',
- 'ion-checkbox',
- 'ion-chip',
- 'ion-col',
- 'ion-content',
- 'ion-datetime',
- 'ion-datetime-button',
- 'ion-fab',
- 'ion-fab-button',
- 'ion-fab-list',
- 'ion-footer',
- 'ion-grid',
- 'ion-header',
- 'ion-icon',
- 'ion-img',
- 'ion-infinite-scroll',
- 'ion-infinite-scroll-content',
- 'ion-input',
- 'ion-item',
- 'ion-item-divider',
- 'ion-item-group',
- 'ion-item-option',
- 'ion-item-options',
- 'ion-item-sliding',
- 'ion-label',
- 'ion-list',
- 'ion-list-header',
- 'ion-loading',
- 'ion-menu',
- 'ion-menu-button',
- 'ion-menu-toggle',
- 'ion-modal',
- 'ion-nav',
- 'ion-nav-link',
- 'ion-note',
- 'ion-picker',
- 'ion-picker-column',
- 'ion-picker-column-internal',
- 'ion-picker-internal',
- 'ion-popover',
- 'ion-progress-bar',
- 'ion-radio',
- 'ion-radio-group',
- 'ion-range',
- 'ion-refresher',
- 'ion-refresher-content',
- 'ion-reorder',
- 'ion-reorder-group',
- 'ion-ripple-effect',
- 'ion-route',
- 'ion-route-redirect',
- 'ion-router',
- 'ion-router-link',
- 'ion-router-outlet',
- 'ion-row',
- 'ion-searchbar',
- 'ion-segment',
- 'ion-segment-button',
- 'ion-select',
- 'ion-select-option',
- 'ion-select-popover',
- 'ion-skeleton-text',
- 'ion-spinner',
- 'ion-split-pane',
- 'ion-tab',
- 'ion-tab-bar',
- 'ion-tab-button',
- 'ion-tabs',
- 'ion-text',
- 'ion-textarea',
- 'ion-thumbnail',
- 'ion-title',
- 'ion-toast',
- 'ion-toggle',
- 'ion-toolbar',
- ],
+ excludeComponents,
}),
reactBooleanFixOutputTarget({
attachPropsFile:
diff --git a/packages/vue/README.md b/packages/vue/README.md
index ed5ccf1c4..b501fee73 100644
--- a/packages/vue/README.md
+++ b/packages/vue/README.md
@@ -1,8 +1,6 @@
# Atomium - Vue
-๐ง **This is a work in progress** ๐ง
-
-[Vue Integration of Stencil](https://stenciljs.com/docs/vue) just works with Vue 3. If you want to use Vue 2, please use the Web Components implementation of Atomium.
+This is the Vue transpiled implementation of the Atomium design system to be used in Vue projects
## Getting Started
@@ -17,24 +15,9 @@ npm i @juntossomosmais/atomium
```jsx
import '@juntossomosmais/atomium/core.css'
-import {
- applyPolyfills,
- defineCustomElements,
-} from '@juntossomosmais/atomium/loader'
-
-applyPolyfills().then(() => defineCustomElements(window))
-
-Click me
-```
-
-## Vue 2
-
-For Vue 2, a configuration is need in order to avoid the warning about unknown component. Add the below code to your Vue initialization:
+import { AtomButton } from '@juntossomosmais/atomium/vue'
-```js
-Vue.config.ignoredElements = [
- /^atom-/
-]
+Click me
```
-The setting is explained at the [Vue docs](https://v2.vuejs.org/v2/api/#ignoredElements), the same doc exists for [Vue 3](https://vuejs.org/guide/extras/web-components.html#using-custom-elements-in-vue), but no worries, Stencil integrations just handle everything.
+You could check the Vue components transpiled of Stencil in [Vue Stories](https://juntossomosmais.github.io/atomium/?path=/docs/Vue_introduction--docs)
diff --git a/packages/vue/package.json b/packages/vue/package.json
index 6d307f9d5..bcd6bd3b1 100644
--- a/packages/vue/package.json
+++ b/packages/vue/package.json
@@ -2,8 +2,39 @@
"name": "@juntossomosmais/atomium-vue",
"description": "Vue transpiled for Atomium",
"private": true,
- "type": "module",
"main": "dist/index.js",
- "module": "dist/index.js",
- "types": "dist/types/index.d.ts"
+ "types": "dist/index.d.ts",
+ "files": [
+ "dist/"
+ ],
+ "scripts": {
+ "start": "tsc -p . --watch",
+ "build": "nx build @juntossomosmais/atomium && npm run compile && npm run copy",
+ "compile": "tsc --outDir ../core/vue/dist --declarationDir ../core/vue/dist/types",
+ "copy": "npx copyfiles --flat ./package.json ../core/vue"
+ },
+ "nx": {
+ "targets": {
+ "build": {
+ "dependsOn": [
+ {
+ "projects": [
+ "@juntossomosmais/atomium"
+ ],
+ "target": "build"
+ }
+ ]
+ },
+ "start": {
+ "dependsOn": [
+ {
+ "projects": [
+ "@juntossomosmais/atomium"
+ ],
+ "target": "build"
+ }
+ ]
+ }
+ }
+ }
}
diff --git a/packages/vue/src/index.ts b/packages/vue/src/index.ts
index cb64ac1b5..e59f61ee0 100644
--- a/packages/vue/src/index.ts
+++ b/packages/vue/src/index.ts
@@ -1 +1,2 @@
export * from './components'
+export * from './plugin'
diff --git a/packages/vue/src/plugin.ts b/packages/vue/src/plugin.ts
new file mode 100644
index 000000000..2ed0b5f84
--- /dev/null
+++ b/packages/vue/src/plugin.ts
@@ -0,0 +1,13 @@
+import {
+ applyPolyfills,
+ defineCustomElements,
+} from '@juntossomosmais/atomium/loader'
+import { Plugin } from 'vue'
+
+export const ComponentLibrary: Plugin = {
+ async install() {
+ applyPolyfills().then(() => {
+ defineCustomElements()
+ })
+ },
+}
diff --git a/packages/vue/tsconfig.json b/packages/vue/tsconfig.json
index c918a7ba9..b794d7142 100644
--- a/packages/vue/tsconfig.json
+++ b/packages/vue/tsconfig.json
@@ -1,15 +1,22 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
- "rootDir": "src",
- "outDir": "../core/vue",
+ "declaration": true,
+ "declarationDir": "dist/types",
+ "emitDecoratorMetadata": true,
+ "experimentalDecorators": true,
"lib": ["dom", "es2020"],
"module": "es2015",
"moduleResolution": "node",
- "target": "es2017",
+ "noImplicitAny": false,
+ "noLib": false,
+ "rootDir": "src",
+ "outDir": "dist",
+ "removeComments": true,
"skipLibCheck": true,
- "declarationDir": "../core/vue/types"
+ "sourceMap": true,
+ "target": "es2017"
},
- "include": ["src"],
+ "include": ["src/**/*.ts"],
"exclude": ["node_modules"]
}