Skip to content

Commit ba48848

Browse files
authored
Merge pull request #35 from ArianHamdi/feat/story-book
feat: implement storybook
2 parents 51ab49e + cf9105f commit ba48848

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+7656
-1281
lines changed

.eslintrc.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"extends": ["next/core-web-vitals"]
2+
"extends": ["next/core-web-vitals", "plugin:storybook/recommended"]
33
}

.storybook/main.ts

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import type { StorybookConfig } from '@storybook/nextjs';
2+
const path = require('path');
3+
4+
const config: StorybookConfig = {
5+
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|mjs|ts|tsx)'],
6+
addons: [
7+
'@storybook/addon-links',
8+
'@storybook/addon-essentials',
9+
'@storybook/addon-onboarding',
10+
'@storybook/addon-interactions',
11+
'@storybook/addon-actions',
12+
'@storybook/addon-docs',
13+
],
14+
framework: {
15+
name: '@storybook/nextjs',
16+
options: {},
17+
},
18+
webpackFinal: async config => {
19+
// Ensure config.resolve is defined
20+
config.resolve = config.resolve || {};
21+
config.resolve.alias = {
22+
...config.resolve.alias,
23+
'@': path.resolve(__dirname, '../src'),
24+
};
25+
26+
return config;
27+
},
28+
docs: {
29+
autodocs: 'tag',
30+
},
31+
};
32+
export default config;

.storybook/preview.tsx

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import type { Preview } from '@storybook/react';
2+
import '../src/styles/globals.scss';
3+
import React from 'react';
4+
5+
const preview: Preview = {
6+
parameters: {
7+
actions: { argTypesRegex: '^on[A-Z].*' },
8+
controls: {
9+
matchers: {
10+
color: /(background|color)$/i,
11+
date: /Date$/,
12+
},
13+
},
14+
},
15+
decorators: [
16+
Story => {
17+
document.documentElement.setAttribute('data-theme', 'light');
18+
return <Story />;
19+
},
20+
],
21+
};
22+
23+
export default preview;

.storybook/themes.ts

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
export interface Theme {
2+
name: string;
3+
color: string;
4+
background: string;
5+
}
6+
7+
export const themes: { [key: string]: Theme } = {
8+
light: {
9+
name: 'light',
10+
color: '#000000',
11+
background: '#ffffff',
12+
},
13+
dark: {
14+
name: 'dark',
15+
color: '#ffffff',
16+
background: '#333333',
17+
},
18+
};

package.json

+19-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@
1313
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css,scss,md}\" --list-different",
1414
"prepare": "husky install",
1515
"type-check": "tsc --noEmit",
16-
"prisma-schema": "npx prisma db push --schema src/prisma/schema.prisma"
16+
"prisma-schema": "npx prisma db push --schema src/prisma/schema.prisma",
17+
"storybook": "storybook dev -p 6006",
18+
"build-storybook": "storybook build"
1719
},
1820
"dependencies": {
1921
"@hookform/devtools": "^4.3.1",
@@ -50,12 +52,27 @@
5052
},
5153
"devDependencies": {
5254
"@next/env": "^13.5.3",
55+
"@storybook/addon-actions": "^7.4.6",
56+
"@storybook/addon-docs": "^7.4.6",
57+
"@storybook/addon-essentials": "^7.4.6",
58+
"@storybook/addon-interactions": "^7.4.6",
59+
"@storybook/addon-links": "^7.4.6",
60+
"@storybook/addon-onboarding": "^1.0.8",
61+
"@storybook/addons": "^7.4.6",
62+
"@storybook/blocks": "^7.4.6",
63+
"@storybook/manager-api": "^7.4.6",
64+
"@storybook/nextjs": "^7.4.6",
65+
"@storybook/react": "^7.4.6",
66+
"@storybook/testing-library": "^0.2.2",
67+
"@storybook/theming": "^7.4.6",
5368
"@types/jsonwebtoken": "^9.0.3",
5469
"@types/lodash": "^4.14.199",
5570
"csstype": "^3.1.2",
71+
"eslint-plugin-storybook": "^0.6.15",
5672
"husky": "^8.0.0",
5773
"lint-staged": "^14.0.1",
5874
"prettier": "^3.0.3",
59-
"prisma": "^5.3.1"
75+
"prisma": "^5.3.1",
76+
"storybook": "^7.4.6"
6077
}
6178
}

0 commit comments

Comments
 (0)