@stoplight/elements-core 7.7.6 → 7.7.8

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.
@@ -8,4 +8,5 @@ export declare const InlineRefResolverProvider: React.FC<InlineRefResolverProvid
8
8
  export declare const useInlineRefResolver: () => ReferenceResolver | undefined;
9
9
  export declare const useDocument: () => object | undefined;
10
10
  export declare const useResolvedObject: (currentObject: object) => object;
11
+ export declare const useSchemaInlineRefResolver: () => ReferenceResolver;
11
12
  export {};
package/index.esm.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { __rest, __awaiter } from 'tslib';
2
2
  import * as React from 'react';
3
3
  import React__default, { useContext, useMemo } from 'react';
4
+ import { convertToJsonSchema } from '@stoplight/http-spec/oas';
4
5
  import { resolveInlineRef, hasRef, isPlainObject as isPlainObject$1, safeParse, safeStringify } from '@stoplight/json';
5
6
  import isArray from 'lodash/isArray.js';
6
7
  import isPlainObject from 'lodash/isPlainObject.js';
@@ -123,6 +124,19 @@ const useResolvedObject = (currentObject) => {
123
124
  const document = useDocument();
124
125
  const resolver = useInlineRefResolver();
125
126
  return React.useMemo(() => createResolvedObject(currentObject, { contextObject: document, resolver }), [currentObject, document, resolver]);
127
+ };
128
+ const useSchemaInlineRefResolver = () => {
129
+ const document = useDocument();
130
+ const resolver = useInlineRefResolver();
131
+ return React.useCallback((...args) => {
132
+ const resolved = resolver === null || resolver === void 0 ? void 0 : resolver(...args);
133
+ if (!isPlainObject$1(resolved)) {
134
+ return resolved;
135
+ }
136
+ const converted = convertToJsonSchema((document !== null && document !== void 0 ? document : {}), resolved);
137
+ delete converted.$schema;
138
+ return converted;
139
+ }, [document, resolver]);
126
140
  };
127
141
 
128
142
  const DEFAULT_CONTEXT = {};
@@ -2142,7 +2156,7 @@ const isBodyEmpty = (body) => {
2142
2156
  };
