zudoku 0.42.2 → 0.43.1

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 (202) hide show
  1. package/dist/app/entry.client.js +21 -0
  2. package/dist/app/entry.client.js.map +1 -1
  3. package/dist/config/loader.d.ts +1 -16
  4. package/dist/config/loader.js +9 -90
  5. package/dist/config/loader.js.map +1 -1
  6. package/dist/config/validators/common.d.ts +193 -0
  7. package/dist/config/validators/common.js +2 -0
  8. package/dist/config/validators/common.js.map +1 -1
  9. package/dist/config/validators/validate.d.ts +70 -0
  10. package/dist/lib/components/Banner.js +1 -1
  11. package/dist/lib/components/Banner.js.map +1 -1
  12. package/dist/lib/components/Heading.d.ts +2 -2
  13. package/dist/lib/components/Heading.js +1 -1
  14. package/dist/lib/components/Heading.js.map +1 -1
  15. package/dist/lib/components/Layout.js +1 -1
  16. package/dist/lib/components/Layout.js.map +1 -1
  17. package/dist/lib/components/Main.js +3 -2
  18. package/dist/lib/components/Main.js.map +1 -1
  19. package/dist/lib/components/MobileTopNavigation.js +1 -1
  20. package/dist/lib/components/MobileTopNavigation.js.map +1 -1
  21. package/dist/lib/components/Pagination.js +2 -2
  22. package/dist/lib/components/Pagination.js.map +1 -1
  23. package/dist/lib/components/Search.js +1 -1
  24. package/dist/lib/components/Search.js.map +1 -1
  25. package/dist/lib/components/TopNavigation.js +1 -1
  26. package/dist/lib/components/TopNavigation.js.map +1 -1
  27. package/dist/lib/components/navigation/PoweredByZudoku.js +1 -1
  28. package/dist/lib/components/navigation/PoweredByZudoku.js.map +1 -1
  29. package/dist/lib/components/navigation/Sidebar.js +1 -1
  30. package/dist/lib/components/navigation/Sidebar.js.map +1 -1
  31. package/dist/lib/components/navigation/SidebarCategory.js +9 -5
  32. package/dist/lib/components/navigation/SidebarCategory.js.map +1 -1
  33. package/dist/lib/components/navigation/SidebarItem.js +2 -3
  34. package/dist/lib/components/navigation/SidebarItem.js.map +1 -1
  35. package/dist/lib/components/navigation/Toc.js +2 -2
  36. package/dist/lib/components/navigation/Toc.js.map +1 -1
  37. package/dist/lib/core/ZudokuContext.d.ts +2 -1
  38. package/dist/lib/core/ZudokuContext.js.map +1 -1
  39. package/dist/lib/oas/parser/upgrade/index.d.ts +1 -0
  40. package/dist/lib/oas/parser/upgrade/index.js +76 -24
  41. package/dist/lib/oas/parser/upgrade/index.js.map +1 -1
  42. package/dist/lib/plugins/openapi/CollapsibleCode.js +1 -1
  43. package/dist/lib/plugins/openapi/OperationList.js +1 -1
  44. package/dist/lib/plugins/openapi/OperationListItem.js +4 -2
  45. package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
  46. package/dist/lib/plugins/openapi/ParamInfos.js +1 -0
  47. package/dist/lib/plugins/openapi/ParamInfos.js.map +1 -1
  48. package/dist/lib/plugins/openapi/SchemaList.js +1 -1
  49. package/dist/lib/plugins/openapi/client/useCreateQuery.d.ts +5 -0
  50. package/dist/lib/plugins/openapi/client/useCreateQuery.js +10 -4
  51. package/dist/lib/plugins/openapi/client/useCreateQuery.js.map +1 -1
  52. package/dist/lib/plugins/openapi/components/ConstValue.d.ts +5 -0
  53. package/dist/lib/plugins/openapi/components/ConstValue.js +6 -0
  54. package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -0
  55. package/dist/lib/plugins/openapi/index.d.ts +3 -4
  56. package/dist/lib/plugins/openapi/index.js +6 -4
  57. package/dist/lib/plugins/openapi/index.js.map +1 -1
  58. package/dist/lib/plugins/openapi/interfaces.d.ts +4 -3
  59. package/dist/lib/plugins/openapi/playground/IdentitySelector.js +1 -1
  60. package/dist/lib/plugins/openapi/playground/Playground.js +2 -2
  61. package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
  62. package/dist/lib/plugins/openapi/playground/QueryParams.d.ts +1 -1
  63. package/dist/lib/plugins/openapi/playground/QueryParams.js +1 -1
  64. package/dist/lib/plugins/openapi/playground/SubmitButton.d.ts +1 -1
  65. package/dist/lib/plugins/openapi/playground/SubmitButton.js +1 -1
  66. package/dist/lib/plugins/openapi/playground/result-panel/RequestTab.js +1 -1
  67. package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +1 -1
  68. package/dist/lib/plugins/openapi/playground/result-panel/ResultPanel.js +1 -1
  69. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +6 -4
  70. package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
  71. package/dist/lib/plugins/openapi/schema/SchemaView.js +8 -5
  72. package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
  73. package/dist/lib/plugins/openapi/util/generateSchemaExample.js +40 -0
  74. package/dist/lib/plugins/openapi/util/generateSchemaExample.js.map +1 -1
  75. package/dist/lib/plugins/openapi/util/getRoutes.js +33 -3
  76. package/dist/lib/plugins/openapi/util/getRoutes.js.map +1 -1
  77. package/dist/lib/ui/SyntaxHighlight.js +1 -1
  78. package/dist/lib/ui/SyntaxHighlight.js.map +1 -1
  79. package/dist/lib/util/traverse.d.ts +1 -1
  80. package/dist/lib/util/traverse.js +6 -5
  81. package/dist/lib/util/traverse.js.map +1 -1
  82. package/dist/vite/build.js +1 -0
  83. package/dist/vite/build.js.map +1 -1
  84. package/dist/vite/config.js +1 -1
  85. package/dist/vite/config.js.map +1 -1
  86. package/dist/vite/dev-server.js +5 -2
  87. package/dist/vite/dev-server.js.map +1 -1
  88. package/dist/vite/html.d.ts +6 -2
  89. package/dist/vite/html.js +11 -8
  90. package/dist/vite/html.js.map +1 -1
  91. package/dist/vite/plugin-api.js +2 -2
  92. package/dist/vite/plugin-api.js.map +1 -1
  93. package/lib/{AuthenticationPlugin-ByDF051g.js → AuthenticationPlugin-BxoEZCSJ.js} +4 -4
  94. package/lib/{AuthenticationPlugin-ByDF051g.js.map → AuthenticationPlugin-BxoEZCSJ.js.map} +1 -1
  95. package/lib/{Markdown-mFpg_n9p.js → Markdown-DvdVn1O7.js} +1839 -1836
  96. package/lib/Markdown-DvdVn1O7.js.map +1 -0
  97. package/lib/{MdxPage-Cm7atiW3.js → MdxPage-DUcuusMU.js} +7 -7
  98. package/lib/{MdxPage-Cm7atiW3.js.map → MdxPage-DUcuusMU.js.map} +1 -1
  99. package/lib/{OasProvider-CDtbrUG_.js → OasProvider-CjMm8pB7.js} +8 -9
  100. package/lib/{OasProvider-CDtbrUG_.js.map → OasProvider-CjMm8pB7.js.map} +1 -1
  101. package/lib/{OperationList-DTyJIxKW.js → OperationList-BhJcPgGi.js} +1353 -1316
  102. package/lib/{OperationList-DTyJIxKW.js.map → OperationList-BhJcPgGi.js.map} +1 -1
  103. package/lib/Pagination-BgQxwq5j.js +48 -0
  104. package/lib/Pagination-BgQxwq5j.js.map +1 -0
  105. package/lib/{RouteGuard-DRtEu9nh.js → RouteGuard-D2gX29iI.js} +3 -3
  106. package/lib/{RouteGuard-DRtEu9nh.js.map → RouteGuard-D2gX29iI.js.map} +1 -1
  107. package/lib/{SchemaList-B9lvArDe.js → SchemaList-BexhT_Z0.js} +22 -23
  108. package/lib/{SchemaList-B9lvArDe.js.map → SchemaList-BexhT_Z0.js.map} +1 -1
  109. package/lib/SchemaView-Dt_-u8rW.js +365 -0
  110. package/lib/SchemaView-Dt_-u8rW.js.map +1 -0
  111. package/lib/{Select-CT64Ou40.js → Select-CYaEBIYK.js} +3 -3
  112. package/lib/{Select-CT64Ou40.js.map → Select-CYaEBIYK.js.map} +1 -1
  113. package/lib/{SlotletProvider-CS_nO-XT.js → SlotletProvider-wWbHYqWf.js} +7 -7
  114. package/lib/SlotletProvider-wWbHYqWf.js.map +1 -0
  115. package/lib/{SyntaxHighlight-CxhyyMkF.js → SyntaxHighlight-o7q0acut.js} +81 -81
  116. package/lib/{SyntaxHighlight-CxhyyMkF.js.map → SyntaxHighlight-o7q0acut.js.map} +1 -1
  117. package/lib/{Toc-D_tV8_Ri.js → Toc-BnN4zBb3.js} +17 -17
  118. package/lib/Toc-BnN4zBb3.js.map +1 -0
  119. package/lib/{chunk-BAXFHI7N-BVBOl9s0.js → chunk-BAXFHI7N-BLTsN6tl.js} +679 -659
  120. package/lib/{chunk-BAXFHI7N-BVBOl9s0.js.map → chunk-BAXFHI7N-BLTsN6tl.js.map} +1 -1
  121. package/lib/{circular-ByJI6Mci.js → circular-BWEIet3w.js} +4616 -5567
  122. package/lib/circular-BWEIet3w.js.map +1 -0
  123. package/lib/{createServer-IW7v5hWm.js → createServer-BQD3Eeqb.js} +1998 -1970
  124. package/lib/createServer-BQD3Eeqb.js.map +1 -0
  125. package/lib/{hook-CldJlP5c.js → hook-8GM2HXNM.js} +24 -24
  126. package/lib/{hook-CldJlP5c.js.map → hook-8GM2HXNM.js.map} +1 -1
  127. package/lib/index-CFf9AN-y.js +3208 -0
  128. package/lib/index-CFf9AN-y.js.map +1 -0
  129. package/lib/{index-DnQftvP4.js → index-DGNSSXgR.js} +77 -69
  130. package/lib/{index-DnQftvP4.js.map → index-DGNSSXgR.js.map} +1 -1
  131. package/lib/{mutation-DBQh7AOZ.js → mutation-Bq5bn7Hf.js} +2 -2
  132. package/lib/{mutation-DBQh7AOZ.js.map → mutation-Bq5bn7Hf.js.map} +1 -1
  133. package/lib/processors/traverse.js +9 -7
  134. package/lib/processors/traverse.js.map +1 -1
  135. package/lib/ui/SyntaxHighlight.js +1 -1
  136. package/lib/{useExposedProps-DbIZXspi.js → useExposedProps-DmTJxEXG.js} +2 -2
  137. package/lib/{useExposedProps-DbIZXspi.js.map → useExposedProps-DmTJxEXG.js.map} +1 -1
  138. package/lib/zudoku.auth-auth0.js +1 -1
  139. package/lib/zudoku.auth-clerk.js +2 -2
  140. package/lib/zudoku.auth-openid.js +3 -3
  141. package/lib/zudoku.components.js +6 -6
  142. package/lib/zudoku.hooks.js +1 -1
  143. package/lib/zudoku.plugin-api-catalog.js +5 -5
  144. package/lib/zudoku.plugin-api-keys.js +4 -4
  145. package/lib/zudoku.plugin-custom-pages.js +2 -2
  146. package/lib/zudoku.plugin-markdown.js +1 -1
  147. package/lib/zudoku.plugin-openapi.js +6 -5
  148. package/lib/zudoku.plugin-redirect.js +1 -1
  149. package/lib/zudoku.plugin-search-pagefind.js +3 -3
  150. package/package.json +4 -4
  151. package/src/app/entry.client.tsx +26 -0
  152. package/src/app/main.css +2 -2
  153. package/src/lib/components/Banner.tsx +1 -1
  154. package/src/lib/components/Heading.tsx +3 -3
  155. package/src/lib/components/Layout.tsx +1 -4
  156. package/src/lib/components/Main.tsx +4 -3
  157. package/src/lib/components/MobileTopNavigation.tsx +2 -2
  158. package/src/lib/components/Pagination.tsx +3 -3
  159. package/src/lib/components/Search.tsx +1 -1
  160. package/src/lib/components/TopNavigation.tsx +1 -1
  161. package/src/lib/components/navigation/PoweredByZudoku.tsx +6 -1
  162. package/src/lib/components/navigation/Sidebar.tsx +1 -1
  163. package/src/lib/components/navigation/SidebarCategory.tsx +9 -5
  164. package/src/lib/components/navigation/SidebarItem.tsx +2 -3
  165. package/src/lib/components/navigation/Toc.tsx +4 -4
  166. package/src/lib/core/ZudokuContext.ts +2 -1
  167. package/src/lib/oas/parser/upgrade/index.ts +97 -27
  168. package/src/lib/plugins/openapi/CollapsibleCode.tsx +2 -2
  169. package/src/lib/plugins/openapi/OperationList.tsx +1 -1
  170. package/src/lib/plugins/openapi/OperationListItem.tsx +15 -6
  171. package/src/lib/plugins/openapi/ParamInfos.tsx +1 -0
  172. package/src/lib/plugins/openapi/SchemaList.tsx +1 -1
  173. package/src/lib/plugins/openapi/client/useCreateQuery.ts +23 -4
  174. package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -0
  175. package/src/lib/plugins/openapi/index.tsx +8 -7
  176. package/src/lib/plugins/openapi/interfaces.ts +4 -3
  177. package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +2 -2
  178. package/src/lib/plugins/openapi/playground/Playground.tsx +5 -5
  179. package/src/lib/plugins/openapi/playground/QueryParams.tsx +2 -2
  180. package/src/lib/plugins/openapi/playground/SubmitButton.tsx +2 -2
  181. package/src/lib/plugins/openapi/playground/result-panel/RequestTab.tsx +2 -2
  182. package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +1 -1
  183. package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +1 -1
  184. package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +6 -3
  185. package/src/lib/plugins/openapi/schema/SchemaView.tsx +31 -15
  186. package/src/lib/plugins/openapi/util/generateSchemaExample.ts +45 -0
  187. package/src/lib/plugins/openapi/util/getRoutes.tsx +67 -3
  188. package/src/lib/ui/SyntaxHighlight.tsx +2 -2
  189. package/src/lib/util/traverse.ts +8 -5
  190. package/lib/Markdown-mFpg_n9p.js.map +0 -1
  191. package/lib/Pagination-DLPL5z77.js +0 -48
  192. package/lib/Pagination-DLPL5z77.js.map +0 -1
  193. package/lib/SchemaView-DXjql-Bl.js +0 -356
  194. package/lib/SchemaView-DXjql-Bl.js.map +0 -1
  195. package/lib/SlotletProvider-CS_nO-XT.js.map +0 -1
  196. package/lib/Toc-D_tV8_Ri.js.map +0 -1
  197. package/lib/circular-ByJI6Mci.js.map +0 -1
  198. package/lib/context-Lrf2Y9bR.js +0 -22
  199. package/lib/context-Lrf2Y9bR.js.map +0 -1
  200. package/lib/createServer-IW7v5hWm.js.map +0 -1
  201. package/lib/index-Ckl3s_w-.js +0 -2184
  202. package/lib/index-Ckl3s_w-.js.map +0 -1
