@mintlify/msft-sdk 1.1.8 → 1.1.10

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 (57) hide show
  1. package/dist/components/Api/Api.js +42 -0
  2. package/dist/components/Api/Api.js.map +1 -0
  3. package/dist/components/Api/Api.module.css.js +22 -0
  4. package/dist/components/Api/Api.module.css.js.map +1 -0
  5. package/dist/components/Api/ApiReferenceProvider.js +19 -0
  6. package/dist/components/Api/ApiReferenceProvider.js.map +1 -0
  7. package/dist/components/Api/MethodPill.js +21 -0
  8. package/dist/components/Api/MethodPill.js.map +1 -0
  9. package/dist/components/Api/colors.js +117 -0
  10. package/dist/components/Api/colors.js.map +1 -0
  11. package/dist/components/content-components/code-block.js +94 -66
  12. package/dist/components/content-components/code-block.js.map +1 -1
  13. package/dist/components/content-components/default-components.js +8 -8
  14. package/dist/components/content-components/default-components.js.map +1 -1
  15. package/dist/components/content-components/details/details.js +1 -1
  16. package/dist/components/content-components/details/details.js.map +1 -1
  17. package/dist/components/content-components/home.js +14 -14
  18. package/dist/components/content-components/home.js.map +1 -1
  19. package/dist/components/content-components/param-name.js +1 -1
  20. package/dist/components/content-components/param-name.js.map +1 -1
  21. package/dist/components/content-components/table/index.js +1 -1
  22. package/dist/components/content-components/table/table-modal.js.map +1 -1
  23. package/dist/components/content-components/tabs/tab.js.map +1 -1
  24. package/dist/components/content-components/tabs/tabs.js +26 -22
  25. package/dist/components/content-components/tabs/tabs.js.map +1 -1
  26. package/dist/components/nav-tree/dropdown-menu.js +1 -1
  27. package/dist/components/nav-tree/dropdown-menu.js.map +1 -1
  28. package/dist/components/nav-tree/index.js +157 -90
  29. package/dist/components/nav-tree/index.js.map +1 -1
  30. package/dist/components/nav-tree/mobile-nav.js +2 -2
  31. package/dist/components/nav-tree/mobile-nav.js.map +1 -1
  32. package/dist/components/page-context-menu.js +72 -78
  33. package/dist/components/page-context-menu.js.map +1 -1
  34. package/dist/components/page.js +120 -0
  35. package/dist/components/page.js.map +1 -0
  36. package/dist/components/plain-text-page.js.map +1 -1
  37. package/dist/components/toc/index.js +8 -8
  38. package/dist/components/toc/index.js.map +1 -1
  39. package/dist/index.d.ts +238 -186
  40. package/dist/index.js +118 -36
  41. package/dist/index.js.map +1 -1
  42. package/dist/parser/convert-html-to-mdx.js +7 -6
  43. package/dist/parser/convert-html-to-mdx.js.map +1 -1
  44. package/dist/plugins/extract-headings.js +28 -0
  45. package/dist/plugins/extract-headings.js.map +1 -0
  46. package/dist/plugins/sanitize/rehype-unwrap-image-links.js +12 -0
  47. package/dist/plugins/sanitize/rehype-unwrap-image-links.js.map +1 -0
  48. package/dist/styles.css +1 -1
  49. package/dist/utils/cn.js +5 -5
  50. package/dist/utils/cn.js.map +1 -1
  51. package/package.json +21 -2
  52. package/dist/components/docsLayout.js +0 -62
  53. package/dist/components/docsLayout.js.map +0 -1
  54. package/dist/components/docsPage.js +0 -133
  55. package/dist/components/docsPage.js.map +0 -1
  56. package/dist/node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2732
  57. package/dist/node_modules/.pnpm/tailwind-merge@3.3.1/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
