@wishket/design-system 3.4.2 → 3.5.0

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 (89) hide show
  1. package/dist/Components/Base/Typography/Typography.d.ts +0 -9
  2. package/dist/Components/Base/Typography/Typography.js +2 -2
  3. package/dist/Components/DataDisplays/ImageLabel/ImageLabel.js +1 -1
  4. package/dist/Components/Feedbacks/DialogBox/DialogBox.js +6 -6
  5. package/dist/Components/Feedbacks/GlobalLoadingIndicator/GlobalLoadingIndicator.js +1 -1
  6. package/dist/Components/Feedbacks/Tooltip/Tooltip.js +3 -3
  7. package/dist/Components/Inputs/AutoCompleteList/AutoCompleteList.d.ts +2 -2
  8. package/dist/Components/Inputs/AutoCompleteList/AutoCompleteList.js +22 -7
  9. package/dist/Components/Inputs/AutoCompleteList/AutoCompleteList.types.d.ts +17 -0
  10. package/dist/Components/Inputs/Autocomplete/Autocomplete.d.ts +3 -1
  11. package/dist/Components/Inputs/Autocomplete/Autocomplete.js +28 -5
  12. package/dist/Components/Inputs/Autocomplete/Autocomplete.types.d.ts +18 -0
  13. package/dist/Components/Inputs/Checkbox/Checkbox.js +4 -4
  14. package/dist/Components/Inputs/Checkbox/Checkbox.parts.js +3 -3
  15. package/dist/Components/Inputs/Checkbox/Checkbox.types.d.ts +0 -1
  16. package/dist/Components/Inputs/CheckboxCard/CheckboxCard.js +4 -4
  17. package/dist/Components/Inputs/CheckboxCard/CheckboxCard.parts.js +4 -4
  18. package/dist/Components/Inputs/FileUploader/FileUploader.js +4 -4
  19. package/dist/Components/Inputs/IconButtonDropdown/IconButtonDropdown.js +4 -4
  20. package/dist/Components/Inputs/Input/Input.js +1 -1
  21. package/dist/Components/Inputs/Input/PasswordInput.js +3 -3
  22. package/dist/Components/Inputs/InputChip/InputChip.d.ts +16 -3
  23. package/dist/Components/Inputs/InputChip/InputChip.js +13 -4
  24. package/dist/Components/Inputs/Radio/Radio.js +5 -5
  25. package/dist/Components/Inputs/RadioCard/RadioCard.js +5 -5
  26. package/dist/Components/Inputs/RadioCard/RadioCard.parts.js +4 -4
  27. package/dist/Components/Inputs/RangeSlider/RangeSlider.js +2 -2
  28. package/dist/Components/Inputs/SearchField/SearchField.js +5 -5
  29. package/dist/Components/Inputs/TextField/TextField.js +1 -1
  30. package/dist/Components/Inputs/TextFieldDropdown/TextFieldDropdown.d.ts +24 -3
  31. package/dist/Components/Inputs/TextFieldDropdown/TextFieldDropdown.js +10 -54
  32. package/dist/Components/Inputs/TextFieldDropdown/TextFieldDropdown.parts.d.ts +9 -0
  33. package/dist/Components/Inputs/TextFieldDropdown/TextFieldDropdown.parts.js +1 -1
  34. package/dist/Components/Inputs/TextFieldTrigger/TextFieldTrigger.d.ts +73 -0
  35. package/dist/Components/Inputs/TextFieldTrigger/TextFieldTrigger.js +62 -0
  36. package/dist/Components/Inputs/TextFieldTrigger/index.d.ts +2 -0
  37. package/dist/Components/Inputs/Textarea/Textarea.js +4 -4
  38. package/dist/Components/Inputs/index.d.ts +1 -0
  39. package/dist/Components/Navigations/Drawer/Drawer.js +3 -3
  40. package/dist/Components/Navigations/Menu/MenuBase.js +3 -3
  41. package/dist/Components/Utils/BackDrop/BackDrop.js +1 -1
  42. package/dist/Components/Utils/BackDropLiftContainer/BackDropLiftContainer.js +2 -2
  43. package/dist/Components/Utils/BottomModalContainer/BottomModalContainer.js +1 -1
  44. package/dist/Components/Utils/FullModalContainer/FullModalContainer.js +1 -1
  45. package/dist/Components/Utils/Modal/Modal.js +3 -3
  46. package/dist/Components/Utils/ModalContainer/ModalContainer.js +2 -2
  47. package/dist/Components/Wrappers/WithBadge/WithBadge.js +2 -2
  48. package/dist/Components/Wrappers/WithSnackBar/WithSnackBar.js +3 -3
  49. package/dist/cjs/Components/Base/Typography/Typography.js +1 -1
  50. package/dist/cjs/Components/DataDisplays/ImageLabel/ImageLabel.js +3 -3
  51. package/dist/cjs/Components/Feedbacks/DialogBox/DialogBox.js +6 -6
  52. package/dist/cjs/Components/Feedbacks/GlobalLoadingIndicator/GlobalLoadingIndicator.js +1 -1
  53. package/dist/cjs/Components/Feedbacks/Tooltip/Tooltip.js +3 -3
  54. package/dist/cjs/Components/Inputs/AutoCompleteList/AutoCompleteList.js +22 -7
  55. package/dist/cjs/Components/Inputs/Autocomplete/Autocomplete.js +25 -4
  56. package/dist/cjs/Components/Inputs/Checkbox/Checkbox.js +4 -4
  57. package/dist/cjs/Components/Inputs/Checkbox/Checkbox.parts.js +5 -5
  58. package/dist/cjs/Components/Inputs/CheckboxCard/CheckboxCard.js +4 -4
  59. package/dist/cjs/Components/Inputs/CheckboxCard/CheckboxCard.parts.js +4 -4
  60. package/dist/cjs/Components/Inputs/FileUploader/FileUploader.js +6 -6
  61. package/dist/cjs/Components/Inputs/IconButtonDropdown/IconButtonDropdown.js +3 -3
  62. package/dist/cjs/Components/Inputs/Input/Input.js +2 -2
  63. package/dist/cjs/Components/Inputs/Input/PasswordInput.js +2 -2
  64. package/dist/cjs/Components/Inputs/InputChip/InputChip.js +36 -2
  65. package/dist/cjs/Components/Inputs/Radio/Radio.js +6 -6
  66. package/dist/cjs/Components/Inputs/RadioCard/RadioCard.js +4 -4
  67. package/dist/cjs/Components/Inputs/RadioCard/RadioCard.parts.js +4 -4
  68. package/dist/cjs/Components/Inputs/RangeSlider/RangeSlider.js +3 -3
  69. package/dist/cjs/Components/Inputs/SearchField/SearchField.js +3 -3
  70. package/dist/cjs/Components/Inputs/TextField/TextField.js +2 -2
  71. package/dist/cjs/Components/Inputs/TextFieldDropdown/TextFieldDropdown.js +10 -8
  72. package/dist/cjs/Components/Inputs/TextFieldDropdown/TextFieldDropdown.parts.js +1 -1
  73. package/dist/cjs/Components/Inputs/TextFieldTrigger/TextFieldTrigger.js +62 -0
  74. package/dist/cjs/Components/Inputs/Textarea/Textarea.js +5 -5
  75. package/dist/cjs/Components/Navigations/Drawer/Drawer.js +3 -3
  76. package/dist/cjs/Components/Navigations/Menu/MenuBase.js +3 -3
  77. package/dist/cjs/Components/Utils/BackDrop/BackDrop.js +1 -1
  78. package/dist/cjs/Components/Utils/BackDropLiftContainer/BackDropLiftContainer.js +2 -2
  79. package/dist/cjs/Components/Utils/BottomModalContainer/BottomModalContainer.js +1 -1
  80. package/dist/cjs/Components/Utils/FullModalContainer/FullModalContainer.js +1 -1
  81. package/dist/cjs/Components/Utils/Modal/Modal.js +2 -2
  82. package/dist/cjs/Components/Utils/ModalContainer/ModalContainer.js +2 -2
  83. package/dist/cjs/Components/Wrappers/WithBadge/WithBadge.js +1 -1
  84. package/dist/cjs/Components/Wrappers/WithSnackBar/WithSnackBar.js +1 -1
  85. package/dist/cjs/index.js +1 -1
  86. package/dist/index.js +1 -1
  87. package/package.json +3 -2
  88. package/scripts/codemods/add-as-link.ts +9 -5
  89. package/scripts/codemods/menu-split.ts +25 -11
