@redocly/theme 0.61.1 → 0.62.0-custom.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/lib/components/AsyncApiDocs/hooks/AfterAsyncApiChannelDescription.d.ts +1 -0
  2. package/lib/components/AsyncApiDocs/hooks/AfterAsyncApiChannelDescription.js +12 -0
  3. package/lib/components/Badge/Badge.d.ts +2 -1
  4. package/lib/components/Badge/Badge.js +24 -2
  5. package/lib/components/Banner/Banner.js +19 -1
  6. package/lib/components/Banner/variables.js +1 -0
  7. package/lib/components/Breadcrumbs/Breadcrumb.js +1 -1
  8. package/lib/components/Breadcrumbs/BreadcrumbDropdown.js +9 -6
  9. package/lib/components/Breadcrumbs/Breadcrumbs.js +24 -15
  10. package/lib/components/Buttons/AIAssistantButton.js +7 -4
  11. package/lib/components/Catalog/CatalogEntities.js +10 -8
  12. package/lib/components/Catalog/CatalogEntity/CatalogEntity.js +2 -2
  13. package/lib/components/Catalog/CatalogEntity/CatalogEntityHistory/CatalogEntityHistorySidebar.js +1 -1
  14. package/lib/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.js +2 -2
  15. package/lib/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelationsTable.js +13 -11
  16. package/lib/components/Catalog/CatalogEntity/CatalogEntitySchema.js +7 -5
  17. package/lib/components/Catalog/CatalogFilter/CatalogFilterCheckboxes.js +9 -7
  18. package/lib/components/Catalog/CatalogTableView/CatalogTableViewRow.js +1 -1
  19. package/lib/components/Catalog/CatalogTagsWithTooltip.js +2 -2
  20. package/lib/components/CatalogClassic/CatalogClassicInfoBlock.js +1 -1
  21. package/lib/components/CodeBlock/CodeBlockControls.js +8 -6
  22. package/lib/components/Filter/FilterCheckboxes.js +1 -1
  23. package/lib/components/JsonViewer/JsonViewer.js +2 -2
  24. package/lib/components/JsonViewer/{Helpers.js → helpers.js} +2 -1
  25. package/lib/components/LanguagePicker/LanguagePicker.js +1 -1
  26. package/lib/components/Markdown/Markdown.js +2 -2
  27. package/lib/components/Menu/MenuItem.js +41 -15
  28. package/lib/components/Navbar/NavbarItem.js +1 -1
  29. package/lib/components/OpenApiDocs/hooks/AdditionalOverviewInfo.d.ts +1 -0
  30. package/lib/components/OpenApiDocs/hooks/AdditionalOverviewInfo.js +12 -0
  31. package/lib/components/OpenApiDocs/hooks/AfterOpenApiDescription.d.ts +1 -0
  32. package/lib/components/OpenApiDocs/hooks/AfterOpenApiDescription.js +6 -0
  33. package/lib/components/PageActions/PageActions.js +25 -8
  34. package/lib/components/Search/SearchAiDialog.d.ts +4 -2
  35. package/lib/components/Search/SearchAiDialog.js +23 -4
  36. package/lib/components/Search/SearchAiMessage.d.ts +4 -2
  37. package/lib/components/Search/SearchAiMessage.js +82 -23
  38. package/lib/components/Search/SearchDialog.js +50 -25
  39. package/lib/components/Select/variables.js +2 -2
  40. package/lib/components/SvgViewer/SvgViewer.d.ts +15 -0
  41. package/lib/components/SvgViewer/SvgViewer.js +312 -0
  42. package/lib/components/SvgViewer/variables.d.ts +1 -0
  43. package/lib/components/SvgViewer/variables.dark.d.ts +1 -0
  44. package/lib/components/SvgViewer/variables.dark.js +8 -0
  45. package/lib/components/SvgViewer/variables.js +17 -0
  46. package/lib/components/Tag/Tag.js +1 -1
  47. package/lib/components/Tag/variables.dark.js +6 -0
  48. package/lib/components/Tag/variables.js +6 -0
  49. package/lib/components/Tooltip/Tooltip.d.ts +2 -3
  50. package/lib/components/Tooltip/Tooltip.js +66 -113
  51. package/lib/components/Tooltip/variables.dark.js +4 -0
  52. package/lib/components/Tooltip/variables.js +3 -3
  53. package/lib/components/UserMenu/LoginButton.d.ts +8 -2
  54. package/lib/components/UserMenu/LoginButton.js +4 -3
  55. package/lib/core/constants/search.d.ts +5 -1
  56. package/lib/core/constants/search.js +24 -1
  57. package/lib/core/hooks/search/use-search-dialog.js +2 -2
  58. package/lib/core/hooks/use-color-switcher.js +3 -1
  59. package/lib/core/hooks/use-mcp-config.js +2 -1
  60. package/lib/core/hooks/use-modal-scroll-lock.js +24 -10
  61. package/lib/core/hooks/use-outside-click.d.ts +3 -1
  62. package/lib/core/hooks/use-outside-click.js +8 -4
  63. package/lib/core/hooks/use-page-actions.d.ts +1 -1
  64. package/lib/core/hooks/use-page-actions.js +44 -11
  65. package/lib/core/hooks/use-product-picker.js +1 -1
  66. package/lib/core/hooks/use-unique-svg-ids.d.ts +6 -0
  67. package/lib/core/hooks/use-unique-svg-ids.js +15 -0
  68. package/lib/core/openapi/index.d.ts +1 -0
  69. package/lib/core/openapi/index.js +3 -1
  70. package/lib/core/styles/dark.js +2 -0
  71. package/lib/core/styles/global.js +31 -15
  72. package/lib/core/types/catalog.d.ts +1 -1
  73. package/lib/core/types/hooks.d.ts +23 -2
  74. package/lib/core/types/l10n.d.ts +1 -1
  75. package/lib/core/types/search.d.ts +24 -0
  76. package/lib/core/types/search.js +9 -1
  77. package/lib/core/utils/content-segments.d.ts +2 -0
  78. package/lib/core/utils/content-segments.js +22 -0
  79. package/lib/core/utils/index.d.ts +1 -0
  80. package/lib/core/utils/index.js +1 -0
  81. package/lib/core/utils/transform-revisions-to-version-history.js +8 -51
  82. package/lib/ext/process-scorecard.d.ts +5 -0
  83. package/lib/ext/process-scorecard.js +11 -0
  84. package/lib/icons/FitToViewIcon/FitToViewIcon.d.ts +9 -0
  85. package/lib/icons/FitToViewIcon/FitToViewIcon.js +25 -0
  86. package/lib/index.d.ts +8 -0
  87. package/lib/index.js +8 -0
  88. package/lib/layouts/DocumentationLayout.js +4 -25
  89. package/lib/layouts/DocumentationLayoutBottom.d.ts +11 -0
  90. package/lib/layouts/DocumentationLayoutBottom.js +28 -0
  91. package/lib/layouts/DocumentationLayoutTop.d.ts +13 -0
  92. package/lib/layouts/DocumentationLayoutTop.js +33 -0
  93. package/lib/layouts/Forbidden.js +22 -18
  94. package/lib/markdoc/components/Cards/Card.js +1 -0
  95. package/lib/markdoc/components/CodeWalkthrough/CodeFilters.js +1 -1
  96. package/lib/markdoc/components/Heading/Heading.js +40 -2
  97. package/lib/markdoc/components/LoginButton/LoginButton.d.ts +9 -0
  98. package/lib/markdoc/components/LoginButton/LoginButton.js +48 -0
  99. package/lib/markdoc/components/Mermaid/Mermaid.js +70 -2
  100. package/lib/markdoc/components/default.d.ts +1 -0
  101. package/lib/markdoc/components/default.js +1 -0
  102. package/lib/markdoc/default.d.ts +6 -0
  103. package/lib/markdoc/default.js +2 -0
  104. package/lib/markdoc/tags/login-button.d.ts +2 -0
  105. package/lib/markdoc/tags/login-button.js +32 -0
  106. package/package.json +8 -8
  107. package/src/components/AsyncApiDocs/hooks/AfterAsyncApiChannelDescription.tsx +10 -0
  108. package/src/components/Badge/Badge.tsx +18 -2
  109. package/src/components/Banner/Banner.tsx +23 -1
  110. package/src/components/Banner/variables.ts +1 -0
  111. package/src/components/Breadcrumbs/Breadcrumb.tsx +3 -3
  112. package/src/components/Breadcrumbs/BreadcrumbDropdown.tsx +11 -8
  113. package/src/components/Breadcrumbs/Breadcrumbs.tsx +24 -15
  114. package/src/components/Buttons/AIAssistantButton.tsx +7 -4
  115. package/src/components/Catalog/CatalogEntities.tsx +10 -8
  116. package/src/components/Catalog/CatalogEntity/CatalogEntity.tsx +1 -1
  117. package/src/components/Catalog/CatalogEntity/CatalogEntityHistory/CatalogEntityHistorySidebar.tsx +1 -2
  118. package/src/components/Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty.tsx +1 -1
  119. package/src/components/Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelationsTable.tsx +13 -11
  120. package/src/components/Catalog/CatalogEntity/CatalogEntitySchema.tsx +7 -5
  121. package/src/components/Catalog/CatalogFilter/CatalogFilterCheckboxes.tsx +9 -7
  122. package/src/components/Catalog/CatalogTableView/CatalogTableViewRow.tsx +1 -2
  123. package/src/components/Catalog/CatalogTagsWithTooltip.tsx +9 -5
  124. package/src/components/CatalogClassic/CatalogClassicInfoBlock.tsx +3 -1
  125. package/src/components/CodeBlock/CodeBlockControls.tsx +16 -10
  126. package/src/components/Filter/FilterCheckboxes.tsx +1 -1
  127. package/src/components/JsonViewer/JsonViewer.tsx +1 -2
  128. package/src/components/JsonViewer/{Helpers.tsx → helpers.tsx} +1 -0
  129. package/src/components/LanguagePicker/LanguagePicker.tsx +1 -1
  130. package/src/components/Markdown/Markdown.tsx +2 -2
  131. package/src/components/Menu/MenuItem.tsx +61 -16
  132. package/src/components/Navbar/NavbarItem.tsx +3 -1
  133. package/src/components/OpenApiDocs/hooks/AdditionalOverviewInfo.tsx +10 -0
  134. package/src/components/OpenApiDocs/hooks/AfterOpenApiDescription.tsx +2 -0
  135. package/src/components/PageActions/PageActions.tsx +38 -15
  136. package/src/components/Search/SearchAiDialog.tsx +31 -2
  137. package/src/components/Search/SearchAiMessage.tsx +103 -17
  138. package/src/components/Search/SearchDialog.tsx +70 -37
  139. package/src/components/Select/variables.ts +2 -2
  140. package/src/components/SvgViewer/SvgViewer.tsx +405 -0
  141. package/src/components/SvgViewer/variables.dark.ts +5 -0
  142. package/src/components/SvgViewer/variables.ts +14 -0
  143. package/src/components/Tag/Tag.tsx +2 -1
  144. package/src/components/Tag/variables.dark.ts +6 -0
  145. package/src/components/Tag/variables.ts +6 -0
  146. package/src/components/Tooltip/Tooltip.tsx +77 -120
  147. package/src/components/Tooltip/variables.dark.ts +4 -0
  148. package/src/components/Tooltip/variables.ts +3 -3
  149. package/src/components/UserMenu/LoginButton.tsx +23 -8
  150. package/src/core/constants/search.ts +27 -1
  151. package/src/core/hooks/__mocks__/use-theme-hooks.ts +10 -1
  152. package/src/core/hooks/search/use-search-dialog.ts +2 -2
  153. package/src/core/hooks/use-color-switcher.ts +3 -1
  154. package/src/core/hooks/use-mcp-config.ts +2 -1
  155. package/src/core/hooks/use-modal-scroll-lock.ts +29 -10
  156. package/src/core/hooks/use-outside-click.ts +16 -5
  157. package/src/core/hooks/use-page-actions.ts +66 -25
  158. package/src/core/hooks/use-product-picker.ts +1 -1
  159. package/src/core/hooks/use-unique-svg-ids.ts +12 -0
  160. package/src/core/openapi/index.ts +1 -0
  161. package/src/core/styles/dark.ts +2 -0
  162. package/src/core/styles/global.ts +31 -15
  163. package/src/core/types/catalog.ts +1 -1
  164. package/src/core/types/hooks.ts +29 -1
  165. package/src/core/types/l10n.ts +12 -1
  166. package/src/core/types/search.ts +19 -0
  167. package/src/core/utils/content-segments.ts +27 -0
  168. package/src/core/utils/index.ts +1 -0
  169. package/src/core/utils/transform-revisions-to-version-history.ts +8 -80
  170. package/src/ext/process-scorecard.ts +14 -0
  171. package/src/icons/FitToViewIcon/FitToViewIcon.tsx +26 -0
  172. package/src/index.ts +8 -0
  173. package/src/layouts/DocumentationLayout.tsx +4 -30
  174. package/src/layouts/DocumentationLayoutBottom.tsx +42 -0
  175. package/src/layouts/DocumentationLayoutTop.tsx +52 -0
  176. package/src/layouts/Forbidden.tsx +36 -21
  177. package/src/markdoc/components/Cards/Card.tsx +1 -0
  178. package/src/markdoc/components/CodeWalkthrough/CodeFilters.tsx +1 -1
  179. package/src/markdoc/components/Heading/Heading.tsx +52 -4
  180. package/src/markdoc/components/LoginButton/LoginButton.tsx +38 -0
  181. package/src/markdoc/components/Mermaid/Mermaid.tsx +57 -8
  182. package/src/markdoc/components/default.ts +1 -0
  183. package/src/markdoc/default.ts +2 -0
  184. package/src/markdoc/tags/login-button.ts +30 -0
  185. package/lib/components/Tooltip/TooltipWrapper.d.ts +0 -12
  186. package/lib/components/Tooltip/TooltipWrapper.js +0 -34
  187. package/src/components/Tooltip/TooltipWrapper.tsx +0 -70
  188. /package/lib/components/JsonViewer/{Helpers.d.ts → helpers.d.ts} +0 -0