@@ -0,0 +1,42 @@
1
+ import { jsx as a, jsxs as s } from "react/jsx-runtime";
2
+ import { useApiReference as p } from "./ApiReferenceProvider.js";
3
+ import e from "./Api.module.css.js";
4
+ const d = {
5
+ get: { bg: "#E8F5E9", text: "#2E7D32" },
6
+ post: { bg: "#E3F2FD", text: "#1565C0" },
7
+ put: { bg: "#FFF3E0", text: "#E65100" },
8
+ patch: { bg: "#F3E5F5", text: "#6A1B9A" },
9
+ delete: { bg: "#FFEBEE", text: "#C62828" }
10
+ };
11
+ function g({ children: r }) {
12
+ var l;
13
+ const o = p(), i = o == null ? void 0 : o.apiReferenceData2;
14
+ if (!i || !i.operation)
15
+ return /* @__PURE__ */ a("div", { children: "No API data available" });
16
+ const { operation: t } = i, c = ((l = t.method) == null ? void 0 : l.toLowerCase()) || "get", n = d[c] || d.get;
17
+ return /* @__PURE__ */ s("div", { className: e.apiContainer, children: [
18
+ /* @__PURE__ */ s("div", { className: e.apiHeader, children: [
19
+ /* @__PURE__ */ s("div", { className: e.methodAndPath, children: [
20
+ /* @__PURE__ */ a(
21
+ "span",
22
+ {
23
+ className: e.methodPill,
24
+ style: {
25
+ backgroundColor: n.bg,
26
+ color: n.text
27
+ },
28
+ children: c.toUpperCase()
29
+ }
30
+ ),
31
+ /* @__PURE__ */ a("code", { className: e.pathCode, children: t.path })
32
+ ] }),
33
+ t.title && /* @__PURE__ */ a("h1", { className: e.title, children: t.title }),
34
+ t.description && /* @__PURE__ */ a("p", { className: e.description, children: t.description })
35
+ ] }),
36
+ r && /* @__PURE__ */ a("div", { className: e.apiContent, children: r })
37
+ ] });
38
+ }
39
+ export {
40
+ g as Api
41
+ };
42
+ //# sourceMappingURL=Api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Api.js","sources":["../../../src/components/Api/Api.tsx"],"sourcesContent":["import React from 'react';\nimport { useApiReference } from './ApiReferenceProvider';\nimport styles from './Api.module.css';\n\nconst METHOD_COLORS: Record<string, { bg: string; text: string }> = {\n get: { bg: '#E8F5E9', text: '#2E7D32' },\n post: { bg: '#E3F2FD', text: '#1565C0' },\n put: { bg: '#FFF3E0', text: '#E65100' },\n patch: { bg: '#F3E5F5', text: '#6A1B9A' },\n delete: { bg: '#FFEBEE', text: '#C62828' },\n};\n\nexport function Api({ children }: { children?: React.ReactNode }) {\n const context = useApiReference();\n const apiData = context?.apiReferenceData2;\n\n if (!apiData || !apiData.operation) {\n return <div>No API data available</div>;\n }\n\n const { operation } = apiData;\n const method = operation.method?.toLowerCase() || 'get';\n const methodColor = METHOD_COLORS[method] || METHOD_COLORS.get;\n\n return (\n <div className={styles.apiContainer}>\n <div className={styles.apiHeader}>\n <div className={styles.methodAndPath}>\n <span\n className={styles.methodPill}\n style={{\n backgroundColor: methodColor.bg,\n color: methodColor.text,\n }}\n >\n {method.toUpperCase()}\n </span>\n <code className={styles.pathCode}>{operation.path}</code>\n </div>\n {operation.title && (\n <h1 className={styles.title}>{operation.title}</h1>\n )}\n {operation.description && (\n <p className={styles.description}>{operation.description}</p>\n )}\n </div>\n {children && <div className={styles.apiContent}>{children}</div>}\n </div>\n );\n}\n"],"names":["METHOD_COLORS","Api","children","context","useApiReference","apiData","jsx","operation","method","_a","methodColor","jsxs","styles"],"mappings":";;;AAIA,MAAMA,IAA8D;AAAA,EAClE,KAAK,EAAE,IAAI,WAAW,MAAM,UAAA;AAAA,EAC5B,MAAM,EAAE,IAAI,WAAW,MAAM,UAAA;AAAA,EAC7B,KAAK,EAAE,IAAI,WAAW,MAAM,UAAA;AAAA,EAC5B,OAAO,EAAE,IAAI,WAAW,MAAM,UAAA;AAAA,EAC9B,QAAQ,EAAE,IAAI,WAAW,MAAM,UAAA;AACjC;AAEO,SAASC,EAAI,EAAE,UAAAC,KAA4C;;AAChE,QAAMC,IAAUC,EAAA,GACVC,IAAUF,KAAA,gBAAAA,EAAS;AAEzB,MAAI,CAACE,KAAW,CAACA,EAAQ;AACvB,WAAO,gBAAAC,EAAC,SAAI,UAAA,wBAAA,CAAqB;AAGnC,QAAM,EAAE,WAAAC,MAAcF,GAChBG,MAASC,IAAAF,EAAU,WAAV,gBAAAE,EAAkB,kBAAiB,OAC5CC,IAAcV,EAAcQ,CAAM,KAAKR,EAAc;AAE3D,SACE,gBAAAW,EAAC,OAAA,EAAI,WAAWC,EAAO,cACrB,UAAA;AAAA,IAAA,gBAAAD,EAAC,OAAA,EAAI,WAAWC,EAAO,WACrB,UAAA;AAAA,MAAA,gBAAAD,EAAC,OAAA,EAAI,WAAWC,EAAO,eACrB,UAAA;AAAA,QAAA,gBAAAN;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWM,EAAO;AAAA,YAClB,OAAO;AAAA,cACL,iBAAiBF,EAAY;AAAA,cAC7B,OAAOA,EAAY;AAAA,YAAA;AAAA,YAGpB,YAAO,YAAA;AAAA,UAAY;AAAA,QAAA;AAAA,0BAErB,QAAA,EAAK,WAAWE,EAAO,UAAW,YAAU,KAAA,CAAK;AAAA,MAAA,GACpD;AAAA,MACCL,EAAU,SACT,gBAAAD,EAAC,MAAA,EAAG,WAAWM,EAAO,OAAQ,YAAU,MAAA,CAAM;AAAA,MAE/CL,EAAU,eACT,gBAAAD,EAAC,KAAA,EAAE,WAAWM,EAAO,aAAc,YAAU,YAAA,CAAY;AAAA,IAAA,GAE7D;AAAA,IACCV,KAAY,gBAAAI,EAAC,OAAA,EAAI,WAAWM,EAAO,YAAa,UAAAV,EAAA,CAAS;AAAA,EAAA,GAC5D;AAEJ;"}
@@ -0,0 +1,22 @@
1
+ const t = "_apiContainer_98bpi_1", i = "_apiHeader_98bpi_5", e = "_methodAndPath_98bpi_9", o = "_methodPill_98bpi_16", n = "_pathCode_98bpi_26", p = "_title_98bpi_40", _ = "_description_98bpi_52", a = "_apiContent_98bpi_63", d = {
2
+ apiContainer: t,
3
+ apiHeader: i,
4
+ methodAndPath: e,
5
+ methodPill: o,
6
+ pathCode: n,
7
+ title: p,
8
+ description: _,
9
+ apiContent: a
10
+ };
11
+ export {
12
+ t as apiContainer,
13
+ a as apiContent,
14
+ i as apiHeader,
15
+ d as default,
16
+ _ as description,
17
+ e as methodAndPath,
18
+ o as methodPill,
19
+ n as pathCode,
20
+ p as title
21
+ };
22
+ //# sourceMappingURL=Api.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Api.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,19 @@
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 });
14
+ }
15
+ export {
16
+ s as ApiReferenceProvider2,
17
+ p as useApiReference
18
+ };
19
+ //# sourceMappingURL=ApiReferenceProvider.js.map
@@ -0,0 +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;"}
@@ -0,0 +1,21 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { getShortenedMethodName as c, getMethodColor as p } from "./colors.js";
3
+ import { cn as h } from "../../utils/cn.js";
4
+ const x = ({ isActive: i = !1, method: t, shortMethod: o = !1, className: n }) => {
5
+ const e = t.toUpperCase(), l = c(e), { activeNavPillBg: r, activeNavPillText: a, inactiveNavPillText: m, inactiveNavPillBg: d } = p(t);
6
+ return /* @__PURE__ */ s(
7
+ "span",
8
+ {
9
+ className: h(
10
+ "mint:px-1 mint:py-0.5 mint:rounded-md mint:text-[0.55rem] mint:leading-tight mint:font-bold",
11
+ i ? `${r} ${a}` : `${d} ${m}`,
12
+ n
13
+ ),
14
+ children: o ? l : e
15
+ }
16
+ );
17
+ };
18
+ export {
19
+ x as MethodPill
20
+ };
21
+ //# sourceMappingURL=MethodPill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodPill.js","sources":["../../../src/components/Api/MethodPill.tsx"],"sourcesContent":["'use client';\n\nimport { getMethodColor, getShortenedMethodName } from './colors';\nimport { cn } from '../../utils/cn';\n\ntype MethodPillProps = {\n isActive: boolean;\n method: 'get' | 'post' | 'put' | 'delete' | 'patch' | 'head' | 'options' | 'trace' | string;\n shortMethod?: boolean;\n className?: string;\n};\n\nexport const MethodPill = ({ isActive = false, method, shortMethod = false, className }: MethodPillProps) => {\n const upperMethod = method.toUpperCase();\n const shortenedMethod = getShortenedMethodName(upperMethod);\n const { activeNavPillBg, activeNavPillText, inactiveNavPillText, inactiveNavPillBg } =\n getMethodColor(method);\n return (\n <span\n className={cn(\n 'mint:px-1 mint:py-0.5 mint:rounded-md mint:text-[0.55rem] mint:leading-tight mint:font-bold',\n isActive\n ? `${activeNavPillBg} ${activeNavPillText}`\n : `${inactiveNavPillBg} ${inactiveNavPillText}`,\n className\n )}\n >\n {shortMethod ? shortenedMethod : upperMethod}\n </span>\n );\n};\n"],"names":["MethodPill","isActive","method","shortMethod","className","upperMethod","shortenedMethod","getShortenedMethodName","activeNavPillBg","activeNavPillText","inactiveNavPillText","inactiveNavPillBg","getMethodColor","jsx","cn"],"mappings":";;;AAYO,MAAMA,IAAa,CAAC,EAAE,UAAAC,IAAW,IAAO,QAAAC,GAAQ,aAAAC,IAAc,IAAO,WAAAC,QAAiC;AAC3G,QAAMC,IAAcH,EAAO,YAAA,GACrBI,IAAkBC,EAAuBF,CAAW,GACpD,EAAE,iBAAAG,GAAiB,mBAAAC,GAAmB,qBAAAC,GAAqB,mBAAAC,EAAA,IAC/DC,EAAeV,CAAM;AACvB,SACE,gBAAAW;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAb,IACI,GAAGO,CAAe,IAAIC,CAAiB,KACvC,GAAGE,CAAiB,IAAID,CAAmB;AAAA,QAC/CN;AAAA,MAAA;AAAA,MAGD,cAAcE,IAAkBD;AAAA,IAAA;AAAA,EAAA;AAGvC;"}
@@ -0,0 +1,117 @@
1
+ const i = (t) => {
2
+ switch (t == null ? void 0 : t.toUpperCase()) {
3
+ case "GET":
4
+ return {
5
+ activeNavPillBg: "mint:bg-[#2AB673]",
6
+ activeNavPillText: "mint:text-white",
7
+ inactiveNavPillText: "mint:text-green-700 mint:dark:text-green-400",
8
+ inactiveNavPillBg: "mint:bg-[#2AB673]/20",
9
+ paramStyle: "mint:border-green-700 mint:dark:border-green-400 mint:text-green-700 mint:dark:text-green-400"
10
+ };
11
+ case "POST":
12
+ return {
13
+ activeNavPillBg: "mint:bg-[#3064E3]",
14
+ activeNavPillText: "mint:text-white",
15
+ inactiveNavPillText: "mint:text-blue-700 mint:dark:text-blue-400",
16
+ inactiveNavPillBg: "mint:bg-[#3064E3]/20",
17
+ paramStyle: "mint:border-blue-700 mint:dark:border-blue-400 mint:text-blue-700 mint:dark:text-blue-400"
18
+ };
19
+ case "WEBHOOK":
20
+ return {
21
+ activeNavPillBg: "mint:bg-[#3064E3]",
22
+ activeNavPillText: "mint:text-white",
23
+ inactiveNavPillText: "mint:text-blue-700 mint:dark:text-blue-400",
24
+ inactiveNavPillBg: "mint:bg-[#3064E3]/20",
25
+ paramStyle: "mint:border-blue-700 mint:dark:border-blue-400 mint:text-blue-700 mint:dark:text-blue-400"
26
+ };
27
+ case "PUT":
28
+ return {
29
+ activeNavPillBg: "mint:bg-[#C28C30]",
30
+ activeNavPillText: "mint:text-white",
31
+ inactiveNavPillText: "mint:text-yellow-700 mint:dark:text-yellow-300",
32
+ inactiveNavPillBg: "mint:bg-[#C28C30]/20",
33
+ paramStyle: "mint:border-yellow-700 mint:dark:border-yellow-300 mint:text-yellow-700 mint:dark:text-yellow-300"
34
+ };
35
+ case "DELETE":
36
+ return {
37
+ activeNavPillBg: "mint:bg-[#CB3A32]",
38
+ activeNavPillText: "mint:text-white",
39
+ inactiveNavPillText: "mint:text-red-700 mint:dark:text-red-400",
40
+ inactiveNavPillBg: "mint:bg-[#CB3A32]/20",
41
+ paramStyle: "mint:border-red-700 mint:dark:border-red-400 mint:text-red-700 mint:dark:text-red-400"
42
+ };
43
+ case "OPTIONS":
44
+ return {
45
+ activeNavPillBg: "mint:bg-[#9341FB]",
46
+ activeNavPillText: "mint:text-white",
47
+ inactiveNavPillText: "mint:text-purple-700 mint:dark:text-purple-400",
48
+ inactiveNavPillBg: "mint:bg-[#9341FB]/20",
49
+ paramStyle: "mint:border-purple-700 mint:dark:border-purple-400 mint:text-purple-700 mint:dark:text-purple-400"
50
+ };
51
+ case "HEAD":
52
+ return {
53
+ activeNavPillBg: "mint:bg-cyan-700",
54
+ activeNavPillText: "mint:text-white",
55
+ inactiveNavPillText: "mint:text-cyan-700 mint:dark:text-cyan-400",
56
+ inactiveNavPillBg: "mint:bg-cyan-700/20",
57
+ paramStyle: "mint:border-cyan-700 mint:dark:border-cyan-400 mint:text-cyan-700 mint:dark:text-cyan-400"
58
+ };
59
+ case "PATCH":
60
+ return {
61
+ activeNavPillBg: "mint:bg-[#DA622B]",
62
+ activeNavPillText: "mint:text-white",
63
+ inactiveNavPillText: "mint:text-orange-700 mint:dark:text-orange-400",
64
+ inactiveNavPillBg: "mint:bg-[#DA622B]/20",
65
+ paramStyle: "mint:border-orange-700 mint:dark:border-orange-400 mint:text-orange-700 mint:dark:text-orange-400"
66
+ };
67
+ case "TRACE":
68
+ return {
69
+ activeNavPillBg: "mint:bg-[#BD30D3]",
70
+ activeNavPillText: "mint:text-white",
71
+ inactiveNavPillText: "mint:text-fuchsia-700 mint:dark:text-fuchsia-400",
72
+ inactiveNavPillBg: "mint:bg-[#BD30D3]/20",
73
+ paramStyle: "mint:border-fuchsia-700 mint:dark:border-fuchsia-400 mint:text-fuchsia-700 mint:dark:text-fuchsia-400"
74
+ };
75
+ case "WEBSOCKET":
76
+ return {
77
+ activeNavPillBg: "mint:bg-[#F54A00] mint:dark:bg-[#FF6900]",
78
+ activeNavPillText: "mint:text-white",
79
+ inactiveNavPillText: "mint:text-[#F54A00] mint:dark:text-[#FF6900]",
80
+ inactiveNavPillBg: "mint:bg-[#FFEDD4] mint:dark:bg-[#FF6900]/20",
81
+ paramStyle: "mint:border-[#F54A00] mint:dark:border-[#FF6900] mint:text-[#F54A00] mint:dark:text-[#FF6900]"
82
+ };
83
+ case "DEPRECATED":
84
+ return {
85
+ activeNavPillBg: "mint:bg-[#F7F7F8] mint:dark:bg-[#14151A]",
86
+ activeNavPillText: "mint:text-[#14151A] mint:dark:text-white",
87
+ inactiveNavPillText: "mint:text-[#14151A] mint:dark:text-white",
88
+ inactiveNavPillBg: "mint:bg-[#F7F7F8] mint:dark:bg-[#14151A]",
89
+ paramStyle: "mint:border-[#14151A] mint:dark:border-white mint:text-[#14151A] mint:dark:text-white"
90
+ };
91
+ default:
92
+ return {
93
+ activeNavPillBg: "mint:bg-gray-600",
94
+ activeNavPillText: "mint:text-white",
95
+ inactiveNavPillText: "mint:text-gray-700 mint:dark:text-gray-400",
96
+ inactiveNavPillBg: "mint:bg-gray-600/20",
97
+ paramStyle: "mint:border-gray-700 mint:dark:border-gray-400 mint:text-gray-700 mint:dark:text-gray-400"
98
+ };
99
+ }
100
+ }, a = (t) => {
101
+ const e = t == null ? void 0 : t.toUpperCase();
102
+ switch (e) {
103
+ case "DELETE":
104
+ return "DEL";
105
+ case "WEBHOOK":
106
+ return "HOOK";
107
+ case "WEBSOCKET":
108
+ return "WSS";
109
+ default:
110
+ return e;
111
+ }
112
+ };
113
+ export {
114
+ i as getMethodColor,
115
+ a as getShortenedMethodName
116
+ };
117
+ //# sourceMappingURL=colors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colors.js","sources":["../../../src/components/Api/colors.tsx"],"sourcesContent":["'use client';\n\nexport const getMethodColor = (method?: string) => {\n switch (method?.toUpperCase()) {\n case 'GET':\n return {\n activeNavPillBg: 'mint:bg-[#2AB673]',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-green-700 mint:dark:text-green-400',\n inactiveNavPillBg: 'mint:bg-[#2AB673]/20',\n paramStyle: 'mint:border-green-700 mint:dark:border-green-400 mint:text-green-700 mint:dark:text-green-400',\n };\n case 'POST':\n return {\n activeNavPillBg: 'mint:bg-[#3064E3]',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-blue-700 mint:dark:text-blue-400',\n inactiveNavPillBg: 'mint:bg-[#3064E3]/20',\n paramStyle: 'mint:border-blue-700 mint:dark:border-blue-400 mint:text-blue-700 mint:dark:text-blue-400',\n };\n case 'WEBHOOK':\n return {\n activeNavPillBg: 'mint:bg-[#3064E3]',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-blue-700 mint:dark:text-blue-400',\n inactiveNavPillBg: 'mint:bg-[#3064E3]/20',\n paramStyle: 'mint:border-blue-700 mint:dark:border-blue-400 mint:text-blue-700 mint:dark:text-blue-400',\n };\n case 'PUT':\n return {\n activeNavPillBg: 'mint:bg-[#C28C30]',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-yellow-700 mint:dark:text-yellow-300',\n inactiveNavPillBg: 'mint:bg-[#C28C30]/20',\n paramStyle: 'mint:border-yellow-700 mint:dark:border-yellow-300 mint:text-yellow-700 mint:dark:text-yellow-300',\n };\n case 'DELETE':\n return {\n activeNavPillBg: 'mint:bg-[#CB3A32]',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-red-700 mint:dark:text-red-400',\n inactiveNavPillBg: 'mint:bg-[#CB3A32]/20',\n paramStyle: 'mint:border-red-700 mint:dark:border-red-400 mint:text-red-700 mint:dark:text-red-400',\n };\n case 'OPTIONS':\n return {\n activeNavPillBg: 'mint:bg-[#9341FB]',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-purple-700 mint:dark:text-purple-400',\n inactiveNavPillBg: 'mint:bg-[#9341FB]/20',\n paramStyle: 'mint:border-purple-700 mint:dark:border-purple-400 mint:text-purple-700 mint:dark:text-purple-400',\n };\n case 'HEAD':\n return {\n activeNavPillBg: 'mint:bg-cyan-700',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-cyan-700 mint:dark:text-cyan-400',\n inactiveNavPillBg: 'mint:bg-cyan-700/20',\n paramStyle: 'mint:border-cyan-700 mint:dark:border-cyan-400 mint:text-cyan-700 mint:dark:text-cyan-400',\n };\n case 'PATCH':\n return {\n activeNavPillBg: 'mint:bg-[#DA622B]',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-orange-700 mint:dark:text-orange-400',\n inactiveNavPillBg: 'mint:bg-[#DA622B]/20',\n paramStyle: 'mint:border-orange-700 mint:dark:border-orange-400 mint:text-orange-700 mint:dark:text-orange-400',\n };\n case 'TRACE':\n return {\n activeNavPillBg: 'mint:bg-[#BD30D3]',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-fuchsia-700 mint:dark:text-fuchsia-400',\n inactiveNavPillBg: 'mint:bg-[#BD30D3]/20',\n paramStyle: 'mint:border-fuchsia-700 mint:dark:border-fuchsia-400 mint:text-fuchsia-700 mint:dark:text-fuchsia-400',\n };\n case 'WEBSOCKET':\n return {\n activeNavPillBg: 'mint:bg-[#F54A00] mint:dark:bg-[#FF6900]',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-[#F54A00] mint:dark:text-[#FF6900]',\n inactiveNavPillBg: 'mint:bg-[#FFEDD4] mint:dark:bg-[#FF6900]/20',\n paramStyle: 'mint:border-[#F54A00] mint:dark:border-[#FF6900] mint:text-[#F54A00] mint:dark:text-[#FF6900]',\n };\n case 'DEPRECATED':\n return {\n activeNavPillBg: 'mint:bg-[#F7F7F8] mint:dark:bg-[#14151A]',\n activeNavPillText: 'mint:text-[#14151A] mint:dark:text-white',\n inactiveNavPillText: 'mint:text-[#14151A] mint:dark:text-white',\n inactiveNavPillBg: 'mint:bg-[#F7F7F8] mint:dark:bg-[#14151A]',\n paramStyle: 'mint:border-[#14151A] mint:dark:border-white mint:text-[#14151A] mint:dark:text-white',\n };\n default:\n return {\n activeNavPillBg: 'mint:bg-gray-600',\n activeNavPillText: 'mint:text-white',\n inactiveNavPillText: 'mint:text-gray-700 mint:dark:text-gray-400',\n inactiveNavPillBg: 'mint:bg-gray-600/20',\n paramStyle: 'mint:border-gray-700 mint:dark:border-gray-400 mint:text-gray-700 mint:dark:text-gray-400',\n };\n }\n};\n\nexport const getShortenedMethodName = (method?: string): string | undefined => {\n const upperCase = method?.toUpperCase();\n switch (upperCase) {\n case 'DELETE':\n return 'DEL';\n case 'WEBHOOK':\n return 'HOOK';\n case 'WEBSOCKET':\n return 'WSS';\n default:\n return upperCase;\n }\n};\n"],"names":["getMethodColor","method","getShortenedMethodName","upperCase"],"mappings":"AAEO,MAAMA,IAAiB,CAACC,MAAoB;AACjD,UAAQA,KAAA,gBAAAA,EAAQ,eAAY;AAAA,IAC1B,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,IAEhB;AACE,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,QACnB,YAAY;AAAA,MAAA;AAAA,EACd;AAEN,GAEaC,IAAyB,CAACD,MAAwC;AAC7E,QAAME,IAAYF,KAAA,gBAAAA,EAAQ;AAC1B,UAAQE,GAAA;AAAA,IACN,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAOA;AAAA,EAAA;AAEb;"}
@@ -1,5 +1,5 @@
1
- import { jsxs as l, jsx as t } from "react/jsx-runtime";
2
- import v, { useState as y, useEffect as N } from "react";
1
+ import { jsxs as x, jsx as r } from "react/jsx-runtime";
2
+ import T, { useState as _, useEffect as I } from "react";
3
3
  import h from "prismjs";
