@stoplight/elements-core 9.0.6 → 9.0.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.
package/index.esm.js CHANGED
@@ -114,8 +114,6 @@ const isResolvedObjectProxy = (someObject) => {
114
114
  return !!someObject[originalObjectSymbol];
115
115
  };
116
116
  const getOriginalObject = (resolvedObject) => {
117
- if (!resolvedObject)
118
- return resolvedObject;
119
117
  const originalObject = resolvedObject[originalObjectSymbol] || resolvedObject;
120
118
  if (!originalObject) {
121
119
  return resolvedObject;
@@ -2585,7 +2583,7 @@ const TwoColumnLayout = React__default.forwardRef(({ header, right, left, classN
2585
2583
  header,
2586
2584
  React__default.createElement(Flex, null,
2587
2585
  React__default.createElement(Box, { "data-testid": "two-column-left", w: 0, flex: 1 }, left),
2588
- localStorage.getItem('use_new_mask_workflow') === 'true' ? (React__default.createElement(React__default.Fragment, null)) : (right && (React__default.createElement(Box, { "data-testid": "two-column-right", ml: 16, pos: "relative", w: "2/5", style: { maxWidth: 500 } }, right)))))));
2586
+ right && (React__default.createElement(Box, { "data-testid": "two-column-right", ml: 16, pos: "relative", w: "2/5", style: { maxWidth: 500 } }, right))))));
2589
2587
 
2590
2588
  const DeprecatedBadge = () => (React__default.createElement(Tooltip, { renderTrigger: React__default.createElement(Badge, { intent: "warning", icon: ['fas', 'exclamation-circle'], "data-testid": "badge-deprecated" }, "Deprecated") }, "This operation has been marked as deprecated, which means it could be removed at some point in the future."));
2591
2589
  const InternalBadge = ({ isHttpService }) => (React__default.createElement(Tooltip, { renderTrigger: React__default.createElement(Badge, { icon: faEye, "data-testid": "badge-internal", bg: "danger" }, "Internal") }, `This ${isHttpService ? 'operation' : 'model'} is marked as internal and won't be visible in public docs.`));
@@ -2736,349 +2734,13 @@ const PanelContent = ({ schemes }) => {
2736
2734
  })));
2737
2735
  };
2738
2736
 
