@iamfiro/design 0.3.1 → 0.3.4

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.
Files changed (161) hide show
  1. package/agents/INDEX.md +1 -1
  2. package/agents/avatar/AGENTS.md +29 -1
  3. package/agents/brand-icon/AGENTS.md +1 -1
  4. package/agents/social-login-button/AGENTS.md +4 -3
  5. package/agents/tooltip/AGENTS.md +1 -1
  6. package/lib/components/Accordion/Accordion2.js +92 -92
  7. package/lib/components/ActionBar/ActionBar2.js +42 -45
  8. package/lib/components/Alert/Alert2.js +77 -77
  9. package/lib/components/AppShell/AppShell2.js +70 -71
  10. package/lib/components/AreaChart/AreaChart.js +32 -35
  11. package/lib/components/BarChart/BarChart2.js +155 -155
  12. package/lib/components/BarList/BarList2.js +93 -93
  13. package/lib/components/Breadcrumb/Breadcrumb2.js +62 -64
  14. package/lib/components/Calendar/Calendar2.js +183 -182
  15. package/lib/components/Calendar/DatePicker2.js +116 -115
  16. package/lib/components/Calendar/date.js +67 -66
  17. package/lib/components/Card/Card2.js +67 -67
  18. package/lib/components/CardFrame/CardFrame2.js +34 -37
  19. package/lib/components/Chart/ChartParts.js +90 -90
  20. package/lib/components/Chart/chart2.js +62 -62
  21. package/lib/components/Chart/useChartInteraction.js +51 -51
  22. package/lib/components/ChatBubble/ChatBubble2.js +117 -117
  23. package/lib/components/ChatBubble/formatChatTime.js +37 -36
  24. package/lib/components/ChatComposer/ChatComposer2.js +55 -55
  25. package/lib/components/CodeBlock/CodeBlock2.js +60 -60
  26. package/lib/components/CodeBlock/highlight.js +72 -72
  27. package/lib/components/ColorPicker/ColorPicker2.js +232 -231
  28. package/lib/components/ColorPicker/color.js +67 -67
  29. package/lib/components/ColorPicker/presets.js +25 -24
  30. package/lib/components/Combobox/Combobox2.js +140 -140
  31. package/lib/components/CommandMenu/CommandMenu.js +135 -135
  32. package/lib/components/Comment/Comment2.js +82 -57
  33. package/lib/components/ContextMenu/ContextMenu2.js +101 -100
  34. package/lib/components/DataGrid/DataGrid2.js +872 -871
  35. package/lib/components/DataGrid/GridPopover.js +98 -98
  36. package/lib/components/DataGrid/anchor.js +34 -33
  37. package/lib/components/DataGrid/model.js +291 -290
  38. package/lib/components/DataGrid/panels.js +337 -336
  39. package/lib/components/DataGrid/typeMeta.js +49 -48
  40. package/lib/components/DataGrid/types.js +34 -33
  41. package/lib/components/DescriptionList/DescriptionList2.js +109 -109
  42. package/lib/components/Dialog/AlertDialog.js +53 -53
  43. package/lib/components/Dialog/Dialog2.js +72 -72
  44. package/lib/components/Dialog/modal.js +67 -68
  45. package/lib/components/Drawer/Drawer2.js +117 -117
  46. package/lib/components/DropdownMenu/DropdownMenu2.js +267 -266
  47. package/lib/components/DropdownMenu/menuCore.js +68 -42
  48. package/lib/components/Dropzone/Dropzone2.js +78 -78
  49. package/lib/components/EmptyState/EmptyState2.js +58 -56
  50. package/lib/components/FileChip/FileChip2.js +72 -48
  51. package/lib/components/FileUpload/FileUpload.js +137 -138
  52. package/lib/components/FilterChips/FilterChips2.js +61 -61
  53. package/lib/components/FunnelChart/FunnelChart2.js +161 -161
  54. package/lib/components/FunnelChart/funnel.js +50 -49
  55. package/lib/components/Highlight/Highlight2.js +56 -56
  56. package/lib/components/HoverCard/HoverCard.js +73 -73
  57. package/lib/components/InlineDiff/InlineDiff2.js +129 -129
  58. package/lib/components/InlineDiff/diff.js +87 -87
  59. package/lib/components/InlineDiff/useDiffReview.js +54 -52
  60. package/lib/components/Kanban/Kanban2.js +383 -384
  61. package/lib/components/Kanban/KanbanCard.js +68 -93
  62. package/lib/components/Kanban/move.js +43 -43
  63. package/lib/components/LineChart/LineChart2.js +164 -164
  64. package/lib/components/List/List2.js +60 -60
  65. package/lib/components/Listbox/Listbox2.js +108 -108
  66. package/lib/components/Marker/Marker2.js +59 -57
  67. package/lib/components/Menubar/Menubar2.js +120 -119
  68. package/lib/components/MultiSelect/MultiSelect2.js +111 -111
  69. package/lib/components/NavigationMenu/NavigationMenu2.js +277 -279
  70. package/lib/components/NoticeStack/NoticeStack2.js +109 -109
  71. package/lib/components/NumberStepper/NumberStepper2.js +70 -70
  72. package/lib/components/OtpInput/OtpInput2.js +94 -94
  73. package/lib/components/Pagination/Pagination2.js +109 -109
  74. package/lib/components/Pagination/paginationRange.js +37 -38
  75. package/lib/components/PhoneInput/PhoneInput.js +83 -84
  76. package/lib/components/PieChart/PieChart2.js +157 -157
  77. package/lib/components/PieChart/arc.js +72 -72
  78. package/lib/components/PieChart/useArcTween.js +50 -53
  79. package/lib/components/Popover/Popover2.js +62 -61
  80. package/lib/components/ProgressTracker/ProgressTracker2.js +104 -104
  81. package/lib/components/Rating/Rating2.js +89 -88
  82. package/lib/components/Resizable/Resizable2.js +133 -134
  83. package/lib/components/Resizable/layout.js +56 -56
  84. package/lib/components/ScaledPreview/ScaledPreview2.js +64 -63
  85. package/lib/components/ScatterChart/ScatterChart2.js +252 -251
  86. package/lib/components/ScatterChart/scatter.js +50 -52
  87. package/lib/components/ScrollArea/ScrollArea2.js +122 -122
  88. package/lib/components/Select/Select2.js +84 -85
  89. package/lib/components/Sidebar/Sidebar2.js +79 -79
  90. package/lib/components/Skeleton/Skeleton2.js +56 -56
  91. package/lib/components/Slider/Slider2.js +63 -63
  92. package/lib/components/SocialLoginButton/SocialLoginButton.js +54 -46
  93. package/lib/components/SparkChart/SparkChart2.js +129 -128
  94. package/lib/components/SparkChart/spark.js +49 -48
  95. package/lib/components/Sparkbar/Sparkbar2.js +59 -58
  96. package/lib/components/SplitView/SplitView2.js +54 -55
  97. package/lib/components/Stat/Stat2.js +59 -59
  98. package/lib/components/StepList/StepList2.js +78 -78
  99. package/lib/components/Table/Table2.js +55 -55
  100. package/lib/components/Tabs/Tabs2.js +76 -76
  101. package/lib/components/TagInput/TagInput2.js +218 -215
  102. package/lib/components/TimePicker/TimePicker2.js +204 -204
  103. package/lib/components/TimePicker/time.js +59 -58
  104. package/lib/components/Timeline/Timeline2.js +179 -179
  105. package/lib/components/Timeline/scale.js +60 -55
  106. package/lib/components/Toast/Toaster.js +103 -103
  107. package/lib/components/Toast/store.js +47 -47
  108. package/lib/components/ToggleGroup/ToggleGroup2.js +77 -77
  109. package/lib/components/Toolbar/Toolbar2.js +138 -138
  110. package/lib/components/Tracker/Tracker2.js +99 -99
  111. package/lib/components/TreeDiagram/TreeDiagram2.js +117 -117
  112. package/lib/components/TreeView/TreeView2.js +145 -145
  113. package/lib/hooks/timing.js +33 -33
  114. package/lib/hooks/useControllableState.js +33 -33
  115. package/lib/hooks/useCountdown.js +54 -55
  116. package/lib/hooks/useDigitInput.js +85 -84
  117. package/lib/hooks/useDismiss.js +55 -55
  118. package/lib/hooks/useElapsed.js +55 -55
  119. package/lib/hooks/useFloating.js +21 -21
  120. package/lib/hooks/useFocusTrap.js +67 -67
  121. package/lib/hooks/usePresence.js +33 -29
  122. package/lib/hooks/usePressToOpen.js +33 -33
  123. package/lib/hooks/useScrollLock.js +54 -55
  124. package/lib/hooks/useSelection.js +54 -48
  125. package/lib/index.js +67 -68
  126. package/lib/primitives/AspectRatio2.js +58 -54
  127. package/lib/primitives/BrandIcon.js +189 -158
  128. package/lib/primitives/ColorDot2.js +52 -51
  129. package/lib/primitives/CopyButton2.js +66 -64
  130. package/lib/primitives/CountBadge2.js +56 -56
  131. package/lib/primitives/Countdown2.js +36 -34
  132. package/lib/primitives/Delta2.js +41 -66
  133. package/lib/primitives/Elapsed.js +32 -32
  134. package/lib/primitives/FileIcon2.js +90 -90
  135. package/lib/primitives/Flag2.js +157 -157
  136. package/lib/primitives/IconStack2.js +60 -58
  137. package/lib/primitives/IconTile2.js +46 -48
  138. package/lib/primitives/Kbd2.js +51 -51
  139. package/lib/primitives/Layout2.js +71 -71
  140. package/lib/primitives/Link2.js +37 -35
  141. package/lib/primitives/MaskedText2.js +71 -75
  142. package/lib/primitives/Progress2.js +72 -72
  143. package/lib/primitives/RelativeTime.js +60 -64
  144. package/lib/primitives/SearchInput2.js +55 -56
  145. package/lib/primitives/SelectorButton2.js +69 -71
  146. package/lib/primitives/Spinner2.js +63 -59
  147. package/lib/primitives/StatusIcon2.js +66 -66
  148. package/lib/primitives/Swatch2.js +54 -56
  149. package/lib/primitives/Tooltip2.js +77 -77
  150. package/lib/primitives/Typography2.js +67 -67
  151. package/lib/primitives/formatCountdown.js +38 -41
  152. package/lib/primitives/formatElapsed.js +41 -40
  153. package/lib/primitives/formatRelativeTime.js +74 -48
  154. package/lib/primitives/hotkey.js +81 -81
  155. package/lib/primitives/index.js +220 -199
  156. package/lib/primitives/maskValue.js +53 -52
  157. package/lib/style.css +1 -1
  158. package/lib/types/components/SocialLoginButton/SocialLoginButton.d.ts +1 -1
  159. package/lib/types/primitives/BrandIcon.d.ts +1 -1
  160. package/lib/types/primitives/index.d.ts +6 -2
  161. package/package.json +1 -1
