From e74c02da7e6516df66e83c8c1cd6250a84d07189 Mon Sep 17 00:00:00 2001 From: Brokyeom Date: Fri, 11 Oct 2024 16:33:07 +0900 Subject: [PATCH 01/12] feat: add FieldBox --- packages/ui/FieldBox/FieldBox.tsx | 24 ++++++++++++++++++++++++ packages/ui/FieldBox/context.ts | 0 packages/ui/FieldBox/style.css.ts | 0 3 files changed, 24 insertions(+) create mode 100644 packages/ui/FieldBox/FieldBox.tsx create mode 100644 packages/ui/FieldBox/context.ts create mode 100644 packages/ui/FieldBox/style.css.ts diff --git a/packages/ui/FieldBox/FieldBox.tsx b/packages/ui/FieldBox/FieldBox.tsx new file mode 100644 index 0000000..4ac3d22 --- /dev/null +++ b/packages/ui/FieldBox/FieldBox.tsx @@ -0,0 +1,24 @@ +import { forwardRef } from 'react'; +import type { ReactNode } from 'react'; + +export interface FieldBoxProps { + topAddon?: ReactNode; + bottomAddon?: ReactNode; + children: ReactNode; +} + +const FieldBox = forwardRef((props, forwardedRef) => { + const { topAddon, bottomAddon, children, ...restProps } = props; + + return ( +
+
{topAddon}
+
{children}
+
{bottomAddon}
+
+ ); +}); + +FieldBox.displayName = 'FieldBox'; + +export default FieldBox; diff --git a/packages/ui/FieldBox/context.ts b/packages/ui/FieldBox/context.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/ui/FieldBox/style.css.ts b/packages/ui/FieldBox/style.css.ts new file mode 100644 index 0000000..e69de29 From be5a46a9f0e297eb33bc04e0fdd422f96eb56940 Mon Sep 17 00:00:00 2001 From: Brokyeom Date: Thu, 17 Oct 2024 20:34:57 +0900 Subject: [PATCH 02/12] feat: publish FieldBox.Label --- apps/docs/src/App.tsx | 38 ++++++++++++++++--------------- packages/ui/FieldBox/FieldBox.tsx | 16 +++++++------ packages/ui/FieldBox/Label.tsx | 27 ++++++++++++++++++++++ packages/ui/FieldBox/index.ts | 2 ++ packages/ui/FieldBox/style.css.ts | 21 +++++++++++++++++ packages/ui/index.ts | 2 +- 6 files changed, 80 insertions(+), 26 deletions(-) create mode 100644 packages/ui/FieldBox/Label.tsx create mode 100644 packages/ui/FieldBox/index.ts diff --git a/apps/docs/src/App.tsx b/apps/docs/src/App.tsx index 5762399..07dbbab 100644 --- a/apps/docs/src/App.tsx +++ b/apps/docs/src/App.tsx @@ -1,16 +1,16 @@ -import "./App.css"; +import './App.css'; -import { ChangeEvent, useState } from "react"; +import { ChangeEvent, useState } from 'react'; -import SearchField from "../../../packages/ui/Input/SearchField"; -import { Test } from "@sopt-makers/ui"; -import TextArea from "../../../packages/ui/Input/TextArea"; -import TextField from "../../../packages/ui/Input/TextField"; +import '@sopt-makers/ui/dist/index.css'; + +import { FieldBox, SearchField, Test, TextArea, TextField } from '@sopt-makers/ui'; +import { colors } from '@sopt-makers/colors'; function App() { - const [input, setInput] = useState(""); - const [textarea, setTextarea] = useState(""); - const [search, setSearch] = useState(""); + const [input, setInput] = useState(''); + const [textarea, setTextarea] = useState(''); + const [search, setSearch] = useState(''); const handleInputChange = (e: ChangeEvent) => { setInput(e.target.value); @@ -43,39 +43,41 @@ function App() { }; const handleSearchReset = () => { - setSearch(""); + setSearch(''); }; return ( <> - + - placeholder="Placeholder..." + placeholder='Placeholder...' required - labelText="Label" - descriptionText="description" + labelText='Label' + descriptionText='description' validationFn={inputValidation} value={input} onChange={handleInputChange} />