4
4
  import "prismjs/components/prism-javascript.js";
5
5
  import "prismjs/components/prism-typescript.js";
@@ -10,99 +10,125 @@ import "prismjs/components/prism-markdown.js";
10
10
  import "prismjs/components/prism-csharp.js";
11
11
  import "prismjs/components/prism-powershell.js";
12
12
  import { getNodeText as j } from "../../utils/get-node-text.js";
13
- import { ClipboardCheckmarkRegular as T, Copy20Regular as A } from "@fluentui/react-icons";
14
- import { capitalize as R } from "../../utils/string.js";
15
- import { cn as u } from "../../utils/cn.js";
16
- function S() {
17
- const [e, r] = y(!1);
18
- return { isCopied: e, copy: async (c) => {
13
+ import { capitalize as A } from "../../utils/string.js";
14
+ import { cn as g } from "../../utils/cn.js";
15
+ import { ClipboardCheckmarkRegular as R, Copy20Regular as S } from "@fluentui/react-icons";
16
+ const E = ["image/png", "text/plain"];
17
+ function P() {
18
+ const [t, e] = _(!1), i = async (n) => {
19
19
  try {
20
- await navigator.clipboard.writeText(c), r(!0), setTimeout(() => r(!1), 2e3);
21
- } catch (s) {
22
- console.error("Failed to copy to clipboard:", s);
20
+ await navigator.clipboard.writeText(n), e(!0), setTimeout(() => e(!1), 2e3);
21
+ } catch (a) {
22
+ console.error("Failed to copy to clipboard:", a);
23
+ }
24
+ };
25
+ return { isCopied: t, copy: i, copyBlob: async (n, a) => {
26
+ try {
27
+ if (E.includes(a)) {
28
+ const o = await n.arrayBuffer(), m = new Blob([o], { type: a }), u = new ClipboardItem({
29
+ [a]: m
30
+ });
31
+ await navigator.clipboard.write([u]), e(!0), setTimeout(() => e(!1), 2e3);
32
+ } else {
33
+ const o = await n.text();
34
+ await i(o);
35
+ }
36
+ } catch (o) {
37
+ console.error("Failed to copy blob to clipboard:", o);
38
+ try {
39
+ const m = await n.text();
40
+ await i(m);
41
+ } catch (m) {
42
+ console.error("Failed to copy as text fallback:", m);
43
+ }
23
44
  }
24
45
  } };
25
46
  }
26
- function O({
27
- children: e,
28
- className: r,
29
- fileName: m,
30
- language: c
47
+ function F({ onClick: t, isCopied: e, showTooltip: i = !0 }) {
48
+ return /* @__PURE__ */ x("div", { className: "mint:relative", children: [
49
+ i && e && /* @__PURE__ */ r("div", { className: "mint:absolute mint:bottom-[calc(100%+0.5rem)] mint:left-1/2 mint:-translate-x-1/2 mint:bg-white mint:dark:bg-[#1a1a1a] mint:text-[#171717] mint:dark:text-[#fafafa] mint:px-2.5 mint:py-1.5 mint:rounded-md mint:text-xs mint:font-medium mint:whitespace-nowrap mint:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_2px_4px_-1px_rgba(0,0,0,0.06)] mint:dark:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.3),0_2px_4px_-1px_rgba(0,0,0,0.2)] mint:z-10 mint:animate-[fadeIn_0.15s_ease-out] mint:after:content-[''] mint:after:absolute mint:after:top-full mint:after:left-1/2 mint:after:-translate-x-1/2 mint:after:w-0 mint:after:h-0 mint:after:border-l-[6px] mint:after:border-l-transparent mint:after:border-r-[6px] mint:after:border-r-transparent mint:after:border-t-[6px] mint:after:border-t-white mint:dark:after:border-t-[#1a1a1a]", children: "Copied!" }),
50
+ /* @__PURE__ */ r(
51
+ "button",
52
+ {
53
+ onClick: t,
54
+ className: "mint:flex mint:items-center mint:gap-1.5 mint:px-2 mint:py-1 mint:text-xs mint:text-[#737373] mint:dark:text-[#a3a3a3] mint:rounded mint:transition-colors mint:duration-150 mint:border-none mint:bg-transparent mint:cursor-pointer mint:hover:text-[#9263f1] mint:dark:hover:text-[#c9aaf9]",
55
+ "aria-label": e ? "Copied" : "Copy code",
56
+ children: e ? /* @__PURE__ */ r(R, { className: "mint:w-5 mint:h-5 mint:text-[#737373] mint:dark:text-[#a3a3a3]" }) : /* @__PURE__ */ r(S, { className: "mint:w-5 mint:h-5" })
57
+ }
58
+ )
59
+ ] });
60
+ }
61
+ function W({
62
+ children: t,
63
+ className: e,
64
+ fileName: i,
65
+ language: y,
66
+ blob: n,
67
+ contentType: a
31
68
  }) {
32
- const [s, b] = y(""), { isCopied: f, copy: _ } = S(), i = c || (r == null ? void 0 : r.replace(/^language-/, "")) || "text", a = j(e), k = !!m, x = v.useMemo(() => {
33
- var p, g;
34
- if (typeof e != "object" || e == null)
69
+ const [o, m] = _(""), { isCopied: u, copy: k, copyBlob: C } = P(), s = y || (e == null ? void 0 : e.replace(/^language-/, "")) || "text", c = j(t), v = !!i, b = T.useMemo(() => {
70
+ var d, w;
71
+ if (typeof t != "object" || t == null)
35
72
  return !1;
36
- const o = Array.isArray(e) ? e : [e];
37
- for (const n of o)
38
- if (typeof n == "object" && n != null && "props" in n && ((p = n.props) != null && p.children)) {
39
- const w = Array.isArray(n.props.children) ? n.props.children : [n.props.children];
40
- for (const d of w)
41
- if (typeof d == "object" && d != null && "props" in d && ((g = d.props) != null && g.className))
73
+ const p = Array.isArray(t) ? t : [t];
74
+ for (const l of p)
75
+ if (typeof l == "object" && l != null && "props" in l && ((d = l.props) != null && d.children)) {
76
+ const B = Array.isArray(l.props.children) ? l.props.children : [l.props.children];
77
+ for (const f of B)
78
+ if (typeof f == "object" && f != null && "props" in f && ((w = f.props) != null && w.className))
42
79
  return !0;
43
80
  }
44
81
  return !1;
45
- }, [e]);
46
- N(() => {
47
- if (!x)
82
+ }, [t]);
83
+ I(() => {
84
+ if (!b)
48
85
  try {
49
- const o = h.languages[i] || h.languages.plaintext, p = h.highlight(a, o, i);
50
- b(p);
51
- } catch (o) {
52
- console.error("Failed to highlight code:", o), b(a);
86
+ const p = h.languages[s] || h.languages.plaintext, d = h.highlight(c, p, s);
87
+ m(d);
88
+ } catch (p) {
89
+ console.error("Failed to highlight code:", p), m(c);
53
90
  }
54
- }, [a, i, x]);
55
- const C = () => {
56
- _(a);
91
+ }, [c, s, b]);
92
+ const N = () => {
93
+ n && a ? C(n, a) : k(c);
57
94
  };
58
- return /* @__PURE__ */ l(
95
+ return /* @__PURE__ */ x(
59
96
  "div",
60
97
  {
61
- className: k ? "mint:flex mint:flex-col mint:gap-2 mint:mt-4 mint:mb-4 mint:border mint:border-[#e5e5e5] mint:dark:border-[#262626] mint:pt-2.5 mint:px-2 mint:pb-2 mint:rounded-xl mint:overflow-hidden" : void 0,
98
+ className: v ? "flex flex-col gap-2 mt-4 mb-4 border border-[#e5e5e5] dark:border-[#262626] pt-2.5 px-2 pb-2 rounded-xl overflow-hidden" : void 0,
62
99
  children: [
63
- m && /* @__PURE__ */ t("span", { className: "mint:text-sm mint:font-medium mint:px-2", children: m }),
64
- /* @__PURE__ */ l("div", { className: "not-prose mint:relative mint:rounded-xl mint:bg-[#f5f5f5] mint:dark:bg-[#141414]", children: [
65
- /* @__PURE__ */ l("div", { className: "mint:flex mint:items-center mint:justify-between mint:px-3 mint:pt-2", children: [
66
- /* @__PURE__ */ t("span", { className: "mint:text-xs mint:font-medium mint:text-[#737373] mint:dark:text-[#a3a3a3]", children: R(i) }),
67
- /* @__PURE__ */ l("div", { className: "mint:relative", children: [
68
- f && /* @__PURE__ */ t("div", { className: "mint:absolute mint:bottom-[calc(100%+0.5rem)] mint:left-1/2 mint:-translate-x-1/2 mint:bg-white mint:dark:bg-[#1a1a1a] mint:text-[#171717] mint:dark:text-[#fafafa] mint:px-2.5 mint:py-1.5 mint:rounded-md mint:text-xs mint:font-medium mint:whitespace-nowrap mint:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_2px_4px_-1px_rgba(0,0,0,0.06)] mint:dark:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.3),0_2px_4px_-1px_rgba(0,0,0,0.2)] mint:z-10 mint:animate-[fadeIn_0.15s_ease-out] mint:after:content-[''] mint:after:absolute mint:after:top-full mint:after:left-1/2 mint:after:-translate-x-1/2 mint:after:w-0 mint:after:h-0 mint:after:border-l-[6px] mint:after:border-l-transparent mint:after:border-r-[6px] mint:after:border-r-transparent mint:after:border-t-[6px] mint:after:border-t-white mint:dark:after:border-t-[#1a1a1a]", children: "Copied!" }),
69
- /* @__PURE__ */ t(
70
- "button",
71
- {
72
- onClick: C,
73
- className: "mint:flex mint:items-center mint:gap-1.5 mint:px-2 mint:py-1 mint:text-xs mint:text-[#737373] mint:dark:text-[#a3a3a3] mint:rounded mint:transition-colors mint:duration-150 mint:border-none mint:bg-transparent mint:cursor-pointer mint:hover:text-[#9263f1] mint:dark:hover:text-[#c9aaf9]",
74
- "aria-label": f ? "Copied" : "Copy code",
75
- children: f ? /* @__PURE__ */ t(T, { className: "mint:w-5 mint:h-5 mint:text-[#737373] mint:dark:text-[#a3a3a3]" }) : /* @__PURE__ */ t(A, { className: "mint:w-5 mint:h-5" })
76
- }
77
- )
78
- ] })
100
+ i && /* @__PURE__ */ r("span", { className: "mint:text-sm mint:font-medium mint:px-2", children: i }),
101
+ /* @__PURE__ */ x("div", { className: "mint:not-prose mint:relative mint:rounded-xl mint:bg-[#f5f5f5] mint:dark:bg-[#141414]", children: [
102
+ /* @__PURE__ */ x("div", { className: "mint:flex mint:items-center mint:justify-between mint:px-3 mint:pt-2", children: [
103
+ /* @__PURE__ */ r("span", { className: "mint:text-xs mint:font-medium mint:text-[#737373] mint:dark:text-[#a3a3a3]", children: A(s) }),
104
+ /* @__PURE__ */ r(F, { onClick: N, isCopied: u })
79
105
  ] }),
80
- /* @__PURE__ */ t("div", { className: "code-scrollbar mint:overflow-x-auto", children: /* @__PURE__ */ t("pre", { className: "mint:px-3 mint:pb-3 mint:pt-2 mint:m-0 mint:whitespace-pre mint:text-sm", children: x ? /* @__PURE__ */ t(
106
+ /* @__PURE__ */ r("div", { className: "mint:code-scrollbar mint:overflow-x-auto", children: /* @__PURE__ */ r("pre", { className: "mint:px-3 mint:pb-3 mint:pt-2 mint:m-0 mint:whitespace-pre mint:text-sm", children: b ? /* @__PURE__ */ r(
81
107
  "code",
82
108
  {
83
- className: u(
84
- `language-${i}`,
109
+ className: g(
110
+ `language-${s}`,
85
111
  "mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]"
86
112
  ),
87
- children: e
113
+ children: t
88
114
  }
89
- ) : s ? /* @__PURE__ */ t(
115
+ ) : o ? /* @__PURE__ */ r(
90
116
  "code",
91
117
  {
92
- className: u(
93
- `language-${i}`,
118
+ className: g(
119
+ `language-${s}`,
94
120
  "mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]"
95
121
  ),
96
- dangerouslySetInnerHTML: { __html: s }
122
+ dangerouslySetInnerHTML: { __html: o }
97
123
  }
98
- ) : /* @__PURE__ */ t(
124
+ ) : /* @__PURE__ */ r(
99
125
  "code",
100
126
  {
101
- className: u(
102
- `language-${i}`,
127
+ className: g(
128
+ `language-${s}`,
103
129
  "mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]"
104
130
  ),
105
- children: a
131
+ children: c
106
132
  }
107
133
  ) }) })
108
134
  ] })
@@ -111,6 +137,8 @@ function O({
111
137
  );
112
138
  }
113
139
  export {
114
- O as CodeBlock
140
+ W as CodeBlock,
141
+ F as CopyIconButton,
142
+ P as useCopyToClipboard
115
143
  };
116
144
  //# sourceMappingURL=code-block.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.js","sources":["../../../src/components/content-components/code-block.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\nimport Prism from \"prismjs\";\nimport \"prismjs/components/prism-javascript.js\";\nimport \"prismjs/components/prism-typescript.js\";\nimport \"prismjs/components/prism-python.js\";\nimport \"prismjs/components/prism-bash.js\";\nimport \"prismjs/components/prism-json.js\";\nimport \"prismjs/components/prism-markdown.js\";\nimport \"prismjs/components/prism-csharp.js\";\nimport \"prismjs/components/prism-powershell.js\";\nimport { getNodeText } from \"../../utils/get-node-text\";\nimport {\n Copy20Regular,\n ClipboardCheckmarkRegular,\n} from \"@fluentui/react-icons\";\nimport { capitalize } from \"../../utils/string\";\nimport { cn } from \"../../utils/cn\";\n\ninterface CodeBlockProps {\n children: React.ReactNode;\n className?: string;\n language?: string;\n fileName?: string;\n}\n\nfunction useCopyToClipboard() {\n const [isCopied, setIsCopied] = useState(false);\n\n const copy = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n } catch (error) {\n console.error(\"Failed to copy to clipboard:\", error);\n }\n };\n\n return { isCopied, copy };\n}\n\nexport function CodeBlock({\n children,\n className,\n fileName,\n language,\n}: CodeBlockProps) {\n const [highlightedCode, setHighlightedCode] = useState<string>(\"\");\n const { isCopied, copy } = useCopyToClipboard();\n const lang = language || className?.replace(/^language-/, \"\") || \"text\";\n const codeText = getNodeText(children);\n const showContainer = !!fileName;\n\n const isSSRHighlighted = React.useMemo(() => {\n if (typeof children !== \"object\" || children == null) {\n return false;\n }\n\n const childrenArray = Array.isArray(children) ? children : [children];\n for (const child of childrenArray) {\n if (\n typeof child === \"object\" &&\n child != null &&\n \"props\" in child &&\n child.props?.children\n ) {\n const codeChildren = Array.isArray(child.props.children)\n ? child.props.children\n : [child.props.children];\n\n for (const codeChild of codeChildren) {\n if (\n typeof codeChild === \"object\" &&\n codeChild != null &&\n \"props\" in codeChild &&\n codeChild.props?.className\n ) {\n return true;\n }\n }\n }\n }\n return false;\n }, [children]);\n\n useEffect(() => {\n if (isSSRHighlighted) {\n return;\n }\n\n try {\n const grammar = Prism.languages[lang] || Prism.languages.plaintext;\n const html = Prism.highlight(codeText, grammar, lang);\n setHighlightedCode(html);\n } catch (error) {\n console.error(\"Failed to highlight code:\", error);\n setHighlightedCode(codeText);\n }\n }, [codeText, lang, isSSRHighlighted]);\n\n const handleCopy = () => {\n copy(codeText);\n };\n\n return (\n <div\n className={\n showContainer\n ? \"mint:flex mint:flex-col mint:gap-2 mint:mt-4 mint:mb-4 mint:border mint:border-[#e5e5e5] mint:dark:border-[#262626] mint:pt-2.5 mint:px-2 mint:pb-2 mint:rounded-xl mint:overflow-hidden\"\n : undefined\n }\n >\n {fileName && (\n <span className=\"mint:text-sm mint:font-medium mint:px-2\">\n {fileName}\n </span>\n )}\n <div className=\"not-prose mint:relative mint:rounded-xl mint:bg-[#f5f5f5] mint:dark:bg-[#141414]\">\n <div className=\"mint:flex mint:items-center mint:justify-between mint:px-3 mint:pt-2\">\n <span className=\"mint:text-xs mint:font-medium mint:text-[#737373] mint:dark:text-[#a3a3a3]\">\n {capitalize(lang)}\n </span>\n <div className=\"mint:relative\">\n {isCopied && (\n <div className=\"mint:absolute mint:bottom-[calc(100%+0.5rem)] mint:left-1/2 mint:-translate-x-1/2 mint:bg-white mint:dark:bg-[#1a1a1a] mint:text-[#171717] mint:dark:text-[#fafafa] mint:px-2.5 mint:py-1.5 mint:rounded-md mint:text-xs mint:font-medium mint:whitespace-nowrap mint:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_2px_4px_-1px_rgba(0,0,0,0.06)] mint:dark:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.3),0_2px_4px_-1px_rgba(0,0,0,0.2)] mint:z-10 mint:animate-[fadeIn_0.15s_ease-out] mint:after:content-[''] mint:after:absolute mint:after:top-full mint:after:left-1/2 mint:after:-translate-x-1/2 mint:after:w-0 mint:after:h-0 mint:after:border-l-[6px] mint:after:border-l-transparent mint:after:border-r-[6px] mint:after:border-r-transparent mint:after:border-t-[6px] mint:after:border-t-white mint:dark:after:border-t-[#1a1a1a]\">\n Copied!\n </div>\n )}\n <button\n onClick={handleCopy}\n className=\"mint:flex mint:items-center mint:gap-1.5 mint:px-2 mint:py-1 mint:text-xs mint:text-[#737373] mint:dark:text-[#a3a3a3] mint:rounded mint:transition-colors mint:duration-150 mint:border-none mint:bg-transparent mint:cursor-pointer mint:hover:text-[#9263f1] mint:dark:hover:text-[#c9aaf9]\"\n aria-label={isCopied ? \"Copied\" : \"Copy code\"}\n >\n {isCopied ? (\n <ClipboardCheckmarkRegular className=\"mint:w-5 mint:h-5 mint:text-[#737373] mint:dark:text-[#a3a3a3]\" />\n ) : (\n <Copy20Regular className=\"mint:w-5 mint:h-5\" />\n )}\n </button>\n </div>\n </div>\n <div className=\"code-scrollbar mint:overflow-x-auto\">\n <pre className=\"mint:px-3 mint:pb-3 mint:pt-2 mint:m-0 mint:whitespace-pre mint:text-sm\">\n {isSSRHighlighted ? (\n <code\n className={cn(\n `language-${lang}`,\n \"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]\"\n )}\n >\n {children}\n </code>\n ) : highlightedCode ? (\n <code\n className={cn(\n `language-${lang}`,\n \"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]\"\n )}\n dangerouslySetInnerHTML={{ __html: highlightedCode }}\n />\n ) : (\n <code\n className={cn(\n `language-${lang}`,\n \"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]\"\n )}\n >\n {codeText}\n </code>\n )}\n </pre>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["useCopyToClipboard","isCopied","setIsCopied","useState","text","error","CodeBlock","children","className","fileName","language","highlightedCode","setHighlightedCode","copy","lang","codeText","getNodeText","showContainer","isSSRHighlighted","React","childrenArray","child","_a","codeChildren","codeChild","_b","useEffect","grammar","Prism","html","handleCopy","jsxs","jsx","capitalize","ClipboardCheckmarkRegular","Copy20Regular","cn"],"mappings":"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"}
1
+ {"version":3,"file":"code-block.js","sources":["../../../src/components/content-components/code-block.tsx"],"sourcesContent":["'use client';\n\nimport React, { useEffect, useState } from \"react\";\nimport Prism from \"prismjs\";\nimport \"prismjs/components/prism-javascript.js\";\nimport \"prismjs/components/prism-typescript.js\";\nimport \"prismjs/components/prism-python.js\";\nimport \"prismjs/components/prism-bash.js\";\nimport \"prismjs/components/prism-json.js\";\nimport \"prismjs/components/prism-markdown.js\";\nimport \"prismjs/components/prism-csharp.js\";\nimport \"prismjs/components/prism-powershell.js\";\nimport { getNodeText } from \"../../utils/get-node-text\";\nimport { capitalize } from \"../../utils/string\";\nimport { cn } from \"../../utils/cn\";\nimport {\n Copy20Regular,\n ClipboardCheckmarkRegular,\n} from \"@fluentui/react-icons\";\n\nconst SUPPORTED_CLIPBOARD_CONTENT_TYPES = [\"image/png\", \"text/plain\"];\n\n// Hook for clipboard operations\nexport function useCopyToClipboard() {\n const [isCopied, setIsCopied] = useState(false);\n\n const copy = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n } catch (error) {\n console.error(\"Failed to copy to clipboard:\", error);\n }\n };\n\n const copyBlob = async (blob: Blob, contentType: string) => {\n try {\n // image/png, text/plain, and text/html are the only filetypes supported in the chromium\n // clipboard - however, text/html crashes chrome for some reason\n if (SUPPORTED_CLIPBOARD_CONTENT_TYPES.includes(contentType)) {\n const buffer = await blob.arrayBuffer();\n const newBlob = new Blob([buffer], { type: contentType });\n const clipboardItem = new ClipboardItem({\n [contentType]: newBlob,\n });\n await navigator.clipboard.write([clipboardItem]);\n setIsCopied(true);\n setTimeout(() => setIsCopied(false), 2000);\n } else {\n // Fallback to text copy for unsupported types\n const text = await blob.text();\n await copy(text);\n }\n } catch (error) {\n console.error(\"Failed to copy blob to clipboard:\", error);\n // Fallback to text copy if blob copy fails\n try {\n const text = await blob.text();\n await copy(text);\n } catch (fallbackError) {\n console.error(\"Failed to copy as text fallback:\", fallbackError);\n }\n }\n };\n\n return { isCopied, copy, copyBlob };\n}\n\n// Base copy icon button component\ninterface CopyIconButtonProps {\n onClick: () => void;\n isCopied: boolean;\n showTooltip?: boolean;\n}\n\nexport function CopyIconButton({ onClick, isCopied, showTooltip = true }: CopyIconButtonProps) {\n return (\n <div className=\"mint:relative\">\n {showTooltip && isCopied && (\n <div className=\"mint:absolute mint:bottom-[calc(100%+0.5rem)] mint:left-1/2 mint:-translate-x-1/2 mint:bg-white mint:dark:bg-[#1a1a1a] mint:text-[#171717] mint:dark:text-[#fafafa] mint:px-2.5 mint:py-1.5 mint:rounded-md mint:text-xs mint:font-medium mint:whitespace-nowrap mint:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.1),0_2px_4px_-1px_rgba(0,0,0,0.06)] mint:dark:shadow-[0_4px_6px_-1px_rgba(0,0,0,0.3),0_2px_4px_-1px_rgba(0,0,0,0.2)] mint:z-10 mint:animate-[fadeIn_0.15s_ease-out] mint:after:content-[''] mint:after:absolute mint:after:top-full mint:after:left-1/2 mint:after:-translate-x-1/2 mint:after:w-0 mint:after:h-0 mint:after:border-l-[6px] mint:after:border-l-transparent mint:after:border-r-[6px] mint:after:border-r-transparent mint:after:border-t-[6px] mint:after:border-t-white mint:dark:after:border-t-[#1a1a1a]\">\n Copied!\n </div>\n )}\n <button\n onClick={onClick}\n className=\"mint:flex mint:items-center mint:gap-1.5 mint:px-2 mint:py-1 mint:text-xs mint:text-[#737373] mint:dark:text-[#a3a3a3] mint:rounded mint:transition-colors mint:duration-150 mint:border-none mint:bg-transparent mint:cursor-pointer mint:hover:text-[#9263f1] mint:dark:hover:text-[#c9aaf9]\"\n aria-label={isCopied ? \"Copied\" : \"Copy code\"}\n >\n {isCopied ? (\n <ClipboardCheckmarkRegular className=\"mint:w-5 mint:h-5 mint:text-[#737373] mint:dark:text-[#a3a3a3]\" />\n ) : (\n <Copy20Regular className=\"mint:w-5 mint:h-5\" />\n )}\n </button>\n </div>\n );\n}\n\n// Convenience component that handles text copying\ninterface CopyToClipboardButtonProps {\n textToCopy: string;\n showTooltip?: boolean;\n}\n\nexport function CopyToClipboardButton({ textToCopy, showTooltip = true }: CopyToClipboardButtonProps) {\n const { isCopied, copy } = useCopyToClipboard();\n\n const handleCopy = () => {\n copy(textToCopy);\n };\n\n return <CopyIconButton onClick={handleCopy} isCopied={isCopied} showTooltip={showTooltip} />;\n}\n\n// Convenience component that handles blob/data copying\ninterface CopyDataToClipboardButtonProps {\n data: {\n type: 'image' | 'audio' | 'video' | 'other';\n blob: Blob;\n contentType?: string;\n content?: string;\n };\n showTooltip?: boolean;\n}\n\nexport function CopyDataToClipboardButton({ data, showTooltip = true }: CopyDataToClipboardButtonProps) {\n const { isCopied, copy, copyBlob } = useCopyToClipboard();\n\n const handleCopy = () => {\n // Check if we can copy as blob (for images, etc.)\n if (data.contentType && SUPPORTED_CLIPBOARD_CONTENT_TYPES.includes(data.contentType)) {\n copyBlob(data.blob, data.contentType);\n } else if (data.type === 'other' && data.content) {\n // For text content, copy as text\n copy(data.content);\n } else {\n console.error('Unsupported content type for clipboard');\n }\n };\n\n return <CopyIconButton onClick={handleCopy} isCopied={isCopied} showTooltip={showTooltip} />;\n}\n\ninterface CodeBlockProps {\n children: React.ReactNode;\n className?: string;\n language?: string;\n fileName?: string;\n // Support for copying blobs (images, etc.)\n blob?: Blob;\n contentType?: string;\n}\n\nexport function CodeBlock({\n children,\n className,\n fileName,\n language,\n blob,\n contentType,\n}: CodeBlockProps) {\n const [highlightedCode, setHighlightedCode] = useState<string>(\"\");\n const { isCopied, copy, copyBlob } = useCopyToClipboard();\n const lang = language || className?.replace(/^language-/, \"\") || \"text\";\n const codeText = getNodeText(children);\n const showContainer = !!fileName;\n\n const isSSRHighlighted = React.useMemo(() => {\n if (typeof children !== \"object\" || children == null) {\n return false;\n }\n\n const childrenArray = Array.isArray(children) ? children : [children];\n for (const child of childrenArray) {\n if (\n typeof child === \"object\" &&\n child != null &&\n \"props\" in child &&\n child.props?.children\n ) {\n const codeChildren = Array.isArray(child.props.children)\n ? child.props.children\n : [child.props.children];\n\n for (const codeChild of codeChildren) {\n if (\n typeof codeChild === \"object\" &&\n codeChild != null &&\n \"props\" in codeChild &&\n codeChild.props?.className\n ) {\n return true;\n }\n }\n }\n }\n return false;\n }, [children]);\n\n useEffect(() => {\n if (isSSRHighlighted) {\n return;\n }\n\n try {\n const grammar = Prism.languages[lang] || Prism.languages.plaintext;\n const html = Prism.highlight(codeText, grammar, lang);\n setHighlightedCode(html);\n } catch (error) {\n console.error(\"Failed to highlight code:\", error);\n setHighlightedCode(codeText);\n }\n }, [codeText, lang, isSSRHighlighted]);\n\n const handleCopy = () => {\n // If blob and contentType are provided, use blob copying\n if (blob && contentType) {\n copyBlob(blob, contentType);\n } else {\n // Otherwise, use text copying\n copy(codeText);\n }\n };\n\n return (\n <div\n // eslint-disable-next-line local/enforce-cn-classname\n className={\n showContainer\n ? \"flex flex-col gap-2 mt-4 mb-4 border border-[#e5e5e5] dark:border-[#262626] pt-2.5 px-2 pb-2 rounded-xl overflow-hidden\"\n : undefined\n }\n >\n {fileName && (\n <span className=\"mint:text-sm mint:font-medium mint:px-2\">\n {fileName}\n </span>\n )}\n <div className=\"mint:not-prose mint:relative mint:rounded-xl mint:bg-[#f5f5f5] mint:dark:bg-[#141414]\">\n <div className=\"mint:flex mint:items-center mint:justify-between mint:px-3 mint:pt-2\">\n <span className=\"mint:text-xs mint:font-medium mint:text-[#737373] mint:dark:text-[#a3a3a3]\">\n {capitalize(lang)}\n </span>\n <CopyIconButton onClick={handleCopy} isCopied={isCopied} />\n </div>\n <div className=\"mint:code-scrollbar mint:overflow-x-auto\">\n <pre className=\"mint:px-3 mint:pb-3 mint:pt-2 mint:m-0 mint:whitespace-pre mint:text-sm\">\n {isSSRHighlighted ? (\n <code\n className={cn(\n `language-${lang}`,\n \"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]\"\n )}\n >\n {children}\n </code>\n ) : highlightedCode ? (\n <code\n className={cn(\n `language-${lang}`,\n \"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]\"\n )}\n dangerouslySetInnerHTML={{ __html: highlightedCode }}\n />\n ) : (\n <code\n className={cn(\n `language-${lang}`,\n \"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]\"\n )}\n >\n {codeText}\n </code>\n )}\n </pre>\n </div>\n </div>\n </div>\n );\n}\n"],"names":["SUPPORTED_CLIPBOARD_CONTENT_TYPES","useCopyToClipboard","isCopied","setIsCopied","useState","copy","text","error","blob","contentType","buffer","newBlob","clipboardItem","fallbackError","CopyIconButton","onClick","showTooltip","jsxs","jsx","ClipboardCheckmarkRegular","Copy20Regular","CodeBlock","children","className","fileName","language","highlightedCode","setHighlightedCode","copyBlob","lang","codeText","getNodeText","showContainer","isSSRHighlighted","React","childrenArray","child","_a","codeChildren","codeChild","_b","useEffect","grammar","Prism","html","handleCopy","capitalize","cn"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import { jsx as e, Fragment as l } from "react/jsx-runtime";
2
2
  import { TableBody as s, TableHeader as d, TableRow as p, TableCell as b, TableHead as f, Table as u } from "./table/index.js";
3
- import { cn as m } from "../../utils/cn.js";
3
+ import { cn as r } from "../../utils/cn.js";
4
4
  import { allComponents as c } from "./all-components.js";
5
5
  import { Link as h } from "./link.js";
6
6
  import { Heading as o } from "./heading.js";
7
7
  import { Summary as g, Details as k } from "./details/details.js";
8
8
  function _(i = {}) {
9
- const { LinkComponent: n } = i;
9
+ const { LinkComponent: m } = i;
10
10
  return {
11
11
  h1: (t) => /* @__PURE__ */ e(o, { level: 1, ...t }),
12
12
  h2: (t) => /* @__PURE__ */ e(o, { level: 2, ...t }),
@@ -14,23 +14,23 @@ function _(i = {}) {
14
14
  h4: (t) => /* @__PURE__ */ e(o, { level: 4, ...t }),
15
15
  h5: (t) => /* @__PURE__ */ e(o, { level: 5, ...t }),
16
16
  h6: (t) => /* @__PURE__ */ e(o, { level: 6, ...t }),
17
- code: ({ className: t, children: r, ...a }) => t ? r : /* @__PURE__ */ e(
17
+ code: ({ className: t, children: n, ...a }) => t ? n : /* @__PURE__ */ e(
18
18
  "code",
19
19
  {
20
- className: m(
20
+ className: r(
21
21
  "not-prose mint:font-medium mint:font-mono mint:text-sm mint:bg-gray-100 mint:shadow-[0_0_0_1px_rgba(156,163,175,0.3)] mint:px-1.5 mint:py-0.5 mint:rounded mint:dark:bg-[#1f1f1f] mint:dark:shadow-[0_0_0_1px_rgba(55,65,81,0.5)]"
22
22
  ),
23
23
  ...a,
24
- children: r
24
+ children: n
25
25
  }
26
26
  ),
27
27
  pre: ({ children: t }) => /* @__PURE__ */ e(l, { children: t }),
28
28
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
- a: n ? (t) => /* @__PURE__ */ e(n, { ...t }) : h,
29
+ a: m ? (t) => /* @__PURE__ */ e(m, { ...t }) : h,
30
30
  blockquote: (t) => /* @__PURE__ */ e(
31
31
  "blockquote",
32
32
  {
33
- className: m(
33
+ className: r(
34
34
  "not-prose mint:border-l-4 mint:border-gray-200 mint:pl-6 mint:mb-4 mint:dark:border-l-white/20"
35
35
  ),
36
36
  ...t
@@ -39,7 +39,7 @@ function _(i = {}) {
39
39
  img: (t) => /* @__PURE__ */ e(
40
40
  "img",
41
41
  {
42
- className: m("mint:max-w-full mint:h-auto mint:object-contain"),
42
+ className: "mint:max-w-full mint:h-auto mint:object-contain",
43
43
  ...t
44
44
  }
45
45
  ),
@@ -1 +1 @@
1
- {"version":3,"file":"default-components.js","sources":["../../../src/components/content-components/default-components.tsx"],"sourcesContent":["import { Details, Heading, Link, Summary, allComponents } from \".\";\nimport type { MDXComponents, LinkComponent } from \"../../types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./table\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CreateDefaultComponentsOptions {\n LinkComponent?: LinkComponent;\n}\n\nexport function createDefaultComponents(\n options: CreateDefaultComponentsOptions = {}\n): MDXComponents {\n const { LinkComponent: CustomLink } = options;\n\n return {\n h1: (props) => <Heading level={1} {...props} />,\n h2: (props) => <Heading level={2} {...props} />,\n h3: (props) => <Heading level={3} {...props} />,\n h4: (props) => <Heading level={4} {...props} />,\n h5: (props) => <Heading level={5} {...props} />,\n h6: (props) => <Heading level={6} {...props} />,\n code: ({ className, children, ...props }) => {\n const isInline = !className;\n if (isInline) {\n return (\n <code\n className={cn(\n \"not-prose mint:font-medium mint:font-mono mint:text-sm mint:bg-gray-100 mint:shadow-[0_0_0_1px_rgba(156,163,175,0.3)] mint:px-1.5 mint:py-0.5 mint:rounded mint:dark:bg-[#1f1f1f] mint:dark:shadow-[0_0_0_1px_rgba(55,65,81,0.5)]\"\n )}\n {...props}\n >\n {children}\n </code>\n );\n }\n return children;\n },\n pre: ({ children }) => <>{children}</>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n a: CustomLink ? (props: any) => <CustomLink {...props} /> : Link,\n blockquote: (props) => (\n <blockquote\n className={cn(\n \"not-prose mint:border-l-4 mint:border-gray-200 mint:pl-6 mint:mb-4 mint:dark:border-l-white/20\"\n )}\n {...props}\n />\n ),\n img: (props: React.ImgHTMLAttributes<HTMLImageElement>) => (\n <img\n className={cn(\"mint:max-w-full mint:h-auto mint:object-contain\")}\n {...props}\n />\n ),\n table: Table,\n th: TableHead,\n td: TableCell,\n tr: TableRow,\n thead: TableHeader,\n tbody: TableBody,\n details: Details,\n summary: Summary,\n ...allComponents,\n };\n}\n\n// Export as default for backward compatibility\nexport const defaultComponents: MDXComponents = createDefaultComponents();\n"],"names":["createDefaultComponents","options","CustomLink","props","jsx","Heading","className","children","cn","Link","Table","TableHead","TableCell","TableRow","TableHeader","TableBody","Details","Summary","allComponents","defaultComponents"],"mappings":";;;;;;;AAgBO,SAASA,EACdC,IAA0C,IAC3B;AACf,QAAM,EAAE,eAAeC,EAAA,IAAeD;AAEtC,SAAO;AAAA,IACL,IAAI,CAACE,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,MAAM,CAAC,EAAE,WAAAG,GAAW,UAAAC,GAAU,GAAGJ,QACbG,IAaXC,IAVH,gBAAAH;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWI;AAAA,UACT;AAAA,QAAA;AAAA,QAED,GAAGL;AAAA,QAEH,UAAAI;AAAA,MAAA;AAAA,IAAA;AAAA,IAMT,KAAK,CAAC,EAAE,UAAAA,EAAA,6BAAkB,UAAAA,GAAS;AAAA;AAAA,IAEnC,GAAGL,IAAa,CAACC,wBAAgBD,GAAA,EAAY,GAAGC,GAAO,IAAKM;AAAA,IAC5D,YAAY,CAACN,MACX,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWI;AAAA,UACT;AAAA,QAAA;AAAA,QAED,GAAGL;AAAA,MAAA;AAAA,IAAA;AAAA,IAGR,KAAK,CAACA,MACJ,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWI,EAAG,iDAAiD;AAAA,QAC9D,GAAGL;AAAA,MAAA;AAAA,IAAA;AAAA,IAGR,OAAOO;AAAA,IACP,IAAIC;AAAA,IACJ,IAAIC;AAAA,IACJ,IAAIC;AAAA,IACJ,OAAOC;AAAA,IACP,OAAOC;AAAA,IACP,SAASC;AAAA,IACT,SAASC;AAAA,IACT,GAAGC;AAAA,EAAA;AAEP;AAGO,MAAMC,IAAmCnB,EAAA;"}
1
+ {"version":3,"file":"default-components.js","sources":["../../../src/components/content-components/default-components.tsx"],"sourcesContent":["import { Details, Heading, Link, Summary, allComponents } from \".\";\nimport type { MDXComponents, LinkComponent } from \"../../types\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"./table\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface CreateDefaultComponentsOptions {\n LinkComponent?: LinkComponent;\n}\n\nexport function createDefaultComponents(\n options: CreateDefaultComponentsOptions = {}\n): MDXComponents {\n const { LinkComponent: CustomLink } = options;\n\n return {\n h1: (props) => <Heading level={1} {...props} />,\n h2: (props) => <Heading level={2} {...props} />,\n h3: (props) => <Heading level={3} {...props} />,\n h4: (props) => <Heading level={4} {...props} />,\n h5: (props) => <Heading level={5} {...props} />,\n h6: (props) => <Heading level={6} {...props} />,\n code: ({ className, children, ...props }) => {\n const isInline = !className;\n if (isInline) {\n return (\n <code\n className={cn(\n \"not-prose mint:font-medium mint:font-mono mint:text-sm mint:bg-gray-100 mint:shadow-[0_0_0_1px_rgba(156,163,175,0.3)] mint:px-1.5 mint:py-0.5 mint:rounded mint:dark:bg-[#1f1f1f] mint:dark:shadow-[0_0_0_1px_rgba(55,65,81,0.5)]\"\n )}\n {...props}\n >\n {children}\n </code>\n );\n }\n return children;\n },\n pre: ({ children }) => <>{children}</>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n a: CustomLink ? (props: any) => <CustomLink {...props} /> : Link,\n blockquote: (props) => (\n <blockquote\n className={cn(\n \"not-prose mint:border-l-4 mint:border-gray-200 mint:pl-6 mint:mb-4 mint:dark:border-l-white/20\"\n )}\n {...props}\n />\n ),\n img: (props: React.ImgHTMLAttributes<HTMLImageElement>) => (\n <img\n className=\"mint:max-w-full mint:h-auto mint:object-contain\"\n {...props}\n />\n ),\n table: Table,\n th: TableHead,\n td: TableCell,\n tr: TableRow,\n thead: TableHeader,\n tbody: TableBody,\n details: Details,\n summary: Summary,\n ...allComponents,\n };\n}\n\n// Export as default for backward compatibility\nexport const defaultComponents: MDXComponents = createDefaultComponents();\n"],"names":["createDefaultComponents","options","CustomLink","props","jsx","Heading","className","children","cn","Link","Table","TableHead","TableCell","TableRow","TableHeader","TableBody","Details","Summary","allComponents","defaultComponents"],"mappings":";;;;;;;AAgBO,SAASA,EACdC,IAA0C,IAC3B;AACf,QAAM,EAAE,eAAeC,EAAA,IAAeD;AAEtC,SAAO;AAAA,IACL,IAAI,CAACE,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,IAAI,CAACA,MAAU,gBAAAC,EAACC,KAAQ,OAAO,GAAI,GAAGF,GAAO;AAAA,IAC7C,MAAM,CAAC,EAAE,WAAAG,GAAW,UAAAC,GAAU,GAAGJ,QACbG,IAaXC,IAVH,gBAAAH;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWI;AAAA,UACT;AAAA,QAAA;AAAA,QAED,GAAGL;AAAA,QAEH,UAAAI;AAAA,MAAA;AAAA,IAAA;AAAA,IAMT,KAAK,CAAC,EAAE,UAAAA,EAAA,6BAAkB,UAAAA,GAAS;AAAA;AAAA,IAEnC,GAAGL,IAAa,CAACC,wBAAgBD,GAAA,EAAY,GAAGC,GAAO,IAAKM;AAAA,IAC5D,YAAY,CAACN,MACX,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWI;AAAA,UACT;AAAA,QAAA;AAAA,QAED,GAAGL;AAAA,MAAA;AAAA,IAAA;AAAA,IAGR,KAAK,CAACA,MACJ,gBAAAC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACT,GAAGD;AAAA,MAAA;AAAA,IAAA;AAAA,IAGR,OAAOO;AAAA,IACP,IAAIC;AAAA,IACJ,IAAIC;AAAA,IACJ,IAAIC;AAAA,IACJ,OAAOC;AAAA,IACP,OAAOC;AAAA,IACP,SAASC;AAAA,IACT,SAASC;AAAA,IACT,GAAGC;AAAA,EAAA;AAEP;AAGO,MAAMC,IAAmCnB,EAAA;"}