@backstage/plugin-techdocs 1.12.5-next.0 → 1.12.5-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/EntityPageDocs.esm.js +11 -8
  3. package/dist/EntityPageDocs.esm.js.map +1 -1
  4. package/dist/Router.esm.js +15 -12
  5. package/dist/Router.esm.js.map +1 -1
  6. package/dist/alpha.d.ts +6 -6
  7. package/dist/alpha.esm.js +14 -10
  8. package/dist/alpha.esm.js.map +1 -1
  9. package/dist/home/components/DefaultTechDocsHome.esm.js +21 -10
  10. package/dist/home/components/DefaultTechDocsHome.esm.js.map +1 -1
  11. package/dist/home/components/Grids/DocsCardGrid.esm.js +26 -22
  12. package/dist/home/components/Grids/DocsCardGrid.esm.js.map +1 -1
  13. package/dist/home/components/Grids/EntityListDocsGrid.esm.js +22 -14
  14. package/dist/home/components/Grids/EntityListDocsGrid.esm.js.map +1 -1
  15. package/dist/home/components/Grids/InfoCardGrid.esm.js +19 -17
  16. package/dist/home/components/Grids/InfoCardGrid.esm.js.map +1 -1
  17. package/dist/home/components/Tables/CursorPaginatedDocsTable.esm.js +2 -2
  18. package/dist/home/components/Tables/CursorPaginatedDocsTable.esm.js.map +1 -1
  19. package/dist/home/components/Tables/DocsTable.esm.js +8 -8
  20. package/dist/home/components/Tables/DocsTable.esm.js.map +1 -1
  21. package/dist/home/components/Tables/EntityListDocsTable.esm.js +8 -8
  22. package/dist/home/components/Tables/EntityListDocsTable.esm.js.map +1 -1
  23. package/dist/home/components/Tables/OffsetPaginatedDocsTable.esm.js +4 -3
  24. package/dist/home/components/Tables/OffsetPaginatedDocsTable.esm.js.map +1 -1
  25. package/dist/home/components/Tables/actions.esm.js +3 -3
  26. package/dist/home/components/Tables/actions.esm.js.map +1 -1
  27. package/dist/home/components/Tables/columns.esm.js +4 -4
  28. package/dist/home/components/Tables/columns.esm.js.map +1 -1
  29. package/dist/home/components/TechDocsCustomHome.esm.js +41 -34
  30. package/dist/home/components/TechDocsCustomHome.esm.js.map +1 -1
  31. package/dist/home/components/TechDocsIndexPage.esm.js +2 -2
  32. package/dist/home/components/TechDocsIndexPage.esm.js.map +1 -1
  33. package/dist/home/components/TechDocsPageWrapper.esm.js +6 -6
  34. package/dist/home/components/TechDocsPageWrapper.esm.js.map +1 -1
  35. package/dist/index.d.ts +39 -38
  36. package/dist/reader/components/TechDocsBuildLogs.esm.js +48 -40
  37. package/dist/reader/components/TechDocsBuildLogs.esm.js.map +1 -1
  38. package/dist/reader/components/TechDocsNotFound.esm.js +3 -2
  39. package/dist/reader/components/TechDocsNotFound.esm.js.map +1 -1
  40. package/dist/reader/components/TechDocsReaderPage/TechDocsReaderPage.esm.js +18 -13
  41. package/dist/reader/components/TechDocsReaderPage/TechDocsReaderPage.esm.js.map +1 -1
  42. package/dist/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.esm.js +19 -11
  43. package/dist/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.esm.js.map +1 -1
  44. package/dist/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContentAddons.esm.js +6 -2
  45. package/dist/reader/components/TechDocsReaderPageContent/TechDocsReaderPageContentAddons.esm.js.map +1 -1
  46. package/dist/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.esm.js +55 -44
  47. package/dist/reader/components/TechDocsReaderPageHeader/TechDocsReaderPageHeader.esm.js.map +1 -1
  48. package/dist/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.esm.js +33 -27
  49. package/dist/reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.esm.js.map +1 -1
  50. package/dist/reader/components/TechDocsReaderProvider.esm.js +4 -3
  51. package/dist/reader/components/TechDocsReaderProvider.esm.js.map +1 -1
  52. package/dist/reader/components/TechDocsRedirectNotification/TechDocsRedirectNotification.esm.js +7 -6
  53. package/dist/reader/components/TechDocsRedirectNotification/TechDocsRedirectNotification.esm.js.map +1 -1
  54. package/dist/reader/components/TechDocsStateIndicator.esm.js +43 -36
  55. package/dist/reader/components/TechDocsStateIndicator.esm.js.map +1 -1
  56. package/dist/reader/transformers/addGitFeedbackLink.esm.js +2 -2
  57. package/dist/reader/transformers/addGitFeedbackLink.esm.js.map +1 -1
  58. package/dist/reader/transformers/addSidebarToggle.esm.js +2 -2
  59. package/dist/reader/transformers/addSidebarToggle.esm.js.map +1 -1
  60. package/dist/reader/transformers/copyToClipboard.esm.js +16 -15
  61. package/dist/reader/transformers/copyToClipboard.esm.js.map +1 -1
  62. package/dist/reader/transformers/handleMetaRedirects.esm.js +2 -2
  63. package/dist/reader/transformers/handleMetaRedirects.esm.js.map +1 -1
  64. package/dist/search/components/TechDocsSearch.esm.js +5 -4
  65. package/dist/search/components/TechDocsSearch.esm.js.map +1 -1
  66. package/dist/search/components/TechDocsSearchResultListItem.esm.js +28 -20
  67. package/dist/search/components/TechDocsSearchResultListItem.esm.js.map +1 -1
  68. package/package.json +21 -21
package/CHANGELOG.md CHANGED
@@ -1,5 +1,55 @@
1
1
  # @backstage/plugin-techdocs
2
2
 
3
+ ## 1.12.5-next.2
4
+
5
+ ### Patch Changes
6
+
7
+ - a47fd39: Removes instances of default React imports, a necessary update for the upcoming React 19 migration.
8
+
9
+ <https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html>
10
+
11
+ - Updated dependencies
12
+ - @backstage/frontend-plugin-api@0.10.1-next.1
13
+ - @backstage/integration-react@1.2.6-next.1
14
+ - @backstage/core-compat-api@0.4.1-next.2
15
+ - @backstage/core-components@0.17.1-next.1
16
+ - @backstage/core-plugin-api@1.10.6-next.0
17
+ - @backstage/plugin-techdocs-react@1.2.16-next.1
18
+ - @backstage/plugin-catalog-react@1.17.0-next.2
19
+ - @backstage/plugin-search-react@1.8.8-next.1
20
+ - @backstage/plugin-auth-react@0.1.14-next.1
21
+ - @backstage/theme@0.6.5-next.0
22
+ - @backstage/catalog-client@1.9.1
23
+ - @backstage/catalog-model@1.7.3
24
+ - @backstage/config@1.3.2
25
+ - @backstage/errors@1.2.7
26
+ - @backstage/integration@1.16.3-next.0
27
+ - @backstage/plugin-search-common@1.2.17
28
+ - @backstage/plugin-techdocs-common@0.1.0
29
+
30
+ ## 1.12.5-next.1
31
+
32
+ ### Patch Changes
33
+
34
+ - Updated dependencies
35
+ - @backstage/plugin-techdocs-react@1.2.16-next.0
36
+ - @backstage/core-components@0.17.1-next.0
37
+ - @backstage/integration-react@1.2.6-next.0
38
+ - @backstage/integration@1.16.3-next.0
39
+ - @backstage/frontend-plugin-api@0.10.1-next.0
40
+ - @backstage/plugin-auth-react@0.1.14-next.0
41
+ - @backstage/plugin-catalog-react@1.16.1-next.1
42
+ - @backstage/plugin-search-react@1.8.8-next.0
43
+ - @backstage/core-compat-api@0.4.1-next.1
44
+ - @backstage/catalog-client@1.9.1
45
+ - @backstage/catalog-model@1.7.3
46
+ - @backstage/config@1.3.2
47
+ - @backstage/core-plugin-api@1.10.5
48
+ - @backstage/errors@1.2.7
49
+ - @backstage/theme@0.6.4
50
+ - @backstage/plugin-search-common@1.2.17
51
+ - @backstage/plugin-techdocs-common@0.1.0
52
+
3
53
  ## 1.12.5-next.0
4
54
 
5
55
  ### Patch Changes
