@devup-ui/components 0.1.8 → 0.1.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.
@@ -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"),v=require("react"),c=require("@devup-ui/react"),A=require("clsx"),S=require("../../contexts/useSelect.cjs"),j=require("../Button/index.cjs"),w=require("./IconCheck.cjs");function O({type:n="default",children:u,defaultValue:f,value:s,onChange:d,defaultOpen:g,open:b,onOpenChange:o,colors:e,typography:p,options:a,...m}){const i=v.useRef(null),[h,l]=v.useState(g??!1),[x,k]=v.useState(f??(n==="checkbox"?[]:""));v.useEffect(()=>{const r=y=>{i.current&&i.current.contains(y.target)||l(!1)};return document.addEventListener("click",r),()=>document.removeEventListener("click",r)},[h,l]);const F=r=>{o==null||o(r),l(r)},E=r=>{if(d==null||d(r),n!=="default"){if(n==="radio"){k(r);return}Array.isArray(x)&&x.includes(r)?k(x.filter(y=>y!==r)):k([...x,r])}};return t.jsx(S.SelectContext.Provider,{value:{open:b??h,setOpen:F,value:s??x,setValue:E,type:n,ref:i},children:t.jsx(c.Box,{ref:i,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,...m,children:a?t.jsxs(t.Fragment,{children:[t.jsx(B,{children:u}),t.jsx(D,{children:a==null?void 0:a.map(r=>v.createElement(C,{...r,key:"option-"+r.value},r.label??r.value))})]}):u})})}function B({className:n,children:u,asChild:f,...s}){const{open:d,setOpen:g}=S.useSelect(),b=()=>{g(!d)};if(f){const o=v.Children.only(u),e=o.type;return t.jsx(e,{"aria-expanded":d,"aria-label":"Select toggle",onClick:b,...o.props})}return t.jsx(j.Button,{"aria-expanded":d,"aria-label":"Select toggle",className:A(c.css({borderRadius:"8px",styleOrder:2}),n),onClick:b,...s,children:u})}function D({children:n,showConfirmButton:u,confirmButtonText:f="완료",x:s=0,y:d=0,...g}){const{open:b,setOpen:o,type:e,ref:p}=S.useSelect();return b?t.jsxs(c.VStack,{ref:a=>{if(!p.current||!a)return;const m=p.current,i=()=>{const{width:h,height:l,x,y:k,top:F,left:E}=m.getBoundingClientRect(),r=a.offsetHeight+F+window.scrollY+l+d>document.documentElement.scrollHeight,y=a.offsetWidth+E+window.scrollX+h+s>document.documentElement.scrollWidth;r?a.style.bottom=`${window.innerHeight-k+10}px`:a.style.top=`${k+l+10+d}px`,y?a.style.left=`${x-a.offsetWidth+m.offsetWidth+s}px`:a.style.left=`${x+s}px`};return i(),window.addEventListener("scroll",i,!0),window.addEventListener("resize",i),()=>{window.removeEventListener("scroll",i,!0),window.removeEventListener("resize",i)}},"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:[n,u&&e==="checkbox"&&t.jsx(c.Flex,{justifyContent:"end",w:"100%",children:t.jsx(j.Button,{"aria-label":"Select confirm button",className:c.css({textAlign:"end",bg:"var(--primary, light-dark(#674DC7, #8163E1))",borderRadius:"8px",w:"fit-content",px:"30px",py:"10px",color:"#FFF",typography:"buttonS"}),onClick:()=>o(!1),variant:"primary",children:f})})]}):null}function C({disabled:n,onClick:u,children:f,value:s,showCheck:d=!0,...g}){const{setOpen:b,setValue:o,value:e,type:p}=S.useSelect(),a=()=>{p!=="checkbox"&&b(!1)},m=(l,x)=>{if(u){u(l,x);return}typeof l=="string"&&o(l),a()},i={default:!1,radio:e===s,checkbox:Array.isArray(e)&&s&&e.includes(s)}[p],h=!n&&!(p==="radio"&&i);return t.jsxs(c.Flex,{_hover:h&&{bg:"var(--primaryBg, light-dark(#F4F3FA, #F4F3FA0D))"},alignItems:"center",borderRadius:"6px",color:n?"var(--selectDisabled, light-dark(#C4C5D1, #45464D))":i?"var(--primary, light-dark(#674DC7, #8163E1)":"var(--title, light-dark(#1A1A1A,#FAFAFA))",cursor:h?"pointer":"default","data-value":s,fontWeight:i?"700":"400",gap:{checkbox:"10px",radio:"6px",default:"0"}[p],h:"40px",onClick:n?void 0:l=>m(s,l),px:"10px",styleOrder:1,transition:"background-color 0.1s ease-in-out",...g,children:[d&&{checkbox:t.jsx(c.Box,{bg:n?"var(--inputDisabledBackground, light-dark(#F0F0F3, #414244))":i?"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:i&&t.jsx(w.IconCheck,{className:c.css({color:n?"var(--inputDisabledText, light-dark(#E5E5E5, #373737))":"#FFF",position:"absolute",top:"55%",left:"50%",transform:"translate(-50%, -50%)"})})}),radio:t.jsx(t.Fragment,{children:i&&t.jsx(c.Box,{borderRadius:"4px",boxSize:"18px",pos:"relative",transition:"background-color 0.1s ease-in-out",children:t.jsx(w.IconCheck,{className:c.css({position:"absolute",top:"55%",left:"50%",transform:"translate(-50%, -50%)",color:"inherit"})})})}),default:null}[p],f]})}function R({...n}){return t.jsx(c.Box,{bg:"var(--border, light-dark(#E4E4E4,#434343)",h:"1px",styleOrder:1,w:"100%",...n})}exports.Select=O;exports.SelectContainer=D;exports.SelectDivider=R;exports.SelectOption=C;exports.SelectTrigger=B;
@@ -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 w, Fragment as B } from "react/jsx-runtime";
3
+ import { useRef as R, useState as D, useEffect as z, createElement as L, Children as W } from "react";
4
+ import { Box as v, VStack as H, Flex as C, css as y } from "@devup-ui/react";
5
+ import N from "clsx";
6
+ import { SelectContext as T, useSelect as S } from "../../contexts/useSelect.js";
7
+ import { Button as O } from "../Button/index.js";
8
+ import { IconCheck as A } from "./IconCheck.js";
9
+ function J({
10
+ type: i = "default",
11
+ children: o,
12
+ defaultValue: b,
13
+ value: d,
14
+ onChange: l,
15
+ defaultOpen: m,
16
+ open: f,
17
+ onOpenChange: c,
23
18
  colors: e,
24
- typography: b,
25
- ...m
19
+ typography: u,
20
+ options: n,
21
+ ...h
26
22
  }) {
27
- const x = N(null), [s, f] = v(o ?? !1), [n, g] = v(
28
- c ?? (t === "checkbox" ? [] : "")
23
+ const r = R(null), [x, s] = D(m ?? !1), [p, g] = D(
24
+ b ?? (i === "checkbox" ? [] : "")
29
25
  );
30
- T(() => {
31
- const d = (F) => {
32
- x.current && x.current.contains(F.target) || f(!1);
26
+ z(() => {
27
+ const t = (k) => {
28
+ r.current && r.current.contains(k.target) || s(!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", t), () => document.removeEventListener("click", t);
31
+ }, [x, s]);
32
+ const F = (t) => {
33
+ c == null || c(t), s(t);
34
+ }, E = (t) => {
35
+ if (l == null || l(t), i !== "default") {
36
+ if (i === "radio") {
37
+ g(t);
42
38
  return;
43
39
  }
44
- Array.isArray(n) && n.includes(d) ? g(n.filter((F) => F !== d)) : g([...n, d]);
40
+ Array.isArray(p) && p.includes(t) ? g(p.filter((k) => k !== t)) : g([...p, t]);
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,
52
- setOpen: B,
53
- value: i ?? n,
54
- setValue: O,
55
- type: t
47
+ open: f ?? x,
48
+ setOpen: F,
49
+ value: d ?? p,
50
+ setValue: E,
51
+ type: i,
52
+ ref: r
56
53
  },
57
- children: /* @__PURE__ */ r(
58
- h,
54
+ children: /* @__PURE__ */ a(
55
+ v,
59
56
  {
60
- ref: x,
57
+ ref: r,
61
58
  display: "inline-block",
62
- pos: "relative",
59
+ h: "fit-content",
63
60
  selectors: {
64
61
  "&, & *": {
65
62
  boxSizing: "border-box"
@@ -77,86 +74,107 @@ 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: u,
78
+ ...h,
79
+ children: n ? /* @__PURE__ */ w(B, { children: [
80
+ /* @__PURE__ */ a($, { children: o }),
81
+ /* @__PURE__ */ a(j, { children: n == null ? void 0 : n.map((t) => /* @__PURE__ */ L(I, { ...t, key: "option-" + t.value }, t.label ?? t.value)) })
82
+ ] }) : o
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: i,
90
+ children: o,
91
+ asChild: b,
92
+ ...d
93
93
  }) {
94
- const { open: a, setOpen: o } = y(), p = () => {
95
- o(!a);
94
+ const { open: l, setOpen: m } = S(), f = () => {
95
+ m(!l);
96
96
  };
97
- if (c) {
98
- const u = I.only(l), e = u.type;
99
- return /* @__PURE__ */ r(
97
+ if (b) {
98
+ const c = W.only(o), e = c.type;
99
+ return /* @__PURE__ */ a(
100
100
  e,
101
101
  {
102
- "aria-expanded": a,
102
+ "aria-expanded": l,
103
103
  "aria-label": "Select toggle",
104
- onClick: p,
105
- ...u.props
104
+ onClick: f,
105
+ ...c.props
106
106
  }
107
107
  );
108
108
  }
109
- return /* @__PURE__ */ r(
110
- A,
109
+ return /* @__PURE__ */ a(
110
+ O,
111
111
  {
112
- "aria-expanded": a,
112
+ "aria-expanded": l,
113
113
  "aria-label": "Select toggle",
114
- className: z(
115
- k({
114
+ className: N(
115
+ y({
116
116
  borderRadius: "8px",
117
117
  styleOrder: 2
118
118
  }),
119
- t
119
+ i
120
120
  ),
121
- onClick: p,
122
- ...i,
123
- children: l
121
+ onClick: f,
122
+ ...d,
123
+ children: o
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: i,
129
+ showConfirmButton: o,
130
+ confirmButtonText: b = "완료",
131
+ x: d = 0,
132
+ y: l = 0,
133
+ ...m
132
134
  }) {
133
- const { open: a, setOpen: o, type: p } = y();
134
- return a ? /* @__PURE__ */ S(
135
- R,
135
+ const { open: f, setOpen: c, type: e, ref: u } = S();
136
+ return f ? /* @__PURE__ */ w(
137
+ H,
136
138
  {
139
+ ref: (n) => {
140
+ if (!u.current || !n) return;
141
+ const h = u.current, r = () => {
142
+ const {
143
+ width: x,
144
+ height: s,
145
+ x: p,
146
+ y: g,
147
+ top: F,
148
+ left: E
149
+ } = h.getBoundingClientRect(), t = n.offsetHeight + F + window.scrollY + s + l > document.documentElement.scrollHeight, k = n.offsetWidth + E + window.scrollX + x + d > document.documentElement.scrollWidth;
150
+ t ? n.style.bottom = `${window.innerHeight - g + 10}px` : n.style.top = `${g + s + 10 + l}px`, k ? n.style.left = `${p - n.offsetWidth + h.offsetWidth + d}px` : n.style.left = `${p + d}px`;
151
+ };
152
+ return r(), window.addEventListener("scroll", r, !0), window.addEventListener("resize", r), () => {
153
+ window.removeEventListener("scroll", r, !0), window.removeEventListener("resize", r);
154
+ };
155
+ },
137
156
  "aria-label": "Select container",
138
157
  bg: "var(--inputBg, light-dark(#FFF,#2E2E2E))",
139
158
  border: "1px solid var(--border, light-dark(#E4E4E4,#434343))",
140
159
  borderRadius: "8px",
141
160
  bottom: "-4px",
142
161
  boxShadow: "0 2px 2px 0 var(--base10, light-dark(#0000001A,#FFFFFF1A))",
162
+ boxSize: "fit-content",
143
163
  gap: "6px",
144
- h: "fit-content",
164
+ minW: "232px",
145
165
  p: "10px",
146
- pos: "absolute",
166
+ pos: "fixed",
147
167
  styleOrder: 1,
148
- transform: "translateY(100%)",
149
168
  userSelect: "none",
150
- w: "232px",
151
169
  zIndex: 1,
152
- ...i,
170
+ ...m,
153
171
  children: [
154
- t,
155
- l && p === "checkbox" && /* @__PURE__ */ r(D, { justifyContent: "end", w: "100%", children: /* @__PURE__ */ r(
156
- A,
172
+ i,
173
+ o && e === "checkbox" && /* @__PURE__ */ a(C, { justifyContent: "end", w: "100%", children: /* @__PURE__ */ a(
174
+ O,
157
175
  {
158
176
  "aria-label": "Select confirm button",
159
- className: k({
177
+ className: y({
160
178
  textAlign: "end",
161
179
  bg: "var(--primary, light-dark(#674DC7, #8163E1))",
162
180
  borderRadius: "8px",
@@ -166,74 +184,74 @@ function K({
166
184
  color: "#FFF",
167
185
  typography: "buttonS"
168
186
  }),
169
- onClick: () => o(!1),
187
+ onClick: () => c(!1),
170
188
  variant: "primary",
171
- children: c
189
+ children: b
172
190
  }
173
191
  ) })
174
192
  ]
175
193
  }
176
194
  ) : null;
177
195
  }
178
- function M({
179
- disabled: t,
180
- onClick: l,
181
- children: c,
182
- value: i,
183
- showCheck: a = !0,
184
- ...o
196
+ function I({
197
+ disabled: i,
198
+ onClick: o,
199
+ children: b,
200
+ value: d,
201
+ showCheck: l = !0,
202
+ ...m
185
203
  }) {
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);
204
+ const { setOpen: f, setValue: c, value: e, type: u } = S(), n = () => {
205
+ u !== "checkbox" && f(!1);
206
+ }, h = (s, p) => {
207
+ if (o) {
208
+ o(s, p);
191
209
  return;
192
210
  }
193
- typeof n == "string" && u(n), m();
194
- }, s = {
211
+ typeof s == "string" && c(s), n();
212
+ }, r = {
195
213
  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,
214
+ radio: e === d,
215
+ checkbox: Array.isArray(e) && d && e.includes(d)
216
+ }[u], x = !i && !(u === "radio" && r);
217
+ return /* @__PURE__ */ w(
218
+ C,
201
219
  {
202
- _hover: f && {
220
+ _hover: x && {
203
221
  bg: "var(--primaryBg, light-dark(#F4F3FA, #F4F3FA0D))"
204
222
  },
205
223
  alignItems: "center",
206
224
  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",
225
+ color: i ? "var(--selectDisabled, light-dark(#C4C5D1, #45464D))" : r ? "var(--primary, light-dark(#674DC7, #8163E1)" : "var(--title, light-dark(#1A1A1A,#FAFAFA))",
226
+ cursor: x ? "pointer" : "default",
227
+ "data-value": d,
228
+ fontWeight: r ? "700" : "400",
211
229
  gap: {
212
230
  checkbox: "10px",
213
231
  radio: "6px",
214
232
  default: "0"
215
- }[b],
233
+ }[u],
216
234
  h: "40px",
217
- onClick: t ? void 0 : (n) => x(i, n),
235
+ onClick: i ? void 0 : (s) => h(d, s),
218
236
  px: "10px",
219
237
  styleOrder: 1,
220
238
  transition: "background-color 0.1s ease-in-out",
221
- ...o,
239
+ ...m,
222
240
  children: [
223
- a && {
224
- checkbox: /* @__PURE__ */ r(
225
- h,
241
+ l && {
242
+ checkbox: /* @__PURE__ */ a(
243
+ v,
226
244
  {
227
- bg: t ? "var(--inputDisabledBackground, light-dark(#F0F0F3, #414244))" : s ? "var(--primary, light-dark(#674DC7, #8163E1)" : "var(--border, light-dark(#E4E4E4, #434343))",
245
+ bg: i ? "var(--inputDisabledBackground, light-dark(#F0F0F3, #414244))" : r ? "var(--primary, light-dark(#674DC7, #8163E1)" : "var(--border, light-dark(#E4E4E4, #434343))",
228
246
  borderRadius: "4px",
229
247
  boxSize: "18px",
230
248
  pos: "relative",
231
249
  transition: "background-color 0.1s ease-in-out",
232
- children: s && /* @__PURE__ */ r(
233
- E,
250
+ children: r && /* @__PURE__ */ a(
251
+ A,
234
252
  {
235
- className: k({
236
- color: t ? "var(--inputDisabledText, light-dark(#E5E5E5, #373737))" : "#FFF",
253
+ className: y({
254
+ color: i ? "var(--inputDisabledText, light-dark(#E5E5E5, #373737))" : "#FFF",
237
255
  position: "absolute",
238
256
  top: "55%",
239
257
  left: "50%",
@@ -243,17 +261,17 @@ function M({
243
261
  )
244
262
  }
245
263
  ),
246
- radio: /* @__PURE__ */ r(w, { children: s && /* @__PURE__ */ r(
247
- h,
264
+ radio: /* @__PURE__ */ a(B, { children: r && /* @__PURE__ */ a(
265
+ v,
248
266
  {
249
267
  borderRadius: "4px",
250
268
  boxSize: "18px",
251
269
  pos: "relative",
252
270
  transition: "background-color 0.1s ease-in-out",
253
- children: /* @__PURE__ */ r(
254
- E,
271
+ children: /* @__PURE__ */ a(
272
+ A,
255
273
  {
256
- className: k({
274
+ className: y({
257
275
  position: "absolute",
258
276
  top: "55%",
259
277
  left: "50%",
@@ -265,29 +283,28 @@ function M({
265
283
  }
266
284
  ) }),
267
285
  default: null
268
- }[b],
269
- c
286
+ }[u],
287
+ b
270
288
  ]
271
289
  }
272
290
  );
273
291
  }
274
- function Q({ ...t }) {
275
- return /* @__PURE__ */ r(
276
- h,
292
+ function K({ ...i }) {
293
+ return /* @__PURE__ */ a(
294
+ v,
277
295
  {
278
296
  bg: "var(--border, light-dark(#E4E4E4,#434343)",
279
297
  h: "1px",
280
298
  styleOrder: 1,
281
299
  w: "100%",
282
- ...t
300
+ ...i
283
301
  }
284
302
  );
285
303
  }
286
304
  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
305
+ J as Select,
306
+ j as SelectContainer,
307
+ K as SelectDivider,
308
+ I as SelectOption,
309
+ $ as SelectTrigger
293
310
  };
@@ -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.10",
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
  }