@devup-ui/components 0.1.8 → 0.1.9

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.
@@ -5,5 +5,6 @@ declare const meta: Meta<typeof Select>;
5
5
  export declare const DefaultStory: Story;
6
6
  export declare const ControlledRadioStory: Story;
7
7
  export declare const ControlledCheckboxStory: Story;
8
+ export declare const SelectWithOptionsStory: Story;
8
9
  export default meta;
9
10
  //# sourceMappingURL=Select.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGtD,OAAO,EACL,MAAM,EAKP,MAAM,GAAG,CAAA;AAGV,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAGzC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAU7B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAGlC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,KAGrC,CAAA;AAED,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Select.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Select/Select.stories.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAGtD,OAAO,EACL,MAAM,EAKP,MAAM,GAAG,CAAA;AAGV,MAAM,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAGzC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,MAAM,CAU7B,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,KAK1B,CAAA;AAED,eAAO,MAAM,oBAAoB,EAAE,KAGlC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,KAGrC,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,KAGpC,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),d=require("@devup-ui/react"),D=require("clsx"),g=require("react"),v=require("../Button/index.cjs"),y=require("./IconCheck.cjs"),E=g.createContext(null),S=()=>{const t=g.useContext(E);if(!t)throw new Error("useSelect must be used within a Select");return t};function A({type:t="default",children:l,defaultValue:o,value:i,onValueChange:n,defaultOpen:x,open:u,onOpenChange:p,colors:e,typography:b,...F}){const h=g.useRef(null),[c,f]=g.useState(x??!1),[a,k]=g.useState(o??(t==="checkbox"?[]:""));g.useEffect(()=>{const s=m=>{h.current&&h.current.contains(m.target)||f(!1)};return document.addEventListener("click",s),()=>document.removeEventListener("click",s)},[c,f]);const j=s=>{p==null||p(s),f(s)},C=s=>{if(n==null||n(s),t!=="default"){if(t==="radio"){k(s);return}Array.isArray(a)&&a.includes(s)?k(a.filter(m=>m!==s)):k([...a,s])}};return r.jsx(E.Provider,{value:{open:u??c,setOpen:j,value:i??a,setValue:C,type:t},children:r.jsx(d.Box,{ref:h,display:"inline-block",pos:"relative",selectors:{"&, & *":{boxSizing:"border-box"}},styleOrder:1,styleVars:{primary:e==null?void 0:e.primary,border:e==null?void 0:e.border,inputBackground:e==null?void 0:e.inputBackground,base10:e==null?void 0:e.base10,title:e==null?void 0:e.title,selectDisabled:e==null?void 0:e.selectDisabled,primaryBg:e==null?void 0:e.primaryBg,inputDisabledBackground:e==null?void 0:e.inputDisabledBackground,inputDisabledText:e==null?void 0:e.inputDisabledText},typography:b,...F,children:l})})}function B({className:t,children:l,asChild:o,...i}){const{open:n,setOpen:x}=S(),u=()=>{x(!n)};if(o){const p=g.Children.only(l),e=p.type;return r.jsx(e,{"aria-expanded":n,"aria-label":"Select toggle",onClick:u,...p.props})}return r.jsx(v.Button,{"aria-expanded":n,"aria-label":"Select toggle",className:D(d.css({borderRadius:"8px",styleOrder:2}),t),onClick:u,...i,children:l})}function O({children:t,showConfirmButton:l,confirmButtonText:o="완료",...i}){const{open:n,setOpen:x,type:u}=S();return n?r.jsxs(d.VStack,{"aria-label":"Select container",bg:"var(--inputBg, light-dark(#FFF,#2E2E2E))",border:"1px solid var(--border, light-dark(#E4E4E4,#434343))",borderRadius:"8px",bottom:"-4px",boxShadow:"0 2px 2px 0 var(--base10, light-dark(#0000001A,#FFFFFF1A))",gap:"6px",h:"fit-content",p:"10px",pos:"absolute",styleOrder:1,transform:"translateY(100%)",userSelect:"none",w:"232px",zIndex:1,...i,children:[t,l&&u==="checkbox"&&r.jsx(d.Flex,{justifyContent:"end",w:"100%",children:r.jsx(v.Button,{"aria-label":"Select confirm button",className:d.css({textAlign:"end",bg:"var(--primary, light-dark(#674DC7, #8163E1))",borderRadius:"8px",w:"fit-content",px:"30px",py:"10px",color:"#FFF",typography:"buttonS"}),onClick:()=>x(!1),variant:"primary",children:o})})]}):null}function w({disabled:t,onClick:l,children:o,value:i,showCheck:n=!0,...x}){const{setOpen:u,setValue:p,value:e,type:b}=S(),F=()=>{b!=="checkbox"&&u(!1)},h=(a,k)=>{if(l){l(a,k);return}typeof a=="string"&&p(a),F()},c={default:!1,radio:e===i,checkbox:Array.isArray(e)&&i&&e.includes(i)}[b],f=!t&&!(b==="radio"&&c);return r.jsxs(d.Flex,{_hover:f&&{bg:"var(--primaryBg, light-dark(#F4F3FA, #F4F3FA0D))"},alignItems:"center",borderRadius:"6px",color:t?"var(--selectDisabled, light-dark(#C4C5D1, #45464D))":c?"var(--primary, light-dark(#674DC7, #8163E1)":"var(--title, light-dark(#1A1A1A,#FAFAFA))",cursor:f?"pointer":"default","data-value":i,fontWeight:c?"700":"400",gap:{checkbox:"10px",radio:"6px",default:"0"}[b],h:"40px",onClick:t?void 0:a=>h(i,a),px:"10px",styleOrder:1,transition:"background-color 0.1s ease-in-out",...x,children:[n&&{checkbox:r.jsx(d.Box,{bg:t?"var(--inputDisabledBackground, light-dark(#F0F0F3, #414244))":c?"var(--primary, light-dark(#674DC7, #8163E1)":"var(--border, light-dark(#E4E4E4, #434343))",borderRadius:"4px",boxSize:"18px",pos:"relative",transition:"background-color 0.1s ease-in-out",children:c&&r.jsx(y.IconCheck,{className:d.css({color:t?"var(--inputDisabledText, light-dark(#E5E5E5, #373737))":"#FFF",position:"absolute",top:"55%",left:"50%",transform:"translate(-50%, -50%)"})})}),radio:r.jsx(r.Fragment,{children:c&&r.jsx(d.Box,{borderRadius:"4px",boxSize:"18px",pos:"relative",transition:"background-color 0.1s ease-in-out",children:r.jsx(y.IconCheck,{className:d.css({position:"absolute",top:"55%",left:"50%",transform:"translate(-50%, -50%)",color:"inherit"})})})}),default:null}[b],o]})}function R({...t}){return r.jsx(d.Box,{bg:"var(--border, light-dark(#E4E4E4,#434343)",h:"1px",styleOrder:1,w:"100%",...t})}exports.Select=A;exports.SelectContainer=O;exports.SelectDivider=R;exports.SelectOption=w;exports.SelectTrigger=B;exports.useSelect=S;
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),m=require("react"),u=require("@devup-ui/react"),A=require("clsx"),v=require("../../contexts/useSelect.cjs"),E=require("../Button/index.cjs"),F=require("./IconCheck.cjs");function O({type:i="default",children:o,defaultValue:f,value:s,onChange:l,defaultOpen:g,open:b,onOpenChange:x,colors:e,typography:p,options:a,...k}){const r=m.useRef(null),[h,d]=m.useState(g??!1),[c,y]=m.useState(f??(i==="checkbox"?[]:""));m.useEffect(()=>{const n=S=>{r.current&&r.current.contains(S.target)||d(!1)};return document.addEventListener("click",n),()=>document.removeEventListener("click",n)},[h,d]);const B=n=>{x==null||x(n),d(n)},C=n=>{if(l==null||l(n),i!=="default"){if(i==="radio"){y(n);return}Array.isArray(c)&&c.includes(n)?y(c.filter(S=>S!==n)):y([...c,n])}};return t.jsx(v.SelectContext.Provider,{value:{open:b??h,setOpen:B,value:s??c,setValue:C,type:i,ref:r},children:t.jsx(u.Box,{ref:r,display:"inline-block",h:"fit-content",selectors:{"&, & *":{boxSizing:"border-box"}},styleOrder:1,styleVars:{primary:e==null?void 0:e.primary,border:e==null?void 0:e.border,inputBackground:e==null?void 0:e.inputBackground,base10:e==null?void 0:e.base10,title:e==null?void 0:e.title,selectDisabled:e==null?void 0:e.selectDisabled,primaryBg:e==null?void 0:e.primaryBg,inputDisabledBackground:e==null?void 0:e.inputDisabledBackground,inputDisabledText:e==null?void 0:e.inputDisabledText},typography:p,...k,children:a?t.jsxs(t.Fragment,{children:[t.jsx(j,{children:o}),t.jsx(w,{children:a==null?void 0:a.map(n=>m.createElement(D,{...n,key:"option-"+n.value},n.label??n.value))})]}):o})})}function j({className:i,children:o,asChild:f,...s}){const{open:l,setOpen:g}=v.useSelect(),b=()=>{g(!l)};if(f){const x=m.Children.only(o),e=x.type;return t.jsx(e,{"aria-expanded":l,"aria-label":"Select toggle",onClick:b,...x.props})}return t.jsx(E.Button,{"aria-expanded":l,"aria-label":"Select toggle",className:A(u.css({borderRadius:"8px",styleOrder:2}),i),onClick:b,...s,children:o})}function w({children:i,showConfirmButton:o,confirmButtonText:f="완료",x:s=0,y:l=0,...g}){const{open:b,setOpen:x,type:e,ref:p}=v.useSelect();return b?t.jsxs(u.VStack,{ref:a=>{if(!p.current||!a)return;const k=p.current,r=()=>{const{height:h,x:d,y:c}=k.getBoundingClientRect();a.offsetHeight+c+l>window.innerHeight?a.style.bottom=`${window.innerHeight-c+10}px`:a.style.top=`${c+h+10+l}px`,a.offsetWidth+d+s>window.innerWidth?a.style.left=`${d-a.offsetWidth+k.offsetWidth+s}px`:a.style.left=`${d+s}px`};return r(),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},"aria-label":"Select container",bg:"var(--inputBg, light-dark(#FFF,#2E2E2E))",border:"1px solid var(--border, light-dark(#E4E4E4,#434343))",borderRadius:"8px",bottom:"-4px",boxShadow:"0 2px 2px 0 var(--base10, light-dark(#0000001A,#FFFFFF1A))",boxSize:"fit-content",gap:"6px",minW:"232px",p:"10px",pos:"fixed",styleOrder:1,userSelect:"none",zIndex:1,...g,children:[i,o&&e==="checkbox"&&t.jsx(u.Flex,{justifyContent:"end",w:"100%",children:t.jsx(E.Button,{"aria-label":"Select confirm button",className:u.css({textAlign:"end",bg:"var(--primary, light-dark(#674DC7, #8163E1))",borderRadius:"8px",w:"fit-content",px:"30px",py:"10px",color:"#FFF",typography:"buttonS"}),onClick:()=>x(!1),variant:"primary",children:f})})]}):null}function D({disabled:i,onClick:o,children:f,value:s,showCheck:l=!0,...g}){const{setOpen:b,setValue:x,value:e,type:p}=v.useSelect(),a=()=>{p!=="checkbox"&&b(!1)},k=(d,c)=>{if(o){o(d,c);return}typeof d=="string"&&x(d),a()},r={default:!1,radio:e===s,checkbox:Array.isArray(e)&&s&&e.includes(s)}[p],h=!i&&!(p==="radio"&&r);return t.jsxs(u.Flex,{_hover:h&&{bg:"var(--primaryBg, light-dark(#F4F3FA, #F4F3FA0D))"},alignItems:"center",borderRadius:"6px",color:i?"var(--selectDisabled, light-dark(#C4C5D1, #45464D))":r?"var(--primary, light-dark(#674DC7, #8163E1)":"var(--title, light-dark(#1A1A1A,#FAFAFA))",cursor:h?"pointer":"default","data-value":s,fontWeight:r?"700":"400",gap:{checkbox:"10px",radio:"6px",default:"0"}[p],h:"40px",onClick:i?void 0:d=>k(s,d),px:"10px",styleOrder:1,transition:"background-color 0.1s ease-in-out",...g,children:[l&&{checkbox:t.jsx(u.Box,{bg:i?"var(--inputDisabledBackground, light-dark(#F0F0F3, #414244))":r?"var(--primary, light-dark(#674DC7, #8163E1)":"var(--border, light-dark(#E4E4E4, #434343))",borderRadius:"4px",boxSize:"18px",pos:"relative",transition:"background-color 0.1s ease-in-out",children:r&&t.jsx(F.IconCheck,{className:u.css({color:i?"var(--inputDisabledText, light-dark(#E5E5E5, #373737))":"#FFF",position:"absolute",top:"55%",left:"50%",transform:"translate(-50%, -50%)"})})}),radio:t.jsx(t.Fragment,{children:r&&t.jsx(u.Box,{borderRadius:"4px",boxSize:"18px",pos:"relative",transition:"background-color 0.1s ease-in-out",children:t.jsx(F.IconCheck,{className:u.css({position:"absolute",top:"55%",left:"50%",transform:"translate(-50%, -50%)",color:"inherit"})})})}),default:null}[p],f]})}function R({...i}){return t.jsx(u.Box,{bg:"var(--border, light-dark(#E4E4E4,#434343)",h:"1px",styleOrder:1,w:"100%",...i})}exports.Select=O;exports.SelectContainer=w;exports.SelectDivider=R;exports.SelectOption=D;exports.SelectTrigger=j;
@@ -1,19 +1,11 @@
1
1
  import { DevupThemeTypography } from '@devup-ui/react';
