@mintlify/msft-sdk 1.1.24 → 1.1.25

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 (61) hide show
  1. package/dist/api-playground/ApiPlayground/Request/PlaygroundModal.js +46 -45
  2. package/dist/api-playground/ApiPlayground/Request/PlaygroundModal.js.map +1 -1
  3. package/dist/api-playground/ApiPlayground/Request/index.js +18 -18
  4. package/dist/api-playground/ApiPlayground/Request/index.js.map +1 -1
  5. package/dist/api-playground/ApiPlayground/components/EndpointsMenu.js +20 -21
  6. package/dist/api-playground/ApiPlayground/components/EndpointsMenu.js.map +1 -1
  7. package/dist/api-playground/ApiPlayground/components/EndpointsMenuLink.js +10 -11
  8. package/dist/api-playground/ApiPlayground/components/EndpointsMenuLink.js.map +1 -1
  9. package/dist/api-playground/ApiPlayground/index.js +30 -30
  10. package/dist/api-playground/ApiPlayground/index.js.map +1 -1
  11. package/dist/api-playground-2/constants/index.js +12 -3
  12. package/dist/api-playground-2/constants/index.js.map +1 -1
  13. package/dist/api-playground-2/schemaGraph/addUniqueKeysToSchema.js +41 -0
  14. package/dist/api-playground-2/schemaGraph/addUniqueKeysToSchema.js.map +1 -0
  15. package/dist/api-playground-2/schemaGraph/errors.js +19 -0
  16. package/dist/api-playground-2/schemaGraph/errors.js.map +1 -0
  17. package/dist/api-playground-2/schemaGraph/getApiReferenceDataFromGraph.js +26 -0
  18. package/dist/api-playground-2/schemaGraph/getApiReferenceDataFromGraph.js.map +1 -0
  19. package/dist/api-playground-2/schemaGraph/getDocumentProperties.js +58 -0
  20. package/dist/api-playground-2/schemaGraph/getDocumentProperties.js.map +1 -0
  21. package/dist/api-playground-2/schemaGraph/getSchemaGraphOperationData.js +77 -0
  22. package/dist/api-playground-2/schemaGraph/getSchemaGraphOperationData.js.map +1 -0
  23. package/dist/api-playground-2/schemaGraph/getSchemaGraphSchemaData.js +16 -0
  24. package/dist/api-playground-2/schemaGraph/getSchemaGraphSchemaData.js.map +1 -0
  25. package/dist/api-playground-2/schemaGraph/processExamples.js +111 -34
  26. package/dist/api-playground-2/schemaGraph/processExamples.js.map +1 -1
  27. package/dist/api-playground-2/schemaGraph/reduceCompositions.js +283 -0
  28. package/dist/api-playground-2/schemaGraph/reduceCompositions.js.map +1 -0
  29. package/dist/api-playground-2/schemaGraph/resolveGraphNode.js +61 -0
  30. package/dist/api-playground-2/schemaGraph/resolveGraphNode.js.map +1 -0
  31. package/dist/api-playground-2/schemaGraph/resolveOperationWithDependencies.js +149 -0
  32. package/dist/api-playground-2/schemaGraph/resolveOperationWithDependencies.js.map +1 -0
  33. package/dist/api-playground-2/schemaGraph/resolveSchemaWithDependencies.js +33 -0
  34. package/dist/api-playground-2/schemaGraph/resolveSchemaWithDependencies.js.map +1 -0
  35. package/dist/api-playground-2/schemaGraph/sortSchemaByRequired.js +35 -0
  36. package/dist/api-playground-2/schemaGraph/sortSchemaByRequired.js.map +1 -0
  37. package/dist/api-playground-2/schemaGraph/utils.js +144 -98
  38. package/dist/api-playground-2/schemaGraph/utils.js.map +1 -1
  39. package/dist/common/parseApiTargetFromMetadata.js +24 -0
  40. package/dist/common/parseApiTargetFromMetadata.js.map +1 -0
  41. package/dist/common/parseOpenApiString.js +42 -0
  42. package/dist/common/parseOpenApiString.js.map +1 -0
  43. package/dist/components/Api/ApiReferenceProvider.js +6 -15
  44. package/dist/components/Api/ApiReferenceProvider.js.map +1 -1
  45. package/dist/components/nav-tree/index.js +135 -109
  46. package/dist/components/nav-tree/index.js.map +1 -1
  47. package/dist/contexts/ConfigContext.js +61 -12
  48. package/dist/contexts/ConfigContext.js.map +1 -1
  49. package/dist/contexts/MDXContentContext.js +0 -1
  50. package/dist/contexts/MDXContentContext.js.map +1 -1
  51. package/dist/index.d.ts +125 -9
  52. package/dist/index.js +156 -144
  53. package/dist/index.js.map +1 -1
  54. package/dist/styles.css +1 -1
  55. package/package.json +1 -1
  56. package/dist/hooks/useCurrentPath.js +0 -17
  57. package/dist/hooks/useCurrentPath.js.map +0 -1
  58. package/dist/utils/decodeSlug.js +0 -8
  59. package/dist/utils/decodeSlug.js.map +0 -1
  60. package/dist/utils/optionallyAddLeadingSlash.js +0 -7
  61. package/dist/utils/optionallyAddLeadingSlash.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseApiTargetFromMetadata.js","sources":["../../src/common/parseApiTargetFromMetadata.ts"],"sourcesContent":["import { PageMetaTags } from '@mintlify/models';\nimport { parseOpenApiString, parseOpenApiSchemaString } from './parseOpenApiString';\n\nexport type SchemaTargetType = {\n type: 'schema';\n} & ReturnType<typeof parseOpenApiSchemaString>;\n\nexport type OperationTargetType = {\n type: 'operation';\n} & ReturnType<typeof parseOpenApiString>;\n\n\nexport const parseApiTargetFromMetadata = (\n metadata: PageMetaTags\n): SchemaTargetType | OperationTargetType | undefined => {\n const openapiSchema = metadata['openapi-schema'];\n if (typeof openapiSchema === 'string' && openapiSchema.length > 0) {\n return {\n type: 'schema',\n ...parseOpenApiSchemaString(openapiSchema),\n };\n }\n\n const openapi = metadata.openapi;\n if (typeof openapi === 'string' && openapi.length > 0) {\n try {\n return {\n type: 'operation',\n ...parseOpenApiString(openapi),\n };\n } catch (error) {\n console.error(`unable to parse value \"${openapi}\" for field \"openapi\":`, error);\n return undefined;\n }\n }\n\n return undefined;\n};"],"names":["parseApiTargetFromMetadata","metadata","openapiSchema","parseOpenApiSchemaString","openapi","parseOpenApiString","error"],"mappings":";AAYO,MAAMA,IAA6B,CACxCC,MACuD;AACvD,QAAMC,IAAgBD,EAAS,gBAAgB;AAC/C,MAAI,OAAOC,KAAkB,YAAYA,EAAc,SAAS;AAC9D,WAAO;AAAA,MACL,MAAM;AAAA,MACN,GAAGC,EAAyBD,CAAa;AAAA,IAAA;AAI7C,QAAME,IAAUH,EAAS;AACzB,MAAI,OAAOG,KAAY,YAAYA,EAAQ,SAAS;AAClD,QAAI;AACF,aAAO;AAAA,QACL,MAAM;AAAA,QACN,GAAGC,EAAmBD,CAAO;AAAA,MAAA;AAAA,IAEjC,SAASE,GAAO;AACd,cAAQ,MAAM,0BAA0BF,CAAO,0BAA0BE,CAAK;AAC9E;AAAA,IACF;AAIJ;"}
