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
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { startTransition, useCallback, useEffect, useRef, } from "react";
|
|
2
|
+
import { useFieldArray, useFormContext } from "react-hook-form";
|
|
3
|
+
export const useKeyValueFieldManager = (options) => {
|
|
4
|
+
const { control, name, defaultValue, isEmpty: customIsEmpty, shouldSetActive: customShouldSetActive, } = options;
|
|
5
|
+
const { setValue: internalSetValue, watch, setFocus, register, } = useFormContext();
|
|
6
|
+
const { fields, append, remove } = useFieldArray({ control, name });
|
|
7
|
+
const watchedFields = watch(name);
|
|
8
|
+
const lastEditedIndexRef = useRef(-1);
|
|
9
|
+
const prevLengthRef = useRef(-1);
|
|
10
|
+
const setValue = useCallback((index, field, value, options) => {
|
|
11
|
+
if (field === "value" || field === "name") {
|
|
12
|
+
lastEditedIndexRef.current = index;
|
|
13
|
+
}
|
|
14
|
+
// biome-ignore lint/suspicious/noExplicitAny: Can't infer the type of the value here
|
|
15
|
+
internalSetValue(`${name}.${index}.${field}`, value);
|
|
16
|
+
if (options?.focus === "next") {
|
|
17
|
+
setFocus(field === "name"
|
|
18
|
+
? `${name}.${index}.value`
|
|
19
|
+
: `${name}.${index + 1}.name`);
|
|
20
|
+
}
|
|
21
|
+
else if (options?.focus === "previous") {
|
|
22
|
+
setFocus(field === "name"
|
|
23
|
+
? `${name}.${index - 1}.value`
|
|
24
|
+
: `${name}.${index}.name`);
|
|
25
|
+
}
|
|
26
|
+
}, [name, internalSetValue, setFocus]);
|
|
27
|
+
const isEmpty = useCallback((item) => {
|
|
28
|
+
if (customIsEmpty)
|
|
29
|
+
return customIsEmpty(item);
|
|
30
|
+
return !item.name && !item.value;
|
|
31
|
+
}, [customIsEmpty]);
|
|
32
|
+
const shouldSetActive = useCallback((item) => {
|
|
33
|
+
if (customShouldSetActive)
|
|
34
|
+
return customShouldSetActive(item);
|
|
35
|
+
return Boolean(item.name || item.value);
|
|
36
|
+
}, [customShouldSetActive]);
|
|
37
|
+
// Handle auto append/remove of rows
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
if (!watchedFields)
|
|
40
|
+
return;
|
|
41
|
+
// Prevents double-appending in Strict Mode
|
|
42
|
+
if (prevLengthRef.current === -1) {
|
|
43
|
+
prevLengthRef.current = watchedFields.length;
|
|
44
|
+
if (watchedFields.length === 0) {
|
|
45
|
+
// biome-ignore lint/suspicious/noExplicitAny: Generic field array type
|
|
46
|
+
append(defaultValue, {
|
|
47
|
+
shouldFocus: false,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
prevLengthRef.current = watchedFields.length;
|
|
53
|
+
// If no fields, append one
|
|
54
|
+
if (watchedFields.length === 0) {
|
|
55
|
+
// biome-ignore lint/suspicious/noExplicitAny: Generic field array type
|
|
56
|
+
append(defaultValue, {
|
|
57
|
+
shouldFocus: false,
|
|
58
|
+
});
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
// Auto-remove empty fields (except the last one, keep at least one)
|
|
62
|
+
if (watchedFields.length > 1) {
|
|
63
|
+
const emptyIndices = [];
|
|
64
|
+
// Check all fields except the last one
|
|
65
|
+
for (let i = 0; i < watchedFields.length - 1; i++) {
|
|
66
|
+
const field = watchedFields[i];
|
|
67
|
+
if (field && isEmpty(field) && !shouldSetActive(field)) {
|
|
68
|
+
emptyIndices.push(i);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Remove from highest index to lowest to avoid index shifting
|
|
72
|
+
if (emptyIndices.length > 0) {
|
|
73
|
+
const lowestRemovedIndex = emptyIndices[0];
|
|
74
|
+
if (lowestRemovedIndex === undefined)
|
|
75
|
+
return;
|
|
76
|
+
for (let i = emptyIndices.length - 1; i >= 0; i--) {
|
|
77
|
+
const indexToRemove = emptyIndices[i];
|
|
78
|
+
if (indexToRemove !== undefined) {
|
|
79
|
+
remove(indexToRemove);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// If we just edited this field, focus the name field at the same index
|
|
83
|
+
// (which now contains what was the next row), or previous row if needed
|
|
84
|
+
if (lastEditedIndexRef.current === lowestRemovedIndex) {
|
|
85
|
+
const newLength = watchedFields.length - emptyIndices.length;
|
|
86
|
+
if (lowestRemovedIndex < newLength) {
|
|
87
|
+
// Next row moved into this position, focus its name field
|
|
88
|
+
setFocus(`${name}.${lowestRemovedIndex}.name`);
|
|
89
|
+
}
|
|
90
|
+
else if (lowestRemovedIndex > 0) {
|
|
91
|
+
// Removed row was at the end, focus previous row's name
|
|
92
|
+
setFocus(`${name}.${lowestRemovedIndex - 1}.name`);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
setFocus(`${name}.0.name`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
lastEditedIndexRef.current = -1;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// If last field has content, append empty one
|
|
102
|
+
const lastField = watchedFields[watchedFields.length - 1];
|
|
103
|
+
if (lastField && !isEmpty(lastField)) {
|
|
104
|
+
// biome-ignore lint/suspicious/noExplicitAny: Generic field array type
|
|
105
|
+
append(defaultValue, {
|
|
106
|
+
shouldFocus: false,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}, [
|
|
110
|
+
watchedFields,
|
|
111
|
+
append,
|
|
112
|
+
remove,
|
|
113
|
+
defaultValue,
|
|
114
|
+
isEmpty,
|
|
115
|
+
name,
|
|
116
|
+
setFocus,
|
|
117
|
+
shouldSetActive,
|
|
118
|
+
]);
|
|
119
|
+
// Auto set active state of row checkbox
|
|
120
|
+
useEffect(() => {
|
|
121
|
+
if (!watchedFields)
|
|
122
|
+
return;
|
|
123
|
+
const updates = [];
|
|
124
|
+
for (let i = 0; i < watchedFields.length; i++) {
|
|
125
|
+
const field = watchedFields[i];
|
|
126
|
+
if (!field)
|
|
127
|
+
continue;
|
|
128
|
+
const shouldBeActive = shouldSetActive(field);
|
|
129
|
+
if (field.active === shouldBeActive)
|
|
130
|
+
continue;
|
|
131
|
+
updates.push(() => setValue(i, "active", shouldBeActive));
|
|
132
|
+
}
|
|
133
|
+
if (updates.length === 0)
|
|
134
|
+
return;
|
|
135
|
+
startTransition(() => updates.forEach((update) => update()));
|
|
136
|
+
}, [watchedFields, shouldSetActive, setValue]);
|
|
137
|
+
const isFieldEmpty = useCallback((index) => {
|
|
138
|
+
const field = watchedFields?.[index];
|
|
139
|
+
return field ? isEmpty(field) : true;
|
|
140
|
+
}, [watchedFields, isEmpty]);
|
|
141
|
+
const createKeyDownHandler = useCallback((index, field) => {
|
|
142
|
+
const next = field === "name"
|
|
143
|
+
? `${name}.${index}.value`
|
|
144
|
+
: `${name}.${index + 1}.name`;
|
|
145
|
+
const previous = field === "name"
|
|
146
|
+
? `${name}.${index - 1}.value`
|
|
147
|
+
: `${name}.${index}.name`;
|
|
148
|
+
const canNavigatePrevious = field === "value" || index > 0;
|
|
149
|
+
return (e) => {
|
|
150
|
+
if (!(e.target instanceof HTMLInputElement))
|
|
151
|
+
return;
|
|
152
|
+
const isAtStart = e.target.selectionStart === 0;
|
|
153
|
+
const isAtEnd = e.target.selectionStart === e.target.value.length;
|
|
154
|
+
const isEmpty = !e.target.value;
|
|
155
|
+
if (e.key === "Enter") {
|
|
156
|
+
setFocus(next);
|
|
157
|
+
}
|
|
158
|
+
else if (e.key === "Backspace" && isEmpty && canNavigatePrevious) {
|
|
159
|
+
e.preventDefault();
|
|
160
|
+
setFocus(previous);
|
|
161
|
+
}
|
|
162
|
+
else if (e.key === "ArrowLeft" && isAtStart && canNavigatePrevious) {
|
|
163
|
+
e.preventDefault();
|
|
164
|
+
setFocus(previous);
|
|
165
|
+
}
|
|
166
|
+
else if (e.key === "ArrowRight" && isAtEnd) {
|
|
167
|
+
e.preventDefault();
|
|
168
|
+
setFocus(next);
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}, [name, setFocus]);
|
|
172
|
+
const getNameInputProps = useCallback((index) => ({
|
|
173
|
+
...register(`${name}.${index}.name`),
|
|
174
|
+
onChange: (e) => setValue(index, "name", e.target.value),
|
|
175
|
+
onKeyDown: createKeyDownHandler(index, "name"),
|
|
176
|
+
}), [register, name, setValue, createKeyDownHandler]);
|
|
177
|
+
const getValueInputProps = useCallback((index) => ({
|
|
178
|
+
...register(`${name}.${index}.value`),
|
|
179
|
+
onChange: (e) => setValue(index, "value", e.target.value),
|
|
180
|
+
onKeyDown: createKeyDownHandler(index, "value"),
|
|
181
|
+
}), [register, name, setValue, createKeyDownHandler]);
|
|
182
|
+
const getCheckboxProps = useCallback((index) => ({
|
|
183
|
+
...register(`${name}.${index}.active`),
|
|
184
|
+
checked: watch(`${name}.${index}.active`) ?? false,
|
|
185
|
+
disabled: isFieldEmpty(index),
|
|
186
|
+
onCheckedChange: (checked) => {
|
|
187
|
+
setValue(index, "active", checked === true);
|
|
188
|
+
},
|
|
189
|
+
}), [name, register, isFieldEmpty, watch, setValue]);
|
|
190
|
+
const getValue = useCallback((index, field) => watchedFields?.[index]?.[field], [watchedFields]);
|
|
191
|
+
const getRemoveButtonProps = useCallback((index) => ({
|
|
192
|
+
onClick: () => remove(index),
|
|
193
|
+
disabled: index === fields.length - 1,
|
|
194
|
+
}), [remove, fields.length]);
|
|
195
|
+
return {
|
|
196
|
+
fields,
|
|
197
|
+
getNameInputProps,
|
|
198
|
+
getValueInputProps,
|
|
199
|
+
getCheckboxProps,
|
|
200
|
+
getRemoveButtonProps,
|
|
201
|
+
setValue,
|
|
202
|
+
getValue,
|
|
203
|
+
};
|
|
204
|
+
};
|
|
205
|
+
//# sourceMappingURL=useKeyValueFieldManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKeyValueFieldManager.js","sourceRoot":"","sources":["../../../../../../src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -96,11 +96,11 @@ export const ResponseTab = ({ body = "", headers, request, size, isBinary = fals
|
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
const sortedHeaders = sortHeadersByRelevance([...headers]);
|
|
99
|
-
return (_jsxs(_Fragment, { children: [_jsxs(Collapsible, { defaultOpen: true, children: [_jsxs(CollapsibleHeaderTrigger, { children: [_jsx(CornerDownRightIcon, { size: 14 }), _jsx(CollapsibleHeader, {
|
|
99
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Collapsible, { defaultOpen: true, children: [_jsxs(CollapsibleHeaderTrigger, { children: [_jsx(CornerDownRightIcon, { size: 14 }), _jsx(CollapsibleHeader, { children: "Request Headers" })] }), _jsx(CollapsibleContent, { children: _jsxs("div", { className: "grid grid-cols-[2fr_3fr] gap-x-6 text-sm", children: [request.headers
|
|
100
100
|
.slice(0, MAX_HEADERS_TO_SHOW)
|
|
101
101
|
.map(([key, value]) => (_jsxs(Row, { children: [_jsx(RowContent, { children: key }), _jsx(RowValue, { value: value, header: key })] }, key))), request.headers.length > MAX_HEADERS_TO_SHOW && (_jsxs(Collapsible, { className: "col-span-full grid-cols-subgrid grid group", children: [_jsxs(CollapsibleTrigger, { className: "data-[state=open]:hidden justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2", children: ["Show ", request.headers.length - MAX_HEADERS_TO_SHOW, " more headers", _jsx(PlusCircleIcon, { size: 12, className: "text-muted-foreground" })] }), _jsxs(CollapsibleContent, { className: "col-span-full grid grid-cols-subgrid", children: [request.headers
|
|
102
102
|
.slice(MAX_HEADERS_TO_SHOW)
|
|
103
|
-
.map(([key, value]) => (_jsxs(Row, { children: [_jsx(RowContent, { children: key }), _jsx(RowValue, { value: value, header: key })] }, key))), _jsxs(CollapsibleTrigger, { className: "justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2", children: ["Hide ", request.headers.length - MAX_HEADERS_TO_SHOW, " headers", _jsx(MinusCircleIcon, { size: 12, className: "text-muted-foreground" })] })] })] }))] }) })] }), _jsxs(Collapsible, { defaultOpen: true, children: [_jsxs(CollapsibleHeaderTrigger, { children: [_jsx(CornerDownLeftIcon, { size: 14 }), _jsx(CollapsibleHeader, {
|
|
103
|
+
.map(([key, value]) => (_jsxs(Row, { children: [_jsx(RowContent, { children: key }), _jsx(RowValue, { value: value, header: key })] }, key))), _jsxs(CollapsibleTrigger, { className: "justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2", children: ["Hide ", request.headers.length - MAX_HEADERS_TO_SHOW, " headers", _jsx(MinusCircleIcon, { size: 12, className: "text-muted-foreground" })] })] })] }))] }) })] }), _jsxs(Collapsible, { defaultOpen: true, children: [_jsxs(CollapsibleHeaderTrigger, { children: [_jsx(CornerDownLeftIcon, { size: 14 }), _jsx(CollapsibleHeader, { children: "Response Headers" })] }), _jsx(CollapsibleContent, { children: _jsxs("div", { className: "grid grid-cols-[2fr_3fr] gap-x-6 text-sm", children: [sortedHeaders.slice(0, MAX_HEADERS_TO_SHOW).map(([key, value]) => (_jsxs(Row, { children: [_jsx(RowContent, { children: key }), _jsx(RowValue, { value: value, header: key })] }, key))), sortedHeaders.length > MAX_HEADERS_TO_SHOW && (_jsxs(Collapsible, { className: "col-span-full grid-cols-subgrid grid group", children: [_jsxs(CollapsibleTrigger, { className: "data-[state=open]:hidden justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2", children: ["Show ", sortedHeaders.length - MAX_HEADERS_TO_SHOW, " more headers", _jsx(PlusCircleIcon, { size: 12, className: "text-muted-foreground" })] }), _jsxs(CollapsibleContent, { className: "col-span-full grid grid-cols-subgrid", children: [sortedHeaders
|
|
104
104
|
.slice(MAX_HEADERS_TO_SHOW)
|
|
105
105
|
.map(([key, value]) => (_jsxs(Row, { children: [_jsx(RowContent, { children: key }), _jsx(RowValue, { value: value, header: key })] }, key))), _jsxs(CollapsibleTrigger, { className: "justify-center col-span-2 text-xs text-muted-foreground hover:text-primary border-b h-8 flex items-center gap-2", children: ["Hide ", sortedHeaders.length - MAX_HEADERS_TO_SHOW, " headers", _jsx(MinusCircleIcon, { size: 12, className: "text-muted-foreground" })] })] })] }))] }) })] }), _jsxs("div", { className: "flex gap-2 justify-between items-center border-b px-2 flex-0", children: [_jsxs(CollapsibleHeader, { className: "flex items-center gap-2", children: [_jsx(SquareCodeIcon, { size: 14 }), "Response body"] }), jsonContent && !isBinary && (_jsxs(Select, { value: view, onValueChange: (value) => setView(value), children: [_jsx(SelectTrigger, { className: "max-w-32 border-0 bg-transparent", children: _jsx(SelectValue, { placeholder: "View" }) }), _jsxs(SelectContent, { children: [_jsx(SelectItem, { value: "formatted", children: "Formatted" }), _jsx(SelectItem, { value: "raw", children: "Raw" }), _jsx(SelectItem, { value: "types", children: "Types" })] })] }))] }), _jsx("div", { className: "flex-1", children: isBinary ? (_jsx("div", { className: "p-4 text-center", children: _jsxs("div", { className: "flex flex-col items-center gap-4", children: [_jsx("div", { className: "text-lg font-semibold", children: "Binary Content" }), _jsx("div", { className: "text-sm text-muted-foreground", children: "This response contains binary data that cannot be displayed as text." }), _jsxs(Button, { onClick: handleDownload, className: "flex items-center gap-2", disabled: !blob, children: [_jsx(DownloadIcon, { className: "h-4 w-4" }), "Download ", fileName || "file", " (", humanFileSize(size), ")"] })] }) })) : (_jsx(SyntaxHighlight, { className: "text-xs flex-1", embedded: true, fullHeight: true, language: view === "types"
|
|
106
106
|
? "typescript"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResponseTab.js","sourceRoot":"","sources":["../../../../../../src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ResponseTab.js","sourceRoot":"","sources":["../../../../../../src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,OAAO,EACP,UAAU,EACV,eAAe,EACf,cAAc,EACd,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EACL,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,sBAAsB,MAAM,4CAA4C,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC9C,MAAM,eAAe,GAAG;QACtB,kBAAkB,EAAE,MAAM;QAC1B,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,MAAM;QACnB,UAAU,EAAE,KAAK;QACjB,iBAAiB,EAAE,YAAY;QAC/B,iBAAiB,EAAE,KAAK;QACxB,uBAAuB,EAAE,OAAO;KACjC,CAAC;IAEF,OAAO,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CACrD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CACxB,EAAE,CAAC,CAAC,CAAC,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,OAAgC,EAAE,EAAE;IAC1D,MAAM,WAAW,GACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3E,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;IACpC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAC7B,OAAgC,EACP,EAAE;IAC3B,MAAM,aAAa,GAAG;QACpB,cAAc;QACd,gBAAgB;QAChB,eAAe;QACf,uBAAuB;QACvB,mBAAmB;QACnB,eAAe;QACf,MAAM;KACP,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IAElC,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE;QAC1C,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACzD,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,CAAC,CAAC;QAChC,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QAC5B,IAAI,MAAM,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QAC7B,OAAO,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAE9B,MAAM,GAAG,GAAG,sBAAsB,CAChC,KAAK,EACL,6EAA6E,CAC9E,CAAC;AAEF,MAAM,UAAU,GAAG,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;AACrE,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAqC,EAAE,EAAE;IACxE,MAAM,aAAa,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CACL,KAAC,UAAU,IACT,SAAS,EAAE,EAAE,CACX,wBAAwB,EACxB,QAAQ,IAAI,2BAA2B,CACxC,EACD,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,QAAQ,EAAE,CAAC;gBACb,WAAW,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC,YAEA,CAAC,QAAQ,CAAC,CAAC,CAAC,CACX,KAAK,CACN,CAAC,CAAC,CAAC,CACF,8BACE,KAAC,UAAU,IAAC,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAI,EACjE,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAI,CACpE,CAAC,CAAC,CAAC,CACF,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,0BAA0B,CAAC,GAAI,CACjE,IACA,CACJ,GACU,CACd,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,IAAI,GAAG,EAAE,EACT,OAAO,EACP,OAAO,EACP,IAAI,EACJ,QAAQ,GAAG,KAAK,EAChB,QAAQ,EACR,IAAI,GAcL,EAAE,EAAE;IACH,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,WAAW,IAAI,IAAI,CAAC;IAC3C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAC9B,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAClC,CAAC;IAEF,MAAM,KAAK,GAAG,QAAQ,CAAC;QACrB,QAAQ,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC;QACnC,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,OAAO,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ;KACvC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,IAAI,IAAI,QAAQ,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,sBAAsB,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAE3D,OAAO,CACL,8BACE,MAAC,WAAW,IAAC,WAAW,mBACtB,MAAC,wBAAwB,eACvB,KAAC,mBAAmB,IAAC,IAAI,EAAE,EAAE,GAAI,EACjC,KAAC,iBAAiB,kCAAoC,IAC7B,EAC3B,KAAC,kBAAkB,cACjB,eAAK,SAAS,EAAC,0CAA0C,aACtD,OAAO,CAAC,OAAO;qCACb,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC;qCAC7B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACrB,MAAC,GAAG,eACF,KAAC,UAAU,cAAE,GAAG,GAAc,EAC9B,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAI,KAF/B,GAAG,CAGP,CACP,CAAC,EACH,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,mBAAmB,IAAI,CAC/C,MAAC,WAAW,IAAC,SAAS,EAAC,4CAA4C,aACjE,MAAC,kBAAkB,IAAC,SAAS,EAAC,0IAA0I,sBAChK,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,mBAAmB,mBAElD,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,uBAAuB,GAAG,IAC3C,EACrB,MAAC,kBAAkB,IAAC,SAAS,EAAC,sCAAsC,aACjE,OAAO,CAAC,OAAO;qDACb,KAAK,CAAC,mBAAmB,CAAC;qDAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACrB,MAAC,GAAG,eACF,KAAC,UAAU,cAAE,GAAG,GAAc,EAC9B,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAI,KAF/B,GAAG,CAGP,CACP,CAAC,EACJ,MAAC,kBAAkB,IAAC,SAAS,EAAC,iHAAiH,sBACvI,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,mBAAmB,cAClD,KAAC,eAAe,IACd,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,uBAAuB,GACjC,IACiB,IACF,IACT,CACf,IACG,GACa,IACT,EAEd,MAAC,WAAW,IAAC,WAAW,mBACtB,MAAC,wBAAwB,eACvB,KAAC,kBAAkB,IAAC,IAAI,EAAE,EAAE,GAAI,EAChC,KAAC,iBAAiB,mCAAqC,IAC9B,EAC3B,KAAC,kBAAkB,cACjB,eAAK,SAAS,EAAC,0CAA0C,aACtD,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACjE,MAAC,GAAG,eACF,KAAC,UAAU,cAAE,GAAG,GAAc,EAC9B,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAI,KAF/B,GAAG,CAGP,CACP,CAAC,EACD,aAAa,CAAC,MAAM,GAAG,mBAAmB,IAAI,CAC7C,MAAC,WAAW,IAAC,SAAS,EAAC,4CAA4C,aACjE,MAAC,kBAAkB,IAAC,SAAS,EAAC,0IAA0I,sBAChK,aAAa,CAAC,MAAM,GAAG,mBAAmB,mBAChD,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,uBAAuB,GAAG,IAC3C,EACrB,MAAC,kBAAkB,IAAC,SAAS,EAAC,sCAAsC,aACjE,aAAa;qDACX,KAAK,CAAC,mBAAmB,CAAC;qDAC1B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACrB,MAAC,GAAG,eACF,KAAC,UAAU,cAAE,GAAG,GAAc,EAC9B,KAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAI,KAF/B,GAAG,CAGP,CACP,CAAC,EACJ,MAAC,kBAAkB,IAAC,SAAS,EAAC,iHAAiH,sBACvI,aAAa,CAAC,MAAM,GAAG,mBAAmB,cAChD,KAAC,eAAe,IACd,IAAI,EAAE,EAAE,EACR,SAAS,EAAC,uBAAuB,GACjC,IACiB,IACF,IACT,CACf,IACG,GACa,IACT,EAEd,eAAK,SAAS,EAAC,8DAA8D,aAC3E,MAAC,iBAAiB,IAAC,SAAS,EAAC,yBAAyB,aACpD,KAAC,cAAc,IAAC,IAAI,EAAE,EAAE,GAAI,qBAEV,EACnB,WAAW,IAAI,CAAC,QAAQ,IAAI,CAC3B,MAAC,MAAM,IACL,KAAK,EAAE,IAAI,EACX,aAAa,EAAE,CAAC,KAAK,EAAE,EAAE,CACvB,OAAO,CAAC,KAAsC,CAAC,aAGjD,KAAC,aAAa,IAAC,SAAS,EAAC,kCAAkC,YACzD,KAAC,WAAW,IAAC,WAAW,EAAC,MAAM,GAAG,GACpB,EAChB,MAAC,aAAa,eACZ,KAAC,UAAU,IAAC,KAAK,EAAC,WAAW,0BAAuB,EACpD,KAAC,UAAU,IAAC,KAAK,EAAC,KAAK,oBAAiB,EACxC,KAAC,UAAU,IAAC,KAAK,EAAC,OAAO,sBAAmB,IAC9B,IACT,CACV,IACG,EACN,cAAK,SAAS,EAAC,QAAQ,YACpB,QAAQ,CAAC,CAAC,CAAC,CACV,cAAK,SAAS,EAAC,iBAAiB,YAC9B,eAAK,SAAS,EAAC,kCAAkC,aAC/C,cAAK,SAAS,EAAC,uBAAuB,+BAAqB,EAC3D,cAAK,SAAS,EAAC,+BAA+B,qFAGxC,EACN,MAAC,MAAM,IACL,OAAO,EAAE,cAAc,EACvB,SAAS,EAAC,yBAAyB,EACnC,QAAQ,EAAE,CAAC,IAAI,aAEf,KAAC,YAAY,IAAC,SAAS,EAAC,SAAS,GAAG,eAC1B,QAAQ,IAAI,MAAM,QAAI,aAAa,CAAC,IAAI,CAAC,SAC5C,IACL,GACF,CACP,CAAC,CAAC,CAAC,CACF,KAAC,eAAe,IACd,SAAS,EAAC,gBAAgB,EAC1B,QAAQ,QACR,UAAU,QACV,QAAQ,EACN,IAAI,KAAK,OAAO;wBACd,CAAC,CAAC,YAAY;wBACd,CAAC,CAAC,IAAI,KAAK,KAAK;4BACd,CAAC,CAAC,WAAW;gCACX,CAAC,CAAC,OAAO;gCACT,CAAC,CAAC,gBAAgB;4BACpB,CAAC,CAAC,MAAM,EAEd,IAAI,EACF,CAAC,IAAI,KAAK,KAAK;wBACb,CAAC,CAAC,IAAI;wBACN,CAAC,CAAC,IAAI,KAAK,OAAO;4BAChB,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;4BAC9B,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,GAE7B,CACH,GACG,IACL,CACJ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -5,7 +5,7 @@ export const SchemaExampleAndDefault = ({ schema, }) => {
|
|
|
5
5
|
const defaultValue = schema.default;
|
|
6
6
|
if (example === undefined && defaultValue === undefined)
|
|
7
7
|
return null;
|
|
8
|
-
return (_jsxs("div", { className: "flex flex-col gap-1
|
|
8
|
+
return (_jsxs("div", { className: "flex flex-col gap-1", children: [example !== undefined && (_jsxs("div", { children: [_jsx("span", { className: "text-muted-foreground", children: "Example: " }), _jsx(SelectOnClick, { className: "border rounded-sm px-1 font-mono", children: typeof example === "object" || typeof example === "boolean"
|
|
9
9
|
? JSON.stringify(example)
|
|
10
10
|
: example })] })), defaultValue !== undefined && (_jsxs("div", { children: [_jsx("span", { className: "text-muted-foreground", children: "Default: " }), _jsx(SelectOnClick, { className: "border rounded-sm px-1 font-mono", children: typeof defaultValue === "object" ||
|
|
11
11
|
typeof defaultValue === "boolean"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaExampleAndDefault.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,MAAM,GAGP,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;IAEpC,IAAI,OAAO,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAErE,OAAO,CACL,eAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"SchemaExampleAndDefault.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,EACtC,MAAM,GAGP,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC;IAEpC,IAAI,OAAO,KAAK,SAAS,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAErE,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aACjC,OAAO,KAAK,SAAS,IAAI,CACxB,0BACE,eAAM,SAAS,EAAC,uBAAuB,0BAAiB,EACxD,KAAC,aAAa,IAAC,SAAS,EAAC,kCAAkC,YACxD,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,SAAS;4BAC1D,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;4BACzB,CAAC,CAAC,OAAO,GACG,IACZ,CACP,EACA,YAAY,KAAK,SAAS,IAAI,CAC7B,0BACE,eAAM,SAAS,EAAC,uBAAuB,0BAAiB,EACxD,KAAC,aAAa,IAAC,SAAS,EAAC,kCAAkC,YACxD,OAAO,YAAY,KAAK,QAAQ;4BACjC,OAAO,YAAY,KAAK,SAAS;4BAC/B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;4BAC9B,CAAC,CAAC,YAAY,GACF,IACZ,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -2,21 +2,25 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import * as Collapsible from "@radix-ui/react-collapsible";
|
|
3
3
|
import { MinusIcon, PlusIcon, RefreshCcwDotIcon } from "lucide-react";
|
|
4
4
|
import { useState } from "react";
|
|
5
|
+
import { Item, ItemActions, ItemContent, ItemTitle } from "zudoku/ui/Item.js";
|
|
5
6
|
import { InlineCode } from "../../../components/InlineCode.js";
|
|
6
7
|
import { Markdown } from "../../../components/Markdown.js";
|
|
7
8
|
import { Button } from "../../../ui/Button.js";
|
|
9
|
+
import { cn } from "../../../util/cn.js";
|
|
8
10
|
import { ConstValue } from "../components/ConstValue.js";
|
|
9
11
|
import { EnumValues } from "../components/EnumValues.js";
|
|
10
|
-
import { SelectOnClick } from "../components/SelectOnClick.js";
|
|
11
12
|
import { ParamInfos } from "../ParamInfos.js";
|
|
12
13
|
import { SchemaExampleAndDefault } from "./SchemaExampleAndDefault.js";
|
|
13
14
|
import { SchemaView } from "./SchemaView.js";
|
|
14
15
|
import { extractCircularRefInfo, isArrayCircularRef, isArrayType, isCircularRef, isComplexType, } from "./utils.js";
|
|
15
|
-
const RecursiveIndicator = ({ circularProp }) => (_jsxs(InlineCode, { className: "inline-flex items-center gap-1.5
|
|
16
|
+
const RecursiveIndicator = ({ circularProp }) => (_jsxs(InlineCode, { className: "inline-flex items-center gap-1.5 text-xs translate-y-0.5", selectOnClick: false, children: [_jsx(RefreshCcwDotIcon, { size: 13 }), _jsx("span", { children: circularProp ? `${circularProp} (circular)` : "circular" })] }));
|
|
16
17
|
export const SchemaPropertyItem = ({ name, schema, group, defaultOpen = false, showCollapseButton = true, }) => {
|
|
17
18
|
const [isOpen, setIsOpen] = useState(defaultOpen);
|
|
18
19
|
if (isCircularRef(schema)) {
|
|
19
|
-
return (_jsx(
|
|
20
|
+
return (_jsx(Item, { children: _jsxs(ItemContent, { className: "gap-y-2", children: [_jsxs("div", { children: [_jsx(ItemTitle, { className: "inline me-2", children: _jsx("code", { children: name }) }), _jsx(ParamInfos, { className: "inline", schema: schema, extraItems: [
|
|
21
|
+
group !== "optional" && (_jsx("span", { className: "text-primary", children: "required" })),
|
|
22
|
+
_jsx(RecursiveIndicator, {}, "circular-ref"),
|
|
23
|
+
] })] }), _jsx(SchemaExampleAndDefault, { schema: schema })] }) }));
|
|
20
24
|
}
|
|
21
25
|
const isCollapsible = Boolean((schema.allOf ||
|
|
22
26
|
schema.anyOf ||
|
|
@@ -27,9 +31,15 @@ export const SchemaPropertyItem = ({ name, schema, group, defaultOpen = false, s
|
|
|
27
31
|
isComplexType(schema.items)) ||
|
|
28
32
|
schema.additionalProperties) &&
|
|
29
33
|
!isArrayCircularRef(schema));
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
+
const shouldRenderDescription = Boolean(schema.description ||
|
|
35
|
+
("items" in schema && schema.items?.enum) ||
|
|
36
|
+
schema.const ||
|
|
37
|
+
schema.enum ||
|
|
38
|
+
schema.example !== undefined ||
|
|
39
|
+
schema.default !== undefined);
|
|
40
|
+
return (_jsxs(Item, { children: [_jsxs(ItemContent, { className: "gap-y-2", children: [_jsxs("div", { children: [_jsx(ItemTitle, { className: "inline me-2", children: isCollapsible ? (_jsx("button", { onClick: () => setIsOpen(!isOpen), type: "button", className: "hover:underline", children: _jsx("code", { children: name }) })) : (_jsx("code", { children: name })) }), _jsx(ParamInfos, { className: "inline", schema: schema, extraItems: [
|
|
41
|
+
group !== "optional" && (_jsx("span", { className: "text-primary", children: "required" })),
|
|
42
|
+
isArrayCircularRef(schema) && (_jsx(RecursiveIndicator, { circularProp: extractCircularRefInfo(schema.items) })),
|
|
43
|
+
] })] }), shouldRenderDescription && (_jsxs("div", { className: "flex flex-col gap-1.5", children: [schema.description && (_jsx(Markdown, { className: "prose-sm", content: schema.description })), "items" in schema && schema.items?.enum && (_jsx(EnumValues, { values: schema.items.enum })), schema.const && _jsx(ConstValue, { schema: schema, hideDescription: true }), schema.enum && _jsx(EnumValues, { values: schema.enum }), _jsx(SchemaExampleAndDefault, { schema: schema })] }))] }), isCollapsible && showCollapseButton && (_jsx(ItemActions, { className: "self-start", children: _jsx(Button, { variant: "ghost", size: "icon", className: "rounded-full", onClick: () => setIsOpen(!isOpen), "aria-label": "Toggle properties", children: isOpen ? _jsx(MinusIcon, { size: 16 }) : _jsx(PlusIcon, { size: 16 }) }) })), isCollapsible && (_jsx(Collapsible.Root, { defaultOpen: defaultOpen, open: isOpen, onOpenChange: setIsOpen, className: cn("w-full", !isOpen && "contents"), children: _jsx(Collapsible.Content, { asChild: true, children: _jsx(ItemContent, { children: schema.anyOf || schema.oneOf || schema.type === "object" ? (_jsx(SchemaView, { schema: schema })) : isArrayType(schema) && "items" in schema ? (_jsx(SchemaView, { schema: schema.items })) : null }) }) }))] }));
|
|
34
44
|
};
|
|
35
45
|
//# sourceMappingURL=SchemaPropertyItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaPropertyItem.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"SchemaPropertyItem.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,4 @@ export declare const SchemaView: ({ schema, defaultOpen, cardHeader, embedded, }
|
|
|
4
4
|
defaultOpen?: boolean;
|
|
5
5
|
cardHeader?: React.ReactNode;
|
|
6
6
|
embedded?: boolean;
|
|
7
|
-
}) => import("react/jsx-runtime").JSX.Element |
|
|
7
|
+
}) => import("react/jsx-runtime").JSX.Element | (import("react/jsx-runtime").JSX.Element | undefined)[] | undefined;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { InfoIcon } from "lucide-react";
|
|
3
|
+
import { Fragment } from "react";
|
|
4
|
+
import { Frame, FrameDescription, FrameFooter, FrameHeader, FramePanel, } from "zudoku/ui/Frame.js";
|
|
5
|
+
import { ItemGroup, ItemSeparator } from "zudoku/ui/Item.js";
|
|
3
6
|
import { Markdown } from "../../../components/Markdown.js";
|
|
4
|
-
import { Card } from "../../../ui/Card.js";
|
|
5
7
|
import { groupBy } from "../../../util/groupBy.js";
|
|
6
8
|
import { ConstValue } from "../components/ConstValue.js";
|
|
7
9
|
import { EnumValues } from "../components/EnumValues.js";
|
|
@@ -11,10 +13,16 @@ import { SchemaPropertyItem } from "./SchemaPropertyItem.js";
|
|
|
11
13
|
import { UnionView } from "./UnionView.js";
|
|
12
14
|
import { isBasicType } from "./utils.js";
|
|
13
15
|
const renderMarkdown = (content) => content && (_jsx(Markdown, { className: "text-sm leading-normal line-clamp-4", content: content }));
|
|
14
|
-
const renderBasicSchema = (schema, cardHeader
|
|
16
|
+
const renderBasicSchema = (schema, cardHeader, embedded) => {
|
|
17
|
+
const content = (_jsxs(_Fragment, { children: [_jsx("span", { className: "text-sm text-muted-foreground", children: _jsx(ParamInfos, { schema: schema }) }), schema.enum && _jsx(EnumValues, { values: schema.enum }), renderMarkdown(schema.description), _jsx(SchemaExampleAndDefault, { schema: schema })] }));
|
|
18
|
+
if (embedded) {
|
|
19
|
+
return _jsx("div", { className: "space-y-2 p-4", children: content });
|
|
20
|
+
}
|
|
21
|
+
return (_jsxs(Frame, { children: [cardHeader, _jsx(FramePanel, { className: "space-y-2", children: content })] }));
|
|
22
|
+
};
|
|
15
23
|
export const SchemaView = ({ schema, defaultOpen = false, cardHeader, embedded, }) => {
|
|
16
24
|
if (!schema || Object.keys(schema).length === 0) {
|
|
17
|
-
return (_jsxs(
|
|
25
|
+
return (_jsxs(Frame, { children: [cardHeader, _jsx(FramePanel, { children: _jsx("div", { className: "text-sm text-muted-foreground italic", children: "No data returned" }) })] }));
|
|
18
26
|
}
|
|
19
27
|
if (schema.const) {
|
|
20
28
|
return _jsx(ConstValue, { schema: schema });
|
|
@@ -23,7 +31,7 @@ export const SchemaView = ({ schema, defaultOpen = false, cardHeader, embedded,
|
|
|
23
31
|
return _jsx(UnionView, { schema: schema, cardHeader: cardHeader });
|
|
24
32
|
}
|
|
25
33
|
if (isBasicType(schema.type)) {
|
|
26
|
-
return renderBasicSchema(schema, cardHeader);
|
|
34
|
+
return renderBasicSchema(schema, cardHeader, embedded);
|
|
27
35
|
}
|
|
28
36
|
if (schema.type === "array" && typeof schema.items === "object") {
|
|
29
37
|
return _jsx(SchemaView, { schema: schema.items, cardHeader: cardHeader });
|
|
@@ -37,10 +45,13 @@ export const SchemaView = ({ schema, defaultOpen = false, cardHeader, embedded,
|
|
|
37
45
|
: "optional";
|
|
38
46
|
});
|
|
39
47
|
const groupNames = ["required", "optional", "deprecated"];
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
const additionalObjectProperties = typeof schema.additionalProperties ===
|
|
49
|
+
"object" && _jsx(SchemaView, { schema: schema.additionalProperties, embedded: true });
|
|
50
|
+
const itemsList = groupNames.map((group, index) => groupedProperties[group] && (_jsxs(Fragment, { children: [index > 0 && _jsx(ItemSeparator, {}), _jsx(ItemGroup, { className: "overflow-clip", children: groupedProperties[group].map(([name, schema], index) => (_jsxs(Fragment, { children: [index > 0 && _jsx(ItemSeparator, {}), _jsx(SchemaPropertyItem, { name: name, schema: schema, group: group, defaultOpen: defaultOpen })] }, name))) })] }, group)));
|
|
51
|
+
if (embedded) {
|
|
52
|
+
return itemsList;
|
|
53
|
+
}
|
|
54
|
+
return (_jsxs(Frame, { children: [cardHeader, schema.description && (_jsx(FrameHeader, { children: _jsx(FrameDescription, { children: schema.description }) })), _jsxs(FramePanel, { className: "p-0!", children: [itemsList, additionalObjectProperties] }), schema.additionalProperties === true && (_jsx(FrameFooter, { children: _jsxs("a", { className: "text-sm flex items-center gap-1 hover:underline", href: "https://swagger.io/docs/specification/v3_0/data-models/dictionaries/", rel: "noopener noreferrer", target: "_blank", children: ["Additional properties are allowed", _jsx(InfoIcon, { size: 14 })] }) }))] }));
|
|
43
55
|
}
|
|
44
|
-
return null;
|
|
45
56
|
};
|
|
46
57
|
//# sourceMappingURL=SchemaView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SchemaView.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/SchemaView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"SchemaView.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/SchemaView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from "react";
|
|
3
3
|
import { Badge } from "../../../ui/Badge.js";
|
|
4
|
-
import {
|
|
4
|
+
import { Frame, FramePanel } from "../../../ui/Frame.js";
|
|
5
5
|
import { cn } from "../../../util/cn.js";
|
|
6
6
|
import { SchemaView } from "./SchemaView.js";
|
|
7
7
|
import { decideExclusivity, labelForVariant, quickGuards, unionVariants, } from "./union-helpers.js";
|
|
@@ -14,9 +14,6 @@ const DecisionTable = ({ variants, schema, selectedVariant, onSelectVariant, })
|
|
|
14
14
|
? row.guards.join(" · ")
|
|
15
15
|
: "No specific criteria" })] }, row.label))) })] }) })] }));
|
|
16
16
|
};
|
|
17
|
-
const VariantPanel = ({ variant }) => {
|
|
18
|
-
return (_jsxs("div", { className: "space-y-2", children: [variant.description && (_jsx("p", { className: "text-sm text-muted-foreground", children: variant.description })), _jsx(SchemaView, { schema: variant })] }));
|
|
19
|
-
};
|
|
20
17
|
export const UnionView = ({ schema, cardHeader, }) => {
|
|
21
18
|
const mode = Array.isArray(schema.oneOf)
|
|
22
19
|
? "oneOf"
|
|
@@ -31,6 +28,6 @@ export const UnionView = ({ schema, cardHeader, }) => {
|
|
|
31
28
|
const semanticsMessage = exclusivity === "exactly-one" ? (_jsxs(_Fragment, { children: ["Exactly one variant ", _jsx("b", { children: "must match" }), "."] })) : (_jsxs(_Fragment, { children: ["At least one variant ", _jsx("b", { children: "must match" }), ". Multiple variants", " ", _jsx("i", { children: "may match" }), " simultaneously."] }));
|
|
32
29
|
const currentVariantIndex = variants.findIndex((v, i) => labelForVariant(i, v) === selectedVariant);
|
|
33
30
|
const currentVariant = currentVariantIndex >= 0 ? variants[currentVariantIndex] : null;
|
|
34
|
-
return (_jsxs(
|
|
31
|
+
return (_jsxs(Frame, { children: [cardHeader, _jsxs(FramePanel, { className: "text-sm flex flex-col gap-4", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Badge, { variant: "outline", children: mode }), _jsx("div", { className: "flex-1 p-2", children: _jsx("span", { className: "text-sm", children: semanticsMessage }) })] }), _jsx(DecisionTable, { variants: variants, schema: schema, selectedVariant: selectedVariant, onSelectVariant: setSelectedVariant }), _jsxs("strong", { children: ["Properties for ", selectedVariant, ":"] }), currentVariant && _jsx(SchemaView, { schema: currentVariant })] })] }));
|
|
35
32
|
};
|
|
36
33
|
//# sourceMappingURL=UnionView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnionView.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/UnionView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"UnionView.js","sourceRoot":"","sources":["../../../../../src/lib/plugins/openapi/schema/UnionView.tsx"],"names":[],"mappings":"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"}
|
package/dist/lib/ui/Badge.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type * as React from "react";
|
|
|
3
3
|
declare const badgeVariants: (props?: ({
|
|
4
4
|
variant?: "default" | "destructive" | "outline" | "secondary" | "muted" | null | undefined;
|
|
5
5
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
7
|
+
asChild?: boolean;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
export { Badge, badgeVariants };
|
package/dist/lib/ui/Badge.js
CHANGED
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
2
3
|
import { cva } from "class-variance-authority";
|
|
3
4
|
import { cn } from "../util/cn.js";
|
|
4
|
-
const badgeVariants = cva("inline-flex items-center rounded-full border px-2
|
|
5
|
+
const badgeVariants = cva("inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden", {
|
|
5
6
|
variants: {
|
|
6
7
|
variant: {
|
|
7
|
-
default: "border-transparent bg-primary text-primary-foreground hover:bg-primary/
|
|
8
|
-
secondary: "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/
|
|
8
|
+
default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
|
|
9
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
|
|
10
|
+
destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
11
|
+
outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",
|
|
9
12
|
muted: "bg-muted text-muted-foreground ",
|
|
10
|
-
destructive: "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80",
|
|
11
|
-
outline: "text-foreground",
|
|
12
13
|
},
|
|
13
14
|
},
|
|
14
15
|
defaultVariants: {
|
|
15
16
|
variant: "default",
|
|
16
17
|
},
|
|
17
18
|
});
|
|
18
|
-
function Badge({ className, variant, ...props }) {
|
|
19
|
-
|
|
19
|
+
function Badge({ className, variant, asChild = false, ...props }) {
|
|
20
|
+
const Comp = asChild ? Slot : "span";
|
|
21
|
+
return (_jsx(Comp, { "data-slot": "badge", className: cn(badgeVariants({ variant }), className), ...props }));
|
|
20
22
|
}
|
|
21
23
|
export { Badge, badgeVariants };
|
|
22
24
|
//# sourceMappingURL=Badge.js.map
|
package/dist/lib/ui/Badge.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../src/lib/ui/Badge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"Badge.js","sourceRoot":"","sources":["../../../src/lib/ui/Badge.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAqB,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEnC,MAAM,aAAa,GAAG,GAAG,CACvB,kZAAkZ,EAClZ;IACE,QAAQ,EAAE;QACR,OAAO,EAAE;YACP,OAAO,EACL,gFAAgF;YAClF,SAAS,EACP,sFAAsF;YACxF,WAAW,EACT,2KAA2K;YAC7K,OAAO,EACL,wEAAwE;YAC1E,KAAK,EAAE,iCAAiC;SACzC;KACF;IACD,eAAe,EAAE;QACf,OAAO,EAAE,SAAS;KACnB;CACF,CACF,CAAC;AAEF,SAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,EACP,OAAO,GAAG,KAAK,EACf,GAAG,KAAK,EAEkD;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAErC,OAAO,CACL,KAAC,IAAI,iBACO,OAAO,EACjB,SAAS,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,KAChD,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC"}
|