From f3d538f48f05167b4b5f30731d22dd048b755f7d Mon Sep 17 00:00:00 2001 From: Roy Sivan Date: Thu, 24 Mar 2022 09:33:06 -0400 Subject: [PATCH 1/3] Adding folder structure & imports --- contributionsguide.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/contributionsguide.md b/contributionsguide.md index f9713d8..be55807 100644 --- a/contributionsguide.md +++ b/contributionsguide.md @@ -101,6 +101,18 @@ We've provided a more extensive resource on building the best commit messages -
+### Folder Structures for import ### +Folder structure for new components & how imports should work with setup +``` +/src/packages/[Component]/src +\- index.tsx +\- Readme + +/src/packages/[Component]/src/[Sub-Component]/ + +import { Component, SubComponent, SubComponentTwo } from '@sexui/component'; +``` + #### **Contributions Credit** Every approved contributor appears on the insights of the project and is allowed to use SexyUI for a portfolio or resume reference. From e334a4bbc5a4eba258b4d30739706d92e5682f0e Mon Sep 17 00:00:00 2001 From: Ashish Kumar Tewari Date: Thu, 24 Mar 2022 19:44:42 +0530 Subject: [PATCH 2/3] Refactored Tabs, Input folders and other relevant file updates --- src/packages/Input/index.ts | 4 +- .../Input/{ => src/Input}/Input.props.tsx | 2 +- .../Input/{ => src/Input}/Input.stories.tsx | 0 .../Input/{ => src/Input}/Input.styled.tsx | 4 +- src/packages/Input/{ => src/Input}/Input.tsx | 0 src/packages/tabs/index.ts | 9 ++-- src/packages/tabs/src/Tab/Tab.styled.tsx | 13 +++++ src/packages/tabs/src/{ => Tab}/Tab.tsx | 20 ++----- .../tabs/src/{ => TabContent}/TabContent.tsx | 3 +- .../tabs/src/TabList/TabList.styled.tsx | 8 +++ .../tabs/src/{ => TabList}/TabList.tsx | 15 ++---- src/packages/tabs/src/TabPanels.tsx | 17 ------ .../tabs/src/TabPanels/TabPanels.styled.tsx | 6 +++ src/packages/tabs/src/TabPanels/TabPanels.tsx | 6 +++ src/packages/tabs/src/Tabs.tsx | 28 ---------- src/packages/tabs/src/Tabs/Tabs.props.tsx | 3 ++ src/packages/tabs/src/Tabs/Tabs.stories.tsx | 52 +++++++++++++++++++ src/packages/tabs/src/Tabs/Tabs.styled.tsx | 8 +++ src/packages/tabs/src/Tabs/Tabs.tsx | 18 +++++++ src/packages/tabs/src/UseCaseTabs.tsx | 10 ++-- src/packages/tabs/stories/tab.stories.tsx | 1 - 21 files changed, 138 insertions(+), 89 deletions(-) rename src/packages/Input/{ => src/Input}/Input.props.tsx (90%) rename src/packages/Input/{ => src/Input}/Input.stories.tsx (100%) rename src/packages/Input/{ => src/Input}/Input.styled.tsx (78%) rename src/packages/Input/{ => src/Input}/Input.tsx (100%) create mode 100644 src/packages/tabs/src/Tab/Tab.styled.tsx rename src/packages/tabs/src/{ => Tab}/Tab.tsx (68%) rename src/packages/tabs/src/{ => TabContent}/TabContent.tsx (86%) create mode 100644 src/packages/tabs/src/TabList/TabList.styled.tsx rename src/packages/tabs/src/{ => TabList}/TabList.tsx (64%) delete mode 100644 src/packages/tabs/src/TabPanels.tsx create mode 100644 src/packages/tabs/src/TabPanels/TabPanels.styled.tsx create mode 100644 src/packages/tabs/src/TabPanels/TabPanels.tsx delete mode 100644 src/packages/tabs/src/Tabs.tsx create mode 100644 src/packages/tabs/src/Tabs/Tabs.props.tsx create mode 100644 src/packages/tabs/src/Tabs/Tabs.stories.tsx create mode 100644 src/packages/tabs/src/Tabs/Tabs.styled.tsx create mode 100644 src/packages/tabs/src/Tabs/Tabs.tsx delete mode 100644 src/packages/tabs/stories/tab.stories.tsx diff --git a/src/packages/Input/index.ts b/src/packages/Input/index.ts index 9f8acab..c097bd8 100644 --- a/src/packages/Input/index.ts +++ b/src/packages/Input/index.ts @@ -1,2 +1,2 @@ -export { Input } from "./Input"; -export type { InputProps } from "./Input.props"; +export { Input } from "./src/Input/Input"; +export type { InputProps } from "./src/Input/Input.props"; diff --git a/src/packages/Input/Input.props.tsx b/src/packages/Input/src/Input/Input.props.tsx similarity index 90% rename from src/packages/Input/Input.props.tsx rename to src/packages/Input/src/Input/Input.props.tsx index e7fd1cf..3ea67d1 100644 --- a/src/packages/Input/Input.props.tsx +++ b/src/packages/Input/src/Input/Input.props.tsx @@ -1,4 +1,4 @@ -import { SizeType } from "../../utils/types.util"; +import { SizeType } from "../../../../utils/types.util"; export interface InputProps extends Omit, "type"> { diff --git a/src/packages/Input/Input.stories.tsx b/src/packages/Input/src/Input/Input.stories.tsx similarity index 100% rename from src/packages/Input/Input.stories.tsx rename to src/packages/Input/src/Input/Input.stories.tsx diff --git a/src/packages/Input/Input.styled.tsx b/src/packages/Input/src/Input/Input.styled.tsx similarity index 78% rename from src/packages/Input/Input.styled.tsx rename to src/packages/Input/src/Input/Input.styled.tsx index 8ed6534..0385e89 100644 --- a/src/packages/Input/Input.styled.tsx +++ b/src/packages/Input/src/Input/Input.styled.tsx @@ -1,7 +1,7 @@ import styled from "styled-components"; +import { setFontSize } from "../../../../utils/styles.util"; +import { darkTheme } from "../../../../utils/theme.util"; import { InputProps } from "./Input.props"; -import { darkTheme } from "../../utils/theme.util"; -import { setFontSize } from "../../utils/styles.util"; export const StyledInput = styled.input` ${(props: InputProps) => setFontSize(props.sizeVariant)} diff --git a/src/packages/Input/Input.tsx b/src/packages/Input/src/Input/Input.tsx similarity index 100% rename from src/packages/Input/Input.tsx rename to src/packages/Input/src/Input/Input.tsx diff --git a/src/packages/tabs/index.ts b/src/packages/tabs/index.ts index 9074cfc..cd4c3f0 100644 --- a/src/packages/tabs/index.ts +++ b/src/packages/tabs/index.ts @@ -1,4 +1,5 @@ - -// @ts-ignore - -export * from "./src"; \ No newline at end of file +export { Tab } from "./src/Tab/Tab"; +export { Tabs } from "./src/Tabs/Tabs"; +export { TabList } from "./src/TabList/TabList"; +export { TabPanels } from "./src/TabPanels/TabPanels"; +export { TabContent } from "./src/TabContent/TabContent"; diff --git a/src/packages/tabs/src/Tab/Tab.styled.tsx b/src/packages/tabs/src/Tab/Tab.styled.tsx new file mode 100644 index 0000000..b4f8186 --- /dev/null +++ b/src/packages/tabs/src/Tab/Tab.styled.tsx @@ -0,0 +1,13 @@ +import styled from "styled-components"; + +export const StyledTab = styled.div` + display: flex; + flex-direction: column; + border: 1px solid blue; + height: 5vh; + width: 10vw; + border-radius: 20px; + background-color: blanchedalmond; + text-align: center; + font-size: 1rem; +`; diff --git a/src/packages/tabs/src/Tab.tsx b/src/packages/tabs/src/Tab/Tab.tsx similarity index 68% rename from src/packages/tabs/src/Tab.tsx rename to src/packages/tabs/src/Tab/Tab.tsx index 2030a7b..913a1a5 100644 --- a/src/packages/tabs/src/Tab.tsx +++ b/src/packages/tabs/src/Tab/Tab.tsx @@ -1,19 +1,7 @@ import { useContext } from "react"; -import styled from "styled-components"; -import { MyStore } from "../context/myStore"; +import { MyStore } from "../../context/myStore"; import { useEffect } from "react"; - -export const TabMain = styled.div` - display: flex; - flex-direction: column; - border: 1px solid blue; - height: 5vh; - width: 10vw; - border-radius: 20px; - background-color: blanchedalmond; - text-align: center; - font-size: 1rem; -`; +import { StyledTab } from "./Tab.styled"; /* The Tab component accepts two elements into the 'children' array @@ -39,8 +27,8 @@ export const Tab: any = ({ children }: any) => { }; return ( - + {children[0]} - + ); }; diff --git a/src/packages/tabs/src/TabContent.tsx b/src/packages/tabs/src/TabContent/TabContent.tsx similarity index 86% rename from src/packages/tabs/src/TabContent.tsx rename to src/packages/tabs/src/TabContent/TabContent.tsx index 6d0580c..a646e18 100644 --- a/src/packages/tabs/src/TabContent.tsx +++ b/src/packages/tabs/src/TabContent/TabContent.tsx @@ -1,6 +1,5 @@ import { useContext, useEffect } from "react"; -import { MyStore } from "../context/myStore"; -import { useStore } from "../context/useStore"; +import { MyStore } from "../../context/myStore"; /* This component displays content received from the context store diff --git a/src/packages/tabs/src/TabList/TabList.styled.tsx b/src/packages/tabs/src/TabList/TabList.styled.tsx new file mode 100644 index 0000000..f2da832 --- /dev/null +++ b/src/packages/tabs/src/TabList/TabList.styled.tsx @@ -0,0 +1,8 @@ +import styled from "styled-components"; + +export const StyledTabList = styled.div` + display: flex; + width: 100%; + height: 30%; + gap: 70px; +`; diff --git a/src/packages/tabs/src/TabList.tsx b/src/packages/tabs/src/TabList/TabList.tsx similarity index 64% rename from src/packages/tabs/src/TabList.tsx rename to src/packages/tabs/src/TabList/TabList.tsx index 910902b..4b6818c 100644 --- a/src/packages/tabs/src/TabList.tsx +++ b/src/packages/tabs/src/TabList/TabList.tsx @@ -1,17 +1,10 @@ -import styled from "styled-components"; import { useEffect, useContext } from "react"; -import { useStore, Store } from "../context/useStore"; -import { MyStore } from "../context/myStore"; +import { useStore, Store } from "../../context/useStore"; +import { MyStore } from "../../context/myStore"; +import { StyledTabList } from "./TabList.styled"; // Wrapper for tab components inside Tabs** -const ListedTabs = styled.div` - display: flex; - width: 100%; - height: 30%; - gap: 70px; -`; - /* We use this component to set the default starting value of the `TabContent` component to be the content in the first instance @@ -29,5 +22,5 @@ export const TabList: any = ({ children }: any) => { myStore.setContent(children[store.selectedTab].props.children[1].props); }, []); - return {children}; + return {children}; }; diff --git a/src/packages/tabs/src/TabPanels.tsx b/src/packages/tabs/src/TabPanels.tsx deleted file mode 100644 index c453aa8..0000000 --- a/src/packages/tabs/src/TabPanels.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react'; -import styled from 'styled-components'; - - -const Panel = styled.div` - display: flex; - flex-direction: row; - -` - -export const TabPanels:any = ({children}:any) => { - return ( - - {children} - - ) -} diff --git a/src/packages/tabs/src/TabPanels/TabPanels.styled.tsx b/src/packages/tabs/src/TabPanels/TabPanels.styled.tsx new file mode 100644 index 0000000..7ea8dbc --- /dev/null +++ b/src/packages/tabs/src/TabPanels/TabPanels.styled.tsx @@ -0,0 +1,6 @@ +import styled from "styled-components"; + +export const StyledTabPanels = styled.div` + display: flex; + flex-direction: row; +`; diff --git a/src/packages/tabs/src/TabPanels/TabPanels.tsx b/src/packages/tabs/src/TabPanels/TabPanels.tsx new file mode 100644 index 0000000..1d1a325 --- /dev/null +++ b/src/packages/tabs/src/TabPanels/TabPanels.tsx @@ -0,0 +1,6 @@ +import React from "react"; +import { StyledTabPanels } from "./TabPanels.styled"; + +export const TabPanels: any = ({ children }: any) => { + return {children}; +}; diff --git a/src/packages/tabs/src/Tabs.tsx b/src/packages/tabs/src/Tabs.tsx deleted file mode 100644 index cc9a1b0..0000000 --- a/src/packages/tabs/src/Tabs.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import styled from "styled-components"; -import { MyStore } from "../context/myStore"; -import { useStore } from "../context/useStore"; - -export const TabsComponent = styled.div` - display: flex; - flex-direction: column; - gap: 30px; - height: 50vh; -`; - -/* Tabs is wrapper component that holds list of tab topics and - contents for each tab in a different wrapper -*/ - -interface Props { - children?: any; -} - -export const Tabs = ({ children }: Props) => { - const myStore = useStore(); - return ( - // Store provider for hydrating tab content - - {children}; - - ); -}; diff --git a/src/packages/tabs/src/Tabs/Tabs.props.tsx b/src/packages/tabs/src/Tabs/Tabs.props.tsx new file mode 100644 index 0000000..f8d01c2 --- /dev/null +++ b/src/packages/tabs/src/Tabs/Tabs.props.tsx @@ -0,0 +1,3 @@ +export interface TabsProps { + children?: any; +} diff --git a/src/packages/tabs/src/Tabs/Tabs.stories.tsx b/src/packages/tabs/src/Tabs/Tabs.stories.tsx new file mode 100644 index 0000000..72dac40 --- /dev/null +++ b/src/packages/tabs/src/Tabs/Tabs.stories.tsx @@ -0,0 +1,52 @@ +import React from "react"; +import { ComponentStory, ComponentMeta } from "@storybook/react"; +import { Tabs } from "./Tabs"; +import { TabList } from "../TabList/TabList"; +import { TitleWrapper } from "../wrappers/TitleWrapper"; +import { Tab } from "../Tab/Tab"; +import { ContentWrapper } from "../wrappers/ContentWrapper"; +import { TabPanels } from "../TabPanels/TabPanels"; +import { TabContent } from "../TabContent/TabContent"; + +export default { + title: "Tabs", + component: Tabs, + parameters: { + docs: { + description: { + component: "Tabs Component", + }, + }, + }, +} as ComponentMeta; + +const Template: ComponentStory = (args) => ( + + + + One + +

