@wishket/design-system 1.17.2 → 1.17.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/README.md +13 -0
  2. package/dist/Components/Base/TextWithIcons/TextWithIcons.d.ts +10 -0
  3. package/dist/Components/Base/TextWithIcons/TextWithIcons.js +2 -0
  4. package/dist/Components/Base/TextWithIcons/index.d.ts +1 -0
  5. package/dist/Components/DataDisplays/Accordion/Accordion.d.ts +33 -0
  6. package/dist/Components/DataDisplays/Accordion/Accordion.js +58 -0
  7. package/dist/Components/DataDisplays/Accordion/index.d.ts +1 -0
  8. package/dist/Components/DataDisplays/index.d.ts +1 -0
  9. package/dist/Components/Feedbacks/MessageBar/MessageBar.js +5 -5
  10. package/dist/Components/Feedbacks/MessageBox/MessageBox.js +6 -6
  11. package/dist/Components/Feedbacks/MessageBox/MessageBox.parts.js +2 -2
  12. package/dist/Components/Feedbacks/SnackBar/SnackBar.js +10 -10
  13. package/dist/Components/Inputs/AutoCompleteList/AutoCompleteList.js +3 -3
  14. package/dist/Components/Inputs/Autocomplete/Autocomplete.js +1 -1
  15. package/dist/Components/Inputs/Button/Button.parts.js +1 -1
  16. package/dist/Components/Inputs/Calendar/Calendar.js +6 -6
  17. package/dist/Components/Inputs/Calendar/Calendar.parts.js +1 -1
  18. package/dist/Components/Inputs/Checkbox/Checkbox.js +5 -5
  19. package/dist/Components/Inputs/Checkbox/Checkbox.parts.d.ts +1 -1
  20. package/dist/Components/Inputs/Checkbox/Checkbox.parts.js +2 -4
  21. package/dist/Components/Inputs/CheckboxCard/CheckboxCard.d.ts +2 -2
  22. package/dist/Components/Inputs/CheckboxCard/CheckboxCard.js +6 -6
  23. package/dist/Components/Inputs/CheckboxCard/CheckboxCard.parts.js +2 -2
  24. package/dist/Components/Inputs/ChoiceChip/ChoiceChip.js +3 -3
  25. package/dist/Components/Inputs/CommentArea/CommentArea.js +9 -9
  26. package/dist/Components/Inputs/FilterChip/FilterChip.js +5 -5
  27. package/dist/Components/Inputs/FilterList/FilterList.js +5 -5
  28. package/dist/Components/Inputs/IconButtonDropdown/IconButtonDropdown.js +3 -3
  29. package/dist/Components/Inputs/Input/LabelInput.d.ts +9 -0
  30. package/dist/Components/Inputs/Input/{LableInput.js → LabelInput.js} +4 -4
  31. package/dist/Components/Inputs/Input/PasswordInput.js +1 -1
  32. package/dist/Components/Inputs/Input/index.d.ts +2 -2
  33. package/dist/Components/Inputs/InputChip/InputChip.js +3 -3
  34. package/dist/Components/Inputs/List/List.js +4 -4
  35. package/dist/Components/Inputs/Radio/Radio.d.ts +14 -8
  36. package/dist/Components/Inputs/Radio/Radio.js +20 -14
  37. package/dist/Components/Inputs/Radio/index.d.ts +1 -1
  38. package/dist/Components/Inputs/Radio/types.d.ts +8 -0
  39. package/dist/Components/Inputs/RadioCard/RadioCard.js +6 -6
  40. package/dist/Components/Inputs/RadioCard/RadioCard.parts.d.ts +3 -3
  41. package/dist/Components/Inputs/RadioCard/RadioCard.parts.js +4 -4
  42. package/dist/Components/Inputs/RadioCard/RadioCard.types.d.ts +8 -8
  43. package/dist/Components/Inputs/RadioGroup/RadioGroup.d.ts +3 -3
  44. package/dist/Components/Inputs/RadioGroup/RadioGroup.js +2 -2
  45. package/dist/Components/Inputs/RadioList/RadioList.d.ts +2 -2
  46. package/dist/Components/Inputs/RadioList/RadioList.js +2 -2
  47. package/dist/Components/Inputs/RadioList/RadioList.types.d.ts +3 -2
  48. package/dist/Components/Inputs/RadioList/parts/RadioListItem.d.ts +4 -7
  49. package/dist/Components/Inputs/RadioList/parts/RadioListItem.js +3 -3
  50. package/dist/Components/Inputs/SearchField/SearchField.js +4 -4
  51. package/dist/Components/Inputs/TextButton/TextButton.js +3 -4
  52. package/dist/Components/Inputs/TextButtonDropdown/TextButtonDropdown.parts.js +1 -1
  53. package/dist/Components/Inputs/TextField/TextField.d.ts +6 -6
  54. package/dist/Components/Inputs/TextField/TextField.js +7 -7
  55. package/dist/Components/Inputs/TextFieldContainer/TextFieldContainer.js +1 -1
  56. package/dist/Components/Inputs/TextFieldDropdown/TextFieldDropdown.parts.js +3 -3
  57. package/dist/Components/Inputs/Textarea/Textarea.js +3 -3
  58. package/dist/Components/Navigations/GNBList/GNBList.parts.js +1 -1
  59. package/dist/Components/Navigations/Menu/Menu.js +3 -3
  60. package/dist/Components/Navigations/Pagination/Pagination.parts.js +1 -1
  61. package/dist/Components/Navigations/TextLink/TextLink.d.ts +66 -0
  62. package/dist/Components/Navigations/TextLink/TextLink.js +61 -0
  63. package/dist/Components/Navigations/TextLink/index.d.ts +1 -0
  64. package/dist/Components/Navigations/TextTab/TextTab.parts.js +5 -5
  65. package/dist/Components/Navigations/index.d.ts +1 -0
  66. package/dist/Components/Wrappers/WithBadge/WithBadge.js +2 -2
  67. package/dist/Components/Wrappers/WithRichTooltip/WithRichTooltip.js +3 -3
  68. package/dist/Components/Wrappers/WithSnackBar/WithSnackBar.js +1 -1
  69. package/dist/cjs/Components/Base/TextWithIcons/TextWithIcons.js +2 -0
  70. package/dist/cjs/Components/DataDisplays/Accordion/Accordion.js +58 -0
  71. package/dist/cjs/Components/Feedbacks/MessageBar/MessageBar.js +47 -5
  72. package/dist/cjs/Components/Feedbacks/MessageBox/MessageBox.js +38 -3
  73. package/dist/cjs/Components/Feedbacks/MessageBox/MessageBox.parts.js +1 -1
  74. package/dist/cjs/Components/Feedbacks/SnackBar/SnackBar.js +6 -6
  75. package/dist/cjs/Components/Inputs/AutoCompleteList/AutoCompleteList.js +1 -1
  76. package/dist/cjs/Components/Inputs/Autocomplete/Autocomplete.js +1 -1
  77. package/dist/cjs/Components/Inputs/Button/Button.parts.js +2 -2
  78. package/dist/cjs/Components/Inputs/Calendar/Calendar.js +5 -5
  79. package/dist/cjs/Components/Inputs/Calendar/Calendar.parts.js +1 -1
  80. package/dist/cjs/Components/Inputs/Checkbox/Checkbox.js +4 -4
  81. package/dist/cjs/Components/Inputs/Checkbox/Checkbox.parts.js +2 -4
  82. package/dist/cjs/Components/Inputs/CheckboxCard/CheckboxCard.js +4 -4
  83. package/dist/cjs/Components/Inputs/CheckboxCard/CheckboxCard.parts.js +4 -4
  84. package/dist/cjs/Components/Inputs/ChoiceChip/ChoiceChip.js +4 -4
  85. package/dist/cjs/Components/Inputs/CommentArea/CommentArea.js +8 -8
  86. package/dist/cjs/Components/Inputs/FilterChip/FilterChip.js +4 -3
  87. package/dist/cjs/Components/Inputs/FilterList/FilterList.js +1 -1
  88. package/dist/cjs/Components/Inputs/IconButtonDropdown/IconButtonDropdown.js +3 -3
  89. package/dist/cjs/Components/Inputs/Input/{LableInput.js → LabelInput.js} +4 -4
  90. package/dist/cjs/Components/Inputs/Input/PasswordInput.js +3 -3
  91. package/dist/cjs/Components/Inputs/InputChip/InputChip.js +2 -2
  92. package/dist/cjs/Components/Inputs/List/List.js +1 -1
  93. package/dist/cjs/Components/Inputs/Radio/Radio.js +21 -15
  94. package/dist/cjs/Components/Inputs/RadioCard/RadioCard.js +4 -4
  95. package/dist/cjs/Components/Inputs/RadioCard/RadioCard.parts.js +4 -4
  96. package/dist/cjs/Components/Inputs/RadioGroup/RadioGroup.js +3 -3
  97. package/dist/cjs/Components/Inputs/RadioList/RadioList.js +3 -3
  98. package/dist/cjs/Components/Inputs/RadioList/parts/RadioListItem.js +3 -3
  99. package/dist/cjs/Components/Inputs/SearchField/SearchField.js +4 -4
  100. package/dist/cjs/Components/Inputs/TextButton/TextButton.js +3 -4
  101. package/dist/cjs/Components/Inputs/TextButtonDropdown/TextButtonDropdown.parts.js +1 -1
  102. package/dist/cjs/Components/Inputs/TextField/TextField.js +7 -7
  103. package/dist/cjs/Components/Inputs/TextFieldContainer/TextFieldContainer.js +1 -1
  104. package/dist/cjs/Components/Inputs/TextFieldDropdown/TextFieldDropdown.parts.js +1 -1
  105. package/dist/cjs/Components/Inputs/Textarea/Textarea.js +5 -5
  106. package/dist/cjs/Components/Navigations/GNBList/GNBList.parts.js +1 -1
  107. package/dist/cjs/Components/Navigations/Menu/Menu.js +2 -2
  108. package/dist/cjs/Components/Navigations/Pagination/Pagination.parts.js +1 -1
  109. package/dist/cjs/Components/Navigations/TextLink/TextLink.js +61 -0
  110. package/dist/cjs/Components/Navigations/TextTab/TextTab.parts.js +3 -3
  111. package/dist/cjs/Components/Wrappers/WithBadge/WithBadge.js +1 -1
  112. package/dist/cjs/Components/Wrappers/WithRichTooltip/WithRichTooltip.js +2 -2
  113. package/dist/cjs/Components/Wrappers/WithSnackBar/WithSnackBar.js +2 -2
  114. package/dist/cjs/index.js +1 -1
  115. package/dist/index.js +1 -1
  116. package/dist/types/checkbox.types.d.ts +0 -2
  117. package/dist/types/index.d.ts +0 -1
  118. package/package.json +12 -12
  119. package/dist/Components/Inputs/Input/LableInput.d.ts +0 -9
  120. package/dist/Components/Inputs/Radio/Radio.types.d.ts +0 -8
  121. package/dist/types/radio.types.d.ts +0 -7
