@mintlify/msft-sdk 1.1.7 → 1.1.9
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.
- package/dist/components/content-components/default-components.js +58 -37
- package/dist/components/content-components/default-components.js.map +1 -1
- package/dist/components/content-components/table/index.js +1 -1
- package/dist/components/content-components/tabs/tabs.js +1 -1
- package/dist/components/content-components/tabs/tabs.js.map +1 -1
- package/dist/components/docsLayout.js +62 -0
- package/dist/components/docsLayout.js.map +1 -0
- package/dist/components/docsPage.js +133 -0
- package/dist/components/docsPage.js.map +1 -0
- package/dist/components/nav-tree/dropdown-menu.js +1 -1
- package/dist/components/nav-tree/dropdown-menu.js.map +1 -1
- package/dist/components/nav-tree/index.js +101 -160
- package/dist/components/nav-tree/index.js.map +1 -1
- package/dist/components/page-context-menu.js +78 -72
- package/dist/components/page-context-menu.js.map +1 -1
- package/dist/components/toc/index.js +10 -10
- package/dist/components/toc/index.js.map +1 -1
- package/dist/index.d.ts +186 -210
- package/dist/index.js +36 -113
- package/dist/index.js.map +1 -1
- package/dist/parser/convert-html-to-mdx.js +7 -6
- package/dist/parser/convert-html-to-mdx.js.map +1 -1
- package/dist/plugins/sanitize/rehype-unwrap-image-links.js +12 -0
- package/dist/plugins/sanitize/rehype-unwrap-image-links.js.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/components/page.js +0 -120
- package/dist/components/page.js.map +0 -1
- package/dist/plugins/extract-headings.js +0 -28
- package/dist/plugins/extract-headings.js.map +0 -1
|
@@ -1,66 +1,50 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { useState as
|
|
3
|
-
import { useComponents as
|
|
4
|
-
import { DropdownMenu as
|
|
5
|
-
import { cn as
|
|
1
|
+
import { jsxs as r, jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { useState as v } from "react";
|
|
3
|
+
import { useComponents as k } from "../../context/components-context.js";
|
|
4
|
+
import { DropdownMenu as w } from "./dropdown-menu.js";
|
|
5
|
+
import { cn as p } from "../../utils/cn.js";
|
|
6
6
|
/* empty css */
|
|
7
|
-
function
|
|
8
|
-
return /* @__PURE__ */
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
className: "mint:hidden mint:dark:block",
|
|
31
|
-
width: "12",
|
|
32
|
-
height: "12",
|
|
33
|
-
viewBox: "0 0 12 12",
|
|
34
|
-
fill: "none",
|
|
35
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
36
|
-
children: /* @__PURE__ */ t(
|
|
37
|
-
"path",
|
|
38
|
-
{
|
|
39
|
-
d: "M2.49999 1C1.67157 1 0.999995 1.67157 0.999995 2.5V9.5C0.999995 10.3284 1.67157 11 2.49999 11H9.49996C10.3284 11 10.9999 10.3284 10.9999 9.5V7.26923C10.9999 6.99309 11.2238 6.76923 11.4999 6.76923C11.7761 6.76923 11.9999 6.99309 11.9999 7.26923V9.5C11.9999 10.8807 10.8807 12 9.49996 12H2.49999C1.11928 12 0 10.8807 0 9.5V2.5C0 1.11929 1.11928 0 2.49999 0H4.73075C5.00689 0 5.23074 0.223858 5.23074 0.5C5.23074 0.776142 5.00689 1 4.73075 1H2.49999ZM6.76926 0.5C6.76926 0.223858 6.99311 0 7.26925 0H11.5C11.7761 0 12 0.223858 12 0.5V4.73077C12 5.00691 11.7761 5.23077 11.5 5.23077C11.2239 5.23077 11 5.00691 11 4.73077V1.70711L7.6228 5.08433C7.42754 5.27959 7.11096 5.27959 6.9157 5.08433C6.72044 4.88906 6.72044 4.57248 6.9157 4.37722L10.2929 1H7.26925C6.99311 1 6.76926 0.776142 6.76926 0.5Z",
|
|
40
|
-
fill: "#999999"
|
|
41
|
-
}
|
|
42
|
-
)
|
|
43
|
-
}
|
|
44
|
-
)
|
|
45
|
-
] });
|
|
7
|
+
function g({ isExpanded: t }) {
|
|
8
|
+
return /* @__PURE__ */ n(
|
|
9
|
+
"svg",
|
|
10
|
+
{
|
|
11
|
+
className: p(
|
|
12
|
+
"mint:w-[16px] mint:h-[16px] mint:shrink-0 mint:transition-transform mint:duration-150 mint:text-[#6b7280] mint:dark:text-[#9ca3af]",
|
|
13
|
+
t ? "mint:rotate-90" : "mint:rotate-0"
|
|
14
|
+
),
|
|
15
|
+
fill: "none",
|
|
16
|
+
stroke: "currentColor",
|
|
17
|
+
viewBox: "0 0 24 24",
|
|
18
|
+
"aria-hidden": "true",
|
|
19
|
+
children: /* @__PURE__ */ n(
|
|
20
|
+
"path",
|
|
21
|
+
{
|
|
22
|
+
strokeLinecap: "round",
|
|
23
|
+
strokeLinejoin: "round",
|
|
24
|
+
strokeWidth: 2,
|
|
25
|
+
d: "M9 5l7 7-7 7"
|
|
26
|
+
}
|
|
27
|
+
)
|
|
28
|
+
}
|
|
29
|
+
);
|
|
46
30
|
}
|
|
47
|
-
function
|
|
48
|
-
const
|
|
49
|
-
if (
|
|
50
|
-
return /* @__PURE__ */
|
|
31
|
+
function u({ item: t, activeId: l, level: m = 0 }) {
|
|
32
|
+
const f = m === 0 ? !0 : t.expanded ?? !1, [i, b] = v(f), { LinkComponent: c } = k(), o = t.children && t.children.length > 0, h = o && !t.href, e = t.href && l === t.href, s = t.icon;
|
|
33
|
+
if (h && m === 0)
|
|
34
|
+
return /* @__PURE__ */ r(
|
|
51
35
|
"div",
|
|
52
36
|
{
|
|
53
37
|
id: "nav-group",
|
|
54
38
|
className: "mint:mb-6",
|
|
55
39
|
role: "group",
|
|
56
|
-
"aria-label":
|
|
40
|
+
"aria-label": t.toc_title,
|
|
57
41
|
children: [
|
|
58
|
-
/* @__PURE__ */
|
|
59
|
-
s && /* @__PURE__ */
|
|
60
|
-
/* @__PURE__ */
|
|
42
|
+
/* @__PURE__ */ r("div", { className: "mint:text-sm mint:font-semibold mint:text-[#141414] mint:dark:text-white mint:mb-3 mint:flex mint:items-start mint:gap-2 mint:pl-3", children: [
|
|
43
|
+
s && /* @__PURE__ */ n(s, { className: "mint:w-5 mint:h-5", "aria-hidden": "true" }),
|
|
44
|
+
/* @__PURE__ */ n("span", { children: t.toc_title })
|
|
61
45
|
] }),
|
|
62
|
-
o &&
|
|
63
|
-
|
|
46
|
+
o && t.children && /* @__PURE__ */ n("ul", { className: "mint:flex mint:flex-col mint:gap-1", role: "list", children: t.children.map((a, d) => /* @__PURE__ */ n(
|
|
47
|
+
u,
|
|
64
48
|
{
|
|
65
49
|
item: a,
|
|
66
50
|
activeId: l,
|
|
@@ -71,50 +55,29 @@ function x({ item: n, activeId: l, level: m = 0 }) {
|
|
|
71
55
|
]
|
|
72
56
|
}
|
|
73
57
|
);
|
|
74
|
-
if (
|
|
75
|
-
return /* @__PURE__ */
|
|
76
|
-
/* @__PURE__ */
|
|
58
|
+
if (h && m > 0)
|
|
59
|
+
return /* @__PURE__ */ r("li", { className: "mint:list-none", children: [
|
|
60
|
+
/* @__PURE__ */ r(
|
|
77
61
|
"button",
|
|
78
62
|
{
|
|
79
63
|
id: "nav-group-toggle",
|
|
80
|
-
onClick: () =>
|
|
64
|
+
onClick: () => b(!i),
|
|
81
65
|
"aria-expanded": i,
|
|
82
|
-
"aria-label": `${i ? "Collapse" : "Expand"} ${
|
|
83
|
-
className: "mint:relative mint:text-left mint:w-full mint:flex mint:items-center mint:justify-between mint:py-2 mint:px-3 mint:text-
|
|
66
|
+
"aria-label": `${i ? "Collapse" : "Expand"} ${t.toc_title} section`,
|
|
67
|
+
className: "mint:relative mint:text-left mint:w-full mint:flex mint:items-center mint:justify-between mint:gap-2 mint:py-2 mint:px-3 mint:text-[14px] mint:font-sans mint:font-normal mint:rounded-lg mint:transition-all mint:duration-150 mint:bg-transparent mint:border-none mint:cursor-pointer mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#141414] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2",
|
|
84
68
|
children: [
|
|
85
|
-
/* @__PURE__ */
|
|
86
|
-
/* @__PURE__ */
|
|
87
|
-
"svg",
|
|
88
|
-
{
|
|
89
|
-
className: h(
|
|
90
|
-
"mint:w-4 mint:h-4 mint:transition-transform mint:duration-150 mint:text-[#6b7280] mint:dark:text-[#9ca3af]",
|
|
91
|
-
i ? "mint:rotate-90" : "mint:rotate-0"
|
|
92
|
-
),
|
|
93
|
-
fill: "none",
|
|
94
|
-
stroke: "currentColor",
|
|
95
|
-
viewBox: "0 0 24 24",
|
|
96
|
-
"aria-hidden": "true",
|
|
97
|
-
children: /* @__PURE__ */ t(
|
|
98
|
-
"path",
|
|
99
|
-
{
|
|
100
|
-
strokeLinecap: "round",
|
|
101
|
-
strokeLinejoin: "round",
|
|
102
|
-
strokeWidth: 2,
|
|
103
|
-
d: "M9 5l7 7-7 7"
|
|
104
|
-
}
|
|
105
|
-
)
|
|
106
|
-
}
|
|
107
|
-
)
|
|
69
|
+
/* @__PURE__ */ n("span", { className: "mint:flex-1 mint:min-w-0", children: t.toc_title }),
|
|
70
|
+
/* @__PURE__ */ n(g, { isExpanded: i })
|
|
108
71
|
]
|
|
109
72
|
}
|
|
110
73
|
),
|
|
111
|
-
o && i &&
|
|
74
|
+
o && i && t.children && /* @__PURE__ */ n(
|
|
112
75
|
"ul",
|
|
113
76
|
{
|
|
114
77
|
className: "mint:mt-1 mint:ml-2 mint:flex mint:flex-col mint:gap-1 mint:pl-3",
|
|
115
78
|
role: "group",
|
|
116
|
-
children:
|
|
117
|
-
|
|
79
|
+
children: t.children.map((a, d) => /* @__PURE__ */ n(
|
|
80
|
+
u,
|
|
118
81
|
{
|
|
119
82
|
item: a,
|
|
120
83
|
activeId: l,
|
|
@@ -125,53 +88,32 @@ function x({ item: n, activeId: l, level: m = 0 }) {
|
|
|
125
88
|
}
|
|
126
89
|
)
|
|
127
90
|
] });
|
|
128
|
-
const
|
|
129
|
-
return o ? /* @__PURE__ */
|
|
130
|
-
/* @__PURE__ */
|
|
91
|
+
const x = c || "a";
|
|
92
|
+
return o ? /* @__PURE__ */ r("li", { className: "mint:list-none", children: [
|
|
93
|
+
/* @__PURE__ */ r(
|
|
131
94
|
"button",
|
|
132
95
|
{
|
|
133
96
|
id: "nav-item-toggle",
|
|
134
|
-
onClick: () =>
|
|
97
|
+
onClick: () => b(!i),
|
|
135
98
|
"aria-expanded": i,
|
|
136
|
-
"aria-label": `${i ? "Collapse" : "Expand"} ${
|
|
137
|
-
className:
|
|
138
|
-
"mint:relative mint:text-left mint:w-full mint:flex mint:items-center mint:justify-between mint:py-2 mint:px-3 mint:text-
|
|
139
|
-
|
|
99
|
+
"aria-label": `${i ? "Collapse" : "Expand"} ${t.toc_title} section`,
|
|
100
|
+
className: p(
|
|
101
|
+
"mint:relative mint:text-left mint:w-full mint:flex mint:items-center mint:justify-between mint:gap-2 mint:py-2 mint:px-3 mint:text-[14px] mint:font-sans mint:font-normal mint:rounded-xl mint:transition-all mint:duration-150 mint:bg-transparent mint:border-none mint:cursor-pointer mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#141414] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2",
|
|
102
|
+
e && "mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#643fb2] mint:dark:text-[#c9aaf9]"
|
|
140
103
|
),
|
|
141
104
|
children: [
|
|
142
|
-
/* @__PURE__ */
|
|
143
|
-
/* @__PURE__ */
|
|
144
|
-
"svg",
|
|
145
|
-
{
|
|
146
|
-
className: h(
|
|
147
|
-
"mint:w-4 mint:h-4 mint:transition-transform mint:duration-150 mint:text-[#6b7280] mint:dark:text-[#9ca3af]",
|
|
148
|
-
i ? "mint:rotate-90" : "mint:rotate-0"
|
|
149
|
-
),
|
|
150
|
-
fill: "none",
|
|
151
|
-
stroke: "currentColor",
|
|
152
|
-
viewBox: "0 0 24 24",
|
|
153
|
-
"aria-hidden": "true",
|
|
154
|
-
children: /* @__PURE__ */ t(
|
|
155
|
-
"path",
|
|
156
|
-
{
|
|
157
|
-
strokeLinecap: "round",
|
|
158
|
-
strokeLinejoin: "round",
|
|
159
|
-
strokeWidth: 2,
|
|
160
|
-
d: "M9 5l7 7-7 7"
|
|
161
|
-
}
|
|
162
|
-
)
|
|
163
|
-
}
|
|
164
|
-
)
|
|
105
|
+
/* @__PURE__ */ n("span", { className: "mint:flex-1 mint:min-w-0", children: t.toc_title }),
|
|
106
|
+
/* @__PURE__ */ n(g, { isExpanded: i })
|
|
165
107
|
]
|
|
166
108
|
}
|
|
167
109
|
),
|
|
168
|
-
i &&
|
|
110
|
+
i && t.children && /* @__PURE__ */ n(
|
|
169
111
|
"ul",
|
|
170
112
|
{
|
|
171
113
|
className: "mint:mt-1 mint:ml-2 mint:flex mint:flex-col mint:gap-1 mint:pl-3",
|
|
172
114
|
role: "group",
|
|
173
|
-
children:
|
|
174
|
-
|
|
115
|
+
children: t.children.map((a, d) => /* @__PURE__ */ n(
|
|
116
|
+
u,
|
|
175
117
|
{
|
|
176
118
|
item: a,
|
|
177
119
|
activeId: l,
|
|
@@ -181,89 +123,88 @@ function x({ item: n, activeId: l, level: m = 0 }) {
|
|
|
181
123
|
))
|
|
182
124
|
}
|
|
183
125
|
)
|
|
184
|
-
] }) : /* @__PURE__ */
|
|
185
|
-
|
|
126
|
+
] }) : /* @__PURE__ */ n("li", { className: "mint:list-none", children: /* @__PURE__ */ n(
|
|
127
|
+
x,
|
|
186
128
|
{
|
|
187
129
|
id: "nav-item",
|
|
188
|
-
href:
|
|
189
|
-
"aria-current":
|
|
190
|
-
className:
|
|
191
|
-
"mint:relative mint:block mint:py-2 mint:px-3 mint:text-
|
|
192
|
-
|
|
130
|
+
href: t.href,
|
|
131
|
+
"aria-current": e ? "page" : void 0,
|
|
132
|
+
className: p(
|
|
133
|
+
"mint:relative mint:block mint:py-2 mint:px-3 mint:text-[14px] mint:font-sans mint:font-normal mint:rounded-xl mint:transition-all mint:duration-150 mint:no-underline mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#141414] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2",
|
|
134
|
+
e && "mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#643fb2] mint:dark:text-[#c9aaf9]"
|
|
193
135
|
),
|
|
194
|
-
children:
|
|
136
|
+
children: t.toc_title
|
|
195
137
|
}
|
|
196
138
|
) });
|
|
197
139
|
}
|
|
198
|
-
function
|
|
199
|
-
navTree:
|
|
140
|
+
function j({
|
|
141
|
+
navTree: t,
|
|
200
142
|
activeId: l,
|
|
201
143
|
className: m = "",
|
|
202
|
-
dropdown:
|
|
144
|
+
dropdown: f,
|
|
203
145
|
activeHref: i,
|
|
204
|
-
theme:
|
|
146
|
+
theme: b,
|
|
205
147
|
bottomLinks: c
|
|
206
148
|
}) {
|
|
207
|
-
const { LinkComponent: o } =
|
|
208
|
-
if (!
|
|
149
|
+
const { LinkComponent: o } = k();
|
|
150
|
+
if (!t || t.items.length === 0)
|
|
209
151
|
return null;
|
|
210
|
-
const
|
|
211
|
-
return /* @__PURE__ */
|
|
152
|
+
const h = o || "a";
|
|
153
|
+
return /* @__PURE__ */ r(
|
|
212
154
|
"nav",
|
|
213
155
|
{
|
|
214
156
|
id: "nav-tree",
|
|
215
|
-
className:
|
|
157
|
+
className: p(
|
|
216
158
|
"mint:flex mint:flex-col mint:gap-2 mint:h-full mint:min-h-0",
|
|
217
159
|
m,
|
|
218
|
-
|
|
160
|
+
b === "dark" && "dark"
|
|
219
161
|
),
|
|
220
162
|
"aria-label": "Documentation navigation",
|
|
221
163
|
children: [
|
|
222
|
-
/* @__PURE__ */
|
|
164
|
+
/* @__PURE__ */ r(
|
|
223
165
|
"div",
|
|
224
166
|
{
|
|
225
167
|
id: "nav-tree-content",
|
|
226
|
-
className: "mint:flex-1 mint:overflow-y-auto mint:overflow-x-hidden mint:min-h-0 [scrollbar-gutter:stable]
|
|
168
|
+
className: "mint:flex-1 mint:overflow-y-auto mint:overflow-x-hidden mint:min-h-0 [scrollbar-gutter:stable] [scrollbar-width:thin] [scrollbar-color:rgba(0,0,0,0.2)_transparent] dark:[scrollbar-color:rgba(255,255,255,0.2)_transparent] mint:[&::-webkit-scrollbar]:w-1 mint:[&::-webkit-scrollbar-track]:bg-transparent mint:[&::-webkit-scrollbar-thumb]:bg-black/20 mint:dark:[&::-webkit-scrollbar-thumb]:bg-white/20 mint:[&::-webkit-scrollbar-thumb]:rounded mint:[&::-webkit-scrollbar-thumb:hover]:bg-black/30 mint:dark:[&::-webkit-scrollbar-thumb:hover]:bg-white/30",
|
|
227
169
|
children: [
|
|
228
|
-
|
|
229
|
-
|
|
170
|
+
f && /* @__PURE__ */ n(
|
|
171
|
+
w,
|
|
230
172
|
{
|
|
231
|
-
dropdown:
|
|
173
|
+
dropdown: f,
|
|
232
174
|
activeHref: i,
|
|
233
175
|
className: "mint:mb-6"
|
|
234
176
|
}
|
|
235
177
|
),
|
|
236
|
-
|
|
237
|
-
|
|
178
|
+
t.items.map((e, s) => /* @__PURE__ */ n(
|
|
179
|
+
u,
|
|
238
180
|
{
|
|
239
|
-
item:
|
|
181
|
+
item: e,
|
|
240
182
|
activeId: l
|
|
241
183
|
},
|
|
242
|
-
`${
|
|
184
|
+
`${e.href}-${s}`
|
|
243
185
|
))
|
|
244
186
|
]
|
|
245
187
|
}
|
|
246
188
|
),
|
|
247
|
-
c && c.length > 0 && /* @__PURE__ */
|
|
189
|
+
c && c.length > 0 && /* @__PURE__ */ r(
|
|
248
190
|
"div",
|
|
249
191
|
{
|
|
250
192
|
id: "nav-tree-bottom-links",
|
|
251
193
|
className: "mint:shrink-0 mint:w-full mint:bg-[#f0f0f0] mint:dark:bg-[#0f0f0f] mint:mt-auto",
|
|
252
194
|
children: [
|
|
253
|
-
/* @__PURE__ */
|
|
254
|
-
/* @__PURE__ */
|
|
255
|
-
const
|
|
256
|
-
return /* @__PURE__ */
|
|
257
|
-
|
|
195
|
+
/* @__PURE__ */ n("div", { className: "mint:h-px mint:w-full mint:bg-[#d1d1d1] mint:dark:bg-[#666666] mint:mb-3" }),
|
|
196
|
+
/* @__PURE__ */ n("div", { className: "mint:flex mint:flex-col mint:gap-3 mint:p-3", children: c.map((e, s) => {
|
|
197
|
+
const x = e.icon;
|
|
198
|
+
return /* @__PURE__ */ r(
|
|
199
|
+
h,
|
|
258
200
|
{
|
|
259
|
-
href:
|
|
201
|
+
href: e.href,
|
|
260
202
|
target: "_blank",
|
|
261
203
|
rel: "noopener noreferrer",
|
|
262
|
-
className: "mint:flex mint:items-center mint:gap-2 mint:text-sm mint:no-underline mint:text-[#
|
|
204
|
+
className: "mint:flex mint:items-center mint:gap-2 mint:text-sm mint:no-underline mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:text-[#141414] mint:dark:hover:text-[#e5e7eb]",
|
|
263
205
|
children: [
|
|
264
|
-
/* @__PURE__ */
|
|
265
|
-
/* @__PURE__ */
|
|
266
|
-
/* @__PURE__ */ t(C, {})
|
|
206
|
+
/* @__PURE__ */ n(x, { className: "mint:w-5 mint:h-5 mint:shrink-0" }),
|
|
207
|
+
/* @__PURE__ */ n("span", { children: e.label })
|
|
267
208
|
]
|
|
268
209
|
},
|
|
269
210
|
s
|
|
@@ -277,7 +218,7 @@ function _({
|
|
|
277
218
|
);
|
|
278
219
|
}
|
|
279
220
|
export {
|
|
280
|
-
|
|
281
|
-
|
|
221
|
+
w as DropdownMenu,
|
|
222
|
+
j as NavTree
|
|
282
223
|
};
|
|
283
224
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/components/nav-tree/index.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { NavItem, NavTreeData } from \"../../types\";\nimport { useComponents } from \"../../context/components-context\";\nimport { DropdownConfig, DropdownMenu } from \"./dropdown-menu\";\nimport { cn } from \"../../utils/cn\";\nexport { DropdownMenu } from \"./dropdown-menu\";\nexport type { DropdownConfig, DropdownItem } from \"./dropdown-menu\";\nexport { MobileNavTree } from \"./mobile-nav\";\nexport type { MobileNavTreeProps } from \"./mobile-nav\";\nimport \"../../styles.css\";\n\nexport interface BottomLinkConfig {\n href: string;\n label: string;\n icon: React.ComponentType<{ className?: string }>;\n}\n\ninterface NavTreeProps {\n navTree: NavTreeData;\n activeId?: string;\n className?: string;\n dropdown?: DropdownConfig;\n activeHref?: string;\n theme?: \"light\" | \"dark\" | \"system\";\n bottomLinks?: BottomLinkConfig[];\n}\n\ninterface TreeItemProps {\n item: NavItem;\n activeId?: string;\n level?: number;\n}\n\nfunction ExternalIcon() {\n return (\n <div className=\"mint:ml-auto\">\n <svg\n className=\"mint:block mint:dark:hidden\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.49999 1C1.67157 1 0.999995 1.67157 0.999995 2.5V9.5C0.999995 10.3284 1.67157 11 2.49999 11H9.49996C10.3284 11 10.9999 10.3284 10.9999 9.5V7.26923C10.9999 6.99309 11.2238 6.76923 11.4999 6.76923C11.7761 6.76923 11.9999 6.99309 11.9999 7.26923V9.5C11.9999 10.8807 10.8807 12 9.49996 12H2.49999C1.11928 12 0 10.8807 0 9.5V2.5C0 1.11929 1.11928 0 2.49999 0H4.73075C5.00689 0 5.23074 0.223858 5.23074 0.5C5.23074 0.776142 5.00689 1 4.73075 1H2.49999ZM6.76926 0.5C6.76926 0.223858 6.99311 0 7.26925 0H11.5C11.7761 0 12 0.223858 12 0.5V4.73077C12 5.00691 11.7761 5.23077 11.5 5.23077C11.2239 5.23077 11 5.00691 11 4.73077V1.70711L7.6228 5.08433C7.42754 5.27959 7.11096 5.27959 6.9157 5.08433C6.72044 4.88906 6.72044 4.57248 6.9157 4.37722L10.2929 1H7.26925C6.99311 1 6.76926 0.776142 6.76926 0.5Z\"\n fill=\"#707070\"\n />\n </svg>\n <svg\n className=\"mint:hidden mint:dark:block\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.49999 1C1.67157 1 0.999995 1.67157 0.999995 2.5V9.5C0.999995 10.3284 1.67157 11 2.49999 11H9.49996C10.3284 11 10.9999 10.3284 10.9999 9.5V7.26923C10.9999 6.99309 11.2238 6.76923 11.4999 6.76923C11.7761 6.76923 11.9999 6.99309 11.9999 7.26923V9.5C11.9999 10.8807 10.8807 12 9.49996 12H2.49999C1.11928 12 0 10.8807 0 9.5V2.5C0 1.11929 1.11928 0 2.49999 0H4.73075C5.00689 0 5.23074 0.223858 5.23074 0.5C5.23074 0.776142 5.00689 1 4.73075 1H2.49999ZM6.76926 0.5C6.76926 0.223858 6.99311 0 7.26925 0H11.5C11.7761 0 12 0.223858 12 0.5V4.73077C12 5.00691 11.7761 5.23077 11.5 5.23077C11.2239 5.23077 11 5.00691 11 4.73077V1.70711L7.6228 5.08433C7.42754 5.27959 7.11096 5.27959 6.9157 5.08433C6.72044 4.88906 6.72044 4.57248 6.9157 4.37722L10.2929 1H7.26925C6.99311 1 6.76926 0.776142 6.76926 0.5Z\"\n fill=\"#999999\"\n />\n </svg>\n </div>\n );\n}\n\nfunction TreeItemComponent({ item, activeId, level = 0 }: TreeItemProps) {\n const defaultExpanded = level === 0 ? true : item.expanded ?? false;\n const [isExpanded, setIsExpanded] = useState(defaultExpanded);\n const { LinkComponent } = useComponents();\n const hasChildren = item.children && item.children.length > 0;\n const isGroup = hasChildren && !item.href;\n const isActive = item.href && activeId === item.href;\n const Icon = item.icon;\n\n if (isGroup && level === 0) {\n return (\n <div\n id=\"nav-group\"\n className=\"mint:mb-6\"\n role=\"group\"\n aria-label={item.toc_title}\n >\n <div className=\"mint:text-sm mint:font-semibold mint:text-[#141414] mint:dark:text-white mint:mb-3 mint:flex mint:items-start mint:gap-2 mint:pl-3\">\n {Icon && <Icon className=\"mint:w-5 mint:h-5\" aria-hidden=\"true\" />}\n <span>{item.toc_title}</span>\n </div>\n {hasChildren && item.children && (\n <ul className=\"mint:flex mint:flex-col mint:gap-1\" role=\"list\">\n {item.children.map((child, index) => (\n <TreeItemComponent\n key={`${child.href}-${index}`}\n item={child}\n activeId={activeId}\n level={level + 1}\n />\n ))}\n </ul>\n )}\n </div>\n );\n }\n\n if (isGroup && level > 0) {\n return (\n <li className=\"mint:list-none\">\n <button\n id=\"nav-group-toggle\"\n onClick={() => setIsExpanded(!isExpanded)}\n aria-expanded={isExpanded}\n aria-label={`${isExpanded ? \"Collapse\" : \"Expand\"} ${\n item.toc_title\n } section`}\n className=\"mint:relative mint:text-left mint:w-full mint:flex mint:items-center mint:justify-between mint:py-2 mint:px-3 mint:text-sm mint:rounded-lg mint:transition-all mint:duration-150 mint:bg-transparent mint:border-none mint:cursor-pointer mint:text-[#4b5563] mint:dark:text-[#9ca3af] mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#141414] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\"\n >\n <span>{item.toc_title}</span>\n <svg\n className={cn(\n \"mint:w-4 mint:h-4 mint:transition-transform mint:duration-150 mint:text-[#6b7280] mint:dark:text-[#9ca3af]\",\n isExpanded ? \"mint:rotate-90\" : \"mint:rotate-0\"\n )}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n {hasChildren && isExpanded && item.children && (\n <ul\n className=\"mint:mt-1 mint:ml-2 mint:flex mint:flex-col mint:gap-1 mint:pl-3\"\n role=\"group\"\n >\n {item.children.map((child, index) => (\n <TreeItemComponent\n key={`${child.href}-${index}`}\n item={child}\n activeId={activeId}\n level={level + 1}\n />\n ))}\n </ul>\n )}\n </li>\n );\n }\n\n const LinkElement = LinkComponent || \"a\";\n\n if (hasChildren) {\n return (\n <li className=\"mint:list-none\">\n <button\n id=\"nav-item-toggle\"\n onClick={() => setIsExpanded(!isExpanded)}\n aria-expanded={isExpanded}\n aria-label={`${isExpanded ? \"Collapse\" : \"Expand\"} ${\n item.toc_title\n } section`}\n className={cn(\n \"mint:relative mint:text-left mint:w-full mint:flex mint:items-center mint:justify-between mint:py-2 mint:px-3 mint:text-sm mint:rounded-xl mint:transition-all mint:duration-150 mint:bg-transparent mint:border-none mint:cursor-pointer mint:text-[#4b5563] mint:dark:text-[#9ca3af] mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#141414] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\",\n isActive &&\n \"mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#643fb2] mint:dark:text-[#c9aaf9] mint:font-medium\"\n )}\n >\n <span>{item.toc_title}</span>\n <svg\n className={cn(\n \"mint:w-4 mint:h-4 mint:transition-transform mint:duration-150 mint:text-[#6b7280] mint:dark:text-[#9ca3af]\",\n isExpanded ? \"mint:rotate-90\" : \"mint:rotate-0\"\n )}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n {isExpanded && item.children && (\n <ul\n className=\"mint:mt-1 mint:ml-2 mint:flex mint:flex-col mint:gap-1 mint:pl-3\"\n role=\"group\"\n >\n {item.children.map((child, index) => (\n <TreeItemComponent\n key={`${child.href}-${index}`}\n item={child}\n activeId={activeId}\n level={level + 1}\n />\n ))}\n </ul>\n )}\n </li>\n );\n }\n\n return (\n <li className=\"mint:list-none\">\n <LinkElement\n id=\"nav-item\"\n href={item.href}\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n \"mint:relative mint:block mint:py-2 mint:px-3 mint:text-sm mint:rounded-xl mint:transition-all mint:duration-150 mint:no-underline mint:text-[#4b5563] mint:dark:text-[#9ca3af] mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#141414] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\",\n isActive &&\n \"mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#643fb2] mint:dark:text-[#c9aaf9] mint:font-medium\"\n )}\n >\n {item.toc_title}\n </LinkElement>\n </li>\n );\n}\n\nexport function NavTree({\n navTree,\n activeId,\n className = \"\",\n dropdown,\n activeHref,\n theme,\n bottomLinks,\n}: NavTreeProps) {\n const { LinkComponent } = useComponents();\n\n if (!navTree || navTree.items.length === 0) {\n return null;\n }\n\n const LinkElement = LinkComponent || \"a\";\n\n return (\n <nav\n id=\"nav-tree\"\n className={cn(\n \"mint:flex mint:flex-col mint:gap-2 mint:h-full mint:min-h-0\",\n className,\n theme === \"dark\" && \"dark\"\n )}\n aria-label=\"Documentation navigation\"\n >\n <div\n id=\"nav-tree-content\"\n className=\"mint:flex-1 mint:overflow-y-auto mint:overflow-x-hidden mint:min-h-0 [scrollbar-gutter:stable] mint:pr-4 [scrollbar-width:thin] [scrollbar-color:rgba(0,0,0,0.2)_transparent] dark:[scrollbar-color:rgba(255,255,255,0.2)_transparent] mint:[&::-webkit-scrollbar]:w-1 mint:[&::-webkit-scrollbar-track]:bg-transparent mint:[&::-webkit-scrollbar-thumb]:bg-black/20 mint:dark:[&::-webkit-scrollbar-thumb]:bg-white/20 mint:[&::-webkit-scrollbar-thumb]:rounded mint:[&::-webkit-scrollbar-thumb:hover]:bg-black/30 mint:dark:[&::-webkit-scrollbar-thumb:hover]:bg-white/30\"\n >\n {dropdown && (\n <DropdownMenu\n dropdown={dropdown}\n activeHref={activeHref}\n className=\"mint:mb-6\"\n />\n )}\n {navTree.items.map((item, index) => (\n <TreeItemComponent\n key={`${item.href}-${index}`}\n item={item}\n activeId={activeId}\n />\n ))}\n </div>\n {bottomLinks && bottomLinks.length > 0 && (\n <div\n id=\"nav-tree-bottom-links\"\n className=\"mint:shrink-0 mint:w-full mint:bg-[#f0f0f0] mint:dark:bg-[#0f0f0f] mint:mt-auto\"\n >\n <div className=\"mint:h-px mint:w-full mint:bg-[#d1d1d1] mint:dark:bg-[#666666] mint:mb-3\"></div>\n <div className=\"mint:flex mint:flex-col mint:gap-3 mint:p-3\">\n {bottomLinks.map((link, index) => {\n const Icon = link.icon;\n return (\n <LinkElement\n key={index}\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"mint:flex mint:items-center mint:gap-2 mint:text-sm mint:no-underline mint:text-[#4b5563] mint:dark:text-[#9ca3af] mint:hover:text-[#141414] mint:dark:hover:text-[#e5e7eb]\"\n >\n <Icon className=\"mint:w-5 mint:h-5 mint:shrink-0\" />\n <span>{link.label}</span>\n <ExternalIcon />\n </LinkElement>\n );\n })}\n </div>\n </div>\n )}\n </nav>\n );\n}\n"],"names":["ExternalIcon","jsxs","jsx","TreeItemComponent","item","activeId","level","defaultExpanded","isExpanded","setIsExpanded","useState","LinkComponent","useComponents","hasChildren","isGroup","isActive","Icon","child","index","cn","LinkElement","NavTree","navTree","className","dropdown","activeHref","theme","bottomLinks","DropdownMenu","link"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/components/nav-tree/index.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport type { NavItem, NavTreeData } from \"../../types\";\nimport { useComponents } from \"../../context/components-context\";\nimport { DropdownConfig, DropdownMenu } from \"./dropdown-menu\";\nimport { cn } from \"../../utils/cn\";\nexport { DropdownMenu } from \"./dropdown-menu\";\nexport type { DropdownConfig, DropdownItem } from \"./dropdown-menu\";\nexport { MobileNavTree } from \"./mobile-nav\";\nexport type { MobileNavTreeProps } from \"./mobile-nav\";\nimport \"../../styles.css\";\n\nexport interface BottomLinkConfig {\n href: string;\n label: string;\n icon: React.ComponentType<{ className?: string }>;\n}\n\ninterface NavTreeProps {\n navTree: NavTreeData;\n activeId?: string;\n className?: string;\n dropdown?: DropdownConfig;\n activeHref?: string;\n theme?: \"light\" | \"dark\" | \"system\";\n bottomLinks?: BottomLinkConfig[];\n}\n\ninterface TreeItemProps {\n item: NavItem;\n activeId?: string;\n level?: number;\n}\n\nfunction ChevronIcon({ isExpanded }: { isExpanded: boolean }) {\n return (\n <svg\n className={cn(\n \"mint:w-[16px] mint:h-[16px] mint:shrink-0 mint:transition-transform mint:duration-150 mint:text-[#6b7280] mint:dark:text-[#9ca3af]\",\n isExpanded ? \"mint:rotate-90\" : \"mint:rotate-0\"\n )}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n );\n}\n\nfunction TreeItemComponent({ item, activeId, level = 0 }: TreeItemProps) {\n const defaultExpanded = level === 0 ? true : item.expanded ?? false;\n const [isExpanded, setIsExpanded] = useState(defaultExpanded);\n const { LinkComponent } = useComponents();\n const hasChildren = item.children && item.children.length > 0;\n const isGroup = hasChildren && !item.href;\n const isActive = item.href && activeId === item.href;\n const Icon = item.icon;\n\n if (isGroup && level === 0) {\n return (\n <div\n id=\"nav-group\"\n className=\"mint:mb-6\"\n role=\"group\"\n aria-label={item.toc_title}\n >\n <div className=\"mint:text-sm mint:font-semibold mint:text-[#141414] mint:dark:text-white mint:mb-3 mint:flex mint:items-start mint:gap-2 mint:pl-3\">\n {Icon && <Icon className=\"mint:w-5 mint:h-5\" aria-hidden=\"true\" />}\n <span>{item.toc_title}</span>\n </div>\n {hasChildren && item.children && (\n <ul className=\"mint:flex mint:flex-col mint:gap-1\" role=\"list\">\n {item.children.map((child, index) => (\n <TreeItemComponent\n key={`${child.href}-${index}`}\n item={child}\n activeId={activeId}\n level={level + 1}\n />\n ))}\n </ul>\n )}\n </div>\n );\n }\n\n if (isGroup && level > 0) {\n return (\n <li className=\"mint:list-none\">\n <button\n id=\"nav-group-toggle\"\n onClick={() => setIsExpanded(!isExpanded)}\n aria-expanded={isExpanded}\n aria-label={`${isExpanded ? \"Collapse\" : \"Expand\"} ${\n item.toc_title\n } section`}\n className=\"mint:relative mint:text-left mint:w-full mint:flex mint:items-center mint:justify-between mint:gap-2 mint:py-2 mint:px-3 mint:text-[14px] mint:font-sans mint:font-normal mint:rounded-lg mint:transition-all mint:duration-150 mint:bg-transparent mint:border-none mint:cursor-pointer mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#141414] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\"\n >\n <span className=\"mint:flex-1 mint:min-w-0\">{item.toc_title}</span>\n <ChevronIcon isExpanded={isExpanded} />\n </button>\n {hasChildren && isExpanded && item.children && (\n <ul\n className=\"mint:mt-1 mint:ml-2 mint:flex mint:flex-col mint:gap-1 mint:pl-3\"\n role=\"group\"\n >\n {item.children.map((child, index) => (\n <TreeItemComponent\n key={`${child.href}-${index}`}\n item={child}\n activeId={activeId}\n level={level + 1}\n />\n ))}\n </ul>\n )}\n </li>\n );\n }\n\n const LinkElement = LinkComponent || \"a\";\n\n if (hasChildren) {\n return (\n <li className=\"mint:list-none\">\n <button\n id=\"nav-item-toggle\"\n onClick={() => setIsExpanded(!isExpanded)}\n aria-expanded={isExpanded}\n aria-label={`${isExpanded ? \"Collapse\" : \"Expand\"} ${\n item.toc_title\n } section`}\n className={cn(\n \"mint:relative mint:text-left mint:w-full mint:flex mint:items-center mint:justify-between mint:gap-2 mint:py-2 mint:px-3 mint:text-[14px] mint:font-sans mint:font-normal mint:rounded-xl mint:transition-all mint:duration-150 mint:bg-transparent mint:border-none mint:cursor-pointer mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#141414] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\",\n isActive &&\n \"mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#643fb2] mint:dark:text-[#c9aaf9]\"\n )}\n >\n <span className=\"mint:flex-1 mint:min-w-0\">{item.toc_title}</span>\n <ChevronIcon isExpanded={isExpanded} />\n </button>\n {isExpanded && item.children && (\n <ul\n className=\"mint:mt-1 mint:ml-2 mint:flex mint:flex-col mint:gap-1 mint:pl-3\"\n role=\"group\"\n >\n {item.children.map((child, index) => (\n <TreeItemComponent\n key={`${child.href}-${index}`}\n item={child}\n activeId={activeId}\n level={level + 1}\n />\n ))}\n </ul>\n )}\n </li>\n );\n }\n\n return (\n <li className=\"mint:list-none\">\n <LinkElement\n id=\"nav-item\"\n href={item.href}\n aria-current={isActive ? \"page\" : undefined}\n className={cn(\n \"mint:relative mint:block mint:py-2 mint:px-3 mint:text-[14px] mint:font-sans mint:font-normal mint:rounded-xl mint:transition-all mint:duration-150 mint:no-underline mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:bg-[rgba(75,85,99,0.05)] mint:hover:text-[#141414] mint:dark:hover:bg-[rgba(75,85,99,0.05)] mint:dark:hover:text-[#e5e7eb] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\",\n isActive &&\n \"mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#643fb2] mint:dark:text-[#c9aaf9]\"\n )}\n >\n {item.toc_title}\n </LinkElement>\n </li>\n );\n}\n\nexport function NavTree({\n navTree,\n activeId,\n className = \"\",\n dropdown,\n activeHref,\n theme,\n bottomLinks,\n}: NavTreeProps) {\n const { LinkComponent } = useComponents();\n\n if (!navTree || navTree.items.length === 0) {\n return null;\n }\n\n const LinkElement = LinkComponent || \"a\";\n\n return (\n <nav\n id=\"nav-tree\"\n className={cn(\n \"mint:flex mint:flex-col mint:gap-2 mint:h-full mint:min-h-0\",\n className,\n theme === \"dark\" && \"dark\"\n )}\n aria-label=\"Documentation navigation\"\n >\n <div\n id=\"nav-tree-content\"\n className=\"mint:flex-1 mint:overflow-y-auto mint:overflow-x-hidden mint:min-h-0 [scrollbar-gutter:stable] [scrollbar-width:thin] [scrollbar-color:rgba(0,0,0,0.2)_transparent] dark:[scrollbar-color:rgba(255,255,255,0.2)_transparent] mint:[&::-webkit-scrollbar]:w-1 mint:[&::-webkit-scrollbar-track]:bg-transparent mint:[&::-webkit-scrollbar-thumb]:bg-black/20 mint:dark:[&::-webkit-scrollbar-thumb]:bg-white/20 mint:[&::-webkit-scrollbar-thumb]:rounded mint:[&::-webkit-scrollbar-thumb:hover]:bg-black/30 mint:dark:[&::-webkit-scrollbar-thumb:hover]:bg-white/30\"\n >\n {dropdown && (\n <DropdownMenu\n dropdown={dropdown}\n activeHref={activeHref}\n className=\"mint:mb-6\"\n />\n )}\n {navTree.items.map((item, index) => (\n <TreeItemComponent\n key={`${item.href}-${index}`}\n item={item}\n activeId={activeId}\n />\n ))}\n </div>\n {bottomLinks && bottomLinks.length > 0 && (\n <div\n id=\"nav-tree-bottom-links\"\n className=\"mint:shrink-0 mint:w-full mint:bg-[#f0f0f0] mint:dark:bg-[#0f0f0f] mint:mt-auto\"\n >\n <div className=\"mint:h-px mint:w-full mint:bg-[#d1d1d1] mint:dark:bg-[#666666] mint:mb-3\"></div>\n <div className=\"mint:flex mint:flex-col mint:gap-3 mint:p-3\">\n {bottomLinks.map((link, index) => {\n const Icon = link.icon;\n return (\n <LinkElement\n key={index}\n href={link.href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"mint:flex mint:items-center mint:gap-2 mint:text-sm mint:no-underline mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:text-[#141414] mint:dark:hover:text-[#e5e7eb]\"\n >\n <Icon className=\"mint:w-5 mint:h-5 mint:shrink-0\" />\n <span>{link.label}</span>\n </LinkElement>\n );\n })}\n </div>\n </div>\n )}\n </nav>\n );\n}\n"],"names":["ChevronIcon","isExpanded","jsx","cn","TreeItemComponent","item","activeId","level","defaultExpanded","setIsExpanded","useState","LinkComponent","useComponents","hasChildren","isGroup","isActive","Icon","jsxs","child","index","LinkElement","NavTree","navTree","className","dropdown","activeHref","theme","bottomLinks","DropdownMenu","link"],"mappings":"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"}
|