docusaurus-theme-openapi-docs 3.0.0-beta.2 → 3.0.0-beta.4

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 (110) hide show
  1. package/lib/markdown/utils.d.ts +3 -2
  2. package/lib/theme/ApiDemoPanel/ApiCodeBlock/ExpandButton/index.d.ts +13 -0
  3. package/lib/theme/ApiDemoPanel/ApiCodeBlock/ExpandButton/index.js +199 -124
  4. package/lib/theme/ApiExplorer/Accept/index.d.ts +2 -2
  5. package/lib/theme/ApiExplorer/ApiCodeBlock/Container/index.d.ts +4 -0
  6. package/lib/theme/ApiExplorer/ApiCodeBlock/Container/index.js +25 -19
  7. package/lib/theme/ApiExplorer/ApiCodeBlock/Content/Element.d.ts +4 -0
  8. package/lib/theme/ApiExplorer/ApiCodeBlock/Content/Element.js +27 -16
  9. package/lib/theme/ApiExplorer/ApiCodeBlock/Content/String.d.ts +4 -0
  10. package/lib/theme/ApiExplorer/ApiCodeBlock/Content/String.js +115 -96
  11. package/lib/theme/ApiExplorer/ApiCodeBlock/CopyButton/index.d.ts +3 -0
  12. package/lib/theme/ApiExplorer/ApiCodeBlock/CopyButton/index.js +115 -54
  13. package/lib/theme/ApiExplorer/ApiCodeBlock/ExitButton/index.d.ts +6 -0
  14. package/lib/theme/ApiExplorer/ApiCodeBlock/ExitButton/index.js +41 -30
  15. package/lib/theme/ApiExplorer/ApiCodeBlock/ExpandButton/index.d.ts +14 -0
  16. package/lib/theme/ApiExplorer/ApiCodeBlock/ExpandButton/index.js +200 -120
  17. package/lib/theme/ApiExplorer/ApiCodeBlock/Line/index.d.ts +3 -0
  18. package/lib/theme/ApiExplorer/ApiCodeBlock/Line/index.js +36 -24
  19. package/lib/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/index.d.ts +7 -0
  20. package/lib/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/index.js +35 -28
  21. package/lib/theme/ApiExplorer/ApiCodeBlock/index.d.ts +3 -0
  22. package/lib/theme/ApiExplorer/ApiCodeBlock/index.js +72 -14
  23. package/lib/theme/ApiExplorer/Authorization/index.d.ts +2 -2
  24. package/lib/theme/ApiExplorer/Authorization/slice.d.ts +1 -1
  25. package/lib/theme/ApiExplorer/Body/index.d.ts +2 -2
  26. package/lib/theme/ApiExplorer/Body/slice.d.ts +3 -3
  27. package/lib/theme/ApiExplorer/CodeSnippets/index.d.ts +2 -2
  28. package/lib/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +4 -2
  29. package/lib/theme/ApiExplorer/CodeTabs/index.d.ts +11 -0
  30. package/lib/theme/ApiExplorer/CodeTabs/index.js +125 -78
  31. package/lib/theme/ApiExplorer/ContentType/index.d.ts +2 -2
  32. package/lib/theme/ApiExplorer/Export/index.d.ts +2 -2
  33. package/lib/theme/ApiExplorer/FloatingButton/_FloatingButton.scss +3 -1
  34. package/lib/theme/ApiExplorer/FloatingButton/index.d.ts +1 -1
  35. package/lib/theme/ApiExplorer/FormFileUpload/index.d.ts +2 -2
  36. package/lib/theme/ApiExplorer/FormItem/index.d.ts +1 -1
  37. package/lib/theme/ApiExplorer/FormMultiSelect/index.d.ts +1 -1
  38. package/lib/theme/ApiExplorer/FormSelect/index.d.ts +1 -1
  39. package/lib/theme/ApiExplorer/FormTextInput/index.d.ts +1 -1
  40. package/lib/theme/ApiExplorer/MethodEndpoint/index.d.ts +2 -2
  41. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamArrayFormItem.d.ts +2 -2
  42. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamBooleanFormItem.d.ts +2 -2
  43. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.d.ts +2 -2
  44. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.js +4 -4
  45. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamSelectFormItem.d.ts +2 -2
  46. package/lib/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamTextFormItem.d.ts +2 -2
  47. package/lib/theme/ApiExplorer/ParamOptions/_ParamOptions.scss +2 -1
  48. package/lib/theme/ApiExplorer/ParamOptions/index.d.ts +2 -2
  49. package/lib/theme/ApiExplorer/ParamOptions/slice.d.ts +1 -1
  50. package/lib/theme/ApiExplorer/Request/_Request.scss +4 -2
  51. package/lib/theme/ApiExplorer/Request/index.d.ts +2 -2
  52. package/lib/theme/ApiExplorer/Response/_Response.scss +4 -2
  53. package/lib/theme/ApiExplorer/Response/index.d.ts +2 -2
  54. package/lib/theme/ApiExplorer/Response/index.js +19 -19
  55. package/lib/theme/ApiExplorer/SecuritySchemes/index.d.ts +2 -2
  56. package/lib/theme/ApiExplorer/Server/index.d.ts +2 -2
  57. package/lib/theme/ApiExplorer/buildPostmanRequest.d.ts +1 -1
  58. package/lib/theme/ApiExplorer/index.d.ts +2 -2
  59. package/lib/theme/ApiExplorer/storage-utils.d.ts +1 -1
  60. package/lib/theme/ApiItem/index.d.ts +2 -2
  61. package/lib/theme/ApiItem/index.js +4 -3
  62. package/lib/theme/ApiItem/store.d.ts +6 -6
  63. package/lib/theme/ApiLogo/index.d.ts +2 -2
  64. package/lib/theme/ApiTabs/index.d.ts +3 -0
  65. package/lib/theme/ApiTabs/index.js +148 -98
  66. package/lib/theme/DiscriminatorTabs/index.d.ts +3 -0
  67. package/lib/theme/DiscriminatorTabs/index.js +146 -94
  68. package/lib/theme/MimeTabs/index.d.ts +6 -0
  69. package/lib/theme/MimeTabs/index.js +163 -114
  70. package/lib/theme/ParamsItem/index.d.ts +22 -0
  71. package/lib/theme/ParamsItem/index.js +156 -111
  72. package/lib/theme/ResponseSamples/index.d.ts +8 -0
  73. package/lib/theme/ResponseSamples/index.js +18 -13
  74. package/lib/theme/SchemaItem/index.d.ts +12 -0
  75. package/lib/theme/SchemaItem/index.js +123 -89
  76. package/lib/theme/SchemaTabs/index.d.ts +3 -0
  77. package/lib/theme/SchemaTabs/index.js +142 -91
  78. package/lib/types.d.ts +4 -4
  79. package/package.json +8 -7
  80. package/src/markdown/utils.ts +4 -2
  81. package/src/theme/ApiDemoPanel/ApiCodeBlock/ExpandButton/{index.js → index.tsx} +21 -8
  82. package/src/theme/ApiExplorer/ApiCodeBlock/Container/{index.js → index.tsx} +6 -3
  83. package/src/theme/ApiExplorer/ApiCodeBlock/Content/{Element.js → Element.tsx} +5 -1
  84. package/src/theme/ApiExplorer/ApiCodeBlock/Content/{String.js → String.tsx} +4 -4
  85. package/src/theme/ApiExplorer/ApiCodeBlock/CopyButton/{index.js → index.tsx} +8 -3
  86. package/src/theme/ApiExplorer/ApiCodeBlock/ExitButton/{index.js → index.tsx} +9 -1
  87. package/src/theme/ApiExplorer/ApiCodeBlock/ExpandButton/{index.js → index.tsx} +12 -2
  88. package/src/theme/ApiExplorer/ApiCodeBlock/Line/{index.js → index.tsx} +2 -1
  89. package/src/theme/ApiExplorer/ApiCodeBlock/WordWrapButton/{index.js → index.tsx} +11 -1
  90. package/src/theme/ApiExplorer/ApiCodeBlock/{index.js → index.tsx} +10 -5
  91. package/src/theme/ApiExplorer/CodeTabs/_CodeTabs.scss +4 -2
  92. package/src/theme/ApiExplorer/CodeTabs/{index.js → index.tsx} +48 -25
  93. package/src/theme/ApiExplorer/FloatingButton/_FloatingButton.scss +3 -1
  94. package/src/theme/ApiExplorer/ParamOptions/ParamFormItems/ParamMultiSelectFormItem.tsx +4 -4
  95. package/src/theme/ApiExplorer/ParamOptions/_ParamOptions.scss +2 -1
  96. package/src/theme/ApiExplorer/Request/_Request.scss +4 -2
  97. package/src/theme/ApiExplorer/Response/_Response.scss +4 -2
  98. package/src/theme/ApiExplorer/Response/index.tsx +2 -2
  99. package/src/theme/ApiItem/index.tsx +3 -4
  100. package/src/theme/ApiLogo/index.tsx +1 -1
  101. package/src/theme/ApiTabs/{index.js → index.tsx} +56 -25
  102. package/src/theme/DiscriminatorTabs/{index.js → index.tsx} +57 -24
  103. package/src/theme/MimeTabs/{index.js → index.tsx} +58 -26
  104. package/src/theme/ParamsItem/{index.js → index.tsx} +30 -15
  105. package/src/theme/ResponseSamples/{index.js → index.tsx} +10 -1
  106. package/src/theme/SchemaItem/{index.js → index.tsx} +18 -9
  107. package/src/theme/SchemaTabs/{index.js → index.tsx} +56 -25
  108. package/src/theme-classic.d.ts +69 -2
  109. package/src/theme-openapi.d.ts +2 -0
  110. package/tsconfig.json +4 -1