2739
- const TYPES = ['string', 'integer', 'boolean', 'any', 'number'];
2740
- function resolvePointer(obj, pointer) {
2741
- const parts = pointer.replace(/^#\//, '').split('/');
2742
- return parts.reduce((acc, key) => acc && acc[key], obj);
2743
- }
2744
- function detectCircularPath(path) {
2745
- const ignored = ['properties', 'items'];
2746
- const parts = path.split('/').filter(part => !ignored.includes(part));
2747
- for (let i = 0; i < parts.length - 1; i++) {
2748
- const current = parts[i];
2749
- const rest = parts.slice(i + 1);
2750
- if (rest.includes(current)) {
2751
- return true;
2752
- }
2753
- }
2754
- return false;
2755
- }
2756
- function dereference(node, root, visited = new WeakSet(), depth = 0, maxDepth = 10) {
2757
- if (!node || typeof node !== 'object')
2758
- return node;
2759
- if (depth > maxDepth)
2760
- return node;
2761
- if (node.$ref || node['x-iata-$ref']) {
2762
- let refPath = node.$ref || node['x-iata-$ref'];
2763
- if (refPath.includes('#/%24defs')) {
2764
- refPath = refPath.replace('#/%24defs', '$defs');
2765
- }
2766
- else {
2767
- refPath = refPath.replace('__bundled__', 'definitions');
2768
- }
2769
- if (visited.has(node))
2770
- return { circular: true, $ref: refPath, title: node.title, type: 'any', description: node.description };
2771
- visited.add(node);
2772
- const target = resolvePointer(root, refPath);
2773
- if (!target)
2774
- return node;
2775
- const result = Object.assign({}, target);
2776
- if ('description' in node)
2777
- result.description = node.description;
2778
- if ('title' in node)
2779
- result.title = node.title;
2780
- return dereference(result, root, visited, depth + 1, maxDepth);
2781
- }
2782
- if (Array.isArray(node)) {
2783
- return node.map(item => dereference(item, root, visited, depth + 1, maxDepth));
2784
- }
2785
- const result = {};
2786
- for (const key in node) {
2787
- result[key] = dereference(node[key], root, visited, depth + 1, maxDepth);
2788
- }
2789
- return result;
2790
- }
2791
- const trimSlashes = (str) => {
2792
- return str.replace(/^\/|\/$/g, '');
2793
- };
2794
- function isPropertiesAllHidden(path, hideData) {
2795
- const current = trimSlashes(path);
2796
- const parts = current.split('/');
2797
- for (let i = parts.length; i >= 2; i--) {
2798
- if (parts[i - 1] === 'properties') {
2799
- const ancestorPropPath = parts.slice(0, i).join('/');
2800
- const block = hideData.find(h => trimSlashes(h.path) === ancestorPropPath && ancestorPropPath.endsWith('/properties'));
2801
- if (block && block.required === undefined) {
2802
- return true;
2803
- }
2804
- }
2805
- }
2806
- return false;
2807
- }
2808
- function isRequiredOverride(path, hideData) {
2809
- const entry = hideData.find(h => trimSlashes(h.path) === trimSlashes(path));
2810
- return entry && typeof entry.required === 'boolean' ? entry.required : undefined;
2811
- }
2812
- function isPathHidden(path, hideData) {
2813
- const normalizedPath = trimSlashes(path);
2814
- const direct = hideData.find(h => trimSlashes(h.path) === normalizedPath);
2815
- if (direct && direct.required === undefined)
2816
- return true;
2817
- if (isPropertiesAllHidden(path, hideData))
2818
- return true;
2819
- for (const h of hideData) {
2820
- const hPath = trimSlashes(h.path);
2821
- if (h.required !== undefined)
2822
- continue;
2823
- if (normalizedPath.length > hPath.length &&
2824
- normalizedPath.startsWith(hPath) &&
2825
- (hPath.endsWith('/items') || (hPath.match(/\/items\/[^\/]+$/) && normalizedPath.startsWith(hPath + '/')))) {
2826
- return true;
2827
- }
2828
- }
2829
- return false;
2830
- }
2831
- const LazySchemaTreePreviewer = ({ schema, root = schema, title, level = 1, path = '', hideData = [], parentRequired, propertyKey, _subType, }) => {
2832
- var _a, _b, _c, _d;
2833
- const [expanded, setExpanded] = useState(false);
2834
- const [selectedSchemaIndex, setSelectedSchemaIndex] = useState(0);
2835
- const [showSchemaDropdown, setShowSchemaDropdown] = useState(false);
2836
- const [isHoveringSelector, setIsHoveringSelector] = useState(false);
2837
- const isRoot = level === 1 && (title === undefined || path === '');
2838
- useState(() => {
2839
- const disabledPaths = hideData || [];
2840
- const initialState = {};
2841
- if (disabledPaths) {
2842
- for (const p of disabledPaths) {
2843
- const { path } = p;
2844
- initialState[path] = { checked: false, required: 0 };
2845
- }
2846
- }
2847
- return initialState;
2848
- });
2849
- useEffect(() => {
2850
- setSelectedSchemaIndex(0);
2851
- }, [schema === null || schema === void 0 ? void 0 : schema.anyOf, schema === null || schema === void 0 ? void 0 : schema.oneOf]);
2852
- const thisNodeRequiredOverride = isRequiredOverride(path, hideData);
2853
- const shouldHideAllChildren = (isRoot && hideData.some(h => trimSlashes(h.path) === 'properties' && h.required === undefined)) ||
2854
- (!isRoot && isPropertiesAllHidden(path, hideData));
2855
- const shouldHideNode = useMemo(() => {
2856
- if (isRoot)
2857
- return false;
2858
- if (isPathHidden(path, hideData) && thisNodeRequiredOverride === undefined)
2859
- return true;
2860
- return false;
2861
- }, [path, hideData, isRoot, thisNodeRequiredOverride]);
2862
- if (!schema || shouldHideNode) {
2863
- return null;
2864
- }
2865
- const displayTitle = level === 1 && (title === undefined || path === '') ? '' : (_a = title !== null && title !== void 0 ? title : schema === null || schema === void 0 ? void 0 : schema.title) !== null && _a !== void 0 ? _a : 'Node';
2866
- const handleToggle = () => {
2867
- const circular = detectCircularPath(path);
2868
- if (!circular) {
2869
- setExpanded(prev => !prev);
2870
- }
2871
- };
2872
- const renderChildren = () => {
2873
- var _a, _b, _c, _d;
2874
- if (shouldHideAllChildren)
2875
- return null;
2876
- if (!expanded && !isRoot)
2877
- return null;
2878
- const children = [];
2879
- if ((schema === null || schema === void 0 ? void 0 : schema.type) === 'object' && ((schema === null || schema === void 0 ? void 0 : schema.properties) || (schema === null || schema === void 0 ? void 0 : schema.allOf) || (schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf))) {
2880
- let props = schema === null || schema === void 0 ? void 0 : schema.properties;
2881
- if (schema === null || schema === void 0 ? void 0 : schema.allOf) {
2882
- schema === null || schema === void 0 ? void 0 : schema.allOf.forEach((item) => {
2883
- props = Object.assign(Object.assign({}, props), item.properties);
2884
- });
2885
- }
2886
- if ((schema === null || schema === void 0 ? void 0 : schema.anyOf) && (schema === null || schema === void 0 ? void 0 : schema.anyOf.length) > 0) {
2887
- const selectedSchema = (schema === null || schema === void 0 ? void 0 : schema.anyOf[selectedSchemaIndex]) || (schema === null || schema === void 0 ? void 0 : schema.anyOf[0]);
2888
- props = Object.assign(Object.assign({}, props), selectedSchema.properties);
2889
- }
2890
- if ((schema === null || schema === void 0 ? void 0 : schema.oneOf) && (schema === null || schema === void 0 ? void 0 : schema.oneOf.length) > 0) {
2891
- const selectedSchema = (schema === null || schema === void 0 ? void 0 : schema.oneOf[selectedSchemaIndex]) || (schema === null || schema === void 0 ? void 0 : schema.oneOf[0]);
2892
- props = Object.assign(Object.assign({}, props), selectedSchema.properties);
2893
- }
2894
- for (const [key, child] of Object.entries(props || {})) {
2895
- const childPath = `${path}/properties/${key}`;
2896
- const childRequiredOverride = isRequiredOverride(childPath, hideData);
2897
- const shouldHideChild = isPathHidden(childPath, hideData) && childRequiredOverride === undefined;
2898
- const resolved = dereference(child, root);
2899
- if (!shouldHideChild) {
2900
- children.push(React__default.createElement("li", { key: key },
2901
- React__default.createElement(LazySchemaTreePreviewer, { schema: resolved, root: root, title: key, level: level + 1, path: childPath, hideData: hideData, parentRequired: schema === null || schema === void 0 ? void 0 : schema.required, propertyKey: key, _subType: (_a = resolved === null || resolved === void 0 ? void 0 : resolved.items) === null || _a === void 0 ? void 0 : _a.type })));
2902
- }
2903
- }
2904
- }
2905
- else if ((schema === null || schema === void 0 ? void 0 : schema.type) === 'array' &&
2906
- (schema === null || schema === void 0 ? void 0 : schema.items) &&
2907
- Object.keys(schema === null || schema === void 0 ? void 0 : schema.items).length > 0 &&
2908
- !((_b = schema === null || schema === void 0 ? void 0 : schema.items) === null || _b === void 0 ? void 0 : _b.circular)) {
2909
- const resolvedItems = dereference(schema === null || schema === void 0 ? void 0 : schema.items, root);
2910
- const itemsPath = `${path}/items`;
2911
- if (resolvedItems && resolvedItems.type === 'object' && resolvedItems.properties) {
2912
- for (const [key, child] of Object.entries(resolvedItems.properties)) {
2913
- const childPath = `${itemsPath}/properties/${key}`;
2914
- const childRequiredOverride = isRequiredOverride(childPath, hideData);
2915
- const shouldHideChild = isPathHidden(childPath, hideData) && childRequiredOverride === undefined;
2916
- if (!shouldHideChild) {
2917
- children.push(React__default.createElement("li", { key: key },
2918
- React__default.createElement(LazySchemaTreePreviewer, { schema: dereference(child, root), root: root, title: key, level: level + 2, path: childPath, hideData: hideData, parentRequired: resolvedItems.required, propertyKey: key, _subType: (_c = resolvedItems === null || resolvedItems === void 0 ? void 0 : resolvedItems.items) === null || _c === void 0 ? void 0 : _c.type })));
2919
- }
2920
- }
2921
- }
2922
- else if (resolvedItems && resolvedItems.type === 'array' && resolvedItems.items.length > 0) {
2923
- const childPath = `${path}/items`;
2924
- const childRequiredOverride = isRequiredOverride(childPath, hideData);
2925
- const shouldHideChild = isPathHidden(childPath, hideData) && childRequiredOverride === undefined;
2926
- if (!shouldHideChild) {
2927
- children.push(React__default.createElement("li", { key: "items" },
2928
- React__default.createElement(LazySchemaTreePreviewer, { schema: resolvedItems, root: root, title: "items", level: level + 1, path: childPath, hideData: hideData, parentRequired: schema === null || schema === void 0 ? void 0 : schema.required, propertyKey: "items", _subType: (_d = resolvedItems === null || resolvedItems === void 0 ? void 0 : resolvedItems.items) === null || _d === void 0 ? void 0 : _d.type })));
2929
- }
2930
- }
2931
- }
2932
- return children.length > 0 ? React__default.createElement("ul", { className: "ml-6 border-l border-gray-200 pl-2" }, children) : null;
2933
- };
2934
- const combinedSchemaSelector = () => {
2935
- var _a;
2936
- return (React__default.createElement(React__default.Fragment, null,
2937
- React__default.createElement(Box, { pos: "fixed", top: 0, left: 0, right: 0, bottom: 0, bg: "transparent", style: { zIndex: 999 }, onClick: () => setShowSchemaDropdown(false) }),
2938
- React__default.createElement(Box, { pos: "absolute", bg: "canvas", rounded: true, boxShadow: "md", style: {
2939
- zIndex: 1000,
2940
- top: '100%',
2941
- left: 0,
2942
- minWidth: '150px',
2943
- maxWidth: '200px',
2944
- marginTop: '2px',
2945
- border: '1px solid rgba(0, 0, 0, 0.1)',
2946
- }, fontSize: "sm", onClick: (e) => e.stopPropagation() }, (_a = ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf))) === null || _a === void 0 ? void 0 : _a.map((schemaOption, index) => (React__default.createElement(Box, { key: index, px: 3, py: 2, cursor: "pointer", bg: selectedSchemaIndex === index ? 'primary-tint' : 'canvas', fontSize: "xs", display: "flex", alignItems: "center", style: {
2947
- borderBottom: index < ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)).length - 1 ? '1px solid rgba(0, 0, 0, 0.1)' : 'none',
2948
- gap: '8px',
2949
- }, onMouseEnter: (e) => {
2950
- if (selectedSchemaIndex !== index) {
2951
- e.currentTarget.style.backgroundColor = 'var(--sl-color-canvas-tint)';
2952
- }
2953
- }, onMouseLeave: (e) => {
2954
- if (selectedSchemaIndex !== index) {
2955
- e.currentTarget.style.backgroundColor = 'var(--sl-color-canvas)';
2956
- }
2957
- }, onClick: () => {
2958
- setSelectedSchemaIndex(index);
2959
- setShowSchemaDropdown(false);
2960
- } },
2961
- React__default.createElement(Box, { flex: 1, color: "body" }, schemaOption.type || 'object'),
2962
- selectedSchemaIndex === index && (React__default.createElement(Box, { color: "primary", fontSize: "xs" }, "\u2713"))))))));
2963
- };
2964
- const renderMinEnums = (schema) => {
2965
- if (!schema || typeof schema !== 'object')
2966
- return null;
2967
- const boxStyle = {
2968
- background: 'rgba(245, 247, 250, 0.5)',
2969
- border: '1px solid #a0aec0',
2970
- borderRadius: '4px',
2971
- padding: '0px 2px',
2972
- display: 'inline-block',
2973
- overflowWrap: 'break-word',
2974
- textAlign: 'left',
2975
- maxWidth: 'fit-content',
2976
- maxHeight: 'fit-content',
2977
- };
2978
- if ('minItems' in schema) {
2979
- const schemaWithMinItems = schema;
2980
- if (typeof schemaWithMinItems.minItems === 'number') {
2981
- return (React__default.createElement(Box, { className: "sl-text-muted", fontFamily: "ui", fontWeight: "normal", mr: 2, style: boxStyle }, `>=${schemaWithMinItems.minItems} items`));
2982
- }
2983
- }
2984
- if ('enum' in schema && Array.isArray(schema.enum)) {
2985
- return (React__default.createElement("div", null,
2986
- "Allowed values:",
2987
- ' ',
2988
- schema.enum.map((val, idx) => (React__default.createElement(Box, { key: idx, className: "sl-text-muted", fontFamily: "ui", fontWeight: "normal", mr: 2, style: boxStyle }, val)))));
2989
- }
2990
- return null;
2991
- };
2992
- const isRequired = parentRequired && propertyKey && parentRequired.includes(propertyKey);
2993
- let showRequiredLabel = false;
2994
- const hideDataEntry = hideData.find(hideEntry => trimSlashes(hideEntry.path) === trimSlashes(path));
2995
- if ((hideDataEntry === null || hideDataEntry === void 0 ? void 0 : hideDataEntry.required) === true || ((hideDataEntry === null || hideDataEntry === void 0 ? void 0 : hideDataEntry.required) === undefined && isRequired)) {
2996
- showRequiredLabel = true;
2997
- }
2998
- if (schema === null || schema === void 0 ? void 0 : schema.$ref) {
2999
- schema = dereference(schema, root);
3000
- }
3001
- return (React__default.createElement("div", { className: "mb-1" },
3002
- React__default.createElement(Flex, { maxW: "full", pl: 3, py: 2, "data-test": "schema-row", pos: "relative" },
3003
- React__default.createElement(VStack, { spacing: 1, maxW: "full", className: "w-full" },
3004
- React__default.createElement(Flex, { onClick: !isRoot ? handleToggle : undefined, className: `w-full ${isRoot ? '' : 'cursor-pointer'}` },
3005
- !isRoot ? (React__default.createElement(Box, { mr: 2, className: "sl-font-mono sl-font-semibold sl-mr-2" },
3006
- !TYPES.includes(schema === null || schema === void 0 ? void 0 : schema.type) &&
3007
- !detectCircularPath(path) &&
3008
- !((_b = schema === null || schema === void 0 ? void 0 : schema.items) === null || _b === void 0 ? void 0 : _b.circular) &&
3009
- !(schema === null || schema === void 0 ? void 0 : schema.circular) ? (React__default.createElement("i", { role: "img", "aria-hidden": "true", className: `sl-icon fal ${expanded ? 'fa-chevron-down' : 'fa-chevron-right'} fa-fw fa-sm` })) : (React__default.createElement("span", { className: "sl-icon fal fa-fw fa-sm", "aria-hidden": "true" })),
3010
- ' ' + displayTitle)) : null,
3011
- !isRoot ? (React__default.createElement(Box, { mr: 2, pos: "relative" },
3012
- React__default.createElement(Box, { display: "inline-flex", alignItems: "center", onMouseEnter: () => {
3013
- if ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)) {
3014
- setIsHoveringSelector(true);
3015
- }
3016
- }, onMouseLeave: () => {
3017
- if (!showSchemaDropdown) {
3018
- setIsHoveringSelector(false);
3019
- }
3020
- }, onClick: (e) => {
3021
- if ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)) {
3022
- e.stopPropagation();
3023
- setShowSchemaDropdown(prev => !prev);
3024
- }
3025
- }, style: {
3026
- cursor: (schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf) ? 'pointer' : 'default',
3027
- } },
3028
- React__default.createElement("span", { className: "sl-truncate sl-text-muted" },
3029
- (() => {
3030
- let typeDisplay = (schema === null || schema === void 0 ? void 0 : schema.type) === 'object' && (schema === null || schema === void 0 ? void 0 : schema.title) ? schema === null || schema === void 0 ? void 0 : schema.title : (schema === null || schema === void 0 ? void 0 : schema.type) || (root === null || root === void 0 ? void 0 : root.title);
3031
- if ((schema === null || schema === void 0 ? void 0 : schema.anyOf) && (schema === null || schema === void 0 ? void 0 : schema.anyOf.length) > 0) {
3032
- return `any of ${typeDisplay}`;
3033
- }
3034
- else if ((schema === null || schema === void 0 ? void 0 : schema.oneOf) && (schema === null || schema === void 0 ? void 0 : schema.oneOf.length) > 0) {
3035
- return `one of ${typeDisplay}`;
3036
- }
3037
- return typeDisplay;
3038
- })(),
3039
- (schema === null || schema === void 0 ? void 0 : schema.items) && ((_c = schema === null || schema === void 0 ? void 0 : schema.items) === null || _c === void 0 ? void 0 : _c.title) !== undefined ? ` [${(_d = schema === null || schema === void 0 ? void 0 : schema.items) === null || _d === void 0 ? void 0 : _d.title}] ` : null),
3040
- ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)) && (React__default.createElement(Box, { display: "inline-flex", alignItems: "center", ml: 1, style: {
3041
- opacity: isHoveringSelector ? 1 : 0.6,
3042
- transition: 'opacity 0.2s',
3043
- } },
3044
- React__default.createElement("i", { className: "sl-icon fas fa-chevron-down", style: {
3045
- fontSize: '10px',
3046
- opacity: 0.6,
3047
- } })))),
3048
- React__default.createElement("span", { className: "text-gray-500" }, (schema === null || schema === void 0 ? void 0 : schema.format) !== undefined ? `<${schema === null || schema === void 0 ? void 0 : schema.format}>` : null),
3049
- ((schema === null || schema === void 0 ? void 0 : schema.anyOf) || (schema === null || schema === void 0 ? void 0 : schema.oneOf)) && showSchemaDropdown && combinedSchemaSelector())) : null),
3050
- React__default.createElement(Flex, { pl: 1, w: "full", align: "start", direction: "col", style: { overflow: 'visible', paddingLeft: '20px' } },
3051
- (schema === null || schema === void 0 ? void 0 : schema.description) && (React__default.createElement(Box, { fontFamily: "ui", fontWeight: "light" },
3052
- React__default.createElement("span", { className: "sl-prose sl-markdown-viewer", style: { fontSize: '12px' } }, schema === null || schema === void 0 ? void 0 : schema.description))),
3053
- !isRoot && (schema === null || schema === void 0 ? void 0 : schema.examples) !== undefined && (React__default.createElement(Flex, { align: "center", mb: 1, style: { flexWrap: 'wrap' } },
3054
- React__default.createElement("span", { className: "text-gray-500", style: { marginRight: 8, flexShrink: 0 } }, "Example"),
3055
- React__default.createElement(Box, { className: "sl-text-muted", fontFamily: "ui", fontWeight: "normal", mr: 2, style: {
3056
- background: 'rgba(245, 247, 250, 0.5)',
3057
- border: '1px solid #a0aec0',
3058
- borderRadius: '4px',
3059
- padding: '4px 8px',
3060
- display: 'inline-block',
3061
- overflowWrap: 'break-word',
3062
- textAlign: 'left',
3063
- maxWidth: '530px',
3064
- } }, JSON.stringify(schema === null || schema === void 0 ? void 0 : schema.examples))))),
3065
- React__default.createElement(Flex, { pl: 1, w: "full", align: "start", direction: "col", style: { overflow: 'visible', paddingLeft: '20px' } }, schema &&
3066
- typeof schema === 'object' &&
3067
- ('minItems' in schema || 'enum' in schema) &&
3068
- renderMinEnums(schema))),
3069
- !isRoot && (React__default.createElement("label", { className: "inline-flex items-top ml-2" },
3070
- React__default.createElement(Box, { mr: 2, fontFamily: "ui", fontWeight: "normal" }, showRequiredLabel && (React__default.createElement("div", { className: "sl-ml-2 sl-text-warning" },
3071
- React__default.createElement("span", { style: { marginLeft: '10px' } }, "required"))))))),
3072
- renderChildren()));
3073
- };
3074
-
3075
2737
  const isBodyEmpty = (body) => {
3076
2738
  if (!body)
3077
2739
  return true;
3078
2740
  const { contents = [], description } = body;
3079
2741
  return contents.length === 0 && !(description === null || description === void 0 ? void 0 : description.trim());
3080
2742
  };
