@backstage/plugin-techdocs 0.12.4 → 0.12.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,8 +1,7 @@
1
1
  import { createApiRef, createRouteRef, useRouteRef, useApi, configApiRef, createPlugin, createApiFactory, discoveryApiRef, identityApiRef, createRoutableExtension, createComponentExtension } from '@backstage/core-plugin-api';
2
2
  import { ResponseError, NotFoundError } from '@backstage/errors';
3
3
  import { EventSourcePolyfill } from 'event-source-polyfill';
4
- import * as React from 'react';
5
- import React__default, { useEffect, useState, useReducer, useRef, useMemo, useContext, createContext, useCallback } from 'react';
4
+ import React, { useEffect, useState, Suspense, useReducer, useRef, useMemo, useContext, createContext, useCallback } from 'react';
6
5
  import { makeStyles, ListItemText, ListItem, Divider, Card, CardMedia, CardContent, CardActions, Grid, TextField, InputAdornment, IconButton, CircularProgress, createStyles, Button as Button$1, Drawer, Typography, useTheme } from '@material-ui/core';
7
6
  import { Link, SubvalueCell, Table, EmptyState, Button, WarningPanel, CodeSnippet, PageWithHeader, Content, ContentHeader, SupportButton, ItemCardGrid, ItemCardHeader, Progress, ErrorPage, HeaderLabel, Header, Page, HeaderTabs, MissingAnnotationEmptyState } from '@backstage/core-components';
8
7
  import TextTruncate from 'react-text-truncate';
@@ -25,7 +24,6 @@ import Autocomplete from '@material-ui/lab/Autocomplete';
25
24
  import { useNavigate, useOutlet } from 'react-router';
26
25
  import { Alert } from '@material-ui/lab';
27
26
  import Close from '@material-ui/icons/Close';
28
- import { LazyLog } from 'react-lazylog';
29
27
  import CodeIcon from '@material-ui/icons/Code';
30
28
 