@@ -0,0 +1,42 @@
1
+ import { OpenAPIV3 as i } from "openapi-types";
2
+ const p = Object.values(i.HttpMethods).concat(
3
+ "webhook"
4
+ ), l = (o) => {
5
+ const e = o.trim().split(/\s+/);
6
+ let r, t, n;
7
+ if (e.length > 3)
8
+ throw new Error("improperly formatted openapi string");
9
+ if (e[0] && e[1] && e[2])
10
+ [r, t, n] = e;
11
+ else if (e[0] && e[1])
12
+ [t, n] = e;
13
+ else
14
+ throw new Error("improperly formatted openapi string");
15
+ if (t = t.toLowerCase(), !p.includes(t))
16
+ throw new Error("invalid http method");
17
+ return {
18
+ method: t,
19
+ endpoint: n,
20
+ filename: r
21
+ };
22
+ }, m = (o) => {
23
+ const e = o.trim().split(/\s+/);
24
+ let r, t;
25
+ if (e.length > 2)
26
+ throw new Error("improperly formatted openapi schema string");
27
+ if (e[0] && e[1])
28
+ [r, t] = e;
29
+ else if (e[0])
30
+ [t] = e;
31
+ else
32
+ throw new Error("improperly formatted openapi schema string");
33
+ return {
34
+ name: t,
35
+ filename: r
36
+ };
37
+ };
38
+ export {
39
+ m as parseOpenApiSchemaString,
40
+ l as parseOpenApiString
41
+ };
42
+ //# sourceMappingURL=parseOpenApiString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseOpenApiString.js","sources":["../../src/common/parseOpenApiString.ts"],"sourcesContent":["import { OpenAPIV3 } from 'openapi-types';\n\nconst VALID_METHODS: string[] = Object.values(OpenAPIV3.HttpMethods).concat(\n 'webhook' as OpenAPIV3.HttpMethods\n);\n\n/**\n *\n * @param str either the openapi or api string defined in the frontmatter\n * @returns method: API method (GET, POST, PUT, DELETE, PATCH)\n * endpoint: API endpoint\n * filename: filename of the openapi file (if applicable)\n * returns undefined for any of the values (fails silently)\n */\nexport const potentiallyParseOpenApiString = (\n str: string\n):\n | {\n method: OpenAPIV3.HttpMethods;\n endpoint: string;\n filename?: string;\n }\n | undefined => {\n const components = str.trim().split(/\\s+/);\n let filename: string | undefined;\n let method: string;\n let endpoint: string;\n\n if (components.length > 3) {\n // improperly formatted openapi string\n return undefined;\n } else if (components[0] && components[1] && components[2]) {\n [filename, method, endpoint] = components;\n } else if (components[0] && components[1]) {\n [method, endpoint] = components;\n } else {\n // improperly formatted openapi string\n return undefined;\n }\n\n if (method) {\n method = method.toLowerCase();\n if (!VALID_METHODS.includes(method)) {\n // invalid http method\n return undefined;\n }\n }\n\n return {\n method: method as OpenAPIV3.HttpMethods,\n endpoint,\n filename,\n };\n};\n\n/**\n *\n * @param str either the openapi or api string defined in the frontmatter\n * @returns method: API method (GET, POST, PUT, DELETE, PATCH)\n * endpoint: API endpoint\n * filename: filename of the openapi file (if applicable)\n */\nexport const parseOpenApiString = (\n str: string\n): {\n method: OpenAPIV3.HttpMethods;\n endpoint: string;\n filename?: string;\n} => {\n const components = str.trim().split(/\\s+/);\n let filename: string | undefined;\n let method: string;\n let endpoint: string;\n\n if (components.length > 3) {\n throw new Error('improperly formatted openapi string');\n } else if (components[0] && components[1] && components[2]) {\n [filename, method, endpoint] = components;\n } else if (components[0] && components[1]) {\n [method, endpoint] = components;\n } else {\n throw new Error('improperly formatted openapi string');\n }\n\n method = method.toLowerCase();\n\n if (!VALID_METHODS.includes(method)) {\n throw new Error('invalid http method');\n }\n\n return {\n method: method as OpenAPIV3.HttpMethods,\n endpoint,\n filename,\n };\n};\n\n/**\n * same as above, but for openapi-schema frontmatter\n */\nexport const parseOpenApiSchemaString = (\n str: string\n): {\n name: string;\n filename?: string;\n} => {\n const components = str.trim().split(/\\s+/);\n let filename: string | undefined;\n let name: string;\n\n if (components.length > 2) {\n throw new Error('improperly formatted openapi schema string');\n } else if (components[0] && components[1]) {\n [filename, name] = components;\n } else if (components[0]) {\n [name] = components;\n } else {\n throw new Error('improperly formatted openapi schema string');\n }\n\n return {\n name,\n filename,\n };\n};\n"],"names":["VALID_METHODS","OpenAPIV3","parseOpenApiString","str","components","filename","method","endpoint","parseOpenApiSchemaString","name"],"mappings":";AAEA,MAAMA,IAA0B,OAAO,OAAOC,EAAU,WAAW,EAAE;AAAA,EACnE;AACF,GA0DaC,IAAqB,CAChCC,MAKG;AACH,QAAMC,IAAaD,EAAI,KAAA,EAAO,MAAM,KAAK;AACzC,MAAIE,GACAC,GACAC;AAEJ,MAAIH,EAAW,SAAS;AACtB,UAAM,IAAI,MAAM,qCAAqC;AACvD,MAAWA,EAAW,CAAC,KAAKA,EAAW,CAAC,KAAKA,EAAW,CAAC;AACvD,KAACC,GAAUC,GAAQC,CAAQ,IAAIH;AAAA,WACtBA,EAAW,CAAC,KAAKA,EAAW,CAAC;AACtC,KAACE,GAAQC,CAAQ,IAAIH;AAAA;AAErB,UAAM,IAAI,MAAM,qCAAqC;AAKvD,MAFAE,IAASA,EAAO,YAAA,GAEZ,CAACN,EAAc,SAASM,CAAM;AAChC,UAAM,IAAI,MAAM,qBAAqB;AAGvC,SAAO;AAAA,IACL,QAAAA;AAAA,IACA,UAAAC;AAAA,IACA,UAAAF;AAAA,EAAA;AAEJ,GAKaG,IAA2B,CACtCL,MAIG;AACH,QAAMC,IAAaD,EAAI,KAAA,EAAO,MAAM,KAAK;AACzC,MAAIE,GACAI;AAEJ,MAAIL,EAAW,SAAS;AACtB,UAAM,IAAI,MAAM,4CAA4C;MACnDA,EAAW,CAAC,KAAKA,EAAW,CAAC;AACtC,KAACC,GAAUI,CAAI,IAAIL;AAAA,WACVA,EAAW,CAAC;AACrB,KAACK,CAAI,IAAIL;AAAA;AAET,UAAM,IAAI,MAAM,4CAA4C;AAG9D,SAAO;AAAA,IACL,MAAAK;AAAA,IACA,UAAAJ;AAAA,EAAA;AAEJ;"}
@@ -1,19 +1,10 @@
1
- import { jsx as c } from "react/jsx-runtime";
2
- import { createContext as i, useContext as f } from "react";
3
- const t = i(void 0);
4
- function p() {
5
- return f(t);
6
- }
7
- function s({
8
- apiReferenceData2: e,
9
- docsConfig: o,
10
- mdxExtracts: r,
11
- children: n
12
- }) {
13
- return /* @__PURE__ */ c(t.Provider, { value: { apiReferenceData2: e, docsConfig: o, mdxExtracts: r }, children: n });
1
+ import "react/jsx-runtime";
2
+ import { useContext as e, createContext as t } from "react";
3
+ const o = t(void 0);
4
+ function i() {
5
+ return e(o);
14
6
  }
15
7
  export {
16
- s as ApiReferenceProvider2,
17
- p as useApiReference
8
+ i as useApiReference
18
9
  };
19
10
  //# sourceMappingURL=ApiReferenceProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApiReferenceProvider.js","sources":["../../../src/components/Api/ApiReferenceProvider.tsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\n\ninterface ApiReferenceContextValue {\n apiReferenceData2?: any;\n docsConfig?: any;\n mdxExtracts?: any;\n}\n\nconst ApiReferenceContext = createContext<ApiReferenceContextValue | undefined>(undefined);\n\nexport function useApiReference() {\n const context = useContext(ApiReferenceContext);\n return context;\n}\n\ninterface ApiReferenceProvider2Props {\n apiReferenceData2?: any;\n docsConfig?: any;\n mdxExtracts?: any;\n children: React.ReactNode;\n}\n\nexport function ApiReferenceProvider2({\n apiReferenceData2,\n docsConfig,\n mdxExtracts,\n children,\n}: ApiReferenceProvider2Props) {\n return (\n <ApiReferenceContext.Provider value={{ apiReferenceData2, docsConfig, mdxExtracts }}>\n {children}\n </ApiReferenceContext.Provider>\n );\n}\n"],"names":["ApiReferenceContext","createContext","useApiReference","useContext","ApiReferenceProvider2","apiReferenceData2","docsConfig","mdxExtracts","children","jsx"],"mappings":";;AAQA,MAAMA,IAAsBC,EAAoD,MAAS;AAElF,SAASC,IAAkB;AAEhC,SADgBC,EAAWH,CAAmB;AAEhD;AASO,SAASI,EAAsB;AAAA,EACpC,mBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AACF,GAA+B;AAC7B,SACE,gBAAAC,EAACT,EAAoB,UAApB,EAA6B,OAAO,EAAE,mBAAAK,GAAmB,YAAAC,GAAY,aAAAC,KACnE,UAAAC,GACH;AAEJ;"}
1
+ {"version":3,"file":"ApiReferenceProvider.js","sources":["../../../src/components/Api/ApiReferenceProvider.tsx"],"sourcesContent":["import React, { createContext, useContext } from 'react';\n\ninterface ApiReferenceContextValue {\n apiReferenceData2?: any;\n docsConfig?: any;\n mdxExtracts?: any;\n}\n\nconst ApiReferenceContext = createContext<ApiReferenceContextValue | undefined>(undefined);\n\nexport function useApiReference() {\n const context = useContext(ApiReferenceContext);\n return context;\n}\n\ninterface ApiReferenceProvider2Props {\n apiReferenceData2?: any;\n docsConfig?: any;\n mdxExtracts?: any;\n children: React.ReactNode;\n}\n\nexport function ApiReferenceProvider2({\n apiReferenceData2,\n docsConfig,\n mdxExtracts,\n children,\n}: ApiReferenceProvider2Props) {\n return (\n <ApiReferenceContext.Provider value={{ apiReferenceData2, docsConfig, mdxExtracts }}>\n {children}\n </ApiReferenceContext.Provider>\n );\n}\n"],"names":["ApiReferenceContext","createContext","useApiReference","useContext"],"mappings":";;AAQA,MAAMA,IAAsBC,EAAoD,MAAS;AAElF,SAASC,IAAkB;AAEhC,SADgBC,EAAWH,CAAmB;AAEhD;"}
@@ -1,14 +1,14 @@
1
- import { jsxs as s, jsx as n } from "react/jsx-runtime";
2
- import { useRef as A, useEffect as y, useState as L } from "react";
1
+ import { jsxs as l, jsx as e } from "react/jsx-runtime";
2
+ import { useRef as A, useEffect as $, useState as L } from "react";
3
3
  import { useComponents as _ } from "../../context/components-context.js";
4
- import { cn as N } from "../../utils/cn.js";
4
+ import { cn as y } from "../../utils/cn.js";
5
5
  import { MethodPill as j } from "../Api/MethodPill.js";
6
6
  /* empty css */
7
- function E({ isExpanded: t }) {
8
- return /* @__PURE__ */ n(
7
+ function C({ isExpanded: t }) {
8
+ return /* @__PURE__ */ e(
9
9
  "svg",
10
10
  {
11
- className: N(
11
+ className: y(
12
12
  "mint:w-[16px] mint:h-[16px] mint:shrink-0 mint:text-[#6b7280] mint:dark:text-[#9ca3af]",
13
13
  t ? "mint:rotate-90" : "mint:rotate-0"
14
14
  ),
@@ -16,7 +16,7 @@ function E({ isExpanded: t }) {
16
16
  stroke: "currentColor",
17
17
  viewBox: "0 0 24 24",
18
18
  "aria-hidden": "true",
19
- children: /* @__PURE__ */ n(
19
+ children: /* @__PURE__ */ e(
20
20
  "path",
21
21
  {
22
22
  strokeLinecap: "round",
@@ -28,128 +28,128 @@ function E({ isExpanded: t }) {
28
28
  }
29
29
  );
30
30
  }
31
- const $ = "mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#242424] mint:dark:text-[#ffffff] mint:font-semibold";
32
- function w({ item: t, activeId: h, level: f = 0, activeHref: r }) {
33
- const u = t.children && t.children.length > 0, b = (i) => i ? i.startsWith("/") ? i : `/${i}` : "", x = (i, d) => {
34
- if (!i || !d) return !1;
35
- const k = b(i), v = b(d);
36
- return k === v || k.replace("/docs/", "/") === v.replace("/docs/", "/") || k === v.replace("/docs/", "/") || k.replace("/docs/", "/") === v;
37
- }, p = (i) => x(i.href, r) ? !0 : i.children ? i.children.some(p) : !1, C = f === 0 ? !0 : (t.expanded ?? !1) || u && p(t), [e, o] = L(C);
38
- y(() => {
39
- u && p(t) && o(!0);
40
- }, [r]);
41
- const { LinkComponent: g } = _(), l = !t.href, m = t.href && (x(t.href, h) || x(t.href, r)), a = t.icon;
42
- if (l && f === 0)
43
- return /* @__PURE__ */ s(
31
+ const E = "mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#242424] mint:dark:text-[#ffffff] mint:font-semibold";
32
+ function N({ item: t, activeId: p, level: f = 0, activeHref: o }) {
33
+ const h = t.children && t.children.length > 0, x = (n) => n ? n.startsWith("/") ? n : `/${n}` : "", b = (n, d) => {
34
+ if (!n || !d) return !1;
35
+ const v = x(n), w = x(d);
36
+ return v === w || v.replace("/docs/", "/") === w.replace("/docs/", "/") || v === w.replace("/docs/", "/") || v.replace("/docs/", "/") === w;
37
+ }, g = (n) => b(n.href, o) ? !0 : n.children ? n.children.some(g) : !1, k = f === 0 ? !0 : (t.expanded ?? !1) || h && g(t), [m, i] = L(k);
38
+ $(() => {
39
+ h && g(t) && i(!0);
40
+ }, [o]);
41
+ const { LinkComponent: a } = _(), s = !t.href, r = t.href && (b(t.href, p) || b(t.href, o)), u = t.icon;
42
+ if (s && f === 0)
43
+ return /* @__PURE__ */ l(
44
44
  "div",
45
45
  {
46
46
  id: "nav-group",
47
47
  role: "group",
48
48
  "aria-label": t.toc_title,
49
49
  children: [
50
- /* @__PURE__ */ s("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-2.5", children: [
51
- a && /* @__PURE__ */ n(a, { className: "mint:w-5 mint:h-5", "aria-hidden": "true" }),
52
- /* @__PURE__ */ n("span", { children: t.toc_title })
50
+ /* @__PURE__ */ l("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-2.5", children: [
51
+ u && /* @__PURE__ */ e(u, { className: "mint:w-5 mint:h-5", "aria-hidden": "true" }),
52
+ /* @__PURE__ */ e("span", { children: t.toc_title })
53
53
  ] }),
54
- u && t.children && /* @__PURE__ */ n("ul", { className: "mint:flex mint:flex-col mint:pl-0", role: "list", children: t.children.map((i, d) => /* @__PURE__ */ n(
55
- w,
54
+ h && t.children && /* @__PURE__ */ e("ul", { className: "mint:flex mint:flex-col mint:pl-0", role: "list", children: t.children.map((n, d) => /* @__PURE__ */ e(
55
+ N,
56
56
  {
57
- item: i,
58
- activeId: h,
57
+ item: n,
58
+ activeId: p,
59
59
  level: f + 1,
60
- activeHref: r
60
+ activeHref: o
61
61
  },
62
- `${i.href}-${d}`
62
+ `${n.href}-${d}`
63
63
  )) })
64
64
  ]
65
65
  }
66
66
  );
67
- if (l && f > 0)
68
- return /* @__PURE__ */ s("li", { className: "mint:list-none", children: [
69
- /* @__PURE__ */ s(
67
+ if (s && f > 0)
68
+ return /* @__PURE__ */ l("li", { className: "mint:list-none", children: [
69
+ /* @__PURE__ */ l(
70
70
  "button",
71
71
  {
72
72
  id: "nav-group-toggle",
73
- onClick: () => o(!e),
74
- "aria-expanded": e,
75
- "aria-label": `${e ? "Collapse" : "Expand"} ${t.toc_title} section`,
73
+ onClick: () => i(!m),
74
+ "aria-expanded": m,
75
+ "aria-label": `${m ? "Collapse" : "Expand"} ${t.toc_title} section`,
76
76
  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: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",
77
77
  children: [
78
- /* @__PURE__ */ n("span", { className: "mint:flex-1 mint:min-w-0", children: t.toc_title }),
79
- /* @__PURE__ */ n(E, { isExpanded: !!e })
78
+ /* @__PURE__ */ e("span", { className: "mint:flex-1 mint:min-w-0", children: t.toc_title }),
79
+ /* @__PURE__ */ e(C, { isExpanded: !!m })
80
80
  ]
81
81
  }
82
82
  ),
83
- u && e && t.children && /* @__PURE__ */ n(
83
+ h && m && t.children && /* @__PURE__ */ e(
84
84
  "ul",
85
85
  {
86
86
  className: "mint:ml-3 mint:flex mint:flex-col mint:pl-0",
87
87
  role: "group",
88
- children: t.children.map((i, d) => /* @__PURE__ */ n(
89
- w,
88
+ children: t.children.map((n, d) => /* @__PURE__ */ e(
89
+ N,
90
90
  {
91
- item: i,
92
- activeId: h,
91
+ item: n,
92
+ activeId: p,
93
93
  level: f + 1,
94
- activeHref: r
94
+ activeHref: o
95
95
  },
96
- `${i.href}-${d}`
96
+ `${n.href}-${d}`
97
97
  ))
98
98
  }
99
99
  )
100
100
  ] });
101
- const c = g || "a";
102
- return u ? /* @__PURE__ */ s("li", { className: "mint:list-none", children: [
103
- /* @__PURE__ */ s(
101
+ const c = a || "a";
102
+ return h ? /* @__PURE__ */ l("li", { className: "mint:list-none", children: [
103
+ /* @__PURE__ */ l(
104
104
  "button",
105
105
  {
106
106
  id: "nav-item-toggle",
107
- onClick: () => o(!e),
108
- "aria-expanded": e,
109
- "aria-label": `${e ? "Collapse" : "Expand"} ${t.toc_title} section`,
110
- className: N(
107
+ onClick: () => i(!m),
108
+ "aria-expanded": m,
109
+ "aria-label": `${m ? "Collapse" : "Expand"} ${t.toc_title} section`,
110
+ className: y(
111
111
  "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:bg-transparent mint:border-none mint:cursor-pointer mint:text-[#424242] mint:dark:text-[#9ca3af] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2",
112
- m ? $ : "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]"
112
+ r ? E : "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]"
113
113
  ),
114
114
  children: [
115
- /* @__PURE__ */ n("span", { className: "mint:flex-1 mint:min-w-0", children: t.toc_title }),
116
- /* @__PURE__ */ n(E, { isExpanded: !!e })
115
+ /* @__PURE__ */ e("span", { className: "mint:flex-1 mint:min-w-0", children: t.toc_title }),
116
+ /* @__PURE__ */ e(C, { isExpanded: !!m })
117
117
  ]
118
118
  }
119
119
  ),
120
- e && t.children && /* @__PURE__ */ n(
120
+ m && t.children && /* @__PURE__ */ e(
121
121
  "ul",
122
122
  {
123
123
  className: "mint:ml-3 mint:flex mint:flex-col mint:pl-0",
124
124
  role: "group",
125
- children: t.children.map((i, d) => /* @__PURE__ */ n(
126
- w,
125
+ children: t.children.map((n, d) => /* @__PURE__ */ e(
126
+ N,
127
127
  {
128
- item: i,
129
- activeId: h,
128
+ item: n,
129
+ activeId: p,
130
130
  level: f + 1,
131
- activeHref: r
131
+ activeHref: o
132
132
  },
133
- `${i.href}-${d}`
133
+ `${n.href}-${d}`
134
134
  ))
135
135
  }
136
136
  )
137
- ] }) : /* @__PURE__ */ n("li", { className: "mint:list-none", children: /* @__PURE__ */ s(
137
+ ] }) : /* @__PURE__ */ e("li", { className: "mint:list-none", children: /* @__PURE__ */ l(
138
138
  c,
139
139
  {
140
140
  id: "nav-item",
141
141
  href: t.href,
142
- "aria-current": m ? "page" : void 0,
143
- className: N(
142
+ "aria-current": r ? "page" : void 0,
143
+ className: y(
144
144
  "mint:relative mint:flex mint:items-center mint:gap-2 mint:py-2 mint:px-3 mint:text-[14px] mint:font-sans mint:font-normal mint:rounded-xl mint:no-underline mint:text-[#424242] mint:dark:text-[#9ca3af] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2",
145
- m ? $ : "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]"
145
+ r ? E : "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]"
146
146
  ),
147
147
  children: [
148
- m && /* @__PURE__ */ n("div", { className: "mint:absolute mint:left-0 mint:my-2.5 mint:rounded-full mint:w-[3px] mint:top-0 mint:bottom-0 mint:bg-[#8251ee] mint:dark:bg-[#9263f1]" }),
149
- t.method && /* @__PURE__ */ n(
148
+ r && /* @__PURE__ */ e("div", { className: "mint:absolute mint:left-0 mint:my-2.5 mint:rounded-full mint:w-[3px] mint:top-0 mint:bottom-0 mint:bg-[#8251ee] mint:dark:bg-[#9263f1]" }),
149
+ t.method && /* @__PURE__ */ e(
150
150
  j,
151
151
  {
152
- isActive: !!m,
152
+ isActive: !!r,
153
153
  method: t.method,
154
154
  shortMethod: !0
155
155
  }
@@ -161,89 +161,115 @@ function w({ item: t, activeId: h, level: f = 0, activeHref: r }) {
161
161
  }
162
162
  function B({
163
163
  navTree: t,
164
- activeId: h,
164
+ activeId: p,
165
165
  className: f = "",
166
- activeHref: r,
167
- theme: u,
168
- bottomLinks: b
166
+ activeHref: o,
167
+ theme: h,
168
+ bottomLinks: x,
169
+ anchors: b
169
170
  }) {
170
- const { LinkComponent: x } = _(), p = A(null);
171
- if (y(() => {
172
- const e = p.current;
173
- if (!e || !r) return;
174
- const o = (l) => l ? l.startsWith("/") ? l : `/${l}` : "", g = (l, m) => {
175
- const a = o(l), c = o(m);
176
- return a === c || a.replace("/docs/", "/") === c.replace("/docs/", "/") || a === c.replace("/docs/", "/") || a.replace("/docs/", "/") === c;
171
+ const { LinkComponent: g } = _(), k = A(null);
172
+ if ($(() => {
173
+ const i = k.current;
174
+ if (!i || !o) return;
175
+ const a = (r) => r ? r.startsWith("/") ? r : `/${r}` : "", s = (r, u) => {
176
+ const c = a(r), n = a(u);
177
+ return c === n || c.replace("/docs/", "/") === n.replace("/docs/", "/") || c === n.replace("/docs/", "/") || c.replace("/docs/", "/") === n;
177
178
  };
178
179
  requestAnimationFrame(() => {
179
- const l = e.querySelectorAll("a[href]");
180
- let m = null;
181
- for (const a of Array.from(l)) {
182
- const c = a.getAttribute("href");
183
- if (c && g(c, r)) {
184
- m = a;
180
+ const r = i.querySelectorAll("a[href]");
181
+ let u = null;
182
+ for (const c of Array.from(r)) {
183
+ const n = c.getAttribute("href");
184
+ if (n && s(n, o)) {
185
+ u = c;
185
186
  break;
186
187
  }
187
188
  }
188
- m && m.scrollIntoView({
189
+ u && u.scrollIntoView({
189
190
  behavior: "instant",
190
191
  block: "center",
191
192
  inline: "nearest"
192
193
  });
193
194
  });
194
- }, [r]), !t || t.items.length === 0)
195
+ }, [o]), !t || t.items.length === 0)
195
196
  return null;
196
- const C = x || "a";
197
- return /* @__PURE__ */ s(
197
+ const m = g || "a";
198
+ return /* @__PURE__ */ l(
198
199
  "nav",
199
200
  {
200
201
  id: "nav-tree",
201
- className: N(
202
+ className: y(
202
203
  "mint:flex mint:flex-col mint:h-full mint:min-h-0",
203
204
  f,
204
- u === "dark" && "dark"
205
+ h === "dark" && "dark"
205
206
  ),
206
207
  "aria-label": "Documentation navigation",
207
208
  children: [
208
- /* @__PURE__ */ n(
209
+ b && b.length > 0 && /* @__PURE__ */ e(
210
+ "div",
211
+ {
212
+ id: "nav-anchors",
213
+ className: "mint:shrink-0 mint:w-full mint:bg-[#fafafa] mint:dark:bg-[#0a0a0a] mint:border-b mint:border-[#e5e5e5] mint:dark:border-[#2e2e2e]",
214
+ children: /* @__PURE__ */ e("div", { className: "mint:flex mint:flex-col mint:py-3 mint:px-4 mint:gap-1", children: b.map((i, a) => {
215
+ const s = i.icon;
216
+ return /* @__PURE__ */ l(
217
+ m,
218
+ {
219
+ href: i.href,
220
+ className: "mint:group mint:flex mint:items-start mint:gap-3 mint:py-2 mint:px-3 mint:text-sm mint:rounded-lg mint:no-underline mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:bg-[#f0f0f0] mint:dark:hover:bg-[#1a1a1a] mint:hover:text-[#141414] mint:dark:hover:text-[#e5e7eb] mint:transition-colors mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2",
221
+ children: [
222
+ s && /* @__PURE__ */ e(s, { className: "mint:w-5 mint:h-5 mint:shrink-0 mint:mt-0.5 mint:text-[#6b7280] mint:dark:text-[#9ca3af] mint:group-hover:text-[#8251ee] mint:dark:group-hover:text-[#9263f1] mint:transition-colors" }),
223
+ /* @__PURE__ */ l("div", { className: "mint:flex mint:flex-col mint:gap-0.5 mint:min-w-0", children: [
224
+ /* @__PURE__ */ e("span", { className: "mint:font-medium mint:text-[#141414] mint:dark:text-[#ffffff] mint:group-hover:text-[#8251ee] mint:dark:group-hover:text-[#9263f1] mint:transition-colors", children: i.title }),
225
+ i.description && /* @__PURE__ */ e("span", { className: "mint:text-xs mint:text-[#6b7280] mint:dark:text-[#9ca3af] mint:leading-snug", children: i.description })
226
+ ] })
227
+ ]
228
+ },
229
+ a
230
+ );
231
+ }) })
232
+ }
233
+ ),
234
+ /* @__PURE__ */ e(
209
235
  "div",
210
236
  {
211
237
  id: "nav-tree-content",
212
- ref: p,
238
+ ref: k,
213
239
  className: "mint:flex-1 mint:overflow-y-auto mint:overflow-x-hidden mint:min-h-0 mint:[scrollbar-gutter:stable] mint:px-4 mint:[scrollbar-width:thin] mint:[scrollbar-color:rgba(0,0,0,0.2)_transparent] mint: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 mint:space-y-6 mint:py-4",
214
- children: t.items.map((e, o) => /* @__PURE__ */ n(
215
- w,
240
+ children: t.items.map((i, a) => /* @__PURE__ */ e(
241
+ N,
216
242
  {
217
- item: e,
218
- activeId: h,
219
- activeHref: r
243
+ item: i,
244
+ activeId: p,
245
+ activeHref: o
220
246
  },
221
- `${e.href}-${o}`
247
+ `${i.href}-${a}`
222
248
  ))
223
249
  }
224
250
  ),
225
- b && b.length > 0 && /* @__PURE__ */ s(
251
+ x && x.length > 0 && /* @__PURE__ */ l(
226
252
  "div",
227
253
  {
228
254
  id: "nav-tree-bottom-links",
229
255
  className: "mint:shrink-0 mint:w-full mint:bg-[#f0f0f0] mint:dark:bg-[#0f0f0f] mint:mt-auto",
230
256
  children: [
231
- /* @__PURE__ */ n("div", { className: "mint:h-[0.5px] mint:w-full mint:bg-[#d1d1d1] mint:dark:bg-[#666666]" }),
232
- /* @__PURE__ */ n("div", { className: "mint:flex mint:flex-col mint:py-3 mint:px-4", children: b.map((e, o) => {
233
- const g = e.icon;
234
- return /* @__PURE__ */ s(
235
- C,
257
+ /* @__PURE__ */ e("div", { className: "mint:h-[0.5px] mint:w-full mint:bg-[#d1d1d1] mint:dark:bg-[#666666]" }),
258
+ /* @__PURE__ */ e("div", { className: "mint:flex mint:flex-col mint:py-3 mint:px-4", children: x.map((i, a) => {
259
+ const s = i.icon;
260
+ return /* @__PURE__ */ l(
261
+ m,
236
262
  {
237
- href: e.href,
263
+ href: i.href,
238
264
  target: "_blank",
239
265
  rel: "noopener noreferrer",
240
266
  className: "mint:flex mint:items-center mint:py-2 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] mint:px-2 mint:[&>span]:flex mint:[&>span]:items-center mint:[&>span]:gap-2 mint:[&>svg:last-child]:hidden",
241
267
  children: [
242
- /* @__PURE__ */ n(g, { className: "mint:w-5 mint:h-5 mint:shrink-0" }),
243
- /* @__PURE__ */ n("span", { children: e.label })
268
+ /* @__PURE__ */ e(s, { className: "mint:w-5 mint:h-5 mint:shrink-0" }),
269
+ /* @__PURE__ */ e("span", { children: i.label })
244
270
  ]
245
271
  },
246
- o
272
+ a
247
273
  );
248
274
  }) })
249
275
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/components/nav-tree/index.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from \"react\";\nimport type { NavItem, NavTreeData } from \"../../types\";\nimport { useComponents } from \"../../context/components-context\";\nimport { cn } from \"../../utils/cn\";\nimport { MethodPill } from \"../Api/MethodPill\";\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 activeHref?: string;\n theme?: \"light\" | \"dark\" | \"system\";\n bottomLinks?: BottomLinkConfig[];\n}\n\ninterface TreeItemProps {\n item: NavItem;\n activeId?: string;\n level?: number;\n activeHref?: string;\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: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\nconst ACTIVE_ITEM_CLASSES = \"mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#242424] mint:dark:text-[#ffffff] mint:font-semibold\";\n\nfunction TreeItemComponent({ item, activeId, level = 0, activeHref }: TreeItemProps) {\n const hasChildren = item.children && item.children.length > 0;\n \n const normalizeHref = (href?: string): string => {\n if (!href) return '';\n const normalized = href.startsWith('/') ? href : `/${href}`;\n return normalized;\n };\n\n const compareHrefs = (href1?: string, href2?: string): boolean => {\n if (!href1 || !href2) return false;\n const norm1 = normalizeHref(href1);\n const norm2 = normalizeHref(href2);\n return norm1 === norm2 || \n norm1.replace('/docs/', '/') === norm2.replace('/docs/', '/') ||\n norm1 === norm2.replace('/docs/', '/') ||\n norm1.replace('/docs/', '/') === norm2;\n };\n\n const hasActiveChild = (navItem: NavItem): boolean => {\n if (compareHrefs(navItem.href, activeHref)) return true;\n if (navItem.children) {\n return navItem.children.some(hasActiveChild);\n }\n return false;\n };\n\n const shouldBeExpanded = level === 0 ? true : (item.expanded ?? false) || (hasChildren && hasActiveChild(item));\n const [isExpanded, setIsExpanded] = useState(shouldBeExpanded);\n \n useEffect(() => {\n if (hasChildren && hasActiveChild(item)) {\n setIsExpanded(true);\n }\n }, [activeHref]);\n\n const { LinkComponent } = useComponents();\n const isGroup = !item.href;\n const isActive = item.href && (compareHrefs(item.href, activeId) || compareHrefs(item.href, activeHref));\n const Icon = item.icon;\n\n if (isGroup && level === 0) {\n return (\n <div\n id=\"nav-group\"\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-2.5\">\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:pl-0\" 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 activeHref={activeHref}\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: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 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:ml-3 mint:flex mint:flex-col mint:pl-0\"\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 activeHref={activeHref}\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:bg-transparent mint:border-none mint:cursor-pointer mint:text-[#424242] mint:dark:text-[#9ca3af] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\",\n isActive ? ACTIVE_ITEM_CLASSES : '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]'\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:ml-3 mint:flex mint:flex-col mint:pl-0\"\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 activeHref={activeHref}\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:flex mint:items-center mint:gap-2 mint:py-2 mint:px-3 mint:text-[14px] mint:font-sans mint:font-normal mint:rounded-xl mint:no-underline mint:text-[#424242] mint:dark:text-[#9ca3af] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\",\n isActive ? ACTIVE_ITEM_CLASSES : '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]'\n )}\n >\n {isActive && (\n <div className=\"mint:absolute mint:left-0 mint:my-2.5 mint:rounded-full mint:w-[3px] mint:top-0 mint:bottom-0 mint:bg-[#8251ee] mint:dark:bg-[#9263f1]\"></div>\n )}\n {item.method && (\n <MethodPill\n isActive={!!isActive}\n method={item.method}\n shortMethod={true}\n />\n )}\n {item.toc_title}\n </LinkElement>\n </li>\n );\n}\n\nexport function NavTree({\n navTree,\n activeId,\n className = \"\",\n activeHref,\n theme,\n bottomLinks,\n}: NavTreeProps) {\n const { LinkComponent } = useComponents();\n const navContentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const navElement = navContentRef.current;\n if (!navElement || !activeHref) return;\n\n const normalizeHref = (href: string): string => {\n if (!href) return '';\n return href.startsWith('/') ? href : `/${href}`;\n };\n\n const compareHrefs = (href1: string, href2: string): boolean => {\n const norm1 = normalizeHref(href1);\n const norm2 = normalizeHref(href2);\n return norm1 === norm2 || \n norm1.replace('/docs/', '/') === norm2.replace('/docs/', '/') ||\n norm1 === norm2.replace('/docs/', '/') ||\n norm1.replace('/docs/', '/') === norm2;\n };\n\n requestAnimationFrame(() => {\n const allLinks = navElement.querySelectorAll('a[href]');\n let activeLink: HTMLElement | null = null;\n\n for (const link of Array.from(allLinks)) {\n const href = link.getAttribute('href');\n if (href && compareHrefs(href, activeHref)) {\n activeLink = link as HTMLElement;\n break;\n }\n }\n \n if (activeLink) {\n activeLink.scrollIntoView({\n behavior: \"instant\",\n block: \"center\",\n inline: \"nearest\"\n });\n }\n });\n }, [activeHref]);\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: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 ref={navContentRef}\n className=\"mint:flex-1 mint:overflow-y-auto mint:overflow-x-hidden mint:min-h-0 mint:[scrollbar-gutter:stable] mint:px-4 mint:[scrollbar-width:thin] mint:[scrollbar-color:rgba(0,0,0,0.2)_transparent] mint: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 mint:space-y-6 mint:py-4\"\n >\n {navTree.items.map((item, index) => (\n <TreeItemComponent\n key={`${item.href}-${index}`}\n item={item}\n activeId={activeId}\n activeHref={activeHref}\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-[0.5px] mint:w-full mint:bg-[#d1d1d1] mint:dark:bg-[#666666]\"></div>\n <div className=\"mint:flex mint:flex-col mint:py-3 mint:px-4\">\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:py-2 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] mint:px-2 mint:[&>span]:flex mint:[&>span]:items-center mint:[&>span]:gap-2 mint:[&>svg:last-child]:hidden\"\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","ACTIVE_ITEM_CLASSES","TreeItemComponent","item","activeId","level","activeHref","hasChildren","normalizeHref","href","compareHrefs","href1","href2","norm1","norm2","hasActiveChild","navItem","shouldBeExpanded","setIsExpanded","useState","useEffect","LinkComponent","useComponents","isGroup","isActive","Icon","jsxs","child","index","LinkElement","MethodPill","NavTree","navTree","className","theme","bottomLinks","navContentRef","useRef","navElement","allLinks","activeLink","link"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/nav-tree/index.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect } from \"react\";\nimport type { NavItem, NavTreeData, AnchorConfig } from \"../../types\";\nimport { useComponents } from \"../../context/components-context\";\nimport { cn } from \"../../utils/cn\";\nimport { MethodPill } from \"../Api/MethodPill\";\nexport { MobileNavTree } from \"./mobile-nav\";\nexport type { MobileNavTreeProps } from \"./mobile-nav\";\nexport type { AnchorConfig } from \"../../types\";\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 activeHref?: string;\n theme?: \"light\" | \"dark\" | \"system\";\n bottomLinks?: BottomLinkConfig[];\n anchors?: AnchorConfig[];\n}\n\ninterface TreeItemProps {\n item: NavItem;\n activeId?: string;\n level?: number;\n activeHref?: string;\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: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\nconst ACTIVE_ITEM_CLASSES = \"mint:bg-[#e6e6e6] mint:dark:bg-[#2e2e2e] mint:text-[#242424] mint:dark:text-[#ffffff] mint:font-semibold\";\n\nfunction TreeItemComponent({ item, activeId, level = 0, activeHref }: TreeItemProps) {\n const hasChildren = item.children && item.children.length > 0;\n \n const normalizeHref = (href?: string): string => {\n if (!href) return '';\n const normalized = href.startsWith('/') ? href : `/${href}`;\n return normalized;\n };\n\n const compareHrefs = (href1?: string, href2?: string): boolean => {\n if (!href1 || !href2) return false;\n const norm1 = normalizeHref(href1);\n const norm2 = normalizeHref(href2);\n return norm1 === norm2 || \n norm1.replace('/docs/', '/') === norm2.replace('/docs/', '/') ||\n norm1 === norm2.replace('/docs/', '/') ||\n norm1.replace('/docs/', '/') === norm2;\n };\n\n const hasActiveChild = (navItem: NavItem): boolean => {\n if (compareHrefs(navItem.href, activeHref)) return true;\n if (navItem.children) {\n return navItem.children.some(hasActiveChild);\n }\n return false;\n };\n\n const shouldBeExpanded = level === 0 ? true : (item.expanded ?? false) || (hasChildren && hasActiveChild(item));\n const [isExpanded, setIsExpanded] = useState(shouldBeExpanded);\n \n useEffect(() => {\n if (hasChildren && hasActiveChild(item)) {\n setIsExpanded(true);\n }\n }, [activeHref]);\n\n const { LinkComponent } = useComponents();\n const isGroup = !item.href;\n const isActive = item.href && (compareHrefs(item.href, activeId) || compareHrefs(item.href, activeHref));\n const Icon = item.icon;\n\n if (isGroup && level === 0) {\n return (\n <div\n id=\"nav-group\"\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-2.5\">\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:pl-0\" 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 activeHref={activeHref}\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: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 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:ml-3 mint:flex mint:flex-col mint:pl-0\"\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 activeHref={activeHref}\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:bg-transparent mint:border-none mint:cursor-pointer mint:text-[#424242] mint:dark:text-[#9ca3af] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\",\n isActive ? ACTIVE_ITEM_CLASSES : '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]'\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:ml-3 mint:flex mint:flex-col mint:pl-0\"\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 activeHref={activeHref}\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:flex mint:items-center mint:gap-2 mint:py-2 mint:px-3 mint:text-[14px] mint:font-sans mint:font-normal mint:rounded-xl mint:no-underline mint:text-[#424242] mint:dark:text-[#9ca3af] mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\",\n isActive ? ACTIVE_ITEM_CLASSES : '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]'\n )}\n >\n {isActive && (\n <div className=\"mint:absolute mint:left-0 mint:my-2.5 mint:rounded-full mint:w-[3px] mint:top-0 mint:bottom-0 mint:bg-[#8251ee] mint:dark:bg-[#9263f1]\"></div>\n )}\n {item.method && (\n <MethodPill\n isActive={!!isActive}\n method={item.method}\n shortMethod={true}\n />\n )}\n {item.toc_title}\n </LinkElement>\n </li>\n );\n}\n\nexport function NavTree({\n navTree,\n activeId,\n className = \"\",\n activeHref,\n theme,\n bottomLinks,\n anchors,\n}: NavTreeProps) {\n const { LinkComponent } = useComponents();\n const navContentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const navElement = navContentRef.current;\n if (!navElement || !activeHref) return;\n\n const normalizeHref = (href: string): string => {\n if (!href) return '';\n return href.startsWith('/') ? href : `/${href}`;\n };\n\n const compareHrefs = (href1: string, href2: string): boolean => {\n const norm1 = normalizeHref(href1);\n const norm2 = normalizeHref(href2);\n return norm1 === norm2 || \n norm1.replace('/docs/', '/') === norm2.replace('/docs/', '/') ||\n norm1 === norm2.replace('/docs/', '/') ||\n norm1.replace('/docs/', '/') === norm2;\n };\n\n requestAnimationFrame(() => {\n const allLinks = navElement.querySelectorAll('a[href]');\n let activeLink: HTMLElement | null = null;\n\n for (const link of Array.from(allLinks)) {\n const href = link.getAttribute('href');\n if (href && compareHrefs(href, activeHref)) {\n activeLink = link as HTMLElement;\n break;\n }\n }\n \n if (activeLink) {\n activeLink.scrollIntoView({\n behavior: \"instant\",\n block: \"center\",\n inline: \"nearest\"\n });\n }\n });\n }, [activeHref]);\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:h-full mint:min-h-0\",\n className,\n theme === \"dark\" && \"dark\"\n )}\n aria-label=\"Documentation navigation\"\n >\n {anchors && anchors.length > 0 && (\n <div\n id=\"nav-anchors\"\n className=\"mint:shrink-0 mint:w-full mint:bg-[#fafafa] mint:dark:bg-[#0a0a0a] mint:border-b mint:border-[#e5e5e5] mint:dark:border-[#2e2e2e]\"\n >\n <div className=\"mint:flex mint:flex-col mint:py-3 mint:px-4 mint:gap-1\">\n {anchors.map((anchor, index) => {\n const Icon = anchor.icon;\n return (\n <LinkElement\n key={index}\n href={anchor.href}\n className=\"mint:group mint:flex mint:items-start mint:gap-3 mint:py-2 mint:px-3 mint:text-sm mint:rounded-lg mint:no-underline mint:text-[#424242] mint:dark:text-[#9ca3af] mint:hover:bg-[#f0f0f0] mint:dark:hover:bg-[#1a1a1a] mint:hover:text-[#141414] mint:dark:hover:text-[#e5e7eb] mint:transition-colors mint:focus-visible:outline-2 mint:focus-visible:outline-[#643fb2] mint:focus-visible:outline-offset-2\"\n >\n {Icon && (\n <Icon className=\"mint:w-5 mint:h-5 mint:shrink-0 mint:mt-0.5 mint:text-[#6b7280] mint:dark:text-[#9ca3af] mint:group-hover:text-[#8251ee] mint:dark:group-hover:text-[#9263f1] mint:transition-colors\" />\n )}\n <div className=\"mint:flex mint:flex-col mint:gap-0.5 mint:min-w-0\">\n <span className=\"mint:font-medium mint:text-[#141414] mint:dark:text-[#ffffff] mint:group-hover:text-[#8251ee] mint:dark:group-hover:text-[#9263f1] mint:transition-colors\">\n {anchor.title}\n </span>\n {anchor.description && (\n <span className=\"mint:text-xs mint:text-[#6b7280] mint:dark:text-[#9ca3af] mint:leading-snug\">\n {anchor.description}\n </span>\n )}\n </div>\n </LinkElement>\n );\n })}\n </div>\n </div>\n )}\n <div\n id=\"nav-tree-content\"\n ref={navContentRef}\n className=\"mint:flex-1 mint:overflow-y-auto mint:overflow-x-hidden mint:min-h-0 mint:[scrollbar-gutter:stable] mint:px-4 mint:[scrollbar-width:thin] mint:[scrollbar-color:rgba(0,0,0,0.2)_transparent] mint: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 mint:space-y-6 mint:py-4\"\n >\n {navTree.items.map((item, index) => (\n <TreeItemComponent\n key={`${item.href}-${index}`}\n item={item}\n activeId={activeId}\n activeHref={activeHref}\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-[0.5px] mint:w-full mint:bg-[#d1d1d1] mint:dark:bg-[#666666]\"></div>\n <div className=\"mint:flex mint:flex-col mint:py-3 mint:px-4\">\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:py-2 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] mint:px-2 mint:[&>span]:flex mint:[&>span]:items-center mint:[&>span]:gap-2 mint:[&>svg:last-child]:hidden\"\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","ACTIVE_ITEM_CLASSES","TreeItemComponent","item","activeId","level","activeHref","hasChildren","normalizeHref","href","compareHrefs","href1","href2","norm1","norm2","hasActiveChild","navItem","shouldBeExpanded","setIsExpanded","useState","useEffect","LinkComponent","useComponents","isGroup","isActive","Icon","jsxs","child","index","LinkElement","MethodPill","NavTree","navTree","className","theme","bottomLinks","anchors","navContentRef","useRef","navElement","allLinks","activeLink","link","anchor"],"mappings":"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"}