@@ -0,0 +1,365 @@
1
+ import { j as s } from "./jsx-runtime-C5mzlN2N.js";
2
+ import { ChevronsLeftRightIcon as E, ChevronUpIcon as S, ChevronDownIcon as C, CircleIcon as k, CircleDotIcon as z, CircleFadingPlusIcon as L, SquareMinusIcon as R, SquarePlusIcon as A, MinusIcon as $, PlusIcon as D, RefreshCcwDotIcon as q, InfoIcon as B } from "lucide-react";
3
+ import { I, S as c, M as v, P as h } from "./Markdown-DvdVn1O7.js";
4
+ import { Card as j } from "./ui/Card.js";
5
+ import { c as x } from "./cn-qaFjX9_3.js";
6
+ import { isValidElement as M, useState as m, useCallback as T } from "react";
7
+ import { B as G } from "./Button-BBNrKpQd.js";
8
+ import * as l from "@radix-ui/react-collapsible";
9
+ import { Button as F } from "./ui/Button.js";
10
+ import { o as _ } from "./objectEntries-yMIkr2mI.js";
11
+ import { C as J } from "./circular-BWEIet3w.js";
12
+ const U = (e, t) => e.reduce(
13
+ (r, n) => {
14
+ const i = t(n);
15
+ return r[i] || (r[i] = []), r[i].push(n), r;
16
+ },
17
+ {}
18
+ ), V = ({ pattern: e }) => {
19
+ const [t, r] = m(!1), n = e.length > 20, i = n ? `${e.slice(0, 20)}…` : e;
20
+ return /* @__PURE__ */ s.jsxs(
21
+ I,
22
+ {
23
+ className: x("text-xs", n && "cursor-pointer"),
24
+ onClick: () => r(!t),
25
+ selectOnClick: !1,
26
+ children: [
27
+ t ? e : i,
28
+ n && /* @__PURE__ */ s.jsx("button", { type: "button", className: "p-1 translate-y-[2px]", children: !t && /* @__PURE__ */ s.jsx(E, { size: 12 }) })
29
+ ]
30
+ }
31
+ );
32
+ }, H = (e) => e ? [
33
+ e.type === "array" && e.items.type ? `${e.items.type}[]` : Array.isArray(e.type) ? e.type.join(" | ") : e.type,
34
+ e.enum && "enum",
35
+ e.const && "const",
36
+ e.format,
37
+ e.minimum && `min: ${e.minimum}`,
38
+ e.maximum && `max: ${e.maximum}`,
39
+ e.minLength && `minLength: ${e.minLength}`,
40
+ e.maxLength && `maxLength: ${e.maxLength}`,
41
+ e.minItems && `minItems: ${e.minItems}`,
42
+ e.maxItems && `maxItems: ${e.maxItems}`,
43
+ e.uniqueItems && "unique",
44
+ e.minProperties && `minProps: ${e.minProperties}`,
45
+ e.maxProperties && `maxProps: ${e.maxProperties}`,
46
+ e.readOnly && "readOnly",
47
+ e.writeOnly && "writeOnly",
48
+ e.deprecated && "deprecated",
49
+ e.pattern && /* @__PURE__ */ s.jsxs(s.Fragment, { children: [
50
+ "pattern: ",
51
+ /* @__PURE__ */ s.jsx(V, { pattern: e.pattern })
52
+ ] })
53
+ ] : [], g = ({
54
+ schema: e,
55
+ extraItems: t = [],
56
+ className: r
57
+ }) => {
58
+ const n = [...H(e), ...t].flatMap(
59
+ (i) => typeof i == "string" || M(i) ? i : []
60
+ );
61
+ return /* @__PURE__ */ s.jsx("span", { className: r, children: n.map((i, o) => /* @__PURE__ */ s.jsxs("span", { className: "text-muted-foreground", children: [
62
+ i,
63
+ o < n.length - 1 && /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground/50", children: " · " })
64
+ ] }, o)) });
65
+ }, y = ({
66
+ values: e,
67
+ className: t,
68
+ maxVisibleValues: r = 8
69
+ }) => {
70
+ const [n, i] = m(!1);
71
+ if (!e.length) return null;
72
+ const o = e.length > r, a = o && !n ? e.slice(0, r) : e;
73
+ return /* @__PURE__ */ s.jsxs("div", { className: x("flex flex-wrap gap-1.5 text-xs", t), children: [
74
+ /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Enum values: " }),
75
+ a.map((d) => /* @__PURE__ */ s.jsx("div", { children: /* @__PURE__ */ s.jsx(c, { className: "border rounded px-1 font-mono", children: d }) }, d)),
76
+ o && /* @__PURE__ */ s.jsx(
77
+ G,
78
+ {
79
+ variant: "ghost",
80
+ size: "sm",
81
+ className: "h-fit px-0",
82
+ onClick: () => i(!n),
83
+ children: n ? /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-1", children: [
84
+ /* @__PURE__ */ s.jsx(S, { size: 12 }),
85
+ /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "show less" })
86
+ ] }) : /* @__PURE__ */ s.jsxs("div", { className: "flex items-center gap-1", children: [
87
+ /* @__PURE__ */ s.jsx(C, { size: 12 }),
88
+ /* @__PURE__ */ s.jsxs("span", { className: "text-muted-foreground", children: [
89
+ "show ",
90
+ e.length - r,
91
+ " more"
92
+ ] })
93
+ ] })
94
+ }
95
+ )
96
+ ] });
97
+ }, N = ({
98
+ schema: e
99
+ }) => {
100
+ var n;
101
+ const t = (n = e.examples) == null ? void 0 : n.at(0), r = e.default;
102
+ return !t && !r ? null : /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-1 text-xs", children: [
103
+ t && /* @__PURE__ */ s.jsxs("div", { children: [
104
+ /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Example: " }),
105
+ /* @__PURE__ */ s.jsx(c, { className: "border rounded px-1 font-mono", children: typeof t == "object" ? JSON.stringify(t) : t })
106
+ ] }),
107
+ r && /* @__PURE__ */ s.jsxs("div", { children: [
108
+ /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Default: " }),
109
+ /* @__PURE__ */ s.jsx(c, { className: "border rounded px-1 font-mono", children: typeof r == "object" ? JSON.stringify(r) : r })
110
+ ] })
111
+ ] });
112
+ }, P = ({
113
+ schema: e,
114
+ hideDescription: t = !1
115
+ }) => /* @__PURE__ */ s.jsx("div", { className: "flex flex-col gap-1 text-xs", children: /* @__PURE__ */ s.jsxs("div", { children: [
116
+ /* @__PURE__ */ s.jsx("span", { className: "text-muted-foreground", children: "Const value: " }),
117
+ /* @__PURE__ */ s.jsx(c, { className: "border rounded px-1 font-mono", children: e.const }),
118
+ !t && e.description && /* @__PURE__ */ s.jsx("div", { className: "text-muted-foreground", children: e.description })
119
+ ] }) }), K = {
120
+ AND: /* @__PURE__ */ s.jsx(L, { size: 16, className: "fill-card" }),
121
+ OR: /* @__PURE__ */ s.jsx(z, { size: 16, className: "fill-card" }),
122
+ ONE: /* @__PURE__ */ s.jsx(k, { size: 14, className: "fill-card" })
123
+ }, Q = {
124
+ AND: "text-green-500 dark:text-green-300/60",
125
+ OR: "text-blue-400 dark:text-blue-500",
126
+ ONE: "text-purple-500 dark:text-purple-300/60"
127
+ }, W = ({
128
+ type: e,
129
+ isOpen: t,
130
+ className: r,
131
+ schemeName: n
132
+ }) => /* @__PURE__ */ s.jsx(
133
+ "div",
134
+ {
135
+ className: x(
136
+ Q[e],
137
+ "relative text-sm flex py-2",
138
+ "before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']",
139
+ r
140
+ ),
141
+ children: /* @__PURE__ */ s.jsxs("div", { className: "-translate-x-[7px] flex gap-1 items-center", children: [
142
+ K[e],
143
+ /* @__PURE__ */ s.jsx(
144
+ "div",
145
+ {
146
+ className: x(
147
+ "translate-y-px mx-px opacity-0 group-hover:opacity-100 transition",
148
+ !t && "-rotate-90"
149
+ ),
150
+ children: /* @__PURE__ */ s.jsx(C, { size: 16 })
151
+ }
152
+ ),
153
+ /* @__PURE__ */ s.jsx("span", { className: "text-sm text-foreground", children: n })
154
+ ] })
155
+ }
156
+ ), X = (e) => {
157
+ const [t, r] = m(!0);
158
+ return /* @__PURE__ */ s.jsxs(
159
+ l.Root,
160
+ {
161
+ open: t,
162
+ onOpenChange: () => r((n) => !n),
163
+ className: "group",
164
+ children: [
165
+ /* @__PURE__ */ s.jsx(l.Trigger, { children: /* @__PURE__ */ s.jsx(
166
+ W,
167
+ {
168
+ type: e.type,
169
+ isOpen: t,
170
+ schemeName: e.schema.title
171
+ }
172
+ ) }),
173
+ !t && /* @__PURE__ */ s.jsx("div", { className: "wavy-line bg-border translate-y-1" }),
174
+ /* @__PURE__ */ s.jsx(l.Content, { children: /* @__PURE__ */ s.jsx(p, { schema: e.schema }) })
175
+ ]
176
+ }
177
+ );
178
+ }, Y = {
179
+ AND: "All of",
180
+ OR: "Any of",
181
+ ONE: "One of"
182
+ }, Z = ({
183
+ schemas: e,
184
+ type: t,
185
+ isOpen: r,
186
+ toggleOpen: n
187
+ }) => /* @__PURE__ */ s.jsx(l.Root, { open: r, onOpenChange: n, asChild: !0, children: /* @__PURE__ */ s.jsxs(j, { className: "px-6", children: [
188
+ /* @__PURE__ */ s.jsxs(l.Trigger, { className: "flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5", children: [
189
+ r ? /* @__PURE__ */ s.jsx(R, { size: 14 }) : /* @__PURE__ */ s.jsx(A, { size: 14 }),
190
+ /* @__PURE__ */ s.jsx("span", { children: Y[t] })
191
+ ] }),
192
+ /* @__PURE__ */ s.jsx(l.Content, { className: "pb-4", children: e.map((i, o) => (
193
+ // eslint-disable-next-line react/no-array-index-key
194
+ /* @__PURE__ */ s.jsx(X, { type: t, schema: i }, o)
195
+ )) })
196
+ ] }) }), ee = (e) => typeof e == "string" && ["string", "number", "boolean", "integer", "null"].includes(e), u = (e) => e.type === "array" || // schema.type might be an array of types, so we need to check if "array" is one of them
197
+ Array.isArray(e.type) && e.type.includes("array"), se = (e) => e.type === "object" && Object.keys(e.properties ?? {}).length > 0 || e.type === "array" && typeof e.items == "object" && (!e.items.type || e.items.type === "object"), b = (e) => !!(e.oneOf ?? e.allOf ?? e.anyOf), te = {
198
+ allOf: "AND",
199
+ anyOf: "OR",
200
+ oneOf: "ONE"
201
+ }, f = (e) => e === J, w = ({ schema: e }) => {
202
+ const [t, r] = m(!0), n = T(() => r((i) => !i), []);
203
+ for (const [i, o] of _(te))
204
+ if (e[i])
205
+ return /* @__PURE__ */ s.jsx(
206
+ Z,
207
+ {
208
+ schemas: e[i],
209
+ type: o,
210
+ isOpen: t,
211
+ toggleOpen: n
212
+ }
213
+ );
214
+ }, O = () => /* @__PURE__ */ s.jsxs(
215
+ I,
216
+ {
217
+ className: "inline-flex items-center gap-1.5 italic text-xs translate-y-0.5",
218
+ selectOnClick: !1,
219
+ children: [
220
+ /* @__PURE__ */ s.jsx(q, { size: 13 }),
221
+ /* @__PURE__ */ s.jsx("span", { children: "circular" })
222
+ ]
223
+ }
224
+ ), re = ({
225
+ name: e,
226
+ schema: t,
227
+ group: r,
228
+ defaultOpen: n = !1,
229
+ showCollapseButton: i = !0
230
+ }) => {
231
+ const [o, a] = m(n);
232
+ return f(t) ? /* @__PURE__ */ s.jsx("li", { className: "p-4 bg-border/20 hover:bg-border/30", children: /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-2.5 justify-between text-sm", children: [
233
+ /* @__PURE__ */ s.jsxs("div", { className: "space-x-2 rtl:space-x-reverse", children: [
234
+ /* @__PURE__ */ s.jsx("code", { children: e }),
235
+ /* @__PURE__ */ s.jsx(
236
+ g,
237
+ {
238
+ schema: t,
239
+ extraItems: [/* @__PURE__ */ s.jsx(O, {}, "circular-ref")]
240
+ }
241
+ )
242
+ ] }),
243
+ /* @__PURE__ */ s.jsx(N, { schema: t })
244
+ ] }) }) : /* @__PURE__ */ s.jsx("li", { className: "p-4 bg-border/20 hover:bg-border/30", children: /* @__PURE__ */ s.jsxs("div", { className: "flex flex-col gap-2.5 justify-between text-sm", children: [
245
+ /* @__PURE__ */ s.jsxs("div", { className: "space-x-2 rtl:space-x-reverse", children: [
246
+ /* @__PURE__ */ s.jsx(c, { asChild: !0, children: /* @__PURE__ */ s.jsx("code", { children: e }) }),
247
+ /* @__PURE__ */ s.jsx(
248
+ g,
249
+ {
250
+ schema: t,
251
+ extraItems: [
252
+ r !== "optional" && /* @__PURE__ */ s.jsx("span", { className: "text-primary", children: "required" }),
253
+ u(t) && "items" in t && f(t.items) && /* @__PURE__ */ s.jsx(O, {})
254
+ ]
255
+ }
256
+ )
257
+ ] }),
258
+ t.description && /* @__PURE__ */ s.jsx(
259
+ v,
260
+ {
261
+ className: x(h, "text-sm leading-normal line-clamp-4"),
262
+ content: t.description
263
+ }
264
+ ),
265
+ t.type === "array" && "items" in t && t.items.enum && /* @__PURE__ */ s.jsx(y, { values: t.items.enum }),
266
+ t.const && /* @__PURE__ */ s.jsx(P, { schema: t, hideDescription: !0 }),
267
+ t.enum && /* @__PURE__ */ s.jsx(y, { values: t.enum }),
268
+ /* @__PURE__ */ s.jsx(N, { schema: t }),
269
+ (b(t) || se(t) || u(t) || t.additionalProperties) && /* @__PURE__ */ s.jsxs(
270
+ l.Root,
271
+ {
272
+ defaultOpen: n,
273
+ open: o,
274
+ onOpenChange: () => a(!o),
275
+ children: [
276
+ i && /* @__PURE__ */ s.jsx(l.Trigger, { asChild: !0, children: /* @__PURE__ */ s.jsxs(F, { variant: "expand", size: "sm", children: [
277
+ o ? /* @__PURE__ */ s.jsx($, { size: 12 }) : /* @__PURE__ */ s.jsx(D, { size: 12 }),
278
+ o ? "Hide properties" : "Show properties"
279
+ ] }) }),
280
+ /* @__PURE__ */ s.jsx(l.Content, { children: /* @__PURE__ */ s.jsx("div", { className: "mt-2", children: b(t) ? /* @__PURE__ */ s.jsx(w, { schema: t }) : t.type === "object" ? /* @__PURE__ */ s.jsx(p, { schema: t }) : u(t) && "items" in t && typeof t.items == "object" && !f(t.items) && /* @__PURE__ */ s.jsx(p, { schema: t.items }) }) })
281
+ ]
282
+ }
283
+ )
284
+ ] }) });
285
+ }, ne = (e) => e && /* @__PURE__ */ s.jsx(
286
+ v,
287
+ {
288
+ className: x(h, "text-sm leading-normal line-clamp-4"),
289
+ content: e
290
+ }
291
+ ), ie = (e) => /* @__PURE__ */ s.jsxs(j, { className: "p-4 space-y-2", children: [
292
+ /* @__PURE__ */ s.jsx("span", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ s.jsx(g, { schema: e }) }),
293
+ e.enum && /* @__PURE__ */ s.jsx(y, { values: e.enum }),
294
+ ne(e.description),
295
+ /* @__PURE__ */ s.jsx(N, { schema: e })
296
+ ] }), p = ({
297
+ schema: e,
298
+ defaultOpen: t = !1
299
+ }) => {
300
+ if (!e || Object.keys(e).length === 0)
301
+ return /* @__PURE__ */ s.jsx(j, { className: "p-4", children: /* @__PURE__ */ s.jsx("span", { className: "text-sm text-muted-foreground italic", children: "No schema specified" }) });
302
+ if (e.const)
303
+ return /* @__PURE__ */ s.jsx(P, { schema: e });
304
+ if (b(e))
305
+ return /* @__PURE__ */ s.jsx(w, { schema: e });
306
+ if (ee(e.type))
307
+ return ie(e);
308
+ if (e.type === "array" && typeof e.items == "object")
309
+ return /* @__PURE__ */ s.jsx(p, { schema: e.items });
310
+ if (e.type === "object") {
311
+ const r = U(
312
+ Object.entries(e.properties ?? {}),
313
+ ([o, a]) => {
314
+ var d;
315
+ return a.deprecated ? "deprecated" : (d = e.required) != null && d.includes(o) ? "required" : "optional";
316
+ }
317
+ ), n = ["required", "optional", "deprecated"], i = typeof e.additionalProperties == "object" ? /* @__PURE__ */ s.jsx(p, { schema: e.additionalProperties }) : e.additionalProperties === !0 ? /* @__PURE__ */ s.jsxs(
318
+ "div",
319
+ {
320
+ className: x(
321
+ h,
322
+ "text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1"
323
+ ),
324
+ children: [
325
+ /* @__PURE__ */ s.jsx("span", { children: "Additional properties are allowed" }),
326
+ /* @__PURE__ */ s.jsx(
327
+ "a",
328
+ {
329
+ className: "p-0.5 -m-0.5",
330
+ href: "https://swagger.io/docs/specification/v3_0/data-models/dictionaries/",
331
+ rel: "noopener noreferrer",
332
+ target: "_blank",
333
+ children: /* @__PURE__ */ s.jsx(B, { size: 14 })
334
+ }
335
+ )
336
+ ]
337
+ }
338
+ ) : null;
339
+ return /* @__PURE__ */ s.jsxs(j, { className: "divide-y overflow-hidden", children: [
340
+ n.map(
341
+ (o) => r[o] && /* @__PURE__ */ s.jsx("ul", { className: "divide-y", children: r[o].map(([a, d]) => /* @__PURE__ */ s.jsx(
342
+ re,
343
+ {
344
+ name: a,
345
+ schema: d,
346
+ group: o,
347
+ defaultOpen: t
348
+ },
349
+ a
350
+ )) }, o)
351
+ ),
352
+ i
353
+ ] });
354
+ }
355
+ return null;
356
+ };
357
+ export {
358
+ y as E,
359
+ g as P,
360
+ p as S,
361
+ N as a,
362
+ U as g,
363
+ u as i
364
+ };
365
+ //# sourceMappingURL=SchemaView-Dt_-u8rW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaView-Dt_-u8rW.js","sources":["../src/lib/util/groupBy.ts","../src/lib/plugins/openapi/ParamInfos.tsx","../src/lib/plugins/openapi/components/EnumValues.tsx","../src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx","../src/lib/plugins/openapi/components/ConstValue.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupConnector.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroupItem.tsx","../src/lib/plugins/openapi/schema/LogicalGroup/LogicalGroup.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx"],"sourcesContent":["export const groupBy = <\n T extends Record<PropertyKey, any>,\n KeySelector extends (item: T) => PropertyKey,\n>(\n arr: T[],\n keySelector: KeySelector,\n): Partial<Record<ReturnType<KeySelector>, T[]>> => {\n return arr.reduce(\n (accumulator, val) => {\n const groupedKey = keySelector(val) as ReturnType<KeySelector>;\n if (!accumulator[groupedKey]) {\n accumulator[groupedKey] = [];\n }\n accumulator[groupedKey].push(val);\n return accumulator;\n },\n {} as Record<ReturnType<KeySelector>, T[]>,\n );\n};\n","import { ChevronsLeftRightIcon } from \"lucide-react\";\nimport { isValidElement, useState } from \"react\";\nimport { InlineCode } from \"../../components/InlineCode.js\";\nimport { type SchemaObject } from \"../../oas/parser/index.js\";\nimport { cn } from \"../../util/cn.js\";\n\nconst Pattern = ({ pattern }: { pattern: string }) => {\n const [isExpanded, setIsExpanded] = useState(false);\n const isExpandable = pattern.length > 20;\n const shortPattern = isExpandable ? `${pattern.slice(0, 20)}…` : pattern;\n\n return (\n <InlineCode\n className={cn(\"text-xs\", isExpandable && \"cursor-pointer\")}\n onClick={() => setIsExpanded(!isExpanded)}\n selectOnClick={false}\n >\n {isExpanded ? pattern : shortPattern}\n {isExpandable && (\n <button type=\"button\" className=\"p-1 translate-y-[2px]\">\n {!isExpanded && <ChevronsLeftRightIcon size={12} />}\n </button>\n )}\n </InlineCode>\n );\n};\n\nconst getSchemaInfos = (schema?: SchemaObject) => {\n if (!schema) return [];\n\n return [\n schema.type === \"array\" && schema.items.type\n ? `${schema.items.type}[]`\n : Array.isArray(schema.type)\n ? schema.type.join(\" | \")\n : schema.type,\n\n schema.enum && \"enum\",\n schema.const && \"const\",\n schema.format,\n schema.minimum && `min: ${schema.minimum}`,\n schema.maximum && `max: ${schema.maximum}`,\n schema.minLength && `minLength: ${schema.minLength}`,\n schema.maxLength && `maxLength: ${schema.maxLength}`,\n schema.minItems && `minItems: ${schema.minItems}`,\n schema.maxItems && `maxItems: ${schema.maxItems}`,\n schema.uniqueItems && \"unique\",\n schema.minProperties && `minProps: ${schema.minProperties}`,\n schema.maxProperties && `maxProps: ${schema.maxProperties}`,\n schema.readOnly && \"readOnly\",\n schema.writeOnly && \"writeOnly\",\n schema.deprecated && \"deprecated\",\n schema.pattern && (\n <>\n pattern: <Pattern pattern={schema.pattern} />\n </>\n ),\n ];\n};\n\nexport const ParamInfos = ({\n schema,\n extraItems = [],\n className,\n}: {\n schema?: SchemaObject;\n extraItems?: unknown[];\n className?: string;\n}) => {\n const filteredItems = [...getSchemaInfos(schema), ...extraItems].flatMap(\n (item) => (typeof item === \"string\" || isValidElement(item) ? item : []),\n );\n\n return (\n <span className={className}>\n {filteredItems.map((item, index) => (\n <span className=\"text-muted-foreground\" key={index}>\n {item}\n {index < filteredItems.length - 1 && (\n <span className=\"text-muted-foreground/50\">\n &nbsp;&middot;&nbsp;\n </span>\n )}\n </span>\n ))}\n </span>\n );\n};\n","import { ChevronDownIcon, ChevronUpIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { Button } from \"zudoku/ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { SelectOnClick } from \"./SelectOnClick.js\";\n\nexport const EnumValues = ({\n values,\n className,\n maxVisibleValues = 8,\n}: {\n values: Array<string | number>;\n className?: string;\n maxVisibleValues?: number;\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n\n if (!values.length) return null;\n\n const shouldCollapse = values.length > maxVisibleValues;\n const visibleValues =\n shouldCollapse && !isOpen ? values.slice(0, maxVisibleValues) : values;\n\n return (\n <div className={cn(\"flex flex-wrap gap-1.5 text-xs\", className)}>\n <span className=\"text-muted-foreground\">Enum values: </span>\n {visibleValues.map((value) => (\n <div key={value}>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {value}\n </SelectOnClick>\n </div>\n ))}\n {shouldCollapse && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"h-fit px-0\"\n onClick={() => setIsOpen(!isOpen)}\n >\n {isOpen ? (\n <div className=\"flex items-center gap-1\">\n <ChevronUpIcon size={12} />\n <span className=\"text-muted-foreground\">show less</span>\n </div>\n ) : (\n <div className=\"flex items-center gap-1\">\n <ChevronDownIcon size={12} />\n <span className=\"text-muted-foreground\">\n show {values.length - maxVisibleValues} more\n </span>\n </div>\n )}\n </Button>\n )}\n </div>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\n\nexport const SchemaExampleAndDefault = ({\n schema,\n}: {\n schema: SchemaObject;\n}) => {\n const example = schema.examples?.at(0);\n const defaultValue = schema.default;\n\n if (!example && !defaultValue) return null;\n\n return (\n <div className=\"flex flex-col gap-1 text-xs\">\n {example && (\n <div>\n <span className=\"text-muted-foreground\">Example: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {typeof example === \"object\" ? JSON.stringify(example) : example}\n </SelectOnClick>\n </div>\n )}\n {defaultValue && (\n <div>\n <span className=\"text-muted-foreground\">Default: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {typeof defaultValue === \"object\"\n ? JSON.stringify(defaultValue)\n : defaultValue}\n </SelectOnClick>\n </div>\n )}\n </div>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { SelectOnClick } from \"./SelectOnClick.js\";\n\nexport const ConstValue = ({\n schema,\n hideDescription = false,\n}: {\n schema: SchemaObject;\n hideDescription?: boolean;\n}) => {\n return (\n <div className=\"flex flex-col gap-1 text-xs\">\n <div>\n <span className=\"text-muted-foreground\">Const value: </span>\n <SelectOnClick className=\"border rounded px-1 font-mono\">\n {schema.const}\n </SelectOnClick>\n {!hideDescription && schema.description && (\n <div className=\"text-muted-foreground\">{schema.description}</div>\n )}\n </div>\n </div>\n );\n};\n","import {\n ChevronDownIcon,\n CircleDotIcon,\n CircleFadingPlusIcon,\n CircleIcon,\n} from \"lucide-react\";\nimport { cn } from \"../../../../util/cn.js\";\n\nimport type { LogicalGroupType } from \"../utils.js\";\n\nconst iconMap = {\n AND: <CircleFadingPlusIcon size={16} className=\"fill-card\" />,\n OR: <CircleDotIcon size={16} className=\"fill-card\" />,\n ONE: <CircleIcon size={14} className=\"fill-card\" />,\n} as const;\n\nconst colorClass = {\n AND: \"text-green-500 dark:text-green-300/60\",\n OR: \"text-blue-400 dark:text-blue-500\",\n ONE: \"text-purple-500 dark:text-purple-300/60\",\n} as const;\n\nexport const LogicalGroupConnector = ({\n type,\n isOpen,\n className,\n schemeName,\n}: {\n type: LogicalGroupType;\n isOpen: boolean;\n className?: string;\n schemeName?: string;\n}) => {\n return (\n <div\n className={cn(\n colorClass[type],\n \"relative text-sm flex py-2\",\n \"before:border-l before:absolute before:-top-2 before:-bottom-2 before:border-border before:border-dashed before:content-['']\",\n className,\n )}\n >\n <div className=\"-translate-x-[7px] flex gap-1 items-center\">\n {iconMap[type]}\n <div\n className={cn(\n \"translate-y-px mx-px opacity-0 group-hover:opacity-100 transition\",\n !isOpen && \"-rotate-90\",\n )}\n >\n <ChevronDownIcon size={16} />\n </div>\n <span className=\"text-sm text-foreground\">{schemeName}</span>\n </div>\n </div>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { useState } from \"react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { SchemaView } from \"../SchemaView.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupConnector } from \"./LogicalGroupConnector.js\";\n\nexport const LogicalGroupItem = (props: {\n type: LogicalGroupType;\n schema: SchemaObject;\n}) => {\n const [isOpen, setIsOpen] = useState(true);\n\n return (\n <Collapsible.Root\n open={isOpen}\n onOpenChange={() => setIsOpen((prev) => !prev)}\n className=\"group\"\n >\n <Collapsible.Trigger>\n <LogicalGroupConnector\n type={props.type}\n isOpen={isOpen}\n schemeName={props.schema.title}\n />\n </Collapsible.Trigger>\n {!isOpen && <div className=\"wavy-line bg-border translate-y-1\" />}\n <Collapsible.Content>\n <SchemaView schema={props.schema} />\n </Collapsible.Content>\n </Collapsible.Root>\n );\n};\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { SquareMinusIcon, SquarePlusIcon } from \"lucide-react\";\nimport type { SchemaObject } from \"../../../../oas/parser/index.js\";\nimport { Card } from \"../../../../ui/Card.js\";\nimport type { LogicalGroupType } from \"../utils.js\";\nimport { LogicalGroupItem } from \"./LogicalGroupItem.js\";\n\nconst typeLabel = {\n AND: \"All of\",\n OR: \"Any of\",\n ONE: \"One of\",\n};\n\nexport const LogicalGroup = ({\n schemas,\n type,\n isOpen,\n toggleOpen,\n}: {\n schemas: SchemaObject[];\n type: LogicalGroupType;\n isOpen: boolean;\n toggleOpen: () => void;\n}) => (\n <Collapsible.Root open={isOpen} onOpenChange={toggleOpen} asChild>\n <Card className=\"px-6\">\n <Collapsible.Trigger className=\"flex gap-2 items-center py-2 w-full text-sm text-muted-foreground -translate-x-1.5\">\n {isOpen ? <SquareMinusIcon size={14} /> : <SquarePlusIcon size={14} />}\n <span>{typeLabel[type]}</span>\n </Collapsible.Trigger>\n\n <Collapsible.Content className=\"pb-4\">\n {schemas.map((subSchema, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <LogicalGroupItem key={index} type={type} schema={subSchema} />\n ))}\n </Collapsible.Content>\n </Card>\n </Collapsible.Root>\n);\n","import { CIRCULAR_REF } from \"../../../oas/graphql/circular.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport const isBasicType = (\n type: unknown,\n): type is \"string\" | \"number\" | \"boolean\" | \"integer\" | \"null\" =>\n typeof type === \"string\" &&\n [\"string\", \"number\", \"boolean\", \"integer\", \"null\"].includes(type);\n\nexport const isArrayType = (value: SchemaObject) =>\n value.type === \"array\" ||\n // schema.type might be an array of types, so we need to check if \"array\" is one of them\n (Array.isArray(value.type) && value.type.includes(\"array\"));\n\nexport const isComplexType = (value: SchemaObject) =>\n (value.type === \"object\" && Object.keys(value.properties ?? {}).length > 0) ||\n (value.type === \"array\" &&\n typeof value.items === \"object\" &&\n (!value.items.type || value.items.type === \"object\"));\n\nexport const hasLogicalGroupings = (value: SchemaObject) =>\n Boolean(value.oneOf ?? value.allOf ?? value.anyOf);\n\nexport const LogicalSchemaTypeMap = {\n allOf: \"AND\",\n anyOf: \"OR\",\n oneOf: \"ONE\",\n} as const;\n\nexport type LogicalGroupType = \"AND\" | \"OR\" | \"ONE\";\n\nexport const isCircularRef = (schema: unknown): schema is string =>\n schema === CIRCULAR_REF;\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { MinusIcon, PlusIcon, RefreshCcwDotIcon } from \"lucide-react\";\nimport { useCallback, useState } from \"react\";\nimport { InlineCode } from \"../../../components/InlineCode.js\";\nimport { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Button } from \"../../../ui/Button.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { objectEntries } from \"../../../util/objectEntries.js\";\nimport { ConstValue } from \"../components/ConstValue.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { SelectOnClick } from \"../components/SelectOnClick.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { LogicalGroup } from \"./LogicalGroup/LogicalGroup.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n hasLogicalGroupings,\n isArrayType,\n isCircularRef,\n isComplexType,\n LogicalSchemaTypeMap,\n} from \"./utils.js\";\n\nexport const SchemaLogicalGroup = ({ schema }: { schema: SchemaObject }) => {\n const [isOpen, setIsOpen] = useState(true);\n const toggleOpen = useCallback(() => setIsOpen((prev) => !prev), []);\n\n for (const [key, type] of objectEntries(LogicalSchemaTypeMap)) {\n if (!schema[key]) continue;\n\n return (\n <LogicalGroup\n schemas={schema[key]}\n type={type}\n isOpen={isOpen}\n toggleOpen={toggleOpen}\n />\n );\n }\n};\n\nconst RecursiveIndicator = () => (\n <InlineCode\n className=\"inline-flex items-center gap-1.5 italic text-xs translate-y-0.5\"\n selectOnClick={false}\n >\n <RefreshCcwDotIcon size={13} />\n <span>circular</span>\n </InlineCode>\n);\n\nexport const SchemaPropertyItem = ({\n name,\n schema,\n group,\n defaultOpen = false,\n showCollapseButton = true,\n}: {\n name: string;\n schema: SchemaObject;\n group: \"required\" | \"optional\" | \"deprecated\";\n defaultOpen?: boolean;\n showCollapseButton?: boolean;\n}) => {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n\n if (isCircularRef(schema)) {\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2 rtl:space-x-reverse\">\n <code>{name}</code>\n <ParamInfos\n schema={schema}\n extraItems={[<RecursiveIndicator key=\"circular-ref\" />]}\n />\n </div>\n <SchemaExampleAndDefault schema={schema} />\n </div>\n </li>\n );\n }\n\n return (\n <li className=\"p-4 bg-border/20 hover:bg-border/30\">\n <div className=\"flex flex-col gap-2.5 justify-between text-sm\">\n <div className=\"space-x-2 rtl:space-x-reverse\">\n <SelectOnClick asChild>\n <code>{name}</code>\n </SelectOnClick>\n <ParamInfos\n schema={schema}\n extraItems={[\n group !== \"optional\" && (\n <span className=\"text-primary\">required</span>\n ),\n isArrayType(schema) &&\n \"items\" in schema &&\n isCircularRef(schema.items) && <RecursiveIndicator />,\n ]}\n />\n </div>\n {schema.description && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={schema.description}\n />\n )}\n {schema.type === \"array\" && \"items\" in schema && schema.items.enum && (\n <EnumValues values={schema.items.enum} />\n )}\n {schema.const && <ConstValue schema={schema} hideDescription />}\n {schema.enum && <EnumValues values={schema.enum} />}\n <SchemaExampleAndDefault schema={schema} />\n {(hasLogicalGroupings(schema) ||\n isComplexType(schema) ||\n isArrayType(schema) ||\n schema.additionalProperties) && (\n <Collapsible.Root\n defaultOpen={defaultOpen}\n open={isOpen}\n onOpenChange={() => setIsOpen(!isOpen)}\n >\n {showCollapseButton && (\n <Collapsible.Trigger asChild>\n <Button variant=\"expand\" size=\"sm\">\n {isOpen ? <MinusIcon size={12} /> : <PlusIcon size={12} />}\n {!isOpen ? \"Show properties\" : \"Hide properties\"}\n </Button>\n </Collapsible.Trigger>\n )}\n <Collapsible.Content>\n <div className=\"mt-2\">\n {hasLogicalGroupings(schema) ? (\n <SchemaLogicalGroup schema={schema} />\n ) : schema.type === \"object\" ? (\n <SchemaView schema={schema} />\n ) : (\n isArrayType(schema) &&\n \"items\" in schema &&\n typeof schema.items === \"object\" &&\n !isCircularRef(schema.items) && (\n <SchemaView schema={schema.items} />\n )\n )}\n </div>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </div>\n </li>\n );\n};\n","import { InfoIcon } from \"lucide-react\";\nimport { Markdown, ProseClasses } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Card } from \"../../../ui/Card.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { groupBy } from \"../../../util/groupBy.js\";\nimport { ConstValue } from \"../components/ConstValue.js\";\nimport { EnumValues } from \"../components/EnumValues.js\";\nimport { ParamInfos } from \"../ParamInfos.js\";\nimport { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport {\n SchemaLogicalGroup,\n SchemaPropertyItem,\n} from \"./SchemaPropertyItem.js\";\nimport { hasLogicalGroupings, isBasicType } from \"./utils.js\";\n\nconst renderMarkdown = (content?: string) =>\n content && (\n <Markdown\n className={cn(ProseClasses, \"text-sm leading-normal line-clamp-4\")}\n content={content}\n />\n );\n\nconst renderBasicSchema = (schema: SchemaObject) => (\n <Card className=\"p-4 space-y-2\">\n <span className=\"text-sm text-muted-foreground\">\n <ParamInfos schema={schema} />\n </span>\n {schema.enum && <EnumValues values={schema.enum} />}\n {renderMarkdown(schema.description)}\n <SchemaExampleAndDefault schema={schema} />\n </Card>\n);\n\nexport const SchemaView = ({\n schema,\n defaultOpen = false,\n}: {\n schema?: SchemaObject | null;\n defaultOpen?: boolean;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Card className=\"p-4\">\n <span className=\"text-sm text-muted-foreground italic\">\n No schema specified\n </span>\n </Card>\n );\n }\n\n if (schema.const) {\n return <ConstValue schema={schema} />;\n }\n\n if (hasLogicalGroupings(schema)) {\n return <SchemaLogicalGroup schema={schema} />;\n }\n\n if (isBasicType(schema.type)) {\n return renderBasicSchema(schema);\n }\n\n if (schema.type === \"array\" && typeof schema.items === \"object\") {\n return <SchemaView schema={schema.items} />;\n }\n\n if (schema.type === \"object\") {\n const groupedProperties = groupBy(\n Object.entries(schema.properties ?? {}),\n ([propertyName, property]) => {\n return property.deprecated\n ? \"deprecated\"\n : schema.required?.includes(propertyName)\n ? \"required\"\n : \"optional\";\n },\n );\n const groupNames = [\"required\", \"optional\", \"deprecated\"] as const;\n\n const additionalProperties =\n typeof schema.additionalProperties === \"object\" ? (\n <SchemaView schema={schema.additionalProperties} />\n ) : schema.additionalProperties === true ? (\n <div\n className={cn(\n ProseClasses,\n \"text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1\",\n )}\n >\n <span>Additional properties are allowed</span>\n <a\n className=\"p-0.5 -m-0.5\"\n href=\"https://swagger.io/docs/specification/v3_0/data-models/dictionaries/\"\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n <InfoIcon size={14} />\n </a>\n </div>\n ) : null;\n\n return (\n <Card className=\"divide-y overflow-hidden\">\n {groupNames.map(\n (group) =>\n groupedProperties[group] && (\n <ul key={group} className=\"divide-y\">\n {groupedProperties[group].map(([name, schema]) => (\n <SchemaPropertyItem\n key={name}\n name={name}\n schema={schema}\n group={group}\n defaultOpen={defaultOpen}\n />\n ))}\n </ul>\n ),\n )}\n {additionalProperties}\n </Card>\n );\n }\n\n return null;\n};\n"],"names":["groupBy","arr","keySelector","accumulator","val","groupedKey","Pattern","pattern","isExpanded","setIsExpanded","useState","isExpandable","shortPattern","jsxs","InlineCode","cn","jsx","ChevronsLeftRightIcon","getSchemaInfos","schema","Fragment","ParamInfos","extraItems","className","filteredItems","item","isValidElement","index","EnumValues","values","maxVisibleValues","isOpen","setIsOpen","shouldCollapse","visibleValues","value","SelectOnClick","Button","ChevronUpIcon","ChevronDownIcon","SchemaExampleAndDefault","example","_a","defaultValue","ConstValue","hideDescription","iconMap","CircleFadingPlusIcon","CircleDotIcon","CircleIcon","colorClass","LogicalGroupConnector","type","schemeName","LogicalGroupItem","props","Collapsible","prev","SchemaView","typeLabel","LogicalGroup","schemas","toggleOpen","Card","SquareMinusIcon","SquarePlusIcon","subSchema","isBasicType","isArrayType","isComplexType","hasLogicalGroupings","LogicalSchemaTypeMap","isCircularRef","CIRCULAR_REF","SchemaLogicalGroup","useCallback","key","objectEntries","RecursiveIndicator","RefreshCcwDotIcon","SchemaPropertyItem","name","group","defaultOpen","showCollapseButton","Markdown","ProseClasses","MinusIcon","PlusIcon","renderMarkdown","content","renderBasicSchema","groupedProperties","propertyName","property","groupNames","additionalProperties","InfoIcon"],"mappings":"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"}
@@ -4,8 +4,8 @@ var M = (s) => {
4
4
  var j = (s, t, e) => t.has(s) || M("Cannot " + e);
5
5
  var r = (s, t, e) => (j(s, t, "read from private field"), e ? e.call(s) : t.get(s)), x = (s, t, e) => t.has(s) ? M("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(s) : t.set(s, e), y = (s, t, e, a) => (j(s, t, "write to private field"), a ? a.call(s, e) : t.set(s, e), e), g = (s, t, e) => (j(s, t, "access private method"), e);
6
6
  import * as l from "react";
7
- import { g as K } from "./mutation-DBQh7AOZ.js";
8
- import { S as L, s as T, h as E, n as k, g as z, i as P, k as V } from "./hook-CldJlP5c.js";
7
+ import { g as K } from "./mutation-Bq5bn7Hf.js";
8
+ import { S as L, s as T, h as E, n as k, g as z, i as P, k as V } from "./hook-8GM2HXNM.js";
9
9
  import { j as o } from "./jsx-runtime-C5mzlN2N.js";
10
10
  import * as i from "@radix-ui/react-select";
11
11
  import { ChevronDown as U, ChevronUp as G, Check as q } from "lucide-react";
@@ -220,4 +220,4 @@ export {
220
220
  J as e,
221
221
  et as u
222
222
  };
223
- //# sourceMappingURL=Select-CT64Ou40.js.map
223
+ //# sourceMappingURL=Select-CYaEBIYK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select-CT64Ou40.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/lib/ui/Select.tsx"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"truncate\">{children}</span>\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"flex-shrink-0 h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n \"divide-y\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["MutationObserver","_a","Subscribable","client","options","__privateAdd","_MutationObserver_instances","_client","_currentResult","_currentMutation","_mutateOptions","__privateSet","__privateMethod","updateResult_fn","prevOptions","__privateGet","shallowEqualObjects","hashKey","action","notify_fn","variables","state","getDefaultState","notifyManager","context","_b","_d","_c","_f","_e","_h","_g","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","props","ref","jsxs","cn","jsx","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"Select-CYaEBIYK.js","sources":["../../../node_modules/.pnpm/@tanstack+query-core@5.74.3/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../../node_modules/.pnpm/@tanstack+react-query@5.74.3_react@19.1.0/node_modules/@tanstack/react-query/build/modern/useMutation.js","../src/lib/ui/Select.tsx"],"sourcesContent":["// src/mutationObserver.ts\nimport { getDefaultState } from \"./mutation.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { hashKey, shallowEqualObjects } from \"./utils.js\";\nvar MutationObserver = class extends Subscribable {\n #client;\n #currentResult = void 0;\n #currentMutation;\n #mutateOptions;\n constructor(client, options) {\n super();\n this.#client = client;\n this.setOptions(options);\n this.bindMethods();\n this.#updateResult();\n }\n bindMethods() {\n this.mutate = this.mutate.bind(this);\n this.reset = this.reset.bind(this);\n }\n setOptions(options) {\n const prevOptions = this.options;\n this.options = this.#client.defaultMutationOptions(options);\n if (!shallowEqualObjects(this.options, prevOptions)) {\n this.#client.getMutationCache().notify({\n type: \"observerOptionsUpdated\",\n mutation: this.#currentMutation,\n observer: this\n });\n }\n if (prevOptions?.mutationKey && this.options.mutationKey && hashKey(prevOptions.mutationKey) !== hashKey(this.options.mutationKey)) {\n this.reset();\n } else if (this.#currentMutation?.state.status === \"pending\") {\n this.#currentMutation.setOptions(this.options);\n }\n }\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.#currentMutation?.removeObserver(this);\n }\n }\n onMutationUpdate(action) {\n this.#updateResult();\n this.#notify(action);\n }\n getCurrentResult() {\n return this.#currentResult;\n }\n reset() {\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = void 0;\n this.#updateResult();\n this.#notify();\n }\n mutate(variables, options) {\n this.#mutateOptions = options;\n this.#currentMutation?.removeObserver(this);\n this.#currentMutation = this.#client.getMutationCache().build(this.#client, this.options);\n this.#currentMutation.addObserver(this);\n return this.#currentMutation.execute(variables);\n }\n #updateResult() {\n const state = this.#currentMutation?.state ?? getDefaultState();\n this.#currentResult = {\n ...state,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n isIdle: state.status === \"idle\",\n mutate: this.mutate,\n reset: this.reset\n };\n }\n #notify(action) {\n notifyManager.batch(() => {\n if (this.#mutateOptions && this.hasListeners()) {\n const variables = this.#currentResult.variables;\n const context = this.#currentResult.context;\n if (action?.type === \"success\") {\n this.#mutateOptions.onSuccess?.(action.data, variables, context);\n this.#mutateOptions.onSettled?.(action.data, null, variables, context);\n } else if (action?.type === \"error\") {\n this.#mutateOptions.onError?.(action.error, variables, context);\n this.#mutateOptions.onSettled?.(\n void 0,\n action.error,\n variables,\n context\n );\n }\n }\n this.listeners.forEach((listener) => {\n listener(this.#currentResult);\n });\n });\n }\n};\nexport {\n MutationObserver\n};\n//# sourceMappingURL=mutationObserver.js.map","\"use client\";\n\n// src/useMutation.ts\nimport * as React from \"react\";\nimport { MutationObserver, notifyManager } from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { noop, shouldThrowError } from \"./utils.js\";\nfunction useMutation(options, queryClient) {\n const client = useQueryClient(queryClient);\n const [observer] = React.useState(\n () => new MutationObserver(\n client,\n options\n )\n );\n React.useEffect(() => {\n observer.setOptions(options);\n }, [observer, options]);\n const result = React.useSyncExternalStore(\n React.useCallback(\n (onStoreChange) => observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n const mutate = React.useCallback(\n (variables, mutateOptions) => {\n observer.mutate(variables, mutateOptions).catch(noop);\n },\n [observer]\n );\n if (result.error && shouldThrowError(observer.options.throwOnError, [result.error])) {\n throw result.error;\n }\n return { ...result, mutate, mutateAsync: result.mutate };\n}\nexport {\n useMutation\n};\n//# sourceMappingURL=useMutation.js.map","import * as SelectPrimitive from \"@radix-ui/react-select\";\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\";\nimport * as React from \"react\";\nimport { cn } from \"../util/cn.js\";\n\nconst Select = SelectPrimitive.Root;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"truncate\">{children}</span>\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"flex-shrink-0 h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n));\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className,\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\",\n \"divide-y\",\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"py-1.5 pl-8 pr-2 text-sm font-semibold\", className)}\n {...props}\n />\n));\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n));\nSelectItem.displayName = SelectPrimitive.Item.displayName;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"names":["MutationObserver","_a","Subscribable","client","options","__privateAdd","_MutationObserver_instances","_client","_currentResult","_currentMutation","_mutateOptions","__privateSet","__privateMethod","updateResult_fn","prevOptions","__privateGet","shallowEqualObjects","hashKey","action","notify_fn","variables","state","getDefaultState","notifyManager","context","_b","_d","_c","_f","_e","_h","_g","listener","useMutation","queryClient","useQueryClient","observer","React","result","onStoreChange","mutate","mutateOptions","noop","shouldThrowError","Select","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","props","ref","jsxs","cn","jsx","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,16 +1,16 @@
1
1
  import { j as t } from "./jsx-runtime-C5mzlN2N.js";
2
- import { c as z, L as D, e as H, i as U } from "./chunk-BAXFHI7N-BVBOl9s0.js";
2
+ import { c as z, L as D, e as H, i as U } from "./chunk-BAXFHI7N-BLTsN6tl.js";
3
3
  import { UnlinkIcon as V, CheckIcon as W, CopyIcon as q } from "lucide-react";
4
4
  import { C as Z } from "./CategoryHeading-D06WK_Wo.js";
5
5
  import { Callout as G } from "./ui/Callout.js";
6
- import { M as X, H as b, P as I } from "./Markdown-mFpg_n9p.js";
7
- import { P as B, t as g, H as J } from "./SyntaxHighlight-CxhyyMkF.js";
6
+ import { M as X, H as b, P as I } from "./Markdown-DvdVn1O7.js";
7
+ import { P as B, t as g, H as J } from "./SyntaxHighlight-o7q0acut.js";
8
8
  import { z as K } from "./index-DwT-v3zK.js";
9
9
  import w, { memo as Q, useState as ee, useContext as re } from "react";
10
10
  import { C } from "./ClientOnly-E7hGysn1.js";
11
11
  import { c as R } from "./cn-qaFjX9_3.js";
12
12
  import { Z as P } from "./invariant-Caa8-XvF.js";
13
- import { u as te } from "./useExposedProps-DbIZXspi.js";
13
+ import { u as te } from "./useExposedProps-DmTJxEXG.js";
14
14
  const O = ({
15
15
  children: r,
16
16
  className: s
@@ -91,7 +91,7 @@ const ne = {
91
91
  children: c
92
92
  }
93
93
  ),
94
- i.showLanguageIndicator && /* @__PURE__ */ t.jsx("span", { className: "absolute top-1.5 right-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0", children: r }),
94
+ i.showLanguageIndicator && /* @__PURE__ */ t.jsx("span", { className: "absolute top-1.5 end-3 text-[11px] font-mono text-muted-foreground transition group-hover:opacity-0", children: r }),
95
95
  s !== "never" && /* @__PURE__ */ t.jsxs(
96
96
  "button",
97
97
  {
@@ -99,7 +99,7 @@ const ne = {
99
99
  "aria-label": "Copy code",
100
100
  title: "Copy code",
101
101
  className: R(
102
- "absolute top-2 right-2 p-2 hover:outline hover:outline-border/75 dark:hover:outline-border rounded-md text-sm text-muted-foreground transition",
102
+ "absolute top-2 end-2 p-2 hover:outline hover:outline-border/75 dark:hover:outline-border rounded-md text-sm text-muted-foreground transition",
103
103
  s === "hover" ? "opacity-0 group-hover:opacity-100 group-hover:bg-zinc-100 group-hover:dark:bg-zinc-700" : "bg-zinc-100 dark:bg-zinc-700",
104
104
  a && "flex gap-2 items-center font-medium"
105
105
  ),
@@ -337,4 +337,4 @@ export {
337
337
  ye as S,
338
338
  Pe as a
339
339
  };
340
- //# sourceMappingURL=SlotletProvider-CS_nO-XT.js.map
340
+ //# sourceMappingURL=SlotletProvider-wWbHYqWf.js.map