@@ -1,6 +1,6 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
1
2
  import { getCompoundEntityRef, parseEntityRef } from '@backstage/catalog-model';
2
3
  import { TECHDOCS_EXTERNAL_ANNOTATION } from '@backstage/plugin-techdocs-common';
3
- import React from 'react';
4
4
  import { TechDocsReaderPage } from './plugin.esm.js';
5
5
  import { TechDocsReaderPageContent } from './reader/components/TechDocsReaderPageContent/TechDocsReaderPageContent.esm.js';
6
6
  import { TechDocsReaderPageSubheader } from './reader/components/TechDocsReaderPageSubheader/TechDocsReaderPageSubheader.esm.js';
@@ -20,13 +20,16 @@ const EntityPageDocs = ({
20
20
  } catch {
21
21
  }
22
22
  }
23
- return /* @__PURE__ */ React.createElement(TechDocsReaderPage, { entityRef }, /* @__PURE__ */ React.createElement(TechDocsReaderPageSubheader, null), /* @__PURE__ */ React.createElement(
24
- TechDocsReaderPageContent,
25
- {
26
- withSearch,
27
- searchResultUrlMapper
28
- }
29
- ));
23
+ return /* @__PURE__ */ jsxs(TechDocsReaderPage, { entityRef, children: [
24
+ /* @__PURE__ */ jsx(TechDocsReaderPageSubheader, {}),
25
+ /* @__PURE__ */ jsx(
26
+ TechDocsReaderPageContent,
27
+ {
28
+ withSearch,
29
+ searchResultUrlMapper
30
+ }
31
+ )
32
+ ] });
30
33
  };
31
34
 
32
35
  export { EntityPageDocs };
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPageDocs.esm.js","sources":["../src/EntityPageDocs.tsx"],"sourcesContent":["/*\n * Copyright 2020 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 Entity,\n getCompoundEntityRef,\n parseEntityRef,\n} from '@backstage/catalog-model';\nimport { TECHDOCS_EXTERNAL_ANNOTATION } from '@backstage/plugin-techdocs-common';\n\nimport React from 'react';\nimport { TechDocsReaderPage } from './plugin';\nimport { TechDocsReaderPageContent } from './reader/components/TechDocsReaderPageContent';\nimport { TechDocsReaderPageSubheader } from './reader/components/TechDocsReaderPageSubheader';\nimport { useEntityPageTechDocsRedirect } from './search/hooks/useTechDocsLocation';\n\ntype EntityPageDocsProps = {\n entity: Entity;\n /**\n * Show or hide the content search bar, defaults to true.\n */\n withSearch?: boolean;\n};\n\nexport const EntityPageDocs = ({\n entity,\n withSearch = true,\n}: EntityPageDocsProps) => {\n let entityRef = getCompoundEntityRef(entity);\n\n const searchResultUrlMapper = useEntityPageTechDocsRedirect(entityRef);\n\n if (entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION]) {\n try {\n entityRef = parseEntityRef(\n entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION],\n );\n } catch {\n // not a fan of this but we don't care if the parseEntityRef fails\n }\n }\n\n return (\n <TechDocsReaderPage entityRef={entityRef}>\n <TechDocsReaderPageSubheader />\n <TechDocsReaderPageContent\n withSearch={withSearch}\n searchResultUrlMapper={searchResultUrlMapper}\n />\n </TechDocsReaderPage>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAqCO,MAAM,iBAAiB,CAAC;AAAA,EAC7B,MAAA;AAAA,EACA,UAAa,GAAA;AACf,CAA2B,KAAA;AACzB,EAAI,IAAA,SAAA,GAAY,qBAAqB,MAAM,CAAA;AAE3C,EAAM,MAAA,qBAAA,GAAwB,8BAA8B,SAAS,CAAA;AAErE,EAAA,IAAI,MAAO,CAAA,QAAA,CAAS,WAAc,GAAA,4BAA4B,CAAG,EAAA;AAC/D,IAAI,IAAA;AACF,MAAY,SAAA,GAAA,cAAA;AAAA,QACV,MAAA,CAAO,QAAS,CAAA,WAAA,GAAc,4BAA4B;AAAA,OAC5D;AAAA,KACM,CAAA,MAAA;AAAA;AAER;AAGF,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,kBAAA,EAAA,EAAmB,SAClB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,iCAA4B,CAC7B,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,UAAA;AAAA,MACA;AAAA;AAAA,GAEJ,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"EntityPageDocs.esm.js","sources":["../src/EntityPageDocs.tsx"],"sourcesContent":["/*\n * Copyright 2020 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 Entity,\n getCompoundEntityRef,\n parseEntityRef,\n} from '@backstage/catalog-model';\nimport { TECHDOCS_EXTERNAL_ANNOTATION } from '@backstage/plugin-techdocs-common';\n\nimport { TechDocsReaderPage } from './plugin';\nimport { TechDocsReaderPageContent } from './reader/components/TechDocsReaderPageContent';\nimport { TechDocsReaderPageSubheader } from './reader/components/TechDocsReaderPageSubheader';\nimport { useEntityPageTechDocsRedirect } from './search/hooks/useTechDocsLocation';\n\ntype EntityPageDocsProps = {\n entity: Entity;\n /**\n * Show or hide the content search bar, defaults to true.\n */\n withSearch?: boolean;\n};\n\nexport const EntityPageDocs = ({\n entity,\n withSearch = true,\n}: EntityPageDocsProps) => {\n let entityRef = getCompoundEntityRef(entity);\n\n const searchResultUrlMapper = useEntityPageTechDocsRedirect(entityRef);\n\n if (entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION]) {\n try {\n entityRef = parseEntityRef(\n entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION],\n );\n } catch {\n // not a fan of this but we don't care if the parseEntityRef fails\n }\n }\n\n return (\n <TechDocsReaderPage entityRef={entityRef}>\n <TechDocsReaderPageSubheader />\n <TechDocsReaderPageContent\n withSearch={withSearch}\n searchResultUrlMapper={searchResultUrlMapper}\n />\n </TechDocsReaderPage>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAoCO,MAAM,iBAAiB,CAAC;AAAA,EAC7B,MAAA;AAAA,EACA,UAAa,GAAA;AACf,CAA2B,KAAA;AACzB,EAAI,IAAA,SAAA,GAAY,qBAAqB,MAAM,CAAA;AAE3C,EAAM,MAAA,qBAAA,GAAwB,8BAA8B,SAAS,CAAA;AAErE,EAAA,IAAI,MAAO,CAAA,QAAA,CAAS,WAAc,GAAA,4BAA4B,CAAG,EAAA;AAC/D,IAAI,IAAA;AACF,MAAY,SAAA,GAAA,cAAA;AAAA,QACV,MAAA,CAAO,QAAS,CAAA,WAAA,GAAc,4BAA4B;AAAA,OAC5D;AAAA,KACM,CAAA,MAAA;AAAA;AAER;AAGF,EACE,uBAAA,IAAA,CAAC,sBAAmB,SAClB,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,2BAA4B,EAAA,EAAA,CAAA;AAAA,oBAC7B,GAAA;AAAA,MAAC,yBAAA;AAAA,MAAA;AAAA,QACC,UAAA;AAAA,QACA;AAAA;AAAA;AACF,GACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { Routes, Route, useRoutes } from 'react-router-dom';
3
3
  import { EntityPageDocs } from './EntityPageDocs.esm.js';
4
4
  import { TechDocsIndexPage } from './home/components/TechDocsIndexPage.esm.js';
@@ -8,20 +8,23 @@ import { TECHDOCS_ANNOTATION, TECHDOCS_EXTERNAL_ANNOTATION } from '@backstage/pl
8
8
 
9
9
  const isTechDocsAvailable = (entity) => Boolean(entity?.metadata?.annotations?.[TECHDOCS_ANNOTATION]) || Boolean(entity?.metadata?.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION]);
10
10
  const Router = () => {
11
- return /* @__PURE__ */ React.createElement(Routes, null, /* @__PURE__ */ React.createElement(Route, { path: "/", element: /* @__PURE__ */ React.createElement(TechDocsIndexPage, null) }), /* @__PURE__ */ React.createElement(
12
- Route,
13
- {
14
- path: "/:namespace/:kind/:name/*",
15
- element: /* @__PURE__ */ React.createElement(TechDocsReaderPage, null)
16
- }
17
- ));
11
+ return /* @__PURE__ */ jsxs(Routes, { children: [
12
+ /* @__PURE__ */ jsx(Route, { path: "/", element: /* @__PURE__ */ jsx(TechDocsIndexPage, {}) }),
13
+ /* @__PURE__ */ jsx(
14
+ Route,
15
+ {
16
+ path: "/:namespace/:kind/:name/*",
17
+ element: /* @__PURE__ */ jsx(TechDocsReaderPage, {})
18
+ }
19
+ )
20
+ ] });
18
21
  };
