@pop-ui/core 0.0.27 → 0.0.29

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.
package/dist/core.umd.cjs CHANGED
@@ -1 +1,10 @@
1
- (function(d,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("@mantine/core"),require("react/jsx-runtime"),require("react"),require("@pop-ui/foundation"),require("dayjs/locale/ko"),require("@mantine/dates"),require("@mantine/notifications"),require("@mantine/dropzone")):typeof define=="function"&&define.amd?define(["exports","@mantine/core","react/jsx-runtime","react","@pop-ui/foundation","dayjs/locale/ko","@mantine/dates","@mantine/notifications","@mantine/dropzone"],s):(d=typeof globalThis<"u"?globalThis:d||self,s(d.Core={},d.MantineCore,d.jsxRuntime,d.React,d.foundation,null,d.dates,d.notifications,d.dropzone))})(this,function(d,s,o,C,e,ne,w,z,$){"use strict";const q={primary:e.TextColorButtonTextPrimaryDefault,primaryLine:e.TextColorButtonTextPrimarylineDefault,basic:e.TextColorButtonTextBasicDefault,danger:e.TextColorButtonTextPrimaryDefault,setting:e.TextColorButtonTextPrimaryDefault,warning:e.TextColorButtonTextPrimaryDefault},j={primary:{default:{backgroundColor:e.BgColorButtonBgPrimaryDefault,color:e.TextColorButtonTextPrimaryDefault,border:"none"},hover:{backgroundColor:e.BgColorButtonBgPrimaryHover,color:e.TextColorButtonTextPrimaryHover},active:{backgroundColor:e.BgColorButtonBgPrimaryPressed,color:e.TextColorButtonTextPrimaryPressed},focus:{backgroundColor:e.BgColorButtonBgPrimaryFocused,color:e.TextColorButtonTextPrimaryFocused},disabled:{backgroundColor:e.BgColorButtonBgPrimaryDisabled,color:e.TextColorButtonTextPrimaryDisabled,cursor:"not-allowed"}},primaryLine:{default:{backgroundColor:e.BgColorButtonBgPrimarylineDefault,color:e.TextColorButtonTextPrimarylineDefault,border:`1px solid ${e.BorderColorButtonBorderPrimarylineDefault}`},hover:{backgroundColor:e.BgColorButtonBgPrimarylineHover,color:e.TextColorButtonTextPrimarylineHover,borderColor:e.BorderColorButtonBorderPrimarylineHover},active:{backgroundColor:e.BgColorButtonBgPrimarylinePressed,color:e.TextColorButtonTextPrimarylinePressed,borderColor:e.BorderColorButtonBorderPrimarylinePressed},focus:{backgroundColor:e.BgColorButtonBgPrimarylineFocused,color:e.TextColorButtonTextPrimarylineFocused,borderColor:e.BorderColorButtonBorderPrimarylineFocused},disabled:{backgroundColor:e.BgColorButtonBgPrimarylineDisabled,color:e.TextColorButtonTextPrimarylineDisabled,cursor:"not-allowed"}},basic:{default:{backgroundColor:e.BgColorButtonBgBasicDefault,color:e.TextColorButtonTextBasicDefault,border:`1px solid ${e.BorderColorButtonBorderBasicDefault}`},hover:{backgroundColor:e.BgColorButtonBgBasicHover,color:e.TextColorButtonTextBasicHover,borderColor:e.BorderColorButtonBorderBasicHover},active:{backgroundColor:e.BgColorButtonBgBasicPreseed,color:e.TextColorButtonTextBasicPressed,borderColor:e.BorderColorButtonBorderBasicPressed},focus:{backgroundColor:e.BgColorButtonBgBasicFocused,color:e.TextColorButtonTextBasicFocused,borderColor:e.BorderColorButtonBorderBasicFocused},disabled:{backgroundColor:e.BgColorButtonBgBasicDisabled,color:e.TextColorButtonTextBasicDisabled,cursor:"not-allowed"}},danger:{default:{backgroundColor:e.BgColorButtonBgWarningDefault,color:e.TextColorButtonTextWarningDefault,border:"none"},hover:{backgroundColor:e.BgColorButtonBgWarningHover,color:e.TextColorButtonTextWarningHover},active:{backgroundColor:e.BgColorButtonBgWarningPressed,color:e.TextColorButtonTextWarningPressed},focus:{backgroundColor:e.BgColorButtonBgWarningFocused,color:e.TextColorButtonTextWarningFocused},disabled:{backgroundColor:e.BgColorButtonBgWarningDisabled,color:e.TextColorButtonTextWarningDisabled,cursor:"not-allowed"}},setting:{default:{backgroundColor:e.BgColorButtonBgSettingDefault,color:e.TextColorButtonTextSettingDefault,border:"none"},hover:{backgroundColor:e.BgColorButtonBgSettingHover,color:e.TextColorButtonTextSettingHover},active:{backgroundColor:e.BgColorButtonBgSettingPressed,color:e.TextColorButtonTextSettingPressed},focus:{backgroundColor:e.BgColorButtonBgSettingFocused,color:e.TextColorButtonTextSettingFocused},disabled:{backgroundColor:e.BgColorButtonBgSettingDisabled,color:e.TextColorButtonTextSettingDisabled,cursor:"not-allowed"}},warning:{default:{backgroundColor:e.BgColorButtonBgWarningDefault,color:e.TextColorButtonTextWarningDefault,border:"none"},hover:{backgroundColor:e.BgColorButtonBgWarningHover,color:e.TextColorButtonTextWarningHover},active:{backgroundColor:e.BgColorButtonBgWarningPressed,color:e.TextColorButtonTextWarningPressed},focus:{backgroundColor:e.BgColorButtonBgWarningFocused,color:e.TextColorButtonTextWarningFocused},disabled:{backgroundColor:e.BgColorButtonBgWarningDisabled,color:e.TextColorButtonTextWarningDisabled,cursor:"not-allowed"}}},J={lg:{height:"50px",padding:"0 20px",fontSize:"18px",fontWeight:700,borderRadius:"6px",lineHeight:"130%",fontFamily:"Pretendard"},md:{height:"40px",padding:"0 16px",fontSize:"16px",fontWeight:600,borderRadius:"6px",lineHeight:"130%",fontFamily:"Pretendard"},sm:{height:"30px",padding:"0 12px",fontSize:"14px",fontWeight:600,borderRadius:"4px",lineHeight:"130%",fontFamily:"Pretendard"}};function Z(r,a){const l=j[r];return{root:{...J[a],...l.default,"&:hover:not(:disabled)":l.hover,"&:active:not(:disabled)":l.active,"&:focus:not(:disabled)":l.focus,"&:disabled":l.disabled}}}function V({children:r,size:a="md",variant:l="primary",isLoading:t=!1,disabled:_=!1,...m}){const c=C.useMemo(()=>Z(l,a),[l,a]),g=q[l],n=C.useMemo(()=>{switch(a){case"lg":return 18;case"sm":return 14;case"md":default:return 16}},[a]);return o.jsx(s.Button,{type:"button",styles:c,disabled:_||t,...m,children:t?o.jsx(s.Loader,{color:g,size:n}):r})}const B={"TextField--LeftLabel":"styles-module__TextField--LeftLabel___hiNn3","TextField--TopLabel":"styles-module__TextField--TopLabel___V2otc","TextField__Label--Small":"styles-module__TextField__Label--Small___NkKKA","TextField__Label--Medium":"styles-module__TextField__Label--Medium___IoJd-","TextField__Label--Large":"styles-module__TextField__Label--Large___GMy74","TextField__Tooltip--Small":"styles-module__TextField__Tooltip--Small___GmQHE","TextField__Tooltip--Medium":"styles-module__TextField__Tooltip--Medium___5P3nA","TextField__Tooltip--Large":"styles-module__TextField__Tooltip--Large___YSCfu",TextField__Wrapper:"styles-module__TextField__Wrapper___u6p5Z",TextField__TextCounter:"styles-module__TextField__TextCounter___u1jM5","TextField--Textarea":"styles-module__TextField--Textarea___C2DL5","TextField--Small":"styles-module__TextField--Small___iuH4t","TextField--Medium":"styles-module__TextField--Medium___snYod","TextField--Large":"styles-module__TextField--Large___JoSYk",TextField__Description:"styles-module__TextField__Description___J-kXP",TextField__ErrorMsg:"styles-module__TextField__ErrorMsg___fa6f6",TextField__ClearButton:"styles-module__TextField__ClearButton___bB5Ew"},G=r=>{const{label:a,labelPosition:l="top",size:t="md",required:_,tooltip:m,tooltipPosition:c="top",errorMsg:g,description:n,textarea:y=!1,maxTextCount:i,onChange:u,onClear:b,...T}=r,S="minRows"in r?r.minRows:void 0,[x,M]=C.useState(0);let L=B["TextField__Label--Medium"],Y=B["TextField--Medium"],H=B["TextField__Tooltip--Medium"];t==="sm"?(L=B["TextField__Label--Small"],Y=B["TextField--Small"],H=B["TextField__Tooltip--Small"]):t==="lg"&&(L=B["TextField__Label--Large"],Y=B["TextField--Large"],H=B["TextField__Tooltip--Large"]);const A=C.useCallback(P=>{if(i){if(P.currentTarget?.value?.length>i)return;M(P.currentTarget?.value?.length),u&&u(P)}u&&(M(P.currentTarget?.value?.length),u(P))},[i,u]);return o.jsxs("div",{className:l==="top"?B["TextField--TopLabel"]:B["TextField--LeftLabel"],children:[o.jsxs("div",{children:[a&&o.jsx(s.Input.Label,{required:_,className:L,children:a}),m&&o.jsx(s.Tooltip,{label:m,position:c,children:o.jsx("div",{className:H,children:o.jsx(e.IconInfoCircle,{size:t==="sm"?14:t==="lg"?20:16})})})]}),o.jsxs("div",{children:[o.jsxs("div",{className:B.TextField__Wrapper,children:[y?o.jsx(s.Textarea,{className:B["TextField--Textarea"],size:t,minRows:S,error:g,onChange:A,disabled:T?.disabled,...T}):o.jsx(s.Input,{className:Y,error:g,onChange:A,rightSection:b&&x>0?o.jsx("div",{className:B.TextField__ClearButton,onClick:b,children:o.jsx(e.IconClose,{size:t==="sm"?16:t==="lg"?24:20})}):void 0,...T}),i&&i>0&&o.jsx("span",{className:B.TextField__TextCounter,children:`${x}/${i}`})]}),n&&o.jsx(s.Input.Description,{className:B.TextField__Description,children:n}),g&&o.jsx(s.Input.Error,{className:B.TextField__ErrorMsg,children:g})]})]})},p={"SearchBar--LeftLabel":"styles-module__SearchBar--LeftLabel___CeYTM","SearchBar--TopLabel":"styles-module__SearchBar--TopLabel___spN3I","SearchBar__Label--Small":"styles-module__SearchBar__Label--Small___zS1L2","SearchBar__Label--Medium":"styles-module__SearchBar__Label--Medium___Fk0Ao","SearchBar__Label--Large":"styles-module__SearchBar__Label--Large___xTOYL","SearchBar__Tooltip--Small":"styles-module__SearchBar__Tooltip--Small___YhmEr","SearchBar__Tooltip--Medium":"styles-module__SearchBar__Tooltip--Medium___4JhOv","SearchBar__Tooltip--Large":"styles-module__SearchBar__Tooltip--Large___IEoPv",SearchBar__Wrapper:"styles-module__SearchBar__Wrapper___oq49s","SearchBar--Small":"styles-module__SearchBar--Small___SY9CN","SearchBar--Medium":"styles-module__SearchBar--Medium___vLP08","SearchBar--Large":"styles-module__SearchBar--Large___JHfHP",SearchBar__Description:"styles-module__SearchBar__Description___vucS-",SearchBar__ErrorMsg:"styles-module__SearchBar__ErrorMsg___TOeoy",SearchBar__ClearButton:"styles-module__SearchBar__ClearButton___S-y4P"},Q=({label:r,labelPosition:a="top",size:l="md",required:t,tooltip:_,tooltipPosition:m="top",errorMsg:c,description:g,onChange:n,onClear:y,...i})=>{const[u,b]=C.useState(0);let T=p["SearchBar__Label--Medium"],S=p["SearchBar--Medium"],x=p["SearchBar__Tooltip--Medium"];l==="sm"?(T=p["SearchBar__Label--Small"],S=p["SearchBar--Small"],x=p["SearchBar__Tooltip--Small"]):l==="lg"&&(T=p["SearchBar__Label--Large"],S=p["SearchBar--Large"],x=p["SearchBar__Tooltip--Large"]);const M=C.useCallback(L=>{n&&(b(L?.length),n(L))},[n]);return o.jsxs("div",{className:a==="top"?p["SearchBar--TopLabel"]:p["SearchBar--LeftLabel"],children:[o.jsxs("div",{children:[r&&o.jsx(s.Input.Label,{required:t,className:T,children:r}),_&&o.jsx(s.Tooltip,{label:_,position:m,children:o.jsx("div",{className:x,children:o.jsx(e.IconInfoCircle,{size:l==="sm"?14:l==="lg"?20:16})})})]}),o.jsxs("div",{children:[o.jsx("div",{className:p.SearchBar__Wrapper,children:o.jsx(s.Autocomplete,{...i,size:l,error:c,className:S,onChange:M,leftSection:o.jsx(e.IconSearch,{size:l==="sm"?16:l==="lg"?24:20}),rightSection:y&&u>0?o.jsx("div",{className:p.SearchBar__ClearButton,onClick:y,children:o.jsx(e.IconClose,{size:l==="sm"?16:l==="lg"?24:20})}):void 0})}),g&&o.jsx(s.Input.Description,{className:p.SearchBar__Description,children:g}),c&&o.jsx(s.Input.Error,{className:p.SearchBar__ErrorMsg,children:c})]})]})},h={"Dropdown--LeftLabel":"styles-module__Dropdown--LeftLabel___SFObq","Dropdown--TopLabel":"styles-module__Dropdown--TopLabel___-lPhr","Dropdown__Label--Small":"styles-module__Dropdown__Label--Small___xbzOR","Dropdown__Label--Medium":"styles-module__Dropdown__Label--Medium___YtJ2-","Dropdown__Label--Large":"styles-module__Dropdown__Label--Large___sCiJv","Dropdown__Tooltip--Small":"styles-module__Dropdown__Tooltip--Small___rkmaO","Dropdown__Tooltip--Medium":"styles-module__Dropdown__Tooltip--Medium___JTfzy","Dropdown__Tooltip--Large":"styles-module__Dropdown__Tooltip--Large___W-sUq","Dropdown--Small":"styles-module__Dropdown--Small___dRIK7","Dropdown--Medium":"styles-module__Dropdown--Medium___-HZoU","Dropdown--Large":"styles-module__Dropdown--Large___BvV3M",Dropdown__Description:"styles-module__Dropdown__Description___OQ8bF",Dropdown__ErrorMsg:"styles-module__Dropdown__ErrorMsg___xTP0Y"},K=({label:r,labelPosition:a="top",size:l="md",required:t,tooltip:_,tooltipPosition:m="top",errorMsg:c,description:g,...n})=>{const[y,i]=C.useState(!1);let u=h["Dropdown__Label--Medium"],b=h["Dropdown--Medium"],T=h["Dropdown__Tooltip--Medium"],S=18;return l==="sm"?(u=h["Dropdown__Label--Small"],b=h["Dropdown--Small"],T=h["Dropdown__Tooltip--Small"],S=14):l==="lg"&&(u=h["Dropdown__Label--Large"],b=h["Dropdown--Large"],T=h["Dropdown__Tooltip--Large"],S=24),o.jsxs("div",{className:a==="top"?h["Dropdown--TopLabel"]:h["Dropdown--LeftLabel"],children:[o.jsxs("div",{children:[r&&o.jsx(s.Input.Label,{required:t,className:u,children:r}),_&&o.jsx(s.Tooltip,{label:_,position:m,children:o.jsx("div",{className:T,children:o.jsx(e.IconInfoCircle,{size:l==="sm"?14:l==="lg"?20:16})})})]}),o.jsxs("div",{children:[o.jsx(s.Select,{...n,size:l,error:c,className:b,rightSection:y?o.jsx(e.IconChevronUp,{size:S}):o.jsx(e.IconChevronDown,{size:S}),onDropdownOpen:()=>i(!0),onDropdownClose:()=>i(!1),styles:{option:{"&[data-selected]":{"&, &:hover":{backgroundColor:"#e7e7e7",color:"#000000"}}}}}),g&&o.jsx(s.Input.Description,{className:h.Dropdown__Description,children:g}),c&&o.jsx(s.Input.Error,{className:h.Dropdown__ErrorMsg,children:c})]})]})},v={"Checkbox--Small":"styles-module__Checkbox--Small___VZGlw","Checkbox--Medium":"styles-module__Checkbox--Medium___Vwpa3","Checkbox--Large":"styles-module__Checkbox--Large___ybTGE"},X=({size:r="md",...a})=>{let l=v["Checkbox--Medium"],t=24;return r==="sm"?(l=v["Checkbox--Small"],t=18):r==="lg"&&(l=v["Checkbox--Large"],t=32),o.jsx(s.Checkbox,{className:l,styles:{inner:{width:t,height:t}},...a})},I={"Radio--Small":"styles-module__Radio--Small___izWI2","Radio--Medium":"styles-module__Radio--Medium___dwZfV","Radio--Large":"styles-module__Radio--Large___1gLra"},R=({size:r="md",...a})=>{let l=I["Radio--Medium"];return r==="sm"?l=I["Radio--Small"]:r==="lg"&&(l=I["Radio--Large"]),o.jsx(s.Radio,{className:l,size:r,...a})},f={"Toggle--Small":"styles-module__Toggle--Small___sOjUd","Toggle--Medium":"styles-module__Toggle--Medium___yIb8v","Toggle--Large":"styles-module__Toggle--Large___ZOJj1"},ee=({size:r="md",labelPosition:a="right",disabled:l,onChange:t,..._})=>{const[m,c]=C.useState(_?.checked||!1);let g=f["Toggle--Medium"],n=50;r==="sm"?(g=f["Toggle--Small"],n=38):r==="lg"&&(g=f["Toggle--Large"],n=67);const y=C.useCallback(i=>{t&&t(i),c(i?.target?.checked)},[t]);return o.jsx(s.Switch,{className:g,size:r,labelPosition:a,disabled:l,onChange:y,styles:()=>({track:{backgroundColor:!l&&m?"#0fd3d8 !important":void 0,borderColor:!l&&m?"#0fd3d8 !important":void 0,width:n}}),..._})},N={"DatePicker--Small":"styles-module__DatePicker--Small___m8asv","DatePicker--Medium":"styles-module__DatePicker--Medium___Po2-B","DatePicker--Large":"styles-module__DatePicker--Large___oQ6EM"},oe=({size:r="md",type:a="default",withTime:l,...t})=>{let _=N["DatePicker--Medium"],m=18;return r==="sm"?(_=N["DatePicker--Small"],m=14):r==="lg"&&(_=N["DatePicker--Large"],m=24),l?o.jsx(w.DateTimePicker,{className:_,size:r,locale:"ko",firstDayOfWeek:0,monthLabelFormat:"YYYY년 MM월",valueFormat:"YYYY-MM-DD | a hh:mm",rightSection:o.jsx(e.IconCalendar,{size:m}),...t}):o.jsx(w.DatePickerInput,{className:_,type:a,size:r,locale:"ko",firstDayOfWeek:0,monthLabelFormat:"YYYY년 MM월",valueFormat:"YYYY-MM-DD",rightSection:o.jsx(e.IconCalendar,{size:m}),...t})},W={"TimePicker--Small":"styles-module__TimePicker--Small___nHQa1","TimePicker--Medium":"styles-module__TimePicker--Medium___E9-rF","TimePicker--Large":"styles-module__TimePicker--Large___I0M7V"},le=({size:r="md",...a})=>{const l=C.useRef(null);let t=W["TimePicker--Medium"],_=18;return r==="sm"?(t=W["TimePicker--Small"],_=14):r==="lg"&&(t=W["TimePicker--Large"],_=24),o.jsx(w.TimeInput,{ref:l,className:t,size:r,...a,rightSection:o.jsx(s.ActionIcon,{onClick:()=>{l&&l?.current?.showPicker()},children:o.jsx(e.IconClock,{size:_})})})},D={Pagination:"style-module__Pagination___xcR-Q",Pagination__PageIndex:"style-module__Pagination__PageIndex___50SZJ","Pagination__PageIndex--Active":"style-module__Pagination__PageIndex--Active___mSIwS",Pagination__Arrow:"style-module__Pagination__Arrow___74vp3"},re=({currentPageIdx:r,rowsPerPage:a,totalLength:l,paginationSize:t,onPageChange:_,...m})=>{const[c,g]=C.useState(r),n=a||50,y=l||1,i=t||5;C.useEffect(()=>{g(r)},[r]);const u=()=>{_&&_(c-(c%i+1)),g(T=>T-(T%i+1))},b=()=>{_&&_(c+i-c%i),g(T=>T+i-T%i)};return o.jsxs("div",{...m,className:D.Pagination,children:[c>=i?o.jsx("button",{className:D.Pagination__Arrow,onClick:u,children:o.jsx(e.IconChevronLeft,{size:20})}):null,new Array(i).fill(0).map((T,S)=>{const x=Math.floor(c/i)*i+S+1;if(!(x>Math.ceil(y/n)))return o.jsx("button",{className:c===x-1?D["Pagination__PageIndex--Active"]:D.Pagination__PageIndex,onClick:()=>{g(x-1),_&&_(x-1)},children:x},`pagination_${S}`)}),Math.floor(c/i)*i+i<Math.ceil(y/n)?o.jsx("button",{className:D.Pagination__Arrow,onClick:b,children:o.jsx(e.IconChevronRight,{size:20})}):null]})},O={Tab__TitleList:"styles-module__Tab__TitleList___urHWH",Tab__BorderBottom:"styles-module__Tab__BorderBottom___eMTpl"},te=({tabList:r=[],containerPaddingTop:a,...l})=>o.jsxs(s.Tabs,{...l,children:[o.jsx(s.Tabs.List,{className:O.Tab__TitleList,children:r?.map((t,_)=>o.jsxs(s.Tabs.Tab,{value:t.value,leftSection:t.icon,children:[t.title,o.jsx("div",{className:O.Tab__BorderBottom})]},`tab_${_}`))}),r?.map((t,_)=>o.jsx(s.Tabs.Panel,{value:t.value,pt:a,children:t.body},`tab_panel_${_}`))]}),E={"SegmentButton--Small":"styles-module__SegmentButton--Small___o0Y3t","SegmentButton--Medium":"styles-module__SegmentButton--Medium___EgCJm","SegmentButton--Large":"styles-module__SegmentButton--Large___Ym86C"},_e=({size:r="md",radius:a=6,...l})=>{let t=E["SegmentButton--Medium"];return r==="sm"?t=E["SegmentButton--Small"]:r==="lg"&&(t=E["SegmentButton--Large"]),o.jsx(s.SegmentedControl,{className:t,size:r,radius:a,styles:{control:{borderWidth:"0 !important"}},...l})},k={Toast:"styles-module__Toast___ZqZzU",Toast__Icon:"styles-module__Toast__Icon___PWXSy",Toast__Body:"styles-module__Toast__Body___wezPs",Toast__Message:"styles-module__Toast__Message___NFsgm"},ae=r=>{const a=typeof r=="string"?{message:r}:r,{message:l,icon:t,autoClose:_=3e3}=a;z.notifications.show({message:o.jsx("div",{className:k.Toast__Message,children:l}),icon:t,autoClose:_,position:"bottom-center",classNames:{root:k.Toast,body:k.Toast__Body,icon:k.Toast__Icon},withCloseButton:!1,withBorder:!1})},U={Tooltip__Body:"styles-module__Tooltip__Body___i1OTG",Tooltip__Title:"styles-module__Tooltip__Title___E0LoV",Tooltip__Content:"styles-module__Tooltip__Content___lU5gr"},se=({title:r,content:a,maw:l=280,multiline:t=!0,..._})=>o.jsx(s.Tooltip,{..._,maw:l,multiline:t,label:o.jsxs("div",{className:U.Tooltip__Body,children:[r&&o.jsx("span",{className:U.Tooltip__Title,children:r}),o.jsx("span",{className:U.Tooltip__Content,children:a})]})}),ie=({size:r="md",width:a,withCloseButton:l=!1,...t})=>{let _=768;return r==="xs"?_=360:r==="sm"?_=544:r==="lg"?_=1e3:r==="xl"&&(_=1200),o.jsx(s.Modal,{size:a||_,withCloseButton:l,...t})},F={ImageUploader:"styles-module__ImageUploader___pO3AP",ImageUploader__Preview:"styles-module__ImageUploader__Preview___DI5K4",ImageUploader__Wrapper:"styles-module__ImageUploader__Wrapper___SpAGM",ImageUploader__FileClearButton:"styles-module__ImageUploader__FileClearButton___w1HyS"},de=({width:r,height:a,defaultMsg:l="이미지 업로드",file:t,onDrop:_,showClearButton:m,onClear:c,...g})=>{const[n,y]=C.useState(t),i=C.useCallback(()=>{y(void 0),c&&c()},[c]);return o.jsxs("div",{className:F.ImageUploader__Wrapper,children:[m&&n?o.jsx("div",{className:F.ImageUploader__FileClearButton,onClick:i,children:o.jsx(e.IconCloseCircle,{size:24})}):null,o.jsx($.Dropzone,{...g,maxFiles:1,className:F.ImageUploader,accept:$.IMAGE_MIME_TYPE,onDrop:u=>{y(u[0]),_&&_(u)},style:{width:r,height:a},children:o.jsx(o.Fragment,{children:n?o.jsx("img",{className:F.ImageUploader__Preview,src:typeof n=="string"?n:URL.createObjectURL(n),alt:`파일명: ${typeof n=="string"?n:n.name}`,title:`파일명: ${typeof n=="string"?n:n.name}`}):o.jsxs("div",{children:[o.jsx(e.IconPhoto,{size:48}),o.jsx("span",{children:l})]})})})]})};Object.defineProperty(d,"PopUiProvider",{enumerable:!0,get:()=>s.MantineProvider}),d.Button=V,d.Checkbox=X,d.DatePicker=oe,d.Dropdown=K,d.ImageUploader=de,d.Modal=ie,d.Pagination=re,d.Radio=R,d.SearchBar=Q,d.SegmentButton=_e,d.Tab=te,d.TextField=G,d.TimePicker=le,d.Toggle=ee,d.Tooltip=se,d.toast=ae,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});
1
+ (function(n,l){typeof exports=="object"&&typeof module<"u"?l(exports,require("react/jsx-runtime"),require("@mantine/core"),require("react"),require("@pop-ui/foundation"),require("@mantine/notifications"),require("dayjs/locale/ko"),require("@mantine/dates"),require("@mantine/dropzone")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@mantine/core","react","@pop-ui/foundation","@mantine/notifications","dayjs/locale/ko","@mantine/dates","@mantine/dropzone"],l):(n=typeof globalThis<"u"?globalThis:n||self,l(n.Core={},n.jsxRuntime,n.MantineCore,n.React,n.foundation,n.notifications,null,n.dates,n.dropzone))})(this,function(n,l,i,T,e,O,pe,w,A){"use strict";const J={primary:e.TextColorButtonTextPrimaryDefault,primaryLine:e.TextColorButtonTextPrimarylineDefault,basic:e.TextColorButtonTextBasicDefault,danger:e.TextColorButtonTextPrimaryDefault,setting:e.TextColorButtonTextPrimaryDefault,warning:e.TextColorButtonTextPrimaryDefault},Z={primary:{default:{backgroundColor:e.BgColorButtonBgPrimaryDefault,color:e.TextColorButtonTextPrimaryDefault,border:"none"},hover:{backgroundColor:e.BgColorButtonBgPrimaryHover,color:e.TextColorButtonTextPrimaryHover},active:{backgroundColor:e.BgColorButtonBgPrimaryPressed,color:e.TextColorButtonTextPrimaryPressed},focus:{backgroundColor:e.BgColorButtonBgPrimaryFocused,color:e.TextColorButtonTextPrimaryFocused},disabled:{backgroundColor:e.BgColorButtonBgPrimaryDisabled,color:e.TextColorButtonTextPrimaryDisabled,cursor:"not-allowed"}},primaryLine:{default:{backgroundColor:e.BgColorButtonBgPrimarylineDefault,color:e.TextColorButtonTextPrimarylineDefault,border:`1px solid ${e.BorderColorButtonBorderPrimarylineDefault}`},hover:{backgroundColor:e.BgColorButtonBgPrimarylineHover,color:e.TextColorButtonTextPrimarylineHover,borderColor:e.BorderColorButtonBorderPrimarylineHover},active:{backgroundColor:e.BgColorButtonBgPrimarylinePressed,color:e.TextColorButtonTextPrimarylinePressed,borderColor:e.BorderColorButtonBorderPrimarylinePressed},focus:{backgroundColor:e.BgColorButtonBgPrimarylineFocused,color:e.TextColorButtonTextPrimarylineFocused,borderColor:e.BorderColorButtonBorderPrimarylineFocused},disabled:{backgroundColor:e.BgColorButtonBgPrimarylineDisabled,color:e.TextColorButtonTextPrimarylineDisabled,cursor:"not-allowed"}},basic:{default:{backgroundColor:e.BgColorButtonBgBasicDefault,color:e.TextColorButtonTextBasicDefault,border:`1px solid ${e.BorderColorButtonBorderBasicDefault}`},hover:{backgroundColor:e.BgColorButtonBgBasicHover,color:e.TextColorButtonTextBasicHover,borderColor:e.BorderColorButtonBorderBasicHover},active:{backgroundColor:e.BgColorButtonBgBasicPreseed,color:e.TextColorButtonTextBasicPressed,borderColor:e.BorderColorButtonBorderBasicPressed},focus:{backgroundColor:e.BgColorButtonBgBasicFocused,color:e.TextColorButtonTextBasicFocused,borderColor:e.BorderColorButtonBorderBasicFocused},disabled:{backgroundColor:e.BgColorButtonBgBasicDisabled,color:e.TextColorButtonTextBasicDisabled,cursor:"not-allowed"}},danger:{default:{backgroundColor:e.BgColorButtonBgWarningDefault,color:e.TextColorButtonTextWarningDefault,border:"none"},hover:{backgroundColor:e.BgColorButtonBgWarningHover,color:e.TextColorButtonTextWarningHover},active:{backgroundColor:e.BgColorButtonBgWarningPressed,color:e.TextColorButtonTextWarningPressed},focus:{backgroundColor:e.BgColorButtonBgWarningFocused,color:e.TextColorButtonTextWarningFocused},disabled:{backgroundColor:e.BgColorButtonBgWarningDisabled,color:e.TextColorButtonTextWarningDisabled,cursor:"not-allowed"}},setting:{default:{backgroundColor:e.BgColorButtonBgSettingDefault,color:e.TextColorButtonTextSettingDefault,border:"none"},hover:{backgroundColor:e.BgColorButtonBgSettingHover,color:e.TextColorButtonTextSettingHover},active:{backgroundColor:e.BgColorButtonBgSettingPressed,color:e.TextColorButtonTextSettingPressed},focus:{backgroundColor:e.BgColorButtonBgSettingFocused,color:e.TextColorButtonTextSettingFocused},disabled:{backgroundColor:e.BgColorButtonBgSettingDisabled,color:e.TextColorButtonTextSettingDisabled,cursor:"not-allowed"}},warning:{default:{backgroundColor:e.BgColorButtonBgWarningDefault,color:e.TextColorButtonTextWarningDefault,border:"none"},hover:{backgroundColor:e.BgColorButtonBgWarningHover,color:e.TextColorButtonTextWarningHover},active:{backgroundColor:e.BgColorButtonBgWarningPressed,color:e.TextColorButtonTextWarningPressed},focus:{backgroundColor:e.BgColorButtonBgWarningFocused,color:e.TextColorButtonTextWarningFocused},disabled:{backgroundColor:e.BgColorButtonBgWarningDisabled,color:e.TextColorButtonTextWarningDisabled,cursor:"not-allowed"}}},G={lg:{height:"50px",padding:"0 20px",fontSize:"18px",fontWeight:700,borderRadius:"6px",lineHeight:"130%",fontFamily:"Pretendard"},md:{height:"40px",padding:"0 16px",fontSize:"16px",fontWeight:600,borderRadius:"6px",lineHeight:"130%",fontFamily:"Pretendard"},sm:{height:"30px",padding:"0 12px",fontSize:"14px",fontWeight:600,borderRadius:"4px",lineHeight:"130%",fontFamily:"Pretendard"}};function K(r,_){const o=Z[r];return{root:{...G[_],...o.default,"&:hover:not(:disabled)":o.hover,"&:active:not(:disabled)":o.active,"&:focus:not(:disabled)":o.focus,"&:disabled":o.disabled}}}function Q({children:r,size:_="md",variant:o="primary",isLoading:t=!1,disabled:a=!1,...g}){const s=T.useMemo(()=>K(o,_),[o,_]),m=J[o],d=T.useMemo(()=>{switch(_){case"lg":return 18;case"sm":return 14;case"md":default:return 16}},[_]);return l.jsx(i.Button,{type:"button",styles:s,disabled:a||t,...g,children:t?l.jsx(i.Loader,{color:m,size:d}):r})}const I={"Checkbox--Small":"styles-module__Checkbox--Small___VZGlw","Checkbox--Medium":"styles-module__Checkbox--Medium___Vwpa3","Checkbox--Large":"styles-module__Checkbox--Large___ybTGE"},X=({size:r="md",..._})=>{let o=I["Checkbox--Medium"],t=24;return r==="sm"?(o=I["Checkbox--Small"],t=18):r==="lg"&&(o=I["Checkbox--Large"],t=32),l.jsx(i.Checkbox,{className:o,styles:{inner:{width:t,height:t}},..._})},f={"DatePicker--Small":"styles-module__DatePicker--Small___m8asv","DatePicker--Medium":"styles-module__DatePicker--Medium___Po2-B","DatePicker--Large":"styles-module__DatePicker--Large___oQ6EM"},R=({size:r="md",type:_="default",withTime:o,...t})=>{let a=f["DatePicker--Medium"],g=18;return r==="sm"?(a=f["DatePicker--Small"],g=14):r==="lg"&&(a=f["DatePicker--Large"],g=24),o?l.jsx(w.DateTimePicker,{className:a,size:r,locale:"ko",firstDayOfWeek:0,monthLabelFormat:"YYYY년 MM월",valueFormat:"YYYY-MM-DD | a hh:mm",rightSection:l.jsx(e.IconCalendar,{size:g}),...t}):l.jsx(w.DatePickerInput,{className:a,type:_,size:r,locale:"ko",firstDayOfWeek:0,monthLabelFormat:"YYYY년 MM월",valueFormat:"YYYY-MM-DD",rightSection:l.jsx(e.IconCalendar,{size:g}),...t})},S={"Dropdown--LeftLabel":"styles-module__Dropdown--LeftLabel___SFObq","Dropdown--TopLabel":"styles-module__Dropdown--TopLabel___-lPhr","Dropdown__Label--Small":"styles-module__Dropdown__Label--Small___xbzOR","Dropdown__Label--Medium":"styles-module__Dropdown__Label--Medium___YtJ2-","Dropdown__Label--Large":"styles-module__Dropdown__Label--Large___sCiJv","Dropdown__Tooltip--Small":"styles-module__Dropdown__Tooltip--Small___rkmaO","Dropdown__Tooltip--Medium":"styles-module__Dropdown__Tooltip--Medium___JTfzy","Dropdown__Tooltip--Large":"styles-module__Dropdown__Tooltip--Large___W-sUq","Dropdown--Small":"styles-module__Dropdown--Small___dRIK7","Dropdown--Medium":"styles-module__Dropdown--Medium___-HZoU","Dropdown--Large":"styles-module__Dropdown--Large___BvV3M",Dropdown__Description:"styles-module__Dropdown__Description___OQ8bF",Dropdown__ErrorMsg:"styles-module__Dropdown__ErrorMsg___xTP0Y"},ee=({label:r,labelPosition:_="top",size:o="md",required:t,tooltip:a,tooltipPosition:g="top",errorMsg:s,description:m,...d})=>{const[p,c]=T.useState(!1);let h=S["Dropdown__Label--Medium"],x=S["Dropdown--Medium"],u=S["Dropdown__Tooltip--Medium"],y=18;return o==="sm"?(h=S["Dropdown__Label--Small"],x=S["Dropdown--Small"],u=S["Dropdown__Tooltip--Small"],y=14):o==="lg"&&(h=S["Dropdown__Label--Large"],x=S["Dropdown--Large"],u=S["Dropdown__Tooltip--Large"],y=24),l.jsxs("div",{className:_==="top"?S["Dropdown--TopLabel"]:S["Dropdown--LeftLabel"],children:[l.jsxs("div",{children:[r&&l.jsx(i.Input.Label,{required:t,className:h,children:r}),a&&l.jsx(i.Tooltip,{label:a,position:g,children:l.jsx("div",{className:u,children:l.jsx(e.IconInfoCircle,{size:o==="sm"?14:o==="lg"?20:16})})})]}),l.jsxs("div",{children:[l.jsx(i.Select,{...d,size:o,error:s,className:x,rightSection:p?l.jsx(e.IconChevronUp,{size:y}):l.jsx(e.IconChevronDown,{size:y}),onDropdownOpen:()=>c(!0),onDropdownClose:()=>c(!1),styles:{option:{"&[data-selected]":{"&, &:hover":{backgroundColor:"#e7e7e7",color:"#000000"}}}}}),m&&l.jsx(i.Input.Description,{className:S.Dropdown__Description,children:m}),s&&l.jsx(i.Input.Error,{className:S.Dropdown__ErrorMsg,children:s})]})]})},F={ImageUploader:"styles-module__ImageUploader___pO3AP",ImageUploader__Preview:"styles-module__ImageUploader__Preview___DI5K4",ImageUploader__Wrapper:"styles-module__ImageUploader__Wrapper___SpAGM",ImageUploader__FileClearButton:"styles-module__ImageUploader__FileClearButton___w1HyS"},oe=({width:r,height:_,defaultMsg:o="이미지 업로드",file:t,onDrop:a,showClearButton:g,onClear:s,...m})=>{const[d,p]=T.useState(t),c=T.useCallback(()=>{p(void 0),s&&s()},[s]);return l.jsxs("div",{className:F.ImageUploader__Wrapper,children:[g&&d?l.jsx("div",{className:F.ImageUploader__FileClearButton,onClick:c,children:l.jsx(e.IconCloseCircle,{size:24})}):null,l.jsx(A.Dropzone,{...m,maxFiles:1,className:F.ImageUploader,accept:A.IMAGE_MIME_TYPE,onDrop:h=>{p(h[0]),a&&a(h)},style:{width:r,height:_},children:l.jsx(l.Fragment,{children:d?l.jsx("img",{className:F.ImageUploader__Preview,src:typeof d=="string"?d:URL.createObjectURL(d),alt:`파일명: ${typeof d=="string"?d:d.name}`,title:`파일명: ${typeof d=="string"?d:d.name}`}):l.jsxs("div",{children:[l.jsx(e.IconPhoto,{size:48}),l.jsx("span",{children:o})]})})})]})},le=({size:r="md",width:_,withCloseButton:o=!1,...t})=>{let a=768;return r==="xs"?a=360:r==="sm"?a=544:r==="lg"?a=1e3:r==="xl"&&(a=1200),l.jsx(i.Modal,{size:_||a,withCloseButton:o,...t})},D={Pagination:"style-module__Pagination___xcR-Q",Pagination__PageIndex:"style-module__Pagination__PageIndex___50SZJ","Pagination__PageIndex--Active":"style-module__Pagination__PageIndex--Active___mSIwS",Pagination__Arrow:"style-module__Pagination__Arrow___74vp3"},re=({currentPageIdx:r,rowsPerPage:_,totalLength:o,paginationSize:t,onPageChange:a,...g})=>{const[s,m]=T.useState(r),d=_||50,p=o||1,c=t||5;T.useEffect(()=>{m(r)},[r]);const h=()=>{a&&a(s-(s%c+1)),m(u=>u-(u%c+1))},x=()=>{a&&a(s+c-s%c),m(u=>u+c-u%c)};return l.jsxs("div",{...g,className:D.Pagination,children:[s>=c?l.jsx("button",{className:D.Pagination__Arrow,onClick:h,children:l.jsx(e.IconChevronLeft,{size:20})}):null,new Array(c).fill(0).map((u,y)=>{const b=Math.floor(s/c)*c+y+1;if(!(b>Math.ceil(p/d)))return l.jsx("button",{className:s===b-1?D["Pagination__PageIndex--Active"]:D.Pagination__PageIndex,onClick:()=>{m(b-1),a&&a(b-1)},children:b},`pagination_${y}`)}),Math.floor(s/c)*c+c<Math.ceil(p/d)?l.jsx("button",{className:D.Pagination__Arrow,onClick:x,children:l.jsx(e.IconChevronRight,{size:20})}):null]})},N={"Radio--Small":"styles-module__Radio--Small___izWI2","Radio--Medium":"styles-module__Radio--Medium___dwZfV","Radio--Large":"styles-module__Radio--Large___1gLra"},te=({size:r="md",..._})=>{let o=N["Radio--Medium"];return r==="sm"?o=N["Radio--Small"]:r==="lg"&&(o=N["Radio--Large"]),l.jsx(i.Radio,{className:o,size:r,..._})},C={"SearchBar--LeftLabel":"styles-module__SearchBar--LeftLabel___CeYTM","SearchBar--TopLabel":"styles-module__SearchBar--TopLabel___spN3I","SearchBar__Label--Small":"styles-module__SearchBar__Label--Small___zS1L2","SearchBar__Label--Medium":"styles-module__SearchBar__Label--Medium___Fk0Ao","SearchBar__Label--Large":"styles-module__SearchBar__Label--Large___xTOYL","SearchBar__Tooltip--Small":"styles-module__SearchBar__Tooltip--Small___YhmEr","SearchBar__Tooltip--Medium":"styles-module__SearchBar__Tooltip--Medium___4JhOv","SearchBar__Tooltip--Large":"styles-module__SearchBar__Tooltip--Large___IEoPv",SearchBar__Wrapper:"styles-module__SearchBar__Wrapper___oq49s","SearchBar--Small":"styles-module__SearchBar--Small___SY9CN","SearchBar--Medium":"styles-module__SearchBar--Medium___vLP08","SearchBar--Large":"styles-module__SearchBar--Large___JHfHP",SearchBar__Description:"styles-module__SearchBar__Description___vucS-",SearchBar__ErrorMsg:"styles-module__SearchBar__ErrorMsg___TOeoy",SearchBar__ClearButton:"styles-module__SearchBar__ClearButton___S-y4P"},ae=({label:r,labelPosition:_="top",size:o="md",required:t,tooltip:a,tooltipPosition:g="top",errorMsg:s,description:m,onChange:d,onClear:p,...c})=>{const[h,x]=T.useState(0);let u=C["SearchBar__Label--Medium"],y=C["SearchBar--Medium"],b=C["SearchBar__Tooltip--Medium"];o==="sm"?(u=C["SearchBar__Label--Small"],y=C["SearchBar--Small"],b=C["SearchBar__Tooltip--Small"]):o==="lg"&&(u=C["SearchBar__Label--Large"],y=C["SearchBar--Large"],b=C["SearchBar__Tooltip--Large"]);const M=T.useCallback(L=>{d&&(x(L?.length),d(L))},[d]);return l.jsxs("div",{className:_==="top"?C["SearchBar--TopLabel"]:C["SearchBar--LeftLabel"],children:[l.jsxs("div",{children:[r&&l.jsx(i.Input.Label,{required:t,className:u,children:r}),a&&l.jsx(i.Tooltip,{label:a,position:g,children:l.jsx("div",{className:b,children:l.jsx(e.IconInfoCircle,{size:o==="sm"?14:o==="lg"?20:16})})})]}),l.jsxs("div",{children:[l.jsx("div",{className:C.SearchBar__Wrapper,children:l.jsx(i.Autocomplete,{...c,size:o,error:s,className:y,onChange:M,leftSection:l.jsx(e.IconSearch,{size:o==="sm"?16:o==="lg"?24:20}),rightSection:p&&h>0?l.jsx("div",{className:C.SearchBar__ClearButton,onClick:p,children:l.jsx(e.IconClose,{size:o==="sm"?16:o==="lg"?24:20})}):void 0})}),m&&l.jsx(i.Input.Description,{className:C.SearchBar__Description,children:m}),s&&l.jsx(i.Input.Error,{className:C.SearchBar__ErrorMsg,children:s})]})]})},W={"SegmentButton--Small":"styles-module__SegmentButton--Small___o0Y3t","SegmentButton--Medium":"styles-module__SegmentButton--Medium___EgCJm","SegmentButton--Large":"styles-module__SegmentButton--Large___Ym86C"},_e=({size:r="md",radius:_=6,...o})=>{let t=W["SegmentButton--Medium"];return r==="sm"?t=W["SegmentButton--Small"]:r==="lg"&&(t=W["SegmentButton--Large"]),l.jsx(i.SegmentedControl,{className:t,size:r,radius:_,styles:{control:{borderWidth:"0 !important"}},...o})},V={Tab__TitleList:"styles-module__Tab__TitleList___urHWH",Tab__BorderBottom:"styles-module__Tab__BorderBottom___eMTpl"},se=({tabList:r=[],containerPaddingTop:_,...o})=>l.jsxs(i.Tabs,{...o,children:[l.jsx(i.Tabs.List,{className:V.Tab__TitleList,children:r?.map((t,a)=>l.jsxs(i.Tabs.Tab,{value:t.value,leftSection:t.icon,children:[t.title,l.jsx("div",{className:V.Tab__BorderBottom})]},`tab_${a}`))}),r?.map((t,a)=>l.jsx(i.Tabs.Panel,{value:t.value,pt:_,children:t.body},`tab_panel_${a}`))]}),B={"TextField--LeftLabel":"styles-module__TextField--LeftLabel___hiNn3","TextField--TopLabel":"styles-module__TextField--TopLabel___V2otc","TextField__Label--Small":"styles-module__TextField__Label--Small___NkKKA","TextField__Label--Medium":"styles-module__TextField__Label--Medium___IoJd-","TextField__Label--Large":"styles-module__TextField__Label--Large___GMy74","TextField__Tooltip--Small":"styles-module__TextField__Tooltip--Small___GmQHE","TextField__Tooltip--Medium":"styles-module__TextField__Tooltip--Medium___5P3nA","TextField__Tooltip--Large":"styles-module__TextField__Tooltip--Large___YSCfu",TextField__Wrapper:"styles-module__TextField__Wrapper___u6p5Z",TextField__TextCounter:"styles-module__TextField__TextCounter___u1jM5","TextField--Textarea":"styles-module__TextField--Textarea___C2DL5","TextField--Small":"styles-module__TextField--Small___iuH4t","TextField--Medium":"styles-module__TextField--Medium___snYod","TextField--Large":"styles-module__TextField--Large___JoSYk",TextField__Description:"styles-module__TextField__Description___J-kXP",TextField__ErrorMsg:"styles-module__TextField__ErrorMsg___fa6f6",TextField__ClearButton:"styles-module__TextField__ClearButton___bB5Ew"},ie=r=>{const{label:_,labelPosition:o="top",size:t="md",required:a,tooltip:g,tooltipPosition:s="top",errorMsg:m,description:d,textarea:p=!1,maxTextCount:c,onChange:h,onClear:x,...u}=r,y="minRows"in r?r.minRows:void 0,[b,M]=T.useState(0);let L=B["TextField__Label--Medium"],H=B["TextField--Medium"],$=B["TextField__Tooltip--Medium"];t==="sm"?(L=B["TextField__Label--Small"],H=B["TextField--Small"],$=B["TextField__Tooltip--Small"]):t==="lg"&&(L=B["TextField__Label--Large"],H=B["TextField--Large"],$=B["TextField__Tooltip--Large"]);const z=T.useCallback(k=>{if(c){if(k.currentTarget?.value?.length>c)return;M(k.currentTarget?.value?.length),h&&h(k)}h&&(M(k.currentTarget?.value?.length),h(k))},[c,h]);return l.jsxs("div",{className:o==="top"?B["TextField--TopLabel"]:B["TextField--LeftLabel"],children:[l.jsxs("div",{children:[_&&l.jsx(i.Input.Label,{required:a,className:L,children:_}),g&&l.jsx(i.Tooltip,{label:g,position:s,children:l.jsx("div",{className:$,children:l.jsx(e.IconInfoCircle,{size:t==="sm"?14:t==="lg"?20:16})})})]}),l.jsxs("div",{children:[l.jsxs("div",{className:B.TextField__Wrapper,children:[p?l.jsx(i.Textarea,{className:B["TextField--Textarea"],size:t,minRows:y,error:m,onChange:z,disabled:u?.disabled,...u}):l.jsx(i.Input,{className:H,error:m,onChange:z,rightSection:x&&b>0?l.jsx("div",{className:B.TextField__ClearButton,onClick:x,children:l.jsx(e.IconClose,{size:t==="sm"?16:t==="lg"?24:20})}):void 0,...u}),c&&c>0&&l.jsx("span",{className:B.TextField__TextCounter,children:`${b}/${c}`})]}),d&&l.jsx(i.Input.Description,{className:B.TextField__Description,children:d}),m&&l.jsx(i.Input.Error,{className:B.TextField__ErrorMsg,children:m})]})]})},E={"TimePicker--Small":"styles-module__TimePicker--Small___nHQa1","TimePicker--Medium":"styles-module__TimePicker--Medium___E9-rF","TimePicker--Large":"styles-module__TimePicker--Large___I0M7V"},de=({size:r="md",..._})=>{const o=T.useRef(null);let t=E["TimePicker--Medium"],a=18;return r==="sm"?(t=E["TimePicker--Small"],a=14):r==="lg"&&(t=E["TimePicker--Large"],a=24),l.jsx(w.TimeInput,{ref:o,className:t,size:r,..._,rightSection:l.jsx(i.ActionIcon,{onClick:()=>{o&&o?.current?.showPicker()},children:l.jsx(e.IconClock,{size:a})})})},v={Toast:"styles-module__Toast___ZqZzU",Toast__Icon:"styles-module__Toast__Icon___PWXSy",Toast__Body:"styles-module__Toast__Body___wezPs",Toast__Message:"styles-module__Toast__Message___NFsgm"},ne=r=>{const _=typeof r=="string"?{message:r}:r,{message:o,icon:t,autoClose:a}=_;O.notifications.show({message:l.jsx("div",{className:v.Toast__Message,children:o}),icon:t,autoClose:a,classNames:{root:v.Toast,body:v.Toast__Body,icon:v.Toast__Icon},withCloseButton:!1,withBorder:!1})},U={"Toggle--Small":"styles-module__Toggle--Small___sOjUd","Toggle--Medium":"styles-module__Toggle--Medium___yIb8v","Toggle--Large":"styles-module__Toggle--Large___ZOJj1"},ce=({size:r="md",labelPosition:_="right",disabled:o,onChange:t,...a})=>{const[g,s]=T.useState(a?.checked||!1);let m=U["Toggle--Medium"],d=50;r==="sm"?(m=U["Toggle--Small"],d=38):r==="lg"&&(m=U["Toggle--Large"],d=67);const p=T.useCallback(c=>{t&&t(c),s(c?.target?.checked)},[t]);return l.jsx(i.Switch,{className:m,size:r,labelPosition:_,disabled:o,onChange:p,styles:()=>({track:{backgroundColor:!o&&g?"#0fd3d8 !important":void 0,borderColor:!o&&g?"#0fd3d8 !important":void 0,width:d}}),...a})},Y={Tooltip__Body:"styles-module__Tooltip__Body___i1OTG",Tooltip__Title:"styles-module__Tooltip__Title___E0LoV",Tooltip__Content:"styles-module__Tooltip__Content___lU5gr"},ge=({title:r,content:_,maw:o=280,multiline:t=!0,...a})=>l.jsx(i.Tooltip,{...a,maw:o,multiline:t,label:l.jsxs("div",{className:Y.Tooltip__Body,children:[r&&l.jsx("span",{className:Y.Tooltip__Title,children:r}),l.jsx("span",{className:Y.Tooltip__Content,children:_})]})}),j=(r="light")=>{const _=[];return Object.entries(e.colors).forEach(([o,t])=>{Object.entries(t).forEach(([a,g])=>{const s=e.getCSSVariableName(o,a);_.push(`${s}: ${g};`)})}),_.join(`
2
+ `)},me=(r="light")=>{const _=document.getElementById("pop-ui-theme-vars");_&&_.remove();const o=document.createElement("style");o.id="pop-ui-theme-vars",o.textContent=`
3
+ :root {
4
+ ${j("light")}
5
+ }
6
+
7
+ [data-theme="dark"] {
8
+ ${j("dark")}
9
+ }
10
+ `,document.head.appendChild(o)},P=r=>{const _=e.colors[r],o=Object.keys(_).sort((a,g)=>Number(a)-Number(g));return[e.getCSSVariableRef(r,o[0]||o[o.length-1]),e.getCSSVariableRef(r,o[1]||o[o.length-1]),e.getCSSVariableRef(r,o[2]||o[o.length-1]),e.getCSSVariableRef(r,o[3]||o[o.length-1]),e.getCSSVariableRef(r,o[4]||o[o.length-1]),e.getCSSVariableRef(r,o[5]||o[o.length-1]),e.getCSSVariableRef(r,o[6]||o[o.length-1]),e.getCSSVariableRef(r,o[7]||o[o.length-1]),e.getCSSVariableRef(r,o[8]||o[o.length-1]),e.getCSSVariableRef(r,o[9]||o[o.length-1])]},Te=i.createTheme({colors:{gray:P("gray"),aqua:P("aqua"),red:P("red"),orange:P("orange"),yellow:P("yellow"),green:P("green"),blue:P("blue"),purple:P("purple"),grape:P("grape")},primaryColor:"aqua",primaryShade:5,fontFamily:'Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif'}),q=T.createContext(void 0),ue=({children:r,defaultTheme:_="light",notificationPosition:o="bottom-center",notificationLimit:t=5,notificationAutoClose:a,notificationZIndex:g})=>{const[s,m]=T.useState(_);T.useEffect(()=>{me(s),document.documentElement.setAttribute("data-theme",s)},[s]);const d=()=>{m(p=>p==="light"?"dark":"light")};return l.jsx(q.Provider,{value:{theme:s,setTheme:m,toggleTheme:d},children:l.jsxs(i.MantineProvider,{theme:Te,children:[l.jsx(O.Notifications,{position:o,limit:t,autoClose:a,zIndex:g}),r]})})},Be=()=>{const r=T.useContext(q);if(!r)throw new Error("useTheme must be used within ThemeProvider");return r};n.Button=Q,n.Checkbox=X,n.DatePicker=R,n.Dropdown=ee,n.ImageUploader=oe,n.Modal=le,n.Pagination=re,n.PopUiProvider=ue,n.Radio=te,n.SearchBar=ae,n.SegmentButton=_e,n.Tab=se,n.TextField=ie,n.TimePicker=de,n.Toggle=ce,n.Tooltip=ge,n.toast=ne,n.useTheme=Be,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})});
@@ -2,13 +2,14 @@ import { AutocompleteProps } from '@mantine/core';
2
2
  import { ButtonProps } from '@mantine/core';
3
3
  import { CheckboxProps } from '@mantine/core';
4
4
  import { DatePickerInputProps } from '@mantine/dates';
5
+ import { default as default_2 } from 'react';
5
6
  import { DropzoneProps } from '@mantine/dropzone';
6
7
  import { FileWithPath } from '@mantine/dropzone';
7
8
  import { HTMLAttributes } from 'react';
8
9
  import { InputProps } from '@mantine/core';
9
10
  import { JSX } from 'react/jsx-runtime';
10
11
  import { ModalProps } from '@mantine/core';
11
- import { MantineProvider as PopUiProvider } from '@mantine/core';
12
+ import { NotificationsProps } from '@mantine/notifications';
12
13
  import { RadioProps } from '@mantine/core';
13
14
  import { ReactNode } from 'react';
14
15
  import { SegmentedControlProps } from '@mantine/core';
@@ -92,6 +93,19 @@ declare interface IPaginationProps extends HTMLAttributes<HTMLDivElement> {
92
93
  onPageChange?: (e: number) => void;
93
94
  }
94
95
 
96
+ export declare interface IPopUiProviderProps {
97
+ children: default_2.ReactNode;
98
+ defaultTheme?: TThemeMode;
99
+ /** Notifications 표시 위치 */
100
+ notificationPosition?: NotificationsProps['position'];
101
+ /** 동시에 표시되는 최대 알림 수 */
102
+ notificationLimit?: number;
103
+ /** 알림 자동 종료 시간 (ms, false로 설정 시 비활성화) */
104
+ notificationAutoClose?: number | false;
105
+ /** Notifications z-index */
106
+ notificationZIndex?: number;
107
+ }
108
+
95
109
  declare interface IRadioProps extends RadioProps {
96
110
  size?: 'sm' | 'md' | 'lg';
97
111
  }
@@ -123,6 +137,12 @@ declare interface ITabProps extends TabsProps {
123
137
  containerPaddingTop?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
124
138
  }
125
139
 
140
+ declare interface IThemeContextValue {
141
+ theme: TThemeMode;
142
+ setTheme: (theme: TThemeMode) => void;
143
+ toggleTheme: () => void;
144
+ }
145
+
126
146
  declare interface ITimePickerProps extends TimeInputProps {
127
147
  size?: 'sm' | 'md' | 'lg';
128
148
  }
@@ -149,7 +169,7 @@ export declare const Modal: ({ size, width, withCloseButton, ...props }: IModalP
149
169
 
150
170
  export declare const Pagination: ({ currentPageIdx, rowsPerPage, totalLength, paginationSize, onPageChange, ...props }: IPaginationProps) => JSX.Element;
151
171
 
152
- export { PopUiProvider }
172
+ export declare const PopUiProvider: default_2.FC<IPopUiProviderProps>;
153
173
 
154
174
  export declare const Radio: ({ size, ...props }: IRadioProps) => JSX.Element;
155
175
 
@@ -194,6 +214,16 @@ declare type TTextFieldProps = ICommonTextFieldProps & (({
194
214
  minRows?: number;
195
215
  } & Omit<TextareaProps, keyof ICommonTextFieldProps | 'vars'>));
196
216
 
217
+ /**
218
+ * CSS Variables Generator
219
+ *
220
+ * 디자인 토큰을 CSS Custom Properties로 변환
221
+ * Light/Dark 테마 모두 동일한 색상 사용
222
+ */
223
+ declare type TThemeMode = 'light' | 'dark';
224
+
197
225
  declare type TToastInput = string | IToastOptions;
198
226
 
227
+ export declare const useTheme: () => IThemeContextValue;
228
+
199
229
  export { }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pop-ui/core",
3
3
  "type": "module",
4
- "version": "0.0.27",
4
+ "version": "0.0.29",
5
5
  "main": "./dist/core.umd.cjs",
6
6
  "module": "./dist/core.js",
7
7
  "types": "./dist/types/index.d.ts",
@@ -49,7 +49,7 @@
49
49
  "@mantine/dropzone": "^8.3.6",
50
50
  "@mantine/hooks": "^8.3.6",
51
51
  "@mantine/notifications": "^8.3.6",
52
- "@pop-ui/foundation": "0.0.26",
52
+ "@pop-ui/foundation": "0.0.28",
53
53
  "dayjs": "^1.11.18"
54
54
  },
55
55
  "peerDependencies": {
@@ -85,7 +85,7 @@
85
85
  "eslint": "^9.38.0",
86
86
  "eslint-plugin-react-hooks": "^7.0.1",
87
87
  "eslint-plugin-react-refresh": "^0.4.24",
88
- "eslint-plugin-storybook": "^10.0.1",
88
+ "eslint-plugin-storybook": "^10.0.4",
89
89
  "polished": "^4.3.1",
90
90
  "postcss": "^8.5.6",
91
91
  "postcss-nesting": "^13.0.2",
@@ -97,5 +97,5 @@
97
97
  "typescript": "^5.9.3",
98
98
  "vite": "^7.1.12"
99
99
  },
100
- "gitHead": "3d18c062d9b98af9679701d7b3cdc99e336b31e5"
100
+ "gitHead": "f82aadafafc8c3289fc589deae52264963cd8e4f"
101
101
  }