2143
2157
  const Body = ({ body, onChange }) => {
2144
2158
  var _a;
2145
- const refResolver = useInlineRefResolver();
2159
+ const refResolver = useSchemaInlineRefResolver();
2146
2160
  const [chosenContent, setChosenContent] = React.useState(0);
2147
2161
  const { nodeHasChanged } = useOptionsCtx();
2148
2162
  React.useEffect(() => {
@@ -2184,7 +2198,7 @@ const defaultStyle = {
2184
2198
  };
2185
2199
  const Parameters = ({ parameters, parameterType }) => {
2186
2200
  const { nodeHasChanged } = useOptionsCtx();
2187
- const refResolver = useInlineRefResolver();
2201
+ const refResolver = useSchemaInlineRefResolver();
2188
2202
  const schema = React.useMemo(() => httpOperationParamsToSchema({ parameters, parameterType }), [parameters, parameterType]);
2189
2203
  if (!schema)
2190
2204
  return null;
@@ -2289,7 +2303,7 @@ Responses.displayName = 'HttpOperation.Responses';
2289
2303
  const Response = ({ response, onMediaTypeChange }) => {
2290
2304
  const { contents = [], headers = [], description } = response;
2291
2305
  const [chosenContent, setChosenContent] = React.useState(0);
2292
- const refResolver = useInlineRefResolver();
2306
+ const refResolver = useSchemaInlineRefResolver();
2293
2307
  const { nodeHasChanged } = useOptionsCtx();
2294
2308
  const responseContent = contents[chosenContent];
2295
2309
  const schema = responseContent === null || responseContent === void 0 ? void 0 : responseContent.schema;
@@ -2531,7 +2545,7 @@ function useIsCompact(layoutOptions) {
2531
2545
 
2532
2546
  const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, }) => {
2533
2547
  var _a, _b;
2534
- const resolveRef = useInlineRefResolver();
2548
+ const resolveRef = useSchemaInlineRefResolver();
2535
2549
  const data = useResolvedObject(unresolvedData);
2536
2550
  const { nodeHasChanged } = useOptionsCtx();
2537
2551
  const { ref: layoutRef, isCompact } = useIsCompact(layoutOptions);
@@ -2697,7 +2711,7 @@ function isPartialHttpRequest(maybeHttpRequest) {
2697
2711
  typeof maybeHttpRequest['url'] === 'string');
2698
2712
  }
2699
2713
  const SchemaAndDescription = ({ title: titleProp, schema }) => {
2700
- const resolveRef = useInlineRefResolver();
2714
+ const resolveRef = useSchemaInlineRefResolver();
2701
2715
  const title = titleProp !== null && titleProp !== void 0 ? titleProp : schema.title;
2702
2716
  return (React__default.createElement(Box, { py: 2 },
2703
2717
  title && (React__default.createElement(Flex, { alignItems: "center", p: 2 },
package/index.js CHANGED
@@ -4,6 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var tslib = require('tslib');
6
6
  var React = require('react');
7
+ var oas = require('@stoplight/http-spec/oas');
7
8
  var json = require('@stoplight/json');
8
9
  var isArray = require('lodash/isArray.js');
9
10
  var isPlainObject = require('lodash/isPlainObject.js');
@@ -177,6 +178,19 @@ const useResolvedObject = (currentObject) => {
177
178
  const document = useDocument();
178
179
  const resolver = useInlineRefResolver();
179
180
  return React__namespace.useMemo(() => createResolvedObject(currentObject, { contextObject: document, resolver }), [currentObject, document, resolver]);
181
+ };
182
+ const useSchemaInlineRefResolver = () => {
183
+ const document = useDocument();
184
+ const resolver = useInlineRefResolver();
185
+ return React__namespace.useCallback((...args) => {
186
+ const resolved = resolver === null || resolver === void 0 ? void 0 : resolver(...args);
187
+ if (!json.isPlainObject(resolved)) {
188
+ return resolved;
189
+ }
190
+ const converted = oas.convertToJsonSchema((document !== null && document !== void 0 ? document : {}), resolved);
191
+ delete converted.$schema;
192
+ return converted;
193
+ }, [document, resolver]);
180
194
  };
181
195
 
182
196
  const DEFAULT_CONTEXT = {};
@@ -2196,7 +2210,7 @@ const isBodyEmpty = (body) => {
2196
2210
  };
2197
2211
  const Body = ({ body, onChange }) => {
2198
2212
  var _a;
2199
- const refResolver = useInlineRefResolver();
2213
+ const refResolver = useSchemaInlineRefResolver();
2200
2214
  const [chosenContent, setChosenContent] = React__namespace.useState(0);
2201
2215
  const { nodeHasChanged } = useOptionsCtx();
2202
2216
  React__namespace.useEffect(() => {
@@ -2238,7 +2252,7 @@ const defaultStyle = {
2238
2252
  };
2239
2253
  const Parameters = ({ parameters, parameterType }) => {
2240
2254
  const { nodeHasChanged } = useOptionsCtx();
2241
- const refResolver = useInlineRefResolver();
2255
+ const refResolver = useSchemaInlineRefResolver();
2242
2256
  const schema = React__namespace.useMemo(() => httpOperationParamsToSchema({ parameters, parameterType }), [parameters, parameterType]);
2243
2257
  if (!schema)
2244
2258
  return null;
@@ -2343,7 +2357,7 @@ Responses.displayName = 'HttpOperation.Responses';
2343
2357
  const Response = ({ response, onMediaTypeChange }) => {
2344
2358
  const { contents = [], headers = [], description } = response;
2345
2359
  const [chosenContent, setChosenContent] = React__namespace.useState(0);
2346
- const refResolver = useInlineRefResolver();
2360
+ const refResolver = useSchemaInlineRefResolver();
2347
2361
  const { nodeHasChanged } = useOptionsCtx();
2348
2362
  const responseContent = contents[chosenContent];
2349
2363
  const schema = responseContent === null || responseContent === void 0 ? void 0 : responseContent.schema;
@@ -2585,7 +2599,7 @@ function useIsCompact(layoutOptions) {
2585
2599
 
2586
2600
  const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, }) => {
2587
2601
  var _a, _b;
2588
- const resolveRef = useInlineRefResolver();
2602
+ const resolveRef = useSchemaInlineRefResolver();
2589
2603
  const data = useResolvedObject(unresolvedData);
2590
2604
  const { nodeHasChanged } = useOptionsCtx();
2591
2605
  const { ref: layoutRef, isCompact } = useIsCompact(layoutOptions);
@@ -2751,7 +2765,7 @@ function isPartialHttpRequest(maybeHttpRequest) {
2751
2765
  typeof maybeHttpRequest['url'] === 'string');
2752
2766
  }
2753
2767
  const SchemaAndDescription = ({ title: titleProp, schema }) => {
2754
- const resolveRef = useInlineRefResolver();
2768
+ const resolveRef = useSchemaInlineRefResolver();
2755
2769
  const title = titleProp !== null && titleProp !== void 0 ? titleProp : schema.title;
2756
2770
  return (React__default["default"].createElement(mosaic.Box, { py: 2 },
2757
2771
  title && (React__default["default"].createElement(mosaic.Flex, { alignItems: "center", p: 2 },
package/index.mjs CHANGED
@@ -1,6 +1,7 @@
1
1
  import { __rest, __awaiter } from 'tslib';
2
2
  import * as React from 'react';
3
3
  import React__default, { useContext, useMemo } from 'react';
4
+ import { convertToJsonSchema } from '@stoplight/http-spec/oas';
4
5
  import { resolveInlineRef, hasRef, isPlainObject as isPlainObject$1, safeParse, safeStringify } from '@stoplight/json';
5
6
  import isArray from 'lodash/isArray.js';
6
7
  import isPlainObject from 'lodash/isPlainObject.js';
@@ -123,6 +124,19 @@ const useResolvedObject = (currentObject) => {
123
124
  const document = useDocument();
124
125
  const resolver = useInlineRefResolver();
125
126
  return React.useMemo(() => createResolvedObject(currentObject, { contextObject: document, resolver }), [currentObject, document, resolver]);
127
+ };
128
+ const useSchemaInlineRefResolver = () => {
129
+ const document = useDocument();
130
+ const resolver = useInlineRefResolver();
131
+ return React.useCallback((...args) => {
132
+ const resolved = resolver === null || resolver === void 0 ? void 0 : resolver(...args);
133
+ if (!isPlainObject$1(resolved)) {
134
+ return resolved;
135
+ }
136
+ const converted = convertToJsonSchema((document !== null && document !== void 0 ? document : {}), resolved);
137
+ delete converted.$schema;
138
+ return converted;
139
+ }, [document, resolver]);
126
140
  };
127
141
 
128
142
  const DEFAULT_CONTEXT = {};
@@ -2142,7 +2156,7 @@ const isBodyEmpty = (body) => {
2142
2156
  };
2143
2157
  const Body = ({ body, onChange }) => {
2144
2158
  var _a;
2145
- const refResolver = useInlineRefResolver();
2159
+ const refResolver = useSchemaInlineRefResolver();
2146
2160
  const [chosenContent, setChosenContent] = React.useState(0);
2147
2161
  const { nodeHasChanged } = useOptionsCtx();
2148
2162
  React.useEffect(() => {
@@ -2184,7 +2198,7 @@ const defaultStyle = {
2184
2198
  };
2185
2199
  const Parameters = ({ parameters, parameterType }) => {
2186
2200
  const { nodeHasChanged } = useOptionsCtx();
2187
- const refResolver = useInlineRefResolver();
2201
+ const refResolver = useSchemaInlineRefResolver();
2188
2202
  const schema = React.useMemo(() => httpOperationParamsToSchema({ parameters, parameterType }), [parameters, parameterType]);
2189
2203
  if (!schema)
2190
2204
  return null;
@@ -2289,7 +2303,7 @@ Responses.displayName = 'HttpOperation.Responses';
2289
2303
  const Response = ({ response, onMediaTypeChange }) => {
2290
2304
  const { contents = [], headers = [], description } = response;
2291
2305
  const [chosenContent, setChosenContent] = React.useState(0);
2292
- const refResolver = useInlineRefResolver();
2306
+ const refResolver = useSchemaInlineRefResolver();
2293
2307
  const { nodeHasChanged } = useOptionsCtx();
2294
2308
  const responseContent = contents[chosenContent];
2295
2309
  const schema = responseContent === null || responseContent === void 0 ? void 0 : responseContent.schema;
@@ -2531,7 +2545,7 @@ function useIsCompact(layoutOptions) {
2531
2545
 
2532
2546
  const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, }) => {
2533
2547
  var _a, _b;
2534
- const resolveRef = useInlineRefResolver();
2548
+ const resolveRef = useSchemaInlineRefResolver();
2535
2549
  const data = useResolvedObject(unresolvedData);
2536
2550
  const { nodeHasChanged } = useOptionsCtx();
2537
2551
  const { ref: layoutRef, isCompact } = useIsCompact(layoutOptions);
@@ -2697,7 +2711,7 @@ function isPartialHttpRequest(maybeHttpRequest) {
2697
2711
  typeof maybeHttpRequest['url'] === 'string');
2698
2712
  }
2699
2713
  const SchemaAndDescription = ({ title: titleProp, schema }) => {
2700
- const resolveRef = useInlineRefResolver();
2714
+ const resolveRef = useSchemaInlineRefResolver();
2701
2715
  const title = titleProp !== null && titleProp !== void 0 ? titleProp : schema.title;
2702
2716
  return (React__default.createElement(Box, { py: 2 },
2703
2717
  title && (React__default.createElement(Flex, { alignItems: "center", p: 2 },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stoplight/elements-core",
3
- "version": "7.7.6",
3
+ "version": "7.7.8",
4
4
  "main": "./index.js",
5
5
  "sideEffects": [
6
6
  "web-components.min.js",
@@ -24,9 +24,10 @@
24
24
  "react-dom": ">=16.8"
25
25
  },
26
26
  "dependencies": {
27
+ "@stoplight/http-spec": "^5.1.4",
27
28
  "@stoplight/json": "^3.18.1",
28
29
  "@stoplight/json-schema-ref-parser": "^9.0.5",
29
- "@stoplight/json-schema-sampler": "0.2.2",
30
+ "@stoplight/json-schema-sampler": "0.2.3",
30
31
  "@stoplight/json-schema-viewer": "^4.9.0",
31
32
  "@stoplight/markdown-viewer": "^5.5.0",
32
33
  "@stoplight/mosaic": "^1.33.0",