@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.
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 +66 -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 +90 -0
  13. package/lib/components/Calendar/Calendar2.js +309 -0
  14. package/lib/components/Calendar/DatePicker2.js +228 -0
  15. package/lib/components/Calendar/date.js +118 -0
  16. package/lib/components/Card/Card2.js +103 -0
  17. package/lib/components/CardFrame/CardFrame2.js +67 -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 +48 -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 +111 -0
  26. package/lib/components/ColorPicker/ColorPicker2.js +609 -0
  27. package/lib/components/ColorPicker/color.js +180 -0
  28. package/lib/components/ColorPicker/presets.js +70 -0
  29. package/lib/components/Combobox/Combobox2.js +228 -0
  30. package/lib/components/CommandMenu/CommandMenu.js +267 -0
  31. package/lib/components/Comment/Comment2.js +110 -0
  32. package/lib/components/ContextMenu/ContextMenu2.js +168 -0
  33. package/lib/components/DataGrid/DataGrid2.js +1998 -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 +557 -0
  37. package/lib/components/DataGrid/panels.js +701 -0
  38. package/lib/components/DataGrid/typeMeta.js +75 -0
  39. package/lib/components/DataGrid/types.js +53 -0
  40. package/lib/components/DescriptionList/DescriptionList2.js +180 -0
  41. package/lib/components/Dialog/AlertDialog.js +119 -0
  42. package/lib/components/Dialog/Dialog2.js +110 -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 +393 -0
  46. package/lib/components/DropdownMenu/menuCore.js +63 -0
  47. package/lib/components/Dropzone/Dropzone2.js +145 -0
  48. package/lib/components/EmptyState/EmptyState2.js +70 -0
  49. package/lib/components/FileChip/FileChip2.js +94 -0
  50. package/lib/components/FileUpload/FileUpload.js +259 -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 +72 -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 +110 -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 +132 -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 +222 -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 +128 -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 +52 -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 +90 -0
  77. package/lib/components/PieChart/useArcTween.js +92 -0
  78. package/lib/components/Popover/Popover2.js +111 -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 +238 -0
  82. package/lib/components/Resizable/layout.js +115 -0
  83. package/lib/components/ScaledPreview/ScaledPreview2.js +99 -0
  84. package/lib/components/ScatterChart/ScatterChart2.js +355 -0
  85. package/lib/components/ScatterChart/scatter.js +85 -0
  86. package/lib/components/ScrollArea/ScrollArea2.js +217 -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 +84 -0
  92. package/lib/components/SparkChart/SparkChart2.js +217 -0
  93. package/lib/components/SparkChart/spark.js +71 -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 +357 -0
  101. package/lib/components/TimePicker/TimePicker2.js +388 -0
  102. package/lib/components/TimePicker/time.js +81 -0
  103. package/lib/components/Timeline/Timeline2.js +369 -0
  104. package/lib/components/Timeline/scale.js +81 -0
  105. package/lib/components/Toast/Toaster.js +213 -0
  106. package/lib/components/Toast/store.js +128 -0
  107. package/lib/components/ToggleGroup/ToggleGroup2.js +125 -0
  108. package/lib/components/Toolbar/Toolbar2.js +283 -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 +286 -0
  112. package/lib/hooks/timing.js +57 -0
  113. package/lib/hooks/useControllableState.js +49 -0
  114. package/lib/hooks/useCountdown.js +75 -0
  115. package/lib/hooks/useDigitInput.js +103 -0
  116. package/lib/hooks/useDismiss.js +69 -0
  117. package/lib/hooks/useElapsed.js +85 -0
  118. package/lib/hooks/useFloating.js +70 -0
  119. package/lib/hooks/useFocusTrap.js +85 -0
  120. package/lib/hooks/usePresence.js +58 -0
  121. package/lib/hooks/usePressToOpen.js +70 -0
  122. package/lib/hooks/useScrollLock.js +71 -0
  123. package/lib/hooks/useSelection.js +65 -0
  124. package/lib/index.js +176 -17911
  125. package/lib/primitives/AspectRatio2.js +76 -0
  126. package/lib/primitives/BrandIcon.js +245 -0
  127. package/lib/primitives/ColorDot2.js +71 -0
  128. package/lib/primitives/CopyButton2.js +86 -0
  129. package/lib/primitives/CountBadge2.js +80 -0
  130. package/lib/primitives/Countdown2.js +61 -0
  131. package/lib/primitives/Delta2.js +92 -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 +69 -0
  137. package/lib/primitives/Kbd2.js +88 -0
  138. package/lib/primitives/Layout2.js +118 -0
  139. package/lib/primitives/Link2.js +55 -0
  140. package/lib/primitives/MaskedText2.js +121 -0
  141. package/lib/primitives/Progress2.js +137 -0
  142. package/lib/primitives/RelativeTime.js +82 -0
  143. package/lib/primitives/SearchInput2.js +85 -0
  144. package/lib/primitives/SelectorButton2.js +96 -0
  145. package/lib/primitives/Spinner2.js +94 -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 +54 -0
  151. package/lib/primitives/formatElapsed.js +63 -0
  152. package/lib/primitives/formatRelativeTime.js +64 -0
  153. package/lib/primitives/hotkey.js +94 -0
  154. package/lib/primitives/index.js +351 -0
  155. package/lib/primitives/maskValue.js +69 -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,267 @@
