@redocly/theme 0.54.0 → 0.55.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/lib/components/Breadcrumbs/Breadcrumbs.js +3 -3
  2. package/lib/components/Buttons/EditPageButton.js +3 -3
  3. package/lib/components/CatalogClassic/CatalogClassicActions.js +3 -3
  4. package/lib/components/CatalogClassic/CatalogClassicCard.js +3 -3
  5. package/lib/components/CatalogClassic/CatalogClassicInfoBlock.js +3 -3
  6. package/lib/components/CodeBlock/CodeBlockControls.js +3 -3
  7. package/lib/components/Feedback/Feedback.js +3 -3
  8. package/lib/components/Feedback/ReportDialog.js +3 -3
  9. package/lib/components/Filter/FilterCheckboxes.js +3 -3
  10. package/lib/components/Footer/FooterItem.js +3 -3
  11. package/lib/components/LanguagePicker/LanguagePicker.js +3 -3
  12. package/lib/components/Logo/Logo.js +3 -3
  13. package/lib/components/Menu/MenuItem.js +3 -3
  14. package/lib/components/Navbar/Navbar.js +4 -4
  15. package/lib/components/Navbar/NavbarItem.js +3 -3
  16. package/lib/components/Search/SearchDialog.js +5 -5
  17. package/lib/components/Search/SearchInput.js +3 -3
  18. package/lib/components/Search/SearchRecent.js +3 -3
  19. package/lib/components/SidebarActions/SidebarActions.js +5 -5
  20. package/lib/components/TableOfContent/TableOfContent.js +3 -3
  21. package/lib/components/UserMenu/LoginButton.js +3 -3
  22. package/lib/components/UserMenu/LogoutMenuItem.js +3 -3
  23. package/lib/core/hooks/__mocks__/use-theme-hooks.d.ts +0 -3
  24. package/lib/core/hooks/__mocks__/use-theme-hooks.js +0 -3
  25. package/lib/core/hooks/search/use-search-dialog.js +4 -4
  26. package/lib/core/hooks/use-color-switcher.js +3 -3
  27. package/lib/core/hooks/use-product-picker.js +3 -3
  28. package/lib/core/hooks/use-theme-hooks.js +4 -1
  29. package/lib/core/styles/dark.js +14 -3
  30. package/lib/core/styles/global.js +9 -6
  31. package/lib/core/types/hooks.d.ts +0 -5
  32. package/lib/markdoc/components/Tabs/Tabs.js +4 -1
  33. package/package.json +3 -3
  34. package/src/components/Breadcrumbs/Breadcrumbs.tsx +3 -3
  35. package/src/components/Buttons/EditPageButton.tsx +3 -3
  36. package/src/components/CatalogClassic/CatalogClassicActions.tsx +3 -3
  37. package/src/components/CatalogClassic/CatalogClassicCard.tsx +3 -3
  38. package/src/components/CatalogClassic/CatalogClassicInfoBlock.tsx +3 -3
  39. package/src/components/CodeBlock/CodeBlockControls.tsx +3 -3
  40. package/src/components/Feedback/Feedback.tsx +3 -3
  41. package/src/components/Feedback/ReportDialog.tsx +3 -3
  42. package/src/components/Filter/FilterCheckboxes.tsx +3 -3
  43. package/src/components/Footer/FooterItem.tsx +3 -3
  44. package/src/components/LanguagePicker/LanguagePicker.tsx +3 -3
  45. package/src/components/Logo/Logo.tsx +3 -3
  46. package/src/components/Menu/MenuItem.tsx +3 -3
  47. package/src/components/Navbar/Navbar.tsx +4 -4
  48. package/src/components/Navbar/NavbarItem.tsx +3 -3
  49. package/src/components/Search/SearchDialog.tsx +5 -5
  50. package/src/components/Search/SearchInput.tsx +3 -3
  51. package/src/components/Search/SearchRecent.tsx +3 -3
  52. package/src/components/SidebarActions/SidebarActions.tsx +5 -5
  53. package/src/components/TableOfContent/TableOfContent.tsx +3 -3
  54. package/src/components/UserMenu/LoginButton.tsx +3 -3
  55. package/src/components/UserMenu/LogoutMenuItem.tsx +3 -3
  56. package/src/core/hooks/__mocks__/use-theme-hooks.ts +0 -3
  57. package/src/core/hooks/search/use-search-dialog.ts +4 -4
  58. package/src/core/hooks/use-color-switcher.ts +3 -3
  59. package/src/core/hooks/use-product-picker.ts +3 -3
  60. package/src/core/hooks/use-theme-hooks.ts +4 -1
  61. package/src/core/styles/dark.ts +15 -3
  62. package/src/core/styles/global.ts +9 -6
  63. package/src/core/types/hooks.ts +1 -4
  64. package/src/markdoc/components/Tabs/Tabs.tsx +7 -1
@@ -9,8 +9,8 @@ const styled_components_1 = __importDefault(require("styled-components"));
9
9
  const hooks_1 = require("../../core/hooks");
10
10
  const Breadcrumb_1 = require("../../components/Breadcrumbs/Breadcrumb");