package/agents/INDEX.md CHANGED
@@ -18,7 +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
+ - **SocialLoginButton** — Google · Apple · Microsoft 계정으로 로그인하는 버튼. → [`agents/social-login-button/AGENTS.md`](social-login-button/AGENTS.md)
22
22
  - **Toolbar** — 버튼 · 토글 · ToggleGroup · 메뉴 트리거를 한 줄로 묶는 WAI-ARIA 툴바. → [`agents/toolbar/AGENTS.md`](toolbar/AGENTS.md)
23
23
 
24
24
  ## 라벨 & 배지
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 아이콘 & 아바타 · `@iamfiro/design` · 직접 만들지 말고 이 컴포넌트를 쓴다.
4
4
 
5
- 사람이나 팀을 나타내는 이름 배지. 한국어 이름(3–4글자)은 성을 빼고 이름만(김민지 → 민지), 그 밖의 이름은 이니셜로 보여요. 배경색은 이름에 따라 정해져 같은 사람은 늘 같은 색이에요.
5
+ 사람이나 팀을 나타내는 이름 배지. 한국어 이름(3–4글자)은 성을 빼고 이름만(김민지 → 민지), 그 밖의 이름은 이니셜로 보여요. 배경색은 이름에 따라 정해져 같은 사람은 늘 같은 색이에요. 사진이 있으면 src로 넘기세요.
6
6
 
