@backstage/plugin-techdocs 1.16.2 → 1.16.3-next.0
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/CHANGELOG.md +24 -0
- package/dist/alpha/addonsApi.esm.js +29 -0
- package/dist/alpha/addonsApi.esm.js.map +1 -0
- package/dist/alpha.d.ts +20 -1
- package/dist/alpha.esm.js +33 -19
- package/dist/alpha.esm.js.map +1 -1
- package/dist/package.json.esm.js +1 -1
- package/dist/reader/transformers/styles/rules/layout.esm.js +4 -27
- package/dist/reader/transformers/styles/rules/layout.esm.js.map +1 -1
- package/package.json +23 -23
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @backstage/plugin-techdocs
|
|
2
2
|
|
|
3
|
+
## 1.16.3-next.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 9e29545: Improve sidebars (nav/TOC) layout and scrolling
|
|
8
|
+
- 22dce2b: TechDocs addons in the new frontend system now use a Utility API pattern instead of multiple attachment points. The `AddonBlueprint` now uses this new approach, and while addons created with older versions still work, they will produce a deprecation warning and will stop working in a future release.
|
|
9
|
+
- Updated dependencies
|
|
10
|
+
- @backstage/plugin-catalog-react@1.21.6-next.0
|
|
11
|
+
- @backstage/core-components@0.18.6-next.0
|
|
12
|
+
- @backstage/plugin-search-common@1.2.22-next.0
|
|
13
|
+
- @backstage/integration@1.19.3-next.0
|
|
14
|
+
- @backstage/frontend-plugin-api@0.14.0-next.0
|
|
15
|
+
- @backstage/core-plugin-api@1.12.2-next.0
|
|
16
|
+
- @backstage/plugin-techdocs-react@1.3.8-next.0
|
|
17
|
+
- @backstage/plugin-search-react@1.10.3-next.0
|
|
18
|
+
- @backstage/catalog-client@1.12.1
|
|
19
|
+
- @backstage/catalog-model@1.7.6
|
|
20
|
+
- @backstage/config@1.3.6
|
|
21
|
+
- @backstage/errors@1.2.7
|
|
22
|
+
- @backstage/integration-react@1.2.15-next.0
|
|
23
|
+
- @backstage/theme@0.7.1
|
|
24
|
+
- @backstage/plugin-auth-react@0.1.24-next.0
|
|
25
|
+
- @backstage/plugin-techdocs-common@0.1.1
|
|
26
|
+
|
|
3
27
|
## 1.16.2
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createApiRef, ApiBlueprint, createExtensionInput } from '@backstage/frontend-plugin-api';
|
|
2
|
+
import { AddonBlueprint } from '@backstage/plugin-techdocs-react/alpha';
|
|
3
|
+
|
|
4
|
+
const techdocsAddonsApiRef = createApiRef({
|
|
5
|
+
id: "plugin.techdocs.addons"
|
|
6
|
+
});
|
|
7
|
+
const TechDocsAddonsApiExtension = ApiBlueprint.makeWithOverrides({
|
|
8
|
+
name: "addons",
|
|
9
|
+
inputs: {
|
|
10
|
+
addons: createExtensionInput([AddonBlueprint.dataRefs.addon])
|
|
11
|
+
},
|
|
12
|
+
factory(originalFactory, { inputs }) {
|
|
13
|
+
const addons = inputs.addons.map(
|
|
14
|
+
(output) => output.get(AddonBlueprint.dataRefs.addon)
|
|
15
|
+
);
|
|
16
|
+
return originalFactory(
|
|
17
|
+
(defineParams) => defineParams({
|
|
18
|
+
api: techdocsAddonsApiRef,
|
|
19
|
+
deps: {},
|
|
20
|
+
factory: () => ({
|
|
21
|
+
getAddons: () => addons
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export { TechDocsAddonsApiExtension, techdocsAddonsApiRef };
|
|
29
|
+
//# sourceMappingURL=addonsApi.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addonsApi.esm.js","sources":["../../src/alpha/addonsApi.ts"],"sourcesContent":["/*\n * Copyright 2025 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {\n ApiBlueprint,\n createApiRef,\n createExtensionInput,\n} from '@backstage/frontend-plugin-api';\nimport { AddonBlueprint } from '@backstage/plugin-techdocs-react/alpha';\nimport { TechDocsAddonOptions } from '@backstage/plugin-techdocs-react';\n\ninterface TechDocsAddonsApi {\n getAddons(): TechDocsAddonOptions[];\n}\n\nexport const techdocsAddonsApiRef = createApiRef<TechDocsAddonsApi>({\n id: 'plugin.techdocs.addons',\n});\n\nexport const TechDocsAddonsApiExtension = ApiBlueprint.makeWithOverrides({\n name: 'addons',\n inputs: {\n addons: createExtensionInput([AddonBlueprint.dataRefs.addon]),\n },\n factory(originalFactory, { inputs }) {\n const addons = inputs.addons.map(output =>\n output.get(AddonBlueprint.dataRefs.addon),\n );\n return originalFactory(defineParams =>\n defineParams({\n api: techdocsAddonsApiRef,\n deps: {},\n factory: () => ({\n getAddons: () => addons,\n }),\n }),\n );\n },\n});\n"],"names":[],"mappings":";;;AA4BO,MAAM,uBAAuB,YAAA,CAAgC;AAAA,EAClE,EAAA,EAAI;AACN,CAAC;AAEM,MAAM,0BAAA,GAA6B,aAAa,iBAAA,CAAkB;AAAA,EACvE,IAAA,EAAM,QAAA;AAAA,EACN,MAAA,EAAQ;AAAA,IACN,QAAQ,oBAAA,CAAqB,CAAC,cAAA,CAAe,QAAA,CAAS,KAAK,CAAC;AAAA,GAC9D;AAAA,EACA,OAAA,CAAQ,eAAA,EAAiB,EAAE,MAAA,EAAO,EAAG;AACnC,IAAA,MAAM,MAAA,GAAS,OAAO,MAAA,CAAO,GAAA;AAAA,MAAI,CAAA,MAAA,KAC/B,MAAA,CAAO,GAAA,CAAI,cAAA,CAAe,SAAS,KAAK;AAAA,KAC1C;AACA,IAAA,OAAO,eAAA;AAAA,MAAgB,kBACrB,YAAA,CAAa;AAAA,QACX,GAAA,EAAK,oBAAA;AAAA,QACL,MAAM,EAAC;AAAA,QACP,SAAS,OAAO;AAAA,UACd,WAAW,MAAM;AAAA,SACnB;AAAA,OACD;AAAA,KACH;AAAA,EACF;AACF,CAAC;;;;"}
|
package/dist/alpha.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as _backstage_core_components from '@backstage/core-components';
|
|
2
|
-
import * as _backstage_plugin_techdocs_react from '@backstage/plugin-techdocs-react';
|
|
3
2
|
import * as _backstage_catalog_model from '@backstage/catalog-model';
|
|
4
3
|
import * as _backstage_plugin_catalog_react_alpha from '@backstage/plugin-catalog-react/alpha';
|
|
4
|
+
import * as _backstage_plugin_techdocs_react from '@backstage/plugin-techdocs-react';
|
|
5
5
|
import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
|
|
6
6
|
import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
|
|
7
7
|
import * as react from 'react';
|
|
@@ -52,6 +52,21 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
52
52
|
inputs: {};
|
|
53
53
|
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
54
54
|
}>;
|
|
55
|
+
"api:techdocs/addons": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
56
|
+
config: {};
|
|
57
|
+
configInput: {};
|
|
58
|
+
output: _backstage_frontend_plugin_api.ExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
|
|
59
|
+
inputs: {
|
|
60
|
+
addons: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_techdocs_react.TechDocsAddonOptions, "techdocs.addon", {}>, {
|
|
61
|
+
singleton: false;
|
|
62
|
+
optional: false;
|
|
63
|
+
internal: false;
|
|
64
|
+
}>;
|
|
65
|
+
};
|
|
66
|
+
kind: "api";
|
|
67
|
+
name: "addons";
|
|
68
|
+
params: <TApi, TImpl extends TApi, TDeps extends { [name in string]: unknown; }>(params: _backstage_frontend_plugin_api.ApiFactory<TApi, TImpl, TDeps>) => _backstage_frontend_plugin_api.ExtensionBlueprintParams<_backstage_frontend_plugin_api.AnyApiFactory>;
|
|
69
|
+
}>;
|
|
55
70
|
"api:techdocs/storage": _backstage_frontend_plugin_api.OverridableExtensionDefinition<{
|
|
56
71
|
kind: "api";
|
|
57
72
|
name: "storage";
|
|
@@ -71,6 +86,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
71
86
|
[x: string]: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ExtensionDataRef, {
|
|
72
87
|
singleton: boolean;
|
|
73
88
|
optional: boolean;
|
|
89
|
+
internal?: boolean;
|
|
74
90
|
}>;
|
|
75
91
|
};
|
|
76
92
|
params: never;
|
|
@@ -103,12 +119,14 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
103
119
|
addons: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_techdocs_react.TechDocsAddonOptions, "techdocs.addon", {}>, {
|
|
104
120
|
singleton: false;
|
|
105
121
|
optional: false;
|
|
122
|
+
internal: false;
|
|
106
123
|
}>;
|
|
107
124
|
emptyState: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {
|
|
108
125
|
optional: true;
|
|
109
126
|
}>, {
|
|
110
127
|
singleton: true;
|
|
111
128
|
optional: true;
|
|
129
|
+
internal: false;
|
|
112
130
|
}>;
|
|
113
131
|
};
|
|
114
132
|
kind: "entity-content";
|
|
@@ -200,6 +218,7 @@ declare const _default: _backstage_frontend_plugin_api.OverridableFrontendPlugin
|
|
|
200
218
|
addons: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_plugin_techdocs_react.TechDocsAddonOptions, "techdocs.addon", {}>, {
|
|
201
219
|
singleton: false;
|
|
202
220
|
optional: false;
|
|
221
|
+
internal: false;
|
|
203
222
|
}>;
|
|
204
223
|
};
|
|
205
224
|
kind: "page";
|
package/dist/alpha.esm.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Suspense } from 'react';
|
|
2
3
|
import LibraryBooks from '@material-ui/icons/LibraryBooks';
|
|
3
4
|
import { ApiBlueprint, PageBlueprint, createExtensionInput, coreExtensionData, createExtension, NavItemBlueprint, createFrontendPlugin } from '@backstage/frontend-plugin-api';
|
|
4
5
|
import { fetchApiRef, discoveryApiRef, configApiRef } from '@backstage/core-plugin-api';
|
|
5
6
|
import { EntityIconLinkBlueprint, EntityContentBlueprint } from '@backstage/plugin-catalog-react/alpha';
|
|
6
7
|
import { SearchResultListItemBlueprint } from '@backstage/plugin-search-react/alpha';
|
|
7
8
|
import { AddonBlueprint, attachTechDocsAddonComponentData } from '@backstage/plugin-techdocs-react/alpha';
|
|
9
|
+
import { techdocsAddonsApiRef, TechDocsAddonsApiExtension } from './alpha/addonsApi.esm.js';
|
|
8
10
|
import { TechDocsStorageClient, TechDocsClient } from './client.esm.js';
|
|
9
11
|
import { rootRouteRef, rootDocsRouteRef, rootCatalogDocsRouteRef } from './routes.esm.js';
|
|
10
12
|
import './reader/components/TechDocsReaderProvider.esm.js';
|
|
11
13
|
import { TechDocsReaderLayout } from './reader/components/TechDocsReaderPage/TechDocsReaderPage.esm.js';
|
|
12
|
-
import 'react';
|
|
13
14
|
import 'react-helmet';
|
|
14
15
|
import '@material-ui/core/Grid';
|
|
15
16
|
import '@material-ui/lab/Skeleton';
|
|
@@ -93,20 +94,27 @@ const techDocsReaderPage = PageBlueprint.makeWithOverrides({
|
|
|
93
94
|
inputs: {
|
|
94
95
|
addons: createExtensionInput([AddonBlueprint.dataRefs.addon])
|
|
95
96
|
},
|
|
96
|
-
factory(originalFactory, { inputs }) {
|
|
97
|
-
const
|
|
98
|
-
const options = output.get(AddonBlueprint.dataRefs.addon);
|
|
99
|
-
const Addon = options.component;
|
|
100
|
-
attachTechDocsAddonComponentData(Addon, options);
|
|
101
|
-
return /* @__PURE__ */ jsx(Addon, {}, options.name);
|
|
102
|
-
});
|
|
97
|
+
factory(originalFactory, { apis, inputs }) {
|
|
98
|
+
const addonsApi = apis.get(techdocsAddonsApiRef);
|
|
103
99
|
return originalFactory({
|
|
104
100
|
path: "/docs/:namespace/:kind/:name",
|
|
105
101
|
routeRef: rootDocsRouteRef,
|
|
106
|
-
loader: async () =>
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
102
|
+
loader: async () => {
|
|
103
|
+
const apiAddons = addonsApi?.getAddons() ?? [];
|
|
104
|
+
const directAddons = inputs.addons.map(
|
|
105
|
+
(output) => output.get(AddonBlueprint.dataRefs.addon)
|
|
106
|
+
);
|
|
107
|
+
const addonOptions = [...apiAddons, ...directAddons];
|
|
108
|
+
const addons = addonOptions.map((options) => {
|
|
109
|
+
const Addon = options.component;
|
|
110
|
+
attachTechDocsAddonComponentData(Addon, options);
|
|
111
|
+
return /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(Addon, {}) }, options.name);
|
|
112
|
+
});
|
|
113
|
+
return import('./Router.esm.js').then(({ TechDocsReaderRouter }) => /* @__PURE__ */ jsxs(TechDocsReaderRouter, { children: [
|
|
114
|
+
/* @__PURE__ */ jsx(TechDocsReaderLayout, {}),
|
|
115
|
+
/* @__PURE__ */ jsx(TechDocsAddons, { children: addons })
|
|
116
|
+
] }));
|
|
117
|
+
}
|
|
110
118
|
});
|
|
111
119
|
}
|
|
112
120
|
});
|
|
@@ -122,19 +130,24 @@ const techDocsEntityContent = EntityContentBlueprint.makeWithOverrides({
|
|
|
122
130
|
)
|
|
123
131
|
},
|
|
124
132
|
factory(originalFactory, context) {
|
|
133
|
+
const addonsApi = context.apis.get(techdocsAddonsApiRef);
|
|
125
134
|
return originalFactory(
|
|
126
135
|
{
|
|
127
136
|
path: "docs",
|
|
128
137
|
title: "TechDocs",
|
|
129
138
|
routeRef: rootCatalogDocsRouteRef,
|
|
130
|
-
loader: () =>
|
|
131
|
-
const
|
|
132
|
-
|
|
139
|
+
loader: () => {
|
|
140
|
+
const apiAddons = addonsApi?.getAddons() ?? [];
|
|
141
|
+
const directAddons = context.inputs.addons.map(
|
|
142
|
+
(output) => output.get(AddonBlueprint.dataRefs.addon)
|
|
143
|
+
);
|
|
144
|
+
const addonOptions = [...apiAddons, ...directAddons];
|
|
145
|
+
const addons = addonOptions.map((options) => {
|
|
133
146
|
const Addon = options.component;
|
|
134
147
|
attachTechDocsAddonComponentData(Addon, options);
|
|
135
|
-
return /* @__PURE__ */ jsx(Addon, {}, options.name);
|
|
148
|
+
return /* @__PURE__ */ jsx(Suspense, { fallback: null, children: /* @__PURE__ */ jsx(Addon, {}) }, options.name);
|
|
136
149
|
});
|
|
137
|
-
return /* @__PURE__ */ jsx(
|
|
150
|
+
return import('./Router.esm.js').then(({ EmbeddedDocsRouter }) => /* @__PURE__ */ jsx(
|
|
138
151
|
EmbeddedDocsRouter,
|
|
139
152
|
{
|
|
140
153
|
emptyState: context.inputs.emptyState?.get(
|
|
@@ -142,8 +155,8 @@ const techDocsEntityContent = EntityContentBlueprint.makeWithOverrides({
|
|
|
142
155
|
),
|
|
143
156
|
children: /* @__PURE__ */ jsx(TechDocsAddons, { children: addons })
|
|
144
157
|
}
|
|
145
|
-
);
|
|
146
|
-
}
|
|
158
|
+
));
|
|
159
|
+
}
|
|
147
160
|
},
|
|
148
161
|
context
|
|
149
162
|
);
|
|
@@ -169,6 +182,7 @@ var index = createFrontendPlugin({
|
|
|
169
182
|
extensions: [
|
|
170
183
|
techDocsClientApi,
|
|
171
184
|
techDocsStorageApi,
|
|
185
|
+
TechDocsAddonsApiExtension,
|
|
172
186
|
techDocsNavItem,
|
|
173
187
|
techDocsPage,
|
|
174
188
|
techDocsReaderPage,
|
package/dist/alpha.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alpha.esm.js","sources":["../src/alpha/index.tsx"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport LibraryBooks from '@material-ui/icons/LibraryBooks';\nimport {\n createFrontendPlugin,\n ApiBlueprint,\n PageBlueprint,\n NavItemBlueprint,\n createExtensionInput,\n coreExtensionData,\n createExtension,\n} from '@backstage/frontend-plugin-api';\nimport {\n configApiRef,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n EntityContentBlueprint,\n EntityIconLinkBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { SearchResultListItemBlueprint } from '@backstage/plugin-search-react/alpha';\nimport { AddonBlueprint } from '@backstage/plugin-techdocs-react/alpha';\nimport { TechDocsClient, TechDocsStorageClient } from '../client';\nimport {\n rootCatalogDocsRouteRef,\n rootDocsRouteRef,\n rootRouteRef,\n} from '../routes';\nimport { TechDocsReaderLayout } from '../reader';\nimport { attachTechDocsAddonComponentData } from '@backstage/plugin-techdocs-react/alpha';\nimport {\n TechDocsAddons,\n techdocsApiRef,\n techdocsStorageApiRef,\n} from '@backstage/plugin-techdocs-react';\n\nimport { useTechdocsReaderIconLinkProps } from './hooks/useTechdocsReaderIconLinkProps';\nimport { DocsIcon } from '@backstage/core-components';\n\n/** @alpha */\nconst techdocsEntityIconLink = EntityIconLinkBlueprint.make({\n name: 'read-docs',\n params: {\n useProps: useTechdocsReaderIconLinkProps,\n },\n});\n\n/** @alpha */\nconst techDocsStorageApi = ApiBlueprint.make({\n name: 'storage',\n params: defineParams =>\n defineParams({\n api: techdocsStorageApiRef,\n deps: {\n configApi: configApiRef,\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, discoveryApi, fetchApi }) =>\n new TechDocsStorageClient({\n configApi,\n discoveryApi,\n fetchApi,\n }),\n }),\n});\n\n/** @alpha */\nconst techDocsClientApi = ApiBlueprint.make({\n params: defineParams =>\n defineParams({\n api: techdocsApiRef,\n deps: {\n configApi: configApiRef,\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, discoveryApi, fetchApi }) =>\n new TechDocsClient({\n configApi,\n discoveryApi,\n fetchApi,\n }),\n }),\n});\n\n/** @alpha */\nexport const techDocsSearchResultListItemExtension =\n SearchResultListItemBlueprint.makeWithOverrides({\n config: {\n schema: {\n title: z => z.string().optional(),\n lineClamp: z => z.number().default(5),\n asLink: z => z.boolean().default(true),\n asListItem: z => z.boolean().default(true),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n icon: <DocsIcon />,\n predicate: result => result.type === 'techdocs',\n component: async () => {\n const { TechDocsSearchResultListItem } = await import(\n '../search/components/TechDocsSearchResultListItem'\n );\n return props => (\n <TechDocsSearchResultListItem {...props} {...config} />\n );\n },\n });\n },\n });\n\n/**\n * Responsible for rendering the provided router element\n *\n * @alpha\n */\nconst techDocsPage = PageBlueprint.make({\n params: {\n path: '/docs',\n routeRef: rootRouteRef,\n loader: () =>\n import('../home/components/TechDocsIndexPage').then(m => (\n <m.TechDocsIndexPage />\n )),\n },\n});\n\n/**\n * Component responsible for composing a TechDocs reader page experience\n *\n * @alpha\n */\nconst techDocsReaderPage = PageBlueprint.makeWithOverrides({\n name: 'reader',\n inputs: {\n addons: createExtensionInput([AddonBlueprint.dataRefs.addon]),\n },\n factory(originalFactory, { inputs }) {\n const addons = inputs.addons.map(output => {\n const options = output.get(AddonBlueprint.dataRefs.addon);\n const Addon = options.component;\n attachTechDocsAddonComponentData(Addon, options);\n return <Addon key={options.name} />;\n });\n\n return originalFactory({\n path: '/docs/:namespace/:kind/:name',\n routeRef: rootDocsRouteRef,\n loader: async () =>\n await import('../Router').then(({ TechDocsReaderRouter }) => (\n <TechDocsReaderRouter>\n <TechDocsReaderLayout />\n <TechDocsAddons>{addons}</TechDocsAddons>\n </TechDocsReaderRouter>\n )),\n });\n },\n});\n\n/**\n * Component responsible for rendering techdocs on entity pages\n *\n * @alpha\n */\nconst techDocsEntityContent = EntityContentBlueprint.makeWithOverrides({\n inputs: {\n addons: createExtensionInput([AddonBlueprint.dataRefs.addon]),\n emptyState: createExtensionInput(\n [coreExtensionData.reactElement.optional()],\n {\n singleton: true,\n optional: true,\n },\n ),\n },\n factory(originalFactory, context) {\n return originalFactory(\n {\n path: 'docs',\n title: 'TechDocs',\n routeRef: rootCatalogDocsRouteRef,\n loader: () =>\n import('../Router').then(({ EmbeddedDocsRouter }) => {\n const addons = context.inputs.addons.map(output => {\n const options = output.get(AddonBlueprint.dataRefs.addon);\n const Addon = options.component;\n attachTechDocsAddonComponentData(Addon, options);\n return <Addon key={options.name} />;\n });\n return (\n <EmbeddedDocsRouter\n emptyState={context.inputs.emptyState?.get(\n coreExtensionData.reactElement,\n )}\n >\n <TechDocsAddons>{addons}</TechDocsAddons>\n </EmbeddedDocsRouter>\n );\n }),\n },\n context,\n );\n },\n});\n\nconst techDocsEntityContentEmptyState = createExtension({\n kind: 'empty-state',\n name: 'entity-content',\n attachTo: { id: 'entity-content:techdocs', input: 'emptyState' },\n output: [coreExtensionData.reactElement.optional()],\n factory: () => [],\n});\n\n/** @alpha */\nconst techDocsNavItem = NavItemBlueprint.make({\n params: {\n icon: LibraryBooks,\n title: 'Docs',\n routeRef: rootRouteRef,\n },\n});\n\n/** @alpha */\nexport default createFrontendPlugin({\n pluginId: 'techdocs',\n info: { packageJson: () => import('../../package.json') },\n extensions: [\n techDocsClientApi,\n techDocsStorageApi,\n techDocsNavItem,\n techDocsPage,\n techDocsReaderPage,\n techdocsEntityIconLink,\n techDocsEntityContent,\n techDocsEntityContentEmptyState,\n techDocsSearchResultListItemExtension,\n ],\n routes: {\n root: rootRouteRef,\n docRoot: rootDocsRouteRef,\n entityContent: rootCatalogDocsRouteRef,\n },\n});\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"alpha.esm.js","sources":["../src/alpha/index.tsx"],"sourcesContent":["/*\n * Copyright 2023 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Suspense } from 'react';\nimport LibraryBooks from '@material-ui/icons/LibraryBooks';\nimport {\n createFrontendPlugin,\n ApiBlueprint,\n PageBlueprint,\n NavItemBlueprint,\n createExtensionInput,\n coreExtensionData,\n createExtension,\n} from '@backstage/frontend-plugin-api';\nimport {\n configApiRef,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n EntityContentBlueprint,\n EntityIconLinkBlueprint,\n} from '@backstage/plugin-catalog-react/alpha';\nimport { SearchResultListItemBlueprint } from '@backstage/plugin-search-react/alpha';\nimport {\n AddonBlueprint,\n attachTechDocsAddonComponentData,\n} from '@backstage/plugin-techdocs-react/alpha';\nimport { TechDocsAddonsApiExtension, techdocsAddonsApiRef } from './addonsApi';\nimport { TechDocsClient, TechDocsStorageClient } from '../client';\nimport {\n rootCatalogDocsRouteRef,\n rootDocsRouteRef,\n rootRouteRef,\n} from '../routes';\nimport { TechDocsReaderLayout } from '../reader';\nimport {\n TechDocsAddons,\n techdocsApiRef,\n techdocsStorageApiRef,\n} from '@backstage/plugin-techdocs-react';\n\nimport { useTechdocsReaderIconLinkProps } from './hooks/useTechdocsReaderIconLinkProps';\nimport { DocsIcon } from '@backstage/core-components';\n\n/** @alpha */\nconst techdocsEntityIconLink = EntityIconLinkBlueprint.make({\n name: 'read-docs',\n params: {\n useProps: useTechdocsReaderIconLinkProps,\n },\n});\n\n/** @alpha */\nconst techDocsStorageApi = ApiBlueprint.make({\n name: 'storage',\n params: defineParams =>\n defineParams({\n api: techdocsStorageApiRef,\n deps: {\n configApi: configApiRef,\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, discoveryApi, fetchApi }) =>\n new TechDocsStorageClient({\n configApi,\n discoveryApi,\n fetchApi,\n }),\n }),\n});\n\n/** @alpha */\nconst techDocsClientApi = ApiBlueprint.make({\n params: defineParams =>\n defineParams({\n api: techdocsApiRef,\n deps: {\n configApi: configApiRef,\n discoveryApi: discoveryApiRef,\n fetchApi: fetchApiRef,\n },\n factory: ({ configApi, discoveryApi, fetchApi }) =>\n new TechDocsClient({\n configApi,\n discoveryApi,\n fetchApi,\n }),\n }),\n});\n\n/** @alpha */\nexport const techDocsSearchResultListItemExtension =\n SearchResultListItemBlueprint.makeWithOverrides({\n config: {\n schema: {\n title: z => z.string().optional(),\n lineClamp: z => z.number().default(5),\n asLink: z => z.boolean().default(true),\n asListItem: z => z.boolean().default(true),\n },\n },\n factory(originalFactory, { config }) {\n return originalFactory({\n icon: <DocsIcon />,\n predicate: result => result.type === 'techdocs',\n component: async () => {\n const { TechDocsSearchResultListItem } = await import(\n '../search/components/TechDocsSearchResultListItem'\n );\n return props => (\n <TechDocsSearchResultListItem {...props} {...config} />\n );\n },\n });\n },\n });\n\n/**\n * Responsible for rendering the provided router element\n *\n * @alpha\n */\nconst techDocsPage = PageBlueprint.make({\n params: {\n path: '/docs',\n routeRef: rootRouteRef,\n loader: () =>\n import('../home/components/TechDocsIndexPage').then(m => (\n <m.TechDocsIndexPage />\n )),\n },\n});\n\n/**\n * Component responsible for composing a TechDocs reader page experience\n *\n * @alpha\n */\nconst techDocsReaderPage = PageBlueprint.makeWithOverrides({\n name: 'reader',\n inputs: {\n addons: createExtensionInput([AddonBlueprint.dataRefs.addon]),\n },\n factory(originalFactory, { apis, inputs }) {\n const addonsApi = apis.get(techdocsAddonsApiRef);\n\n return originalFactory({\n path: '/docs/:namespace/:kind/:name',\n routeRef: rootDocsRouteRef,\n loader: async () => {\n // Merge addons from the API with old-style direct attachments\n const apiAddons = addonsApi?.getAddons() ?? [];\n const directAddons = inputs.addons.map(output =>\n output.get(AddonBlueprint.dataRefs.addon),\n );\n const addonOptions = [...apiAddons, ...directAddons];\n\n const addons = addonOptions.map(options => {\n const Addon = options.component;\n attachTechDocsAddonComponentData(Addon, options);\n return (\n <Suspense key={options.name} fallback={null}>\n <Addon />\n </Suspense>\n );\n });\n\n return import('../Router').then(({ TechDocsReaderRouter }) => (\n <TechDocsReaderRouter>\n <TechDocsReaderLayout />\n <TechDocsAddons>{addons}</TechDocsAddons>\n </TechDocsReaderRouter>\n ));\n },\n });\n },\n});\n\n/**\n * Component responsible for rendering techdocs on entity pages\n *\n * @alpha\n */\nconst techDocsEntityContent = EntityContentBlueprint.makeWithOverrides({\n inputs: {\n addons: createExtensionInput([AddonBlueprint.dataRefs.addon]),\n emptyState: createExtensionInput(\n [coreExtensionData.reactElement.optional()],\n {\n singleton: true,\n optional: true,\n },\n ),\n },\n factory(originalFactory, context) {\n const addonsApi = context.apis.get(techdocsAddonsApiRef);\n\n return originalFactory(\n {\n path: 'docs',\n title: 'TechDocs',\n routeRef: rootCatalogDocsRouteRef,\n loader: () => {\n // Merge addons from the API with old-style direct attachments\n const apiAddons = addonsApi?.getAddons() ?? [];\n const directAddons = context.inputs.addons.map(output =>\n output.get(AddonBlueprint.dataRefs.addon),\n );\n const addonOptions = [...apiAddons, ...directAddons];\n\n const addons = addonOptions.map(options => {\n const Addon = options.component;\n attachTechDocsAddonComponentData(Addon, options);\n return (\n <Suspense key={options.name} fallback={null}>\n <Addon />\n </Suspense>\n );\n });\n\n return import('../Router').then(({ EmbeddedDocsRouter }) => (\n <EmbeddedDocsRouter\n emptyState={context.inputs.emptyState?.get(\n coreExtensionData.reactElement,\n )}\n >\n <TechDocsAddons>{addons}</TechDocsAddons>\n </EmbeddedDocsRouter>\n ));\n },\n },\n context,\n );\n },\n});\n\nconst techDocsEntityContentEmptyState = createExtension({\n kind: 'empty-state',\n name: 'entity-content',\n attachTo: { id: 'entity-content:techdocs', input: 'emptyState' },\n output: [coreExtensionData.reactElement.optional()],\n factory: () => [],\n});\n\n/** @alpha */\nconst techDocsNavItem = NavItemBlueprint.make({\n params: {\n icon: LibraryBooks,\n title: 'Docs',\n routeRef: rootRouteRef,\n },\n});\n\n/** @alpha */\nexport default createFrontendPlugin({\n pluginId: 'techdocs',\n info: { packageJson: () => import('../../package.json') },\n extensions: [\n techDocsClientApi,\n techDocsStorageApi,\n TechDocsAddonsApiExtension,\n techDocsNavItem,\n techDocsPage,\n techDocsReaderPage,\n techdocsEntityIconLink,\n techDocsEntityContent,\n techDocsEntityContentEmptyState,\n techDocsSearchResultListItemExtension,\n ],\n routes: {\n root: rootRouteRef,\n docRoot: rootDocsRouteRef,\n entityContent: rootCatalogDocsRouteRef,\n },\n});\n"],"names":[],"mappings":"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"}
|
package/dist/package.json.esm.js
CHANGED
|
@@ -62,15 +62,12 @@ var layout = ({ theme, sidebar }) => `
|
|
|
62
62
|
bottom: 75px;
|
|
63
63
|
position: fixed;
|
|
64
64
|
width: 16rem;
|
|
65
|
-
overflow-y: auto;
|
|
66
|
-
overflow-x: hidden;
|
|
67
|
-
scrollbar-color: rgb(193, 193, 193) #eee;
|
|
68
|
-
scrollbar-width: thin;
|
|
69
65
|
}
|
|
70
66
|
.md-sidebar .md-sidebar__scrollwrap {
|
|
71
67
|
width: calc(16rem);
|
|
72
|
-
|
|
68
|
+
height: 100%
|
|
73
69
|
}
|
|
70
|
+
|
|
74
71
|
@supports selector(::-webkit-scrollbar) {
|
|
75
72
|
[dir=ltr] .md-sidebar__inner {
|
|
76
73
|
padding-right: calc(100% - 15.1rem);
|
|
@@ -79,28 +76,6 @@ var layout = ({ theme, sidebar }) => `
|
|
|
79
76
|
.md-sidebar--secondary {
|
|
80
77
|
right: ${theme.spacing(3)}px;
|
|
81
78
|
}
|
|
82
|
-
.md-sidebar::-webkit-scrollbar {
|
|
83
|
-
width: 5px;
|
|
84
|
-
}
|
|
85
|
-
.md-sidebar::-webkit-scrollbar-button {
|
|
86
|
-
width: 5px;
|
|
87
|
-
height: 5px;
|
|
88
|
-
}
|
|
89
|
-
.md-sidebar::-webkit-scrollbar-track {
|
|
90
|
-
background: #eee;
|
|
91
|
-
border: 1 px solid rgb(250, 250, 250);
|
|
92
|
-
box-shadow: 0px 0px 3px #dfdfdf inset;
|
|
93
|
-
border-radius: 3px;
|
|
94
|
-
}
|
|
95
|
-
.md-sidebar::-webkit-scrollbar-thumb {
|
|
96
|
-
width: 5px;
|
|
97
|
-
background: rgb(193, 193, 193);
|
|
98
|
-
border: transparent;
|
|
99
|
-
border-radius: 3px;
|
|
100
|
-
}
|
|
101
|
-
.md-sidebar::-webkit-scrollbar-thumb:hover {
|
|
102
|
-
background: rgb(125, 125, 125);
|
|
103
|
-
}
|
|
104
79
|
|
|
105
80
|
.md-content {
|
|
106
81
|
max-width: calc(100% - 16rem * 2);
|
|
@@ -136,6 +111,8 @@ var layout = ({ theme, sidebar }) => `
|
|
|
136
111
|
@media screen and (min-width: 76.25em) {
|
|
137
112
|
.md-sidebar {
|
|
138
113
|
height: auto;
|
|
114
|
+
/* Less padding before the Previous / Next buttons */
|
|
115
|
+
padding-bottom: 0 !important;
|
|
139
116
|
}
|
|
140
117
|
}
|
|
141
118
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.esm.js","sources":["../../../../../src/reader/transformers/styles/rules/layout.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RuleOptions } from './types';\n\nconst SIDEBAR_WIDTH = '224px';\n\nexport default ({ theme, sidebar }: RuleOptions) => `\n\n/*================== Layout ==================*/\n\n/* mkdocs material v9 compat */\n.md-nav__title {\n color: var(--md-default-fg-color);\n}\n\n.md-grid {\n max-width: 100%;\n margin: 0;\n}\n\n.md-nav {\n font-size: calc(var(--md-typeset-font-size) * 0.9);\n}\n.md-nav__link:not(:has(svg)) {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.md-nav__link:has(svg) > .md-ellipsis {\n flex-grow: 1;\n}\n.md-nav__icon {\n height: 20px !important;\n width: 20px !important;\n margin-left:${theme.spacing(1)}px;\n}\n.md-nav__icon svg {\n margin: 0;\n width: 20px !important;\n height: 20px !important;\n}\n.md-nav__icon:after {\n width: 20px !important;\n height: 20px !important;\n}\n.md-status--updated::after {\n -webkit-mask-image: var(--md-status--updated);\n mask-image: var(--md-status--updated);\n}\n\n.md-nav__item--active > .md-nav__link, a.md-nav__link--active {\n text-decoration: underline;\n color: var(--md-typeset-a-color);\n}\n.md-nav__link--active > .md-status:after {\n background-color: var(--md-typeset-a-color);\n}\n.md-nav__link[href]:hover > .md-status:after {\n background-color: var(--md-accent-fg-color);\n}\n\n.md-main__inner {\n margin-top: 0;\n}\n\n.md-sidebar {\n bottom: 75px;\n position: fixed;\n width: 16rem;\n
|
|
1
|
+
{"version":3,"file":"layout.esm.js","sources":["../../../../../src/reader/transformers/styles/rules/layout.ts"],"sourcesContent":["/*\n * Copyright 2022 The Backstage Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { RuleOptions } from './types';\n\nconst SIDEBAR_WIDTH = '224px';\n\nexport default ({ theme, sidebar }: RuleOptions) => `\n\n/*================== Layout ==================*/\n\n/* mkdocs material v9 compat */\n.md-nav__title {\n color: var(--md-default-fg-color);\n}\n\n.md-grid {\n max-width: 100%;\n margin: 0;\n}\n\n.md-nav {\n font-size: calc(var(--md-typeset-font-size) * 0.9);\n}\n.md-nav__link:not(:has(svg)) {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n.md-nav__link:has(svg) > .md-ellipsis {\n flex-grow: 1;\n}\n.md-nav__icon {\n height: 20px !important;\n width: 20px !important;\n margin-left:${theme.spacing(1)}px;\n}\n.md-nav__icon svg {\n margin: 0;\n width: 20px !important;\n height: 20px !important;\n}\n.md-nav__icon:after {\n width: 20px !important;\n height: 20px !important;\n}\n.md-status--updated::after {\n -webkit-mask-image: var(--md-status--updated);\n mask-image: var(--md-status--updated);\n}\n\n.md-nav__item--active > .md-nav__link, a.md-nav__link--active {\n text-decoration: underline;\n color: var(--md-typeset-a-color);\n}\n.md-nav__link--active > .md-status:after {\n background-color: var(--md-typeset-a-color);\n}\n.md-nav__link[href]:hover > .md-status:after {\n background-color: var(--md-accent-fg-color);\n}\n\n.md-main__inner {\n margin-top: 0;\n}\n\n.md-sidebar {\n bottom: 75px;\n position: fixed;\n width: 16rem;\n}\n.md-sidebar .md-sidebar__scrollwrap {\n width: calc(16rem);\n height: 100%\n}\n\n@supports selector(::-webkit-scrollbar) {\n [dir=ltr] .md-sidebar__inner {\n padding-right: calc(100% - 15.1rem);\n }\n}\n.md-sidebar--secondary {\n right: ${theme.spacing(3)}px;\n}\n\n.md-content {\n max-width: calc(100% - 16rem * 2);\n margin-left: 16rem;\n margin-bottom: 50px;\n}\n\n.md-content > .md-sidebar {\n left: 16rem;\n}\n\n.md-footer {\n position: fixed;\n bottom: 0px;\n pointer-events: none;\n}\n\n.md-footer-nav__link, .md-footer__link {\n pointer-events: all;\n}\n\n.md-footer__title {\n background-color: unset;\n}\n.md-footer-nav__link, .md-footer__link {\n width: 16rem;\n}\n\n.md-dialog {\n background-color: unset;\n}\n\n@media screen and (min-width: 76.25em) {\n .md-sidebar {\n height: auto;\n /* Less padding before the Previous / Next buttons */\n padding-bottom: 0 !important;\n }\n}\n\n@media screen and (max-width: 76.1875em) {\n .md-nav {\n transition: none !important;\n background-color: var(--md-default-bg-color)\n }\n .md-nav--primary .md-nav__title {\n cursor: auto;\n color: var(--md-default-fg-color);\n font-weight: 700;\n white-space: normal;\n line-height: 1rem;\n height: auto;\n display: flex;\n flex-flow: column;\n row-gap: 1.6rem;\n padding: 1.2rem .8rem .8rem;\n background-color: var(--md-default-bg-color);\n }\n .md-nav--primary .md-nav__title~.md-nav__list {\n box-shadow: none;\n }\n .md-nav--primary .md-nav__title ~ .md-nav__list > :first-child {\n border-top: none;\n }\n .md-nav--primary .md-nav__title .md-nav__button {\n display: none;\n }\n .md-nav--primary .md-nav__title .md-nav__icon {\n color: var(--md-default-fg-color);\n position: static;\n height: auto;\n margin: 0 0 0 -0.2rem;\n }\n .md-nav--primary > .md-nav__title [for=\"none\"] {\n padding-top: 0;\n }\n .md-nav--primary .md-nav__item {\n border-top: none;\n }\n .md-nav--primary :is(.md-nav__title,.md-nav__item) {\n font-size : var(--md-typeset-font-size);\n }\n .md-nav .md-source {\n display: none;\n }\n\n .md-sidebar {\n height: 100%;\n }\n .md-sidebar--primary {\n width: 16rem !important;\n z-index: 200;\n left: ${\n sidebar.isPinned\n ? `calc(-16rem + ${SIDEBAR_WIDTH})`\n : 'calc(-16rem + 72px)'\n } !important;\n }\n .md-sidebar--secondary:not([hidden]) {\n display: none;\n }\n\n [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary {\n transform: translateX(16rem);\n }\n\n .md-content {\n max-width: 100%;\n margin-left: 0;\n }\n\n .md-header__button {\n margin: 0.4rem 0;\n margin-left: 0.4rem;\n padding: 0;\n }\n\n .md-overlay {\n left: 0;\n }\n\n .md-footer {\n position: static;\n padding-left: 0;\n }\n .md-footer-nav__link {\n /* footer links begin to overlap at small sizes without setting width */\n width: 50%;\n }\n}\n\n@media screen and (max-width: 600px) {\n .md-sidebar--primary {\n left: -16rem !important;\n width: 16rem;\n }\n}\n\n\n@media print {\n .md-sidebar,\n #toggle-sidebar {\n display: none;\n }\n\n .md-content {\n margin: 0;\n width: 100%;\n max-width: 100%;\n }\n}\n`;\n"],"names":[],"mappings":"AAkBA,MAAM,aAAA,GAAgB,OAAA;AAEtB,aAAe,CAAC,EAAE,KAAA,EAAO,OAAA,EAAQ,KAAmB;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EA4BpC,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAA,EA+CrB,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAAA,EA+FrB,OAAA,CAAQ,QAAA,GACJ,CAAA,cAAA,EAAiB,aAAa,MAC9B,qBACN,CAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@backstage/plugin-techdocs",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.3-next.0",
|
|
4
4
|
"description": "The Backstage plugin that renders technical documentation for your components",
|
|
5
5
|
"backstage": {
|
|
6
6
|
"role": "frontend-plugin",
|
|
@@ -71,22 +71,22 @@
|
|
|
71
71
|
"test": "backstage-cli package test"
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@backstage/catalog-client": "
|
|
75
|
-
"@backstage/catalog-model": "
|
|
76
|
-
"@backstage/config": "
|
|
77
|
-
"@backstage/core-components": "
|
|
78
|
-
"@backstage/core-plugin-api": "
|
|
79
|
-
"@backstage/errors": "
|
|
80
|
-
"@backstage/frontend-plugin-api": "
|
|
81
|
-
"@backstage/integration": "
|
|
82
|
-
"@backstage/integration-react": "
|
|
83
|
-
"@backstage/plugin-auth-react": "
|
|
84
|
-
"@backstage/plugin-catalog-react": "
|
|
85
|
-
"@backstage/plugin-search-common": "
|
|
86
|
-
"@backstage/plugin-search-react": "
|
|
87
|
-
"@backstage/plugin-techdocs-common": "
|
|
88
|
-
"@backstage/plugin-techdocs-react": "
|
|
89
|
-
"@backstage/theme": "
|
|
74
|
+
"@backstage/catalog-client": "1.12.1",
|
|
75
|
+
"@backstage/catalog-model": "1.7.6",
|
|
76
|
+
"@backstage/config": "1.3.6",
|
|
77
|
+
"@backstage/core-components": "0.18.6-next.0",
|
|
78
|
+
"@backstage/core-plugin-api": "1.12.2-next.0",
|
|
79
|
+
"@backstage/errors": "1.2.7",
|
|
80
|
+
"@backstage/frontend-plugin-api": "0.14.0-next.0",
|
|
81
|
+
"@backstage/integration": "1.19.3-next.0",
|
|
82
|
+
"@backstage/integration-react": "1.2.15-next.0",
|
|
83
|
+
"@backstage/plugin-auth-react": "0.1.24-next.0",
|
|
84
|
+
"@backstage/plugin-catalog-react": "1.21.6-next.0",
|
|
85
|
+
"@backstage/plugin-search-common": "1.2.22-next.0",
|
|
86
|
+
"@backstage/plugin-search-react": "1.10.3-next.0",
|
|
87
|
+
"@backstage/plugin-techdocs-common": "0.1.1",
|
|
88
|
+
"@backstage/plugin-techdocs-react": "1.3.8-next.0",
|
|
89
|
+
"@backstage/theme": "0.7.1",
|
|
90
90
|
"@material-ui/core": "^4.12.2",
|
|
91
91
|
"@material-ui/icons": "^4.9.1",
|
|
92
92
|
"@material-ui/lab": "4.0.0-alpha.61",
|
|
@@ -99,12 +99,12 @@
|
|
|
99
99
|
"react-use": "^17.2.4"
|
|
100
100
|
},
|
|
101
101
|
"devDependencies": {
|
|
102
|
-
"@backstage/cli": "
|
|
103
|
-
"@backstage/core-app-api": "
|
|
104
|
-
"@backstage/dev-utils": "
|
|
105
|
-
"@backstage/plugin-catalog": "
|
|
106
|
-
"@backstage/plugin-techdocs-module-addons-contrib": "
|
|
107
|
-
"@backstage/test-utils": "
|
|
102
|
+
"@backstage/cli": "0.35.3-next.0",
|
|
103
|
+
"@backstage/core-app-api": "1.19.4-next.0",
|
|
104
|
+
"@backstage/dev-utils": "1.1.20-next.0",
|
|
105
|
+
"@backstage/plugin-catalog": "1.32.3-next.0",
|
|
106
|
+
"@backstage/plugin-techdocs-module-addons-contrib": "1.1.33-next.0",
|
|
107
|
+
"@backstage/test-utils": "1.7.15-next.0",
|
|
108
108
|
"@testing-library/dom": "^10.0.0",
|
|
109
109
|
"@testing-library/jest-dom": "^6.0.0",
|
|
110
110
|
"@testing-library/react": "^16.0.0",
|