3081
- const Body = ({ body, onChange, isHttpWebhookOperation = false, disableProps }) => {
2743
+ const Body = ({ body, onChange, isHttpWebhookOperation = false }) => {
3082
2744
  var _a;
3083
2745
  const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
3084
2746
  const [chosenContent, setChosenContent] = React.useState(0);
@@ -3091,29 +2753,13 @@ const Body = ({ body, onChange, isHttpWebhookOperation = false, disableProps })
3091
2753
  const { contents = [], description } = body;
3092
2754
  const schema = (_a = contents[chosenContent]) === null || _a === void 0 ? void 0 : _a.schema;
3093
2755
  const descriptionChanged = nodeHasChanged === null || nodeHasChanged === void 0 ? void 0 : nodeHasChanged({ nodeId: body.id, attr: 'description' });
3094
- const getMaskProperties = () => {
3095
- const disablePropsConfig = disableProps || [];
3096
- const absolutePathsToHide = [];
3097
- disablePropsConfig.forEach(configEntry => {
3098
- const { location, paths } = configEntry;
3099
- paths.forEach((item) => {
3100
- const fullPath = location === '#' ? item === null || item === void 0 ? void 0 : item.path : `${location}/${item.path}`;
3101
- let object = { path: fullPath };
3102
- if (item.hasOwnProperty('required')) {
3103
- object = Object.assign(Object.assign({}, object), { required: item === null || item === void 0 ? void 0 : item.required });
3104
- }
3105
- absolutePathsToHide.push(object);
3106
- });
3107
- });
3108
- return absolutePathsToHide;
3109
- };
3110
2756
  return (React.createElement(VStack, { spacing: 6 },
3111
2757
  React.createElement(SectionSubtitle, { title: "Body", id: "request-body" }, contents.length > 0 && (React.createElement(Flex, { flex: 1, justify: "end" },
3112
2758
  React.createElement(Select, { "aria-label": "Request Body Content Type", value: String(chosenContent), onChange: value => setChosenContent(parseInt(String(value), 10)), options: contents.map((content, index) => ({ label: content.mediaType, value: index })), size: "sm" })))),
3113
2759
  description && (React.createElement(Box, { pos: "relative" },
3114
2760
  React.createElement(MarkdownViewer, { markdown: description }),
3115
2761
  React.createElement(NodeAnnotation, { change: descriptionChanged }))),
3116
- schema && localStorage.getItem('use_new_mask_workflow') === 'true' ? (React.createElement(LazySchemaTreePreviewer, { schema: schema, hideData: getMaskProperties() })) : (isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: isHttpWebhookOperation ? 'standalone' : 'write', renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon })))));
2762
+ isJSONSchema(schema) && (React.createElement(JsonSchemaViewer, { resolveRef: refResolver, maxRefDepth: maxRefDepth, schema: getOriginalObject(schema), viewMode: isHttpWebhookOperation ? 'standalone' : 'write', renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))));
3117
2763
  };
