@iamfiro/design 0.1.0 → 0.3.1
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 +66 -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 +90 -0
- package/lib/components/Calendar/Calendar2.js +309 -0
- package/lib/components/Calendar/DatePicker2.js +228 -0
- package/lib/components/Calendar/date.js +118 -0
- package/lib/components/Card/Card2.js +103 -0
- package/lib/components/CardFrame/CardFrame2.js +67 -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 +48 -0
- package/lib/components/ChatComposer/ChatComposer2.js +153 -0
- package/lib/components/CodeBlock/CodeBlock2.js +93 -0
- package/lib/components/CodeBlock/highlight.js +111 -0
- package/lib/components/ColorPicker/ColorPicker2.js +609 -0
- package/lib/components/ColorPicker/color.js +180 -0
- package/lib/components/ColorPicker/presets.js +70 -0
- package/lib/components/Combobox/Combobox2.js +228 -0
- package/lib/components/CommandMenu/CommandMenu.js +267 -0
- package/lib/components/Comment/Comment2.js +110 -0
- package/lib/components/ContextMenu/ContextMenu2.js +168 -0
- package/lib/components/DataGrid/DataGrid2.js +1998 -0
- package/lib/components/DataGrid/GridPopover.js +154 -0
- package/lib/components/DataGrid/anchor.js +50 -0
- package/lib/components/DataGrid/model.js +557 -0
- package/lib/components/DataGrid/panels.js +701 -0
- package/lib/components/DataGrid/typeMeta.js +75 -0
- package/lib/components/DataGrid/types.js +53 -0
- package/lib/components/DescriptionList/DescriptionList2.js +180 -0
- package/lib/components/Dialog/AlertDialog.js +119 -0
- package/lib/components/Dialog/Dialog2.js +110 -0
- package/lib/components/Dialog/modal.js +92 -0
- package/lib/components/Drawer/Drawer2.js +244 -0
- package/lib/components/DropdownMenu/DropdownMenu2.js +393 -0
- package/lib/components/DropdownMenu/menuCore.js +63 -0
- package/lib/components/Dropzone/Dropzone2.js +145 -0
- package/lib/components/EmptyState/EmptyState2.js +70 -0
- package/lib/components/FileChip/FileChip2.js +94 -0
- package/lib/components/FileUpload/FileUpload.js +259 -0
- package/lib/components/FilterChips/FilterChips2.js +101 -0
- package/lib/components/FunnelChart/FunnelChart2.js +283 -0
- package/lib/components/FunnelChart/funnel.js +72 -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 +110 -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 +132 -0
- package/lib/components/Listbox/Listbox2.js +163 -0
- package/lib/components/Marker/Marker2.js +82 -0
- package/lib/components/Menubar/Menubar2.js +222 -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 +128 -0
- package/lib/components/OtpInput/OtpInput2.js +122 -0
- package/lib/components/Pagination/Pagination2.js +210 -0
- package/lib/components/Pagination/paginationRange.js +52 -0
- package/lib/components/PhoneInput/PhoneInput.js +175 -0
- package/lib/components/PieChart/PieChart2.js +246 -0
- package/lib/components/PieChart/arc.js +90 -0
- package/lib/components/PieChart/useArcTween.js +92 -0
- package/lib/components/Popover/Popover2.js +111 -0
- package/lib/components/ProgressTracker/ProgressTracker2.js +226 -0
- package/lib/components/Rating/Rating2.js +186 -0
- package/lib/components/Resizable/Resizable2.js +238 -0
- package/lib/components/Resizable/layout.js +115 -0
- package/lib/components/ScaledPreview/ScaledPreview2.js +99 -0
- package/lib/components/ScatterChart/ScatterChart2.js +355 -0
- package/lib/components/ScatterChart/scatter.js +85 -0
- package/lib/components/ScrollArea/ScrollArea2.js +217 -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 +84 -0
- package/lib/components/SparkChart/SparkChart2.js +217 -0
- package/lib/components/SparkChart/spark.js +71 -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 +357 -0
- package/lib/components/TimePicker/TimePicker2.js +388 -0
- package/lib/components/TimePicker/time.js +81 -0
- package/lib/components/Timeline/Timeline2.js +369 -0
- package/lib/components/Timeline/scale.js +81 -0
- package/lib/components/Toast/Toaster.js +213 -0
- package/lib/components/Toast/store.js +128 -0
- package/lib/components/ToggleGroup/ToggleGroup2.js +125 -0
- package/lib/components/Toolbar/Toolbar2.js +283 -0
- package/lib/components/Tracker/Tracker2.js +172 -0
- package/lib/components/TreeDiagram/TreeDiagram2.js +223 -0
- package/lib/components/TreeView/TreeView2.js +286 -0
- package/lib/hooks/timing.js +57 -0
- package/lib/hooks/useControllableState.js +49 -0
- package/lib/hooks/useCountdown.js +75 -0
- package/lib/hooks/useDigitInput.js +103 -0
- package/lib/hooks/useDismiss.js +69 -0
- package/lib/hooks/useElapsed.js +85 -0
- package/lib/hooks/useFloating.js +70 -0
- package/lib/hooks/useFocusTrap.js +85 -0
- package/lib/hooks/usePresence.js +58 -0
- package/lib/hooks/usePressToOpen.js +70 -0
- package/lib/hooks/useScrollLock.js +71 -0
- package/lib/hooks/useSelection.js +65 -0
- package/lib/index.js +176 -17911
- package/lib/primitives/AspectRatio2.js +76 -0
- package/lib/primitives/BrandIcon.js +245 -0
- package/lib/primitives/ColorDot2.js +71 -0
- package/lib/primitives/CopyButton2.js +86 -0
- package/lib/primitives/CountBadge2.js +80 -0
- package/lib/primitives/Countdown2.js +61 -0
- package/lib/primitives/Delta2.js +92 -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 +69 -0
- package/lib/primitives/Kbd2.js +88 -0
- package/lib/primitives/Layout2.js +118 -0
- package/lib/primitives/Link2.js +55 -0
- package/lib/primitives/MaskedText2.js +121 -0
- package/lib/primitives/Progress2.js +137 -0
- package/lib/primitives/RelativeTime.js +82 -0
- package/lib/primitives/SearchInput2.js +85 -0
- package/lib/primitives/SelectorButton2.js +96 -0
- package/lib/primitives/Spinner2.js +94 -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 +54 -0
- package/lib/primitives/formatElapsed.js +63 -0
- package/lib/primitives/formatRelativeTime.js +64 -0
- package/lib/primitives/hotkey.js +94 -0
- package/lib/primitives/index.js +351 -0
- package/lib/primitives/maskValue.js +69 -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
|
+
const e = c;
|
|
3
|
+
(function(e, t) {
|
|
4
|
+
let n = c, r = e();
|
|
5
|
+
for (;;) try {
|
|
6
|
+
if (-parseInt(n(306)) / 1 * (-parseInt(n(311)) / 2) + -parseInt(n(294)) / 3 * (parseInt(n(282)) / 4) + -parseInt(n(310)) / 5 * (-parseInt(n(287)) / 6) + -parseInt(n(297)) / 7 * (parseInt(n(305)) / 8) + parseInt(n(293)) / 9 + -parseInt(n(295)) / 10 * (-parseInt(n(292)) / 11) + -parseInt(n(285)) / 12 == t) break;
|
|
7
|
+
r.push(r.shift());
|
|
8
|
+
} catch {
|
|
9
|
+
r.push(r.shift());
|
|
10
|
+
}
|
|
11
|
+
})(g, 693264);
|
|
12
|
+
import { useControllableState as t } from "../../hooks/useControllableState.js";
|
|
13
|
+
import { cx as n } from "../../primitives/index.js";
|
|
14
|
+
import { useSelection as r } from "../../hooks/useSelection.js";
|
|
15
|
+
/* empty css */
|
|
16
|
+
import { createContext as i, useContext as a, useId as o, useRef as s } from "react";
|
|
17
|
+
function c(e, t) {
|
|
18
|
+
e -= 272;
|
|
19
|
+
let n = g(), r = n[e];
|
|
20
|
+
c.wgdSiw === void 0 && (c.yTHQDg = function(e) {
|
|
21
|
+
let t = "", n = "";
|
|
22
|
+
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);
|
|
23
|
+
for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
|
|
24
|
+
return decodeURIComponent(n);
|
|
25
|
+
}, c.fLGrYU = {}, c.wgdSiw = !0);
|
|
26
|
+
let i = n[0];
|
|
27
|
+
c.XsACOT !== i && (c.fLGrYU = {}, c.XsACOT = i);
|
|
28
|
+
let a = c.fLGrYU[e];
|
|
29
|
+
return a === void 0 ? (r = c.yTHQDg(r), c.fLGrYU[e] = r) : r = a, r;
|
|
30
|
+
}
|
|
31
|
+
import { ChevronDown as l } from "lucide-react";
|
|
32
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
33
|
+
function f({ open: e, defaultOpen: n = !1, onOpenChange: r, ...i }) {
|
|
34
|
+
let [a, o] = t(e, n, r);
|
|
35
|
+
return u(p, {
|
|
36
|
+
...i,
|
|
37
|
+
open: a,
|
|
38
|
+
onToggle: () => o(!a)
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
function p({ label: e, description: t, icon: r, disabled: i, open: a, onToggle: s, children: f, variant: p = "default", iconTone: m = "default", className: h }) {
|
|
42
|
+
let g = c, _ = o(), v = p === "inline" ? "div" : "h3";
|
|
43
|
+
return d(g(301), {
|
|
44
|
+
className: n(g(314), p === g(317) && g(298), h),
|
|
45
|
+
"data-open": a || void 0,
|
|
46
|
+
"data-disabled": i || void 0,
|
|
47
|
+
children: [u(v, {
|
|
48
|
+
className: g(307),
|
|
49
|
+
children: d("button", {
|
|
50
|
+
type: g(283),
|
|
51
|
+
id: _ + g(309),
|
|
52
|
+
"aria-expanded": a,
|
|
53
|
+
"aria-controls": _ + g(284),
|
|
54
|
+
disabled: i,
|
|
55
|
+
className: g(308),
|
|
56
|
+
onClick: s,
|
|
57
|
+
children: [
|
|
58
|
+
r && u("span", {
|
|
59
|
+
className: g(280),
|
|
60
|
+
"data-tone": m === g(286) ? void 0 : m,
|
|
61
|
+
children: r
|
|
62
|
+
}),
|
|
63
|
+
d(g(304), {
|
|
64
|
+
className: g(279),
|
|
65
|
+
children: [u("span", {
|
|
66
|
+
className: g(288),
|
|
67
|
+
children: e
|
|
68
|
+
}), t && u("span", {
|
|
69
|
+
className: "ds-disclosure__desc",
|
|
70
|
+
children: t
|
|
71
|
+
})]
|
|
72
|
+
}),
|
|
73
|
+
u(l, {
|
|
74
|
+
className: g(312),
|
|
75
|
+
"aria-hidden": !0
|
|
76
|
+
})
|
|
77
|
+
]
|
|
78
|
+
})
|
|
79
|
+
}), u(g(301), {
|
|
80
|
+
id: _ + g(284),
|
|
81
|
+
role: g(278),
|
|
82
|
+
"aria-labelledby": _ + "-trigger",
|
|
83
|
+
className: g(291),
|
|
84
|
+
inert: !a || void 0,
|
|
85
|
+
children: u("div", {
|
|
86
|
+
className: g(290),
|
|
87
|
+
children: u(g(301), {
|
|
88
|
+
className: g(296),
|
|
89
|
+
children: f
|
|
90
|
+
})
|
|
91
|
+
})
|
|
92
|
+
})]
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
var m = i(null);
|
|
96
|
+
function h({ variant: t = e(299), children: i, className: a, style: o, ...l }) {
|
|
97
|
+
let d = e, f = r(l), p = s(null);
|
|
98
|
+
return u(m[d(289)], {
|
|
99
|
+
value: {
|
|
100
|
+
isOpen: f[d(300)],
|
|
101
|
+
toggle: f[d(273)]
|
|
102
|
+
},
|
|
103
|
+
children: u("div", {
|
|
104
|
+
ref: p,
|
|
105
|
+
className: n("ds-accordion", d(313) + t, a),
|
|
106
|
+
style: o,
|
|
107
|
+
onKeyDown: (e) => {
|
|
108
|
+
let t = c, n = [...p[t(303)]?.[t(281)](".ds-disclosure__trigger:not(:disabled)") ?? []].filter((e) => e[t(275)](".ds-accordion") === p[t(303)]), r = n[t(302)](document.activeElement);
|
|
109
|
+
if (r < 0) return;
|
|
110
|
+
let i;
|
|
111
|
+
e.key === "ArrowDown" ? i = n[(r + 1) % n[t(277)]] : e[t(315)] === t(276) ? i = n[(r - 1 + n[t(277)]) % n.length] : e[t(315)] === t(272) ? i = n[0] : e[t(315)] === "End" && (i = n[n[t(277)] - 1]), i && (e.preventDefault(), i[t(274)]());
|
|
112
|
+
},
|
|
113
|
+
children: i
|
|
114
|
+
})
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
function g() {
|
|
118
|
+
let e = /* @__PURE__ */ "mM1vvhvXEa.zhmTzgLZy2XVC3vYzv9Fy2HLDNjVBG.zhmTywnJB3jKAw9Uls0.zhmTzgLZy2XVC3vYzq.A2v5.qwnJB3jKAw9UsxrLBsbTDxn0igjLihvZzwqGAw5ZAwrLidXby2nVCMrPB24+.Aw5SAw5L.sg9Tzq.Dg9Nz2XL.zM9JDxm.y2XVC2vZDa.qxjYB3DvCa.BgvUz3rO.CMvNAw9U.zhmTzgLZy2XVC3vYzv9FDgv4Da.zhmTzgLZy2XVC3vYzv9FAwnVBG.CxvLCNLtzwXLy3rVCKfSBa.mJu2yuH4EM11.yNv0Dg9U.lxjLz2LVBG.nJCYmte0menPDMz2tG.zgvMyxvSDa.otqYBeLQuK9u.zhmTzgLZy2XVC3vYzv9FBgfIzwW.uhjVDMLKzxi.zhmTzgLZy2XVC3vYzv9FAw5Uzxi.zhmTzgLZy2XVC3vYzv9FzM9Sza.otm1rfLpvKXq.ntaYoti4muHpC2DAyq.mJuZndrYwKroq3y.mtiYmJCWDgTsvw5p.zhmTzgLZy2XVC3vYzv9Fy29UDgvUDa.mtK0nJyWowzPrwflwG.zhmTzgLZy2XVC3vYzs0TAw5SAw5L.CgXHAw4.AxntzwXLy3rLza.zgL2.Aw5KzxHpzG.y3vYCMvUDa.C3bHBG.mJrmwfHUD1y.odKWm3bMrwnzvW.zhmTzgLZy2XVC3vYzv9FAgvHzgLUzW.zhmTzgLZy2XVC3vYzv9FDhjPz2DLCG.lxrYAwDNzxi.mZi1mJvkteXgzhO".split(".");
|
|
119
|
+
return g = function() {
|
|
120
|
+
return e;
|
|
121
|
+
}, g();
|
|
122
|
+
}
|
|
123
|
+
function _({ value: t, title: n, flush: r, ...i }) {
|
|
124
|
+
let o = e, s = a(m);
|
|
125
|
+
if (!s) throw Error(o(316));
|
|
126
|
+
return u(p, {
|
|
127
|
+
...i,
|
|
128
|
+
className: r ? "ds-disclosure--flush" : void 0,
|
|
129
|
+
label: n,
|
|
130
|
+
open: s.isOpen(t),
|
|
131
|
+
onToggle: () => s[o(273)](t)
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
h.Item = _;
|
|
135
|
+
export { h as Accordion, _ as AccordionItem, f as Collapsible };
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var e = n;
|
|
3
|
+
(function(e, t) {
|
|
4
|
+
for (var r = n, i = e();;) try {
|
|
5
|
+
if (parseInt(r(273)) / 1 * (-parseInt(r(267)) / 2) + parseInt(r(270)) / 3 + -parseInt(r(266)) / 4 + -parseInt(r(274)) / 5 * (-parseInt(r(262)) / 6) + parseInt(r(264)) / 7 * (parseInt(r(272)) / 8) + parseInt(r(269)) / 9 * (-parseInt(r(271)) / 10) + parseInt(r(260)) / 11 == t) break;
|
|
6
|
+
i.push(i.shift());
|
|
7
|
+
} catch {
|
|
8
|
+
i.push(i.shift());
|
|
9
|
+
}
|
|
10
|
+
})(r, 361033);
|
|
11
|
+
import { cx as t } from "../../primitives/index.js";
|
|
12
|
+
function n(e, t) {
|
|
13
|
+
e -= 258;
|
|
14
|
+
var i = r(), a = i[e];
|
|
15
|
+
n.cnnNfB === void 0 && (n.JIdoDC = function(e) {
|
|
16
|
+
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);
|
|
17
|
+
for (var c = 0, l = n.length; c < l; c++) r += "%" + ("00" + n.charCodeAt(c).toString(16)).slice(-2);
|
|
18
|
+
return decodeURIComponent(r);
|
|
19
|
+
}, n.BbmDXR = {}, n.cnnNfB = !0);
|
|
20
|
+
var o = i[0];
|
|
21
|
+
n.DiysCn !== o && (n.BbmDXR = {}, n.DiysCn = o);
|
|
22
|
+
var s = n.BbmDXR[e];
|
|
23
|
+
return s === void 0 ? (a = n.JIdoDC(a), n.BbmDXR[e] = a) : a = s, a;
|
|
24
|
+
}
|
|
25
|
+
function r() {
|
|
26
|
+
var e = [
|
|
27
|
+
"ndy5vhvOzwnm",
|
|
28
|
+
"zhmTywn0Aw9UlwjHCI0T",
|
|
29
|
+
"mtK0mdu4mfvuEe9bDG",
|
|
30
|
+
"mJyZofzLAufeDq",
|
|
31
|
+
"zhmTywn0Aw9UlwjHCI0TC3rPy2T5",
|
|
32
|
+
"nZaXnZiXwuDIs3vn",
|
|
33
|
+
"mtq0ode0oenuwNvNCa",
|
|
34
|
+
"mZb1rNb5v20",
|
|
35
|
+
"nZG4nZjpC0fuAwW",
|
|
36
|
+
"ntiZBNvkDK15",
|
|
37
|
+
"nwzPzenzsW",
|
|
38
|
+
"zgL2",
|
|
39
|
+
"zhmTywn0Aw9UlwjHCL9Fz3jVDxa",
|
|
40
|
+
"mZi1mdqZnhjVyLnKuG",
|
|
41
|
+
"y2vUDgvY",
|
|
42
|
+
"mtK4nJK1ngLbrMv6rq",
|
|
43
|
+
"zMLLBgrZzxq"
|
|
44
|
+
];
|
|
45
|
+
return r = function() {
|
|
46
|
+
return e;
|
|
47
|
+
}, r();
|
|
48
|
+
}
|
|
49
|
+
/* empty css */
|
|
50
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
51
|
+
function a({ children: n, align: r = e(261), sticky: a = !0, pending: o, "aria-label": s, className: c, style: l }) {
|
|
52
|
+
var u = e;
|
|
53
|
+
return i(u(258), {
|
|
54
|
+
className: t("ds-action-bar", u(265) + r, a && u(268), c),
|
|
55
|
+
"data-pending": o || void 0,
|
|
56
|
+
style: l,
|
|
57
|
+
children: i(u(263), {
|
|
58
|
+
className: u(259),
|
|
59
|
+
disabled: o,
|
|
60
|
+
"aria-label": s,
|
|
61
|
+
"aria-busy": o || void 0,
|
|
62
|
+
children: n
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
export { a as ActionBar };
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const e = i;
|
|
3
|
+
(function(e, t) {
|
|
4
|
+
let n = i, r = e();
|
|
5
|
+
for (;;) try {
|
|
6
|
+
if (-parseInt(n(418)) / 1 * (-parseInt(n(400)) / 2) + parseInt(n(398)) / 3 + parseInt(n(422)) / 4 * (-parseInt(n(393)) / 5) + parseInt(n(395)) / 6 + parseInt(n(403)) / 7 + parseInt(n(420)) / 8 * (-parseInt(n(396)) / 9) + -parseInt(n(407)) / 10 == t) break;
|
|
7
|
+
r.push(r.shift());
|
|
8
|
+
} catch {
|
|
9
|
+
r.push(r.shift());
|
|
10
|
+
}
|
|
11
|
+
})(f, 977308);
|
|
12
|
+
import { Button as t, cx as n } from "../../primitives/index.js";
|
|
13
|
+
/* empty css */
|
|
14
|
+
import { useState as r } from "react";
|
|
15
|
+
function i(e, t) {
|
|
16
|
+
e -= 391;
|
|
17
|
+
let n = f(), r = n[e];
|
|
18
|
+
i.nbTKfX === void 0 && (i.YBedFN = function(e) {
|
|
19
|
+
let t = "", n = "";
|
|
20
|
+
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);
|
|
21
|
+
for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
|
|
22
|
+
return decodeURIComponent(n);
|
|
23
|
+
}, i.bOgwOD = {}, i.nbTKfX = !0);
|
|
24
|
+
let a = n[0];
|
|
25
|
+
i.uCBDsV !== a && (i.bOgwOD = {}, i.uCBDsV = a);
|
|
26
|
+
let o = i.bOgwOD[e];
|
|
27
|
+
return o === void 0 ? (r = i.YBedFN(r), i.bOgwOD[e] = r) : r = o, r;
|
|
28
|
+
}
|
|
29
|
+
import { AlertTriangle as a, CheckCircle2 as o, Info as s, X as c, XCircle as l } from "lucide-react";
|
|
30
|
+
import { jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
31
|
+
function f() {
|
|
32
|
+
let e = /* @__PURE__ */ "zhmTywXLCNrFx2fJDgLVBNm.Aw5SAw5L.mteWnZu3otbht2r0sKK.ywXLCNq.C3rHy2TLza.z2HVC3q.zhmTyMfUBMvYls1MBhvZAa.zhmTywXLCNq.zgL2.zhmTyMfUBMvYx19Hy3rPB24.zhmTywXLCNqTlq.zhmTywXLCNrFx2nVBNrLBNq.C2v0vgLTzw91Da.mvP5tNjSwq.C3rHDhvZ.nZG0nZC2AwPlvhnM.zhmTywXLCNqTD3jHCa.ntm0otm2nhjzDhHkvG.zhmTywXLCNrFx3rPDgXL.67cW64siioUlQ+Q4Sa.C3bHBG.Aw5MBW.nwHJqKz6sW.zhmTywXLCNrFx2jVzhK.ntu4odGXnefcwxzTqq.nZj2wgf5AwC.zhmTyMfUBMvY.ndq3nZu3mKzmCw1Krq.zhmTywXLCNrFx2LJB24.odG2nJm0qK9fB1bZ.7jwm66A8ioUlQ+Q4Sa.zhmTywXLCNrFx2nSB3nL.otm3nZG1ohPbBwHSva.D2fYBMLUzW".split(".");
|
|
33
|
+
return f = function() {
|
|
34
|
+
return e;
|
|
35
|
+
}, f();
|
|
36
|
+
}
|
|
37
|
+
var p = {
|
|
38
|
+
neutral: u(s, {}),
|
|
39
|
+
info: u(s, {}),
|
|
40
|
+
success: u(o, {}),
|
|
41
|
+
warning: u(a, {}),
|
|
42
|
+
danger: u(l, {})
|
|
43
|
+
}, m = 260;
|
|
44
|
+
function h({ tone: a = e(392), title: o, children: s, icon: l, actions: f, onClose: h, layout: g = e(409), className: _ }) {
|
|
45
|
+
let v = e, [y, b] = r(!1);
|
|
46
|
+
return u(v(413), {
|
|
47
|
+
className: v(421),
|
|
48
|
+
"data-leaving": y || void 0,
|
|
49
|
+
children: d("div", {
|
|
50
|
+
role: a === "danger" || a === v(404) ? v(408) : v(419),
|
|
51
|
+
className: n(v(412), v(415) + a, "ds-alert--" + g, _),
|
|
52
|
+
children: [
|
|
53
|
+
l !== !1 && u(v(391), {
|
|
54
|
+
className: "ds-alert__icon",
|
|
55
|
+
children: l ?? p[a]
|
|
56
|
+
}),
|
|
57
|
+
d("div", {
|
|
58
|
+
className: v(416),
|
|
59
|
+
children: [
|
|
60
|
+
o && u("div", {
|
|
61
|
+
className: v(423),
|
|
62
|
+
children: o
|
|
63
|
+
}),
|
|
64
|
+
s && u(v(413), {
|
|
65
|
+
className: v(394),
|
|
66
|
+
children: s
|
|
67
|
+
}),
|
|
68
|
+
f && g === v(409) && u(v(413), {
|
|
69
|
+
className: v(405),
|
|
70
|
+
children: f
|
|
71
|
+
})
|
|
72
|
+
]
|
|
73
|
+
}),
|
|
74
|
+
f && g === v(406) && u(v(413), {
|
|
75
|
+
className: "ds-alert__actions",
|
|
76
|
+
children: f
|
|
77
|
+
}),
|
|
78
|
+
h && u(t, {
|
|
79
|
+
iconOnly: !0,
|
|
80
|
+
variant: "ghost",
|
|
81
|
+
size: "sm",
|
|
82
|
+
icon: u(c, {}),
|
|
83
|
+
"aria-label": v(401),
|
|
84
|
+
className: v(402),
|
|
85
|
+
onClick: () => {
|
|
86
|
+
let e = i;
|
|
87
|
+
b(!0), window[e(417)](() => h?.(), m);
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
]
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function g({ tone: a = e(392), children: o, action: s, onClose: l, icon: f, flush: h, className: g }) {
|
|
95
|
+
let _ = e, [v, y] = r(!1);
|
|
96
|
+
return u("div", {
|
|
97
|
+
className: _(421),
|
|
98
|
+
"data-leaving": v || void 0,
|
|
99
|
+
children: d(_(413), {
|
|
100
|
+
role: _(419),
|
|
101
|
+
className: n(_(397), _(415) + a, h && _(411), g),
|
|
102
|
+
children: [
|
|
103
|
+
f !== !1 && u("span", {
|
|
104
|
+
className: _(399),
|
|
105
|
+
children: f ?? p[a]
|
|
106
|
+
}),
|
|
107
|
+
u("span", {
|
|
108
|
+
className: "ds-banner__text",
|
|
109
|
+
children: o
|
|
110
|
+
}),
|
|
111
|
+
s && u(_(391), {
|
|
112
|
+
className: _(414),
|
|
113
|
+
children: s
|
|
114
|
+
}),
|
|
115
|
+
l && u(t, {
|
|
116
|
+
iconOnly: !0,
|
|
117
|
+
variant: _(410),
|
|
118
|
+
size: "sm",
|
|
119
|
+
icon: u(c, {}),
|
|
120
|
+
"aria-label": _(424),
|
|
121
|
+
className: "ds-banner__close",
|
|
122
|
+
onClick: () => {
|
|
123
|
+
let e = i;
|
|
124
|
+
y(!0), window[e(417)](() => l?.(), m);
|
|
125
|
+
}
|
|
126
|
+
})
|
|
127
|
+
]
|
|
128
|
+
})
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
export { h as Alert, g as Banner };
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
function e(n, r) {
|
|
3
|
+
n -= 343;
|
|
4
|
+
let i = t(), a = i[n];
|
|
5
|
+
e.YxTQky === void 0 && (e.UToKZm = function(e) {
|
|
6
|
+
let t = "", n = "";
|
|
7
|
+
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);
|
|
8
|
+
for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
|
|
9
|
+
return decodeURIComponent(n);
|
|
10
|
+
}, e.rQRdQd = {}, e.YxTQky = !0);
|
|
11
|
+
let o = i[0];
|
|
12
|
+
e.sxZRsv !== o && (e.rQRdQd = {}, e.sxZRsv = o);
|
|
13
|
+
let s = e.rQRdQd[n];
|
|
14
|
+
return s === void 0 ? (a = e.UToKZm(a), e.rQRdQd[n] = a) : a = s, a;
|
|
15
|
+
}
|
|
16
|
+
function t() {
|
|
17
|
+
let e = /* @__PURE__ */ "A2v5.zhmTC2HLBgWTlq.zhmTC2HLBgWTlwfZAwrL.yxnPzgu.A2v5zg93BG.zhmTC2HLBgXFx21HAw4.odiWmejzq2nmBa.mJqZnZy5rercDwjZ.zhmTC2HLBgXFx2HLywrLCG.nJC5nunPteDZCG.mtmZnJG5mgLqA3z6wG.CgXHAw4.mZq0nZmWzfvtDe5P.Aw5Zzxq.mtCWnJu5nLHnELzUEG.zhmTC2HLBgXFx2nVBNrLBNq.zhmTC2nYB2XS.CMvTB3zLrxzLBNrmAxn0zw5LCG.y3vYCMvUDa.nJGWmdG4AK5eD1vk.nwjNA0PgEa.zgL2.rxnJyxbL.zhmTC2HLBgXFx3nJCMLT.zhmTC2HLBgXFx3nPzgvIyxi.odm5nZqXCw9rrLnK.C2nYB2XSvg8.zhmTC2HLBgXFx2fZAwrLlwLUBMvYigrZlxnJCM9SBa".split(".");
|
|
18
|
+
return t = function() {
|
|
19
|
+
return e;
|
|
20
|
+
}, t();
|
|
21
|
+
}
|
|
22
|
+
const n = e;
|
|
23
|
+
(function(t, n) {
|
|
24
|
+
let r = e, i = t();
|
|
25
|
+
for (;;) try {
|
|
26
|
+
if (parseInt(r(351)) / 1 + -parseInt(r(356)) / 2 + parseInt(r(363)) / 3 + parseInt(r(358)) / 4 * (parseInt(r(364)) / 5) + parseInt(r(354)) / 6 + parseInt(r(369)) / 7 + parseInt(r(350)) / 8 * (-parseInt(r(353)) / 9) == n) break;
|
|
27
|
+
i.push(i.shift());
|
|
28
|
+
} catch {
|
|
29
|
+
i.push(i.shift());
|
|
30
|
+
}
|
|
31
|
+
})(t, 293652);
|
|
32
|
+
import { cx as r } from "../../primitives/index.js";
|
|
33
|
+
/* empty css */
|
|
34
|
+
import { useEffect as i, useRef as a } from "react";
|
|
35
|
+
import { jsx as o, jsxs as s } from "react/jsx-runtime";
|
|
36
|
+
function c({ sidebar: t, header: c, children: l, variant: u = n(355), 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 = n, S = a(null);
|
|
38
|
+
i(() => {
|
|
39
|
+
let t = e;
|
|
40
|
+
if (!p) return;
|
|
41
|
+
let n = (e) => e[t(344)] === t(366) && m?.(!1);
|
|
42
|
+
return document.addEventListener(t(348), n), () => document[t(361)]("keydown", n);
|
|
43
|
+
}, [p, m]);
|
|
44
|
+
let C = a(!0);
|
|
45
|
+
return i(() => {
|
|
46
|
+
let t = e;
|
|
47
|
+
C[t(362)] ? C.current = !1 : u === t(357) ? S[t(362)]?.[t(370)]({ top: 0 }) : window.scrollTo({ top: 0 });
|
|
48
|
+
}, [y, u]), s(x(365), {
|
|
49
|
+
className: r("ds-shell", x(345) + u, h != null && x(346), 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
|
+
o(x(365), {
|
|
59
|
+
className: x(368),
|
|
60
|
+
inert: f && !p ? !0 : void 0,
|
|
61
|
+
children: o("div", {
|
|
62
|
+
className: "ds-shell__sidebar-inner",
|
|
63
|
+
children: t
|
|
64
|
+
})
|
|
65
|
+
}),
|
|
66
|
+
o("div", {
|
|
67
|
+
className: x(367),
|
|
68
|
+
"aria-hidden": !0,
|
|
69
|
+
onClick: () => m?.(!1)
|
|
70
|
+
}),
|
|
71
|
+
s(x(365), {
|
|
72
|
+
ref: S,
|
|
73
|
+
className: r(x(349), u === x(357) && x(360)),
|
|
74
|
+
children: [c && o("header", {
|
|
75
|
+
className: x(352),
|
|
76
|
+
children: c
|
|
77
|
+
}), o("main", {
|
|
78
|
+
className: x(359),
|
|
79
|
+
children: l
|
|
80
|
+
})]
|
|
81
|
+
}),
|
|
82
|
+
h != null && o(x(347), {
|
|
83
|
+
className: "ds-shell__aside",
|
|
84
|
+
"aria-label": v,
|
|
85
|
+
inert: !_ || void 0,
|
|
86
|
+
children: o(x(365), {
|
|
87
|
+
className: x(343),
|
|
88
|
+
children: h
|
|
89
|
+
})
|
|
90
|
+
})
|
|
91
|
+
]
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
export { c as AppShell };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
function e() {
|
|
3
|
+
var t = [
|
|
4
|
+
"oeHwAgHjtW",
|
|
5
|
+
"zhmTyxjLys1JAgfYDa",
|
|
6
|
+
"mtbOwMf0tMW",
|
|
7
|
+
"ndC4ntmWouPqse1jDG",
|
|
8
|
+
"mJeYndy1uMviv1LA",
|
|
9
|
+
"mZjSC01TDuO",
|
|
10
|
+
"mtu1nJK2mvjMu2LgsG",
|
|
11
|
+
"zgvMyxvSDa",
|
|
12
|
+
"mtC4qKf5D0LX",
|
|
13
|
+
"nZeWnZC3mxDOwMTUDq",
|
|
14
|
+
"odmYndK0C3npAfvn",
|
|
15
|
+
"mJa0ntfxy1rOs2K",
|
|
16
|
+
"z3jHzgLLBNq",
|
|
17
|
+
"7jIb7jETioYWQo2kUa",
|
|
18
|
+
"mJCYmJqZsgzvzhzg"
|
|
19
|
+
];
|
|
20
|
+
return e = function() {
|
|
21
|
+
return t;
|
|
22
|
+
}, e();
|
|
23
|
+
}
|
|
24
|
+
var t = i;
|
|
25
|
+
(function(e, t) {
|
|
26
|
+
for (var n = i, r = e();;) try {
|
|
27
|
+
if (parseInt(n(424)) / 1 + parseInt(n(433)) / 2 * (parseInt(n(421)) / 3) + -parseInt(n(430)) / 4 * (parseInt(n(429)) / 5) + parseInt(n(435)) / 6 + -parseInt(n(431)) / 7 * (parseInt(n(425)) / 8) + -parseInt(n(428)) / 9 * (-parseInt(n(427)) / 10) + -parseInt(n(434)) / 11 == t) break;
|
|
28
|
+
r.push(r.shift());
|
|
29
|
+
} catch {
|
|
30
|
+
r.push(r.shift());
|
|
31
|
+
}
|
|
32
|
+
})(e, 340878);
|
|
33
|
+
import { cx as n } from "../../primitives/index.js";
|
|
34
|
+
import { LineChart as r } from "../LineChart/LineChart2.js";
|
|
35
|
+
function i(t, n) {
|
|
36
|
+
t -= 421;
|
|
37
|
+
var r = e(), a = r[t];
|
|
38
|
+
i.bDGNpM === void 0 && (i.DUUSKg = function(e) {
|
|
39
|
+
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);
|
|
40
|
+
for (var c = 0, l = n.length; c < l; c++) r += "%" + ("00" + n.charCodeAt(c).toString(16)).slice(-2);
|
|
41
|
+
return decodeURIComponent(r);
|
|
42
|
+
}, i.QZyBRK = {}, i.bDGNpM = !0);
|
|
43
|
+
var o = r[0];
|
|
44
|
+
i.mfQywK !== o && (i.QZyBRK = {}, i.mfQywK = o);
|
|
45
|
+
var s = i.QZyBRK[t];
|
|
46
|
+
return s === void 0 ? (a = i.DUUSKg(a), i.QZyBRK[t] = a) : a = s, a;
|
|
47
|
+
}
|
|
48
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
49
|
+
function o({ type: e = t(432), fill: i = t(422), "aria-label": o = t(423), className: s, ...c }) {
|
|
50
|
+
var l = t;
|
|
51
|
+
return a(r, {
|
|
52
|
+
...c,
|
|
53
|
+
area: i,
|
|
54
|
+
stack: e === "default" ? void 0 : e,
|
|
55
|
+
"aria-label": o,
|
|
56
|
+
className: n(l(426), s)
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
export { o as AreaChart };
|