@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,481 @@
1
+ "use client";
2
+ const e = l;
3
+ (function(e, t) {
4
+ let n = l, r = e();
5
+ for (;;) try {
6
+ if (-parseInt(n(440)) / 1 + -parseInt(n(402)) / 2 + -parseInt(n(444)) / 3 * (-parseInt(n(451)) / 4) + parseInt(n(392)) / 5 + -parseInt(n(452)) / 6 * (parseInt(n(393)) / 7) + -parseInt(n(362)) / 8 * (-parseInt(n(386)) / 9) + parseInt(n(383)) / 10 * (parseInt(n(431)) / 11) == t) break;
7
+ r.push(r.shift());
8
+ } catch {
9
+ r.push(r.shift());
10
+ }
11
+ })(b, 762141);
12
+ import { TIMING as t } from "../../hooks/timing.js";
13
+ import { usePresence as n } from "../../hooks/usePresence.js";
14
+ import { Text as r } from "../../primitives/Typography2.js";
15
+ import { Stack as i } from "../../primitives/Layout2.js";
16
+ import { useControllableState as a } from "../../hooks/useControllableState.js";
17
+ import { cx as o } from "../../primitives/index.js";
18
+ import { useDismiss as s } from "../../hooks/useDismiss.js";
19
+ import { focusableIn as c } from "../../hooks/useFocusTrap.js";
20
+ /* empty css */
21
+ /* empty css */
22
+ function l(e, t) {
23
+ e -= 328;
24
+ let n = b(), r = n[e];
25
+ l.SVUDAO === void 0 && (l.ZlwrIV = function(e) {
26
+ let t = "", n = "";
27
+ for (let n = 0, r, i, a = 0; i = e.charAt(a++); ~i && (r = n % 4 ? r * 64 + i : i, n++ % 4) && (t += String.fromCharCode(255 & r >> (-2 * n & 6)))) i = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=".indexOf(i);
28
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
29
+ return decodeURIComponent(n);
30
+ }, l.mpFWbP = {}, l.SVUDAO = !0);
31
+ let i = n[0];
32
+ l.hvNrXl !== i && (l.mpFWbP = {}, l.hvNrXl = i);
33
+ let a = l.mpFWbP[e];
34
+ return a === void 0 ? (r = l.ZlwrIV(r), l.mpFWbP[e] = r) : r = a, r;
35
+ }
36
+ import { createContext as u, useContext as d, useEffect as f, useId as p, useLayoutEffect as m, useRef as h, useState as g } from "react";
37
+ import { ChevronDown as _ } from "lucide-react";
38
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
39
+ function b() {
40
+ let e = /* @__PURE__ */ "lxrYAwDNzxi.Aw5UzxjxAwr0Aa.yM9KEq.mJeZmgnftu1pvq.Dg8Tzw5K.zM9JDxm.mJG1m1nYrvjWDW.Aw5SAw5Lu2L6zq.z2v0qM91BMrPBMDdBgLLBNrszwn0.zhmTBMf2BwvUDq.yM9KEs1ZBq.C2HVD24.nta1nJy1mfbMyLnYCa.mZa0mdG3suLJsLDM.rw5K.zhmTBMf2BwvUDv9FzMvHDhvYzs1TzwrPyq.zgf0yxnLDa.rxnJyxbL.y2XLyxjuAw1LB3v0.D2fUDezVy3vZ.CgfNzq.zhmTBMf2BwvUDv9FDhjPz2DLCG.nta1mJa4wezvvxnU.CMvWB3j0u2L6zq.lwnVBNrLBNq.BwLU.zhmTBMf2BwvUDv9FzMvHDhvYzs1IB2r5.Aw5UzxjizwLNAhq.BgfIzwWTBgC.sg9Tzq.zgL2.zhmTBMf2BwvUDv9FBgf5zxi.A2v5.zhmTBMf2BwvUDv9FzMvHDhvYzs1LEwvICM93.Bw90Aw9U.y3vYCMvUDa.AgLKzgvU.Bwf4sgvPz2H0.AgvHzgLUzY1ZBq.BgvHDMu.z3jVDxa.tMf2AwDHDgLVBK1LBNvmAw5R.yNv0Dg9U.Ag92zxjjBNrLBNq.uhjVDMLKzxi.BgvUz3rO.BgvMDa.zNjVBs1ZDgfYDa.DgvYDgLHCNK.zhmTBMf2BwvUDv9Fy29UDgvUDa.Cg9PBNrLCLr5Cgu.nZaWntLxzhbhvvO.DMLZAwjSzq.CMvNAw9U.CMvTB3zLrxzLBNrmAxn0zw5LCG.DMfSDwu.C3rHEq.ywrKrxzLBNrmAxn0zw5LCG.ywn0AxzLrwXLBwvUDa.Aw5KzxHpzG.mtm1nZi4n25Xuvf3Eq.qxjYB3Dmzwz0.C2vJB25Kyxj5.CxvLCNLtzwXLy3rVCKfSBa.otLuC2HjrfO.ANvZDe9Wzw5Lza.C2v0vgLTzw91Da.B2zMC2v0sgvPz2H0.y2XVC2vK.rMvHDhvYzq.zgLZy29UBMvJDa.ntK5mZjcuLvnrhu.mti2qM90Axbx.zgLY.sxrLBq.CMvSyxrLzfrHCMDLDa.w2rHDgeTBMf2BwvUDs10B3bDoM5VDcG6zgLZywjSzwqP.ChjLDMvUDerLzMf1Bhq.y3vYCMvUDfrHCMDLDa.BMf2.yxv0BW.B3bLBG.y2HHBMDL.vgfI.zhmTBMf2BwvUDv9FzMvHDhvYzq.Bwf4.C2vTAwjVBgq.C2nYB2XS.zMLUza.BgfIzwWTC20.BMf2BwvUDvrYAwDNzxi.ChjLDMLVDxm.Bw91C2u.zhmTzMXVyxrPBMCGzhmTBMf2BwvUDv9FDMLLD3bVCNqGzhmTC2nYB2XS.zhmTBMf2BwvUDv9FyMfY.zMLUzeLUzgv4.zMLYC3q.Ag92zxjhCMfJzq.Aw52zxjZzq.C2XPzgu.y2fWDgLVBG.BwvKAxvT.zhmTBMf2BwvUDv9FDgH1Bwi.B2zMC2v0v2LKDgG.tMf2AwDHDgLVBK1LBNvjDgvT.yMXVy2TtAxPL.r3jVDxa.zhmTBMf2BwvUDv9Fz3jVDxaTDgL0Bgu.B2jZzxj2zq.yMfSyw5Jzq.w2rHDgeTBMf2BwvUDs1JB250zw50xvTKyxrHlxn0yxrLpsjJDxjYzw50iL0.C2HPzNrlzxK.zhmTBMf2BwvUDv9FBgLUAY1SywjLBa.Dg8TC3rHCNq.zhmTBMf2BwvUDv9FBgLUAW.D2LKDgG.qxjYB3DeB3DU.mta2ndH6yMDSzuK.Bw91BNrLza.zhmTBMf2BwvUDv9FAxrLBq.Bgf5zxi.Ag92zxi.BM93.BgfZDa.yMv0D2vLBG.y29UDgfPBNm.zgvMyxvSDa.DgfRzuzVy3vZ.qxjYB3DsAwDODa.zgv0ywLS.qxjYB3DvCa.Bw92zuzVy3vZ.C3bHBG.C3rYzxrJAa.yM90Dg9T".split(".");
41
+ return b = function() {
42
+ return e;
43
+ }, b();
44
+ }
45
+ import { createPortal as x } from "react-dom";
46
+ var ee = 160, te = 240, ne = 8, S = 8, C = e(456), w = u(null), T = u(!1), E = (t) => [...t?.[e(443)](C) ?? []];
47
+ function D({ children: r, value: i, defaultValue: u = null, onValueChange: d, openOn: p = "hover", panelAlign: _ = e(378), viewportAnchor: b, tone: C = e(371), "aria-label": T = "주 메뉴", className: D, style: O }) {
48
+ let k = e, [A, j] = a(i, u, d), [M, N] = g(A);
49
+ A !== null && A !== M && N(A);
50
+ let [P, F] = g({
51
+ dir: 0,
52
+ previous: null
53
+ }), [I, re] = g(null), [L, ie] = g(null), [R, z] = g({ visibility: k(416) }), [B, V] = g({
54
+ left: 0,
55
+ width: 0,
56
+ visible: !1,
57
+ slide: !1
58
+ }), H = n(A !== null, ee), U = h(null), W = h(null), G = h(null), K = h(!1), q = h(0), J = h(0), Y = (e) => e === null ? void 0 : E(W[k(415)])[k(333)]((t) => t[k(396)][k(435)] === e), X = (e) => {
59
+ let t = k;
60
+ if (window.clearTimeout(q[t(415)]), e !== A) {
61
+ if (A !== null && e !== null) {
62
+ let n = E(W[t(415)]), r = n.findIndex((e) => e[t(396)][t(435)] === A), i = n[t(340)]((n) => n[t(396)][t(435)] === e);
63
+ F({
64
+ dir: i > r ? 1 : -1,
65
+ previous: A
66
+ });
67
+ } else F({
68
+ dir: 0,
69
+ previous: null
70
+ });
71
+ j(e);
72
+ }
73
+ }, Z = () => {
74
+ let e = k, t = Y(M);
75
+ X(null), t?.[e(385)]({ preventScroll: !0 });
76
+ }, Q = {
77
+ enter: (e) => {
78
+ let n = k;
79
+ p === n(366) && (window.clearTimeout(q.current), A === null ? q[n(415)] = window[n(446)](() => {
80
+ J.current = performance[n(367)](), X(e);
81
+ }, t[n(423)]) : (J[n(415)] = performance[n(367)](), X(e)));
82
+ },
83
+ leave: () => {
84
+ let e = k;
85
+ p === e(366) && (window[e(398)](q[e(415)]), q.current = window[e(446)](() => X(null), t[e(342)]));
86
+ },
87
+ stay: () => window[k(398)](q[k(415)]),
88
+ justOpened: () => performance[k(367)]() - J[k(415)] < t[k(342)]
89
+ }, ae = (e, t) => {
90
+ let n = k, r = E(W[n(415)]), i = r.indexOf(e), a = t === n(341) ? r[0] : t === n(368) ? r.at(-1) : r[(i + t + r[n(425)]) % r[n(425)]];
91
+ a && (a[n(385)](), A !== null && X(a[n(396)][n(335)] === void 0 ? null : a[n(396)][n(435)] ?? null));
92
+ }, oe = (e) => re((t) => t && t.w === e.w && t.h === e.h ? t : e);
93
+ f(() => () => window.clearTimeout(q[k(415)]), []), f(() => {
94
+ let e = k;
95
+ if (P.previous === null) return;
96
+ let t = window.setTimeout(() => F((e) => ({
97
+ ...e,
98
+ previous: null
99
+ })), te);
100
+ return () => window[e(398)](t);
101
+ }, [P[k(336)]]), s(A !== null, [W, G], () => X(null)), m(() => {
102
+ let e = k;
103
+ if (!H.mounted) return;
104
+ let t = () => {
105
+ let e = l, t = (b?.[e(415)] ?? U.current)?.[e(388)]();
106
+ if (!t) return;
107
+ let n = t[e(379)] + ne, r = Math[e(330)](160, window[e(407)] - n - S);
108
+ if (_ === e(378)) {
109
+ z({
110
+ top: n,
111
+ left: t[e(426)],
112
+ width: t.width,
113
+ maxHeight: r
114
+ });
115
+ return;
116
+ }
117
+ let i = Y(M)?.[e(388)](), a = Math[e(405)](I?.w ?? 0, window[e(381)] - 16), o = i ? i[e(426)] + i[e(360)] / 2 : t.left + t[e(360)] / 2, s = Math.max(S, Math[e(405)](o - a / 2, window[e(381)] - a - S));
118
+ z({
119
+ top: n,
120
+ left: s,
121
+ width: a,
122
+ maxHeight: r
123
+ });
124
+ };
125
+ return t(), window[e(437)]("resize", t), window.addEventListener(e(332), t, !0), () => {
126
+ let n = e;
127
+ window.removeEventListener("resize", t), window[n(434)](n(332), t, !0);
128
+ };
129
+ }, [
130
+ H[k(363)],
131
+ M,
132
+ I,
133
+ _,
134
+ b
135
+ ]), m(() => {
136
+ let e = k, t = W[e(415)];
137
+ if (!t) return;
138
+ let n = () => {
139
+ let n = e, r = Y(A);
140
+ if (!r) return V((e) => ({
141
+ ...e,
142
+ visible: !1,
143
+ slide: !1
144
+ }));
145
+ let i = t.getBoundingClientRect(), a = r[n(388)]();
146
+ V((e) => ({
147
+ left: a[n(426)] - i.left,
148
+ width: a[n(360)],
149
+ visible: !0,
150
+ slide: e[n(432)]
151
+ }));
152
+ };
153
+ n();
154
+ let r = new ResizeObserver(n);
155
+ return r[e(353)](t), () => r[e(450)]();
156
+ }, [A]);
157
+ let $ = (e) => {
158
+ let t = k, n = e[t(455)];
159
+ n && A !== null && (W[t(415)]?.[t(370)](n) || G[t(415)]?.contains(n) || X(null));
160
+ }, se = (e) => {
161
+ let t = k, n = L?.querySelector(t(355)), r = n ? c(n) : [], i = r[t(439)](document[t(438)]);
162
+ switch (e[t(412)]) {
163
+ case t(397):
164
+ e.preventDefault(), Z();
165
+ break;
166
+ case "ArrowDown":
167
+ case t(375):
168
+ e[t(457)](), r[i + (e[t(412)] === t(361) ? 1 : -1)]?.[t(385)]({ preventScroll: !1 });
169
+ break;
170
+ case "Tab": {
171
+ let n = Y(M);
172
+ if (e[t(356)] && i <= 0) e.preventDefault(), n?.[t(385)]();
173
+ else if (!e[t(356)] && i === r[t(425)] - 1) {
174
+ e[t(457)]();
175
+ let r = E(W[t(415)]), i = n ? r[r[t(439)](n) + 1] : void 0;
176
+ X(null), (i ?? n)?.[t(385)]();
177
+ }
178
+ break;
179
+ }
180
+ }
181
+ }, ce = {
182
+ open: A,
183
+ shown: M,
184
+ motion: P,
185
+ openOn: p,
186
+ layer: L,
187
+ wantFocus: (e) => K[k(415)] = e,
188
+ takeFocus: () => {
189
+ let e = k, t = K.current;
190
+ return K[e(415)] = !1, t;
191
+ },
192
+ change: X,
193
+ closeToTrigger: Z,
194
+ reportSize: oe,
195
+ hover: Q,
196
+ moveFocus: ae
197
+ };
198
+ return y(w[k(424)], {
199
+ value: ce,
200
+ children: [v(k(459), {
201
+ ref: U,
202
+ "aria-label": T,
203
+ className: o(k(389), D),
204
+ "data-tone": C,
205
+ "data-open": A !== null || void 0,
206
+ style: O,
207
+ children: y("div", {
208
+ ref: W,
209
+ className: k(339),
210
+ onBlur: $,
211
+ children: [v("span", {
212
+ className: k(347),
213
+ "aria-hidden": !0,
214
+ "data-visible": B[k(432)] || void 0,
215
+ "data-slide": B[k(344)] || void 0,
216
+ style: {
217
+ left: B[k(426)],
218
+ width: B[k(360)]
219
+ }
220
+ }), v("ul", {
221
+ className: "ds-navmenu__list",
222
+ children: r
223
+ })]
224
+ })
225
+ }), H[k(363)] && x(v("div", {
226
+ ref: G,
227
+ className: k(338),
228
+ "data-state": H.closing ? k(448) : "open",
229
+ "data-align": _,
230
+ "data-morph": P[k(453)] !== 0 || void 0,
231
+ style: {
232
+ ...R,
233
+ height: I ? Math[k(405)](I.h, Number(R[k(417)]) || I.h) : void 0,
234
+ overflowY: I && R.maxHeight !== void 0 && I.h > Number(R.maxHeight) ? k(460) : k(416)
235
+ },
236
+ onPointerEnter: (e) => e[k(430)] === k(337) && Q[k(436)](),
237
+ onPointerLeave: (e) => e.pointerType === "mouse" && Q.leave(),
238
+ onKeyDown: se,
239
+ onBlur: $,
240
+ children: v(k(410), {
241
+ ref: ie,
242
+ className: k(411),
243
+ style: { height: I?.h }
244
+ })
245
+ }), document[k(382)])]
246
+ });
247
+ }
248
+ function O(e) {
249
+ let t = d(w);
250
+ if (!t) throw Error(e + " must be inside <NavigationMenu>");
251
+ return t;
252
+ }
253
+ function k({ label: t, children: n, value: r, icon: i, disabled: a, width: o }) {
254
+ let s = e, c = O(s(349)), l = p(), u = r ?? l, d = c[s(461)] === u, f = l + s(380), m = l + s(404), h = c[s(391)] === u ? s(415) : c.motion[s(336)] === u ? s(336) : null;
255
+ return y("li", {
256
+ className: s(364),
257
+ children: [y(s(422), {
258
+ id: f,
259
+ type: s(422),
260
+ className: "ds-navmenu__trigger",
261
+ "data-navmenu-top": "",
262
+ "data-navmenu-trigger": "",
263
+ "data-value": u,
264
+ "data-state": d ? s(461) : "closed",
265
+ "aria-expanded": d,
266
+ "aria-controls": h ? m : void 0,
267
+ disabled: a,
268
+ onClick: (e) => {
269
+ let t = s;
270
+ if (e[t(374)] === 0) return c[t(399)](!d), c.change(d ? null : u);
271
+ d && c.hover[t(445)]() || c[t(462)](d ? null : u);
272
+ },
273
+ onKeyDown: (e) => {
274
+ let t = s;
275
+ switch (e[t(412)]) {
276
+ case t(361):
277
+ e[t(457)](), c.wantFocus(!0), d ? A(c[t(365)]) : c.change(u);
278
+ break;
279
+ case t(373):
280
+ case t(441):
281
+ e[t(457)](), c[t(376)](e.currentTarget, e.key === t(373) ? 1 : -1);
282
+ break;
283
+ case "Home":
284
+ case t(394):
285
+ e[t(457)](), c[t(376)](e[t(458)], e[t(412)] === "Home" ? t(341) : t(368));
286
+ break;
287
+ case t(397):
288
+ d && (e.preventDefault(), c[t(462)](null));
289
+ break;
290
+ case t(328): d && !e[t(356)] && A(c.layer) && e[t(457)]();
291
+ }
292
+ },
293
+ onPointerEnter: (e) => e.pointerType === s(337) && !a && c[s(366)].enter(u),
294
+ onPointerLeave: (e) => e[s(430)] === "mouse" && c.hover[s(419)](),
295
+ children: [
296
+ i,
297
+ t,
298
+ v(_, {
299
+ className: "ds-navmenu__chevron",
300
+ "aria-hidden": !0
301
+ })
302
+ ]
303
+ }), h && c[s(365)] && x(v(j, {
304
+ id: m,
305
+ labelledBy: f,
306
+ state: h,
307
+ width: o,
308
+ children: n
309
+ }), c.layer)]
310
+ });
311
+ }
312
+ function A(t) {
313
+ let n = e, r = t?.querySelector(n(355)), i = r ? c(r)[0] : void 0;
314
+ return i?.[n(385)]({ preventScroll: !0 }), !!i;
315
+ }
316
+ function j({ id: t, labelledBy: n, state: r, width: i, children: a }) {
317
+ let o = e, s = O(o(349)), c = h(null), { dir: l } = s[o(414)], u = l === 0 ? void 0 : r === "current" ? l > 0 ? "from-end" : o(427) : o(l > 0 ? 358 : 384);
318
+ return m(() => {
319
+ let e = o, t = c[e(415)];
320
+ if (r !== e(415) || !t) return;
321
+ s[e(403)]({
322
+ w: t[e(348)],
323
+ h: t[e(447)]
324
+ });
325
+ let n = new ResizeObserver(([t]) => {
326
+ let n = e, r = t.borderBoxSize[0];
327
+ s[n(403)]({
328
+ w: Math.ceil(r[n(387)]),
329
+ h: Math.ceil(r[n(350)])
330
+ });
331
+ });
332
+ return n.observe(t), () => n.disconnect();
333
+ }, [r]), f(() => {
334
+ let e = o;
335
+ if (r !== e(415)) return;
336
+ let t = requestAnimationFrame(() => {
337
+ let t = e;
338
+ s[t(372)]() && A(s[t(365)]);
339
+ });
340
+ return () => cancelAnimationFrame(t);
341
+ }, [r, s[o(365)]]), v(T[o(424)], {
342
+ value: !0,
343
+ children: v(o(410), {
344
+ ref: c,
345
+ id: t,
346
+ role: o(433),
347
+ "aria-labelledby": n,
348
+ className: o(429),
349
+ "data-navmenu-content": "",
350
+ "data-state": r,
351
+ "data-motion": u,
352
+ inert: r === o(336) || void 0,
353
+ style: { width: i },
354
+ children: a
355
+ })
356
+ });
357
+ }
358
+ function M({ as: t, label: n, description: a, icon: s, active: c, badge: l, className: u, onClick: f, onPointerEnter: p, ...m }) {
359
+ let h = e, g = O(h(421)), _ = d(T), b = t ?? "a";
360
+ return _ ? y(b, {
361
+ className: o(h(359), u),
362
+ "aria-current": c ? h(400) : void 0,
363
+ onClick: (e) => {
364
+ let t = h;
365
+ f?.(e), g[t(462)](null);
366
+ },
367
+ onPointerEnter: p,
368
+ ...m,
369
+ children: [s && v("span", {
370
+ className: "ds-navmenu__link-icon",
371
+ children: s
372
+ }), y(i, {
373
+ as: h(377),
374
+ gap: 0,
375
+ style: { minWidth: 0 },
376
+ children: [y(h(377), {
377
+ className: h(357),
378
+ children: [v(r, {
379
+ variant: h(408),
380
+ weight: c ? h(331) : void 0,
381
+ children: n
382
+ }), l]
383
+ }), a && v(r, {
384
+ as: h(377),
385
+ variant: h(390),
386
+ tone: h(442),
387
+ children: a
388
+ })]
389
+ })]
390
+ }) : v("li", {
391
+ className: h(364),
392
+ children: y(b, {
393
+ className: o(h(401), u),
394
+ "data-navmenu-top": "",
395
+ "aria-current": c ? h(400) : void 0,
396
+ onPointerEnter: (e) => {
397
+ let t = h;
398
+ e.pointerType === "mouse" && g.hover[t(419)](), p?.(e);
399
+ },
400
+ onKeyDown: (e) => {
401
+ let t = h;
402
+ e[t(412)] === t(373) || e.key === "ArrowLeft" ? (e.preventDefault(), g.moveFocus(e[t(458)], e[t(412)] === t(373) ? 1 : -1)) : (e.key === t(409) || e[t(412)] === t(394)) && (e.preventDefault(), g[t(376)](e[t(458)], e.key === t(409) ? t(341) : t(368)));
403
+ },
404
+ onClick: (e) => {
405
+ g[h(462)](null), f?.(e);
406
+ },
407
+ ...m,
408
+ children: [
409
+ s,
410
+ n,
411
+ l
412
+ ]
413
+ })
414
+ });
415
+ }
416
+ function N({ title: t, children: n, className: a }) {
417
+ let o = e, s = p();
418
+ return y(i, {
419
+ gap: 1,
420
+ className: a,
421
+ role: o(420),
422
+ "aria-labelledby": t ? s : void 0,
423
+ children: [t && v(r, {
424
+ id: s,
425
+ variant: o(345),
426
+ tone: o(428),
427
+ className: o(352),
428
+ children: t
429
+ }), v(i, {
430
+ gap: 0,
431
+ children: n
432
+ })]
433
+ });
434
+ }
435
+ function P({ eyebrow: t, title: n, description: a, action: s, media: c, background: l, tone: u = e(371), className: d, style: f }) {
436
+ let p = e, m = u === p(343);
437
+ return y("div", {
438
+ className: o(p(329), d),
439
+ "data-tone": u,
440
+ style: {
441
+ background: l,
442
+ ...f
443
+ },
444
+ children: [c && v(p(410), {
445
+ className: p(395),
446
+ children: c
447
+ }), y(i, {
448
+ gap: 4,
449
+ justify: p(369),
450
+ className: p(406),
451
+ children: [y(i, {
452
+ gap: 2,
453
+ children: [
454
+ t && v(r, {
455
+ variant: p(334),
456
+ tone: p(m ? 343 : 442),
457
+ className: p(413),
458
+ children: t
459
+ }),
460
+ v(r, {
461
+ as: "p",
462
+ variant: p(418),
463
+ weight: p(346),
464
+ tone: m ? "inverse" : p(371),
465
+ wrap: p(354),
466
+ children: n
467
+ }),
468
+ a && v(r, {
469
+ as: "p",
470
+ variant: "body-sm",
471
+ tone: m ? "inverse" : p(442),
472
+ className: "ds-navmenu__feature-eyebrow",
473
+ children: a
474
+ })
475
+ ]
476
+ }), s && v(p(410), { children: s })]
477
+ })]
478
+ });
479
+ }
480
+ D[e(454)] = k, D.Link = M, D[e(351)] = N, D[e(449)] = P;
481
+ export { D as NavigationMenu, P as NavigationMenuFeature, N as NavigationMenuGroup, k as NavigationMenuItem, M as NavigationMenuLink };
@@ -0,0 +1,178 @@
1
+ "use client";
2
+ (function(t, n) {
3
+ let r = e, i = t();
4
+ for (;;) try {
5
+ if (parseInt(r(239)) / 1 + -parseInt(r(251)) / 2 * (parseInt(r(248)) / 3) + parseInt(r(254)) / 4 * (parseInt(r(277)) / 5) + parseInt(r(243)) / 6 * (-parseInt(r(252)) / 7) + parseInt(r(269)) / 8 + -parseInt(r(259)) / 9 + -parseInt(r(278)) / 10 * (parseInt(r(256)) / 11) == n) break;
6
+ i.push(i.shift());
7
+ } catch {
8
+ i.push(i.shift());
9
+ }
10
+ })(b, 186490);
11
+ function e(t, n) {
12
+ t -= 228;
13
+ let r = b(), i = r[t];
14
+ e.XPvvnL === void 0 && (e.YvaHYS = function(e) {
15
+ let t = "", n = "";
16
+ 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);
17
+ for (let e = 0, r = t.length; e < r; e++) n += "%" + ("00" + t.charCodeAt(e).toString(16)).slice(-2);
18
+ return decodeURIComponent(n);
19
+ }, e.OPcTQZ = {}, e.XPvvnL = !0);
20
+ let a = r[0];
21
+ e.fVFZrW !== a && (e.OPcTQZ = {}, e.fVFZrW = a);
22
+ let o = e.OPcTQZ[t];
23
+ return o === void 0 ? (i = e.YvaHYS(i), e.OPcTQZ[t] = i) : i = o, i;
24
+ }
25
+ import { TIMING as t } from "../../hooks/timing.js";
26
+ import { Text as n } from "../../primitives/Typography2.js";
27
+ import { Button as r, cx as i } from "../../primitives/index.js";
28
+ import { Card as a, CardFooter as o, CardHeader as s } from "../Card/Card2.js";
29
+ /* empty css */
30
+ import { useCallback as c, useEffect as l, useLayoutEffect as u, useRef as d, useState as f } from "react";
31
+ import { X as p } from "lucide-react";
32
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
33
+ var g = 8, _ = 320;
34
+ function v({ items: n, onDismiss: r, visible: a = 3, expanded: o, direction: s = "up", gap: u = 8, dismissLabel: p = "닫기", className: h, style: v, "aria-label": b = "공지" }) {
35
+ let x = e, [S, C] = f({}), [w, T] = f(/* @__PURE__ */ new Set()), [E, D] = f(/* @__PURE__ */ new Set()), [O, k] = f(!1), [A, j] = f(!1), M = d(0), N = d(/* @__PURE__ */ new Set()), P = d(null), F = n[x(249)]((e) => e.id)[x(268)]("\n"), [I, L] = f(F);
36
+ if (F !== I) {
37
+ L(F);
38
+ let e = new Set(n[x(249)]((e) => e.id));
39
+ D((t) => new Set([...t].filter((t) => e.has(t))));
40
+ }
41
+ l(() => {
42
+ let e = x, t = N[e(237)];
43
+ return () => {
44
+ let n = e;
45
+ window[n(250)](M.current), t[n(258)]((e) => window[n(250)](e));
46
+ };
47
+ }, []);
48
+ let R = c((e, t) => {
49
+ C((n) => n[e] === t ? n : {
50
+ ...n,
51
+ [e]: t
52
+ });
53
+ }, []), z = n[x(263)]((e) => !E.has(e.id)), B = z[x(263)]((e) => !w[x(238)](e.id)), V = B[x(235)] > 1 && (o || O || A), H = s === "up" ? -1 : 1, U = /* @__PURE__ */ new Map(), W = 0, G = 0;
54
+ for (let e of z) U[x(274)](e.id, {
55
+ index: G,
56
+ y: W
57
+ }), !w.has(e.id) && (G < a && (W += (S[e.id] ?? 0) + u), G++);
58
+ let K = S[B[0]?.id] ?? 0, q = B.length === 0 ? 0 : V ? Math[x(247)](0, W - u) : K + (Math.min(B.length, a) - 1) * g, J = (e) => {
59
+ let t = x;
60
+ if (w.has(e)) return;
61
+ let n = P.current;
62
+ if ((n?.querySelector("[data-notice-id=\"" + CSS[t(246)](e) + "\"]"))?.[t(264)](document.activeElement)) {
63
+ let r = B[t(273)]((n) => n.id !== e && n[t(265)] !== !1);
64
+ n?.querySelector(t(245) + (r ? CSS[t(246)](r.id) : "") + "\"] .ds-notice-stack__close")?.focus();
65
+ }
66
+ T((n) => new Set(n)[t(232)](e));
67
+ let i = window[t(236)](() => {
68
+ let n = t;
69
+ N[n(237)][n(257)](i), D((t) => new Set(t).add(e)), T((t) => {
70
+ let r = n, i = new Set(t);
71
+ return i[r(257)](e), i;
72
+ }), r?.(e);
73
+ }, _);
74
+ N[t(237)][t(232)](i);
75
+ }, Y = (e) => {
76
+ let n = x;
77
+ window[n(250)](M[n(237)]), M[n(237)] = window[n(236)](() => k(e), e ? t[n(266)] : t[n(272)]);
78
+ };
79
+ return z[x(235)] === 0 ? null : m("section", {
80
+ className: i(x(231), h),
81
+ "data-direction": s,
82
+ "data-expanded": V || void 0,
83
+ "aria-label": b,
84
+ style: v,
85
+ onPointerEnter: (e) => e[x(261)] === x(240) && Y(!0),
86
+ onPointerLeave: (e) => e.pointerType === x(240) && Y(!1),
87
+ onFocus: () => j(!0),
88
+ onBlur: (e) => !e.currentTarget[x(264)](e[x(255)]) && j(!1),
89
+ children: m("ol", {
90
+ ref: P,
91
+ className: x(276),
92
+ style: { height: q },
93
+ children: z[x(249)]((e) => {
94
+ let t = x, { index: n, y: r } = U[t(271)](e.id), i = !V && n > 0;
95
+ return m(y, {
96
+ item: e,
97
+ onHeight: R,
98
+ onDismiss: () => J(e.id),
99
+ dismissLabel: p,
100
+ leaving: w.has(e.id),
101
+ behind: i,
102
+ hidden: n >= a,
103
+ style: {
104
+ "--_y": (V ? r : n * g) * H + "px",
105
+ "--_scale": V ? 1 : 1 - n * .05,
106
+ "--_z": z[t(235)] - n,
107
+ "--_h": (i ? K : S[e.id] ?? 0) + "px",
108
+ "--_enter": -H * 16 + "px"
109
+ }
110
+ }, e.id);
111
+ })
112
+ })
113
+ });
114
+ }
115
+ function y({ item: t, onHeight: i, onDismiss: c, dismissLabel: g, leaving: _, behind: v, hidden: y, style: b }) {
116
+ let x = e, S = d(null), [C, w] = f(!1);
117
+ return l(() => {
118
+ let e = 0, t = requestAnimationFrame(() => {
119
+ e = requestAnimationFrame(() => w(!0));
120
+ });
121
+ return () => {
122
+ cancelAnimationFrame(t), cancelAnimationFrame(e);
123
+ };
124
+ }, []), u(() => {
125
+ let n = e, r = S.current;
126
+ if (!r) return;
127
+ let a = () => i(t.id, r[n(241)]);
128
+ a();
129
+ let o = new ResizeObserver(a);
130
+ return o.observe(r), () => o.disconnect();
131
+ }, [t.id, i]), m("li", {
132
+ className: x(275),
133
+ "data-notice-id": t.id,
134
+ "data-mounted": C || void 0,
135
+ "data-leaving": _ || void 0,
136
+ "data-behind": v || void 0,
137
+ "data-hidden": y || void 0,
138
+ inert: _ || y || void 0,
139
+ style: b,
140
+ children: m(a, {
141
+ padding: "sm",
142
+ className: x(228),
143
+ children: h(x(244), {
144
+ ref: S,
145
+ className: x(230),
146
+ children: [m(s, {
147
+ eyebrow: t[x(229)] && m(n, {
148
+ as: x(234),
149
+ variant: x(233),
150
+ tone: x(270),
151
+ children: t.eyebrow
152
+ }),
153
+ title: t[x(253)],
154
+ description: t[x(262)],
155
+ actions: t.dismissible !== !1 && m(r, {
156
+ className: x(267),
157
+ variant: "ghost",
158
+ size: "sm",
159
+ iconOnly: !0,
160
+ icon: m(p, {}),
161
+ "aria-label": g,
162
+ onClick: c
163
+ })
164
+ }), t[x(242)] && m(o, {
165
+ align: x(260),
166
+ children: t[x(242)]
167
+ })]
168
+ })
169
+ })
170
+ });
171
+ }
172
+ export { v as NoticeStack };
173
+ function b() {
174
+ let e = /* @__PURE__ */ "zgvSzxrL.zM9YrwfJAa.mJeWndm4C2HIrhDk.C3rHCNq.Cg9PBNrLCLr5Cgu.zgvZy3jPChrPB24.zMLSDgvY.y29UDgfPBNm.zgLZBwLZC2LIBgu.Ag92zxjjBNrLBNq.zhmTBM90AwnLlxn0ywnRx19JBg9Zzq.AM9PBG.mteZodG0ogTIze1MEa.ywnJzw50.z2v0.Ag92zxjhCMfJzq.zMLUza.C2v0.zhmTBM90AwnLlxn0ywnRx19PDgvT.zhmTBM90AwnLlxn0ywnRx19SAxn0.mJm0nta1q2jRwe9q.nJm3mZbMwM9izuC.zhmTBM90AwnLlxn0ywnRx19JyxjK.zxLLyNjVDW.zhmTBM90AwnLlxn0ywnRx19PBM5LCG.zhmTBM90AwnLlxn0ywnR.ywrK.y2fWDgLVBG.C3bHBG.BgvUz3rO.C2v0vgLTzw91Da.y3vYCMvUDa.AgfZ.mJu1nda0ywvHz0HU.Bw91C2u.B2zMC2v0sgvPz2H0.zM9VDgvY.mtyYnNDdugPxsW.zgL2.w2rHDgeTBM90AwnLlwLKpsi.zxnJyxbL.Bwf4.mZbZwwrOCMm.BwfW.y2XLyxjuAw1LB3v0.mty1odzVt1vAsKO.mZaXAMXxrfv5.DgL0Bgu.nezuDNzkDq.CMvSyxrLzfrHCMDLDa.mJqYD1DNr1DL".split(".");
175
+ return b = function() {
176
+ return e;
177
+ }, b();
178
+ }