1
+ "use client";
2
+ const e = u;
3
+ (function(e, t) {
4
+ let n = u, r = e();
5
+ for (;;) try {
6
+ if (-parseInt(n(554)) / 1 * (-parseInt(n(519)) / 2) + parseInt(n(495)) / 3 * (parseInt(n(552)) / 4) + parseInt(n(477)) / 5 + -parseInt(n(544)) / 6 * (parseInt(n(510)) / 7) + -parseInt(n(520)) / 8 * (parseInt(n(505)) / 9) + -parseInt(n(512)) / 10 * (parseInt(n(497)) / 11) + parseInt(n(525)) / 12 * (-parseInt(n(490)) / 13) == t) break;
7
+ r.push(r.shift());
8
+ } catch {
9
+ r.push(r.shift());
10
+ }
11
+ })(t, 662480);
12
+ function t() {
13
+ let e = /* @__PURE__ */ "BMf0AxzLrxzLBNq.C2HPzNq.C2HVCNrJDxq.z2v0.ntC3odCXnwPLr3nOCa.CM9Szq.B2zM.y29Kzq.A2v5zg93BG.yM9KEs1ZBq.y29UDhjVBa.rw50zxi.B25tzwXLy3q.ywrKrxzLBNrmAxn0zw5LCG.BgvUz3rO.y3rYBa.AgfZ.mtiZodq3mtbxvejvCxq.ChjLC2vUDgf0Aw9U.y3rYBeTLEq.zhmTB3b0Aw9Ux190zxH0.z3jVDxa.ndiWnJm2AKHltKLW.zhmTC2nYB2XS.mtCXmty3n0nduLz4uq.C29Tzq.zMLUzeLUzgv4.zMLSDgvY.7jE06RIWimk3ioUlQ+Q4Sa.AxrLBxm.y3vYCMvUDa.BgfIzwW.ndvssxL4ruC.AgLUDa.Dg9W.ChjLDMvUDerLzMf1Bhq.BwLUkdqWmhb4lca2mhzOkq.mtyXndqYneL0yufXAa.CMvTB3zLrxzLBNrmAxn0zw5LCG.mtbgteLrrvu.zMLUza.zgLZywjSzwq.yxv0BW.C2XPy2u.B3b0Aw9U.yM9KEs1Tza.mLL4vuDjyG.mJeWnfbuzgXpzW.zgvMyxvSDa.ywX0.Dg9mB3DLCKnHC2u.Aw5KzxHpzG.mtjPv2fQBNm.zMXHDe1HCa.C2HPzNrlzxK.C2nYB2XSsw50B1zPzxC.Bwv0yuTLEq.DgvYDgLHCNK.y21K.ywX0s2v5.j+YxKcdRP57RIPqG66Qf66c57j20ioYxHUYwToYALa.vgfI.DMfSDwu.AxndB21WB3nPBMC.Bwv0yq.BgLZDa.Bw9K.DgfI.DhjPBq.Aw5JBhvKzxm.qxjYB3DeB3DU.mtjAsLvSAvy.y29TyM9IB3G.A2v5.ChjLDMLVDxnfBgvTzw50u2LIBgLUzW.sg9Tzq.C3bHBG.BwfW.zgLNAxq.mtzjAgX6sw4.CMvNDwXHCG.nte2nZq1rujLwuTY".split(".");
14
+ return t = function() {
15
+ return e;
16
+ }, t();
17
+ }
18
+ import { Kbd as n, isMac as r } from "../../primitives/Kbd2.js";
19
+ import { Text as i } from "../../primitives/Typography2.js";
20
+ import { Box as a, Inline as o, Separator as s } from "../../primitives/Layout2.js";
21
+ import { useControllableState as c } from "../../hooks/useControllableState.js";
22
+ import { Input as l } from "../../primitives/index.js";
23
+ function u(e, n) {
24
+ e -= 473;
25
+ let r = t(), i = r[e];
26
+ u.oqKxHG === void 0 && (u.KBntyh = function(e) {
27
+ let t = "", n = "";
28
+ 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);
29
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
30
+ return decodeURIComponent(n);
31
+ }, u.bLjAfk = {}, u.oqKxHG = !0);
32
+ let a = r[0];
33
+ u.EbZXhY !== a && (u.bLjAfk = {}, u.EbZXhY = a);
34
+ let o = u.bLjAfk[e];
35
+ return o === void 0 ? (i = u.KBntyh(i), u.bLjAfk[e] = i) : i = o, i;
36
+ }
37
+ import { Listbox as d, firstEnabled as f, lastEnabled as ee, nextEnabled as p, optionId as m } from "../Listbox/Listbox2.js";
38
+ import { Dialog as h } from "../Dialog/Dialog2.js";
39
+ import { useEffect as g, useId as _, useLayoutEffect as v, useMemo as y, useRef as b, useState as x } from "react";
40
+ import { Search as S } from "lucide-react";
41
+ import { Fragment as C, jsx as w, jsxs as T } from "react/jsx-runtime";
42
+ function E(e, t) {
43
+ let n = u, r = t[n(541)]().toLowerCase();
44
+ return !r || [
45
+ e.label,
46
+ typeof e[n(506)] == "string" ? e[n(506)] : "",
47
+ ...e.keywords ?? []
48
+ ][n(498)]((e) => e[n(523)]()[n(542)](r));
49
+ }
50
+ var D = /* @__PURE__ */ new Set([
51
+ e(539),
52
+ "cmd",
53
+ e(537),
54
+ e(488),
55
+ e(483),
56
+ e(522),
57
+ e(517),
58
+ e(474)
59
+ ]);
60
+ function O(t, n) {
61
+ let i = e, a = n[i(516)](0, -1)[i(550)]((e) => e[i(523)]()), o = n[n.length - 1]?.[i(523)]();
62
+ if (!o || D[i(489)](o)) return !1;
63
+ let s = (e) => e.some((e) => a[i(542)](e)), c = s([i(531), i(537)]) || r && a[i(542)](i(539)), l = s(["ctrl", i(483)]) || !r && a[i(542)](i(539));
64
+ return t[i(529)] === c && t[i(492)] === l && t[i(532)] === s([i(522), "option"]) && t[i(527)] === a[i(542)](i(474)) && (t[i(546)][i(523)]() === o || t[i(480)][i(523)]() === "key" + o || t.code.toLowerCase() === i(551) + o);
65
+ }
66
+ function k({ open: t, defaultOpen: r = !1, onOpenChange: D, trigger: k, groups: A, onSelect: j, shortcutKey: M = "k", placeholder: N = "명령어 또는 검색어를 입력하세요", filter: P = E, emptyText: F = (t) => "'" + t + e(533), footer: I, closeOnSelect: L = !0, title: R = "명령 메뉴" }) {
67
+ let z = e, [B, V] = c(t, r, D), [H, U] = x(""), [W, G] = x(0), K = b(null), q = _(), J = y(() => A[z(526)]((e) => e[z(502)][z(500)]((e) => P(e, H))[z(550)]((t) => ({
68
+ it: t,
69
+ group: e.heading
70
+ }))), [
71
+ A,
72
+ P,
73
+ H
74
+ ]), Y = y(() => J.map(({ it: e, group: t }) => ({
75
+ value: e.id,
76
+ label: e[z(504)],
77
+ group: t,
78
+ disabled: e[z(514)]
79
+ })), [J]), X = y(() => new Map(J.map(({ it: e }) => [e.id, e])), [J]), Z = B + ":" + H, [te, ne] = x(Z);
80
+ te !== Z && (ne(Z), G(f(Y)), !B && H && U(""));
81
+ let Q = (e) => {
82
+ let t = z;
83
+ e[t(514)] || (e[t(485)]?.(), j?.(e), L && V(!1));
84
+ }, $ = b({
85
+ open: B,
86
+ groups: A,
87
+ run: Q,
88
+ setOpen: V
89
+ });
90
+ v(() => {
91
+ $.current = {
92
+ open: B,
93
+ groups: A,
94
+ run: Q,
95
+ setOpen: V
96
+ };
97
+ }), g(() => {
98
+ let e = z, t = (e) => {
99
+ let t = u;
100
+ if (e[t(536)]) return;
101
+ let { open: n, groups: r, run: i, setOpen: a } = $[t(503)];
102
+ if (M && O(e, [t(539), M])) e.preventDefault(), a(!n);
103
+ else if (n) for (let n of r) {
104
+ let r = n[t(502)][t(513)]((n) => n[t(475)] && O(e, n[t(475)]));
105
+ if (r) {
106
+ e[t(508)](), i(r);
107
+ return;
108
+ }
109
+ }
110
+ };
111
+ return document[e(486)]("keydown", t), () => document[e(511)](e(481), t);
112
+ }, [M]), g(() => {
113
+ let e = z;
114
+ if (W < 0) return;
115
+ let t = document.getElementById(m(q, W))?.[e(547)];
116
+ t?.getAttribute(e(478)) === e(491) && t[e(528)]({ block: "nearest" });
117
+ }, [q, W]);
118
+ let re = (e) => {
119
+ let t = z, n = Y[t(526)]((e, n) => e[t(494)] === Y[n - 1]?.group ? [] : [n]);
120
+ if (n[t(487)] < 2) return;
121
+ let r = n[(n[t(500)]((e) => e <= W)[t(487)] - 1 + e + n[t(487)]) % n[t(487)]], i = n[n[t(524)](r) + 1] ?? Y[t(487)], a = Y[t(516)](r, i)[t(499)]((e) => !e[t(514)]);
122
+ a >= 0 && G(r + a);
123
+ }, ie = (e) => {
124
+ let t = z;
125
+ if (!e[t(473)][t(536)]) {
126
+ switch (e[t(546)]) {
127
+ case t(543):
128
+ G(p(Y, W, 1));
129
+ break;
130
+ case "ArrowUp":
131
+ G(p(Y, W, -1));
132
+ break;
133
+ case t(548):
134
+ G(f(Y));
135
+ break;
136
+ case "End":
137
+ G(ee(Y));
138
+ break;
139
+ case t(534):
140
+ re(e.shiftKey ? -1 : 1);
141
+ break;
142
+ case t(484):
143
+ J[W] && Q(J[W].it);
144
+ break;
145
+ default: return;
146
+ }
147
+ e.preventDefault();
148
+ }
149
+ }, ae = T(o, {
150
+ gap: 4,
151
+ justify: "between",
152
+ children: [T(o, {
153
+ gap: 2,
154
+ children: [w(n, {
155
+ keys: [z(540)],
156
+ size: "lg"
157
+ }), w(i, {
158
+ variant: z(482),
159
+ tone: "tertiary",
160
+ children: "섹션 이동"
161
+ })]
162
+ }), M && T(o, {
163
+ gap: 2,
164
+ children: [w(n, {
165
+ keys: ["mod", M],
166
+ size: "lg"
167
+ }), w(i, {
168
+ variant: "body-sm",
169
+ tone: z(530),
170
+ children: z(501)
171
+ })]
172
+ })]
173
+ });
174
+ return T(h, {
175
+ open: B,
176
+ onOpenChange: V,
177
+ trigger: k,
178
+ title: R,
179
+ bare: !0,
180
+ placement: z(507),
181
+ size: "lg",
182
+ initialFocus: K,
183
+ children: [
184
+ w(a, {
185
+ paddingX: 4,
186
+ paddingY: 1,
187
+ children: w(l, {
188
+ ref: K,
189
+ bare: !0,
190
+ size: "lg",
191
+ value: H,
192
+ onChange: (e) => U(e.target.value),
193
+ onKeyDown: ie,
194
+ placeholder: N,
195
+ role: z(545),
196
+ "aria-label": R,
197
+ "aria-expanded": !0,
198
+ "aria-controls": q,
199
+ "aria-autocomplete": z(538),
200
+ "aria-activedescendant": W >= 0 && Y[z(487)] ? m(q, W) : void 0,
201
+ autoComplete: z(479),
202
+ spellCheck: !1,
203
+ leading: w(S, {}),
204
+ trailing: w(n, {
205
+ keys: ["enter"],
206
+ size: "lg"
207
+ })
208
+ })
209
+ }),
210
+ w(s, {}),
211
+ w(a, {
212
+ className: z(496),
213
+ paddingX: 2,
214
+ paddingY: 2,
215
+ style: {
216
+ maxHeight: z(509),
217
+ overflowY: z(515)
218
+ },
219
+ children: w(d, {
220
+ id: q,
221
+ "aria-label": R,
222
+ options: Y,
223
+ activeIndex: W,
224
+ isSelected: () => !1,
225
+ onActiveChange: G,
226
+ onSelect: (e) => Q(X[z(476)](e[z(535)])),
227
+ emptyText: F(H[z(541)]()),
228
+ renderOption: (e, t) => {
229
+ let r = z, a = X[r(476)](e[r(535)]);
230
+ return T(C, { children: [
231
+ a.icon,
232
+ w(r(549), {
233
+ className: r(493),
234
+ children: T(o, {
235
+ gap: 2,
236
+ wrap: !1,
237
+ children: [w(i, {
238
+ variant: "label-lg",
239
+ weight: r(553),
240
+ tone: t[r(514)] ? r(514) : r(521),
241
+ truncate: !0,
242
+ children: a[r(504)]
243
+ }), a[r(506)] != null && w(i, {
244
+ variant: r(518),
245
+ tone: r(530),
246
+ truncate: !0,
247
+ children: a.hint
248
+ })]
249
+ })
250
+ }),
251
+ a[r(475)] && w(n, {
252
+ keys: a[r(475)],
253
+ size: "lg"
254
+ })
255
+ ] });
256
+ }
257
+ })
258
+ }),
259
+ I !== !1 && T(C, { children: [w(s, {}), w(a, {
260
+ paddingX: 4,
261
+ paddingY: 3,
262
+ children: I ?? ae
263
+ })] })
264
+ ]
265
+ });
266
+ }
267
+ export { k as CommandMenu, E as defaultCommandFilter };
@@ -0,0 +1,110 @@
1
+ "use client";
2
+ const e = d;
3
+ (function(e, t) {
4
+ let n = d, r = e();
5
+ for (;;) try {
6
+ if (-parseInt(n(223)) / 1 + parseInt(n(219)) / 2 + parseInt(n(233)) / 3 * (-parseInt(n(221)) / 4) + parseInt(n(240)) / 5 + -parseInt(n(229)) / 6 * (parseInt(n(236)) / 7) + -parseInt(n(235)) / 8 + parseInt(n(231)) / 9 == t) break;
7
+ r.push(r.shift());
8
+ } catch {
9
+ r.push(r.shift());
10
+ }
11
+ })(f, 111483);
12
+ import { Text as t } from "../../primitives/Typography2.js";
13
+ import { Inline as n, Stack as r } from "../../primitives/Layout2.js";
14
+ import { RelativeTime as i } from "../../primitives/RelativeTime.js";
15
+ import { Avatar as a, cx as o } from "../../primitives/index.js";
16
+ /* empty css */
17
+ import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
18
+ function u({ author: e, avatar: u, date: f, meta: p, actions: m, children: h, footer: g, continued: _, avatarSize: v = 28, className: y, style: b }) {
19
+ let x = d, S = u ?? (typeof e === x(220) ? c(a, {
20
+ name: e,
21
+ size: v
22
+ }) : null), C = m && c(x(237), {
23
+ className: x(227),
24
+ children: m
25
+ }), w = h != null && c(t, {
26
+ as: "div",
27
+ variant: x(228),
28
+ className: x(218),
29
+ children: h
30
+ });
31
+ return c("article", {
32
+ className: o(x(230), y),
33
+ "data-continued": _ || void 0,
34
+ style: {
35
+ "--_avatar": v + "px",
36
+ ...b
37
+ },
38
+ "aria-label": typeof e == "string" ? e + "의 댓글" : void 0,
39
+ children: l(n, {
40
+ gap: 3,
41
+ align: x(242),
42
+ wrap: !1,
43
+ children: [c(x(237), {
44
+ className: x(224),
45
+ children: _ ? null : S
46
+ }), l(r, {
47
+ gap: 1,
48
+ className: x(238),
49
+ children: [_ ? l(n, {
50
+ gap: 2,
51
+ align: x(242),
52
+ wrap: !1,
53
+ children: [w, C]
54
+ }) : l(s, { children: [l(n, {
55
+ gap: 2,
56
+ justify: x(234),
57
+ wrap: !1,
58
+ className: x(244),
59
+ children: [l(n, {
60
+ gap: 2,
61
+ wrap: !1,
62
+ className: x(241),
63
+ children: [c(t, {
64
+ variant: x(226),
65
+ weight: x(225),
66
+ truncate: !0,
67
+ children: e
68
+ }), p]
69
+ }), l(n, {
70
+ gap: 1,
71
+ wrap: !1,
72
+ children: [C, f != null && c(i, { date: f })]
73
+ })]
74
+ }), w] }), g]
75
+ })]
76
+ })
77
+ });
78
+ }
79
+ function d(e, t) {
80
+ e -= 218;
81
+ let n = f(), r = n[e];
82
+ d.necMuX === void 0 && (d.dIdlSo = function(e) {
83
+ let t = "", n = "";
84
+ 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);
85
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
86
+ return decodeURIComponent(n);
87
+ }, d.DBshHa = {}, d.necMuX = !0);
88
+ let i = n[0];
89
+ d.QGQwiX !== i && (d.DBshHa = {}, d.QGQwiX = i);
90
+ let a = d.DBshHa[e];
91
+ return a === void 0 ? (r = d.dIdlSo(r), d.DBshHa[e] = r) : r = a, r;
92
+ }
93
+ function f() {
94
+ let e = /* @__PURE__ */ "zhmTy29TBwvUDf9FAgvHzgvY.zhmTy29TBwvUDf9FyM9KEq.mZe1mZe2AxzcCu5q.C3rYAw5N.nti0nJHjvMLxrKm.zgL2.mtqYodKZBLziwMDv.zhmTy29TBwvUDf9FyxzHDgfY.C2vTAwjVBgq.BgfIzwWTBwq.zhmTy29TBwvUDf9Fywn0Aw9UCW.yM9KEs1Tza.nMPguMrSrq.zhmTy29TBwvUDa.mJK5odKZnuziCwngrq.z3jVDxa.mtvuBwn2Exm.yMv0D2vLBG.mtqWnJy3mNjMtK1kqG.mtmZntu0ne9fuwHzAG.C3bHBG.zhmTy29TBwvUDf9FBwfPBG.vgHYzwfK.otC4ntCWyMLoBwHI.zhmTy29TBwvUDf9FD2HV.C3rHCNq.zhmTy29TBwvUDc10AhjLywq".split(".");
95
+ return f = function() {
96
+ return e;
97
+ }, f();
98
+ }
99
+ function p({ children: e, className: t, style: n, "aria-label": r }) {
100
+ let i = d;
101
+ return c(i(222), {
102
+ className: o(i(243), t),
103
+ style: n,
104
+ role: r ? i(232) : void 0,
105
+ "aria-label": r,
106
+ children: e
107
+ });
108
+ }
109
+ u[e(239)] = p;
110
+ export { u as Comment, p as CommentThread };
@@ -0,0 +1,168 @@
1
+ "use client";
2
+ const e = b;
3
+ (function(e, t) {
4
+ let n = b, r = e();
5
+ for (;;) try {
6
+ if (-parseInt(n(302)) / 1 * (parseInt(n(294)) / 2) + parseInt(n(247)) / 3 + parseInt(n(254)) / 4 + -parseInt(n(298)) / 5 * (-parseInt(n(291)) / 6) + -parseInt(n(292)) / 7 + -parseInt(n(278)) / 8 * (-parseInt(n(244)) / 9) + -parseInt(n(239)) / 10 * (parseInt(n(264)) / 11) == t) break;
7
+ r.push(r.shift());
8
+ } catch {
9
+ r.push(r.shift());
10
+ }
11
+ })(M, 387597);
12
+ import { TIMING as t } from "../../hooks/timing.js";
13
+ import { usePresence as n } from "../../hooks/usePresence.js";
14
+ import { useControllableState as r } from "../../hooks/useControllableState.js";
15
+ import { useDismiss as i } from "../../hooks/useDismiss.js";
16
+ import { MenuContext as a, menuItems as o, useMenuRoot as s } from "../DropdownMenu/menuCore.js";
17
+ import { DropdownMenuCheckboxItem as c, DropdownMenuItem as l, DropdownMenuLabel as u, DropdownMenuRadioGroup as d, DropdownMenuRadioItem as f, DropdownMenuSeparator as p, DropdownMenuSub as m, MenuPanel as h } from "../DropdownMenu/DropdownMenu2.js";
18
+ /* empty css */
19
+ import { useEffect as g, useLayoutEffect as _, useRef as v, useState as y } from "react";
20
+ function b(e, t) {
21
+ e -= 239;
22
+ let n = M(), r = n[e];
23
+ b.Bkkqxz === void 0 && (b.hbVdLO = function(e) {
24
+ let t = "", n = "";
25
+ 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);
26
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
27
+ return decodeURIComponent(n);
28
+ }, b.XGAQlb = {}, b.Bkkqxz = !0);
29
+ let i = n[0];
30
+ b.pGBFXo !== i && (b.XGAQlb = {}, b.pGBFXo = i);
31
+ let a = b.XGAQlb[e];
32
+ return a === void 0 ? (r = b.hbVdLO(r), b.XGAQlb[e] = r) : r = a, r;
33
+ }
34
+ import { jsx as x, jsxs as S } from "react/jsx-runtime";
35
+ var C = 8;
36
+ function w({ trigger: e, children: c, open: l, defaultOpen: u = !1, onOpenChange: d, disabled: f, minWidth: p = 200, "aria-label": m }) {
37
+ let w = b, [T, E] = r(l, u, d), D = n(T, 160), O = v(null), [k, A] = y({
38
+ x: 0,
39
+ y: 0
40
+ }), [j, M] = y(0), N = v("pointer"), P = v(null), F = v(null), [I, L] = y({
41
+ position: w(279),
42
+ visibility: w(241)
43
+ }), [R, z] = y(w(288)), B = (e = !0) => {
44
+ let t = w;
45
+ E(!1);
46
+ let n = P[t(282)];
47
+ e && n?.[t(246)] && n[t(276)]({ preventScroll: !0 });
48
+ }, V = s(B);
49
+ i(T, [O, ...V[w(257)]], () => E(!1));
50
+ let H = (e, t, n) => {
51
+ let r = w, i = document[r(249)];
52
+ P.current = i instanceof HTMLElement && i !== document[r(262)] ? i : null, N[r(282)] = n, A({
53
+ x: e,
54
+ y: t
55
+ }), M((e) => e + 1), E(!0);
56
+ };
57
+ _(() => {
58
+ let e = w;
59
+ if (!D.mounted) return;
60
+ let t = O.current;
61
+ if (!t) return;
62
+ let n = t[e(284)], r = Math[e(240)](t[e(261)], window[e(269)] - 16), i = k.x + n > window[e(290)] - C, a = k.y + r > window[e(269)] - C && k.y - r >= C, o = Math[e(258)](C, Math[e(240)](i ? k.x - n : k.x, window[e(290)] - n - C)), s = Math.max(C, Math.min(a ? k.y - r : k.y, window[e(269)] - r - C));
63
+ z(a ? "top" : e(288)), L({
64
+ position: "fixed",
65
+ left: o,
66
+ top: s,
67
+ maxHeight: window[e(269)] - 16,
68
+ transformOrigin: e(i ? 295 : 253) + " " + e(a ? 288 : 274)
69
+ });
70
+ }, [
71
+ D[w(289)],
72
+ k,
73
+ j
74
+ ]), g(() => {
75
+ if (!T) return;
76
+ let e = requestAnimationFrame(() => {
77
+ let e = b;
78
+ N[e(282)] === "keyboard" ? o(O[e(282)])[0]?.[e(276)]({ preventScroll: !0 }) : O[e(282)]?.[e(276)]({ preventScroll: !0 });
79
+ });
80
+ return () => cancelAnimationFrame(e);
81
+ }, [T, j]), g(() => {
82
+ let e = w;
83
+ if (!T) return;
84
+ let t = (e) => {
85
+ let t = b;
86
+ e.type === t(275) && e.target instanceof Node && O[t(282)]?.[t(280)](e[t(297)]) || E(!1);
87
+ };
88
+ return window[e(285)](e(287), t), window[e(285)](e(275), t, !0), () => {
89
+ let n = e;
90
+ window.removeEventListener(n(287), t), window[n(266)](n(275), t, !0);
91
+ };
92
+ }, [T, E]);
93
+ let U = () => {
94
+ let e = w;
95
+ F[e(282)] && window[e(252)](F[e(282)][e(301)]);
96
+ };
97
+ g(() => U, []);
98
+ let W = (e) => {
99
+ let t = w;
100
+ f || (e[t(271)](), !F.current?.[t(286)] && (F.current && (U(), F[t(282)][t(286)] = !0), H(e[t(256)], e[t(273)], t(277))));
101
+ }, G = (e) => {
102
+ let n = w;
103
+ if (f || e[n(259)] === n(242)) return;
104
+ U();
105
+ let { clientX: r, clientY: i } = e;
106
+ F[n(282)] = {
107
+ x: r,
108
+ y: i,
109
+ fired: !1,
110
+ timer: window[n(293)](() => {
111
+ let e = n;
112
+ F[e(282)] && (F[e(282)][e(286)] = !0, H(r, i, e(277)));
113
+ }, t[n(299)])
114
+ };
115
+ }, K = (e) => {
116
+ let n = w, r = F[n(282)];
117
+ r && !r.fired && Math[n(267)](e[n(256)] - r.x, e[n(273)] - r.y) > t.dragThreshold * 2 && U();
118
+ }, q = () => {
119
+ let e = w;
120
+ U(), window[e(293)](() => {
121
+ F.current = null;
122
+ }, 0);
123
+ };
124
+ return S(a[w(300)], {
125
+ value: V,
126
+ children: [x(w(248), {
127
+ className: "ds-context-trigger",
128
+ "data-state": w(T ? 265 : 296),
129
+ onContextMenu: W,
130
+ onPointerDown: G,
131
+ onPointerMove: K,
132
+ onPointerUp: q,
133
+ onPointerCancel: q,
134
+ onKeyDown: (e) => {
135
+ let t = w;
136
+ if (f || !(e[t(245)] === t(243) || e[t(245)] === "F10" && e[t(263)])) return;
137
+ e[t(271)]();
138
+ let n = e[t(297)][t(260)]();
139
+ H(n[t(253)] + Math[t(240)](16, n[t(268)] / 2), n.top + Math.min(n.height, 32), t(250));
140
+ },
141
+ onClickCapture: (e) => {
142
+ let t = w;
143
+ F[t(282)]?.fired && (e[t(271)](), e[t(255)]());
144
+ },
145
+ children: e
146
+ }), D[w(289)] && x(h, {
147
+ panelRef: O,
148
+ side: R,
149
+ closing: D[w(251)],
150
+ style: {
151
+ ...I,
152
+ minWidth: p
153
+ },
154
+ "aria-label": m,
155
+ onEscape: () => B(),
156
+ children: c
157
+ }, j)]
158
+ });
159
+ }
160
+ var T = l, E = c, D = d, O = f, k = u, A = p, j = m;
161
+ w[e(281)] = l, w[e(283)] = c, w.RadioGroup = d, w.RadioItem = f, w.Label = u, w[e(272)] = p, w[e(270)] = m;
162
+ function M() {
163
+ let e = /* @__PURE__ */ "CMvTB3zLrxzLBNrmAxn0zw5LCG.AhLWB3q.D2LKDgG.Aw5UzxjizwLNAhq.u3vI.ChjLDMvUDerLzMf1Bhq.u2vWyxjHDg9Y.y2XPzw50wq.Dg9W.C2nYB2XS.zM9JDxm.Cg9PBNrLCG.ndHhwgPAwMS.zML4zwq.y29UDgfPBNm.sxrLBq.y3vYCMvUDa.q2HLy2TIB3HjDgvT.B2zMC2v0v2LKDgG.ywrKrxzLBNrmAxn0zw5LCG.zMLYzwq.CMvZAxPL.yM90Dg9T.Bw91BNrLza.Aw5UzxjxAwr0Aa.mtq1otaWmMHoCK9jwq.ndGXotq0ng9Sv1niza.C2v0vgLTzw91Da.mNzbAK1zrG.CMLNAhq.y2XVC2vK.DgfYz2v0.mtbbENvHrxi.Bg9Uz1bYzxnZ.uhjVDMLKzxi.DgLTzxi.mJyZnJa5ANLxr21H.mtu1ntb6DhHsthm.BwLU.AgLKzgvU.Bw91C2u.q29UDgv4De1LBNu.mte1mJqXngvIrefUCG.A2v5.AxndB25Uzwn0zwq.mJa5mtq1mhLZyxL1rW.zgL2.ywn0AxzLrwXLBwvUDa.A2v5yM9HCMq.y2XVC2LUzW.y2XLyxjuAw1LB3v0.BgvMDa.mtG0otC3mNLlEuT5ra.C3rVCfbYB3bHz2f0Aw9U.y2XPzw50wa.CgfUzwXZ.Bwf4.Cg9PBNrLCLr5Cgu.z2v0qM91BMrPBMDdBgLLBNrszwn0.C2nYB2XSsgvPz2H0.yM9KEq.C2HPzNrlzxK.nZyWmwXNAwLJqG.B3bLBG".split(".");
164
+ return M = function() {
165
+ return e;
166
+ }, M();
167
+ }
168
+ export { w as ContextMenu, E as ContextMenuCheckboxItem, T as ContextMenuItem, k as ContextMenuLabel, D as ContextMenuRadioGroup, O as ContextMenuRadioItem, A as ContextMenuSeparator, j as ContextMenuSub };