2
2
  import { ComponentProps } from 'react';
3
+ import { SelectType, SelectValue } from '../../types/select';
3
4
  import { Button } from '../Button';
4
- type SelectType = 'default' | 'radio' | 'checkbox';
5
- type SelectValue<T extends SelectType> = T extends 'radio' ? string : string[];
6
- export declare const useSelect: () => {
7
- open: boolean;
8
- setOpen: (open: boolean) => void;
9
- value: SelectValue<SelectType>;
10
- setValue: (value: string) => void;
11
- type: SelectType;
12
- };
13
- interface SelectProps extends ComponentProps<'div'> {
5
+ interface SelectProps extends Omit<ComponentProps<'div'>, 'onChange'> {
14
6
  defaultValue?: SelectValue<SelectType>;
15
7
  value?: SelectValue<SelectType>;
16
- onValueChange?: (value: string) => void;
8
+ onChange?: (value: string) => void;
17
9
  defaultOpen?: boolean;
18
10
  open?: boolean;
19
11
  onOpenChange?: (open: boolean) => void;
@@ -31,8 +23,15 @@ interface SelectProps extends ComponentProps<'div'> {
31
23
  primaryBg?: string;
32
24
  };
33
25
  typography?: keyof DevupThemeTypography;
26
+ options?: {
27
+ label?: string;
28
+ disabled?: boolean;
29
+ onClick?: (value: string | undefined, e?: React.MouseEvent<HTMLDivElement>) => void;
30
+ showCheck?: boolean;
31
+ value: string;
32
+ }[];
34
33
  }
35
- export declare function Select({ type, children, defaultValue, value: valueProp, onValueChange, defaultOpen, open: openProp, onOpenChange, colors, typography, ...props }: SelectProps): import("react/jsx-runtime").JSX.Element;
34
+ export declare function Select({ type, children, defaultValue, value: valueProp, onChange, defaultOpen, open: openProp, onOpenChange, colors, typography, options, ...props }: SelectProps): import("react/jsx-runtime").JSX.Element;
36
35
  interface SelectTriggerProps extends ComponentProps<typeof Button> {
37
36
  asChild?: boolean;
38
37
  }
@@ -40,12 +39,14 @@ export declare function SelectTrigger({ className, children, asChild, ...props }
40
39
  interface SelectContainerProps extends ComponentProps<'div'> {
41
40
  showConfirmButton?: boolean;
42
41
  confirmButtonText?: string;
42
+ x?: number;
43
+ y?: number;
43
44
  }
44
- export declare function SelectContainer({ children, showConfirmButton, confirmButtonText, ...props }: SelectContainerProps): import("react/jsx-runtime").JSX.Element | null;
45
+ export declare function SelectContainer({ children, showConfirmButton, confirmButtonText, x, y, ...props }: SelectContainerProps): import("react/jsx-runtime").JSX.Element | null;
45
46
  interface SelectOptionProps extends Omit<ComponentProps<'div'>, 'onClick'> {
46
- onClick?: (value: string | undefined, e?: React.MouseEvent<HTMLDivElement>) => void;
47
- disabled?: boolean;
48
47
  value?: string;
48
+ disabled?: boolean;
49
+ onClick?: (value: string | undefined, e?: React.MouseEvent<HTMLDivElement>) => void;
49
50
  showCheck?: boolean;
50
51
  }
51
52
  export declare function SelectOption({ disabled, onClick, children, value, showCheck, ...props }: SelectOptionProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Select/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Select/index.tsx"],"names":[],"mappings":"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"}
@@ -1,65 +1,62 @@
1
1
  "use client";
2
- import { jsx as r, jsxs as S, Fragment as w } from "react/jsx-runtime";
3
- import { Box as h, VStack as R, Flex as D, css as k } from "@devup-ui/react";
4
- import z from "clsx";
5
- import { useRef as N, useState as v, useEffect as T, createContext as j, Children as I, useContext as L } from "react";
6
- import { Button as A } from "../Button/index.js";
7
- import { IconCheck as E } from "./IconCheck.js";
8
- const C = j(null), y = () => {
9
- const t = L(C);
10
- if (!t)
11
- throw new Error("useSelect must be used within a Select");
12
- return t;
13
- };
14
- function G({
15
- type: t = "default",
16
- children: l,
17
- defaultValue: c,
18
- value: i,
19
- onValueChange: a,
20
- defaultOpen: o,
21
- open: p,
22
- onOpenChange: u,
2
+ import { jsx as a, jsxs as F, Fragment as D } from "react/jsx-runtime";
3
+ import { useRef as R, useState as S, useEffect as z, createElement as L, Children as W } from "react";
4
+ import { Box as m, VStack as H, Flex as A, css as k } from "@devup-ui/react";
5
+ import N from "clsx";
6
+ import { SelectContext as T, useSelect as E } from "../../contexts/useSelect.js";
7
+ import { Button as C } from "../Button/index.js";
8
+ import { IconCheck as w } from "./IconCheck.js";
9
+ function J({
10
+ type: r = "default",
11
+ children: c,
12
+ defaultValue: b,
13
+ value: d,
14
+ onChange: s,
15
+ defaultOpen: x,
16
+ open: f,
17
+ onOpenChange: p,
23
18
  colors: e,
24
- typography: b,
25
- ...m
19
+ typography: o,
20
+ options: n,
21
+ ...g
26
22
  }) {
27
- const x = N(null), [s, f] = v(o ?? !1), [n, g] = v(
28
- c ?? (t === "checkbox" ? [] : "")
23
+ const t = R(null), [h, l] = S(x ?? !1), [u, v] = S(
24
+ b ?? (r === "checkbox" ? [] : "")
29
25
  );
30
- T(() => {
31
- const d = (F) => {
32
- x.current && x.current.contains(F.target) || f(!1);
26
+ z(() => {
27
+ const i = (y) => {
28
+ t.current && t.current.contains(y.target) || l(!1);
33
29
  };
34
- return document.addEventListener("click", d), () => document.removeEventListener("click", d);
35
- }, [s, f]);
36
- const B = (d) => {
37
- u == null || u(d), f(d);
38
- }, O = (d) => {
39
- if (a == null || a(d), t !== "default") {
40
- if (t === "radio") {
41
- g(d);
30
+ return document.addEventListener("click", i), () => document.removeEventListener("click", i);
31
+ }, [h, l]);
32
+ const B = (i) => {
33
+ p == null || p(i), l(i);
34
+ }, O = (i) => {
35
+ if (s == null || s(i), r !== "default") {
36
+ if (r === "radio") {
37
+ v(i);
42
38
  return;
43
39
  }
44
- Array.isArray(n) && n.includes(d) ? g(n.filter((F) => F !== d)) : g([...n, d]);
40
+ Array.isArray(u) && u.includes(i) ? v(u.filter((y) => y !== i)) : v([...u, i]);
45
41
  }
46
42
  };
47
- return /* @__PURE__ */ r(
48
- C.Provider,
43
+ return /* @__PURE__ */ a(
44
+ T.Provider,
49
45
  {
50
46
  value: {
51
- open: p ?? s,
47
+ open: f ?? h,
52
48
  setOpen: B,
53
- value: i ?? n,
49
+ value: d ?? u,
54
50
  setValue: O,
55
- type: t
51
+ type: r,
52
+ ref: t
56
53
  },
57
- children: /* @__PURE__ */ r(
58
- h,
54
+ children: /* @__PURE__ */ a(
55
+ m,
59
56
  {
60
- ref: x,
57
+ ref: t,
61
58
  display: "inline-block",
62
- pos: "relative",
59
+ h: "fit-content",
63
60
  selectors: {
64
61
  "&, & *": {
65
62
  boxSizing: "border-box"
@@ -77,83 +74,101 @@ function G({
77
74
  inputDisabledBackground: e == null ? void 0 : e.inputDisabledBackground,
78
75
  inputDisabledText: e == null ? void 0 : e.inputDisabledText
79
76
  },
80
- typography: b,
81
- ...m,
82
- children: l
77
+ typography: o,
78
+ ...g,
79
+ children: n ? /* @__PURE__ */ F(D, { children: [
80
+ /* @__PURE__ */ a($, { children: c }),
81
+ /* @__PURE__ */ a(j, { children: n == null ? void 0 : n.map((i) => /* @__PURE__ */ L(I, { ...i, key: "option-" + i.value }, i.label ?? i.value)) })
82
+ ] }) : c
83
83
  }
84
84
  )
85
85
  }
86
86
  );
87
87
  }
88
- function J({
89
- className: t,
90
- children: l,
91
- asChild: c,
92
- ...i
88
+ function $({
89
+ className: r,
90
+ children: c,
91
+ asChild: b,
92
+ ...d
93
93
  }) {
94
- const { open: a, setOpen: o } = y(), p = () => {
95
- o(!a);
94
+ const { open: s, setOpen: x } = E(), f = () => {
95
+ x(!s);
96
96
  };
97
- if (c) {
98
- const u = I.only(l), e = u.type;
99
- return /* @__PURE__ */ r(
97
+ if (b) {
98
+ const p = W.only(c), e = p.type;
99
+ return /* @__PURE__ */ a(
100
100
  e,
101
101
  {
102
- "aria-expanded": a,
102
+ "aria-expanded": s,
103
103
  "aria-label": "Select toggle",
104
- onClick: p,
105
- ...u.props
104
+ onClick: f,
105
+ ...p.props
106
106
  }
107
107
  );
108
108
  }
109
- return /* @__PURE__ */ r(
110
- A,
109
+ return /* @__PURE__ */ a(
110
+ C,
111
111
  {
112
- "aria-expanded": a,
112
+ "aria-expanded": s,
113
113
  "aria-label": "Select toggle",
114
- className: z(
114
+ className: N(
115
115
  k({
116
116
  borderRadius: "8px",
117
117
  styleOrder: 2
118
118
  }),
119
- t
119
+ r
120
120
  ),
121
- onClick: p,
122
- ...i,
123
- children: l
121
+ onClick: f,
122
+ ...d,
123
+ children: c
124
124
  }
125
125
  );
126
126
  }
127
- function K({
128
- children: t,
129
- showConfirmButton: l,
130
- confirmButtonText: c = "완료",
131
- ...i
127
+ function j({
128
+ children: r,
129
+ showConfirmButton: c,
130
+ confirmButtonText: b = "완료",
131
+ x: d = 0,
132
+ y: s = 0,
133
+ ...x
132
134
  }) {
133
- const { open: a, setOpen: o, type: p } = y();
134
- return a ? /* @__PURE__ */ S(
135
- R,
135
+ const { open: f, setOpen: p, type: e, ref: o } = E();
136
+ return f ? /* @__PURE__ */ F(
137
+ H,
136
138
  {
139
+ ref: (n) => {
140
+ if (!o.current || !n) return;
141
+ const g = o.current, t = () => {
142
+ const {
143
+ height: h,
144
+ x: l,
145
+ y: u
146
+ } = g.getBoundingClientRect();
147
+ n.offsetHeight + u + s > window.innerHeight ? n.style.bottom = `${window.innerHeight - u + 10}px` : n.style.top = `${u + h + 10 + s}px`, n.offsetWidth + l + d > window.innerWidth ? n.style.left = `${l - n.offsetWidth + g.offsetWidth + d}px` : n.style.left = `${l + d}px`;
148
+ };
149
+ return t(), window.addEventListener("scroll", t, !0), window.addEventListener("resize", t), () => {
150
+ window.removeEventListener("scroll", t, !0), window.removeEventListener("resize", t);
151
+ };
152
+ },
137
153
  "aria-label": "Select container",
138
154
  bg: "var(--inputBg, light-dark(#FFF,#2E2E2E))",
139
155
  border: "1px solid var(--border, light-dark(#E4E4E4,#434343))",
140
156
  borderRadius: "8px",
141
157
  bottom: "-4px",
142
158
  boxShadow: "0 2px 2px 0 var(--base10, light-dark(#0000001A,#FFFFFF1A))",
159
+ boxSize: "fit-content",
143
160
  gap: "6px",
144
- h: "fit-content",
161
+ minW: "232px",
145
162
  p: "10px",
146
- pos: "absolute",
163
+ pos: "fixed",
147
164
  styleOrder: 1,
148
- transform: "translateY(100%)",
149
165
  userSelect: "none",
150
- w: "232px",
151
166
  zIndex: 1,
152
- ...i,
167
+ ...x,
153
168
  children: [
154
- t,
155
- l && p === "checkbox" && /* @__PURE__ */ r(D, { justifyContent: "end", w: "100%", children: /* @__PURE__ */ r(
156
- A,
169
+ r,
170
+ c && e === "checkbox" && /* @__PURE__ */ a(A, { justifyContent: "end", w: "100%", children: /* @__PURE__ */ a(
171
+ C,
157
172
  {
158
173
  "aria-label": "Select confirm button",
159
174
  className: k({
@@ -166,74 +181,74 @@ function K({
166
181
  color: "#FFF",
167
182
  typography: "buttonS"
168
183
  }),
169
- onClick: () => o(!1),
184
+ onClick: () => p(!1),
170
185
  variant: "primary",
171
- children: c
186
+ children: b
172
187
  }
173
188
  ) })
174
189
  ]
175
190
  }
176
191
  ) : null;
177
192
  }
178
- function M({
179
- disabled: t,
180
- onClick: l,
181
- children: c,
182
- value: i,
183
- showCheck: a = !0,
184
- ...o
193
+ function I({
194
+ disabled: r,
195
+ onClick: c,
196
+ children: b,
197
+ value: d,
198
+ showCheck: s = !0,
199
+ ...x
185
200
  }) {
186
- const { setOpen: p, setValue: u, value: e, type: b } = y(), m = () => {
187
- b !== "checkbox" && p(!1);
188
- }, x = (n, g) => {
189
- if (l) {
190
- l(n, g);
201
+ const { setOpen: f, setValue: p, value: e, type: o } = E(), n = () => {
202
+ o !== "checkbox" && f(!1);
203
+ }, g = (l, u) => {
204
+ if (c) {
205
+ c(l, u);
191
206
  return;
192
207
  }
193
- typeof n == "string" && u(n), m();
194
- }, s = {
208
+ typeof l == "string" && p(l), n();
209
+ }, t = {
195
210
  default: !1,
196
- radio: e === i,
197
- checkbox: Array.isArray(e) && i && e.includes(i)
198
- }[b], f = !t && !(b === "radio" && s);
199
- return /* @__PURE__ */ S(
200
- D,
211
+ radio: e === d,
212
+ checkbox: Array.isArray(e) && d && e.includes(d)
213
+ }[o], h = !r && !(o === "radio" && t);
214
+ return /* @__PURE__ */ F(
215
+ A,
201
216
  {
202
- _hover: f && {
217
+ _hover: h && {
203
218
  bg: "var(--primaryBg, light-dark(#F4F3FA, #F4F3FA0D))"
204
219
  },
205
220
  alignItems: "center",
206
221
  borderRadius: "6px",
207
- color: t ? "var(--selectDisabled, light-dark(#C4C5D1, #45464D))" : s ? "var(--primary, light-dark(#674DC7, #8163E1)" : "var(--title, light-dark(#1A1A1A,#FAFAFA))",
208
- cursor: f ? "pointer" : "default",
209
- "data-value": i,
210
- fontWeight: s ? "700" : "400",
222
+ color: r ? "var(--selectDisabled, light-dark(#C4C5D1, #45464D))" : t ? "var(--primary, light-dark(#674DC7, #8163E1)" : "var(--title, light-dark(#1A1A1A,#FAFAFA))",
223
+ cursor: h ? "pointer" : "default",
224
+ "data-value": d,
225
+ fontWeight: t ? "700" : "400",
211
226
  gap: {
212
227
  checkbox: "10px",
213
228
  radio: "6px",
214
229
  default: "0"
215
- }[b],
230
+ }[o],
216
231
  h: "40px",
217
- onClick: t ? void 0 : (n) => x(i, n),
232
+ onClick: r ? void 0 : (l) => g(d, l),
218
233
  px: "10px",
219
234
  styleOrder: 1,
220
235
  transition: "background-color 0.1s ease-in-out",
221
- ...o,
236
+ ...x,
222
237
  children: [
223
- a && {
224
- checkbox: /* @__PURE__ */ r(
225
- h,
238
+ s && {
239
+ checkbox: /* @__PURE__ */ a(
240
+ m,
226
241
  {
227
- bg: t ? "var(--inputDisabledBackground, light-dark(#F0F0F3, #414244))" : s ? "var(--primary, light-dark(#674DC7, #8163E1)" : "var(--border, light-dark(#E4E4E4, #434343))",
242
+ bg: r ? "var(--inputDisabledBackground, light-dark(#F0F0F3, #414244))" : t ? "var(--primary, light-dark(#674DC7, #8163E1)" : "var(--border, light-dark(#E4E4E4, #434343))",
228
243
  borderRadius: "4px",
229
244
  boxSize: "18px",
230
245
  pos: "relative",
231
246
  transition: "background-color 0.1s ease-in-out",
232
- children: s && /* @__PURE__ */ r(
233
- E,
247
+ children: t && /* @__PURE__ */ a(
248
+ w,
234
249
  {
235
250
  className: k({
236
- color: t ? "var(--inputDisabledText, light-dark(#E5E5E5, #373737))" : "#FFF",
251
+ color: r ? "var(--inputDisabledText, light-dark(#E5E5E5, #373737))" : "#FFF",
237
252
  position: "absolute",
238
253
  top: "55%",
239
254
  left: "50%",
@@ -243,15 +258,15 @@ function M({
243
258
  )
244
259
  }
245
260
  ),
246
- radio: /* @__PURE__ */ r(w, { children: s && /* @__PURE__ */ r(
247
- h,
261
+ radio: /* @__PURE__ */ a(D, { children: t && /* @__PURE__ */ a(
262
+ m,
248
263
  {
249
264
  borderRadius: "4px",
250
265
  boxSize: "18px",
251
266
  pos: "relative",
252
267
  transition: "background-color 0.1s ease-in-out",
253
- children: /* @__PURE__ */ r(
254
- E,
268
+ children: /* @__PURE__ */ a(
269
+ w,
255
270
  {
256
271
  className: k({
257
272
  position: "absolute",
@@ -265,29 +280,28 @@ function M({
265
280
  }
266
281
  ) }),
267
282
  default: null
268
- }[b],
269
- c
283
+ }[o],
284
+ b
270
285
  ]
271
286
  }
272
287
  );
273
288
  }
274
- function Q({ ...t }) {
275
- return /* @__PURE__ */ r(
276
- h,
289
+ function K({ ...r }) {
290
+ return /* @__PURE__ */ a(
291
+ m,
277
292
  {
278
293
  bg: "var(--border, light-dark(#E4E4E4,#434343)",
279
294
  h: "1px",
280
295
  styleOrder: 1,
281
296
  w: "100%",
282
- ...t
297
+ ...r
283
298
  }
284
299
  );
285
300
  }
286
301
  export {
287
- G as Select,
288
- K as SelectContainer,
289
- Q as SelectDivider,
290
- M as SelectOption,
291
- J as SelectTrigger,
292
- y as useSelect
302
+ J as Select,
303
+ j as SelectContainer,
304
+ K as SelectDivider,
305
+ I as SelectOption,
306
+ $ as SelectTrigger
293
307
  };
@@ -0,0 +1,2 @@
1
+ "use client";
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),c=t.createContext(null),n=()=>{const e=t.useContext(c);if(!e)throw new Error("useSelect must be used within a Select");return e};exports.SelectContext=c;exports.useSelect=n;
@@ -0,0 +1,21 @@
1
+ import { Context } from 'react';
2
+ type SelectType = 'default' | 'radio' | 'checkbox';
3
+ type SelectValue<T extends SelectType> = T extends 'radio' ? string : string[];
4
+ export declare const SelectContext: Context<{
5
+ open: boolean;
6
+ setOpen: (open: boolean) => void;
7
+ value: SelectValue<SelectType>;
8
+ setValue: (value: string) => void;
9
+ type: SelectType;
10
+ ref: React.RefObject<HTMLDivElement | null>;
11
+ } | null>;
12
+ export declare const useSelect: () => {
13
+ open: boolean;
14
+ setOpen: (open: boolean) => void;
15
+ value: SelectValue<SelectType>;
16
+ setValue: (value: string) => void;
17
+ type: SelectType;
18
+ ref: React.RefObject<HTMLDivElement | null>;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=useSelect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSelect.d.ts","sourceRoot":"","sources":["../../src/contexts/useSelect.ts"],"names":[],"mappings":";AAGA,KAAK,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;AAClD,KAAK,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,SAAS,OAAO,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;AAE9E,eAAO,MAAM,aAAa;UAClB,OAAO;aACJ,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;WACzB,WAAW,CAAC,UAAU,CAAC;cACpB,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;UAC3B,UAAU;SACX,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;SAC9B,CAAA;AAEf,eAAO,MAAM,SAAS;UARd,OAAO;aACJ,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI;WACzB,WAAW,CAAC,UAAU,CAAC;cACpB,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;UAC3B,UAAU;SACX,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC;CAS5C,CAAA"}
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { createContext as t, useContext as o } from "react";
3
+ const n = t(null), c = () => {
4
+ const e = o(n);
5
+ if (!e)
6
+ throw new Error("useSelect must be used within a Select");
7
+ return e;
8
+ };
9
+ export {
10
+ n as SelectContext,
11
+ c as useSelect
12
+ };
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./components/Button/index.cjs"),n=require("./components/Input/index.cjs"),e=require("./components/Select/index.cjs"),t=require("./components/Stepper/index.cjs");exports.Button=r.Button;exports.Input=n.Input;exports.Select=e.Select;exports.SelectContainer=e.SelectContainer;exports.SelectDivider=e.SelectDivider;exports.SelectOption=e.SelectOption;exports.SelectTrigger=e.SelectTrigger;exports.useSelect=e.useSelect;exports.Stepper=t.Stepper;exports.StepperContainer=t.StepperContainer;exports.StepperDecreaseButton=t.StepperDecreaseButton;exports.StepperIncreaseButton=t.StepperIncreaseButton;exports.StepperInput=t.StepperInput;exports.useStepper=t.useStepper;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./components/Button/index.cjs"),p=require("./components/Input/index.cjs"),t=require("./components/Select/index.cjs"),e=require("./components/Stepper/index.cjs"),r=require("./contexts/useSelect.cjs");exports.Button=n.Button;exports.Input=p.Input;exports.Select=t.Select;exports.SelectContainer=t.SelectContainer;exports.SelectDivider=t.SelectDivider;exports.SelectOption=t.SelectOption;exports.SelectTrigger=t.SelectTrigger;exports.Stepper=e.Stepper;exports.StepperContainer=e.StepperContainer;exports.StepperDecreaseButton=e.StepperDecreaseButton;exports.StepperIncreaseButton=e.StepperIncreaseButton;exports.StepperInput=e.StepperInput;exports.useStepper=e.useStepper;exports.SelectContext=r.SelectContext;exports.useSelect=r.useSelect;
package/dist/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export { Button } from './components/Button';
2
2
  export { Input } from './components/Input';
3
- export { Select, SelectContainer, SelectDivider, SelectOption, SelectTrigger, useSelect, } from './components/Select';
3
+ export { Select, SelectContainer, SelectDivider, SelectOption, SelectTrigger, } from './components/Select';
4
4
  export { Stepper, StepperContainer, StepperDecreaseButton, StepperIncreaseButton, StepperInput, useStepper, } from './components/Stepper';
5
+ export { SelectContext, useSelect } from './contexts/useSelect';
6
+ export type { SelectType, SelectValue } from './types/select';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EACL,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,UAAU,GACX,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EACL,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,UAAU,GACX,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/D,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -1,20 +1,22 @@
1
1
  import { Button as r } from "./components/Button/index.js";
2
2
  import { Input as o } from "./components/Input/index.js";
3
- import { Select as n, SelectContainer as c, SelectDivider as u, SelectOption as i, SelectTrigger as l, useSelect as a } from "./components/Select/index.js";
4
- import { Stepper as m, StepperContainer as s, StepperDecreaseButton as x, StepperIncreaseButton as B, StepperInput as I, useStepper as g } from "./components/Stepper/index.js";
3
+ import { Select as n, SelectContainer as c, SelectDivider as l, SelectOption as u, SelectTrigger as i } from "./components/Select/index.js";
4
+ import { Stepper as f, StepperContainer as m, StepperDecreaseButton as a, StepperIncreaseButton as s, StepperInput as B, useStepper as C } from "./components/Stepper/index.js";
5
+ import { SelectContext as g, useSelect as D } from "./contexts/useSelect.js";
5
6
  export {
6
7
  r as Button,
7
8
  o as Input,
8
9
  n as Select,
9
10
  c as SelectContainer,
10
- u as SelectDivider,
11
- i as SelectOption,
12
- l as SelectTrigger,
13
- m as Stepper,
14
- s as StepperContainer,
15
- x as StepperDecreaseButton,
16
- B as StepperIncreaseButton,
17
- I as StepperInput,
18
- a as useSelect,
19
- g as useStepper
11
+ g as SelectContext,
12
+ l as SelectDivider,
13
+ u as SelectOption,
14
+ i as SelectTrigger,
15
+ f as Stepper,
16
+ m as StepperContainer,
17
+ a as StepperDecreaseButton,
18
+ s as StepperIncreaseButton,
19
+ B as StepperInput,
20
+ D as useSelect,
21
+ C as useStepper
20
22
  };
@@ -0,0 +1,3 @@
1
+ export type SelectType = 'default' | 'radio' | 'checkbox';
2
+ export type SelectValue<T extends SelectType> = T extends 'radio' ? string : string[];
3
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../src/types/select.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAA;AACzD,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,UAAU,IAAI,CAAC,SAAS,OAAO,GAC7D,MAAM,GACN,MAAM,EAAE,CAAA"}
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "css-in-js-framework",
17
17
  "react"
18
18
  ],
19
- "version": "0.1.8",
19
+ "version": "0.1.9",
20
20
  "type": "module",
21
21
  "publishConfig": {
22
22
  "access": "public"
@@ -41,18 +41,18 @@
41
41
  "@devup-ui/react": "1.0.15"
42
42
  },
43
43
  "devDependencies": {
44
- "@storybook/addon-docs": "^9.1.1",
45
- "@storybook/addon-onboarding": "^9.1.1",
46
- "@storybook/react-vite": "^9.1.1",
47
- "@types/react": "^19.1.9",
48
- "eslint-plugin-storybook": "^9.1.1",
44
+ "@storybook/addon-docs": "^9.1.2",
45
+ "@storybook/addon-onboarding": "^9.1.2",
46
+ "@storybook/react-vite": "^9.1.2",
47
+ "@types/react": "^19.1.10",
48
+ "eslint-plugin-storybook": "^9.1.2",
49
49
  "rollup-plugin-preserve-directives": "^0.4.0",
50
- "storybook": "^9.1.1",
50
+ "storybook": "^9.1.2",
51
51
  "typescript": "^5.9.2",
52
- "vite": "^7.1.1",
52
+ "vite": "^7.1.3",
53
53
  "vite-plugin-dts": "^4.5.4",
54
54
  "vitest": "^3.2.4",
55
- "@devup-ui/vite-plugin": "1.0.27"
55
+ "@devup-ui/vite-plugin": "1.0.29"
56
56
  },
57
57
  "peerDependencies": {
58
58
  "csstype": "*",
@@ -63,6 +63,7 @@
63
63
  "lint": "eslint",
64
64
  "build": "tsc && vite build",
65
65
  "storybook": "storybook dev -p 6006",
66
- "build-storybook": "storybook build"
66
+ "build-storybook": "storybook build",
67
+ "package": "pnpm pack --pack-destination \"../../dist\""
67
68
  }
68
69
  }