vue-api-request-builder 0.2.7 → 0.2.9

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/README.md CHANGED
@@ -1,216 +1,216 @@
1
- # API Request Builder
2
-
3
- A Vue 3 component for building and testing API requests with a beautiful UI.
4
-
5
- # Start of Selection
6
- [中文文档](README_zh.md)
7
-
8
- ## Workflow
9
-
10
- ```mermaid
11
- graph TD
12
- A[Start] --> B[Configure Request]
13
- B --> C[RequestForm Component]
14
- C --> D[Set Request Parameters]
15
- D --> E[URL/Path]
16
- D --> F[Authentication]
17
- D --> G[Headers]
18
- D --> H[Request Body]
19
- E & F & G & H --> I[Execute Request]
20
- I --> J[ResponseSection Component]
21
- J --> K[Display Response]
22
- K --> L[Status Code]
23
- K --> M[Response Headers]
24
- K --> N[Response Body]
25
- L & M & N --> O[Data Transformation]
26
- O --> P[DataTransform Component]
27
- P --> Q[Transform Function]
28
- Q --> R[Transformed Result]
29
- R --> S[End]
30
- ```
31
-
32
- ## Installation
33
-
34
- ```bash
35
- npm install vue-api-request-builder
36
- # or
37
- yarn add vue-api-request-builder
38
- # or
39
- pnpm add vue-api-request-builder
40
- ```
41
-
42
- ## Usage
43
-
44
- ### Basic Usage
45
-
46
- ```vue
47
- <template>
48
- <div class="app-container">
49
- <RequestForm v-model="requestSchema" @update:modelValue="handleSchemaChange" />
50
- <ResponseSection v-model="requestSchema" />
51
- </div>
52
- </template>
53
-
54
- <script setup lang="ts">
55
- import { ref } from 'vue';
56
- import { RequestForm, ResponseSection, type RequestSchema, defaultRequestSchema } from 'vue-api-request-builder';
57
-
58
- const requestSchema = ref<RequestSchema>(defaultRequestSchema);
59
-
60
- const handleSchemaChange = (newSchema: RequestSchema) => {
61
- console.log("Schema changed:", newSchema);
62
- };
63
- </script>
64
- ```
65
-
66
- ## Components
67
-
68
- ### RequestForm
69
-
70
- The main component for building API requests. It provides a form interface for configuring:
71
-
72
- #### Props
73
- - `modelValue` (RequestSchema): The request schema object (v-model)
74
-
75
- #### Events
76
- - `update:modelValue`: Emitted when the schema changes
77
-
78
- #### Features
79
- - HTTP method selection (GET, POST, PUT, DELETE, OPTIONS)
80
- - URL configuration with base URL and path
81
- - URL parameters management
82
- - Authentication options:
83
- - None
84
- - Basic Auth
85
- - Bearer Token
86
- - Custom headers
87
- - Request body support for:
88
- - JSON
89
- - Form Data
90
- - Raw text
91
- - Live preview of request URL and body
92
-
93
- ### ResponseSection
94
-
95
- Displays the response from the API request.
96
-
97
- #### Props
98
- - `modelValue` (RequestSchema): The request schema object (v-model)
99
-
100
- #### Features
101
- - Request method selection (XMLHttpRequest/Fetch)
102
- - Response display:
103
- - Status code with color coding
104
- - Response time
105
- - Response headers
106
- - Response body with formatting
107
- - Error handling and display
108
-
109
- ### DataTransform
110
-
111
- Component for configuring and executing data transformation functions.
112
-
113
- #### Props
114
- - `modelValue` (string): The transformation function string (v-model)
115
-
116
- #### Features
117
- - Code editor interface
118
- - JavaScript function support
119
- - Real-time syntax checking
120
- - Function execution preview
121
-
122
- ### KeyValueInput
123
-
124
- A reusable component for managing key-value pairs.
125
-
126
- #### Props
127
- - `modelValue` (KeyValuePair[]): Array of key-value pairs (v-model)
128
- - `addButtonText` (string): Text for the add button
129
- - `showPreview` (boolean): Whether to show the preview
130
- - `previewText` (string): Text to show in preview
131
-
132
- #### Events
133
- - `update:modelValue`: Emitted when the key-value pairs change
134
-
135
- ## Types
136
-
137
- ### RequestSchema
138
-
139
- ```typescript
140
- interface RequestSchema {
141
- method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'OPTIONS';
142
- url: string;
143
- path: string;
144
- auth: AuthConfig;
145
- params: KeyValuePair[];
146
- headers: KeyValuePair[];
147
- body: RequestBody;
148
- }
149
- ```
150
-
151
- ### AuthConfig
152
-
153
- ```typescript
154
- interface AuthConfig {
155
- type: 'none' | 'Basic' | 'Bearer';
156
- username?: string;
157
- password?: string;
158
- token?: string;
159
- }
160
- ```
161
-
162
- ### RequestBody
163
-
164
- ```typescript
165
- interface RequestBody {
166
- type: 'application/json' | 'multipart/form-data' | 'text/plain';
167
- json?: string;
168
- formData?: KeyValuePair[];
169
- raw?: string;
170
- }
171
- ```
172
-
173
- ### ResponseData
174
-
175
- ```typescript
176
- interface ResponseData {
177
- status: string;
178
- headers: Record<string, string>;
179
- body: string;
180
- timing?: number;
181
- }
182
- ```
183
-
184
- ## Utilities
185
-
186
- ### executeRequest
187
-
188
- ```typescript
189
- function executeRequest(
190
- schema: RequestSchema,
191
- method: 'fetch' | 'xhr' = 'xhr'
192
- ): Promise<ResponseData>
193
- ```
194
-
195
- Executes the API request using either Fetch API or XMLHttpRequest.
196
-
197
- ### executeTransformFunction
198
-
199
- ```typescript
200
- function executeTransformFunction(
201
- transformFunctionString: string,
202
- data: any
203
- ): any
204
- ```
205
-
206
- Executes a data transformation function to convert input data into the desired format.
207
-
208
- ## Dependencies
209
-
210
- This package requires:
211
- - Vue 3.x
212
- - Ant Design Vue 4.x
213
-
214
- ## License
215
-
216
- MIT
1
+ # API Request Builder
2
+
3
+ A Vue 3 component for building and testing API requests with a beautiful UI.
4
+
5
+ # Start of Selection
6
+ [中文文档](README_zh.md)
7
+
8
+ ## Workflow
9
+
10
+ ```mermaid
11
+ graph TD
12
+ A[Start] --> B[Configure Request]
13
+ B --> C[RequestForm Component]
14
+ C --> D[Set Request Parameters]
15
+ D --> E[URL/Path]
16
+ D --> F[Authentication]
17
+ D --> G[Headers]
18
+ D --> H[Request Body]
19
+ E & F & G & H --> I[Execute Request]
20
+ I --> J[ResponseSection Component]
21
+ J --> K[Display Response]
22
+ K --> L[Status Code]
23
+ K --> M[Response Headers]
24
+ K --> N[Response Body]
25
+ L & M & N --> O[Data Transformation]
26
+ O --> P[DataTransform Component]
27
+ P --> Q[Transform Function]
28
+ Q --> R[Transformed Result]
29
+ R --> S[End]
30
+ ```
31
+
32
+ ## Installation
33
+
34
+ ```bash
35
+ npm install vue-api-request-builder
36
+ # or
37
+ yarn add vue-api-request-builder
38
+ # or
39
+ pnpm add vue-api-request-builder
40
+ ```
41
+
42
+ ## Usage
43
+
44
+ ### Basic Usage
45
+
46
+ ```vue
47
+ <template>
48
+ <div class="app-container">
49
+ <RequestForm v-model="requestSchema" @update:modelValue="handleSchemaChange" />
50
+ <ResponseSection v-model="requestSchema" />
51
+ </div>
52
+ </template>
53
+
54
+ <script setup lang="ts">
55
+ import { ref } from 'vue';
56
+ import { RequestForm, ResponseSection, type RequestSchema, defaultRequestSchema } from 'vue-api-request-builder';
57
+
58
+ const requestSchema = ref<RequestSchema>(defaultRequestSchema);
59
+
60
+ const handleSchemaChange = (newSchema: RequestSchema) => {
61
+ console.log("Schema changed:", newSchema);
62
+ };
63
+ </script>
64
+ ```
65
+
66
+ ## Components
67
+
68
+ ### RequestForm
69
+
70
+ The main component for building API requests. It provides a form interface for configuring:
71
+
72
+ #### Props
73
+ - `modelValue` (RequestSchema): The request schema object (v-model)
74
+
75
+ #### Events
76
+ - `update:modelValue`: Emitted when the schema changes
77
+
78
+ #### Features
79
+ - HTTP method selection (GET, POST, PUT, DELETE, OPTIONS)
80
+ - URL configuration with base URL and path
81
+ - URL parameters management
82
+ - Authentication options:
83
+ - None
84
+ - Basic Auth
85
+ - Bearer Token
86
+ - Custom headers
87
+ - Request body support for:
88
+ - JSON
89
+ - Form Data
90
+ - Raw text
91
+ - Live preview of request URL and body
92
+
93
+ ### ResponseSection
94
+
95
+ Displays the response from the API request.
96
+
97
+ #### Props
98
+ - `modelValue` (RequestSchema): The request schema object (v-model)
99
+
100
+ #### Features
101
+ - Request method selection (XMLHttpRequest/Fetch)
102
+ - Response display:
103
+ - Status code with color coding
104
+ - Response time
105
+ - Response headers
106
+ - Response body with formatting
107
+ - Error handling and display
108
+
109
+ ### DataTransform
110
+
111
+ Component for configuring and executing data transformation functions.
112
+
113
+ #### Props
114
+ - `modelValue` (string): The transformation function string (v-model)
115
+
116
+ #### Features
117
+ - Code editor interface
118
+ - JavaScript function support
119
+ - Real-time syntax checking
120
+ - Function execution preview
121
+
122
+ ### KeyValueInput
123
+
124
+ A reusable component for managing key-value pairs.
125
+
126
+ #### Props
127
+ - `modelValue` (KeyValuePair[]): Array of key-value pairs (v-model)
128
+ - `addButtonText` (string): Text for the add button
129
+ - `showPreview` (boolean): Whether to show the preview
130
+ - `previewText` (string): Text to show in preview
131
+
132
+ #### Events
133
+ - `update:modelValue`: Emitted when the key-value pairs change
134
+
135
+ ## Types
136
+
137
+ ### RequestSchema
138
+
139
+ ```typescript
140
+ interface RequestSchema {
141
+ method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'OPTIONS';
142
+ url: string;
143
+ path: string;
144
+ auth: AuthConfig;
145
+ params: KeyValuePair[];
146
+ headers: KeyValuePair[];
147
+ body: RequestBody;
148
+ }
149
+ ```
150
+
151
+ ### AuthConfig
152
+
153
+ ```typescript
154
+ interface AuthConfig {
155
+ type: 'none' | 'Basic' | 'Bearer';
156
+ username?: string;
157
+ password?: string;
158
+ token?: string;
159
+ }
160
+ ```
161
+
162
+ ### RequestBody
163
+
164
+ ```typescript
165
+ interface RequestBody {
166
+ type: 'application/json' | 'multipart/form-data' | 'text/plain';
167
+ json?: string;
168
+ formData?: KeyValuePair[];
169
+ raw?: string;
170
+ }
171
+ ```
172
+
173
+ ### ResponseData
174
+
175
+ ```typescript
176
+ interface ResponseData {
177
+ status: string;
178
+ headers: Record<string, string>;
179
+ body: string;
180
+ timing?: number;
181
+ }
182
+ ```
183
+
184
+ ## Utilities
185
+
186
+ ### executeRequest
187
+
188
+ ```typescript
189
+ function executeRequest(
190
+ schema: RequestSchema,
191
+ method: 'fetch' | 'xhr' = 'xhr'
192
+ ): Promise<ResponseData>
193
+ ```
194
+
195
+ Executes the API request using either Fetch API or XMLHttpRequest.
196
+
197
+ ### executeTransformFunction
198
+
199
+ ```typescript
200
+ function executeTransformFunction(
201
+ transformFunctionString: string,
202
+ data: any
203
+ ): any
204
+ ```
205
+
206
+ Executes a data transformation function to convert input data into the desired format.
207
+
208
+ ## Dependencies
209
+
210
+ This package requires:
211
+ - Vue 3.x
212
+ - Ant Design Vue 4.x
213
+
214
+ ## License
215
+
216
+ MIT
package/dist/index.css CHANGED
@@ -1 +1 @@
1
- *,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.z-10{z-index:10}[rows~="4"]{grid-template-rows:repeat(4,minmax(0,1fr))}[rows~="5"]{grid-template-rows:repeat(5,minmax(0,1fr))}[rows~="6"]{grid-template-rows:repeat(6,minmax(0,1fr))}.float-left{float:left}.\!m-0{margin:0!important}.m-0{margin:0}.mb-1{margin-bottom:.25rem}.ms{margin-inline-start:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.h-6{height:1.5rem}.h-full{height:100%}.max-w-50\%{max-width:50%}.min-w-full{min-width:100%}.w-16{width:4rem}.w-40{width:10rem}.w-full{width:100%}.flex{display:flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.table{display:table}.resize-none{resize:none}.items-center{align-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-pre{white-space:pre}.border{border-width:1px}.border-gray-300{--un-border-opacity:1;border-color:rgb(209 213 219 / var(--un-border-opacity))}.border-none{border-style:none}.border-solid{border-style:solid}.bg-transparent{background-color:transparent}.p-0{padding:0}.text-sm{font-size:.875rem;line-height:1.25rem}.text-size-\$vp-code-font-size{font-size:var(--vp-code-font-size)}.text-transparent{color:transparent}.font-bold{font-weight:700}.line-height-\$vp-code-line-height{line-height:var(--vp-code-line-height)}.font-\$vp-font-family-mono{font-family:var(--vp-font-family-mono)}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.tab-4{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.caret-gray{--un-caret-opacity:1;caret-color:rgb(156 163 175 / var(--un-caret-opacity))}.shadow{--un-shadow:var(--un-shadow-inset) 0 1px 3px 0 var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 1px 2px -1px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.outline{outline-style:solid}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-none\!{transition:none!important}.key-value-input[data-v-eef3e490]{width:100%}.empty-state[data-v-eef3e490]{color:#999;text-align:center;padding:8px 0}.key-value-input[data-v-eef3e490] .ant-typography pre{background-color:#f5f5f5;padding:4px 8px;border-radius:4px;margin:0;width:100%;overflow-x:auto}.key-value-input[data-v-eef3e490] .ant-space-item{flex:1}.key-value-input[data-v-eef3e490] .ant-space-item:first-child{flex:0 0 100px}.key-value-input[data-v-eef3e490] .ant-space-item:nth-child(2){flex:0 0 200px}.key-value-input[data-v-eef3e490] .ant-list-item{padding:4px 0}[data-v-eef3e490] .ant-typography pre{background-color:#f5f5f5;padding:8px;border-radius:4px;margin:0;width:100%;overflow-x:auto;max-height:60px;font-size:12px;line-height:1.5}.request-form[data-v-48c52b42]{margin:0;padding:0}.request-form[data-v-48c52b42] *{font-size:.9rem}.form-section[data-v-48c52b42]{margin-bottom:8px;width:100%}[data-v-48c52b42] .ant-card-head{background-color:#fafafa}[data-v-48c52b42] .ant-card-head-title{font-weight:500;padding:4px 0}[data-v-48c52b42] .ant-card-body{padding:8px 12px}[data-v-48c52b42] .ant-space{width:100%;display:flex;gap:8px;align-items:center}pre[data-v-48c52b42]{background-color:#f5f5f5;padding:8px;border-radius:4px;margin:0;width:100%;overflow-x:auto}.form-section[data-v-1dd2b288]{margin-bottom:8px}.response-section[data-v-1dd2b288]{margin-bottom:16px}.section-title[data-v-1dd2b288]{font-size:14px;font-weight:500;color:#1f1f1f;margin-bottom:8px;padding-left:4px;border-left:3px solid #1890ff}[data-v-1dd2b288] .ant-card-head{background-color:#fafafa}[data-v-1dd2b288] .ant-card-head-title{font-weight:500;padding:4px 0}[data-v-1dd2b288] .ant-card-body{padding:8px 12px}[data-v-1dd2b288] .ant-descriptions-item-label{font-weight:500}.shiki{margin:0}.mini-playground select{background:transparent;color:inherit;min-width:8em;padding:0!important;position:relative}.mini-playground select:focus{outline:none}.mini-playground select:before{content:"";position:absolute;width:1em;height:1em;background:red}.monaco-editor-container[data-v-d1a39038]{width:100%;height:calc(100% - 32px)}.data-transform-container[data-v-d1a39038]{color:#fff;font-family:Consolas,Courier New,monospace;font-size:14px}.function-container[data-v-d1a39038]{line-height:16px;background:var(--vscode-editor-background)}.function-name[data-v-d1a39038]{color:#569cd6}.yellow[data-v-d1a39038]{color:gold}
1
+ *,:before,:after{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }::backdrop{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 rgb(0 0 0 / 0);--un-ring-shadow:0 0 rgb(0 0 0 / 0);--un-shadow-inset: ;--un-shadow:0 0 rgb(0 0 0 / 0);--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgb(147 197 253 / .5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }.absolute{position:absolute}.relative{position:relative}.inset-0{top:0;right:0;bottom:0;left:0}.z-10{z-index:10}[rows~="4"]{grid-template-rows:repeat(4,minmax(0,1fr))}[rows~="5"]{grid-template-rows:repeat(5,minmax(0,1fr))}[rows~="6"]{grid-template-rows:repeat(6,minmax(0,1fr))}.float-left{float:left}.\!m-0{margin:0!important}.m-0{margin:0}.mb-1{margin-bottom:.25rem}.ms{margin-inline-start:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.h-6{height:1.5rem}.h-full{height:100%}.max-w-50\%{max-width:50%}.min-w-full{min-width:100%}.w-16{width:4rem}.w-40{width:10rem}.w-full{width:100%}.flex{display:flex}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.table{display:table}.resize-none{resize:none}.items-center{align-items:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.whitespace-pre{white-space:pre}.border{border-width:1px}.border-gray-300{--un-border-opacity:1;border-color:rgb(209 213 219 / var(--un-border-opacity))}.border-none{border-style:none}.border-solid{border-style:solid}.bg-transparent{background-color:transparent}.p-0{padding:0}.text-sm{font-size:.875rem;line-height:1.25rem}.text-size-\$vp-code-font-size{font-size:var(--vp-code-font-size)}.text-transparent{color:transparent}.font-bold{font-weight:700}.line-height-\$vp-code-line-height{line-height:var(--vp-code-line-height)}.font-\$vp-font-family-mono{font-family:var(--vp-font-family-mono)}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.tab-4{-moz-tab-size:4;-o-tab-size:4;tab-size:4}.caret-gray{--un-caret-opacity:1;caret-color:rgb(156 163 175 / var(--un-caret-opacity))}.shadow{--un-shadow:var(--un-shadow-inset) 0 1px 3px 0 var(--un-shadow-color, rgb(0 0 0 / .1)),var(--un-shadow-inset) 0 1px 2px -1px var(--un-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--un-ring-offset-shadow),var(--un-ring-shadow),var(--un-shadow)}.outline{outline-style:solid}.outline-none{outline:2px solid transparent;outline-offset:2px}.transition-none\!{transition:none!important}.key-value-input[data-v-eef3e490]{width:100%}.empty-state[data-v-eef3e490]{color:#999;text-align:center;padding:8px 0}.key-value-input[data-v-eef3e490] .ant-typography pre{background-color:#f5f5f5;padding:4px 8px;border-radius:4px;margin:0;width:100%;overflow-x:auto}.key-value-input[data-v-eef3e490] .ant-space-item{flex:1}.key-value-input[data-v-eef3e490] .ant-space-item:first-child{flex:0 0 100px}.key-value-input[data-v-eef3e490] .ant-space-item:nth-child(2){flex:0 0 200px}.key-value-input[data-v-eef3e490] .ant-list-item{padding:4px 0}[data-v-eef3e490] .ant-typography pre{background-color:#f5f5f5;padding:8px;border-radius:4px;margin:0;width:100%;overflow-x:auto;max-height:60px;font-size:12px;line-height:1.5}.request-form[data-v-398ba576]{margin:0;padding:0}.request-form[data-v-398ba576] *{font-size:.9rem}.form-section[data-v-398ba576]{margin-bottom:8px;width:100%}[data-v-398ba576] .ant-card-head{background-color:#fafafa}[data-v-398ba576] .ant-card-head-title{font-weight:500;padding:4px 0}[data-v-398ba576] .ant-card-body{padding:8px 12px}[data-v-398ba576] .ant-space{width:100%;display:flex;gap:8px;align-items:center}pre[data-v-398ba576]{background-color:#f5f5f5;padding:8px;border-radius:4px;margin:0;width:100%;overflow-x:auto}.form-section[data-v-1dd2b288]{margin-bottom:8px}.response-section[data-v-1dd2b288]{margin-bottom:16px}.section-title[data-v-1dd2b288]{font-size:14px;font-weight:500;color:#1f1f1f;margin-bottom:8px;padding-left:4px;border-left:3px solid #1890ff}[data-v-1dd2b288] .ant-card-head{background-color:#fafafa}[data-v-1dd2b288] .ant-card-head-title{font-weight:500;padding:4px 0}[data-v-1dd2b288] .ant-card-body{padding:8px 12px}[data-v-1dd2b288] .ant-descriptions-item-label{font-weight:500}.shiki{margin:0}.mini-playground select{background:transparent;color:inherit;min-width:8em;padding:0!important;position:relative}.mini-playground select:focus{outline:none}.mini-playground select:before{content:"";position:absolute;width:1em;height:1em;background:red}.monaco-editor-container[data-v-d1a39038]{width:100%;height:calc(100% - 32px)}.data-transform-container[data-v-d1a39038]{color:#fff;font-family:Consolas,Courier New,monospace;font-size:14px}.function-container[data-v-d1a39038]{line-height:16px;background:var(--vscode-editor-background)}.function-name[data-v-d1a39038]{color:#569cd6}.yellow[data-v-d1a39038]{color:gold}