3118
2764
  Body.displayName = 'HttpOperation.Body';
3119
2765
 
@@ -3180,7 +2826,7 @@ const httpOperationParamsToSchema = ({ parameters, parameterType }) => {
3180
2826
  return schema;
3181
2827
  };
3182
2828
 
3183
- const Request = ({ operation: { request, request: { path: pathParams = [], headers: headerParams = [], cookie: cookieParams = [], body, query: queryParams = [], } = {}, security, }, hideSecurityInfo, onChange, isHttpWebhookOperation = false, disableProps, }) => {
2829
+ const Request = ({ operation: { request, request: { path: pathParams = [], headers: headerParams = [], cookie: cookieParams = [], body, query: queryParams = [], } = {}, security, }, hideSecurityInfo, onChange, isHttpWebhookOperation = false, }) => {
3184
2830
  if (!request || typeof request !== 'object')
3185
2831
  return null;
3186
2832
  const bodyIsEmpty = isBodyEmpty(body);
@@ -3208,7 +2854,7 @@ const Request = ({ operation: { request, request: { path: pathParams = [], heade
3208
2854
  cookieParams.length > 0 && (React.createElement(VStack, { spacing: 5 },
3209
2855
  React.createElement(SectionSubtitle, { title: "Cookies", id: "request-cookies" }),
3210
2856
  React.createElement(Parameters, { parameterType: "cookie", parameters: cookieParams }))),
3211
- body && (React.createElement(Body, { onChange: onChange, body: body, isHttpWebhookOperation: isHttpWebhookOperation, disableProps: disableProps }))));
2857
+ body && React.createElement(Body, { onChange: onChange, body: body, isHttpWebhookOperation: isHttpWebhookOperation })));
3212
2858
  };
3213
2859
  Request.displayName = 'HttpOperation.Request';
3214
2860
  const schemeExpandedState = atomWithStorage('HttpOperation_security_expanded', {});
@@ -3239,7 +2885,7 @@ const OptionalMessage$1 = () => {
3239
2885
  return React.createElement(Callout, { appearance: "outline" }, OptionalSecurityMessage);
3240
2886
  };
3241
2887
 
3242
- const Responses = ({ responses: unsortedResponses, onStatusCodeChange, onMediaTypeChange, isCompact, disableProps, }) => {
2888
+ const Responses = ({ responses: unsortedResponses, onStatusCodeChange, onMediaTypeChange, isCompact, }) => {
3243
2889
  var _a, _b;
3244
2890
  const responses = sortBy(uniqBy(unsortedResponses, r => r.code), r => r.code);
3245
2891
  const [activeResponseId, setActiveResponseId] = React.useState((_b = (_a = responses[0]) === null || _a === void 0 ? void 0 : _a.code) !== null && _b !== void 0 ? _b : '');
@@ -3272,11 +2918,11 @@ const Responses = ({ responses: unsortedResponses, onStatusCodeChange, onMediaTy
3272
2918
  const tabResponses = (React.createElement(TabList, { density: "compact" }, responses.map(({ code }) => (React.createElement(Tab, { key: code, id: code, intent: codeToIntentVal(code) }, code)))));
3273
2919
  return (React.createElement(VStack, { spacing: 8, as: Tabs, selectedId: activeResponseId, onChange: setActiveResponseId, appearance: "pill" },
3274
2920
  React.createElement(SectionTitle, { title: "Responses", isCompact: isCompact }, isCompact ? compactResponses : tabResponses),
3275
- isCompact ? (React.createElement(Response, { response: response, onMediaTypeChange: onMediaTypeChange, disableProps: disableProps, statusCode: activeResponseId })) : (React.createElement(TabPanels, { p: 0 }, responses.map(response => (React.createElement(TabPanel, { key: response.code, id: response.code },
3276
- React.createElement(Response, { response: response, onMediaTypeChange: onMediaTypeChange, disableProps: disableProps, statusCode: response.code }))))))));
2921
+ isCompact ? (React.createElement(Response, { response: response, onMediaTypeChange: onMediaTypeChange })) : (React.createElement(TabPanels, { p: 0 }, responses.map(response => (React.createElement(TabPanel, { key: response.code, id: response.code },
2922
+ React.createElement(Response, { response: response, onMediaTypeChange: onMediaTypeChange }))))))));
3277
2923
  };
3278
2924
  Responses.displayName = 'HttpOperation.Responses';
3279
- const Response = ({ response, onMediaTypeChange, disableProps, statusCode }) => {
2925
+ const Response = ({ response, onMediaTypeChange }) => {
3280
2926
  const { contents = [], headers = [], description } = response;
3281
2927
  const [chosenContent, setChosenContent] = React.useState(0);
3282
2928
  const [refResolver, maxRefDepth] = useSchemaInlineRefResolver();
@@ -3287,23 +2933,6 @@ const Response = ({ response, onMediaTypeChange, disableProps, statusCode }) =>
3287
2933
  responseContent && (onMediaTypeChange === null || onMediaTypeChange === void 0 ? void 0 : onMediaTypeChange(responseContent.mediaType));
3288
2934
  }, [responseContent]);
3289
2935
  const descriptionChanged = nodeHasChanged === null || nodeHasChanged === void 0 ? void 0 : nodeHasChanged({ nodeId: response.id, attr: 'description' });
3290
- const getMaskProperties = () => {
3291
- if (!disableProps || !statusCode)
3292
- return [];
3293
- const configEntries = disableProps[statusCode] || [];
3294
- const absolutePathsToHide = [];
3295
- configEntries.forEach(({ location, paths }) => {
3296
- paths.forEach((item) => {
3297
- const fullPath = location === '#' ? item === null || item === void 0 ? void 0 : item.path : `${location}/${item.path}`;
3298
- let object = { path: fullPath };
3299
- if (item.hasOwnProperty('required')) {
3300
- object = Object.assign(Object.assign({}, object), { required: item === null || item === void 0 ? void 0 : item.required });
3301
- }
3302
- absolutePathsToHide.push(object);
3303
- });
3304
- });
3305
- return absolutePathsToHide;
3306
- };
3307
2936
  return (React.createElement(VStack, { spacing: 8, pt: 8 },
3308
2937
  description && (React.createElement(Box, { pos: "relative" },
3309
2938
  React.createElement(MarkdownViewer, { markdown: description }),
@@ -3315,10 +2944,13 @@ const Response = ({ response, onMediaTypeChange, disableProps, statusCode }) =>
3315
2944
  React.createElement(SectionSubtitle, { title: "Body", id: "response-body" },
3316
2945
  React.createElement(Flex, { flex: 1, justify: "end" },
3317
2946
  React.createElement(Select, { "aria-label": "Response Body Content Type", value: String(chosenContent), onChange: value => setChosenContent(parseInt(String(value), 10)), options: contents.map((content, index) => ({ label: content.mediaType, value: index })), size: "sm" }))),
3318
- schema && localStorage.getItem('use_new_mask_workflow') === 'true' ? (React.createElement(LazySchemaTreePreviewer, { schema: schema, path: "", hideData: getMaskProperties() })) : (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))))));
2947
+ schema && (React.createElement(JsonSchemaViewer, { schema: getOriginalObject(schema), resolveRef: refResolver, maxRefDepth: maxRefDepth, viewMode: "read", parentCrumbs: ['responses', response.code], renderRootTreeLines: true, nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }))))));
3319
2948
  };