7
7
  ```tsx
8
8
  import { Avatar, AvatarGroup } from '@iamfiro/design'
@@ -11,6 +11,7 @@ import { Avatar, AvatarGroup } from '@iamfiro/design'
11
11
  ## 디자인 규칙
12
12
 
13
13
  - 행 앞 타일: 사람은 `Avatar`, 도구·사이트·문서는 `IconTile`(회색 채움 + 아이콘/글자). 선택된 것을 보여 주고 메뉴로 바꾸는 버튼(워크스페이스·계정 전환, 드롭다운 제목)은 `SelectorButton`을 `DropdownMenu` trigger에.
14
+ - 아바타는 hover하면 이름 `Tooltip`이 기본(`tooltip={false}`로 끔). `title` 속성 툴팁은 쓰지 않는다. 사진은 `Avatar src` / `AvatarGroup srcs`로 — `<img>`를 직접 얹지 않는다(불러오는 동안·실패 땐 이름 글자가 대신 보이고, 크기·모양·접속 점은 그대로).
14
15
 
15
16
  ## API
16
17
 
@@ -19,6 +20,7 @@ import { Avatar, AvatarGroup } from '@iamfiro/design'
19
20
  | prop | 타입 | 기본값 | 설명 |
20
21
  | --- | --- | --- | --- |
21
22
  | `name` (필수) | `string` | | 이름. 보이는 글자, 배경색, 툴팁, 화면 읽기 이름이 모두 여기서 나와요. |
23
+ | `src` | `string` | | 사진 주소. 불러오는 동안·실패하면 이름 글자를 보여 주고, 주소가 바뀌면 다시 불러와요. name은 그대로 화면 읽기 이름과 툴팁이 돼요. |
22
24
  | `size` | `number` | `28` | 지름(px). |
23
25
  | `square` | `boolean` | | 둥근 사각형. |
24
26
  | `online` | `boolean` | | 오른쪽 아래 접속 중 점. |
@@ -30,6 +32,7 @@ import { Avatar, AvatarGroup } from '@iamfiro/design'
30
32
  | prop | 타입 | 기본값 | 설명 |
31
33
  | --- | --- | --- | --- |
32
34
  | `names` (필수) | `string[]` | | 이름 목록. |
35
+ | `srcs` | `(string \| undefined)[]` | | 사진 주소 목록. names와 같은 순서이고, 사진이 없는 자리는 undefined면 글자로 보여요. |
33
36
  | `size` | `number` | `24` | 각 아바타 지름(px). |
34
37
  | `max` | `number` | `4` | 보여 줄 최대 인원. 나머지는 +N. |
35
38
 
@@ -57,6 +60,31 @@ export default function Example() {
57
60
  }
58
61
  ```