@@ -1,4 +1,4 @@
1
- import{jsxs as t,jsx as e}from"react/jsx-runtime";import{twMerge as r}from"tailwind-merge";import"react";import{SystemIcon as n}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Typography as o}from"../../Base/Typography/Typography.js";import{Box as i}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function s(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})),t}function c(t,e){if(null==t)return{};var r,n,o=function(t,e){if(null==t)return{};var r,n,o={},i=Object.keys(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||(o[r]=t[r]);return o}
1
+ import{jsx as e}from"react/jsx-runtime";import{twMerge as t}from"tailwind-merge";import{TextWithIcons as r}from"../../Base/TextWithIcons/TextWithIcons.js";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function i(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}
2
2
  /**
3
3
  * 텍스트 버튼 컴포넌트
4
4
  *
@@ -23,6 +23,5 @@ import{jsxs as t,jsx as e}from"react/jsx-runtime";import{twMerge as r}from"tailw
23
23
  * leadingIcon="search"
24
24
  * trailingIcon="arrow-right"
25
25
  * />
26
- */(t,e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(n=0;n<i.length;n++)r=i[n],e.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(t,r)&&(o[r]=t[r])}return o}const l=l=>{var{text:m,isTextSmall:y=!1,leadingIcon:p,trailingIcon:u}=l,f=c(l,["text","isTextSmall","leadingIcon","trailingIcon"]);/*#__PURE__*/
27
- return t("button",s(function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),n.forEach((function(e){a(t,e,r[e])}))}return t}({"data-testid":"design-system-text-button--container",className:r("flex min-h-6 w-fit items-center justify-center",y?"gap-x-0.5":"gap-x-1")},f),{children:[p&&/*#__PURE__*/e(i,{"data-testid":"design-system-text-button--icon--left",className:"w-fit",children:/*#__PURE__*/e(n,{name:p,className:"text-primary-500"})}),
28
- /*#__PURE__*/e(i,{"data-testid":"design-system-text-button--text",className:"w-fit",children:/*#__PURE__*/e(o,{variant:y?"body2":"body1",className:"align-baseline font-medium text-primary-500",children:m})}),u&&/*#__PURE__*/e(i,{"data-testid":"design-system-text-button--icon--right",className:"w-fit",children:/*#__PURE__*/e(n,{name:u,className:"text-primary-500"})})]}))};export{l as TextButton};
26
+ */(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}const c=c=>{var{text:l,isTextSmall:a=!1,leadingIcon:s,trailingIcon:u}=c,f=i(c,["text","isTextSmall","leadingIcon","trailingIcon"]);/*#__PURE__*/
27
+ return e("button",o(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),o.forEach((function(t){n(e,t,r[t])}))}return e}({"data-testid":"design-system-text-button--container",className:t("flex min-h-6 w-fit items-center justify-center",a?"gap-x-0.5":"gap-x-1")},f),{children:/*#__PURE__*/e(r,{text:l,leadingIcon:s,trailingIcon:u,isTextSmall:a})}))};export{c as TextButton};
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{twMerge as r,twJoin as n}from"tailwind-merge";import"react";import{SystemIcon as o}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Typography as a}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}const l=l=>{var{value:p,isListOpen:u,disabled:y,className:m}=l,b=c(l,["value","isListOpen","disabled","className"]);/*#__PURE__*/
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{twMerge as r,twJoin as n}from"tailwind-merge";import"react";import{SystemIcon as o}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Typography as a}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/Accordion/Accordion.js";function s(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}const l=l=>{var{value:p,isListOpen:u,disabled:y,className:m}=l,b=c(l,["value","isListOpen","disabled","className"]);/*#__PURE__*/
2
2
  return e("button",i(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){s(e,t,r[t])}))}return e}({type:"button",className:r("flex items-center gap-2 outline-none",y?"cursor-not-allowed":"cursor-pointer",m),disabled:y},b),{children:[
3
3
  /*#__PURE__*/t(a,{variant:"body1",className:r("text-w-gray-600",y&&"text-w-gray-300"),children:p}),
4
4
  /*#__PURE__*/t("span",{className:n("transition-transform duration-300",u&&"rotate-180"),children:/*#__PURE__*/t(o,{name:"medium_arrow_down",className:r("text-w-gray-600",y&&"text-w-gray-300")})})]}))};export{l as TextButton};
@@ -1,9 +1,9 @@
1
1
  import { ComponentPropsWithoutRef } from 'react';
2
2
  import { MediumSystemIconName } from '../../DataDisplays/SystemIcon';
