@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.
Files changed (160) hide show
  1. package/AGENTS.md +1 -0
  2. package/agents/INDEX.md +1 -0
  3. package/agents/brand-icon/AGENTS.md +2 -2
  4. package/agents/social-login-button/AGENTS.md +156 -0
  5. package/lib/components/Accordion/Accordion2.js +135 -0
  6. package/lib/components/ActionBar/ActionBar2.js +65 -0
  7. package/lib/components/Alert/Alert2.js +131 -0
  8. package/lib/components/AppShell/AppShell2.js +94 -0
  9. package/lib/components/AreaChart/AreaChart.js +59 -0
  10. package/lib/components/BarChart/BarChart2.js +243 -0
  11. package/lib/components/BarList/BarList2.js +172 -0
  12. package/lib/components/Breadcrumb/Breadcrumb2.js +87 -0
  13. package/lib/components/Calendar/Calendar2.js +309 -0
  14. package/lib/components/Calendar/DatePicker2.js +229 -0
  15. package/lib/components/Calendar/date.js +121 -0
  16. package/lib/components/Card/Card2.js +104 -0
  17. package/lib/components/CardFrame/CardFrame2.js +72 -0
  18. package/lib/components/Chart/ChartParts.js +150 -0
  19. package/lib/components/Chart/chart2.js +96 -0
  20. package/lib/components/Chart/useChartInteraction.js +94 -0
  21. package/lib/components/ChatBubble/ChatBubble2.js +174 -0
  22. package/lib/components/ChatBubble/formatChatTime.js +53 -0
  23. package/lib/components/ChatComposer/ChatComposer2.js +153 -0
  24. package/lib/components/CodeBlock/CodeBlock2.js +93 -0
  25. package/lib/components/CodeBlock/highlight.js +114 -0
  26. package/lib/components/ColorPicker/ColorPicker2.js +610 -0
  27. package/lib/components/ColorPicker/color.js +180 -0
  28. package/lib/components/ColorPicker/presets.js +75 -0
  29. package/lib/components/Combobox/Combobox2.js +229 -0
  30. package/lib/components/CommandMenu/CommandMenu.js +267 -0
  31. package/lib/components/Comment/Comment2.js +134 -0
  32. package/lib/components/ContextMenu/ContextMenu2.js +168 -0
  33. package/lib/components/DataGrid/DataGrid2.js +1996 -0
  34. package/lib/components/DataGrid/GridPopover.js +154 -0
  35. package/lib/components/DataGrid/anchor.js +50 -0
  36. package/lib/components/DataGrid/model.js +558 -0
  37. package/lib/components/DataGrid/panels.js +703 -0
  38. package/lib/components/DataGrid/typeMeta.js +76 -0
  39. package/lib/components/DataGrid/types.js +54 -0
  40. package/lib/components/DescriptionList/DescriptionList2.js +180 -0
  41. package/lib/components/Dialog/AlertDialog.js +118 -0
  42. package/lib/components/Dialog/Dialog2.js +109 -0
  43. package/lib/components/Dialog/modal.js +92 -0
  44. package/lib/components/Drawer/Drawer2.js +244 -0
  45. package/lib/components/DropdownMenu/DropdownMenu2.js +394 -0
  46. package/lib/components/DropdownMenu/menuCore.js +63 -0
  47. package/lib/components/Dropzone/Dropzone2.js +144 -0
  48. package/lib/components/EmptyState/EmptyState2.js +72 -0
  49. package/lib/components/FileChip/FileChip2.js +118 -0
  50. package/lib/components/FileUpload/FileUpload.js +258 -0
  51. package/lib/components/FilterChips/FilterChips2.js +101 -0
  52. package/lib/components/FunnelChart/FunnelChart2.js +283 -0
  53. package/lib/components/FunnelChart/funnel.js +69 -0
  54. package/lib/components/Highlight/Highlight2.js +100 -0
  55. package/lib/components/HoverCard/HoverCard.js +134 -0
  56. package/lib/components/InlineDiff/InlineDiff2.js +215 -0
  57. package/lib/components/InlineDiff/diff.js +126 -0
  58. package/lib/components/InlineDiff/useDiffReview.js +109 -0
  59. package/lib/components/Kanban/Kanban2.js +691 -0
  60. package/lib/components/Kanban/KanbanCard.js +159 -0
  61. package/lib/components/Kanban/move.js +69 -0
  62. package/lib/components/LineChart/LineChart2.js +342 -0
  63. package/lib/components/List/List2.js +133 -0
  64. package/lib/components/Listbox/Listbox2.js +163 -0
  65. package/lib/components/Marker/Marker2.js +82 -0
  66. package/lib/components/Menubar/Menubar2.js +223 -0
  67. package/lib/components/MultiSelect/MultiSelect2.js +204 -0
  68. package/lib/components/NavigationMenu/NavigationMenu2.js +481 -0
  69. package/lib/components/NoticeStack/NoticeStack2.js +178 -0
  70. package/lib/components/NumberStepper/NumberStepper2.js +129 -0
  71. package/lib/components/OtpInput/OtpInput2.js +122 -0
  72. package/lib/components/Pagination/Pagination2.js +210 -0
  73. package/lib/components/Pagination/paginationRange.js +53 -0
  74. package/lib/components/PhoneInput/PhoneInput.js +175 -0
  75. package/lib/components/PieChart/PieChart2.js +246 -0
  76. package/lib/components/PieChart/arc.js +66 -0
  77. package/lib/components/PieChart/useArcTween.js +94 -0
  78. package/lib/components/Popover/Popover2.js +112 -0
  79. package/lib/components/ProgressTracker/ProgressTracker2.js +226 -0
  80. package/lib/components/Rating/Rating2.js +186 -0
  81. package/lib/components/Resizable/Resizable2.js +236 -0
  82. package/lib/components/Resizable/layout.js +115 -0
  83. package/lib/components/ScaledPreview/ScaledPreview2.js +100 -0
  84. package/lib/components/ScatterChart/ScatterChart2.js +356 -0
  85. package/lib/components/ScatterChart/scatter.js +83 -0
  86. package/lib/components/ScrollArea/ScrollArea2.js +218 -0
  87. package/lib/components/Select/Select2.js +153 -0
  88. package/lib/components/Sidebar/Sidebar2.js +127 -0
  89. package/lib/components/Skeleton/Skeleton2.js +91 -0
  90. package/lib/components/Slider/Slider2.js +142 -0
  91. package/lib/components/SocialLoginButton/SocialLoginButton.js +85 -0
  92. package/lib/components/SparkChart/SparkChart2.js +217 -0
  93. package/lib/components/SparkChart/spark.js +76 -0
  94. package/lib/components/Sparkbar/Sparkbar2.js +111 -0
  95. package/lib/components/SplitView/SplitView2.js +95 -0
  96. package/lib/components/Stat/Stat2.js +164 -0
  97. package/lib/components/StepList/StepList2.js +131 -0
  98. package/lib/components/Table/Table2.js +104 -0
  99. package/lib/components/Tabs/Tabs2.js +131 -0
  100. package/lib/components/TagInput/TagInput2.js +360 -0
  101. package/lib/components/TimePicker/TimePicker2.js +388 -0
  102. package/lib/components/TimePicker/time.js +83 -0
  103. package/lib/components/Timeline/Timeline2.js +369 -0
  104. package/lib/components/Timeline/scale.js +83 -0
  105. package/lib/components/Toast/Toaster.js +212 -0
  106. package/lib/components/Toast/store.js +129 -0
  107. package/lib/components/ToggleGroup/ToggleGroup2.js +125 -0
  108. package/lib/components/Toolbar/Toolbar2.js +281 -0
  109. package/lib/components/Tracker/Tracker2.js +172 -0
  110. package/lib/components/TreeDiagram/TreeDiagram2.js +223 -0
  111. package/lib/components/TreeView/TreeView2.js +284 -0
  112. package/lib/hooks/timing.js +55 -0
  113. package/lib/hooks/useControllableState.js +49 -0
  114. package/lib/hooks/useCountdown.js +80 -0
  115. package/lib/hooks/useDigitInput.js +105 -0
  116. package/lib/hooks/useDismiss.js +71 -0
  117. package/lib/hooks/useElapsed.js +83 -0
  118. package/lib/hooks/useFloating.js +70 -0
  119. package/lib/hooks/useFocusTrap.js +61 -0
  120. package/lib/hooks/usePresence.js +60 -0
  121. package/lib/hooks/usePressToOpen.js +69 -0
  122. package/lib/hooks/useScrollLock.js +70 -0
  123. package/lib/hooks/useSelection.js +68 -0
  124. package/lib/index.js +175 -17911
  125. package/lib/primitives/AspectRatio2.js +80 -0
  126. package/lib/primitives/BrandIcon.js +245 -0
  127. package/lib/primitives/ColorDot2.js +70 -0
  128. package/lib/primitives/CopyButton2.js +85 -0
  129. package/lib/primitives/CountBadge2.js +78 -0
  130. package/lib/primitives/Countdown2.js +65 -0
  131. package/lib/primitives/Delta2.js +67 -0
  132. package/lib/primitives/Elapsed.js +62 -0
  133. package/lib/primitives/FileIcon2.js +125 -0
  134. package/lib/primitives/Flag2.js +263 -0
  135. package/lib/primitives/IconStack2.js +85 -0
  136. package/lib/primitives/IconTile2.js +68 -0
  137. package/lib/primitives/Kbd2.js +88 -0
  138. package/lib/primitives/Layout2.js +118 -0
  139. package/lib/primitives/Link2.js +53 -0
  140. package/lib/primitives/MaskedText2.js +120 -0
  141. package/lib/primitives/Progress2.js +137 -0
  142. package/lib/primitives/RelativeTime.js +84 -0
  143. package/lib/primitives/SearchInput2.js +84 -0
  144. package/lib/primitives/SelectorButton2.js +97 -0
  145. package/lib/primitives/Spinner2.js +98 -0
  146. package/lib/primitives/StatusIcon2.js +126 -0
  147. package/lib/primitives/Swatch2.js +79 -0
  148. package/lib/primitives/Tooltip2.js +132 -0
  149. package/lib/primitives/Typography2.js +97 -0
  150. package/lib/primitives/formatCountdown.js +51 -0
  151. package/lib/primitives/formatElapsed.js +66 -0
  152. package/lib/primitives/formatRelativeTime.js +64 -0
  153. package/lib/primitives/hotkey.js +94 -0
  154. package/lib/primitives/index.js +352 -0
  155. package/lib/primitives/maskValue.js +65 -0
  156. package/lib/style.css +1 -1
  157. package/lib/types/components/SocialLoginButton/SocialLoginButton.d.ts +10 -0
  158. package/lib/types/components/index.d.ts +2 -0
  159. package/lib/types/primitives/BrandIcon.d.ts +1 -1
  160. package/package.json +2 -1