3320
2949
  Response.displayName = 'HttpOperation.Response';
3321
2950
  const codeToIntentVal = (code) => {
2951
+ if (typeof code !== 'string' || code.trim() === '') {
2952
+ return 'default';
2953
+ }
3322
2954
  const firstChar = code.charAt(0);
3323
2955
  switch (firstChar) {
3324
2956
  case '2':
@@ -3361,7 +2993,7 @@ const Callback = ({ data, isCompact }) => {
3361
2993
  };
3362
2994
  Callbacks.displayName = 'HttpOperation.Callback';
3363
2995
 
3364
- const HttpOperationComponent = React.memo(({ className, data: unresolvedData, layoutOptions, tryItCredentialsPolicy, tryItCorsProxy, disableProps }) => {
2996
+ const HttpOperationComponent = React.memo(({ className, data: unresolvedData, layoutOptions, tryItCredentialsPolicy, tryItCorsProxy }) => {
3365
2997
  var _a;
3366
2998
  const { nodeHasChanged } = useOptionsCtx();
3367
2999
  const data = useResolvedObject(unresolvedData);
@@ -3392,8 +3024,8 @@ const HttpOperationComponent = React.memo(({ className, data: unresolvedData, la
3392
3024
  React.createElement(MarkdownViewer, { className: "HttpOperation__Description", markdown: data.description }),
3393
3025
  React.createElement(NodeAnnotation, { change: descriptionChanged }))),
3394
3026
  React.createElement(NodeVendorExtensions, { data: data }),
3395
- React.createElement(Request, { onChange: setTextRequestBodyIndex, operation: data, hideSecurityInfo: layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideSecurityInfo, isHttpWebhookOperation: isHttpWebhookOperation(data), disableProps: disableProps === null || disableProps === void 0 ? void 0 : disableProps.request }),
3396
- data.responses && (React.createElement(Responses, { responses: data.responses, onMediaTypeChange: setResponseMediaType, onStatusCodeChange: setResponseStatusCode, isCompact: isCompact, disableProps: disableProps === null || disableProps === void 0 ? void 0 : disableProps.response })),
3027
+ React.createElement(Request, { onChange: setTextRequestBodyIndex, operation: data, hideSecurityInfo: layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideSecurityInfo, isHttpWebhookOperation: isHttpWebhookOperation(data) }),
3028
+ data.responses && (React.createElement(Responses, { responses: data.responses, onMediaTypeChange: setResponseMediaType, onStatusCodeChange: setResponseStatusCode, isCompact: isCompact })),
3397
3029
  ((_a = data.callbacks) === null || _a === void 0 ? void 0 : _a.length) ? React.createElement(Callbacks, { callbacks: data.callbacks, isCompact: isCompact }) : null,
3398
3030
  isCompact && tryItPanel));
3399
3031
  return (React.createElement(TwoColumnLayout, { ref: layoutRef, className: cn('HttpOperation', className), header: header, left: description, right: !isCompact && tryItPanel }));
@@ -3631,9 +3263,7 @@ const HttpServiceComponent = React.memo(({ data: unresolvedData, location = {},
3631
3263
  React.createElement(Box, { pos: "relative" },
3632
3264
  React.createElement(Heading, { size: 1, mb: 4, fontWeight: "semibold" }, data.name),
3633
3265
  React.createElement(NodeAnnotation, { change: nameChanged })),
3634
- localStorage.getItem('use_new_mask_workflow') === 'true'
3635
- ? null
3636
- : exportProps && !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideExport) && !isCompact && React.createElement(ExportButton, Object.assign({}, exportProps)))),
3266
+ exportProps && !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideExport) && !isCompact && React.createElement(ExportButton, Object.assign({}, exportProps)))),
3637
3267
  data.version && (React.createElement(Box, { mb: 5, pos: "relative" },
3638
3268
  React.createElement(VersionBadge, { value: data.version }),
3639
3269
  React.createElement(NodeAnnotation, { change: versionChanged }))),
@@ -3649,7 +3279,7 @@ const HttpServiceComponent = React.memo(({ data: unresolvedData, location = {},
3649
3279
  HttpServiceComponent.displayName = 'HttpService.Component';
3650
3280
  const HttpService = withErrorBoundary(HttpServiceComponent, { recoverableProps: ['data'] });
3651
3281
 
3652
- const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, disableProps, }) => {
3282
+ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOptions, exportProps, }) => {
3653
3283
  var _a, _b;
3654
3284
  const [resolveRef, maxRefDepth] = useSchemaInlineRefResolver();
3655
3285
  const data = useResolvedObject(unresolvedData);
@@ -3669,36 +3299,16 @@ const ModelComponent = ({ data: unresolvedData, className, nodeTitle, layoutOpti
3669
3299
  isDeprecated && React.createElement(DeprecatedBadge, null),
3670
3300
  isInternal && React.createElement(InternalBadge, null))),
3671
3301
  React.createElement(NodeAnnotation, { change: titleChanged })),
3672
- localStorage.getItem('use_new_mask_workflow') === 'true'
3673
- ? null
3674
- : exportProps && !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideExport) && !isCompact && React.createElement(ExportButton, Object.assign({}, exportProps))));
3302
+ exportProps && !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideExport) && !isCompact && React.createElement(ExportButton, Object.assign({}, exportProps))));
3675
3303
  const modelExamples = !(layoutOptions === null || layoutOptions === void 0 ? void 0 : layoutOptions.hideModelExamples) && React.createElement(ModelExamples, { data: data, isCollapsible: isCompact });