59
62
 
63
+ ### 사진
64
+
65
+ src에 사진 주소를 주면 사진을 보여 줘요. 불러오는 동안과 실패했을 때는 이름 글자가 그대로 보이고, 사진이 들어오면 글자가 사라져요. AvatarGroup은 srcs를 names와 같은 순서로 주고, 사진이 없는 사람 자리는 비워 두세요.
66
+
67
+ ```tsx
68
+ import { Avatar, AvatarGroup, Inline } from '@iamfiro/design'
69
+
70
+ export default function Example() {
71
+ return (
72
+ <Inline gap={3}>
73
+ <Avatar name="김민지" src="/avatars/minji.svg" size={40} />
74
+ <Avatar name="이도현" src="/avatars/dohyun.svg" size={40} online />
75
+ <Avatar name="박서연" src="/avatars/seoyeon.svg" size={40} square />
76
+ {/* 주소가 없거나 불러오지 못하면 이름 글자가 그대로 보여요 */}
77
+ <Avatar name="최하준" src="/avatars/없는-사진.png" size={40} />
78
+ <AvatarGroup
79
+ names={['김민지', '이도현', '박서연', '최하준']}
80
+ srcs={['/avatars/minji.svg', '/avatars/dohyun.svg', '/avatars/seoyeon.svg']}
81
+ size={32}
82
+ />
83
+ </Inline>
84
+ )
85
+ }
86
+ ```
87
+
60
88
  ### 크기 · 색
61
89
 
62
90
  size는 px 숫자예요. color로 배경색을 직접 정할 수 있어요.
@@ -25,7 +25,7 @@ import { BrandIcon, BRAND_NAMES } from '@iamfiro/design'
25
25
 
26
26
  ### 로고 목록
27
27
 