@@ -0,0 +1,226 @@
1
+ "use client";
2
+ const e = g;
3
+ function t() {
4
+ let e = /* @__PURE__ */ "C3rLChm.otiYowD2wKPnzW.zhmTDhjHy2TLCL9FDg9Nz2XL.C2vSzwn0zwq.7zMv7j24io2vHoYALa.zgvMyxvSDa.y2vUDgvY.nta3odmXsLrlEfzf.C3vJy2vZCW.mtKZmM13B3Pnuq.zg9Uzq.ywn0Aw9U.BgfIzwWTBgC.zgLZywjSzwq.ndqXmda0D2HRreDH.AgfZ.mtjVse9Orxy.BwLUBwf4kdaSidfMCIKGyxv0BW.CgvUzgLUzW.nZiWrezuDhzb.CMfPC2vK.ywrK.yM9KEs1Tza.zxzLCNK.CM91BMq.Aw5JBhvKzxm.yM9KEs1ZBq.DgvYDgLHCNK.zhmTDhjHy2TLCL9FzM9Sza.ndy2ntrtteXTy2q.ywn0AxzL.zMLUza.BgvUz3rO.zgL2.BwfW.y2fWDgLVBG.zMLSBgvK.mJC4mdiYnNLRCfbuzG.y2LYy2XL.BgfIzwWTBwq.C2LUz2XL.C29Tzq.zMXHDe1HCa.mtrVtezHzMm.BxvSDgLWBgu.jsdSMytRO4W.64UO6Roeio2oVoY5MoQ4Sa.zNvUy3rPB24.z2HVC3q.64UO6RoeioYKKsa.AxntzwXLy3rLza.64UO6RoeioYGKEQ4Sa.nZaXmdCWtNr5v01N.mJu0mZfivM1ivxa.mtb4zeTWu04.C2XPy2u.zMLSDgvY.7kEa6RIiio2vOcdRI6JQS4q.zgvZy3jPChrPB24".split(".");
5
+ return t = function() {
6
+ return e;
7
+ }, t();
8
+ }
9
+ (function(e, t) {
10
+ let n = g, r = e();
11
+ for (;;) try {
12
+ if (-parseInt(n(361)) / 1 * (-parseInt(n(375)) / 2) + parseInt(n(339)) / 3 + -parseInt(n(346)) / 4 + -parseInt(n(384)) / 5 * (-parseInt(n(348)) / 6) + parseInt(n(385)) / 7 * (-parseInt(n(351)) / 8) + parseInt(n(369)) / 9 * (-parseInt(n(386)) / 10) + parseInt(n(333)) / 11 * (parseInt(n(341)) / 12) == t) break;
13
+ r.push(r.shift());
14
+ } catch {
15
+ r.push(r.shift());
16
+ }
17
+ })(t, 165227);
18
+ import { Text as n } from "../../primitives/Typography2.js";
19
+ import { Progress as r } from "../../primitives/Progress2.js";
20
+ import { Box as i, Grid as a, Inline as o, Stack as ee } from "../../primitives/Layout2.js";
21
+ import { StatusIcon as te } from "../../primitives/StatusIcon2.js";
22
+ import { useControllableState as s } from "../../hooks/useControllableState.js";
23
+ import { Button as ne, Checkbox as re } from "../../primitives/index.js";
24
+ import { useSelection as c } from "../../hooks/useSelection.js";
25
+ import { Card as l, CardBody as u, CardHeader as d } from "../Card/Card2.js";
26
+ import { List as f, ListItem as p } from "../List/List2.js";
27
+ import { Accordion as m, AccordionItem as h } from "../Accordion/Accordion2.js";
28
+ /* empty css */
29
+ function g(e, n) {
30
+ e -= 331;
31
+ let r = t(), i = r[e];
32
+ g.vkpCMN === void 0 && (g.PdANVc = function(e) {
33
+ let t = "", n = "";
34
+ 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);
35
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
36
+ return decodeURIComponent(n);
37
+ }, g.JDPOVJ = {}, g.vkpCMN = !0);
38
+ let a = r[0];
39
+ g.xYYbOM !== a && (g.JDPOVJ = {}, g.xYYbOM = a);
40
+ let o = g.JDPOVJ[e];
41
+ return o === void 0 ? (i = g.PdANVc(i), g.JDPOVJ[e] = i) : i = o, i;
42
+ }
43
+ import { useId as _ } from "react";
44
+ import { ChevronDown as ie } from "lucide-react";
45
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
46
+ var b = (e) => e.stopPropagation(), ae = {
47
+ pending: "대기 중",
48
+ active: e(389),
49
+ done: "완료",
50
+ error: "오류",
51
+ warning: e(336)
52
+ };
53
+ function x({ title: t, steps: g, groups: x, groupMode: S = e(372), openGroups: oe, defaultOpenGroups: C, onOpenGroupsChange: w, actions: T, completed: se, defaultCompleted: ce, onCompletedChange: le, readOnly: E, doneMessage: D = "모두 끝냈어요!", collapsible: O, open: ue, defaultOpen: k = !1, onOpenChange: A, summary: j, className: M, style: N }) {
54
+ let P = e, F = c({
55
+ type: P(376),
56
+ value: se,
57
+ defaultValue: ce,
58
+ onValueChange: le
59
+ }), I = x ? x[P(374)]((e) => e[P(332)]) : g ?? [], L = I[P(388)]((e) => F[P(382)](e.id))[P(364)], R = I.length, z = R > 0 && L === R, [B, V] = s(ue, k, A), H = !O || B, U = _(), de = R > 0 ? Math[P(356)](L / R * 100) : 0, W = typeof j === P(379) ? j(L, R) : j ?? (O ? de + P(377) : null), G = (e, t = F[P(382)]) => e[P(332)][P(364)] > 0 && e[P(332)][P(355)]((e) => t(e.id)), K = x?.find((e) => !G(e))?.id, [q, J] = s(oe, C ?? (K ? [K] : []), w), Y = (e) => {
60
+ let t = P, n = F[t(382)](e);
61
+ if (F.toggle(e), !x || n || S !== t(372)) return;
62
+ let r = new Set(F[t(335)])[t(353)](e), i = (e) => r[t(347)](e), a = x.findIndex((n) => n[t(332)][t(373)]((t) => t.id === e));
63
+ if (a < 0 || !G(x[a], i) || !q[t(357)](x[a].id)) return;
64
+ let o = [...x.slice(a + 1), ...x[t(387)](0, a)][t(363)]((e) => !G(e, i));
65
+ J(o ? [o.id] : []);
66
+ }, fe = I.find((e) => !F[P(382)](e.id) && !e.disabled)?.id, X = O ? v(ne, {
67
+ className: P(334),
68
+ variant: P(380),
69
+ size: "sm",
70
+ iconOnly: !0,
71
+ icon: v(ie, {}),
72
+ "aria-label": P(H ? 383 : 378),
73
+ "aria-expanded": H,
74
+ "aria-controls": U,
75
+ onClick: () => V(!H)
76
+ }) : null, Z = (e) => y(n, {
77
+ variant: P(371),
78
+ tone: e,
79
+ numeric: !0,
80
+ "aria-label": R + P(381) + L + "단계 완료",
81
+ children: [L, y(n, {
82
+ as: "span",
83
+ variant: P(371),
84
+ tone: "tertiary",
85
+ children: ["/", R]
86
+ })]
87
+ }), Q = x ? X : X ?? Z(P(337)), pe = T == null ? Q ?? void 0 : y(o, {
88
+ gap: 1,
89
+ wrap: !1,
90
+ children: [T, Q]
91
+ }), $ = v(r, {
92
+ value: L,
93
+ max: R,
94
+ size: "sm",
95
+ tone: z ? "success" : "accent",
96
+ "aria-label": "진행률"
97
+ }), me = (e) => {
98
+ let t = P, r = F[t(382)](e.id), i = E || e[t(345)] ? void 0 : () => Y(e.id);
99
+ return v(p, {
100
+ disabled: e.disabled,
101
+ onClick: i,
102
+ leading: v("span", {
103
+ onClick: b,
104
+ children: v(re, {
105
+ shape: t(370),
106
+ checked: r,
107
+ disabled: e[t(345)],
108
+ readOnly: !i,
109
+ onChange: i,
110
+ tabIndex: -1,
111
+ "aria-hidden": !0
112
+ })
113
+ }),
114
+ title: v(n, {
115
+ as: "span",
116
+ variant: t(354),
117
+ tone: r ? t(359) : "default",
118
+ strike: r,
119
+ children: e.label
120
+ }),
121
+ description: e[t(331)],
122
+ trailing: r ? void 0 : e[t(343)]
123
+ }, e.id);
124
+ }, he = (e) => {
125
+ let t = P, r = F.isSelected(e.id), i = r ? t(342) : e.id === fe ? t(362) : t(350), a = E || e[t(345)] ? void 0 : () => Y(e.id);
126
+ return v(p, {
127
+ variant: t(352),
128
+ disabled: e[t(345)],
129
+ onClick: a,
130
+ leading: v(te, {
131
+ status: i,
132
+ progress: i === t(362) ? 0 : void 0,
133
+ size: "lg",
134
+ label: ae[i]
135
+ }),
136
+ title: v(n, {
137
+ as: "span",
138
+ variant: t(354),
139
+ tone: t(i === "active" ? 337 : 359),
140
+ strike: r,
141
+ children: e.label
142
+ }),
143
+ description: e.description,
144
+ trailing: r ? void 0 : e.action
145
+ }, e.id);
146
+ }, ge = S === "single" ? {
147
+ type: P(372),
148
+ value: q[0] ?? null,
149
+ onValueChange: (e) => J(e ? [e] : [])
150
+ } : {
151
+ type: P(376),
152
+ value: q,
153
+ onValueChange: J
154
+ };
155
+ return y(l, {
156
+ padding: x ? "md" : "sm",
157
+ className: M,
158
+ style: N,
159
+ children: [
160
+ v(d, {
161
+ title: t,
162
+ actions: pe
163
+ }),
164
+ v(u, { children: y(ee, {
165
+ gap: 3,
166
+ children: [
167
+ x ? y(a, {
168
+ columns: P(349),
169
+ gap: 3,
170
+ align: P(338),
171
+ children: [$, Z(P(359))]
172
+ }) : $,
173
+ W != null && !z && v(n, {
174
+ variant: P(367),
175
+ tone: "tertiary",
176
+ numeric: !0,
177
+ children: W
178
+ }),
179
+ z && D && v(n, {
180
+ variant: P(358),
181
+ tone: P(340),
182
+ children: D
183
+ })
184
+ ]
185
+ }) }),
186
+ v("div", {
187
+ id: U,
188
+ className: P(360),
189
+ "data-open": H || void 0,
190
+ inert: !H || void 0,
191
+ children: v(P(365), {
192
+ className: "ds-tracker__fold-inner",
193
+ children: x ? v(i, {
194
+ padding: 1,
195
+ children: v(m, {
196
+ variant: P(368),
197
+ ...ge,
198
+ children: x[P(366)]((e) => {
199
+ let t = P, r = G(e);
200
+ return v(h, {
201
+ value: e.id,
202
+ flush: !0,
203
+ title: v(n, {
204
+ as: "span",
205
+ variant: t(344),
206
+ tone: t(r ? 359 : 337),
207
+ strike: r,
208
+ children: e.title
209
+ }),
210
+ children: v(f, {
211
+ "aria-label": "단계",
212
+ children: e[t(332)][t(366)](he)
213
+ })
214
+ }, e.id);
215
+ })
216
+ })
217
+ }) : v(f, {
218
+ "aria-label": "단계",
219
+ children: I[P(366)](me)
220
+ })
221
+ })
222
+ })
223
+ ]
224
+ });
225
+ }
226
+ export { x as ProgressTracker };
@@ -0,0 +1,186 @@
1
+ "use client";
2
+ const e = c;
3
+ (function(e, t) {
4
+ let n = c, r = e();
5
+ for (;;) try {
6
+ if (-parseInt(n(347)) / 1 + parseInt(n(337)) / 2 + parseInt(n(356)) / 3 + parseInt(n(388)) / 4 * (parseInt(n(342)) / 5) + -parseInt(n(369)) / 6 * (-parseInt(n(384)) / 7) + -parseInt(n(340)) / 8 * (-parseInt(n(382)) / 9) + parseInt(n(360)) / 10 * (-parseInt(n(385)) / 11) == t) break;
7
+ r.push(r.shift());
8
+ } catch {
9
+ r.push(r.shift());
10
+ }
11
+ })(a, 426909);
12
+ import { Text as t } from "../../primitives/Typography2.js";
13
+ import { Inline as n } from "../../primitives/Layout2.js";
14
+ import { useControllableState as r } from "../../hooks/useControllableState.js";
15
+ import { cx as i } from "../../primitives/index.js";
16
+ /* empty css */
17
+ function a() {
18
+ let e = /* @__PURE__ */ "zhmTCMf0Aw5Nls0.yw1Izxi.mJuWnhn5zhfHBa.CMfKAw9NCM91Ca.mJbzugzsDhe.AgLKzgvU.y2vPBa.zhmTCMf0Aw5N.ioYxHUYDJa.nZC5mZG0z0jZCLfm.zM9JDxm.C2vTAwjVBgq.C2v0.Axnoyu4.zhmTCMf0Aw5Nx19MAwXS.zgL2.Aw5ZzxqOmca.zgvMyxvSDa.mJm3otK5merbBK5ltW.rw5K.zgf0yxnLDa.jsaWidaP.ndG5otaXmhnVy1zJAq.Dg9mB2nHBgvtDhjPBMC.BwLU.Aw1N.zhmTCMf0Aw5Nx19IyxnL.A28Ts1i.Dg9gAxHLza.ChjLDMvUDerLzMf1Bhq.AxnjBNrLz2vY.mZy2vgXQBhLe.CMfKAw8.C3rPBgW.qxjYB3DsAwDODa.DgfYz2v0.BgfIzwWTBgC.7kcqlca.rgvSzxrL.qxjYB3DeB3DU.zhmTCMf0Aw5Nx19OAxqTlxjPz2H0.DMfSDwu.qxjYB3DvCa.zgvSzxrL.mZKWnKDry0nsvq.C3bHBG.mJuWnJDYvK9HDuC.mtfbteTgsei.zhmTCMf0Aw5Nx19OAxq.rw50zxi.mJa0ndG0q3nUvMzJ.zhmTCMf0Aw5Nx19ZDgfY.zhmTCMf0Aw5Nx19ZDgfYCW.DgvYDgLHCNK.BwfW.DxbuBW.7kcqioUNJoYGKoYxKca.sg9Tzq.y3vYCMvUDa.qxjYB3Dmzwz0.BgfIzwWTBwq.qMfJA3nWywnL.zhmTCMf0Aw5Nx19OAxqTlwXLzNq.yM9KEs1ZBq.Bwf4.zNjVBq.nJG4mtK0zvfnCxrP".split(".");
19
+ return a = function() {
20
+ return e;
21
+ }, a();
22
+ }
23
+ import { useRef as o, useState as s } from "react";
24
+ function c(e, t) {
25
+ e -= 332;
26
+ let n = a(), r = n[e];
27
+ c.sLCNok === void 0 && (c.KPESAk = function(e) {
28
+ let t = "", n = "";
29
+ 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);
30
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
31
+ return decodeURIComponent(n);
32
+ }, c.DygnuY = {}, c.sLCNok = !0);
33
+ let i = n[0];
34
+ c.pZKIqe !== i && (c.DygnuY = {}, c.pZKIqe = i);
35
+ let o = c.DygnuY[e];
36
+ return o === void 0 ? (r = c.KPESAk(r), c.DygnuY[e] = r) : r = o, r;
37
+ }
38
+ import { Star as l } from "lucide-react";
39
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
40
+ var f = {
41
+ sm: "label-sm",
42
+ md: e(398),
43
+ lg: e(374)
44
+ }, p = (t) => Number[e(368)](t) ? String(t) : t[e(366)](1);
45
+ function m({ value: a, defaultValue: c = null, onValueChange: m, max: h = 5, allowHalf: g = !1, allowClear: _ = !0, readOnly: v = !1, disabled: y = !1, size: b = "md", tone: x = e(339), icon: S, labels: C, showValue: w = !1, count: T, name: E, id: D, className: O, "aria-label": k = "별점", "aria-labelledby": A }) {
46
+ let j = e, [M, N] = r(a, c, m), [P, F] = s(null), [I, L] = s(null), [R, z] = s({
47
+ n: 0,
48
+ upTo: 0
49
+ }), B = o(/* @__PURE__ */ new Map()), V = !v && !y, H = g ? .5 : 1, U = V && P !== null && P !== I ? P : null, W = U ?? M ?? 0, G = (e) => e && C ? C[Math[j(344)](e) - 1] : void 0, K = G(U ?? M), q = (e) => {
50
+ V && (_ && e === M ? (N(null), L(e)) : (N(e), L(null), z((t) => ({
51
+ n: t.n + 1,
52
+ upTo: Math.ceil(e)
53
+ }))));
54
+ }, J = (e) => {
55
+ let t = j;
56
+ N(e), z((n) => ({
57
+ n: n.n + 1,
58
+ upTo: Math[t(344)](e)
59
+ })), B.current.get(e)?.[t(348)]();
60
+ }, Y = (e) => {
61
+ let t = j;
62
+ if (!V) return;
63
+ let n = M ?? 0;
64
+ switch (e.key) {
65
+ case t(372):
66
+ case t(380):
67
+ J(Math[t(362)](h, n + H));
68
+ break;
69
+ case t(397):
70
+ case t(377):
71
+ J(Math.max(H, n - H));
72
+ break;
73
+ case t(395):
74
+ J(H);
75
+ break;
76
+ case t(357):
77
+ J(h);
78
+ break;
79
+ case t(332):
80
+ case t(376):
81
+ if (!_ || M === null) return;
82
+ N(null);
83
+ break;
84
+ case " ":
85
+ case t(387): {
86
+ let n = Number(e[t(373)][t(358)][t(379)]);
87
+ if (Number[t(351)](n)) return;
88
+ q(n);
89
+ break;
90
+ }
91
+ default: return;
92
+ }
93
+ e[t(367)]();
94
+ }, X = Array[j(336)]({ length: h * (g ? 2 : 1) }, (e, t) => (t + 1) * H), Z = M !== null && X.includes(M) ? M : X[0], Q = S ?? u(l, {}), $ = Array.from({ length: h }, (e, t) => {
95
+ let n = j, r = Math[n(362)](1, Math[n(335)](0, W - t)), a = R.n > 0 && t < R[n(393)], o = X.filter((e) => e > t && e <= t + 1);
96
+ return d("span", {
97
+ className: n(389),
98
+ style: { "--_i": t },
99
+ children: [d(n(383), {
100
+ className: "ds-rating__icon",
101
+ "data-pop": a || void 0,
102
+ children: [u("span", {
103
+ className: n(364),
104
+ "aria-hidden": !0,
105
+ children: Q
106
+ }), u(n(383), {
107
+ className: n(352),
108
+ "aria-hidden": !0,
109
+ style: { clipPath: n(354) + (1 - r) * 100 + n(359) },
110
+ children: Q
111
+ })]
112
+ }, a ? "pop-" + R.n : n(371)), !v && o[n(392)]((e) => u("span", {
113
+ ref: (t) => {
114
+ let r = n;
115
+ t ? B[r(396)][r(350)](e, t) : B[r(396)][r(381)](e);
116
+ },
117
+ role: n(370),
118
+ "aria-checked": e === M,
119
+ "aria-label": G(e) ? p(e) + n(375) + G(e) : p(e) + "점",
120
+ "aria-disabled": y || void 0,
121
+ tabIndex: V && e === Z ? 0 : -1,
122
+ "data-value": e,
123
+ "data-half": g && !Number[n(368)](e) || void 0,
124
+ className: i(n(386), g && (Number[n(368)](e) ? n(378) : n(333))),
125
+ onPointerEnter: () => {
126
+ V && (F(e), e !== I && L(null));
127
+ },
128
+ onClick: () => q(e)
129
+ }, e))]
130
+ }, t);
131
+ });
132
+ return d(n, {
133
+ gap: 2,
134
+ wrap: !1,
135
+ id: D,
136
+ className: i(j(345), j(338) + b, "ds-rating--" + x, O),
137
+ "data-disabled": y || void 0,
138
+ children: [
139
+ v ? u(j(383), {
140
+ className: j(390),
141
+ role: j(363),
142
+ "aria-label": M === null ? k + j(346) : h + j(394) + p(M) + "점",
143
+ children: $
144
+ }) : u(j(353), {
145
+ className: j(390),
146
+ role: j(341),
147
+ "aria-label": A ? void 0 : k,
148
+ "aria-labelledby": A,
149
+ "aria-disabled": y || void 0,
150
+ "data-previewing": U !== null || void 0,
151
+ onKeyDown: Y,
152
+ onPointerLeave: () => {
153
+ F(null), L(null);
154
+ },
155
+ children: $
156
+ }),
157
+ w && M !== null && u(t, {
158
+ variant: f[b],
159
+ weight: j(349),
160
+ numeric: !0,
161
+ children: p(M)
162
+ }),
163
+ K && u(t, {
164
+ variant: f[b],
165
+ tone: U === null ? j(355) : "secondary",
166
+ children: K
167
+ }),
168
+ T !== void 0 && d(t, {
169
+ variant: j(334),
170
+ tone: j(391),
171
+ numeric: !0,
172
+ children: [
173
+ "(",
174
+ T[j(361)](j(365)),
175
+ ")"
176
+ ]
177
+ }),
178
+ E && u("input", {
179
+ type: j(343),
180
+ name: E,
181
+ value: M ?? ""
182
+ })
183
+ ]
184
+ });
185
+ }
186
+ export { m as Rating };
@@ -0,0 +1,236 @@
1
+ "use client";
2
+ const e = x;
3
+ (function(e, t) {
4
+ let n = x, r = e();
5
+ for (;;) try {
6
+ if (-parseInt(n(152)) / 1 + parseInt(n(127)) / 2 + -parseInt(n(130)) / 3 * (-parseInt(n(174)) / 4) + -parseInt(n(189)) / 5 + parseInt(n(179)) / 6 + parseInt(n(182)) / 7 + -parseInt(n(120)) / 8 * (parseInt(n(132)) / 9) == t) break;
7
+ r.push(r.shift());
8
+ } catch {
9
+ r.push(r.shift());
10
+ }
11
+ })(k, 492583);
12
+ import { cx as t } from "../../primitives/index.js";
13
+ import { collapseLayout as n, expandLayout as r, initialLayout as i, isCollapsed as a, loadLayout as o, resetPair as s, resizeLayout as c, sameLayout as l, saveLayout as u } from "./layout.js";
14
+ /* empty css */
15
+ import { Children as d, Fragment as f, createContext as p, isValidElement as m, useContext as h, useEffect as g, useId as _, useRef as v, useState as y } from "react";
16
+ import { jsx as b } from "react/jsx-runtime";
17
+ function x(e, t) {
18
+ e -= 119;
19
+ let n = k(), r = n[e];
20
+ x.OiMIUJ === void 0 && (x.HBJiSF = 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
+ }, x.qerQNm = {}, x.OiMIUJ = !0);
26
+ let i = n[0];
27
+ x.OoTsvd !== i && (x.qerQNm = {}, x.OoTsvd = i);
28
+ let a = x.qerQNm[e];
29
+ return a === void 0 ? (r = x.HBJiSF(r), x.qerQNm[e] = r) : r = a, r;
30
+ }
31
+ var S = p(null), C = p(-1), w = (e) => {
32
+ let t = h(S);
33
+ if (!t) throw Error(e + " must be inside a ResizablePanelGroup");
34
+ return t;
35
+ }, T = (t, n = "") => d[e(128)](t)[e(143)]((t) => {
36
+ let r = e;
37
+ if (!m(t)) return [];
38
+ let i = "" + n + String(t[r(169)]);
39
+ return t[r(181)] === f ? T(t.props[r(192)], i + "/") : [{
40
+ el: t,
41
+ key: i
42
+ }];
43
+ }), E = 16, ee = (t) => {
44
+ let n = e, r = t.collapsedSize ?? 0, i = Math[n(153)](t[n(142)] ?? 10, r);
45
+ return {
46
+ min: i,
47
+ max: Math[n(153)](i, t[n(167)] ?? 100),
48
+ collapsible: !!t[n(126)],
49
+ collapsedSize: r,
50
+ defaultSize: t[n(173)]
51
+ };
52
+ };
53
+ function D({ direction: d = "horizontal", children: f, autoSaveId: p, onLayoutChange: m, onLayout: h, className: x, style: w, ...D }) {
54
+ let k = e, j = v(null), M = _(), N = T(f), P = N[k(165)](({ el: e }) => e[k(181)] === O)[k(185)](({ el: e }) => e), F = P.map((e) => ee(e[k(145)])), I = P[k(185)]((e, t) => e[k(145)].id ?? M + k(123) + t), L = F[k(185)]((e, t) => I[t] + ":" + (e[k(173)] ?? "") + ":" + e[k(137)] + ":" + e[k(153)])[k(122)]("|"), R = () => i(F, P.map((e) => !!(e[k(145)][k(124)] ?? e[k(145)][k(149)]))), [z, B] = y(() => ({
55
+ signature: L,
56
+ sizes: p && o(p, F[k(166)]) || R()
57
+ })), V = z.sizes;
58
+ z[k(131)] !== L && (V = R(), B({
59
+ signature: L,
60
+ sizes: V
61
+ }));
62
+ let [H, U] = y(null), W = v(null), G = v({}), K = v({
63
+ sizes: V,
64
+ panels: F,
65
+ panelEls: P,
66
+ onLayoutChange: m,
67
+ onLayout: h,
68
+ autoSaveId: p
69
+ });
70
+ g(() => {
71
+ K.current = {
72
+ sizes: V,
73
+ panels: F,
74
+ panelEls: P,
75
+ onLayoutChange: m,
76
+ onLayout: h,
77
+ autoSaveId: p
78
+ };
79
+ });
80
+ let q = (e) => B((t) => ({
81
+ ...t,
82
+ sizes: e
83
+ })), J = (e, t, n = !0) => {
84
+ let r = k, { panels: i, panelEls: o, onLayout: s, autoSaveId: c } = K.current;
85
+ q(e), !l(e, t) && (i[r(176)]((s, c) => {
86
+ let l = r, u = a(t, i, c), d = a(e, i, c);
87
+ d && !u && (G[l(150)][c] = t[c]), d !== u && n && o[c]?.props.onCollapsedChange?.(d);
88
+ }), s?.(e), c && u(c, e));
89
+ }, Y = () => {
90
+ let e = k, t = j[e(150)]?.[e(186)]();
91
+ return Math[e(153)](1, (d === e(148) ? t?.[e(162)] : t?.[e(125)]) ?? 1);
92
+ }, te = (e) => G.current[e] ?? F[e][k(173)] ?? F[e][k(137)], X = (e, t, i) => i ? n(e, F, t) : r(e, F, t, te(t)), Z = v({
93
+ commit: J,
94
+ foldOrOpen: X
95
+ });
96
+ g(() => {
97
+ Z.current = {
98
+ commit: J,
99
+ foldOrOpen: X
100
+ };
101
+ });
102
+ let ne = P[k(185)]((e) => e[k(145)][k(124)] === void 0 ? "" : e[k(145)][k(124)] ? "1" : "0").join("");
103
+ g(() => {
104
+ let e = k;
105
+ if (W[e(150)]) return;
106
+ let { sizes: t, panels: n, panelEls: r } = K[e(150)], i = t;
107
+ r[e(176)]((t, r) => {
108
+ let o = e, s = t.props[o(124)];
109
+ s !== void 0 && n[r][o(126)] && s !== a(i, n, r) && (i = Z[o(150)].foldOrOpen(i, r, s));
110
+ }), i !== t && Z.current[e(188)](i, t, !1);
111
+ }, [ne, H]);
112
+ let re = (e, t) => {
113
+ let n = k;
114
+ t[n(161)] === 0 && (t.preventDefault(), t[n(184)][n(190)](t[n(157)]), t[n(184)].focus({ preventScroll: !0 }), W[n(150)] = {
115
+ handle: e,
116
+ pointer: d === n(148) ? t[n(151)] : t[n(187)],
117
+ start: V,
118
+ last: V,
119
+ px: Y()
120
+ }, U(e));
121
+ }, ie = (e) => {
122
+ let t = k, n = W[t(150)];
123
+ if (!n) return;
124
+ let r = ((d === t(148) ? e[t(151)] : e.clientY) - n[t(172)]) / n.px * 100, i = c(n[t(193)], F, n[t(175)], r, .5);
125
+ l(i, n.last) || (n[t(155)] = i, q(i), m?.(i));
126
+ }, ae = () => {
127
+ let e = k, t = W[e(150)];
128
+ t && (W[e(150)] = null, U(null), J(t[e(155)], t[e(193)]));
129
+ }, oe = () => {
130
+ let e = k, t = W[e(150)];
131
+ t && (W[e(150)] = null, U(null), q(t[e(193)]), m?.(t[e(193)]));
132
+ }, Q = (e) => {
133
+ let t = F[e].collapsible ? e : F[e + 1]?.collapsible ? e + 1 : -1;
134
+ J(t >= 0 ? X(V, t, !a(V, F, t)) : s(V, F, e, R()), V);
135
+ }, se = (e, t) => {
136
+ let n = k;
137
+ if (t[n(169)] === "Escape" && W[n(150)]) {
138
+ t[n(144)](), oe();
139
+ return;
140
+ }
141
+ if (W[n(150)]) return;
142
+ let r = d === n(148) ? n(154) : "ArrowUp", i = d === n(148) ? n(139) : n(158), a = (t[n(164)] ? 64 : E) / Y() * 100, o = F[e], s = F[e + 1], l = null;
143
+ if (t[n(169)] === r) l = -a;
144
+ else if (t[n(169)] === i) l = a;
145
+ else if (t[n(169)] === n(178)) l = -Math[n(153)](0, V[e] - o[n(137)]);
146
+ else if (t[n(169)] === n(138)) l = Math[n(153)](0, Math[n(137)](o[n(153)] - V[e], V[e + 1] - s[n(137)]));
147
+ else if (t.key === "Enter") {
148
+ t.preventDefault(), Q(e);
149
+ return;
150
+ }
151
+ l !== null && (t[n(144)](), J(c(V, F, e, l, 0), V));
152
+ }, $ = -1, ce = N.map(({ el: e, key: t }) => {
153
+ let n = k, r = -1;
154
+ return e[n(181)] === O ? r = ++$ : e.type === A && (r = $), b(C.Provider, {
155
+ value: r,
156
+ children: e
157
+ }, t);
158
+ });
159
+ return b(S[k(146)], {
160
+ value: {
161
+ direction: d,
162
+ sizes: V,
163
+ panels: F,
164
+ panelIds: I,
165
+ dragging: H,
166
+ startDrag: re,
167
+ moveDrag: ie,
168
+ endDrag: ae,
169
+ onHandleKey: se,
170
+ toggle: Q
171
+ },
172
+ children: b(k(119), {
173
+ ref: j,
174
+ className: t(k(141), x),
175
+ "data-direction": d,
176
+ "data-dragging": H !== null || void 0,
177
+ style: w,
178
+ ...D,
179
+ children: ce
180
+ })
181
+ });
182
+ }
183
+ function O({ defaultSize: n, minSize: r, maxSize: i, collapsible: o, collapsedSize: s, collapsed: c, defaultCollapsed: l, onCollapsedChange: u, id: d, className: f, style: p, children: m, ...g }) {
184
+ let _ = e, v = w(_(160)), y = h(C), x = v[_(180)][y] ?? 0, S = v.panels[y], T = !!S && a(v.sizes, v[_(170)], y);
185
+ return b(_(119), {
186
+ id: v.panelIds[y],
187
+ className: t(_(163), f),
188
+ "data-collapsed": T || void 0,
189
+ "data-size": Math.round(x),
190
+ inert: T && S[_(134)] === 0 ? !0 : void 0,
191
+ style: {
192
+ flexGrow: x,
193
+ ...p
194
+ },
195
+ ...g,
196
+ children: m
197
+ });
198
+ }
199
+ function k() {
200
+ let e = /* @__PURE__ */ "CgfUzwXZ.zgLYzwn0Aw9U.Cg9PBNrLCG.zgvMyxvSDfnPEMu.mZC2ndy4sw9lDhLW.AgfUzgXL.zM9YrwfJAa.Dg9Nz2XL.sg9Tzq.mJqYmJmYnK9hDw96qW.C2L6zxm.DhLWzq.mZuXmZGWnfb1s0Dpuq.zhjHz2DPBMC.y3vYCMvUDfrHCMDLDa.BwfW.z2v0qM91BMrPBMDdBgLLBNrszwn0.y2XPzw50wq.y29TBwL0.mJCZoti5mfD2s3nOzq.C2v0ug9PBNrLCKnHChr1CMu.B25iyw5KBgvlzxK.y2HPBgrYzw4.C3rHCNq.zgL2.mtC1nJbwvKzmBvi.C2vWyxjHDg9Y.AM9PBG.lxbHBMvSlq.y29SBgfWC2vK.AgvPz2H0.y29SBgfWC2LIBgu.mtC4mZC5meDyt2TQzq.Dg9bCNjHEq.C3rHCNreCMfN.mtvWwwv2BLq.C2LNBMf0DxjL.ndK3n1jcwvPivW.zw5KrhjHzW.y29SBgfWC2vKu2L6zq.Bw92zurYywC.CM91BMq.BwLU.rw5K.qxjYB3DsAwDODa.zhmTCMvZAxPHyMXLx19Oyw5KBgu.zhmTCMvZAxPHyMXL.BwLUu2L6zq.zMXHDe1HCa.ChjLDMvUDerLzMf1Bhq.ChjVChm.uhjVDMLKzxi.7yYO64sqio2bRoQ4ScdSOBdSOiG.Ag9YAxPVBNrHBa.zgvMyxvSDenVBgXHChnLza.y3vYCMvUDa.y2XPzw50wa.mtm4otDUDLzxu2W.Bwf4.qxjYB3Dmzwz0.BgfZDa.zhmTCMvZAxPHyMXLx19NCMLW.Cg9PBNrLCKLK.qxjYB3DeB3DU.uMvZAxPHyMXLsgfUzgXL.uMvZAxPHyMXLugfUzwW.yNv0Dg9U.D2LKDgG.zhmTCMvZAxPHyMXLx19Wyw5LBa.C2HPzNrlzxK.zMLSDgvY.BgvUz3rO.Bwf4u2L6zq.CgfUzwXjzhm.A2v5".split(".");
201
+ return k = function() {
202
+ return e;
203
+ }, k();
204
+ }
205
+ function A({ withGrip: n, disabled: r, className: i, "aria-label": a, ...o }) {
206
+ let s = e, c = w(s(159)), l = h(C), u = c[s(170)][l];
207
+ if (!u || !c[s(170)][l + 1]) return null;
208
+ let d = c[s(180)][l], f = c[s(183)] === l;
209
+ return b(s(119), {
210
+ role: s(121),
211
+ tabIndex: r ? void 0 : 0,
212
+ "aria-orientation": c[s(171)] === s(148) ? "vertical" : s(148),
213
+ "aria-label": a ?? s(147),
214
+ "aria-controls": c[s(168)][l],
215
+ "aria-valuenow": Math[s(136)](d),
216
+ "aria-valuemin": Math[s(136)](u.collapsible ? u[s(134)] : u.min),
217
+ "aria-valuemax": Math[s(136)](u[s(153)]),
218
+ "aria-disabled": r || void 0,
219
+ className: t(s(140), i),
220
+ "data-dragging": f || void 0,
221
+ "data-disabled": r || void 0,
222
+ onPointerDown: r ? void 0 : (e) => c[s(129)](l, e),
223
+ onPointerMove: c[s(135)],
224
+ onPointerUp: c[s(133)],
225
+ onPointerCancel: c[s(133)],
226
+ onLostPointerCapture: c[s(133)],
227
+ onDoubleClick: r ? void 0 : () => c[s(177)](l),
228
+ onKeyDown: r ? void 0 : (e) => c[s(191)](l, e),
229
+ ...o,
230
+ children: n && b("span", {
231
+ className: s(156),
232
+ "aria-hidden": !0
233
+ })
234
+ });
235
+ }
236
+ export { A as ResizableHandle, O as ResizablePanel, D as ResizablePanelGroup };