@mintlify/msft-sdk 1.1.14 → 1.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api-playground-2/ApiExamples.js +27 -0
- package/dist/api-playground-2/ApiExamples.js.map +1 -0
- package/dist/api-playground-2/components/Example/GeneratedRequestExample.js +142 -0
- package/dist/api-playground-2/components/Example/GeneratedRequestExample.js.map +1 -0
- package/dist/api-playground-2/components/Example/GeneratedResponseExample.js +29 -0
- package/dist/api-playground-2/components/Example/GeneratedResponseExample.js.map +1 -0
- package/dist/api-playground-2/components/Example/RequestExample.js +91 -0
- package/dist/api-playground-2/components/Example/RequestExample.js.map +1 -0
- package/dist/api-playground-2/components/Example/ResponseExample.js +18 -0
- package/dist/api-playground-2/components/Example/ResponseExample.js.map +1 -0
- package/dist/components/Api/ErrorBoundary.js +19 -0
- package/dist/components/Api/ErrorBoundary.js.map +1 -0
- package/dist/components/Api/MethodPill.js +12 -12
- package/dist/components/Api/MethodPill.js.map +1 -1
- package/dist/components/Api/colors.js +39 -47
- package/dist/components/Api/colors.js.map +1 -1
- package/dist/components/Api/dropdown-menu.js +127 -0
- package/dist/components/Api/dropdown-menu.js.map +1 -0
- package/dist/components/content-components/CodeGroupSelect/CodeGroupCopyButton.js +7 -0
- package/dist/components/content-components/CodeGroupSelect/CodeGroupCopyButton.js.map +1 -0
- package/dist/components/content-components/CodeGroupSelect/CodeSelectDropdown.js +52 -0
- package/dist/components/content-components/CodeGroupSelect/CodeSelectDropdown.js.map +1 -0
- package/dist/components/content-components/CodeGroupSelect/index.js +77 -0
- package/dist/components/content-components/CodeGroupSelect/index.js.map +1 -0
- package/dist/components/content-components/code-block.js +90 -95
- package/dist/components/content-components/code-block.js.map +1 -1
- package/dist/components/content-components/code-group.js +139 -0
- package/dist/components/content-components/code-group.js.map +1 -0
- package/dist/components/content-components/code-snippet.js +27 -0
- package/dist/components/content-components/code-snippet.js.map +1 -0
- package/dist/components/content-components/code-snippets.js +22 -0
- package/dist/components/content-components/code-snippets.js.map +1 -0
- package/dist/components/content-components/heading.js +51 -9
- package/dist/components/content-components/heading.js.map +1 -1
- package/dist/components/docsPage.js +55 -53
- package/dist/components/docsPage.js.map +1 -1
- package/dist/components/nav-tree/index.js +20 -20
- package/dist/components/nav-tree/index.js.map +1 -1
- package/dist/components/nav-tree/mobile-nav.js +1 -1
- package/dist/components/nav-tree/mobile-nav.js.map +1 -1
- package/dist/components/page-context-menu.js +36 -36
- package/dist/components/page-context-menu.js.map +1 -1
- package/dist/components/toc/index.js +3 -3
- package/dist/components/toc/index.js.map +1 -1
- package/dist/constants/prism-languages.js +20 -0
- package/dist/constants/prism-languages.js.map +1 -0
- package/dist/constants/snippetPresets.js +58 -0
- package/dist/constants/snippetPresets.js.map +1 -0
- package/dist/contexts/ConfigContext.js +19 -0
- package/dist/contexts/ConfigContext.js.map +1 -0
- package/dist/hooks/useApiPlaygroundDisplay.js +15 -0
- package/dist/hooks/useApiPlaygroundDisplay.js.map +1 -0
- package/dist/hooks/useEndpoint.js +16 -0
- package/dist/hooks/useEndpoint.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/styles.css +1 -1
- package/dist/utils/cn.js +7 -4
- package/dist/utils/cn.js.map +1 -1
- package/package.json +2 -2
|
@@ -1 +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-
|
|
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-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-green-700 mint:dark:text-green-400',\n inactiveNavPillBg: 'mint:bg-green-400/20 mint:dark:bg-green-400/20',\n paramStyle: 'mint:text-[#2AB673] mint:bg-[#2AB673]/10 mint:border-[#2AB673]/30',\n };\n case 'POST':\n case 'WEBHOOK':\n return {\n activeNavPillBg: 'mint:bg-[#3064E3]',\n activeNavPillText: 'mint:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-blue-700 mint:dark:text-blue-400',\n inactiveNavPillBg: 'mint:bg-blue-400/20 mint:dark:bg-blue-400/20',\n paramStyle: 'mint:text-[#3064E3] mint:bg-[#3064E3]/10 mint:border-[#3064E3]/30',\n };\n case 'PUT':\n return {\n activeNavPillBg: 'mint:bg-[#C28C30]',\n activeNavPillText: 'mint:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-yellow-700 mint:dark:text-yellow-400',\n inactiveNavPillBg: 'mint:bg-yellow-400/20 mint:dark:bg-yellow-400/20',\n paramStyle: 'mint:text-[#C28C30] mint:bg-[#C28C30]/10 mint:border-[#C28C30]/30',\n };\n case 'DELETE':\n return {\n activeNavPillBg: 'mint:bg-[#CB3A32]',\n activeNavPillText: 'mint:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-red-700 mint:dark:text-red-400',\n inactiveNavPillBg: 'mint:bg-red-400/20 mint:dark:bg-red-400/20',\n paramStyle: 'mint:text-[#CB3A32] mint:bg-[#CB3A32]/10 mint:border-[#CB3A32]/30',\n };\n case 'OPTIONS':\n return {\n activeNavPillBg: 'mint:bg-[#9341FB]',\n activeNavPillText: 'mint:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-purple-700 mint:dark:text-purple-400',\n inactiveNavPillBg: 'mint:bg-purple-400/20 mint:dark:bg-purple-400/20',\n paramStyle: 'mint:text-[#9341FB] mint:bg-[#9341FB]/10 mint:border-[#9341FB]/30',\n };\n case 'HEAD':\n return {\n activeNavPillBg: 'mint:bg-[#0e7490]',\n activeNavPillText: 'mint:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-cyan-700 mint:dark:text-cyan-400',\n inactiveNavPillBg: 'mint:bg-cyan-400/20 mint:dark:bg-cyan-400/20',\n paramStyle: 'mint:text-[#0e7490] mint:text-[#00d3f2] mint:bg-[#00d3f2]/10 mint:border-[#00d3f2]/30',\n };\n case 'PATCH':\n return {\n activeNavPillBg: 'mint:bg-[#DA622B]',\n activeNavPillText: 'mint:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-orange-700 mint:dark:text-orange-400',\n inactiveNavPillBg: 'mint:bg-orange-400/20 mint:dark:bg-orange-400/20',\n paramStyle: 'mint:text-[#DA622B] mint:bg-[#DA622B]/10 mint:border-[#DA622B]/30',\n };\n case 'TRACE':\n return {\n activeNavPillBg: 'mint:bg-[#BD30D3]',\n activeNavPillText: 'mint:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-fuchsia-700 mint:dark:text-fuchsia-400',\n inactiveNavPillBg: 'mint:bg-fuchsia-400/20 mint:dark:bg-fuchsia-400/20',\n paramStyle: 'mint:text-[#BD30D3] mint:bg-[#BD30D3]/10 mint:border-[#BD30D3]/30',\n };\n case 'WEBSOCKET':\n return {\n activeNavPillBg: 'mint:bg-[#F54A00] mint:dark:bg-[#FF6900]',\n activeNavPillText: 'mint:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-[#F54A00] mint:dark:text-[#FF6900]',\n inactiveNavPillBg: 'mint:bg-[#FFEDD4] mint:dark:bg-[#FF6900]/20',\n paramStyle:\n 'mint:text-[#F54A00] mint:bg-[#FFEDD4]/10 mint:border-[#FFEDD4]/30 mint:dark:text-[#FF6900] mint:dark:bg-[#FF6900]/10 mint:dark:border-[#FF6900]/30',\n };\n case 'DEPRECATED':\n return {\n activeNavPillBg: 'mint:bg-[#F7F7F8] mint:dark:bg-[#14151A]',\n activeNavPillText: 'mint:text-[#14151A] mint:dark:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-[#14151A] mint:dark:text-[#FFFFFF]',\n inactiveNavPillBg: 'mint:bg-[#F7F7F8] mint:dark:bg-[#14151A]',\n };\n default:\n return {\n activeNavPillBg: 'mint:bg-gray-600',\n activeNavPillText: 'mint:text-[#FFFFFF]',\n inactiveNavPillText: 'mint:text-gray-700 mint:dark:text-gray-400',\n inactiveNavPillBg: 'mint:bg-gray-400/20 mint:dark:bg-gray-400/20',\n paramStyle: 'mint:text-gray-600 mint:bg-gray-600/10 mint:border-gray-600/30',\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;AAAA,IACL,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,YACE;AAAA,MAAA;AAAA,IAEN,KAAK;AACH,aAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,mBAAmB;AAAA,QACnB,qBAAqB;AAAA,QACrB,mBAAmB;AAAA,MAAA;AAAA,IAEvB;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;"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { jsx as m, jsxs as r } from "react/jsx-runtime";
|
|
2
|
+
import { cn as d } from "@/api-playground-2/schemaGraph/utils";
|
|
3
|
+
import * as t from "@radix-ui/react-dropdown-menu";
|
|
4
|
+
import { ChevronRightFilled as l, CheckmarkCircleRegular as c, CircleRegular as p } from "@fluentui/react-icons";
|
|
5
|
+
import * as o from "react";
|
|
6
|
+
const f = o.forwardRef((n, e) => /* @__PURE__ */ m(t.Root, { modal: !1, ...n }));
|
|
7
|
+
f.displayName = t.Root.displayName;
|
|
8
|
+
const C = t.Trigger, u = o.forwardRef(({ className: n, inset: e, children: i, ...a }, s) => /* @__PURE__ */ r(
|
|
9
|
+
t.SubTrigger,
|
|
10
|
+
{
|
|
11
|
+
ref: s,
|
|
12
|
+
className: d(
|
|
13
|
+
"mint:flex mint:cursor-default mint:select-none mint:items-center mint:rounded-md mint:px-2 mint:py-1.5 mint:text-sm mint:outline-none mint:focus:bg-accent mint:data-[state=open]:bg-accent",
|
|
14
|
+
e && "mint:pl-8",
|
|
15
|
+
n
|
|
16
|
+
),
|
|
17
|
+
...a,
|
|
18
|
+
children: [
|
|
19
|
+
i,
|
|
20
|
+
/* @__PURE__ */ m(l, { className: "mint:size-4 mint:ml-auto" })
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
));
|
|
24
|
+
u.displayName = t.SubTrigger.displayName;
|
|
25
|
+
const b = o.forwardRef(({ className: n, ...e }, i) => /* @__PURE__ */ m(
|
|
26
|
+
t.SubContent,
|
|
27
|
+
{
|
|
28
|
+
ref: i,
|
|
29
|
+
className: d(
|
|
30
|
+
"mint:z-50 mint:min-w-[8rem] mint:overflow-hidden mint:rounded-xl mint:border mint:bg-popover mint:p-1 mint:shadow-md mint:data-[state=open]:animate-in mint:data-[state=closed]:animate-out mint:data-[state=closed]:fade-out-0 mint:data-[state=open]:fade-in-0 mint:data-[state=closed]:zoom-out-95 mint:data-[state=open]:zoom-in-95 mint:data-[side=bottom]:slide-in-from-top-2 mint:data-[side=left]:slide-in-from-right-2 mint:data-[side=right]:slide-in-from-left-2 mint:data-[side=top]:slide-in-from-bottom-2",
|
|
31
|
+
n
|
|
32
|
+
),
|
|
33
|
+
...e
|
|
34
|
+
}
|
|
35
|
+
));
|
|
36
|
+
b.displayName = t.SubContent.displayName;
|
|
37
|
+
const g = o.forwardRef(({ className: n, sideOffset: e = 8, ...i }, a) => /* @__PURE__ */ m(t.Portal, { children: /* @__PURE__ */ m(
|
|
38
|
+
t.Content,
|
|
39
|
+
{
|
|
40
|
+
ref: a,
|
|
41
|
+
sideOffset: e,
|
|
42
|
+
className: d(
|
|
43
|
+
"mint:bg-white mint:dark:bg-zinc-950 mint:z-50 mint:min-w-[8rem] mint:overflow-hidden mint:rounded-xl mint:border mint:p-3 mint:text-secondary mint:data-[state=open]:animate-in mint:data-[state=closed]:animate-out mint:data-[state=closed]:fade-out-0 mint:data-[state=open]:fade-in-0 mint:data-[state=closed]:zoom-out-95 mint:data-[state=open]:zoom-in-95 mint:data-[side=bottom]:slide-in-from-top-2 mint:data-[side=left]:slide-in-from-right-2 mint:data-[side=right]:slide-in-from-left-2 mint:data-[side=top]:slide-in-from-bottom-2 mint:shadow-xl mint:shadow-zinc-400/10 mint:dark:border-white/10 mint:dark:shadow-none",
|
|
44
|
+
n
|
|
45
|
+
),
|
|
46
|
+
...i
|
|
47
|
+
}
|
|
48
|
+
) }));
|
|
49
|
+
g.displayName = t.Content.displayName;
|
|
50
|
+
const w = o.forwardRef(({ className: n, inset: e, isSelected: i, ...a }, s) => /* @__PURE__ */ m(
|
|
51
|
+
t.Item,
|
|
52
|
+
{
|
|
53
|
+
ref: s,
|
|
54
|
+
className: d(
|
|
55
|
+
"mint:relative mint:flex mint:cursor-pointer mint:select-none mint:items-center mint:rounded-lg mint:px-2 mint:py-1.5 mint:text-sm mint:outline-none mint:focus:bg-accent mint:focus:text-accent-foreground mint:data-[disabled]:pointer-events-none mint:data-[disabled]:opacity-50 mint:hover:bg-zinc-950/5 mint:dark:hover:bg-white/5",
|
|
56
|
+
e && "mint:pl-8",
|
|
57
|
+
i && "mint:bg-zinc-950/5 mint:dark:bg-white/5 mint:font-medium",
|
|
58
|
+
n
|
|
59
|
+
),
|
|
60
|
+
...a
|
|
61
|
+
}
|
|
62
|
+
));
|
|
63
|
+
w.displayName = t.Item.displayName;
|
|
64
|
+
const h = o.forwardRef(({ className: n, children: e, checked: i, ...a }, s) => /* @__PURE__ */ r(
|
|
65
|
+
t.CheckboxItem,
|
|
66
|
+
{
|
|
67
|
+
ref: s,
|
|
68
|
+
className: d(
|
|
69
|
+
"mint:relative mint:flex mint:cursor-default mint:select-none mint:items-center mint:rounded-sm mint:py-1.5 mint:pl-8 mint:pr-2 mint:text-sm mint:outline-none mint:transition-colors mint:focus:bg-accent mint:focus:text-accent-foreground mint:data-[disabled]:pointer-events-none mint:data-[disabled]:opacity-50",
|
|
70
|
+
n
|
|
71
|
+
),
|
|
72
|
+
checked: i,
|
|
73
|
+
...a,
|
|
74
|
+
children: [
|
|
75
|
+
/* @__PURE__ */ m("span", { className: "mint:absolute mint:left-2 mint:flex mint:size-3.5 mint:items-center mint:justify-center", children: /* @__PURE__ */ m(t.ItemIndicator, { children: /* @__PURE__ */ m(c, { className: "mint:size-4" }) }) }),
|
|
76
|
+
e
|
|
77
|
+
]
|
|
78
|
+
}
|
|
79
|
+
));
|
|
80
|
+
h.displayName = t.CheckboxItem.displayName;
|
|
81
|
+
const N = o.forwardRef(({ className: n, children: e, ...i }, a) => /* @__PURE__ */ r(
|
|
82
|
+
t.RadioItem,
|
|
83
|
+
{
|
|
84
|
+
ref: a,
|
|
85
|
+
className: d(
|
|
86
|
+
"mint:relative mint:flex mint:cursor-default mint:select-none mint:items-center mint:rounded-md mint:py-1.5 mint:pl-8 mint:pr-2 mint:text-sm mint:outline-none mint:transition-colors mint:focus:bg-accent mint:focus:text-accent-foreground mint:data-[disabled]:pointer-events-none mint:data-[disabled]:opacity-50",
|
|
87
|
+
n
|
|
88
|
+
),
|
|
89
|
+
...i,
|
|
90
|
+
children: [
|
|
91
|
+
/* @__PURE__ */ m("span", { className: "mint:absolute mint:left-2 mint:flex mint:size-3.5 mint:items-center mint:justify-center", children: /* @__PURE__ */ m(t.ItemIndicator, { children: /* @__PURE__ */ m(p, { className: "mint:size-2 mint:fill-current" }) }) }),
|
|
92
|
+
e
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
));
|
|
96
|
+
N.displayName = t.RadioItem.displayName;
|
|
97
|
+
const y = o.forwardRef(({ className: n, inset: e, ...i }, a) => /* @__PURE__ */ m(
|
|
98
|
+
t.Label,
|
|
99
|
+
{
|
|
100
|
+
ref: a,
|
|
101
|
+
className: d("mint:px-2 mint:py-1.5 mint:text-sm mint:font-semibold", e && "mint:pl-8", n),
|
|
102
|
+
...i
|
|
103
|
+
}
|
|
104
|
+
));
|
|
105
|
+
y.displayName = t.Label.displayName;
|
|
106
|
+
const x = o.forwardRef(({ className: n, ...e }, i) => /* @__PURE__ */ m(
|
|
107
|
+
t.Separator,
|
|
108
|
+
{
|
|
109
|
+
ref: i,
|
|
110
|
+
className: d("mint:-mx-1 mint:my-1 mint:h-px mint:bg-zinc-950/10 mint:dark:bg-white/10", n),
|
|
111
|
+
...e
|
|
112
|
+
}
|
|
113
|
+
));
|
|
114
|
+
x.displayName = t.Separator.displayName;
|
|
115
|
+
export {
|
|
116
|
+
f as DropdownMenu,
|
|
117
|
+
h as DropdownMenuCheckboxItem,
|
|
118
|
+
g as DropdownMenuContent,
|
|
119
|
+
w as DropdownMenuItem,
|
|
120
|
+
y as DropdownMenuLabel,
|
|
121
|
+
N as DropdownMenuRadioItem,
|
|
122
|
+
x as DropdownMenuSeparator,
|
|
123
|
+
b as DropdownMenuSubContent,
|
|
124
|
+
u as DropdownMenuSubTrigger,
|
|
125
|
+
C as DropdownMenuTrigger
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=dropdown-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dropdown-menu.js","sources":["../../../src/components/Api/dropdown-menu.tsx"],"sourcesContent":["import { cn } from '@/api-playground-2/schemaGraph/utils';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckmarkCircleRegular, ChevronRightFilled, CircleRegular } from '@fluentui/react-icons';\nimport * as React from 'react';\n\nconst DropdownMenu = React.forwardRef<\n typeof DropdownMenuPrimitive.Root,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Root>\n>((props, _ref) => <DropdownMenuPrimitive.Root modal={false} {...props} />);\nDropdownMenu.displayName = DropdownMenuPrimitive.Root.displayName;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'mint:flex mint:cursor-default mint:select-none mint:items-center mint:rounded-md mint:px-2 mint:py-1.5 mint:text-sm mint:outline-none mint:focus:bg-accent mint:data-[state=open]:bg-accent',\n inset && 'mint:pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightFilled className=\"mint:size-4 mint:ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n 'mint:z-50 mint:min-w-[8rem] mint:overflow-hidden mint:rounded-xl mint:border mint:bg-popover mint:p-1 mint:shadow-md mint:data-[state=open]:animate-in mint:data-[state=closed]:animate-out mint:data-[state=closed]:fade-out-0 mint:data-[state=open]:fade-in-0 mint:data-[state=closed]:zoom-out-95 mint:data-[state=open]:zoom-in-95 mint:data-[side=bottom]:slide-in-from-top-2 mint:data-[side=left]:slide-in-from-right-2 mint:data-[side=right]:slide-in-from-left-2 mint:data-[side=top]:slide-in-from-bottom-2',\n className\n )}\n {...props}\n />\n));\nDropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 8, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n 'mint:bg-white mint:dark:bg-zinc-950 mint:z-50 mint:min-w-[8rem] mint:overflow-hidden mint:rounded-xl mint:border mint:p-3 mint:text-secondary mint:data-[state=open]:animate-in mint:data-[state=closed]:animate-out mint:data-[state=closed]:fade-out-0 mint:data-[state=open]:fade-in-0 mint:data-[state=closed]:zoom-out-95 mint:data-[state=open]:zoom-in-95 mint:data-[side=bottom]:slide-in-from-top-2 mint:data-[side=left]:slide-in-from-right-2 mint:data-[side=right]:slide-in-from-left-2 mint:data-[side=top]:slide-in-from-bottom-2 mint:shadow-xl mint:shadow-zinc-400/10 mint:dark:border-white/10 mint:dark:shadow-none',\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\ntype DropdownMenuItemProps = React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n isSelected?: boolean;\n};\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n DropdownMenuItemProps\n>(({ className, inset, isSelected, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'mint:relative mint:flex mint:cursor-pointer mint:select-none mint:items-center mint:rounded-lg mint:px-2 mint:py-1.5 mint:text-sm mint:outline-none mint:focus:bg-accent mint:focus:text-accent-foreground mint:data-[disabled]:pointer-events-none mint:data-[disabled]:opacity-50 mint:hover:bg-zinc-950/5 mint:dark:hover:bg-white/5',\n inset && 'mint:pl-8',\n isSelected && 'mint:bg-zinc-950/5 mint:dark:bg-white/5 mint:font-medium',\n className\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'mint:relative mint:flex mint:cursor-default mint:select-none mint:items-center mint:rounded-sm mint:py-1.5 mint:pl-8 mint:pr-2 mint:text-sm mint:outline-none mint:transition-colors mint:focus:bg-accent mint:focus:text-accent-foreground mint:data-[disabled]:pointer-events-none mint:data-[disabled]:opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"mint:absolute mint:left-2 mint:flex mint:size-3.5 mint:items-center mint:justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckmarkCircleRegular className=\"mint:size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'mint:relative mint:flex mint:cursor-default mint:select-none mint:items-center mint:rounded-md mint:py-1.5 mint:pl-8 mint:pr-2 mint:text-sm mint:outline-none mint:transition-colors mint:focus:bg-accent mint:focus:text-accent-foreground mint:data-[disabled]:pointer-events-none mint:data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"mint:absolute mint:left-2 mint:flex mint:size-3.5 mint:items-center mint:justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleRegular className=\"mint:size-2 mint:fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn('mint:px-2 mint:py-1.5 mint:text-sm mint:font-semibold', inset && 'mint:pl-8', className)}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn('mint:-mx-1 mint:my-1 mint:h-px mint:bg-zinc-950/10 mint:dark:bg-white/10', className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({ className, ...props }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span className={cn('mint:ml-auto mint:text-xs mint:tracking-widest mint:opacity-60', className)} {...props} />\n );\n};\nDropdownMenuShortcut.displayName = 'DropdownMenuShortcut';\n\nexport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n};\n"],"names":["DropdownMenu","React","props","_ref","jsx","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuSubTrigger","className","inset","children","ref","jsxs","cn","ChevronRightFilled","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","isSelected","DropdownMenuCheckboxItem","checked","CheckmarkCircleRegular","DropdownMenuRadioItem","CircleRegular","DropdownMenuLabel","DropdownMenuSeparator"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { CopyToClipboardButton as r } from "../code-block.js";
|
|
3
|
+
const d = ({ code: t }) => /* @__PURE__ */ o("div", { "data-testid": "code-group-select-copy-button", children: /* @__PURE__ */ o(r, { textToCopy: t }) });
|
|
4
|
+
export {
|
|
5
|
+
d as CodeGroupCopyButton
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=CodeGroupCopyButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeGroupCopyButton.js","sources":["../../../../src/components/content-components/CodeGroupSelect/CodeGroupCopyButton.tsx"],"sourcesContent":["'use client';\n\n\nimport { CopyToClipboardButton } from '../code-block';\n\ntype CodeGroupCopyButtonProps = {\n code: string;\n};\n\nexport const CodeGroupCopyButton = ({ code }: CodeGroupCopyButtonProps) => {\n\n return (\n <div data-testid=\"code-group-select-copy-button\">\n <CopyToClipboardButton textToCopy={code} />\n </div>\n );\n};\n"],"names":["CodeGroupCopyButton","code","jsx","CopyToClipboardButton"],"mappings":";;AASO,MAAMA,IAAsB,CAAC,EAAE,MAAAC,QAGlC,gBAAAC,EAAC,SAAI,eAAY,iCACf,4BAACC,GAAA,EAAsB,YAAYF,GAAM,EAAA,CAC3C;"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsxs as a, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronDownFilled as s } from "@fluentui/react-icons";
|
|
3
|
+
import { DropdownMenu as l, DropdownMenuTrigger as x, DropdownMenuContent as c, DropdownMenuItem as p } from "../../Api/dropdown-menu.js";
|
|
4
|
+
import { cn as i } from "../../../utils/cn.js";
|
|
5
|
+
const y = ({
|
|
6
|
+
selectedOption: m,
|
|
7
|
+
setSelectedOption: o,
|
|
8
|
+
options: e
|
|
9
|
+
}) => {
|
|
10
|
+
const r = e.length > 1;
|
|
11
|
+
return /* @__PURE__ */ a(l, { children: [
|
|
12
|
+
/* @__PURE__ */ t(
|
|
13
|
+
x,
|
|
14
|
+
{
|
|
15
|
+
disabled: !r,
|
|
16
|
+
className: i(
|
|
17
|
+
"mint:select-none mint:bg-transparent mint:px-2 mint:py-[5px] mint:text-xs mint:font-medium mint:min-w-16 mint:flex-1 mint:dark:bg-transparent mint:dark:text-gray-200 mint:text-gray-600"
|
|
18
|
+
),
|
|
19
|
+
children: /* @__PURE__ */ a("div", { className: "mint:flex mint:gap-1.5 mint:items-center mint:px-2 mint:py-1 mint:group-hover:hover:bg-primary-light/10 mint:rounded-lg mint:min-w-16", children: [
|
|
20
|
+
/* @__PURE__ */ t("p", { className: "mint:truncate", children: m }),
|
|
21
|
+
r && /* @__PURE__ */ t(s, { className: "mint:w-3 mint:h-3 mint:text-gray-500 mint:dark:text-gray-400 mint:shrink-0" })
|
|
22
|
+
] })
|
|
23
|
+
}
|
|
24
|
+
),
|
|
25
|
+
/* @__PURE__ */ t(
|
|
26
|
+
c,
|
|
27
|
+
{
|
|
28
|
+
className: i(
|
|
29
|
+
"mint:overflow-y-auto",
|
|
30
|
+
"mint:bg-white mint:dark:bg-zinc-950"
|
|
31
|
+
),
|
|
32
|
+
children: e.map((n, d) => /* @__PURE__ */ t(
|
|
33
|
+
p,
|
|
34
|
+
{
|
|
35
|
+
onSelect: () => o(n),
|
|
36
|
+
className: i(
|
|
37
|
+
"mint:py-1.5 mint:text-xs",
|
|
38
|
+
n === m && "mint:text-[#643FB2] mint:dark:text-[#C9AAF9] mint:font-medium",
|
|
39
|
+
n !== m && "mint:text-gray-500 mint:dark:text-white/50"
|
|
40
|
+
),
|
|
41
|
+
children: n
|
|
42
|
+
},
|
|
43
|
+
d
|
|
44
|
+
))
|
|
45
|
+
}
|
|
46
|
+
)
|
|
47
|
+
] });
|
|
48
|
+
};
|
|
49
|
+
export {
|
|
50
|
+
y as CodeSelectDropdown
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=CodeSelectDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CodeSelectDropdown.js","sources":["../../../../src/components/content-components/CodeGroupSelect/CodeSelectDropdown.tsx"],"sourcesContent":["'use client';\n\nimport { ChevronDownFilled } from '@fluentui/react-icons';\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from '../../Api/dropdown-menu';\nimport { cn } from \"../../../utils/cn\";\n\ninterface CodeSelectDropdownProps {\n selectedOption?: string;\n setSelectedOption: (option: string) => void;\n options: string[];\n}\n\nexport const CodeSelectDropdown = ({\n selectedOption,\n setSelectedOption,\n options,\n}: CodeSelectDropdownProps) => {\n const hasOptions = options.length > 1;\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger\n disabled={!hasOptions}\n className={cn(\n 'mint:select-none mint:bg-transparent mint:px-2 mint:py-[5px] mint:text-xs mint:font-medium mint:min-w-16 mint:flex-1 mint:dark:bg-transparent mint:dark:text-gray-200 mint:text-gray-600',\n )}\n >\n <div className=\"mint:flex mint:gap-1.5 mint:items-center mint:px-2 mint:py-1 mint:group-hover:hover:bg-primary-light/10 mint:rounded-lg mint:min-w-16\">\n <p className=\"mint:truncate\">{selectedOption}</p>\n {hasOptions && <ChevronDownFilled className=\"mint:w-3 mint:h-3 mint:text-gray-500 mint:dark:text-gray-400 mint:shrink-0\" />}\n </div>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className={cn(\n 'mint:overflow-y-auto', 'mint:bg-white mint:dark:bg-zinc-950'\n )}\n >\n {options.map((option, i) => (\n <DropdownMenuItem\n key={i}\n onSelect={() => setSelectedOption(option)}\n className={cn(\n 'mint:py-1.5 mint:text-xs',\n option === selectedOption && 'mint:text-[#643FB2] mint:dark:text-[#C9AAF9] mint:font-medium',\n option !== selectedOption &&\n 'mint:text-gray-500 mint:dark:text-white/50',\n )}\n >\n {option}\n </DropdownMenuItem>\n ))}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n};\n"],"names":["CodeSelectDropdown","selectedOption","setSelectedOption","options","hasOptions","DropdownMenu","jsx","DropdownMenuTrigger","cn","jsxs","ChevronDownFilled","DropdownMenuContent","option","i","DropdownMenuItem"],"mappings":";;;;AAkBO,MAAMA,IAAqB,CAAC;AAAA,EACjC,gBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,SAAAC;AACF,MAA+B;AAC7B,QAAMC,IAAaD,EAAQ,SAAS;AAEpC,2BACGE,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,UAAU,CAACH;AAAA,QACX,WAAWI;AAAA,UACT;AAAA,QAAA;AAAA,QAGF,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,yIACb,UAAA;AAAA,UAAA,gBAAAH,EAAC,KAAA,EAAE,WAAU,iBAAiB,UAAAL,GAAe;AAAA,UAC5CG,KAAc,gBAAAE,EAACI,GAAA,EAAkB,WAAU,6EAAA,CAA6E;AAAA,QAAA,EAAA,CAC3H;AAAA,MAAA;AAAA,IAAA;AAAA,IAEF,gBAAAJ;AAAA,MAACK;AAAA,MAAA;AAAA,QACC,WAAWH;AAAA,UACT;AAAA,UAAwB;AAAA,QAAA;AAAA,QAGzB,UAAAL,EAAQ,IAAI,CAACS,GAAQC,MACpB,gBAAAP;AAAA,UAACQ;AAAA,UAAA;AAAA,YAEC,UAAU,MAAMZ,EAAkBU,CAAM;AAAA,YACxC,WAAWJ;AAAA,cACT;AAAA,cACAI,MAAWX,KAAkB;AAAA,cAC7BW,MAAWX,KACT;AAAA,YAAA;AAAA,YAGH,UAAAW;AAAA,UAAA;AAAA,UATIC;AAAA,QAAA,CAWR;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { jsxs as a, jsx as o } from "react/jsx-runtime";
|
|
2
|
+
import { useContext as y, useState as f, useEffect as C } from "react";
|
|
3
|
+
import { ApiPlaygroundContext as k } from "@/api-playground/ApiPlayground/ApiPlaygroundContext";
|
|
4
|
+
import { useCodeExampleLabel as j } from "@/contexts/CodeExampleLabelContext";
|
|
5
|
+
import { useSelectedLocale as G } from "@/utils/locales";
|
|
6
|
+
import { CodeSnippet as L } from "../code-snippet.js";
|
|
7
|
+
import { CodeGroupCopyButton as N } from "./CodeGroupCopyButton.js";
|
|
8
|
+
import { CodeSelectDropdown as g } from "./CodeSelectDropdown.js";
|
|
9
|
+
import { cn as x } from "../../../utils/cn.js";
|
|
10
|
+
const J = ({ snippets: s, maxHeight: b }) => {
|
|
11
|
+
const { setSelectedExampleIndex: l } = y(k), { selectedLabel: i, setSelectedLabel: h } = j(), v = G(), u = Object.keys(s), [m, w] = f(u[0]), d = m !== void 0 ? s[m] : void 0, e = d ? Object.keys(d) : void 0, [c, p] = f(e && e[0]), r = c && (e != null && e.includes(c)) ? c : e == null ? void 0 : e[0], t = d !== void 0 && r !== void 0 ? d[r] : void 0, S = (n) => {
|
|
12
|
+
w(n);
|
|
13
|
+
}, O = (n) => {
|
|
14
|
+
p(n), l == null || l((e == null ? void 0 : e.indexOf(n)) ?? 0), n !== i && h(n);
|
|
15
|
+
};
|
|
16
|
+
return C(() => {
|
|
17
|
+
i && i !== r && (e != null && e.includes(i)) && p(i);
|
|
18
|
+
}, [i, e, r]), /* @__PURE__ */ a(
|
|
19
|
+
"div",
|
|
20
|
+
{
|
|
21
|
+
className: x(
|
|
22
|
+
"mint:text-xs mint:p-0.5 mint:leading-6 mint:rounded-2xl not-prose mint:overflow-hidden mint:relative mint:max-w-full mint:min-w-full",
|
|
23
|
+
"mint:bg-gray-50 mint:dark:bg-white/5 mint:border mint:border-gray-950/10 mint:dark:border-white/10",
|
|
24
|
+
b
|
|
25
|
+
),
|
|
26
|
+
"data-testid": "code-group-select",
|
|
27
|
+
children: [
|
|
28
|
+
/* @__PURE__ */ a("div", { className: "mint:flex mint:justify-between mint:text-xs mint:leading-6 mint:rounded-t-2xl mint:w-full", children: [
|
|
29
|
+
/* @__PURE__ */ o(
|
|
30
|
+
g,
|
|
31
|
+
{
|
|
32
|
+
selectedOption: m,
|
|
33
|
+
setSelectedOption: S,
|
|
34
|
+
options: u,
|
|
35
|
+
"data-testid": "code-group-select-group"
|
|
36
|
+
}
|
|
37
|
+
),
|
|
38
|
+
/* @__PURE__ */ a("div", { className: "mint:flex mint:overflow-hidden", children: [
|
|
39
|
+
e && /* @__PURE__ */ o(
|
|
40
|
+
g,
|
|
41
|
+
{
|
|
42
|
+
selectedOption: r,
|
|
43
|
+
setSelectedOption: O,
|
|
44
|
+
options: e,
|
|
45
|
+
"data-testid": "code-group-select-option"
|
|
46
|
+
}
|
|
47
|
+
),
|
|
48
|
+
/* @__PURE__ */ o(
|
|
49
|
+
"div",
|
|
50
|
+
{
|
|
51
|
+
className: "mint:flex mint:items-center mint:gap-1.5 mint:pr-2.5",
|
|
52
|
+
"data-testid": "code-group-select-copy-button",
|
|
53
|
+
children: /* @__PURE__ */ o(N, { code: (t == null ? void 0 : t.code) ?? "" })
|
|
54
|
+
}
|
|
55
|
+
)
|
|
56
|
+
] })
|
|
57
|
+
] }),
|
|
58
|
+
/* @__PURE__ */ o(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
role: "region",
|
|
62
|
+
"aria-label": v["aria.codeSnippet"],
|
|
63
|
+
className: x(
|
|
64
|
+
"not-prose mint:rounded-xt mint:p-5 mint:min-w-full mint:max-w-0 mint:overflow-x-auto mint:max-h-[calc(100%-34px)] mint:w-full mint:scrollbar-track-transparent mint:scrollbar-thin mint:scrollbar-thumb-rounded mint:text-xs mint:leading-[1.35rem]",
|
|
65
|
+
"mint:bg-white mint:dark:bg-zinc-950"
|
|
66
|
+
),
|
|
67
|
+
children: /* @__PURE__ */ o(L, { language: t == null ? void 0 : t.language, children: t == null ? void 0 : t.code })
|
|
68
|
+
}
|
|
69
|
+
)
|
|
70
|
+
]
|
|
71
|
+
}
|
|
72
|
+
);
|
|
73
|
+
};
|
|
74
|
+
export {
|
|
75
|
+
J as CodeGroupSelect
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/content-components/CodeGroupSelect/index.tsx"],"sourcesContent":["'use client';\n\nimport { useState, useEffect, useContext } from 'react';\n\nimport { ApiPlaygroundContext } from '@/api-playground/ApiPlayground/ApiPlaygroundContext';\nimport { useCodeExampleLabel } from '@/contexts/CodeExampleLabelContext';\nimport { useSelectedLocale } from '@/utils/locales';\nimport { ExampleCodeSnippet } from '@/types/exampleCodeSnippet';\nimport { CodeSnippet } from '../code-snippet';\nimport { CodeGroupCopyButton } from './CodeGroupCopyButton';\nimport { CodeSelectDropdown } from './CodeSelectDropdown';\nimport { cn } from \"../../../utils/cn\";\n\ninterface CodeGroupSelectProps {\n snippets: Record<string, Record<string, ExampleCodeSnippet>>;\n maxHeight?: string;\n}\n\nexport const CodeGroupSelect = ({ snippets, maxHeight }: CodeGroupSelectProps) => {\n const { setSelectedExampleIndex } = useContext(ApiPlaygroundContext);\n const { selectedLabel: syncedLabel, setSelectedLabel } = useCodeExampleLabel();\n const locale = useSelectedLocale();\n\n const groups = Object.keys(snippets);\n const [selectedGroup, setSelectedGroup] = useState(groups[0]);\n\n const groupSnippets = selectedGroup !== undefined ? snippets[selectedGroup] : undefined;\n const options = groupSnippets ? Object.keys(groupSnippets) : undefined;\n const [selectedOption, setSelectedOption] = useState(options && options[0]);\n\n const safeSelectedOption =\n selectedOption && options?.includes(selectedOption) ? selectedOption : options?.[0];\n\n const snippet =\n groupSnippets !== undefined && safeSelectedOption !== undefined\n ? groupSnippets[safeSelectedOption]\n : undefined;\n\n const handleGroupSelect = (grp: string) => {\n setSelectedGroup(grp);\n };\n\n const handleOptionSelect = (opt: string) => {\n setSelectedOption(opt);\n setSelectedExampleIndex?.(options?.indexOf(opt) ?? 0);\n if (opt !== syncedLabel) {\n setSelectedLabel(opt);\n }\n };\n\n useEffect(() => {\n if (syncedLabel && syncedLabel !== safeSelectedOption && options?.includes(syncedLabel)) {\n setSelectedOption(syncedLabel);\n }\n }, [syncedLabel, options, safeSelectedOption]);\n\n return (\n <div\n className={cn(\n 'mint:text-xs mint:p-0.5 mint:leading-6 mint:rounded-2xl not-prose mint:overflow-hidden mint:relative mint:max-w-full mint:min-w-full',\n 'mint:bg-gray-50 mint:dark:bg-white/5 mint:border mint:border-gray-950/10 mint:dark:border-white/10',\n maxHeight\n )}\n data-testid=\"code-group-select\"\n >\n <div className=\"mint:flex mint:justify-between mint:text-xs mint:leading-6 mint:rounded-t-2xl mint:w-full\">\n <CodeSelectDropdown\n selectedOption={selectedGroup}\n setSelectedOption={handleGroupSelect}\n options={groups}\n data-testid=\"code-group-select-group\"\n />\n <div className=\"mint:flex mint:overflow-hidden\">\n {options && (\n <CodeSelectDropdown\n selectedOption={safeSelectedOption}\n setSelectedOption={handleOptionSelect}\n options={options}\n data-testid=\"code-group-select-option\"\n />\n )}\n <div\n className=\"mint:flex mint:items-center mint:gap-1.5 mint:pr-2.5\"\n data-testid=\"code-group-select-copy-button\"\n >\n <CodeGroupCopyButton code={snippet?.code ?? ''} />\n </div>\n </div>\n </div>\n\n <div\n role=\"region\"\n aria-label={locale['aria.codeSnippet']}\n className={cn(\n 'not-prose mint:rounded-xt mint:p-5 mint:min-w-full mint:max-w-0 mint:overflow-x-auto mint:max-h-[calc(100%-34px)] mint:w-full mint:scrollbar-track-transparent mint:scrollbar-thin mint:scrollbar-thumb-rounded mint:text-xs mint:leading-[1.35rem]',\n 'mint:bg-white mint:dark:bg-zinc-950'\n )}\n >\n <CodeSnippet language={snippet?.language}>{snippet?.code}</CodeSnippet>\n </div>\n </div>\n );\n};\n"],"names":["CodeGroupSelect","snippets","maxHeight","setSelectedExampleIndex","useContext","ApiPlaygroundContext","syncedLabel","setSelectedLabel","useCodeExampleLabel","locale","useSelectedLocale","groups","selectedGroup","setSelectedGroup","useState","groupSnippets","options","selectedOption","setSelectedOption","safeSelectedOption","snippet","handleGroupSelect","grp","handleOptionSelect","opt","useEffect","jsxs","cn","jsx","CodeSelectDropdown","CodeGroupCopyButton","CodeSnippet"],"mappings":";;;;;;;;;AAkBO,MAAMA,IAAkB,CAAC,EAAE,UAAAC,GAAU,WAAAC,QAAsC;AAChF,QAAM,EAAE,yBAAAC,EAAA,IAA4BC,EAAWC,CAAoB,GAC7D,EAAE,eAAeC,GAAa,kBAAAC,EAAA,IAAqBC,EAAA,GACnDC,IAASC,EAAA,GAETC,IAAS,OAAO,KAAKV,CAAQ,GAC7B,CAACW,GAAeC,CAAgB,IAAIC,EAASH,EAAO,CAAC,CAAC,GAEtDI,IAAgBH,MAAkB,SAAYX,EAASW,CAAa,IAAI,QACxEI,IAAUD,IAAgB,OAAO,KAAKA,CAAa,IAAI,QACvD,CAACE,GAAgBC,CAAiB,IAAIJ,EAASE,KAAWA,EAAQ,CAAC,CAAC,GAEpEG,IACJF,MAAkBD,KAAA,QAAAA,EAAS,SAASC,MAAkBA,IAAiBD,KAAA,gBAAAA,EAAU,IAE7EI,IACJL,MAAkB,UAAaI,MAAuB,SAClDJ,EAAcI,CAAkB,IAChC,QAEAE,IAAoB,CAACC,MAAgB;AACzC,IAAAT,EAAiBS,CAAG;AAAA,EACtB,GAEMC,IAAqB,CAACC,MAAgB;AAC1C,IAAAN,EAAkBM,CAAG,GACrBrB,KAAA,QAAAA,GAA0Ba,KAAA,gBAAAA,EAAS,QAAQQ,OAAQ,IAC/CA,MAAQlB,KACVC,EAAiBiB,CAAG;AAAA,EAExB;AAEA,SAAAC,EAAU,MAAM;AACd,IAAInB,KAAeA,MAAgBa,MAAsBH,KAAA,QAAAA,EAAS,SAASV,OACzEY,EAAkBZ,CAAW;AAAA,EAEjC,GAAG,CAACA,GAAaU,GAASG,CAAkB,CAAC,GAG3C,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,QACAzB;AAAA,MAAA;AAAA,MAEF,eAAY;AAAA,MAEZ,UAAA;AAAA,QAAA,gBAAAwB,EAAC,OAAA,EAAI,WAAU,6FACb,UAAA;AAAA,UAAA,gBAAAE;AAAA,YAACC;AAAA,YAAA;AAAA,cACC,gBAAgBjB;AAAA,cAChB,mBAAmBS;AAAA,cACnB,SAASV;AAAA,cACT,eAAY;AAAA,YAAA;AAAA,UAAA;AAAA,UAEd,gBAAAe,EAAC,OAAA,EAAI,WAAU,kCACZ,UAAA;AAAA,YAAAV,KACC,gBAAAY;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,gBAAgBV;AAAA,gBAChB,mBAAmBI;AAAA,gBACnB,SAAAP;AAAA,gBACA,eAAY;AAAA,cAAA;AAAA,YAAA;AAAA,YAGhB,gBAAAY;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,eAAY;AAAA,gBAEZ,UAAA,gBAAAA,EAACE,GAAA,EAAoB,OAAMV,KAAA,gBAAAA,EAAS,SAAQ,GAAA,CAAI;AAAA,cAAA;AAAA,YAAA;AAAA,UAClD,EAAA,CACF;AAAA,QAAA,GACF;AAAA,QAEA,gBAAAQ;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,cAAYnB,EAAO,kBAAkB;AAAA,YACrC,WAAWkB;AAAA,cACT;AAAA,cACA;AAAA,YAAA;AAAA,YAGF,4BAACI,GAAA,EAAY,UAAUX,KAAA,gBAAAA,EAAS,UAAW,iCAAS,KAAA,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MAC3D;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import
|
|
3
|
-
import
|
|
1
|
+
import { jsx as r, jsxs as k } from "react/jsx-runtime";
|
|
2
|
+
import v, { useState as y, useEffect as N } from "react";
|
|
3
|
+
import b from "prismjs";
|
|
4
4
|
import "prismjs/components/prism-javascript.js";
|
|
5
5
|
import "prismjs/components/prism-typescript.js";
|
|
6
6
|
import "prismjs/components/prism-python.js";
|
|
@@ -9,136 +9,131 @@ import "prismjs/components/prism-json.js";
|
|
|
9
9
|
import "prismjs/components/prism-markdown.js";
|
|
10
10
|
import "prismjs/components/prism-csharp.js";
|
|
11
11
|
import "prismjs/components/prism-powershell.js";
|
|
12
|
-
import { getNodeText as
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const [t, e] = _(!1), i = async (n) => {
|
|
12
|
+
import { getNodeText as T } from "../../utils/get-node-text.js";
|
|
13
|
+
import { cn as h } from "../../utils/cn.js";
|
|
14
|
+
import { ClipboardCheckmarkRegular as B, Copy20Regular as I } from "@fluentui/react-icons";
|
|
15
|
+
const A = ["image/png", "text/plain"];
|
|
16
|
+
function w() {
|
|
17
|
+
const [t, e] = y(!1), o = async (m) => {
|
|
19
18
|
try {
|
|
20
|
-
await navigator.clipboard.writeText(
|
|
21
|
-
} catch (
|
|
22
|
-
console.error("Failed to copy to clipboard:",
|
|
19
|
+
await navigator.clipboard.writeText(m), e(!0), setTimeout(() => e(!1), 2e3);
|
|
20
|
+
} catch (c) {
|
|
21
|
+
console.error("Failed to copy to clipboard:", c);
|
|
23
22
|
}
|
|
24
23
|
};
|
|
25
|
-
return { isCopied: t, copy:
|
|
24
|
+
return { isCopied: t, copy: o, copyBlob: async (m, c) => {
|
|
26
25
|
try {
|
|
27
|
-
if (
|
|
28
|
-
const
|
|
29
|
-
[
|
|
26
|
+
if (A.includes(c)) {
|
|
27
|
+
const n = await m.arrayBuffer(), a = new Blob([n], { type: c }), i = new ClipboardItem({
|
|
28
|
+
[c]: a
|
|
30
29
|
});
|
|
31
|
-
await navigator.clipboard.write([
|
|
30
|
+
await navigator.clipboard.write([i]), e(!0), setTimeout(() => e(!1), 2e3);
|
|
32
31
|
} else {
|
|
33
|
-
const
|
|
34
|
-
await
|
|
32
|
+
const n = await m.text();
|
|
33
|
+
await o(n);
|
|
35
34
|
}
|
|
36
|
-
} catch (
|
|
37
|
-
console.error("Failed to copy blob to clipboard:",
|
|
35
|
+
} catch (n) {
|
|
36
|
+
console.error("Failed to copy blob to clipboard:", n);
|
|
38
37
|
try {
|
|
39
|
-
const
|
|
40
|
-
await
|
|
41
|
-
} catch (
|
|
42
|
-
console.error("Failed to copy as text fallback:",
|
|
38
|
+
const a = await m.text();
|
|
39
|
+
await o(a);
|
|
40
|
+
} catch (a) {
|
|
41
|
+
console.error("Failed to copy as text fallback:", a);
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
} };
|
|
46
45
|
}
|
|
47
|
-
function
|
|
48
|
-
return /* @__PURE__ */
|
|
49
|
-
|
|
46
|
+
function R({ onClick: t, isCopied: e, showTooltip: o = !0 }) {
|
|
47
|
+
return /* @__PURE__ */ k("div", { className: "mint:relative", children: [
|
|
48
|
+
o && 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
49
|
/* @__PURE__ */ r(
|
|
51
50
|
"button",
|
|
52
51
|
{
|
|
53
52
|
onClick: t,
|
|
54
53
|
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
54
|
"aria-label": e ? "Copied" : "Copy code",
|
|
56
|
-
children: e ? /* @__PURE__ */ r(
|
|
55
|
+
children: e ? /* @__PURE__ */ r(B, { className: "mint:w-5 mint:h-5 mint:text-[#737373] mint:dark:text-[#a3a3a3]" }) : /* @__PURE__ */ r(I, { className: "mint:w-5 mint:h-5" })
|
|
57
56
|
}
|
|
58
57
|
)
|
|
59
58
|
] });
|
|
60
59
|
}
|
|
61
|
-
function
|
|
60
|
+
function q({ textToCopy: t, showTooltip: e = !0 }) {
|
|
61
|
+
const { isCopied: o, copy: p } = w();
|
|
62
|
+
return /* @__PURE__ */ r(R, { onClick: () => {
|
|
63
|
+
p(t);
|
|
64
|
+
}, isCopied: o, showTooltip: e });
|
|
65
|
+
}
|
|
66
|
+
function G({
|
|
62
67
|
children: t,
|
|
63
68
|
className: e,
|
|
64
|
-
fileName:
|
|
65
|
-
language:
|
|
66
|
-
blob:
|
|
67
|
-
contentType:
|
|
69
|
+
fileName: o,
|
|
70
|
+
language: p,
|
|
71
|
+
blob: m,
|
|
72
|
+
contentType: c
|
|
68
73
|
}) {
|
|
69
|
-
const [
|
|
70
|
-
|
|
74
|
+
const [n, a] = y("");
|
|
75
|
+
w();
|
|
76
|
+
const i = p || (e == null ? void 0 : e.replace(/^language-/, "")) || "text", d = T(t), _ = !!o, u = v.useMemo(() => {
|
|
77
|
+
var f, g;
|
|
71
78
|
if (typeof t != "object" || t == null)
|
|
72
79
|
return !1;
|
|
73
|
-
const
|
|
74
|
-
for (const l of
|
|
75
|
-
if (typeof l == "object" && l != null && "props" in l && ((
|
|
76
|
-
const
|
|
77
|
-
for (const
|
|
78
|
-
if (typeof
|
|
80
|
+
const s = Array.isArray(t) ? t : [t];
|
|
81
|
+
for (const l of s)
|
|
82
|
+
if (typeof l == "object" && l != null && "props" in l && ((f = l.props) != null && f.children)) {
|
|
83
|
+
const C = Array.isArray(l.props.children) ? l.props.children : [l.props.children];
|
|
84
|
+
for (const x of C)
|
|
85
|
+
if (typeof x == "object" && x != null && "props" in x && ((g = x.props) != null && g.className))
|
|
79
86
|
return !0;
|
|
80
87
|
}
|
|
81
88
|
return !1;
|
|
82
89
|
}, [t]);
|
|
83
|
-
|
|
84
|
-
if (!
|
|
90
|
+
return N(() => {
|
|
91
|
+
if (!u)
|
|
85
92
|
try {
|
|
86
|
-
const
|
|
87
|
-
|
|
88
|
-
} catch (
|
|
89
|
-
console.error("Failed to highlight code:",
|
|
93
|
+
const s = b.languages[i] || b.languages.plaintext, f = b.highlight(d, s, i);
|
|
94
|
+
a(f);
|
|
95
|
+
} catch (s) {
|
|
96
|
+
console.error("Failed to highlight code:", s), a(d);
|
|
90
97
|
}
|
|
91
|
-
}, [
|
|
92
|
-
const N = () => {
|
|
93
|
-
n && a ? C(n, a) : k(c);
|
|
94
|
-
};
|
|
95
|
-
return /* @__PURE__ */ x(
|
|
98
|
+
}, [d, i, u]), /* @__PURE__ */ r(
|
|
96
99
|
"div",
|
|
97
100
|
{
|
|
98
|
-
className:
|
|
99
|
-
children: [
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
className: g(
|
|
128
|
-
`language-${s}`,
|
|
129
|
-
"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]"
|
|
130
|
-
),
|
|
131
|
-
children: c
|
|
132
|
-
}
|
|
133
|
-
) }) })
|
|
134
|
-
] })
|
|
135
|
-
]
|
|
101
|
+
className: _ ? "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,
|
|
102
|
+
children: /* @__PURE__ */ r("div", { className: "not-prose mint:relative mint:rounded-xl mint:bg-[#f5f5f5] mint:dark:bg-[#141414]", children: /* @__PURE__ */ r("div", { className: "mint:code-scrollbar mint:overflow-x-auto", children: /* @__PURE__ */ r("pre", { className: "mint:px-4 mint:pb-3 mint:pt-2 mint:m-0 mint:whitespace-pre mint:text-sm", children: u ? /* @__PURE__ */ r(
|
|
103
|
+
"code",
|
|
104
|
+
{
|
|
105
|
+
className: h(
|
|
106
|
+
`language-${i}`,
|
|
107
|
+
"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]"
|
|
108
|
+
),
|
|
109
|
+
children: t
|
|
110
|
+
}
|
|
111
|
+
) : n ? /* @__PURE__ */ r(
|
|
112
|
+
"code",
|
|
113
|
+
{
|
|
114
|
+
className: h(
|
|
115
|
+
`language-${i}`,
|
|
116
|
+
"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]"
|
|
117
|
+
),
|
|
118
|
+
dangerouslySetInnerHTML: { __html: n }
|
|
119
|
+
}
|
|
120
|
+
) : /* @__PURE__ */ r(
|
|
121
|
+
"code",
|
|
122
|
+
{
|
|
123
|
+
className: h(
|
|
124
|
+
`language-${i}`,
|
|
125
|
+
"mint:block mint:text-[#24292e] mint:dark:text-[#e6edf3]"
|
|
126
|
+
),
|
|
127
|
+
children: d
|
|
128
|
+
}
|
|
129
|
+
) }) }) })
|
|
136
130
|
}
|
|
137
131
|
);
|
|
138
132
|
}
|
|
139
133
|
export {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
134
|
+
G as CodeBlock,
|
|
135
|
+
R as CopyIconButton,
|
|
136
|
+
q as CopyToClipboardButton,
|
|
137
|
+
w as useCopyToClipboard
|
|
143
138
|
};
|
|
144
139
|
//# sourceMappingURL=code-block.js.map
|