@@ -1,3 +1,3 @@
1
- import{jsxs as t,jsx as e}from"react/jsx-runtime";import{twJoin as r,twMerge as o}from"tailwind-merge";import"../../DataDisplays/Avatar/Avatar.js";import{CountBadge as n}from"../../DataDisplays/CountBadge/CountBadge.js";import{Typography as s}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"react";import{SystemIcon as i}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.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/Button/Button.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 a}from"../../Inputs/IconButtonDropdown/IconButtonDropdown.js";import"../../Inputs/FilterChip/FilterChip.js";function m(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function c(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}const u=(t,e,n)=>{const s="sub"===t?"pl-12":"",i={white:r("hover:bg-w-gray-50",n&&"bg-primary-10 text-primary hover:bg-primary-10"),gray:r("hover:bg-w-gray-100",n&&"bg-w-gray-100 hover:bg-w-gray-100")};return o("flex w-full cursor-pointer items-center gap-2 rounded-xl px-4 py-3 text-w-gray-900 text-left",s,i[e])},l=(t,e)=>"white"!==t?"white_gray":e?"primary":"gray",y=({type:o="main",variant:y="white",name:d,isSelected:g=!1,badgeCount:j,leadingIcon:I,iconButtonName:b,onOptionClick:f,items:h,selectedItem:w,onItemClick:O,as:C,wrapperProps:x})=>{const B=!!(b&&h&&O&&w),D=!!b&&!!f;/*#__PURE__*/
2
- return t(C,c(function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),o.forEach((function(e){m(t,e,r[e])}))}return t}({"data-testid":"design-system-menu",className:u(o,y,g)},x),{children:[I&&/*#__PURE__*/e(i,{testId:"design-system-menu-leading-icon",name:I,className:r("white"===y&&g&&"text-primary")}),
3
- /*#__PURE__*/e(s,{"data-testid":"design-system-menu-name",variant:"body16",className:"w-full select-none",children:d}),j&&/*#__PURE__*/e(n,{variant:l(y,g),text:j,className:"relative",showZero:!0}),B&&/*#__PURE__*/e(a,{size:"sm",icon:b,items:h,selectedItem:w,onItemClick:O}),D&&/*#__PURE__*/e(p,{size:"sm",className:"shrink-0",onClick:t=>{t.stopPropagation(),f()},children:/*#__PURE__*/e(i,{name:b})})]}))};export{y as MenuBase};
1
+ import{jsxs as t,jsx as e}from"react/jsx-runtime";import{twJoin as r,twMerge as o}from"tailwind-merge";import"../../DataDisplays/Avatar/Avatar.js";import{CountBadge as n}from"../../DataDisplays/CountBadge/CountBadge.js";import{Typography as s}from"../../Base/Typography/Typography.js";import"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"react";import{SystemIcon as i}from"../../DataDisplays/SystemIcon/SystemIcon.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.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/Button/Button.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/TextFieldTrigger/TextFieldTrigger.js";import"../../Inputs/CommentArea/CommentArea.js";import{IconButtonDropdown as a}from"../../Inputs/IconButtonDropdown/IconButtonDropdown.js";import"../../Inputs/FilterChip/FilterChip.js";function m(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function c(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}const u=(t,e,n)=>{const s="sub"===t?"pl-12":"",i={white:r("hover:bg-w-gray-50",n&&"bg-primary-10 text-primary hover:bg-primary-10"),gray:r("hover:bg-w-gray-100",n&&"bg-w-gray-100 hover:bg-w-gray-100")};return o("flex w-full cursor-pointer items-center gap-2 rounded-xl px-4 py-3 text-w-gray-900 text-left",s,i[e])},l=(t,e)=>"white"!==t?"white_gray":e?"primary":"gray",y=({type:o="main",variant:y="white",name:g,isSelected:d=!1,badgeCount:j,leadingIcon:I,iconButtonName:b,onOptionClick:f,items:h,selectedItem:w,onItemClick:O,as:C,wrapperProps:x})=>{const B=!!(b&&h&&O&&w),D=!!b&&!!f;/*#__PURE__*/
2
+ return t(C,c(function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),o.forEach((function(e){m(t,e,r[e])}))}return t}({"data-testid":"design-system-menu",className:u(o,y,d)},x),{children:[I&&/*#__PURE__*/e(i,{testId:"design-system-menu-leading-icon",name:I,className:r("white"===y&&d&&"text-primary")}),
3
+ /*#__PURE__*/e(s,{"data-testid":"design-system-menu-name",variant:"body16",className:"w-full select-none",children:g}),j&&/*#__PURE__*/e(n,{variant:l(y,d),text:j,className:"relative",showZero:!0}),B&&/*#__PURE__*/e(a,{size:"sm",icon:b,items:h,selectedItem:w,onItemClick:O}),D&&/*#__PURE__*/e(p,{size:"sm",className:"shrink-0",onClick:t=>{t.stopPropagation(),f()},children:/*#__PURE__*/e(i,{name:b})})]}))};export{y as MenuBase};
@@ -1 +1 @@
1
- import{jsx as t}from"react/jsx-runtime";import{twMerge as o}from"tailwind-merge";import{usePreventScroll as e}from"@wishket/yogokit";import"react";import{Box as r}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";const i=({isBlack:i,preventScroll:s,onClick:a})=>(e(s),/*#__PURE__*/t(r,{"data-testid":"design-system--backdrop",onClick:a,className:o("fixed top-0 left-0 z-30 h-dvh w-dvw",i?"bg-black/50":"bg-transparent")}));export{i as BackDrop};
1
+ import{jsx as o}from"react/jsx-runtime";import{twMerge as t}from"tailwind-merge";import{usePreventScroll as e}from"@wishket/yogokit";import"../../Base/Typography/Typography.js";import{Box as r}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";const s=({isBlack:s,preventScroll:a,onClick:i})=>(e(a),/*#__PURE__*/o(r,{"data-testid":"design-system--backdrop",onClick:i,className:t("fixed top-0 left-0 z-30 h-dvh w-dvw",s?"bg-black/50":"bg-transparent")}));export{s as BackDrop};
@@ -1,3 +1,3 @@
1
- "use client";import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useState as i,useEffect as o}from"react";import{twJoin as r,twMerge as s}from"tailwind-merge";import{Box as a}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{BackDrop as n}from"../BackDrop/BackDrop.js";const l="duration-300",c=({isOpen:c,onClose:m,children:p,isBackgroundBlack:d=!0,isPreventScroll:u=!0,isBottomSheet:B=!1,isFullSize:f=!1,testId:y})=>{const[k,x]=i(!1),[j,h]=i(!1);return o((()=>{c?(h(!0),requestAnimationFrame((()=>x(!0)))):x(!1)}),[c]),j||c?/*#__PURE__*/t(a,{className:r("fixed inset-0 z-30 flex justify-center transition-opacity",l,B?"items-end":"items-center",k?"opacity-100":"opacity-0"),"data-testid":y||"design-system--backdrop-lift-container",children:[
1
+ "use client";import{jsxs as t,jsx as e}from"react/jsx-runtime";import{useState as i,useEffect as o}from"react";import{twJoin as r,twMerge as a}from"tailwind-merge";import"../../Base/Typography/Typography.js";import{Box as s}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{BackDrop as n}from"../BackDrop/BackDrop.js";const l="duration-300",c=({isOpen:c,onClose:m,children:p,isBackgroundBlack:d=!0,isPreventScroll:u=!0,isBottomSheet:y=!1,isFullSize:B=!1,testId:f})=>{const[k,h]=i(!1),[j,x]=i(!1);return o((()=>{c?(x(!0),requestAnimationFrame((()=>h(!0)))):h(!1)}),[c]),j||c?/*#__PURE__*/t(s,{className:r("fixed inset-0 z-30 flex justify-center transition-opacity",l,y?"items-end":"items-center",k?"opacity-100":"opacity-0"),"data-testid":f||"design-system--backdrop-lift-container",children:[
2
2
  /*#__PURE__*/e(n,{onClick:m,isBlack:d,preventScroll:u}),
3
- /*#__PURE__*/e(a,{className:s("z-30 transition-all ease-in",l,(B||f)&&"w-full",k?"translate-y-0 opacity-100":"translate-y-full opacity-0"),onTransitionEnd:()=>{c||h(!1)},children:p})]}):null};export{c as BackDropLiftContainer};
3
+ /*#__PURE__*/e(s,{className:a("z-30 transition-all ease-in",l,(y||B)&&"w-full",k?"translate-y-0 opacity-100":"translate-y-full opacity-0"),onTransitionEnd:()=>{c||x(!1)},children:p})]}):null};export{c as BackDropLiftContainer};
@@ -1,3 +1,3 @@
1
- import{jsxs as e,jsx as t}from"react/jsx-runtime";import{twJoin as o}from"tailwind-merge";import"react";import{Box as r}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{useBottomModalContainer as s}from"./useBottomModalContainer.js";const a=({children:a,onClose:l,isFixedHeight:i=!0,className:n})=>{const{containerRef:m,currentTranslate:d}=s({onClose:l});/*#__PURE__*/
1
+ import{jsxs as e,jsx as t}from"react/jsx-runtime";import{twJoin as o}from"tailwind-merge";import"../../Base/Typography/Typography.js";import{Box as r}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import{useBottomModalContainer as s}from"./useBottomModalContainer.js";const a=({children:a,onClose:l,isFixedHeight:i=!0,className:n})=>{const{containerRef:m,currentTranslate:d}=s({onClose:l});/*#__PURE__*/
2
2
  return e(r,{ref:m,style:{transform:`translateY(${d}px)`},className:o("bg-w-white z-30 w-full rounded-t-3xl",i?"h-[60dvh]":"h-fit",n),"data-testid":"design-system--bottom-modal-container",children:[
3
3
  /*#__PURE__*/t(r,{className:"flex items-center justify-center pt-2 pb-5","data-testid":"design-system--bottom-modal-container-header",id:"bottom-modal-header",children:/*#__PURE__*/t(r,{className:"bg-w-gray-200 h-1 w-8 rounded-full"})}),a]})};export{a as BottomModalContainer};
@@ -1 +1 @@
1
- import{jsx as e}from"react/jsx-runtime";import{twMerge as t}from"tailwind-merge";import"react";import{Box as o}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";const r=({children:r,className:a})=>/*#__PURE__*/e(o,{"data-testid":"design-system--full-modal-container",className:t("bg-w-white h-dvh w-dvw overflow-auto",a),children:r});export{r as FullModalContainer};
1
+ import{jsx as e}from"react/jsx-runtime";import{twMerge as o}from"tailwind-merge";import"../../Base/Typography/Typography.js";import{Box as t}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";const a=({children:a,className:r})=>/*#__PURE__*/e(t,{"data-testid":"design-system--full-modal-container",className:o("bg-w-white h-dvh w-dvw overflow-auto",r),children:a});export{a as FullModalContainer};
@@ -1,4 +1,4 @@
1
- import{jsx as o,jsxs as e}from"react/jsx-runtime";import{twMerge as t}from"tailwind-merge";import{BackDropLiftContainer as l}from"../BackDropLiftContainer/BackDropLiftContainer.js";import{BottomModalContainer as r}from"../BottomModalContainer/BottomModalContainer.js";import{FullModalContainer as i}from"../FullModalContainer/FullModalContainer.js";import{ModalContainer as a}from"../ModalContainer/ModalContainer.js";import{Portal as n}from"../Portal/Portal.js";import"react";import{Box as s}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";
1
+ import{jsx as o,jsxs as e}from"react/jsx-runtime";import{twMerge as t}from"tailwind-merge";import{BackDropLiftContainer as l}from"../BackDropLiftContainer/BackDropLiftContainer.js";import{BottomModalContainer as r}from"../BottomModalContainer/BottomModalContainer.js";import{FullModalContainer as i}from"../FullModalContainer/FullModalContainer.js";import{ModalContainer as a}from"../ModalContainer/ModalContainer.js";import{Portal as s}from"../Portal/Portal.js";import"../../Base/Typography/Typography.js";import{Box as n}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";
2
2
  /**
3
3
  * 모달 창을 표시하는 컴포넌트입니다.
4
4
  *
@@ -32,5 +32,5 @@ import{jsx as o,jsxs as e}from"react/jsx-runtime";import{twMerge as t}from"tailw
32
32
  * <Modal isOpen={isOpen} variant="bottom" onClose={handleClose}>
33
33
  * <div>바텀 시트 내용</div>
34
34
  * </Modal>
35
- */const d=({isOpen:d,rootId:m,variant:c="default",size:u="md",overflow:f="auto",isBackgroundBlack:p=!0,isFixedHeight:B,isPreventScroll:C=!0,className:h,onClose:j,needCleanup:x=!0,children:g})=>{const F="bottom"===c,k="full"===c;/*#__PURE__*/
36
- return o(n,{rootId:m,needCleanup:x&&!m,children:/*#__PURE__*/e(l,{isOpen:d,onClose:j,testId:"design-system--modal",isBackgroundBlack:p,isPreventScroll:C,isBottomSheet:F,isFullSize:"full"===u,children:["default"===c&&/*#__PURE__*/o(s,{"data-testid":"design-system--modal-container--box",className:t("full"===u&&"w-full px-5",h),children:/*#__PURE__*/o(a,{size:u,overflow:f,children:g})}),k&&/*#__PURE__*/o(i,{className:h,children:g}),F&&j&&/*#__PURE__*/o(r,{onClose:j,isFixedHeight:B,className:h,children:g})]})})};export{d as Modal};
35
+ */const d=({isOpen:d,rootId:m,variant:c="default",size:p="md",overflow:u="auto",isBackgroundBlack:f=!0,isFixedHeight:B,isPreventScroll:C=!0,className:h,onClose:g,needCleanup:j=!0,children:x})=>{const y="bottom"===c,F="full"===c;/*#__PURE__*/
36
+ return o(s,{rootId:m,needCleanup:j&&!m,children:/*#__PURE__*/e(l,{isOpen:d,onClose:g,testId:"design-system--modal",isBackgroundBlack:f,isPreventScroll:C,isBottomSheet:y,isFullSize:"full"===p,children:["default"===c&&/*#__PURE__*/o(n,{"data-testid":"design-system--modal-container--box",className:t("full"===p&&"w-full px-5",h),children:/*#__PURE__*/o(a,{size:p,overflow:u,children:x})}),F&&/*#__PURE__*/o(i,{className:h,children:x}),y&&g&&/*#__PURE__*/o(r,{onClose:g,isFixedHeight:B,className:h,children:x})]})})};export{d as Modal};
@@ -1,2 +1,2 @@
1
- import{jsx as e}from"react/jsx-runtime";import{twJoin as o}from"tailwind-merge";import"react";import{Box as l}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";const t=({size:t="md",overflow:r="auto",children:i})=>/*#__PURE__*/e(l,{"data-testid":"design-system--modal-container",className:o("bg-w-white shadow-modal h-fit max-w-[calc(100vw-40px)] rounded-3xl",// 아직 정해지지 않은 내부 레이아웃
2
- "flex items-center justify-center",{xs:"w-[320px]",sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[1000px]",full:"w-full"}[t],{auto:"overflow-auto",visible:"overflow-visible",hidden:"overflow-hidden",scroll:"overflow-scroll"}[r]),children:i});export{t as ModalContainer};
1
+ import{jsx as e}from"react/jsx-runtime";import{twJoin as o}from"tailwind-merge";import"../../Base/Typography/Typography.js";import{Box as l}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";const r=({size:r="md",overflow:s="auto",children:t})=>/*#__PURE__*/e(l,{"data-testid":"design-system--modal-container",className:o("bg-w-white shadow-modal h-fit max-w-[calc(100vw-40px)] rounded-3xl",// 아직 정해지지 않은 내부 레이아웃
2
+ "flex items-center justify-center",{xs:"w-[320px]",sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[1000px]",full:"w-full"}[r],{auto:"overflow-auto",visible:"overflow-visible",hidden:"overflow-hidden",scroll:"overflow-scroll"}[s]),children:t});export{r as ModalContainer};
@@ -1,4 +1,4 @@
1
- import{jsxs as a,jsx as t}from"react/jsx-runtime";import{twMerge as s}from"tailwind-merge";import"react";import{Box as r}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/Avatar/Avatar.js";import{CountBadge as e}from"../../DataDisplays/CountBadge/CountBadge.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{NewBadge as o}from"../../DataDisplays/NewBadge/NewBadge.js";import"../../DataDisplays/Accordion/Accordion.js";
1
+ import{jsxs as a,jsx as t}from"react/jsx-runtime";import{twMerge as s}from"tailwind-merge";import"../../Base/Typography/Typography.js";import{Box as r}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/Avatar/Avatar.js";import{CountBadge as o}from"../../DataDisplays/CountBadge/CountBadge.js";import"react";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import{NewBadge as e}from"../../DataDisplays/NewBadge/NewBadge.js";import"../../DataDisplays/Accordion/Accordion.js";
2
2
  /**
3
3
  * 자식 요소의 우측 상단에 뱃지를 표시하는 래퍼 컴포넌트입니다.
4
4
  *
@@ -19,4 +19,4 @@ import{jsxs as a,jsx as t}from"react/jsx-runtime";import{twMerge as s}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__*/a(r,{className:s("relative w-fit",l),"data-testid":"with-badge",children:[m,"new"===n?/*#__PURE__*/t(o,{className:"absolute top-0 right-0 translate-x-1/2 -translate-y-1/2 transform"}):/*#__PURE__*/t(e,{text:i,variant:n,showZero:p,className:"absolute top-px right-px translate-x-1/2 -translate-y-1/2 transform"})]});export{i as WithBadge};
22
+ */const i=({text:i,children:m,className:p,variant:l="primary",showZero:n=!1})=>/*#__PURE__*/a(r,{className:s("relative w-fit",p),"data-testid":"with-badge",children:[m,"new"===l?/*#__PURE__*/t(e,{className:"absolute top-0 right-0 translate-x-1/2 -translate-y-1/2 transform"}):/*#__PURE__*/t(o,{text:i,variant:l,showZero:n,className:"absolute top-px right-px translate-x-1/2 -translate-y-1/2 transform"})]});export{i as WithBadge};
@@ -1,4 +1,4 @@
1
- import{jsxs as t,jsx as a}from"react/jsx-runtime";import{twJoin as s}from"tailwind-merge";import"react";import{Box as e}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/Avatar/Avatar.js";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import"../../DataDisplays/Accordion/Accordion.js";import{SnackBar as o}from"../../Feedbacks/SnackBar/SnackBar.js";import"../../Inputs/Button/Button.js";import"@wishket/yogokit";import"react-dom";import"../../Feedbacks/Tooltip/Tooltip.js";import"../../Feedbacks/GlobalLoadingIndicator/GlobalLoadingIndicator.js";
1
+ import{jsxs as a,jsx as t}from"react/jsx-runtime";import{twJoin as s}from"tailwind-merge";import"../../Base/Typography/Typography.js";import{Box as o}from"../../Base/Layouts/Box/Box.js";import"../../Base/Layouts/FullBleed/FullBleed.js";import"../../DataDisplays/Avatar/Avatar.js";import"react";import"../../DataDisplays/SystemIcon/SystemIcon.constants.js";import"../../DataDisplays/Accordion/Accordion.js";import{SnackBar as e}from"../../Feedbacks/SnackBar/SnackBar.js";import"../../Inputs/Button/Button.js";import"@wishket/yogokit";import"react-dom";import"../../Feedbacks/Tooltip/Tooltip.js";import"../../Feedbacks/GlobalLoadingIndicator/GlobalLoadingIndicator.js";
2
2
  /**
3
3
  * 스낵바를 포함하는 래퍼 컴포넌트입니다.
4
4
  * 자식 컴포넌트 상단에 알림 메시지를 표시할 수 있습니다.
@@ -21,5 +21,5 @@ import{jsxs as t,jsx as a}from"react/jsx-runtime";import{twJoin as s}from"tailwi
21
21
  * <YourComponent />
22
22
  * </WithSnackBar>
23
23
  * ```
24
- */const i=({children:i,isOpen:r,message:l,type:n,onClose:m})=>/*#__PURE__*/t(e,{"data-testid":"design-system-with-message-bar",children:[
25
- /*#__PURE__*/a(e,{className:"w-full overflow-y-hidden",children:/*#__PURE__*/a(e,{className:s("w-full transform overflow-y-hidden transition-all duration-300 ease-linear",r?"max-h-full translate-y-0":"max-h-0 -translate-y-full"),"data-testid":"design-system-with-message-bar--container",children:/*#__PURE__*/a(e,{className:"pt-8",children:/*#__PURE__*/a(o,{message:l,type:n,onClose:m})})})}),i]});export{i as WithSnackBar};
24
+ */const r=({children:r,isOpen:i,message:l,type:n,onClose:m})=>/*#__PURE__*/a(o,{"data-testid":"design-system-with-message-bar",children:[
25
+ /*#__PURE__*/t(o,{className:"w-full overflow-y-hidden",children:/*#__PURE__*/t(o,{className:s("w-full transform overflow-y-hidden transition-all duration-300 ease-linear",i?"max-h-full translate-y-0":"max-h-0 -translate-y-full"),"data-testid":"design-system-with-message-bar--container",children:/*#__PURE__*/t(o,{className:"pt-8",children:/*#__PURE__*/t(e,{message:l,type:n,onClose:m})})})}),r]});export{r as WithSnackBar};
@@ -8,4 +8,4 @@ return e.jsx(f,o(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arg
8
8
  * @param {string} [props.className] - 추가적인 CSS 클래스
9
9
  * @param {keyof JSX.IntrinsicElements} [props.as='span'] - 렌더링할 HTML 요소
10
10
  * @param {Ref} [props.ref] - 렌더된 요소로 forward되는 ref. as에 따라 추론
11
- */exports.Typography=s;
11
+ */s.displayName="Typography";const l=s;exports.Typography=l;
@@ -1,6 +1,6 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("tailwind-merge");require("react");var s=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var t=require("./parts/NewCircle.js"),a=require("./parts/New.js"),i=require("./parts/Beta.js"),u=require("./parts/Ai.js");exports.ImageLabel=({type:l})=>{const c=()=>{switch(l){case"new_circle":/*#__PURE__*/
2
- return e.jsx(t.NewCircle,{});case"new":/*#__PURE__*/
3
- return e.jsx(a.New,{});case"beta":/*#__PURE__*/
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("tailwind-merge");require("../../Base/Typography/Typography.js");var s=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var a=require("./parts/NewCircle.js"),t=require("./parts/New.js"),i=require("./parts/Beta.js"),u=require("./parts/Ai.js");require("react");exports.ImageLabel=({type:l})=>{const c=()=>{switch(l){case"new_circle":/*#__PURE__*/
2
+ return e.jsx(a.NewCircle,{});case"new":/*#__PURE__*/
3
+ return e.jsx(t.New,{});case"beta":/*#__PURE__*/
4
4
  return e.jsx(i.Beta,{});case"ai":/*#__PURE__*/
5
5
  return e.jsx(u.Ai,{});default:return null}};/*#__PURE__*/
6
6
  return e.jsx(s.Box,{"data-testid":"design-system-imageLabel",className:r.twJoin("text-primary h-fit w-fit","new_circle"!==l&&"pb-1.5"),children:/*#__PURE__*/e.jsx(c,{})})};
@@ -1,6 +1,6 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),r=require("tailwind-merge"),a=require("../../Base/Typography/Typography.js"),o=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var s=require("../../Inputs/Button/Button.js");exports.DialogBox=({title:l,description:t,variant:i="primary",onClose:n,onConfirm:c,confirm:u,close:d="닫기",testId:x})=>{const g="caution"===i;/*#__PURE__*/
2
- return e.jsxs(o.Box,{className:"bg-w-white shadow-modal tablet:w-[400px] flex h-fit max-w-[calc(100vw-40px)] flex-col items-center gap-8 rounded-3xl p-8 font-normal not-italic","data-testid":x||"design-system--dialog-box",children:[
3
- /*#__PURE__*/e.jsxs(o.Box,{className:"flex w-full flex-col gap-6",children:[
4
- /*#__PURE__*/e.jsx(a.Typography,{variant:"subTitle18",className:"text-w-gray-900 font-medium",children:l}),
5
- /*#__PURE__*/e.jsx(a.Typography,{variant:"body16",className:"text-w-gray-800 whitespace-break-spaces",children:t})]}),
6
- /*#__PURE__*/e.jsxs(o.Box,{className:"flex w-full items-center justify-end gap-4",children:[d&&/*#__PURE__*/e.jsx(s.Button,{role:"close",onClick:n,variant:"solid",className:"border-w-bluegray-200 bg-w-bluegray-200 hover:border-w-bluegray-300 hover:bg-w-bluegray-300",children:d}),u&&/*#__PURE__*/e.jsx(s.Button,{role:"confirm",onClick:c,variant:"solid",className:r.twJoin(g&&"border-w-orange-500 bg-w-orange-500 hover:border-w-orange-600 hover:bg-w-orange-600"),children:u})]})]})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("tailwind-merge"),a=require("../../Base/Typography/Typography.js"),s=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var o=require("../../Inputs/Button/Button.js");exports.DialogBox=({title:t,description:l,variant:i="primary",onClose:n,onConfirm:c,confirm:u,close:d="닫기",testId:x})=>{const g="caution"===i;/*#__PURE__*/
2
+ return e.jsxs(s.Box,{className:"bg-w-white shadow-modal tablet:w-[400px] flex h-fit max-w-[calc(100vw-40px)] flex-col items-center gap-8 rounded-3xl p-8 font-normal not-italic","data-testid":x||"design-system--dialog-box",children:[
3
+ /*#__PURE__*/e.jsxs(s.Box,{className:"flex w-full flex-col gap-6",children:[
4
+ /*#__PURE__*/e.jsx(a.Typography,{variant:"subTitle18",className:"text-w-gray-900 font-medium",children:t}),
5
+ /*#__PURE__*/e.jsx(a.Typography,{variant:"body16",className:"text-w-gray-800 whitespace-break-spaces",children:l})]}),
6
+ /*#__PURE__*/e.jsxs(s.Box,{className:"flex w-full items-center justify-end gap-4",children:[d&&/*#__PURE__*/e.jsx(o.Button,{onClick:n,variant:"solid",className:"border-w-bluegray-200 bg-w-bluegray-200 hover:border-w-bluegray-300 hover:bg-w-bluegray-300",children:d}),u&&/*#__PURE__*/e.jsx(o.Button,{onClick:c,variant:"solid",className:r.twJoin(g&&"border-w-orange-500 bg-w-orange-500 hover:border-w-orange-600 hover:bg-w-orange-600"),children:u})]})]})};
@@ -1 +1 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react");require("tailwind-merge"),require("@wishket/yogokit"),require("../../Base/Layouts/Box/Box.js"),require("../../Base/Layouts/FullBleed/FullBleed.js");var r=require("../../Utils/Portal/Portal.js"),s=require("../LoadingIndicator/LoadingIndicator.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 a(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},s=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),s.forEach((function(t){n(e,t,r[t])}))}return e}class i{static getInstance(){return i.instance||(i.instance=new i),i.instance}register(e){this.loaderIds.includes(e)||this.loaderIds.push(e)}unregister(e){this.loaderIds=this.loaderIds.filter((t=>t!==e))}getIsLastIndex(e){return this.loaderIds[this.loaderIds.length-1]===e}constructor(){n(this,"loaderIds",[])}}n(i,"instance",void 0);exports.GlobalLoadingIndicator=n=>{const o=i.getInstance(),l=t.useId(),[d,c]=t.useState([]);t.useEffect((()=>(o.register(l),c(o.loaderIds),()=>{o.unregister(l),c(o.loaderIds)})),[l]);return d.indexOf(l)===d.length-1?/*#__PURE__*/e.jsx(r.Portal,{children:/*#__PURE__*/e.jsx("div",{"data-testid":"design-system-globalLoadingIndicator",className:"fixed top-1/2 left-1/2 z-30 aspect-square -translate-x-1/2 -translate-y-1/2",children:/*#__PURE__*/e.jsx(s.LoadingIndicator,a({},n))})}):null},exports.LoadingManager=i;
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react");require("tailwind-merge"),require("@wishket/yogokit"),require("../../Base/Typography/Typography.js"),require("../../Base/Layouts/Box/Box.js"),require("../../Base/Layouts/FullBleed/FullBleed.js");var t=require("../../Utils/Portal/Portal.js"),s=require("../LoadingIndicator/LoadingIndicator.js");function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},s=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),s.forEach((function(r){n(e,r,t[r])}))}return e}class i{static getInstance(){return i.instance||(i.instance=new i),i.instance}register(e){this.loaderIds.includes(e)||this.loaderIds.push(e)}unregister(e){this.loaderIds=this.loaderIds.filter((r=>r!==e))}getIsLastIndex(e){return this.loaderIds[this.loaderIds.length-1]===e}constructor(){n(this,"loaderIds",[])}}n(i,"instance",void 0);exports.GlobalLoadingIndicator=n=>{const o=i.getInstance(),l=r.useId(),[d,u]=r.useState([]);r.useEffect((()=>(o.register(l),u(o.loaderIds),()=>{o.unregister(l),u(o.loaderIds)})),[l]);return d.indexOf(l)===d.length-1?/*#__PURE__*/e.jsx(t.Portal,{children:/*#__PURE__*/e.jsx("div",{"data-testid":"design-system-globalLoadingIndicator",className:"fixed top-1/2 left-1/2 z-30 aspect-square -translate-x-1/2 -translate-y-1/2",children:/*#__PURE__*/e.jsx(s.LoadingIndicator,a({},n))})}):null},exports.LoadingManager=i;
@@ -1,4 +1,4 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),i=require("tailwind-merge");require("react");var t=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var r=require("./PlainTooltip/PlainTooltip.js"),l=require("./RichTooltip/RichTooltip.js");
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),i=require("tailwind-merge");require("../../Base/Typography/Typography.js");var t=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var r=require("./PlainTooltip/PlainTooltip.js"),s=require("./RichTooltip/RichTooltip.js");
2
2
  /**
3
3
  * 툴팁의 루트 컴포넌트입니다.
4
4
  * CSS 기반 hover와 focus로 동작합니다.
@@ -14,7 +14,7 @@
14
14
  * <Tooltip.Plain variant="up" text="간단한 툴팁" />
15
15
  * </Tooltip>
16
16
  */
17
- const s=({children:r,className:l})=>/*#__PURE__*/e.jsx(t.Box,{className:i.twMerge("group relative inline-block h-fit w-fit",l),"data-testid":"design-system-tooltip",children:r});
17
+ const l=({children:r,className:s})=>/*#__PURE__*/e.jsx(t.Box,{className:i.twMerge("group relative inline-block h-fit w-fit",s),"data-testid":"design-system-tooltip",children:r});
18
18
  /**
19
19
  * 툴팁 트리거 컴포넌트입니다.
20
20
  * 데스크톱에서는 CSS hover로, 모바일에서는 터치(focus)로 툴팁을 표시합니다.
@@ -23,4 +23,4 @@ const s=({children:r,className:l})=>/*#__PURE__*/e.jsx(t.Box,{className:i.twMerg
23
23
  * <Tooltip.Trigger>
24
24
  * <SystemIcon name="medium_information" />
25
25
  * </Tooltip.Trigger>
26
- */s.Trigger=({children:i})=>/*#__PURE__*/e.jsx(t.Box,{"data-testid":"design-system-tooltip--trigger",className:"h-fit w-fit focus:outline-hidden",tabIndex:0,children:i}),s.Plain=r.PlainTooltip,s.Rich=l.RichTooltip,exports.Tooltip=s;
26
+ */l.Trigger=({children:i})=>/*#__PURE__*/e.jsx(t.Box,{"data-testid":"design-system-tooltip--trigger",className:"h-fit w-fit focus:outline-hidden",tabIndex:0,children:i}),l.Plain=r.PlainTooltip,l.Rich=s.RichTooltip,exports.Tooltip=l;
@@ -1,10 +1,19 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),t=require("tailwind-merge"),r=require("react");require("../../DataDisplays/Avatar/Avatar.js"),require("../../Base/Layouts/Box/Box.js"),require("../../Base/Layouts/FullBleed/FullBleed.js");var n=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js");var s=require("../../DataDisplays/Divider/Divider.js");require("../../DataDisplays/Accordion/Accordion.js");var i=require("./AutoCompleteList.parts.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 l(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,s=function(e,t){if(null==e)return{};var r,n,s={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(s[r]=e[r]);return s}
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("tailwind-merge"),r=require("react");require("../../DataDisplays/Avatar/Avatar.js"),require("../../Base/Typography/Typography.js"),require("../../Base/Layouts/Box/Box.js"),require("../../Base/Layouts/FullBleed/FullBleed.js");var s=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js");var n=require("../../DataDisplays/Divider/Divider.js");require("../../DataDisplays/Accordion/Accordion.js");var i=require("./AutoCompleteList.parts.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 l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},s=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),s.forEach((function(t){o(e,t,r[t])}))}return e}function a(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,s,n=function(e,t){if(null==e)return{};var r,s,n={},i=Object.keys(e);for(s=0;s<i.length;s++)r=i[s],t.indexOf(r)>=0||(n[r]=e[r]);return n}
2
2
  /**
3
3
  * 자동완성 목록의 Root 컴포넌트입니다.
4
4
  * 자동완성 항목들을 감싸는 컨테이너 역할을 합니다.
5
5
  *
6
+ * WAI-ARIA APG의 Combobox with List Autocomplete 패턴에 맞춰 실제 목록인
7
+ * `<ul>`에 `role="listbox"`와 `aria-multiselectable="true"`를 항상 부여합니다
8
+ * (`Autocomplete`이 다중 선택 위젯이라 옵션마다 `aria-selected`를 따로 갖습니다).
9
+ * `listboxId`를 넘기면 그 값이 이 `<ul>`의 `id`가 되므로, `Autocomplete`의
10
+ * 입력 필드가 `aria-controls`로 참조할 수 있습니다. `{...rest}`(`className` 제외)와
11
+ * `className`은 그대로 바깥 `<div>`(그림자, IndexBar를 포함하는 레이아웃 전용
12
+ * 래퍼)에 적용됩니다.
13
+ *
6
14
  * @param {Object} props
7
15
  * @param {ReactNode} props.children - 자동완성 목록에 표시될 자식 컴포넌트들 (AutoCompleteList.Item, AutoCompleteList.Divider)
16
+ * @param {string} [props.listboxId] - 실제 목록(`<ul role="listbox">`)에 부여할 id
8
17
  *
9
18
  * @example
10
19
  * ```tsx
@@ -21,11 +30,11 @@
21
30
  * />
22
31
  * </AutoCompleteList.Root>
23
32
  * ```
24
- */(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)&&(s[r]=e[r])}return s}const u={Root:n=>{var{children:s,className:o,hasIndexBar:u=!1,onIndexClick:p}=n,d=c(n,["children","className","hasIndexBar","onIndexClick"]);const y=r.useRef(null),[m,f]=r.useState(!1);return r.useLayoutEffect((()=>{const e=y.current;if(!e)return;const{scrollHeight:t,clientHeight:r}=e;f(t>r)}),[s]),/*#__PURE__*/e.jsxs("div",l(a({className:t.twMerge("shadow-graymedium flex max-h-[436px] w-full rounded-xl",o)},d),{children:[u&&/*#__PURE__*/e.jsx(i.IndexBar,{onIndexClick:p}),
25
- /*#__PURE__*/e.jsx("ul",{ref:y,"data-testid":"design-system-autoCompleteList",className:t.twMerge("bg-w-white flex w-full flex-col py-2 pr-2","scrollbar-list overflow-y-auto",u?"rounded-r-xl":"rounded-xl",m&&"pr-0"),children:s})]}))},Item:r=>{var{text:s,count:o,leadingIcon:u,iconUrl:p,isInputItem:d=!1,isFocused:y=!1,inputValue:m,className:f}=r,x=c(r,["text","count","leadingIcon","iconUrl","isInputItem","isFocused","inputValue","className"]);/*#__PURE__*/
26
- return e.jsxs("li",l(a({className:t.twMerge("bg-w-white hover:bg-primary-10 visible ml-2 flex cursor-pointer items-center gap-2 rounded-xl px-4 py-3 select-none",y&&"bg-primary-10",f)},x),{"data-testid":"design-system-list-item",children:[u&&/*#__PURE__*/e.jsx(n.SystemIcon,{name:u,className:"text-w-gray-600",testId:"design-system-list-item-leading-icon"}),p&&/*#__PURE__*/e.jsx(i.Icon,{iconUrl:p}),
27
- /*#__PURE__*/e.jsx(i.TextSection,{text:s,isInputItem:d,inputValue:m}),
28
- /*#__PURE__*/e.jsx(i.CountSection,{count:o})]}))},Divider:()=>/*#__PURE__*/e.jsx(s.Divider,{className:"my-2"})};
33
+ */(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(s=0;s<i.length;s++)r=i[s],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}const u={Root:s=>{var{children:n,className:o,hasIndexBar:u=!1,onIndexClick:p,listboxId:d}=s,y=c(s,["children","className","hasIndexBar","onIndexClick","listboxId"]);const m=r.useRef(null),[x,b]=r.useState(!1);return r.useLayoutEffect((()=>{const e=m.current;if(!e)return;const{scrollHeight:t,clientHeight:r}=e;b(t>r)}),[n]),/*#__PURE__*/e.jsxs("div",a(l({className:t.twMerge("shadow-graymedium flex max-h-[436px] w-full rounded-xl",o)},y),{children:[u&&/*#__PURE__*/e.jsx(i.IndexBar,{onIndexClick:p}),
34
+ /*#__PURE__*/e.jsx("ul",{ref:m,id:d,role:"listbox","aria-multiselectable":"true",className:t.twMerge("bg-w-white flex w-full flex-col py-2 pr-2","scrollbar-list overflow-y-auto",u?"rounded-r-xl":"rounded-xl",x&&"pr-0"),"data-testid":"design-system-autoCompleteList",children:n})]}))},Item:r=>{var{text:n,count:o,leadingIcon:u,iconUrl:p,isInputItem:d=!1,isFocused:y=!1,isSelected:m=!1,inputValue:x,className:b}=r,f=c(r,["text","count","leadingIcon","iconUrl","isInputItem","isFocused","isSelected","inputValue","className"]);/*#__PURE__*/
35
+ return e.jsxs("li",a(l({className:t.twMerge("bg-w-white hover:bg-primary-10 visible ml-2 flex cursor-pointer items-center gap-2 rounded-xl px-4 py-3 select-none",y&&"bg-primary-10",b)},f),{role:"option","aria-selected":m,"data-testid":"design-system-list-item",children:[u&&/*#__PURE__*/e.jsx(s.SystemIcon,{name:u,className:"text-w-gray-600",testId:"design-system-list-item-leading-icon"}),p&&/*#__PURE__*/e.jsx(i.Icon,{iconUrl:p}),
36
+ /*#__PURE__*/e.jsx(i.TextSection,{text:n,isInputItem:d,inputValue:x}),
37
+ /*#__PURE__*/e.jsx(i.CountSection,{count:o})]}))},Divider:()=>/*#__PURE__*/e.jsx(n.Divider,{className:"my-2"})};
29
38
  /**
30
39
  * 자동완성 목록의 개별 항목 컴포넌트입니다.
31
40
  * @param {Object} props
@@ -34,7 +43,13 @@ return e.jsxs("li",l(a({className:t.twMerge("bg-w-white hover:bg-primary-10 visi
34
43
  * @param {SystemIconName} [props.leadingIcon] - 항목 앞에 표시될 시스템 아이콘
35
44
  * @param {string} [props.iconUrl] - 항목 앞에 표시될 커스텀 아이콘 URL
36
45
  * @param {boolean} [props.isInputItem=false] - 입력 항목 여부
37
- * @param {boolean} [props.isFocused=false] - 포커스 상태 여부
46
+ * @param {boolean} [props.isFocused=false] - 키보드 커서(활성 옵션) 여부. 시각 하이라이트(`bg-primary-10`)에만 반영되며 `aria-selected`와는 무관합니다.
47
+ * @param {boolean} [props.isSelected=false] - 실제로 선택된 항목인지 여부. `aria-selected`에 그대로 반영됩니다.
38
48
  * @param {string} [props.inputValue] - 입력값 (isInputItem이 true인 경우 사용)
39
49
  * @param {string} [props.className] - 추가적인 CSS 클래스
50
+ *
51
+ * `role="option"`이 항상 부여되며, `aria-selected`는 `isSelected`를 그대로 반영합니다.
52
+ * (`isFocused`는 시각 하이라이트 전용이며, `Autocomplete`처럼 다중 선택이 가능한
53
+ * 위젯에서는 커서 위치와 실제 선택 여부가 다르므로 분리했습니다.)
54
+ * `aria-activedescendant`가 가리킬 수 있도록 `id`를 넘겨야 합니다.
40
55
  */exports.AutoCompleteList=u;
@@ -1,4 +1,25 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("@wishket/yogokit"),s=require("../AutoCompleteList/AutoCompleteList.js"),l=require("../TextFieldContainer/TextFieldContainer.js");require("tailwind-merge");var n=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var i=require("../Input/Input.js");require("../Input/PasswordInput.js"),require("../Input/LabelInput.js"),require("../Input/InputTypeSelector.js");var o=require("../InputChip/InputChip.js"),u=require("../SupportTextContainer/SupportTextContainer.js"),a=require("./Autocomplete.parts.js"),c=require("./Autocomplete.utils.js");exports.Autocomplete=({skillItems:p,legacySkillItems:m,selectedItems:d,onChipDelete:x,value:g,onValueChange:I,placeholder:h,onSkillItemClick:f,onLegacySkillItemClick:C,onInputItemClick:j,supportingText:v,hasIndexBar:k=!1,isError:y,errorMessage:q,leadingIcon:S})=>{const[w,A]=t.useState(!1),F=t.useRef(null),b=t.useRef(null),B=t.useRef(null),L=t.useRef(null),[D,T]=t.useState(54),[R,E]=t.useState([]),[V,M]=t.useState(-1),U=c.getSortedSkillItems(p),$=c.getSortedSkillItems(m),_=()=>{A(!1)};t.useEffect((()=>{if(!b.current)return;const e=new ResizeObserver((e=>{for(const t of e)t.target===b.current&&T(t.contentRect.height+4)}));return e.observe(b.current),()=>{e.disconnect()}}),[]),r.useClickOutside(F,_);const N=[...U.map((e=>({type:"static_skill",item:e}))),...$.map((e=>({type:"legacy",item:e}))),...g?[{type:"input",item:g}]:[]],z=e=>{f(e),E([...R,e])},O=e=>{C(e),E([...R,e])},W=()=>{""!==g.trim()&&(j(g.trim()),I(""),E([...R,g]))};/*#__PURE__*/
2
- return e.jsxs("div",{"data-testid":"design-system-autocomplete-root",className:"relative flex w-full flex-col gap-3",ref:F,onKeyDown:e=>{if(!e.nativeEvent.isComposing&&w)switch(e.key){case"ArrowDown":e.preventDefault(),M((e=>{const t=e<N.length-1?e+1:e,r=L.current;if(r){const e=r.querySelectorAll("li")[t];null==e||e.scrollIntoView({block:"nearest"})}return t}));break;case"ArrowUp":e.preventDefault(),M((e=>{const t=e>0?e-1:e,r=L.current;if(r){const e=r.querySelectorAll("li")[t];null==e||e.scrollIntoView({block:"nearest"})}return t}));break;case"Enter":if(e.preventDefault(),V>=0&&V<N.length){const{type:e,item:t}=N[V];"static_skill"===e?z(t):"legacy"===e?O(t):"input"===e&&W()}else g.trim()&&W();break;case"Backspace":g||(e.preventDefault(),x(d[d.length-1]));break;case"Escape":e.preventDefault(),_()}},children:[
3
- /*#__PURE__*/e.jsx("label",{ref:b,children:/*#__PURE__*/e.jsxs(l.TextFieldContainer,{isError:y,isFocused:w,testId:"design-system--selectBox",isAutoComplete:!0,children:[d.map((t=>/*#__PURE__*/e.jsx(o.InputChip,{onDelete:()=>x(t),children:t},t))),
4
- /*#__PURE__*/e.jsx(i.Input,{value:g,onChange:e=>{I(e.target.value)},placeholder:h,onFocus:()=>{w||A(!w)},className:"w-fit flex-auto"})]})}),(v||q)&&/*#__PURE__*/e.jsx(u.SupportTextContainer,{supportMessage:v,errorMessage:q}),w&&/*#__PURE__*/e.jsx(n.Box,{"data-testid":"design-system-autocomplete-list",ref:B,className:"absolute z-40 w-full",style:{top:D},onMouseLeave:()=>{R.length>0&&(_(),E([]))},children:/*#__PURE__*/e.jsx(s.AutoCompleteList.Root,{hasIndexBar:k,onIndexClick:e=>{const t=U.find((t=>t.value.toUpperCase().startsWith(e)));if(t&&B.current){const e=B.current.querySelector(`[id="item-${t.value.replace(/ /g,"_")}"]`);e&&e.scrollIntoView()}},children:/*#__PURE__*/e.jsx("ul",{ref:L,children:/*#__PURE__*/e.jsxs(a.WithDivider,{children:[p.length>0&&/*#__PURE__*/e.jsx(e.Fragment,{children:U.map(((t,r)=>/*#__PURE__*/e.jsx(s.AutoCompleteList.Item,{id:`item-${t.value.replace(/ /g,"_")}`,leadingIcon:S,iconUrl:t.iconUrl,text:t.value,onClick:()=>z(t),isFocused:V===r,inputValue:g},t.value)))}),m.length>0&&/*#__PURE__*/e.jsx(e.Fragment,{children:$.map(((t,r)=>/*#__PURE__*/e.jsx(s.AutoCompleteList.Item,{text:t.value,count:t.count,onClick:()=>O(t),isFocused:V===U.length+r,inputValue:g},`${t.value}-${r}`)))}),""!==g.trim()&&/*#__PURE__*/e.jsx(s.AutoCompleteList.Item,{text:g,isInputItem:!0,onClick:()=>W(),isFocused:V===N.length-1})]})})})})]})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react"),r=require("@wishket/yogokit"),l=require("../AutoCompleteList/AutoCompleteList.js"),s=require("../TextFieldContainer/TextFieldContainer.js");require("../../Base/Typography/Typography.js");var n=require("../../Base/Layouts/Box/Box.js");require("tailwind-merge"),require("../../Base/Layouts/FullBleed/FullBleed.js");var i=require("../Input/Input.js");require("../Input/PasswordInput.js"),require("../Input/LabelInput.js"),require("../Input/InputTypeSelector.js");var a=require("../InputChip/InputChip.js"),o=require("../SupportTextContainer/SupportTextContainer.js"),u=require("./Autocomplete.parts.js"),c=require("./Autocomplete.utils.js");exports.Autocomplete=({skillItems:d,legacySkillItems:p,selectedItems:m,onChipDelete:v,value:h,onValueChange:g,placeholder:f,onSkillItemClick:x,onLegacySkillItemClick:I,onInputItemClick:k,supportingText:y,hasIndexBar:C=!1,isError:j,errorMessage:b,leadingIcon:B,label:S,ariaLabel:w})=>{const[q,D]=t.useState(!1),E=t.useRef(null),A=t.useRef(null),F=t.useRef(null),[L,T]=t.useState(54),[M,R]=t.useState([]),[$,V]=t.useState(-1),N=t.useId(),U=e=>`${N}-option-${e}`,z=t.useCallback((e=>`${N}-chip-${e}`),[N]),[O,P]=t.useState(0),W=t.useRef(null),_=`${N}-label`,H=c.getSortedSkillItems(d),K=c.getSortedSkillItems(p),G=()=>{D(!1)};t.useEffect((()=>{if(!A.current)return;const e=new ResizeObserver((e=>{for(const t of e)t.target===A.current&&T(t.contentRect.height+4)}));return e.observe(A.current),()=>{e.disconnect()}}),[]),r.useClickOutside(E,G),
2
+ // 칩이 줄어들면 activeChipIndex가 범위를 벗어날 있다.
3
+ t.useEffect((()=>{P((e=>Math.min(e,Math.max(m.length-1,0))))}),[m.length]),
4
+ // 키보드 삭제 포커스 이동: 같은 자리의 칩 → 없으면 마지막 칩 →
5
+ // 칩이 하나도 남지 않으면 입력 필드. 포커스가 body로 유실되지 않게 한다.
6
+ t.useEffect((()=>{var e;const t=W.current;if(null===t)return;var r;if(W.current=null,0===m.length)return void(null===(r=F.current)||void 0===r||r.focus());const l=Math.min(t,m.length-1);P(l),null===(e=document.getElementById(z(l)))||void 0===e||e.focus()}),[m,z]);const J=[...H.map((e=>({type:"static_skill",item:e}))),...K.map((e=>({type:"legacy",item:e}))),...h?[{type:"input",item:h}]:[]],Q=e=>{var t;P(e),null===(t=document.getElementById(z(e)))||void 0===t||t.focus()},X=e=>{const t=m.length-1;if(!(t<0))switch(e.key){case"ArrowRight":e.preventDefault(),Q(Math.min(O+1,t));break;case"ArrowLeft":e.preventDefault(),Q(Math.max(O-1,0));break;case"Home":e.preventDefault(),Q(0);break;case"End":e.preventDefault(),Q(t);break;case"Delete":case"Backspace":case"Enter":case" ":e.preventDefault(),(e=>{
7
+ // activeChipIndex는 clamp effect와 삭제 버튼의 onFocus로 범위 안에 유지되지만,
8
+ // 소비자 콜백에 undefined를 넘기는 일은 어떤 경우에도 없어야 하므로 확인한다.
9
+ const t=m[e];void 0!==t&&(
10
+ // 다음 렌더에서 포커스를 옮기기 위해 위치를 기록해 둔다.
11
+ W.current=e,v(t))})(O)}},Y=e=>{x(e),R([...M,e])},Z=e=>{I(e),R([...M,e])},ee=()=>{""!==h.trim()&&(k(h.trim()),g(""),R([...M,h]))};/*#__PURE__*/
12
+ return e.jsxs("div",{"data-testid":"design-system-autocomplete-root",className:"relative flex w-full flex-col gap-3",ref:E,onKeyDown:e=>{if(!e.nativeEvent.isComposing){
13
+ // Escape는 위젯 안 어디에 포커스가 있든 목록을 닫아야 한다(APG combobox).
14
+ // 칩 삭제 버튼에 포커스를 둔 키보드 사용자가 목록을 닫을 방법이 없어지면
15
+ // 안 되므로, 아래 "입력 필드 한정" 가드보다 먼저 처리한다.
16
+ if("Escape"===e.key){if(!q)return;return e.preventDefault(),void G()}
17
+ // 그 밖의 콤보박스 키 조작은 입력 필드에 포커스가 있을 때만 처리한다.
18
+ // 이 핸들러는 루트 <div>에 붙어 있어, 컨테이너 안의 다른 포커스 가능한
19
+ // 요소(칩의 삭제 버튼)에서 올라온 키 이벤트까지 그대로 받는다. 그대로 두면
20
+ // Enter의 preventDefault가 버튼의 기본 활성화를 막아 삭제가 아예 동작하지
21
+ // 않고, Backspace는 포커스된 칩이 아니라 항상 마지막 칩을 지운다.
22
+ if(e.target===F.current){if(q)switch(e.key){case"ArrowDown":e.preventDefault(),V((e=>{var t;const r=e<J.length-1?e+1:e;return null===(t=document.getElementById(U(r)))||void 0===t||t.scrollIntoView({block:"nearest"}),r}));break;case"ArrowUp":e.preventDefault(),V((e=>{var t;const r=e>0?e-1:e;return null===(t=document.getElementById(U(r)))||void 0===t||t.scrollIntoView({block:"nearest"}),r}));break;case"Enter":if(e.preventDefault(),$>=0&&$<J.length){const{type:e,item:t}=J[$];"static_skill"===e?Y(t):"legacy"===e?Z(t):"input"===e&&ee()}else h.trim()&&ee();break;case"Backspace":h||(e.preventDefault(),v(m[m.length-1]))}}else X(e)}},children:[
23
+ /*#__PURE__*/e.jsxs("div",{ref:A,onClick:()=>{var e;null===(e=F.current)||void 0===e||e.focus()},className:"cursor-text",children:[S&&/*#__PURE__*/e.jsx("span",{id:_,className:"sr-only",children:S}),
24
+ /*#__PURE__*/e.jsxs(s.TextFieldContainer,{isError:j,isFocused:q,testId:"design-system--selectBox",isAutoComplete:!0,children:[m.map(((t,r)=>/*#__PURE__*/e.jsx(a.InputChip,{onDelete:()=>v(t),deleteButtonProps:{id:z(r),tabIndex:r===O?0:-1,onFocus:()=>P(r)},children:t},t))),
25
+ /*#__PURE__*/e.jsx(i.Input,{ref:F,value:h,onChange:e=>{g(e.target.value)},placeholder:f,onFocus:()=>{q||D(!q)},className:"w-fit flex-auto",role:"combobox","aria-label":w,"aria-labelledby":!w&&S?_:void 0,"aria-expanded":q,"aria-controls":N,"aria-autocomplete":"list","aria-activedescendant":$>=0?U($):void 0})]})]}),(y||b)&&/*#__PURE__*/e.jsx(o.SupportTextContainer,{supportMessage:y,errorMessage:b}),q&&/*#__PURE__*/e.jsx(n.Box,{"data-testid":"design-system-autocomplete-list",className:"absolute z-40 w-full",style:{top:L},onMouseLeave:()=>{M.length>0&&(G(),R([]))},children:/*#__PURE__*/e.jsx(l.AutoCompleteList.Root,{listboxId:N,hasIndexBar:C,onIndexClick:e=>{var t;const r=H.findIndex((t=>t.value.toUpperCase().startsWith(e)));-1!==r&&(null===(t=document.getElementById(U(r)))||void 0===t||t.scrollIntoView())},children:/*#__PURE__*/e.jsxs(u.WithDivider,{children:[d.length>0&&/*#__PURE__*/e.jsx(e.Fragment,{children:H.map(((t,r)=>/*#__PURE__*/e.jsx(l.AutoCompleteList.Item,{id:U(r),leadingIcon:B,iconUrl:t.iconUrl,text:t.value,onClick:()=>Y(t),isFocused:$===r,isSelected:m.includes(t.value),inputValue:h},t.value)))}),p.length>0&&/*#__PURE__*/e.jsx(e.Fragment,{children:K.map(((t,r)=>/*#__PURE__*/e.jsx(l.AutoCompleteList.Item,{id:U(H.length+r),text:t.value,count:t.count,onClick:()=>Z(t),isFocused:$===H.length+r,isSelected:m.includes(t.value),inputValue:h},`${t.value}-${r}`)))}),""!==h.trim()&&/*#__PURE__*/e.jsx(l.AutoCompleteList.Item,{id:U(J.length-1),text:h,isInputItem:!0,onClick:()=>ee(),isFocused:$===J.length-1,isSelected:m.includes(h.trim())})]})})})]})};
@@ -1,4 +1,4 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react");require("tailwind-merge");var t=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var n=require("./Checkbox.parts.js");function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function s(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){o(e,r,t[r])}))}return e}function a(e,r){if(null==e)return{};var t,n,o=function(e,r){if(null==e)return{};var t,n,o={},s=Object.keys(e);for(n=0;n<s.length;n++)t=s[n],r.indexOf(t)>=0||(o[t]=e[t]);return o}
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react");require("../../Base/Typography/Typography.js");var t=require("../../Base/Layouts/Box/Box.js");require("tailwind-merge"),require("../../Base/Layouts/FullBleed/FullBleed.js");var n=require("./Checkbox.parts.js");function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(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){o(e,r,t[r])}))}return e}function s(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
  * @component
4
4
  * @param {Object} props - 체크박스 컴포넌트 프로퍼티
@@ -27,7 +27,7 @@
27
27
  * console.log('체크박스 상태:', e.target.checked);
28
28
  * };