31
29
  const techdocsStorageApiRef = createApiRef({
@@ -183,11 +181,11 @@ const DocsResultListItem = ({
183
181
  const classes = useStyles$2();
184
182
  const TextItem = () => {
185
183
  var _a;
186
- return /* @__PURE__ */ React__default.createElement(ListItemText, {
184
+ return /* @__PURE__ */ React.createElement(ListItemText, {
187
185
  className: classes.itemText,
188
186
  primaryTypographyProps: {variant: "h6"},
189
187
  primary: title ? title : `${result.title} | ${(_a = result.entityTitle) != null ? _a : result.name} docs`,
190
- secondary: /* @__PURE__ */ React__default.createElement(TextTruncate, {
188
+ secondary: /* @__PURE__ */ React.createElement(TextTruncate, {
191
189
  line: lineClamp,
192
190
  truncateText: "\u2026",
193
191
  text: result.text,
@@ -195,36 +193,33 @@ const DocsResultListItem = ({
195
193
  })
196
194
  });
197
195
  };
198
- const LinkWrapper = ({children}) => asLink ? /* @__PURE__ */ React__default.createElement(Link, {
196
+ const LinkWrapper = ({children}) => asLink ? /* @__PURE__ */ React.createElement(Link, {
199
197
  to: result.location
200
- }, children) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children);
201
- const ListItemWrapper = ({children}) => asListItem ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(ListItem, {
198
+ }, children) : /* @__PURE__ */ React.createElement(React.Fragment, null, children);
199
+ const ListItemWrapper = ({children}) => asListItem ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ListItem, {
202
200
  alignItems: "flex-start",
203
201
  className: classes.flexContainer
204
- }, children), /* @__PURE__ */ React__default.createElement(Divider, {
202
+ }, children), /* @__PURE__ */ React.createElement(Divider, {
205
203
  component: "li"
206
- })) : /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, children);
207
- return /* @__PURE__ */ React__default.createElement(LinkWrapper, null, /* @__PURE__ */ React__default.createElement(ListItemWrapper, null, /* @__PURE__ */ React__default.createElement(TextItem, null)));
204
+ })) : /* @__PURE__ */ React.createElement(React.Fragment, null, children);
205
+ return /* @__PURE__ */ React.createElement(LinkWrapper, null, /* @__PURE__ */ React.createElement(ListItemWrapper, null, /* @__PURE__ */ React.createElement(TextItem, null)));
208
206
  };
209
207
 
210
208
  const rootRouteRef = createRouteRef({
211
- id: "techdocs-index-page",
212
- title: "TechDocs Landing Page"
209
+ id: "techdocs:index-page"
213
210
  });
214
211
  const rootDocsRouteRef = createRouteRef({
215
- id: "techdocs-reader-page",
216
- title: "Docs",
212
+ id: "techdocs:reader-page",
217
213
  params: ["namespace", "kind", "name"]
218
214
  });
219
215
  const rootCatalogDocsRouteRef = createRouteRef({
220
- id: "catalog-techdocs-reader-view",
221
- title: "Docs"
216
+ id: "techdocs:catalog-reader-view"
222
217
  });
223
218
 
224
219
  function createCopyDocsUrlAction(copyToClipboard) {
225
220
  return (row) => {
226
221
  return {
227
- icon: () => /* @__PURE__ */ React__default.createElement(ShareIcon, {
222
+ icon: () => /* @__PURE__ */ React.createElement(ShareIcon, {
228
223
  fontSize: "small"
229
224
  }),
230
225
  tooltip: "Click to copy documentation link to clipboard",
@@ -258,8 +253,8 @@ function createNameColumn() {
258
253
  title: "Document",
259
254
  field: "entity.metadata.name",
260
255
  highlight: true,
261
- render: (row) => /* @__PURE__ */ React__default.createElement(SubvalueCell, {
262
- value: /* @__PURE__ */ React__default.createElement(Link, {
256
+ render: (row) => /* @__PURE__ */ React.createElement(SubvalueCell, {
257
+ value: /* @__PURE__ */ React.createElement(Link, {
263
258
  to: row.resolved.docsUrl
264
259
  }, customTitle(row.entity)),
265
260
  subvalue: row.entity.metadata.description
@@ -270,7 +265,7 @@ function createOwnerColumn() {
270
265
  return {
271
266
  title: "Owner",
272
267
  field: "resolved.ownedByRelationsTitle",
273
- render: ({resolved}) => /* @__PURE__ */ React__default.createElement(EntityRefLinks, {
268
+ render: ({resolved}) => /* @__PURE__ */ React.createElement(EntityRefLinks, {
274
269
  entityRefs: resolved.ownedByRelations,
275
270
  defaultKind: "group"
276
271
  })
@@ -299,7 +294,7 @@ const DocsTable$1 = ({
299
294
  }) => {
300
295
  const [, copyToClipboard] = useCopyToClipboard();
301
296
  const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);
302
- const toLowerMaybe = useApi(configApiRef).getOptionalBoolean("techdocs.legacyUseCaseSensitiveTripletPaths") ? (str) => str : (str) => str.toLocaleLowerCase();
297
+ const toLowerMaybe = useApi(configApiRef).getOptionalBoolean("techdocs.legacyUseCaseSensitiveTripletPaths") ? (str) => str : (str) => str.toLocaleLowerCase("en-US");
303
298
  if (!entities)
304
299
  return null;
305
300
  const documents = entities.map((entity) => {
@@ -326,7 +321,7 @@ const DocsTable$1 = ({
326
321
  const defaultActions = [
327
322
  createCopyDocsUrlAction(copyToClipboard)
328
323
  ];
329
- return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, loading || documents && documents.length > 0 ? /* @__PURE__ */ React__default.createElement(Table, {
324
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, loading || documents && documents.length > 0 ? /* @__PURE__ */ React.createElement(Table, {
330
325
  isLoading: loading,
331
326
  options: {
332
327
  paging: true,
@@ -338,11 +333,11 @@ const DocsTable$1 = ({
338
333
  columns: columns || defaultColumns,
339
334
  actions: actions || defaultActions,
340
335
  title: title ? `${title} (${documents.length})` : `All (${documents.length})`
341
- }) : /* @__PURE__ */ React__default.createElement(EmptyState, {
336
+ }) : /* @__PURE__ */ React.createElement(EmptyState, {
342
337
  missing: "data",
343
338
  title: "No documents to show",
344
339
  description: "Create your own document. Check out our Getting Started Information",
345
- action: /* @__PURE__ */ React__default.createElement(Button, {
340
+ action: /* @__PURE__ */ React.createElement(Button, {
346
341
  color: "primary",
347
342
  to: "https://backstage.io/docs/features/techdocs/getting-started",
348
343
  variant: "contained"
@@ -369,15 +364,15 @@ const EntityListDocsTable = ({
369
364
  createStarEntityAction(isStarredEntity, toggleStarredEntity)
370
365
  ];
371
366
  if (error) {
372
- return /* @__PURE__ */ React__default.createElement(WarningPanel, {
367
+ return /* @__PURE__ */ React.createElement(WarningPanel, {
373
368
  severity: "error",
374
369
  title: "Could not load available documentation."
375
- }, /* @__PURE__ */ React__default.createElement(CodeSnippet, {
370
+ }, /* @__PURE__ */ React.createElement(CodeSnippet, {
376
371
  language: "text",
377
372
  text: error.toString()
378
373
  }));
379
374
  }
380
- return /* @__PURE__ */ React__default.createElement(DocsTable$1, {
375
+ return /* @__PURE__ */ React.createElement(DocsTable$1, {
381
376
  title,
382
377
  entities,
383
378
  loading,
@@ -392,7 +387,7 @@ const TechDocsPageWrapper = ({children}) => {
392
387
  var _a;
393
388
  const configApi = useApi(configApiRef);
394
389
  const generatedSubtitle = `Documentation available in ${(_a = configApi.getOptionalString("organization.name")) != null ? _a : "Backstage"}`;
395
- return /* @__PURE__ */ React__default.createElement(PageWithHeader, {
390
+ return /* @__PURE__ */ React.createElement(PageWithHeader, {
396
391
  title: "Documentation",
397
392
  subtitle: generatedSubtitle,
398
393
  themeId: "documentation"
@@ -421,11 +416,11 @@ const DefaultTechDocsHome = ({
421
416
  columns,
422
417
  actions
423
418
  }) => {
424
- return /* @__PURE__ */ React__default.createElement(TechDocsPageWrapper, null, /* @__PURE__ */ React__default.createElement(Content, null, /* @__PURE__ */ React__default.createElement(ContentHeader, {
419
+ return /* @__PURE__ */ React.createElement(TechDocsPageWrapper, null, /* @__PURE__ */ React.createElement(Content, null, /* @__PURE__ */ React.createElement(ContentHeader, {
425
420
  title: ""
426
- }, /* @__PURE__ */ React__default.createElement(SupportButton, null, "Discover documentation in your ecosystem.")), /* @__PURE__ */ React__default.createElement(EntityListProvider, null, /* @__PURE__ */ React__default.createElement(FilteredEntityLayout, null, /* @__PURE__ */ React__default.createElement(FilterContainer, null, /* @__PURE__ */ React__default.createElement(TechDocsPicker, null), /* @__PURE__ */ React__default.createElement(UserListPicker, {
421
+ }, /* @__PURE__ */ React.createElement(SupportButton, null, "Discover documentation in your ecosystem.")), /* @__PURE__ */ React.createElement(EntityListProvider, null, /* @__PURE__ */ React.createElement(FilteredEntityLayout, null, /* @__PURE__ */ React.createElement(FilterContainer, null, /* @__PURE__ */ React.createElement(TechDocsPicker, null), /* @__PURE__ */ React.createElement(UserListPicker, {
427
422
  initialFilter
428
- }), /* @__PURE__ */ React__default.createElement(EntityOwnerPicker, null), /* @__PURE__ */ React__default.createElement(EntityTagPicker, null)), /* @__PURE__ */ React__default.createElement(EntityListContainer, null, /* @__PURE__ */ React__default.createElement(EntityListDocsTable, {
423
+ }), /* @__PURE__ */ React.createElement(EntityOwnerPicker, null), /* @__PURE__ */ React.createElement(EntityTagPicker, null)), /* @__PURE__ */ React.createElement(EntityListContainer, null, /* @__PURE__ */ React.createElement(EntityListDocsTable, {
429
424
  actions,
430
425
  columns
431
426
  }))))));
@@ -435,18 +430,18 @@ const DocsCardGrid$1 = ({
435
430
  entities
436
431
  }) => {
437
432
  const getRouteToReaderPageFor = useRouteRef(rootDocsRouteRef);
438
- const toLowerMaybe = useApi(configApiRef).getOptionalBoolean("techdocs.legacyUseCaseSensitiveTripletPaths") ? (str) => str : (str) => str.toLocaleLowerCase();
433
+ const toLowerMaybe = useApi(configApiRef).getOptionalBoolean("techdocs.legacyUseCaseSensitiveTripletPaths") ? (str) => str : (str) => str.toLocaleLowerCase("en-US");
439
434
  if (!entities)
440
435
  return null;
441
- return /* @__PURE__ */ React__default.createElement(ItemCardGrid, {
436
+ return /* @__PURE__ */ React.createElement(ItemCardGrid, {
442
437
  "data-testid": "docs-explore"
443
438
  }, !(entities == null ? void 0 : entities.length) ? null : entities.map((entity, index) => {
444
439
  var _a, _b;
445
- return /* @__PURE__ */ React__default.createElement(Card, {
440
+ return /* @__PURE__ */ React.createElement(Card, {
446
441
  key: index
447
- }, /* @__PURE__ */ React__default.createElement(CardMedia, null, /* @__PURE__ */ React__default.createElement(ItemCardHeader, {
442
+ }, /* @__PURE__ */ React.createElement(CardMedia, null, /* @__PURE__ */ React.createElement(ItemCardHeader, {
448
443
  title: (_a = entity.metadata.title) != null ? _a : entity.metadata.name
449
- })), /* @__PURE__ */ React__default.createElement(CardContent, null, entity.metadata.description), /* @__PURE__ */ React__default.createElement(CardActions, null, /* @__PURE__ */ React__default.createElement(Button, {
444
+ })), /* @__PURE__ */ React.createElement(CardContent, null, entity.metadata.description), /* @__PURE__ */ React.createElement(CardActions, null, /* @__PURE__ */ React.createElement(Button, {
450
445
  to: getRouteToReaderPageFor({
451
446
  namespace: toLowerMaybe((_b = entity.metadata.namespace) != null ? _b : "default"),
452
447
  kind: toLowerMaybe(entity.kind),
@@ -466,22 +461,22 @@ var DocsCardGrid$2 = /*#__PURE__*/Object.freeze({
466
461
  const EntityListDocsGrid = () => {
467
462
  const {loading, error, entities} = useEntityListProvider();
468
463
  if (error) {
469
- return /* @__PURE__ */ React__default.createElement(WarningPanel, {
464
+ return /* @__PURE__ */ React.createElement(WarningPanel, {
470
465
  severity: "error",
471
466
  title: "Could not load available documentation."
472
- }, /* @__PURE__ */ React__default.createElement(CodeSnippet, {
467
+ }, /* @__PURE__ */ React.createElement(CodeSnippet, {
473
468
  language: "text",
474
469
  text: error.toString()
475
470
  }));
476
471
  }
477
472
  if (loading || !entities) {
478
- return /* @__PURE__ */ React__default.createElement(Progress, null);
473
+ return /* @__PURE__ */ React.createElement(Progress, null);
479
474
  }
480
475
  entities.sort((a, b) => {
481
476
  var _a, _b;
482
477
  return ((_a = a.metadata.title) != null ? _a : a.metadata.name).localeCompare((_b = b.metadata.title) != null ? _b : b.metadata.name);
483
478
  });
484
- return /* @__PURE__ */ React__default.createElement(DocsCardGrid$1, {
479
+ return /* @__PURE__ */ React.createElement(DocsCardGrid$1, {
485
480
  entities
486
481
  });
487
482
  };
@@ -635,7 +630,7 @@ Feedback:`);
635
630
  default:
636
631
  return dom;
637
632
  }
638
- ReactDOM.render(React__default.createElement(FeedbackOutlinedIcon), feedbackLink);
633
+ ReactDOM.render(React.createElement(FeedbackOutlinedIcon), feedbackLink);
639
634
  feedbackLink.style.paddingLeft = "5px";
640
635
  feedbackLink.title = "Leave feedback for this page";
641
636
  feedbackLink.id = "git-feedback-link";
@@ -836,10 +831,10 @@ const TechDocsSearchBar = ({
836
831
  navigate(location);
837
832
  }
838
833
  };
839
- return /* @__PURE__ */ React__default.createElement(Grid, {
834
+ return /* @__PURE__ */ React.createElement(Grid, {
840
835
  item: true,
841
836
  xs: 12
842
- }, /* @__PURE__ */ React__default.createElement(Autocomplete, {
837
+ }, /* @__PURE__ */ React.createElement(Autocomplete, {
843
838
  "data-testid": "techdocs-search-bar",
844
839
  size: "small",
845
840
  open,
@@ -858,7 +853,7 @@ const TechDocsSearchBar = ({
858
853
  noOptionsText: "No results found",
859
854
  value: null,
860
855
  options,
861
- renderOption: ({document}) => /* @__PURE__ */ React__default.createElement(DocsResultListItem, {
856
+ renderOption: ({document}) => /* @__PURE__ */ React.createElement(DocsResultListItem, {
862
857
  result: document,
863
858
  lineClamp: 3,
864
859
  asListItem: false,
@@ -866,7 +861,7 @@ const TechDocsSearchBar = ({
866
861
  title: document.title
867
862
  }),
868
863
  loading,
869
- renderInput: (params) => /* @__PURE__ */ React__default.createElement(TextField, {
864
+ renderInput: (params) => /* @__PURE__ */ React.createElement(TextField, {
870
865
  ...params,
871
866
  "data-testid": "techdocs-search-bar-input",
872
867
  variant: "outlined",
@@ -876,13 +871,13 @@ const TechDocsSearchBar = ({
876
871
  onChange: handleQuery,
877
872
  InputProps: {
878
873
  ...params.InputProps,
879
- startAdornment: /* @__PURE__ */ React__default.createElement(InputAdornment, {
874
+ startAdornment: /* @__PURE__ */ React.createElement(InputAdornment, {
880
875
  position: "start"
881
- }, /* @__PURE__ */ React__default.createElement(IconButton, {
876
+ }, /* @__PURE__ */ React.createElement(IconButton, {
882
877
  "aria-label": "Query",
883
878
  disabled: true
884
- }, /* @__PURE__ */ React__default.createElement(SearchIcon, null))),
885
- endAdornment: /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, loading ? /* @__PURE__ */ React__default.createElement(CircularProgress, {
879
+ }, /* @__PURE__ */ React.createElement(SearchIcon, null))),
880
+ endAdornment: /* @__PURE__ */ React.createElement(React.Fragment, null, loading ? /* @__PURE__ */ React.createElement(CircularProgress, {
886
881
  color: "inherit",
887
882
  size: 20
888
883
  }) : null, params.InputProps.endAdornment)
@@ -897,13 +892,14 @@ const TechDocsSearch = (props) => {
897
892
  pageCursor: "",
898
893
  filters: props.entityId
899
894
  };
900
- return /* @__PURE__ */ React__default.createElement(SearchContextProvider, {
895
+ return /* @__PURE__ */ React.createElement(SearchContextProvider, {
901
896
  initialState
902
- }, /* @__PURE__ */ React__default.createElement(TechDocsSearchBar, {
897
+ }, /* @__PURE__ */ React.createElement(TechDocsSearchBar, {
903
898
  ...props
904
899
  }));
905
900
  };
906
901
 
902
+ const LazyLog = React.lazy(() => import('react-lazylog/build/LazyLog'));
907
903
  const useDrawerStyles = makeStyles((theme) => createStyles({
908
904
  paper: {
909
905
  width: "100%",
@@ -945,13 +941,15 @@ const TechDocsBuildLogsDrawerContent = ({
945
941
  title: "Close the drawer",
946
942
  onClick: onClose,
947
943
  color: "inherit"
948
- }, /* @__PURE__ */ React.createElement(Close, null))), /* @__PURE__ */ React.createElement(LazyLog, {
944
+ }, /* @__PURE__ */ React.createElement(Close, null))), /* @__PURE__ */ React.createElement(Suspense, {
945
+ fallback: /* @__PURE__ */ React.createElement(Progress, null)
946
+ }, /* @__PURE__ */ React.createElement(LazyLog, {
949
947
  text: buildLog.length === 0 ? "Waiting for logs..." : buildLog.join("\n"),
950
948
  extraLines: 1,
951
949
  follow: true,
952
950
  selectableLines: true,
953
951
  enableSearch: true
954
- }));
952
+ })));
955
953
  };
956
954
  const TechDocsBuildLogs = ({buildLog}) => {
957
955
  const classes = useDrawerStyles();
@@ -976,7 +974,7 @@ const TechDocsNotFound = ({errorMessage}) => {
976
974
  if (techdocsBuilder !== "local") {
977
975
  additionalInfo = "Note that techdocs.builder is not set to 'local' in your config, which means this Backstage app will not generate docs if they are not found. Make sure the project's docs are generated and published by some external process (e.g. CI/CD pipeline). Or change techdocs.builder to 'local' to generate docs from this Backstage instance.";
978
976
  }
979
- return /* @__PURE__ */ React__default.createElement(ErrorPage, {
977
+ return /* @__PURE__ */ React.createElement(ErrorPage, {
980
978
  status: "404",
981
979
  statusMessage: errorMessage || "Documentation not found",
982
980
  additionalInfo
@@ -999,64 +997,64 @@ const TechDocsStateIndicator = () => {
999
997
  syncErrorMessage,
1000
998
  buildLog
1001
999
  } = useTechDocsReader();
1002
- const ReaderProgress = state === "CHECKING" ? /* @__PURE__ */ React__default.createElement(Progress, null) : null;
1000
+ const ReaderProgress = state === "CHECKING" ? /* @__PURE__ */ React.createElement(Progress, null) : null;
1003
1001
  if (state === "INITIAL_BUILD") {
1004
- StateAlert = /* @__PURE__ */ React__default.createElement(Alert, {
1002
+ StateAlert = /* @__PURE__ */ React.createElement(Alert, {
1005
1003
  variant: "outlined",
1006
1004
  severity: "info",
1007
- icon: /* @__PURE__ */ React__default.createElement(CircularProgress, {
1005
+ icon: /* @__PURE__ */ React.createElement(CircularProgress, {
1008
1006
  size: "24px"
1009
1007
  }),
1010
- action: /* @__PURE__ */ React__default.createElement(TechDocsBuildLogs, {
1008
+ action: /* @__PURE__ */ React.createElement(TechDocsBuildLogs, {
1011
1009
  buildLog
1012
1010
  })
1013
1011
  }, "Documentation is accessed for the first time and is being prepared. The subsequent loads are much faster.");
1014
1012
  }
1015
1013
  if (state === "CONTENT_STALE_REFRESHING") {
1016
- StateAlert = /* @__PURE__ */ React__default.createElement(Alert, {
1014
+ StateAlert = /* @__PURE__ */ React.createElement(Alert, {
1017
1015
  variant: "outlined",
1018
1016
  severity: "info",
1019
- icon: /* @__PURE__ */ React__default.createElement(CircularProgress, {
1017
+ icon: /* @__PURE__ */ React.createElement(CircularProgress, {
1020
1018
  size: "24px"
1021
1019
  }),
1022
- action: /* @__PURE__ */ React__default.createElement(TechDocsBuildLogs, {
1020
+ action: /* @__PURE__ */ React.createElement(TechDocsBuildLogs, {
1023
1021
  buildLog
1024
1022
  })
1025
1023
  }, "A newer version of this documentation is being prepared and will be available shortly.");
1026
1024
  }
1027
1025
  if (state === "CONTENT_STALE_READY") {
1028
- StateAlert = /* @__PURE__ */ React__default.createElement(Alert, {
1026
+ StateAlert = /* @__PURE__ */ React.createElement(Alert, {
1029
1027
  variant: "outlined",
1030
1028
  severity: "success",
1031
- action: /* @__PURE__ */ React__default.createElement(Button$1, {
1029
+ action: /* @__PURE__ */ React.createElement(Button$1, {
1032
1030
  color: "inherit",
1033
1031
  onClick: () => contentReload()
1034
1032
  }, "Refresh")
1035
1033
  }, "A newer version of this documentation is now available, please refresh to view.");
1036
1034
  }
1037
1035
  if (state === "CONTENT_STALE_ERROR") {
1038
- StateAlert = /* @__PURE__ */ React__default.createElement(Alert, {
1036
+ StateAlert = /* @__PURE__ */ React.createElement(Alert, {
1039
1037
  variant: "outlined",
1040
1038
  severity: "error",
1041
- action: /* @__PURE__ */ React__default.createElement(TechDocsBuildLogs, {
1039
+ action: /* @__PURE__ */ React.createElement(TechDocsBuildLogs, {
1042
1040
  buildLog
1043
1041
  }),
1044
1042
  classes: {message: classes.message}
1045
1043
  }, "Building a newer version of this documentation failed.", " ", syncErrorMessage);
1046
1044
  }
1047
1045
  if (state === "CONTENT_NOT_FOUND") {
1048
- StateAlert = /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, syncErrorMessage && /* @__PURE__ */ React__default.createElement(Alert, {
1046
+ StateAlert = /* @__PURE__ */ React.createElement(React.Fragment, null, syncErrorMessage && /* @__PURE__ */ React.createElement(Alert, {
1049
1047
  variant: "outlined",
1050
1048
  severity: "error",
1051
- action: /* @__PURE__ */ React__default.createElement(TechDocsBuildLogs, {
1049
+ action: /* @__PURE__ */ React.createElement(TechDocsBuildLogs, {
1052
1050
  buildLog
1053
1051
  }),
1054
1052
  classes: {message: classes.message}
1055
- }, "Building a newer version of this documentation failed.", " ", syncErrorMessage), /* @__PURE__ */ React__default.createElement(TechDocsNotFound, {
1053
+ }, "Building a newer version of this documentation failed.", " ", syncErrorMessage), /* @__PURE__ */ React.createElement(TechDocsNotFound, {
1056
1054
  errorMessage: contentErrorMessage
1057
1055
  }));
1058
1056
  }
1059
- return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, ReaderProgress, StateAlert);
1057
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, ReaderProgress, StateAlert);
1060
1058
  };
1061
1059
 
1062
1060
  function calculateDisplayState({
@@ -1217,23 +1215,29 @@ const useStyles = makeStyles((theme) => ({
1217
1215
  }
1218
1216
  }));
1219
1217
  const TechDocsReaderContext = createContext({});
1220
- const TechDocsReaderProvider = ({children}) => {
1221
- const {namespace = "", kind = "", name = "", "*": path} = useParams();
1218
+ const TechDocsReaderProvider = ({
1219
+ children,
1220
+ entityRef
1221
+ }) => {
1222
+ const {"*": path} = useParams();
1223
+ const {kind, namespace, name} = entityRef;
1222
1224
  const value = useReaderState(kind, namespace, name, path);
1223
- return /* @__PURE__ */ React__default.createElement(TechDocsReaderContext.Provider, {
1225
+ return /* @__PURE__ */ React.createElement(TechDocsReaderContext.Provider, {
1224
1226
  value
1225
1227
  }, children);
1226
1228
  };
1227
- const withTechDocsReaderProvider = (Component) => (props) => /* @__PURE__ */ React__default.createElement(TechDocsReaderProvider, null, /* @__PURE__ */ React__default.createElement(Component, {
1229
+ const withTechDocsReaderProvider = (Component, entityRef) => (props) => /* @__PURE__ */ React.createElement(TechDocsReaderProvider, {
1230
+ entityRef
1231
+ }, /* @__PURE__ */ React.createElement(Component, {
1228
1232
  ...props
1229
1233
  }));
1230
1234
  const useTechDocsReader = () => useContext(TechDocsReaderContext);
1231
- const useTechDocsReaderDom = () => {
1235
+ const useTechDocsReaderDom = (entityRef) => {
1232
1236
  const navigate = useNavigate$1();
1233
1237
  const theme = useTheme();
1234
1238
  const techdocsStorageApi = useApi(techdocsStorageApiRef);
1235
1239
  const scmIntegrationsApi = useApi(scmIntegrationsApiRef);
1236
- const {namespace = "", kind = "", name = ""} = useParams();
1240
+ const {namespace = "", kind = "", name = ""} = entityRef;
1237
1241
  const {state, path, content: rawPage} = useTechDocsReader();
1238
1242
  const [sidebars, setSidebars] = useState();
1239
1243
  const [dom, setDom] = useState(null);
@@ -1288,6 +1292,7 @@ const useTechDocsReaderDom = () => {
1288
1292
  .md-footer-nav__link { width: 20rem;}
1289
1293
  .md-content { margin-left: 20rem; max-width: calc(100% - 20rem * 2 - 3rem); }
1290
1294
  .md-typeset { font-size: 1rem; }
1295
+ .md-typeset h1, .md-typeset h2, .md-typeset h3 { font-weight: bold; }
1291
1296
  .md-nav { font-size: 1rem; }
1292
1297
  .md-grid { max-width: 90vw; margin: 0 }
1293
1298
  .md-typeset table:not([class]) {
@@ -1303,6 +1308,16 @@ const useTechDocsReaderDom = () => {
1303
1308
  .md-typeset .admonition, .md-typeset details {
1304
1309
  font-size: 1rem;
1305
1310
  }
1311
+
1312
+ /* style the checkmarks of the task list */
1313
+ .md-typeset .task-list-control .task-list-indicator::before {
1314
+ background-color: ${theme.palette.action.disabledBackground};
1315
+ }
1316
+ .md-typeset .task-list-control [type="checkbox"]:checked + .task-list-indicator:before {
1317
+ background-color: ${theme.palette.success.main};
1318
+ }
1319
+ /**/
1320
+
1306
1321
  @media screen and (max-width: 76.1875em) {
1307
1322
  .md-nav {
1308
1323
  background-color: ${theme.palette.background.default};
@@ -1369,8 +1384,8 @@ const useTechDocsReaderDom = () => {
1369
1384
  --md-details-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg>');
1370
1385
  }
1371
1386
  :host {
1372
- --md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2A10 10 0 002 12a10 10 0 0010 10 10 10 0 0010-10A10 10 0 0012 2z"/></svg>');
1373
- --md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2m-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>');
1387
+ --md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>');
1388
+ --md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>');
1374
1389
  }
1375
1390
  `
1376
1391
  })
@@ -1380,9 +1395,11 @@ const useTechDocsReaderDom = () => {
1380
1395
  namespace,
1381
1396
  scmIntegrationsApi,
1382
1397
  techdocsStorageApi,
1398
+ theme.palette.action.disabledBackground,
1383
1399
  theme.palette.background.default,
1384
1400
  theme.palette.background.paper,
1385
1401
  theme.palette.primary.main,
1402
+ theme.palette.success.main,
1386
1403
  theme.palette.text.primary,
1387
1404
  theme.typography.fontFamily
1388
1405
  ]);
@@ -1445,7 +1462,7 @@ const TheReader = ({
1445
1462
  }) => {
1446
1463
  var _a, _b;
1447
1464
  const classes = useStyles();
1448
- const dom = useTechDocsReaderDom();
1465
+ const dom = useTechDocsReaderDom(entityRef);
1449
1466
  const shadowDomRef = useRef(null);
1450
1467
  const onReadyRef = useRef(onReady);
1451
1468
  useEffect(() => {
@@ -1460,12 +1477,12 @@ const TheReader = ({
1460
1477
  shadowRoot.appendChild(dom);
1461
1478
  onReadyRef.current();
1462
1479
  }, [dom]);
1463
- return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(TechDocsStateIndicator, null), withSearch && ((_b = (_a = shadowDomRef == null ? void 0 : shadowDomRef.current) == null ? void 0 : _a.shadowRoot) == null ? void 0 : _b.innerHTML) && /* @__PURE__ */ React__default.createElement(Grid, {
1480
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(TechDocsStateIndicator, null), withSearch && ((_b = (_a = shadowDomRef == null ? void 0 : shadowDomRef.current) == null ? void 0 : _a.shadowRoot) == null ? void 0 : _b.innerHTML) && /* @__PURE__ */ React.createElement(Grid, {
1464
1481
  container: true,
1465
1482
  className: classes.searchBar
1466
- }, /* @__PURE__ */ React__default.createElement(TechDocsSearch, {
1483
+ }, /* @__PURE__ */ React.createElement(TechDocsSearch, {
1467
1484
  entityId: entityRef
1468
- })), /* @__PURE__ */ React__default.createElement("div", {
1485
+ })), /* @__PURE__ */ React.createElement("div", {
1469
1486
  "data-testid": "techdocs-content-shadowroot",
1470
1487
  ref: shadowDomRef
1471
1488
  }));
@@ -1475,7 +1492,9 @@ const Reader = ({
1475
1492
  onReady = () => {
1476
1493
  },
1477
1494
  withSearch = true
1478
- }) => /* @__PURE__ */ React__default.createElement(TechDocsReaderProvider, null, /* @__PURE__ */ React__default.createElement(TheReader, {
1495
+ }) => /* @__PURE__ */ React.createElement(TechDocsReaderProvider, {
1496
+ entityRef
1497
+ }, /* @__PURE__ */ React.createElement(TheReader, {
1479
1498
  entityRef,
1480
1499
  onReady,
1481
1500
  withSearch
@@ -1492,34 +1511,34 @@ const TechDocsPageHeader = ({
1492
1511
  const lifecycle = spec == null ? void 0 : spec.lifecycle;
1493
1512
  const ownedByRelations = entityMetadata ? getEntityRelations(entityMetadata, RELATION_OWNED_BY) : [];
1494
1513
  const docsRootLink = useRouteRef(rootRouteRef)();
1495
- const labels = /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(HeaderLabel, {
1514
+ const labels = /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(HeaderLabel, {
1496
1515
  label: "Component",
1497
- value: /* @__PURE__ */ React__default.createElement(EntityRefLink, {
1516
+ value: /* @__PURE__ */ React.createElement(EntityRefLink, {
1498
1517
  color: "inherit",
1499
1518
  entityRef,
1500
1519
  defaultKind: "Component"
1501
1520
  })
1502
- }), ownedByRelations.length > 0 && /* @__PURE__ */ React__default.createElement(HeaderLabel, {
1521
+ }), ownedByRelations.length > 0 && /* @__PURE__ */ React.createElement(HeaderLabel, {
1503
1522
  label: "Owner",
1504
- value: /* @__PURE__ */ React__default.createElement(EntityRefLinks, {
1523
+ value: /* @__PURE__ */ React.createElement(EntityRefLinks, {
1505
1524
  color: "inherit",
1506
1525
  entityRefs: ownedByRelations,
1507
1526
  defaultKind: "group"
1508
1527
  })
1509
- }), lifecycle ? /* @__PURE__ */ React__default.createElement(HeaderLabel, {
1528
+ }), lifecycle ? /* @__PURE__ */ React.createElement(HeaderLabel, {
1510
1529
  label: "Lifecycle",
1511
1530
  value: lifecycle
1512
- }) : null, locationMetadata && locationMetadata.type !== "dir" && locationMetadata.type !== "file" ? /* @__PURE__ */ React__default.createElement(HeaderLabel, {
1531
+ }) : null, locationMetadata && locationMetadata.type !== "dir" && locationMetadata.type !== "file" ? /* @__PURE__ */ React.createElement(HeaderLabel, {
1513
1532
  label: "",
1514
- value: /* @__PURE__ */ React__default.createElement("a", {
1533
+ value: /* @__PURE__ */ React.createElement("a", {
1515
1534
  href: locationMetadata.target,
1516
1535
  target: "_blank",
1517
1536
  rel: "noopener noreferrer"
1518
- }, /* @__PURE__ */ React__default.createElement(CodeIcon, {
1537
+ }, /* @__PURE__ */ React.createElement(CodeIcon, {
1519
1538
  style: {marginTop: "-25px", fill: "#fff"}
1520
1539
  }))
1521
1540
  }) : null);
1522
- return /* @__PURE__ */ React__default.createElement(Header, {
1541
+ return /* @__PURE__ */ React.createElement(Header, {
1523
1542
  title: siteName ? siteName : ".",
1524
1543
  pageTitleOverride: siteName || name,
1525
1544
  subtitle: siteDescription && siteDescription !== "None" ? siteDescription : "",
@@ -1545,13 +1564,13 @@ const LegacyTechDocsPage = () => {
1545
1564
  setDocumentReady(true);
1546
1565
  }, [setDocumentReady]);
1547
1566
  if (entityMetadataError) {
1548
- return /* @__PURE__ */ React__default.createElement(TechDocsNotFound, {
1567
+ return /* @__PURE__ */ React.createElement(TechDocsNotFound, {
1549
1568
  errorMessage: entityMetadataError.message
1550
1569
  });
1551
1570
  }
1552
- return /* @__PURE__ */ React__default.createElement(Page, {
1571
+ return /* @__PURE__ */ React.createElement(Page, {
1553
1572
  themeId: "documentation"
1554
- }, /* @__PURE__ */ React__default.createElement(TechDocsPageHeader, {
1573
+ }, /* @__PURE__ */ React.createElement(TechDocsPageHeader, {
1555
1574
  techDocsMetadata: techdocsMetadataValue,
1556
1575
  entityMetadata: entityMetadataValue,
1557
1576
  entityRef: {
@@ -1559,9 +1578,9 @@ const LegacyTechDocsPage = () => {
1559
1578
  namespace,
1560
1579
  name
1561
1580
  }
1562
- }), /* @__PURE__ */ React__default.createElement(Content, {
1581
+ }), /* @__PURE__ */ React.createElement(Content, {
1563
1582
  "data-testid": "techdocs-content"
1564
- }, /* @__PURE__ */ React__default.createElement(Reader, {
1583
+ }, /* @__PURE__ */ React.createElement(Reader, {
1565
1584
  onReady,
1566
1585
  entityRef: {
1567
1586
  kind,
@@ -1589,13 +1608,13 @@ const TechDocsPage = ({children}) => {
1589
1608
  setDocumentReady(true);
1590
1609
  }, [setDocumentReady]);
1591
1610
  if (entityMetadataError) {
1592
- return /* @__PURE__ */ React__default.createElement(TechDocsNotFound, {
1611
+ return /* @__PURE__ */ React.createElement(TechDocsNotFound, {
1593
1612
  errorMessage: entityMetadataError.message
1594
1613
  });
1595
1614
  }
1596
1615
  if (!children)
1597
- return outlet || /* @__PURE__ */ React__default.createElement(LegacyTechDocsPage, null);
1598
- return /* @__PURE__ */ React__default.createElement(Page, {
1616
+ return outlet || /* @__PURE__ */ React.createElement(LegacyTechDocsPage, null);
1617
+ return /* @__PURE__ */ React.createElement(Page, {
1599
1618
  themeId: "documentation"
1600
1619
  }, children instanceof Function ? children({
1601
1620
  techdocsMetadataValue,
@@ -1637,12 +1656,12 @@ const CustomPanel = ({
1637
1656
  }
1638
1657
  return typeof config.filterPredicate === "function" && config.filterPredicate(entity);
1639
1658
  });
1640
- return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(ContentHeader, {
1659
+ return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(ContentHeader, {
1641
1660
  title: config.title,
1642
1661
  description: config.description
1643
- }, index === 0 ? /* @__PURE__ */ React__default.createElement(SupportButton, null, "Discover documentation in your ecosystem.") : null), /* @__PURE__ */ React__default.createElement("div", {
1662
+ }, index === 0 ? /* @__PURE__ */ React.createElement(SupportButton, null, "Discover documentation in your ecosystem.") : null), /* @__PURE__ */ React.createElement("div", {
1644
1663
  className: classes.panelContainer
1645
- }, /* @__PURE__ */ React__default.createElement(Panel, {
1664
+ }, /* @__PURE__ */ React.createElement(Panel, {
1646
1665
  "data-testid": "techdocs-custom-panel",
1647
1666
  entities: shownEntities
1648
1667
  })));
@@ -1677,27 +1696,27 @@ const TechDocsCustomHome = ({
1677
1696
  });
1678
1697
  const currentTabConfig = tabsConfig[selectedTab];
1679
1698
  if (loading) {
1680
- return /* @__PURE__ */ React__default.createElement(TechDocsPageWrapper, null, /* @__PURE__ */ React__default.createElement(Content, null, /* @__PURE__ */ React__default.createElement(Progress, null)));
1699
+ return /* @__PURE__ */ React.createElement(TechDocsPageWrapper, null, /* @__PURE__ */ React.createElement(Content, null, /* @__PURE__ */ React.createElement(Progress, null)));
1681
1700
  }
1682
1701
  if (error) {
1683
- return /* @__PURE__ */ React__default.createElement(TechDocsPageWrapper, null, /* @__PURE__ */ React__default.createElement(Content, null, /* @__PURE__ */ React__default.createElement(WarningPanel, {
1702
+ return /* @__PURE__ */ React.createElement(TechDocsPageWrapper, null, /* @__PURE__ */ React.createElement(Content, null, /* @__PURE__ */ React.createElement(WarningPanel, {
1684
1703
  severity: "error",
1685
1704
  title: "Could not load available documentation."
1686
- }, /* @__PURE__ */ React__default.createElement(CodeSnippet, {
1705
+ }, /* @__PURE__ */ React.createElement(CodeSnippet, {
1687
1706
  language: "text",
1688
1707
  text: error.toString()
1689
1708
  }))));
1690
1709
  }
1691
- return /* @__PURE__ */ React__default.createElement(TechDocsPageWrapper, null, /* @__PURE__ */ React__default.createElement(HeaderTabs, {
1710
+ return /* @__PURE__ */ React.createElement(TechDocsPageWrapper, null, /* @__PURE__ */ React.createElement(HeaderTabs, {
1692
1711
  selectedIndex: selectedTab,
1693
1712
  onChange: (index) => setSelectedTab(index),
1694
1713
  tabs: tabsConfig.map(({label}, index) => ({
1695
1714
  id: index.toString(),
1696
1715
  label
1697
1716
  }))
1698
- }), /* @__PURE__ */ React__default.createElement(Content, {
1717
+ }), /* @__PURE__ */ React.createElement(Content, {
1699
1718
  "data-testid": "techdocs-content"
1700
- }, currentTabConfig.panels.map((config, index) => /* @__PURE__ */ React__default.createElement(CustomPanel, {
1719
+ }, currentTabConfig.panels.map((config, index) => /* @__PURE__ */ React.createElement(CustomPanel, {
1701
1720
  key: index,
1702
1721
  config,
1703
1722
  entities: !!entities ? entities : [],
@@ -1735,14 +1754,14 @@ const LegacyTechDocsHome = () => {
1735
1754
  ]
1736
1755
  }
1737
1756
  ];
1738
- return /* @__PURE__ */ React__default.createElement(TechDocsCustomHome, {
1757
+ return /* @__PURE__ */ React.createElement(TechDocsCustomHome, {
1739
1758
  tabsConfig
1740
1759
  });
1741
1760
  };
1742
1761
 
1743
1762
  const TechDocsIndexPage = () => {
1744
1763
  const outlet = useOutlet();
1745
- return outlet || /* @__PURE__ */ React__default.createElement(LegacyTechDocsHome, null);
1764
+ return outlet || /* @__PURE__ */ React.createElement(LegacyTechDocsHome, null);
1746
1765
  };
1747
1766
 
1748
1767
  var TechDocsIndexPage$1 = /*#__PURE__*/Object.freeze({
@@ -1752,7 +1771,7 @@ var TechDocsIndexPage$1 = /*#__PURE__*/Object.freeze({
1752
1771
 
1753
1772
  const EntityPageDocs = ({entity}) => {
1754
1773
  var _a;
1755
- return /* @__PURE__ */ React__default.createElement(Reader, {
1774
+ return /* @__PURE__ */ React.createElement(Reader, {
1756
1775
  withSearch: false,
1757
1776
  entityRef: {
1758
1777
  kind: entity.kind,
@@ -1768,12 +1787,12 @@ const isTechDocsAvailable = (entity) => {
1768
1787
  return Boolean((_b = (_a = entity == null ? void 0 : entity.metadata) == null ? void 0 : _a.annotations) == null ? void 0 : _b[TECHDOCS_ANNOTATION]);
1769
1788
  };
1770
1789
  const Router = () => {
1771
- return /* @__PURE__ */ React__default.createElement(Routes, null, /* @__PURE__ */ React__default.createElement(Route, {
1790
+ return /* @__PURE__ */ React.createElement(Routes, null, /* @__PURE__ */ React.createElement(Route, {
1772
1791
  path: "/",
1773
- element: /* @__PURE__ */ React__default.createElement(TechDocsIndexPage, null)
1774
- }), /* @__PURE__ */ React__default.createElement(Route, {
1792
+ element: /* @__PURE__ */ React.createElement(TechDocsIndexPage, null)
1793
+ }), /* @__PURE__ */ React.createElement(Route, {
1775
1794
  path: "/:namespace/:kind/:name/*",
1776
- element: /* @__PURE__ */ React__default.createElement(TechDocsPage, null)
1795
+ element: /* @__PURE__ */ React.createElement(TechDocsPage, null)
1777
1796
  }));
1778
1797
  };
1779
1798
  const EmbeddedDocsRouter = (_props) => {
@@ -1781,13 +1800,13 @@ const EmbeddedDocsRouter = (_props) => {
1781
1800
  const {entity} = useEntity();
1782
1801
  const projectId = (_a = entity.metadata.annotations) == null ? void 0 : _a[TECHDOCS_ANNOTATION];
1783
1802
  if (!projectId) {
1784
- return /* @__PURE__ */ React__default.createElement(MissingAnnotationEmptyState, {
1803
+ return /* @__PURE__ */ React.createElement(MissingAnnotationEmptyState, {
1785
1804
  annotation: TECHDOCS_ANNOTATION
1786
1805
  });
1787
1806
  }
1788
- return /* @__PURE__ */ React__default.createElement(Routes, null, /* @__PURE__ */ React__default.createElement(Route, {
1807
+ return /* @__PURE__ */ React.createElement(Routes, null, /* @__PURE__ */ React.createElement(Route, {
1789
1808
  path: "/*",
1790
- element: /* @__PURE__ */ React__default.createElement(EntityPageDocs, {
1809
+ element: /* @__PURE__ */ React.createElement(EntityPageDocs, {
1791
1810
  entity
1792
1811
  })
1793
1812
  }));