3
- type variant = 'default' | 'lable';
3
+ type variant = 'default' | 'label';
4
4
  export interface TextFieldProps extends ComponentPropsWithoutRef<'input'> {
5
5
  variant?: variant;
6
- lable?: string;
6
+ label?: string;
7
7
  isError?: boolean;
8
8
  startIcon?: MediumSystemIconName;
9
9
  endIcon?: MediumSystemIconName;
@@ -18,8 +18,8 @@ export interface TextFieldProps extends ComponentPropsWithoutRef<'input'> {
18
18
  *
19
19
  * @component
20
20
  * @param {Object} props - 컴포넌트 props
21
- * @param {'default' | 'lable'} [props.variant='default'] - 텍스트 필드의 변형 타입
22
- * @param {string} [props.lable] - 입력 필드의 라벨
21
+ * @param {'default' | 'label'} [props.variant='default'] - 텍스트 필드의 변형 타입
22
+ * @param {string} [props.label] - 입력 필드의 라벨
23
23
  * @param {boolean} [props.isError] - 오류 상태 표시 여부
24
24
  * @param {MediumSystemIconName} [props.startIcon] - 시작 부분에 표시될 아이콘
25
25
  * @param {MediumSystemIconName} [props.endIcon] - 끝 부분에 표시될 아이콘
@@ -38,8 +38,8 @@ export interface TextFieldProps extends ComponentPropsWithoutRef<'input'> {
38
38
  *
39
39
  * // 라벨이 있는 텍스트 필드
40
40
  * <TextField
41
- * variant="lable"
42
- * lable="이름"
41
+ * variant="label"
42
+ * label="이름"
43
43
  * placeholder="홍길동"
44
44
  * startIcon="user"
45
45
  * supportMessage="실명을 입력해주세요"
@@ -1,11 +1,11 @@
1
- "use client";import{jsxs as e,jsx as r}from"react/jsx-runtime";import{forwardRef as t,useState as n,useEffect as o}from"react";import{twMerge as a}from"tailwind-merge";import{TextFieldContainer as i}from"../TextFieldContainer/TextFieldContainer.js";import{SupportTextContainer as s}from"../SupportTextContainer/SupportTextContainer.js";import"../Input/Input.js";import"../Input/PasswordInput.js";import{LableInput as l}from"../Input/LableInput.js";import{InputTypeSelector as c}from"../Input/InputTypeSelector.js";function p(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function u(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){p(e,r,t[r])}))}return e}function b(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})),e}function f(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}
1
+ "use client";import{jsxs as e,jsx as r}from"react/jsx-runtime";import{forwardRef as t,useState as n,useEffect as o}from"react";import{twMerge as a}from"tailwind-merge";import{TextFieldContainer as i}from"../TextFieldContainer/TextFieldContainer.js";import{SupportTextContainer as s}from"../SupportTextContainer/SupportTextContainer.js";import"../Input/Input.js";import"../Input/PasswordInput.js";import{LabelInput as l}from"../Input/LabelInput.js";import{InputTypeSelector as c}from"../Input/InputTypeSelector.js";function p(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function u(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),n.forEach((function(r){p(e,r,t[r])}))}return e}function b(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})),e}function f(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}
2
2
  /**
3
3
  * 사용자 입력을 받을 수 있는 텍스트 필드 컴포넌트입니다.
4
4
  *
5
5
  * @component
6
6
  * @param {Object} props - 컴포넌트 props
7
- * @param {'default' | 'lable'} [props.variant='default'] - 텍스트 필드의 변형 타입
8
- * @param {string} [props.lable] - 입력 필드의 라벨
7
+ * @param {'default' | 'label'} [props.variant='default'] - 텍스트 필드의 변형 타입
8
+ * @param {string} [props.label] - 입력 필드의 라벨
9
9
  * @param {boolean} [props.isError] - 오류 상태 표시 여부
10
10
  * @param {MediumSystemIconName} [props.startIcon] - 시작 부분에 표시될 아이콘
11
11
  * @param {MediumSystemIconName} [props.endIcon] - 끝 부분에 표시될 아이콘
@@ -24,8 +24,8 @@
24
24
  *
25
25
  * // 라벨이 있는 텍스트 필드
26
26
  * <TextField
27
- * variant="lable"
28
- * lable="이름"
27
+ * variant="label"
28
+ * label="이름"
29
29
  * placeholder="홍길동"
30
30
  * startIcon="user"
31
31
  * supportMessage="실명을 입력해주세요"
@@ -39,5 +39,5 @@
39
39
  * maxLength={50}
40
40
  * isMaxLengthVisible={true}
41
41
  * />
42
- */(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}const m=/*#__PURE__*/t(((t,p)=>{var{type:m,name:d,value:g,onChange:y,maxLength:O,disabled:j=!1,placeholder:h,lable:x,testId:I,measure:v,isError:w,endIcon:P,startIcon:L,errorMessage:M,supportMessage:S,variant:C="default",isMaxLengthVisible:E=!1,className:F,onBlur:T}=t,D=f(t,["type","name","value","onChange","maxLength","disabled","placeholder","lable","testId","measure","isError","endIcon","startIcon","errorMessage","supportMessage","variant","isMaxLengthVisible","className","onBlur"]);const[N,k]=n(!1),[B,V]=n(0),q=u({variant:C,type:m,name:d,value:g,placeholder:h,lable:x,maxLength:O,onChange:y,isFocused:N,isError:w,onFocus:()=>{k(!0)},disabled:j,onBlur:e=>{k(!1),T&&T(e)}},D),z=w||S||E;return o((()=>{"string"==typeof g&&O&&V(g.length)}),[g,O]),/*#__PURE__*/e("div",{className:a("flex min-w-fit select-none flex-col gap-2 tracking-default",F),"data-testid":I,children:[
43
- /*#__PURE__*/r("label",{role:"input-box",className:j?"cursor-not-allowed":"cursor-text",children:/*#__PURE__*/e(i,{leadingIcon:L,trailingIcon:P,measure:v,isFocused:N,isError:w,isDisabled:j,children:["lable"===C&&/*#__PURE__*/r(l,b(u({isFixed:!!h},q),{ref:p})),"default"===C&&/*#__PURE__*/r(c,b(u({},q),{ref:p}))]})}),z&&/*#__PURE__*/r(s,{errorMessage:M,supportMessage:S,currentLength:B,maxLength:O,isMaxLengthVisible:E})]})}));m.displayName="TextField";export{m as TextField};
42
+ */(e,r);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)t=a[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}const m=/*#__PURE__*/t(((t,p)=>{var{type:m,name:d,value:g,onChange:y,maxLength:O,disabled:j=!1,placeholder:h,label:x,testId:I,measure:v,isError:w,endIcon:P,startIcon:L,errorMessage:M,supportMessage:S,variant:C="default",isMaxLengthVisible:E=!1,className:F,onBlur:T}=t,D=f(t,["type","name","value","onChange","maxLength","disabled","placeholder","label","testId","measure","isError","endIcon","startIcon","errorMessage","supportMessage","variant","isMaxLengthVisible","className","onBlur"]);const[N,k]=n(!1),[B,V]=n(0),q=u({variant:C,type:m,name:d,value:g,placeholder:h,label:x,maxLength:O,onChange:y,isFocused:N,isError:w,onFocus:()=>{k(!0)},disabled:j,onBlur:e=>{k(!1),T&&T(e)}},D),z=w||S||E;return o((()=>{"string"==typeof g&&O&&V(g.length)}),[g,O]),/*#__PURE__*/e("div",{className:a("flex min-w-fit select-none flex-col gap-2 tracking-default",F),"data-testid":I,children:[
43
+ /*#__PURE__*/r("label",{role:"input-box",className:j?"cursor-not-allowed":"cursor-text",children:/*#__PURE__*/e(i,{leadingIcon:L,trailingIcon:P,measure:v,isFocused:N,isError:w,isDisabled:j,children:["label"===C&&/*#__PURE__*/r(l,b(u({isFixed:!!h},q),{ref:p})),"default"===C&&/*#__PURE__*/r(c,b(u({},q),{ref:p}))]})}),z&&/*#__PURE__*/r(s,{errorMessage:M,supportMessage:S,currentLength:B,maxLength:O,isMaxLengthVisible:E})]})}));m.displayName="TextField";export{m as TextField};
@@ -1 +1 @@
1
- import{jsxs as e,jsx as r}from"react/jsx-runtime";import{twMerge as t}from"tailwind-merge";import{Typography as i}from"../../Base/Typography/Typography.js";import{Box as s}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"react";import{SystemIcon as a}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";const o=({children:o,className:n,leadingIcon:l,trailingIcon:d,isLeadingIconSolid:m,isTrailingIconSolid:c,measure:y,isFocused:g,isDisabled:p,isError:x,onClick:w,isTextarea:f,isAutoComplete:u,testId:h})=>/*#__PURE__*/e(s,{className:t("group flex w-full items-center gap-3 overflow-hidden rounded-xl border px-4 py-[11px]",p?"border-w-gray-200":x?"border-w-red-500":g?"border-primary":"border-w-gray-200 hover:border-primary",p?"bg-w-gray-10":"bg-w-white",p&&"cursor-not-allowed",f&&"relative p-0",u&&"flex-wrap",n),"data-testid":h||"design-system--text-field-container",onClick:w,children:[l&&/*#__PURE__*/r(a,{name:l,solid:m,className:t("shrink-0 text-w-gray-600",p&&"text-w-gray-300"),testId:"design-system--text-field-container-leading-icon"}),o,y&&/*#__PURE__*/r(i,{variant:"body1",className:t("w-fit shrink-0 text-w-gray-400",p&&"text-w-gray-300"),children:y}),d&&/*#__PURE__*/r(a,{name:d,solid:c,className:t("shrink-0 text-w-gray-600",p&&"text-w-gray-300"),testId:"design-system--text-field-container-trailing-icon"})]});export{o as TextFieldContainer};
1
+ import{jsxs as e,jsx as r}from"react/jsx-runtime";import{twMerge as t}from"tailwind-merge";import{Typography as i}from"../../Base/Typography/Typography.js";import{Box as o}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"react";import{SystemIcon as s}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import"../../DataDisplays/Accordion/Accordion.js";const a=({children:a,className:n,leadingIcon:l,trailingIcon:d,isLeadingIconSolid:m,isTrailingIconSolid:c,measure:y,isFocused:p,isDisabled:g,isError:x,onClick:w,isTextarea:f,isAutoComplete:u,testId:h})=>/*#__PURE__*/e(o,{className:t("group flex w-full items-center gap-3 overflow-hidden rounded-xl border px-4 py-[11px]",g?"border-w-gray-200":x?"border-w-red-500":p?"border-primary":"border-w-gray-200 hover:border-primary",g?"bg-w-gray-10":"bg-w-white",g&&"cursor-not-allowed",f&&"relative p-0",u&&"flex-wrap",n),"data-testid":h||"design-system--text-field-container",onClick:w,children:[l&&/*#__PURE__*/r(s,{name:l,solid:m,className:t("shrink-0 text-w-gray-600",g&&"text-w-gray-300"),testId:"design-system--text-field-container-leading-icon"}),a,y&&/*#__PURE__*/r(i,{variant:"body1",className:t("w-fit shrink-0 text-w-gray-400",g&&"text-w-gray-300"),children:y}),d&&/*#__PURE__*/r(s,{name:d,solid:c,className:t("shrink-0 text-w-gray-600",g&&"text-w-gray-300"),testId:"design-system--text-field-container-trailing-icon"})]});export{a as TextFieldContainer};
@@ -1,3 +1,3 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{twJoin as s}from"tailwind-merge";import"react";import{SystemIcon as a}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Typography as r}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{TextFieldContainer as o}from"../TextFieldContainer/TextFieldContainer.js";const i=({placeholder:i,value:m="",isListOpen:l,disabled:n=!1,error:d,onClick:c,className:y})=>/*#__PURE__*/e(o,{isDisabled:n,isFocused:l,isError:d,testId:"design-system--selectBox",onClick:c,className:y,children:[
2
- /*#__PURE__*/t(r,{"data-testid":"design-system--selectBox-text",variant:"body1",className:s(n&&m?"text-w-gray-300":n&&!m?"text-w-gray-200":m?"text-w-gray-600":"text-w-gray-300","w-full"),children:m||i}),
3
- /*#__PURE__*/t("div",{className:s("transition-transform duration-300",l&&"rotate-180"),children:/*#__PURE__*/t(a,{name:"medium_arrow_down",className:n?"text-w-gray-300":"text-w-gray-600",testId:"design-system--selectBox-icon"})})]});export{i as SelectBox};
1
+ import{jsxs as t,jsx as e}from"react/jsx-runtime";import{twJoin as s}from"tailwind-merge";import"react";import{SystemIcon as a}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Typography as o}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/Accordion/Accordion.js";import{TextFieldContainer as r}from"../TextFieldContainer/TextFieldContainer.js";const i=({placeholder:i,value:m="",isListOpen:l,disabled:n=!1,error:c,onClick:d,className:y})=>/*#__PURE__*/t(r,{isDisabled:n,isFocused:l,isError:c,testId:"design-system--selectBox",onClick:d,className:y,children:[
2
+ /*#__PURE__*/e(o,{"data-testid":"design-system--selectBox-text",variant:"body1",className:s(n&&m?"text-w-gray-300":n&&!m?"text-w-gray-200":m?"text-w-gray-600":"text-w-gray-300","w-full"),children:m||i}),
3
+ /*#__PURE__*/e("div",{className:s("transition-transform duration-300",l&&"rotate-180"),children:/*#__PURE__*/e(a,{name:"medium_arrow_down",className:n?"text-w-gray-300":"text-w-gray-600",testId:"design-system--selectBox-icon"})})]});export{i as SelectBox};
@@ -1,4 +1,4 @@
1
- "use client";import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as r}from"react";import{twMerge as n,twJoin as o}from"tailwind-merge";import{Box as l}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{SystemIcon as a}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{TextFieldContainer as i}from"../TextFieldContainer/TextFieldContainer.js";import{SupportTextContainer as s}from"../SupportTextContainer/SupportTextContainer.js";function u(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){u(e,t,r[t])}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}
1
+ "use client";import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useState as r}from"react";import{twMerge as n,twJoin as o}from"tailwind-merge";import{Box as l}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{SystemIcon as a}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import"../../DataDisplays/Accordion/Accordion.js";import{TextFieldContainer as i}from"../TextFieldContainer/TextFieldContainer.js";import{SupportTextContainer as s}from"../SupportTextContainer/SupportTextContainer.js";function u(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){u(e,t,r[t])}))}return e}function c(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},l=Object.keys(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}
2
2
  /**
3
3
  * 사용자가 여러 줄의 텍스트를 입력할 수 있는 textarea 컴포넌트입니다.
4
4
  *
@@ -41,7 +41,7 @@
41
41
  * />
42
42
  * </div>
43
43
  * ```
44
- */(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}const p=u=>{var{isError:p=!1,size:f="md",resize:g=!1,isLengthVisible:x=!1,supportText:d,errorText:y,maxLength:h,value:b,disabled:j,name:O,onChange:v,onBlur:w}=u,S=c(u,["isError","size","resize","isLengthVisible","supportText","errorText","maxLength","value","disabled","name","onChange","onBlur"]);const[L,z]=r(!1),B=p||d||x;/*#__PURE__*/
44
+ */(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(n=0;n<l.length;n++)r=l[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}const p=u=>{var{isError:p=!1,size:f="md",resize:d=!1,isLengthVisible:g=!1,supportText:x,errorText:y,maxLength:h,value:b,disabled:j,name:O,onChange:v,onBlur:w}=u,S=c(u,["isError","size","resize","isLengthVisible","supportText","errorText","maxLength","value","disabled","name","onChange","onBlur"]);const[L,z]=r(!1),B=p||x||g;/*#__PURE__*/
45
45
  return e(l,{"data-testid":"design-system-textarea",className:n("flex w-full flex-col gap-2","full"===f?"h-full":"h-fit"),children:[
46
46
  /*#__PURE__*/e(i,{isDisabled:j,isError:p,isFocused:L,isTextarea:!0,className:o("full"===f&&"h-full"),children:[
47
- /*#__PURE__*/t("textarea",m({"data-testid":"design-system-textarea--textarea",className:n("w-full overflow-y-scroll py-[11px] pl-4 font-[inherit] font-normal tracking-default text-w-gray-600 outline-none scrollbar-list placeholder:font-[inherit] placeholder:tracking-default placeholder:text-w-gray-300","sm"===f?"min-h-[118px]":"md"===f?"min-h-[238px]":"lg"===f?"min-h-[358px]":"full"===f?"min-h-full":void 0,g?"resize-y":"resize-none",j&&"resize-none"),name:O,value:b,disabled:j,onChange:v,maxLength:h,onFocus:e=>{z(!0)},onBlur:e=>{z(!1),w&&w(e)}},S)),g&&/*#__PURE__*/t(a,{name:"small_resizer",className:"absolute bottom-[5px] right-[5px] text-w-gray-400",testId:"design-system-textarea--resize-icon"})]}),B&&/*#__PURE__*/t(s,{errorMessage:y,supportMessage:d,currentLength:(null==b?void 0:b.toString().length)||0,maxLength:h,isMaxLengthVisible:x})]})};export{p as Textarea};
47
+ /*#__PURE__*/t("textarea",m({"data-testid":"design-system-textarea--textarea",className:n("w-full overflow-y-scroll py-[11px] pl-4 font-[inherit] font-normal tracking-default text-w-gray-600 outline-none scrollbar-list placeholder:font-[inherit] placeholder:tracking-default placeholder:text-w-gray-300","sm"===f?"min-h-[118px]":"md"===f?"min-h-[238px]":"lg"===f?"min-h-[358px]":"full"===f?"min-h-full":void 0,d?"resize-y":"resize-none",j&&"resize-none"),name:O,value:b,disabled:j,onChange:v,maxLength:h,onFocus:e=>{z(!0)},onBlur:e=>{z(!1),w&&w(e)}},S)),d&&/*#__PURE__*/t(a,{name:"small_resizer",className:"absolute bottom-[5px] right-[5px] text-w-gray-400",testId:"design-system-textarea--resize-icon"})]}),B&&/*#__PURE__*/t(s,{errorMessage:y,supportMessage:x,currentLength:(null==b?void 0:b.toString().length)||0,maxLength:h,isMaxLengthVisible:g})]})};export{p as Textarea};
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useContext as r,createContext as s,Children as a,Fragment as l}from"react";import{twMerge as i}from"tailwind-merge";import{Avatar as n}from"../../DataDisplays/Avatar/Avatar.js";import{Typography as o}from"../../Base/Typography/Typography.js";import{Box as c}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{NewBadge as d}from"../../DataDisplays/NewBadge/NewBadge.js";import{Divider as m}from"../../DataDisplays/Divider/Divider.js";function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function y(e,t){if(null==e)return{};var r,s,a=function(e,t){if(null==e)return{};var r,s,a={},l=Object.keys(e);for(s=0;s<l.length;s++)r=l[s],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(s=0;s<l.length;s++)r=l[s],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}const f=/*#__PURE__*/s({type:""}),b=({type:r="main",children:s,className:n})=>{const o=a.map(s,((r,s)=>0===s?r:/*#__PURE__*/e(l,{children:[
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{useContext as r,createContext as s,Children as a,Fragment as l}from"react";import{twMerge as i}from"tailwind-merge";import{Avatar as n}from"../../DataDisplays/Avatar/Avatar.js";import{Typography as o}from"../../Base/Typography/Typography.js";import{Box as c}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{NewBadge as d}from"../../DataDisplays/NewBadge/NewBadge.js";import{Divider as m}from"../../DataDisplays/Divider/Divider.js";import"../../DataDisplays/Accordion/Accordion.js";function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function y(e,t){if(null==e)return{};var r,s,a=function(e,t){if(null==e)return{};var r,s,a={},l=Object.keys(e);for(s=0;s<l.length;s++)r=l[s],t.indexOf(r)>=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(s=0;s<l.length;s++)r=l[s],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}const f=/*#__PURE__*/s({type:""}),b=({type:r="main",children:s,className:n})=>{const o=a.map(s,((r,s)=>0===s?r:/*#__PURE__*/e(l,{children:[
2
2
  /*#__PURE__*/t(m,{className:"my-2"}),r]})));/*#__PURE__*/
3
3
  return e(f.Provider,{value:{type:r},children:["main"===r&&/*#__PURE__*/e(c,{className:i("absolute flex h-auto w-[200px] overflow-hidden rounded-xl bg-w-white shadow-graymedium",n),"data-testid":"design-system-gnb-list--root-main",children:[
4
4
  /*#__PURE__*/t(c,{className:"m-0 h-auto w-2 bg-gradient-primary-45 p-0","data-testid":"design-system-gnb-list--root-main-sidebar"}),
@@ -1,4 +1,4 @@
1
- import{jsxs as t,Fragment as e,jsx as o}from"react/jsx-runtime";import{twJoin as s,twMerge as i}from"tailwind-merge";import n from"next/link";import"react";import{SystemIcon as r}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Typography as a}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{CountBadge as m}from"../../DataDisplays/CountBadge/CountBadge.js";import"@wishket/yogokit";import"../../Inputs/AutoCompleteList/AutoCompleteList.parts.js";import"../../Inputs/Input/Input.js";import"../../Inputs/Input/PasswordInput.js";import"../../Inputs/Input/LableInput.js";import"../../Inputs/Input/InputTypeSelector.js";import"../../Inputs/Calendar/Calendar.utils.js";import"../../Inputs/Checkbox/Checkbox.js";import"../../Inputs/ChoiceChip/ChoiceChip.js";import{IconButton as p}from"../../Inputs/IconButton/IconButton.js";import"../../Inputs/Radio/Radio.js";import"../../Inputs/TextField/TextField.js";import"../../Inputs/CommentArea/CommentArea.js";import{IconButtonDropdown as l}from"../../Inputs/IconButtonDropdown/IconButtonDropdown.js";import"../../Inputs/FilterChip/FilterChip.js";
1
+ import{jsxs as t,Fragment as e,jsx as o}from"react/jsx-runtime";import{twJoin as s,twMerge as i}from"tailwind-merge";import r from"next/link";import"react";import{SystemIcon as n}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Typography as a}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{CountBadge as p}from"../../DataDisplays/CountBadge/CountBadge.js";import"../../DataDisplays/Accordion/Accordion.js";import"@wishket/yogokit";import"../../Inputs/AutoCompleteList/AutoCompleteList.parts.js";import"../../Inputs/Input/Input.js";import"../../Inputs/Input/PasswordInput.js";import"../../Inputs/Input/LabelInput.js";import"../../Inputs/Input/InputTypeSelector.js";import"../../Inputs/Calendar/Calendar.utils.js";import"../../Inputs/Checkbox/Checkbox.js";import"../../Inputs/ChoiceChip/ChoiceChip.js";import{IconButton as m}from"../../Inputs/IconButton/IconButton.js";import"../../Inputs/Radio/Radio.js";import"../../Inputs/TextField/TextField.js";import"../../Inputs/CommentArea/CommentArea.js";import{IconButtonDropdown as l}from"../../Inputs/IconButtonDropdown/IconButtonDropdown.js";import"../../Inputs/FilterChip/FilterChip.js";
2
2
  /**
3
3
  * 메뉴 컴포넌트는 네비게이션에서 사용되는 클릭 가능한 항목을 표시합니다.
4
4
  *
@@ -58,5 +58,5 @@ import{jsxs as t,Fragment as e,jsx as o}from"react/jsx-runtime";import{twJoin as
58
58
  * href="/test"
59
59
  * name="테스트 메뉴"
60
60
  * />
61
- */const u=({type:u="main",variant:c="white",name:d,isSelected:y=!1,badgeCount:I,leadingIcon:g,iconButtonName:h,onClick:C,onOptionClick:j,href:w,items:x,selectedItem:b,onItemClick:f})=>{const B=!!(h&&x&&f&&b),k=!!h&&!!j,v=(t,e,o)=>{const n="sub"===t?"pl-12":"",r={white:s("bg-w-white hover:bg-w-gray-50",o&&"bg-primary-10 text-primary hover:bg-primary-10"),gray:s("bg-w-gray-50 hover:bg-w-gray-100",o&&"bg-w-gray-100 hover:bg-w-gray-100")};return i("flex w-full cursor-pointer items-center gap-2 rounded-xl px-4 py-3 text-w-gray-900 text-left",n,r[e])},D=/*#__PURE__*/t(e,{children:[g&&/*#__PURE__*/o(r,{testId:"design-system-menu-leading-icon",name:g,className:s("white"===c&&y&&"text-primary")}),
62
- /*#__PURE__*/o(a,{"data-testid":"design-system-menu-name",variant:"body1",className:"w-full select-none",children:d}),I&&/*#__PURE__*/o(m,{variant:((t,e)=>"white"!==t?"white_gray":e?"primary":"gray")(c,y),text:I,className:"relative",showZero:!0}),B&&/*#__PURE__*/o(l,{size:"sm",icon:h,items:x,selectedItem:b,onItemClick:f}),k&&/*#__PURE__*/o(p,{size:"sm",className:"shrink-0",onClick:t=>{t.stopPropagation(),j()},children:/*#__PURE__*/o(r,{name:h})})]});return w?/*#__PURE__*/o(n,{href:w,"data-testid":"design-system-menu",className:v(u,c,y),children:D}):/*#__PURE__*/o("button",{"data-testid":"design-system-menu",className:v(u,c,y),onClick:C,children:D})};export{u as Menu};
61
+ */const c=({type:c="main",variant:u="white",name:d,isSelected:y=!1,badgeCount:I,leadingIcon:g,iconButtonName:h,onClick:C,onOptionClick:j,href:w,items:x,selectedItem:b,onItemClick:f})=>{const B=!!(h&&x&&f&&b),k=!!h&&!!j,D=(t,e,o)=>{const r="sub"===t?"pl-12":"",n={white:s("bg-w-white hover:bg-w-gray-50",o&&"bg-primary-10 text-primary hover:bg-primary-10"),gray:s("bg-w-gray-50 hover:bg-w-gray-100",o&&"bg-w-gray-100 hover:bg-w-gray-100")};return i("flex w-full cursor-pointer items-center gap-2 rounded-xl px-4 py-3 text-w-gray-900 text-left",r,n[e])},v=/*#__PURE__*/t(e,{children:[g&&/*#__PURE__*/o(n,{testId:"design-system-menu-leading-icon",name:g,className:s("white"===u&&y&&"text-primary")}),
62
+ /*#__PURE__*/o(a,{"data-testid":"design-system-menu-name",variant:"body1",className:"w-full select-none",children:d}),I&&/*#__PURE__*/o(p,{variant:((t,e)=>"white"!==t?"white_gray":e?"primary":"gray")(u,y),text:I,className:"relative",showZero:!0}),B&&/*#__PURE__*/o(l,{size:"sm",icon:h,items:x,selectedItem:b,onItemClick:f}),k&&/*#__PURE__*/o(m,{size:"sm",className:"shrink-0",onClick:t=>{t.stopPropagation(),j()},children:/*#__PURE__*/o(n,{name:h})})]});return w?/*#__PURE__*/o(r,{href:w,"data-testid":"design-system-menu",className:D(c,u,y),children:v}):/*#__PURE__*/o("button",{"data-testid":"design-system-menu",className:D(c,u,y),onClick:C,children:v})};export{c as Menu};
@@ -1,2 +1,2 @@
1
- import{jsx as e}from"react/jsx-runtime";import{twMerge as t}from"tailwind-merge";import"react";import{SystemIcon as r}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Typography as n}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){o(e,t,r[t])}))}return e}function i(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}const c=r=>{var{value:o,enabled:c}=r,l=s(r,["value","enabled"]);/*#__PURE__*/
1
+ import{jsx as e}from"react/jsx-runtime";import{twMerge as t}from"tailwind-merge";import"react";import{SystemIcon as r}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Typography as n}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/Accordion/Accordion.js";function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){o(e,t,r[t])}))}return e}function i(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function s(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}const c=r=>{var{value:o,enabled:c}=r,l=s(r,["value","enabled"]);/*#__PURE__*/
2
2
  return e("button",i(a({className:t("flex size-10 justify-center rounded-xl p-2 text-w-gray-700",c?"bg-primary-50 text-primary":"hover:bg-w-gray-50")},l),{children:/*#__PURE__*/e(n,{variant:"body2",children:o})}))},l=t=>/*#__PURE__*/e("button",i(a({},t),{"data-testid":"design-system-pagination-left-arrow",children:/*#__PURE__*/e(r,{name:"medium_arrow_left",className:"text-w-gray-900"})})),y=t=>/*#__PURE__*/e("button",i(a({},t),{"data-testid":"design-system-pagination-right-arrow",children:/*#__PURE__*/e(r,{name:"medium_arrow_right",className:"text-w-gray-900"})}));export{l as LeftArrow,c as PaginationNumber,y as RightArrow};
@@ -0,0 +1,66 @@
1
+ import Link from 'next/link';
2
+ import { ComponentProps } from 'react';
3
+ import { TextWithIconsProps } from '../../Base/TextWithIcons/TextWithIcons';
4
+ interface TextLinkProps extends ComponentProps<typeof Link>, TextWithIconsProps {
5
+ }
6
+ /**
7
+ * 텍스트 기반의 링크 컴포넌트입니다.
8
+ *
9
+ * @description
10
+ * TextButton과 동일한 스타일을 가지지만 `<a>` 태그 기반으로 페이지 네비게이션을 담당합니다.
11
+ * Next.js의 Link 컴포넌트를 기반으로 하여 클라이언트 사이드 라우팅을 지원합니다.
12
+ *
13
+ * @component
14
+ * @param {Object} props - TextLink 컴포넌트의 props
15
+ * @param {string} props.href - 링크 대상 URL (필수)
16
+ * @param {string} props.text - 표시할 텍스트 (필수)
17
+ * @param {SystemIconName} [props.leadingIcon] - 텍스트 앞에 표시할 아이콘
18
+ * @param {SystemIconName} [props.trailingIcon] - 텍스트 뒤에 표시할 아이콘
19
+ * @param {boolean} [props.isTextSmall=false] - 작은 텍스트 크기 사용 여부
20
+ * @param {boolean} [props.isGray=false] - 텍스트 색상을 회색으로 사용 여부
21
+ * @param {boolean} [props.isUnderline=false] - 텍스트에 밑줄 스타일 적용 여부
22
+ * @param {ComponentProps<typeof Link>} props - Next.js Link 컴포넌트의 모든 props 지원
23
+ *
24
+ * @example
25
+ * // 기본 사용법
26
+ * <TextLink href="/about" text="소개 페이지로 이동" />
27
+ *
28
+ * @example
29
+ * // 아이콘과 함께 사용
30
+ * <TextLink
31
+ * href="/detail"
32
+ * text="자세히 보기"
33
+ * trailingIcon="medium_arrow_right"
34
+ * />
35
+ *
36
+ * @example
37
+ * // 외부 링크로 사용
38
+ * <TextLink
39
+ * href="https://example.com"
40
+ * text="외부 사이트 방문"
41
+ * target="_blank"
42
+ * rel="noopener noreferrer"
43
+ * />
44
+ *
45
+ * @example
46
+ * // 작은 텍스트 크기로 사용
47
+ * <TextLink
48
+ * href="/help"
49
+ * text="도움말"
50
+ * isTextSmall
51
+ * leadingIcon="small_help"
52
+ * />
53
+ *
54
+ * @example
55
+ * // 프로그래매틱 네비게이션과 함께
56
+ * <TextLink
57
+ * href="/dashboard"
58
+ * text="대시보드"
59
+ * onClick={(e) => {
60
+ * // 추가 로직 실행 가능
61
+ * console.log('대시보드로 이동');
62
+ * }}
63
+ * />
64
+ */
65
+ declare const TextLink: ({ href, text, leadingIcon, trailingIcon, isTextSmall, isGray, isUnderline, ...rest }: TextLinkProps) => import("react/jsx-runtime").JSX.Element;
66
+ export { TextLink };
@@ -0,0 +1,61 @@
1
+ import{jsx as e}from"react/jsx-runtime";import t from"next/link";import{twMerge as r}from"tailwind-merge";import{TextWithIcons as n}from"../../Base/TextWithIcons/TextWithIcons.js";function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}function c(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}
2
+ /**
3
+ * 텍스트 기반의 링크 컴포넌트입니다.
4
+ *
5
+ * @description
6
+ * TextButton과 동일한 스타일을 가지지만 `<a>` 태그 기반으로 페이지 네비게이션을 담당합니다.
7
+ * Next.js의 Link 컴포넌트를 기반으로 하여 클라이언트 사이드 라우팅을 지원합니다.
8
+ *
9
+ * @component
10
+ * @param {Object} props - TextLink 컴포넌트의 props
11
+ * @param {string} props.href - 링크 대상 URL (필수)
12
+ * @param {string} props.text - 표시할 텍스트 (필수)
13
+ * @param {SystemIconName} [props.leadingIcon] - 텍스트 앞에 표시할 아이콘
14
+ * @param {SystemIconName} [props.trailingIcon] - 텍스트 뒤에 표시할 아이콘
15
+ * @param {boolean} [props.isTextSmall=false] - 작은 텍스트 크기 사용 여부
16
+ * @param {boolean} [props.isGray=false] - 텍스트 색상을 회색으로 사용 여부
17
+ * @param {boolean} [props.isUnderline=false] - 텍스트에 밑줄 스타일 적용 여부
18
+ * @param {ComponentProps<typeof Link>} props - Next.js Link 컴포넌트의 모든 props 지원
19
+ *
20
+ * @example
21
+ * // 기본 사용법
22
+ * <TextLink href="/about" text="소개 페이지로 이동" />
23
+ *
24
+ * @example
25
+ * // 아이콘과 함께 사용
26
+ * <TextLink
27
+ * href="/detail"
28
+ * text="자세히 보기"
29
+ * trailingIcon="medium_arrow_right"
30
+ * />
31
+ *
32
+ * @example
33
+ * // 외부 링크로 사용
34
+ * <TextLink
35
+ * href="https://example.com"
36
+ * text="외부 사이트 방문"
37
+ * target="_blank"
38
+ * rel="noopener noreferrer"
39
+ * />
40
+ *
41
+ * @example
42
+ * // 작은 텍스트 크기로 사용
43
+ * <TextLink
44
+ * href="/help"
45
+ * text="도움말"
46
+ * isTextSmall
47
+ * leadingIcon="small_help"
48
+ * />
49
+ *
50
+ * @example
51
+ * // 프로그래매틱 네비게이션과 함께
52
+ * <TextLink
53
+ * href="/dashboard"
54
+ * text="대시보드"
55
+ * onClick={(e) => {
56
+ * // 추가 로직 실행 가능
57
+ * console.log('대시보드로 이동');
58
+ * }}
59
+ * />
60
+ */(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}const l=l=>{var{href:a,text:f,leadingIcon:s,trailingIcon:p,isTextSmall:u=!1,isGray:O=!1,isUnderline:b=!1}=l,y=c(l,["href","text","leadingIcon","trailingIcon","isTextSmall","isGray","isUnderline"]);/*#__PURE__*/
61
+ return e(t,o(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){i(e,t,r[t])}))}return e}({href:a,className:r("flex min-h-6 w-fit items-center justify-center",u?"gap-x-0.5":"gap-x-1")},y),{children:/*#__PURE__*/e(n,{text:f,leadingIcon:s,trailingIcon:p,isTextSmall:u,isUnderline:b,isGray:O})}))};export{l as TextLink};
@@ -0,0 +1 @@
1
+ export { TextLink } from './TextLink';
@@ -1,10 +1,10 @@
1
- "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useContext as r,createContext as n,useRef as a,Children as o,useState as s,useEffect as i}from"react";import{twMerge as l,twJoin as c}from"tailwind-merge";import{Typography as u}from"../../Base/Typography/Typography.js";import{Box as d}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{SystemIcon as m}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{CountBadge as f}from"../../DataDisplays/CountBadge/CountBadge.js";import{Divider as b}from"../../DataDisplays/Divider/Divider.js";function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){p(e,t,r[t])}))}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}const g=/*#__PURE__*/n({barColor:"bg-w-gray-900",activeTab:0,currentActiveTab:0,isFit:!0,hasPadding:!1,isFull:!1,handleTabClick:e=>{}}),x=({children:t,currentActiveTab:r=0,isFit:n=!0,hasPadding:a=!1,isFull:o=!1,barColor:l="bg-w-gray-900",onChange:c})=>{const[u,d]=s(r);return i((()=>{r!==u&&d(r);
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import{useContext as r,createContext as n,useRef as a,Children as o,useState as s,useEffect as i}from"react";import{twMerge as l,twJoin as c}from"tailwind-merge";import{Typography as u}from"../../Base/Typography/Typography.js";import{Box as d}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{SystemIcon as m}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{CountBadge as f}from"../../DataDisplays/CountBadge/CountBadge.js";import{Divider as p}from"../../DataDisplays/Divider/Divider.js";import"../../DataDisplays/Accordion/Accordion.js";function b(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),n.forEach((function(t){b(e,t,r[t])}))}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})),e}const g=/*#__PURE__*/n({barColor:"bg-w-gray-900",activeTab:0,currentActiveTab:0,isFit:!0,hasPadding:!1,isFull:!1,handleTabClick:e=>{}}),x=({children:t,currentActiveTab:r=0,isFit:n=!0,hasPadding:a=!1,isFull:o=!1,barColor:l="bg-w-gray-900",onChange:c})=>{const[u,d]=s(r);return i((()=>{r!==u&&d(r);
2
2
  // eslint-disable-next-line react-hooks/exhaustive-deps
3
- }),[r]),/*#__PURE__*/e(g.Provider,{value:{barColor:l,activeTab:u,currentActiveTab:r,isFit:n,hasPadding:a,handleTabClick:e=>{e!==u&&(null==c||c(e),d(e))},isFull:o},children:t})},w=({children:n,className:u})=>{const{activeTab:m,hasPadding:f,isFull:p,barColor:y}=r(g),h=a([]),x=a(null),w=a(null),v=o.toArray(n),[j,O]=s(!1),[T,D]=s(!1),[N,P]=s({x:0,scrollLeft:0});return i((()=>{if(!h.current[m]||!x.current)return;const e=h.current[m],t=x.current,r=w.current;if(e&&t&&r){const{offsetLeft:n,offsetWidth:a}=e,{scrollLeft:o,clientWidth:s}=r;t.style.width=`${a}px`,t.style.transform=`translateX(${n}px)`;if(!(o<=n&&o+s>=n+a)){const t=setTimeout((()=>{e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}),0);return()=>clearTimeout(t)}}}),[m]),i((()=>{const e=()=>{if(w.current){const e=w.current.scrollWidth>w.current.clientWidth;O(e)}};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),i((()=>{if(w.current){const e=w.current.scrollWidth>w.current.clientWidth;O(e)}}),[n]),/*#__PURE__*/e(d,{ref:w,className:c("block w-full touch-pan-x items-start overflow-x-scroll scrollbar-hide",j&&"scrollbar-list",u),"data-testid":"design-system-textTab--container",onMouseDown:e=>{w.current&&(D(!0),P({x:e.pageX,scrollLeft:w.current.scrollLeft}))},onMouseMove:e=>{if(!T||!w.current)return;e.preventDefault();const t=e.pageX-N.x;w.current.scrollLeft=N.scrollLeft-t},onMouseUp:()=>{D(!1)},onMouseLeave:()=>{D(!1)},children:/*#__PURE__*/t(d,{className:l("relative w-full border-b border-w-gray-200",j&&"w-max",f&&"px-9"),"data-testid":"design-system-textTab--inner-container",children:[
4
- /*#__PURE__*/e(d,{className:l("inline-flex w-max gap-10",p&&"w-full gap-0"),children:v.map(((t,r)=>/*#__PURE__*/e(d,{className:l(p&&"w-full"),ref:e=>{h.current[r]=e},children:t},r)))}),
3
+ }),[r]),/*#__PURE__*/e(g.Provider,{value:{barColor:l,activeTab:u,currentActiveTab:r,isFit:n,hasPadding:a,handleTabClick:e=>{e!==u&&(null==c||c(e),d(e))},isFull:o},children:t})},w=({children:n,className:u})=>{const{activeTab:m,hasPadding:f,isFull:b,barColor:y}=r(g),h=a([]),x=a(null),w=a(null),v=o.toArray(n),[j,O]=s(!1),[T,D]=s(!1),[N,P]=s({x:0,scrollLeft:0});return i((()=>{if(!h.current[m]||!x.current)return;const e=h.current[m],t=x.current,r=w.current;if(e&&t&&r){const{offsetLeft:n,offsetWidth:a}=e,{scrollLeft:o,clientWidth:s}=r;t.style.width=`${a}px`,t.style.transform=`translateX(${n}px)`;if(!(o<=n&&o+s>=n+a)){const t=setTimeout((()=>{e.scrollIntoView({behavior:"smooth",block:"nearest",inline:"center"})}),0);return()=>clearTimeout(t)}}}),[m]),i((()=>{const e=()=>{if(w.current){const e=w.current.scrollWidth>w.current.clientWidth;O(e)}};return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[]),i((()=>{if(w.current){const e=w.current.scrollWidth>w.current.clientWidth;O(e)}}),[n]),/*#__PURE__*/e(d,{ref:w,className:c("block w-full touch-pan-x items-start overflow-x-scroll scrollbar-hide",j&&"scrollbar-list",u),"data-testid":"design-system-textTab--container",onMouseDown:e=>{w.current&&(D(!0),P({x:e.pageX,scrollLeft:w.current.scrollLeft}))},onMouseMove:e=>{if(!T||!w.current)return;e.preventDefault();const t=e.pageX-N.x;w.current.scrollLeft=N.scrollLeft-t},onMouseUp:()=>{D(!1)},onMouseLeave:()=>{D(!1)},children:/*#__PURE__*/t(d,{className:l("relative w-full border-b border-w-gray-200",j&&"w-max",f&&"px-9"),"data-testid":"design-system-textTab--inner-container",children:[
4
+ /*#__PURE__*/e(d,{className:l("inline-flex w-max gap-10",b&&"w-full gap-0"),children:v.map(((t,r)=>/*#__PURE__*/e(d,{className:l(b&&"w-full"),ref:e=>{h.current[r]=e},children:t},r)))}),
5
5
  /*#__PURE__*/e("span",{ref:x,"data-testid":`design-system-textTab--underbar-${m}`,className:c("absolute bottom-0 left-0 h-0.5 rounded-t-lg transition-all duration-300 ease-out",y)}),
6
- /*#__PURE__*/e(b,{className:"absolute -bottom-px left-0 h-px"})]})})},v=({children:n,index:a,className:o,disabled:s=!1,badgeNumber:i,iconName:c,href:b})=>{const{isFit:p,handleTabClick:x,activeTab:w,isFull:v}=r(g),j=a===w,O={tabIndex:0,"data-testid":`design-system-textTab--item-${a}`,className:l("group flex w-max cursor-pointer items-center rounded-xl hover:font-medium",s&&"cursor-not-allowed",v&&"w-full",o),onClick:()=>{!s&&x(a)}},T=/*#__PURE__*/t(d,{className:l("relative flex w-full select-none flex-row items-center justify-center gap-2 py-4 font-normal text-w-gray-600 group-hover:text-w-gray-900",!p&&"px-[33.5px]",v&&"w-full px-0",j&&"font-medium text-w-gray-900"),children:[c&&/*#__PURE__*/e(d,{className:"flex size-4 flex-shrink-0 items-center justify-center",children:/*#__PURE__*/e(m,{name:c,className:l("size-4 text-w-gray-600 group-hover:text-w-gray-900",j&&"text-w-gray-900")})}),
7
- /*#__PURE__*/e(u,{variant:"body1",className:"relative",children:n}),void 0!==i&&/*#__PURE__*/e(f,{text:i,showZero:!0,className:"relative",variant:"gray"})]});return b?/*#__PURE__*/e("a",h(y({href:b},O),{children:T})):/*#__PURE__*/e(d,h(y({},O),{children:T}))},j=({children:t,index:n})=>{const{activeTab:a}=r(g);return a===n&&/*#__PURE__*/e(d,{"data-testid":"design-system-textTab--content",children:t})};
6
+ /*#__PURE__*/e(p,{className:"absolute -bottom-px left-0 h-px"})]})})},v=({children:n,index:a,className:o,disabled:s=!1,badgeNumber:i,iconName:c,href:p})=>{const{isFit:b,handleTabClick:x,activeTab:w,isFull:v}=r(g),j=a===w,O={tabIndex:0,"data-testid":`design-system-textTab--item-${a}`,className:l("group flex w-max cursor-pointer items-center rounded-xl hover:font-medium",s&&"cursor-not-allowed",v&&"w-full",o),onClick:()=>{!s&&x(a)}},T=/*#__PURE__*/t(d,{className:l("relative flex w-full select-none flex-row items-center justify-center gap-2 py-4 font-normal text-w-gray-600 group-hover:text-w-gray-900",!b&&"px-[33.5px]",v&&"w-full px-0",j&&"font-medium text-w-gray-900"),children:[c&&/*#__PURE__*/e(d,{className:"flex size-4 flex-shrink-0 items-center justify-center",children:/*#__PURE__*/e(m,{name:c,className:l("size-4 text-w-gray-600 group-hover:text-w-gray-900",j&&"text-w-gray-900")})}),
7
+ /*#__PURE__*/e(u,{variant:"body1",className:"relative",children:n}),void 0!==i&&/*#__PURE__*/e(f,{text:i,showZero:!0,className:"relative",variant:"gray"})]});return p?/*#__PURE__*/e("a",h(y({href:p},O),{children:T})):/*#__PURE__*/e(d,h(y({},O),{children:T}))},j=({children:t,index:n})=>{const{activeTab:a}=r(g);return a===n&&/*#__PURE__*/e(d,{"data-testid":"design-system-textTab--content",children:t})};
8
8
  /**
9
9
  * TextTab의 Root 컴포넌트입니다.
10
10
  * TextTab의 상태를 관리합니다.
@@ -5,3 +5,4 @@ export * from './TableOfContents';
5
5
  export * from './TextTab';
6
6
  export * from './BoxTab';
7
7
  export * from './Menu';
8
+ export * from './TextLink';
@@ -1,4 +1,4 @@
1
- import{jsxs as t,jsx as a}from"react/jsx-runtime";import{twMerge as e}from"tailwind-merge";import{Box as s}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"react";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{CountBadge as r}from"../../DataDisplays/CountBadge/CountBadge.js";import{NewBadge as o}from"../../DataDisplays/NewBadge/NewBadge.js";
1
+ import{jsxs as t,jsx as a}from"react/jsx-runtime";import{twMerge as s}from"tailwind-merge";import{Box as e}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"react";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{CountBadge as r}from"../../DataDisplays/CountBadge/CountBadge.js";import{NewBadge as o}from"../../DataDisplays/NewBadge/NewBadge.js";import"../../DataDisplays/Accordion/Accordion.js";
2
2
  /**
3
3
  * 자식 요소의 우측 상단에 뱃지를 표시하는 래퍼 컴포넌트입니다.
4
4
  *
@@ -19,4 +19,4 @@ import{jsxs as t,jsx as a}from"react/jsx-runtime";import{twMerge as e}from"tailw
19
19
  * <WithBadge variant="new">
20
20
  * <MenuItem>새로운 기능</MenuItem>
21
21
  * </WithBadge>
22
- */const i=({text:i,children:m,className:l,variant:n="primary",showZero:p=!1})=>/*#__PURE__*/t(s,{className:e("relative w-fit",l),"data-testid":"with-badge",children:[m,"new"===n?/*#__PURE__*/a(o,{className:"absolute right-0 top-0 -translate-y-1/2 translate-x-1/2 transform"}):/*#__PURE__*/a(r,{text:i,variant:n,showZero:p,className:"absolute right-px top-px -translate-y-1/2 translate-x-1/2 transform"})]});export{i as WithBadge};
22
+ */const i=({text:i,children:m,className:l,variant:n="primary",showZero:p=!1})=>/*#__PURE__*/t(e,{className:s("relative w-fit",l),"data-testid":"with-badge",children:[m,"new"===n?/*#__PURE__*/a(o,{className:"absolute right-0 top-0 -translate-y-1/2 translate-x-1/2 transform"}):/*#__PURE__*/a(r,{text:i,variant:n,showZero:p,className:"absolute right-px top-px -translate-y-1/2 translate-x-1/2 transform"})]});export{i as WithBadge};
@@ -1,4 +1,4 @@
1
- "use client";import{jsxs as t,jsx as i}from"react/jsx-runtime";import{twMerge as e}from"tailwind-merge";import{useState as o}from"react";import{SystemIcon as s}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Box as r}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"@wishket/yogokit";import"react-dom";import{RichTooltip as a}from"../../Feedbacks/RichTooltip/RichTooltip.js";import"../../Feedbacks/GlobalLoadingIndicator/GlobalLoadingIndicator.js";
1
+ "use client";import{jsxs as t,jsx as i}from"react/jsx-runtime";import{twMerge as e}from"tailwind-merge";import{useState as o}from"react";import{SystemIcon as s}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{Box as r}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/Accordion/Accordion.js";import"@wishket/yogokit";import"react-dom";import{RichTooltip as a}from"../../Feedbacks/RichTooltip/RichTooltip.js";import"../../Feedbacks/GlobalLoadingIndicator/GlobalLoadingIndicator.js";
2
2
  /**
3
3
  * 정보 아이콘과 함께 리치 툴팁을 표시하는 래퍼 컴포넌트입니다.
4
4
  *
@@ -27,6 +27,6 @@
27
27
  * >
28
28
  * <p>추가 배송 정보는 여기에 표시됩니다.</p>
29
29
  * </WithRichTooltip>
30
- */const m=({size:m="md",variant:n="right",title:c,description:l,children:d,className:p})=>{const h="md"===m?"medium_information":"small_information",g="right"===n,f="down"===n,[y,u]=o(!1);/*#__PURE__*/
30
+ */const m=({size:m="md",variant:c="right",title:n,description:l,children:d,className:p})=>{const h="md"===m?"medium_information":"small_information",g="right"===c,f="down"===c,[y,u]=o(!1);/*#__PURE__*/
31
31
  return t(r,{className:"relative h-fit w-fit","data-testid":"design-system-withRichTooltip",children:[
32
- /*#__PURE__*/i(r,{"data-testid":"design-system-withRichTooltip--trigger",className:"flex h-fit w-fit shrink-0 items-center justify-center",onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),onClick:()=>u((t=>!t)),children:/*#__PURE__*/i(s,{name:h,className:"text-w-gray-400",testId:"md"===m?"design-system-withRichTooltip--trigger-icon-md":"design-system-withRichTooltip--trigger-icon-sm"})}),y&&/*#__PURE__*/i(a,{title:c,description:l,className:e("absolute",g&&"left-[calc(100%_+_12px)] top-0",f&&"left-0 top-[calc(100%_+_12px)]",p),children:d})]})};export{m as WithRichTooltip};
32
+ /*#__PURE__*/i(r,{"data-testid":"design-system-withRichTooltip--trigger",className:"flex h-fit w-fit shrink-0 items-center justify-center",onMouseEnter:()=>u(!0),onMouseLeave:()=>u(!1),onClick:()=>u((t=>!t)),children:/*#__PURE__*/i(s,{name:h,className:"text-w-gray-400",testId:"md"===m?"design-system-withRichTooltip--trigger-icon-md":"design-system-withRichTooltip--trigger-icon-sm"})}),y&&/*#__PURE__*/i(a,{title:n,description:l,className:e("absolute",g&&"left-[calc(100%_+_12px)] top-0",f&&"left-0 top-[calc(100%_+_12px)]",p),children:d})]})};export{m as WithRichTooltip};
@@ -1,4 +1,4 @@
1
- import{jsxs as e,jsx as a}from"react/jsx-runtime";import{twJoin as s}from"tailwind-merge";import{Box as t}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"react";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{SnackBar as o}from"../../Feedbacks/SnackBar/SnackBar.js";import"@wishket/yogokit";import"react-dom";import"../../Feedbacks/GlobalLoadingIndicator/GlobalLoadingIndicator.js";
1
+ import{jsxs as e,jsx as a}from"react/jsx-runtime";import{twJoin as s}from"tailwind-merge";import{Box as t}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"react";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import"../../DataDisplays/Accordion/Accordion.js";import{SnackBar as o}from"../../Feedbacks/SnackBar/SnackBar.js";import"@wishket/yogokit";import"react-dom";import"../../Feedbacks/GlobalLoadingIndicator/GlobalLoadingIndicator.js";
2
2
  /**
3
3
  * 스낵바를 포함하는 래퍼 컴포넌트입니다.
4
4
  * 자식 컴포넌트 상단에 알림 메시지를 표시할 수 있습니다.
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("react/jsx-runtime"),t=require("tailwind-merge");require("react");var s=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js");var i=require("../Typography/Typography.js"),a=require("../Layouts/Box/Box.js");require("../Layouts/FullBleed/FullBleed.js"),require("../../DataDisplays/Accordion/Accordion.js");exports.TextWithIcons=({text:r,leadingIcon:n,trailingIcon:o,isTextSmall:c=!1,isGray:l=!1,isUnderline:y=!1})=>/*#__PURE__*/e.jsxs(e.Fragment,{children:[n&&/*#__PURE__*/e.jsx(a.Box,{"data-testid":"design-system-text-with-icons--icon--left",className:"w-fit",children:/*#__PURE__*/e.jsx(s.SystemIcon,{name:n,className:t.twJoin(l?"text-w-gray-600":"text-primary-500")})}),
2
+ /*#__PURE__*/e.jsx(a.Box,{"data-testid":"design-system-text-with-icons--text",className:"w-fit",children:/*#__PURE__*/e.jsx(i.Typography,{variant:c?"body2":"body1",className:t.twJoin("align-baseline font-medium",l?"text-w-gray-600":"text-primary-500",y?"underline decoration-1 underline-offset-2":""),children:r})}),o&&/*#__PURE__*/e.jsx(a.Box,{"data-testid":"design-system-text-with-icons--icon--right",className:"w-fit",children:/*#__PURE__*/e.jsx(s.SystemIcon,{name:o,className:t.twJoin(l?"text-w-gray-600":"text-primary-500")})})]});
@@ -0,0 +1,58 @@
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react"),t=require("tailwind-merge"),i=require("../../Base/Typography/Typography.js"),s=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var n=require("../SystemIcon/SystemIcon.js");require("../SystemIcon/SystemIcon.constants.js"),require("@wishket/yogokit"),require("react-dom"),require("next/link"),require("../../Inputs/AutoCompleteList/AutoCompleteList.parts.js"),require("../../Inputs/Input/Input.js"),require("../../Inputs/Input/PasswordInput.js"),require("../../Inputs/Input/LabelInput.js"),require("../../Inputs/Input/InputTypeSelector.js"),require("../../Inputs/Calendar/Calendar.utils.js"),require("../../Inputs/Checkbox/Checkbox.js"),require("../../Inputs/ChoiceChip/ChoiceChip.js"),require("../../Inputs/Radio/Radio.js"),require("../../Inputs/TextField/TextField.js"),require("../../Inputs/CommentArea/CommentArea.js"),require("../../Inputs/FilterChip/FilterChip.js");var o=require("../../Navigations/TextLink/TextLink.js");
2
+ /**
3
+ * 아코디언 컨테이너 컴포넌트
4
+ *
5
+ * @description
6
+ * 여러 개의 접을 수 있는 콘텐츠 섹션을 관리하는 컨테이너입니다.
7
+ * Compound Component 패턴을 사용하여 Accordion.Item과 함께 사용합니다.
8
+ *
9
+ * @param {React.ReactNode} children - Accordion.Item 컴포넌트들
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <Accordion>
14
+ * <Accordion.Item title="첫 번째 섹션">
15
+ * <p>첫 번째 섹션의 내용</p>
16
+ * </Accordion.Item>
17
+ * <Accordion.Item title="두 번째 섹션">
18
+ * <p>두 번째 섹션의 내용</p>
19
+ * </Accordion.Item>
20
+ * </Accordion>
21
+ * ```
22
+ */const a=({children:r})=>/*#__PURE__*/e.jsx(s.Box,{className:"flex w-full flex-col gap-6 p-6",children:r});
23
+ /**
24
+ * 아코디언의 개별 아이템 컴포넌트
25
+ *
26
+ * @description
27
+ * 클릭 가능한 제목과 접을 수 있는 콘텐츠 영역을 제공합니다.
28
+ * 선택적으로 하단에 링크를 추가할 수 있습니다.
29
+ *
30
+ * @param {string} title - 아코디언 아이템의 제목
31
+ * @param {string} href - 링크 대상 URL (linkText와 함께 사용)
32
+ * @param {string} linkText - 링크에 표시될 텍스트 (href와 함께 사용)
33
+ * @param {'_blank' | '_self'} linkTarget - 링크 타겟 설정 ('_blank' | '_self')
34
+ * @param {React.ReactNode} children - 아코디언 아이템의 콘텐츠
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * // 기본 사용법
39
+ * <Accordion.Item title="제목">
40
+ * <p>콘텐츠 내용</p>
41
+ * </Accordion.Item>
42
+ *
43
+ * // 링크가 포함된 아이템
44
+ * <Accordion.Item
45
+ * title="제목"
46
+ * href="/detail"
47
+ * linkText="자세히 보기"
48
+ * linkTarget="_blank"
49
+ * >
50
+ * <p>콘텐츠 내용</p>
51
+ * </Accordion.Item>
52
+ * ```
53
+ */a.Item=({title:a,href:u,linkText:l,linkTarget:c="_blank",children:p})=>{const[d,x]=r.useState(!1),m=r.useId(),j=u&&l&&c;/*#__PURE__*/
54
+ return e.jsxs(s.Box,{className:"flex w-full flex-col border-b border-w-gray-200 pb-6 last:border-b-0 last:pb-0",children:[
55
+ /*#__PURE__*/e.jsxs("button",{type:"button",className:"box-border flex cursor-pointer items-center justify-between gap-6 text-left",onClick:()=>x(!d),"aria-expanded":d,"aria-controls":`accordionregion-${m}`,id:`accordionbutton-${m}`,children:[
56
+ /*#__PURE__*/e.jsx(i.Typography,{variant:"subTitle2",className:"w-full font-medium text-w-gray-900",children:a}),
57
+ /*#__PURE__*/e.jsx(s.Box,{className:t.twJoin("transition-transform duration-300 ease-in-out",d?"rotate-180":"rotate-0"),children:/*#__PURE__*/e.jsx(n.SystemIcon,{name:"medium_arrow_down"})})]}),
58
+ /*#__PURE__*/e.jsx(s.Box,{role:"region",id:`accordionregion-${m}`,"aria-labelledby":`accordionbutton-${m}`,className:t.twJoin("w-full overflow-hidden transition-all duration-300 ease-in-out",d?"max-h-screen":"max-h-0"),children:/*#__PURE__*/e.jsxs(s.Box,{className:"mt-4 flex flex-col gap-4",children:[p,j&&/*#__PURE__*/e.jsx(o.TextLink,{href:u,text:l,target:c,trailingIcon:"medium_arrow_right"})]})})]})},exports.Accordion=a;
@@ -1,5 +1,47 @@
1
- "use strict";var e=require("react/jsx-runtime"),s=require("tailwind-merge"),t=require("../../Base/Typography/Typography.js"),a=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js"),require("react"),require("../../DataDisplays/SystemIcon/SystemIcon.constants.js");var r=require("../../DataDisplays/ProductIcon/ProductIcon.js"),i=require("../../Inputs/Button/Button.js");exports.MessageBar=({variant:n="primary",icon:o,title:d,text:l,buttonName:m,onClick:u})=>{const c="primary"===n,y="white"===n;/*#__PURE__*/
2
- return e.jsxs(a.Box,{"data-testid":"design-system-message-bar",className:s.twMerge("flex w-full items-center gap-5 rounded-2xl border px-8 py-5",c&&"border-primary-100 bg-primary-10",y&&"border-w-gray-200 bg-white"),children:[
3
- /*#__PURE__*/e.jsx(a.Box,{className:"shrink-0","data-testid":"design-system-message-bar--icon",children:/*#__PURE__*/e.jsx(r.ProductIcon,{name:o,size:"medium"})}),
4
- /*#__PURE__*/e.jsxs(a.Box,{className:"flex w-full flex-col gap-1",children:[d&&/*#__PURE__*/e.jsx(t.Typography,{variant:"subTitle2",className:"font-medium text-w-gray-900","data-testid":"design-system-message-bar--title",children:d}),
5
- /*#__PURE__*/e.jsx(t.Typography,{variant:"body1",className:"text-w-gray-600","data-testid":"design-system-message-bar--text",children:l})]}),m&&u&&/*#__PURE__*/e.jsx(i.Button,{variant:"outlined",size:"sm",className:"shrink-0",onClick:u,"data-testid":"design-system-message-bar--button",children:m})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),s=require("tailwind-merge"),a=require("../../Base/Typography/Typography.js"),r=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js"),require("react"),require("../../DataDisplays/SystemIcon/SystemIcon.constants.js");var t=require("../../DataDisplays/ProductIcon/ProductIcon.js");require("../../DataDisplays/Accordion/Accordion.js");var i=require("../../Inputs/Button/Button.js");
2
+ /**
3
+ * 사용자에게 정보를 표시하는 메시지 바 컴포넌트입니다.
4
+ *
5
+ * @component
6
+ *
7
+ * @param {Object} props
8
+ * @param {'primary' | 'white'} props.variant - 메시지 바의 스타일 변형. 'primary' 또는 'white' 중 선택
9
+ * @param {(typeof MediumProductIconNames)[number]} props.icon - 메시지 바에 표시될 ProductIcon 이름
10
+ * ('person_smile', 'lock', 'logout', 'contract_pen', 'paper_pen', 'paper_hold' 등)
11
+ * @param {string} [props.title] - 메시지 바의 제목 (선택사항)
12
+ * @param {string} props.text - 메시지 바에 표시될 본문 텍스트
13
+ * @param {string} [props.buttonName] - 버튼에 표시될 텍스트 (선택사항)
14
+ * @param {() => void} [props.onClick] - 버튼 클릭 시 실행될 콜백 함수 (선택사항)
15
+ *
16
+ * @example
17
+ * // 기본 사용 예시
18
+ * <MessageBar
19
+ * variant="primary"
20
+ * icon="person_smile"
21
+ * title="알림"
22
+ * text="새로운 메시지가 도착했습니다."
23
+ * buttonName="확인"
24
+ * onClick={() => console.log('버튼이 클릭되었습니다')}
25
+ * />
26
+ *
27
+ * // 제목과 버튼이 없는 간단한 메시지
28
+ * <MessageBar
29
+ * variant="white"
30
+ * icon="paper_pen"
31
+ * text="작업이 성공적으로 완료되었습니다."
32
+ * />
33
+ *
34
+ * // 보안 관련 메시지
35
+ * <MessageBar
36
+ * variant="primary"
37
+ * icon="lock"
38
+ * title="보안 알림"
39
+ * text="계정의 보안을 위해 비밀번호를 변경해주세요."
40
+ * buttonName="비밀번호 변경"
41
+ * onClick={() => handlePasswordChange()}
42
+ * />
43
+ */exports.MessageBar=({variant:n="primary",icon:o,title:d,text:l,buttonName:c,onClick:u})=>{const m="primary"===n,y="white"===n;/*#__PURE__*/
44
+ return e.jsxs(r.Box,{"data-testid":"design-system-message-bar",className:s.twMerge("flex w-full items-center gap-5 rounded-2xl border px-8 py-5",m&&"border-primary-100 bg-primary-10",y&&"border-w-gray-200 bg-white"),children:[
45
+ /*#__PURE__*/e.jsx(r.Box,{className:"shrink-0","data-testid":"design-system-message-bar--icon",children:/*#__PURE__*/e.jsx(t.ProductIcon,{name:o,size:"medium"})}),
46
+ /*#__PURE__*/e.jsxs(r.Box,{className:"flex w-full flex-col gap-1",children:[d&&/*#__PURE__*/e.jsx(a.Typography,{variant:"subTitle2",className:"font-medium text-w-gray-900","data-testid":"design-system-message-bar--title",children:d}),
47
+ /*#__PURE__*/e.jsx(a.Typography,{variant:"body1",className:"text-w-gray-600","data-testid":"design-system-message-bar--text",children:l})]}),c&&u&&/*#__PURE__*/e.jsx(i.Button,{variant:"outlined",size:"sm",className:"shrink-0",onClick:u,"data-testid":"design-system-message-bar--button",children:c})]})};