@@ -0,0 +1 @@
1
+ export declare const AfterAsyncApiChannelDescription: any;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ // interface AfterAsyncApiChannelDescriptionProps {
3
+ // channel: any;
4
+ // }
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.AfterAsyncApiChannelDescription = void 0;
7
+ // export function AfterAsyncApiChannelDescription(_props: AfterAsyncApiChannelDescriptionProps) {
8
+ // return null;
9
+ // }
10
+ /* eslint-disable-next-line @typescript-eslint/no-explicit-any */
11
+ exports.AfterAsyncApiChannelDescription = null;
12
+ //# sourceMappingURL=AfterAsyncApiChannelDescription.js.map
@@ -4,5 +4,6 @@ export type BadgeProps = PropsWithChildren<{
4
4
  color?: string;
5
5
  key?: string;
6
6
  className?: string;
7
+ icon?: string;
7
8
  }>;
8
- export declare function Badge(props: BadgeProps): JSX.Element;
9
+ export declare function Badge({ icon, children, ...props }: BadgeProps): JSX.Element;
@@ -32,6 +32,17 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __rest = (this && this.__rest) || function (s, e) {
36
+ var t = {};
37
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
38
+ t[p] = s[p];
39
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
40
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
41
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
42
+ t[p[i]] = s[p[i]];
43
+ }
44
+ return t;
45
+ };
35
46
  var __importDefault = (this && this.__importDefault) || function (mod) {
36
47
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
48
  };