11
11
  function Breadcrumbs(props) {
12
- const { useBreadcrumbs, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
13
- const otelTelemetry = useOtelTelemetry();
12
+ const { useBreadcrumbs, useTelemetry } = (0, hooks_1.useThemeHooks)();
13
+ const telemetry = useTelemetry();
14
14
  const breadcrumbs = useBreadcrumbs();
15
15
  if (breadcrumbs.length === 0) {
16
16
  return null;
@@ -19,7 +19,7 @@ function Breadcrumbs(props) {
19
19
  const isLast = idx === breadcrumbs.length - 1;
20
20
  return (react_1.default.createElement(react_1.default.Fragment, { key: idx },
21
21
  react_1.default.createElement(Breadcrumb_1.Breadcrumb, { link: breadcrumb.link, label: breadcrumb.label, isActive: isLast, onClick: () => {
22
- otelTelemetry.send({
22
+ telemetry.send({
23
23
  type: 'breadcrumb.clicked',
24
24
  payload: {
25
25
  link: breadcrumb.link,
@@ -10,10 +10,10 @@ const hooks_1 = require("../../core/hooks");
10
10
  const EditIcon_1 = require("../../icons/EditIcon/EditIcon");
11
11
  const Link_1 = require("../../components/Link/Link");
12
12
  function EditPageButton({ to }) {
13
- const { useTranslate, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
13
+ const { useTranslate, useTelemetry } = (0, hooks_1.useThemeHooks)();
14
14
  const { translate } = useTranslate();
15
- const otelTelemetry = useOtelTelemetry();
16
- return (react_1.default.createElement(EditPageButtonWrapper, { "data-component-name": "Buttons/EditPageButton", target: "_blank", to: to, onClick: () => otelTelemetry.send({ type: 'edit_page_link.clicked' }) },
15
+ const telemetry = useTelemetry();
16
+ return (react_1.default.createElement(EditPageButtonWrapper, { "data-component-name": "Buttons/EditPageButton", target: "_blank", to: to, onClick: () => telemetry.send({ type: 'edit_page_link.clicked' }) },
17
17
  react_1.default.createElement(ButtonIcon, null),
18
18
  react_1.default.createElement(ButtonText, { "data-translation-key": "markdown.editPage.text" }, translate('markdown.editPage.text', 'Edit'))));
19
19
  }
@@ -45,13 +45,13 @@ function CatalogClassicActions(props) {
45
45
  activeFilters++;
46
46
  }
47
47
  }
48
- const { useTranslate, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
48
+ const { useTranslate, useTelemetry } = (0, hooks_1.useThemeHooks)();
49
49
  const { translate } = useTranslate();
50
- const otelTelemetry = useOtelTelemetry();
50
+ const telemetry = useTelemetry();
51
51
  return (React.createElement(CatalogActionsWrapper, { "data-component-name": "CatalogClassic/CatalogClassicActions" },
52
52
  React.createElement(Button_1.Button, { variant: "ghost", size: "small", icon: React.createElement(FilterIcon_1.FilterIcon, null), iconPosition: "left", onClick: () => {
53
53
  onOpenFilter();
54
- otelTelemetry.send({ type: 'catalog_actions_button.clicked' });
54
+ telemetry.send({ type: 'catalog_actions_button.clicked' });
55
55
  }, "data-translation-key": "catalog.filters.title" }, translate('catalog.filters.title', 'Filters')),
56
56
  activeFilters > 0 ? React.createElement(CounterTag_1.CounterTag, { borderless: true }, activeFilters) : null));
57
57
  }
@@ -51,10 +51,10 @@ function stripHtmlTags(text) {
51
51
  }
52
52
  function CatalogClassicCard({ item }) {
53
53
  var _a, _b;
54
- const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
55
- const otelTelemetry = useOtelTelemetry();
54
+ const { useTelemetry } = (0, hooks_1.useThemeHooks)();
55
+ const telemetry = useTelemetry();
56
56
  return (React.createElement(Link_1.Link, { key: item.docsLink || item.link, to: item.docsLink || item.link },
57
- React.createElement(StyledCard, { "data-component-name": "CatalogClassic/CatalogClassicCard", onClick: () => otelTelemetry.send({ type: 'catalog_item.clicked' }) },
57
+ React.createElement(StyledCard, { "data-component-name": "CatalogClassic/CatalogClassicCard", onClick: () => telemetry.send({ type: 'catalog_item.clicked' }) },
58
58
  React.createElement(CardContent, null,
59
59
  React.createElement(CardTitleWrapper, null,
60
60
  React.createElement(CardTitle, null,
@@ -18,10 +18,10 @@ function CatalogClassicInfoBlock(props) {
18
18
  }
19
19
  function ScorecardBadge(props) {
20
20
  const { level, slug, colorVariable } = props;
21
- const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
22
- const otelTelemetry = useOtelTelemetry();
21
+ const { useTelemetry } = (0, hooks_1.useThemeHooks)();
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: () => otelTelemetry.send({ type: 'scorecard_link.clicked', payload: { action: 'click' } }), withStatusDot: true, statusDotColor: `var(${colorVariable})` }, level)));
24
+ react_1.default.createElement(Tag_1.Tag, { onClick: () => telemetry.send({ type: 'scorecard_link.clicked', payload: { action: 'click' } }), withStatusDot: true, statusDotColor: `var(${colorVariable})` }, level)));
25
25
  }
26
26
  const CatalogInfoBlockWrapper = styled_components_1.default.div `
27
27
  position: relative;
@@ -19,8 +19,8 @@ const Button_1 = require("../../components/Button/Button");
19
19
  function CodeBlockControls({ children, className, title, controls, tabs, }) {
20
20
  var _a, _b, _c, _d, _e;
21
21
  const { codeSnippet } = (0, hooks_1.useThemeConfig)();
22
- const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
23
- const otelTelemetry = useOtelTelemetry();
22
+ const { useTelemetry } = (0, hooks_1.useThemeHooks)();
23
+ const telemetry = useTelemetry();
24
24
  const controlsType = (codeSnippet === null || codeSnippet === void 0 ? void 0 : codeSnippet.elementFormat) || 'icon';
25
25
  const { copy, expand, collapse, select, deselect, report } = controls || {
26
26
  copy: null,
@@ -48,7 +48,7 @@ function CodeBlockControls({ children, className, title, controls, tabs, }) {
48
48
  (_a = copy === null || copy === void 0 ? void 0 : copy.onClick) === null || _a === void 0 ? void 0 : _a.call(copy);
49
49
  }
50
50
  else {
51
- otelTelemetry.send({
51
+ telemetry.send({
52
52
  type: 'openapi_docs.copy_code_snippet.clicked',
53
53
  payload: { snippet_type: 'copy' },
54
54
  });
@@ -46,9 +46,9 @@ const feedbackComponents = {
46
46
  };
47
47
  function Feedback(props) {
48
48
  var _a;
49
- const { useSubmitFeedback, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
49
+ const { useSubmitFeedback, useTelemetry } = (0, hooks_1.useThemeHooks)();
50
50
  const { submitFeedback } = useSubmitFeedback();
51
- const otelTelemetry = useOtelTelemetry();
51
+ const telemetry = useTelemetry();
52
52
  const { pathname } = (0, react_router_dom_1.useLocation)();
53
53
  const { feedback: themeFeedbackConf } = (0, hooks_1.useThemeConfig)();
54
54
  const feedbackConf = Object.assign(Object.assign({}, themeFeedbackConf), { path: props === null || props === void 0 ? void 0 : props.path, type: (props === null || props === void 0 ? void 0 : props.type) || (themeFeedbackConf === null || themeFeedbackConf === void 0 ? void 0 : themeFeedbackConf.type) || constants_1.DEFAULT_FEEDBACK_TYPE, settings: (props === null || props === void 0 ? void 0 : props.settings) || (themeFeedbackConf === null || themeFeedbackConf === void 0 ? void 0 : themeFeedbackConf.settings) || {}, hide: (_a = props.hide) !== null && _a !== void 0 ? _a : themeFeedbackConf === null || themeFeedbackConf === void 0 ? void 0 : themeFeedbackConf.hide });
@@ -64,7 +64,7 @@ function Feedback(props) {
64
64
  return (React.createElement(FeedbackWrapper, { "data-component-name": "Feedback/Feedback" },
65
65
  React.createElement(FeedbackComponent, { settings: settings, onSubmit: (values) => {
66
66
  submitFeedback({ type, values, path });
67
- otelTelemetry.send({ type: 'feedback.sent', payload: { feedback_type: type } });
67
+ telemetry.send({ type: 'feedback.sent', payload: { feedback_type: type } });
68
68
  } })));
69
69
  };
70
70
  return React.createElement(React.Fragment, { key: pathname }, renderFeedbackComponent());
@@ -21,9 +21,9 @@ const Comment_1 = require("../../components/Feedback/Comment");
21
21
  const Portal_1 = require("../../components/Portal/Portal");
22
22
  function ReportDialog({ location, settings, onSubmit, onCancel, submitFeedback, lang, }) {
23
23
  const { label } = settings;
24
- const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
24
+ const { useTelemetry } = (0, hooks_1.useThemeHooks)();
25
25
  const { pathname } = (0, react_router_dom_1.useLocation)();
26
- const otelTelemetry = useOtelTelemetry();
26
+ const telemetry = useTelemetry();
27
27
  return (react_1.default.createElement(Portal_1.Portal, null,
28
28
  react_1.default.createElement(ReportDialogWrapper, { className: "scroll-lock", "data-component-name": "Feedback/ReportDialog" },
29
29
  react_1.default.createElement(Comment_1.Comment, { settings: { label }, onSubmit: (value) => __awaiter(this, void 0, void 0, function* () {
@@ -34,7 +34,7 @@ function ReportDialog({ location, settings, onSubmit, onCancel, submitFeedback,
34
34
  path: pathname,
35
35
  lang,
36
36
  });
37
- otelTelemetry.send({ type: 'code_snippet.reported' });
37
+ telemetry.send({ type: 'code_snippet.reported' });
38
38
  onSubmit();
39
39
  }), isDialog: true, onCancel: onCancel }))));
40
40
  }
@@ -15,16 +15,16 @@ const CheckboxIcon_1 = require("../../icons/CheckboxIcon/CheckboxIcon");
15
15
  const CounterTag_1 = require("../../components/Tags/CounterTag");
16
16
  const utils_1 = require("../../core/utils");
17
17
  function FilterCheckboxes({ filter, filterValuesCasing }) {
18
- const { useTranslate, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
18
+ const { useTranslate, useTelemetry } = (0, hooks_1.useThemeHooks)();
19
19
  const { translate } = useTranslate();
20
- const otelTelemetry = useOtelTelemetry();
20
+ const telemetry = useTelemetry();
21
21
  return (react_1.default.createElement(FilterCheckboxesWrapper, { "data-component-name": "Filter/FilterCheckboxes" },
22
22
  react_1.default.createElement(FilterTitle_1.FilterTitle, { "data-translation-key": filter.titleTranslationKey }, translate(filter.titleTranslationKey, filter.title)),
23
23
  react_1.default.createElement(FilterOptions_1.FilterOptions, null, filter.filteredOptions.map(({ value, count }) => {
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
- otelTelemetry.send({ type: 'filter_checkbox.toggled', payload: { id } });
27
+ telemetry.send({ type: 'filter_checkbox.toggled', payload: { id } });
28
28
  } },
29
29
  react_1.default.createElement(CheckboxIcon_1.CheckboxIcon, { checked: filter.selectedOptions.has(value) }),
30
30
  react_1.default.createElement(FilterOptionLabel_1.FilterOptionLabel, { "data-translation-key": value }, (0, utils_1.changeTextCasing)(translate(value), filterValuesCasing)),
@@ -12,15 +12,15 @@ const Link_1 = require("../../components/Link/Link");
12
12
  const Image_1 = require("../../components/Image/Image");
13
13
  const utils_1 = require("../../core/utils");
14
14
  function FooterItem({ item, iconsOnly, className }) {
15
- const { useTranslate, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
16
- const otelTelemetry = useOtelTelemetry();
15
+ const { useTranslate, useTelemetry } = (0, hooks_1.useThemeHooks)();
16
+ const telemetry = useTelemetry();
17
17
  const { translate } = useTranslate();
18
18
  if (item.type === 'error') {
19
19
  return null;
20
20
  }
21
21
  const hasIcon = Boolean(item.icon || item.srcSet);
22
22
  const iconWithoutLabel = Boolean(item.label === item.link && hasIcon);
23
- return (react_1.default.createElement(FooterItemWrapper, { className: className, "data-component-name": "Footer/FooterItem", iconsOnly: iconsOnly, item: item }, item.type === 'separator' ? (react_1.default.createElement(FooterSeparator, { "data-translation-key": item.labelTranslationKey }, translate(item.labelTranslationKey, item.label))) : (react_1.default.createElement(FooterLink, { to: item.link, external: item.external, target: item.target, "data-testid": item.label, onClick: () => otelTelemetry.send({ type: 'footer_item.clicked' }), "data-translation-key": item.labelTranslationKey },
23
+ return (react_1.default.createElement(FooterItemWrapper, { className: className, "data-component-name": "Footer/FooterItem", iconsOnly: iconsOnly, item: item }, item.type === 'separator' ? (react_1.default.createElement(FooterSeparator, { "data-translation-key": item.labelTranslationKey }, translate(item.labelTranslationKey, item.label))) : (react_1.default.createElement(FooterLink, { to: item.link, external: item.external, target: item.target, "data-testid": item.label, onClick: () => telemetry.send({ type: 'footer_item.clicked' }), "data-translation-key": item.labelTranslationKey },
24
24
  hasIcon ? (react_1.default.createElement(FooterLinkIcon, { iconsOnly: iconsOnly },
25
25
  react_1.default.createElement(Image_1.Image, { src: item.icon, srcSet: item.srcSet }))) : null,
26
26
  !iconWithoutLabel ? translate(item.labelTranslationKey, item.label) : null,
@@ -15,8 +15,8 @@ const Dropdown_1 = require("../../components/Dropdown/Dropdown");
15
15
  const CheckmarkIcon_1 = require("../../icons/CheckmarkIcon/CheckmarkIcon");
16
16
  function LanguagePicker(props) {
17
17
  const { currentLocale, locales, setLocale } = (0, hooks_1.useLanguagePicker)();
18
- const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
19
- const otelTelemetry = useOtelTelemetry();
18
+ const { useTelemetry } = (0, hooks_1.useThemeHooks)();
19
+ const telemetry = useTelemetry();
20
20
  if (locales.length < 2 || !currentLocale) {
21
21
  return null;
22
22
  }
@@ -26,7 +26,7 @@ function LanguagePicker(props) {
26
26
  onAction: () => {
27
27
  setLocale(locale.code);
28
28
  props.onChangeLanguage(locale.code);
29
- otelTelemetry.send({
29
+ telemetry.send({
30
30
  type: 'language_picker_locale.changed',
31
31
  payload: { locale: locale.code },
32
32
  });
@@ -22,13 +22,13 @@ const Link_1 = require("../../components/Link/Link");
22
22
  const Image_1 = require("../../components/Image/Image");
23
23
  function Logo(_a) {
24
24
  var { config, className } = _a, otherProps = __rest(_a, ["config", "className"]);
25
- const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
26
- const otelTelemetry = useOtelTelemetry();
25
+ const { useTelemetry } = (0, hooks_1.useThemeHooks)();
26
+ const telemetry = useTelemetry();
27
27
  if (!(config === null || config === void 0 ? void 0 : config.image) && !(config === null || config === void 0 ? void 0 : config.srcSet)) {
28
28
  return null;
29
29
  }
30
30
  const image = (react_1.default.createElement(Image_1.Image, { className: className, src: config.image, srcSet: config.srcSet, alt: config.altText }));
31
- return (react_1.default.createElement(LogoWrapper, Object.assign({ "data-component-name": "Logo/Logo", className: className }, otherProps), config.link ? (react_1.default.createElement(Link_1.Link, { to: config.link, onClick: () => otelTelemetry.send({ type: 'logo.clicked' }) }, image)) : (image)));
31
+ return (react_1.default.createElement(LogoWrapper, Object.assign({ "data-component-name": "Logo/Logo", className: className }, otherProps), config.link ? (react_1.default.createElement(Link_1.Link, { to: config.link, onClick: () => telemetry.send({ type: 'logo.clicked' }) }, image)) : (image)));
32
32
  }
33
33
  const LogoWrapper = styled_components_1.default.div `
34
34
  max-width: var(--logo-max-width);
@@ -39,7 +39,7 @@ const Badge_1 = require("../../components/Badge/Badge");
39
39
  function MenuItem(props) {
40
40
  var _a;
41
41
  const { item, depth, className, onClick } = props;
42
- const { useTranslate, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
42
+ const { useTranslate, useTelemetry } = (0, hooks_1.useThemeHooks)();
43
43
  const { translate } = useTranslate();
44
44
  const type = (0, utils_1.getMenuItemType)(item);
45
45
  const nestedMenuRef = (0, react_1.useRef)(null);
@@ -47,14 +47,14 @@ function MenuItem(props) {
47
47
  const { isExpanded, canUnmount, style, handleExpand } = (0, hooks_1.useNestedMenu)(Object.assign(Object.assign({}, props), { type,
48
48
  labelRef,
49
49
  nestedMenuRef }));
50
- const otelTelemetry = useOtelTelemetry();
50
+ const telemetry = useTelemetry();
51
51
  const isDrilldown = type === constants_1.MenuItemType.DrillDown;
52
52
  const isSeparator = type === constants_1.MenuItemType.Separator;
53
53
  const isNested = type === constants_1.MenuItemType.Group;
54
54
  const hasChevron = isNested && !isDrilldown;
55
55
  const hasHttpTag = !!item.httpVerb || type === constants_1.MenuItemType.Operation;
56
56
  const handleOnClick = () => {
57
- otelTelemetry.send({
57
+ telemetry.send({
58
58
  type: 'sidebar.item_clicked',
59
59
  payload: {
60
60
  label: item.label,
@@ -23,9 +23,9 @@ function Navbar({ className }) {
23
23
  var _a;
24
24
  const { isOpen, closeMobileMenu, openMobileMenu } = (0, hooks_1.useMobileMenu)(false);
25
25
  const themeConfig = (0, hooks_1.useThemeConfig)();
26
- const { useL10n, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
26
+ const { useL10n, useTelemetry } = (0, hooks_1.useThemeHooks)();
27
27
  const { changeLanguage } = useL10n();
28
- const otelTelemetry = useOtelTelemetry();
28
+ const telemetry = useTelemetry();
29
29
  const menu = (_a = themeConfig.navbar) === null || _a === void 0 ? void 0 : _a.items;
30
30
  const { search: searchSettings, navbar, userMenu: userMenuSettings, logo } = themeConfig;
31
31
  if (navbar === null || navbar === void 0 ? void 0 : navbar.hide) {
@@ -45,11 +45,11 @@ function Navbar({ className }) {
45
45
  react_1.default.createElement(MobileMenuButton, { variant: "text", "data-testid": "mobile-menu-button", onClick: isOpen
46
46
  ? () => {
47
47
  closeMobileMenu();
48
- otelTelemetry.send({ type: 'mobile_menu_button_close.clicked' });
48
+ telemetry.send({ type: 'mobile_menu_button_close.clicked' });
49
49
  }
50
50
  : () => {
51
51
  openMobileMenu();
52
- otelTelemetry.send({ type: 'mobile_menu_button_open.clicked' });
52
+ telemetry.send({ type: 'mobile_menu_button_open.clicked' });
53
53
  }, icon: isOpen ? react_1.default.createElement(CloseIcon_1.CloseIcon, null) : react_1.default.createElement(MenuIcon_1.MenuIcon, null) }),
54
54
  hideUserMenu ? null : react_1.default.createElement(UserMenu_1.UserMenu, null))));
55
55
  }
@@ -39,17 +39,17 @@ const Link_1 = require("../../components/Link/Link");
39
39
  const Dropdown_1 = require("../../components/Dropdown/Dropdown");
40
40
  function NavbarItem({ navItem, className }) {
41
41
  const { pathname } = (0, react_router_dom_1.useLocation)();
42
- const { useTranslate, useL10nConfig, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
42
+ const { useTranslate, useL10nConfig, useTelemetry } = (0, hooks_1.useThemeHooks)();
43
43
  const { translate } = useTranslate();
44
44
  const { defaultLocale, currentLocale, locales } = useL10nConfig();
45
- const otelTelemetry = useOtelTelemetry();
45
+ const telemetry = useTelemetry();
46
46
  if (navItem.type !== 'link' && !navItem.items)
47
47
  return null;
48
48
  const item = navItem;
49
49
  const normalizedPath = (item.link && item.link !== '/' ? (0, utils_1.removeTrailingSlash)(item.link) : item.link) || '';
50
50
  const isActive = pathname ===
51
51
  (0, utils_1.withPathPrefix)((0, utils_1.getPathnameForLocale)(normalizedPath, defaultLocale, currentLocale, locales));
52
- const itemContent = (react_1.default.createElement(NavbarMenuItem, { as: item.link ? Link_1.Link : undefined, active: isActive, className: className, onClick: () => otelTelemetry.send({ type: 'navbar.menu_item_clicked', payload: { type: item.type } }), external: item.external, target: item.target, to: item.link },
52
+ const itemContent = (react_1.default.createElement(NavbarMenuItem, { as: item.link ? Link_1.Link : undefined, active: isActive, className: className, onClick: () => telemetry.send({ type: 'navbar.menu_item_clicked', payload: { type: item.type } }), external: item.external, target: item.target, to: item.link },
53
53
  react_1.default.createElement(NavbarIcon, { url: item.icon }),
54
54
  react_1.default.createElement(NavbarLabel, { "data-translation-key": item.labelTranslationKey }, translate(item.labelTranslationKey, item.label)),
55
55
  item.external ? react_1.default.createElement(ExternalLinkIcon, { size: "10px" }) : null));
@@ -51,8 +51,8 @@ const ChevronLeftIcon_1 = require("../../icons/ChevronLeftIcon/ChevronLeftIcon")
51
51
  const EditIcon_1 = require("../../icons/EditIcon/EditIcon");
52
52
  const AiStarsGradientIcon_1 = require("../../icons/AiStarsGradientIcon/AiStarsGradientIcon");
53
53
  function SearchDialog({ onClose, className }) {
54
- const { useTranslate, useCurrentProduct, useSearch, useProducts, useAiSearch, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
55
- const otelTelemetry = useOtelTelemetry();
54
+ const { useTranslate, useCurrentProduct, useSearch, useProducts, useAiSearch, useTelemetry } = (0, hooks_1.useThemeHooks)();
55
+ const telemetry = useTelemetry();
56
56
  const products = useProducts();
57
57
  const currentProduct = useCurrentProduct();
58
58
  const [product, setProduct] = (0, react_1.useState)(currentProduct);
@@ -110,7 +110,7 @@ function SearchDialog({ onClose, className }) {
110
110
  }
111
111
  return (react_1.default.createElement(SearchItem_1.SearchItem, { key: `${index}-${item.document.id}`, item: item, product: itemProduct, innerRef: innerRef, onClick: () => {
112
112
  addSearchHistoryItem(query);
113
- otelTelemetry.send({
113
+ telemetry.send({
114
114
  type: 'search.result.clicked',
115
115
  payload: {
116
116
  query,
@@ -122,7 +122,7 @@ function SearchDialog({ onClose, className }) {
122
122
  });
123
123
  onClose();
124
124
  } }));
125
- }, [onClose, product, products, addSearchHistoryItem, query, otelTelemetry, mode]);
125
+ }, [onClose, product, products, addSearchHistoryItem, query, telemetry, mode]);
126
126
  const showLoadMore = (0, react_1.useCallback)((groupKey, currentCount = 0) => {
127
127
  const groupFacet = facets.find((facet) => facet.field === groupField);
128
128
  let needLoadMore = false;
@@ -223,7 +223,7 @@ function SearchDialog({ onClose, className }) {
223
223
  translate('search.loading', 'Loading...'))) : (react_1.default.createElement(SearchMessage, { "data-translation-key": "search.noResults" },
224
224
  react_1.default.createElement("b", null, translate('search.noResults.title', 'No results'))))) : (react_1.default.createElement(react_1.default.Fragment, null,
225
225
  react_1.default.createElement(SearchRecent_1.SearchRecent, { onSelect: (query, index) => {
226
- otelTelemetry.send({
226
+ telemetry.send({
227
227
  type: 'search.recent.clicked',
228
228
  payload: {
229
229
  query,
@@ -13,9 +13,9 @@ const hooks_1 = require("../../core/hooks");
13
13
  const CloseFilledIcon_1 = require("../../icons/CloseFilledIcon/CloseFilledIcon");
14
14
  const ChevronLeftIcon_1 = require("../../icons/ChevronLeftIcon/ChevronLeftIcon");
15
15
  function SearchInput({ placeholder, value, onChange, isLoading, showReturnButton, inputRef, onReturn, onSubmit, className, }) {
16
- const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
16
+ const { useTelemetry } = (0, hooks_1.useThemeHooks)();
17
17
  const { addSearchHistoryItem } = (0, hooks_1.useRecentSearches)();
18
- const otelTelemetry = useOtelTelemetry();
18
+ const telemetry = useTelemetry();
19
19
  const { onKeyDown } = (0, hooks_1.useInputKeyCommands)({
20
20
  onEnter: (event) => onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(event),
21
21
  onClear: () => addSearchHistoryItem(value),
@@ -27,7 +27,7 @@ function SearchInput({ placeholder, value, onChange, isLoading, showReturnButton
27
27
  const handleOnReset = () => {
28
28
  onChange('');
29
29
  addSearchHistoryItem(value);
30
- otelTelemetry.send({ type: 'search_input_reset_button.clicked' });
30
+ telemetry.send({ type: 'search_input_reset_button.clicked' });
31
31
  };
32
32
  return (react_1.default.createElement(SearchInputWrapper, { "data-component-name": "Search/SearchInput", className: className },
33
33
  showReturnButton ? (react_1.default.createElement(Button_1.Button, { icon: react_1.default.createElement(ChevronLeftIcon_1.ChevronLeftIcon, null), onClick: onReturn })) : value && isLoading ? (react_1.default.createElement(Spinner_1.Spinner, { size: "24px", color: "--search-input-icon-color" })) : (react_1.default.createElement(SearchIcon_1.SearchIcon, { size: "24px", color: "--search-input-icon-color" })),
@@ -36,15 +36,15 @@ const RecentlyViewedIcon_1 = require("../../icons/RecentlyViewedIcon/RecentlyVie
36
36
  const Button_1 = require("../../components/Button/Button");
37
37
  function SearchRecent({ onSelect, className }) {
38
38
  const { items, removeSearchHistoryItem } = (0, hooks_1.useRecentSearches)();
39
- const { useTranslate, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
39
+ const { useTranslate, useTelemetry } = (0, hooks_1.useThemeHooks)();
40
40
  const { translate } = useTranslate();
41
- const otelTelemetry = useOtelTelemetry();
41
+ const telemetry = useTelemetry();
42
42
  if (!items || !items.length)
43
43
  return null;
44
44
  const handleOnRemove = (e, item) => {
45
45
  e.stopPropagation();
46
46
  removeSearchHistoryItem(item);
47
- otelTelemetry.send({ type: 'search_recent_remove_button.clicked' });
47
+ telemetry.send({ type: 'search_recent_remove_button.clicked' });
48
48
  };
49
49
  const handleKeyDown = (e, item, index) => {
50
50
  if (e.key === 'Enter') {
@@ -14,17 +14,17 @@ const SidePanelCloseIcon_1 = require("../../icons/SidePanelCloseIcon/SidePanelCl
14
14
  const SidePanelOpenIcon_1 = require("../../icons/SidePanelOpenIcon/SidePanelOpenIcon");
15
15
  const styled_1 = require("../../components/SidebarActions/styled");
16
16
  const SidebarActions = ({ layout, hideCollapseSidebarButton = false, collapsedSidebar, isApiDocs, onChangeViewClick, onChangeCollapseSidebarClick, requestAccessButton, className, }) => {
17
- const { useOtelTelemetry, useTranslate } = (0, hooks_1.useThemeHooks)();
17
+ const { useTelemetry, useTranslate } = (0, hooks_1.useThemeHooks)();
18
18
  const { translate } = useTranslate();
19
- const otelTelemetry = useOtelTelemetry();
19
+ const telemetry = useTelemetry();
20
20
  return (react_1.default.createElement(styled_1.ControlsWrap, { className: className, isCollapsed: collapsedSidebar, "data-component-name": "Sidebar/SidebarActions" },
21
21
  !hideCollapseSidebarButton && (react_1.default.createElement(Button_1.Button, { onClick: () => {
22
22
  onChangeCollapseSidebarClick();
23
23
  if (collapsedSidebar) {
24
- otelTelemetry.send({ type: 'sidebar.item_expanded' });
24
+ telemetry.send({ type: 'sidebar.item_expanded' });
25
25
  }
26
26
  else {
27
- otelTelemetry.send({ type: 'sidebar.item_collapsed' });
27
+ telemetry.send({ type: 'sidebar.item_collapsed' });
28
28
  }
29
29
  }, title: collapsedSidebar
30
30
  ? translate('sidebar.actions.show', 'Show sidebar')
@@ -32,7 +32,7 @@ const SidebarActions = ({ layout, hideCollapseSidebarButton = false, collapsedSi
32
32
  isApiDocs && (react_1.default.createElement(styled_1.ControlsWrapChangeLayoutButtons, { isCollapsed: collapsedSidebar },
33
33
  react_1.default.createElement(ChangeViewButton_1.ChangeViewButton, { collapsedSidebar: collapsedSidebar, layout: layout, onClick: () => {
34
34
  onChangeViewClick();
35
- otelTelemetry.send({ type: 'change_layout_button.clicked' });
35
+ telemetry.send({ type: 'change_layout_button.clicked' });
36
36
  } }))),
37
37
  !collapsedSidebar && requestAccessButton));
38
38
  };
@@ -33,9 +33,9 @@ const hooks_1 = require("../../core/hooks");
33
33
  const utils_1 = require("../../core/utils");
34
34
  function TableOfContent(props) {
35
35
  const { headings, contentWrapper, className } = props;
36
- const { useTranslate, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
36
+ const { useTranslate, useTelemetry } = (0, hooks_1.useThemeHooks)();
37
37
  const { translate } = useTranslate();
38
- const otelTelemetry = useOtelTelemetry();
38
+ const telemetry = useTelemetry();
39
39
  const sidebar = React.useRef(null);
40
40
  (0, hooks_1.useFullHeight)(sidebar);
41
41
  const { markdown: { toc = {} } = {} } = (0, hooks_1.useThemeConfig)();
@@ -54,7 +54,7 @@ function TableOfContent(props) {
54
54
  return null;
55
55
  }
56
56
  const href = '#' + heading.id;
57
- return (React.createElement(TableOfContentMenuItem, { key: href + idx, href: href, depth: heading.depth - leastDepth + 1 || 0, className: activeHeadingId === heading.id ? 'active' : '', dangerouslySetInnerHTML: { __html: heading.value || '' }, "data-testid": `toc-${heading.value}`, onClick: () => otelTelemetry.send({ type: 'toc_item.clicked' }) }));
57
+ return (React.createElement(TableOfContentMenuItem, { key: href + idx, href: href, depth: heading.depth - leastDepth + 1 || 0, className: activeHeadingId === heading.id ? 'active' : '', dangerouslySetInnerHTML: { __html: heading.value || '' }, "data-testid": `toc-${heading.value}`, onClick: () => telemetry.send({ type: 'toc_item.clicked' }) }));
58
58
  })))));
59
59
  }
60
60
  const TableOfContentMenu = styled_components_1.default.aside `
@@ -8,10 +8,10 @@ const react_1 = __importDefault(require("react"));
8
8
  const hooks_1 = require("../../core/hooks");
9
9
  const Button_1 = require("../../components/Button/Button");
10
10
  function LoginButton({ href, className }) {
11
- const { useTranslate, useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
11
+ const { useTranslate, useTelemetry } = (0, hooks_1.useThemeHooks)();
12
12
  const { translate } = useTranslate();
13
- const otelTelemetry = useOtelTelemetry();
13
+ const telemetry = useTelemetry();
14
14
  return (react_1.default.createElement("div", { "data-component-name": "UserMenu/LoginButton", className: className },
15
- react_1.default.createElement(Button_1.Button, { "data-translation-key": "userMenu.login", to: href, onClick: () => otelTelemetry.send({ type: 'login_button.clicked' }), "data-testid": "login-btn", extraClass: className, variant: "primary", size: "medium" }, translate('userMenu.login', 'Login'))));
15
+ react_1.default.createElement(Button_1.Button, { "data-translation-key": "userMenu.login", to: href, onClick: () => telemetry.send({ type: 'login_button.clicked' }), "data-testid": "login-btn", extraClass: className, variant: "primary", size: "medium" }, translate('userMenu.login', 'Login'))));
16
16
  }
17
17
  //# sourceMappingURL=LoginButton.js.map
@@ -9,12 +9,12 @@ const hooks_1 = require("../../core/hooks");
9
9
  const LogoutIcon_1 = require("../../icons/LogoutIcon/LogoutIcon");
10
10
  const DropdownMenuItem_1 = require("../../components/Dropdown/DropdownMenuItem");
11
11
  function LogoutMenuItem({ iconOnly, className }) {
12
- const { useTranslate, useOtelTelemetry, useUserMenu } = (0, hooks_1.useThemeHooks)();
12
+ const { useTranslate, useTelemetry, useUserMenu } = (0, hooks_1.useThemeHooks)();
13
13
  const { handleLogout } = useUserMenu();
14
- const otelTelemetry = useOtelTelemetry();
14
+ const telemetry = useTelemetry();
15
15
  const { translate } = useTranslate();
16
16
  const handleClick = () => {
17
- otelTelemetry.send({ type: 'logout_menu_item.clicked' });
17
+ telemetry.send({ type: 'logout_menu_item.clicked' });
18
18
  handleLogout();
19
19
  };
20
20
  return (react_1.default.createElement(DropdownMenuItem_1.DropdownMenuItem, { className: className, dangerous: true, "data-component-name": "UserMenu/LogoutMenuItem", onAction: handleClick, "data-translation-key": "userMenu.logout", prefix: react_1.default.createElement(LogoutIcon_1.LogoutIcon, null), style: { width: iconOnly ? 'fit-content' : '100%' } }, iconOnly ? null : translate('userMenu.logout', 'Log out')));
@@ -5,9 +5,6 @@ export declare const useThemeHooks: jest.Mock<{
5
5
  useTelemetry: jest.Mock<{
6
6
  send: jest.Mock<any, any, any>;
7
7
  }, [], any>;
8
- useOtelTelemetry: jest.Mock<{
9
- send: jest.Mock<any, any, any>;
10
- }, [], any>;
11
8
  useBreadcrumbs: jest.Mock<any, any, any>;
12
9
  usePageSharedData: jest.Mock<any, any, any>;
13
10
  useCatalogClassic: jest.Mock<{
@@ -12,9 +12,6 @@ exports.useThemeHooks = jest.fn(() => ({
12
12
  useTelemetry: jest.fn(() => ({
13
13
  send: jest.fn(),
14
14
  })),
15
- useOtelTelemetry: jest.fn(() => ({
16
- send: jest.fn(),
17
- })),
18
15
  useBreadcrumbs: jest.fn().mockReturnValue([]),
19
16
  usePageSharedData: jest.fn().mockReturnValue({}),
20
17
  useCatalogClassic: jest.fn(() => ({
@@ -13,15 +13,15 @@ function useSearchDialog() {
13
13
  const [isOpen, setIsOpen] = (0, react_1.useState)(false);
14
14
  const themeSettings = (0, hooks_1.useThemeConfig)();
15
15
  const location = (0, react_router_dom_1.useLocation)();
16
- const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
17
- const otelTelemetry = useOtelTelemetry();
16
+ const { useTelemetry } = (0, hooks_1.useThemeHooks)();
17
+ const telemetry = useTelemetry();
18
18
  const keyShortcuts = (_b = (_a = themeSettings === null || themeSettings === void 0 ? void 0 : themeSettings.search) === null || _a === void 0 ? void 0 : _a.shortcuts) !== null && _b !== void 0 ? _b : ['/'];
19
19
  const hotKeys = keyShortcuts === null || keyShortcuts === void 0 ? void 0 : keyShortcuts.join(',');
20
20
  (0, react_1.useEffect)(() => {
21
21
  if (hotKeys) {
22
22
  (0, hotkeys_js_1.default)(hotKeys, (ev) => {
23
23
  setIsOpen(true);
24
- otelTelemetry.send({ type: 'search.opened', payload: { method: 'shortcut' } });
24
+ telemetry.send({ type: 'search.opened', payload: { method: 'shortcut' } });
25
25
  ev.preventDefault();
26
26
  });
27
27
  return () => hotkeys_js_1.default.unbind(hotKeys);
@@ -29,7 +29,7 @@ function useSearchDialog() {
29
29
  // eslint-disable-next-line react-hooks/exhaustive-deps
30
30
  }, [hotKeys]);
31
31
  const onOpen = (0, react_1.useCallback)(function () {
32
- otelTelemetry.send({ type: 'search.opened', payload: { method: 'click' } });
32
+ telemetry.send({ type: 'search.opened', payload: { method: 'click' } });
33
33
  setIsOpen(true);
34
34
  // eslint-disable-next-line react-hooks/exhaustive-deps
35
35
  }, []);
@@ -5,8 +5,8 @@ const react_1 = require("react");
5
5
  const hooks_1 = require("../../core/hooks");
6
6
  const useColorSwitcher = () => {
7
7
  const themeSettings = (0, hooks_1.useThemeConfig)();
8
- const { useOtelTelemetry } = (0, hooks_1.useThemeHooks)();
9
- const otelTelemetry = useOtelTelemetry();
8
+ const { useTelemetry } = (0, hooks_1.useThemeHooks)();
9
+ const telemetry = useTelemetry();
10
10
  const colorMode = themeSettings.colorMode;
11
11
  const modes = (colorMode === null || colorMode === void 0 ? void 0 : colorMode.modes) || ['light', 'dark'];
12
12
  const defaultColor = modes[0] || 'light';
@@ -27,7 +27,7 @@ const useColorSwitcher = () => {
27
27
  window.requestAnimationFrame(() => {
28
28
  document.documentElement.classList.remove('notransition');
29
29
  });
30
- otelTelemetry.send({
30
+ telemetry.send({
31
31
  type: 'color_mode.switched',
32
32
  payload: { from: activeColorMode, to: newMode },
33
33
  });
@@ -4,16 +4,16 @@ exports.useProductPicker = useProductPicker;
4
4
  const react_router_dom_1 = require("react-router-dom");
5
5
  const hooks_1 = require("../../core/hooks");
6
6
  function useProductPicker() {
7
- const { useCurrentProduct, useProducts, useOtelTelemetry, useLoadAndNavigate } = (0, hooks_1.useThemeHooks)();
7
+ const { useCurrentProduct, useProducts, useTelemetry, useLoadAndNavigate } = (0, hooks_1.useThemeHooks)();
8
8
  const currentProduct = useCurrentProduct();
9
9
  const products = useProducts();
10
- const otelTelemetry = useOtelTelemetry();
10
+ const telemetry = useTelemetry();
11
11
  const navigate = (0, react_router_dom_1.useNavigate)();
12
12
  const loadAndNavigate = useLoadAndNavigate();
13
13
  function setProduct(product) {
14
14
  if (!product)
15
15
  return;
16
- otelTelemetry.send({ type: 'product.picked', payload: { product: product.slug } });
16
+ telemetry.send({ type: 'product.picked', payload: { product: product.slug } });
17
17
  loadAndNavigate({ navigate, to: product.link });
18
18
  }
19
19
  return {
@@ -8,7 +8,10 @@ const fallbacks = {
8
8
  translate: (value, options) => (typeof options === 'string' ? options : options === null || options === void 0 ? void 0 : options.defaultValue) || value || '',
9
9
  }),
10
10
  useSubmitFeedback: () => ({ submitFeedback: () => { } }),
11
- useTelemetry: () => ({ telemetry: () => { } }),
11
+ useTelemetry: () => ({ send: () => { } }),
12
+ /**
13
+ * @deprecated use `useTelemetry` instead
14
+ **/
12
15
  useOtelTelemetry: () => ({ send: () => { } }),
13
16
  useBreadcrumbs: () => [],
14
17
  useCodeHighlight: () => ({ highlight: (rawContent) => rawContent }),
@@ -18,9 +18,20 @@ const replayDarkMode = (0, styled_components_1.css) `
18
18
  * @presenter Color
19
19
  */
20
20
 
21
- --replay-undefined-variable-bg-color: rgba(249, 49, 109, 0.18); // @presenter Color
22
- --replay-defined-variable-bg-color: rgba(31, 124, 255, 0.18); // @presenter Color
23
- --replay-server-variable-bg-color: rgba(119, 45, 240, 0.2); // @presenter Color
21
+ --replay-undefined-variable-color: rgb(255, 138, 162); // @presenter Color
22
+ --replay-defined-variable-color: rgb(110, 171, 250); // @presenter Color
23
+ --replay-server-variable-color: rgb(179, 166, 249); // @presenter Color
24
+ --replay-path-parameter-color: rgb(8, 199, 224); // @presenter Color
25
+
26
+ --replay-undefined-variable-bg-color: rgba(82, 10, 24, 0.16); // @presenter Color
27
+ --replay-defined-variable-bg-color: rgba(12, 76, 158, 0.16); // @presenter Color
28
+ --replay-server-variable-bg-color: rgba(31, 10, 144, 0.16); // @presenter Color
29
+ --replay-path-parameter-bg-color: rgba(5, 88, 99, 0.16); // @presenter Color
30
+
31
+ --replay-undefined-variable-bg-color-hover: rgba(82, 10, 24, 0.4); // @presenter Color
32
+ --replay-defined-variable-bg-color-hover: rgba(12, 76, 158, 0.4); // @presenter Color
33
+ --replay-server-variable-bg-color-hover: rgba(31, 10, 144, 0.4); // @presenter Color
34
+ --replay-path-parameter-bg-color-hover: rgba(5, 88, 99, 0.4); // @presenter Color
24
35
 
25
36
  // @tokens End
26
37
  `;