28
- 지금 들어 있는 로고 10개(Gmail, Slack, ClickUp, Figma, GitHub, HubSpot, Notion, Google Calendar, Google, Apple). Apple은 한 색 로고라 글자색을 따라요. 새 앱은 BrandIcon.tsx의 MARKS에 추가해요.
28
+ 지금 들어 있는 로고 11개(Gmail, Slack, ClickUp, Figma, GitHub, HubSpot, Notion, Google Calendar, Google, Apple, Microsoft). Apple은 한 색 로고라 글자색을 따라요. 새 앱은 BrandIcon.tsx의 MARKS에 추가해요.
29
29
 
30
30
  ```tsx
31
31
  import { BRAND_NAMES, BrandIcon, Inline, Stack, Text } from '@iamfiro/design'
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 버튼 & 링크 · `@iamfiro/design` · 직접 만들지 말고 이 컴포넌트를 쓴다.
4
4
 
5
- Google · Apple 계정으로 로그인하는 버튼. 각 브랜드 가이드대로 Google은 흰 바탕 + 옅은 윤곽 + 색 G 로고, Apple은 검정 바탕 + 흰 로고예요. 문구는 action으로 고르고, 나머지 props는 Button과 같아요.
5
+ Google · Apple · Microsoft 계정으로 로그인하는 버튼. 각 브랜드 가이드대로 Google · Microsoft는 흰 바탕 + 옅은 윤곽 + 색 로고, Apple은 검정 바탕 + 흰 로고예요. 문구는 action으로 고르고, 나머지 props는 Button과 같아요.
6
6
 
7
7
  ```tsx
8
8
  import { SocialLoginButton } from '@iamfiro/design'
