From 03e842b13569610ac252d07ad78dffe35a480c50 Mon Sep 17 00:00:00 2001 From: "eric.crowell" Date: Fri, 28 Jun 2024 20:05:38 +0200 Subject: [PATCH] dev: Now fully utilizing React Server Components --- .storybook/main.ts | 44 +++- .storybook/preview.tsx | 31 +-- .storybook/provider.tsx | 10 + package.json | 28 +-- packages/ui/package.json | 5 +- packages/ui/src/widgets.ts | 3 +- .../ui/src/widgets/Brand/Brand.stories.tsx | 4 +- packages/ui/src/widgets/Brand/Brand.tsx | 20 +- .../ui/src/widgets/Header/Header.stories.tsx | 31 ++- .../ui/src/widgets/Header/Header.types.ts | 6 + .../ui/src/widgets/Header/HeaderExtended.tsx | 14 +- pnpm-lock.yaml | 228 ++++++------------ 12 files changed, 219 insertions(+), 205 deletions(-) create mode 100644 .storybook/provider.tsx diff --git a/.storybook/main.ts b/.storybook/main.ts index 44ce019..6b0f08f 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -1,25 +1,57 @@ -import type { StorybookConfig } from '@storybook/react-vite'; -// import { resolve } from 'node:path'; -// import { mergeConfig } from 'vite'; +import type { StorybookConfig } from '@storybook/nextjs'; +import { resolve } from 'node:path'; +import { globSync } from 'glob'; + +const tsFiles = globSync(resolve(__dirname, '../packages/ui/src/*.ts')); +const tsFilesObject = tsFiles.reduce((acc, filePath) => { + const fileName = filePath.split('/').pop()?.replace('.ts', ''); + if (fileName) { + acc[`@do-ob/ui/${fileName}`] = filePath; + } + return acc; +}, {}); const config: StorybookConfig = { stories: [ '../packages/ui/src/**/*.stories.@(js|jsx|mjs|ts|tsx)' ], + addons: [ '@storybook/addon-links', '@storybook/addon-essentials', '@storybook/addon-interactions', '@storybook/addon-a11y', '@storybook/addon-themes', + '@chromatic-com/storybook' ], + framework: { name: '@storybook/nextjs', - options: { - }, + options: {}, }, + features: { experimentalRSC: true, - } + }, + + docs: {}, + + typescript: { + reactDocgen: 'react-docgen-typescript' + }, + + webpackFinal: async (config) => { + if (config.resolve) { + config.resolve.alias = { + ...config.resolve.alias, + // 👇 Internal modules + ...tsFilesObject, + }; + } + + return config; + }, + }; + export default config; diff --git a/.storybook/preview.tsx b/.storybook/preview.tsx index 83c4a55..a6b17c8 100644 --- a/.storybook/preview.tsx +++ b/.storybook/preview.tsx @@ -1,7 +1,6 @@ -import React from 'react'; import type { Preview } from '@storybook/react'; -import { withThemeByClassName } from '@storybook/addon-themes'; -import { DoobUiProvider } from '../packages/ui/src/provider'; +// import { withThemeByClassName } from '@storybook/addon-themes'; +import { withDoob } from './provider'; import '../global.css'; const preview: Preview = { @@ -12,24 +11,20 @@ const preview: Preview = { date: /Date$/i, }, }, - } + }, + + // tags: [ 'autodocs' ] }; export const decorators = [ - withThemeByClassName({ - themes: { - light: 'light', - dark: 'dark', - }, - defaultTheme: 'light', - }), - (Story) => ( - { history.pushState({}, '', path); }}> -
- -
-
- ), + // withThemeByClassName({ + // themes: { + // light: 'light', + // dark: 'dark', + // }, + // defaultTheme: 'light', + // }), + withDoob, ]; export default preview; diff --git a/.storybook/provider.tsx b/.storybook/provider.tsx new file mode 100644 index 0000000..7908c62 --- /dev/null +++ b/.storybook/provider.tsx @@ -0,0 +1,10 @@ +import React from 'react'; +import { DoobUiProvider } from '../packages/ui/src/provider'; + +export const withDoob = (Story) => ( + { history.pushState({}, '', path); }}> +
+ {Story()} +
+
+); diff --git a/package.json b/package.json index 2a91a16..cc9c886 100644 --- a/package.json +++ b/package.json @@ -1,13 +1,10 @@ { - "name": "@do-ob/ui", + "name": "do-ob", "private": true, "version": "0.0.0", "description": "do-ob workspace for mild components", "packageManager": "pnpm@9.2.0", "type": "module", - "exports": { - ".": "./packages/ui/src/index.ts" - }, "scripts": { "build": "pnpm --filter './packages/*' build", "watch": "pnpm --filter './packages/*' watch", @@ -20,22 +17,22 @@ "author": "", "license": "MIT", "devDependencies": { + "@chromatic-com/storybook": "^1", "@do-ob/core": "^1.1.0", "@do-ob/eslint-config": "^2.3.0", "@do-ob/ts-config": "^2.0.0", "@do-ob/vite-lib-config": "^3.0.1", "@eslint/compat": "^1.1.0", "@heroicons/react": "^2.1.3", - "@storybook/addon-a11y": "8.2.0-alpha.10", - "@storybook/addon-essentials": "8.2.0-alpha.10", - "@storybook/addon-interactions": "8.2.0-alpha.10", - "@storybook/addon-links": "8.2.0-alpha.10", - "@storybook/addon-themes": "8.2.0-alpha.10", - "@storybook/blocks": "8.2.0-alpha.10", - "@storybook/nextjs": "8.2.0-alpha.10", - "@storybook/react": "8.2.0-alpha.10", - "@storybook/react-vite": "8.2.0-alpha.10", - "@storybook/test": "8.2.0-alpha.10", + "@storybook/addon-a11y": "^8.2.0-alpha.10", + "@storybook/addon-essentials": "^8.2.0-alpha.10", + "@storybook/addon-interactions": "^8.2.0-alpha.10", + "@storybook/addon-links": "^8.2.0-alpha.10", + "@storybook/addon-themes": "^8.2.0-alpha.10", + "@storybook/blocks": "^8.2.0-alpha.10", + "@storybook/nextjs": "^8.2.0-alpha.10", + "@storybook/react": "^8.2.0-alpha.10", + "@storybook/test": "^8.2.0-alpha.10", "@tailwindcss/container-queries": "^0.1.1", "@tailwindcss/typography": "^0.5.13", "@types/node": "^20.12.12", @@ -49,13 +46,14 @@ "eslint-plugin-react-compiler": "0.0.0-experimental-51a85ea-20240601", "eslint-plugin-react-hooks": "^4.6.2", "framer-motion": "^11.2.10", + "glob": "^10.4.2", "next": "15.0.0-rc.0", "postcss": "^8.4.38", "react": "19.0.0-rc-8971381549-20240625", "react-aria": "nightly", "react-aria-components": "nightly", "react-dom": "19.0.0-rc-8971381549-20240625", - "storybook": "8.2.0-alpha.10", + "storybook": "^8.2.0-alpha.10", "tailwind-merge": "^2.3.0", "tailwindcss": "^3.4.3", "tailwindcss-animate": "^1.0.7", diff --git a/packages/ui/package.json b/packages/ui/package.json index 4f5d582..1fb1c33 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -8,9 +8,12 @@ "files": [ "dist" ], + "imports": { + "#*": ["./*", "./*.ts", "./*.tsx"] + }, "exports": { ".": { - "require": "./dist/*.js", + "require": "./dist/index.js", "import": "./dist/index.js", "types": "./dist/index.d.ts" }, diff --git a/packages/ui/src/widgets.ts b/packages/ui/src/widgets.ts index 9327400..6ba5d75 100644 --- a/packages/ui/src/widgets.ts +++ b/packages/ui/src/widgets.ts @@ -7,4 +7,5 @@ export { HeroArticles } from './widgets/HeroArticles/HeroArticles'; export { HeroStandard } from './widgets/Hero/HeroStandard'; // export { HeroPrompt } from './widgets/Hero/HeroPrompt'; export { Brand, type BrandProps } from './widgets/Brand/Brand'; -export { Header, type HeaderProps } from './widgets/Header/Header'; +export { Header } from './widgets/Header/Header'; +export type { HeaderProps } from './widgets/Header/Header.types'; diff --git a/packages/ui/src/widgets/Brand/Brand.stories.tsx b/packages/ui/src/widgets/Brand/Brand.stories.tsx index 8e5bd05..069d6c2 100644 --- a/packages/ui/src/widgets/Brand/Brand.stories.tsx +++ b/packages/ui/src/widgets/Brand/Brand.stories.tsx @@ -12,7 +12,7 @@ type Story = StoryObj; export const Default: Story = { args: { - image: 'https://github.com/do-ob-io/shared/blob/main/do-ob-logo-readme.png?raw=true', + logo: 'https://github.com/do-ob-io/shared/blob/main/do-ob-logo-readme.png?raw=true', name: 'My Really Long Band Name', nameShort: 'My Short Name', } @@ -20,7 +20,7 @@ export const Default: Story = { export const WithHREF: Story = { args: { - image: 'https://github.com/do-ob-io/shared/blob/main/do-ob-logo-readme.png?raw=true', + logo: 'https://github.com/do-ob-io/shared/blob/main/do-ob-logo-readme.png?raw=true', name: 'My Really Long Band Name', nameShort: 'My Short Name', href: '/' diff --git a/packages/ui/src/widgets/Brand/Brand.tsx b/packages/ui/src/widgets/Brand/Brand.tsx index 4f9cdd4..8319b98 100644 --- a/packages/ui/src/widgets/Brand/Brand.tsx +++ b/packages/ui/src/widgets/Brand/Brand.tsx @@ -16,9 +16,14 @@ export interface BrandProps { nameShort?: string; /** - * The brand image. + * The brand logo. */ - image?: string | null; + logo?: string | null; + + /** + * The dimensions of the logo. + */ + logoSize?: [number, number]; /** * Size of the branding @@ -63,7 +68,8 @@ const textSizes = { export function Brand({ name, nameShort, - image = null, + logo = null, + logoSize, size = 'md', href, className, @@ -80,11 +86,11 @@ export function Brand({ 'flex flex-row flex-nowrap items-center gap-4 whitespace-nowrap p-0', className )} variant={href ? 'light' : undefined} {...props}> - {image && Brand - - -
 
+
+ +
+
+ +
+
+
+ +
+
); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7692ca4..cab31d3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: devDependencies: + '@chromatic-com/storybook': + specifier: ^1 + version: 1.6.0(react@19.0.0-rc-8971381549-20240625) '@do-ob/core': specifier: ^1.1.0 version: 1.1.0 @@ -27,34 +30,31 @@ importers: specifier: ^2.1.3 version: 2.1.3(react@19.0.0-rc-8971381549-20240625) '@storybook/addon-a11y': - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10 '@storybook/addon-essentials': - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10(prettier@3.3.2)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625)(types-react@19.0.0-rc.1)(types-react@19.0.0-rc.1) '@storybook/addon-interactions': - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10(vitest@1.6.0(@types/node@20.14.2)(terser@5.31.1)) '@storybook/addon-links': - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10(react@19.0.0-rc-8971381549-20240625) '@storybook/addon-themes': - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10 '@storybook/blocks': - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10(prettier@3.3.2)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625)(types-react@19.0.0-rc.1)(types-react@19.0.0-rc.1) '@storybook/nextjs': - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10(esbuild@0.20.2)(next@15.0.0-rc.0(@babel/core@7.24.7)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625))(prettier@3.3.2)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625)(type-fest@2.19.0)(typescript@5.4.5)(vitest@1.6.0(@types/node@20.14.2)(terser@5.31.1))(webpack-hot-middleware@2.26.1)(webpack@5.92.1(esbuild@0.20.2)) '@storybook/react': - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10(prettier@3.3.2)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625)(typescript@5.4.5) - '@storybook/react-vite': - specifier: 8.2.0-alpha.10 - version: 8.2.0-alpha.10(prettier@3.3.2)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625)(rollup@4.18.0)(typescript@5.4.5)(vite@5.2.13(@types/node@20.14.2)(terser@5.31.1)) '@storybook/test': - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10(vitest@1.6.0(@types/node@20.14.2)(terser@5.31.1)) '@tailwindcss/container-queries': specifier: ^0.1.1 @@ -95,6 +95,9 @@ importers: framer-motion: specifier: ^11.2.10 version: 11.2.10(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625) + glob: + specifier: ^10.4.2 + version: 10.4.2 next: specifier: 15.0.0-rc.0 version: 15.0.0-rc.0(@babel/core@7.24.7)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625) @@ -114,7 +117,7 @@ importers: specifier: 19.0.0-rc-8971381549-20240625 version: 19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625) storybook: - specifier: 8.2.0-alpha.10 + specifier: ^8.2.0-alpha.10 version: 8.2.0-alpha.10(@babel/preset-env@7.24.7(@babel/core@7.24.7))(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625) tailwind-merge: specifier: ^2.3.0 @@ -887,6 +890,10 @@ packages: '@base2/pretty-print-object@1.0.1': resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==} + '@chromatic-com/storybook@1.6.0': + resolution: {integrity: sha512-6sHj0l194KMBIZ0D5SeJ+Ys+zslehKHcC2d6Hd/YEn4cCl7p9mLuxrZjvf8xharGKy8vf9Q1tKrU2YdldzUBoQ==} + engines: {node: '>=16.0.0', yarn: '>=1.22.18'} + '@colors/colors@1.5.0': resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} @@ -1254,15 +1261,6 @@ packages: resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1': - resolution: {integrity: sha512-pdoMZ9QaPnVlSM+SdU/wgg0nyD/8wQ7y90ttO2CMCyrrm7RxveYIJ5eNfjPaoMFqW41LZra7QO9j+xV4Y18Glw==} - peerDependencies: - typescript: '>= 4.3.x' - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 - peerDependenciesMeta: - typescript: - optional: true - '@jridgewell/gen-mapping@0.3.5': resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} @@ -2258,21 +2256,6 @@ packages: '@storybook/builder-manager@8.2.0-alpha.10': resolution: {integrity: sha512-kYeJnFCdWYvJVx9sUOEqNP85MlUOsaENKgxJtSCt2NqN1Oyz9G4OHe5W5sknyGQj7ja07A4A4d+H6abha5UCDQ==} - '@storybook/builder-vite@8.2.0-alpha.10': - resolution: {integrity: sha512-kWLMSuBb0VHW/iu+yg/IoI23c9jgz5ijzp84b7k8RFzbEnDaFGKOFybbHElvGhUEey0P4rauzDcarZ69sbg/Yg==} - peerDependencies: - '@preact/preset-vite': '*' - typescript: '>= 4.3.x' - vite: ^4.0.0 || ^5.0.0 - vite-plugin-glimmerx: '*' - peerDependenciesMeta: - '@preact/preset-vite': - optional: true - typescript: - optional: true - vite-plugin-glimmerx: - optional: true - '@storybook/builder-webpack5@8.2.0-alpha.10': resolution: {integrity: sha512-PffBa+PJGm0fP4MGS9WI+KM9aCvvMyMspHtc7rvWK6u6mfImDN0U97JV/llC/zSArey2hifWQe6R77y07NS9Aw==} peerDependencies: @@ -2398,14 +2381,6 @@ packages: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - '@storybook/react-vite@8.2.0-alpha.10': - resolution: {integrity: sha512-gCiTgAjRsu19Sc9ecrHgIM9Uho/kvjPi1Hv1pZM+Hvdf1yrN4J+Y15ggx68HgXXYGBz6ikATNvu9W2MJweDWFQ==} - engines: {node: '>=18.0.0'} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta - vite: ^4.0.0 || ^5.0.0 - '@storybook/react@8.2.0-alpha.10': resolution: {integrity: sha512-R0nnsGY9U5x5aOjfNa+QgBVrudGYy+AyZdXChzAhuMXS+Ip8Rv126p9ZAGn9yDWKN6ynSeNZ1/aoEVUEo+K/7A==} engines: {node: '>=18.0.0'} @@ -2580,12 +2555,6 @@ packages: '@types/express@4.17.21': resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} - '@types/find-cache-dir@3.2.1': - resolution: {integrity: sha512-frsJrz2t/CeGifcu/6uRo4b+SzAwT4NYCVPu1GN8IB9XTzrpPkGuV0tmh9mN+/L0PklAlsC3u5Fxt0ju00LXIw==} - - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/hast@3.0.4': resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} @@ -2607,9 +2576,6 @@ packages: '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@5.1.2': - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - '@types/node@18.19.34': resolution: {integrity: sha512-eXF4pfBNV5DAMKGbI02NnDtWrQ40hAN558/2vvS4gMpMIxaf6JmD7YjnZbq0Q9TDSSkKBamime8ewRoomHdt4g==} @@ -3261,6 +3227,18 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + chromatic@11.5.4: + resolution: {integrity: sha512-+J+CopeUSyGUIQJsU6X7CfvSmeVBs0j6LZ9AgF4+XTjI4pFmUiUXsTc00rH9x9W1jCppOaqDXv2kqJJXGDK3mA==} + hasBin: true + peerDependencies: + '@chromatic-com/cypress': ^0.*.* || ^1.0.0 + '@chromatic-com/playwright': ^0.*.* || ^1.0.0 + peerDependenciesMeta: + '@chromatic-com/cypress': + optional: true + '@chromatic-com/playwright': + optional: true + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -3977,6 +3955,10 @@ packages: filelist@1.0.4: resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + filesize@10.1.2: + resolution: {integrity: sha512-Dx770ai81ohflojxhU+oG+Z2QGvKdYxgEr9OSA8UVrqhwNHjfH9A8f5NKfg83fEH8ZFA5N5llJo5T3PIoZ4CRA==} + engines: {node: '>= 10.4.0'} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -4161,17 +4143,11 @@ packages: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} - glob-promise@4.2.2: - resolution: {integrity: sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw==} - engines: {node: '>=12'} - peerDependencies: - glob: ^7.1.6 - glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - glob@10.4.1: - resolution: {integrity: sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw==} + glob@10.4.2: + resolution: {integrity: sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w==} engines: {node: '>=16 || 14 >=14.18'} hasBin: true @@ -4784,10 +4760,6 @@ packages: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.27.0: - resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} - engines: {node: '>=12'} - magic-string@0.30.10: resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} @@ -5149,6 +5121,9 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} + package-json-from-dist@1.0.0: + resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + pako@0.2.9: resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} @@ -5651,6 +5626,12 @@ packages: react: '>=16.8.0' react-dom: '>=16.8.0' + react-confetti@6.1.0: + resolution: {integrity: sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw==} + engines: {node: '>=10.18'} + peerDependencies: + react: ^16.3.0 || ^17.0.1 || ^18.0.0 + react-docgen-typescript@2.2.2: resolution: {integrity: sha512-tvg2ZtOpOi6QDwsb3GZhOjDkkX0h8Z2gipvTg6OVMUyoYoURhEiRNePT8NZItTVCDh39JJHnLdfCOkzoLbFnTg==} peerDependencies: @@ -6376,6 +6357,9 @@ packages: tty-browserify@0.0.1: resolution: {integrity: sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==} + tween-functions@1.2.0: + resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -7722,6 +7706,18 @@ snapshots: '@base2/pretty-print-object@1.0.1': {} + '@chromatic-com/storybook@1.6.0(react@19.0.0-rc-8971381549-20240625)': + dependencies: + chromatic: 11.5.4 + filesize: 10.1.2 + jsonfile: 6.1.0 + react-confetti: 6.1.0(react@19.0.0-rc-8971381549-20240625) + strip-ansi: 7.1.0 + transitivePeerDependencies: + - '@chromatic-com/cypress' + - '@chromatic-com/playwright' + - react + '@colors/colors@1.5.0': optional: true @@ -8017,16 +8013,6 @@ snapshots: dependencies: '@sinclair/typebox': 0.27.8 - '@joshwooding/vite-plugin-react-docgen-typescript@0.3.1(typescript@5.4.5)(vite@5.2.13(@types/node@20.14.2)(terser@5.31.1))': - dependencies: - glob: 7.2.3 - glob-promise: 4.2.2(glob@7.2.3) - magic-string: 0.27.0 - react-docgen-typescript: 2.2.2(typescript@5.4.5) - vite: 5.2.13(@types/node@20.14.2)(terser@5.31.1) - optionalDependencies: - typescript: 5.4.5 - '@jridgewell/gen-mapping@0.3.5': dependencies: '@jridgewell/set-array': 1.2.1 @@ -10621,33 +10607,6 @@ snapshots: - prettier - supports-color - '@storybook/builder-vite@8.2.0-alpha.10(prettier@3.3.2)(typescript@5.4.5)(vite@5.2.13(@types/node@20.14.2)(terser@5.31.1))': - dependencies: - '@storybook/channels': 8.2.0-alpha.10 - '@storybook/client-logger': 8.2.0-alpha.10 - '@storybook/core-common': 8.2.0-alpha.10(prettier@3.3.2) - '@storybook/core-events': 8.2.0-alpha.10 - '@storybook/csf-plugin': 8.2.0-alpha.10 - '@storybook/node-logger': 8.2.0-alpha.10 - '@storybook/preview': 8.2.0-alpha.10 - '@storybook/preview-api': 8.2.0-alpha.10 - '@storybook/types': 8.2.0-alpha.10 - '@types/find-cache-dir': 3.2.1 - browser-assert: 1.2.1 - es-module-lexer: 1.5.3 - express: 4.19.2 - find-cache-dir: 3.3.2 - fs-extra: 11.2.0 - magic-string: 0.30.10 - ts-dedent: 2.2.0 - vite: 5.2.13(@types/node@20.14.2)(terser@5.31.1) - optionalDependencies: - typescript: 5.4.5 - transitivePeerDependencies: - - encoding - - prettier - - supports-color - '@storybook/builder-webpack5@8.2.0-alpha.10(esbuild@0.20.2)(prettier@3.3.2)(typescript@5.4.5)': dependencies: '@storybook/channels': 8.2.0-alpha.10 @@ -10828,7 +10787,7 @@ snapshots: find-cache-dir: 3.3.2 find-up: 5.0.0 fs-extra: 11.2.0 - glob: 10.4.1 + glob: 10.4.2 handlebars: 4.7.8 lazy-universal-dotenv: 4.0.0 node-fetch: 2.7.0 @@ -11182,31 +11141,6 @@ snapshots: react: 19.0.0-rc-8971381549-20240625 react-dom: 19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625) - '@storybook/react-vite@8.2.0-alpha.10(prettier@3.3.2)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625)(rollup@4.18.0)(typescript@5.4.5)(vite@5.2.13(@types/node@20.14.2)(terser@5.31.1))': - dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.3.1(typescript@5.4.5)(vite@5.2.13(@types/node@20.14.2)(terser@5.31.1)) - '@rollup/pluginutils': 5.1.0(rollup@4.18.0) - '@storybook/builder-vite': 8.2.0-alpha.10(prettier@3.3.2)(typescript@5.4.5)(vite@5.2.13(@types/node@20.14.2)(terser@5.31.1)) - '@storybook/node-logger': 8.2.0-alpha.10 - '@storybook/react': 8.2.0-alpha.10(prettier@3.3.2)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625)(typescript@5.4.5) - '@storybook/types': 8.2.0-alpha.10 - find-up: 5.0.0 - magic-string: 0.30.10 - react: 19.0.0-rc-8971381549-20240625 - react-docgen: 7.0.3 - react-dom: 19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625) - resolve: 1.22.8 - tsconfig-paths: 4.2.0 - vite: 5.2.13(@types/node@20.14.2)(terser@5.31.1) - transitivePeerDependencies: - - '@preact/preset-vite' - - encoding - - prettier - - rollup - - supports-color - - typescript - - vite-plugin-glimmerx - '@storybook/react@8.2.0-alpha.10(prettier@3.3.2)(react-dom@19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625))(react@19.0.0-rc-8971381549-20240625)(typescript@5.4.5)': dependencies: '@storybook/client-logger': 8.2.0-alpha.10 @@ -11476,13 +11410,6 @@ snapshots: '@types/qs': 6.9.15 '@types/serve-static': 1.15.7 - '@types/find-cache-dir@3.2.1': {} - - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.14.2 - '@types/hast@3.0.4': dependencies: '@types/unist': 3.0.2 @@ -11499,8 +11426,6 @@ snapshots: '@types/mime@1.3.5': {} - '@types/minimatch@5.1.2': {} - '@types/node@18.19.34': dependencies: undici-types: 5.26.5 @@ -12326,6 +12251,8 @@ snapshots: chownr@2.0.0: {} + chromatic@11.5.4: {} + chrome-trace-event@1.0.4: {} cipher-base@1.0.4: @@ -13241,6 +13168,8 @@ snapshots: dependencies: minimatch: 5.1.6 + filesize@10.1.2: {} + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -13451,19 +13380,15 @@ snapshots: dependencies: is-glob: 4.0.3 - glob-promise@4.2.2(glob@7.2.3): - dependencies: - '@types/glob': 7.2.0 - glob: 7.2.3 - glob-to-regexp@0.4.1: {} - glob@10.4.1: + glob@10.4.2: dependencies: foreground-child: 3.1.1 jackspeak: 3.4.0 minimatch: 9.0.4 minipass: 7.1.2 + package-json-from-dist: 1.0.0 path-scurry: 1.11.1 glob@7.2.3: @@ -14054,10 +13979,6 @@ snapshots: lz-string@1.5.0: {} - magic-string@0.27.0: - dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 - magic-string@0.30.10: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 @@ -14436,6 +14357,8 @@ snapshots: p-try@2.2.0: {} + package-json-from-dist@1.0.0: {} + pako@0.2.9: {} pako@1.0.11: {} @@ -15054,6 +14977,11 @@ snapshots: react: 19.0.0-rc-8971381549-20240625 react-dom: 19.0.0-rc-8971381549-20240625(react@19.0.0-rc-8971381549-20240625) + react-confetti@6.1.0(react@19.0.0-rc-8971381549-20240625): + dependencies: + react: 19.0.0-rc-8971381549-20240625 + tween-functions: 1.2.0 + react-docgen-typescript@2.2.2(typescript@5.4.5): dependencies: typescript: 5.4.5 @@ -15774,7 +15702,7 @@ snapshots: dependencies: '@jridgewell/gen-mapping': 0.3.5 commander: 4.1.1 - glob: 10.4.1 + glob: 10.4.2 lines-and-columns: 1.2.4 mz: 2.7.0 pirates: 4.0.6 @@ -15977,6 +15905,8 @@ snapshots: tty-browserify@0.0.1: {} + tween-functions@1.2.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1