docusaurus-theme-openapi-docs 0.0.0-beta.646 → 0.0.0-beta.651

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/lib/theme/ApiDemoPanel/ApiCodeBlock/Content/_Content.scss +1 -0
  2. package/lib/theme/ApiDemoPanel/Body/index.d.ts +3 -1
  3. package/lib/theme/ApiDemoPanel/Body/index.js +30 -32
  4. package/lib/theme/ApiDemoPanel/CodeTabs/_CodeTabs.scss +95 -39
  5. package/lib/theme/ApiDemoPanel/CodeTabs/index.js +24 -6
  6. package/lib/theme/ApiDemoPanel/Curl/index.d.ts +5 -4
  7. package/lib/theme/ApiDemoPanel/Curl/index.js +79 -11
  8. package/lib/theme/ApiDemoPanel/FormItem/_FormItem.scss +11 -2
  9. package/lib/theme/ApiDemoPanel/FormItem/index.d.ts +2 -1
  10. package/lib/theme/ApiDemoPanel/FormItem/index.js +9 -3
  11. package/lib/theme/ApiDemoPanel/FormMultiSelect/_FormMultiSelect.scss +8 -4
  12. package/lib/theme/ApiDemoPanel/FormMultiSelect/index.d.ts +2 -1
  13. package/lib/theme/ApiDemoPanel/FormMultiSelect/index.js +5 -2
  14. package/lib/theme/ApiDemoPanel/FormSelect/_FormSelect.scss +3 -3
  15. package/lib/theme/ApiDemoPanel/FormTextInput/_FormTextInput.scss +24 -5
  16. package/lib/theme/ApiDemoPanel/FormTextInput/index.d.ts +1 -1
  17. package/lib/theme/ApiDemoPanel/FormTextInput/index.js +56 -10
  18. package/lib/theme/ApiDemoPanel/LiveEditor/index.d.ts +5 -2
  19. package/lib/theme/ApiDemoPanel/LiveEditor/index.js +59 -14
  20. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamArrayFormItem.d.ts +6 -0
  21. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamArrayFormItem.js +194 -0
  22. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamBooleanFormItem.d.ts +6 -0
  23. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamBooleanFormItem.js +63 -0
  24. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.d.ts +6 -0
  25. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.js +89 -0
  26. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamSelectFormItem.d.ts +6 -0
  27. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamSelectFormItem.js +63 -0
  28. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamTextFormItem.d.ts +6 -0
  29. package/lib/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamTextFormItem.js +38 -0
  30. package/lib/theme/ApiDemoPanel/ParamOptions/_ParamOptions.scss +9 -28
  31. package/lib/theme/ApiDemoPanel/ParamOptions/index.js +24 -176
  32. package/lib/theme/ApiDemoPanel/Request/_Request.scss +93 -20
  33. package/lib/theme/ApiDemoPanel/Request/index.d.ts +1 -1
  34. package/lib/theme/ApiDemoPanel/Request/index.js +316 -37
  35. package/lib/theme/ApiDemoPanel/Response/_Response.scss +54 -0
  36. package/lib/theme/ApiDemoPanel/Response/index.d.ts +4 -1
  37. package/lib/theme/ApiDemoPanel/Response/index.js +56 -31
  38. package/lib/theme/ApiDemoPanel/Server/_Server.scss +10 -0
  39. package/lib/theme/ApiDemoPanel/Server/index.js +10 -11
  40. package/lib/theme/ApiDemoPanel/index.js +1 -1
  41. package/lib/theme/SchemaTabs/_SchemaTabs.scss +0 -1
  42. package/lib/theme/styles.scss +27 -0
  43. package/package.json +7 -4
  44. package/src/theme/ApiDemoPanel/ApiCodeBlock/Content/_Content.scss +1 -0
  45. package/src/theme/ApiDemoPanel/Body/index.tsx +38 -29
  46. package/src/theme/ApiDemoPanel/CodeTabs/_CodeTabs.scss +95 -39
  47. package/src/theme/ApiDemoPanel/CodeTabs/index.js +24 -6
  48. package/src/theme/ApiDemoPanel/Curl/index.tsx +85 -22
  49. package/src/theme/ApiDemoPanel/FormItem/_FormItem.scss +11 -2
  50. package/src/theme/ApiDemoPanel/FormItem/index.tsx +8 -3
  51. package/src/theme/ApiDemoPanel/FormMultiSelect/_FormMultiSelect.scss +8 -4
  52. package/src/theme/ApiDemoPanel/FormMultiSelect/index.tsx +7 -2
  53. package/src/theme/ApiDemoPanel/FormSelect/_FormSelect.scss +3 -3
  54. package/src/theme/ApiDemoPanel/FormTextInput/_FormTextInput.scss +24 -5
  55. package/src/theme/ApiDemoPanel/FormTextInput/index.tsx +58 -10
  56. package/src/theme/ApiDemoPanel/LiveEditor/index.tsx +53 -14
  57. package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamArrayFormItem.tsx +153 -0
  58. package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamBooleanFormItem.tsx +64 -0
  59. package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.tsx +86 -0
  60. package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamSelectFormItem.tsx +65 -0
  61. package/src/theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamTextFormItem.tsx +38 -0
  62. package/src/theme/ApiDemoPanel/ParamOptions/_ParamOptions.scss +9 -28
  63. package/src/theme/ApiDemoPanel/ParamOptions/index.tsx +8 -196
  64. package/src/theme/ApiDemoPanel/Request/_Request.scss +93 -20
  65. package/src/theme/ApiDemoPanel/Request/index.tsx +250 -28
  66. package/src/theme/ApiDemoPanel/Response/_Response.scss +54 -0
  67. package/src/theme/ApiDemoPanel/Response/index.tsx +44 -26
  68. package/src/theme/ApiDemoPanel/Server/_Server.scss +10 -0
  69. package/src/theme/ApiDemoPanel/Server/index.tsx +8 -11
  70. package/src/theme/ApiDemoPanel/index.tsx +1 -1
  71. package/src/theme/SchemaTabs/_SchemaTabs.scss +0 -1
  72. package/src/theme/styles.scss +27 -0
  73. package/src/theme-openapi.d.ts +40 -1
  74. package/lib/theme/ApiDemoPanel/Execute/index.d.ts +0 -8
  75. package/lib/theme/ApiDemoPanel/Execute/index.js +0 -213
  76. package/src/theme/ApiDemoPanel/Execute/index.tsx +0 -200
  77. /package/lib/theme/ApiDemoPanel/{Execute → Request}/makeRequest.d.ts +0 -0
  78. /package/lib/theme/ApiDemoPanel/{Execute → Request}/makeRequest.js +0 -0
  79. /package/src/theme/ApiDemoPanel/{Execute → Request}/makeRequest.ts +0 -0
