zudoku 0.64.2 → 0.65.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.
- package/dist/app/main.d.ts +91 -1
- package/dist/app/main.js +5 -1
- package/dist/app/main.js.map +1 -1
- package/dist/config/validators/InputNavigationSchema.d.ts +16 -16
- package/dist/config/validators/NavigationSchema.js +2 -4
- package/dist/config/validators/NavigationSchema.js.map +1 -1
- package/dist/config/validators/validate.d.ts +53 -1
- package/dist/config/validators/validate.js +7 -0
- package/dist/config/validators/validate.js.map +1 -1
- package/dist/config/validators/validate.test.js +43 -0
- package/dist/config/validators/validate.test.js.map +1 -1
- package/dist/flat-config.d.ts +6 -0
- package/dist/lib/authentication/providers/auth0.js +6 -1
- package/dist/lib/authentication/providers/auth0.js.map +1 -1
- package/dist/lib/components/Autocomplete.d.ts +3 -1
- package/dist/lib/components/Autocomplete.js +6 -2
- package/dist/lib/components/Autocomplete.js.map +1 -1
- package/dist/lib/components/Layout.js +3 -2
- package/dist/lib/components/Layout.js.map +1 -1
- package/dist/lib/components/navigation/NavigationItem.js +2 -2
- package/dist/lib/components/navigation/NavigationItem.js.map +1 -1
- package/dist/lib/errors/ErrorAlert.js +1 -1
- package/dist/lib/errors/RouterError.d.ts +3 -1
- package/dist/lib/errors/RouterError.js +3 -2
- package/dist/lib/errors/RouterError.js.map +1 -1
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js +1 -1
- package/dist/lib/plugins/openapi/GeneratedExampleSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationList.js +2 -1
- package/dist/lib/plugins/openapi/OperationList.js.map +1 -1
- package/dist/lib/plugins/openapi/OperationListItem.js +2 -1
- package/dist/lib/plugins/openapi/OperationListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterList.js +7 -4
- package/dist/lib/plugins/openapi/ParameterList.js.map +1 -1
- package/dist/lib/plugins/openapi/ParameterListItem.js +17 -6
- package/dist/lib/plugins/openapi/ParameterListItem.js.map +1 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js +4 -1
- package/dist/lib/plugins/openapi/RequestBodySidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.d.ts +1 -2
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js +15 -6
- package/dist/lib/plugins/openapi/ResponsesSidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/Sidecar.d.ts +1 -2
- package/dist/lib/plugins/openapi/Sidecar.js +39 -15
- package/dist/lib/plugins/openapi/Sidecar.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarBox.js +4 -4
- package/dist/lib/plugins/openapi/SidecarBox.js.map +1 -1
- package/dist/lib/plugins/openapi/SidecarExamples.js +15 -16
- package/dist/lib/plugins/openapi/SidecarExamples.js.map +1 -1
- package/dist/lib/plugins/openapi/components/ConstValue.js +1 -1
- package/dist/lib/plugins/openapi/components/ConstValue.js.map +1 -1
- package/dist/lib/plugins/openapi/components/EnumValues.js +1 -1
- package/dist/lib/plugins/openapi/components/EnumValues.js.map +1 -1
- package/dist/lib/plugins/openapi/components/ResponseContent.js +5 -6
- package/dist/lib/plugins/openapi/components/ResponseContent.js.map +1 -1
- package/dist/lib/plugins/openapi/interfaces.d.ts +13 -0
- package/dist/lib/plugins/openapi/playground/BodyPanel.js +67 -15
- package/dist/lib/plugins/openapi/playground/BodyPanel.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js +2 -2
- package/dist/lib/plugins/openapi/playground/CollapsibleHeader.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js +1 -1
- package/dist/lib/plugins/openapi/playground/ExamplesDropdown.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Headers.js +23 -83
- package/dist/lib/plugins/openapi/playground/Headers.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/ParamsGrid.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js +8 -1
- package/dist/lib/plugins/openapi/playground/ParamsGrid.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PathParams.js +2 -3
- package/dist/lib/plugins/openapi/playground/PathParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/Playground.d.ts +7 -0
- package/dist/lib/plugins/openapi/playground/Playground.js +56 -28
- package/dist/lib/plugins/openapi/playground/Playground.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js +3 -2
- package/dist/lib/plugins/openapi/playground/PlaygroundDialog.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/QueryParams.js +16 -40
- package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.d.ts +8 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js +19 -0
- package/dist/lib/plugins/openapi/playground/request-panel/MultipartField.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js +1 -1
- package/dist/lib/plugins/openapi/playground/request-panel/UrlQueryParams.js.map +1 -1
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.d.ts +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js +540 -0
- package/dist/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.d.ts +40 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js +205 -0
- package/dist/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.js.map +1 -0
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js +2 -2
- package/dist/lib/plugins/openapi/playground/result-panel/ResponseTab.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaExampleAndDefault.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js +17 -7
- package/dist/lib/plugins/openapi/schema/SchemaPropertyItem.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaView.d.ts +1 -1
- package/dist/lib/plugins/openapi/schema/SchemaView.js +20 -9
- package/dist/lib/plugins/openapi/schema/SchemaView.js.map +1 -1
- package/dist/lib/plugins/openapi/schema/UnionView.js +2 -5
- package/dist/lib/plugins/openapi/schema/UnionView.js.map +1 -1
- package/dist/lib/ui/Badge.d.ts +3 -3
- package/dist/lib/ui/Badge.js +9 -7
- package/dist/lib/ui/Badge.js.map +1 -1
- package/dist/lib/ui/Button.d.ts +1 -1
- package/dist/lib/ui/Button.js +1 -0
- package/dist/lib/ui/Button.js.map +1 -1
- package/dist/lib/ui/Checkbox.d.ts +2 -2
- package/dist/lib/ui/Checkbox.js +4 -4
- package/dist/lib/ui/Checkbox.js.map +1 -1
- package/dist/lib/ui/CodeBlock.js +1 -1
- package/dist/lib/ui/CodeBlock.js.map +1 -1
- package/dist/lib/ui/Collapsible.d.ts +4 -4
- package/dist/lib/ui/Collapsible.js +11 -4
- package/dist/lib/ui/Collapsible.js.map +1 -1
- package/dist/lib/ui/EmbeddedCodeBlock.js +3 -2
- package/dist/lib/ui/EmbeddedCodeBlock.js.map +1 -1
- package/dist/lib/ui/Frame.d.ts +8 -0
- package/dist/lib/ui/Frame.js +22 -0
- package/dist/lib/ui/Frame.js.map +1 -0
- package/dist/lib/ui/Item.d.ts +23 -0
- package/dist/lib/ui/Item.js +67 -0
- package/dist/lib/ui/Item.js.map +1 -0
- package/dist/lib/ui/NativeSelect.d.ts +5 -0
- package/dist/lib/ui/NativeSelect.js +14 -0
- package/dist/lib/ui/NativeSelect.js.map +1 -0
- package/dist/lib/ui/Select.d.ts +13 -11
- package/dist/lib/ui/Select.js +34 -23
- package/dist/lib/ui/Select.js.map +1 -1
- package/dist/lib/util/readFrontmatter.d.ts +6 -0
- package/dist/lib/util/readFrontmatter.js +12 -0
- package/dist/lib/util/readFrontmatter.js.map +1 -0
- package/dist/vite/mdx/remark-last-modified.js +57 -3
- package/dist/vite/mdx/remark-last-modified.js.map +1 -1
- package/dist/vite/plugin-api.js +2 -2
- package/dist/vite/plugin-api.js.map +1 -1
- package/dist/vite/plugin-frontmatter.js +3 -5
- package/dist/vite/plugin-frontmatter.js.map +1 -1
- package/dist/vite/plugin-markdown-export.js +3 -4
- package/dist/vite/plugin-markdown-export.js.map +1 -1
- package/lib/{Button-DmS4u8Lj.js → Button-B3ucvvQw.js} +7 -6
- package/lib/Button-B3ucvvQw.js.map +1 -0
- package/lib/{ErrorAlert--3alJ_-b.js → ErrorAlert-D5LKLFOd.js} +1100 -1112
- package/lib/ErrorAlert-D5LKLFOd.js.map +1 -0
- package/lib/{MdxPage-Bpa9tL63.js → MdxPage-hOCN-u-L.js} +6 -6
- package/lib/{MdxPage-Bpa9tL63.js.map → MdxPage-hOCN-u-L.js.map} +1 -1
- package/lib/{OAuthErrorPage-B79J86Fo.js → OAuthErrorPage-oXnxcJg4.js} +4 -4
- package/lib/{OAuthErrorPage-B79J86Fo.js.map → OAuthErrorPage-oXnxcJg4.js.map} +1 -1
- package/lib/{OasProvider-jr0oDSFy.js → OasProvider-BuBeRIHB.js} +2 -2
- package/lib/{OasProvider-jr0oDSFy.js.map → OasProvider-BuBeRIHB.js.map} +1 -1
- package/lib/{OperationList-DLEAg4qw.js → OperationList-Cx8TGKhB.js} +2053 -1830
- package/lib/OperationList-Cx8TGKhB.js.map +1 -0
- package/lib/{Pagination-H2HW9-Er.js → Pagination-lLSoHnxa.js} +2 -2
- package/lib/{Pagination-H2HW9-Er.js.map → Pagination-lLSoHnxa.js.map} +1 -1
- package/lib/{RouteGuard-CjzxosTf.js → RouteGuard-Brz95MSt.js} +2 -2
- package/lib/{RouteGuard-CjzxosTf.js.map → RouteGuard-Brz95MSt.js.map} +1 -1
- package/lib/RouterError-VGZB_wg4.js +42 -0
- package/lib/RouterError-VGZB_wg4.js.map +1 -0
- package/lib/{SchemaList-CSDSazqV.js → SchemaList-rBWXYJEb.js} +7 -7
- package/lib/{SchemaList-CSDSazqV.js.map → SchemaList-rBWXYJEb.js.map} +1 -1
- package/lib/SchemaView-jouS_xvc.js +586 -0
- package/lib/SchemaView-jouS_xvc.js.map +1 -0
- package/lib/Select-DFRCS31-.js +399 -0
- package/lib/Select-DFRCS31-.js.map +1 -0
- package/lib/{SignUp-Fycafbyg.js → SignUp-D2mmQOkg.js} +2 -2
- package/lib/{SignUp-Fycafbyg.js.map → SignUp-D2mmQOkg.js.map} +1 -1
- package/lib/{Toc-ChkOg2UU.js → Toc-CBWfFCVf.js} +2 -2
- package/lib/{Toc-ChkOg2UU.js.map → Toc-CBWfFCVf.js.map} +1 -1
- package/lib/{circular-DGfd8SGc.js → circular-CGkbVs2O.js} +6360 -5953
- package/lib/circular-CGkbVs2O.js.map +1 -0
- package/lib/{createServer-DGD8hEzT.js → createServer-CcV_75PW.js} +770 -735
- package/lib/createServer-CcV_75PW.js.map +1 -0
- package/lib/{errors-BTpjwHS6.js → errors-D7xzOd8X.js} +2 -2
- package/lib/{errors-BTpjwHS6.js.map → errors-D7xzOd8X.js.map} +1 -1
- package/lib/{index-Bvas0H4x.js → index-CF7_erXq.js} +2 -2
- package/lib/{index-Bvas0H4x.js.map → index-CF7_erXq.js.map} +1 -1
- package/lib/{index-FNRZUtwo.js → index-CPws05Tb.js} +3 -3
- package/lib/{index-FNRZUtwo.js.map → index-CPws05Tb.js.map} +1 -1
- package/lib/index-I4zC7Yht.js +3680 -0
- package/lib/index-I4zC7Yht.js.map +1 -0
- package/lib/ui/ActionButton.js +1 -1
- package/lib/ui/Badge.js +27 -13
- package/lib/ui/Badge.js.map +1 -1
- package/lib/ui/Button.js +6 -5
- package/lib/ui/Button.js.map +1 -1
- package/lib/ui/Checkbox.js +29 -26
- package/lib/ui/Checkbox.js.map +1 -1
- package/lib/ui/CodeBlock.js +7 -7
- package/lib/ui/CodeBlock.js.map +1 -1
- package/lib/ui/Collapsible.js +32 -5
- package/lib/ui/Collapsible.js.map +1 -1
- package/lib/ui/EmbeddedCodeBlock.js +19 -18
- package/lib/ui/EmbeddedCodeBlock.js.map +1 -1
- package/lib/ui/Frame.js +81 -0
- package/lib/ui/Frame.js.map +1 -0
- package/lib/ui/Item.js +188 -0
- package/lib/ui/Item.js.map +1 -0
- package/lib/ui/NativeSelect.js +57 -0
- package/lib/ui/NativeSelect.js.map +1 -0
- package/lib/ui/Select.js +166 -116
- package/lib/ui/Select.js.map +1 -1
- package/lib/ui/Tabs.js +10 -10
- package/lib/zudoku.__internal.js +345 -345
- package/lib/zudoku.__internal.js.map +1 -1
- package/lib/zudoku.auth-auth0.js +7 -7
- package/lib/zudoku.auth-auth0.js.map +1 -1
- package/lib/zudoku.auth-azureb2c.js +3 -3
- package/lib/zudoku.auth-clerk.js +1 -1
- package/lib/zudoku.auth-openid.js +3 -3
- package/lib/zudoku.auth-supabase.js +3 -3
- package/lib/zudoku.components.js +2 -2
- package/lib/zudoku.plugin-api-catalog.js +3 -3
- package/lib/zudoku.plugin-api-keys.js +4 -4
- package/lib/zudoku.plugin-markdown.js +1 -1
- package/lib/zudoku.plugin-openapi.js +1 -1
- package/lib/zudoku.plugin-search-pagefind.js +2 -2
- package/package.json +4 -4
- package/src/app/main.tsx +5 -1
- package/src/lib/authentication/providers/auth0.tsx +6 -1
- package/src/lib/components/Autocomplete.tsx +11 -2
- package/src/lib/components/Layout.tsx +3 -2
- package/src/lib/components/navigation/NavigationItem.tsx +7 -20
- package/src/lib/errors/ErrorAlert.tsx +1 -1
- package/src/lib/errors/RouterError.tsx +7 -2
- package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +2 -2
- package/src/lib/plugins/openapi/OperationList.tsx +3 -1
- package/src/lib/plugins/openapi/OperationListItem.tsx +7 -7
- package/src/lib/plugins/openapi/ParameterList.tsx +37 -23
- package/src/lib/plugins/openapi/ParameterListItem.tsx +105 -54
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +36 -13
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +67 -44
- package/src/lib/plugins/openapi/Sidecar.tsx +84 -41
- package/src/lib/plugins/openapi/SidecarBox.tsx +26 -4
- package/src/lib/plugins/openapi/SidecarExamples.tsx +59 -37
- package/src/lib/plugins/openapi/components/ConstValue.tsx +1 -1
- package/src/lib/plugins/openapi/components/EnumValues.tsx +2 -2
- package/src/lib/plugins/openapi/components/ResponseContent.tsx +63 -53
- package/src/lib/plugins/openapi/interfaces.ts +12 -0
- package/src/lib/plugins/openapi/playground/BodyPanel.tsx +246 -30
- package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +10 -6
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +3 -2
- package/src/lib/plugins/openapi/playground/Headers.tsx +103 -219
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +33 -1
- package/src/lib/plugins/openapi/playground/PathParams.tsx +26 -34
- package/src/lib/plugins/openapi/playground/Playground.tsx +73 -35
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +9 -30
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +82 -136
- package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -0
- package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +1 -1
- package/src/lib/plugins/openapi/playground/request-panel/fieldManager/useKeyValueFieldManager.test.tsx +872 -0
- package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +349 -0
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +2 -6
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +1 -1
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +89 -52
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +82 -48
- package/src/lib/plugins/openapi/schema/UnionView.tsx +6 -17
- package/src/lib/ui/Badge.tsx +21 -12
- package/src/lib/ui/Button.tsx +1 -0
- package/src/lib/ui/Checkbox.tsx +23 -24
- package/src/lib/ui/CodeBlock.tsx +3 -3
- package/src/lib/ui/Collapsible.tsx +26 -4
- package/src/lib/ui/EmbeddedCodeBlock.tsx +21 -18
- package/src/lib/ui/Frame.tsx +81 -0
- package/src/lib/ui/Item.tsx +192 -0
- package/src/lib/ui/NativeSelect.tsx +47 -0
- package/src/lib/ui/Select.tsx +153 -126
- package/src/lib/util/readFrontmatter.ts +13 -0
- package/dist/lib/plugins/openapi/playground/InlineInput.d.ts +0 -4
- package/dist/lib/plugins/openapi/playground/InlineInput.js +0 -3
- package/dist/lib/plugins/openapi/playground/InlineInput.js.map +0 -1
- package/lib/Button-DmS4u8Lj.js.map +0 -1
- package/lib/ErrorAlert--3alJ_-b.js.map +0 -1
- package/lib/OperationList-DLEAg4qw.js.map +0 -1
- package/lib/RouterError-DZS2d6Sc.js +0 -41
- package/lib/RouterError-DZS2d6Sc.js.map +0 -1
- package/lib/SchemaView-DJiBd0_5.js +0 -397
- package/lib/SchemaView-DJiBd0_5.js.map +0 -1
- package/lib/Select-C1DeCqKv.js +0 -372
- package/lib/Select-C1DeCqKv.js.map +0 -1
- package/lib/circular-DGfd8SGc.js.map +0 -1
- package/lib/createServer-DGD8hEzT.js.map +0 -1
- package/lib/index-DP1xZgfJ.js +0 -3364
- package/lib/index-DP1xZgfJ.js.map +0 -1
- package/src/lib/plugins/openapi/playground/InlineInput.tsx +0 -6
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { j as e } from "./jsx-runtime-BzflLqGi.js";
|
|
2
|
-
import { b as o, L as s, c as t, i as a } from "./chunk-PVWAREVJ-BMhpCH5D.js";
|
|
3
|
-
import { UnlinkIcon as n } from "lucide-react";
|
|
4
|
-
import { C as i } from "./CategoryHeading-DhmodDcq.js";
|
|
5
|
-
import { T as c, H as d, D as m, E as l } from "./ErrorAlert--3alJ_-b.js";
|
|
6
|
-
const p = () => {
|
|
7
|
-
const r = o();
|
|
8
|
-
return /* @__PURE__ */ e.jsxs(c, { className: "h-full pt-(--padding-content-top)", children: [
|
|
9
|
-
/* @__PURE__ */ e.jsx(i, { children: "404" }),
|
|
10
|
-
/* @__PURE__ */ e.jsxs(d, { level: 1, className: "flex gap-3.5 items-center", children: [
|
|
11
|
-
"Page not found",
|
|
12
|
-
/* @__PURE__ */ e.jsx(n, { size: 24 })
|
|
13
|
-
] }),
|
|
14
|
-
/* @__PURE__ */ e.jsxs(m, { children: [
|
|
15
|
-
"Start by adding a file at",
|
|
16
|
-
" ",
|
|
17
|
-
/* @__PURE__ */ e.jsxs("code", { children: [
|
|
18
|
-
"{DOCUMENT_ROOT}",
|
|
19
|
-
"/",
|
|
20
|
-
r["*"],
|
|
21
|
-
".mdx"
|
|
22
|
-
] }),
|
|
23
|
-
" ",
|
|
24
|
-
"and add some content to make this error go away. By default",
|
|
25
|
-
" ",
|
|
26
|
-
/* @__PURE__ */ e.jsx("code", { children: "DOCUMENT_ROOT" }),
|
|
27
|
-
" is the `pages` directory."
|
|
28
|
-
] }),
|
|
29
|
-
/* @__PURE__ */ e.jsx("p", { children: "It seems that the page you are looking for does not exist or may have been moved. Please check the URL for any typos or use the navigation menu to find the correct page." }),
|
|
30
|
-
/* @__PURE__ */ e.jsx(s, { to: "/", children: "Go back home" })
|
|
31
|
-
] });
|
|
32
|
-
};
|
|
33
|
-
function j() {
|
|
34
|
-
const r = t();
|
|
35
|
-
return a(r) && r.status === 404 ? /* @__PURE__ */ e.jsx(p, {}) : /* @__PURE__ */ e.jsx(l, { error: r });
|
|
36
|
-
}
|
|
37
|
-
export {
|
|
38
|
-
p as N,
|
|
39
|
-
j as R
|
|
40
|
-
};
|
|
41
|
-
//# sourceMappingURL=RouterError-DZS2d6Sc.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouterError-DZS2d6Sc.js","sources":["../src/lib/components/NotFoundPage.tsx","../src/lib/errors/RouterError.tsx"],"sourcesContent":["import { UnlinkIcon } from \"lucide-react\";\nimport { Link, useParams } from \"react-router\";\nimport { CategoryHeading } from \"./CategoryHeading.js\";\nimport { DeveloperHint } from \"./DeveloperHint.js\";\nimport { Heading } from \"./Heading.js\";\nimport { Typography } from \"./Typography.js\";\n\nexport const NotFoundPage = () => {\n const params = useParams();\n\n return (\n <Typography className=\"h-full pt-(--padding-content-top)\">\n <CategoryHeading>404</CategoryHeading>\n <Heading level={1} className=\"flex gap-3.5 items-center\">\n Page not found\n <UnlinkIcon size={24} />\n </Heading>\n <DeveloperHint>\n Start by adding a file at{\" \"}\n <code>\n {\"{DOCUMENT_ROOT}\"}/{params[\"*\"]}.mdx\n </code>{\" \"}\n and add some content to make this error go away. By default{\" \"}\n <code>DOCUMENT_ROOT</code> is the `pages` directory.\n </DeveloperHint>\n <p>\n It seems that the page you are looking for does not exist or may have\n been moved. Please check the URL for any typos or use the navigation\n menu to find the correct page.\n </p>\n <Link to=\"/\">Go back home</Link>\n </Typography>\n );\n};\n","import { isRouteErrorResponse, useRouteError } from \"react-router\";\nimport { NotFoundPage } from \"../components/NotFoundPage.js\";\nimport { ErrorAlert } from \"./ErrorAlert.js\";\n\nexport function RouterError() {\n const error = useRouteError();\n\n if (isRouteErrorResponse(error) && error.status === 404) {\n return <NotFoundPage />;\n }\n\n return <ErrorAlert error={error} />;\n}\n"],"names":["NotFoundPage","params","useParams","jsxs","Typography","jsx","CategoryHeading","Heading","UnlinkIcon","DeveloperHint","Link","RouterError","error","useRouteError","isRouteErrorResponse","ErrorAlert"],"mappings":";;;;;AAOO,MAAMA,IAAe,MAAM;AAChC,QAAMC,IAASC,EAAA;AAEf,SACEC,gBAAAA,EAAAA,KAACC,GAAA,EAAW,WAAU,qCACpB,UAAA;AAAA,IAAAC,gBAAAA,EAAAA,IAACC,KAAgB,UAAA,MAAA,CAAG;AAAA,IACpBH,gBAAAA,EAAAA,KAACI,GAAA,EAAQ,OAAO,GAAG,WAAU,6BAA4B,UAAA;AAAA,MAAA;AAAA,MAEvDF,gBAAAA,EAAAA,IAACG,GAAA,EAAW,MAAM,GAAA,CAAI;AAAA,IAAA,GACxB;AAAA,2BACCC,GAAA,EAAc,UAAA;AAAA,MAAA;AAAA,MACa;AAAA,6BACzB,QAAA,EACE,UAAA;AAAA,QAAA;AAAA,QAAkB;AAAA,QAAER,EAAO,GAAG;AAAA,QAAE;AAAA,MAAA,GACnC;AAAA,MAAQ;AAAA,MAAI;AAAA,MACgD;AAAA,MAC5DI,gBAAAA,EAAAA,IAAC,UAAK,UAAA,gBAAA,CAAa;AAAA,MAAO;AAAA,IAAA,GAC5B;AAAA,IACAA,gBAAAA,EAAAA,IAAC,OAAE,UAAA,4KAAA,CAIH;AAAA,IACAA,gBAAAA,EAAAA,IAACK,GAAA,EAAK,IAAG,KAAI,UAAA,eAAA,CAAY;AAAA,EAAA,GAC3B;AAEJ;AC7BO,SAASC,IAAc;AAC5B,QAAMC,IAAQC,EAAA;AAEd,SAAIC,EAAqBF,CAAK,KAAKA,EAAM,WAAW,4BAC1CZ,GAAA,EAAa,IAGhBK,gBAAAA,MAACU,KAAW,OAAAH,GAAc;AACnC;"}
|
|
@@ -1,397 +0,0 @@
|
|
|
1
|
-
import { j as t } from "./jsx-runtime-BzflLqGi.js";
|
|
2
|
-
import { ChevronUpIcon as q, ChevronDownIcon as E, ChevronsLeftRightIcon as R, MinusIcon as z, PlusIcon as B, RefreshCcwDotIcon as L, InfoIcon as M } from "lucide-react";
|
|
3
|
-
import { S as x, I as C, M as P } from "./ErrorAlert--3alJ_-b.js";
|
|
4
|
-
import { Card as u } from "./ui/Card.js";
|
|
5
|
-
import { useState as m, isValidElement as D } from "react";
|
|
6
|
-
import { B as T } from "./Button-DmS4u8Lj.js";
|
|
7
|
-
import { c as h } from "./cn-dYga0KKN.js";
|
|
8
|
-
import * as j from "@radix-ui/react-collapsible";
|
|
9
|
-
import { Button as F } from "./ui/Button.js";
|
|
10
|
-
import { Badge as J } from "./ui/Badge.js";
|
|
11
|
-
import { C as U } from "./circular-DGfd8SGc.js";
|
|
12
|
-
const _ = (e, r) => e.reduce(
|
|
13
|
-
(s, i) => {
|
|
14
|
-
const o = r(i);
|
|
15
|
-
return s[o] || (s[o] = []), s[o].push(i), s;
|
|
16
|
-
},
|
|
17
|
-
{}
|
|
18
|
-
), $ = ({
|
|
19
|
-
schema: e,
|
|
20
|
-
hideDescription: r = !1
|
|
21
|
-
}) => /* @__PURE__ */ t.jsx("div", { className: "flex flex-col gap-1 text-xs", children: /* @__PURE__ */ t.jsxs("div", { children: [
|
|
22
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Const value: " }),
|
|
23
|
-
/* @__PURE__ */ t.jsx(x, { className: "border rounded px-1 font-mono", children: e.const }),
|
|
24
|
-
!r && e.description && /* @__PURE__ */ t.jsx("div", { className: "text-muted-foreground", children: e.description })
|
|
25
|
-
] }) }), y = ({
|
|
26
|
-
values: e,
|
|
27
|
-
className: r,
|
|
28
|
-
maxVisibleValues: s = 8
|
|
29
|
-
}) => {
|
|
30
|
-
const [i, o] = m(!1);
|
|
31
|
-
if (!e.length) return null;
|
|
32
|
-
const n = e.length > s, l = n && !i ? e.slice(0, s) : e;
|
|
33
|
-
return /* @__PURE__ */ t.jsxs("div", { className: h("flex flex-wrap gap-1.5 text-xs", r), children: [
|
|
34
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Enum values: " }),
|
|
35
|
-
l.map((a) => /* @__PURE__ */ t.jsx("div", { children: /* @__PURE__ */ t.jsx(x, { className: "border rounded-sm px-1 font-mono", children: a }) }, a)),
|
|
36
|
-
n && /* @__PURE__ */ t.jsx(
|
|
37
|
-
T,
|
|
38
|
-
{
|
|
39
|
-
variant: "ghost",
|
|
40
|
-
size: "sm",
|
|
41
|
-
className: "h-fit px-0",
|
|
42
|
-
onClick: () => o(!i),
|
|
43
|
-
children: i ? /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
44
|
-
/* @__PURE__ */ t.jsx(q, { size: 12 }),
|
|
45
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "show less" })
|
|
46
|
-
] }) : /* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-1", children: [
|
|
47
|
-
/* @__PURE__ */ t.jsx(E, { size: 12 }),
|
|
48
|
-
/* @__PURE__ */ t.jsxs("span", { className: "text-muted-foreground", children: [
|
|
49
|
-
"show ",
|
|
50
|
-
e.length - s,
|
|
51
|
-
" more"
|
|
52
|
-
] })
|
|
53
|
-
] })
|
|
54
|
-
}
|
|
55
|
-
)
|
|
56
|
-
] });
|
|
57
|
-
}, G = ({ pattern: e }) => {
|
|
58
|
-
const [r, s] = m(!1), i = e.length > 20, o = i ? `${e.slice(0, 20)}…` : e;
|
|
59
|
-
return /* @__PURE__ */ t.jsxs(
|
|
60
|
-
C,
|
|
61
|
-
{
|
|
62
|
-
className: h("text-xs", i && "cursor-pointer"),
|
|
63
|
-
onClick: () => s(!r),
|
|
64
|
-
selectOnClick: !1,
|
|
65
|
-
children: [
|
|
66
|
-
r ? e : o,
|
|
67
|
-
i && /* @__PURE__ */ t.jsx("button", { type: "button", className: "p-1 translate-y-[2px]", children: !r && /* @__PURE__ */ t.jsx(R, { size: 12 }) })
|
|
68
|
-
]
|
|
69
|
-
}
|
|
70
|
-
);
|
|
71
|
-
}, K = (e) => e ? [
|
|
72
|
-
e.type === "array" && e.items.type ? Array.isArray(e.items.type) ? `(${e.items.type.join(" | ")})[]` : `${e.items.type}[]` : Array.isArray(e.type) ? e.type.join(" | ") : e.type,
|
|
73
|
-
e.enum && "enum",
|
|
74
|
-
e.const && "const",
|
|
75
|
-
e.format,
|
|
76
|
-
e.minimum !== void 0 && `min: ${e.minimum}`,
|
|
77
|
-
e.maximum !== void 0 && `max: ${e.maximum}`,
|
|
78
|
-
e.minLength !== void 0 && `minLength: ${e.minLength}`,
|
|
79
|
-
e.maxLength !== void 0 && `maxLength: ${e.maxLength}`,
|
|
80
|
-
e.minItems !== void 0 && `minItems: ${e.minItems}`,
|
|
81
|
-
e.maxItems !== void 0 && `maxItems: ${e.maxItems}`,
|
|
82
|
-
e.minProperties !== void 0 && `minProps: ${e.minProperties}`,
|
|
83
|
-
e.maxProperties !== void 0 && `maxProps: ${e.maxProperties}`,
|
|
84
|
-
e.uniqueItems && "unique",
|
|
85
|
-
e.readOnly && "readOnly",
|
|
86
|
-
e.writeOnly && "writeOnly",
|
|
87
|
-
e.deprecated && "deprecated",
|
|
88
|
-
e.pattern && /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
|
|
89
|
-
"pattern: ",
|
|
90
|
-
/* @__PURE__ */ t.jsx(G, { pattern: e.pattern })
|
|
91
|
-
] })
|
|
92
|
-
] : [], g = ({
|
|
93
|
-
schema: e,
|
|
94
|
-
extraItems: r = [],
|
|
95
|
-
className: s
|
|
96
|
-
}) => {
|
|
97
|
-
const i = [...K(e), ...r].flatMap(
|
|
98
|
-
(o) => typeof o == "string" || D(o) ? o : []
|
|
99
|
-
);
|
|
100
|
-
return /* @__PURE__ */ t.jsx("span", { className: s, children: i.map((o, n) => (
|
|
101
|
-
// biome-ignore lint/suspicious/noArrayIndexKey: index should be stable
|
|
102
|
-
/* @__PURE__ */ t.jsxs("span", { className: "text-muted-foreground", children: [
|
|
103
|
-
o,
|
|
104
|
-
n < i.length - 1 && /* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground/50", children: " · " })
|
|
105
|
-
] }, n)
|
|
106
|
-
)) });
|
|
107
|
-
}, N = ({
|
|
108
|
-
schema: e
|
|
109
|
-
}) => {
|
|
110
|
-
const r = e.examples?.at(0), s = e.default;
|
|
111
|
-
return r === void 0 && s === void 0 ? null : /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-1 text-xs", children: [
|
|
112
|
-
r !== void 0 && /* @__PURE__ */ t.jsxs("div", { children: [
|
|
113
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Example: " }),
|
|
114
|
-
/* @__PURE__ */ t.jsx(x, { className: "border rounded-sm px-1 font-mono", children: typeof r == "object" || typeof r == "boolean" ? JSON.stringify(r) : r })
|
|
115
|
-
] }),
|
|
116
|
-
s !== void 0 && /* @__PURE__ */ t.jsxs("div", { children: [
|
|
117
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-muted-foreground", children: "Default: " }),
|
|
118
|
-
/* @__PURE__ */ t.jsx(x, { className: "border rounded-sm px-1 font-mono", children: typeof s == "object" || typeof s == "boolean" ? JSON.stringify(s) : s })
|
|
119
|
-
] })
|
|
120
|
-
] });
|
|
121
|
-
}, w = (e) => typeof e == "string" && ["string", "number", "boolean", "integer", "null"].includes(e) || Array.isArray(e) && e.every(w), b = (e) => e.type === "array" || // schema.type might be an array of types, so we need to check if "array" is one of them
|
|
122
|
-
Array.isArray(e.type) && e.type.includes("array"), O = (e) => e && (e.type === "object" && Object.keys(e.properties ?? {}).length > 0 || e.type === "array" && typeof e.items == "object" && (!e.items.type || e.items.type === "object")), S = (e) => typeof e == "string" && e.startsWith(U), I = (e) => b(e) && "items" in e && S(e.items), W = (e) => typeof e == "string" ? e.split(":")[1] : void 0, A = ({ circularProp: e }) => /* @__PURE__ */ t.jsxs(
|
|
123
|
-
C,
|
|
124
|
-
{
|
|
125
|
-
className: "inline-flex items-center gap-1.5 italic text-xs translate-y-0.5",
|
|
126
|
-
selectOnClick: !1,
|
|
127
|
-
children: [
|
|
128
|
-
/* @__PURE__ */ t.jsx(L, { size: 13 }),
|
|
129
|
-
/* @__PURE__ */ t.jsx("span", { children: e ? `${e} (circular)` : "circular" })
|
|
130
|
-
]
|
|
131
|
-
}
|
|
132
|
-
), Q = ({
|
|
133
|
-
name: e,
|
|
134
|
-
schema: r,
|
|
135
|
-
group: s,
|
|
136
|
-
defaultOpen: i = !1,
|
|
137
|
-
showCollapseButton: o = !0
|
|
138
|
-
}) => {
|
|
139
|
-
const [n, l] = m(i);
|
|
140
|
-
if (S(r))
|
|
141
|
-
return /* @__PURE__ */ t.jsx("li", { className: "p-4 bg-border/20 hover:bg-border/30", children: /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-2.5 justify-between text-sm", children: [
|
|
142
|
-
/* @__PURE__ */ t.jsxs("div", { className: "space-x-2 rtl:space-x-reverse", children: [
|
|
143
|
-
/* @__PURE__ */ t.jsx("code", { children: e }),
|
|
144
|
-
/* @__PURE__ */ t.jsx(
|
|
145
|
-
g,
|
|
146
|
-
{
|
|
147
|
-
schema: r,
|
|
148
|
-
extraItems: [/* @__PURE__ */ t.jsx(A, {}, "circular-ref")]
|
|
149
|
-
}
|
|
150
|
-
)
|
|
151
|
-
] }),
|
|
152
|
-
/* @__PURE__ */ t.jsx(N, { schema: r })
|
|
153
|
-
] }) });
|
|
154
|
-
const a = !!((r.allOf || r.anyOf || r.oneOf || O(r) || b(r) && "items" in r && O(r.items) || r.additionalProperties) && !I(r));
|
|
155
|
-
return /* @__PURE__ */ t.jsx("li", { className: "p-4 bg-border/20 hover:bg-border/30", children: /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-2.5 justify-between text-sm", children: [
|
|
156
|
-
/* @__PURE__ */ t.jsxs("div", { className: "space-x-2 rtl:space-x-reverse", children: [
|
|
157
|
-
/* @__PURE__ */ t.jsx(x, { asChild: !0, children: /* @__PURE__ */ t.jsx("code", { children: e }) }),
|
|
158
|
-
/* @__PURE__ */ t.jsx(
|
|
159
|
-
g,
|
|
160
|
-
{
|
|
161
|
-
schema: r,
|
|
162
|
-
extraItems: [
|
|
163
|
-
s !== "optional" && /* @__PURE__ */ t.jsx("span", { className: "text-primary", children: "required" }),
|
|
164
|
-
I(r) && /* @__PURE__ */ t.jsx(
|
|
165
|
-
A,
|
|
166
|
-
{
|
|
167
|
-
circularProp: W(r.items)
|
|
168
|
-
}
|
|
169
|
-
)
|
|
170
|
-
]
|
|
171
|
-
}
|
|
172
|
-
)
|
|
173
|
-
] }),
|
|
174
|
-
r.description && /* @__PURE__ */ t.jsx(
|
|
175
|
-
P,
|
|
176
|
-
{
|
|
177
|
-
className: "text-sm leading-normal",
|
|
178
|
-
content: r.description
|
|
179
|
-
}
|
|
180
|
-
),
|
|
181
|
-
r.type === "array" && "items" in r && r.items.enum && /* @__PURE__ */ t.jsx(y, { values: r.items.enum }),
|
|
182
|
-
r.const && /* @__PURE__ */ t.jsx($, { schema: r, hideDescription: !0 }),
|
|
183
|
-
r.enum && /* @__PURE__ */ t.jsx(y, { values: r.enum }),
|
|
184
|
-
/* @__PURE__ */ t.jsx(N, { schema: r }),
|
|
185
|
-
a && /* @__PURE__ */ t.jsxs(
|
|
186
|
-
j.Root,
|
|
187
|
-
{
|
|
188
|
-
defaultOpen: i,
|
|
189
|
-
open: n,
|
|
190
|
-
onOpenChange: () => l(!n),
|
|
191
|
-
children: [
|
|
192
|
-
o && /* @__PURE__ */ t.jsx(j.Trigger, { asChild: !0, children: /* @__PURE__ */ t.jsxs(F, { variant: "expand", size: "sm", children: [
|
|
193
|
-
n ? /* @__PURE__ */ t.jsx(z, { size: 12 }) : /* @__PURE__ */ t.jsx(B, { size: 12 }),
|
|
194
|
-
n ? "Hide properties" : "Show properties"
|
|
195
|
-
] }) }),
|
|
196
|
-
/* @__PURE__ */ t.jsx(j.Content, { children: /* @__PURE__ */ t.jsx("div", { className: "mt-2", children: r.anyOf || r.oneOf || r.type === "object" ? /* @__PURE__ */ t.jsx(p, { schema: r }) : b(r) && "items" in r ? /* @__PURE__ */ t.jsx(p, { schema: r.items }) : null }) })
|
|
197
|
-
]
|
|
198
|
-
}
|
|
199
|
-
)
|
|
200
|
-
] }) });
|
|
201
|
-
}, V = (e) => {
|
|
202
|
-
const r = e.oneOf ?? e.anyOf ?? [];
|
|
203
|
-
return e.properties && Object.keys(e.properties).length > 0 ? r.map((s) => !s.properties && !s.type && !s.oneOf && !s.anyOf ? {
|
|
204
|
-
...s,
|
|
205
|
-
type: "object",
|
|
206
|
-
properties: e.properties,
|
|
207
|
-
required: s.required ?? e.required
|
|
208
|
-
} : s) : r;
|
|
209
|
-
}, X = (e) => {
|
|
210
|
-
if (Array.isArray(e.oneOf)) return "exactly-one";
|
|
211
|
-
const r = e.discriminator?.propertyName;
|
|
212
|
-
if (!r) return "at-least-one";
|
|
213
|
-
const s = V(e), i = /* @__PURE__ */ new Set();
|
|
214
|
-
for (const o of s) {
|
|
215
|
-
const n = o.properties?.[r], l = n?.const ?? (Array.isArray(n?.enum) && n.enum.length === 1 ? String(n.enum[0]) : void 0);
|
|
216
|
-
if (l == null || i.has(String(l))) return "at-least-one";
|
|
217
|
-
i.add(String(l));
|
|
218
|
-
}
|
|
219
|
-
return "exactly-one";
|
|
220
|
-
}, v = (e, r) => r.title?.trim() || `Variant ${e + 1}`, Y = (e, r) => {
|
|
221
|
-
const s = [];
|
|
222
|
-
e.type && s.push(
|
|
223
|
-
`type = ${Array.isArray(e.type) ? e.type.join("|") : e.type}`
|
|
224
|
-
);
|
|
225
|
-
const i = r?.discriminator?.propertyName;
|
|
226
|
-
if (i) {
|
|
227
|
-
const n = e.properties?.[i], l = n?.const ?? (Array.isArray(n?.enum) && n.enum.length === 1 ? n.enum[0] : void 0);
|
|
228
|
-
l !== void 0 && s.push(`${i}=${JSON.stringify(l)}`);
|
|
229
|
-
}
|
|
230
|
-
const o = (e.required ?? []).filter((n) => n !== i);
|
|
231
|
-
if (o.length) {
|
|
232
|
-
const n = o.slice(0, 3).join(", "), l = o.length > 3 ? ` +${o.length - 3} more` : "";
|
|
233
|
-
s.push(`requires: ${n}${l}`);
|
|
234
|
-
}
|
|
235
|
-
return s;
|
|
236
|
-
}, Z = ({
|
|
237
|
-
variants: e,
|
|
238
|
-
schema: r,
|
|
239
|
-
selectedVariant: s,
|
|
240
|
-
onSelectVariant: i
|
|
241
|
-
}) => {
|
|
242
|
-
const o = e.map((n, l) => ({
|
|
243
|
-
label: v(l, n),
|
|
244
|
-
guards: Y(n, r)
|
|
245
|
-
}));
|
|
246
|
-
return /* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-2 text-sm", children: [
|
|
247
|
-
/* @__PURE__ */ t.jsx("h4", { className: "font-medium", children: "Decision Table" }),
|
|
248
|
-
/* @__PURE__ */ t.jsx("div", { className: "border rounded-md overflow-hidden", children: /* @__PURE__ */ t.jsxs("table", { className: "w-full", children: [
|
|
249
|
-
/* @__PURE__ */ t.jsx("thead", { children: /* @__PURE__ */ t.jsxs("tr", { className: "border-b bg-muted/50", children: [
|
|
250
|
-
/* @__PURE__ */ t.jsx("th", { className: "text-left p-2 font-medium", children: "Variant" }),
|
|
251
|
-
/* @__PURE__ */ t.jsx("th", { className: "text-left p-2 font-medium", children: "Matching Criteria" })
|
|
252
|
-
] }) }),
|
|
253
|
-
/* @__PURE__ */ t.jsx("tbody", { className: "divide-y", children: o.map((n) => /* @__PURE__ */ t.jsxs("tr", { className: "hover:bg-muted/30", children: [
|
|
254
|
-
/* @__PURE__ */ t.jsx("td", { className: "p-2 font-medium", children: /* @__PURE__ */ t.jsx(
|
|
255
|
-
"button",
|
|
256
|
-
{
|
|
257
|
-
type: "button",
|
|
258
|
-
className: h(
|
|
259
|
-
"hover:underline",
|
|
260
|
-
s === n.label && "text-primary"
|
|
261
|
-
),
|
|
262
|
-
onClick: () => i(n.label),
|
|
263
|
-
children: n.label
|
|
264
|
-
}
|
|
265
|
-
) }),
|
|
266
|
-
/* @__PURE__ */ t.jsx("td", { className: "p-2 text-muted-foreground text-xs", children: n.guards.length > 0 ? n.guards.join(" · ") : "No specific criteria" })
|
|
267
|
-
] }, n.label)) })
|
|
268
|
-
] }) })
|
|
269
|
-
] });
|
|
270
|
-
}, H = ({ variant: e }) => /* @__PURE__ */ t.jsxs("div", { className: "space-y-2", children: [
|
|
271
|
-
e.description && /* @__PURE__ */ t.jsx("p", { className: "text-sm text-muted-foreground", children: e.description }),
|
|
272
|
-
/* @__PURE__ */ t.jsx(p, { schema: e })
|
|
273
|
-
] }), ee = ({
|
|
274
|
-
schema: e,
|
|
275
|
-
cardHeader: r
|
|
276
|
-
}) => {
|
|
277
|
-
const s = Array.isArray(e.oneOf) ? "oneOf" : Array.isArray(e.anyOf) ? "anyOf" : void 0, i = s ? V(e) : [], [o, n] = m(
|
|
278
|
-
() => i[0] ? v(0, i[0]) : ""
|
|
279
|
-
);
|
|
280
|
-
if (!s) return null;
|
|
281
|
-
const a = X(e) === "exactly-one" ? /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
|
|
282
|
-
"Exactly one variant ",
|
|
283
|
-
/* @__PURE__ */ t.jsx("b", { children: "must match" }),
|
|
284
|
-
"."
|
|
285
|
-
] }) : /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
|
|
286
|
-
"At least one variant ",
|
|
287
|
-
/* @__PURE__ */ t.jsx("b", { children: "must match" }),
|
|
288
|
-
". Multiple variants",
|
|
289
|
-
" ",
|
|
290
|
-
/* @__PURE__ */ t.jsx("i", { children: "may match" }),
|
|
291
|
-
" simultaneously."
|
|
292
|
-
] }), d = i.findIndex(
|
|
293
|
-
(f, k) => v(k, f) === o
|
|
294
|
-
), c = d >= 0 ? i[d] : null;
|
|
295
|
-
return /* @__PURE__ */ t.jsxs(u, { className: "overflow-hidden text-sm", children: [
|
|
296
|
-
r,
|
|
297
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex flex-col gap-4 p-4", children: [
|
|
298
|
-
/* @__PURE__ */ t.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
299
|
-
/* @__PURE__ */ t.jsx(J, { variant: "outline", children: s }),
|
|
300
|
-
/* @__PURE__ */ t.jsx("div", { className: "flex-1 p-2", children: /* @__PURE__ */ t.jsx("span", { className: "text-sm", children: a }) })
|
|
301
|
-
] }),
|
|
302
|
-
/* @__PURE__ */ t.jsx(
|
|
303
|
-
Z,
|
|
304
|
-
{
|
|
305
|
-
variants: i,
|
|
306
|
-
schema: e,
|
|
307
|
-
selectedVariant: o,
|
|
308
|
-
onSelectVariant: n
|
|
309
|
-
}
|
|
310
|
-
),
|
|
311
|
-
/* @__PURE__ */ t.jsxs("strong", { children: [
|
|
312
|
-
"Properties for ",
|
|
313
|
-
o,
|
|
314
|
-
":"
|
|
315
|
-
] }),
|
|
316
|
-
c && /* @__PURE__ */ t.jsx(H, { variant: c })
|
|
317
|
-
] })
|
|
318
|
-
] });
|
|
319
|
-
}, te = (e) => e && /* @__PURE__ */ t.jsx(
|
|
320
|
-
P,
|
|
321
|
-
{
|
|
322
|
-
className: "text-sm leading-normal line-clamp-4",
|
|
323
|
-
content: e
|
|
324
|
-
}
|
|
325
|
-
), re = (e, r) => /* @__PURE__ */ t.jsxs(u, { className: "overflow-hidden", children: [
|
|
326
|
-
r,
|
|
327
|
-
/* @__PURE__ */ t.jsxs("div", { className: "p-4 space-y-2", children: [
|
|
328
|
-
/* @__PURE__ */ t.jsx("span", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ t.jsx(g, { schema: e }) }),
|
|
329
|
-
e.enum && /* @__PURE__ */ t.jsx(y, { values: e.enum }),
|
|
330
|
-
te(e.description),
|
|
331
|
-
/* @__PURE__ */ t.jsx(N, { schema: e })
|
|
332
|
-
] })
|
|
333
|
-
] }), p = ({
|
|
334
|
-
schema: e,
|
|
335
|
-
defaultOpen: r = !1,
|
|
336
|
-
cardHeader: s,
|
|
337
|
-
embedded: i
|
|
338
|
-
}) => {
|
|
339
|
-
if (!e || Object.keys(e).length === 0)
|
|
340
|
-
return /* @__PURE__ */ t.jsxs(u, { className: "overflow-hidden", children: [
|
|
341
|
-
s,
|
|
342
|
-
/* @__PURE__ */ t.jsx("div", { className: "text-sm text-muted-foreground italic p-4", children: "No data returned" })
|
|
343
|
-
] });
|
|
344
|
-
if (e.const)
|
|
345
|
-
return /* @__PURE__ */ t.jsx($, { schema: e });
|
|
346
|
-
if (Array.isArray(e.oneOf) || Array.isArray(e.anyOf))
|
|
347
|
-
return /* @__PURE__ */ t.jsx(ee, { schema: e, cardHeader: s });
|
|
348
|
-
if (w(e.type))
|
|
349
|
-
return re(e, s);
|
|
350
|
-
if (e.type === "array" && typeof e.items == "object")
|
|
351
|
-
return /* @__PURE__ */ t.jsx(p, { schema: e.items, cardHeader: s });
|
|
352
|
-
if (e.type === "object") {
|
|
353
|
-
const o = _(
|
|
354
|
-
Object.entries(e.properties ?? {}),
|
|
355
|
-
([d, c]) => c.deprecated ? "deprecated" : e.required?.includes(d) ? "required" : "optional"
|
|
356
|
-
), n = ["required", "optional", "deprecated"], l = typeof e.additionalProperties == "object" ? /* @__PURE__ */ t.jsx(p, { schema: e.additionalProperties, embedded: !0 }) : e.additionalProperties === !0 ? /* @__PURE__ */ t.jsxs("div", { className: "text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1", children: [
|
|
357
|
-
/* @__PURE__ */ t.jsx("span", { children: "Additional properties are allowed" }),
|
|
358
|
-
/* @__PURE__ */ t.jsx(
|
|
359
|
-
"a",
|
|
360
|
-
{
|
|
361
|
-
className: "p-0.5 -m-0.5",
|
|
362
|
-
href: "https://swagger.io/docs/specification/v3_0/data-models/dictionaries/",
|
|
363
|
-
rel: "noopener noreferrer",
|
|
364
|
-
target: "_blank",
|
|
365
|
-
children: /* @__PURE__ */ t.jsx(M, { size: 14 })
|
|
366
|
-
}
|
|
367
|
-
)
|
|
368
|
-
] }) : null, a = i ? "div" : u;
|
|
369
|
-
return /* @__PURE__ */ t.jsxs(a, { className: "divide-y overflow-hidden", children: [
|
|
370
|
-
s,
|
|
371
|
-
n.map(
|
|
372
|
-
(d) => o[d] && /* @__PURE__ */ t.jsx("ul", { className: "divide-y", children: o[d].map(([c, f]) => /* @__PURE__ */ t.jsx(
|
|
373
|
-
Q,
|
|
374
|
-
{
|
|
375
|
-
name: c,
|
|
376
|
-
schema: f,
|
|
377
|
-
group: d,
|
|
378
|
-
defaultOpen: r
|
|
379
|
-
},
|
|
380
|
-
c
|
|
381
|
-
)) }, d)
|
|
382
|
-
),
|
|
383
|
-
l
|
|
384
|
-
] });
|
|
385
|
-
}
|
|
386
|
-
return null;
|
|
387
|
-
};
|
|
388
|
-
export {
|
|
389
|
-
y as E,
|
|
390
|
-
g as P,
|
|
391
|
-
p as S,
|
|
392
|
-
N as a,
|
|
393
|
-
S as b,
|
|
394
|
-
_ as g,
|
|
395
|
-
b as i
|
|
396
|
-
};
|
|
397
|
-
//# sourceMappingURL=SchemaView-DJiBd0_5.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaView-DJiBd0_5.js","sources":["../src/lib/util/groupBy.ts","../src/lib/plugins/openapi/components/ConstValue.tsx","../src/lib/plugins/openapi/components/EnumValues.tsx","../src/lib/plugins/openapi/ParamInfos.tsx","../src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx","../src/lib/plugins/openapi/schema/utils.ts","../src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx","../src/lib/plugins/openapi/schema/union-helpers.ts","../src/lib/plugins/openapi/schema/UnionView.tsx","../src/lib/plugins/openapi/schema/SchemaView.tsx"],"sourcesContent":["// biome-ignore-all lint/suspicious/noExplicitAny: Allow any type\nexport 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 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 { 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-sm 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 { 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 ? Array.isArray(schema.items.type)\n ? `(${schema.items.type.join(\" | \")})[]`\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 !== undefined && `min: ${schema.minimum}`,\n schema.maximum !== undefined && `max: ${schema.maximum}`,\n schema.minLength !== undefined && `minLength: ${schema.minLength}`,\n schema.maxLength !== undefined && `maxLength: ${schema.maxLength}`,\n schema.minItems !== undefined && `minItems: ${schema.minItems}`,\n schema.maxItems !== undefined && `maxItems: ${schema.maxItems}`,\n schema.minProperties !== undefined && `minProps: ${schema.minProperties}`,\n schema.maxProperties !== undefined && `maxProps: ${schema.maxProperties}`,\n schema.uniqueItems && \"unique\",\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 // biome-ignore lint/suspicious/noArrayIndexKey: index should be stable\n <span className=\"text-muted-foreground\" key={index}>\n {item}\n {index < filteredItems.length - 1 && (\n <span className=\"text-muted-foreground/50\">\n · \n </span>\n )}\n </span>\n ))}\n </span>\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 === undefined && defaultValue === undefined) return null;\n\n return (\n <div className=\"flex flex-col gap-1 text-xs\">\n {example !== undefined && (\n <div>\n <span className=\"text-muted-foreground\">Example: </span>\n <SelectOnClick className=\"border rounded-sm px-1 font-mono\">\n {typeof example === \"object\" || typeof example === \"boolean\"\n ? JSON.stringify(example)\n : example}\n </SelectOnClick>\n </div>\n )}\n {defaultValue !== undefined && (\n <div>\n <span className=\"text-muted-foreground\">Default: </span>\n <SelectOnClick className=\"border rounded-sm px-1 font-mono\">\n {typeof defaultValue === \"object\" ||\n typeof defaultValue === \"boolean\"\n ? JSON.stringify(defaultValue)\n : defaultValue}\n </SelectOnClick>\n </div>\n )}\n </div>\n );\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 (Array.isArray(type) && type.every(isBasicType));\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 &&\n ((value.type === \"object\" &&\n 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 isCircularRef = (schema: unknown): schema is string =>\n typeof schema === \"string\" && schema.startsWith(CIRCULAR_REF);\n\nexport const isArrayCircularRef = (\n schema: SchemaObject,\n): schema is SchemaObject & { items: SchemaObject } =>\n isArrayType(schema) && \"items\" in schema && isCircularRef(schema.items);\n\nexport const extractCircularRefInfo = (\n ref?: string | SchemaObject,\n): string | undefined =>\n typeof ref === \"string\" ? ref.split(\":\")[1] : undefined;\n","import * as Collapsible from \"@radix-ui/react-collapsible\";\nimport { MinusIcon, PlusIcon, RefreshCcwDotIcon } from \"lucide-react\";\nimport { useState } from \"react\";\nimport { InlineCode } from \"../../../components/InlineCode.js\";\nimport { Markdown } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Button } from \"../../../ui/Button.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 { SchemaExampleAndDefault } from \"./SchemaExampleAndDefault.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n extractCircularRefInfo,\n isArrayCircularRef,\n isArrayType,\n isCircularRef,\n isComplexType,\n} from \"./utils.js\";\n\nconst RecursiveIndicator = ({ circularProp }: { circularProp?: string }) => (\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>{circularProp ? `${circularProp} (circular)` : \"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 const isCollapsible = Boolean(\n (schema.allOf ||\n schema.anyOf ||\n schema.oneOf ||\n isComplexType(schema) ||\n (isArrayType(schema) &&\n \"items\" in schema &&\n isComplexType(schema.items)) ||\n schema.additionalProperties) &&\n !isArrayCircularRef(schema),\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 isArrayCircularRef(schema) && (\n <RecursiveIndicator\n circularProp={extractCircularRefInfo(schema.items)}\n />\n ),\n ]}\n />\n </div>\n {schema.description && (\n <Markdown\n className=\"text-sm leading-normal\"\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\n {isCollapsible && (\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 {schema.anyOf || schema.oneOf || schema.type === \"object\" ? (\n <SchemaView schema={schema} />\n ) : isArrayType(schema) && \"items\" in schema ? (\n <SchemaView schema={schema.items} />\n ) : null}\n </div>\n </Collapsible.Content>\n </Collapsible.Root>\n )}\n </div>\n </li>\n );\n};\n","import type { SchemaObject } from \"../../../oas/parser/index.js\";\n\nexport type FieldSignature = {\n type?: SchemaObject[\"type\"];\n const?: unknown;\n enum?: unknown[];\n format?: string;\n pattern?: string;\n minimum?: number;\n maximum?: number;\n exclusiveMinimum?: boolean | number;\n exclusiveMaximum?: boolean | number;\n minLength?: number;\n maxLength?: number;\n minItems?: number;\n maxItems?: number;\n itemsType?: string | string[];\n additionalProps?: \"true\" | \"false\" | \"schema\";\n};\n\nexport type FieldDoc = {\n name: string;\n humanType: string;\n description?: string;\n requiredInAll: boolean;\n};\n\nexport const unionVariants = (schema: SchemaObject): SchemaObject[] => {\n const variants = (schema.oneOf ?? schema.anyOf ?? []) as SchemaObject[];\n\n // If parent schema has properties that variants don't, merge them\n // This handles the pattern where anyOf/oneOf is used just for required field combinations\n if (schema.properties && Object.keys(schema.properties).length > 0) {\n return variants.map((variant) => {\n // If variant doesn't define its own properties or type, inherit from parent\n const shouldInherit =\n !variant.properties &&\n !variant.type &&\n !variant.oneOf &&\n !variant.anyOf;\n\n if (shouldInherit) {\n return {\n ...variant,\n type: \"object\" as const,\n properties: schema.properties,\n required: variant.required ?? schema.required,\n };\n }\n\n return variant;\n });\n }\n\n return variants;\n};\n\nexport const decideExclusivity = (\n schema: SchemaObject,\n): \"exactly-one\" | \"at-least-one\" => {\n if (Array.isArray(schema.oneOf)) return \"exactly-one\";\n\n const discriminator = schema.discriminator?.propertyName;\n if (!discriminator) return \"at-least-one\";\n\n const variants = unionVariants(schema);\n const seen = new Set<string>();\n\n for (const variant of variants) {\n const prop = variant.properties?.[discriminator];\n\n const value =\n prop?.const ??\n (Array.isArray(prop?.enum) && prop.enum.length === 1\n ? String(prop.enum[0])\n : undefined);\n\n if (value == null || seen.has(String(value))) return \"at-least-one\";\n seen.add(String(value));\n }\n\n return \"exactly-one\";\n};\n\nexport const labelForVariant = (index: number, variant: SchemaObject) =>\n variant.title?.trim() || `Variant ${index + 1}`;\n\nexport const quickGuards = (variant: SchemaObject, root?: SchemaObject) => {\n const guards: string[] = [];\n\n if (variant.type) {\n guards.push(\n `type = ${Array.isArray(variant.type) ? variant.type.join(\"|\") : variant.type}`,\n );\n }\n\n const discriminator = root?.discriminator?.propertyName;\n if (discriminator) {\n const discriminatorProp = variant.properties?.[discriminator] as\n | SchemaObject\n | undefined;\n\n const discriminatorValue =\n discriminatorProp?.const ??\n (Array.isArray(discriminatorProp?.enum) &&\n discriminatorProp.enum.length === 1\n ? discriminatorProp.enum[0]\n : undefined);\n\n if (discriminatorValue !== undefined) {\n guards.push(`${discriminator}=${JSON.stringify(discriminatorValue)}`);\n }\n }\n\n const required = (variant.required ?? []).filter((k) => k !== discriminator);\n if (required.length) {\n const head = required.slice(0, 3).join(\", \");\n const more = required.length > 3 ? ` +${required.length - 3} more` : \"\";\n guards.push(`requires: ${head}${more}`);\n }\n\n return guards;\n};\n","import { useState } from \"react\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Badge } from \"../../../ui/Badge.js\";\nimport { Card } from \"../../../ui/Card.js\";\nimport { cn } from \"../../../util/cn.js\";\nimport { SchemaView } from \"./SchemaView.js\";\nimport {\n decideExclusivity,\n labelForVariant,\n quickGuards,\n unionVariants,\n} from \"./union-helpers.js\";\n\nconst DecisionTable = ({\n variants,\n schema,\n selectedVariant,\n onSelectVariant,\n}: {\n variants: SchemaObject[];\n schema: SchemaObject;\n selectedVariant: string;\n onSelectVariant: (label: string) => void;\n}) => {\n const rows = variants.map((v, i) => ({\n label: labelForVariant(i, v),\n guards: quickGuards(v, schema),\n }));\n\n return (\n <div className=\"flex flex-col gap-2 text-sm\">\n <h4 className=\"font-medium\">Decision Table</h4>\n <div className=\"border rounded-md overflow-hidden\">\n <table className=\"w-full\">\n <thead>\n <tr className=\"border-b bg-muted/50\">\n <th className=\"text-left p-2 font-medium\">Variant</th>\n <th className=\"text-left p-2 font-medium\">Matching Criteria</th>\n </tr>\n </thead>\n <tbody className=\"divide-y\">\n {rows.map((row) => (\n <tr key={row.label} className=\"hover:bg-muted/30\">\n <td className=\"p-2 font-medium\">\n <button\n type=\"button\"\n className={cn(\n \"hover:underline\",\n selectedVariant === row.label && \"text-primary\",\n )}\n onClick={() => onSelectVariant(row.label)}\n >\n {row.label}\n </button>\n </td>\n <td className=\"p-2 text-muted-foreground text-xs\">\n {row.guards.length > 0\n ? row.guards.join(\" · \")\n : \"No specific criteria\"}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n\nconst VariantPanel = ({ variant }: { variant: SchemaObject }) => {\n return (\n <div className=\"space-y-2\">\n {variant.description && (\n <p className=\"text-sm text-muted-foreground\">{variant.description}</p>\n )}\n <SchemaView schema={variant} />\n </div>\n );\n};\n\nexport const UnionView = ({\n schema,\n cardHeader,\n}: {\n schema: SchemaObject;\n cardHeader?: React.ReactNode;\n}) => {\n const mode = Array.isArray(schema.oneOf)\n ? \"oneOf\"\n : Array.isArray(schema.anyOf)\n ? \"anyOf\"\n : undefined;\n\n const variants = mode ? unionVariants(schema) : [];\n const [selectedVariant, setSelectedVariant] = useState(() =>\n variants[0] ? labelForVariant(0, variants[0]) : \"\",\n );\n\n if (!mode) return null;\n\n const exclusivity = decideExclusivity(schema);\n\n const semanticsMessage =\n exclusivity === \"exactly-one\" ? (\n <>\n Exactly one variant <b>must match</b>.\n </>\n ) : (\n <>\n At least one variant <b>must match</b>. Multiple variants{\" \"}\n <i>may match</i> simultaneously.\n </>\n );\n\n const currentVariantIndex = variants.findIndex(\n (v, i) => labelForVariant(i, v) === selectedVariant,\n );\n const currentVariant =\n currentVariantIndex >= 0 ? variants[currentVariantIndex] : null;\n\n return (\n <Card className=\"overflow-hidden text-sm\">\n {cardHeader}\n <div className=\"flex flex-col gap-4 p-4\">\n <div className=\"flex items-center gap-2\">\n <Badge variant=\"outline\">{mode}</Badge>\n <div className=\"flex-1 p-2\">\n <span className=\"text-sm\">{semanticsMessage}</span>\n </div>\n </div>\n\n <DecisionTable\n variants={variants}\n schema={schema}\n selectedVariant={selectedVariant}\n onSelectVariant={setSelectedVariant}\n />\n <strong>Properties for {selectedVariant}:</strong>\n {currentVariant && <VariantPanel variant={currentVariant} />}\n </div>\n </Card>\n );\n};\n","import { InfoIcon } from \"lucide-react\";\nimport { Markdown } from \"../../../components/Markdown.js\";\nimport type { SchemaObject } from \"../../../oas/parser/index.js\";\nimport { Card } from \"../../../ui/Card.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 { SchemaPropertyItem } from \"./SchemaPropertyItem.js\";\nimport { UnionView } from \"./UnionView.js\";\nimport { isBasicType } from \"./utils.js\";\n\nconst renderMarkdown = (content?: string) =>\n content && (\n <Markdown\n className=\"text-sm leading-normal line-clamp-4\"\n content={content}\n />\n );\n\nconst renderBasicSchema = (\n schema: SchemaObject,\n cardHeader?: React.ReactNode,\n) => (\n <Card className=\"overflow-hidden\">\n {cardHeader}\n <div 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 </div>\n </Card>\n);\n\nexport const SchemaView = ({\n schema,\n defaultOpen = false,\n cardHeader,\n embedded,\n}: {\n schema?: SchemaObject | null;\n defaultOpen?: boolean;\n cardHeader?: React.ReactNode;\n embedded?: boolean;\n}) => {\n if (!schema || Object.keys(schema).length === 0) {\n return (\n <Card className=\"overflow-hidden\">\n {cardHeader}\n <div className=\"text-sm text-muted-foreground italic p-4\">\n No data returned\n </div>\n </Card>\n );\n }\n\n if (schema.const) {\n return <ConstValue schema={schema} />;\n }\n\n if (Array.isArray(schema.oneOf) || Array.isArray(schema.anyOf)) {\n return <UnionView schema={schema} cardHeader={cardHeader} />;\n }\n\n if (isBasicType(schema.type)) {\n return renderBasicSchema(schema, cardHeader);\n }\n\n if (schema.type === \"array\" && typeof schema.items === \"object\") {\n return <SchemaView schema={schema.items} cardHeader={cardHeader} />;\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} embedded />\n ) : schema.additionalProperties === true ? (\n <div className=\"text-sm p-4 bg-border/20 hover:bg-border/30 flex items-center gap-1\">\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 const Component = embedded ? \"div\" : Card;\n\n return (\n <Component className=\"divide-y overflow-hidden\">\n {cardHeader}\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 </Component>\n );\n }\n\n return null;\n};\n"],"names":["groupBy","arr","keySelector","accumulator","val","groupedKey","ConstValue","schema","hideDescription","jsx","SelectOnClick","EnumValues","values","className","maxVisibleValues","isOpen","setIsOpen","useState","shouldCollapse","visibleValues","cn","value","Button","jsxs","ChevronUpIcon","ChevronDownIcon","Pattern","pattern","isExpanded","setIsExpanded","isExpandable","shortPattern","InlineCode","ChevronsLeftRightIcon","getSchemaInfos","Fragment","ParamInfos","extraItems","filteredItems","item","isValidElement","index","SchemaExampleAndDefault","example","defaultValue","isBasicType","type","isArrayType","isComplexType","isCircularRef","CIRCULAR_REF","isArrayCircularRef","extractCircularRefInfo","ref","RecursiveIndicator","circularProp","RefreshCcwDotIcon","SchemaPropertyItem","name","group","defaultOpen","showCollapseButton","isCollapsible","Markdown","Collapsible","MinusIcon","PlusIcon","SchemaView","unionVariants","variants","variant","decideExclusivity","discriminator","seen","prop","labelForVariant","quickGuards","root","guards","discriminatorProp","discriminatorValue","required","k","head","more","DecisionTable","selectedVariant","onSelectVariant","rows","v","i","row","VariantPanel","UnionView","cardHeader","mode","setSelectedVariant","semanticsMessage","currentVariantIndex","currentVariant","Card","Badge","renderMarkdown","content","renderBasicSchema","embedded","groupedProperties","propertyName","property","groupNames","additionalProperties","InfoIcon","Component"],"mappings":"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"}
|