3676
3304
  const descriptionChanged = nodeHasChanged === null || nodeHasChanged === void 0 ? void 0 : nodeHasChanged({ nodeId, attr: 'description' });
3677
- const getMaskProperties = () => {
3678
- const disablePropsConfig = disableProps === null || disableProps === void 0 ? void 0 : disableProps.models;
3679
- const absolutePathsToHide = [];
3680
- if (disableProps === null || disableProps === void 0 ? void 0 : disableProps.models) {
3681
- disablePropsConfig.forEach((configEntry) => {
3682
- const { location, paths } = configEntry;
3683
- paths.forEach((item) => {
3684
- const fullPath = location === '#' ? item === null || item === void 0 ? void 0 : item.path : `${location}/${item.path}`;
3685
- let object = { path: fullPath };
3686
- if (item.hasOwnProperty('required')) {
3687
- object = Object.assign(Object.assign({}, object), { required: item === null || item === void 0 ? void 0 : item.required });
3688
- }
3689
- absolutePathsToHide.push(object);
3690
- });
3691
- });
3692
- }
3693
- return absolutePathsToHide;
3694
- };
3695
3305
  const description = (React.createElement(VStack, { spacing: 10 },
3696
3306
  data.description && data.type === 'object' && (React.createElement(Box, { pos: "relative" },
3697
3307
  React.createElement(MarkdownViewer, { role: "textbox", markdown: data.description }),
3698
3308
  React.createElement(NodeAnnotation, { change: descriptionChanged }))),
3699
3309
  React.createElement(NodeVendorExtensions, { data: data }),
3700
- localStorage.getItem('use_new_mask_workflow') !== 'true' && isCompact && modelExamples,
3701
- data && localStorage.getItem('use_new_mask_workflow') === 'true' ? (React.createElement(LazySchemaTreePreviewer, { schema: data, hideData: getMaskProperties() })) : (React.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon, skipTopLevelDescription: true }))));
3310
+ isCompact && modelExamples,
3311
+ React.createElement(JsonSchemaViewer, { resolveRef: resolveRef, maxRefDepth: maxRefDepth, schema: getOriginalObject(data), nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon, skipTopLevelDescription: true })));
3702
3312
  return (React.createElement(TwoColumnLayout, { ref: layoutRef, className: cn('Model', className), header: header, left: description, right: !isCompact && modelExamples }));