@@ -56,37 +56,49 @@ var __importDefault =
56
56
  };
57
57
  Object.defineProperty(exports, "__esModule", { value: true });
58
58
  const react_1 = __importStar(require("react"));
59
- const toolkit_1 = require("@reduxjs/toolkit");
60
59
  const FormItem_1 = __importDefault(require("@theme/ApiDemoPanel/FormItem"));
61
- const FormMultiSelect_1 = __importDefault(
62
- require("@theme/ApiDemoPanel/FormMultiSelect")
60
+ const ParamArrayFormItem_1 = __importDefault(
61
+ require("@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamArrayFormItem")
63
62
  );
64
- const FormSelect_1 = __importDefault(require("@theme/ApiDemoPanel/FormSelect"));
65
- const FormTextInput_1 = __importDefault(
66
- require("@theme/ApiDemoPanel/FormTextInput")
63
+ const ParamBooleanFormItem_1 = __importDefault(
64
+ require("@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamBooleanFormItem")
65
+ );
66
+ const ParamMultiSelectFormItem_1 = __importDefault(
67
+ require("@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamMultiSelectFormItem")
68
+ );
69
+ const ParamSelectFormItem_1 = __importDefault(
70
+ require("@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamSelectFormItem")
71
+ );
72
+ const ParamTextFormItem_1 = __importDefault(
73
+ require("@theme/ApiDemoPanel/ParamOptions/ParamFormItems/ParamTextFormItem")
67
74
  );
68
75
  const hooks_1 = require("@theme/ApiItem/hooks");
69
- const slice_1 = require("./slice");
70
76
  function ParamOption({ param }) {
71
77
  if (param.schema?.type === "array" && param.schema.items?.enum) {
72
- return react_1.default.createElement(ParamMultiSelectFormItem, {
78
+ return react_1.default.createElement(ParamMultiSelectFormItem_1.default, {
73
79
  param: param,
74
80
  });
75
81
  }
76
82
  if (param.schema?.type === "array") {
77
- return react_1.default.createElement(ParamArrayFormItem, { param: param });
83
+ return react_1.default.createElement(ParamArrayFormItem_1.default, {
84
+ param: param,
85
+ });
78
86
  }
79
87
  if (param.schema?.enum) {
80
- return react_1.default.createElement(ParamSelectFormItem, { param: param });
88
+ return react_1.default.createElement(ParamSelectFormItem_1.default, {
89
+ param: param,
90
+ });
81
91
  }
82
92
  if (param.schema?.type === "boolean") {
83
- return react_1.default.createElement(ParamBooleanFormItem, {
93
+ return react_1.default.createElement(ParamBooleanFormItem_1.default, {
84
94
  param: param,
85
95
  });
86
96
  }
87
97
  // integer, number, string, int32, int64, float, double, object, byte, binary,
88
98
  // date-time, date, password
89
- return react_1.default.createElement(ParamTextFormItem, { param: param });
99
+ return react_1.default.createElement(ParamTextFormItem_1.default, {
100
+ param: param,
101
+ });
90
102
  }
91
103
  function ParamOptionWrapper({ param }) {
92
104
  return react_1.default.createElement(
@@ -195,168 +207,4 @@ function ParamOptions() {
195
207
  )
196
208
  );
197
209
  }
198
- function ArrayItem({ param, onChange }) {
199
- if (param.schema?.items?.type === "boolean") {
200
- return react_1.default.createElement(FormSelect_1.default, {
201
- options: ["---", "true", "false"],
202
- onChange: (e) => {
203
- const val = e.target.value;
204
- onChange(val === "---" ? undefined : val);
205
- },
206
- });
207
- }
208
- return react_1.default.createElement(FormTextInput_1.default, {
209
- placeholder: param.description || param.name,
210
- onChange: (e) => {
211
- onChange(e.target.value);
212
- },
213
- });
214
- }
215
- function ParamArrayFormItem({ param }) {
216
- const [items, setItems] = (0, react_1.useState)([]);
217
- const dispatch = (0, hooks_1.useTypedDispatch)();
218
- function handleAddItem() {
219
- setItems((i) => [
220
- ...i,
221
- {
222
- id: (0, toolkit_1.nanoid)(),
223
- },
224
- ]);
225
- }
226
- (0, react_1.useEffect)(() => {
227
- const values = items.map((item) => item.value).filter((item) => !!item);
228
- dispatch(
229
- (0, slice_1.setParam)({
230
- ...param,
231
- value: values.length > 0 ? values : undefined,
232
- })
233
- );
234
- // eslint-disable-next-line react-hooks/exhaustive-deps
235
- }, [items]);
236
- function handleDeleteItem(itemToDelete) {
237
- return () => {
238
- const newItems = items.filter((i) => i.id !== itemToDelete.id);
239
- setItems(newItems);
240
- };
241
- }
242
- function handleChangeItem(itemToUpdate) {
243
- return (value) => {
244
- const newItems = items.map((i) => {
245
- if (i.id === itemToUpdate.id) {
246
- return { ...i, value: value };
247
- }
248
- return i;
249
- });
250
- setItems(newItems);
251
- };
252
- }
253
- return react_1.default.createElement(
254
- react_1.default.Fragment,
255
- null,
256
- items.map((item) =>
257
- react_1.default.createElement(
258
- "div",
259
- { key: item.id, style: { display: "flex" } },
260
- react_1.default.createElement(ArrayItem, {
261
- param: param,
262
- onChange: handleChangeItem(item),
263
- }),
264
- react_1.default.createElement(
265
- "button",
266
- {
267
- className: "openapi-demo__delete-btn",
268
- onClick: handleDeleteItem(item),
269
- },
270
- react_1.default.createElement(
271
- "svg",
272
- {
273
- focusable: "false",
274
- preserveAspectRatio: "xMidYMid meet",
275
- xmlns: "http://www.w3.org/2000/svg",
276
- fill: "currentColor",
277
- width: "16",
278
- height: "16",
279
- viewBox: "0 0 32 32",
280
- "aria-hidden": "true",
281
- },
282
- react_1.default.createElement("path", {
283
- d: "M24 9.4L22.6 8 16 14.6 9.4 8 8 9.4 14.6 16 8 22.6 9.4 24 16 17.4 22.6 24 24 22.6 17.4 16 24 9.4z",
284
- }),
285
- react_1.default.createElement("title", null, "Delete")
286
- )
287
- )
288
- )
289
- ),
290
- react_1.default.createElement(
291
- "button",
292
- { className: "openapi-demo__thin-btn", onClick: handleAddItem },
293
- "Add item"
294
- )
295
- );
296
- }
297
- function ParamSelectFormItem({ param }) {
298
- const dispatch = (0, hooks_1.useTypedDispatch)();
299
- const options = param.schema?.enum ?? [];
300
- return react_1.default.createElement(FormSelect_1.default, {
301
- options: ["---", ...options],
302
- onChange: (e) => {
303
- const val = e.target.value;
304
- dispatch(
305
- (0, slice_1.setParam)({
306
- ...param,
307
- value: val === "---" ? undefined : val,
308
- })
309
- );
310
- },
311
- });
312
- }
313
- function ParamBooleanFormItem({ param }) {
314
- const dispatch = (0, hooks_1.useTypedDispatch)();
315
- return react_1.default.createElement(FormSelect_1.default, {
316
- options: ["---", "true", "false"],
317
- onChange: (e) => {
318
- const val = e.target.value;
319
- dispatch(
320
- (0, slice_1.setParam)({
321
- ...param,
322
- value: val === "---" ? undefined : val,
323
- })
324
- );
325
- },
326
- });
327
- }
328
- function ParamMultiSelectFormItem({ param }) {
329
- const dispatch = (0, hooks_1.useTypedDispatch)();
330
- const options = param.schema?.items?.enum ?? [];
331
- return react_1.default.createElement(FormMultiSelect_1.default, {
332
- options: options,
333
- onChange: (e) => {
334
- const values = Array.prototype.filter
335
- .call(e.target.options, (o) => o.selected)
336
- .map((o) => o.value);
337
- dispatch(
338
- (0, slice_1.setParam)({
339
- ...param,
340
- value: values.length > 0 ? values : undefined,
341
- })
342
- );
343
- },
344
- });
345
- }
346
- function ParamTextFormItem({ param }) {
347
- const dispatch = (0, hooks_1.useTypedDispatch)();
348
- return react_1.default.createElement(FormTextInput_1.default, {
349
- placeholder: param.description || param.name,
350
- onChange: (e) =>
351
- dispatch(
352
- (0, slice_1.setParam)({
353
- ...param,
354
- value:
355
- param.in === "path" || param.in === "query"
356
- ? e.target.value.replace(/\s/g, "%20")
357
- : e.target.value,
358
- })
359
- ),
360
- });
361
- }
362
210
  exports.default = ParamOptions;
@@ -1,13 +1,15 @@
1
- .openapi-demo__options-panel {
2
- background: var(--openapi-card-background-color);
1
+ .openapi-demo__request-form {
2
+ background-color: var(--ifm-pre-background);
3
3
  border-radius: var(--openapi-card-border-radius);
4
+ border: 1px solid var(--openapi-demo-border-color);
5
+ box-shadow: 0 2px 3px hsla(222, 8%, 43%, 0.1),
6
+ 0 8px 16px -10px hsla(222, 8%, 43%, 0.2);
4
7
  color: var(--ifm-pre-color);
5
8
  line-height: var(--ifm-pre-line-height);
6
9
  margin-bottom: var(--ifm-spacing-vertical);
7
10
  margin-top: 0;
8
11
  overflow: auto;
9
- padding-top: 0 !important;
10
- padding: var(--ifm-pre-padding);
12
+ transition: 300ms;
11
13
 
12
14
  /* hack for view calculation when monaco is hidden */
13
15
  position: relative;
@@ -15,34 +17,105 @@
15
17
  &:empty {
16
18
  display: none;
17
19
  }
18
- }
19
20
 
20
- .openapi-demo__details {
21
- margin-bottom: 1rem;
22
- background: var(--openapi-card-background-color);
23
- border-radius: var(--openapi-card-border-radius);
21
+ &:hover {
22
+ box-shadow: 0 0 0 2px rgba(38, 53, 61, 0.15),
23
+ 0 2px 3px hsla(222, 8%, 43%, 0.15),
24
+ 0 16px 16px -10px hsla(222, 8%, 43%, 0.2);
25
+ }
26
+
27
+ .required {
28
+ font-size: var(--ifm-code-font-size);
29
+ color: var(--openapi-required);
30
+
31
+ &.request-body {
32
+ padding-left: 0.25rem;
33
+ }
34
+ }
24
35
  }
25
36
 
26
- .openapi-demo__summary-container {
27
- padding: 1rem;
28
- list-style-type: none;
37
+ .openapi-demo__request-header-container {
38
+ display: flex;
39
+ justify-content: space-between;
40
+ border-bottom: 1px solid var(--openapi-demo-border-color);
41
+ margin: 0;
42
+ padding: 0.75rem var(--ifm-pre-padding);
43
+ text-transform: uppercase;
44
+ font-size: 12px;
45
+ font-weight: bold;
46
+ }
29
47
 
48
+ .openapi-demo__expand-details-btn {
30
49
  &:hover {
31
50
  cursor: pointer;
32
51
  }
33
52
  }
34
53
 
35
- .openapi-demo__summary-content {
36
- display: flex;
37
- justify-content: space-between;
54
+ .openapi-demo__details-outer-container {
55
+ padding: 1rem;
56
+ }
57
+
58
+ .openapi-demo__details-container[open] {
59
+ .openapi-demo__details-summary::before {
60
+ transform: rotate(180deg);
61
+ margin-top: 0.25rem;
62
+ }
63
+ }
64
+
65
+ .openapi-demo__details-summary {
66
+ display: inline-flex;
38
67
  align-items: center;
68
+ padding: 0.35rem 0;
69
+ font-size: 14px;
70
+ list-style: none;
71
+
72
+ &:hover {
73
+ cursor: pointer;
74
+ }
75
+
76
+ &::-webkit-details-marker {
77
+ display: none;
78
+ }
79
+
80
+ &::before {
81
+ margin-right: 0.25rem;
82
+ margin-bottom: 0.25rem;
83
+ background-image: var(--openapi-demo-caret-bg);
84
+ border: none !important;
85
+ transform: rotate(90deg);
86
+ content: "";
87
+ height: 0.75rem;
88
+ width: 0.75rem;
89
+ }
39
90
  }
40
91
 
41
- .openapi-demo__summary-header {
42
- margin-bottom: 0;
92
+ .openapi-demo__request-btn {
93
+ border: none;
94
+ border-radius: var(--ifm-global-radius);
95
+ padding: 0.5rem 1rem;
96
+ margin-top: 1rem;
97
+ background-color: var(--ifm-color-primary-light);
98
+ text-transform: uppercase;
99
+ font-weight: bold;
100
+ font-size: 12px;
101
+ color: white;
102
+ cursor: pointer;
103
+ transition: 300ms;
104
+
105
+ &:hover {
106
+ background-color: var(--ifm-color-primary-lightest);
107
+ }
108
+
109
+ &:active {
110
+ background-color: var(--ifm-color-primary-light);
111
+ }
43
112
  }
44
113
 
45
- .openapi-demo__summary-header > button {
46
- margin-bottom: 1rem;
47
- margin-right: 1rem;
114
+ // Prevent auto zoom on mobile iOS devices when focusing on input elmenents
115
+ @media screen and (-webkit-min-device-pixel-ratio: 0) and (max-device-width: 1024px) {
116
+ .prism-code,
117
+ select,
118
+ input {
119
+ font-size: 1rem;
120
+ }
48
121
  }
@@ -2,5 +2,5 @@
2
2
  import { ApiItem } from "docusaurus-plugin-openapi-docs/src/types";
3
3
  declare function Request({ item }: {
4
4
  item: NonNullable<ApiItem>;
5
- }): JSX.Element;
5
+ }): JSX.Element | null;
6
6
  export default Request;