@iamfiro/design 0.1.0 → 0.3.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/AGENTS.md +1 -0
- package/agents/INDEX.md +1 -0
- package/agents/brand-icon/AGENTS.md +2 -2
- package/agents/social-login-button/AGENTS.md +156 -0
- package/lib/components/Accordion/Accordion2.js +135 -0
- package/lib/components/ActionBar/ActionBar2.js +65 -0
- package/lib/components/Alert/Alert2.js +131 -0
- package/lib/components/AppShell/AppShell2.js +94 -0
- package/lib/components/AreaChart/AreaChart.js +59 -0
- package/lib/components/BarChart/BarChart2.js +243 -0
- package/lib/components/BarList/BarList2.js +172 -0
- package/lib/components/Breadcrumb/Breadcrumb2.js +87 -0
- package/lib/components/Calendar/Calendar2.js +309 -0
- package/lib/components/Calendar/DatePicker2.js +229 -0
- package/lib/components/Calendar/date.js +121 -0
- package/lib/components/Card/Card2.js +104 -0
- package/lib/components/CardFrame/CardFrame2.js +72 -0
- package/lib/components/Chart/ChartParts.js +150 -0
- package/lib/components/Chart/chart2.js +96 -0
- package/lib/components/Chart/useChartInteraction.js +94 -0
- package/lib/components/ChatBubble/ChatBubble2.js +174 -0
- package/lib/components/ChatBubble/formatChatTime.js +53 -0
- package/lib/components/ChatComposer/ChatComposer2.js +153 -0
- package/lib/components/CodeBlock/CodeBlock2.js +93 -0
- package/lib/components/CodeBlock/highlight.js +114 -0
- package/lib/components/ColorPicker/ColorPicker2.js +610 -0
- package/lib/components/ColorPicker/color.js +180 -0
- package/lib/components/ColorPicker/presets.js +75 -0
- package/lib/components/Combobox/Combobox2.js +229 -0
- package/lib/components/CommandMenu/CommandMenu.js +267 -0
- package/lib/components/Comment/Comment2.js +134 -0
- package/lib/components/ContextMenu/ContextMenu2.js +168 -0
- package/lib/components/DataGrid/DataGrid2.js +1996 -0
- package/lib/components/DataGrid/GridPopover.js +154 -0
- package/lib/components/DataGrid/anchor.js +50 -0
- package/lib/components/DataGrid/model.js +558 -0
- package/lib/components/DataGrid/panels.js +703 -0
- package/lib/components/DataGrid/typeMeta.js +76 -0
- package/lib/components/DataGrid/types.js +54 -0
- package/lib/components/DescriptionList/DescriptionList2.js +180 -0
- package/lib/components/Dialog/AlertDialog.js +118 -0
- package/lib/components/Dialog/Dialog2.js +109 -0
- package/lib/components/Dialog/modal.js +92 -0
- package/lib/components/Drawer/Drawer2.js +244 -0
- package/lib/components/DropdownMenu/DropdownMenu2.js +394 -0
- package/lib/components/DropdownMenu/menuCore.js +63 -0
- package/lib/components/Dropzone/Dropzone2.js +144 -0
- package/lib/components/EmptyState/EmptyState2.js +72 -0
- package/lib/components/FileChip/FileChip2.js +118 -0
- package/lib/components/FileUpload/FileUpload.js +258 -0
- package/lib/components/FilterChips/FilterChips2.js +101 -0
- package/lib/components/FunnelChart/FunnelChart2.js +283 -0
- package/lib/components/FunnelChart/funnel.js +69 -0
- package/lib/components/Highlight/Highlight2.js +100 -0
- package/lib/components/HoverCard/HoverCard.js +134 -0
- package/lib/components/InlineDiff/InlineDiff2.js +215 -0
- package/lib/components/InlineDiff/diff.js +126 -0
- package/lib/components/InlineDiff/useDiffReview.js +109 -0
- package/lib/components/Kanban/Kanban2.js +691 -0
- package/lib/components/Kanban/KanbanCard.js +159 -0
- package/lib/components/Kanban/move.js +69 -0
- package/lib/components/LineChart/LineChart2.js +342 -0
- package/lib/components/List/List2.js +133 -0
- package/lib/components/Listbox/Listbox2.js +163 -0
- package/lib/components/Marker/Marker2.js +82 -0
- package/lib/components/Menubar/Menubar2.js +223 -0
- package/lib/components/MultiSelect/MultiSelect2.js +204 -0
- package/lib/components/NavigationMenu/NavigationMenu2.js +481 -0
- package/lib/components/NoticeStack/NoticeStack2.js +178 -0
- package/lib/components/NumberStepper/NumberStepper2.js +129 -0
- package/lib/components/OtpInput/OtpInput2.js +122 -0
- package/lib/components/Pagination/Pagination2.js +210 -0
- package/lib/components/Pagination/paginationRange.js +53 -0
- package/lib/components/PhoneInput/PhoneInput.js +175 -0
- package/lib/components/PieChart/PieChart2.js +246 -0
- package/lib/components/PieChart/arc.js +66 -0
- package/lib/components/PieChart/useArcTween.js +94 -0
- package/lib/components/Popover/Popover2.js +112 -0
- package/lib/components/ProgressTracker/ProgressTracker2.js +226 -0
- package/lib/components/Rating/Rating2.js +186 -0
- package/lib/components/Resizable/Resizable2.js +236 -0
- package/lib/components/Resizable/layout.js +115 -0
- package/lib/components/ScaledPreview/ScaledPreview2.js +100 -0
- package/lib/components/ScatterChart/ScatterChart2.js +356 -0
- package/lib/components/ScatterChart/scatter.js +83 -0
- package/lib/components/ScrollArea/ScrollArea2.js +218 -0
- package/lib/components/Select/Select2.js +153 -0
- package/lib/components/Sidebar/Sidebar2.js +127 -0
- package/lib/components/Skeleton/Skeleton2.js +91 -0
- package/lib/components/Slider/Slider2.js +142 -0
- package/lib/components/SocialLoginButton/SocialLoginButton.js +85 -0
- package/lib/components/SparkChart/SparkChart2.js +217 -0
- package/lib/components/SparkChart/spark.js +76 -0
- package/lib/components/Sparkbar/Sparkbar2.js +111 -0
- package/lib/components/SplitView/SplitView2.js +95 -0
- package/lib/components/Stat/Stat2.js +164 -0
- package/lib/components/StepList/StepList2.js +131 -0
- package/lib/components/Table/Table2.js +104 -0
- package/lib/components/Tabs/Tabs2.js +131 -0
- package/lib/components/TagInput/TagInput2.js +360 -0
- package/lib/components/TimePicker/TimePicker2.js +388 -0
- package/lib/components/TimePicker/time.js +83 -0
- package/lib/components/Timeline/Timeline2.js +369 -0
- package/lib/components/Timeline/scale.js +83 -0
- package/lib/components/Toast/Toaster.js +212 -0
- package/lib/components/Toast/store.js +129 -0
- package/lib/components/ToggleGroup/ToggleGroup2.js +125 -0
- package/lib/components/Toolbar/Toolbar2.js +281 -0
- package/lib/components/Tracker/Tracker2.js +172 -0
- package/lib/components/TreeDiagram/TreeDiagram2.js +223 -0
- package/lib/components/TreeView/TreeView2.js +284 -0
- package/lib/hooks/timing.js +55 -0
- package/lib/hooks/useControllableState.js +49 -0
- package/lib/hooks/useCountdown.js +80 -0
- package/lib/hooks/useDigitInput.js +105 -0
- package/lib/hooks/useDismiss.js +71 -0
- package/lib/hooks/useElapsed.js +83 -0
- package/lib/hooks/useFloating.js +70 -0
- package/lib/hooks/useFocusTrap.js +61 -0
- package/lib/hooks/usePresence.js +60 -0
- package/lib/hooks/usePressToOpen.js +69 -0
- package/lib/hooks/useScrollLock.js +70 -0
- package/lib/hooks/useSelection.js +68 -0
- package/lib/index.js +175 -17911
- package/lib/primitives/AspectRatio2.js +80 -0
- package/lib/primitives/BrandIcon.js +245 -0
- package/lib/primitives/ColorDot2.js +70 -0
- package/lib/primitives/CopyButton2.js +85 -0
- package/lib/primitives/CountBadge2.js +78 -0
- package/lib/primitives/Countdown2.js +65 -0
- package/lib/primitives/Delta2.js +67 -0
- package/lib/primitives/Elapsed.js +62 -0
- package/lib/primitives/FileIcon2.js +125 -0
- package/lib/primitives/Flag2.js +263 -0
- package/lib/primitives/IconStack2.js +85 -0
- package/lib/primitives/IconTile2.js +68 -0
- package/lib/primitives/Kbd2.js +88 -0
- package/lib/primitives/Layout2.js +118 -0
- package/lib/primitives/Link2.js +53 -0
- package/lib/primitives/MaskedText2.js +120 -0
- package/lib/primitives/Progress2.js +137 -0
- package/lib/primitives/RelativeTime.js +84 -0
- package/lib/primitives/SearchInput2.js +84 -0
- package/lib/primitives/SelectorButton2.js +97 -0
- package/lib/primitives/Spinner2.js +98 -0
- package/lib/primitives/StatusIcon2.js +126 -0
- package/lib/primitives/Swatch2.js +79 -0
- package/lib/primitives/Tooltip2.js +132 -0
- package/lib/primitives/Typography2.js +97 -0
- package/lib/primitives/formatCountdown.js +51 -0
- package/lib/primitives/formatElapsed.js +66 -0
- package/lib/primitives/formatRelativeTime.js +64 -0
- package/lib/primitives/hotkey.js +94 -0
- package/lib/primitives/index.js +352 -0
- package/lib/primitives/maskValue.js +65 -0
- package/lib/style.css +1 -1
- package/lib/types/components/SocialLoginButton/SocialLoginButton.d.ts +10 -0
- package/lib/types/components/index.d.ts +2 -0
- package/lib/types/primitives/BrandIcon.d.ts +1 -1
- package/package.json +2 -1
package/AGENTS.md
CHANGED
|
@@ -55,6 +55,7 @@ export function App() {
|
|
|
55
55
|
| --- | --- |
|
|
56
56
|
| 앱 뼈대 · 사이드바 · 상단 경로 | `AppShell` · `Sidebar` · `Breadcrumb` |
|
|
57
57
|
| 버튼 · 아이콘 버튼 · 링크 | `Button`(`iconOnly` + `aria-label` + `Tooltip`) · `Link` |
|
|
58
|
+
| Google · Apple 로그인 | `SocialLoginButton`(`provider` · `action`) — 로고 · 브랜드 색을 직접 그리지 않는다 |
|
|
58
59
|
| 콘텐츠 묶음 | `Card` + `CardHeader` / `CardBody` / `CardFooter` |
|
|
59
60
|
| 사람 · 파일 · 설정 행 목록 | `List` + `ListItem`(`leading` · `trailing`) + `Avatar` / `IconTile` |
|
|
60
61
|
| 폼 | `Field` + `Input` / `Textarea` / `Select` / `Combobox` / `Checkbox` / `Switch` / `DatePicker` |
|
package/agents/INDEX.md
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
- **SelectorButton** — 지금 선택된 것을 보여 주고 눌러서 바꾸는 조용한 버튼. → [`agents/selector-button/AGENTS.md`](selector-button/AGENTS.md)
|
|
19
19
|
- **Link** — 글 속 링크. → [`agents/link/AGENTS.md`](link/AGENTS.md)
|
|
20
20
|
- **ActionBar** — 상세 화면 · 검토 화면 아래에 붙는 동작 바. → [`agents/action-bar/AGENTS.md`](action-bar/AGENTS.md)
|
|
21
|
+
- **SocialLoginButton** — Google · Apple 계정으로 로그인하는 버튼. → [`agents/social-login-button/AGENTS.md`](social-login-button/AGENTS.md)
|
|
21
22
|
- **Toolbar** — 버튼 · 토글 · ToggleGroup · 메뉴 트리거를 한 줄로 묶는 WAI-ARIA 툴바. → [`agents/toolbar/AGENTS.md`](toolbar/AGENTS.md)
|
|
22
23
|
|
|
23
24
|
## 라벨 & 배지
|
|
@@ -14,7 +14,7 @@ import { BrandIcon, BRAND_NAMES } from '@iamfiro/design'
|
|
|
14
14
|
|
|
15
15
|
| prop | 타입 | 기본값 | 설명 |
|
|
16
16
|
| --- | --- | --- | --- |
|
|
17
|
-
| `name` (필수) | `'gmail' \| 'slack' \| 'clickup' \| 'figma' \| 'github' \| 'hubspot' \| 'notion' \| 'google-calendar'` | | 앱. |
|
|
17
|
+
| `name` (필수) | `'gmail' \| 'slack' \| 'clickup' \| 'figma' \| 'github' \| 'hubspot' \| 'notion' \| 'google-calendar' \| 'google' \| 'apple'` | | 앱. |
|
|
18
18
|
| `size` | `number` | `18` | 가로·세로(px). |
|
|
19
19
|
| `title` | `string` | | 접근성 이름. 없으면 장식으로 취급해요(옆에 글자가 있을 때). |
|
|
20
20
|
| `className` | `string` | | svg에 붙일 클래스. |
|
|
@@ -25,7 +25,7 @@ import { BrandIcon, BRAND_NAMES } from '@iamfiro/design'
|
|
|
25
25
|
|
|
26
26
|
### 로고 목록
|
|
27
27
|
|
|
28
|
-
지금 들어 있는 로고
|
|
28
|
+
지금 들어 있는 로고 10개(Gmail, Slack, ClickUp, Figma, GitHub, HubSpot, Notion, Google Calendar, Google, Apple). Apple은 한 색 로고라 글자색을 따라요. 새 앱은 BrandIcon.tsx의 MARKS에 추가해요.
|
|
29
29
|
|
|
30
30
|
```tsx
|
|
31
31
|
import { BRAND_NAMES, BrandIcon, Inline, Stack, Text } from '@iamfiro/design'
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# SocialLoginButton
|
|
2
|
+
|
|
3
|
+
> 버튼 & 링크 · `@iamfiro/design` · 직접 만들지 말고 이 컴포넌트를 쓴다.
|
|
4
|
+
|
|
5
|
+
Google · Apple 계정으로 로그인하는 버튼. 각 브랜드 가이드대로 Google은 흰 바탕 + 옅은 윤곽 + 색 G 로고, Apple은 검정 바탕 + 흰 로고예요. 문구는 action으로 고르고, 나머지 props는 Button과 같아요.
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { SocialLoginButton } from '@iamfiro/design'
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## API
|
|
12
|
+
|
|
13
|
+
### SocialLoginButton
|
|
14
|
+
|
|
15
|
+
variant · icon은 provider가 정해요. 나머지 props(size · block · loading · disabled · onClick…)는 Button에 그대로 전달돼요.
|
|
16
|
+
|
|
17
|
+
| prop | 타입 | 기본값 | 설명 |
|
|
18
|
+
| --- | --- | --- | --- |
|
|
19
|
+
| `provider` (필수) | `'google' \| 'apple'` | | 로그인 제공자. 색 · 로고 · 이름이 정해져요. |
|
|
20
|
+
| `action` | `'continue' \| 'signin' \| 'signup'` | `'continue'` | "Google로 계속하기" · "Google로 로그인" · "Google로 가입하기". |
|
|
21
|
+
| `children` | `ReactNode` | | 문구를 직접 바꿀 때. |
|
|
22
|
+
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | 높이 28 / 34 / 40px. 로고는 14 / 16 / 18px. |
|
|
23
|
+
| `iconOnly` | `boolean` | | 로고만 보이는 정사각형 버튼. aria-label은 문구로 붙어요. |
|
|
24
|
+
| `block` | `boolean` | | 너비 100%. |
|
|
25
|
+
| `loading` | `boolean` | | 로고 자리에 스피너, 클릭 막음. 인증 창으로 넘어가는 동안 써요. |
|
|
26
|
+
|
|
27
|
+
## 예제
|
|
28
|
+
|
|
29
|
+
예제를 감싼 `style={{ ... }}` div는 미리보기 배치용이다. 실제 화면 배치는 `Stack` · `Inline` · `Grid`로 한다.
|
|
30
|
+
|
|
31
|
+
### 기본
|
|
32
|
+
|
|
33
|
+
로그인 화면에선 block으로 폭을 채워 위아래로 쌓아요. 순서는 보통 Google → Apple.
|
|
34
|
+
|
|
35
|
+
```tsx
|
|
36
|
+
import { SocialLoginButton, Stack } from '@iamfiro/design'
|
|
37
|
+
|
|
38
|
+
export default function Example() {
|
|
39
|
+
return (
|
|
40
|
+
<Stack gap={2} style={{ width: 320 }}>
|
|
41
|
+
<SocialLoginButton provider="google" size="lg" block />
|
|
42
|
+
<SocialLoginButton provider="apple" size="lg" block />
|
|
43
|
+
</Stack>
|
|
44
|
+
)
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 문구
|
|
49
|
+
|
|
50
|
+
action='continue'(기본) · 'signin' · 'signup'. 로그인과 가입을 한 화면에서 받으면 continue를 써요.
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
import { SocialLoginButton, Inline, Stack } from '@iamfiro/design'
|
|
54
|
+
|
|
55
|
+
export default function Example() {
|
|
56
|
+
return (
|
|
57
|
+
<Stack gap={3}>
|
|
58
|
+
<Inline gap={2}>
|
|
59
|
+
<SocialLoginButton provider="google" action="continue" />
|
|
60
|
+
<SocialLoginButton provider="google" action="signin" />
|
|
61
|
+
<SocialLoginButton provider="google" action="signup" />
|
|
62
|
+
</Inline>
|
|
63
|
+
<Inline gap={2}>
|
|
64
|
+
<SocialLoginButton provider="apple" action="continue" />
|
|
65
|
+
<SocialLoginButton provider="apple" action="signin" />
|
|
66
|
+
<SocialLoginButton provider="apple" action="signup" />
|
|
67
|
+
</Inline>
|
|
68
|
+
</Stack>
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### 크기 · 아이콘만
|
|
74
|
+
|
|
75
|
+
sm · md · lg는 Button과 같은 높이. iconOnly면 로고만 보이고 aria-label은 문구로 자동으로 붙어요.
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
import { SocialLoginButton, Inline, Stack } from '@iamfiro/design'
|
|
79
|
+
|
|
80
|
+
export default function Example() {
|
|
81
|
+
return (
|
|
82
|
+
<Stack gap={3}>
|
|
83
|
+
<Inline gap={2}>
|
|
84
|
+
<SocialLoginButton provider="google" size="sm" />
|
|
85
|
+
<SocialLoginButton provider="google" />
|
|
86
|
+
<SocialLoginButton provider="google" size="lg" />
|
|
87
|
+
</Inline>
|
|
88
|
+
<Inline gap={2}>
|
|
89
|
+
<SocialLoginButton provider="google" iconOnly />
|
|
90
|
+
<SocialLoginButton provider="apple" iconOnly />
|
|
91
|
+
<SocialLoginButton provider="google" size="lg" iconOnly />
|
|
92
|
+
<SocialLoginButton provider="apple" size="lg" iconOnly />
|
|
93
|
+
</Inline>
|
|
94
|
+
</Stack>
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 로그인 카드
|
|
100
|
+
|
|
101
|
+
Card 안에 소셜 버튼 → "또는" Separator → 이메일 입력. 누르면 loading으로 잠가 두 번 눌리지 않게 해요.
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
import { useState } from 'react'
|
|
105
|
+
import { Card, CardBody, CardHeader, SocialLoginButton, type SocialProvider, Button, Field, Input, Separator, Stack, Text } from '@iamfiro/design'
|
|
106
|
+
|
|
107
|
+
export default function Example() {
|
|
108
|
+
const [pending, setPending] = useState<SocialProvider | null>(null)
|
|
109
|
+
|
|
110
|
+
// 실제 앱에선 여기서 OAuth 창으로 넘어가요. 예제는 2초 뒤 풀어요.
|
|
111
|
+
const signIn = (provider: SocialProvider) => {
|
|
112
|
+
setPending(provider)
|
|
113
|
+
window.setTimeout(() => setPending(null), 2000)
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return (
|
|
117
|
+
<Card style={{ width: 360 }}>
|
|
118
|
+
<CardHeader title="Lumen에 로그인" description="팀 워크스페이스로 계속하려면 로그인하세요." />
|
|
119
|
+
<CardBody>
|
|
120
|
+
<Stack gap={4}>
|
|
121
|
+
<Stack gap={2}>
|
|
122
|
+
<SocialLoginButton
|
|
123
|
+
provider="google"
|
|
124
|
+
size="lg"
|
|
125
|
+
block
|
|
126
|
+
loading={pending === 'google'}
|
|
127
|
+
disabled={pending !== null}
|
|
128
|
+
onClick={() => signIn('google')}
|
|
129
|
+
/>
|
|
130
|
+
<SocialLoginButton
|
|
131
|
+
provider="apple"
|
|
132
|
+
size="lg"
|
|
133
|
+
block
|
|
134
|
+
loading={pending === 'apple'}
|
|
135
|
+
disabled={pending !== null}
|
|
136
|
+
onClick={() => signIn('apple')}
|
|
137
|
+
/>
|
|
138
|
+
</Stack>
|
|
139
|
+
<Separator label="또는" />
|
|
140
|
+
<Stack gap={3}>
|
|
141
|
+
<Field label="이메일" htmlFor="login-email">
|
|
142
|
+
<Input id="login-email" type="email" placeholder="minji@lumen.co" />
|
|
143
|
+
</Field>
|
|
144
|
+
<Button variant="secondary" size="lg" block>
|
|
145
|
+
이메일로 계속하기
|
|
146
|
+
</Button>
|
|
147
|
+
</Stack>
|
|
148
|
+
<Text variant="caption" tone="secondary">
|
|
149
|
+
계속하면 서비스 약관과 개인정보 처리방침에 동의하게 돼요.
|
|
150
|
+
</Text>
|
|
151
|
+
</Stack>
|
|
152
|
+
</CardBody>
|
|
153
|
+
</Card>
|
|
154
|
+
)
|
|
155
|
+
}
|
|
156
|
+
```
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
function e() {
|
|
3
|
+
let t = /* @__PURE__ */ "zhmTzgLZy2XVC3vYzs0TzMX1C2G.zhmTzgLZy2XVC3vYzv9Fy29UDgvUDa.zgvMyxvSDa.AxntzwXLy3rLza.Dg9Nz2XL.yNv0Dg9U.zMLSDgvY.sg9Tzq.C3bHBG.mta1mduXmhvRsKTOAG.zgL2.zhmTzgLZy2XVC3vYzv9FzM9Sza.zhmTzgLZy2XVC3vYzv9FDhjPz2DLCG.y2XVC2vZDa.zhmTzgLZy2XVC3vYzv9FDgv4Da.ChjLDMvUDerLzMf1Bhq.A2v5.mti5ntaWne9xuLLlBq.ntu2nZqWoeflqvLbEa.lMrZlwfJy29YzgLVBG.zhmTzgLZy2XVC3vYzv9FAwnVBG.qxjYB3DvCa.CgXHAw4.BgvUz3rO.CxvLCNLtzwXLy3rVCKfSBa.lxjLz2LVBG.CMvNAw9U.sxrLBq.zhmTywnJB3jKAw9Uls0.zM9JDxm.nty0ntu0nuHyu1PrDq.lxrYAwDNzxi.lMrZlwrPC2nSB3n1CMvFx3rYAwDNzxi6BM90kdPKAxnHyMXLzcK.ntG3mtn5C0fZyM0.ote4ndm3zvLsEuLO.y3vYCMvUDa.Aw5SAw5L.mtmZodmXmKX0r0DhwG.Aw5KzxHpzG.zhmTzgLZy2XVC3vYzq.zhmTzgLZy2XVC3vYzv9FAw5Uzxi.zhmTzgLZy2XVC3vYzv9FzgvZyW.AxnpCgvU.zhmTzgLZy2XVC3vYzv9FBgfIzwW".split(".");
|
|
4
|
+
return e = function() {
|
|
5
|
+
return t;
|
|
6
|
+
}, e();
|
|
7
|
+
}
|
|
8
|
+
const t = h;
|
|
9
|
+
(function(e, t) {
|
|
10
|
+
let n = h, r = e();
|
|
11
|
+
for (;;) try {
|
|
12
|
+
if (parseInt(n(361)) / 1 + -parseInt(n(380)) / 2 + parseInt(n(360)) / 3 + parseInt(n(364)) / 4 + -parseInt(n(357)) / 5 + parseInt(n(388)) / 6 + parseInt(n(389)) / 7 == t) break;
|
|
13
|
+
r.push(r.shift());
|
|
14
|
+
} catch {
|
|
15
|
+
r.push(r.shift());
|
|
16
|
+
}
|
|
17
|
+
})(e, 629400);
|
|
18
|
+
import { useControllableState as n } from "../../hooks/useControllableState.js";
|
|
19
|
+
import { cx as r } from "../../primitives/index.js";
|
|
20
|
+
import { useSelection as i } from "../../hooks/useSelection.js";
|
|
21
|
+
/* empty css */
|
|
22
|
+
import { createContext as a, useContext as o, useId as s, useRef as c } from "react";
|
|
23
|
+
import { ChevronDown as l } from "lucide-react";
|
|
24
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
25
|
+
function f({ open: e, defaultOpen: t = !1, onOpenChange: r, ...i }) {
|
|
26
|
+
let [a, o] = n(e, t, r);
|
|
27
|
+
return u(p, {
|
|
28
|
+
...i,
|
|
29
|
+
open: a,
|
|
30
|
+
onToggle: () => o(!a)
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function p({ label: e, description: n, icon: i, disabled: a, open: o, onToggle: c, children: f, variant: p = t(373), iconTone: m = "default", className: h }) {
|
|
34
|
+
let g = t, _ = s(), v = p === "inline" ? g(381) : "h3";
|
|
35
|
+
return d(g(381), {
|
|
36
|
+
className: r(g(366), p === g(363) && "ds-disclosure--inline", h),
|
|
37
|
+
"data-open": o || void 0,
|
|
38
|
+
"data-disabled": a || void 0,
|
|
39
|
+
children: [u(v, {
|
|
40
|
+
className: "ds-disclosure__heading",
|
|
41
|
+
children: d(g(376), {
|
|
42
|
+
type: g(376),
|
|
43
|
+
id: _ + g(358),
|
|
44
|
+
"aria-expanded": o,
|
|
45
|
+
"aria-controls": _ + g(396),
|
|
46
|
+
disabled: a,
|
|
47
|
+
className: g(383),
|
|
48
|
+
onClick: c,
|
|
49
|
+
children: [
|
|
50
|
+
i && u(g(379), {
|
|
51
|
+
className: g(391),
|
|
52
|
+
"data-tone": m === "default" ? void 0 : m,
|
|
53
|
+
children: i
|
|
54
|
+
}),
|
|
55
|
+
d(g(379), {
|
|
56
|
+
className: g(385),
|
|
57
|
+
children: [u(g(379), {
|
|
58
|
+
className: g(370),
|
|
59
|
+
children: e
|
|
60
|
+
}), n && u(g(379), {
|
|
61
|
+
className: g(368),
|
|
62
|
+
children: n
|
|
63
|
+
})]
|
|
64
|
+
}),
|
|
65
|
+
u(l, {
|
|
66
|
+
className: "ds-disclosure__chevron",
|
|
67
|
+
"aria-hidden": !0
|
|
68
|
+
})
|
|
69
|
+
]
|
|
70
|
+
})
|
|
71
|
+
}), u(g(381), {
|
|
72
|
+
id: _ + g(396),
|
|
73
|
+
role: g(397),
|
|
74
|
+
"aria-labelledby": _ + g(358),
|
|
75
|
+
className: g(382),
|
|
76
|
+
inert: !o || void 0,
|
|
77
|
+
children: u("div", {
|
|
78
|
+
className: g(367),
|
|
79
|
+
children: u(g(381), {
|
|
80
|
+
className: g(372),
|
|
81
|
+
children: f
|
|
82
|
+
})
|
|
83
|
+
})
|
|
84
|
+
})]
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
var m = a(null);
|
|
88
|
+
function h(t, n) {
|
|
89
|
+
t -= 355;
|
|
90
|
+
let r = e(), i = r[t];
|
|
91
|
+
h.rDemQm === void 0 && (h.NLxyOx = function(e) {
|
|
92
|
+
let t = "", n = "";
|
|
93
|
+
for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
|
|
94
|
+
for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
|
|
95
|
+
return decodeURIComponent(n);
|
|
96
|
+
}, h.wVZXmv = {}, h.rDemQm = !0);
|
|
97
|
+
let a = r[0];
|
|
98
|
+
h.BkMNcy !== a && (h.wVZXmv = {}, h.BkMNcy = a);
|
|
99
|
+
let o = h.wVZXmv[t];
|
|
100
|
+
return o === void 0 ? (i = h.NLxyOx(i), h.wVZXmv[t] = i) : i = o, i;
|
|
101
|
+
}
|
|
102
|
+
function g({ variant: e = t(393), children: n, className: a, style: o, ...s }) {
|
|
103
|
+
let l = t, d = i(s), f = c(null);
|
|
104
|
+
return u(m.Provider, {
|
|
105
|
+
value: {
|
|
106
|
+
isOpen: d[l(374)],
|
|
107
|
+
toggle: d[l(375)]
|
|
108
|
+
},
|
|
109
|
+
children: u(l(381), {
|
|
110
|
+
ref: f,
|
|
111
|
+
className: r("ds-accordion", l(355) + e, a),
|
|
112
|
+
style: o,
|
|
113
|
+
onKeyDown: (e) => {
|
|
114
|
+
let t = h, n = [...f[t(362)]?.[t(395)](t(359)) ?? []][t(377)]((e) => e[t(384)](t(390)) === f[t(362)]), r = n[t(365)](document.activeElement);
|
|
115
|
+
if (r < 0) return;
|
|
116
|
+
let i;
|
|
117
|
+
e[t(387)] === "ArrowDown" ? i = n[(r + 1) % n[t(394)]] : e[t(387)] === t(392) ? i = n[(r - 1 + n.length) % n[t(394)]] : e[t(387)] === t(378) ? i = n[0] : e[t(387)] === "End" && (i = n[n[t(394)] - 1]), i && (e[t(386)](), i[t(356)]());
|
|
118
|
+
},
|
|
119
|
+
children: n
|
|
120
|
+
})
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
function _({ value: e, title: n, flush: r, ...i }) {
|
|
124
|
+
let a = t, s = o(m);
|
|
125
|
+
if (!s) throw Error("AccordionItem must be used inside <Accordion>");
|
|
126
|
+
return u(p, {
|
|
127
|
+
...i,
|
|
128
|
+
className: r ? a(371) : void 0,
|
|
129
|
+
label: n,
|
|
130
|
+
open: s[a(369)](e),
|
|
131
|
+
onToggle: () => s.toggle(e)
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
g[t(398)] = _;
|
|
135
|
+
export { g as Accordion, _ as AccordionItem, f as Collapsible };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var e = i;
|
|
3
|
+
(function(e, t) {
|
|
4
|
+
for (var n = i, r = e();;) try {
|
|
5
|
+
if (parseInt(n(274)) / 1 + parseInt(n(271)) / 2 * (-parseInt(n(266)) / 3) + -parseInt(n(269)) / 4 * (parseInt(n(262)) / 5) + parseInt(n(259)) / 6 * (-parseInt(n(264)) / 7) + parseInt(n(270)) / 8 * (parseInt(n(268)) / 9) + parseInt(n(267)) / 10 + -parseInt(n(272)) / 11 == t) break;
|
|
6
|
+
r.push(r.shift());
|
|
7
|
+
} catch {
|
|
8
|
+
r.push(r.shift());
|
|
9
|
+
}
|
|
10
|
+
})(n, 666149);
|
|
11
|
+
import { cx as t } from "../../primitives/index.js";
|
|
12
|
+
/* empty css */
|
|
13
|
+
function n() {
|
|
14
|
+
var e = [
|
|
15
|
+
"mZG5mta4ngDOu1n1ra",
|
|
16
|
+
"zhmTywn0Aw9UlwjHCI0T",
|
|
17
|
+
"zMLLBgrZzxq",
|
|
18
|
+
"ntC4nunYyxvyEa",
|
|
19
|
+
"y2vUDgvY",
|
|
20
|
+
"n2zttwjbCG",
|
|
21
|
+
"zhmTywn0Aw9UlwjHCL9Fz3jVDxa",
|
|
22
|
+
"m1PZvg9HBq",
|
|
23
|
+
"mZG2nJiXmgLMwfLqEq",
|
|
24
|
+
"mtCWnJG0mwvRsvH3CW",
|
|
25
|
+
"nJi4wxDoveXt",
|
|
26
|
+
"ntzrzfrZEeK",
|
|
27
|
+
"ntC3ode4yuPNtwrT",
|
|
28
|
+
"mteZmZaZnJntyNbls2i",
|
|
29
|
+
"zgL2",
|
|
30
|
+
"mteWmta5mgL5Cfn4zq"
|
|
31
|
+
];
|
|
32
|
+
return n = function() {
|
|
33
|
+
return e;
|
|
34
|
+
}, n();
|
|
35
|
+
}
|
|
36
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
37
|
+
function i(e, t) {
|
|
38
|
+
e -= 259;
|
|
39
|
+
var r = n(), a = r[e];
|
|
40
|
+
i.hnVKUd === void 0 && (i.EsmgwF = function(e) {
|
|
41
|
+
for (var t = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=", n = "", r = "", i = 0, a, o, s = 0; o = e.charAt(s++); ~o && (a = i % 4 ? a * 64 + o : o, i++ % 4) && (n += String.fromCharCode(255 & a >> (-2 * i & 6)))) o = t.indexOf(o);
|
|
42
|
+
for (var c = 0, l = n.length; c < l; c++) r += "%" + ("00" + n.charCodeAt(c).toString(16)).slice(-2);
|
|
43
|
+
return decodeURIComponent(r);
|
|
44
|
+
}, i.ucYSUe = {}, i.hnVKUd = !0);
|
|
45
|
+
var o = r[0];
|
|
46
|
+
i.SzOtaB !== o && (i.ucYSUe = {}, i.SzOtaB = o);
|
|
47
|
+
var s = i.ucYSUe[e];
|
|
48
|
+
return s === void 0 ? (a = i.EsmgwF(a), i.ucYSUe[e] = a) : a = s, a;
|
|
49
|
+
}
|
|
50
|
+
function a({ children: n, align: i = e(263), sticky: a = !0, pending: o, "aria-label": s, className: c, style: l }) {
|
|
51
|
+
var u = e;
|
|
52
|
+
return r(u(273), {
|
|
53
|
+
className: t("ds-action-bar", u(260) + i, a && "ds-action-bar--sticky", c),
|
|
54
|
+
"data-pending": o || void 0,
|
|
55
|
+
style: l,
|
|
56
|
+
children: r(u(261), {
|
|
57
|
+
className: u(265),
|
|
58
|
+
disabled: o,
|
|
59
|
+
"aria-label": s,
|
|
60
|
+
"aria-busy": o || void 0,
|
|
61
|
+
children: n
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
export { a as ActionBar };
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const e = n;
|
|
3
|
+
(function(e, t) {
|
|
4
|
+
let r = n, i = e();
|
|
5
|
+
for (;;) try {
|
|
6
|
+
if (parseInt(r(275)) / 1 + parseInt(r(288)) / 2 * (parseInt(r(286)) / 3) + parseInt(r(274)) / 4 + -parseInt(r(271)) / 5 + parseInt(r(294)) / 6 + -parseInt(r(296)) / 7 + -parseInt(r(278)) / 8 * (parseInt(r(293)) / 9) == t) break;
|
|
7
|
+
i.push(i.shift());
|
|
8
|
+
} catch {
|
|
9
|
+
i.push(i.shift());
|
|
10
|
+
}
|
|
11
|
+
})(t, 793408);
|
|
12
|
+
function t() {
|
|
13
|
+
let e = /* @__PURE__ */ "Aw5SAw5L.zhmTywXLCNrFx2fJDgLVBNm.zhmTyMfUBMvY.C2v0vgLTzw91Da.zhmTywXLCNrFx2nSB3nL.zhmTywXLCNrFx2nVBNrLBNq.mtmYmtu4mxz0s2Putq.zhmTyMfUBMvYls1MBhvZAa.nNbmALHrAq.7jwm66A8ioUlQ+Q4Sa.zhmTywXLCNqTlq.Aw5MBW.zhmTywXLCNrFx2jVzhK.mJy0otyYn0jKtNnuDW.nZeXotq5mM5tr21pwa.C3rHy2TLza.mJC0otmYmhnvAgrOtG.67cW64siioUlQ+Q4Sa.D2fYBMLUzW.C3rHDhvZ.zgL2.mZe5nZq5nuD2vfLUDW.C3bHBG.zhmTywXLCNrFx3rPDgXL.mZG5mtG0D0nmuuvo.mZK3odiWCwLRCLLI.ywXLCNq.zhmTyMfUBMvYx19JBg9Zzq.mZjquw5eB2G.z2HVC3q".split(".");
|
|
14
|
+
return t = function() {
|
|
15
|
+
return e;
|
|
16
|
+
}, t();
|
|
17
|
+
}
|
|
18
|
+
function n(e, r) {
|
|
19
|
+
e -= 268;
|
|
20
|
+
let i = t(), a = i[e];
|
|
21
|
+
n.oiQEtD === void 0 && (n.iWXCZG = function(e) {
|
|
22
|
+
let t = "", n = "";
|
|
23
|
+
for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
|
|
24
|
+
for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
|
|
25
|
+
return decodeURIComponent(n);
|
|
26
|
+
}, n.GbqVOg = {}, n.oiQEtD = !0);
|
|
27
|
+
let o = i[0];
|
|
28
|
+
n.SkuZIv !== o && (n.GbqVOg = {}, n.SkuZIv = o);
|
|
29
|
+
let s = n.GbqVOg[e];
|
|
30
|
+
return s === void 0 ? (a = n.iWXCZG(a), n.GbqVOg[e] = a) : a = s, a;
|
|
31
|
+
}
|
|
32
|
+
import { Button as r, cx as i } from "../../primitives/index.js";
|
|
33
|
+
/* empty css */
|
|
34
|
+
import { useState as a } from "react";
|
|
35
|
+
import { AlertTriangle as o, CheckCircle2 as s, Info as c, X as l, XCircle as u } from "lucide-react";
|
|
36
|
+
import { jsx as d, jsxs as f } from "react/jsx-runtime";
|
|
37
|
+
var p = {
|
|
38
|
+
neutral: d(c, {}),
|
|
39
|
+
info: d(c, {}),
|
|
40
|
+
success: d(s, {}),
|
|
41
|
+
warning: d(o, {}),
|
|
42
|
+
danger: d(u, {})
|
|
43
|
+
}, m = 260;
|
|
44
|
+
function h({ tone: t = e(291), title: o, children: s, icon: c, actions: u, onClose: h, layout: g = e(295), className: _ }) {
|
|
45
|
+
let v = e, [y, b] = a(!1);
|
|
46
|
+
return d(v(270), {
|
|
47
|
+
className: "ds-alert-wrap",
|
|
48
|
+
"data-leaving": y || void 0,
|
|
49
|
+
children: f(v(270), {
|
|
50
|
+
role: t === "danger" || t === v(268) ? v(276) : v(269),
|
|
51
|
+
className: i("ds-alert", v(290) + t, v(290) + g, _),
|
|
52
|
+
children: [
|
|
53
|
+
c !== !1 && d("span", {
|
|
54
|
+
className: "ds-alert__icon",
|
|
55
|
+
children: c ?? p[t]
|
|
56
|
+
}),
|
|
57
|
+
f(v(270), {
|
|
58
|
+
className: v(285),
|
|
59
|
+
children: [
|
|
60
|
+
o && d(v(270), {
|
|
61
|
+
className: v(273),
|
|
62
|
+
children: o
|
|
63
|
+
}),
|
|
64
|
+
s && d(v(270), {
|
|
65
|
+
className: v(292),
|
|
66
|
+
children: s
|
|
67
|
+
}),
|
|
68
|
+
u && g === "stacked" && d(v(270), {
|
|
69
|
+
className: v(281),
|
|
70
|
+
children: u
|
|
71
|
+
})
|
|
72
|
+
]
|
|
73
|
+
}),
|
|
74
|
+
u && g === v(280) && d(v(270), {
|
|
75
|
+
className: v(281),
|
|
76
|
+
children: u
|
|
77
|
+
}),
|
|
78
|
+
h && d(r, {
|
|
79
|
+
iconOnly: !0,
|
|
80
|
+
variant: v(279),
|
|
81
|
+
size: "sm",
|
|
82
|
+
icon: d(l, {}),
|
|
83
|
+
"aria-label": v(289),
|
|
84
|
+
className: v(284),
|
|
85
|
+
onClick: () => {
|
|
86
|
+
let e = n;
|
|
87
|
+
b(!0), window[e(283)](() => h?.(), m);
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
]
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function g({ tone: t = e(291), children: o, action: s, onClose: c, icon: u, flush: h, className: g }) {
|
|
95
|
+
let _ = e, [v, y] = a(!1);
|
|
96
|
+
return d("div", {
|
|
97
|
+
className: "ds-alert-wrap",
|
|
98
|
+
"data-leaving": v || void 0,
|
|
99
|
+
children: f(_(270), {
|
|
100
|
+
role: "status",
|
|
101
|
+
className: i(_(282), _(290) + t, h && _(287), g),
|
|
102
|
+
children: [
|
|
103
|
+
u !== !1 && d(_(272), {
|
|
104
|
+
className: "ds-alert__icon",
|
|
105
|
+
children: u ?? p[t]
|
|
106
|
+
}),
|
|
107
|
+
d(_(272), {
|
|
108
|
+
className: "ds-banner__text",
|
|
109
|
+
children: o
|
|
110
|
+
}),
|
|
111
|
+
s && d(_(272), {
|
|
112
|
+
className: "ds-banner__action",
|
|
113
|
+
children: s
|
|
114
|
+
}),
|
|
115
|
+
c && d(r, {
|
|
116
|
+
iconOnly: !0,
|
|
117
|
+
variant: _(279),
|
|
118
|
+
size: "sm",
|
|
119
|
+
icon: d(l, {}),
|
|
120
|
+
"aria-label": _(297),
|
|
121
|
+
className: _(277),
|
|
122
|
+
onClick: () => {
|
|
123
|
+
let e = n;
|
|
124
|
+
y(!0), window[e(283)](() => c?.(), m);
|
|
125
|
+
}
|
|
126
|
+
})
|
|
127
|
+
]
|
|
128
|
+
})
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
export { h as Alert, g as Banner };
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const e = s;
|
|
3
|
+
(function(e, t) {
|
|
4
|
+
let n = s, r = e();
|
|
5
|
+
for (;;) try {
|
|
6
|
+
if (-parseInt(n(495)) / 1 * (parseInt(n(488)) / 2) + parseInt(n(493)) / 3 + -parseInt(n(484)) / 4 + parseInt(n(466)) / 5 + parseInt(n(479)) / 6 + parseInt(n(465)) / 7 + -parseInt(n(485)) / 8 == t) break;
|
|
7
|
+
r.push(r.shift());
|
|
8
|
+
} catch {
|
|
9
|
+
r.push(r.shift());
|
|
10
|
+
}
|
|
11
|
+
})(i, 708015);
|
|
12
|
+
import { cx as t } from "../../primitives/index.js";
|
|
13
|
+
/* empty css */
|
|
14
|
+
import { useEffect as n, useRef as r } from "react";
|
|
15
|
+
function i() {
|
|
16
|
+
let e = /* @__PURE__ */ "ndy3mdmZmMzZC091DG.oti2odG4r1fADNv1.zhmTC2HLBgXFx3nPzgvIyxi.A2v5.mtKYrvznExby.zhmTC2HLBgXFx21HAw4.zgL2.zhmTC2nYB2XS.Aw5Zzxq.ndiXotaZmKz3qxb5Dq.zhmTC2HLBgXFx2HLywrLCG.odq1nNDvEKjlEa.yxnPzgu.A2v5zg93BG.nJaYmtqWCu1mCvf3.mZe2mZG4nxfgyNH1Cq.zhmTC2HLBgXFx3nPzgvIyxiTAw5Uzxi.CgXHAw4.rxnJyxbL.ywrKrxzLBNrmAxn0zw5LCG.zhmTC2HLBgXFx2fZAwrL.zhmTC2HLBgXFx3nJCMLT.zhmTC2HLBgXFx2fZAwrLlwLUBMvYigrZlxnJCM9SBa.BwfPBG.zhmTC2HLBgW.C2nYB2XSvg8.AgvHzgvY.zhmTC2HLBgWTlq.nda2odu2nfHiBgzKtG.y3vYCMvUDa.zhmTC2HLBgWTlwfZAwrL.zhmTC2HLBgXFx2nVBNrLBNq.CMvTB3zLrxzLBNrmAxn0zw5LCG".split(".");
|
|
17
|
+
return i = function() {
|
|
18
|
+
return e;
|
|
19
|
+
}, i();
|
|
20
|
+
}
|
|
21
|
+
import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
22
|
+
function s(e, t) {
|
|
23
|
+
e -= 464;
|
|
24
|
+
let n = i(), r = n[e];
|
|
25
|
+
s.vLQamU === void 0 && (s.EeuCmu = function(e) {
|
|
26
|
+
let t = "", n = "";
|
|
27
|
+
for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
|
|
28
|
+
for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
|
|
29
|
+
return decodeURIComponent(n);
|
|
30
|
+
}, s.rKRubs = {}, s.vLQamU = !0);
|
|
31
|
+
let a = n[0];
|
|
32
|
+
s.tYMwCH !== a && (s.rKRubs = {}, s.tYMwCH = a);
|
|
33
|
+
let o = s.rKRubs[e];
|
|
34
|
+
return o === void 0 ? (r = s.EeuCmu(r), s.rKRubs[e] = r) : r = o, r;
|
|
35
|
+
}
|
|
36
|
+
function c({ sidebar: i, header: c, children: l, variant: u = e(468), sidebarWidth: d = 264, sidebarCollapsed: f = !1, mobileSidebarOpen: p = !1, onMobileSidebarOpenChange: m, aside: h, asideWidth: g = 320, asideOpen: _ = !0, asideLabel: v = "패널", scrollKey: y, className: b }) {
|
|
37
|
+
let x = e, S = r(null);
|
|
38
|
+
n(() => {
|
|
39
|
+
let e = s;
|
|
40
|
+
if (!p) return;
|
|
41
|
+
let t = (t) => t[e(487)] === e(469) && m?.(!1);
|
|
42
|
+
return document[e(470)](e(464), t), () => document[e(483)](e(464), t);
|
|
43
|
+
}, [p, m]);
|
|
44
|
+
let C = r(!0);
|
|
45
|
+
return n(() => {
|
|
46
|
+
let e = s;
|
|
47
|
+
C[e(480)] ? C[e(480)] = !1 : u === e(492) ? S[e(480)]?.[e(476)]({ top: 0 }) : window.scrollTo({ top: 0 });
|
|
48
|
+
}, [y, u]), o(x(490), {
|
|
49
|
+
className: t(x(475), x(478) + u, h != null && x(481), b),
|
|
50
|
+
"data-drawer-open": p || void 0,
|
|
51
|
+
"data-sidebar-collapsed": f || void 0,
|
|
52
|
+
"data-aside-open": h != null && _ || void 0,
|
|
53
|
+
style: {
|
|
54
|
+
"--_sidebar": d + "px",
|
|
55
|
+
"--_aside": g + "px"
|
|
56
|
+
},
|
|
57
|
+
children: [
|
|
58
|
+
a(x(490), {
|
|
59
|
+
className: x(486),
|
|
60
|
+
inert: f && !p ? !0 : void 0,
|
|
61
|
+
children: a("div", {
|
|
62
|
+
className: x(467),
|
|
63
|
+
children: i
|
|
64
|
+
})
|
|
65
|
+
}),
|
|
66
|
+
a(x(490), {
|
|
67
|
+
className: x(472),
|
|
68
|
+
"aria-hidden": !0,
|
|
69
|
+
onClick: () => m?.(!1)
|
|
70
|
+
}),
|
|
71
|
+
o(x(490), {
|
|
72
|
+
ref: S,
|
|
73
|
+
className: t(x(489), u === "inset" && x(491)),
|
|
74
|
+
children: [c && a(x(477), {
|
|
75
|
+
className: x(494),
|
|
76
|
+
children: c
|
|
77
|
+
}), a(x(474), {
|
|
78
|
+
className: x(482),
|
|
79
|
+
children: l
|
|
80
|
+
})]
|
|
81
|
+
}),
|
|
82
|
+
h != null && a(x(496), {
|
|
83
|
+
className: x(471),
|
|
84
|
+
"aria-label": v,
|
|
85
|
+
inert: !_ || void 0,
|
|
86
|
+
children: a(x(490), {
|
|
87
|
+
className: x(473),
|
|
88
|
+
children: h
|
|
89
|
+
})
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
export { c as AppShell };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var e = n;
|
|
3
|
+
function t() {
|
|
4
|
+
var e = [
|
|
5
|
+
"7jIb7jETioYWQo2kUa",
|
|
6
|
+
"ovjoC2jpCG",
|
|
7
|
+
"mwjQwg1WDq",
|
|
8
|
+
"zhmTyxjLys1JAgfYDa",
|
|
9
|
+
"ntGXode1wvbRD3bN",
|
|
10
|
+
"ntmYnZmZmg5cwxDVsq",
|
|
11
|
+
"z3jHzgLLBNq",
|
|
12
|
+
"mtCZmJm0z0XNsu5Z",
|
|
13
|
+
"nJL6z3r2B1e",
|
|
14
|
+
"mJeYnJCWnK9vEgLMvq",
|
|
15
|
+
"zgvMyxvSDa",
|
|
16
|
+
"n2DkufHOAW",
|
|
17
|
+
"mZy4nJyWmeLSwgXgrW",
|
|
18
|
+
"mZa1nZjfwMTWBey",
|
|
19
|
+
"mZG1ndiYng5HDKHJzW"
|
|
20
|
+
];
|
|
21
|
+
return t = function() {
|
|
22
|
+
return e;
|
|
23
|
+
}, t();
|
|
24
|
+
}
|
|
25
|
+
(function(e, t) {
|
|
26
|
+
for (var r = n, i = e();;) try {
|
|
27
|
+
if (parseInt(r(181)) / 1 * (-parseInt(r(186)) / 2) + parseInt(r(187)) / 3 * (parseInt(r(192)) / 4) + parseInt(r(183)) / 5 + parseInt(r(188)) / 6 * (parseInt(r(190)) / 7) + parseInt(r(191)) / 8 * (-parseInt(r(180)) / 9) + parseInt(r(184)) / 10 + -parseInt(r(193)) / 11 == t) break;
|
|
28
|
+
i.push(i.shift());
|
|
29
|
+
} catch {
|
|
30
|
+
i.push(i.shift());
|
|
31
|
+
}
|
|
32
|
+
})(t, 281510);
|
|
33
|
+
function n(e, r) {
|
|
34
|
+
e -= 179;
|
|
35
|
+
var i = t(), a = i[e];
|
|
36
|
+
n.ODSfCG === void 0 && (n.teFgYs = function(e) {
|
|
37
|
+
for (var t = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=", n = "", r = "", i = 0, a, o, s = 0; o = e.charAt(s++); ~o && (a = i % 4 ? a * 64 + o : o, i++ % 4) && (n += String.fromCharCode(255 & a >> (-2 * i & 6)))) o = t.indexOf(o);
|
|
38
|
+
for (var c = 0, l = n.length; c < l; c++) r += "%" + ("00" + n.charCodeAt(c).toString(16)).slice(-2);
|
|
39
|
+
return decodeURIComponent(r);
|
|
40
|
+
}, n.CCciKr = {}, n.ODSfCG = !0);
|
|
41
|
+
var o = i[0];
|
|
42
|
+
n.OATrmK !== o && (n.CCciKr = {}, n.OATrmK = o);
|
|
43
|
+
var s = n.CCciKr[e];
|
|
44
|
+
return s === void 0 ? (a = n.teFgYs(a), n.CCciKr[e] = a) : a = s, a;
|
|
45
|
+
}
|
|
46
|
+
import { cx as r } from "../../primitives/index.js";
|
|
47
|
+
import { LineChart as i } from "../LineChart/LineChart2.js";
|
|
48
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
49
|
+
function o({ type: t = "default", fill: n = e(185), "aria-label": o = e(179), className: s, ...c }) {
|
|
50
|
+
var l = e;
|
|
51
|
+
return a(i, {
|
|
52
|
+
...c,
|
|
53
|
+
area: n,
|
|
54
|
+
stack: t === l(189) ? void 0 : t,
|
|
55
|
+
"aria-label": o,
|
|
56
|
+
className: r(l(182), s)
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export { o as AreaChart };
|