Welcome to Tab 1

+
+
+ + Two + +

Welcome to Tab 2

+
+
+ + Three + +

Welcome to Tab 3

+
+
+
+ + + + +
+); + +export const ExampleTab = Template.bind({}); diff --git a/src/packages/tabs/src/Tabs/Tabs.styled.tsx b/src/packages/tabs/src/Tabs/Tabs.styled.tsx new file mode 100644 index 0000000..5ae3fa9 --- /dev/null +++ b/src/packages/tabs/src/Tabs/Tabs.styled.tsx @@ -0,0 +1,8 @@ +import styled from "styled-components"; + +export const StyledTabs = styled.div` + display: flex; + flex-direction: column; + gap: 30px; + height: 50vh; +`; diff --git a/src/packages/tabs/src/Tabs/Tabs.tsx b/src/packages/tabs/src/Tabs/Tabs.tsx new file mode 100644 index 0000000..cea0733 --- /dev/null +++ b/src/packages/tabs/src/Tabs/Tabs.tsx @@ -0,0 +1,18 @@ +import { MyStore } from "../../context/myStore"; +import { useStore } from "../../context/useStore"; +import { TabsProps } from "./Tabs.props"; +import { StyledTabs } from "./Tabs.styled"; + +/* Tabs is wrapper component that holds list of tab topics and + contents for each tab in a different wrapper +*/ + +export const Tabs = ({ children }: TabsProps) => { + const myStore = useStore(); + return ( + // Store provider for hydrating tab content + + {children}; + + ); +}; diff --git a/src/packages/tabs/src/UseCaseTabs.tsx b/src/packages/tabs/src/UseCaseTabs.tsx index d5a0b04..9bc403f 100644 --- a/src/packages/tabs/src/UseCaseTabs.tsx +++ b/src/packages/tabs/src/UseCaseTabs.tsx @@ -1,8 +1,8 @@ -import { Tabs } from "./Tabs"; -import { TabList } from "./TabList"; -import { Tab } from "./Tab"; -import { TabPanels } from "./TabPanels"; -import { TabContent } from "./TabContent"; +import { Tabs } from "./Tabs/Tabs"; +import { TabList } from "./TabList/TabList"; +import { Tab } from "./Tab/Tab"; +import { TabPanels } from "./TabPanels/TabPanels"; +import { TabContent } from "./TabContent/TabContent"; import { TitleWrapper } from "./wrappers/TitleWrapper"; import { ContentWrapper } from "./wrappers/ContentWrapper"; diff --git a/src/packages/tabs/stories/tab.stories.tsx b/src/packages/tabs/stories/tab.stories.tsx deleted file mode 100644 index 693da49..0000000 --- a/src/packages/tabs/stories/tab.stories.tsx +++ /dev/null @@ -1 +0,0 @@ -export {} \ No newline at end of file From 7e02857553ee1dfa31cb629edf367b6a136bd3d4 Mon Sep 17 00:00:00 2001 From: Ashish Kumar Tewari Date: Thu, 24 Mar 2022 19:53:05 +0530 Subject: [PATCH 3/3] Added Input README --- src/packages/Input/README.md | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/packages/Input/README.md diff --git a/src/packages/Input/README.md b/src/packages/Input/README.md new file mode 100644 index 0000000..2306af4 --- /dev/null +++ b/src/packages/Input/README.md @@ -0,0 +1,46 @@ +# @sexy-ui/Input + +A custom input component + +The `Input` is a component that is used to get user input in a text field. + +## Installation + +```sh +yarn add @sexy-ui/Input + +# or + +npm i @sexy-ui/Input +``` + +## Import components + +```jsx +import { Input } from "@sexy-ui/react"; +``` + +## Usage + +```jsx + +``` + +### Input Style variants and color schemes + +Input can be displayed with a few different variants for styling! + +```jsx +... + +... +``` + +### Input sizes + +You can change the size of the sliders by passing `sizeVariant` prop. We support 3 sizes +`small`, `medium`, `large` + +### Input types + +We support all basic input types