@@ -16,7 +16,7 @@ variant · icon은 provider가 정해요. 나머지 props(size · block · loadi
16
16
 
17
17
  | prop | 타입 | 기본값 | 설명 |
18
18
  | --- | --- | --- | --- |
19
- | `provider` (필수) | `'google' \| 'apple'` | | 로그인 제공자. 색 · 로고 · 이름이 정해져요. |
19
+ | `provider` (필수) | `'google' \| 'apple' \| 'microsoft'` | | 로그인 제공자. 색 · 로고 · 이름이 정해져요. |
20
20
  | `action` | `'continue' \| 'signin' \| 'signup'` | `'continue'` | "Google로 계속하기" · "Google로 로그인" · "Google로 가입하기". |
21
21
  | `children` | `ReactNode` | | 문구를 직접 바꿀 때. |
22
22
  | `size` | `'sm' \| 'md' \| 'lg'` | `'md'` | 높이 28 / 34 / 40px. 로고는 14 / 16 / 18px. |
@@ -30,7 +30,7 @@ variant · icon은 provider가 정해요. 나머지 props(size · block · loadi
30
30
 
31
31
  ### 기본
32
32
 
33
- 로그인 화면에선 block으로 폭을 채워 위아래로 쌓아요. 순서는 보통 Google → Apple.
33
+ 로그인 화면에선 block으로 폭을 채워 위아래로 쌓아요. 순서는 보통 Google → Apple → Microsoft.
34
34
 
35
35
  ```tsx
36
36
  import { SocialLoginButton, Stack } from '@iamfiro/design'
@@ -40,6 +40,7 @@ export default function Example() {
40
40
  <Stack gap={2} style={{ width: 320 }}>
41
41
  <SocialLoginButton provider="google" size="lg" block />
42
42
  <SocialLoginButton provider="apple" size="lg" block />
43
+ <SocialLoginButton provider="microsoft" size="lg" block />
43
44
  </Stack>
44
45
  )
45
46
  }
@@ -11,7 +11,7 @@ import { Tooltip } from '@iamfiro/design'
11
11
  ## 디자인 규칙
12
12
 
13
13
  - 툴팁: 첫 번째는 `TIMING.tooltipDelay`(500ms) 뒤, 닫힌 지 `TIMING.tooltipSkip`(300ms) 안에 옆 툴팁으로 옮기면 즉시. 단 "즉시"는 **이미 기다린 시간만큼만** 건너뛴다 — `delay={0}` 툴팁을 거쳐 왔다고 `delay={1000}` 툴팁이 바로 열리면 안 된다(대기 시간 고장 버그). 키보드 포커스는 즉시, 누르면 닫고, Esc로 닫힌다. → `Tooltip`
14
- - 아바타는 hover하면 이름 `Tooltip`이 기본(`tooltip={false}`로 끔). `title` 속성 툴팁은 쓰지 않는다.
14
+ - 아바타는 hover하면 이름 `Tooltip`이 기본(`tooltip={false}`로 끔). `title` 속성 툴팁은 쓰지 않는다. 사진은 `Avatar src` / `AvatarGroup srcs`로 — `<img>`를 직접 얹지 않는다(불러오는 동안·실패 땐 이름 글자가 대신 보이고, 크기·모양·접속 점은 그대로).
15
15
 
16
16
  ## API
17
17
 
@@ -1,135 +1,135 @@
1
1
  "use client";
2
- const e = c;
3
- (function(e, t) {
4
- let n = c, r = e();
2
+ const e = t;
3
+ (function(e, n) {
4
+ let r = t, i = e();
5
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());
6
+ if (parseInt(r(246)) / 1 * (-parseInt(r(262)) / 2) + parseInt(r(260)) / 3 * (parseInt(r(244)) / 4) + -parseInt(r(250)) / 5 + parseInt(r(226)) / 6 + -parseInt(r(230)) / 7 + -parseInt(r(234)) / 8 * (-parseInt(r(222)) / 9) + parseInt(r(221)) / 10 == n) break;
7
+ i.push(i.shift());
8
8
  } catch {
9
- r.push(r.shift());
9
+ i.push(i.shift());
10
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) {
11
+ })(n, 727301);
12
+ function t(e, r) {
13
+ e -= 221;
14
+ let i = n(), a = i[e];
15
+ t.ITedZy === void 0 && (t.lvCDjF = function(e) {
21
16
  let t = "", n = "";
22
17
  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
18
  for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
24
19
  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;
20
+ }, t.zMVeMU = {}, t.ITedZy = !0);
21
+ let o = i[0];
22
+ t.ZHWnQt !== o && (t.zMVeMU = {}, t.ZHWnQt = o);
23
+ let s = t.zMVeMU[e];
24
+ return s === void 0 ? (a = t.lvCDjF(a), t.zMVeMU[e] = a) : a = s, a;
25
+ }
26
+ function n() {
27
+ let e = /* @__PURE__ */ "zhmTywnJB3jKAw9Uls0.zgvMyxvSDa.otuXmLritLD2sa.ChjLDMvUDerLzMf1Bhq.AxntzwXLy3rLza.sxrLBq.ywn0AxzLrwXLBwvUDa.qxjYB3DvCa.zhmTzgLZy2XVC3vYzv9FDhjPz2DLCG.y2XVC2vZDa.A2v5.Dg9Nz2XL.mtK2wxfZvuz1.zhmTzgLZy2XVC3vYzv9FAw5Uzxi.odaZofzfqw5JAa.zMLSDgvY.yNv0Dg9U.qwnJB3jKAw9UsxrLBsbTDxn0igjLihvZzwqGAw5ZAwrLidXby2nVCMrPB24+.nJuXnduWDejgBvLQ.zhmTzgLZy2XVC3vYzv9FBgfIzwW.zhmTywnJB3jKAw9U.zhmTzgLZy2XVC3vYzv9FzM9Sza.zhmTzgLZy2XVC3vYzv9FzgvZyW.zhmTzgLZy2XVC3vYzs0TAw5SAw5L.BgvUz3rO.zgL2.lMrZlwrPC2nSB3n1CMvFx3rYAwDNzxi6BM90kdPKAxnHyMXLzcK.lxrYAwDNzxi.otq3nfvsEw5tyq.CMvNAw9U.mZrYv2LOBKW.y3vYCMvUDa.C3bHBG.lxjLz2LVBG.mZe3mtuWtKnPsKje.nZy0muXoCwfzzG.uhjVDMLKzxi.zhmTzgLZy2XVC3vYzs0TzMX1C2G.Aw5SAw5L.mJm4mZGYng1zAxfxqG.sg9Tzq.rw5K.AxnpCgvU.nde5mJG5nuHhCwDlAa.lMrZlwfJy29YzgLVBG".split(".");
28
+ return n = function() {
29
+ return e;
30
+ }, n();
30
31
  }
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, {
32
+ import { useControllableState as r } from "../../hooks/useControllableState.js";
33
+ import { cx as i } from "../../primitives/index.js";
34
+ import { useSelection as a } from "../../hooks/useSelection.js";
35
+ /* empty css */
36
+ import { createContext as o, useContext as s, useId as c, useRef as l } from "react";
37
+ import { ChevronDown as u } from "lucide-react";
38
+ import { jsx as d, jsxs as f } from "react/jsx-runtime";
39
+ function p({ open: e, defaultOpen: t = !1, onOpenChange: n, ...i }) {
40
+ let [a, o] = r(e, t, n);
41
+ return d(m, {
36
42
  ...i,
37
43
  open: a,
38
44
  onToggle: () => o(!a)
39
45
  });
40
46
  }
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),
47
+ function m({ label: t, description: n, icon: r, disabled: a, open: o, onToggle: s, children: l, variant: p = e(233), iconTone: m = e(233), className: h }) {
48
+ let g = e, _ = c(), v = p === g(225) ? g(257) : "h3";
49
+ return f(g(257), {
50
+ className: i("ds-disclosure", p === g(225) && g(255), h),
51
+ "data-open": o || void 0,
52
+ "data-disabled": a || void 0,
53
+ children: [d(v, {
54
+ className: "ds-disclosure__heading",
55
+ children: f(g(248), {
56
+ type: g(248),
57
+ id: _ + g(259),
58
+ "aria-expanded": o,
59
+ "aria-controls": _ + "-region",
60
+ disabled: a,
61
+ className: g(240),
56
62
  onClick: s,
57
63
  children: [
58
- r && u("span", {
59
- className: g(280),
60
- "data-tone": m === g(286) ? void 0 : m,
64
+ r && d(g(264), {
65
+ className: "ds-disclosure__icon",
66
+ "data-tone": m === "default" ? void 0 : m,
61
67
  children: r
62
68
  }),
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",
69
+ f(g(264), {
70
+ className: "ds-disclosure__text",
71
+ children: [d(g(264), {
72
+ className: g(251),
70
73
  children: t
74
+ }), n && d(g(264), {
75
+ className: g(254),
76
+ children: n
71
77
  })]
72
78
  }),
73
- u(l, {
74
- className: g(312),
79
+ d(u, {
80
+ className: "ds-disclosure__chevron",
75
81
  "aria-hidden": !0
76
82
  })
77
83
  ]
78
84
  })
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
85
+ }), d("div", {
86
+ id: _ + g(265),
87
+ role: g(261),
88
+ "aria-labelledby": _ + g(259),
89
+ className: g(253),
90
+ inert: !o || void 0,
91
+ children: d(g(257), {
92
+ className: g(245),
93
+ children: d(g(257), {
94
+ className: "ds-disclosure__content",
95
+ children: l
90
96
  })
91
97
  })
92
98
  })]
93
99
  });
94
100
  }
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)], {
101
+ var h = o(null);
102
+ function g({ variant: n = "plain", children: r, className: o, style: s, ...c }) {
103
+ let u = e, f = a(c), p = l(null);
104
+ return d(h[u(223)], {
99
105
  value: {
100
- isOpen: f[d(300)],
101
- toggle: f[d(273)]
106
+ isOpen: f[u(236)],
107
+ toggle: f.toggle
102
108
  },
103
- children: u("div", {
109
+ children: d(u(257), {
104
110
  ref: p,
105
- className: n("ds-accordion", d(313) + t, a),
106
- style: o,
111
+ className: i(u(252), u(232) + n, o),
112
+ style: s,
107
113
  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)]());
114
+ let n = t, r = [...p[n(263)]?.querySelectorAll(n(258)) ?? []][n(247)]((e) => e[n(241)](n(231)) === p[n(263)]), i = r.indexOf(document[n(238)]);
115
+ if (i < 0) return;
116
+ let a;
117
+ e[n(242)] === "ArrowDown" ? a = r[(i + 1) % r[n(256)]] : e[n(242)] === n(239) ? a = r[(i - 1 + r[n(256)]) % r[n(256)]] : e[n(242)] === n(227) ? a = r[0] : e[n(242)] === n(228) && (a = r[r[n(256)] - 1]), a && (e[n(235)](), a.focus());
112
118
  },
113
- children: i
119
+ children: r
114
120
  })
115
121
  });
116
122
  }
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
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, {
124
+ let a = e, o = s(h);
125
+ if (!o) throw Error(a(249));
126
+ return d(m, {
127
127
  ...i,
128
- className: r ? "ds-disclosure--flush" : void 0,
128
+ className: r ? a(224) : void 0,
129
129
  label: n,
130
- open: s.isOpen(t),
131
- onToggle: () => s[o(273)](t)
130
+ open: o[a(229)](t),
131
+ onToggle: () => o[a(243)](t)
132
132
  });
133
133
  }
134
- h.Item = _;
135
- export { h as Accordion, _ as AccordionItem, f as Collapsible };
134
+ g[e(237)] = _;
135
+ export { g as Accordion, _ as AccordionItem, p as Collapsible };
@@ -1,61 +1,45 @@
1
1
  "use client";
2
- var e = n;
2
+ var e = a;
3
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());
4
+ for (var n = a, r = e();;) try {
5
+ if (-parseInt(n(152)) / 1 * (parseInt(n(159)) / 2) + parseInt(n(151)) / 3 + parseInt(n(154)) / 4 + -parseInt(n(153)) / 5 + -parseInt(n(163)) / 6 + parseInt(n(150)) / 7 + parseInt(n(158)) / 8 == t) break;
6
+ r.push(r.shift());
7
7
  } catch {
8
- i.push(i.shift());
8
+ r.push(r.shift());
9
9
  }
10
- })(r, 361033);
10
+ })(n, 948639);
11
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() {
12
+ /* empty css */
13
+ function n() {
26
14
  var e = [
27
- "ndy5vhvOzwnm",
15
+ "zhmTywn0Aw9UlwjHCG",
16
+ "mZm3nZe3ohfzve5SBq",
17
+ "nduZntq0n1bhCuj5yG",
18
+ "mtGYmJy4ou1pB1jzwq",
19
+ "mtq2ody1n2j6ChHPqW",
20
+ "mZC1odC3nujftKnOtq",
21
+ "nZe2mZK2ogDjv1bnua",
28
22
  "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
23
  "y2vUDgvY",
42
- "mtK4nJK1ngLbrMv6rq",
43
- "zMLLBgrZzxq"
24
+ "zMLLBgrZzxq",
25
+ "ntq4mZuWnhrIBLf5uW",
26
+ "mLzusenUyW",
27
+ "zhmTywn0Aw9UlwjHCL9Fz3jVDxa",
28
+ "zgL2"
44
29
  ];
45
- return r = function() {
30
+ return n = function() {
46
31
  return e;
47
- }, r();
32
+ }, n();
48
33
  }
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 }) {
34
+ import { jsx as r } from "react/jsx-runtime";
35
+ function i({ children: n, align: i = e(156), sticky: a = !0, pending: o, "aria-label": s, className: c, style: l }) {
52
36
  var u = e;
53
- return i(u(258), {
54
- className: t("ds-action-bar", u(265) + r, a && u(268), c),
37
+ return r(u(161), {
38
+ className: t(u(162), u(155) + i, a && "ds-action-bar--sticky", c),
55
39
  "data-pending": o || void 0,
56
40
  style: l,
57
- children: i(u(263), {
58
- className: u(259),
41
+ children: r(u(157), {
42
+ className: u(160),
59
43
  disabled: o,
60
44
  "aria-label": s,
61
45
  "aria-busy": o || void 0,
@@ -63,4 +47,17 @@ function a({ children: n, align: r = e(261), sticky: a = !0, pending: o, "aria-l
63
47
  })
64
48
  });
65
49
  }
66
- export { a as ActionBar };
50
+ function a(e, t) {
51
+ e -= 150;
52
+ var r = n(), i = r[e];
53
+ a.tRMKcQ === void 0 && (a.gzTUAW = function(e) {
54
+ 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);
55
+ for (var c = 0, l = n.length; c < l; c++) r += "%" + ("00" + n.charCodeAt(c).toString(16)).slice(-2);
56
+ return decodeURIComponent(r);
57
+ }, a.TWYLPy = {}, a.tRMKcQ = !0);
58
+ var o = r[0];
59
+ a.lKFhDR !== o && (a.TWYLPy = {}, a.lKFhDR = o);
60
+ var s = a.TWYLPy[e];
61
+ return s === void 0 ? (i = a.gzTUAW(i), a.TWYLPy[e] = i) : i = s, i;
62
+ }
63
+ export { i as ActionBar };