diff --git a/apps/docs/CHANGELOG.md b/apps/docs/CHANGELOG.md
index 2347d98e..dcd09b4b 100644
--- a/apps/docs/CHANGELOG.md
+++ b/apps/docs/CHANGELOG.md
@@ -1,5 +1,20 @@
# docs
+## 0.0.12
+
+### Patch Changes
+
+- Updated dependencies [f16c80e]
+ - @sopt-makers/ui@2.7.3
+
+## 0.0.11
+
+### Patch Changes
+
+- Updated dependencies [17b473b]
+ - @sopt-makers/icons@1.0.6
+ - @sopt-makers/ui@2.7.2
+
## 0.0.10
### Patch Changes
diff --git a/apps/docs/package.json b/apps/docs/package.json
index d9b252c5..33baac34 100644
--- a/apps/docs/package.json
+++ b/apps/docs/package.json
@@ -1,7 +1,7 @@
{
"name": "docs",
"private": true,
- "version": "0.0.10",
+ "version": "0.0.12",
"type": "module",
"scripts": {
"dev": "vite",
diff --git a/apps/docs/src/App.tsx b/apps/docs/src/App.tsx
index 8054a7d3..bdafc9d1 100644
--- a/apps/docs/src/App.tsx
+++ b/apps/docs/src/App.tsx
@@ -4,7 +4,7 @@ import { ChangeEvent, useState } from 'react';
import '@sopt-makers/ui/dist/index.css';
-import { FieldBox, SearchField, Test, TextArea, TextField } from '@sopt-makers/ui';
+import { FieldBox, SearchField, Test, TextArea, TextField, SelectV2 } from '@sopt-makers/ui';
import { colors } from '@sopt-makers/colors';
function App() {
@@ -46,6 +46,11 @@ function App() {
setSearch('');
};
+ const options = [
+ { label: 'Option 1', value: 'option1' },
+ { label: 'Option 2', value: 'option2' },
+ ];
+
return (
<>
@@ -88,6 +93,30 @@ function App() {
>
여긴 본문
+
+ {
+ console.log('dsad');
+ }}
+ type='text'
+ >
+
+
+
+
+ {options.map((option) => (
+ {
+ console.log('custom logic');
+ }}
+ />
+ ))}
+
+
+
>
);
}
diff --git a/apps/docs/src/stories/Icons.stories.tsx b/apps/docs/src/stories/Icons.stories.tsx
index 89b58898..115b46b0 100644
--- a/apps/docs/src/stories/Icons.stories.tsx
+++ b/apps/docs/src/stories/Icons.stories.tsx
@@ -1,8 +1,8 @@
import * as Icons from '@sopt-makers/icons';
export default {
- title: 'icons/Icons'
-}
+ title: 'icons/Icons',
+};
export const Default = {
argTypes: {
@@ -11,182 +11,616 @@ export const Default = {
render: (props: { color: string }) => {
const style = { width: 24, height: 24, color: props.color };
- return
-
-
Communication
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ return (
+
+
+
Communication
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
Editor
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
Editor
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
Feedback
-
-
-
-
-
-
-
-
-
-
+
+
Feedback
+
+
+
+
+
+
+
+
+
+
-
-
Files
-
-
-
-
-
-
-
-
-
-
-
-
+
+
Files
+
+
+
+
+
+
+
+
+
+
+
+
-
-
General
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
General
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
Interaction
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
Interaction
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
Media
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
Media
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
Time
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
Time
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
Users
-
-
-
-
-
-
-
-
-
-
-
+
+
Users
+
+
+
+
+
+
+
+
+
+
+
+
-
- }
-};
\ No newline at end of file
+ );
+ },
+};
diff --git a/packages/icons/CHANGELOG.md b/packages/icons/CHANGELOG.md
index 05ca1405..4db71a4e 100644
--- a/packages/icons/CHANGELOG.md
+++ b/packages/icons/CHANGELOG.md
@@ -1,5 +1,11 @@
# @sopt-makers/icons
+## 1.0.6
+
+### Patch Changes
+
+- 17b473b: birthday phone 아이콘 추가
+
## 1.0.5
### Patch Changes
diff --git a/packages/icons/package.json b/packages/icons/package.json
index 23ca8344..65d55621 100644
--- a/packages/icons/package.json
+++ b/packages/icons/package.json
@@ -1,6 +1,6 @@
{
"name": "@sopt-makers/icons",
- "version": "1.0.5",
+ "version": "1.0.6",
"description": "sopt-makers의 frontend repository에 사용되는 icons를 제공해요.",
"main": "./dist/index.js",
"module": "./dist/index.mjs",
diff --git a/packages/icons/src/Communication/ic-birthday-primary.tsx b/packages/icons/src/Communication/ic-birthday-primary.tsx
new file mode 100644
index 00000000..68068826
--- /dev/null
+++ b/packages/icons/src/Communication/ic-birthday-primary.tsx
@@ -0,0 +1,38 @@
+import { HTMLAttributes, forwardRef } from 'react';
+
+interface IconBirthdayPrimaryProps extends HTMLAttributes
{}
+
+const IconBirthdayPrimary = forwardRef((props, ref) => {
+ return (
+
+ );
+});
+
+export default IconBirthdayPrimary;
diff --git a/packages/icons/src/Communication/ic-birthday-secondary.tsx b/packages/icons/src/Communication/ic-birthday-secondary.tsx
new file mode 100644
index 00000000..a79af7dd
--- /dev/null
+++ b/packages/icons/src/Communication/ic-birthday-secondary.tsx
@@ -0,0 +1,30 @@
+import { HTMLAttributes, forwardRef } from 'react';
+
+interface IconBirthdaySecondaryProps extends HTMLAttributes {}
+
+const IconBirthdaySecondary = forwardRef((props, ref) => {
+ return (
+
+ );
+});
+
+export default IconBirthdaySecondary;
diff --git a/packages/icons/src/Communication/ic-phone.tsx b/packages/icons/src/Communication/ic-phone.tsx
new file mode 100644
index 00000000..638805d8
--- /dev/null
+++ b/packages/icons/src/Communication/ic-phone.tsx
@@ -0,0 +1,19 @@
+import { HTMLAttributes, forwardRef } from 'react';
+
+interface IconPhoneProps extends HTMLAttributes {}
+
+const IconPhone = forwardRef((props, ref) => {
+ return (
+
+ );
+});
+
+export default IconPhone;
diff --git a/packages/icons/src/Communication/index.ts b/packages/icons/src/Communication/index.ts
index cec95771..e162222a 100644
--- a/packages/icons/src/Communication/index.ts
+++ b/packages/icons/src/Communication/index.ts
@@ -1,18 +1,21 @@
-export { default as IconArchive } from "./ic-archive";
-export { default as IconBookMark } from "./ic-bookmark";
-export { default as IconEdit } from "./ic-edit";
-export { default as IconEyeOff } from "./ic-eye-off";
-export { default as IconEye } from "./ic-eye";
-export { default as IconMail } from "./ic-mail";
-export { default as IconMento } from "./ic-mento";
-export { default as IconMessageAlert } from "./ic-message-alert";
-export { default as IconMessageChat } from "./ic-message-chat";
-export { default as IconMessageCheck } from "./ic-message-check";
-export { default as IconMessageDots } from "./ic-message-dots";
-export { default as IconMessagePlus } from "./ic-message-plus";
-export { default as IconMessageQuestion } from "./ic-message-question";
-export { default as IconMessageSquare } from "./ic-message-square";
-export { default as IconMessageText } from "./ic-message-text";
-export { default as IconMessageX } from "./ic-message-x";
-export { default as IconPin } from "./ic-pin";
-export { default as IconSend } from "./ic-send";
+export { default as IconArchive } from './ic-archive';
+export { default as IconBirthdayPrimary } from './ic-birthday-primary';
+export { default as IconBirthdaySecondary } from './ic-birthday-secondary';
+export { default as IconBookMark } from './ic-bookmark';
+export { default as IconEdit } from './ic-edit';
+export { default as IconEyeOff } from './ic-eye-off';
+export { default as IconEye } from './ic-eye';
+export { default as IconMail } from './ic-mail';
+export { default as IconMento } from './ic-mento';
+export { default as IconMessageAlert } from './ic-message-alert';
+export { default as IconMessageChat } from './ic-message-chat';
+export { default as IconMessageCheck } from './ic-message-check';
+export { default as IconMessageDots } from './ic-message-dots';
+export { default as IconMessagePlus } from './ic-message-plus';
+export { default as IconMessageQuestion } from './ic-message-question';
+export { default as IconMessageSquare } from './ic-message-square';
+export { default as IconMessageText } from './ic-message-text';
+export { default as IconMessageX } from './ic-message-x';
+export { default as IconPhone } from './ic-phone';
+export { default as IconPin } from './ic-pin';
+export { default as IconSend } from './ic-send';
diff --git a/packages/ui/CHANGELOG.md b/packages/ui/CHANGELOG.md
index 8daf7d59..25bd4253 100644
--- a/packages/ui/CHANGELOG.md
+++ b/packages/ui/CHANGELOG.md
@@ -1,5 +1,18 @@
# @sopt-makers/ui
+## 2.7.3
+
+### Patch Changes
+
+- f16c80e: select classname prop 추가
+
+## 2.7.2
+
+### Patch Changes
+
+- Updated dependencies [17b473b]
+ - @sopt-makers/icons@1.0.6
+
## 2.7.1
### Patch Changes
diff --git a/packages/ui/Input/Select.tsx b/packages/ui/Input/Select.tsx
index 8cb7d46e..1e964b69 100644
--- a/packages/ui/Input/Select.tsx
+++ b/packages/ui/Input/Select.tsx
@@ -144,18 +144,18 @@ function SelectTrigger({ children }: SelectTriggerProps) {
}
interface SelectTriggerContentProps {
- className?: string;
placeholder?: string;
+ className?: string;
}
// Select.TriggerContent 컴포넌트: trigger의 미리 정의된 UI
-function SelectTriggerContent({ className, placeholder }: SelectTriggerContentProps) {
+function SelectTriggerContent({ placeholder, className }: SelectTriggerContentProps) {
const { open, selected } = useSelectContext();
const selectedLabel = selected ? selected.label : placeholder;
return (
-
+
{selectedLabel}
+
);
@@ -191,10 +192,11 @@ function SelectMenu({ children }: SelectMenuProps) {
interface SelectMenuItemProps {
option: Option;
onClick?: () => void;
+ className?: string;
}
// SelectMenuItem 컴포넌트: 옵션 목록 하나의 UI
-function SelectMenuItem({ option, onClick }: SelectMenuItemProps) {
+function SelectMenuItem({ option, onClick, className }: SelectMenuItemProps) {
const { open, type, handleOptionClick } = useSelectContext();
const handleClick = () => {
@@ -211,7 +213,7 @@ function SelectMenuItem({ option, onClick }: SelectMenuItemProps) {
return (
-