3703
3313
  };
3704
3314
  const ModelExamples = React.memo(({ data, isCollapsible = false }) => {
@@ -3721,30 +3331,30 @@ const Model = withErrorBoundary(ModelComponent, { recoverableProps: ['data'] });
3721
3331
 
3722
3332
  const Docs = React.memo((_a) => {
3723
3333
  var _b;
3724
- var { nodeType, nodeData, disableProps, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged, renderExtensionAddon } = _a, commonProps = __rest(_a, ["nodeType", "nodeData", "disableProps", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged", "renderExtensionAddon"]);
3334
+ var { nodeType, nodeData, useNodeForRefResolving = false, refResolver, maxRefDepth, nodeHasChanged, renderExtensionAddon } = _a, commonProps = __rest(_a, ["nodeType", "nodeData", "useNodeForRefResolving", "refResolver", "maxRefDepth", "nodeHasChanged", "renderExtensionAddon"]);
3725
3335
  const parsedNode = useParsedData(nodeType, nodeData);
3726
3336
  if (!parsedNode) {
3727
3337
  (_b = commonProps.nodeUnsupported) === null || _b === void 0 ? void 0 : _b.call(commonProps, 'dataEmpty');
3728
3338
  return null;
3729
3339
  }
3730
- let elem = React.createElement(ParsedDocs, Object.assign({ node: parsedNode, disableProps: disableProps }, commonProps));
3340
+ let elem = React.createElement(ParsedDocs, Object.assign({ node: parsedNode }, commonProps));
3731
3341
  if (useNodeForRefResolving) {
3732
3342
  elem = (React.createElement(InlineRefResolverProvider, { document: parsedNode.data, resolver: refResolver, maxRefDepth: maxRefDepth }, elem));
3733
3343
  }
3734
3344
  return (React.createElement(ElementsOptionsProvider, { nodeHasChanged: nodeHasChanged, renderExtensionAddon: renderExtensionAddon }, elem));
3735
3345
  });
3736
3346
  const ParsedDocs = (_a) => {
3737
- var { node, nodeUnsupported, disableProps } = _a, commonProps = __rest(_a, ["node", "nodeUnsupported", "disableProps"]);
3347
+ var { node, nodeUnsupported } = _a, commonProps = __rest(_a, ["node", "nodeUnsupported"]);
3738
3348
  switch (node.type) {
3739
3349
  case 'article':
3740
3350
  return React.createElement(Article, Object.assign({ data: node.data }, commonProps));
3741
3351
  case 'http_operation':
3742
3352
  case 'http_webhook':
3743
- return React.createElement(HttpOperation, Object.assign({ data: node.data, disableProps: disableProps }, commonProps));
3353
+ return React.createElement(HttpOperation, Object.assign({ data: node.data }, commonProps));
3744
3354
  case 'http_service':
3745
3355
  return React.createElement(HttpService, Object.assign({ data: node.data }, commonProps));
3746
3356
  case 'model':
3747
- return React.createElement(Model, Object.assign({ data: node.data, disableProps: disableProps }, commonProps));
3357
+ return React.createElement(Model, Object.assign({ data: node.data }, commonProps));
3748
3358
  default:
3749
3359
  nodeUnsupported === null || nodeUnsupported === void 0 ? void 0 : nodeUnsupported('invalidType');
3750
3360
  return null;