29
29
  * <Checkbox onChange={handleChange} />
30
- */(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n<s.length;n++)t=s[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}const c=/*#__PURE__*/r.forwardRef(((o,c)=>{var{checked:l=!1,onChange:i,disabled:u=!1,isError:b=!1,type:f="box",className:d}=o,y=a(o,["checked","onChange","disabled","isError","type","className"]);const p=r.useCallback((e=>{u||null==i||i(e)}),[i,u]);/*#__PURE__*/
30
+ */(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 c=/*#__PURE__*/r.forwardRef(((o,c)=>{var{checked:i=!1,onChange:l,disabled:u=!1,isError:b=!1,type:y="box",className:p}=o,f=s(o,["checked","onChange","disabled","isError","type","className"]);const d=r.useCallback((e=>{u||null==l||l(e)}),[l,u]);/*#__PURE__*/
31
31
  return e.jsxs(t.Box,{"data-testid":"design-system-checkbox",className:"group relative flex size-fit",children:[
32
- /*#__PURE__*/e.jsx("input",s({ref:c,className:"absolute inset-0 z-10 cursor-pointer opacity-0",type:"checkbox",checked:l,onChange:p,disabled:u},y)),
33
- /*#__PURE__*/e.jsx(n.CheckboxButton,{checked:l,disabled:u,isError:b,type:f,className:d})]})}));c.displayName="Checkbox",exports.Checkbox=c;
32
+ /*#__PURE__*/e.jsx("input",a({ref:c,className:"absolute inset-0 z-10 cursor-pointer opacity-0",type:"checkbox",checked:i,onChange:d,disabled:u},f)),
33
+ /*#__PURE__*/e.jsx(n.CheckboxButton,{checked:i,disabled:u,isError:b,type:y,className:p})]})}));c.displayName="Checkbox",exports.Checkbox=c;
@@ -1,8 +1,8 @@
1
- "use strict";var r=require("react/jsx-runtime"),e=require("tailwind-merge");const t="text-w-white group-hover:text-w-white",o="text-w-gray-200 group-hover:text-w-gray-200",s="stroke-dasharray-[16] stroke-dashoffset-[16] animate-checkbox-check",a=({checked:a,isError:i,disabled:d})=>/*#__PURE__*/r.jsx("svg",{width:"10",height:"8",viewBox:"0 0 10 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:e.twMerge("absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",a&&t,i&&d&&o,!a&&"text-transparent",d&&(!i&&a?t:"text-transparent")),style:{strokeDasharray:a?"16":"0",strokeDashoffset:a?"16":"0"},children:/*#__PURE__*/r.jsx("path",{d:"M1 3.8L4 7L9 1",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:a?s:""})}),i=({checked:a,isError:i,disabled:d})=>/*#__PURE__*/r.jsx("svg",{width:"10",height:"8",viewBox:"0 0 10 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:e.twMerge("absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",a&&t,i&&d&&o,!a&&"text-w-gray-200 group-hover:text-w-primary",i&&!a&&"text-w-red-500 group-hover:text-w-red-500",d&&(!i&&a?t:o)),style:{strokeDasharray:a?"16":"0",strokeDashoffset:a?"16":"0"},children:/*#__PURE__*/r.jsx("path",{d:"M1 3.8L4 7L9 1",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:a?s:""})}),d=({role:t,className:o,checked:s,disabled:a,isError:i})=>{const d="text-w-gray-100",c=i?a?d:"text-w-red-500":a?s?"text-primary-100":d:s?"text-primary":"text-w-gray-200";/*#__PURE__*/
2
- return r.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",role:t,className:e.twMerge("cursor-pointer",a&&"cursor-not-allowed",c,o),"data-testid":"design-system--sub-checkbox",children:/*#__PURE__*/r.jsx("path",{d:"M4 8.76667L7.75004 12.5L14.0001 5.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})};exports.CheckboxButton=({type:t="box",disabled:o,checked:s=!1,isError:c,className:l})=>{const n="circle"===t?"rounded-full":"rounded";return"sub"===t?/*#__PURE__*/r.jsx(d,{role:"checkbox-button",className:l,checked:s,disabled:o,isError:c}):/*#__PURE__*/r.jsxs("div",{className:e.twMerge("group relative box-border cursor-pointer border",!o&&!c&&"group-focus-within:border-primary-500",!o&&!c&&!s&&"group-focus-within:bg-w-white",{box:"size-4 m-px",circle:"size-[18px]"}[t],n,
1
+ "use strict";var r=require("react/jsx-runtime"),e=require("tailwind-merge");const t="text-w-white group-hover:text-w-white",s="text-w-gray-200 group-hover:text-w-gray-200",o="stroke-dasharray-[16] stroke-dashoffset-[16] animate-checkbox-check",a=({checked:a,isError:i,disabled:d})=>/*#__PURE__*/r.jsx("svg",{width:"10",height:"8",viewBox:"0 0 10 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:e.twMerge("absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",a&&t,i&&d&&s,!a&&"text-transparent",d&&(!i&&a?t:"text-transparent")),style:{strokeDasharray:a?"16":"0",strokeDashoffset:a?"16":"0"},children:/*#__PURE__*/r.jsx("path",{d:"M1 3.8L4 7L9 1",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:a?o:""})}),i=({checked:a,isError:i,disabled:d})=>/*#__PURE__*/r.jsx("svg",{width:"10",height:"8",viewBox:"0 0 10 8",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:e.twMerge("absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2",a&&t,i&&d&&s,!a&&"text-w-gray-200 group-hover:text-w-primary",i&&!a&&"text-w-red-500 group-hover:text-w-red-500",d&&(!i&&a?t:s)),style:{strokeDasharray:a?"16":"0",strokeDashoffset:a?"16":"0"},children:/*#__PURE__*/r.jsx("path",{d:"M1 3.8L4 7L9 1",stroke:"currentColor",strokeWidth:"1.6",strokeLinecap:"round",strokeLinejoin:"round",className:a?o:""})}),d=({className:t,checked:s,disabled:o,isError:a})=>{const i="text-w-gray-100",d=a?o?i:"text-w-red-500":o?s?"text-primary-100":i:s?"text-primary":"text-w-gray-200";/*#__PURE__*/
2
+ return r.jsx("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",className:e.twMerge("cursor-pointer",o&&"cursor-not-allowed",d,t),"data-testid":"design-system--sub-checkbox",children:/*#__PURE__*/r.jsx("path",{d:"M4 8.76667L7.75004 12.5L14.0001 5.5",stroke:"currentColor",strokeWidth:"1.4",strokeLinecap:"round",strokeLinejoin:"round"})})};exports.CheckboxButton=({type:t="box",disabled:s,checked:o=!1,isError:c,className:n})=>{const l="circle"===t?"rounded-full":"rounded";return"sub"===t?/*#__PURE__*/r.jsx(d,{className:n,checked:o,disabled:s,isError:c}):/*#__PURE__*/r.jsxs("div",{className:e.twMerge("group relative box-border cursor-pointer border",!s&&!c&&"group-focus-within:border-primary-500",!s&&!c&&!o&&"group-focus-within:bg-w-white",{box:"size-4 m-px",circle:"size-[18px]"}[t],l,
3
3
  // 비활성화 상태
4
- o?s?c?"bg-w-gray-50 border-w-gray-200 cursor-not-allowed":"bg-primary-100 border-primary-100 cursor-not-allowed":"border-w-gray-200 bg-w-gray-50 cursor-not-allowed":
4
+ s?o?c?"bg-w-gray-50 border-w-gray-200 cursor-not-allowed":"bg-primary-100 border-primary-100 cursor-not-allowed":"border-w-gray-200 bg-w-gray-50 cursor-not-allowed":
5
5
  // 에러 상태
6
- c?s?"border-w-red-500 bg-w-red-500":"border-w-red-500 bg-w-white":
6
+ c?o?"border-w-red-500 bg-w-red-500":"border-w-red-500 bg-w-white":
7
7
  // 정상 상태
8
- s?"bg-primary-500 border-primary-500":"group-hover:border-primary-500 border-w-gray-200 bg-white",l),role:"checkbox-button",children:["box"===t&&/*#__PURE__*/r.jsx(a,{checked:s,isError:c,disabled:o}),"circle"===t&&/*#__PURE__*/r.jsx(i,{checked:s,isError:c,disabled:o})]})};
8
+ o?"bg-primary-500 border-primary-500":"group-hover:border-primary-500 border-w-gray-200 bg-white",n),"data-testid":"design-system--checkbox-button",children:["box"===t&&/*#__PURE__*/r.jsx(a,{checked:o,isError:c,disabled:s}),"circle"===t&&/*#__PURE__*/r.jsx(i,{checked:o,isError:c,disabled:s})]})};
@@ -1,5 +1,5 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),t=require("tailwind-merge"),r=require("../../Base/Typography/Typography.js");require("../../Base/Layouts/Box/Box.js"),require("../../Base/Layouts/FullBleed/FullBleed.js");var a=require("./CheckboxCard.parts.js");exports.CheckboxCard=s=>{const{disabled:i=!1,checked:d=!1,isError:c=!1,onChange:o,isWide:n=!1,containerClassName:l,className:x,iconName:h,title:y,description:g,testId:m,name:u,value:C}=s,b=null!=h?h:n?void 0:"receipt";/*#__PURE__*/
2
- return e.jsx("label",{"data-testid":m,role:"checkbox-card",className:t.twMerge("group",l),children:/*#__PURE__*/e.jsxs(a.CheckboxCardContainer,{"data-testid":"design-system-checkboxCard--container",checked:d,isError:c,isWide:n,disabled:i,className:x,children:[
3
- /*#__PURE__*/e.jsx(a.StyledCheckbox,{isWide:n,checked:d,onChange:o,isError:c,disabled:i,name:u,value:C}),b&&/*#__PURE__*/e.jsx(a.CheckboxCardIcon,{isError:c,checked:d,iconName:b,disabled:i}),
4
- /*#__PURE__*/e.jsxs(a.TitleContainer,{isWide:n,"data-testid":"design-system-checkboxCard--titleBox",children:[
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("tailwind-merge"),r=require("../../Base/Typography/Typography.js");require("../../Base/Layouts/Box/Box.js"),require("../../Base/Layouts/FullBleed/FullBleed.js");var s=require("./CheckboxCard.parts.js");exports.CheckboxCard=a=>{const{disabled:i=!1,checked:d=!1,isError:c=!1,onChange:o,isWide:n=!1,containerClassName:l,className:x,iconName:h,title:y,description:g,testId:m,name:u,value:C}=a,b=null!=h?h:n?void 0:"receipt";/*#__PURE__*/
2
+ return e.jsx("label",{"data-testid":m||"design-system-checkboxCard",className:t.twMerge("group",l),children:/*#__PURE__*/e.jsxs(s.CheckboxCardContainer,{"data-testid":"design-system-checkboxCard--container",checked:d,isError:c,isWide:n,disabled:i,className:x,children:[
3
+ /*#__PURE__*/e.jsx(s.StyledCheckbox,{isWide:n,checked:d,onChange:o,isError:c,disabled:i,name:u,value:C}),b&&/*#__PURE__*/e.jsx(s.CheckboxCardIcon,{isError:c,checked:d,iconName:b,disabled:i}),
4
+ /*#__PURE__*/e.jsxs(s.TitleContainer,{isWide:n,"data-testid":"design-system-checkboxCard--titleBox",children:[
5
5
  /*#__PURE__*/e.jsx(r.Typography,{"data-testid":"design-system-checkboxCard--title",variant:"body16",className:t.twMerge("font-medium",n?"text-left":"text-center",i?"text-w-gray-300":"text-w-gray-900"),children:y}),g&&/*#__PURE__*/e.jsx(r.Typography,{variant:"body14",className:t.twMerge("font-normal",n?"text-left":"text-center",i?"text-w-gray-300":"text-w-gray-600"),"data-testid":"design-system-checkboxCard--description",children:g})]})]})})};
@@ -1,4 +1,4 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("tailwind-merge");require("../../DataDisplays/Avatar/Avatar.js"),require("react");var t=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js"),require("../../DataDisplays/SystemIcon/SystemIcon.constants.js");var o=require("../../DataDisplays/ProductIcon/ProductIcon.js");require("../../DataDisplays/Accordion/Accordion.js");var i=require("../Checkbox/Checkbox.js");function n(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function s(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){n(e,r,t[r])}))}return e}function c(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 a(e,r){if(null==e)return{};var t,o,i=function(e,r){if(null==e)return{};var t,o,i={},n=Object.keys(e);for(o=0;o<n.length;o++)t=n[o],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(o=0;o<n.length;o++)t=n[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}exports.CheckboxCardContainer=t=>{var{children:o,isWide:i,checked:n,isError:l,disabled:u,className:d}=t,p=a(t,["children","isWide","checked","isError","disabled","className"]);/*#__PURE__*/
2
- return e.jsx("div",c(s({className:r.twMerge("relative flex h-auto cursor-pointer items-center gap-2 rounded-xl border",i?"min-h-[94px] w-[298px] flex-row gap-3 px-5 py-4":"min-h-fit w-[224px] flex-col justify-center px-4 pt-4 pb-6",!u&&!l&&"group-focus-within:border-primary-500",(()=>{const e=n&&!l;return u?r.twMerge("cursor-not-allowed",e?"border-primary-100":"border-w-gray-200"):l?"border-w-red-500":n?"border-primary-500":"border-w-gray-200 group-hover:border-primary"})(),u?n&&!l?"bg-primary-10":"bg-w-gray-10":n?l?"bg-w-red-10":"bg-primary-10":"bg-w-white",d)},p),{children:o}))},exports.CheckboxCardIcon=({iconName:t,disabled:i,checked:n,isError:s})=>{const c=s||!n;/*#__PURE__*/
3
- return e.jsx("div",{className:r.twMerge("flex size-[60px] shrink-0 items-center justify-center",i&&"opacity-30"),"data-testid":"design-system-checkboxCard--icon",children:/*#__PURE__*/e.jsx(o.ProductIcon,{name:t,disabled:c})})},exports.StyledCheckbox=o=>{var{isWide:n,className:c}=o,l=a(o,["isWide","className"]);const u=!n;/*#__PURE__*/
4
- return e.jsx(t.Box,{className:r.twJoin(u&&"absolute top-[17px] left-[17px]"),children:/*#__PURE__*/e.jsx(i.Checkbox,s({className:r.twMerge(u&&"group-hover:border-primary-500",c)},l))})},exports.TitleContainer=({isWide:t,children:o})=>/*#__PURE__*/e.jsx("div",{className:r.twMerge("flex h-auto w-full flex-col justify-between gap-0.5",t?"items-start":"items-center"),children:o});
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("tailwind-merge");require("../../DataDisplays/Avatar/Avatar.js"),require("../../Base/Typography/Typography.js");var t=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js"),require("react"),require("../../DataDisplays/SystemIcon/SystemIcon.constants.js");var o=require("../../DataDisplays/ProductIcon/ProductIcon.js");require("../../DataDisplays/Accordion/Accordion.js");var i=require("../Checkbox/Checkbox.js");function s(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function n(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){s(e,r,t[r])}))}return e}function a(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 c(e,r){if(null==e)return{};var t,o,i=function(e,r){if(null==e)return{};var t,o,i={},s=Object.keys(e);for(o=0;o<s.length;o++)t=s[o],r.indexOf(t)>=0||(i[t]=e[t]);return i}(e,r);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(o=0;o<s.length;o++)t=s[o],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}exports.CheckboxCardContainer=t=>{var{children:o,isWide:i,checked:s,isError:l,disabled:u,className:p}=t,d=c(t,["children","isWide","checked","isError","disabled","className"]);/*#__PURE__*/
2
+ return e.jsx("div",a(n({className:r.twMerge("relative flex h-auto cursor-pointer items-center gap-2 rounded-xl border",i?"min-h-[94px] w-[298px] flex-row gap-3 px-5 py-4":"min-h-fit w-[224px] flex-col justify-center px-4 pt-4 pb-6",!u&&!l&&"group-focus-within:border-primary-500",(()=>{const e=s&&!l;return u?r.twMerge("cursor-not-allowed",e?"border-primary-100":"border-w-gray-200"):l?"border-w-red-500":s?"border-primary-500":"border-w-gray-200 group-hover:border-primary"})(),u?s&&!l?"bg-primary-10":"bg-w-gray-10":s?l?"bg-w-red-10":"bg-primary-10":"bg-w-white",p)},d),{children:o}))},exports.CheckboxCardIcon=({iconName:t,disabled:i,checked:s,isError:n})=>{const a=n||!s;/*#__PURE__*/
3
+ return e.jsx("div",{className:r.twMerge("flex size-[60px] shrink-0 items-center justify-center",i&&"opacity-30"),"data-testid":"design-system-checkboxCard--icon",children:/*#__PURE__*/e.jsx(o.ProductIcon,{name:t,disabled:a})})},exports.StyledCheckbox=o=>{var{isWide:s,className:a}=o,l=c(o,["isWide","className"]);const u=!s;/*#__PURE__*/
4
+ return e.jsx(t.Box,{className:r.twJoin(u&&"absolute top-[17px] left-[17px]"),children:/*#__PURE__*/e.jsx(i.Checkbox,n({className:r.twMerge(u&&"group-hover:border-primary-500",a)},l))})},exports.TitleContainer=({isWide:t,children:o})=>/*#__PURE__*/e.jsx("div",{className:r.twMerge("flex h-auto w-full flex-col justify-between gap-0.5",t?"items-start":"items-center"),children:o});
@@ -1,6 +1,6 @@
1
- "use strict";var e=require("react/jsx-runtime"),r=require("tailwind-merge"),l=require("react"),a=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var i=require("../SupportTextContainer/SupportTextContainer.js"),s=require("./FileUploader.parts.js"),o=require("./FileUploader.hooks.js"),t=require("./FileUploader.utils.js");exports.FileUploader=({files:d=[],onChange:n,accept:p,multiple:u=!0,maxFileSize:x,disabled:c=!1,isError:g=!1,errorMessage:m,supportMessage:f,text:h,isSmall:j=!1,onFileSizeExceeded:F})=>{const{inputRef:b,isDragOver:w,handleInputChange:y,handleButtonClick:S,handleRemoveFile:v,handleDragOver:B,handleDragLeave:q,handleDrop:C}=o.useFileUploader({files:d,onChange:n,maxFileSize:x,disabled:c,onFileSizeExceeded:F}),D=l.useMemo((()=>d.reduce(((e,r)=>e+r.size),0)),[d]),z=t.generateAcceptDescription(p);/*#__PURE__*/
2
- return e.jsxs(a.Box,{className:"flex w-full flex-col gap-6",children:[
3
- /*#__PURE__*/e.jsx("input",{ref:b,type:"file",className:"hidden",accept:p,multiple:u,onChange:y,disabled:c,"data-testid":"file-uploader-input"}),d.length>0&&/*#__PURE__*/e.jsx(a.Box,{className:"flex flex-col gap-2",children:d.map(((r,l)=>/*#__PURE__*/e.jsx(s.FileItem,{file:r,onRemove:()=>v(l),disabled:c},`${r.name}-${l}`)))}),
4
- /*#__PURE__*/e.jsxs(a.Box,{className:"flex flex-col gap-2",children:[
5
- /*#__PURE__*/e.jsx("button",{type:"button",className:r.twMerge("border-w-gray-200 bg-w-gray-10 text-w-gray-600 flex w-full items-center justify-center gap-3 rounded-xl border border-dashed px-6 py-8",j?"flex-row":"flex-col",c&&"cursor-not-allowed",g&&"border-w-red-500",!c&&!g&&"hover:border-w-gray-400",w&&!c&&!g&&"border-w-gray-400"),disabled:c,onClick:S,onDragOver:B,onDragLeave:q,onDrop:C,children:/*#__PURE__*/e.jsx(s.FileUploadArea,{disabled:c,isSmall:j,text:h,acceptDescription:z})}),
6
- /*#__PURE__*/e.jsx(i.SupportTextContainer,{errorMessage:m,supportMessage:f,currentFileSize:D,maxFileSize:x})]})]})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("tailwind-merge"),a=require("react");require("../../Base/Typography/Typography.js");var l=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var i=require("../SupportTextContainer/SupportTextContainer.js"),s=require("./FileUploader.parts.js"),o=require("./FileUploader.hooks.js"),t=require("./FileUploader.utils.js");exports.FileUploader=({files:d=[],onChange:n,accept:p,multiple:u=!0,maxFileSize:x,disabled:c=!1,isError:g=!1,errorMessage:h,supportMessage:m,text:f,isSmall:j=!1,onFileSizeExceeded:F})=>{const{inputRef:b,isDragOver:y,handleInputChange:w,handleButtonClick:v,handleRemoveFile:B,handleDragOver:S,handleDragLeave:q,handleDrop:C}=o.useFileUploader({files:d,onChange:n,maxFileSize:x,disabled:c,onFileSizeExceeded:F}),D=a.useMemo((()=>d.reduce(((e,r)=>e+r.size),0)),[d]),z=t.generateAcceptDescription(p);/*#__PURE__*/
2
+ return e.jsxs(l.Box,{className:"flex w-full flex-col gap-6",children:[
3
+ /*#__PURE__*/e.jsx("input",{ref:b,type:"file",className:"hidden",accept:p,multiple:u,onChange:w,disabled:c,"data-testid":"file-uploader-input"}),d.length>0&&/*#__PURE__*/e.jsx(l.Box,{className:"flex flex-col gap-2",children:d.map(((r,a)=>/*#__PURE__*/e.jsx(s.FileItem,{file:r,onRemove:()=>B(a),disabled:c},`${r.name}-${a}`)))}),
4
+ /*#__PURE__*/e.jsxs(l.Box,{className:"flex flex-col gap-2",children:[
5
+ /*#__PURE__*/e.jsx("button",{type:"button",className:r.twMerge("border-w-gray-200 bg-w-gray-10 text-w-gray-600 flex w-full items-center justify-center gap-3 rounded-xl border border-dashed px-6 py-8",j?"flex-row":"flex-col",c&&"cursor-not-allowed",g&&"border-w-red-500",!c&&!g&&"hover:border-w-gray-400",y&&!c&&!g&&"border-w-gray-400"),disabled:c,onClick:v,onDragOver:S,onDragLeave:q,onDrop:C,children:/*#__PURE__*/e.jsx(s.FileUploadArea,{disabled:c,isSmall:j,text:f,acceptDescription:z})}),
6
+ /*#__PURE__*/e.jsx(i.SupportTextContainer,{errorMessage:h,supportMessage:m,currentFileSize:D,maxFileSize:x})]})]})};
@@ -1,3 +1,3 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),s=require("tailwind-merge");require("../../DataDisplays/Avatar/Avatar.js"),require("react"),require("../../Base/Layouts/Box/Box.js"),require("../../Base/Layouts/FullBleed/FullBleed.js");var t=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js"),require("../../DataDisplays/Accordion/Accordion.js");var i=require("../IconButton/IconButton.js"),n=require("../List/List.js"),o=require("../../../hooks/useDropdown.js");exports.IconButtonDropdown=({icon:a,items:r,selectedItem:l,onItemClick:c,size:d="sm",align:u="left",disabled:m=!1})=>{const{isListOpen:y,ref:I,focusedIndex:j,handleItemClick:x,toggleListOpen:w,handleKeyDown:p}=o.useDropdown({items:r,onItemClick:c});/*#__PURE__*/
2
- return e.jsxs("div",{"data-testid":"design-system-icon-button-dropdown",className:"relative w-fit outline-hidden",ref:I,onKeyDown:p,tabIndex:0,children:[
3
- /*#__PURE__*/e.jsx(i.IconButton,{onClick:w,size:d,className:"outline-hidden",disabled:m,children:/*#__PURE__*/e.jsx(t.SystemIcon,{name:a,className:s.twJoin(m&&"text-w-gray-300")})}),y&&/*#__PURE__*/e.jsx("div",{"data-testid":"design-system-icon-button-dropdown--list-container",className:s.twJoin("absolute -bottom-2 z-40 translate-y-full transform transition-all","right"===u?"right-0":"left-0"),children:/*#__PURE__*/e.jsx(n.List.Root,{className:"max-h-full min-w-40 overflow-y-visible",children:r.map(((s,t)=>/*#__PURE__*/e.jsx(n.List.Item,{text:s.value,leadingIcon:s.leadingIcon,onClick:()=>x(s),selected:s.key===(null==l?void 0:l.key),isFocused:t===j},s.key)))})})]})};
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),s=require("tailwind-merge");require("../../DataDisplays/Avatar/Avatar.js"),require("../../Base/Typography/Typography.js"),require("../../Base/Layouts/Box/Box.js"),require("../../Base/Layouts/FullBleed/FullBleed.js"),require("react");var t=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js"),require("../../DataDisplays/Accordion/Accordion.js");var i=require("../IconButton/IconButton.js"),n=require("../List/List.js"),o=require("../../../hooks/useDropdown.js");exports.IconButtonDropdown=({icon:a,items:r,selectedItem:l,onItemClick:c,size:d="sm",align:u="left",disabled:m=!1})=>{const{isListOpen:y,ref:I,focusedIndex:j,handleItemClick:p,toggleListOpen:x,handleKeyDown:h}=o.useDropdown({items:r,onItemClick:c});/*#__PURE__*/
2
+ return e.jsxs("div",{"data-testid":"design-system-icon-button-dropdown",className:"relative w-fit outline-hidden",ref:I,onKeyDown:h,tabIndex:0,children:[
3
+ /*#__PURE__*/e.jsx(i.IconButton,{onClick:x,size:d,className:"outline-hidden",disabled:m,children:/*#__PURE__*/e.jsx(t.SystemIcon,{name:a,className:s.twJoin(m&&"text-w-gray-300")})}),y&&/*#__PURE__*/e.jsx("div",{"data-testid":"design-system-icon-button-dropdown--list-container",className:s.twJoin("absolute -bottom-2 z-40 translate-y-full transform transition-all","right"===u?"right-0":"left-0"),children:/*#__PURE__*/e.jsx(n.List.Root,{className:"max-h-full min-w-40 overflow-y-visible",children:r.map(((s,t)=>/*#__PURE__*/e.jsx(n.List.Item,{text:s.value,leadingIcon:s.leadingIcon,onClick:()=>p(s),selected:s.key===(null==l?void 0:l.key),isFocused:t===j},s.key)))})})]})};
@@ -23,5 +23,5 @@
23
23
  *
24
24
  * // 에러 상태
25
25
  * <Input isError placeholder="에러 상태" />
26
- */(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 a=/*#__PURE__*/r.forwardRef(((r,a)=>{var{disabled:l,className:i,isError:u,isFocused:c}=r,s=o(r,["disabled","className","isError","isFocused"]);/*#__PURE__*/
27
- return e.jsx("input",function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){n(e,r,t[r])}))}return e}({role:"text-input",ref:a,className:t.twMerge("typo-body16 placeholder:typo-body16 tracking-default placeholder:tracking-default text-w-gray-600 placeholder:text-w-gray-300 disabled:bg-w-gray-10 w-full outline-hidden",l&&"placeholder:typo-body16 text-w-gray-300 placeholder:text-w-gray-200 cursor-not-allowed",i),"data-testid":"design-system--input",disabled:l},s))}));a.displayName="Input",exports.Input=a;
26
+ */(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 a=/*#__PURE__*/r.forwardRef(((r,a)=>{var{disabled:l,className:i,isError:c,isFocused:u}=r,s=o(r,["disabled","className","isError","isFocused"]);/*#__PURE__*/
27
+ return e.jsx("input",function(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(t).filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})))),o.forEach((function(r){n(e,r,t[r])}))}return e}({ref:a,className:t.twMerge("typo-body16 placeholder:typo-body16 tracking-default placeholder:tracking-default text-w-gray-600 placeholder:text-w-gray-300 disabled:bg-w-gray-10 w-full outline-hidden",l&&"placeholder:typo-body16 text-w-gray-300 placeholder:text-w-gray-200 cursor-not-allowed",i),"data-testid":"design-system--input",disabled:l},s))}));a.displayName="Input",exports.Input=a;
@@ -1,4 +1,4 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),t=require("react");require("../../DataDisplays/Avatar/Avatar.js"),require("tailwind-merge");var r=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var n=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js"),require("../../DataDisplays/Accordion/Accordion.js");var s=require("./Input.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 c(e,t){if(null==e)return{};var r,n,s=function(e,t){if(null==e)return{};var r,n,s={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(s[r]=e[r]);return s}(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)&&(s[r]=e[r])}return s}const u=/*#__PURE__*/t.forwardRef(((o,u)=>{var{type:l,disabled:p}=o,y=c(o,["type","disabled"]);const[b,f]=t.useState(!1);/*#__PURE__*/
2
- return e.jsxs(r.Box,{className:"flex w-full items-center gap-2","data-testid":"design-system--password-input",children:[
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),r=require("react");require("../../DataDisplays/Avatar/Avatar.js"),require("tailwind-merge"),require("../../Base/Typography/Typography.js");var t=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js");var n=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js"),require("../../DataDisplays/Accordion/Accordion.js");var s=require("./Input.js");function o(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function a(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){o(e,r,t[r])}))}return e}function i(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 c(e,r){if(null==e)return{};var t,n,s=function(e,r){if(null==e)return{};var t,n,s={},o=Object.keys(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||(s[t]=e[t]);return s}(e,r);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)t=o[n],r.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(s[t]=e[t])}return s}const u=/*#__PURE__*/r.forwardRef(((o,u)=>{var{type:l,disabled:p}=o,y=c(o,["type","disabled"]);const[b,f]=r.useState(!1);/*#__PURE__*/
2
+ return e.jsxs(t.Box,{className:"flex w-full items-center gap-2","data-testid":"design-system--password-input",children:[
3
3
  /*#__PURE__*/e.jsx(s.Input,i(a({type:b?"text":"password",ref:u},y),{disabled:p})),
4
4
  /*#__PURE__*/e.jsx("button",{onClick:e=>{e.preventDefault(),f((e=>!e))},disabled:p,className:p?"cursor-not-allowed":"cursor-pointer",type:"button",children:/*#__PURE__*/e.jsx(n.SystemIcon,{name:b?"medium_eye_slash":"medium_eye",className:"text-w-gray-400"})})]})}));u.displayName="PasswordInput",exports.PasswordInput=u;
@@ -1,2 +1,36 @@
1
- "use client";"use strict";var e=require("react/jsx-runtime"),s=require("tailwind-merge");require("../../DataDisplays/Avatar/Avatar.js");var a=require("../../Base/Typography/Typography.js"),r=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js"),require("react");var t=require("../../DataDisplays/SystemIcon/SystemIcon.js");require("../../DataDisplays/SystemIcon/SystemIcon.constants.js"),require("../../DataDisplays/Accordion/Accordion.js");exports.InputChip=({children:i,onDelete:l,className:n})=>/*#__PURE__*/e.jsxs(r.Box,{"data-testid":"design-system-input-chip--container",className:s.twMerge("bg-w-gray-100 flex h-6 w-fit max-w-[100px] items-center gap-0.5 rounded-lg px-2 py-px select-none",!!l&&"pr-1.5 pl-2",n),children:[
2
- /*#__PURE__*/e.jsx(a.Typography,{variant:"body14",className:"text-w-gray-600 h-6 w-full overflow-hidden break-all text-ellipsis whitespace-nowrap",children:i}),!!l&&/*#__PURE__*/e.jsx(r.Box,{onClick:l,"data-testid":"design-system-input-chip--delete",children:/*#__PURE__*/e.jsx(t.SystemIcon,{name:"small_delete",className:"text-w-gray-400 cursor-pointer"})})]});
1
+ "use client";"use strict";var e=require("react/jsx-runtime"),t=require("tailwind-merge");require("../../DataDisplays/Avatar/Avatar.js");var r=require("../../Base/Typography/Typography.js"),n=require("../../Base/Layouts/Box/Box.js");require("../../Base/Layouts/FullBleed/FullBleed.js"),require("react");var s=require("../../DataDisplays/SystemIcon/SystemIcon.js");function a(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){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){a(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}
2
+ /**
3
+ * 삭제 가능한 칩(chip) 형태의 입력 컴포넌트입니다.
4
+ *
5
+ * @component
6
+ * @param {Object} props
7
+ * @param {React.ReactNode} props.children - 칩 내부에 표시될 콘텐츠
8
+ * @param {() => void} [props.onDelete] - 삭제 버튼 클릭 시 실행될 콜백 함수. 삭제 버튼은 `<button type="button">`으로 렌더되어 클릭뿐 아니라 키보드(Tab 포커스 + Enter/Space)로도 동작합니다.
9
+ * @param {string} [props.className] - 추가적인 CSS 클래스
10
+ * @param {string} [props.deleteLabel] - 삭제 버튼의 접근 가능한 이름. 미지정 시 `children`이 문자열이면 `"{children} 삭제"`, 아니면 `"삭제"`
11
+ * @param {Object} [props.deleteButtonProps] - 삭제 버튼에 직접 전달할 `id` / `tabIndex` / `onFocus`. 칩 묶음의 roving tabindex 구현용이며 단독 사용 시에는 불필요합니다.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * // 기본 사용
16
+ * <InputChip>태그</InputChip>
17
+ *
18
+ * // 삭제 기능이 있는 칩
19
+ * <InputChip onDelete={() => console.log('삭제됨')}>
20
+ * 삭제 가능한 태그
21
+ * </InputChip>
22
+ *
23
+ * // 커스텀 스타일이 적용된 칩
24
+ * <InputChip className="bg-blue-100">
25
+ * 커스텀 스타일 태그
26
+ * </InputChip>
27
+ * ```
28
+ */require("../../DataDisplays/SystemIcon/SystemIcon.constants.js"),require("../../DataDisplays/Accordion/Accordion.js");exports.InputChip=({children:a,onDelete:c,className:l,deleteLabel:p,deleteButtonProps:u})=>{
29
+ // 아이콘만 있는 버튼이라 접근 가능한 이름을 명시해야 한다. children이
30
+ // ReactNode라 항상 텍스트는 아니므로, 문자열/숫자일 때만 칩 텍스트를 이름에
31
+ // 넣고 그 외(엘리먼트, 배열 등)에는 일반 라벨로 폴백한다. 임의 ReactNode에서
32
+ // 텍스트를 추출할 일반적인 방법은 없으므로, 그런 경우 소비자가 deleteLabel로
33
+ // 직접 지정한다.
34
+ const y="string"==typeof a||"number"==typeof a?String(a):void 0,b=null!=p?p:y?`${y} 삭제`:"삭제";/*#__PURE__*/
35
+ return e.jsxs(n.Box,{"data-testid":"design-system-input-chip--container",className:t.twMerge("bg-w-gray-100 flex h-6 w-fit max-w-[100px] items-center gap-0.5 rounded-lg px-2 py-px select-none",!!c&&"pr-1.5 pl-2",l),children:[
36
+ /*#__PURE__*/e.jsx(r.Typography,{variant:"body14",className:"text-w-gray-600 h-6 w-full overflow-hidden break-all text-ellipsis whitespace-nowrap",children:a}),!!c&&/*#__PURE__*/e.jsx("button",i(o({},u),{type:"button",onClick:c,"aria-label":b,"data-testid":"design-system-input-chip--delete",className:"flex cursor-pointer items-center",children:/*#__PURE__*/e.jsx(s.SystemIcon,{name:"small_delete",className:"text-w-gray-400"})}))]})};