@pop-ui/core 0.0.10
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/LICENSE.md +21 -0
- package/dist/components/Alert/Alert.stories.js +18 -0
- package/dist/components/Alert/index.js +38 -0
- package/dist/components/Button/Button.stories.js +42 -0
- package/dist/components/Button/index.js +33 -0
- package/dist/components/Checkbox/Checkbox.stories.js +14 -0
- package/dist/components/Checkbox/index.js +27 -0
- package/dist/components/DatePicker/DatePicker.stories.js +27 -0
- package/dist/components/DatePicker/index.js +29 -0
- package/dist/components/Dropdown/Dropdown.stories.js +16 -0
- package/dist/components/Dropdown/index.js +50 -0
- package/dist/components/ImageUploader/ImageUploader.stories.js +9 -0
- package/dist/components/ImageUploader/index.js +37 -0
- package/dist/components/Modal/Modal.stories.js +13 -0
- package/dist/components/Modal/index.js +25 -0
- package/dist/components/Pagination/Pagination.stories.js +14 -0
- package/dist/components/Pagination/index.js +56 -0
- package/dist/components/Radio/Radio.stories.js +14 -0
- package/dist/components/Radio/index.js +19 -0
- package/dist/components/SearchBar/SearchBar.stories.js +16 -0
- package/dist/components/SearchBar/index.js +46 -0
- package/dist/components/SegmentButton/SegmentButton.stories.js +14 -0
- package/dist/components/SegmentButton/index.js +24 -0
- package/dist/components/Tab/Tab.stories.js +28 -0
- package/dist/components/Tab/index.js +18 -0
- package/dist/components/Table/Table.stories.js +127 -0
- package/dist/components/Table/index.js +129 -0
- package/dist/components/TextField/TextField.stories.js +36 -0
- package/dist/components/TextField/index.js +60 -0
- package/dist/components/TimePicker/TimePicker.stories.js +13 -0
- package/dist/components/TimePicker/index.js +30 -0
- package/dist/components/Toggle/Toggle.stories.js +15 -0
- package/dist/components/Toggle/index.js +41 -0
- package/dist/components/Tooltip/Tooltip.stories.js +24 -0
- package/dist/components/Tooltip/index.js +13 -0
- package/dist/components/index.js +17 -0
- package/dist/components/shared/styles.js +219 -0
- package/dist/core.css +1 -0
- package/dist/core.js +746 -0
- package/dist/core.umd.cjs +1 -0
- package/dist/helpers/checkMessage/checkMessage.test.js +9 -0
- package/dist/helpers/checkMessage/index.js +8 -0
- package/dist/index.js +1 -0
- package/dist/types/components/Alert/Alert.stories.d.ts +3 -0
- package/dist/types/components/Alert/index.d.ts +17 -0
- package/dist/types/components/Button/Button.stories.d.ts +7 -0
- package/dist/types/components/Button/index.d.ts +14 -0
- package/dist/types/components/Checkbox/Checkbox.stories.d.ts +3 -0
- package/dist/types/components/Checkbox/index.d.ts +11 -0
- package/dist/types/components/DatePicker/DatePicker.stories.d.ts +5 -0
- package/dist/types/components/DatePicker/index.d.ts +16 -0
- package/dist/types/components/Dropdown/Dropdown.stories.d.ts +3 -0
- package/dist/types/components/Dropdown/index.d.ts +23 -0
- package/dist/types/components/ImageUploader/ImageUploader.stories.d.ts +3 -0
- package/dist/types/components/ImageUploader/index.d.ts +22 -0
- package/dist/types/components/Modal/Modal.stories.d.ts +3 -0
- package/dist/types/components/Modal/index.d.ts +13 -0
- package/dist/types/components/Pagination/Pagination.stories.d.ts +3 -0
- package/dist/types/components/Pagination/index.d.ts +18 -0
- package/dist/types/components/Radio/Radio.stories.d.ts +3 -0
- package/dist/types/components/Radio/index.d.ts +11 -0
- package/dist/types/components/SearchBar/SearchBar.stories.d.ts +3 -0
- package/dist/types/components/SearchBar/index.d.ts +27 -0
- package/dist/types/components/SegmentButton/SegmentButton.stories.d.ts +3 -0
- package/dist/types/components/SegmentButton/index.d.ts +13 -0
- package/dist/types/components/Tab/Tab.stories.d.ts +3 -0
- package/dist/types/components/Tab/index.d.ts +24 -0
- package/dist/types/components/Table/Table.stories.d.ts +5 -0
- package/dist/types/components/Table/index.d.ts +41 -0
- package/dist/types/components/TextField/TextField.stories.d.ts +5 -0
- package/dist/types/components/TextField/index.d.ts +35 -0
- package/dist/types/components/TimePicker/TimePicker.stories.d.ts +3 -0
- package/dist/types/components/TimePicker/index.d.ts +11 -0
- package/dist/types/components/Toggle/Toggle.stories.d.ts +3 -0
- package/dist/types/components/Toggle/index.d.ts +17 -0
- package/dist/types/components/Tooltip/Tooltip.stories.d.ts +3 -0
- package/dist/types/components/Tooltip/index.d.ts +13 -0
- package/dist/types/components/index.d.ts +17 -0
- package/dist/types/components/shared/styles.d.ts +86 -0
- package/dist/types/helpers/checkMessage/checkMessage.test.d.ts +1 -0
- package/dist/types/helpers/checkMessage/index.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +95 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(a,t){typeof exports=="object"&&typeof module<"u"?t(exports,require("react/jsx-runtime"),require("@mantine/core"),require("react"),require("dayjs/locale/ko"),require("@mantine/dates"),require("react-beautiful-dnd"),require("@mantine/dropzone")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","@mantine/core","react","dayjs/locale/ko","@mantine/dates","react-beautiful-dnd","@mantine/dropzone"],t):(a=typeof globalThis<"u"?globalThis:a||self,t(a.Core={},a.jsxRuntime,a.core,a.React,null,a.dates,a.reactBeautifulDnd,a.dropzone))})(this,function(a,t,d,p,At,D,E,J){"use strict";const I={lg_button:"_lg_button_18ipb_16",md_button:"_md_button_18ipb_26",sm_button:"_sm_button_18ipb_36",primary:"_primary_18ipb_46",primaryline:"_primaryline_18ipb_68",basic:"_basic_18ipb_102",danger:"_danger_18ipb_135",setting:"_setting_18ipb_157"},lt=({children:e,size:o="md",styleType:l="primary",..._})=>{let i=I.md_button;o==="sm"?i=I.sm_button:o==="lg"&&(i=I.lg_button);let n=I.primary;return l==="basic"?n=I.basic:l==="primaryline"?n=I.primaryline:l==="danger"?n=I.danger:l==="setting"&&(n=I.setting),t.jsx(d.Button,{type:"button",className:`${n} ${i}`,..._,children:e})},H="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M10.0877%207.65632L7.97702%207.92086L7.90164%208.27125L8.31695%208.34664C8.58707%208.41155%208.64081%208.50857%208.58218%208.77869L7.90164%2011.9734C7.72365%2012.7991%207.99936%2013.1879%208.6464%2013.1879C9.14895%2013.1879%209.73107%2012.9562%209.99561%2012.6372L10.0766%2012.254C9.89301%2012.4159%209.62288%2012.4808%209.4449%2012.4808C9.19153%2012.4808%209.10009%2012.3028%209.16431%2011.9894L10.0877%207.65632ZM10.1513%205.73336C10.1513%205.97772%2010.0542%206.21206%209.88141%206.38485C9.70862%206.55764%209.47427%206.65471%209.22992%206.65471C8.98556%206.65471%208.75121%206.55764%208.57843%206.38485C8.40564%206.21206%208.30857%205.97772%208.30857%205.73336C8.30857%205.489%208.40564%205.25465%208.57843%205.08187C8.75121%204.90908%208.98556%204.81201%209.22992%204.81201C9.47427%204.81201%209.70862%204.90908%209.88141%205.08187C10.0542%205.25465%2010.1513%205.489%2010.1513%205.73336Z'%20fill='%2353B1FD'/%3e%3ccircle%20cx='9'%20cy='9'%20r='6.1875'%20stroke='%2353B1FD'%20stroke-width='1.125'/%3e%3c/svg%3e",Q="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='12'%20cy='12'%20r='9'%20fill='%239B9B9B'/%3e%3cpath%20d='M9%209L15%2015'%20stroke='white'%20stroke-width='1.5'%20stroke-miterlimit='10'%20stroke-linecap='round'/%3e%3cpath%20d='M15%209L9%2015'%20stroke='white'%20stroke-width='1.5'%20stroke-miterlimit='10'%20stroke-linecap='round'/%3e%3c/svg%3e",v={left_label_textfield:"_left_label_textfield_wii04_16",top_label_textfield:"_top_label_textfield_wii04_22",sm_label:"_sm_label_wii04_27",md_label:"_md_label_wii04_36",lg_label:"_lg_label_wii04_45",sm_tooltip:"_sm_tooltip_wii04_54",md_tooltip:"_md_tooltip_wii04_59",lg_tooltip:"_lg_tooltip_wii04_64",textfield_wrapper:"_textfield_wrapper_wii04_69",text_counter:"_text_counter_wii04_73",textarea:"_textarea_wii04_85",sm_textfield:"_sm_textfield_wii04_94",md_textfield:"_md_textfield_wii04_109",lg_textfield:"_lg_textfield_wii04_124",input_description:"_input_description_wii04_139",input_error_msg:"_input_error_msg_wii04_143",clear_button:"_clear_button_wii04_147"},it=({label:e,labelPosition:o="top",size:l="md",required:_,tooltip:i,tooltipPosition:n="top",errorMsg:s,description:x,textarea:r=!1,minRows:y,maxTextCount:h,onChange:f,onClear:g,...w})=>{const[k,T]=p.useState(0);let N=v.md_label,S=v.md_textfield,B=v.md_tooltip;l==="sm"?(N=v.sm_label,S=v.sm_textfield,B=v.sm_tooltip):l==="lg"&&(N=v.lg_label,S=v.lg_textfield,B=v.lg_tooltip);const b=p.useCallback(c=>{var m,u,$,A,q,F;if(h){if(((u=(m=c.currentTarget)==null?void 0:m.value)==null?void 0:u.length)>h)return;T((A=($=c.currentTarget)==null?void 0:$.value)==null?void 0:A.length),f&&f(c)}f&&(T((F=(q=c.currentTarget)==null?void 0:q.value)==null?void 0:F.length),f(c))},[h,f]);return t.jsxs("div",{className:o==="top"?v.top_label_textfield:v.left_label_textfield,children:[t.jsxs("div",{children:[e&&t.jsx(d.Input.Label,{required:_,className:N,children:e}),i&&t.jsx(d.Tooltip,{label:i,position:n,children:t.jsx("img",{className:B,src:H,alt:"tooltip_icon"})})]}),t.jsxs("div",{children:[t.jsxs("div",{className:v.textfield_wrapper,children:[r?t.jsx(d.Textarea,{className:v.textarea,size:l,minRows:y,error:s,onChange:b,disabled:w==null?void 0:w.disabled,...w}):t.jsx(d.Input,{className:S,error:s,onChange:b,rightSection:g&&k>0?t.jsx("div",{className:v.clear_button,onClick:g,children:t.jsx("img",{src:Q})}):void 0,...w}),h&&h>0&&t.jsx("span",{className:v.text_counter,children:`${k}/${h}`})]}),x&&t.jsx(d.Input.Description,{className:v.input_description,children:x}),s&&t.jsx(d.Input.Error,{className:v.input_error_msg,children:s})]})]})},_t="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M10.1811%2017.3621C14.147%2017.3621%2017.3621%2014.147%2017.3621%2010.1811C17.3621%206.21507%2014.147%203%2010.1811%203C6.21507%203%203%206.21507%203%2010.1811C3%2014.147%206.21507%2017.3621%2010.1811%2017.3621Z'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-miterlimit='10'/%3e%3cpath%20d='M15.2876%2015.2874L21.0002%2021'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-miterlimit='10'%20stroke-linecap='round'/%3e%3c/svg%3e",C={left_label_textfield:"_left_label_textfield_wii04_16",top_label_textfield:"_top_label_textfield_wii04_22",sm_label:"_sm_label_wii04_27",md_label:"_md_label_wii04_36",lg_label:"_lg_label_wii04_45",sm_tooltip:"_sm_tooltip_wii04_54",md_tooltip:"_md_tooltip_wii04_59",lg_tooltip:"_lg_tooltip_wii04_64",textfield_wrapper:"_textfield_wrapper_wii04_69",sm_textfield:"_sm_textfield_wii04_94",md_textfield:"_md_textfield_wii04_109",lg_textfield:"_lg_textfield_wii04_124",input_description:"_input_description_wii04_139",input_error_msg:"_input_error_msg_wii04_143",clear_button:"_clear_button_wii04_147"},ot=({label:e,labelPosition:o="top",size:l="md",required:_,tooltip:i,tooltipPosition:n="top",errorMsg:s,description:x,onChange:r,onClear:y,...h})=>{const[f,g]=p.useState(0);let w=C.md_label,k=C.md_textfield,T=C.md_tooltip;l==="sm"?(w=C.sm_label,k=C.sm_textfield,T=C.sm_tooltip):l==="lg"&&(w=C.lg_label,k=C.lg_textfield,T=C.lg_tooltip);const N=p.useCallback(S=>{r&&(g(S==null?void 0:S.length),r(S))},[r]);return t.jsxs("div",{className:o==="top"?C.top_label_textfield:C.left_label_textfield,children:[t.jsxs("div",{children:[e&&t.jsx(d.Input.Label,{required:_,className:w,children:e}),i&&t.jsx(d.Tooltip,{label:i,position:n,children:t.jsx("img",{className:T,src:H,alt:"tooltip_icon"})})]}),t.jsxs("div",{children:[t.jsx("div",{className:C.textfield_wrapper,children:t.jsx(d.Autocomplete,{...h,size:l,error:s,className:k,onChange:N,icon:t.jsx("img",{src:_t}),iconWidth:48,rightSection:y&&f>0?t.jsx("div",{className:C.clear_button,onClick:y,children:t.jsx("img",{src:Q})}):void 0})}),x&&t.jsx(d.Input.Description,{className:C.input_description,children:x}),s&&t.jsx(d.Input.Error,{className:C.input_error_msg,children:s})]})]})},X="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18%2015L12%209L6%2015'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",z="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18%209L12%2015L6%209'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",M={left_label_textfield:"_left_label_textfield_hosiw_16",top_label_textfield:"_top_label_textfield_hosiw_22",sm_label:"_sm_label_hosiw_27",md_label:"_md_label_hosiw_36",lg_label:"_lg_label_hosiw_45",sm_tooltip:"_sm_tooltip_hosiw_54",md_tooltip:"_md_tooltip_hosiw_59",lg_tooltip:"_lg_tooltip_hosiw_64",sm_textfield:"_sm_textfield_hosiw_69",md_textfield:"_md_textfield_hosiw_84",lg_textfield:"_lg_textfield_hosiw_99",input_description:"_input_description_hosiw_114",input_error_msg:"_input_error_msg_hosiw_118"},st=({label:e,labelPosition:o="top",size:l="md",required:_,tooltip:i,tooltipPosition:n="top",errorMsg:s,description:x,...r})=>{const[y,h]=p.useState(!1);let f=M.md_label,g=M.md_textfield,w=M.md_tooltip,k=18;return l==="sm"?(f=M.sm_label,g=M.sm_textfield,w=M.sm_tooltip,k=14):l==="lg"&&(f=M.lg_label,g=M.lg_textfield,w=M.lg_tooltip,k=24),t.jsxs("div",{className:o==="top"?M.top_label_textfield:M.left_label_textfield,children:[t.jsxs("div",{children:[e&&t.jsx(d.Input.Label,{required:_,className:f,children:e}),i&&t.jsx(d.Tooltip,{label:i,position:n,children:t.jsx("img",{className:w,src:H,alt:"tooltip_icon"})})]}),t.jsxs("div",{children:[t.jsx(d.Select,{...r,size:l,error:s,className:g,rightSection:y?t.jsx("img",{width:k,src:X}):t.jsx("img",{width:k,src:z}),onDropdownOpen:()=>h(!0),onDropdownClose:()=>h(!1),styles:()=>({item:{"&[data-selected]":{"&, &:hover":{backgroundColor:"#e7e7e7",color:"#000000"}}}})}),x&&t.jsx(d.Input.Description,{className:M.input_description,children:x}),s&&t.jsx(d.Input.Error,{className:M.input_error_msg,children:s})]})]})},P={sm_checkbox:"_sm_checkbox_7y75g_16",md_checkbox:"_md_checkbox_7y75g_52",lg_checkbox:"_lg_checkbox_7y75g_88"},ct=({size:e="md",...o})=>{let l=P.md_checkbox,_=24;return e==="sm"?(l=P.sm_checkbox,_=18):e==="lg"&&(l=P.lg_checkbox,_=32),t.jsx(d.Checkbox,{className:l,styles:{inner:{width:_,height:_}},...o})},Z={sm_radio:"_sm_radio_1ib4u_16",md_radio:"_md_radio_1ib4u_52",lg_radio:"_lg_radio_1ib4u_88"},rt=({size:e="md",...o})=>{let l=Z.md_radio;return e==="sm"?l=Z.sm_radio:e==="lg"&&(l=Z.lg_radio),t.jsx(d.Radio,{className:l,size:e,...o})},V={sm_toggle:"_sm_toggle_jaqix_16",md_toggle:"_md_toggle_jaqix_34",lg_toggle:"_lg_toggle_jaqix_52"},nt=({size:e="md",labelPosition:o="right",disabled:l,onChange:_,...i})=>{const[n,s]=p.useState((i==null?void 0:i.checked)||!1);let x=V.md_toggle,r=50;e==="sm"?(x=V.sm_toggle,r=38):e==="lg"&&(x=V.lg_toggle,r=67);const y=p.useCallback(h=>{var f;_&&_(h),s((f=h==null?void 0:h.target)==null?void 0:f.checked)},[_]);return t.jsx(d.Switch,{className:x,size:e,labelPosition:o,disabled:l,onChange:y,styles:()=>({track:{backgroundColor:!l&&n?"#0fd3d8 !important":void 0,borderColor:!l&&n?"#0fd3d8 !important":void 0,width:r}}),...i})},R="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='3'%20y='5'%20width='18'%20height='16'%20rx='2'%20stroke='%23808080'%20stroke-width='1.5'/%3e%3cpath%20d='M7%203V5'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M17%203V5'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3crect%20x='3.7002'%20y='5.48511'%20width='16.8291'%20height='4.51416'%20fill='%23808080'/%3e%3c/svg%3e",W={sm_textfield:"_sm_textfield_2zkt2_16",md_textfield:"_md_textfield_2zkt2_66",lg_textfield:"_lg_textfield_2zkt2_116"},dt=({size:e="md",type:o="default",withTime:l,..._})=>{let i=W.md_textfield,n=18;return e==="sm"?(i=W.sm_textfield,n=14):e==="lg"&&(i=W.lg_textfield,n=24),l?t.jsx(D.DateTimePicker,{placeholder:void 0,onPointerEnterCapture:void 0,onPointerLeaveCapture:void 0,className:i,size:e,locale:"ko",firstDayOfWeek:0,monthLabelFormat:"YYYY년 MM월",valueFormat:"YYYY-MM-DD | a hh:mm",rightSection:t.jsx("img",{width:n,src:R}),..._}):t.jsx(D.DatePickerInput,{className:i,type:o,size:e,locale:"ko",firstDayOfWeek:0,monthLabelFormat:"YYYY년 MM월",valueFormat:"YYYY-MM-DD",rightSection:t.jsx("img",{width:n,src:R}),..._})},at="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2021C16.9706%2021%2021%2016.9706%2021%2012C21%207.02944%2016.9706%203%2012%203C7.02944%203%203%207.02944%203%2012C3%2016.9706%207.02944%2021%2012%2021Z'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-miterlimit='10'/%3e%3cpath%20d='M12.1201%2011.9998V7.0498'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-miterlimit='10'%20stroke-linecap='round'/%3e%3cpath%20d='M16.1701%2012H12.1201'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-miterlimit='10'%20stroke-linecap='round'/%3e%3c/svg%3e",U={sm_textfield:"_sm_textfield_8xl46_16",md_textfield:"_md_textfield_8xl46_33",lg_textfield:"_lg_textfield_8xl46_50"},gt=({size:e="md",...o})=>{const l=p.useRef(null);let _=U.md_textfield,i=18;return e==="sm"?(_=U.sm_textfield,i=14):e==="lg"&&(_=U.lg_textfield,i=24),t.jsx(D.TimeInput,{ref:l,className:_,size:e,...o,rightSection:t.jsx(d.ActionIcon,{onClick:()=>{var n;l&&((n=l==null?void 0:l.current)==null||n.showPicker())},children:t.jsx("img",{width:i,src:at,alt:"clock_icon"})})})},mt="data:image/svg+xml,%3csvg%20width='8'%20height='14'%20viewBox='0%200%208%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7%201L1%207L7%2013'%20stroke='%23667085'/%3e%3c/svg%3e",pt="data:image/svg+xml,%3csvg%20width='8'%20height='14'%20viewBox='0%200%208%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1%201L7%207L1%2013'%20stroke='%23667085'/%3e%3c/svg%3e",j={pagination:"_pagination_hiiqe_16",page_index:"_page_index_hiiqe_24",page_index_active:"_page_index_active_hiiqe_48",arrow:"_arrow_hiiqe_74"},ht=({currentPageIdx:e,rowsPerPage:o,totalLength:l,paginationSize:_,onPageChange:i,...n})=>{const[s,x]=p.useState(e),[r,y]=p.useState(50),[h,f]=p.useState(1),[g,w]=p.useState(5);p.useMemo(()=>{x(e),y(o||50),f(l||1),w(_||5)},[e,o,l,_]);const k=()=>{i&&i(s-(s%g+1)),x(N=>N-(N%g+1))},T=()=>{i&&i(s+g-s%g),x(N=>N+g-N%g)};return t.jsxs("div",{...n,className:j.pagination,children:[s>=g?t.jsx("button",{className:j.arrow,onClick:k,children:t.jsx("img",{src:mt,alt:"prev"})}):null,new Array(g).fill(0).map((N,S)=>{const B=Math.floor(s/g)*g+S+1;if(!(B>Math.ceil(h/r)))return t.jsx("button",{className:s===B-1?j.page_index_active:j.page_index,onClick:()=>{x(B-1),i&&i(B-1)},children:B},`pagination_${S}`)}),Math.floor(s/g)*g+g<Math.ceil(h/r)?t.jsx("button",{className:j.arrow,onClick:T,children:t.jsx("img",{src:pt,alt:"next"})}):null]})},tt={tab_title_list:"_tab_title_list_1fmw0_16",border_bottom:"_border_bottom_1fmw0_38"},ft=({tabList:e=[],containerPaddingTop:o,...l})=>t.jsxs(d.Tabs,{...l,children:[t.jsx(d.Tabs.List,{className:tt.tab_title_list,children:e==null?void 0:e.map((_,i)=>t.jsxs(d.Tabs.Tab,{value:_.value,icon:_.icon,children:[_.title,t.jsx("div",{className:tt.border_bottom})]},`tab_${i}`))}),e==null?void 0:e.map((_,i)=>t.jsx(d.Tabs.Panel,{value:_.value,pt:o,children:_.body},`tab_panel_${i}`))]}),G={sm_segment_button:"_sm_segment_button_ok8t2_16",md_segment_button:"_md_segment_button_ok8t2_29",lg_segment_button:"_lg_segment_button_ok8t2_42"},bt=({size:e="md",radius:o=6,...l})=>{let _=G.md_segment_button;return e==="sm"?_=G.sm_segment_button:e==="lg"&&(_=G.lg_segment_button),t.jsx(d.SegmentedControl,{className:_,size:e,radius:o,styles:{control:{borderWidth:"0 !important"}},...l})},xt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='9'%20cy='9'%20r='9'%20fill='%2330CC37'/%3e%3cpath%20d='M3.9375%209L7.51103%2012.375L14.0625%205.625'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",wt="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='9.5625'%20cy='9.5625'%20r='6.1875'%20fill='white'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M9%200C4.03729%200%200%204.03729%200%209C0%2013.9627%204.03729%2018%209%2018C13.9627%2018%2018%2013.9627%2018%209C18%204.03729%2013.9627%200%209%200ZM9.00413%2011.9604C9.58966%2011.9604%2010.063%2012.4337%2010.063%2013.0192C10.063%2013.6047%209.58966%2014.078%209.00413%2014.078C8.4186%2014.078%207.94001%2013.6047%207.94001%2013.0192C7.94001%2012.4337%208.40907%2011.9604%208.99354%2011.9604H9.00413ZM8.99375%204.18659C9.43211%204.18659%209.78787%204.54235%209.78787%204.98071V9.65965C9.78787%2010.098%209.43211%2010.4538%208.99375%2010.4538C8.5554%2010.4538%208.19963%2010.098%208.19963%209.65965V4.98071C8.19963%204.54235%208.5554%204.18659%208.99375%204.18659Z'%20fill='%23FA5252'/%3e%3c/svg%3e",Y={light_success:"_light_success_gs18x_16",light_error:"_light_error_gs18x_38",fill_success:"_fill_success_gs18x_60",fill_error:"_fill_error_gs18x_81"},ut=({visible:e=!1,type:o="success",variant:l="light",top:_=48,right:i=48,...n})=>{let s=Y.light_success;return l==="fill"?o==="success"?s=Y.fill_success:o==="error"&&(s=Y.fill_error):o==="success"?s=Y.light_success:o==="error"&&(s=Y.light_error),e?t.jsx(d.Alert,{className:s,icon:t.jsx("img",{src:o==="success"?xt:wt,alt:"alert_icon"}),styles:{title:{marginBottom:n!=null&&n.children?void 0:0}},pos:"fixed",top:_,right:i,...n}):null},K={tooltip_body:"_tooltip_body_iesd0_16",tooltip_title:"_tooltip_title_iesd0_21",tooltip_content:"_tooltip_content_iesd0_31"},kt=({title:e,content:o,maw:l=280,multiline:_=!0,...i})=>t.jsx(d.Tooltip,{...i,maw:l,multiline:_,label:t.jsxs("div",{className:K.tooltip_body,children:[e&&t.jsx("span",{className:K.tooltip_title,children:e}),t.jsx("span",{className:K.tooltip_content,children:o})]})}),L={table:"_table_16tlf_16",tr_gray:"_tr_gray_16tlf_20",th_cell:"_th_cell_16tlf_39",th_cell_sortable:"_th_cell_sortable_16tlf_56",td_cell:"_td_cell_16tlf_82"},vt="data:image/svg+xml,%3csvg%20width='14'%20height='14'%20viewBox='0%200%2014%2014'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M10.2502%209.4585L7.16695%2012.5418L4.08366%209.4585'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M4.08423%204.8335L7.16752%201.7502L10.2508%204.8335'%20stroke='%23808080'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",$t="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='9.5'%20cy='5.5'%20r='1.5'%20fill='%234A4A4A'/%3e%3ccircle%20cx='14.5'%20cy='5.5'%20r='1.5'%20fill='%234A4A4A'/%3e%3ccircle%20cx='9.5'%20cy='11.5'%20r='1.5'%20fill='%234A4A4A'/%3e%3ccircle%20cx='14.5'%20cy='11.5'%20r='1.5'%20fill='%234A4A4A'/%3e%3ccircle%20cx='9.5'%20cy='17.5'%20r='1.5'%20fill='%234A4A4A'/%3e%3ccircle%20cx='14.5'%20cy='17.5'%20r='1.5'%20fill='%234A4A4A'/%3e%3c/svg%3e",yt=({tableId:e,headerList:o,tableData:l,sortable:_,draggable:i=!1,striped:n,onDragEnd:s,className:x})=>{const[r,y]=p.useState(),[h,f]=p.useState(),[g,w]=p.useState(),k=p.useCallback(b=>{const c=b==null?void 0:b.map((m,u)=>{var q,F,et;const $=Object.keys(m),A=t.jsx(t.Fragment,{children:$.map((Bt,Tt)=>t.jsx("td",{className:L.td_cell,children:m[Bt].cell},`table_${e||0}_tr_${u}_col_${Tt}`))});return i&&((q=m[$[0]])==null?void 0:q.dndId)===void 0&&console.error("draggable table을 사용할 때엔 tableData의 첫번째 필드에 고유한 dndId를 설정해주세요"),{row:A,dndId:(F=m[$[0]])==null?void 0:F.dndId,trClassName:(et=m[$[0]])==null?void 0:et.trClassName}});y(c)},[i,e]);p.useMemo(()=>{f(void 0),w(void 0),k(l)},[k,l]);const T=p.useCallback(b=>{if(l){const c=l.slice(0),m=Object.keys(c[0])[b];f(b);let u;g?g==="desc"?(u=c==null?void 0:c.sort(($,A)=>String($[m].sortTarget||$[m].cell).localeCompare(String(A[m].sortTarget||A[m].cell))),w("asc")):(u=c,f(void 0),w(void 0)):(u=c==null?void 0:c.sort(($,A)=>String(A[m].sortTarget||A[m].cell).localeCompare(String($[m].sortTarget||$[m].cell))),w("desc")),k(u)}},[k,g,l]),N=p.useCallback(b=>_?h===b?g==="desc"?t.jsx("img",{src:z,alt:"ic_chevron_down"}):t.jsx("img",{src:X,alt:"ic_chevron_up"}):t.jsx("img",{src:vt,alt:"ic_sortable"}):null,[_,h,g]),S=p.useCallback((b,c,m)=>{const u=Array.from(b);return u.splice(m,0,c),u},[]),B=p.useCallback(b=>{if(!b.destination||!r)return;const c=r==null?void 0:r.slice(0),[m]=c.splice(b.source.index,1),u=S(c,m,b.destination.index);y(u),s&&s(u.map($=>({dndId:$==null?void 0:$.dndId})))},[s,S,r]);return t.jsxs("table",{className:`${L.table} ${x||""}`,children:[t.jsx("thead",{children:t.jsxs("tr",{children:[i&&t.jsx("th",{className:L.th_cell,style:{padding:0}}),o==null?void 0:o.map((b,c)=>t.jsx("th",{className:_?L.th_cell_sortable:L.th_cell,onClick:()=>{_&&T(c)},children:t.jsxs("div",{children:[b,N(c)]})},`table_header_col_${c}`))]})}),t.jsx(E.DragDropContext,{onDragEnd:B,children:t.jsx(E.Droppable,{droppableId:`dnd_table_${e||0}_drop_zone`,children:b=>t.jsxs("tbody",{ref:b.innerRef,...b.droppableProps,children:[r==null?void 0:r.map((c,m)=>t.jsx(E.Draggable,{draggableId:`dnd_table_${e||0}_drag_item_${c==null?void 0:c.dndId}`,index:m,isDragDisabled:!i,children:u=>p.createElement("tr",{...u.dragHandleProps,...u.draggableProps,ref:u.innerRef,key:`table_${e||0}_tr_${m}`,className:`${n&&m%2===1?L.tr_gray:""} ${c.trClassName}`},i&&t.jsx("td",{className:L.td_cell,style:{padding:0},children:t.jsx("div",{children:t.jsx("img",{src:$t,alt:"ic_drag"})})}),c==null?void 0:c.row)},`dnd_table_${e||0}_drag_item_${(c==null?void 0:c.dndId)!==void 0?c.dndId:m}`)),b.placeholder]})})})]})},Ct=({size:e="md",width:o,withCloseButton:l=!1,..._})=>{let i=768;return e==="xs"?i=360:e==="sm"?i=544:e==="lg"?i=1e3:e==="xl"&&(i=1200),t.jsx(d.Modal,{size:o||i,withCloseButton:l,..._})},O={image_uploader:"_image_uploader_lv9hk_16",preview:"_preview_lv9hk_31",image_uploader_wrapper:"_image_uploader_wrapper_lv9hk_55",file_clear_button:"_file_clear_button_lv9hk_60"},Nt="data:image/svg+xml,%3csvg%20width='48'%20height='48'%20viewBox='0%200%2048%2048'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='8'%20y='8'%20width='32'%20height='32'%20rx='4'%20stroke='%2307A3C6'%20stroke-width='2'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M20.4436%2016.8886C20.4436%2018.8532%2018.8527%2020.4441%2016.8881%2020.4441C14.9254%2020.4441%2013.3325%2018.8532%2013.3325%2016.8886C13.3325%2014.924%2014.9254%2013.333%2016.8881%2013.333C18.8508%2013.3349%2020.4417%2014.9259%2020.4436%2016.8886Z'%20stroke='%2307A3C6'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M8%2032.8893L12.8471%2029.254C14.2038%2028.2365%2016.0548%2028.1851%2017.4659%2029.1258L17.9594%2029.4548C19.4333%2030.4375%2021.378%2030.3336%2022.7389%2029.1995L28.7618%2024.1804C30.1486%2023.0248%2032.1375%2022.9412%2033.6164%2023.9764L40%2028.4449'%20stroke='%2307A3C6'%20stroke-width='2'/%3e%3c/svg%3e",St="data:image/svg+xml,%3csvg%20width='18'%20height='18'%20viewBox='0%200%2018%2018'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cx='9'%20cy='9'%20r='9'%20fill='%239B9B9B'/%3e%3cpath%20d='M6%206L12%2012'%20stroke='white'%20stroke-width='1.5'%20stroke-miterlimit='10'%20stroke-linecap='round'/%3e%3cpath%20d='M12%206L6%2012'%20stroke='white'%20stroke-width='1.5'%20stroke-miterlimit='10'%20stroke-linecap='round'/%3e%3c/svg%3e",Mt=({width:e,height:o,defaultMsg:l="이미지 업로드",file:_,onDrop:i,showClearButton:n,onClear:s,...x})=>{const[r,y]=p.useState(_),h=p.useCallback(()=>{y(void 0),s&&s()},[s]);return t.jsxs("div",{className:O.image_uploader_wrapper,children:[n&&r?t.jsx("div",{className:O.file_clear_button,onClick:h,children:t.jsx("img",{src:St,alt:"clear_file_data"})}):null,t.jsx(J.Dropzone,{...x,maxFiles:1,className:O.image_uploader,accept:J.IMAGE_MIME_TYPE,onDrop:f=>{y(f[0]),i&&i(f)},style:{width:e,height:o},children:t.jsx(t.Fragment,{children:r?t.jsx("img",{className:O.preview,src:typeof r=="string"?r:URL.createObjectURL(r),alt:`파일명: ${typeof r=="string"?r:r.name}`,title:`파일명: ${typeof r=="string"?r:r.name}`}):t.jsxs("div",{children:[t.jsx("img",{src:Nt,alt:"ic_image_colored"}),t.jsx("span",{children:l})]})})})]})};a.Alert=ut,a.Button=lt,a.Checkbox=ct,a.DatePicker=dt,a.Dropdown=st,a.ImageUploader=Mt,a.Modal=Ct,a.Pagination=ht,a.Radio=rt,a.SearchBar=ot,a.SegmentButton=bt,a.Tab=ft,a.Table=yt,a.TextField=it,a.TimePicker=gt,a.Toggle=nt,a.Tooltip=kt,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { checkMessage } from ".";
|
|
2
|
+
describe("checkMessage", () => {
|
|
3
|
+
it('should return "world" if message is "hello"', () => {
|
|
4
|
+
expect(checkMessage("hello")).toBe("world");
|
|
5
|
+
});
|
|
6
|
+
it('should return "error" if message is not "hello"', () => {
|
|
7
|
+
expect(checkMessage("")).toBe("error");
|
|
8
|
+
});
|
|
9
|
+
});
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./components";
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").AlertProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultAlert: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").AlertProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { AlertProps as MatineAlertProps } from "@mantine/core";
|
|
2
|
+
export interface AlertProps extends MatineAlertProps {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
type?: "success" | "error";
|
|
5
|
+
variant?: "fill" | "light";
|
|
6
|
+
title?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* ----- alert props -----
|
|
10
|
+
** visible: 노출 여부
|
|
11
|
+
** type: 'success' | 'error'
|
|
12
|
+
** variant: 'fill' | 'light'
|
|
13
|
+
** title: alert 타이틀
|
|
14
|
+
** 기타 props는 mantine alert props 사용: https://v6.mantine.dev/core/alert/?t=props
|
|
15
|
+
*/
|
|
16
|
+
export declare const Alert: ({ visible, type, variant, top, right, ...props }: AlertProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
17
|
+
export default Alert;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").ButtonProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const PrimaryButton: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").ButtonProps>;
|
|
4
|
+
export declare const PrimaryLineButton: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").ButtonProps>;
|
|
5
|
+
export declare const BasicButton: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").ButtonProps>;
|
|
6
|
+
export declare const DangerButton: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").ButtonProps>;
|
|
7
|
+
export declare const SettingButton: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").ButtonProps>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ButtonProps as MantineButtonProps } from "@mantine/core";
|
|
2
|
+
export interface ButtonProps extends MantineButtonProps {
|
|
3
|
+
onClick?: () => void;
|
|
4
|
+
size?: "sm" | "md" | "lg";
|
|
5
|
+
styleType?: "primary" | "primaryline" | "basic" | "danger" | "setting";
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* ----- button props -----
|
|
9
|
+
** size: 'sm' | 'md' | 'lg'
|
|
10
|
+
** styleType: 'primary' | 'primaryline' | 'basic' | 'danger' | 'setting'
|
|
11
|
+
** 기타 props는 mantine button props 사용: https://v6.mantine.dev/core/button/?t=props
|
|
12
|
+
*/
|
|
13
|
+
export declare const Button: ({ children, size, styleType, ...props }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export default Button;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").CheckboxProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultCheckbox: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").CheckboxProps>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CheckboxProps as MantineCheckboxProps } from "@mantine/core";
|
|
2
|
+
export interface CheckboxProps extends MantineCheckboxProps {
|
|
3
|
+
size?: "sm" | "md" | "lg";
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* ----- checkbox props -----
|
|
7
|
+
** size: 'sm' | 'md' | 'lg'
|
|
8
|
+
** 기타 props는 mantine checkbox props 사용: https://v6.mantine.dev/core/checkbox/?t=props
|
|
9
|
+
*/
|
|
10
|
+
export declare const Checkbox: ({ size, ...props }: CheckboxProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export default Checkbox;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").DatePickerProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const datePicker: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").DatePickerProps>;
|
|
4
|
+
export declare const datetimePicker: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").DatePickerProps>;
|
|
5
|
+
export declare const rangePicker: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").DatePickerProps>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import "dayjs/locale/ko";
|
|
2
|
+
import { DatePickerInputProps } from "@mantine/dates";
|
|
3
|
+
export interface DatePickerProps extends DatePickerInputProps {
|
|
4
|
+
size?: "sm" | "md" | "lg";
|
|
5
|
+
type?: "default" | "multiple" | "range";
|
|
6
|
+
withTime?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* ----- datepicker props -----
|
|
10
|
+
** size: 'sm' | 'md' | 'lg'
|
|
11
|
+
** type: 'default' | 'multiple' | 'range'
|
|
12
|
+
** withTime: 시간 포함 여부
|
|
13
|
+
** 기타 props는 mantine datepicker props 사용: https://v6.mantine.dev/dates/date-picker-input/?t=props
|
|
14
|
+
*/
|
|
15
|
+
export declare const DatePicker: ({ size, type, withTime, ...props }: DatePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export default DatePicker;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").SearchBarProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultDropdown: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").SearchBarProps>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { SelectProps } from "@mantine/core";
|
|
2
|
+
export interface SearchBarProps extends SelectProps {
|
|
3
|
+
label?: string;
|
|
4
|
+
labelPosition?: "top" | "left";
|
|
5
|
+
size?: "sm" | "md" | "lg";
|
|
6
|
+
tooltip?: string;
|
|
7
|
+
tooltipPosition?: "top" | "bottom" | "left" | "right";
|
|
8
|
+
description?: string;
|
|
9
|
+
errorMsg?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* ----- dropdown props -----
|
|
13
|
+
** label: string, 라벨
|
|
14
|
+
** labelPosition: 'top' | 'left', 라벨위치
|
|
15
|
+
** size: 'sm' | 'md' | 'lg'
|
|
16
|
+
** tooltip: string, 툴팁
|
|
17
|
+
** tooltipPosition: 'top' | 'bottom' | 'left' | 'right', 툴팁 위치
|
|
18
|
+
** description: string, 상세 설명
|
|
19
|
+
** errorMsg: string, 에러 메시지
|
|
20
|
+
** 기타 props는 mantine select props 사용: https://v6.mantine.dev/core/select/?t=props
|
|
21
|
+
*/
|
|
22
|
+
export declare const Dropdown: ({ label, labelPosition, size, required, tooltip, tooltipPosition, errorMsg, description, ...props }: SearchBarProps) => import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export default Dropdown;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").ImageUploaderProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultImageUploader: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").ImageUploaderProps>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import { FileWithPath, DropzoneProps } from "@mantine/dropzone";
|
|
3
|
+
export interface ImageUploaderProps extends DropzoneProps {
|
|
4
|
+
width?: number;
|
|
5
|
+
height?: number;
|
|
6
|
+
defaultMsg?: ReactNode;
|
|
7
|
+
file?: string | FileWithPath;
|
|
8
|
+
showClearButton?: boolean;
|
|
9
|
+
onClear?: () => void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* ----- image uploader props -----
|
|
13
|
+
** width: number
|
|
14
|
+
** height: number
|
|
15
|
+
** defaultMsg: ReactNode, placeholder 대체
|
|
16
|
+
** file: string | FileWithPath
|
|
17
|
+
** showClearButton: boolean, 업로드 파일 clear 버튼 노출 여부
|
|
18
|
+
** onClear: () => void, 업로드 파일 clear시 실행될 함수
|
|
19
|
+
** 기타 props는 mantine dropzone props 사용: https://v6.mantine.dev/others/dropzone/?t=props
|
|
20
|
+
*/
|
|
21
|
+
export declare const ImageUploader: ({ width, height, defaultMsg, file, onDrop, showClearButton, onClear, ...props }: ImageUploaderProps) => import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export default ImageUploader;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").ModalProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultModal: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").ModalProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ModalProps as MantineModalProps } from "@mantine/core";
|
|
2
|
+
export interface ModalProps extends MantineModalProps {
|
|
3
|
+
size?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
4
|
+
width?: number;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* ----- modal props -----
|
|
8
|
+
** size: 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
9
|
+
** width: number
|
|
10
|
+
** 기타 props는 mantine modal props 사용: https://v6.mantine.dev/core/modal/?t=props
|
|
11
|
+
*/
|
|
12
|
+
export declare const Modal: ({ size, width, withCloseButton, ...props }: ModalProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default Modal;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").PaginationProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultPagination: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").PaginationProps>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
export interface PaginationProps extends HTMLAttributes<HTMLDivElement> {
|
|
3
|
+
currentPageIdx: number;
|
|
4
|
+
rowsPerPage?: number;
|
|
5
|
+
totalLength?: number;
|
|
6
|
+
paginationSize?: number;
|
|
7
|
+
onPageChange?: (e: number) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* ----- pagination props -----
|
|
11
|
+
** currentPageIdx: 0부터 시작, 현재 page index
|
|
12
|
+
** rowsPerPage: 한 페이지에 보이는 아이템 개수
|
|
13
|
+
** totalLength: 페이지네이션 사용할 data의 총 개수
|
|
14
|
+
** paginationSize: 페이지네이션 숫자 노출 수 default: 5 (1~5)
|
|
15
|
+
** onPageChange: (page: number) => void
|
|
16
|
+
*/
|
|
17
|
+
export declare const Pagination: ({ currentPageIdx, rowsPerPage, totalLength, paginationSize, onPageChange, ...props }: PaginationProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export default Pagination;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").RadioProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultRadio: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").RadioProps>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RadioProps as MantineRadioProps } from "@mantine/core";
|
|
2
|
+
export interface RadioProps extends MantineRadioProps {
|
|
3
|
+
size?: "sm" | "md" | "lg";
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* ----- radio props -----
|
|
7
|
+
** size: 'sm' | 'md' | 'lg'
|
|
8
|
+
** 기타 props는 mantine radio props 사용: https://v6.mantine.dev/core/radio/?t=props
|
|
9
|
+
*/
|
|
10
|
+
export declare const Radio: ({ size, ...props }: RadioProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export default Radio;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").SearchBarProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultSearchBar: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").SearchBarProps>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AutocompleteProps } from "@mantine/core";
|
|
2
|
+
export interface SearchBarProps extends AutocompleteProps {
|
|
3
|
+
label?: string;
|
|
4
|
+
labelPosition?: "top" | "left";
|
|
5
|
+
size?: "sm" | "md" | "lg";
|
|
6
|
+
tooltip?: string;
|
|
7
|
+
tooltipPosition?: "top" | "bottom" | "left" | "right";
|
|
8
|
+
description?: string;
|
|
9
|
+
errorMsg?: string;
|
|
10
|
+
onChange?: (event: any) => void;
|
|
11
|
+
onClear?: () => void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* ----- search bar props -----
|
|
15
|
+
** label?: string, 라벨
|
|
16
|
+
** labelPosition?: "top" | "left", 라벨 위치
|
|
17
|
+
** size?: "sm" | "md" | "lg"
|
|
18
|
+
** tooltip?: string, 툴팁
|
|
19
|
+
** tooltipPosition?: "top" | "bottom" | "left" | "right", 툴팁 위치
|
|
20
|
+
** description?: string, 상세 텍스트
|
|
21
|
+
** errorMsg?: string, 에러 메시지
|
|
22
|
+
** onChange?: (event: any) => void
|
|
23
|
+
** onClear?: () => void, clear button 노출시 필요
|
|
24
|
+
** 기타 props는 mantine autocomplete props 사용: https://v6.mantine.dev/core/autocomplete/?t=props
|
|
25
|
+
*/
|
|
26
|
+
export declare const SearchBar: ({ label, labelPosition, size, required, tooltip, tooltipPosition, errorMsg, description, onChange, onClear, ...props }: SearchBarProps) => import("react/jsx-runtime").JSX.Element;
|
|
27
|
+
export default SearchBar;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").SegmentButtonProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultSegmentButton: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").SegmentButtonProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { SegmentedControlProps } from "@mantine/core";
|
|
2
|
+
export interface SegmentButtonProps extends SegmentedControlProps {
|
|
3
|
+
size?: "sm" | "md" | "lg";
|
|
4
|
+
radius?: number | "xs" | "sm" | "md" | "lg" | "xl";
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* ----- segment button props -----
|
|
8
|
+
** size: 'sm' | 'md' | 'lg'
|
|
9
|
+
** radius: number | 'xs' | 'sm' | 'md' | 'lg' | 'xl'
|
|
10
|
+
** 기타 props는 mantine segmented control props 사용: https://v6.mantine.dev/core/segmented-control/?t=props
|
|
11
|
+
*/
|
|
12
|
+
export declare const SegmentButton: ({ size, radius, ...props }: SegmentButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default SegmentButton;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").TabProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultTab: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").TabProps>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TabsProps } from "@mantine/core";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
export interface TabProps extends TabsProps {
|
|
4
|
+
tabList: {
|
|
5
|
+
title: string;
|
|
6
|
+
value: string;
|
|
7
|
+
body: ReactNode;
|
|
8
|
+
icon?: ReactNode;
|
|
9
|
+
}[];
|
|
10
|
+
containerPaddingTop?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* ----- tab props -----
|
|
14
|
+
** tabList: {
|
|
15
|
+
title: string;
|
|
16
|
+
value: string;
|
|
17
|
+
body: ReactNode;
|
|
18
|
+
icon?: ReactNode;
|
|
19
|
+
}[];
|
|
20
|
+
** containerPaddingTop?: "xs" | "sm" | "md" | "lg" | "xl";
|
|
21
|
+
** 기타 props는 mantine tabs props 사용: https://v6.mantine.dev/core/tabs/?t=props
|
|
22
|
+
*/
|
|
23
|
+
export declare const Tab: ({ tabList, containerPaddingTop, ...props }: TabProps) => import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
export default Tab;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").TableProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultTable: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").TableProps>;
|
|
4
|
+
export declare const sortableTable: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").TableProps>;
|
|
5
|
+
export declare const draggableTable: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").TableProps>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
interface RowData {
|
|
3
|
+
[key: string]: {
|
|
4
|
+
cell: ReactNode;
|
|
5
|
+
sortTarget?: string | number | boolean;
|
|
6
|
+
dndId?: string | number;
|
|
7
|
+
trClassName?: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export interface TableProps {
|
|
11
|
+
tableId?: string;
|
|
12
|
+
headerList?: Array<ReactNode>;
|
|
13
|
+
tableData?: RowData[];
|
|
14
|
+
sortable?: boolean;
|
|
15
|
+
draggable?: boolean;
|
|
16
|
+
striped?: boolean;
|
|
17
|
+
onDragEnd?: (rows: {
|
|
18
|
+
dndId?: string | number;
|
|
19
|
+
}[]) => void;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* ----- table props -----
|
|
24
|
+
** tableId: 드래그앤드롭에 사용하는 고유한 id
|
|
25
|
+
** headerList: ReactNode[]인 헤더 리스트
|
|
26
|
+
** tableData: {
|
|
27
|
+
[key:string]: {
|
|
28
|
+
cell:ReactNode;
|
|
29
|
+
sortTarget: string | number | boolean;
|
|
30
|
+
dndId:(사용시, 첫번째 key value에선 필수) string | number;
|
|
31
|
+
trClassName:(사용시, 첫번째 key value에선 필수) string;
|
|
32
|
+
}
|
|
33
|
+
}[]
|
|
34
|
+
** sortable: 정렬 가능여부
|
|
35
|
+
** draggable: 드래그앤드롭 가능여부
|
|
36
|
+
** striped: stripe 스타일 적용 여부
|
|
37
|
+
** onDragEnd: 드래그앤드롭 이후, 새로 정렬된 dndId list return
|
|
38
|
+
** className: table custom style 적용 필요시 사용
|
|
39
|
+
*/
|
|
40
|
+
export declare const Table: ({ tableId, headerList, tableData, sortable, draggable, striped, onDragEnd, className, }: TableProps) => import("react/jsx-runtime").JSX.Element;
|
|
41
|
+
export default Table;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").TextFieldProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const LabelTextField: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").TextFieldProps>;
|
|
4
|
+
export declare const ToolTipTextField: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").TextFieldProps>;
|
|
5
|
+
export declare const Textarea: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").TextFieldProps>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { InputProps } from "@mantine/core";
|
|
2
|
+
export interface TextFieldProps extends InputProps {
|
|
3
|
+
label?: string;
|
|
4
|
+
labelPosition?: "top" | "left";
|
|
5
|
+
size?: "sm" | "md" | "lg";
|
|
6
|
+
required?: boolean;
|
|
7
|
+
tooltip?: string;
|
|
8
|
+
tooltipPosition?: "top" | "bottom" | "left" | "right";
|
|
9
|
+
description?: string;
|
|
10
|
+
errorMsg?: string;
|
|
11
|
+
textarea?: boolean;
|
|
12
|
+
minRows?: number;
|
|
13
|
+
maxTextCount?: number;
|
|
14
|
+
onChange?: (event: any) => void;
|
|
15
|
+
onClear?: () => void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* ----- textfield props -----
|
|
19
|
+
** label: string, 라벨
|
|
20
|
+
** labelPosition: "top" | "left", 라벨 위치
|
|
21
|
+
** size: "sm" | "md" | "lg"
|
|
22
|
+
** required: boolean, 필수 입력여부
|
|
23
|
+
** tooltip: string, 툴팁
|
|
24
|
+
** tooltipPosition: "top" | "bottom" | "left" | "right", 툴팁 위치
|
|
25
|
+
** description: string, 상세 텍스트
|
|
26
|
+
** errorMsg: string, 에러 메시지
|
|
27
|
+
** textarea: boolean, textarea element로 사용할지 여부
|
|
28
|
+
** minRows: number, textarea element 사용시, height 대신 사용
|
|
29
|
+
** maxTextCount: number, 최대 텍스트 제한
|
|
30
|
+
** onChange: (event: any) => void
|
|
31
|
+
** onClear: () => void
|
|
32
|
+
** 기타 props는 mantine input props 사용: https://v6.mantine.dev/core/input/?t=props
|
|
33
|
+
*/
|
|
34
|
+
export declare const TextField: ({ label, labelPosition, size, required, tooltip, tooltipPosition, errorMsg, description, textarea, minRows, maxTextCount, onChange, onClear, ...props }: TextFieldProps) => import("react/jsx-runtime").JSX.Element;
|
|
35
|
+
export default TextField;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").TimePickerProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultTimePicker: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").TimePickerProps>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TimeInputProps } from "@mantine/dates";
|
|
2
|
+
export interface TimePickerProps extends TimeInputProps {
|
|
3
|
+
size?: "sm" | "md" | "lg";
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* ----- time picker props -----
|
|
7
|
+
** size: 'sm' | 'md' | 'lg'
|
|
8
|
+
** 기타 props는 mantine time input props 사용: https://v6.mantine.dev/dates/time-input/?t=props
|
|
9
|
+
*/
|
|
10
|
+
export declare const TimePicker: ({ size, ...props }: TimePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export default TimePicker;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").ToggleProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultToggle: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").ToggleProps>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { SwitchProps } from "@mantine/core";
|
|
2
|
+
export interface ToggleProps extends SwitchProps {
|
|
3
|
+
size?: "sm" | "md" | "lg";
|
|
4
|
+
labelPosition: "left" | "right";
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
onChange?: (event: any) => void;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* ----- toggle props -----
|
|
10
|
+
** size: 'sm' | 'md' | 'lg'
|
|
11
|
+
** labelPosition: 'left' | 'right', 라벨 위치
|
|
12
|
+
** disabled: boolean
|
|
13
|
+
** onChange: (event) => void
|
|
14
|
+
** 기타 props는 mantine switch props 사용: https://v6.mantine.dev/core/switch/?t=props
|
|
15
|
+
*/
|
|
16
|
+
export declare const Toggle: ({ size, labelPosition, disabled, onChange, ...props }: ToggleProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export default Toggle;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: import("@storybook/core/csf").ComponentAnnotations<import("@storybook/react/dist/types-5617c98e").R, import(".").TooltipProps>;
|
|
2
|
+
export default _default;
|
|
3
|
+
export declare const defaultTooltip: import("@storybook/core/csf").AnnotatedStoryFn<import("@storybook/react/dist/types-5617c98e").R, import(".").TooltipProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { TooltipProps as MantineTooltipProps } from "@mantine/core";
|
|
2
|
+
export interface TooltipProps extends MantineTooltipProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
content: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* ----- tooltip props -----
|
|
8
|
+
** title: string
|
|
9
|
+
** content: string
|
|
10
|
+
** 기타 props는 mantine tooltip props 사용: https://v6.mantine.dev/core/tooltip/?t=props
|
|
11
|
+
*/
|
|
12
|
+
export declare const Tooltip: ({ title, content, maw, multiline, ...props }: TooltipProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export default Tooltip;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { default as Button } from "./Button";
|
|
2
|
+
export { TextField } from "./TextField";
|
|
3
|
+
export { SearchBar } from "./SearchBar";
|
|
4
|
+
export { Dropdown } from "./Dropdown";
|
|
5
|
+
export { Checkbox } from "./Checkbox";
|
|
6
|
+
export { Radio } from "./Radio";
|
|
7
|
+
export { Toggle } from "./Toggle";
|
|
8
|
+
export { DatePicker } from "./DatePicker";
|
|
9
|
+
export { TimePicker } from "./TimePicker";
|
|
10
|
+
export { Pagination } from "./Pagination";
|
|
11
|
+
export { Tab } from "./Tab";
|
|
12
|
+
export { SegmentButton } from "./SegmentButton";
|
|
13
|
+
export { Alert } from "./Alert";
|
|
14
|
+
export { Tooltip } from "./Tooltip";
|
|
15
|
+
export { Table } from "./Table";
|
|
16
|
+
export { Modal } from "./Modal";
|
|
17
|
+
export { ImageUploader } from "./ImageUploader";
|