@@ -1,24 +1,69 @@
1
+ "use strict";
1
2
  /* ============================================================================
2
3
  * Copyright (c) Palo Alto Networks
3
4
  *
4
5
  * This source code is licensed under the MIT license found in the
5
6
  * LICENSE file in the root directory of this source tree.
6
7
  * ========================================================================== */
7
-
8
- import React, { cloneElement, useRef, useEffect, useState } from "react";
9
-
10
- import {
11
- useScrollPositionBlocker,
12
- useTabs,
13
- } from "@docusaurus/theme-common/internal";
14
- import useIsBrowser from "@docusaurus/useIsBrowser";
15
- import clsx from "clsx";
16
- import flatten from "lodash/flatten";
17
-
8
+ var __createBinding =
9
+ (this && this.__createBinding) ||
10
+ (Object.create
11
+ ? function (o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (
15
+ !desc ||
16
+ ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)
17
+ ) {
18
+ desc = {
19
+ enumerable: true,
20
+ get: function () {
21
+ return m[k];
22
+ },
23
+ };
24
+ }
25
+ Object.defineProperty(o, k2, desc);
26
+ }
27
+ : function (o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ });
31
+ var __setModuleDefault =
32
+ (this && this.__setModuleDefault) ||
33
+ (Object.create
34
+ ? function (o, v) {
35
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
36
+ }
37
+ : function (o, v) {
38
+ o["default"] = v;
39
+ });
40
+ var __importStar =
41
+ (this && this.__importStar) ||
42
+ function (mod) {
43
+ if (mod && mod.__esModule) return mod;
44
+ var result = {};
45
+ if (mod != null)
46
+ for (var k in mod)
47
+ if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
48
+ __createBinding(result, mod, k);
49
+ __setModuleDefault(result, mod);
50
+ return result;
51
+ };
52
+ var __importDefault =
53
+ (this && this.__importDefault) ||
54
+ function (mod) {
55
+ return mod && mod.__esModule ? mod : { default: mod };
56
+ };
57
+ Object.defineProperty(exports, "__esModule", { value: true });
58
+ const react_1 = __importStar(require("react"));
59
+ const internal_1 = require("@docusaurus/theme-common/internal");
60
+ const useIsBrowser_1 = __importDefault(require("@docusaurus/useIsBrowser"));
61
+ const clsx_1 = __importDefault(require("clsx"));
62
+ const flatten_1 = __importDefault(require("lodash/flatten"));
18
63
  function TabList({ className, block, selectedValue, selectValue, tabValues }) {
19
64
  const tabRefs = [];
20
- const { blockElementScrollPositionUntilNextRender } =
21
- useScrollPositionBlocker();
65
+ const { blockElementScrollPositionUntilNextRender } = (0,
66
+ internal_1.useScrollPositionBlocker)();
22
67
  const handleTabChange = (event) => {
23
68
  const newTab = event.currentTarget;
24
69
  const newTabIndex = tabRefs.indexOf(newTab);
@@ -50,136 +95,143 @@ function TabList({ className, block, selectedValue, selectValue, tabValues }) {
50
95
  }
51
96
  focusElement?.focus();
52
97
  };
53
-
54
- const tabItemListContainerRef = useRef(null);
55
- const [showTabArrows, setShowTabArrows] = useState(false);
56
-
57
- useEffect(() => {
98
+ const tabItemListContainerRef = (0, react_1.useRef)(null);
99
+ const [showTabArrows, setShowTabArrows] = (0, react_1.useState)(false);
100
+ (0, react_1.useEffect)(() => {
58
101
  const resizeObserver = new ResizeObserver((entries) => {
59
102
  for (let entry of entries) {
60
- if (entry.target.offsetWidth < entry.target.scrollWidth) {
103
+ if (entry.target.clientWidth < entry.target.scrollWidth) {
61
104
  setShowTabArrows(true);
62
105
  } else {
63
106
  setShowTabArrows(false);
64
107
  }
65
108
  }
66
109
  });
67
-
68
110
  resizeObserver.observe(tabItemListContainerRef.current);
69
-
70
111
  return () => {
71
112
  resizeObserver.disconnect();
72
113
  };
73
114
  }, []);
74
-
75
115
  const handleRightClick = () => {
76
116
  tabItemListContainerRef.current.scrollLeft += 90;
77
117
  };
78
-
79
118
  const handleLeftClick = () => {
80
119
  tabItemListContainerRef.current.scrollLeft -= 90;
81
120
  };
82
-
83
- return (
84
- <div className="openapi-tabs__discriminator-top-section">
85
- <div className="openapi-tabs__discriminator-container">
86
- {showTabArrows && (
87
- <button
88
- className="openapi-tabs__arrow left"
89
- onClick={handleLeftClick}
90
- />
91
- )}
92
- <ul
93
- ref={tabItemListContainerRef}
94
- role="tablist"
95
- aria-orientation="horizontal"
96
- className={clsx(
121
+ return react_1.default.createElement(
122
+ "div",
123
+ { className: "openapi-tabs__discriminator-top-section" },
124
+ react_1.default.createElement(
125
+ "div",
126
+ { className: "openapi-tabs__discriminator-container" },
127
+ showTabArrows &&
128
+ react_1.default.createElement("button", {
129
+ className: "openapi-tabs__arrow left",
130
+ onClick: handleLeftClick,
131
+ }),
132
+ react_1.default.createElement(
133
+ "ul",
134
+ {
135
+ ref: tabItemListContainerRef,
136
+ role: "tablist",
137
+ "aria-orientation": "horizontal",
138
+ className: (0, clsx_1.default)(
97
139
  "openapi-tabs__discriminator-list-container",
98
140
  "tabs",
99
141
  {
100
142
  "tabs--block": block,
101
143
  },
102
144
  className
103
- )}
104
- >
105
- {tabValues.map(({ value, label, attributes }) => (
106
- <li
145
+ ),
146
+ },
147
+ tabValues.map(({ value, label, attributes }) =>
148
+ react_1.default.createElement(
149
+ "li",
150
+ {
107
151
  // TODO extract TabListItem
108
- role="tab"
109
- tabIndex={selectedValue === value ? 0 : -1}
110
- aria-selected={selectedValue === value}
111
- key={value}
112
- ref={(tabControl) => tabRefs.push(tabControl)}
113
- onKeyDown={handleKeydown}
114
- onClick={handleTabChange}
115
- {...attributes}
116
- className={clsx(
152
+ role: "tab",
153
+ tabIndex: selectedValue === value ? 0 : -1,
154
+ "aria-selected": selectedValue === value,
155
+ key: value,
156
+ ref: (tabControl) => tabRefs.push(tabControl),
157
+ onKeyDown: handleKeydown,
158
+ onClick: handleTabChange,
159
+ ...attributes,
160
+ className: (0, clsx_1.default)(
117
161
  "tabs__item",
118
162
  "openapi-tabs__discriminator-item",
119
163
  attributes?.className,
120
164
  {
121
165
  active: selectedValue === value,
122
166
  }
123
- )}
124
- >
125
- <span className="openapi-tabs__discriminator-tab-label">
126
- {label ?? value}
127
- </span>
128
- </li>
129
- ))}
130
- </ul>
131
- {showTabArrows && (
132
- <button
133
- className="openapi-tabs__arrow right"
134
- onClick={handleRightClick}
135
- />
136
- )}
137
- </div>
138
- </div>
167
+ ),
168
+ },
169
+ react_1.default.createElement(
170
+ "span",
171
+ { className: "openapi-tabs__discriminator-tab-label" },
172
+ label ?? value
173
+ )
174
+ )
175
+ )
176
+ ),
177
+ showTabArrows &&
178
+ react_1.default.createElement("button", {
179
+ className: "openapi-tabs__arrow right",
180
+ onClick: handleRightClick,
181
+ })
182
+ )
139
183
  );
140
184
  }
141
185
  function TabContent({ lazy, children, selectedValue }) {
142
- // eslint-disable-next-line no-param-reassign
143
- children = Array.isArray(children) ? children : [children];
144
- const flattenedChildren = flatten(children);
186
+ const childTabs = (Array.isArray(children) ? children : [children]).filter(
187
+ Boolean
188
+ );
189
+ const flattenedChildTabs = (0, flatten_1.default)(childTabs);
145
190
  if (lazy) {
146
- const selectedTabItem = flattenedChildren.find(
191
+ const selectedTabItem = flattenedChildTabs.find(
147
192
  (tabItem) => tabItem.props.value === selectedValue
148
193
  );
149
194
  if (!selectedTabItem) {
150
195
  // fail-safe or fail-fast? not sure what's best here
151
196
  return null;
152
197
  }
153
- return cloneElement(selectedTabItem, { className: "margin-top--md" });
198
+ return (0, react_1.cloneElement)(selectedTabItem, {
199
+ className: "margin-top--md",
200
+ });
154
201
  }
155
- return (
156
- <div className="margin-top--md">
157
- {children.map((tabItem, i) =>
158
- cloneElement(tabItem, {
159
- key: i,
160
- hidden: tabItem.props.value !== selectedValue,
161
- })
162
- )}
163
- </div>
202
+ return react_1.default.createElement(
203
+ "div",
204
+ { className: "margin-top--md" },
205
+ childTabs.map((tabItem, i) =>
206
+ (0, react_1.cloneElement)(tabItem, {
207
+ key: i,
208
+ hidden: tabItem.props.value !== selectedValue,
209
+ })
210
+ )
164
211
  );
165
212
  }
166
213
  function TabsComponent(props) {
167
- const tabs = useTabs(props);
168
- return (
169
- <div className="openapi-tabs__container">
170
- <TabList {...props} {...tabs} />
171
- <TabContent {...props} {...tabs} />
172
- </div>
214
+ const tabs = (0, internal_1.useTabs)(props);
215
+ return react_1.default.createElement(
216
+ "div",
217
+ { className: "openapi-tabs__container" },
218
+ react_1.default.createElement(TabList, { ...props, ...tabs }),
219
+ react_1.default.createElement(TabContent, { ...props, ...tabs })
173
220
  );
174
221
  }
175
- export default function DiscriminatorTabs(props) {
176
- const isBrowser = useIsBrowser();
177
- return (
178
- <TabsComponent
222
+ function DiscriminatorTabs(props) {
223
+ const isBrowser = (0, useIsBrowser_1.default)();
224
+ return react_1.default.createElement(
225
+ TabsComponent,
226
+ // Remount tabs after hydration
227
+ // Temporary fix for https://github.com/facebook/docusaurus/issues/5653
228
+ {
179
229
  // Remount tabs after hydration
180
230
  // Temporary fix for https://github.com/facebook/docusaurus/issues/5653
181
- key={String(isBrowser)}
182
- {...props}
183
- />
231
+ key: String(isBrowser),
232
+ ...props,
233
+ },
234
+ (0, internal_1.sanitizeTabsChildren)(props.children)
184
235
  );
185
236
  }
237
+ exports.default = DiscriminatorTabs;
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import { TabProps } from "@docusaurus/theme-common/internal";
3
+ export interface Props {
4
+ schemaType: any;
5
+ }
6
+ export default function MimeTabs(props: Props & TabProps): React.JSX.Element;