@@ -39,8 +50,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
39
50
  exports.Badge = Badge;
40
51
  const react_1 = __importDefault(require("react"));
41
52
  const styled_components_1 = __importStar(require("styled-components"));
42
- function Badge(props) {
43
- return react_1.default.createElement(BadgeComponent, Object.assign({}, props, { "data-component-name": "Badge/Badge" }));
53
+ const GenericIcon_1 = require("../../icons/GenericIcon/GenericIcon");
54
+ function Badge(_a) {
55
+ var { icon, children } = _a, props = __rest(_a, ["icon", "children"]);
56
+ return (react_1.default.createElement(BadgeComponent, Object.assign({}, props, { "data-component-name": "Badge/Badge" }),
57
+ icon ? react_1.default.createElement(BadgeIcon, { icon: icon }) : null,
58
+ children));
44
59
  }
45
60
  const BadgeComponent = styled_components_1.default.span `
46
61
  display: inline-block;
@@ -61,4 +76,11 @@ const BadgeComponent = styled_components_1.default.span `
61
76
  border-radius: var(--badge-deprecated-border-radius);
62
77
  `}
63
78
  `;
79
+ const BadgeIcon = (0, styled_components_1.default)(GenericIcon_1.GenericIcon) `
80
+ --icon-width: var(--font-size-sm);
81
+ --icon-height: var(--font-size-sm);
82
+ margin-right: var(--spacing-xxs);
83
+ flex-shrink: 0;
84
+ vertical-align: middle;
85
+ `;
64
86
  //# sourceMappingURL=Badge.js.map
@@ -37,9 +37,11 @@ exports.Banner = Banner;
37
37
  const react_1 = __importStar(require("react"));
38
38
  const styled_components_1 = __importStar(require("styled-components"));
39
39
  const hooks_1 = require("../../core/hooks");
40
+ const utils_1 = require("../../core/utils");
40
41
  const Markdown_1 = require("../../components/Markdown/Markdown");
41
42
  const CloseIcon_1 = require("../../icons/CloseIcon/CloseIcon");
42
43
  const Button_1 = require("../../components/Button/Button");
44
+ const ANIMATION_DURATION = 0.4;
43
45
  function setBannerHeight(height) {
44
46
  document.documentElement.style.setProperty('--banner-height', `${height}px`);
45
47
  }
@@ -86,6 +88,22 @@ function Banner({ className }) {
86
88
  setBannerHeight(height);
87
89
  };
88
90
  updateHeight();
91
+ if (window.location.hash) {
92
+ setTimeout(() => {
93
+ var _a;
94
+ const hash = window.location.hash;
95
+ const el = document.getElementById(hash.slice(1));
96
+ if (el) {
97
+ const navbar = (0, utils_1.getNavbarElement)();
98
+ const navbarHeight = (_a = navbar === null || navbar === void 0 ? void 0 : navbar.getBoundingClientRect().height) !== null && _a !== void 0 ? _a : 0;
99
+ const elementTop = el.getBoundingClientRect().top + window.scrollY;
100
+ const scrollPosition = elementTop - navbarHeight;
101
+ if (Math.abs(window.scrollY - scrollPosition) > 1) {
102
+ window.scrollTo({ top: scrollPosition });
103
+ }
104
+ }
105
+ }, ANIMATION_DURATION * 1000 + 100);
106
+ }
89
107
  const resizeObserver = new ResizeObserver(updateHeight);
90
108
  resizeObserver.observe(bannerElement);
91
109
  return () => {
@@ -148,7 +166,7 @@ const BannerWrapper = styled_components_1.default.div `
148
166
  width: 100%;
149
167
  z-index: var(--z-index-overlay);
150
168
  transform: ${({ $isVisible }) => ($isVisible ? 'translateY(0)' : 'translateY(-100%)')};
151
- transition: transform 0.4s ease-out;
169
+ transition: transform ${ANIMATION_DURATION}s ease-out;
152
170
  ${({ $color }) => $color &&
153
171
  (0, styled_components_1.css) `
154
172
  background-color: var(--banner-${$color}-bg-color);
@@ -6,6 +6,7 @@ exports.banner = (0, styled_components_1.css) `
6
6
  /**
7
7
  * @tokens Banner
8
8
  */
9
+ --banner-height: 0px; /* default 0px so calc formulas work on page load */
9
10
  --banner-button-size: 22px;
10
11
  --banner-button-padding: 3px; // @presenter Spacing
11
12
  --banner-button-font-size: var(--font-size-base);
@@ -51,7 +51,7 @@ function Breadcrumb({ label, link, isActive, onClick, icon }) {
51
51
  react_1.default.createElement(BreadcrumbIcon_1.BreadcrumbIcon, { icon: icon }),
52
52
  displayLabel));
53
53
  const breadcrumbContent = link ? (react_1.default.createElement(BreadcrumbLink, { "data-component-name": "Breadcrumbs/BreadcrumbLink", to: link, onClick: onClick, "$isActive": isActive }, content)) : (react_1.default.createElement(BreadcrumbWrapper, { "data-component-name": "Breadcrumbs/BreadcrumbWrapper", "$isActive": isActive, onClick: onClick, tabIndex: -1 }, content));
54
- return isTruncated ? (react_1.default.createElement(Tooltip_1.TooltipComponent, { tip: label, placement: "bottom", width: "max-content" }, breadcrumbContent)) : (breadcrumbContent);
54
+ return isTruncated ? (react_1.default.createElement(Tooltip_1.Tooltip, { tip: label, placement: "bottom" }, breadcrumbContent)) : (breadcrumbContent);
55
55
  }
56
56
  const baseBreadcrumbStyles = `
57
57
  display: flex;
@@ -55,7 +55,7 @@ function BreadcrumbDropdown({ children, label, items, onItemClick, className, })
55
55
  return null;
56
56
  }
57
57
  const isTruncated = label.length > constants_1.BREADCRUMB_MAX_LENGTH;
58
- const triggerContent = isTruncated ? (react_1.default.createElement(Tooltip_1.TooltipComponent, { tip: label, placement: "bottom", width: "max-content" },
58
+ const triggerContent = isTruncated ? (react_1.default.createElement(Tooltip_1.Tooltip, { tip: label, placement: "bottom" },
59
59
  react_1.default.createElement(TriggerContentWrapper, null, children))) : (children);
60
60
  const trigger = react_1.default.createElement(StyledDropdownTrigger, null, triggerContent);
61
61
  return (react_1.default.createElement(BreadcrumbDropdownWrapper, { "data-component-name": "Breadcrumbs/BreadcrumbDropdown", className: className, "data-testid": "breadcrumb-dropdown" },
@@ -66,11 +66,14 @@ function BreadcrumbDropdown({ children, label, items, onItemClick, className, })
66
66
  const translatedLabel = translate(item.labelTranslationKey, item.label);
67
67
  return (react_1.default.createElement(StyledDropdownMenuItem, { key: index, onAction: () => {
68
68
  onItemClick === null || onItemClick === void 0 ? void 0 : onItemClick(item, index);
69
- telemetry.sendBreadcrumbClickedMessage({
70
- link: item.link,
71
- position: index + 1,
72
- totalBreadcrumbs: items.length,
73
- });
69
+ telemetry.sendBreadcrumbClickedMessage([
70
+ {
71
+ object: 'breadcrumb',
72
+ link: item.link,
73
+ position: index + 1,
74
+ totalBreadcrumbs: items.length,
75
+ },
76
+ ]);
74
77
  }, "$hasLink": hasLink, to: item.link, dataAttributes: !hasLink ? { 'aria-disabled': 'true' } : {} },
75
78
  react_1.default.createElement(DropdownContent, { "$isActive": isActive },
76
79
  react_1.default.createElement(BreadcrumbIcon_1.BreadcrumbIcon, { icon: item.icon }),
@@ -46,20 +46,26 @@ function Breadcrumbs(props) {
46
46
  ...currentItemSiblings,
47
47
  ];
48
48
  const translatedLabel = translate(breadcrumb.labelTranslationKey, breadcrumb.label);
49
- return (react_1.default.createElement(BreadcrumbDropdown_1.BreadcrumbDropdown, { label: translatedLabel, items: siblingsWithActive, onItemClick: (item, itemIdx) => telemetry.sendBreadcrumbClickedMessage({
50
- link: item.link,
51
- position: itemIdx + 1,
52
- totalBreadcrumbs: siblingsWithActive.length,
53
- }) },
49
+ return (react_1.default.createElement(BreadcrumbDropdown_1.BreadcrumbDropdown, { label: translatedLabel, items: siblingsWithActive, onItemClick: (item, itemIdx) => telemetry.sendBreadcrumbClickedMessage([
50
+ {
51
+ object: 'breadcrumb',
52
+ link: item.link,
53
+ position: itemIdx + 1,
54
+ totalBreadcrumbs: siblingsWithActive.length,
55
+ },
56
+ ]) },
54
57
  react_1.default.createElement(BreadcrumbIcon_1.BreadcrumbIcon, { icon: breadcrumb.icon }),
55
58
  (0, utils_1.trimText)(translatedLabel, constants_1.BREADCRUMB_MAX_LENGTH),
56
59
  react_1.default.createElement(GenericIcon_1.GenericIcon, { icon: "chevron-down" })));
57
60
  }
58
- return (react_1.default.createElement(Breadcrumb_1.Breadcrumb, { link: breadcrumb.link, label: translate(breadcrumb.labelTranslationKey, breadcrumb.label), isActive: isActive, icon: breadcrumb.icon, onClick: () => telemetry.sendBreadcrumbClickedMessage({
59
- link: breadcrumb.link,
60
- position: idx + 1,
61
- totalBreadcrumbs: breadcrumbs.length,
62
- }) }));
61
+ return (react_1.default.createElement(Breadcrumb_1.Breadcrumb, { link: breadcrumb.link, label: translate(breadcrumb.labelTranslationKey, breadcrumb.label), isActive: isActive, icon: breadcrumb.icon, onClick: () => telemetry.sendBreadcrumbClickedMessage([
62
+ {
63
+ object: 'breadcrumb',
64
+ link: breadcrumb.link,
65
+ position: idx + 1,
66
+ totalBreadcrumbs: breadcrumbs.length,
67
+ },
68
+ ]) }));
63
69
  };
64
70
  return (react_1.default.createElement(BreadcrumbsWrapper, { "data-component-name": "Breadcrumbs/Breadcrumbs", className: props.className }, items.map(({ breadcrumb, idx, isLast, inDropdown }) => {
65
71
  if (inDropdown)
@@ -69,11 +75,14 @@ function Breadcrumbs(props) {
69
75
  return (react_1.default.createElement(react_1.default.Fragment, { key: idx },
70
76
  renderBreadcrumb(breadcrumb, idx, isLast),
71
77
  react_1.default.createElement(BreadcrumbSeparator, null, "/"),
72
- react_1.default.createElement(BreadcrumbDropdown_1.BreadcrumbDropdown, { label: "...", items: collapsedBreadcrumbs, onItemClick: (item, itemIdx) => telemetry.sendBreadcrumbClickedMessage({
73
- link: item.link,
74
- position: itemIdx + 1,
75
- totalBreadcrumbs: breadcrumbs.length,
76
- }) }, "..."),
78
+ react_1.default.createElement(BreadcrumbDropdown_1.BreadcrumbDropdown, { label: "...", items: collapsedBreadcrumbs, onItemClick: (item, itemIdx) => telemetry.sendBreadcrumbClickedMessage([
79
+ {
80
+ object: 'breadcrumb',
81
+ link: item.link,
82
+ position: itemIdx + 1,
83
+ totalBreadcrumbs: breadcrumbs.length,
84
+ },
85
+ ]) }, "..."),
77
86
  react_1.default.createElement(BreadcrumbSeparator, null, "/")));
78
87
  }
79
88
  return (react_1.default.createElement(react_1.default.Fragment, { key: idx },
@@ -86,9 +86,12 @@ function AIAssistantButton() {
86
86
  const text = translate('aiAssistant.trigger', 'Ask AI');
87
87
  const handleOpen = () => {
88
88
  setIsOpen(true);
89
- telemetry.sendSearchAiOpenedMessage({
90
- method: 'ai_trigger_button',
91
- });
89
+ telemetry.sendSearchAiOpenedMessage([
90
+ {
91
+ object: 'search',
92
+ method: 'ai_trigger_button',
93
+ },
94
+ ]);
92
95
  };
93
96
  const handleClose = () => {
94
97
  setIsOpen(false);
@@ -102,7 +105,7 @@ function AIAssistantButton() {
102
105
  const StyledAIAssistantButton = (0, styled_components_1.default)(Button_1.Button) `
103
106
  position: fixed;
104
107
  bottom: var(--ai-assistant-button-bottom);
105
- right: var(--ai-assistant-button-right);
108
+ right: calc(var(--ai-assistant-button-right) + var(--modal-scrollbar-width, 0px));
106
109
  ${({ $inputType }) => $inputType === 'icon'
107
110
  ? `
108
111
  border-radius: var(--ai-assistant-button-border-radius-icon);
@@ -64,14 +64,16 @@ function CatalogEntities(props) {
64
64
  }, props.initialEntitiesList);
65
65
  const onRowClick = (entity) => {
66
66
  if (searchQuery) {
67
- telemetry.sendCatalogEntitiesListSearchResultClickedMessage({
68
- id: entity.id,
69
- object: 'catalog_entity',
70
- uri: getEntityDetailsLink(entity),
71
- query: searchQuery,
72
- entityKey: entity.key,
73
- entityType: entity.type,
74
- });
67
+ telemetry.sendCatalogEntitiesListSearchResultClickedMessage([
68
+ {
69
+ id: entity.id,
70
+ object: 'catalog_entity',
71
+ uri: getEntityDetailsLink(entity),
72
+ query: searchQuery,
73
+ entityKey: entity.key,
74
+ entityType: entity.type,
75
+ },
76
+ ]);
75
77
  }
76
78
  };
77
79
  const shouldShowLoadMore = query.hasNextPage ||
@@ -18,7 +18,7 @@ const hooks_1 = require("../../../core/hooks");
18
18
  const CatalogEntitySchema_1 = require("../../../components/Catalog/CatalogEntity/CatalogEntitySchema");
19
19
  const CatalogEntityMethodAndPath_1 = require("../../../components/Catalog/CatalogEntity/CatalogEntityMethodAndPath");
20
20
  const CatalogEntityRelationsGraph_lazy_1 = require("../../../components/Catalog/CatalogEntity/CatalogEntityGraph/CatalogEntityRelationsGraph.lazy");
21
- const theme_1 = require("../../../index.js");
21
+ const CatalogEntityHistorySidebar_1 = require("../../../components/Catalog/CatalogEntity/CatalogEntityHistory/CatalogEntityHistorySidebar");
22
22
  const renderFirstColumnEntitySection = (entity) => {
23
23
  switch (entity.type) {
24
24
  case 'api-operation':
@@ -45,7 +45,7 @@ function CatalogEntity({ RedocSchema, StoreProvider, GraphqlTypeRenderer, }) {
45
45
  const linkToMainCatalogLabel = translate(catalogConfig.titleTranslationKey);
46
46
  const { searchQuery, setSearchQuery } = useCatalog();
47
47
  return (react_1.default.createElement(CatalogPageWrapper, { "data-component-name": "Catalog/CatalogEntity/CatalogEntity" },
48
- react_1.default.createElement(theme_1.CatalogEntityHistorySidebar, { entityKey: entity.key, revision: revision, version: version }),
48
+ react_1.default.createElement(CatalogEntityHistorySidebar_1.CatalogEntityHistorySidebar, { entityKey: entity.key, revision: revision, version: version }),
49
49
  react_1.default.createElement(CatalogPageContent, null,
50
50
  react_1.default.createElement(Breadcrumbs_1.Breadcrumbs, { additionalBreadcrumbs: [
51
51
  { label: linkToMainCatalogLabel, link: linkToMainCatalog },
@@ -45,7 +45,7 @@ const hooks_1 = require("../../../../core/hooks");
45
45
  const MenuContainer_1 = require("../../../../components/Menu/MenuContainer");
46
46
  const utils_1 = require("../../../../core/utils");
47
47
  const constants_1 = require("../../../../core/constants");
48
- const CatalogEntityVersionItem_1 = require("./CatalogEntityVersionItem");
48
+ const CatalogEntityVersionItem_1 = require("../../../../components/Catalog/CatalogEntity/CatalogEntityHistory/CatalogEntityVersionItem");
49
49
  function CatalogEntityHistorySidebar({ entityKey, revision, version, className, }) {
50
50
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
51
51
  const location = (0, react_router_dom_1.useLocation)();
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TagsProperty = TagsProperty;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const TagsIcon_1 = require("../../../../icons/TagsIcon/TagsIcon");
9
- const theme_1 = require("../../../../index.js");
9
+ const CatalogTagsWithTooltip_1 = require("../../../../components/Catalog/CatalogTagsWithTooltip");
10
10
  const CatalogEntityPropertyCard_1 = require("../../../../components/Catalog/CatalogEntity/CatalogEntityProperties/CatalogEntityPropertyCard");
11
11
  const hooks_1 = require("../../../../core/hooks");
12
12
  function TagsProperty({ entity }) {
@@ -15,7 +15,7 @@ function TagsProperty({ entity }) {
15
15
  return (react_1.default.createElement("div", { "data-component-name": "Catalog/CatalogEntity/CatalogEntityProperties/TagsProperty" },
16
16
  react_1.default.createElement(CatalogEntityPropertyCard_1.CatalogEntityPropertyCard, { header: react_1.default.createElement(react_1.default.Fragment, null,
17
17
  react_1.default.createElement(TagsIcon_1.TagsIcon, null),
18
- translate('catalog.tags.label', 'Tags')), content: react_1.default.createElement(theme_1.CatalogTagsWithTooltip, { itemsToShow: 8, items: entity.tags || [], tagProps: {
18
+ translate('catalog.tags.label', 'Tags')), content: react_1.default.createElement(CatalogTagsWithTooltip_1.CatalogTagsWithTooltip, { itemsToShow: 8, items: entity.tags || [], tagProps: {
19
19
  style: {
20
20
  fontSize: 'var(--font-size-base)',
21
21
  borderRadius: 'var(--border-radius)',
@@ -19,17 +19,19 @@ function CatalogEntityRelationsTable({ entity, entitiesCatalogConfig, catalogCon
19
19
  });
20
20
  const onRowClick = (relatedEntity) => {
21
21
  if (searchQuery) {
22
- telemetry.sendCatalogEntitiesRelatedEntitiesListSearchResultClickMessage({
23
- id: relatedEntity.id,
24
- object: 'catalog_entity',
25
- uri: getEntityDetailsLink(relatedEntity),
26
- query: searchQuery,
27
- entityKey: entity.key,
28
- entityType: entity.type,
29
- relationType: constants_1.reverseRelationMap[relatedEntity.relationType],
30
- relatedEntityKey: relatedEntity.key,
31
- relatedEntityType: relatedEntity.type,
32
- });
22
+ telemetry.sendCatalogEntitiesRelatedEntitiesListSearchResultClickMessage([
23
+ {
24
+ id: relatedEntity.id,
25
+ object: 'catalog_entity',
26
+ uri: getEntityDetailsLink(relatedEntity),
27
+ query: searchQuery,
28
+ entityKey: entity.key,
29
+ entityType: entity.type,
30
+ relationType: constants_1.reverseRelationMap[relatedEntity.relationType],
31
+ relatedEntityKey: relatedEntity.key,
32
+ relatedEntityType: relatedEntity.type,
33
+ },
34
+ ]);
33
35
  }
34
36
  };
35
37
  return (react_1.default.createElement("div", { "data-component-name": "Catalog/CatalogEntity/CatalogEntityRelations/CatalogEntityRelationsTable" },
@@ -58,11 +58,13 @@ function CatalogEntitySchema({ entity, relatedEntity, catalogConfig, RedocSchema
58
58
  return (react_1.default.createElement(MetadataWrapper, { "data-component-name": "Catalog/CatalogEntity/CatalogEntityMetadata" },
59
59
  react_1.default.createElement(HeaderWrapper, null,
60
60
  react_1.default.createElement(Heading, null, translate('catalog.entity.schema.title')),
61
- !isGraphql && (react_1.default.createElement(CopyButton_1.CopyButton, { data: rawSchema, buttonText: "Copy Schema", type: "compound", variant: "secondary", iconPosition: "right", size: "medium", onCopyClick: () => telemetry.sendCatalogEntitiesCopyDataSchemaClickedMessage({
62
- id: entity.id,
63
- object: 'catalog_entity',
64
- uri: getEntityDetailsLink(entity),
65
- }) }))),
61
+ !isGraphql && (react_1.default.createElement(CopyButton_1.CopyButton, { data: rawSchema, buttonText: "Copy Schema", type: "compound", variant: "secondary", iconPosition: "right", size: "medium", onCopyClick: () => telemetry.sendCatalogEntitiesCopyDataSchemaClickedMessage([
62
+ {
63
+ id: entity.id,
64
+ object: 'catalog_entity',
65
+ uri: getEntityDetailsLink(entity),
66
+ },
67
+ ]) }))),
66
68
  react_1.default.createElement(SplitViewWrapper, null,
67
69
  react_1.default.createElement(SchemaContentWrapper, null, isGraphql && graphqlSDL && GraphqlTypeRenderer ? (react_1.default.createElement(GraphqlTypeRenderer, { sdl: graphqlSDL, typeName: entity.title })) : (react_1.default.createElement(StoreProvider, { definition: definition },
68
70
  react_1.default.createElement(RedocSchema, { schema: parsedSchema })))),
@@ -103,13 +103,15 @@ function CatalogFilterCheckboxes({ filter, filterValuesCasing, showCounter = tru
103
103
  const id = 'filter--' + filter.property + '--' + value;
104
104
  return (react_1.default.createElement(FilterCheckboxOption, { key: id, role: "link", onClick: () => {
105
105
  filter.toggleOption(value);
106
- telemetry.sendCatalogEntitiesFilterCheckboxToggledMessage({
107
- id: filter.property + '--' + value,
108
- object: 'checkbox',
109
- uri: window.location.href,
110
- category: filter.property,
111
- value: value,
112
- });
106
+ telemetry.sendCatalogEntitiesFilterCheckboxToggledMessage([
107
+ {
108
+ id: filter.property + '--' + value,
109
+ object: 'checkbox',
110
+ uri: window.location.href,
111
+ category: filter.property,
112
+ value: value,
113
+ },
114
+ ]);
113
115
  } },
114
116
  react_1.default.createElement(CheckboxIcon_1.CheckboxIcon, { checked: filter.selectedOptions instanceof Set
115
117
  ? filter.selectedOptions.has(value) ||
@@ -12,7 +12,7 @@ const CatalogEntityCell_1 = require("../../../components/Catalog/CatalogTableVie
12
12
  const CatalogTagsCell_1 = require("../../../components/Catalog/CatalogTableView/CatalogTagsCell");
13
13
  const hooks_1 = require("../../../core/hooks");
14
14
  const CatalogEntityTypeTag_1 = require("../../../components/Catalog/CatalogEntityTypeTag");
15
- const Link_1 = require("../../Link/Link");
15
+ const Link_1 = require("../../../components/Link/Link");
16
16
  const baseColumns = [
17
17
  {
18
18
  key: 'entity',
@@ -17,7 +17,7 @@ function CatalogTagsWithTooltip({ items, itemsToShow = 1, showPlaceholder = true
17
17
  if (!items || items.length === 0) {
18
18
  if (showPlaceholder) {
19
19
  return (react_1.default.createElement(CatalogTagsWrapper, { "data-component-name": "Catalog/CatalogTagsWithTooltip" },
20
- react_1.default.createElement(Tag_1.Tag, { style: { backgroundColor: 'var(--catalog-tags-placeholder-bg-color)' }, color: "grey" }, "N/A")));
20
+ react_1.default.createElement(Tag_1.Tag, { variant: "outline", style: { backgroundColor: 'var(--catalog-tags-placeholder-bg-color)' }, color: "grey" }, "N/A")));
21
21
  }
22
22
  return null;
23
23
  }
@@ -27,7 +27,7 @@ function CatalogTagsWithTooltip({ items, itemsToShow = 1, showPlaceholder = true
27
27
  }
28
28
  const displayedItems = items.slice(0, itemsToShow);
29
29
  const remainingCount = items.length - itemsToShow;
30
- return (react_1.default.createElement(Tooltip_1.TooltipComponent, { tip: items.join(', '), placement: "bottom", className: "catalog", width: "400px" },
30
+ return (react_1.default.createElement(Tooltip_1.Tooltip, { tip: items.join(', '), placement: "bottom", className: "catalog", width: "400px" },
31
31
  react_1.default.createElement(CatalogTagsWrapper, { "data-component-name": "Catalog/CatalogTagsWithTooltip" },
32
32
  displayedItems.map((item, index) => (react_1.default.createElement(Tag_1.Tag, Object.assign({ key: `${item}-${index}` }, tagProps, { textTransform: "none", maxLength: constants_1.CATALOG_TAG_MAX_LENGTH }),
33
33
  react_1.default.createElement(CatalogHighlight_1.CatalogHighlight, null, item)))),
@@ -21,7 +21,7 @@ function ScorecardBadge(props) {
21
21
  const { useTelemetry } = (0, hooks_1.useThemeHooks)();
22
22
  const telemetry = useTelemetry();
23
23
  return (react_1.default.createElement(Link_1.Link, { to: slug },
24
- react_1.default.createElement(Tag_1.Tag, { onClick: () => telemetry.sendScorecardLinkClickedMessage({ action: 'click' }), withStatusDot: true, statusDotColor: `var(${colorVariable})` }, level)));
24
+ react_1.default.createElement(Tag_1.Tag, { onClick: () => telemetry.sendScorecardLinkClickedMessage([{ object: 'link', action: 'click' }]), withStatusDot: true, statusDotColor: `var(${colorVariable})` }, level)));
25
25
  }
26
26
  const CatalogInfoBlockWrapper = styled_components_1.default.div `
27
27
  position: relative;
@@ -8,7 +8,7 @@ const react_1 = __importDefault(require("react"));
8
8
  const styled_components_1 = __importDefault(require("styled-components"));
9
9
  const CodeBlockTabs_1 = require("../../components/CodeBlock/CodeBlockTabs");
10
10
  const CopyButton_1 = require("../../components/Buttons/CopyButton");
11
- const TooltipWrapper_1 = require("../../components/Tooltip/TooltipWrapper");
11
+ const Tooltip_1 = require("../../components/Tooltip/Tooltip");
12
12
  const hooks_1 = require("../../core/hooks");
13
13
  const DeselectIcon_1 = require("../../icons/DeselectIcon/DeselectIcon");
14
14
  const MaximizeIcon_1 = require("../../icons/MaximizeIcon/MaximizeIcon");
@@ -38,15 +38,15 @@ function CodeBlockControls({ children, className, title, controls, tabs, dropdow
38
38
  tabs && react_1.default.createElement(CodeBlockTabs_1.CodeBlockTabs, { tabs: tabs }),
39
39
  react_1.default.createElement(ControlsWrapper, null,
40
40
  dropdown && react_1.default.createElement(CodeBlockDropdown_1.CodeBlockDropdown, Object.assign({}, dropdown)),
41
- report && !report.hidden && !((_a = report === null || report === void 0 ? void 0 : report.props) === null || _a === void 0 ? void 0 : _a.hide) ? (react_1.default.createElement(TooltipWrapper_1.TooltipWrapper, { tip: translate('codeSnippet.report.tooltipText', 'Report a problem'), placement: "top" },
41
+ report && !report.hidden && !((_a = report === null || report === void 0 ? void 0 : report.props) === null || _a === void 0 ? void 0 : _a.hide) ? (react_1.default.createElement(Tooltip_1.Tooltip, { tip: translate('codeSnippet.report.tooltipText', 'Report a problem'), placement: "top", arrowPosition: "right" },
42
42
  react_1.default.createElement(ControlButton, Object.assign({ variant: "text", size: "small", "data-testid": "report-button", icon: controlsType === 'icon' ? react_1.default.createElement(WarningSquareIcon_1.WarningSquareIcon, { size: "18px" }) : undefined }, report.props), controlsType != 'icon' && (((_b = report.props) === null || _b === void 0 ? void 0 : _b.buttonText) || 'Report')))) : null,
43
- expand && !((_c = codeSnippet === null || codeSnippet === void 0 ? void 0 : codeSnippet.expand) === null || _c === void 0 ? void 0 : _c.hide) ? (react_1.default.createElement(TooltipWrapper_1.TooltipWrapper, { tip: translate('codeSnippet.expand.tooltipText', 'Expand all'), placement: "top" },
43
+ expand && !((_c = codeSnippet === null || codeSnippet === void 0 ? void 0 : codeSnippet.expand) === null || _c === void 0 ? void 0 : _c.hide) ? (react_1.default.createElement(Tooltip_1.Tooltip, { tip: translate('codeSnippet.expand.tooltipText', 'Expand all'), placement: "top", arrowPosition: "right" },
44
44
  react_1.default.createElement(ControlButton, { variant: "text", size: "small", "data-testid": "expand-all", icon: controlsType === 'icon' ? react_1.default.createElement(MaximizeIcon_1.MaximizeIcon, null) : undefined, onClick: expand === null || expand === void 0 ? void 0 : expand.onClick }, controlsType !== 'icon' && ((expand === null || expand === void 0 ? void 0 : expand.label) || 'Expand all')))) : null,
45
- collapse && !((_d = codeSnippet === null || codeSnippet === void 0 ? void 0 : codeSnippet.collapse) === null || _d === void 0 ? void 0 : _d.hide) ? (react_1.default.createElement(TooltipWrapper_1.TooltipWrapper, { tip: translate('codeSnippet.collapse.tooltipText', 'Collapse all'), placement: "top" },
45
+ collapse && !((_d = codeSnippet === null || codeSnippet === void 0 ? void 0 : codeSnippet.collapse) === null || _d === void 0 ? void 0 : _d.hide) ? (react_1.default.createElement(Tooltip_1.Tooltip, { tip: translate('codeSnippet.collapse.tooltipText', 'Collapse all'), placement: "top", arrowPosition: "right" },
46
46
  react_1.default.createElement(ControlButton, { variant: "text", size: "small", "data-testid": "collapse-all", icon: controlsType === 'icon' ? react_1.default.createElement(MinimizeIcon_1.MinimizeIcon, null) : undefined, onClick: collapse === null || collapse === void 0 ? void 0 : collapse.onClick }, controlsType !== 'icon' && ((expand === null || expand === void 0 ? void 0 : expand.label) || 'Collapse all')))) : null,
47
47
  select ? (react_1.default.createElement(ControlButton, { variant: "text", size: "small", "data-testid": "select-all", icon: controlsType === 'icon' ? react_1.default.createElement(SelectIcon_1.SelectIcon, null) : undefined, onClick: select === null || select === void 0 ? void 0 : select.onClick }, controlsType !== 'icon' && (select === null || select === void 0 ? void 0 : select.label) ? select.label : 'Select all')) : null,
48
48
  deselect ? (react_1.default.createElement(ControlButton, { variant: "text", size: "small", "data-testid": "clear-all", icon: controlsType === 'icon' ? react_1.default.createElement(DeselectIcon_1.DeselectIcon, null) : undefined, onClick: deselect === null || deselect === void 0 ? void 0 : deselect.onClick }, controlsType !== 'icon' && (deselect === null || deselect === void 0 ? void 0 : deselect.label) ? deselect.label : 'Clear all')) : null,
49
- copy && !((_e = codeSnippet === null || codeSnippet === void 0 ? void 0 : codeSnippet.copy) === null || _e === void 0 ? void 0 : _e.hide) ? (react_1.default.createElement(TooltipWrapper_1.TooltipWrapper, { tip: translate('codeSnippet.copy.tooltipText', 'Copy to clipboard'), placement: "top" },
49
+ copy && !((_e = codeSnippet === null || codeSnippet === void 0 ? void 0 : codeSnippet.copy) === null || _e === void 0 ? void 0 : _e.hide) ? (react_1.default.createElement(Tooltip_1.Tooltip, { tip: translate('codeSnippet.copy.tooltipText', 'Copy to clipboard'), placement: "top", arrowPosition: "right" },
50
50
  react_1.default.createElement(StyledCopyButton, { data: copy.data, "data-source": copy.dataSource, "data-hash": copy.dataHash, type: controlsType, toasterPlacement: copy.toasterPlacement, toasterDuration: copy.toasterDuration, buttonText: copy.label, onCopyClick: () => {
51
51
  var _a;
52
52
  // If there already is a click handler, events should be handled there, cause they pass additional data
@@ -54,7 +54,9 @@ function CodeBlockControls({ children, className, title, controls, tabs, dropdow
54
54
  (_a = copy === null || copy === void 0 ? void 0 : copy.onClick) === null || _a === void 0 ? void 0 : _a.call(copy);
55
55
  }
56
56
  else {
57
- telemetry.sendCopyCodeSnippetClickedMessage({ snippetType: 'copy' });
57
+ telemetry.sendCopyCodeSnippetClickedMessage([
58
+ { object: 'code_snippet', snippetType: 'copy' },
59
+ ]);
58
60
  }
59
61
  } }))) : null))) : null;
60
62
  return children || controls ? (react_1.default.createElement(ContainerWrapper, { "data-component-name": "CodeBlock/CodeBlockControls", className: className, "$isEmptyTitle": isEmptyTitle }, children ? children : defaultControls)) : null;
@@ -24,7 +24,7 @@ function FilterCheckboxes({ filter, filterValuesCasing, showCounter = true, }) {
24
24
  const id = 'filter--' + filter.property + '--' + value;
25
25
  return (react_1.default.createElement(FilterCheckboxOption, { key: id, role: "link", onClick: () => {
26
26
  filter.toggleOption(value);
27
- telemetry.sendFilterCheckboxToggledMessage({ id });
27
+ telemetry.sendFilterCheckboxToggledMessage([{ object: 'checkbox', id }]);
28
28
  } },
29
29
  react_1.default.createElement(CheckboxIcon_1.CheckboxIcon, { checked: filter.selectedOptions instanceof Set
30
30
  ? filter.selectedOptions.has(value) ||
@@ -40,7 +40,7 @@ exports.JsonViewerWrap = exports.JsonViewer = void 0;
40
40
  const react_1 = __importStar(require("react"));
41
41
  const styled_components_1 = __importDefault(require("styled-components"));
42
42
  const CodeBlock_1 = require("../../components/CodeBlock/CodeBlock");
43
- const Helpers_1 = require("./Helpers");
43
+ const helpers_1 = require("../../components/JsonViewer/helpers");
44
44
  function JsonComponent({ data, expandLevel = 1, className, onCopyClick, onPanelToggle, title, controls = {}, }) {
45
45
  const showFoldingButtons = data && Object.values(data).some((value) => typeof value === 'object' && value !== null);
46
46
  const [expandAllSignal, setExpandAllSignal] = react_1.default.useState(undefined);
@@ -71,7 +71,7 @@ function JsonComponent({ data, expandLevel = 1, className, onCopyClick, onPanelT
71
71
  }
72
72
  : undefined, source: source },
73
73
  react_1.default.createElement(FoldingWrap, null,
74
- react_1.default.createElement(Helpers_1.JsonValue, { value: data, level: 0, standalone: true, expandAllSignal: expandAllSignal, defaultExpandLevel: Math.max(1, expandLevel) })))));
74
+ react_1.default.createElement(helpers_1.JsonValue, { value: data, level: 0, standalone: true, expandAllSignal: expandAllSignal, defaultExpandLevel: Math.max(1, expandLevel) })))));
75
75
  }
76
76
  exports.JsonViewer = (0, react_1.memo)(JsonComponent);
77
77
  const FoldingWrap = styled_components_1.default.div `
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.JsonValue = JsonValue;
40
+ /* eslint-disable check-file/filename-naming-convention */
40
41
  const react_1 = __importStar(require("react"));
41
42
  const styled_components_1 = __importDefault(require("styled-components"));
42
43
  const Button_1 = require("../../components/Button/Button");
@@ -137,4 +138,4 @@ const ExpandButton = (0, styled_components_1.default)(Button_1.Button) `
137
138
  margin-left: 0;
138
139
  }
139
140
  `;
140
- //# sourceMappingURL=Helpers.js.map
141
+ //# sourceMappingURL=helpers.js.map
@@ -26,7 +26,7 @@ function LanguagePicker(props) {
26
26
  onAction: () => {
27
27
  setLocale(locale.code);
28
28
  props.onChangeLanguage(locale.code);
29
- telemetry.sendLanguagePickerLocaleChangedMessage({ locale: locale.code });
29
+ telemetry.sendLanguagePickerLocaleChangedMessage([{ object: 'locale', locale: locale.code }]);
30
30
  },
31
31
  active: locale.code === currentLocale.code,
32
32
  suffix: locale.code === currentLocale.code && react_1.default.createElement(CheckmarkIcon_1.CheckmarkIcon, null),
@@ -77,7 +77,7 @@ exports.Markdown = styled_components_1.default.main.attrs(({ className }) => ({
77
77
  ${links_1.markdownLinksCss}
78
78
 
79
79
  a[name], [id] {
80
- scroll-margin-top: var(--navbar-height);
80
+ scroll-margin-top: calc(var(--navbar-height) + var(--banner-height));
81
81
  }
82
82
 
83
83
  img,
@@ -95,7 +95,7 @@ exports.Markdown = styled_components_1.default.main.attrs(({ className }) => ({
95
95
  font-family: var(--heading-font-family);
96
96
  position: relative;
97
97
 
98
- scroll-margin-top: var(--navbar-height);
98
+ scroll-margin-top: calc(var(--navbar-height) + var(--banner-height));
99
99
  }
100
100
 
101
101
  strong {