From 90eb784dfa011560b0310c21ac3f12f273bc1785 Mon Sep 17 00:00:00 2001 From: ElRodrigote Date: Tue, 18 Jun 2024 12:30:50 +0200 Subject: [PATCH 1/3] improv: move every component to its own folder --- packages/ui/src/components/{ => ChipButton}/ChipButton.tsx | 0 packages/ui/src/components/ChipButton/index.ts | 1 + packages/ui/src/components/{ => Dialog}/Dialog.tsx | 2 +- packages/ui/src/components/Dialog/index.ts | 1 + packages/ui/src/components/{ => Icon}/Icon.tsx | 2 +- packages/ui/src/components/Icon/index.ts | 1 + packages/ui/src/components/{ => IconBadge}/IconBadge.tsx | 2 +- packages/ui/src/components/IconBadge/index.ts | 1 + packages/ui/src/components/{ => IconButton}/IconButton.tsx | 4 ++-- packages/ui/src/components/IconButton/index.ts | 1 + packages/ui/src/components/{ => Input}/Input.tsx | 2 +- packages/ui/src/components/Input/index.ts | 1 + packages/ui/src/components/{ => Logo}/Logo.tsx | 0 packages/ui/src/components/Logo/index.ts | 1 + packages/ui/src/components/{ => LogoPair}/LogoPair.tsx | 2 +- packages/ui/src/components/LogoPair/index.ts | 1 + packages/ui/src/components/{ => Tabs}/Tabs.stories.tsx | 0 packages/ui/src/components/{ => Tabs}/Tabs.tsx | 2 +- packages/ui/src/components/Tabs/index.ts | 1 + packages/ui/src/components/{ => Tag}/Tag.tsx | 2 +- packages/ui/src/components/Tag/index.ts | 1 + packages/ui/src/components/{ => Toast}/Toast.tsx | 4 ++-- packages/ui/src/components/Toast/index.ts | 1 + packages/ui/src/components/{ => ToggleGroup}/ToggleGroup.tsx | 0 packages/ui/src/components/ToggleGroup/index.ts | 1 + 25 files changed, 23 insertions(+), 11 deletions(-) rename packages/ui/src/components/{ => ChipButton}/ChipButton.tsx (100%) create mode 100644 packages/ui/src/components/ChipButton/index.ts rename packages/ui/src/components/{ => Dialog}/Dialog.tsx (99%) create mode 100644 packages/ui/src/components/Dialog/index.ts rename packages/ui/src/components/{ => Icon}/Icon.tsx (99%) create mode 100644 packages/ui/src/components/Icon/index.ts rename packages/ui/src/components/{ => IconBadge}/IconBadge.tsx (98%) create mode 100644 packages/ui/src/components/IconBadge/index.ts rename packages/ui/src/components/{ => IconButton}/IconButton.tsx (85%) create mode 100644 packages/ui/src/components/IconButton/index.ts rename packages/ui/src/components/{ => Input}/Input.tsx (99%) create mode 100644 packages/ui/src/components/Input/index.ts rename packages/ui/src/components/{ => Logo}/Logo.tsx (100%) create mode 100644 packages/ui/src/components/Logo/index.ts rename packages/ui/src/components/{ => LogoPair}/LogoPair.tsx (98%) create mode 100644 packages/ui/src/components/LogoPair/index.ts rename packages/ui/src/components/{ => Tabs}/Tabs.stories.tsx (100%) rename packages/ui/src/components/{ => Tabs}/Tabs.tsx (97%) create mode 100644 packages/ui/src/components/Tabs/index.ts rename packages/ui/src/components/{ => Tag}/Tag.tsx (98%) create mode 100644 packages/ui/src/components/Tag/index.ts rename packages/ui/src/components/{ => Toast}/Toast.tsx (97%) create mode 100644 packages/ui/src/components/Toast/index.ts rename packages/ui/src/components/{ => ToggleGroup}/ToggleGroup.tsx (100%) create mode 100644 packages/ui/src/components/ToggleGroup/index.ts diff --git a/packages/ui/src/components/ChipButton.tsx b/packages/ui/src/components/ChipButton/ChipButton.tsx similarity index 100% rename from packages/ui/src/components/ChipButton.tsx rename to packages/ui/src/components/ChipButton/ChipButton.tsx diff --git a/packages/ui/src/components/ChipButton/index.ts b/packages/ui/src/components/ChipButton/index.ts new file mode 100644 index 0000000..fc8ff4d --- /dev/null +++ b/packages/ui/src/components/ChipButton/index.ts @@ -0,0 +1 @@ +export * from "./ChipButton"; diff --git a/packages/ui/src/components/Dialog.tsx b/packages/ui/src/components/Dialog/Dialog.tsx similarity index 99% rename from packages/ui/src/components/Dialog.tsx rename to packages/ui/src/components/Dialog/Dialog.tsx index 8635870..24814f6 100644 --- a/packages/ui/src/components/Dialog.tsx +++ b/packages/ui/src/components/Dialog/Dialog.tsx @@ -1,7 +1,7 @@ import { forwardRef } from "react"; import * as DialogPrimitive from "@radix-ui/react-dialog"; import { cva, cx } from "class-variance-authority"; -import { IconButton } from "./IconButton"; +import { IconButton } from "../IconButton"; interface SizeProp { size?: "lg" | "xl" | null | undefined; diff --git a/packages/ui/src/components/Dialog/index.ts b/packages/ui/src/components/Dialog/index.ts new file mode 100644 index 0000000..24cc75a --- /dev/null +++ b/packages/ui/src/components/Dialog/index.ts @@ -0,0 +1 @@ +export * from "./Dialog"; diff --git a/packages/ui/src/components/Icon.tsx b/packages/ui/src/components/Icon/Icon.tsx similarity index 99% rename from packages/ui/src/components/Icon.tsx rename to packages/ui/src/components/Icon/Icon.tsx index 99b13dd..cabe877 100644 --- a/packages/ui/src/components/Icon.tsx +++ b/packages/ui/src/components/Icon/Icon.tsx @@ -1,4 +1,4 @@ -import * as IconList from "./icons"; +import * as IconList from "../icons"; export type IconName = | "about-fill" diff --git a/packages/ui/src/components/Icon/index.ts b/packages/ui/src/components/Icon/index.ts new file mode 100644 index 0000000..998237c --- /dev/null +++ b/packages/ui/src/components/Icon/index.ts @@ -0,0 +1 @@ +export * from "./Icon"; diff --git a/packages/ui/src/components/IconBadge.tsx b/packages/ui/src/components/IconBadge/IconBadge.tsx similarity index 98% rename from packages/ui/src/components/IconBadge.tsx rename to packages/ui/src/components/IconBadge/IconBadge.tsx index bbbf4ee..a3d4e63 100644 --- a/packages/ui/src/components/IconBadge.tsx +++ b/packages/ui/src/components/IconBadge/IconBadge.tsx @@ -1,4 +1,4 @@ -import { Icon, IconName } from "./Icon"; +import { Icon, IconName } from "../Icon"; import { cva } from "class-variance-authority"; const iconBadgeStyles = cva( diff --git a/packages/ui/src/components/IconBadge/index.ts b/packages/ui/src/components/IconBadge/index.ts new file mode 100644 index 0000000..f4a7c11 --- /dev/null +++ b/packages/ui/src/components/IconBadge/index.ts @@ -0,0 +1 @@ +export * from "./IconBadge"; diff --git a/packages/ui/src/components/IconButton.tsx b/packages/ui/src/components/IconButton/IconButton.tsx similarity index 85% rename from packages/ui/src/components/IconButton.tsx rename to packages/ui/src/components/IconButton/IconButton.tsx index 233a0ba..10d5840 100644 --- a/packages/ui/src/components/IconButton.tsx +++ b/packages/ui/src/components/IconButton/IconButton.tsx @@ -1,6 +1,6 @@ import { cva } from "class-variance-authority"; -import { Button, ButtonProps, ButtonSizeProp } from "./Button"; -import { Icon, IconProps } from "./Icon"; +import { Button, ButtonProps, ButtonSizeProp } from "../Button"; +import { Icon, IconProps } from "../Icon"; export const iconButtonStyles = cva([], { variants: { diff --git a/packages/ui/src/components/IconButton/index.ts b/packages/ui/src/components/IconButton/index.ts new file mode 100644 index 0000000..5318510 --- /dev/null +++ b/packages/ui/src/components/IconButton/index.ts @@ -0,0 +1 @@ +export * from "./IconButton"; diff --git a/packages/ui/src/components/Input.tsx b/packages/ui/src/components/Input/Input.tsx similarity index 99% rename from packages/ui/src/components/Input.tsx rename to packages/ui/src/components/Input/Input.tsx index 3986958..2d0fbf5 100644 --- a/packages/ui/src/components/Input.tsx +++ b/packages/ui/src/components/Input/Input.tsx @@ -1,7 +1,7 @@ import { forwardRef, useEffect, useRef } from "react"; import * as LabelPrimitive from "@radix-ui/react-label"; import { cva, cx } from "class-variance-authority"; -import { Icon, IconName } from "./Icon"; +import { Icon, IconName } from "../Icon"; const inputStyles = cva( [ diff --git a/packages/ui/src/components/Input/index.ts b/packages/ui/src/components/Input/index.ts new file mode 100644 index 0000000..be66d76 --- /dev/null +++ b/packages/ui/src/components/Input/index.ts @@ -0,0 +1 @@ +export * from "./Input"; diff --git a/packages/ui/src/components/Logo.tsx b/packages/ui/src/components/Logo/Logo.tsx similarity index 100% rename from packages/ui/src/components/Logo.tsx rename to packages/ui/src/components/Logo/Logo.tsx diff --git a/packages/ui/src/components/Logo/index.ts b/packages/ui/src/components/Logo/index.ts new file mode 100644 index 0000000..bd3113f --- /dev/null +++ b/packages/ui/src/components/Logo/index.ts @@ -0,0 +1 @@ +export * from "./Logo"; diff --git a/packages/ui/src/components/LogoPair.tsx b/packages/ui/src/components/LogoPair/LogoPair.tsx similarity index 98% rename from packages/ui/src/components/LogoPair.tsx rename to packages/ui/src/components/LogoPair/LogoPair.tsx index d5b96dd..cb8e676 100644 --- a/packages/ui/src/components/LogoPair.tsx +++ b/packages/ui/src/components/LogoPair/LogoPair.tsx @@ -1,5 +1,5 @@ import { cva } from "class-variance-authority"; -import { Logo, LogoSizeProp } from "./Logo"; +import { Logo, LogoSizeProp } from "../Logo"; export const logoPairStyles = cva(["flex items-center w-fit h-fit relative"], { variants: { diff --git a/packages/ui/src/components/LogoPair/index.ts b/packages/ui/src/components/LogoPair/index.ts new file mode 100644 index 0000000..f4f194e --- /dev/null +++ b/packages/ui/src/components/LogoPair/index.ts @@ -0,0 +1 @@ +export * from "./LogoPair"; diff --git a/packages/ui/src/components/Tabs.stories.tsx b/packages/ui/src/components/Tabs/Tabs.stories.tsx similarity index 100% rename from packages/ui/src/components/Tabs.stories.tsx rename to packages/ui/src/components/Tabs/Tabs.stories.tsx diff --git a/packages/ui/src/components/Tabs.tsx b/packages/ui/src/components/Tabs/Tabs.tsx similarity index 97% rename from packages/ui/src/components/Tabs.tsx rename to packages/ui/src/components/Tabs/Tabs.tsx index 988d189..bc23de3 100644 --- a/packages/ui/src/components/Tabs.tsx +++ b/packages/ui/src/components/Tabs/Tabs.tsx @@ -1,6 +1,6 @@ import { Children, Fragment, PropsWithChildren } from "react"; import { Tab, TabProps } from "@headlessui/react"; -import { ChipButton } from "./ChipButton"; +import { ChipButton } from "../ChipButton"; import { twMerge } from "tailwind-merge"; export const TabGroup = ({ diff --git a/packages/ui/src/components/Tabs/index.ts b/packages/ui/src/components/Tabs/index.ts new file mode 100644 index 0000000..5de2df6 --- /dev/null +++ b/packages/ui/src/components/Tabs/index.ts @@ -0,0 +1 @@ +export * from "./Tabs"; diff --git a/packages/ui/src/components/Tag.tsx b/packages/ui/src/components/Tag/Tag.tsx similarity index 98% rename from packages/ui/src/components/Tag.tsx rename to packages/ui/src/components/Tag/Tag.tsx index 010866e..000170e 100644 --- a/packages/ui/src/components/Tag.tsx +++ b/packages/ui/src/components/Tag/Tag.tsx @@ -48,7 +48,7 @@ export type TagColorSchemeProp = | "danger" | "info"; -interface TagProps { +export interface TagProps { size?: TagSizeProp; colorScheme?: TagColorSchemeProp; className?: string; diff --git a/packages/ui/src/components/Tag/index.ts b/packages/ui/src/components/Tag/index.ts new file mode 100644 index 0000000..5b4c58b --- /dev/null +++ b/packages/ui/src/components/Tag/index.ts @@ -0,0 +1 @@ +export * from "./Tag"; diff --git a/packages/ui/src/components/Toast.tsx b/packages/ui/src/components/Toast/Toast.tsx similarity index 97% rename from packages/ui/src/components/Toast.tsx rename to packages/ui/src/components/Toast/Toast.tsx index 92aabbe..a6978ef 100644 --- a/packages/ui/src/components/Toast.tsx +++ b/packages/ui/src/components/Toast/Toast.tsx @@ -2,8 +2,8 @@ import { PropsWithChildren, ReactNode } from "react"; import { toast as sonnerToast, Toaster } from "sonner"; import { cva } from "class-variance-authority"; -import { Icon } from "./Icon"; -import { Button } from "./Button"; +import { Icon } from "../Icon"; +import { Button } from "../Button"; export const toastStyles = cva( [ diff --git a/packages/ui/src/components/Toast/index.ts b/packages/ui/src/components/Toast/index.ts new file mode 100644 index 0000000..0652992 --- /dev/null +++ b/packages/ui/src/components/Toast/index.ts @@ -0,0 +1 @@ +export * from "./Toast"; diff --git a/packages/ui/src/components/ToggleGroup.tsx b/packages/ui/src/components/ToggleGroup/ToggleGroup.tsx similarity index 100% rename from packages/ui/src/components/ToggleGroup.tsx rename to packages/ui/src/components/ToggleGroup/ToggleGroup.tsx diff --git a/packages/ui/src/components/ToggleGroup/index.ts b/packages/ui/src/components/ToggleGroup/index.ts new file mode 100644 index 0000000..773c1e5 --- /dev/null +++ b/packages/ui/src/components/ToggleGroup/index.ts @@ -0,0 +1 @@ +export * from "./ToggleGroup"; From 57b9d65071ce9fd8f7a6612ea3cd57df868bf2c6 Mon Sep 17 00:00:00 2001 From: ElRodrigote Date: Tue, 18 Jun 2024 12:31:21 +0200 Subject: [PATCH 2/3] prune: remove unneeded files --- packages/ui/src/stories/Button.stories.ts | 52 ------------ packages/ui/src/stories/Button.tsx | 51 ------------ packages/ui/src/stories/Header.stories.ts | 33 -------- packages/ui/src/stories/Header.tsx | 69 ---------------- packages/ui/src/stories/Page.stories.ts | 32 -------- packages/ui/src/stories/Page.tsx | 91 --------------------- packages/ui/src/stories/assets/assets.png | Bin 3899 -> 0 bytes packages/ui/src/stories/assets/context.png | Bin 6119 -> 0 bytes packages/ui/src/stories/assets/styling.png | Bin 7237 -> 0 bytes packages/ui/src/stories/button.css | 30 ------- packages/ui/src/stories/header.css | 32 -------- packages/ui/src/stories/page.css | 69 ---------------- 12 files changed, 459 deletions(-) delete mode 100644 packages/ui/src/stories/Button.stories.ts delete mode 100644 packages/ui/src/stories/Button.tsx delete mode 100644 packages/ui/src/stories/Header.stories.ts delete mode 100644 packages/ui/src/stories/Header.tsx delete mode 100644 packages/ui/src/stories/Page.stories.ts delete mode 100644 packages/ui/src/stories/Page.tsx delete mode 100644 packages/ui/src/stories/assets/assets.png delete mode 100644 packages/ui/src/stories/assets/context.png delete mode 100644 packages/ui/src/stories/assets/styling.png delete mode 100644 packages/ui/src/stories/button.css delete mode 100644 packages/ui/src/stories/header.css delete mode 100644 packages/ui/src/stories/page.css diff --git a/packages/ui/src/stories/Button.stories.ts b/packages/ui/src/stories/Button.stories.ts deleted file mode 100644 index 455a9d8..0000000 --- a/packages/ui/src/stories/Button.stories.ts +++ /dev/null @@ -1,52 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { fn } from '@storybook/test'; -import { Button } from './Button'; - -// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export -const meta = { - title: 'Example/Button', - component: Button, - parameters: { - // Optional parameter to center the component in the Canvas. More info: https://storybook.js.org/docs/configure/story-layout - layout: 'centered', - }, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ['autodocs'], - // More on argTypes: https://storybook.js.org/docs/api/argtypes - argTypes: { - backgroundColor: { control: 'color' }, - }, - // Use `fn` to spy on the onClick arg, which will appear in the actions panel once invoked: https://storybook.js.org/docs/essentials/actions#action-args - args: { onClick: fn() }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args -export const Primary: Story = { - args: { - primary: true, - label: 'Button', - }, -}; - -export const Secondary: Story = { - args: { - label: 'Button', - }, -}; - -export const Large: Story = { - args: { - size: 'large', - label: 'Button', - }, -}; - -export const Small: Story = { - args: { - size: 'small', - label: 'Button', - }, -}; diff --git a/packages/ui/src/stories/Button.tsx b/packages/ui/src/stories/Button.tsx deleted file mode 100644 index 12ade3a..0000000 --- a/packages/ui/src/stories/Button.tsx +++ /dev/null @@ -1,51 +0,0 @@ -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 const Button = ({ - primary = false, - size = "medium", - backgroundColor, - label, - ...props -}: ButtonProps) => { - const mode = primary - ? "storybook-button--primary" - : "storybook-button--secondary"; - return ( - - ); -}; diff --git a/packages/ui/src/stories/Header.stories.ts b/packages/ui/src/stories/Header.stories.ts deleted file mode 100644 index 80c71d0..0000000 --- a/packages/ui/src/stories/Header.stories.ts +++ /dev/null @@ -1,33 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { fn } from '@storybook/test'; - -import { Header } from './Header'; - -const meta = { - title: 'Example/Header', - component: Header, - // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs - tags: ['autodocs'], - parameters: { - // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout - layout: 'fullscreen', - }, - args: { - onLogin: fn(), - onLogout: fn(), - onCreateAccount: fn(), - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const LoggedIn: Story = { - args: { - user: { - name: 'Jane Doe', - }, - }, -}; - -export const LoggedOut: Story = {}; diff --git a/packages/ui/src/stories/Header.tsx b/packages/ui/src/stories/Header.tsx deleted file mode 100644 index c06836b..0000000 --- a/packages/ui/src/stories/Header.tsx +++ /dev/null @@ -1,69 +0,0 @@ -import { Button } from "./Button"; -import "./header.css"; - -type User = { - name: string; -}; - -interface HeaderProps { - user?: User; - onLogin?: () => void; - onLogout?: () => void; - onCreateAccount?: () => void; -} - -export const Header = ({ - user, - onLogin, - onLogout, - onCreateAccount, -}: HeaderProps) => ( -
-
-
- - - - - - - -

Acme

-
-
- {user ? ( - <> - - Welcome, {user.name}! - -
-
-
-); diff --git a/packages/ui/src/stories/Page.stories.ts b/packages/ui/src/stories/Page.stories.ts deleted file mode 100644 index f7a0681..0000000 --- a/packages/ui/src/stories/Page.stories.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type { Meta, StoryObj } from '@storybook/react'; -import { within, userEvent, expect } from '@storybook/test'; - -import { Page } from './Page'; - -const meta = { - title: 'Example/Page', - component: Page, - parameters: { - // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout - layout: 'fullscreen', - }, -} satisfies Meta; - -export default meta; -type Story = StoryObj; - -export const LoggedOut: Story = {}; - -// More on interaction testing: https://storybook.js.org/docs/writing-tests/interaction-testing -export const LoggedIn: Story = { - play: async ({ canvasElement }) => { - const canvas = within(canvasElement); - const loginButton = canvas.getByRole('button', { name: /Log in/i }); - await expect(loginButton).toBeInTheDocument(); - await userEvent.click(loginButton); - await expect(loginButton).not.toBeInTheDocument(); - - const logoutButton = canvas.getByRole('button', { name: /Log out/i }); - await expect(logoutButton).toBeInTheDocument(); - }, -}; diff --git a/packages/ui/src/stories/Page.tsx b/packages/ui/src/stories/Page.tsx deleted file mode 100644 index 65e0e73..0000000 --- a/packages/ui/src/stories/Page.tsx +++ /dev/null @@ -1,91 +0,0 @@ -import { useState } from "react"; - -import { Header } from "./Header"; -import "./page.css"; - -type User = { - name: string; -}; - -export const Page: React.FC = () => { - const [user, setUser] = useState(); - - return ( -
-
setUser({ name: "Jane Doe" })} - onLogout={() => setUser(undefined)} - onCreateAccount={() => setUser({ name: "Jane Doe" })} - /> - -
-

Pages in Storybook

-

- We recommend building UIs with a{" "} - - component-driven - {" "} - process starting with atomic components and ending with pages. -

-

- Render pages with mock data. This makes it easy to build and review - page states without needing to navigate to them in your app. Here are - some handy patterns for managing page data in Storybook: -

-
    -
  • - Use a higher-level connected component. Storybook helps you compose - such data from the "args" of child component stories -
  • -
  • - Assemble data in the page component from your services. You can mock - these services out using Storybook. -
  • -
-

- Get a guided tutorial on component-driven development at{" "} - - Storybook tutorials - - . Read more in the{" "} - - docs - - . -

-
- Tip Adjust the width of the canvas with - the{" "} - - - - - - Viewports addon in the toolbar -
-
-
- ); -}; diff --git a/packages/ui/src/stories/assets/assets.png b/packages/ui/src/stories/assets/assets.png deleted file mode 100644 index cfba6817aeb60fe5eac1f632b703b18da0ec8759..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3899 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 MsOkXq$~KYz50#aYqW}N^ diff --git a/packages/ui/src/stories/button.css b/packages/ui/src/stories/button.css deleted file mode 100644 index dc91dc7..0000000 --- a/packages/ui/src/stories/button.css +++ /dev/null @@ -1,30 +0,0 @@ -.storybook-button { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-weight: 700; - border: 0; - border-radius: 3em; - cursor: pointer; - display: inline-block; - line-height: 1; -} -.storybook-button--primary { - color: white; - background-color: #1ea7fd; -} -.storybook-button--secondary { - color: #333; - background-color: transparent; - box-shadow: rgba(0, 0, 0, 0.15) 0px 0px 0px 1px inset; -} -.storybook-button--small { - font-size: 12px; - padding: 10px 16px; -} -.storybook-button--medium { - font-size: 14px; - padding: 11px 20px; -} -.storybook-button--large { - font-size: 16px; - padding: 12px 24px; -} diff --git a/packages/ui/src/stories/header.css b/packages/ui/src/stories/header.css deleted file mode 100644 index d9a7052..0000000 --- a/packages/ui/src/stories/header.css +++ /dev/null @@ -1,32 +0,0 @@ -.storybook-header { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - border-bottom: 1px solid rgba(0, 0, 0, 0.1); - padding: 15px 20px; - display: flex; - align-items: center; - justify-content: space-between; -} - -.storybook-header svg { - display: inline-block; - vertical-align: top; -} - -.storybook-header h1 { - font-weight: 700; - font-size: 20px; - line-height: 1; - margin: 6px 0 6px 10px; - display: inline-block; - vertical-align: top; -} - -.storybook-header button + button { - margin-left: 10px; -} - -.storybook-header .welcome { - color: #333; - font-size: 14px; - margin-right: 10px; -} diff --git a/packages/ui/src/stories/page.css b/packages/ui/src/stories/page.css deleted file mode 100644 index 098dad1..0000000 --- a/packages/ui/src/stories/page.css +++ /dev/null @@ -1,69 +0,0 @@ -.storybook-page { - font-family: 'Nunito Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif; - font-size: 14px; - line-height: 24px; - padding: 48px 20px; - margin: 0 auto; - max-width: 600px; - color: #333; -} - -.storybook-page h2 { - font-weight: 700; - font-size: 32px; - line-height: 1; - margin: 0 0 4px; - display: inline-block; - vertical-align: top; -} - -.storybook-page p { - margin: 1em 0; -} - -.storybook-page a { - text-decoration: none; - color: #1ea7fd; -} - -.storybook-page ul { - padding-left: 30px; - margin: 1em 0; -} - -.storybook-page li { - margin-bottom: 8px; -} - -.storybook-page .tip { - display: inline-block; - border-radius: 1em; - font-size: 11px; - line-height: 12px; - font-weight: 700; - background: #e7fdd8; - color: #66bf3c; - padding: 4px 12px; - margin-right: 10px; - vertical-align: top; -} - -.storybook-page .tip-wrapper { - font-size: 13px; - line-height: 20px; - margin-top: 40px; - margin-bottom: 40px; -} - -.storybook-page .tip-wrapper svg { - display: inline-block; - height: 12px; - width: 12px; - margin-right: 4px; - vertical-align: top; - margin-top: 3px; -} - -.storybook-page .tip-wrapper svg path { - fill: #1ea7fd; -} From 056fffc1a4fc27e9723cc4ac755c13a738b1ded1 Mon Sep 17 00:00:00 2001 From: ElRodrigote Date: Tue, 18 Jun 2024 12:31:43 +0200 Subject: [PATCH 3/3] chore: update main SwaprUI page location --- packages/ui/src/{stories => }/SwaprUI.mdx | 0 packages/ui/src/{stories => }/assets/swapr-og.png | Bin 2 files changed, 0 insertions(+), 0 deletions(-) rename packages/ui/src/{stories => }/SwaprUI.mdx (100%) rename packages/ui/src/{stories => }/assets/swapr-og.png (100%) diff --git a/packages/ui/src/stories/SwaprUI.mdx b/packages/ui/src/SwaprUI.mdx similarity index 100% rename from packages/ui/src/stories/SwaprUI.mdx rename to packages/ui/src/SwaprUI.mdx diff --git a/packages/ui/src/stories/assets/swapr-og.png b/packages/ui/src/assets/swapr-og.png similarity index 100% rename from packages/ui/src/stories/assets/swapr-og.png rename to packages/ui/src/assets/swapr-og.png