@_jinu/liquid-glass-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +141 -0
- package/dist/liquid-glass-ui.cjs +1 -0
- package/dist/liquid-glass-ui.css +1 -0
- package/dist/liquid-glass-ui.js +902 -0
- package/dist/vite.svg +1 -0
- package/package.json +84 -0
- package/src/themes/ey.css +29 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 jinu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# Liquid Glass UI
|
|
2
|
+
|
|
3
|
+
Apple Liquid Glass에서 영감받은 React UI 컴포넌트 라이브러리입니다.
|
|
4
|
+
Glassmorphism 효과(backdrop blur, 반투명 배경, 유리 광택, 글로우)를 React 컴포넌트로 제공합니다.
|
|
5
|
+
|
|
6
|
+
## Installation
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npm install liquid-glass-ui
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Setup
|
|
13
|
+
|
|
14
|
+
CSS 파일을 프로젝트 진입점에서 import하세요:
|
|
15
|
+
|
|
16
|
+
```tsx
|
|
17
|
+
import 'liquid-glass-ui/dist/style.css';
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Components
|
|
21
|
+
|
|
22
|
+
### Button
|
|
23
|
+
|
|
24
|
+
```tsx
|
|
25
|
+
import { Button } from 'liquid-glass-ui';
|
|
26
|
+
|
|
27
|
+
<Button variant="accent" size="md" glow>
|
|
28
|
+
Click me
|
|
29
|
+
</Button>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Props**: `variant` (solid / outline / ghost / accent), `size` (sm / md / lg), `shape` (rounded / pill), `loading`, `glow`, `intensity`, `color`
|
|
33
|
+
|
|
34
|
+
### Input
|
|
35
|
+
|
|
36
|
+
```tsx
|
|
37
|
+
import { Input } from 'liquid-glass-ui';
|
|
38
|
+
|
|
39
|
+
<Input label="Email" placeholder="you@example.com" variant="solid" />
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
**Props**: `variant` (solid / outline / ghost), `size` (sm / md / lg), `state` (default / error / success), `label`, `hint`, `errorMessage`
|
|
43
|
+
|
|
44
|
+
### Badge
|
|
45
|
+
|
|
46
|
+
```tsx
|
|
47
|
+
import { Badge } from 'liquid-glass-ui';
|
|
48
|
+
|
|
49
|
+
<Badge status="success" dot pulse>Active</Badge>
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Props**: `variant` (solid / outline / ghost / accent), `size` (sm / md / lg), `shape` (rounded / pill), `status` (default / info / success / warning / error), `dot`, `pulse`, `closable`, `onClose`, `interactive`
|
|
53
|
+
|
|
54
|
+
### Tabs
|
|
55
|
+
|
|
56
|
+
Compound Component 패턴으로 구성됩니다.
|
|
57
|
+
|
|
58
|
+
```tsx
|
|
59
|
+
import { Tabs, TabList, Tab, TabPanel } from 'liquid-glass-ui';
|
|
60
|
+
|
|
61
|
+
<Tabs defaultValue="tab1">
|
|
62
|
+
<TabList>
|
|
63
|
+
<Tab value="tab1">First</Tab>
|
|
64
|
+
<Tab value="tab2">Second</Tab>
|
|
65
|
+
</TabList>
|
|
66
|
+
<TabPanel value="tab1">First content</TabPanel>
|
|
67
|
+
<TabPanel value="tab2" minHeight={200}>Second content</TabPanel>
|
|
68
|
+
</Tabs>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**Tabs Props**: `value`, `defaultValue`, `onChange`, `variant` (solid / outline / pill), `size`, `intensity`
|
|
72
|
+
|
|
73
|
+
### Toggle
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import { Toggle } from 'liquid-glass-ui';
|
|
77
|
+
|
|
78
|
+
<Toggle label="Dark mode" size="md" color="139, 92, 246" />
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Props**: `checked`, `defaultChecked`, `onChange`, `size` (sm / md / lg), `label`, `labelPosition` (left / right), `color`, `disabled`
|
|
82
|
+
|
|
83
|
+
### Card
|
|
84
|
+
|
|
85
|
+
```tsx
|
|
86
|
+
import { Card, CardHeader, CardBody, CardFooter } from 'liquid-glass-ui';
|
|
87
|
+
|
|
88
|
+
<Card variant="solid" hoverable glow>
|
|
89
|
+
<CardHeader>Title</CardHeader>
|
|
90
|
+
<CardBody>Content goes here</CardBody>
|
|
91
|
+
<CardFooter align="right">
|
|
92
|
+
<Button variant="accent">Action</Button>
|
|
93
|
+
</CardFooter>
|
|
94
|
+
</Card>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Card Props**: `variant` (solid / outline / ghost), `size` (sm / md / lg), `hoverable`, `glow`, `intensity`, `color`
|
|
98
|
+
|
|
99
|
+
### Tooltip
|
|
100
|
+
|
|
101
|
+
```tsx
|
|
102
|
+
import { Tooltip } from 'liquid-glass-ui';
|
|
103
|
+
|
|
104
|
+
<Tooltip content="Help text" placement="top" arrow>
|
|
105
|
+
<button>Hover me</button>
|
|
106
|
+
</Tooltip>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Props**: `content`, `placement` (top / bottom / left / right), `trigger` (hover / click), `arrow`, `delay`, `closeDelay`, `disabled`, `intensity`
|
|
110
|
+
|
|
111
|
+
### Modal
|
|
112
|
+
|
|
113
|
+
```tsx
|
|
114
|
+
import { Modal, ModalHeader, ModalBody, ModalFooter } from 'liquid-glass-ui';
|
|
115
|
+
|
|
116
|
+
const [open, setOpen] = useState(false);
|
|
117
|
+
|
|
118
|
+
<Modal open={open} onClose={() => setOpen(false)} size="md">
|
|
119
|
+
<ModalHeader>Title</ModalHeader>
|
|
120
|
+
<ModalBody>Modal content</ModalBody>
|
|
121
|
+
<ModalFooter align="right">
|
|
122
|
+
<Button variant="accent">Confirm</Button>
|
|
123
|
+
</ModalFooter>
|
|
124
|
+
</Modal>
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Modal Props**: `open`, `onClose`, `size` (sm / md / lg), `closeOnOverlay`, `closeOnEsc`, `bgColor`, `intensity`
|
|
128
|
+
|
|
129
|
+
## Features
|
|
130
|
+
|
|
131
|
+
- React 18 / 19 지원
|
|
132
|
+
- TypeScript 완벽 지원 (타입 선언 포함)
|
|
133
|
+
- CSS Modules 기반 스타일링 (전역 스타일 오염 없음)
|
|
134
|
+
- 접근성 (ARIA roles, keyboard navigation, focus management)
|
|
135
|
+
- Controlled / Uncontrolled 패턴 지원
|
|
136
|
+
- Tree-shaking 지원
|
|
137
|
+
- forwardRef 지원
|
|
138
|
+
|
|
139
|
+
## License
|
|
140
|
+
|
|
141
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),ue=require("react-dom"),be="_btn_1sfqc_2",he="_glassShine_1sfqc_46",pe="_glassEdge_1sfqc_55",fe="_glow_1sfqc_165",me="_loading_1sfqc_179",ge="_spinner_1sfqc_181",xe="_spin_1sfqc_181",ve="_icon_1sfqc_193",ye="_label_1sfqc_198",B={btn:be,glassShine:he,glassEdge:pe,"size-sm":"_size-sm_1sfqc_64","size-md":"_size-md_1sfqc_70","size-lg":"_size-lg_1sfqc_76","shape-pill":"_shape-pill_1sfqc_84","shape-rounded":"_shape-rounded_1sfqc_85","variant-solid":"_variant-solid_1sfqc_88","variant-outline":"_variant-outline_1sfqc_107","variant-ghost":"_variant-ghost_1sfqc_124","variant-accent":"_variant-accent_1sfqc_146",glow:fe,loading:me,spinner:ge,spin:xe,icon:ve,label:ye},D=a.forwardRef(({variant:s="solid",size:o="md",shape:t="rounded",loading:n=!1,leftIcon:l,rightIcon:r,intensity:c=1,color:_,glow:d=!1,disabled:u,className:v,children:g,style:h,...p},m)=>{const f=u||n,x=`${Math.round(20*c)}px`,b=.08+.14*c,y={"--glass-blur":x,"--glass-bg-opacity":b,..._?{"--glass-accent-color":_}:{},...h},i=[B.btn,B[`variant-${s}`],B[`size-${o}`],B[`shape-${t}`],d?B.glow:"",n?B.loading:"",v??""].filter(Boolean).join(" ");return e.jsxs("button",{ref:m,className:i,disabled:f,style:y,...p,children:[e.jsx("span",{className:B.glassShine,"aria-hidden":"true"}),e.jsx("span",{className:B.glassEdge,"aria-hidden":"true"}),n&&e.jsx("span",{className:B.spinner,"aria-hidden":"true"}),!n&&l&&e.jsx("span",{className:B.icon,children:l}),g&&e.jsx("span",{className:B.label,children:g}),!n&&r&&e.jsx("span",{className:B.icon,children:r})]})});D.displayName="Button";const we="_wrapper_1lbwl_2",je="_disabled_1lbwl_10",$e="_label_1lbwl_17",Ne="_fieldWrap_1lbwl_25",ze="_input_1lbwl_32",Ce="_hasLeft_1lbwl_74",ke="_hasRight_1lbwl_75",Se="_icon_1lbwl_139",Be="_iconLeft_1lbwl_148",Me="_iconRight_1lbwl_149",Te="_iconBtn_1lbwl_151",Re="_hint_1lbwl_163",Ee="_errorMsg_1lbwl_168",Le="_successMsg_1lbwl_173",j={wrapper:we,disabled:je,label:$e,fieldWrap:Ne,input:ze,"size-sm":"_size-sm_1lbwl_54","size-md":"_size-md_1lbwl_60","size-lg":"_size-lg_1lbwl_66",hasLeft:Ce,hasRight:ke,"variant-solid":"_variant-solid_1lbwl_78","variant-outline":"_variant-outline_1lbwl_94","variant-ghost":"_variant-ghost_1lbwl_105","state-error":"_state-error_1lbwl_119","state-success":"_state-success_1lbwl_129",icon:Se,iconLeft:Be,iconRight:Me,iconBtn:Te,hint:Re,errorMsg:Ee,successMsg:Le},K=a.forwardRef(({variant:s="solid",size:o="md",state:t="default",label:n,hint:l,errorMessage:r,successMessage:c,leftIcon:_,rightIcon:d,numeric:u=!1,intensity:v=1,type:g="text",disabled:h,className:p,style:m,onChange:f,...x},b)=>{const[y,i]=a.useState(!1),w=g==="password",N=w?y?"text":"password":g,I={"--glass-blur":`${Math.round(20*v)}px`,...m},$=z=>{if(u){const q=z.target.value;if(q!==""&&!/^\d*\.?\d*$/.test(q)){z.target.value=q.replace(/[^\d.]/g,"");return}}f?.(z)},L=z=>{if(u){const q=["Backspace","Delete","Tab","Escape","Enter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End",".","Process"],ce=/^\d$/.test(z.key),de=q.includes(z.key),_e=z.ctrlKey||z.metaKey;!ce&&!de&&!_e&&z.preventDefault()}x.onKeyDown?.(z)},S=z=>{u&&(z.currentTarget.blur(),z.currentTarget.focus())},A=[j.wrapper,h?j.disabled:""].filter(Boolean).join(" "),re=[j.input,j[`variant-${s}`],j[`size-${o}`],t!=="default"?j[`state-${t}`]:"",_?j.hasLeft:"",d||w?j.hasRight:"",p??""].filter(Boolean).join(" "),ie=t==="error"&&r?e.jsx("span",{className:j.errorMsg,children:r}):t==="success"&&c?e.jsx("span",{className:j.successMsg,children:c}):l?e.jsx("span",{className:j.hint,children:l}):null;return e.jsxs("div",{className:A,style:I,children:[n&&e.jsx("label",{className:j.label,children:n}),e.jsxs("div",{className:j.fieldWrap,children:[_&&e.jsx("span",{className:`${j.icon} ${j.iconLeft}`,children:_}),e.jsx("input",{ref:b,type:N,inputMode:u?"decimal":void 0,disabled:h,className:re,onChange:$,onKeyDown:L,onCompositionStart:S,...x}),w&&e.jsx("button",{type:"button",className:`${j.icon} ${j.iconRight} ${j.iconBtn}`,onClick:()=>i(z=>!z),tabIndex:-1,"aria-label":y?"비밀번호 숨기기":"비밀번호 보기",children:y?e.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),e.jsx("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):e.jsxs("svg",{width:"15",height:"15",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),e.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}),!w&&d&&e.jsx("span",{className:`${j.icon} ${j.iconRight}`,children:d})]}),ie]})});K.displayName="Input";const Pe="_badge_1nxby_2",Ie="_interactive_1nxby_29",qe="_glassShine_1nxby_48",Ae="_glassEdge_1nxby_57",Ve="_glow_1nxby_195",De="_dot_1nxby_203",Ke="_pulse_1nxby_223",Fe="_dotPulse_1nxby_1",We="_icon_1nxby_240",He="_label_1nxby_247",Oe="_closeBtn_1nxby_254",C={badge:Pe,interactive:Ie,glassShine:qe,glassEdge:Ae,"size-sm":"_size-sm_1nxby_68","size-md":"_size-md_1nxby_76","size-lg":"_size-lg_1nxby_84","shape-pill":"_shape-pill_1nxby_93","shape-rounded":"_shape-rounded_1nxby_97","variant-solid":"_variant-solid_1nxby_102","variant-outline":"_variant-outline_1nxby_122","variant-ghost":"_variant-ghost_1nxby_140","variant-accent":"_variant-accent_1nxby_175",glow:Ve,dot:De,pulse:Ke,dotPulse:Fe,icon:We,label:He,closeBtn:Oe},Ue={default:"139, 92, 246",info:"59, 130, 246",success:"34, 197, 94",warning:"245, 158, 11",error:"239, 68, 68"},F=a.forwardRef(({variant:s="solid",size:o="md",shape:t="pill",status:n="default",leftIcon:l,rightIcon:r,dot:c=!1,pulse:_=!1,intensity:d=1,color:u,glow:v=!1,interactive:g=!1,closable:h=!1,onClose:p,className:m,children:f,style:x,onClick:b,...y},i)=>{const w=`${Math.round(16*d)}px`,N=.06+.12*d,E=u||Ue[n],I={"--glass-blur":w,"--glass-bg-opacity":N,"--badge-color":E,...x},$=g||!!b,L=[C.badge,C[`variant-${s}`],C[`size-${o}`],C[`shape-${t}`],v?C.glow:"",$?C.interactive:"",m??""].filter(Boolean).join(" ");return e.jsxs("span",{ref:i,className:L,style:I,role:$?"button":void 0,tabIndex:$?0:void 0,onClick:b,onKeyDown:$?S=>{(S.key==="Enter"||S.key===" ")&&(S.preventDefault(),b?.(S))}:void 0,...y,children:[e.jsx("span",{className:C.glassShine,"aria-hidden":"true"}),e.jsx("span",{className:C.glassEdge,"aria-hidden":"true"}),c&&e.jsx("span",{className:`${C.dot} ${_?C.pulse:""}`,"aria-hidden":"true"}),l&&e.jsx("span",{className:C.icon,children:l}),f&&e.jsx("span",{className:C.label,children:f}),r&&!h&&e.jsx("span",{className:C.icon,children:r}),h&&e.jsx("button",{type:"button",className:C.closeBtn,onClick:S=>{S.stopPropagation(),p?.(S)},tabIndex:-1,"aria-label":"닫기",children:e.jsxs("svg",{width:"10",height:"10",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})});F.displayName="Badge";const Ge="_tabs_1ccrt_2",Je="_tabList_1ccrt_9",Qe="_tab_1ccrt_2",Xe="_active_1ccrt_101",Ye="_icon_1ccrt_179",Ze="_label_1ccrt_186",es="_tabPanel_1ccrt_193",ss="_fadeIn_1ccrt_1",k={tabs:Ge,tabList:Je,"list-variant-solid":"_list-variant-solid_1ccrt_27","list-variant-outline":"_list-variant-outline_1ccrt_38","list-variant-pill":"_list-variant-pill_1ccrt_49","list-size-sm":"_list-size-sm_1ccrt_58","list-size-md":"_list-size-md_1ccrt_59","list-size-lg":"_list-size-lg_1ccrt_60",tab:Qe,active:Xe,"tab-size-sm":"_tab-size-sm_1ccrt_106","tab-size-md":"_tab-size-md_1ccrt_112","tab-size-lg":"_tab-size-lg_1ccrt_118","tab-variant-solid":"_tab-variant-solid_1ccrt_125","tab-variant-outline":"_tab-variant-outline_1ccrt_143","tab-variant-pill":"_tab-variant-pill_1ccrt_162",icon:Ye,label:Ze,tabPanel:es,fadeIn:ss},W=a.createContext(null);function V(){const s=a.useContext(W);if(!s)throw new Error("Tabs 컴포넌트 안에서 사용해야 합니다.");return s}const H=a.forwardRef(({defaultValue:s="",value:o,onValueChange:t,variant:n="solid",size:l="md",intensity:r=1,className:c,children:_,...d},u)=>{const[v,g]=a.useState(s),h=o!==void 0,p=h?o:v,m=a.useCallback(b=>{h||g(b),t?.(b)},[h,t]),f=a.useId(),x=a.useMemo(()=>({activeValue:p,setActiveValue:m,variant:n,size:l,intensity:r,idPrefix:f}),[p,m,n,l,r,f]);return e.jsx(W.Provider,{value:x,children:e.jsx("div",{ref:u,className:`${k.tabs} ${c??""}`,...d,children:_})})});H.displayName="Tabs";const O=a.forwardRef(({className:s,children:o,...t},n)=>{const{variant:l,size:r,intensity:c}=V(),d={"--glass-blur":`${Math.round(18*c)}px`,...t.style},u=[k.tabList,k[`list-variant-${l}`],k[`list-size-${r}`],s??""].filter(Boolean).join(" ");return e.jsx("div",{ref:n,role:"tablist",className:u,style:d,...t,children:o})});O.displayName="TabList";const U=a.forwardRef(({value:s,leftIcon:o,rightIcon:t,disabled:n,className:l,children:r,...c},_)=>{const{activeValue:d,setActiveValue:u,variant:v,size:g,idPrefix:h}=V(),p=d===s,m=()=>{n||u(s)},f=b=>{const y=b.currentTarget.parentElement;if(!y)return;const i=Array.from(y.querySelectorAll('[role="tab"]:not([disabled])')),w=i.indexOf(b.currentTarget);let N=-1;b.key==="ArrowRight"?N=(w+1)%i.length:b.key==="ArrowLeft"?N=(w-1+i.length)%i.length:b.key==="Home"?N=0:b.key==="End"&&(N=i.length-1),N>=0&&(b.preventDefault(),i[N].focus(),u(i[N].dataset.value))},x=[k.tab,k[`tab-variant-${v}`],k[`tab-size-${g}`],p?k.active:"",l??""].filter(Boolean).join(" ");return e.jsxs("button",{ref:_,role:"tab",type:"button",id:`${h}-tab-${s}`,"aria-controls":`${h}-panel-${s}`,"aria-selected":p,tabIndex:p?0:-1,"data-value":s,disabled:n,className:x,onClick:m,onKeyDown:f,...c,children:[o&&e.jsx("span",{className:k.icon,children:o}),r&&e.jsx("span",{className:k.label,children:r}),t&&e.jsx("span",{className:k.icon,children:t})]})});U.displayName="Tab";const G=a.forwardRef(({value:s,keepMounted:o=!1,minHeight:t,className:n,style:l,children:r,...c},_)=>{const{activeValue:d,idPrefix:u}=V(),v=d===s;if(!v&&!o)return null;const g={...t!==void 0?{minHeight:typeof t=="number"?`${t}px`:t}:{},...l};return e.jsx("div",{ref:_,role:"tabpanel",id:`${u}-panel-${s}`,"aria-labelledby":`${u}-tab-${s}`,hidden:!v,className:`${k.tabPanel} ${v?k.panelActive:""} ${n??""}`,style:g,tabIndex:0,...c,children:r})});G.displayName="TabPanel";const ts="_wrapper_wjadh_2",as="_disabled_wjadh_12",ns="_label_wjadh_19",os="_track_wjadh_28",ls="_checked_wjadh_56",rs="_glassShine_wjadh_85",is="_thumb_wjadh_94",cs="_thumbShine_wjadh_110",R={wrapper:ts,disabled:as,label:ns,track:os,checked:ls,"size-sm":"_size-sm_wjadh_66","size-md":"_size-md_wjadh_72","size-lg":"_size-lg_wjadh_78",glassShine:rs,thumb:is,thumbShine:cs},J=a.forwardRef(({checked:s,defaultChecked:o=!1,onChange:t,size:n="md",label:l,labelPosition:r="right",intensity:c=1,color:_,disabled:d,className:u,style:v,...g},h)=>{const[p,m]=a.useState(o),f=s!==void 0,x=f?s:p,b=a.useId(),y=a.useCallback(()=>{if(d)return;const L=!x;f||m(L),t?.(L)},[d,x,f,t]),i=`${Math.round(14*c)}px`,w=.06+.1*c,N={"--glass-blur":i,"--glass-bg-opacity":w,..._?{"--toggle-active-color":_}:{},...v},E=[R.wrapper,d?R.disabled:"",u??""].filter(Boolean).join(" "),I=[R.track,R[`size-${n}`],x?R.checked:""].filter(Boolean).join(" "),$=l?e.jsx("span",{id:b,className:R.label,children:l}):null;return e.jsxs("div",{className:E,style:N,children:[r==="left"&&$,e.jsxs("button",{ref:h,type:"button",role:"switch","aria-checked":x,"aria-labelledby":l?b:void 0,disabled:d,className:I,onClick:y,...g,children:[e.jsx("span",{className:R.glassShine,"aria-hidden":"true"}),e.jsx("span",{className:R.thumb,children:e.jsx("span",{className:R.thumbShine,"aria-hidden":"true"})})]}),r==="right"&&$]})});J.displayName="Toggle";const ds="_card_179ui_2",_s="_glassShine_179ui_17",us="_glassEdge_179ui_26",bs="_hoverable_179ui_72",hs="_glow_179ui_101",ps="_header_179ui_111",fs="_body_179ui_112",ms="_footer_179ui_113",gs="_headerCover_179ui_114",M={card:ds,glassShine:_s,glassEdge:us,"variant-solid":"_variant-solid_179ui_38","variant-outline":"_variant-outline_179ui_51","variant-ghost":"_variant-ghost_179ui_63",hoverable:bs,glow:hs,"size-sm":"_size-sm_179ui_111",header:ps,body:fs,footer:ms,headerCover:gs,"size-md":"_size-md_179ui_117","size-lg":"_size-lg_179ui_123","footer-align-left":"_footer-align-left_179ui_162","footer-align-center":"_footer-align-center_179ui_163","footer-align-right":"_footer-align-right_179ui_164","footer-align-between":"_footer-align-between_179ui_165"},xs=a.createContext({variant:"solid",size:"md"}),Q=a.forwardRef(({variant:s="solid",size:o="md",hoverable:t=!1,glow:n=!1,intensity:l=1,color:r,className:c,children:_,style:d,...u},v)=>{const g=`${Math.round(20*l)}px`,h=.04+.1*l,p={"--glass-blur":g,"--glass-bg-opacity":h,...r?{"--card-glow-color":r}:{},...d},m=[M.card,M[`variant-${s}`],M[`size-${o}`],t?M.hoverable:"",n?M.glow:"",c??""].filter(Boolean).join(" "),f=a.useMemo(()=>({variant:s,size:o}),[s,o]);return e.jsx(xs.Provider,{value:f,children:e.jsxs("div",{ref:v,className:m,style:p,...u,children:[s!=="ghost"&&e.jsxs(e.Fragment,{children:[e.jsx("span",{className:M.glassShine,"aria-hidden":"true"}),e.jsx("span",{className:M.glassEdge,"aria-hidden":"true"})]}),_]})})});Q.displayName="Card";const X=a.forwardRef(({cover:s=!1,className:o,children:t,...n},l)=>{const r=[M.header,s?M.headerCover:"",o??""].filter(Boolean).join(" ");return e.jsx("div",{ref:l,className:r,...n,children:t})});X.displayName="CardHeader";const Y=a.forwardRef(({className:s,children:o,...t},n)=>e.jsx("div",{ref:n,className:`${M.body} ${s??""}`,...t,children:o}));Y.displayName="CardBody";const Z=a.forwardRef(({align:s="right",className:o,children:t,...n},l)=>{const r=[M.footer,M[`footer-align-${s}`],o??""].filter(Boolean).join(" ");return e.jsx("div",{ref:l,className:r,...n,children:t})});Z.displayName="CardFooter";const vs="_wrapper_xai1o_2",ys="_tooltip_xai1o_8",ws="_visible_xai1o_33",js="_glassShine_xai1o_39",$s="_content_xai1o_48",Ns="_arrow_xai1o_58",P={wrapper:vs,tooltip:ys,visible:ws,glassShine:js,content:$s,arrow:Ns,"placement-top":"_placement-top_xai1o_73","placement-bottom":"_placement-bottom_xai1o_92","placement-left":"_placement-left_xai1o_111","placement-right":"_placement-right_xai1o_130"},ee=({content:s,placement:o="top",trigger:t="hover",arrow:n=!0,delay:l=200,closeDelay:r=100,open:c,onOpenChange:_,disabled:d=!1,intensity:u=1,children:v})=>{const[g,h]=a.useState(!1),p=c!==void 0,m=p?c:g,f=a.useRef(null),x=a.useRef(null),b=a.useId(),y=a.useCallback(()=>{f.current&&(clearTimeout(f.current),f.current=null),x.current&&(clearTimeout(x.current),x.current=null)},[]),i=a.useCallback(()=>{d||(y(),f.current=setTimeout(()=>{p||h(!0),_?.(!0)},l))},[d,y,l,p,_]),w=a.useCallback(()=>{y(),x.current=setTimeout(()=>{p||h(!1),_?.(!1)},r)},[y,r,p,_]),N=a.useCallback(()=>{m?w():i()},[m,i,w]),E=a.useRef(null);a.useEffect(()=>{if(t!=="click"||!m)return;const S=A=>{E.current&&!E.current.contains(A.target)&&w()};return document.addEventListener("mousedown",S),()=>document.removeEventListener("mousedown",S)},[t,m,w]),a.useEffect(()=>y,[y]);const I=`${Math.round(20*u)}px`,$={"aria-describedby":m?b:void 0};t==="hover"?($.onMouseEnter=i,$.onMouseLeave=w,$.onFocus=i,$.onBlur=w):$.onClick=N;const L=[P.tooltip,P[`placement-${o}`],n?P.withArrow:"",m?P.visible:""].filter(Boolean).join(" ");return e.jsxs("div",{ref:E,className:P.wrapper,...t==="hover"?{onMouseEnter:i,onMouseLeave:w}:{},children:[a.cloneElement(v,$),e.jsxs("div",{id:b,role:"tooltip",className:L,style:{"--glass-blur":I},children:[e.jsx("span",{className:P.glassShine,"aria-hidden":"true"}),n&&e.jsx("span",{className:P.arrow,"aria-hidden":"true"}),e.jsx("span",{className:P.content,children:s})]})]})};ee.displayName="Tooltip";const zs="_overlay_1plz5_2",Cs="_overlayIn_1plz5_1",ks="_modal_1plz5_24",Ss="_modalIn_1plz5_1",Bs="_glassShine_1plz5_61",Ms="_glassEdge_1plz5_70",Ts="_header_1plz5_82",Rs="_headerContent_1plz5_92",Es="_closeBtn_1plz5_98",Ls="_body_1plz5_126",Ps="_footer_1plz5_133",T={overlay:zs,overlayIn:Cs,modal:ks,modalIn:Ss,"size-sm":"_size-sm_1plz5_56","size-md":"_size-md_1plz5_57","size-lg":"_size-lg_1plz5_58",glassShine:Bs,glassEdge:Ms,header:Ts,headerContent:Rs,closeBtn:Es,body:Ls,footer:Ps,"footer-align-left":"_footer-align-left_1plz5_142","footer-align-center":"_footer-align-center_1plz5_143","footer-align-right":"_footer-align-right_1plz5_144"},se=({open:s,onClose:o,size:t="md",closeOnOverlay:n=!0,closeOnEsc:l=!0,intensity:r=1,bgColor:c,portalTarget:_,className:d,style:u,children:v})=>{const g=a.useRef(null),h=a.useRef(null),p=a.useId();a.useEffect(()=>{if(!s||!l)return;const i=w=>{w.key==="Escape"&&o()};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[s,l,o]),a.useEffect(()=>{if(!s)return;const i=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=i}},[s]),a.useEffect(()=>{if(!s||!h.current)return;const i=document.activeElement;return h.current.focus(),()=>{i?.focus()}},[s]);const m=a.useCallback(i=>{n&&i.target===g.current&&o()},[n,o]),f=`${Math.round(24*r)}px`,x=`${Math.round(6*r)}px`,b={"--modal-blur":f,"--overlay-blur":x,...c?{"--modal-bg":c}:{},...u};if(!s)return null;const y=e.jsx("div",{ref:g,className:`${T.overlay} ${s?T.open:""}`,onClick:m,"aria-hidden":!s,children:e.jsxs("div",{ref:h,role:"dialog","aria-modal":"true","aria-labelledby":p,tabIndex:-1,className:`${T.modal} ${T[`size-${t}`]} ${d??""}`,style:b,children:[e.jsx("span",{className:T.glassShine,"aria-hidden":"true"}),e.jsx("span",{className:T.glassEdge,"aria-hidden":"true"}),e.jsx(te.Provider,{value:{titleId:p,onClose:o},children:v})]})});return ue.createPortal(y,_||document.body)};se.displayName="Modal";const te=a.createContext({titleId:"",onClose:()=>{}}),Is=()=>a.useContext(te),ae=a.forwardRef(({showClose:s=!0,className:o,children:t,...n},l)=>{const{titleId:r,onClose:c}=Is();return e.jsxs("div",{ref:l,className:`${T.header} ${o??""}`,...n,children:[e.jsx("div",{id:r,className:T.headerContent,children:t}),s&&e.jsx("button",{type:"button",className:T.closeBtn,onClick:c,"aria-label":"닫기",children:e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})});ae.displayName="ModalHeader";const ne=a.forwardRef(({className:s,children:o,...t},n)=>e.jsx("div",{ref:n,className:`${T.body} ${s??""}`,...t,children:o}));ne.displayName="ModalBody";const oe=a.forwardRef(({align:s="right",className:o,children:t,...n},l)=>{const r=[T.footer,T[`footer-align-${s}`],o??""].filter(Boolean).join(" ");return e.jsx("div",{ref:l,className:r,...n,children:t})});oe.displayName="ModalFooter";const le=({theme:s,children:o,style:t,...n})=>e.jsx("div",{"data-theme":s==="default"?void 0:s,style:{display:"contents",...t},...n,children:o});le.displayName="ThemeProvider";exports.Badge=F;exports.Button=D;exports.Card=Q;exports.CardBody=Y;exports.CardFooter=Z;exports.CardHeader=X;exports.Input=K;exports.Modal=se;exports.ModalBody=ne;exports.ModalFooter=oe;exports.ModalHeader=ae;exports.Tab=U;exports.TabList=O;exports.TabPanel=G;exports.Tabs=H;exports.ThemeProvider=le;exports.Toggle=J;exports.Tooltip=ee;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
._btn_1sfqc_2{--glass-blur: 20px;--glass-bg-opacity: .14;--glass-accent-color: 139, 92, 246;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:500;border:none;cursor:pointer;position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease,background .2s ease,opacity .2s ease,border-color .2s ease;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));white-space:nowrap;-webkit-user-select:none;user-select:none;text-decoration:none;outline:none}._btn_1sfqc_2:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}._btn_1sfqc_2:hover{transform:translateY(-2px)}._btn_1sfqc_2:active{transform:translateY(0) scale(.97)}._btn_1sfqc_2:disabled{opacity:.35;cursor:not-allowed;transform:none!important;pointer-events:none}._glassShine_1sfqc_46{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.18) 0%,transparent 60%);pointer-events:none;border-radius:inherit;transition:opacity .25s ease}._glassEdge_1sfqc_55{position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);pointer-events:none}._size-sm_1sfqc_64{height:32px;padding:0 14px;font-size:13px;border-radius:10px}._size-md_1sfqc_70{height:42px;padding:0 20px;font-size:14.5px;border-radius:14px}._size-lg_1sfqc_76{height:54px;padding:0 28px;font-size:16px;border-radius:18px}._shape-pill_1sfqc_84{border-radius:9999px!important}._variant-solid_1sfqc_88{background:rgba(255,255,255,var(--glass-bg-opacity));border:1px solid rgba(255,255,255,.28);color:#ffffffeb;box-shadow:0 4px 16px #0003,0 1px 4px #00000026,inset 0 1px #ffffff1f}._variant-solid_1sfqc_88:hover:not(:disabled){background:#ffffff38;border-color:#fff6;box-shadow:0 8px 28px #00000040,0 2px 8px #00000026,inset 0 1px #fff3}._variant-outline_1sfqc_107{background:#ffffff0a;border:1.5px solid rgba(255,255,255,.35);color:#ffffffd9;box-shadow:0 2px 12px #0000001f,inset 0 1px #ffffff14}._variant-outline_1sfqc_107:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff8c;box-shadow:0 6px 20px #0000002e,inset 0 1px #ffffff26}._variant-ghost_1sfqc_124{background:transparent;border:1px solid transparent;color:#ffffffb3;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}._variant-ghost_1sfqc_124 ._glassShine_1sfqc_46,._variant-ghost_1sfqc_124 ._glassEdge_1sfqc_55{opacity:0}._variant-ghost_1sfqc_124:hover:not(:disabled){background:#ffffff1a;border-color:#fff3;color:#ffffffeb;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:0 4px 16px #00000026}._variant-ghost_1sfqc_124:hover ._glassShine_1sfqc_46,._variant-ghost_1sfqc_124:hover ._glassEdge_1sfqc_55{opacity:1}._variant-accent_1sfqc_146{background:rgba(var(--glass-accent-color),.3);border:1px solid rgba(var(--glass-accent-color),.45);color:#fffffff2;box-shadow:0 4px 20px rgba(var(--glass-accent-color),.25),0 1px 4px #00000026,inset 0 1px #ffffff26}._variant-accent_1sfqc_146:hover:not(:disabled){background:rgba(var(--glass-accent-color),.45);border-color:rgba(var(--glass-accent-color),.65);box-shadow:0 8px 32px rgba(var(--glass-accent-color),.35),0 2px 8px #0003,inset 0 1px #fff3}._glow_1sfqc_165:hover:not(:disabled){box-shadow:0 0 20px #ffffff26,0 0 40px #ffffff14,0 8px 28px #00000040}._variant-accent_1sfqc_146._glow_1sfqc_165:hover:not(:disabled){box-shadow:0 0 20px rgba(var(--glass-accent-color),.4),0 0 40px rgba(var(--glass-accent-color),.2),0 8px 32px rgba(var(--glass-accent-color),.3)}._loading_1sfqc_179{pointer-events:none;opacity:.75}._spinner_1sfqc_181{width:14px;height:14px;border:2px solid rgba(255,255,255,.25);border-top-color:#ffffffe6;border-radius:50%;animation:_spin_1sfqc_181 .7s linear infinite;flex-shrink:0}@keyframes _spin_1sfqc_181{to{transform:rotate(360deg)}}._icon_1sfqc_193{display:inline-flex;align-items:center;flex-shrink:0}._label_1sfqc_198{display:inline-flex;align-items:center}@media(max-width:480px){._size-lg_1sfqc_76{height:48px;padding:0 22px;font-size:15px}}._wrapper_1lbwl_2{--glass-blur: 20px;display:flex;flex-direction:column;gap:6px;width:100%}._wrapper_1lbwl_2._disabled_1lbwl_10{opacity:.35;cursor:not-allowed;pointer-events:none}._label_1lbwl_17{font-size:13px;font-weight:500;color:#fff9;padding-left:2px}._fieldWrap_1lbwl_25{position:relative;display:flex;align-items:center}._input_1lbwl_32{width:100%;font-family:inherit;font-weight:400;color:#ffffffeb;background:transparent;border:none;outline:none;caret-color:#a78bfa;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}._input_1lbwl_32::placeholder{color:#ffffff47}._size-sm_1lbwl_54{height:36px;padding:0 14px;font-size:13px;border-radius:10px}._size-md_1lbwl_60{height:44px;padding:0 16px;font-size:14.5px;border-radius:14px}._size-lg_1lbwl_66{height:54px;padding:0 20px;font-size:16px;border-radius:18px}._hasLeft_1lbwl_74{padding-left:40px!important}._hasRight_1lbwl_75{padding-right:40px!important}._variant-solid_1lbwl_78{background:#ffffff1a;border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 1px #ffffff0f,0 2px 8px #00000026}._variant-solid_1lbwl_78:focus{background:#ffffff24;border-color:#a78bfa99;box-shadow:inset 0 1px #ffffff14,0 0 0 3px #8b5cf626}._variant-outline_1lbwl_94{background:#ffffff08;border:1.5px solid rgba(255,255,255,.25)}._variant-outline_1lbwl_94:focus{background:#ffffff12;border-color:#a78bfab3;box-shadow:0 0 0 3px #8b5cf626}._variant-ghost_1lbwl_105{background:transparent;border:1px solid transparent;border-bottom:1px solid rgba(255,255,255,.2);border-radius:0!important;-webkit-backdrop-filter:none;backdrop-filter:none}._variant-ghost_1lbwl_105:focus{border-bottom-color:#a78bfacc;box-shadow:0 1px #8b5cf666}._state-error_1lbwl_119{border-color:#f8717199!important;box-shadow:0 0 0 3px #ef444426!important}._state-error_1lbwl_119:focus{border-color:#f87171cc!important;box-shadow:0 0 0 3px #ef444433!important}._state-success_1lbwl_129{border-color:#4ade8099!important;box-shadow:0 0 0 3px #22c55e26!important}._state-success_1lbwl_129:focus{border-color:#4ade80cc!important;box-shadow:0 0 0 3px #22c55e33!important}._icon_1lbwl_139{position:absolute;display:flex;align-items:center;justify-content:center;color:#ffffff59;pointer-events:none;transition:color .2s ease}._iconLeft_1lbwl_148{left:12px}._iconRight_1lbwl_149{right:12px}._iconBtn_1lbwl_151{background:none;border:none;cursor:pointer;pointer-events:all;padding:0;color:#ffffff59;transition:color .2s ease}._iconBtn_1lbwl_151:hover{color:#ffffffb3}._hint_1lbwl_163{font-size:12px;color:#ffffff59;padding-left:2px}._errorMsg_1lbwl_168{font-size:12px;color:#f87171e6;padding-left:2px}._successMsg_1lbwl_173{font-size:12px;color:#4ade80e6;padding-left:2px}@media(max-width:480px){._size-lg_1lbwl_66{height:48px;padding:0 16px;font-size:15px}}._badge_1nxby_2{--glass-blur: 16px;--glass-bg-opacity: .12;--badge-color: 139, 92, 246;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-weight:500;border:none;position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;user-select:none;vertical-align:middle;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background .2s ease,border-color .2s ease;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur))}._interactive_1nxby_29{cursor:pointer;outline:none}._interactive_1nxby_29:hover{transform:translateY(-1px)}._interactive_1nxby_29:active{transform:translateY(0) scale(.96)}._interactive_1nxby_29:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}._glassShine_1nxby_48{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.15) 0%,transparent 60%);pointer-events:none;border-radius:inherit;transition:opacity .2s ease}._glassEdge_1nxby_57{position:absolute;top:0;left:15%;right:15%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);pointer-events:none}._size-sm_1nxby_68{height:22px;padding:0 8px;font-size:11px;border-radius:6px;gap:4px}._size-md_1nxby_76{height:28px;padding:0 12px;font-size:12.5px;border-radius:8px;gap:5px}._size-lg_1nxby_84{height:34px;padding:0 16px;font-size:14px;border-radius:10px;gap:6px}._shape-pill_1nxby_93{border-radius:9999px!important}._variant-solid_1nxby_102{background:rgba(var(--badge-color),var(--glass-bg-opacity));border:1px solid rgba(var(--badge-color),.25);color:#ffffffe6;box-shadow:0 2px 8px #00000026,0 1px 2px #0000001a,inset 0 1px #ffffff1a}._variant-solid_1nxby_102._interactive_1nxby_29:hover{background:rgba(var(--badge-color),.25);border-color:rgba(var(--badge-color),.4);box-shadow:0 4px 16px rgba(var(--badge-color),.2),0 2px 4px #0000001f,inset 0 1px #ffffff26}._variant-outline_1nxby_122{background:rgba(var(--badge-color),.04);border:1.5px solid rgba(var(--badge-color),.35);color:#ffffffd9;box-shadow:0 1px 4px #00000014,inset 0 1px #ffffff0d}._variant-outline_1nxby_122._interactive_1nxby_29:hover{background:rgba(var(--badge-color),.12);border-color:rgba(var(--badge-color),.55);box-shadow:0 4px 12px rgba(var(--badge-color),.15),inset 0 1px #ffffff1a}._variant-ghost_1nxby_140{background:transparent;border:1px solid transparent;color:#ffffffa6;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}._variant-ghost_1nxby_140 ._glassShine_1nxby_48,._variant-ghost_1nxby_140 ._glassEdge_1nxby_57{opacity:0}._variant-ghost_1nxby_140._interactive_1nxby_29:hover{background:rgba(var(--badge-color),.1);border-color:rgba(var(--badge-color),.2);color:#ffffffe6;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:0 2px 8px #0000001a}._variant-ghost_1nxby_140._interactive_1nxby_29:hover ._glassShine_1nxby_48,._variant-ghost_1nxby_140._interactive_1nxby_29:hover ._glassEdge_1nxby_57{opacity:1}._variant-accent_1nxby_175{background:rgba(var(--badge-color),.3);border:1px solid rgba(var(--badge-color),.45);color:#fffffff2;box-shadow:0 2px 10px rgba(var(--badge-color),.2),0 1px 2px #0000001a,inset 0 1px #ffffff1f}._variant-accent_1nxby_175._interactive_1nxby_29:hover{background:rgba(var(--badge-color),.42);border-color:rgba(var(--badge-color),.65);box-shadow:0 4px 20px rgba(var(--badge-color),.3),0 2px 4px #00000026,inset 0 1px #ffffff2e}._glow_1nxby_195._interactive_1nxby_29:hover{box-shadow:0 0 14px rgba(var(--badge-color),.35),0 0 28px rgba(var(--badge-color),.15),0 4px 16px #0003}._dot_1nxby_203{width:6px;height:6px;border-radius:50%;background:rgb(var(--badge-color));flex-shrink:0;box-shadow:0 0 4px rgba(var(--badge-color),.6)}._size-sm_1nxby_68 ._dot_1nxby_203{width:5px;height:5px}._size-lg_1nxby_84 ._dot_1nxby_203{width:7px;height:7px}._pulse_1nxby_223{animation:_dotPulse_1nxby_1 1.8s ease-in-out infinite}@keyframes _dotPulse_1nxby_1{0%,to{opacity:1;box-shadow:0 0 4px rgba(var(--badge-color),.6)}50%{opacity:.5;box-shadow:0 0 8px rgba(var(--badge-color),.9)}}._icon_1nxby_240{display:inline-flex;align-items:center;flex-shrink:0;line-height:0}._label_1nxby_247{display:inline-flex;align-items:center;line-height:1}._closeBtn_1nxby_254{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;padding:0;margin-left:2px;color:#fff6;border-radius:50%;width:14px;height:14px;flex-shrink:0;transition:color .15s ease,background .15s ease}._closeBtn_1nxby_254:hover{color:#ffffffd9;background:#ffffff1f}._size-sm_1nxby_68 ._closeBtn_1nxby_254{width:12px;height:12px;margin-left:1px}._size-lg_1nxby_84 ._closeBtn_1nxby_254{width:16px;height:16px;margin-left:3px}@media(max-width:480px){._size-lg_1nxby_84{height:30px;padding:0 14px;font-size:13px}}._tabs_1ccrt_2{display:flex;flex-direction:column;width:100%}._tabList_1ccrt_9{--glass-blur: 18px;display:flex;align-items:center;gap:2px;position:relative;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));overflow-x:auto;scrollbar-width:none}._tabList_1ccrt_9::-webkit-scrollbar{display:none}._list-variant-solid_1ccrt_27{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:4px;box-shadow:0 2px 12px #00000026,inset 0 1px #ffffff0f}._list-variant-outline_1ccrt_38{background:transparent;border-bottom:1px solid rgba(255,255,255,.12);border-radius:0;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none;gap:0}._list-variant-pill_1ccrt_49{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:9999px;padding:4px;box-shadow:0 2px 8px #0000001a}._list-size-sm_1ccrt_58{gap:1px}._list-size-md_1ccrt_59{gap:2px}._list-size-lg_1ccrt_60{gap:4px}._list-variant-outline_1ccrt_38._list-size-sm_1ccrt_58,._list-variant-outline_1ccrt_38._list-size-md_1ccrt_59,._list-variant-outline_1ccrt_38._list-size-lg_1ccrt_60{gap:0}._tab_1ccrt_2{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:inherit;font-weight:500;border:none;background:transparent;color:#ffffff80;cursor:pointer;position:relative;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:none;flex-shrink:0;transition:color .2s ease,background .2s ease,box-shadow .2s ease,border-color .2s ease}._tab_1ccrt_2:focus-visible{outline:2px solid rgba(255,255,255,.4);outline-offset:-2px}._tab_1ccrt_2:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}._tab_1ccrt_2:hover:not(:disabled):not(._active_1ccrt_101){color:#ffffffbf}._tab-size-sm_1ccrt_106{height:30px;padding:0 12px;font-size:12.5px}._tab-size-md_1ccrt_112{height:36px;padding:0 16px;font-size:13.5px}._tab-size-lg_1ccrt_118{height:44px;padding:0 22px;font-size:15px}._tab-variant-solid_1ccrt_125{border-radius:12px}._tab-variant-solid_1ccrt_125:hover:not(:disabled):not(._active_1ccrt_101){background:#ffffff0f}._tab-variant-solid_1ccrt_125._active_1ccrt_101{background:#ffffff24;color:#fffffff2;box-shadow:0 2px 8px #0000002e,0 1px 2px #0000001f,inset 0 1px #ffffff1a}._tab-variant-outline_1ccrt_143{border-radius:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding-left:16px;padding-right:16px}._tab-variant-outline_1ccrt_143:hover:not(:disabled):not(._active_1ccrt_101){border-bottom-color:#fff3}._tab-variant-outline_1ccrt_143._active_1ccrt_101{color:#fffffff2;border-bottom-color:#a78bfacc;box-shadow:0 1px #a78bfa66}._tab-variant-pill_1ccrt_162{border-radius:9999px}._tab-variant-pill_1ccrt_162:hover:not(:disabled):not(._active_1ccrt_101){background:#ffffff0f}._tab-variant-pill_1ccrt_162._active_1ccrt_101{background:#ffffff29;color:#fffffff2;box-shadow:0 2px 8px #00000026,inset 0 1px #ffffff1a}._icon_1ccrt_179{display:inline-flex;align-items:center;flex-shrink:0;line-height:0}._label_1ccrt_186{display:inline-flex;align-items:center;line-height:1}._tabPanel_1ccrt_193{outline:none;animation:_fadeIn_1ccrt_1 .2s ease}._tabPanel_1ccrt_193:focus-visible{outline:2px solid rgba(255,255,255,.3);outline-offset:2px;border-radius:8px}@keyframes _fadeIn_1ccrt_1{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}._list-variant-solid_1ccrt_27 ._tab-size-sm_1ccrt_106{border-radius:8px}._list-variant-solid_1ccrt_27 ._tab-size-md_1ccrt_112{border-radius:12px}._list-variant-solid_1ccrt_27 ._tab-size-lg_1ccrt_118{border-radius:14px}@media(max-width:480px){._tab-size-lg_1ccrt_118{height:40px;padding:0 18px;font-size:14px}}._wrapper_wjadh_2{--glass-blur: 14px;--glass-bg-opacity: .1;--toggle-active-color: 139, 92, 246;display:inline-flex;align-items:center;gap:10px}._wrapper_wjadh_2._disabled_wjadh_12{opacity:.35;cursor:not-allowed;pointer-events:none}._label_wjadh_19{font-size:14px;font-weight:500;color:#ffffffb3;-webkit-user-select:none;user-select:none;line-height:1}._track_wjadh_28{position:relative;display:inline-flex;align-items:center;padding:0;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,var(--glass-bg-opacity));cursor:pointer;outline:none;overflow:hidden;flex-shrink:0;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));transition:background .3s ease,border-color .3s ease,box-shadow .3s ease;box-shadow:0 2px 8px #00000026,inset 0 1px #ffffff0f}._track_wjadh_28:focus-visible{outline:2px solid rgba(255,255,255,.5);outline-offset:2px}._track_wjadh_28._checked_wjadh_56{background:rgba(var(--toggle-active-color),.35);border-color:rgba(var(--toggle-active-color),.5);box-shadow:0 2px 12px rgba(var(--toggle-active-color),.25),0 1px 4px #0000001f,inset 0 1px #ffffff1a}._size-sm_wjadh_66{width:36px;height:20px;border-radius:10px}._size-md_wjadh_72{width:44px;height:24px;border-radius:12px}._size-lg_wjadh_78{width:56px;height:30px;border-radius:15px}._glassShine_wjadh_85{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.12) 0%,transparent 60%);pointer-events:none;border-radius:inherit}._thumb_wjadh_94{position:relative;background:#ffffffd9;border-radius:50%;box-shadow:0 1px 4px #00000040,0 0 1px #00000026;transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s ease,box-shadow .2s ease;overflow:hidden;flex-shrink:0}._thumbShine_wjadh_110{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.6) 0%,transparent 50%);border-radius:inherit;pointer-events:none}._size-sm_wjadh_66 ._thumb_wjadh_94{width:16px;height:16px;margin:0 2px;transform:translate(0)}._size-sm_wjadh_66._checked_wjadh_56 ._thumb_wjadh_94{transform:translate(16px)}._size-md_wjadh_72 ._thumb_wjadh_94{width:20px;height:20px;margin:0 2px;transform:translate(0)}._size-md_wjadh_72._checked_wjadh_56 ._thumb_wjadh_94{transform:translate(20px)}._size-lg_wjadh_78 ._thumb_wjadh_94{width:26px;height:26px;margin:0 2px;transform:translate(0)}._size-lg_wjadh_78._checked_wjadh_56 ._thumb_wjadh_94{transform:translate(26px)}._checked_wjadh_56 ._thumb_wjadh_94{background:#fffffff2;box-shadow:0 1px 6px rgba(var(--toggle-active-color),.4),0 0 2px #00000026}._track_wjadh_28:hover:not(:disabled) ._thumb_wjadh_94{box-shadow:0 2px 8px #0000004d,0 0 1px #00000026}._track_wjadh_28:active:not(:disabled) ._thumb_wjadh_94{transform:translate(0) scale(.92)}._size-sm_wjadh_66:active:not(:disabled) ._thumb_wjadh_94{transform:translate(0) scale(.9)}._size-sm_wjadh_66._checked_wjadh_56:active:not(:disabled) ._thumb_wjadh_94{transform:translate(16px) scale(.9)}._size-md_wjadh_72:active:not(:disabled) ._thumb_wjadh_94{transform:translate(0) scale(.9)}._size-md_wjadh_72._checked_wjadh_56:active:not(:disabled) ._thumb_wjadh_94{transform:translate(20px) scale(.9)}._size-lg_wjadh_78:active:not(:disabled) ._thumb_wjadh_94{transform:translate(0) scale(.9)}._size-lg_wjadh_78._checked_wjadh_56:active:not(:disabled) ._thumb_wjadh_94{transform:translate(26px) scale(.9)}@media(max-width:480px){._size-lg_wjadh_78{width:50px;height:28px}._size-lg_wjadh_78 ._thumb_wjadh_94{width:24px;height:24px}._size-lg_wjadh_78._checked_wjadh_56 ._thumb_wjadh_94{transform:translate(22px)}}._card_179ui_2{--glass-blur: 20px;--glass-bg-opacity: .1;--card-glow-color: 139, 92, 246;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s ease}._glassShine_179ui_17{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 50%);pointer-events:none;border-radius:inherit;z-index:0}._glassEdge_179ui_26{position:absolute;top:0;left:12%;right:12%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);pointer-events:none;z-index:0}._variant-solid_179ui_38{background:rgba(255,255,255,var(--glass-bg-opacity));border:1px solid rgba(255,255,255,.15);border-radius:20px;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:0 4px 24px #0003,0 1px 4px #0000001f,inset 0 1px #ffffff14}._variant-outline_179ui_51{background:#ffffff08;border:1.5px solid rgba(255,255,255,.2);border-radius:20px;-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:0 2px 12px #0000001a,inset 0 1px #ffffff0d}._variant-ghost_179ui_63{background:transparent;border:1px solid transparent;border-radius:20px;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}._hoverable_179ui_72{cursor:pointer}._hoverable_179ui_72:hover{transform:translateY(-4px)}._variant-solid_179ui_38._hoverable_179ui_72:hover{box-shadow:0 12px 40px #0000004d,0 4px 12px #00000026,inset 0 1px #ffffff1f}._variant-outline_179ui_51._hoverable_179ui_72:hover{border-color:#ffffff59;box-shadow:0 12px 40px #0003,0 4px 12px #0000001a,inset 0 1px #ffffff14}._variant-ghost_179ui_63._hoverable_179ui_72:hover{background:#ffffff0d;border-color:#ffffff1a}._glow_179ui_101:hover{box-shadow:0 0 24px rgba(var(--card-glow-color),.25),0 0 48px rgba(var(--card-glow-color),.1),0 12px 40px #0000004d,inset 0 1px #ffffff1f}._size-sm_179ui_111 ._header_179ui_111{padding:16px 18px 0}._size-sm_179ui_111 ._body_179ui_112{padding:12px 18px}._size-sm_179ui_111 ._footer_179ui_113{padding:0 18px 16px}._size-sm_179ui_111 ._headerCover_179ui_114{padding:0}._size-md_179ui_117 ._header_179ui_111{padding:20px 24px 0}._size-md_179ui_117 ._body_179ui_112{padding:16px 24px}._size-md_179ui_117 ._footer_179ui_113{padding:0 24px 20px}._size-md_179ui_117 ._headerCover_179ui_114{padding:0}._size-lg_179ui_123 ._header_179ui_111{padding:28px 32px 0}._size-lg_179ui_123 ._body_179ui_112{padding:20px 32px}._size-lg_179ui_123 ._footer_179ui_113{padding:0 32px 28px}._size-lg_179ui_123 ._headerCover_179ui_114{padding:0}._header_179ui_111{position:relative;z-index:1}._headerCover_179ui_114{overflow:hidden;border-radius:20px 20px 0 0;padding:0!important}._headerCover_179ui_114 img{width:100%;display:block;object-fit:cover}._body_179ui_112{position:relative;z-index:1;flex:1}._footer_179ui_113{position:relative;z-index:1;display:flex;align-items:center;gap:8px}._footer-align-left_179ui_162{justify-content:flex-start}._footer-align-center_179ui_163{justify-content:center}._footer-align-right_179ui_164{justify-content:flex-end}._footer-align-between_179ui_165{justify-content:space-between}@media(max-width:480px){._variant-solid_179ui_38,._variant-outline_179ui_51,._variant-ghost_179ui_63{border-radius:16px}._headerCover_179ui_114{border-radius:16px 16px 0 0}._size-lg_179ui_123 ._header_179ui_111{padding:22px 24px 0}._size-lg_179ui_123 ._body_179ui_112{padding:16px 24px}._size-lg_179ui_123 ._footer_179ui_113{padding:0 24px 22px}}._wrapper_xai1o_2{display:inline-flex;position:relative}._tooltip_xai1o_8{--glass-blur: 20px;--tooltip-bg: rgba(30, 25, 55, .75);position:absolute;z-index:9999;padding:8px 14px;border-radius:10px;background:var(--tooltip-bg);border:1px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));box-shadow:0 4px 20px #0000004d,0 1px 4px #0003,inset 0 1px #ffffff14;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s ease,transform .15s cubic-bezier(.34,1.56,.64,1)}._visible_xai1o_33{opacity:1;pointer-events:auto}._glassShine_xai1o_39{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08) 0%,transparent 50%);border-radius:inherit;pointer-events:none}._content_xai1o_48{position:relative;z-index:1;font-size:12.5px;font-weight:500;color:#ffffffe6;line-height:1.4}._arrow_xai1o_58{position:absolute;width:8px;height:8px;background:var(--tooltip-bg);border:1px solid rgba(255,255,255,.15);transform:rotate(45deg);z-index:0}._placement-top_xai1o_73{bottom:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(4px)}._placement-top_xai1o_73._visible_xai1o_33{transform:translate(-50%) translateY(0)}._placement-top_xai1o_73 ._arrow_xai1o_58{bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg);border-top:none;border-left:none}._placement-bottom_xai1o_92{top:calc(100% + 10px);left:50%;transform:translate(-50%) translateY(-4px)}._placement-bottom_xai1o_92._visible_xai1o_33{transform:translate(-50%) translateY(0)}._placement-bottom_xai1o_92 ._arrow_xai1o_58{top:-5px;left:50%;transform:translate(-50%) rotate(45deg);border-bottom:none;border-right:none}._placement-left_xai1o_111{right:calc(100% + 10px);top:50%;transform:translateY(-50%) translate(4px)}._placement-left_xai1o_111._visible_xai1o_33{transform:translateY(-50%) translate(0)}._placement-left_xai1o_111 ._arrow_xai1o_58{right:-5px;top:50%;transform:translateY(-50%) rotate(45deg);border-bottom:none;border-left:none}._placement-right_xai1o_130{left:calc(100% + 10px);top:50%;transform:translateY(-50%) translate(-4px)}._placement-right_xai1o_130._visible_xai1o_33{transform:translateY(-50%) translate(0)}._placement-right_xai1o_130 ._arrow_xai1o_58{left:-5px;top:50%;transform:translateY(-50%) rotate(45deg);border-top:none;border-right:none}._overlay_1plz5_2{--overlay-blur: 6px;position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0006;-webkit-backdrop-filter:blur(var(--overlay-blur));backdrop-filter:blur(var(--overlay-blur));padding:24px;animation:_overlayIn_1plz5_1 .25s ease forwards}@keyframes _overlayIn_1plz5_1{0%{opacity:0}to{opacity:1}}._modal_1plz5_24{--modal-blur: 24px;--modal-bg: rgba(30, 25, 55, .8);position:relative;width:100%;background:var(--modal-bg);border:1px solid rgba(255,255,255,.15);border-radius:24px;-webkit-backdrop-filter:blur(var(--modal-blur));backdrop-filter:blur(var(--modal-blur));box-shadow:0 16px 64px #0006,0 4px 16px #00000040,inset 0 1px #ffffff14;overflow:hidden;outline:none;animation:_modalIn_1plz5_1 .3s cubic-bezier(.34,1.56,.64,1) forwards}@keyframes _modalIn_1plz5_1{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}._size-sm_1plz5_56{max-width:360px}._size-md_1plz5_57{max-width:460px}._size-lg_1plz5_58{max-width:600px}._glassShine_1plz5_61{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.08) 0%,transparent 45%);pointer-events:none;border-radius:inherit;z-index:0}._glassEdge_1plz5_70{position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);pointer-events:none;z-index:0}._header_1plz5_82{position:relative;z-index:1;padding:24px 28px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}._headerContent_1plz5_92{flex:1;min-width:0}._closeBtn_1plz5_98{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff6;cursor:pointer;flex-shrink:0;transition:background .15s ease,color .15s ease}._closeBtn_1plz5_98:hover{background:#ffffff1f;color:#fffc}._closeBtn_1plz5_98:focus-visible{outline:2px solid rgba(255,255,255,.4);outline-offset:2px}._body_1plz5_126{position:relative;z-index:1;padding:20px 28px}._footer_1plz5_133{position:relative;z-index:1;padding:0 28px 24px;display:flex;align-items:center;gap:10px}._footer-align-left_1plz5_142{justify-content:flex-start}._footer-align-center_1plz5_143{justify-content:center}._footer-align-right_1plz5_144{justify-content:flex-end}@media(max-width:480px){._modal_1plz5_24{border-radius:20px}._header_1plz5_82{padding:20px 20px 0}._body_1plz5_126{padding:16px 20px}._footer_1plz5_133{padding:0 20px 20px}}
|
|
@@ -0,0 +1,902 @@
|
|
|
1
|
+
import { jsxs as N, jsx as e, Fragment as se } from "react/jsx-runtime";
|
|
2
|
+
import x, { useState as W, useCallback as A, useId as F, useMemo as U, useContext as ae, createContext as G, useRef as D, useEffect as K } from "react";
|
|
3
|
+
import { createPortal as ne } from "react-dom";
|
|
4
|
+
const oe = "_btn_1sfqc_2", le = "_glassShine_1sfqc_46", re = "_glassEdge_1sfqc_55", ie = "_glow_1sfqc_165", ce = "_loading_1sfqc_179", de = "_spinner_1sfqc_181", _e = "_spin_1sfqc_181", ue = "_icon_1sfqc_193", he = "_label_1sfqc_198", R = {
|
|
5
|
+
btn: oe,
|
|
6
|
+
glassShine: le,
|
|
7
|
+
glassEdge: re,
|
|
8
|
+
"size-sm": "_size-sm_1sfqc_64",
|
|
9
|
+
"size-md": "_size-md_1sfqc_70",
|
|
10
|
+
"size-lg": "_size-lg_1sfqc_76",
|
|
11
|
+
"shape-pill": "_shape-pill_1sfqc_84",
|
|
12
|
+
"shape-rounded": "_shape-rounded_1sfqc_85",
|
|
13
|
+
"variant-solid": "_variant-solid_1sfqc_88",
|
|
14
|
+
"variant-outline": "_variant-outline_1sfqc_107",
|
|
15
|
+
"variant-ghost": "_variant-ghost_1sfqc_124",
|
|
16
|
+
"variant-accent": "_variant-accent_1sfqc_146",
|
|
17
|
+
glow: ie,
|
|
18
|
+
loading: ce,
|
|
19
|
+
spinner: de,
|
|
20
|
+
spin: _e,
|
|
21
|
+
icon: ue,
|
|
22
|
+
label: he
|
|
23
|
+
}, be = x.forwardRef(
|
|
24
|
+
({
|
|
25
|
+
variant: t = "solid",
|
|
26
|
+
size: n = "md",
|
|
27
|
+
shape: s = "rounded",
|
|
28
|
+
loading: a = !1,
|
|
29
|
+
leftIcon: o,
|
|
30
|
+
rightIcon: l,
|
|
31
|
+
intensity: i = 1,
|
|
32
|
+
color: d,
|
|
33
|
+
glow: c = !1,
|
|
34
|
+
disabled: _,
|
|
35
|
+
className: v,
|
|
36
|
+
children: f,
|
|
37
|
+
style: h,
|
|
38
|
+
...b
|
|
39
|
+
}, m) => {
|
|
40
|
+
const p = _ || a, g = `${Math.round(20 * i)}px`, u = 0.08 + 0.14 * i, y = {
|
|
41
|
+
"--glass-blur": g,
|
|
42
|
+
"--glass-bg-opacity": u,
|
|
43
|
+
...d ? { "--glass-accent-color": d } : {},
|
|
44
|
+
...h
|
|
45
|
+
}, r = [
|
|
46
|
+
R.btn,
|
|
47
|
+
R[`variant-${t}`],
|
|
48
|
+
R[`size-${n}`],
|
|
49
|
+
R[`shape-${s}`],
|
|
50
|
+
c ? R.glow : "",
|
|
51
|
+
a ? R.loading : "",
|
|
52
|
+
v ?? ""
|
|
53
|
+
].filter(Boolean).join(" ");
|
|
54
|
+
return /* @__PURE__ */ N(
|
|
55
|
+
"button",
|
|
56
|
+
{
|
|
57
|
+
ref: m,
|
|
58
|
+
className: r,
|
|
59
|
+
disabled: p,
|
|
60
|
+
style: y,
|
|
61
|
+
...b,
|
|
62
|
+
children: [
|
|
63
|
+
/* @__PURE__ */ e("span", { className: R.glassShine, "aria-hidden": "true" }),
|
|
64
|
+
/* @__PURE__ */ e("span", { className: R.glassEdge, "aria-hidden": "true" }),
|
|
65
|
+
a && /* @__PURE__ */ e("span", { className: R.spinner, "aria-hidden": "true" }),
|
|
66
|
+
!a && o && /* @__PURE__ */ e("span", { className: R.icon, children: o }),
|
|
67
|
+
f && /* @__PURE__ */ e("span", { className: R.label, children: f }),
|
|
68
|
+
!a && l && /* @__PURE__ */ e("span", { className: R.icon, children: l })
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
be.displayName = "Button";
|
|
75
|
+
const pe = "_wrapper_1lbwl_2", me = "_disabled_1lbwl_10", fe = "_label_1lbwl_17", ge = "_fieldWrap_1lbwl_25", ve = "_input_1lbwl_32", ye = "_hasLeft_1lbwl_74", we = "_hasRight_1lbwl_75", $e = "_icon_1lbwl_139", xe = "_iconLeft_1lbwl_148", Ne = "_iconRight_1lbwl_149", ze = "_iconBtn_1lbwl_151", ke = "_hint_1lbwl_163", Ce = "_errorMsg_1lbwl_168", Se = "_successMsg_1lbwl_173", $ = {
|
|
76
|
+
wrapper: pe,
|
|
77
|
+
disabled: me,
|
|
78
|
+
label: fe,
|
|
79
|
+
fieldWrap: ge,
|
|
80
|
+
input: ve,
|
|
81
|
+
"size-sm": "_size-sm_1lbwl_54",
|
|
82
|
+
"size-md": "_size-md_1lbwl_60",
|
|
83
|
+
"size-lg": "_size-lg_1lbwl_66",
|
|
84
|
+
hasLeft: ye,
|
|
85
|
+
hasRight: we,
|
|
86
|
+
"variant-solid": "_variant-solid_1lbwl_78",
|
|
87
|
+
"variant-outline": "_variant-outline_1lbwl_94",
|
|
88
|
+
"variant-ghost": "_variant-ghost_1lbwl_105",
|
|
89
|
+
"state-error": "_state-error_1lbwl_119",
|
|
90
|
+
"state-success": "_state-success_1lbwl_129",
|
|
91
|
+
icon: $e,
|
|
92
|
+
iconLeft: xe,
|
|
93
|
+
iconRight: Ne,
|
|
94
|
+
iconBtn: ze,
|
|
95
|
+
hint: ke,
|
|
96
|
+
errorMsg: Ce,
|
|
97
|
+
successMsg: Se
|
|
98
|
+
}, Be = x.forwardRef(
|
|
99
|
+
({
|
|
100
|
+
variant: t = "solid",
|
|
101
|
+
size: n = "md",
|
|
102
|
+
state: s = "default",
|
|
103
|
+
label: a,
|
|
104
|
+
hint: o,
|
|
105
|
+
errorMessage: l,
|
|
106
|
+
successMessage: i,
|
|
107
|
+
leftIcon: d,
|
|
108
|
+
rightIcon: c,
|
|
109
|
+
numeric: _ = !1,
|
|
110
|
+
intensity: v = 1,
|
|
111
|
+
type: f = "text",
|
|
112
|
+
disabled: h,
|
|
113
|
+
className: b,
|
|
114
|
+
style: m,
|
|
115
|
+
onChange: p,
|
|
116
|
+
...g
|
|
117
|
+
}, u) => {
|
|
118
|
+
const [y, r] = W(!1), w = f === "password", k = w ? y ? "text" : "password" : f, I = {
|
|
119
|
+
"--glass-blur": `${Math.round(20 * v)}px`,
|
|
120
|
+
...m
|
|
121
|
+
}, z = (C) => {
|
|
122
|
+
if (_) {
|
|
123
|
+
const V = C.target.value;
|
|
124
|
+
if (V !== "" && !/^\d*\.?\d*$/.test(V)) {
|
|
125
|
+
C.target.value = V.replace(/[^\d.]/g, "");
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
p?.(C);
|
|
130
|
+
}, P = (C) => {
|
|
131
|
+
if (_) {
|
|
132
|
+
const V = [
|
|
133
|
+
"Backspace",
|
|
134
|
+
"Delete",
|
|
135
|
+
"Tab",
|
|
136
|
+
"Escape",
|
|
137
|
+
"Enter",
|
|
138
|
+
"ArrowLeft",
|
|
139
|
+
"ArrowRight",
|
|
140
|
+
"ArrowUp",
|
|
141
|
+
"ArrowDown",
|
|
142
|
+
"Home",
|
|
143
|
+
"End",
|
|
144
|
+
".",
|
|
145
|
+
"Process"
|
|
146
|
+
], Z = /^\d$/.test(C.key), ee = V.includes(C.key), te = C.ctrlKey || C.metaKey;
|
|
147
|
+
!Z && !ee && !te && C.preventDefault();
|
|
148
|
+
}
|
|
149
|
+
g.onKeyDown?.(C);
|
|
150
|
+
}, M = (C) => {
|
|
151
|
+
_ && (C.currentTarget.blur(), C.currentTarget.focus());
|
|
152
|
+
}, O = [
|
|
153
|
+
$.wrapper,
|
|
154
|
+
h ? $.disabled : ""
|
|
155
|
+
].filter(Boolean).join(" "), X = [
|
|
156
|
+
$.input,
|
|
157
|
+
$[`variant-${t}`],
|
|
158
|
+
$[`size-${n}`],
|
|
159
|
+
s !== "default" ? $[`state-${s}`] : "",
|
|
160
|
+
d ? $.hasLeft : "",
|
|
161
|
+
c || w ? $.hasRight : "",
|
|
162
|
+
b ?? ""
|
|
163
|
+
].filter(Boolean).join(" "), Y = s === "error" && l ? /* @__PURE__ */ e("span", { className: $.errorMsg, children: l }) : s === "success" && i ? /* @__PURE__ */ e("span", { className: $.successMsg, children: i }) : o ? /* @__PURE__ */ e("span", { className: $.hint, children: o }) : null;
|
|
164
|
+
return /* @__PURE__ */ N("div", { className: O, style: I, children: [
|
|
165
|
+
a && /* @__PURE__ */ e("label", { className: $.label, children: a }),
|
|
166
|
+
/* @__PURE__ */ N("div", { className: $.fieldWrap, children: [
|
|
167
|
+
d && /* @__PURE__ */ e("span", { className: `${$.icon} ${$.iconLeft}`, children: d }),
|
|
168
|
+
/* @__PURE__ */ e(
|
|
169
|
+
"input",
|
|
170
|
+
{
|
|
171
|
+
ref: u,
|
|
172
|
+
type: k,
|
|
173
|
+
inputMode: _ ? "decimal" : void 0,
|
|
174
|
+
disabled: h,
|
|
175
|
+
className: X,
|
|
176
|
+
onChange: z,
|
|
177
|
+
onKeyDown: P,
|
|
178
|
+
onCompositionStart: M,
|
|
179
|
+
...g
|
|
180
|
+
}
|
|
181
|
+
),
|
|
182
|
+
w && /* @__PURE__ */ e(
|
|
183
|
+
"button",
|
|
184
|
+
{
|
|
185
|
+
type: "button",
|
|
186
|
+
className: `${$.icon} ${$.iconRight} ${$.iconBtn}`,
|
|
187
|
+
onClick: () => r((C) => !C),
|
|
188
|
+
tabIndex: -1,
|
|
189
|
+
"aria-label": y ? "비밀번호 숨기기" : "비밀번호 보기",
|
|
190
|
+
children: y ? /* @__PURE__ */ N("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
191
|
+
/* @__PURE__ */ e("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24" }),
|
|
192
|
+
/* @__PURE__ */ e("line", { x1: "1", y1: "1", x2: "23", y2: "23" })
|
|
193
|
+
] }) : /* @__PURE__ */ N("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [
|
|
194
|
+
/* @__PURE__ */ e("path", { d: "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" }),
|
|
195
|
+
/* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: "3" })
|
|
196
|
+
] })
|
|
197
|
+
}
|
|
198
|
+
),
|
|
199
|
+
!w && c && /* @__PURE__ */ e("span", { className: `${$.icon} ${$.iconRight}`, children: c })
|
|
200
|
+
] }),
|
|
201
|
+
Y
|
|
202
|
+
] });
|
|
203
|
+
}
|
|
204
|
+
);
|
|
205
|
+
Be.displayName = "Input";
|
|
206
|
+
const Me = "_badge_1nxby_2", Re = "_interactive_1nxby_29", Ee = "_glassShine_1nxby_48", Le = "_glassEdge_1nxby_57", Te = "_glow_1nxby_195", je = "_dot_1nxby_203", Pe = "_pulse_1nxby_223", qe = "_dotPulse_1nxby_1", Ie = "_icon_1nxby_240", Ae = "_label_1nxby_247", Ve = "_closeBtn_1nxby_254", S = {
|
|
207
|
+
badge: Me,
|
|
208
|
+
interactive: Re,
|
|
209
|
+
glassShine: Ee,
|
|
210
|
+
glassEdge: Le,
|
|
211
|
+
"size-sm": "_size-sm_1nxby_68",
|
|
212
|
+
"size-md": "_size-md_1nxby_76",
|
|
213
|
+
"size-lg": "_size-lg_1nxby_84",
|
|
214
|
+
"shape-pill": "_shape-pill_1nxby_93",
|
|
215
|
+
"shape-rounded": "_shape-rounded_1nxby_97",
|
|
216
|
+
"variant-solid": "_variant-solid_1nxby_102",
|
|
217
|
+
"variant-outline": "_variant-outline_1nxby_122",
|
|
218
|
+
"variant-ghost": "_variant-ghost_1nxby_140",
|
|
219
|
+
"variant-accent": "_variant-accent_1nxby_175",
|
|
220
|
+
glow: Te,
|
|
221
|
+
dot: je,
|
|
222
|
+
pulse: Pe,
|
|
223
|
+
dotPulse: qe,
|
|
224
|
+
icon: Ie,
|
|
225
|
+
label: Ae,
|
|
226
|
+
closeBtn: Ve
|
|
227
|
+
}, De = {
|
|
228
|
+
default: "139, 92, 246",
|
|
229
|
+
// 보라
|
|
230
|
+
info: "59, 130, 246",
|
|
231
|
+
// 파랑
|
|
232
|
+
success: "34, 197, 94",
|
|
233
|
+
// 초록
|
|
234
|
+
warning: "245, 158, 11",
|
|
235
|
+
// 주황
|
|
236
|
+
error: "239, 68, 68"
|
|
237
|
+
// 빨강
|
|
238
|
+
}, Ke = x.forwardRef(
|
|
239
|
+
({
|
|
240
|
+
variant: t = "solid",
|
|
241
|
+
size: n = "md",
|
|
242
|
+
shape: s = "pill",
|
|
243
|
+
status: a = "default",
|
|
244
|
+
leftIcon: o,
|
|
245
|
+
rightIcon: l,
|
|
246
|
+
dot: i = !1,
|
|
247
|
+
pulse: d = !1,
|
|
248
|
+
intensity: c = 1,
|
|
249
|
+
color: _,
|
|
250
|
+
glow: v = !1,
|
|
251
|
+
interactive: f = !1,
|
|
252
|
+
closable: h = !1,
|
|
253
|
+
onClose: b,
|
|
254
|
+
className: m,
|
|
255
|
+
children: p,
|
|
256
|
+
style: g,
|
|
257
|
+
onClick: u,
|
|
258
|
+
...y
|
|
259
|
+
}, r) => {
|
|
260
|
+
const w = `${Math.round(16 * c)}px`, k = 0.06 + 0.12 * c, j = _ || De[a], I = {
|
|
261
|
+
"--glass-blur": w,
|
|
262
|
+
"--glass-bg-opacity": k,
|
|
263
|
+
"--badge-color": j,
|
|
264
|
+
...g
|
|
265
|
+
}, z = f || !!u, P = [
|
|
266
|
+
S.badge,
|
|
267
|
+
S[`variant-${t}`],
|
|
268
|
+
S[`size-${n}`],
|
|
269
|
+
S[`shape-${s}`],
|
|
270
|
+
v ? S.glow : "",
|
|
271
|
+
z ? S.interactive : "",
|
|
272
|
+
m ?? ""
|
|
273
|
+
].filter(Boolean).join(" ");
|
|
274
|
+
return /* @__PURE__ */ N(
|
|
275
|
+
"span",
|
|
276
|
+
{
|
|
277
|
+
ref: r,
|
|
278
|
+
className: P,
|
|
279
|
+
style: I,
|
|
280
|
+
role: z ? "button" : void 0,
|
|
281
|
+
tabIndex: z ? 0 : void 0,
|
|
282
|
+
onClick: u,
|
|
283
|
+
onKeyDown: z ? (M) => {
|
|
284
|
+
(M.key === "Enter" || M.key === " ") && (M.preventDefault(), u?.(M));
|
|
285
|
+
} : void 0,
|
|
286
|
+
...y,
|
|
287
|
+
children: [
|
|
288
|
+
/* @__PURE__ */ e("span", { className: S.glassShine, "aria-hidden": "true" }),
|
|
289
|
+
/* @__PURE__ */ e("span", { className: S.glassEdge, "aria-hidden": "true" }),
|
|
290
|
+
i && /* @__PURE__ */ e("span", { className: `${S.dot} ${d ? S.pulse : ""}`, "aria-hidden": "true" }),
|
|
291
|
+
o && /* @__PURE__ */ e("span", { className: S.icon, children: o }),
|
|
292
|
+
p && /* @__PURE__ */ e("span", { className: S.label, children: p }),
|
|
293
|
+
l && !h && /* @__PURE__ */ e("span", { className: S.icon, children: l }),
|
|
294
|
+
h && /* @__PURE__ */ e(
|
|
295
|
+
"button",
|
|
296
|
+
{
|
|
297
|
+
type: "button",
|
|
298
|
+
className: S.closeBtn,
|
|
299
|
+
onClick: (M) => {
|
|
300
|
+
M.stopPropagation(), b?.(M);
|
|
301
|
+
},
|
|
302
|
+
tabIndex: -1,
|
|
303
|
+
"aria-label": "닫기",
|
|
304
|
+
children: /* @__PURE__ */ N(
|
|
305
|
+
"svg",
|
|
306
|
+
{
|
|
307
|
+
width: "10",
|
|
308
|
+
height: "10",
|
|
309
|
+
viewBox: "0 0 24 24",
|
|
310
|
+
fill: "none",
|
|
311
|
+
stroke: "currentColor",
|
|
312
|
+
strokeWidth: "2.5",
|
|
313
|
+
strokeLinecap: "round",
|
|
314
|
+
strokeLinejoin: "round",
|
|
315
|
+
children: [
|
|
316
|
+
/* @__PURE__ */ e("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
317
|
+
/* @__PURE__ */ e("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
318
|
+
]
|
|
319
|
+
}
|
|
320
|
+
)
|
|
321
|
+
}
|
|
322
|
+
)
|
|
323
|
+
]
|
|
324
|
+
}
|
|
325
|
+
);
|
|
326
|
+
}
|
|
327
|
+
);
|
|
328
|
+
Ke.displayName = "Badge";
|
|
329
|
+
const We = "_tabs_1ccrt_2", Fe = "_tabList_1ccrt_9", Oe = "_tab_1ccrt_2", He = "_active_1ccrt_101", Ue = "_icon_1ccrt_179", Ge = "_label_1ccrt_186", Je = "_tabPanel_1ccrt_193", Qe = "_fadeIn_1ccrt_1", B = {
|
|
330
|
+
tabs: We,
|
|
331
|
+
tabList: Fe,
|
|
332
|
+
"list-variant-solid": "_list-variant-solid_1ccrt_27",
|
|
333
|
+
"list-variant-outline": "_list-variant-outline_1ccrt_38",
|
|
334
|
+
"list-variant-pill": "_list-variant-pill_1ccrt_49",
|
|
335
|
+
"list-size-sm": "_list-size-sm_1ccrt_58",
|
|
336
|
+
"list-size-md": "_list-size-md_1ccrt_59",
|
|
337
|
+
"list-size-lg": "_list-size-lg_1ccrt_60",
|
|
338
|
+
tab: Oe,
|
|
339
|
+
active: He,
|
|
340
|
+
"tab-size-sm": "_tab-size-sm_1ccrt_106",
|
|
341
|
+
"tab-size-md": "_tab-size-md_1ccrt_112",
|
|
342
|
+
"tab-size-lg": "_tab-size-lg_1ccrt_118",
|
|
343
|
+
"tab-variant-solid": "_tab-variant-solid_1ccrt_125",
|
|
344
|
+
"tab-variant-outline": "_tab-variant-outline_1ccrt_143",
|
|
345
|
+
"tab-variant-pill": "_tab-variant-pill_1ccrt_162",
|
|
346
|
+
icon: Ue,
|
|
347
|
+
label: Ge,
|
|
348
|
+
tabPanel: Je,
|
|
349
|
+
fadeIn: Qe
|
|
350
|
+
}, J = G(null);
|
|
351
|
+
function H() {
|
|
352
|
+
const t = ae(J);
|
|
353
|
+
if (!t)
|
|
354
|
+
throw new Error("Tabs 컴포넌트 안에서 사용해야 합니다.");
|
|
355
|
+
return t;
|
|
356
|
+
}
|
|
357
|
+
const Xe = x.forwardRef(
|
|
358
|
+
({
|
|
359
|
+
defaultValue: t = "",
|
|
360
|
+
value: n,
|
|
361
|
+
onValueChange: s,
|
|
362
|
+
variant: a = "solid",
|
|
363
|
+
size: o = "md",
|
|
364
|
+
intensity: l = 1,
|
|
365
|
+
className: i,
|
|
366
|
+
children: d,
|
|
367
|
+
...c
|
|
368
|
+
}, _) => {
|
|
369
|
+
const [v, f] = W(t), h = n !== void 0, b = h ? n : v, m = A(
|
|
370
|
+
(u) => {
|
|
371
|
+
h || f(u), s?.(u);
|
|
372
|
+
},
|
|
373
|
+
[h, s]
|
|
374
|
+
), p = F(), g = U(
|
|
375
|
+
() => ({ activeValue: b, setActiveValue: m, variant: a, size: o, intensity: l, idPrefix: p }),
|
|
376
|
+
[b, m, a, o, l, p]
|
|
377
|
+
);
|
|
378
|
+
return /* @__PURE__ */ e(J.Provider, { value: g, children: /* @__PURE__ */ e(
|
|
379
|
+
"div",
|
|
380
|
+
{
|
|
381
|
+
ref: _,
|
|
382
|
+
className: `${B.tabs} ${i ?? ""}`,
|
|
383
|
+
...c,
|
|
384
|
+
children: d
|
|
385
|
+
}
|
|
386
|
+
) });
|
|
387
|
+
}
|
|
388
|
+
);
|
|
389
|
+
Xe.displayName = "Tabs";
|
|
390
|
+
const Ye = x.forwardRef(
|
|
391
|
+
({ className: t, children: n, ...s }, a) => {
|
|
392
|
+
const { variant: o, size: l, intensity: i } = H(), c = {
|
|
393
|
+
"--glass-blur": `${Math.round(18 * i)}px`,
|
|
394
|
+
...s.style
|
|
395
|
+
}, _ = [
|
|
396
|
+
B.tabList,
|
|
397
|
+
B[`list-variant-${o}`],
|
|
398
|
+
B[`list-size-${l}`],
|
|
399
|
+
t ?? ""
|
|
400
|
+
].filter(Boolean).join(" ");
|
|
401
|
+
return /* @__PURE__ */ e(
|
|
402
|
+
"div",
|
|
403
|
+
{
|
|
404
|
+
ref: a,
|
|
405
|
+
role: "tablist",
|
|
406
|
+
className: _,
|
|
407
|
+
style: c,
|
|
408
|
+
...s,
|
|
409
|
+
children: n
|
|
410
|
+
}
|
|
411
|
+
);
|
|
412
|
+
}
|
|
413
|
+
);
|
|
414
|
+
Ye.displayName = "TabList";
|
|
415
|
+
const Ze = x.forwardRef(
|
|
416
|
+
({ value: t, leftIcon: n, rightIcon: s, disabled: a, className: o, children: l, ...i }, d) => {
|
|
417
|
+
const { activeValue: c, setActiveValue: _, variant: v, size: f, idPrefix: h } = H(), b = c === t, m = () => {
|
|
418
|
+
a || _(t);
|
|
419
|
+
}, p = (u) => {
|
|
420
|
+
const y = u.currentTarget.parentElement;
|
|
421
|
+
if (!y) return;
|
|
422
|
+
const r = Array.from(
|
|
423
|
+
y.querySelectorAll('[role="tab"]:not([disabled])')
|
|
424
|
+
), w = r.indexOf(u.currentTarget);
|
|
425
|
+
let k = -1;
|
|
426
|
+
u.key === "ArrowRight" ? k = (w + 1) % r.length : u.key === "ArrowLeft" ? k = (w - 1 + r.length) % r.length : u.key === "Home" ? k = 0 : u.key === "End" && (k = r.length - 1), k >= 0 && (u.preventDefault(), r[k].focus(), _(r[k].dataset.value));
|
|
427
|
+
}, g = [
|
|
428
|
+
B.tab,
|
|
429
|
+
B[`tab-variant-${v}`],
|
|
430
|
+
B[`tab-size-${f}`],
|
|
431
|
+
b ? B.active : "",
|
|
432
|
+
o ?? ""
|
|
433
|
+
].filter(Boolean).join(" ");
|
|
434
|
+
return /* @__PURE__ */ N(
|
|
435
|
+
"button",
|
|
436
|
+
{
|
|
437
|
+
ref: d,
|
|
438
|
+
role: "tab",
|
|
439
|
+
type: "button",
|
|
440
|
+
id: `${h}-tab-${t}`,
|
|
441
|
+
"aria-controls": `${h}-panel-${t}`,
|
|
442
|
+
"aria-selected": b,
|
|
443
|
+
tabIndex: b ? 0 : -1,
|
|
444
|
+
"data-value": t,
|
|
445
|
+
disabled: a,
|
|
446
|
+
className: g,
|
|
447
|
+
onClick: m,
|
|
448
|
+
onKeyDown: p,
|
|
449
|
+
...i,
|
|
450
|
+
children: [
|
|
451
|
+
n && /* @__PURE__ */ e("span", { className: B.icon, children: n }),
|
|
452
|
+
l && /* @__PURE__ */ e("span", { className: B.label, children: l }),
|
|
453
|
+
s && /* @__PURE__ */ e("span", { className: B.icon, children: s })
|
|
454
|
+
]
|
|
455
|
+
}
|
|
456
|
+
);
|
|
457
|
+
}
|
|
458
|
+
);
|
|
459
|
+
Ze.displayName = "Tab";
|
|
460
|
+
const et = x.forwardRef(
|
|
461
|
+
({ value: t, keepMounted: n = !1, minHeight: s, className: a, style: o, children: l, ...i }, d) => {
|
|
462
|
+
const { activeValue: c, idPrefix: _ } = H(), v = c === t;
|
|
463
|
+
if (!v && !n) return null;
|
|
464
|
+
const f = {
|
|
465
|
+
...s !== void 0 ? { minHeight: typeof s == "number" ? `${s}px` : s } : {},
|
|
466
|
+
...o
|
|
467
|
+
};
|
|
468
|
+
return /* @__PURE__ */ e(
|
|
469
|
+
"div",
|
|
470
|
+
{
|
|
471
|
+
ref: d,
|
|
472
|
+
role: "tabpanel",
|
|
473
|
+
id: `${_}-panel-${t}`,
|
|
474
|
+
"aria-labelledby": `${_}-tab-${t}`,
|
|
475
|
+
hidden: !v,
|
|
476
|
+
className: `${B.tabPanel} ${v ? B.panelActive : ""} ${a ?? ""}`,
|
|
477
|
+
style: f,
|
|
478
|
+
tabIndex: 0,
|
|
479
|
+
...i,
|
|
480
|
+
children: l
|
|
481
|
+
}
|
|
482
|
+
);
|
|
483
|
+
}
|
|
484
|
+
);
|
|
485
|
+
et.displayName = "TabPanel";
|
|
486
|
+
const tt = "_wrapper_wjadh_2", st = "_disabled_wjadh_12", at = "_label_wjadh_19", nt = "_track_wjadh_28", ot = "_checked_wjadh_56", lt = "_glassShine_wjadh_85", rt = "_thumb_wjadh_94", it = "_thumbShine_wjadh_110", T = {
|
|
487
|
+
wrapper: tt,
|
|
488
|
+
disabled: st,
|
|
489
|
+
label: at,
|
|
490
|
+
track: nt,
|
|
491
|
+
checked: ot,
|
|
492
|
+
"size-sm": "_size-sm_wjadh_66",
|
|
493
|
+
"size-md": "_size-md_wjadh_72",
|
|
494
|
+
"size-lg": "_size-lg_wjadh_78",
|
|
495
|
+
glassShine: lt,
|
|
496
|
+
thumb: rt,
|
|
497
|
+
thumbShine: it
|
|
498
|
+
}, ct = x.forwardRef(
|
|
499
|
+
({
|
|
500
|
+
checked: t,
|
|
501
|
+
defaultChecked: n = !1,
|
|
502
|
+
onChange: s,
|
|
503
|
+
size: a = "md",
|
|
504
|
+
label: o,
|
|
505
|
+
labelPosition: l = "right",
|
|
506
|
+
intensity: i = 1,
|
|
507
|
+
color: d,
|
|
508
|
+
disabled: c,
|
|
509
|
+
className: _,
|
|
510
|
+
style: v,
|
|
511
|
+
...f
|
|
512
|
+
}, h) => {
|
|
513
|
+
const [b, m] = W(n), p = t !== void 0, g = p ? t : b, u = F(), y = A(() => {
|
|
514
|
+
if (c) return;
|
|
515
|
+
const P = !g;
|
|
516
|
+
p || m(P), s?.(P);
|
|
517
|
+
}, [c, g, p, s]), r = `${Math.round(14 * i)}px`, w = 0.06 + 0.1 * i, k = {
|
|
518
|
+
"--glass-blur": r,
|
|
519
|
+
"--glass-bg-opacity": w,
|
|
520
|
+
...d ? { "--toggle-active-color": d } : {},
|
|
521
|
+
...v
|
|
522
|
+
}, j = [
|
|
523
|
+
T.wrapper,
|
|
524
|
+
c ? T.disabled : "",
|
|
525
|
+
_ ?? ""
|
|
526
|
+
].filter(Boolean).join(" "), I = [
|
|
527
|
+
T.track,
|
|
528
|
+
T[`size-${a}`],
|
|
529
|
+
g ? T.checked : ""
|
|
530
|
+
].filter(Boolean).join(" "), z = o ? /* @__PURE__ */ e("span", { id: u, className: T.label, children: o }) : null;
|
|
531
|
+
return /* @__PURE__ */ N("div", { className: j, style: k, children: [
|
|
532
|
+
l === "left" && z,
|
|
533
|
+
/* @__PURE__ */ N(
|
|
534
|
+
"button",
|
|
535
|
+
{
|
|
536
|
+
ref: h,
|
|
537
|
+
type: "button",
|
|
538
|
+
role: "switch",
|
|
539
|
+
"aria-checked": g,
|
|
540
|
+
"aria-labelledby": o ? u : void 0,
|
|
541
|
+
disabled: c,
|
|
542
|
+
className: I,
|
|
543
|
+
onClick: y,
|
|
544
|
+
...f,
|
|
545
|
+
children: [
|
|
546
|
+
/* @__PURE__ */ e("span", { className: T.glassShine, "aria-hidden": "true" }),
|
|
547
|
+
/* @__PURE__ */ e("span", { className: T.thumb, children: /* @__PURE__ */ e("span", { className: T.thumbShine, "aria-hidden": "true" }) })
|
|
548
|
+
]
|
|
549
|
+
}
|
|
550
|
+
),
|
|
551
|
+
l === "right" && z
|
|
552
|
+
] });
|
|
553
|
+
}
|
|
554
|
+
);
|
|
555
|
+
ct.displayName = "Toggle";
|
|
556
|
+
const dt = "_card_179ui_2", _t = "_glassShine_179ui_17", ut = "_glassEdge_179ui_26", ht = "_hoverable_179ui_72", bt = "_glow_179ui_101", pt = "_header_179ui_111", mt = "_body_179ui_112", ft = "_footer_179ui_113", gt = "_headerCover_179ui_114", E = {
|
|
557
|
+
card: dt,
|
|
558
|
+
glassShine: _t,
|
|
559
|
+
glassEdge: ut,
|
|
560
|
+
"variant-solid": "_variant-solid_179ui_38",
|
|
561
|
+
"variant-outline": "_variant-outline_179ui_51",
|
|
562
|
+
"variant-ghost": "_variant-ghost_179ui_63",
|
|
563
|
+
hoverable: ht,
|
|
564
|
+
glow: bt,
|
|
565
|
+
"size-sm": "_size-sm_179ui_111",
|
|
566
|
+
header: pt,
|
|
567
|
+
body: mt,
|
|
568
|
+
footer: ft,
|
|
569
|
+
headerCover: gt,
|
|
570
|
+
"size-md": "_size-md_179ui_117",
|
|
571
|
+
"size-lg": "_size-lg_179ui_123",
|
|
572
|
+
"footer-align-left": "_footer-align-left_179ui_162",
|
|
573
|
+
"footer-align-center": "_footer-align-center_179ui_163",
|
|
574
|
+
"footer-align-right": "_footer-align-right_179ui_164",
|
|
575
|
+
"footer-align-between": "_footer-align-between_179ui_165"
|
|
576
|
+
}, vt = G({ variant: "solid", size: "md" }), yt = x.forwardRef(
|
|
577
|
+
({
|
|
578
|
+
variant: t = "solid",
|
|
579
|
+
size: n = "md",
|
|
580
|
+
hoverable: s = !1,
|
|
581
|
+
glow: a = !1,
|
|
582
|
+
intensity: o = 1,
|
|
583
|
+
color: l,
|
|
584
|
+
className: i,
|
|
585
|
+
children: d,
|
|
586
|
+
style: c,
|
|
587
|
+
..._
|
|
588
|
+
}, v) => {
|
|
589
|
+
const f = `${Math.round(20 * o)}px`, h = 0.04 + 0.1 * o, b = {
|
|
590
|
+
"--glass-blur": f,
|
|
591
|
+
"--glass-bg-opacity": h,
|
|
592
|
+
...l ? { "--card-glow-color": l } : {},
|
|
593
|
+
...c
|
|
594
|
+
}, m = [
|
|
595
|
+
E.card,
|
|
596
|
+
E[`variant-${t}`],
|
|
597
|
+
E[`size-${n}`],
|
|
598
|
+
s ? E.hoverable : "",
|
|
599
|
+
a ? E.glow : "",
|
|
600
|
+
i ?? ""
|
|
601
|
+
].filter(Boolean).join(" "), p = U(
|
|
602
|
+
() => ({ variant: t, size: n }),
|
|
603
|
+
[t, n]
|
|
604
|
+
);
|
|
605
|
+
return /* @__PURE__ */ e(vt.Provider, { value: p, children: /* @__PURE__ */ N("div", { ref: v, className: m, style: b, ..._, children: [
|
|
606
|
+
t !== "ghost" && /* @__PURE__ */ N(se, { children: [
|
|
607
|
+
/* @__PURE__ */ e("span", { className: E.glassShine, "aria-hidden": "true" }),
|
|
608
|
+
/* @__PURE__ */ e("span", { className: E.glassEdge, "aria-hidden": "true" })
|
|
609
|
+
] }),
|
|
610
|
+
d
|
|
611
|
+
] }) });
|
|
612
|
+
}
|
|
613
|
+
);
|
|
614
|
+
yt.displayName = "Card";
|
|
615
|
+
const wt = x.forwardRef(
|
|
616
|
+
({ cover: t = !1, className: n, children: s, ...a }, o) => {
|
|
617
|
+
const l = [
|
|
618
|
+
E.header,
|
|
619
|
+
t ? E.headerCover : "",
|
|
620
|
+
n ?? ""
|
|
621
|
+
].filter(Boolean).join(" ");
|
|
622
|
+
return /* @__PURE__ */ e("div", { ref: o, className: l, ...a, children: s });
|
|
623
|
+
}
|
|
624
|
+
);
|
|
625
|
+
wt.displayName = "CardHeader";
|
|
626
|
+
const $t = x.forwardRef(
|
|
627
|
+
({ className: t, children: n, ...s }, a) => /* @__PURE__ */ e("div", { ref: a, className: `${E.body} ${t ?? ""}`, ...s, children: n })
|
|
628
|
+
);
|
|
629
|
+
$t.displayName = "CardBody";
|
|
630
|
+
const xt = x.forwardRef(
|
|
631
|
+
({ align: t = "right", className: n, children: s, ...a }, o) => {
|
|
632
|
+
const l = [
|
|
633
|
+
E.footer,
|
|
634
|
+
E[`footer-align-${t}`],
|
|
635
|
+
n ?? ""
|
|
636
|
+
].filter(Boolean).join(" ");
|
|
637
|
+
return /* @__PURE__ */ e("div", { ref: o, className: l, ...a, children: s });
|
|
638
|
+
}
|
|
639
|
+
);
|
|
640
|
+
xt.displayName = "CardFooter";
|
|
641
|
+
const Nt = "_wrapper_xai1o_2", zt = "_tooltip_xai1o_8", kt = "_visible_xai1o_33", Ct = "_glassShine_xai1o_39", St = "_content_xai1o_48", Bt = "_arrow_xai1o_58", q = {
|
|
642
|
+
wrapper: Nt,
|
|
643
|
+
tooltip: zt,
|
|
644
|
+
visible: kt,
|
|
645
|
+
glassShine: Ct,
|
|
646
|
+
content: St,
|
|
647
|
+
arrow: Bt,
|
|
648
|
+
"placement-top": "_placement-top_xai1o_73",
|
|
649
|
+
"placement-bottom": "_placement-bottom_xai1o_92",
|
|
650
|
+
"placement-left": "_placement-left_xai1o_111",
|
|
651
|
+
"placement-right": "_placement-right_xai1o_130"
|
|
652
|
+
}, Mt = ({
|
|
653
|
+
content: t,
|
|
654
|
+
placement: n = "top",
|
|
655
|
+
trigger: s = "hover",
|
|
656
|
+
arrow: a = !0,
|
|
657
|
+
delay: o = 200,
|
|
658
|
+
closeDelay: l = 100,
|
|
659
|
+
open: i,
|
|
660
|
+
onOpenChange: d,
|
|
661
|
+
disabled: c = !1,
|
|
662
|
+
intensity: _ = 1,
|
|
663
|
+
children: v
|
|
664
|
+
}) => {
|
|
665
|
+
const [f, h] = W(!1), b = i !== void 0, m = b ? i : f, p = D(null), g = D(null), u = F(), y = A(() => {
|
|
666
|
+
p.current && (clearTimeout(p.current), p.current = null), g.current && (clearTimeout(g.current), g.current = null);
|
|
667
|
+
}, []), r = A(() => {
|
|
668
|
+
c || (y(), p.current = setTimeout(() => {
|
|
669
|
+
b || h(!0), d?.(!0);
|
|
670
|
+
}, o));
|
|
671
|
+
}, [c, y, o, b, d]), w = A(() => {
|
|
672
|
+
y(), g.current = setTimeout(() => {
|
|
673
|
+
b || h(!1), d?.(!1);
|
|
674
|
+
}, l);
|
|
675
|
+
}, [y, l, b, d]), k = A(() => {
|
|
676
|
+
m ? w() : r();
|
|
677
|
+
}, [m, r, w]), j = D(null);
|
|
678
|
+
K(() => {
|
|
679
|
+
if (s !== "click" || !m) return;
|
|
680
|
+
const M = (O) => {
|
|
681
|
+
j.current && !j.current.contains(O.target) && w();
|
|
682
|
+
};
|
|
683
|
+
return document.addEventListener("mousedown", M), () => document.removeEventListener("mousedown", M);
|
|
684
|
+
}, [s, m, w]), K(() => y, [y]);
|
|
685
|
+
const I = `${Math.round(20 * _)}px`, z = {
|
|
686
|
+
"aria-describedby": m ? u : void 0
|
|
687
|
+
};
|
|
688
|
+
s === "hover" ? (z.onMouseEnter = r, z.onMouseLeave = w, z.onFocus = r, z.onBlur = w) : z.onClick = k;
|
|
689
|
+
const P = [
|
|
690
|
+
q.tooltip,
|
|
691
|
+
q[`placement-${n}`],
|
|
692
|
+
a ? q.withArrow : "",
|
|
693
|
+
m ? q.visible : ""
|
|
694
|
+
].filter(Boolean).join(" ");
|
|
695
|
+
return /* @__PURE__ */ N(
|
|
696
|
+
"div",
|
|
697
|
+
{
|
|
698
|
+
ref: j,
|
|
699
|
+
className: q.wrapper,
|
|
700
|
+
...s === "hover" ? { onMouseEnter: r, onMouseLeave: w } : {},
|
|
701
|
+
children: [
|
|
702
|
+
x.cloneElement(v, z),
|
|
703
|
+
/* @__PURE__ */ N(
|
|
704
|
+
"div",
|
|
705
|
+
{
|
|
706
|
+
id: u,
|
|
707
|
+
role: "tooltip",
|
|
708
|
+
className: P,
|
|
709
|
+
style: { "--glass-blur": I },
|
|
710
|
+
children: [
|
|
711
|
+
/* @__PURE__ */ e("span", { className: q.glassShine, "aria-hidden": "true" }),
|
|
712
|
+
a && /* @__PURE__ */ e("span", { className: q.arrow, "aria-hidden": "true" }),
|
|
713
|
+
/* @__PURE__ */ e("span", { className: q.content, children: t })
|
|
714
|
+
]
|
|
715
|
+
}
|
|
716
|
+
)
|
|
717
|
+
]
|
|
718
|
+
}
|
|
719
|
+
);
|
|
720
|
+
};
|
|
721
|
+
Mt.displayName = "Tooltip";
|
|
722
|
+
const Rt = "_overlay_1plz5_2", Et = "_overlayIn_1plz5_1", Lt = "_modal_1plz5_24", Tt = "_modalIn_1plz5_1", jt = "_glassShine_1plz5_61", Pt = "_glassEdge_1plz5_70", qt = "_header_1plz5_82", It = "_headerContent_1plz5_92", At = "_closeBtn_1plz5_98", Vt = "_body_1plz5_126", Dt = "_footer_1plz5_133", L = {
|
|
723
|
+
overlay: Rt,
|
|
724
|
+
overlayIn: Et,
|
|
725
|
+
modal: Lt,
|
|
726
|
+
modalIn: Tt,
|
|
727
|
+
"size-sm": "_size-sm_1plz5_56",
|
|
728
|
+
"size-md": "_size-md_1plz5_57",
|
|
729
|
+
"size-lg": "_size-lg_1plz5_58",
|
|
730
|
+
glassShine: jt,
|
|
731
|
+
glassEdge: Pt,
|
|
732
|
+
header: qt,
|
|
733
|
+
headerContent: It,
|
|
734
|
+
closeBtn: At,
|
|
735
|
+
body: Vt,
|
|
736
|
+
footer: Dt,
|
|
737
|
+
"footer-align-left": "_footer-align-left_1plz5_142",
|
|
738
|
+
"footer-align-center": "_footer-align-center_1plz5_143",
|
|
739
|
+
"footer-align-right": "_footer-align-right_1plz5_144"
|
|
740
|
+
}, Kt = ({
|
|
741
|
+
open: t,
|
|
742
|
+
onClose: n,
|
|
743
|
+
size: s = "md",
|
|
744
|
+
closeOnOverlay: a = !0,
|
|
745
|
+
closeOnEsc: o = !0,
|
|
746
|
+
intensity: l = 1,
|
|
747
|
+
bgColor: i,
|
|
748
|
+
portalTarget: d,
|
|
749
|
+
className: c,
|
|
750
|
+
style: _,
|
|
751
|
+
children: v
|
|
752
|
+
}) => {
|
|
753
|
+
const f = D(null), h = D(null), b = F();
|
|
754
|
+
K(() => {
|
|
755
|
+
if (!t || !o) return;
|
|
756
|
+
const r = (w) => {
|
|
757
|
+
w.key === "Escape" && n();
|
|
758
|
+
};
|
|
759
|
+
return document.addEventListener("keydown", r), () => document.removeEventListener("keydown", r);
|
|
760
|
+
}, [t, o, n]), K(() => {
|
|
761
|
+
if (!t) return;
|
|
762
|
+
const r = document.body.style.overflow;
|
|
763
|
+
return document.body.style.overflow = "hidden", () => {
|
|
764
|
+
document.body.style.overflow = r;
|
|
765
|
+
};
|
|
766
|
+
}, [t]), K(() => {
|
|
767
|
+
if (!t || !h.current) return;
|
|
768
|
+
const r = document.activeElement;
|
|
769
|
+
return h.current.focus(), () => {
|
|
770
|
+
r?.focus();
|
|
771
|
+
};
|
|
772
|
+
}, [t]);
|
|
773
|
+
const m = A(
|
|
774
|
+
(r) => {
|
|
775
|
+
a && r.target === f.current && n();
|
|
776
|
+
},
|
|
777
|
+
[a, n]
|
|
778
|
+
), p = `${Math.round(24 * l)}px`, g = `${Math.round(6 * l)}px`, u = {
|
|
779
|
+
"--modal-blur": p,
|
|
780
|
+
"--overlay-blur": g,
|
|
781
|
+
...i ? { "--modal-bg": i } : {},
|
|
782
|
+
..._
|
|
783
|
+
};
|
|
784
|
+
if (!t) return null;
|
|
785
|
+
const y = /* @__PURE__ */ e(
|
|
786
|
+
"div",
|
|
787
|
+
{
|
|
788
|
+
ref: f,
|
|
789
|
+
className: `${L.overlay} ${t ? L.open : ""}`,
|
|
790
|
+
onClick: m,
|
|
791
|
+
"aria-hidden": !t,
|
|
792
|
+
children: /* @__PURE__ */ N(
|
|
793
|
+
"div",
|
|
794
|
+
{
|
|
795
|
+
ref: h,
|
|
796
|
+
role: "dialog",
|
|
797
|
+
"aria-modal": "true",
|
|
798
|
+
"aria-labelledby": b,
|
|
799
|
+
tabIndex: -1,
|
|
800
|
+
className: `${L.modal} ${L[`size-${s}`]} ${c ?? ""}`,
|
|
801
|
+
style: u,
|
|
802
|
+
children: [
|
|
803
|
+
/* @__PURE__ */ e("span", { className: L.glassShine, "aria-hidden": "true" }),
|
|
804
|
+
/* @__PURE__ */ e("span", { className: L.glassEdge, "aria-hidden": "true" }),
|
|
805
|
+
/* @__PURE__ */ e(Q.Provider, { value: { titleId: b, onClose: n }, children: v })
|
|
806
|
+
]
|
|
807
|
+
}
|
|
808
|
+
)
|
|
809
|
+
}
|
|
810
|
+
);
|
|
811
|
+
return ne(y, d || document.body);
|
|
812
|
+
};
|
|
813
|
+
Kt.displayName = "Modal";
|
|
814
|
+
const Q = x.createContext({
|
|
815
|
+
titleId: "",
|
|
816
|
+
onClose: () => {
|
|
817
|
+
}
|
|
818
|
+
}), Wt = () => x.useContext(Q), Ft = x.forwardRef(
|
|
819
|
+
({ showClose: t = !0, className: n, children: s, ...a }, o) => {
|
|
820
|
+
const { titleId: l, onClose: i } = Wt();
|
|
821
|
+
return /* @__PURE__ */ N("div", { ref: o, className: `${L.header} ${n ?? ""}`, ...a, children: [
|
|
822
|
+
/* @__PURE__ */ e("div", { id: l, className: L.headerContent, children: s }),
|
|
823
|
+
t && /* @__PURE__ */ e(
|
|
824
|
+
"button",
|
|
825
|
+
{
|
|
826
|
+
type: "button",
|
|
827
|
+
className: L.closeBtn,
|
|
828
|
+
onClick: i,
|
|
829
|
+
"aria-label": "닫기",
|
|
830
|
+
children: /* @__PURE__ */ N(
|
|
831
|
+
"svg",
|
|
832
|
+
{
|
|
833
|
+
width: "14",
|
|
834
|
+
height: "14",
|
|
835
|
+
viewBox: "0 0 24 24",
|
|
836
|
+
fill: "none",
|
|
837
|
+
stroke: "currentColor",
|
|
838
|
+
strokeWidth: "2.5",
|
|
839
|
+
strokeLinecap: "round",
|
|
840
|
+
strokeLinejoin: "round",
|
|
841
|
+
children: [
|
|
842
|
+
/* @__PURE__ */ e("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
843
|
+
/* @__PURE__ */ e("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
844
|
+
]
|
|
845
|
+
}
|
|
846
|
+
)
|
|
847
|
+
}
|
|
848
|
+
)
|
|
849
|
+
] });
|
|
850
|
+
}
|
|
851
|
+
);
|
|
852
|
+
Ft.displayName = "ModalHeader";
|
|
853
|
+
const Ot = x.forwardRef(
|
|
854
|
+
({ className: t, children: n, ...s }, a) => /* @__PURE__ */ e("div", { ref: a, className: `${L.body} ${t ?? ""}`, ...s, children: n })
|
|
855
|
+
);
|
|
856
|
+
Ot.displayName = "ModalBody";
|
|
857
|
+
const Ht = x.forwardRef(
|
|
858
|
+
({ align: t = "right", className: n, children: s, ...a }, o) => {
|
|
859
|
+
const l = [
|
|
860
|
+
L.footer,
|
|
861
|
+
L[`footer-align-${t}`],
|
|
862
|
+
n ?? ""
|
|
863
|
+
].filter(Boolean).join(" ");
|
|
864
|
+
return /* @__PURE__ */ e("div", { ref: o, className: l, ...a, children: s });
|
|
865
|
+
}
|
|
866
|
+
);
|
|
867
|
+
Ht.displayName = "ModalFooter";
|
|
868
|
+
const Ut = ({
|
|
869
|
+
theme: t,
|
|
870
|
+
children: n,
|
|
871
|
+
style: s,
|
|
872
|
+
...a
|
|
873
|
+
}) => /* @__PURE__ */ e(
|
|
874
|
+
"div",
|
|
875
|
+
{
|
|
876
|
+
"data-theme": t === "default" ? void 0 : t,
|
|
877
|
+
style: { display: "contents", ...s },
|
|
878
|
+
...a,
|
|
879
|
+
children: n
|
|
880
|
+
}
|
|
881
|
+
);
|
|
882
|
+
Ut.displayName = "ThemeProvider";
|
|
883
|
+
export {
|
|
884
|
+
Ke as Badge,
|
|
885
|
+
be as Button,
|
|
886
|
+
yt as Card,
|
|
887
|
+
$t as CardBody,
|
|
888
|
+
xt as CardFooter,
|
|
889
|
+
wt as CardHeader,
|
|
890
|
+
Be as Input,
|
|
891
|
+
Kt as Modal,
|
|
892
|
+
Ot as ModalBody,
|
|
893
|
+
Ht as ModalFooter,
|
|
894
|
+
Ft as ModalHeader,
|
|
895
|
+
Ze as Tab,
|
|
896
|
+
Ye as TabList,
|
|
897
|
+
et as TabPanel,
|
|
898
|
+
Xe as Tabs,
|
|
899
|
+
Ut as ThemeProvider,
|
|
900
|
+
ct as Toggle,
|
|
901
|
+
Mt as Tooltip
|
|
902
|
+
};
|
package/dist/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
package/package.json
ADDED
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@_jinu/liquid-glass-ui",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Apple Liquid Glass inspired React UI components with glassmorphism effects",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"react",
|
|
8
|
+
"ui",
|
|
9
|
+
"components",
|
|
10
|
+
"glassmorphism",
|
|
11
|
+
"liquid-glass",
|
|
12
|
+
"apple",
|
|
13
|
+
"design-system"
|
|
14
|
+
],
|
|
15
|
+
"author": "Jinu",
|
|
16
|
+
"license": "MIT",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/sogom/liquid-glass-ui"
|
|
20
|
+
},
|
|
21
|
+
"homepage": "https://github.com/sogom/liquid-glass-ui#readme",
|
|
22
|
+
"main": "./dist/liquid-glass-ui.cjs",
|
|
23
|
+
"module": "./dist/liquid-glass-ui.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"import": "./dist/liquid-glass-ui.js",
|
|
28
|
+
"require": "./dist/liquid-glass-ui.cjs",
|
|
29
|
+
"types": "./dist/index.d.ts"
|
|
30
|
+
},
|
|
31
|
+
"./dist/style.css": "./dist/style.css",
|
|
32
|
+
"./themes/ey.css": "./src/themes/ey.css"
|
|
33
|
+
},
|
|
34
|
+
"files": [
|
|
35
|
+
"dist",
|
|
36
|
+
"src/themes/*.css",
|
|
37
|
+
"README.md",
|
|
38
|
+
"LICENSE"
|
|
39
|
+
],
|
|
40
|
+
"sideEffects": [
|
|
41
|
+
"**/*.css"
|
|
42
|
+
],
|
|
43
|
+
"scripts": {
|
|
44
|
+
"dev": "vite",
|
|
45
|
+
"build": "tsc -p tsconfig.build.json && vite build",
|
|
46
|
+
"lint": "eslint .",
|
|
47
|
+
"preview": "vite preview",
|
|
48
|
+
"prepublishOnly": "npm run build",
|
|
49
|
+
"storybook": "storybook dev -p 6006",
|
|
50
|
+
"build-storybook": "storybook build"
|
|
51
|
+
},
|
|
52
|
+
"peerDependencies": {
|
|
53
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
54
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"react": "^19.2.0",
|
|
58
|
+
"react-dom": "^19.2.0",
|
|
59
|
+
"@eslint/js": "^9.39.1",
|
|
60
|
+
"@types/node": "^24.10.1",
|
|
61
|
+
"@types/react": "^19.2.7",
|
|
62
|
+
"@types/react-dom": "^19.2.3",
|
|
63
|
+
"@vitejs/plugin-react": "^5.1.1",
|
|
64
|
+
"eslint": "^9.39.1",
|
|
65
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
66
|
+
"eslint-plugin-react-refresh": "^0.4.24",
|
|
67
|
+
"globals": "^16.5.0",
|
|
68
|
+
"typescript": "~5.9.3",
|
|
69
|
+
"typescript-eslint": "^8.48.0",
|
|
70
|
+
"vite": "^7.3.1",
|
|
71
|
+
"storybook": "^10.2.12",
|
|
72
|
+
"@storybook/react-vite": "^10.2.12",
|
|
73
|
+
"@chromatic-com/storybook": "^5.0.1",
|
|
74
|
+
"@storybook/addon-vitest": "^10.2.12",
|
|
75
|
+
"@storybook/addon-a11y": "^10.2.12",
|
|
76
|
+
"@storybook/addon-docs": "^10.2.12",
|
|
77
|
+
"@storybook/addon-onboarding": "^10.2.12",
|
|
78
|
+
"eslint-plugin-storybook": "^10.2.12",
|
|
79
|
+
"vitest": "^4.0.18",
|
|
80
|
+
"playwright": "^1.58.2",
|
|
81
|
+
"@vitest/browser-playwright": "^4.0.18",
|
|
82
|
+
"@vitest/coverage-v8": "^4.0.18"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/* ══════════════════════════════════════════════════
|
|
2
|
+
Liquid Glass UI — EY (Ernst & Young) Theme
|
|
3
|
+
|
|
4
|
+
EY Brand Colors:
|
|
5
|
+
Primary Yellow: #FFE600 → RGB 255, 230, 0
|
|
6
|
+
Dark: #2E2E38 → RGB 46, 46, 56
|
|
7
|
+
Gray: #747480 → RGB 116, 116, 128
|
|
8
|
+
White: #FFFFFF
|
|
9
|
+
══════════════════════════════════════════════════ */
|
|
10
|
+
|
|
11
|
+
[data-theme="ey"] {
|
|
12
|
+
/* ── Button ── */
|
|
13
|
+
--glass-accent-color: 255, 230, 0;
|
|
14
|
+
|
|
15
|
+
/* ── Badge ── */
|
|
16
|
+
--badge-color: 255, 230, 0;
|
|
17
|
+
|
|
18
|
+
/* ── Toggle ── */
|
|
19
|
+
--toggle-active-color: 255, 230, 0;
|
|
20
|
+
|
|
21
|
+
/* ── Card ── */
|
|
22
|
+
--card-glow-color: 255, 230, 0;
|
|
23
|
+
|
|
24
|
+
/* ── Modal ── */
|
|
25
|
+
--modal-bg: rgba(46, 46, 56, 0.85);
|
|
26
|
+
|
|
27
|
+
/* ── Tooltip ── */
|
|
28
|
+
--tooltip-bg: rgba(46, 46, 56, 0.85);
|
|
29
|
+
}
|