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