19
22
  const TechDocsReaderRouter = (props) => {
20
23
  const { children } = props;
21
24
  const element = useRoutes([
22
25
  {
23
26
  path: "*",
24
- element: /* @__PURE__ */ React.createElement(TechDocsReaderPage, null),
27
+ element: /* @__PURE__ */ jsx(TechDocsReaderPage, {}),
25
28
  children: [
26
29
  {
27
30
  path: "*",
@@ -38,7 +41,7 @@ const EmbeddedDocsRouter = (props) => {
38
41
  const element = useRoutes([
39
42
  {
40
43
  path: "/*",
41
- element: /* @__PURE__ */ React.createElement(EntityPageDocs, { entity, withSearch }),
44
+ element: /* @__PURE__ */ jsx(EntityPageDocs, { entity, withSearch }),
42
45
  children: [
43
46
  {
44
47
  path: "*",
@@ -49,7 +52,7 @@ const EmbeddedDocsRouter = (props) => {
49
52
  ]);
50
53
  const projectId = entity.metadata.annotations?.[TECHDOCS_ANNOTATION] || entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION];
51
54
  if (!projectId) {
52
- return emptyState ?? /* @__PURE__ */ React.createElement(MissingAnnotationEmptyState, { annotation: [TECHDOCS_ANNOTATION] });
55
+ return emptyState ?? /* @__PURE__ */ jsx(MissingAnnotationEmptyState, { annotation: [TECHDOCS_ANNOTATION] });
53
56
  }
54
57
  return element;
55
58
  };
@@ -57,7 +60,7 @@ const LegacyEmbeddedDocsRouter = ({
57
60
  children,
58
61
  withSearch = true
59
62
  }) => {
60
- return /* @__PURE__ */ React.createElement(EmbeddedDocsRouter, { children, withSearch });
63
+ return /* @__PURE__ */ jsx(EmbeddedDocsRouter, { children, withSearch });
61
64
  };
62
65
 
63
66
  export { EmbeddedDocsRouter, LegacyEmbeddedDocsRouter, Router, TechDocsReaderRouter, isTechDocsAvailable };
@@ -1 +1 @@
1
- {"version":3,"file":"Router.esm.js","sources":["../src/Router.tsx"],"sourcesContent":["/*\n * Copyright 2020 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 React, { PropsWithChildren } from 'react';\nimport { Route, Routes, useRoutes } from 'react-router-dom';\n\nimport { Entity } from '@backstage/catalog-model';\nimport { EntityPageDocs } from './EntityPageDocs';\nimport { TechDocsIndexPage } from './home/components/TechDocsIndexPage';\nimport { TechDocsReaderPage } from './reader/components/TechDocsReaderPage';\nimport {\n useEntity,\n MissingAnnotationEmptyState,\n} from '@backstage/plugin-catalog-react';\nimport {\n TECHDOCS_ANNOTATION,\n TECHDOCS_EXTERNAL_ANNOTATION,\n} from '@backstage/plugin-techdocs-common';\n\n/**\n * Helper that takes in entity and returns true/false if TechDocs is available for the entity\n *\n * @public\n */\nexport const isTechDocsAvailable = (entity: Entity) =>\n Boolean(entity?.metadata?.annotations?.[TECHDOCS_ANNOTATION]) ||\n Boolean(entity?.metadata?.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION]);\n\n/**\n * Responsible for registering routes for TechDocs, TechDocs Homepage and separate TechDocs page\n *\n * @public\n */\nexport const Router = () => {\n return (\n <Routes>\n <Route path=\"/\" element={<TechDocsIndexPage />} />\n <Route\n path=\"/:namespace/:kind/:name/*\"\n element={<TechDocsReaderPage />}\n />\n </Routes>\n );\n};\n\nexport const TechDocsReaderRouter = (props: PropsWithChildren) => {\n const { children } = props;\n\n // Using objects instead of <Route> elements, otherwise \"outlet\" will be null on sub-pages and add-ons won't render\n const element = useRoutes([\n {\n path: '*',\n element: <TechDocsReaderPage />,\n children: [\n {\n path: '*',\n element: children,\n },\n ],\n },\n ]);\n\n return element;\n};\n\nexport const EmbeddedDocsRouter = (\n props: PropsWithChildren<{\n emptyState?: React.ReactElement;\n withSearch?: boolean;\n }>,\n) => {\n const { children, emptyState, withSearch = true } = props;\n const { entity } = useEntity();\n\n // Using objects instead of <Route> elements, otherwise \"outlet\" will be null on sub-pages and add-ons won't render\n const element = useRoutes([\n {\n path: '/*',\n element: <EntityPageDocs entity={entity} withSearch={withSearch} />,\n children: [\n {\n path: '*',\n element: children,\n },\n ],\n },\n ]);\n\n const projectId =\n entity.metadata.annotations?.[TECHDOCS_ANNOTATION] ||\n entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION];\n\n if (!projectId) {\n return (\n emptyState ?? (\n <MissingAnnotationEmptyState annotation={[TECHDOCS_ANNOTATION]} />\n )\n );\n }\n return element;\n};\n\n/**\n * Responsible for registering route to view docs on Entity page\n *\n * @public\n */\nexport const LegacyEmbeddedDocsRouter = ({\n children,\n withSearch = true,\n}: PropsWithChildren<{ withSearch?: boolean }>) => {\n // Wrap the Router to avoid exposing the emptyState prop in the non-alpha\n // public API and make it easier for us to change later.\n return <EmbeddedDocsRouter children={children} withSearch={withSearch} />;\n};\n"],"names":[],"mappings":";;;;;;;;AAqCO,MAAM,mBAAsB,GAAA,CAAC,MAClC,KAAA,OAAA,CAAQ,QAAQ,QAAU,EAAA,WAAA,GAAc,mBAAmB,CAAC,KAC5D,OAAQ,CAAA,MAAA,EAAQ,QAAU,EAAA,WAAA,GAAc,4BAA4B,CAAC;AAOhE,MAAM,SAAS,MAAM;AAC1B,EACE,uBAAA,KAAA,CAAA,aAAA,CAAC,MACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,KAAM,EAAA,EAAA,IAAA,EAAK,KAAI,OAAS,kBAAA,KAAA,CAAA,aAAA,CAAC,iBAAkB,EAAA,IAAA,CAAA,EAAI,CAChD,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,IAAK,EAAA,2BAAA;AAAA,MACL,OAAA,sCAAU,kBAAmB,EAAA,IAAA;AAAA;AAAA,GAEjC,CAAA;AAEJ;AAEa,MAAA,oBAAA,GAAuB,CAAC,KAA6B,KAAA;AAChE,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA;AAGrB,EAAA,MAAM,UAAU,SAAU,CAAA;AAAA,IACxB;AAAA,MACE,IAAM,EAAA,GAAA;AAAA,MACN,OAAA,sCAAU,kBAAmB,EAAA,IAAA,CAAA;AAAA,MAC7B,QAAU,EAAA;AAAA,QACR;AAAA,UACE,IAAM,EAAA,GAAA;AAAA,UACN,OAAS,EAAA;AAAA;AACX;AACF;AACF,GACD,CAAA;AAED,EAAO,OAAA,OAAA;AACT;AAEa,MAAA,kBAAA,GAAqB,CAChC,KAIG,KAAA;AACH,EAAA,MAAM,EAAE,QAAA,EAAU,UAAY,EAAA,UAAA,GAAa,MAAS,GAAA,KAAA;AACpD,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,SAAU,EAAA;AAG7B,EAAA,MAAM,UAAU,SAAU,CAAA;AAAA,IACxB;AAAA,MACE,IAAM,EAAA,IAAA;AAAA,MACN,OAAS,kBAAA,KAAA,CAAA,aAAA,CAAC,cAAe,EAAA,EAAA,MAAA,EAAgB,UAAwB,EAAA,CAAA;AAAA,MACjE,QAAU,EAAA;AAAA,QACR;AAAA,UACE,IAAM,EAAA,GAAA;AAAA,UACN,OAAS,EAAA;AAAA;AACX;AACF;AACF,GACD,CAAA;AAED,EAAM,MAAA,SAAA,GACJ,OAAO,QAAS,CAAA,WAAA,GAAc,mBAAmB,CACjD,IAAA,MAAA,CAAO,QAAS,CAAA,WAAA,GAAc,4BAA4B,CAAA;AAE5D,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAA,OACE,8BACG,KAAA,CAAA,aAAA,CAAA,2BAAA,EAAA,EAA4B,UAAY,EAAA,CAAC,mBAAmB,CAAG,EAAA,CAAA;AAAA;AAItE,EAAO,OAAA,OAAA;AACT;AAOO,MAAM,2BAA2B,CAAC;AAAA,EACvC,QAAA;AAAA,EACA,UAAa,GAAA;AACf,CAAmD,KAAA;AAGjD,EAAO,uBAAA,KAAA,CAAA,aAAA,CAAC,kBAAmB,EAAA,EAAA,QAAA,EAAoB,UAAwB,EAAA,CAAA;AACzE;;;;"}
1
+ {"version":3,"file":"Router.esm.js","sources":["../src/Router.tsx"],"sourcesContent":["/*\n * Copyright 2020 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 { ReactElement, PropsWithChildren } from 'react';\nimport { Route, Routes, useRoutes } from 'react-router-dom';\n\nimport { Entity } from '@backstage/catalog-model';\nimport { EntityPageDocs } from './EntityPageDocs';\nimport { TechDocsIndexPage } from './home/components/TechDocsIndexPage';\nimport { TechDocsReaderPage } from './reader/components/TechDocsReaderPage';\nimport {\n useEntity,\n MissingAnnotationEmptyState,\n} from '@backstage/plugin-catalog-react';\nimport {\n TECHDOCS_ANNOTATION,\n TECHDOCS_EXTERNAL_ANNOTATION,\n} from '@backstage/plugin-techdocs-common';\n\n/**\n * Helper that takes in entity and returns true/false if TechDocs is available for the entity\n *\n * @public\n */\nexport const isTechDocsAvailable = (entity: Entity) =>\n Boolean(entity?.metadata?.annotations?.[TECHDOCS_ANNOTATION]) ||\n Boolean(entity?.metadata?.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION]);\n\n/**\n * Responsible for registering routes for TechDocs, TechDocs Homepage and separate TechDocs page\n *\n * @public\n */\nexport const Router = () => {\n return (\n <Routes>\n <Route path=\"/\" element={<TechDocsIndexPage />} />\n <Route\n path=\"/:namespace/:kind/:name/*\"\n element={<TechDocsReaderPage />}\n />\n </Routes>\n );\n};\n\nexport const TechDocsReaderRouter = (props: PropsWithChildren) => {\n const { children } = props;\n\n // Using objects instead of <Route> elements, otherwise \"outlet\" will be null on sub-pages and add-ons won't render\n const element = useRoutes([\n {\n path: '*',\n element: <TechDocsReaderPage />,\n children: [\n {\n path: '*',\n element: children,\n },\n ],\n },\n ]);\n\n return element;\n};\n\nexport const EmbeddedDocsRouter = (\n props: PropsWithChildren<{\n emptyState?: ReactElement;\n withSearch?: boolean;\n }>,\n) => {\n const { children, emptyState, withSearch = true } = props;\n const { entity } = useEntity();\n\n // Using objects instead of <Route> elements, otherwise \"outlet\" will be null on sub-pages and add-ons won't render\n const element = useRoutes([\n {\n path: '/*',\n element: <EntityPageDocs entity={entity} withSearch={withSearch} />,\n children: [\n {\n path: '*',\n element: children,\n },\n ],\n },\n ]);\n\n const projectId =\n entity.metadata.annotations?.[TECHDOCS_ANNOTATION] ||\n entity.metadata.annotations?.[TECHDOCS_EXTERNAL_ANNOTATION];\n\n if (!projectId) {\n return (\n emptyState ?? (\n <MissingAnnotationEmptyState annotation={[TECHDOCS_ANNOTATION]} />\n )\n );\n }\n return element;\n};\n\n/**\n * Responsible for registering route to view docs on Entity page\n *\n * @public\n */\nexport const LegacyEmbeddedDocsRouter = ({\n children,\n withSearch = true,\n}: PropsWithChildren<{ withSearch?: boolean }>) => {\n // Wrap the Router to avoid exposing the emptyState prop in the non-alpha\n // public API and make it easier for us to change later.\n return <EmbeddedDocsRouter children={children} withSearch={withSearch} />;\n};\n"],"names":[],"mappings":";;;;;;;;AAqCO,MAAM,mBAAsB,GAAA,CAAC,MAClC,KAAA,OAAA,CAAQ,QAAQ,QAAU,EAAA,WAAA,GAAc,mBAAmB,CAAC,KAC5D,OAAQ,CAAA,MAAA,EAAQ,QAAU,EAAA,WAAA,GAAc,4BAA4B,CAAC;AAOhE,MAAM,SAAS,MAAM;AAC1B,EAAA,4BACG,MACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAM,IAAK,EAAA,GAAA,EAAI,OAAS,kBAAA,GAAA,CAAC,qBAAkB,CAAI,EAAA,CAAA;AAAA,oBAChD,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,IAAK,EAAA,2BAAA;AAAA,QACL,OAAA,sBAAU,kBAAmB,EAAA,EAAA;AAAA;AAAA;AAC/B,GACF,EAAA,CAAA;AAEJ;AAEa,MAAA,oBAAA,GAAuB,CAAC,KAA6B,KAAA;AAChE,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA;AAGrB,EAAA,MAAM,UAAU,SAAU,CAAA;AAAA,IACxB;AAAA,MACE,IAAM,EAAA,GAAA;AAAA,MACN,OAAA,sBAAU,kBAAmB,EAAA,EAAA,CAAA;AAAA,MAC7B,QAAU,EAAA;AAAA,QACR;AAAA,UACE,IAAM,EAAA,GAAA;AAAA,UACN,OAAS,EAAA;AAAA;AACX;AACF;AACF,GACD,CAAA;AAED,EAAO,OAAA,OAAA;AACT;AAEa,MAAA,kBAAA,GAAqB,CAChC,KAIG,KAAA;AACH,EAAA,MAAM,EAAE,QAAA,EAAU,UAAY,EAAA,UAAA,GAAa,MAAS,GAAA,KAAA;AACpD,EAAM,MAAA,EAAE,MAAO,EAAA,GAAI,SAAU,EAAA;AAG7B,EAAA,MAAM,UAAU,SAAU,CAAA;AAAA,IACxB;AAAA,MACE,IAAM,EAAA,IAAA;AAAA,MACN,OAAS,kBAAA,GAAA,CAAC,cAAe,EAAA,EAAA,MAAA,EAAgB,UAAwB,EAAA,CAAA;AAAA,MACjE,QAAU,EAAA;AAAA,QACR;AAAA,UACE,IAAM,EAAA,GAAA;AAAA,UACN,OAAS,EAAA;AAAA;AACX;AACF;AACF,GACD,CAAA;AAED,EAAM,MAAA,SAAA,GACJ,OAAO,QAAS,CAAA,WAAA,GAAc,mBAAmB,CACjD,IAAA,MAAA,CAAO,QAAS,CAAA,WAAA,GAAc,4BAA4B,CAAA;AAE5D,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAA,OACE,8BACG,GAAA,CAAA,2BAAA,EAAA,EAA4B,UAAY,EAAA,CAAC,mBAAmB,CAAG,EAAA,CAAA;AAAA;AAItE,EAAO,OAAA,OAAA;AACT;AAOO,MAAM,2BAA2B,CAAC;AAAA,EACvC,QAAA;AAAA,EACA,UAAa,GAAA;AACf,CAAmD,KAAA;AAGjD,EAAO,uBAAA,GAAA,CAAC,kBAAmB,EAAA,EAAA,QAAA,EAAoB,UAAwB,EAAA,CAAA;AACzE;;;;"}
package/dist/alpha.d.ts CHANGED
@@ -2,9 +2,9 @@ import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
2
2
  import * as _backstage_plugin_techdocs_react from '@backstage/plugin-techdocs-react';
3
3
  import * as _backstage_catalog_model from '@backstage/catalog-model';
4
4
  import * as _backstage_plugin_catalog_react_alpha from '@backstage/plugin-catalog-react/alpha';
5
+ import * as react from 'react';
5
6
  import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
6
7
  import * as _backstage_plugin_search_react_alpha from '@backstage/plugin-search-react/alpha';
7
- import React__default from 'react';
8
8
 
9
9
  /** @alpha */
10
10
  declare const techDocsSearchResultListItemExtension: _backstage_frontend_plugin_api.ExtensionDefinition<{
@@ -73,7 +73,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
73
73
  "empty-state:techdocs/entity-content": _backstage_frontend_plugin_api.ExtensionDefinition<{
74
74
  config: {};
75
75
  configInput: {};
76
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React__default.JSX.Element, "core.reactElement", {
76
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {
77
77
  optional: true;
78
78
  }>;
79
79
  inputs: {
@@ -99,7 +99,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
99
99
  path?: string | undefined;
100
100
  group?: string | false | undefined;
101
101
  };
102
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React__default.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
102
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
103
103
  optional: true;
104
104
  }> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "catalog.entity-content-title", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<(entity: _backstage_catalog_model.Entity) => boolean, "catalog.entity-filter-function", {
105
105
  optional: true;
@@ -113,7 +113,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
113
113
  singleton: false;
114
114
  optional: false;
115
115
  }>;
116
- emptyState: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React__default.JSX.Element, "core.reactElement", {
116
+ emptyState: _backstage_frontend_plugin_api.ExtensionInput<_backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {
117
117
  optional: true;
118
118
  }>, {
119
119
  singleton: true;
@@ -157,7 +157,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
157
157
  configInput: {
158
158
  path?: string | undefined;
159
159
  };
160
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React__default.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
160
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
161
161
  optional: true;
162
162
  }>;
163
163
  inputs: {};
@@ -174,7 +174,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{
174
174
  configInput: {
175
175
  path?: string | undefined;
176
176
  };
177
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<React__default.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
177
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<react.JSX.Element, "core.reactElement", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<string, "core.routing.path", {}> | _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.RouteRef<_backstage_frontend_plugin_api.AnyRouteRefParams>, "core.routing.ref", {
178
178
  optional: true;
179
179
  }>;
180
180
  inputs: {
package/dist/alpha.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import LibraryBooks from '@material-ui/icons/LibraryBooks';
3
3
  import { ApiBlueprint, PageBlueprint, createExtensionInput, coreExtensionData, createExtension, NavItemBlueprint, createFrontendPlugin } from '@backstage/frontend-plugin-api';
4
4
  import { createApiFactory, configApiRef, discoveryApiRef, fetchApiRef } from '@backstage/core-plugin-api';
@@ -10,6 +10,7 @@ import { TechDocsStorageClient, TechDocsClient } from './client.esm.js';
10
10
  import { rootRouteRef, rootDocsRouteRef, rootCatalogDocsRouteRef } from './routes.esm.js';
11
11
  import './reader/components/TechDocsReaderProvider.esm.js';
12
12
  import { TechDocsReaderLayout } from './reader/components/TechDocsReaderPage/TechDocsReaderPage.esm.js';
13
+ import 'react';
13
14
  import 'react-helmet';
14
15
  import '@material-ui/core/Grid';
15
16
  import '@material-ui/lab/Skeleton';
@@ -73,7 +74,7 @@ const techDocsSearchResultListItemExtension = SearchResultListItemBlueprint.make
73
74
  component: async () => {
74
75
  const { TechDocsSearchResultListItem } = await import('./search/components/TechDocsSearchResultListItem.esm.js');
75
76
  return (props) => compatWrapper(
76
- /* @__PURE__ */ React.createElement(TechDocsSearchResultListItem, { ...props, ...config })
77
+ /* @__PURE__ */ jsx(TechDocsSearchResultListItem, { ...props, ...config })
77
78
  );
78
79
  }
79
80
  });
@@ -84,7 +85,7 @@ const techDocsPage = PageBlueprint.make({
84
85
  defaultPath: "/docs",
85
86
  routeRef: convertLegacyRouteRef(rootRouteRef),
86
87
  loader: () => import('./home/components/TechDocsIndexPage.esm.js').then(
87
- (m) => compatWrapper(/* @__PURE__ */ React.createElement(m.TechDocsIndexPage, null))
88
+ (m) => compatWrapper(/* @__PURE__ */ jsx(m.TechDocsIndexPage, {}))
88
89
  )
89
90
  }
90
91
  });
@@ -98,14 +99,17 @@ const techDocsReaderPage = PageBlueprint.makeWithOverrides({
98
99
  const options = output.get(AddonBlueprint.dataRefs.addon);
99
100
  const Addon = options.component;
100
101
  attachTechDocsAddonComponentData(Addon, options);
101
- return /* @__PURE__ */ React.createElement(Addon, { key: options.name });
102
+ return /* @__PURE__ */ jsx(Addon, {}, options.name);
102
103
  });
103
104
  return originalFactory({
104
105
  defaultPath: "/docs/:namespace/:kind/:name",
105
106
  routeRef: convertLegacyRouteRef(rootDocsRouteRef),
106
107
  loader: async () => await import('./Router.esm.js').then(({ TechDocsReaderRouter }) => {
107
108
  return compatWrapper(
108
- /* @__PURE__ */ React.createElement(TechDocsReaderRouter, null, /* @__PURE__ */ React.createElement(TechDocsReaderLayout, null), /* @__PURE__ */ React.createElement(TechDocsAddons, null, addons))
109
+ /* @__PURE__ */ jsxs(TechDocsReaderRouter, { children: [
110
+ /* @__PURE__ */ jsx(TechDocsReaderLayout, {}),
111
+ /* @__PURE__ */ jsx(TechDocsAddons, { children: addons })
112
+ ] })
109
113
  );
110
114
  })
111
115
  });
@@ -133,17 +137,17 @@ const techDocsEntityContent = EntityContentBlueprint.makeWithOverrides({
133
137
  const options = output.get(AddonBlueprint.dataRefs.addon);
134
138
  const Addon = options.component;
135
139
  attachTechDocsAddonComponentData(Addon, options);
136
- return /* @__PURE__ */ React.createElement(Addon, { key: options.name });
140
+ return /* @__PURE__ */ jsx(Addon, {}, options.name);
137
141
  });
138
142
  return compatWrapper(
139
- /* @__PURE__ */ React.createElement(
143
+ /* @__PURE__ */ jsx(
140
144
  EmbeddedDocsRouter,
141
145
  {
142
146
  emptyState: context.inputs.emptyState?.get(
143
147
  coreExtensionData.reactElement
144
- )
145
- },
146
- /* @__PURE__ */ React.createElement(TechDocsAddons, null, addons)
148
+ ),
149
+ children: /* @__PURE__ */ jsx(TechDocsAddons, { children: addons })
150
+ }
147
151
  )
148
152
  );
149
153
  })
@@ -1 +1 @@
1
- {"version":3,"file":"alpha.esm.js","sources":["../src/alpha.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 React 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 createApiFactory,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n convertLegacyRouteRefs,\n} from '@backstage/core-compat-api';\nimport { EntityContentBlueprint } 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\n/** @alpha */\nconst techDocsStorageApi = ApiBlueprint.make({\n name: 'storage',\n params: {\n factory: createApiFactory({\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\n/** @alpha */\nconst techDocsClientApi = ApiBlueprint.make({\n params: {\n factory: createApiFactory({\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\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 predicate: result => result.type === 'techdocs',\n component: async () => {\n const { TechDocsSearchResultListItem } = await import(\n './search/components/TechDocsSearchResultListItem'\n );\n return props =>\n compatWrapper(\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 defaultPath: '/docs',\n routeRef: convertLegacyRouteRef(rootRouteRef),\n loader: () =>\n import('./home/components/TechDocsIndexPage').then(m =>\n compatWrapper(<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 defaultPath: '/docs/:namespace/:kind/:name',\n routeRef: convertLegacyRouteRef(rootDocsRouteRef),\n loader: async () =>\n await import('./Router').then(({ TechDocsReaderRouter }) => {\n return compatWrapper(\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 return originalFactory(\n {\n defaultPath: 'docs',\n defaultTitle: 'TechDocs',\n routeRef: convertLegacyRouteRef(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 compatWrapper(\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: convertLegacyRouteRef(rootRouteRef),\n },\n});\n\n/** @alpha */\nexport default createFrontendPlugin({\n id: 'techdocs',\n extensions: [\n techDocsClientApi,\n techDocsStorageApi,\n techDocsNavItem,\n techDocsPage,\n techDocsReaderPage,\n techDocsEntityContent,\n techDocsEntityContentEmptyState,\n techDocsSearchResultListItemExtension,\n ],\n routes: convertLegacyRouteRefs({\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.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 createApiFactory,\n discoveryApiRef,\n fetchApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n compatWrapper,\n convertLegacyRouteRef,\n convertLegacyRouteRefs,\n} from '@backstage/core-compat-api';\nimport { EntityContentBlueprint } 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\n/** @alpha */\nconst techDocsStorageApi = ApiBlueprint.make({\n name: 'storage',\n params: {\n factory: createApiFactory({\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\n/** @alpha */\nconst techDocsClientApi = ApiBlueprint.make({\n params: {\n factory: createApiFactory({\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\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 predicate: result => result.type === 'techdocs',\n component: async () => {\n const { TechDocsSearchResultListItem } = await import(\n './search/components/TechDocsSearchResultListItem'\n );\n return props =>\n compatWrapper(\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 defaultPath: '/docs',\n routeRef: convertLegacyRouteRef(rootRouteRef),\n loader: () =>\n import('./home/components/TechDocsIndexPage').then(m =>\n compatWrapper(<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 defaultPath: '/docs/:namespace/:kind/:name',\n routeRef: convertLegacyRouteRef(rootDocsRouteRef),\n loader: async () =>\n await import('./Router').then(({ TechDocsReaderRouter }) => {\n return compatWrapper(\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 return originalFactory(\n {\n defaultPath: 'docs',\n defaultTitle: 'TechDocs',\n routeRef: convertLegacyRouteRef(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 compatWrapper(\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: convertLegacyRouteRef(rootRouteRef),\n },\n});\n\n/** @alpha */\nexport default createFrontendPlugin({\n id: 'techdocs',\n extensions: [\n techDocsClientApi,\n techDocsStorageApi,\n techDocsNavItem,\n techDocsPage,\n techDocsReaderPage,\n techDocsEntityContent,\n techDocsEntityContentEmptyState,\n techDocsSearchResultListItemExtension,\n ],\n routes: convertLegacyRouteRefs({\n root: rootRouteRef,\n docRoot: rootDocsRouteRef,\n entityContent: rootCatalogDocsRouteRef,\n }),\n});\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React from 'react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { Content, ContentHeader, SupportButton } from '@backstage/core-components';
3
3
  import { EntityListProvider, CatalogFilterLayout, UserListPicker, EntityOwnerPicker, EntityTagPicker } from '@backstage/plugin-catalog-react';
4
4
  import { TechDocsPageWrapper } from './TechDocsPageWrapper.esm.js';
@@ -18,15 +18,26 @@ const DefaultTechDocsHome = (props) => {
18
18
  CustomHeader
19
19
  } = props;
20
20
  const Wrapper = PageWrapper ? PageWrapper : TechDocsPageWrapper;
21
- const Header = CustomHeader || (() => /* @__PURE__ */ React.createElement(ContentHeader, { title: "" }, /* @__PURE__ */ React.createElement(SupportButton, null, "Discover documentation in your ecosystem.")));
22
- return /* @__PURE__ */ React.createElement(Wrapper, null, /* @__PURE__ */ React.createElement(Content, null, /* @__PURE__ */ React.createElement(Header, null), /* @__PURE__ */ React.createElement(EntityListProvider, { pagination }, /* @__PURE__ */ React.createElement(CatalogFilterLayout, null, /* @__PURE__ */ React.createElement(CatalogFilterLayout.Filters, null, /* @__PURE__ */ React.createElement(TechDocsPicker, null), /* @__PURE__ */ React.createElement(UserListPicker, { initialFilter }), /* @__PURE__ */ React.createElement(EntityOwnerPicker, { mode: ownerPickerMode }), /* @__PURE__ */ React.createElement(EntityTagPicker, null)), /* @__PURE__ */ React.createElement(CatalogFilterLayout.Content, null, /* @__PURE__ */ React.createElement(
23
- EntityListDocsTable,
24
- {
25
- actions,
26
- columns,
27
- options
28
- }
29
- ))))));
21
+ const Header = CustomHeader || (() => /* @__PURE__ */ jsx(ContentHeader, { title: "", children: /* @__PURE__ */ jsx(SupportButton, { children: "Discover documentation in your ecosystem." }) }));
22
+ return /* @__PURE__ */ jsx(Wrapper, { children: /* @__PURE__ */ jsxs(Content, { children: [
23
+ /* @__PURE__ */ jsx(Header, {}),
24
+ /* @__PURE__ */ jsx(EntityListProvider, { pagination, children: /* @__PURE__ */ jsxs(CatalogFilterLayout, { children: [
25
+ /* @__PURE__ */ jsxs(CatalogFilterLayout.Filters, { children: [
26
+ /* @__PURE__ */ jsx(TechDocsPicker, {}),
27
+ /* @__PURE__ */ jsx(UserListPicker, { initialFilter }),
28
+ /* @__PURE__ */ jsx(EntityOwnerPicker, { mode: ownerPickerMode }),
29
+ /* @__PURE__ */ jsx(EntityTagPicker, {})
30
+ ] }),
31
+ /* @__PURE__ */ jsx(CatalogFilterLayout.Content, { children: /* @__PURE__ */ jsx(
32
+ EntityListDocsTable,
33
+ {
34
+ actions,
35
+ columns,
36
+ options
37
+ }
38
+ ) })
39
+ ] }) })
40
+ ] }) });
30
41
  };
31
42
 
32
43
  export { DefaultTechDocsHome };
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultTechDocsHome.esm.js","sources":["../../../src/home/components/DefaultTechDocsHome.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 React from 'react';\nimport {\n Content,\n ContentHeader,\n SupportButton,\n} from '@backstage/core-components';\nimport {\n CatalogFilterLayout,\n EntityListProvider,\n EntityOwnerPicker,\n EntityTagPicker,\n UserListPicker,\n} from '@backstage/plugin-catalog-react';\nimport { TechDocsPageWrapper } from './TechDocsPageWrapper';\nimport { TechDocsPicker } from './TechDocsPicker';\nimport { EntityListDocsTable } from './Tables';\nimport { TechDocsIndexPageProps } from './TechDocsIndexPage';\n\n/**\n * Props for {@link DefaultTechDocsHome}\n *\n * @public\n * @deprecated Please use `TechDocsIndexPageProps` instead.\n */\nexport type DefaultTechDocsHomeProps = TechDocsIndexPageProps;\n\n/**\n * Component which renders a default documentation landing page.\n *\n * @public\n */\nexport const DefaultTechDocsHome = (props: TechDocsIndexPageProps) => {\n const {\n initialFilter = 'owned',\n columns,\n actions,\n ownerPickerMode,\n pagination,\n options,\n PageWrapper,\n CustomHeader,\n } = props;\n const Wrapper: React.FC<{\n children: React.ReactNode;\n }> = PageWrapper ? PageWrapper : TechDocsPageWrapper;\n const Header: React.FC =\n CustomHeader ||\n (() => (\n <ContentHeader title=\"\">\n <SupportButton>Discover documentation in your ecosystem.</SupportButton>\n </ContentHeader>\n ));\n return (\n <Wrapper>\n <Content>\n <Header />\n <EntityListProvider pagination={pagination}>\n <CatalogFilterLayout>\n <CatalogFilterLayout.Filters>\n <TechDocsPicker />\n <UserListPicker initialFilter={initialFilter} />\n <EntityOwnerPicker mode={ownerPickerMode} />\n <EntityTagPicker />\n </CatalogFilterLayout.Filters>\n <CatalogFilterLayout.Content>\n <EntityListDocsTable\n actions={actions}\n columns={columns}\n options={options}\n />\n </CatalogFilterLayout.Content>\n </CatalogFilterLayout>\n </EntityListProvider>\n </Content>\n </Wrapper>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AA+Ca,MAAA,mBAAA,GAAsB,CAAC,KAAkC,KAAA;AACpE,EAAM,MAAA;AAAA,IACJ,aAAgB,GAAA,OAAA;AAAA,IAChB,OAAA;AAAA,IACA,OAAA;AAAA,IACA,eAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACE,GAAA,KAAA;AACJ,EAAM,MAAA,OAAA,GAED,cAAc,WAAc,GAAA,mBAAA;AACjC,EAAM,MAAA,MAAA,GACJ,YACC,KAAA,sBACE,KAAA,CAAA,aAAA,CAAA,aAAA,EAAA,EAAc,OAAM,EACnB,EAAA,kBAAA,KAAA,CAAA,aAAA,CAAC,aAAc,EAAA,IAAA,EAAA,2CAAyC,CAC1D,CAAA,CAAA;AAEJ,EAAA,uBACG,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAA,sCACE,MAAO,EAAA,IAAA,CAAA,kBACP,KAAA,CAAA,aAAA,CAAA,kBAAA,EAAA,EAAmB,8BACjB,KAAA,CAAA,aAAA,CAAA,mBAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAA,mBAAA,CAAoB,SAApB,IACC,kBAAA,KAAA,CAAA,aAAA,CAAC,cAAe,EAAA,IAAA,CAAA,sCACf,cAAe,EAAA,EAAA,aAAA,EAA8B,CAC9C,kBAAA,KAAA,CAAA,aAAA,CAAC,qBAAkB,IAAM,EAAA,eAAA,EAAiB,CAC1C,kBAAA,KAAA,CAAA,aAAA,CAAC,qBAAgB,CACnB,CAAA,kBACC,KAAA,CAAA,aAAA,CAAA,mBAAA,CAAoB,SAApB,IACC,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,OAAA;AAAA,MACA;AAAA;AAAA,GAEJ,CACF,CACF,CACF,CACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"DefaultTechDocsHome.esm.js","sources":["../../../src/home/components/DefaultTechDocsHome.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { ReactNode, FC } from 'react';\nimport {\n Content,\n ContentHeader,\n SupportButton,\n} from '@backstage/core-components';\nimport {\n CatalogFilterLayout,\n EntityListProvider,\n EntityOwnerPicker,\n EntityTagPicker,\n UserListPicker,\n} from '@backstage/plugin-catalog-react';\nimport { TechDocsPageWrapper } from './TechDocsPageWrapper';\nimport { TechDocsPicker } from './TechDocsPicker';\nimport { EntityListDocsTable } from './Tables';\nimport { TechDocsIndexPageProps } from './TechDocsIndexPage';\n\n/**\n * Props for {@link DefaultTechDocsHome}\n *\n * @public\n * @deprecated Please use `TechDocsIndexPageProps` instead.\n */\nexport type DefaultTechDocsHomeProps = TechDocsIndexPageProps;\n\n/**\n * Component which renders a default documentation landing page.\n *\n * @public\n */\nexport const DefaultTechDocsHome = (props: TechDocsIndexPageProps) => {\n const {\n initialFilter = 'owned',\n columns,\n actions,\n ownerPickerMode,\n pagination,\n options,\n PageWrapper,\n CustomHeader,\n } = props;\n const Wrapper: FC<{\n children: ReactNode;\n }> = PageWrapper ? PageWrapper : TechDocsPageWrapper;\n const Header: FC =\n CustomHeader ||\n (() => (\n <ContentHeader title=\"\">\n <SupportButton>Discover documentation in your ecosystem.</SupportButton>\n </ContentHeader>\n ));\n return (\n <Wrapper>\n <Content>\n <Header />\n <EntityListProvider pagination={pagination}>\n <CatalogFilterLayout>\n <CatalogFilterLayout.Filters>\n <TechDocsPicker />\n <UserListPicker initialFilter={initialFilter} />\n <EntityOwnerPicker mode={ownerPickerMode} />\n <EntityTagPicker />\n </CatalogFilterLayout.Filters>\n <CatalogFilterLayout.Content>\n <EntityListDocsTable\n actions={actions}\n columns={columns}\n options={options}\n />\n </CatalogFilterLayout.Content>\n </CatalogFilterLayout>\n </EntityListProvider>\n </Content>\n </Wrapper>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AA+Ca,MAAA,mBAAA,GAAsB,CAAC,KAAkC,KAAA;AACpE,EAAM,MAAA;AAAA,IACJ,aAAgB,GAAA,OAAA;AAAA,IAChB,OAAA;AAAA,IACA,OAAA;AAAA,IACA,eAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACE,GAAA,KAAA;AACJ,EAAM,MAAA,OAAA,GAED,cAAc,WAAc,GAAA,mBAAA;AACjC,EAAM,MAAA,MAAA,GACJ,YACC,KAAA,sBACE,GAAA,CAAA,aAAA,EAAA,EAAc,OAAM,EACnB,EAAA,QAAA,kBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,QAAA,EAAA,2CAAA,EAAyC,CAC1D,EAAA,CAAA,CAAA;AAEJ,EACE,uBAAA,GAAA,CAAC,OACC,EAAA,EAAA,QAAA,kBAAA,IAAA,CAAC,OACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAO,EAAA,EAAA,CAAA;AAAA,oBACP,GAAA,CAAA,kBAAA,EAAA,EAAmB,UAClB,EAAA,QAAA,kBAAA,IAAA,CAAC,mBACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAC,IAAA,CAAA,mBAAA,CAAoB,SAApB,EACC,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,cAAe,EAAA,EAAA,CAAA;AAAA,wBAChB,GAAA,CAAC,kBAAe,aAA8B,EAAA,CAAA;AAAA,wBAC9C,GAAA,CAAC,iBAAkB,EAAA,EAAA,IAAA,EAAM,eAAiB,EAAA,CAAA;AAAA,4BACzC,eAAgB,EAAA,EAAA;AAAA,OACnB,EAAA,CAAA;AAAA,sBACA,GAAA,CAAC,mBAAoB,CAAA,OAAA,EAApB,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,mBAAA;AAAA,QAAA;AAAA,UACC,OAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA;AAAA,OAEJ,EAAA;AAAA,KAAA,EACF,CACF,EAAA;AAAA,GAAA,EACF,CACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,3 +1,4 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
1
2
  import { rootDocsRouteRef } from '../../../routes.esm.js';
2
3
  import { toLowerMaybe } from '../../../helpers.esm.js';
3
4
  import { useRouteRef, useApi, configApiRef } from '@backstage/core-plugin-api';
@@ -6,34 +7,37 @@ import Card from '@material-ui/core/Card';
6
7
  import CardActions from '@material-ui/core/CardActions';
7
8
  import CardContent from '@material-ui/core/CardContent';
8
9
  import CardMedia from '@material-ui/core/CardMedia';
9
- import React from 'react';
10
10
 
11
11
  const DocsCardGrid = (props) => {
12
12
  const { entities } = props;
13
13
  const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);
14
14
  const config = useApi(configApiRef);
15
15
  if (!entities) return null;
16
- return /* @__PURE__ */ React.createElement(ItemCardGrid, { "data-testid": "docs-explore" }, !entities?.length ? null : entities.map((entity, index) => /* @__PURE__ */ React.createElement(Card, { key: index }, /* @__PURE__ */ React.createElement(CardMedia, null, /* @__PURE__ */ React.createElement(
17
- ItemCardHeader,
18
- {
19
- title: entity.metadata.title ?? entity.metadata.name
20
- }
21
- )), /* @__PURE__ */ React.createElement(CardContent, null, entity.metadata.description), /* @__PURE__ */ React.createElement(CardActions, null, /* @__PURE__ */ React.createElement(
22
- LinkButton,
23
- {
24
- to: getRouteToReaderPageFor({
25
- namespace: toLowerMaybe(
26
- entity.metadata.namespace ?? "default",
27
- config
28
- ),
29
- kind: toLowerMaybe(entity.kind, config),
30
- name: toLowerMaybe(entity.metadata.name, config)
31
- }),
32
- color: "primary",
33
- "data-testid": "read_docs"
34
- },
35
- "Read Docs"
36
- )))));
16
+ return /* @__PURE__ */ jsx(ItemCardGrid, { "data-testid": "docs-explore", children: !entities?.length ? null : entities.map((entity, index) => /* @__PURE__ */ jsxs(Card, { children: [
17
+ /* @__PURE__ */ jsx(CardMedia, { children: /* @__PURE__ */ jsx(
18
+ ItemCardHeader,
19
+ {
20
+ title: entity.metadata.title ?? entity.metadata.name
21
+ }
22
+ ) }),
23
+ /* @__PURE__ */ jsx(CardContent, { children: entity.metadata.description }),
24
+ /* @__PURE__ */ jsx(CardActions, { children: /* @__PURE__ */ jsx(
25
+ LinkButton,
26
+ {
27
+ to: getRouteToReaderPageFor({
28
+ namespace: toLowerMaybe(
29
+ entity.metadata.namespace ?? "default",
30
+ config
31
+ ),
32
+ kind: toLowerMaybe(entity.kind, config),
33
+ name: toLowerMaybe(entity.metadata.name, config)
34
+ }),
35
+ color: "primary",
36
+ "data-testid": "read_docs",
37
+ children: "Read Docs"
38
+ }
39
+ ) })
40
+ ] }, index)) });
37
41
  };
38
42
 
39
43
  export { DocsCardGrid };
@@ -1 +1 @@
1
- {"version":3,"file":"DocsCardGrid.esm.js","sources":["../../../../src/home/components/Grids/DocsCardGrid.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { rootDocsRouteRef } from '../../../routes';\nimport { toLowerMaybe } from '../../../helpers';\nimport { Entity } from '@backstage/catalog-model';\nimport { useApi, useRouteRef, configApiRef } from '@backstage/core-plugin-api';\nimport {\n LinkButton,\n ItemCardGrid,\n ItemCardHeader,\n} from '@backstage/core-components';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\nimport React from 'react';\n\n/**\n * Props for {@link DocsCardGrid}\n *\n * @public\n */\nexport type DocsCardGridProps = {\n entities: Entity[] | undefined;\n};\n\n/**\n * Component which accepts a list of entities and renders a item card for each entity\n *\n * @public\n */\nexport const DocsCardGrid = (props: DocsCardGridProps) => {\n const { entities } = props;\n const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);\n const config = useApi(configApiRef);\n if (!entities) return null;\n return (\n <ItemCardGrid data-testid=\"docs-explore\">\n {!entities?.length\n ? null\n : entities.map((entity, index: number) => (\n <Card key={index}>\n <CardMedia>\n <ItemCardHeader\n title={entity.metadata.title ?? entity.metadata.name}\n />\n </CardMedia>\n <CardContent>{entity.metadata.description}</CardContent>\n <CardActions>\n <LinkButton\n to={getRouteToReaderPageFor({\n namespace: toLowerMaybe(\n entity.metadata.namespace ?? 'default',\n config,\n ),\n kind: toLowerMaybe(entity.kind, config),\n name: toLowerMaybe(entity.metadata.name, config),\n })}\n color=\"primary\"\n data-testid=\"read_docs\"\n >\n Read Docs\n </LinkButton>\n </CardActions>\n </Card>\n ))}\n </ItemCardGrid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AA6Ca,MAAA,YAAA,GAAe,CAAC,KAA6B,KAAA;AACxD,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA;AACrB,EAAM,MAAA,uBAAA,GAA0B,YAAY,gBAAgB,CAAA;AAC5D,EAAM,MAAA,MAAA,GAAS,OAAO,YAAY,CAAA;AAClC,EAAI,IAAA,CAAC,UAAiB,OAAA,IAAA;AACtB,EAAA,2CACG,YAAa,EAAA,EAAA,aAAA,EAAY,kBACvB,CAAC,QAAA,EAAU,SACR,IACA,GAAA,QAAA,CAAS,GAAI,CAAA,CAAC,QAAQ,KACpB,qBAAA,KAAA,CAAA,aAAA,CAAC,QAAK,GAAK,EAAA,KAAA,EAAA,sCACR,SACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,cAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA,MAAA,CAAO,QAAS,CAAA,KAAA,IAAS,OAAO,QAAS,CAAA;AAAA;AAAA,GAEpD,mBACC,KAAA,CAAA,aAAA,CAAA,WAAA,EAAA,IAAA,EAAa,OAAO,QAAS,CAAA,WAAY,CAC1C,kBAAA,KAAA,CAAA,aAAA,CAAC,WACC,EAAA,IAAA,kBAAA,KAAA,CAAA,aAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,IAAI,uBAAwB,CAAA;AAAA,QAC1B,SAAW,EAAA,YAAA;AAAA,UACT,MAAA,CAAO,SAAS,SAAa,IAAA,SAAA;AAAA,UAC7B;AAAA,SACF;AAAA,QACA,IAAM,EAAA,YAAA,CAAa,MAAO,CAAA,IAAA,EAAM,MAAM,CAAA;AAAA,QACtC,IAAM,EAAA,YAAA,CAAa,MAAO,CAAA,QAAA,CAAS,MAAM,MAAM;AAAA,OAChD,CAAA;AAAA,MACD,KAAM,EAAA,SAAA;AAAA,MACN,aAAY,EAAA;AAAA,KAAA;AAAA,IACb;AAAA,GAGH,CACF,CACD,CACP,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"DocsCardGrid.esm.js","sources":["../../../../src/home/components/Grids/DocsCardGrid.tsx"],"sourcesContent":["/*\n * Copyright 2021 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 { rootDocsRouteRef } from '../../../routes';\nimport { toLowerMaybe } from '../../../helpers';\nimport { Entity } from '@backstage/catalog-model';\nimport { useApi, useRouteRef, configApiRef } from '@backstage/core-plugin-api';\nimport {\n LinkButton,\n ItemCardGrid,\n ItemCardHeader,\n} from '@backstage/core-components';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardMedia from '@material-ui/core/CardMedia';\n\n/**\n * Props for {@link DocsCardGrid}\n *\n * @public\n */\nexport type DocsCardGridProps = {\n entities: Entity[] | undefined;\n};\n\n/**\n * Component which accepts a list of entities and renders a item card for each entity\n *\n * @public\n */\nexport const DocsCardGrid = (props: DocsCardGridProps) => {\n const { entities } = props;\n const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);\n const config = useApi(configApiRef);\n if (!entities) return null;\n return (\n <ItemCardGrid data-testid=\"docs-explore\">\n {!entities?.length\n ? null\n : entities.map((entity, index: number) => (\n <Card key={index}>\n <CardMedia>\n <ItemCardHeader\n title={entity.metadata.title ?? entity.metadata.name}\n />\n </CardMedia>\n <CardContent>{entity.metadata.description}</CardContent>\n <CardActions>\n <LinkButton\n to={getRouteToReaderPageFor({\n namespace: toLowerMaybe(\n entity.metadata.namespace ?? 'default',\n config,\n ),\n kind: toLowerMaybe(entity.kind, config),\n name: toLowerMaybe(entity.metadata.name, config),\n })}\n color=\"primary\"\n data-testid=\"read_docs\"\n >\n Read Docs\n </LinkButton>\n </CardActions>\n </Card>\n ))}\n </ItemCardGrid>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AA4Ca,MAAA,YAAA,GAAe,CAAC,KAA6B,KAAA;AACxD,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA;AACrB,EAAM,MAAA,uBAAA,GAA0B,YAAY,gBAAgB,CAAA;AAC5D,EAAM,MAAA,MAAA,GAAS,OAAO,YAAY,CAAA;AAClC,EAAI,IAAA,CAAC,UAAiB,OAAA,IAAA;AACtB,EAAA,uBACG,GAAA,CAAA,YAAA,EAAA,EAAa,aAAY,EAAA,cAAA,EACvB,WAAC,QAAU,EAAA,MAAA,GACR,IACA,GAAA,QAAA,CAAS,GAAI,CAAA,CAAC,MAAQ,EAAA,KAAA,0BACnB,IACC,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SACC,EAAA,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,KAAO,EAAA,MAAA,CAAO,QAAS,CAAA,KAAA,IAAS,OAAO,QAAS,CAAA;AAAA;AAAA,KAEpD,EAAA,CAAA;AAAA,oBACC,GAAA,CAAA,WAAA,EAAA,EAAa,QAAO,EAAA,MAAA,CAAA,QAAA,CAAS,WAAY,EAAA,CAAA;AAAA,wBACzC,WACC,EAAA,EAAA,QAAA,kBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,IAAI,uBAAwB,CAAA;AAAA,UAC1B,SAAW,EAAA,YAAA;AAAA,YACT,MAAA,CAAO,SAAS,SAAa,IAAA,SAAA;AAAA,YAC7B;AAAA,WACF;AAAA,UACA,IAAM,EAAA,YAAA,CAAa,MAAO,CAAA,IAAA,EAAM,MAAM,CAAA;AAAA,UACtC,IAAM,EAAA,YAAA,CAAa,MAAO,CAAA,QAAA,CAAS,MAAM,MAAM;AAAA,SAChD,CAAA;AAAA,QACD,KAAM,EAAA,SAAA;AAAA,QACN,aAAY,EAAA,WAAA;AAAA,QACb,QAAA,EAAA;AAAA;AAAA,KAGH,EAAA;AAAA,GAtBS,EAAA,EAAA,KAuBX,CACD,CACP,EAAA,CAAA;AAEJ;;;;"}