Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* eslint-env node */
module.exports = {
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:storybook/recommended'],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint'],
root: true,
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules
/lib
/lib
*storybook.log
17 changes: 17 additions & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import type { StorybookConfig } from "@storybook/react-vite";

const config: StorybookConfig = {
stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
addons: [
"@storybook/addon-onboarding",
"@storybook/addon-links",
"@storybook/addon-essentials",
"@chromatic-com/storybook",
"@storybook/addon-interactions",
],
framework: {
name: "@storybook/react-vite",
options: {},
},
};
export default config;
14 changes: 14 additions & 0 deletions .storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import type { Preview } from "@storybook/react";

const preview: Preview = {
parameters: {
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/i,
},
},
},
};

export default preview;
60 changes: 60 additions & 0 deletions dist/components/Button.stories.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/// <reference types="react" />
import type { StoryObj } from "@storybook/react";
declare const meta: {
title: string;
component: (props: {
children: import("react").ReactNode;
onClick?: (() => void) | undefined;
className?: string | undefined;
style?: import("react").CSSProperties | undefined;
size?: "small" | "medium" | "large" | undefined;
isLoading?: boolean | undefined;
}) => import("react").JSX.Element;
parameters: {
layout: string;
};
tags: string[];
argTypes: {
size: {
control: {
type: "select";
options: string[];
};
};
isLoading: {
control: {
type: "boolean";
};
};
style: {
control: {
type: "object";
};
};
children: {
control: {
type: "text";
};
};
className: {
control: {
type: "text";
};
};
onClick: {
action: string;
};
};
args: {
onClick: import("@vitest/spy").Mock<[], void>;
children: string;
size: "medium";
isLoading: false;
style: {};
className: string;
};
};
export default meta;
type Story = StoryObj<typeof meta>;
export declare const medium: Story;
export declare const small: Story;
2 changes: 1 addition & 1 deletion dist/settings/Header.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ interface NavRightContent {
}
interface HeaderProps {
children: React.ReactNode;
logo: string;
logo: React.ReactNode;
className: string;
breadcrumbs: Array<{
title: React.ReactNode;
Expand Down
6 changes: 6 additions & 0 deletions dist/settings/Header.stories.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import type { Meta, StoryObj } from "@storybook/react";
import Header from "./Header";
declare const meta: Meta<typeof Header>;
export default meta;
type Story = StoryObj<typeof Header>;
export declare const FirstHeader: Story;
29 changes: 29 additions & 0 deletions dist/stories/Button.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import React from 'react';
import './button.css';
interface ButtonProps {
/**
* Is this the principal call to action on the page?
*/
primary?: boolean;
/**
* What background color to use
*/
backgroundColor?: string;
/**
* How large should the button be?
*/
size?: 'small' | 'medium' | 'large';
/**
* Button contents
*/
label: string;
/**
* Optional click handler
*/
onClick?: () => void;
}
/**
* Primary UI component for user interaction
*/
export declare const Button: ({ primary, size, backgroundColor, label, ...props }: ButtonProps) => React.JSX.Element;
export {};
13 changes: 13 additions & 0 deletions dist/stories/Header.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import React from 'react';
import './header.css';
type User = {
name: string;
};
interface HeaderProps {
user?: User;
onLogin?: () => void;
onLogout?: () => void;
onCreateAccount?: () => void;
}
export declare const Header: ({ user, onLogin, onLogout, onCreateAccount }: HeaderProps) => React.JSX.Element;
export {};
3 changes: 3 additions & 0 deletions dist/stories/Page.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import React from 'react';
import './page.css';
export declare const Page: React.FC;
13 changes: 13 additions & 0 deletions dist/stories/Page.stories.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/// <reference types="react" />
import type { StoryObj } from '@storybook/react';
declare const meta: {
title: string;
component: import("react").FC<{}>;
parameters: {
layout: string;
};
};
export default meta;
type Story = StoryObj<typeof meta>;
export declare const LoggedOut: Story;
export declare const LoggedIn: Story;
Loading