@redocly/theme 0.43.0 → 0.44.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 (83) hide show
  1. package/lib/components/Buttons/CopyButton.js +2 -2
  2. package/lib/components/Buttons/EditPageButton.js +1 -1
  3. package/lib/components/Catalog/CatalogActions.js +1 -1
  4. package/lib/components/Feedback/Comment.js +6 -6
  5. package/lib/components/Feedback/Mood.js +7 -7
  6. package/lib/components/Feedback/Rating.js +4 -4
  7. package/lib/components/Feedback/Reasons.js +3 -3
  8. package/lib/components/Feedback/Scale.js +10 -10
  9. package/lib/components/Feedback/Sentiment.js +5 -5
  10. package/lib/components/Filter/FilterContent.js +2 -2
  11. package/lib/components/Filter/FilterInput.js +1 -1
  12. package/lib/components/Filter/FilterPopover.js +2 -2
  13. package/lib/components/Filter/FilterSelect.js +1 -1
  14. package/lib/components/Footer/FooterCopyright.js +2 -2
  15. package/lib/components/LastUpdated/LastUpdated.js +1 -1
  16. package/lib/components/PageNavigation/NextButton.js +1 -1
  17. package/lib/components/PageNavigation/PreviousButton.js +1 -1
  18. package/lib/components/Product/ProductPicker.js +1 -1
  19. package/lib/components/Search/FilterFields/SearchFilterFieldSelect.js +1 -1
  20. package/lib/components/Search/SearchDialog.js +10 -10
  21. package/lib/components/Search/SearchFilter.js +2 -2
  22. package/lib/components/Search/SearchFilterField.js +1 -1
  23. package/lib/components/Search/SearchRecent.js +1 -1
  24. package/lib/components/Search/SearchSuggestedPages.js +1 -1
  25. package/lib/components/Search/SearchTrigger.js +2 -2
  26. package/lib/components/SidebarActions/ChangeViewButton.js +1 -1
  27. package/lib/components/SidebarActions/SidebarActions.js +2 -2
  28. package/lib/components/TableOfContent/TableOfContent.js +1 -1
  29. package/lib/components/UserMenu/LoginButton.js +1 -1
  30. package/lib/components/UserMenu/LogoutMenuItem.js +1 -1
  31. package/lib/components/UserMenu/UserMenu.js +1 -1
  32. package/lib/components/VersionPicker/VersionPicker.js +2 -2
  33. package/lib/core/hooks/feedback/use-report-dialog.js +3 -3
  34. package/lib/core/hooks/menu/use-mobile-menu-items.js +1 -1
  35. package/lib/core/hooks/menu/use-mobile-menu-levels.js +2 -2
  36. package/lib/core/types/l10n.d.ts +1 -1
  37. package/lib/core/utils/menu.js +1 -1
  38. package/lib/layouts/Forbidden.js +2 -2
  39. package/lib/layouts/NotFound.js +3 -3
  40. package/lib/layouts/OIDCForbidden.js +1 -1
  41. package/lib/markdoc/tags/partial.js +1 -1
  42. package/package.json +7 -7
  43. package/src/components/Buttons/CopyButton.tsx +2 -2
  44. package/src/components/Buttons/EditPageButton.tsx +2 -2
  45. package/src/components/Catalog/CatalogActions.tsx +2 -2
  46. package/src/components/Feedback/Comment.tsx +8 -8
  47. package/src/components/Feedback/Mood.tsx +8 -8
  48. package/src/components/Feedback/Rating.tsx +5 -5
  49. package/src/components/Feedback/Reasons.tsx +4 -4
  50. package/src/components/Feedback/Scale.tsx +13 -13
  51. package/src/components/Feedback/Sentiment.tsx +6 -6
  52. package/src/components/Filter/FilterContent.tsx +3 -3
  53. package/src/components/Filter/FilterInput.tsx +1 -1
  54. package/src/components/Filter/FilterPopover.tsx +3 -3
  55. package/src/components/Filter/FilterSelect.tsx +2 -2
  56. package/src/components/Footer/FooterCopyright.tsx +3 -3
  57. package/src/components/LastUpdated/LastUpdated.tsx +1 -2
  58. package/src/components/PageNavigation/NextButton.tsx +1 -1
  59. package/src/components/PageNavigation/PreviousButton.tsx +1 -1
  60. package/src/components/Product/ProductPicker.tsx +2 -2
  61. package/src/components/Search/FilterFields/SearchFilterFieldSelect.tsx +1 -1
  62. package/src/components/Search/SearchDialog.tsx +17 -20
  63. package/src/components/Search/SearchFilter.tsx +4 -4
  64. package/src/components/Search/SearchFilterField.tsx +2 -2
  65. package/src/components/Search/SearchRecent.tsx +2 -2
  66. package/src/components/Search/SearchSuggestedPages.tsx +2 -2
  67. package/src/components/Search/SearchTrigger.tsx +2 -2
  68. package/src/components/SidebarActions/ChangeViewButton.tsx +1 -1
  69. package/src/components/SidebarActions/SidebarActions.tsx +2 -2
  70. package/src/components/TableOfContent/TableOfContent.tsx +2 -2
  71. package/src/components/UserMenu/LoginButton.tsx +2 -2
  72. package/src/components/UserMenu/LogoutMenuItem.tsx +2 -2
  73. package/src/components/UserMenu/UserMenu.tsx +2 -2
  74. package/src/components/VersionPicker/VersionPicker.tsx +3 -3
  75. package/src/core/hooks/feedback/use-report-dialog.ts +3 -3
  76. package/src/core/hooks/menu/use-mobile-menu-items.ts +1 -1
  77. package/src/core/hooks/menu/use-mobile-menu-levels.ts +2 -2
  78. package/src/core/types/l10n.ts +67 -67
  79. package/src/core/utils/menu.ts +1 -1
  80. package/src/layouts/Forbidden.tsx +4 -9
  81. package/src/layouts/NotFound.tsx +6 -6
  82. package/src/layouts/OIDCForbidden.tsx +2 -2
  83. package/src/markdoc/tags/partial.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import type { TOptions } from 'i18next';
2
- export type TranslationKey = 'dev.newApp' | 'dev.newApp.text' | 'dev.sidebar.header' | 'dev.sidebar.footer.text' | 'dev.create.app.dialog.appName.placeholder' | 'dev.create.app.dialog.appName.error' | 'dev.create.app.dialog.selectAPIs' | 'dev.create.app.dialog.description' | 'dev.create.app.dialog.description.placeholder' | 'dev.create.app.dialog.create' | 'dev.create.app.dialog.cancel' | 'dev.main.tab.appKeys' | 'dev.main.tab.logs' | 'dev.app.description.title' | 'dev.edit.description.dialog.title' | 'dev.edit.description.dialog.save' | 'dev.edit.description.dialog.cancel' | 'dev.edit.apis.dialog.selectedAPIs' | 'dev.app.key.create' | 'dev.create.key.dialog.title' | 'dev.create.key.dialog.create' | 'dev.create.key.dialog.cancel' | 'dev.app.edit' | 'dev.app.delete' | 'dev.edit.app.dialog.title' | 'dev.edit.app.dialog.save' | 'dev.edit.app.dialog.cancel' | 'dev.delete.app.dialog.title' | 'dev.delete.app.dialog.confirmation' | 'dev.delete.app.dialog.delete' | 'dev.delete.app.dialog.cancel' | 'dev.app.key.roll' | 'dev.roll.key.dialog.title' | 'dev.roll.key.dialog.apiKey' | 'dev.roll.key.dialog.expires' | 'dev.roll.key.dialog.confirmation' | 'dev.roll.key.dialog.cancel' | 'dev.roll.key.dialog.roll' | 'dev.update.key.dialog.title' | 'dev.update.key.dialog.update' | 'dev.update.key.dialog.cancel' | 'dev.app.key.api.name' | 'dev.app.key.api.status' | 'dev.app.key.api.edit' | 'dev.edit.apis.dialog.title' | 'dev.edit.apis.dialog.apiKey' | 'dev.edit.apis.dialog.save' | 'dev.edit.apis.dialog.cancel' | 'dev.select.placeholder' | 'dev.app.overview.status.pending' | 'dev.app.overview.status.approved' | 'dev.app.overview.status.revoked' | 'dev.app.overview.status' | 'dev.app.overview.non-production' | 'dev.app.overview.production' | 'dev.app.overview.clientId' | 'dev.app.overview.apiKey' | 'dev.app.key.revoke' | 'dev.revoke.key.dialog.title' | 'dev.revoke.key.dialog.apiKey' | 'dev.revoke.key.dialog.expires' | 'dev.revoke.key.dialog.confirmation' | 'dev.revoke.key.dialog.revoke' | 'dev.revoke.key.dialog.cancel' | 'dev.app.overview.expires' | 'dev.app.overview.created' | 'dev.app.overview.visibilityToggle.hide' | 'dev.app.overview.visibilityToggle.show' | 'theme.search.loading' | 'theme.search.noResults.title' | 'theme.search.noResults.description' | 'theme.search.keys.navigate' | 'theme.search.keys.select' | 'theme.search.keys.exit' | 'theme.search.label' | 'theme.search.cancel' | 'theme.search.recent' | 'theme.search.navbar.label' | 'theme.search.suggested' | 'theme.search.showMore' | 'theme.search.filter.title' | 'theme.search.filter.reset' | 'theme.search.filter.field.reset' | 'theme.toc.header' | 'theme.footer.copyrightText' | 'theme.page.homeButton' | 'theme.page.forbidden.title' | 'theme.page.notFound.title' | 'theme.page.notFound.description' | 'theme.page.lastUpdated.timeago' | 'theme.page.lastUpdated.on' | 'theme.catalog.filters.placeholder' | 'theme.catalog.filters.title' | 'theme.catalog.filters.clearAll' | 'theme.catalog.filters.select.addFilter' | 'theme.catalog.filters.select.all' | 'theme.catalog.filters.done' | 'theme.sidebar.menu.backLabel' | 'theme.sidebar.actions.show' | 'theme.sidebar.actions.hide' | 'theme.sidebar.actions.changeLayout' | 'theme.versionPicker.label' | 'theme.versionPicker.unversioned' | 'theme.codeSnippet.copy.buttonText' | 'theme.codeSnippet.copy.tooltipText' | 'theme.codeSnippet.copy.toasterText' | 'theme.markdown.editPage.text' | 'theme.feedback.settings.comment.submitText' | 'theme.feedback.settings.comment.label' | 'theme.feedback.settings.comment.send' | 'theme.feedback.settings.comment.cancel' | 'theme.feedback.settings.comment.satisfiedLabel' | 'theme.feedback.settings.comment.neutralLabel' | 'theme.feedback.settings.comment.dissatisfiedLabel' | 'theme.feedback.settings.submitText' | 'theme.feedback.settings.label' | 'theme.feedback.settings.reasons.label' | 'theme.feedback.settings.reasons.send' | 'theme.feedback.settings.comment.likeLabel' | 'theme.feedback.settings.comment.dislikeLabel' | 'theme.feedback.sentiment.thumbUp' | 'theme.feedback.sentiment.thumbDown' | 'theme.feedback.settings.leftScaleLabel' | 'theme.feedback.settings.rightScaleLabel' | 'theme.codeSnippet.report.buttonText' | 'theme.codeSnippet.report.tooltipText' | 'theme.codeSnippet.report.label' | 'theme.userMenu.login' | 'theme.userMenu.logout' | 'theme.userMenu.devOnboardingLabel' | 'theme.mobileMenu.mainMenu' | 'theme.mobileMenu.previous' | 'theme.mobileMenu.products' | 'theme.page.nextButton' | 'theme.page.previousButton' | 'openapi.download.description.title' | 'openapi.info.title' | 'openapi.info.contact.url' | 'openapi.info.contact.name' | 'openapi.info.license' | 'openapi.info.termsOfService' | 'openapi.info.metadata.title' | 'openapi.key' | 'openapi.value' | 'openapi.enum' | 'openapi.items' | 'openapi.default' | 'openapi.variable' | 'openapi.variables' | 'openapi.actions.show' | 'openapi.actions.hide' | 'openapi.actions.more' | 'openapi.languages.title' | 'openapi.servers.title' | 'openapi.operations' | 'openapi.webhooks' | 'openapi.description' | 'openapi.badges.deprecated' | 'openapi.badges.required' | 'openapi.badges.webhook' | 'openapi.request' | 'openapi.path' | 'openapi.query' | 'openapi.cookie' | 'openapi.header' | 'openapi.body' | 'openapi.responses' | 'openapi.response' | 'openapi.callbacks' | 'openapi.callbackRequest' | 'openapi.callbackResponse' | 'openapi.payload' | 'openapi.discriminator' | 'openapi.contentType' | 'openapi.tryIt' | 'openapi.loading' | 'openapi.example' | 'openapi.examples' | 'openapi.additionalProperties' | 'openapi.patternProperties' | 'openapi.required' | 'openapi.recursive' | 'openapi.deprecated' | 'openapi.hideExample' | 'openapi.showExample' | 'openapi.expandAll' | 'openapi.collapseAll' | 'openapi.pdfFileSample' | 'openapi.noResponseExample' | 'openapi.noRequestPayload' | 'openapi.hidePattern' | 'openapi.showPattern' | 'openapi.authorizationUrl' | 'openapi.tokenUrl' | 'openapi.refreshUrl' | 'openapi.scopes' | 'openapi.security' | 'openapi.httpAuthorizationScheme' | 'openapi.bearerFormat' | 'openapi.parameterName' | 'openapi.flowType' | 'openapi.connectUrl' | 'openapi.requiredScopes' | 'openapi.unsupportedLanguage' | 'openapi.failedToGenerateCodeSample' | 'graphql.queries' | 'graphql.mutations' | 'graphql.subscriptions' | 'graphql.directives' | 'graphql.objects' | 'graphql.interfaces' | 'graphql.unions' | 'graphql.enums' | 'graphql.inputs' | 'graphql.scalars' | 'graphql.arguments.label' | 'graphql.arguments.show' | 'graphql.arguments.hide' | 'graphql.arguments.here' | 'graphql.returnTypes.label' | 'graphql.returnTypes.show' | 'graphql.returnTypes.hide' | 'graphql.possibleTypes' | 'graphql.defaultValue' | 'graphql.deprecationReason' | 'graphql.implementedInterfaces' | 'graphql.nonNull' | 'graphql.required' | 'graphql.deprecated' | 'graphql.variables' | 'graphql.querySample' | 'graphql.mutationSample' | 'graphql.subscriptionSample' | 'graphql.responseSample' | 'graphql.locations' | 'graphql.sample' | 'graphql.referenced';
2
+ export type TranslationKey = 'dev.newApp' | 'dev.newApp.text' | 'dev.sidebar.header' | 'dev.sidebar.footer.text' | 'dev.create.app.dialog.appName.placeholder' | 'dev.create.app.dialog.appName.error' | 'dev.create.app.dialog.selectAPIs' | 'dev.create.app.dialog.description' | 'dev.create.app.dialog.description.placeholder' | 'dev.create.app.dialog.create' | 'dev.create.app.dialog.cancel' | 'dev.main.tab.appKeys' | 'dev.main.tab.logs' | 'dev.app.description.title' | 'dev.edit.description.dialog.title' | 'dev.edit.description.dialog.save' | 'dev.edit.description.dialog.cancel' | 'dev.edit.apis.dialog.selectedAPIs' | 'dev.app.key.create' | 'dev.create.key.dialog.title' | 'dev.create.key.dialog.create' | 'dev.create.key.dialog.cancel' | 'dev.app.edit' | 'dev.app.delete' | 'dev.edit.app.dialog.title' | 'dev.edit.app.dialog.save' | 'dev.edit.app.dialog.cancel' | 'dev.delete.app.dialog.title' | 'dev.delete.app.dialog.confirmation' | 'dev.delete.app.dialog.delete' | 'dev.delete.app.dialog.cancel' | 'dev.app.key.roll' | 'dev.roll.key.dialog.title' | 'dev.roll.key.dialog.apiKey' | 'dev.roll.key.dialog.expires' | 'dev.roll.key.dialog.confirmation' | 'dev.roll.key.dialog.cancel' | 'dev.roll.key.dialog.roll' | 'dev.update.key.dialog.title' | 'dev.update.key.dialog.update' | 'dev.update.key.dialog.cancel' | 'dev.app.key.api.name' | 'dev.app.key.api.status' | 'dev.app.key.api.edit' | 'dev.edit.apis.dialog.title' | 'dev.edit.apis.dialog.apiKey' | 'dev.edit.apis.dialog.save' | 'dev.edit.apis.dialog.cancel' | 'dev.select.placeholder' | 'dev.app.overview.status.pending' | 'dev.app.overview.status.approved' | 'dev.app.overview.status.revoked' | 'dev.app.overview.status' | 'dev.app.overview.non-production' | 'dev.app.overview.production' | 'dev.app.overview.clientId' | 'dev.app.overview.apiKey' | 'dev.app.key.revoke' | 'dev.revoke.key.dialog.title' | 'dev.revoke.key.dialog.apiKey' | 'dev.revoke.key.dialog.expires' | 'dev.revoke.key.dialog.confirmation' | 'dev.revoke.key.dialog.revoke' | 'dev.revoke.key.dialog.cancel' | 'dev.app.overview.expires' | 'dev.app.overview.created' | 'dev.app.overview.visibilityToggle.hide' | 'dev.app.overview.visibilityToggle.show' | 'search.loading' | 'search.noResults.title' | 'search.noResults.description' | 'search.keys.navigate' | 'search.keys.select' | 'search.keys.exit' | 'search.label' | 'search.cancel' | 'search.recent' | 'search.navbar.label' | 'search.suggested' | 'search.showMore' | 'search.filter.title' | 'search.filter.reset' | 'search.filter.field.reset' | 'toc.header' | 'footer.copyrightText' | 'page.homeButton' | 'page.forbidden.title' | 'page.notFound.title' | 'page.notFound.description' | 'page.lastUpdated.timeago' | 'page.lastUpdated.on' | 'catalog.filters.placeholder' | 'catalog.filters.title' | 'catalog.filters.clearAll' | 'catalog.filters.select.addFilter' | 'catalog.filters.select.all' | 'catalog.filters.done' | 'sidebar.menu.backLabel' | 'sidebar.actions.show' | 'sidebar.actions.hide' | 'sidebar.actions.changeLayout' | 'versionPicker.label' | 'versionPicker.unversioned' | 'codeSnippet.copy.buttonText' | 'codeSnippet.copy.tooltipText' | 'codeSnippet.copy.toasterText' | 'markdown.editPage.text' | 'feedback.settings.comment.submitText' | 'feedback.settings.comment.label' | 'feedback.settings.comment.send' | 'feedback.settings.comment.cancel' | 'feedback.settings.comment.satisfiedLabel' | 'feedback.settings.comment.neutralLabel' | 'feedback.settings.comment.dissatisfiedLabel' | 'feedback.settings.submitText' | 'feedback.settings.label' | 'feedback.settings.reasons.label' | 'feedback.settings.reasons.send' | 'feedback.settings.comment.likeLabel' | 'feedback.settings.comment.dislikeLabel' | 'feedback.sentiment.thumbUp' | 'feedback.sentiment.thumbDown' | 'feedback.settings.leftScaleLabel' | 'feedback.settings.rightScaleLabel' | 'codeSnippet.report.buttonText' | 'codeSnippet.report.tooltipText' | 'codeSnippet.report.label' | 'userMenu.login' | 'userMenu.logout' | 'userMenu.devOnboardingLabel' | 'mobileMenu.mainMenu' | 'mobileMenu.previous' | 'mobileMenu.products' | 'page.nextButton' | 'page.previousButton' | 'openapi.download.description.title' | 'openapi.info.title' | 'openapi.info.contact.url' | 'openapi.info.contact.name' | 'openapi.info.license' | 'openapi.info.termsOfService' | 'openapi.info.metadata.title' | 'openapi.key' | 'openapi.value' | 'openapi.enum' | 'openapi.items' | 'openapi.default' | 'openapi.variable' | 'openapi.variables' | 'openapi.actions.show' | 'openapi.actions.hide' | 'openapi.actions.more' | 'openapi.languages.title' | 'openapi.servers.title' | 'openapi.operations' | 'openapi.webhooks' | 'openapi.description' | 'openapi.badges.deprecated' | 'openapi.badges.required' | 'openapi.badges.webhook' | 'openapi.request' | 'openapi.path' | 'openapi.query' | 'openapi.cookie' | 'openapi.header' | 'openapi.body' | 'openapi.responses' | 'openapi.response' | 'openapi.callbacks' | 'openapi.callbackRequest' | 'openapi.callbackResponse' | 'openapi.payload' | 'openapi.discriminator' | 'openapi.contentType' | 'openapi.tryIt' | 'openapi.loading' | 'openapi.example' | 'openapi.examples' | 'openapi.additionalProperties' | 'openapi.patternProperties' | 'openapi.required' | 'openapi.recursive' | 'openapi.deprecated' | 'openapi.hideExample' | 'openapi.showExample' | 'openapi.expandAll' | 'openapi.collapseAll' | 'openapi.pdfFileSample' | 'openapi.noResponseExample' | 'openapi.noRequestPayload' | 'openapi.hidePattern' | 'openapi.showPattern' | 'openapi.authorizationUrl' | 'openapi.tokenUrl' | 'openapi.refreshUrl' | 'openapi.scopes' | 'openapi.security' | 'openapi.httpAuthorizationScheme' | 'openapi.bearerFormat' | 'openapi.parameterName' | 'openapi.flowType' | 'openapi.connectUrl' | 'openapi.requiredScopes' | 'openapi.unsupportedLanguage' | 'openapi.failedToGenerateCodeSample' | 'graphql.queries' | 'graphql.mutations' | 'graphql.subscriptions' | 'graphql.directives' | 'graphql.objects' | 'graphql.interfaces' | 'graphql.unions' | 'graphql.enums' | 'graphql.inputs' | 'graphql.scalars' | 'graphql.arguments.label' | 'graphql.arguments.show' | 'graphql.arguments.hide' | 'graphql.arguments.here' | 'graphql.returnTypes.label' | 'graphql.returnTypes.show' | 'graphql.returnTypes.hide' | 'graphql.possibleTypes' | 'graphql.defaultValue' | 'graphql.deprecationReason' | 'graphql.implementedInterfaces' | 'graphql.nonNull' | 'graphql.required' | 'graphql.deprecated' | 'graphql.variables' | 'graphql.querySample' | 'graphql.mutationSample' | 'graphql.subscriptionSample' | 'graphql.responseSample' | 'graphql.locations' | 'graphql.sample' | 'graphql.referenced';
3
3
  export type Locale = {
4
4
  code: string;
5
5
  name: string;
@@ -5,7 +5,7 @@ const urls_1 = require("../../core/utils/urls");
5
5
  const utils_1 = require("../../core/utils");
6
6
  const constants_1 = require("../../core/constants");
7
7
  const TRANSLATION_KEYS = {
8
- version: 'theme.mobileMenu.version',
8
+ version: 'mobileMenu.version',
9
9
  };
10
10
  const mapNavbarItems = (items, defaultLocale, currentLocale, locales, location) => {
11
11
  return items.map((navItem) => {
@@ -13,8 +13,8 @@ function Forbidden() {
13
13
  const { translate } = useTranslate();
14
14
  return (react_1.default.createElement(Wrapper, { "data-component-name": "Pages/Forbidden" },
15
15
  react_1.default.createElement(Header, null, "403"),
16
- react_1.default.createElement(Description, { "data-translation-key": "theme.page.forbidden.title" }, translate('theme.page.forbidden.title', 'Access forbidden')),
17
- react_1.default.createElement(HomeButton, { variant: "primary", size: "large", to: "/", "data-translation-key": "theme.page.homeButton" }, translate('theme.page.homeButton', 'Go home'))));
16
+ react_1.default.createElement(Description, { "data-translation-key": "page.forbidden.title" }, translate('page.forbidden.title', 'Access forbidden')),
17
+ react_1.default.createElement(HomeButton, { variant: "primary", size: "large", to: "/", "data-translation-key": "page.homeButton" }, translate('page.homeButton', 'Go home'))));
18
18
  }
19
19
  exports.Forbidden = Forbidden;
20
20
  const Wrapper = styled_components_1.default.div `
@@ -14,9 +14,9 @@ function NotFound() {
14
14
  const { translate } = useTranslate();
15
15
  return (react_1.default.createElement(NotFoundWrapper, { "data-component-name": "layouts/NotFound" },
16
16
  react_1.default.createElement(StatusText, null, "404"),
17
- react_1.default.createElement(Title, { "data-translation-key": "theme.page.notFound.title" }, translate('theme.page.notFound.title', 'Something went missing...')),
18
- react_1.default.createElement(Description, { "data-translation-key": "theme.page.notFound.description" }, translate('theme.page.notFound.description', "The page you were trying to reach doesn't exist or may have been moved. You can go back to the previous page, return to the homepage, or use the search bar to find what you're looking for.")),
19
- react_1.default.createElement(Button_1.Button, { variant: "primary", size: "large", to: "/", "data-translation-key": "theme.page.homeButton", icon: react_1.default.createElement(ArrowLeftIcon_1.ArrowLeftIcon, null) }, translate('theme.page.homeButton', 'Go home'))));
17
+ react_1.default.createElement(Title, { "data-translation-key": "page.notFound.title" }, translate('page.notFound.title', 'Something went missing...')),
18
+ react_1.default.createElement(Description, { "data-translation-key": "page.notFound.description" }, translate('page.notFound.description', "The page you were trying to reach doesn't exist or may have been moved. You can go back to the previous page, return to the homepage, or use the search bar to find what you're looking for.")),
19
+ react_1.default.createElement(Button_1.Button, { variant: "primary", size: "large", to: "/", "data-translation-key": "page.homeButton", icon: react_1.default.createElement(ArrowLeftIcon_1.ArrowLeftIcon, null) }, translate('page.homeButton', 'Go home'))));
20
20
  }
21
21
  exports.NotFound = NotFound;
22
22
  const NotFoundWrapper = styled_components_1.default.div `
@@ -49,7 +49,7 @@ function OIDCForbidden() {
49
49
  }, [searchParams, setSearchParams]);
50
50
  return (react_1.default.createElement(Wrapper, { "data-component-name": "Pages/OIDCForbidden" },
51
51
  react_1.default.createElement(Header, null, "403"),
52
- react_1.default.createElement(Description, { "data-translation-key": "theme.page.forbidden.title" }, translate('theme.page.forbidden.title', 'Access forbidden')),
52
+ react_1.default.createElement(Description, { "data-translation-key": "page.forbidden.title" }, translate('page.forbidden.title', 'Access forbidden')),
53
53
  errorDescription && react_1.default.createElement(ErrorDescription, null, renderText(errorDescription))));
54
54
  }
55
55
  exports.OIDCForbidden = OIDCForbidden;
@@ -15,7 +15,7 @@ exports.partial = {
15
15
  return [
16
16
  {
17
17
  id: '',
18
- message: `Could not resolve partial ${node.attributes.file}. theme.markdown.partialsFolders is empty.`,
18
+ message: `Could not resolve partial ${node.attributes.file}. markdown.partialsFolders is empty.`,
19
19
  level: 'error',
20
20
  },
21
21
  ];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/theme",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "description": "Shared UI components lib",
5
5
  "keywords": [
6
6
  "theme",
@@ -91,14 +91,14 @@
91
91
  "webpack": "5.94.0"
92
92
  },
93
93
  "dependencies": {
94
- "copy-to-clipboard": "^3.3.3",
95
- "highlight-words-core": "^1.2.2",
96
- "hotkeys-js": "^3.10.1",
94
+ "copy-to-clipboard": "3.3.3",
95
+ "highlight-words-core": "1.2.2",
96
+ "hotkeys-js": "3.10.1",
97
97
  "react-calendar": "4.2.1",
98
98
  "react-date-picker": "10.0.3",
99
- "timeago.js": "^4.0.2",
100
- "i18next": "^22.4.12",
101
- "nprogress": "^0.2.0",
99
+ "timeago.js": "4.0.2",
100
+ "i18next": "22.4.15",
101
+ "nprogress": "0.2.0",
102
102
  "@redocly/config": "0.12.0"
103
103
  },
104
104
  "scripts": {
@@ -56,7 +56,7 @@ function CopyButtonComponent({
56
56
  return (
57
57
  <Tooltip
58
58
  className={`copy-button ${className ? className : ''}`}
59
- tip={translate('theme.codeSnippet.copy.buttonText', toasterText || 'Copied!')}
59
+ tip={translate('codeSnippet.copy.buttonText', toasterText || 'Copied!')}
60
60
  isOpen={tooltip.isOpened}
61
61
  placement={toasterPlacement}
62
62
  >
@@ -68,7 +68,7 @@ function CopyButtonComponent({
68
68
  size="small"
69
69
  variant={variant}
70
70
  >
71
- {type !== 'icon' && translate('theme.codeSnippet.copy.toasterText', buttonText || 'Copy')}
71
+ {type !== 'icon' && translate('codeSnippet.copy.toasterText', buttonText || 'Copy')}
72
72
  </Button>
73
73
  </Tooltip>
74
74
  );
@@ -22,8 +22,8 @@ export function EditPageButton({ to }: EditPageButtonProps): JSX.Element {
22
22
  onClick={() => telemetry.send('edit_page_link_clicked', {})}
23
23
  >
24
24
  <ButtonIcon />
25
- <ButtonText data-translation-key="theme.markdown.editPage.text">
26
- {translate('theme.markdown.editPage.text', 'Edit')}
25
+ <ButtonText data-translation-key="markdown.editPage.text">
26
+ {translate('markdown.editPage.text', 'Edit')}
27
27
  </ButtonText>
28
28
  </EditPageButtonWrapper>
29
29
  );
@@ -43,9 +43,9 @@ export function CatalogActions(props: CatalogActionsProps): JSX.Element {
43
43
  onOpenFilter();
44
44
  telemetry.send('catalog_actions_button_clicked', {});
45
45
  }}
46
- data-translation-key="theme.catalog.filters.title"
46
+ data-translation-key="catalog.filters.title"
47
47
  >
48
- {translate('theme.catalog.filters.title', 'Filters')}
48
+ {translate('catalog.filters.title', 'Filters')}
49
49
  </Button>
50
50
  {activeFilters > 0 ? <CounterTag borderless>{activeFilters}</CounterTag> : null}
51
51
  </CatalogActionsWrapper>
@@ -53,12 +53,12 @@ export function Comment({
53
53
  <StateWrapper data-component-name="Feedback/Comment" className={className}>
54
54
  <StyledFormMandatoryFields>
55
55
  <Label
56
- data-translation-key="theme.feedback.settings.comment.submitText"
56
+ data-translation-key="feedback.settings.comment.submitText"
57
57
  standAlone={standAlone}
58
58
  >
59
59
  {submitText ||
60
60
  translate(
61
- 'theme.feedback.settings.comment.submitText',
61
+ 'feedback.settings.comment.submitText',
62
62
  'Thank you for helping improve our documentation!',
63
63
  )}
64
64
  </Label>
@@ -75,30 +75,30 @@ export function Comment({
75
75
  className={className}
76
76
  style={standAlone ? { width: 'var(--feedback-report-dialog-width)' } : { width: 'auto' }}
77
77
  >
78
- <Label data-translation-key="theme.feedback.settings.comment.label" standAlone={standAlone}>
78
+ <Label data-translation-key="feedback.settings.comment.label" standAlone={standAlone}>
79
79
  {label ||
80
- translate('theme.feedback.settings.comment.label', 'Please share your feedback with us.')}
80
+ translate('feedback.settings.comment.label', 'Please share your feedback with us.')}
81
81
  </Label>
82
82
  <TextArea rows={3} onChange={handleTextAreaChange} />
83
83
  {standAlone && (
84
84
  <ButtonsContainer>
85
85
  {onCancel && (
86
86
  <Button
87
- data-translation-key="theme.feedback.settings.comment.cancel"
87
+ data-translation-key="feedback.settings.comment.cancel"
88
88
  onClick={onCancel}
89
89
  variant="text"
90
90
  size="small"
91
91
  >
92
- {translate('theme.feedback.settings.comment.cancel', 'Cancel')}
92
+ {translate('feedback.settings.comment.cancel', 'Cancel')}
93
93
  </Button>
94
94
  )}
95
95
  <Button
96
- data-translation-key="theme.feedback.settings.comment.send"
96
+ data-translation-key="feedback.settings.comment.send"
97
97
  onClick={send}
98
98
  variant={isDialog ? 'primary' : 'secondary'}
99
99
  size="small"
100
100
  >
101
- {translate('theme.feedback.settings.comment.send', 'Send')}
101
+ {translate('feedback.settings.comment.send', 'Send')}
102
102
  </Button>
103
103
  </ButtonsContainer>
104
104
  )}
@@ -56,20 +56,20 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
56
56
  case MOOD_STATES.SATISFIED:
57
57
  return (
58
58
  commentSettings.satisfiedLabel ||
59
- translate('theme.feedback.settings.comment.satisfiedLabel', 'What was most helpful?')
59
+ translate('feedback.settings.comment.satisfiedLabel', 'What was most helpful?')
60
60
  );
61
61
  case MOOD_STATES.NEUTRAL:
62
62
  return (
63
63
  commentSettings.neutralLabel ||
64
- translate('theme.feedback.settings.comment.neutralLabel', 'What can we improve?')
64
+ translate('feedback.settings.comment.neutralLabel', 'What can we improve?')
65
65
  );
66
66
  case MOOD_STATES.DISSATISFIED:
67
67
  return (
68
68
  commentSettings.dissatisfiedLabel ||
69
- translate('theme.feedback.settings.comment.dissatisfiedLabel', 'What can we improve?')
69
+ translate('feedback.settings.comment.dissatisfiedLabel', 'What can we improve?')
70
70
  );
71
71
  default:
72
- return translate('theme.feedback.settings.comment.satisfiedLabel', 'What can we improve?');
72
+ return translate('feedback.settings.comment.satisfiedLabel', 'What can we improve?');
73
73
  }
74
74
  };
75
75
 
@@ -101,10 +101,10 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
101
101
  return (
102
102
  <MoodWrapper data-component-name="Feedback/Mood">
103
103
  <StyledFormMandatoryFields>
104
- <Label data-translation-key="theme.feedback.settings.submitText">
104
+ <Label data-translation-key="feedback.settings.submitText">
105
105
  {submitText ||
106
106
  translate(
107
- 'theme.feedback.settings.submitText',
107
+ 'feedback.settings.submitText',
108
108
  'Thank you for helping improve our documentation!',
109
109
  )}
110
110
  </Label>
@@ -118,8 +118,8 @@ export function Mood({ settings, onSubmit, className }: MoodProps): JSX.Element
118
118
  <MoodWrapper data-component-name="Feedback/Mood" className={className}>
119
119
  <StyledForm>
120
120
  <StyledFormMandatoryFields>
121
- <Label data-translation-key="theme.feedback.settings.label">
122
- {label || translate('theme.feedback.settings.label', 'Was this helpful?')}
121
+ <Label data-translation-key="feedback.settings.label">
122
+ {label || translate('feedback.settings.label', 'Was this helpful?')}
123
123
  </Label>
124
124
  <StyledMandatoryFieldContainer>
125
125
  <Button
@@ -70,10 +70,10 @@ export function Rating({ settings, onSubmit, className }: RatingProps): JSX.Elem
70
70
  return (
71
71
  <RatingWrapper data-component-name="Feedback/Rating">
72
72
  <StyledFormMandatoryFields>
73
- <Label data-translation-key="theme.feedback.settings.submitText">
73
+ <Label data-translation-key="feedback.settings.submitText">
74
74
  {submitText ||
75
75
  translate(
76
- 'theme.feedback.settings.submitText',
76
+ 'feedback.settings.submitText',
77
77
  'Thank you for helping improve our documentation!',
78
78
  )}
79
79
  </Label>
@@ -87,8 +87,8 @@ export function Rating({ settings, onSubmit, className }: RatingProps): JSX.Elem
87
87
  <RatingWrapper data-component-name="Feedback/Rating" className={className}>
88
88
  <StyledForm>
89
89
  <StyledFormMandatoryFields>
90
- <Label data-translation-key="theme.feedback.settings.label">
91
- {label || translate('theme.feedback.settings.label', 'Was this helpful?')}
90
+ <Label data-translation-key="feedback.settings.label">
91
+ {label || translate('feedback.settings.label', 'Was this helpful?')}
92
92
  </Label>
93
93
 
94
94
  <StyledMandatoryFieldContainer>
@@ -117,7 +117,7 @@ export function Rating({ settings, onSubmit, className }: RatingProps): JSX.Elem
117
117
  label:
118
118
  commentSettings?.label ||
119
119
  translate(
120
- 'theme.feedback.settings.comment.label',
120
+ 'feedback.settings.comment.label',
121
121
  'Please share your feedback with us.',
122
122
  ),
123
123
  }}
@@ -38,13 +38,13 @@ export function Reasons({ settings, onChange, className }: ReasonsProps): JSX.El
38
38
  return (
39
39
  <ReasonsWrapper
40
40
  data-component-name="Feedback/Reasons"
41
- data-translation-key="theme.feedback.settings.reasons.label"
41
+ data-translation-key="feedback.settings.reasons.label"
42
42
  className={className}
43
43
  >
44
44
  <Label>
45
45
  {label ||
46
46
  translate(
47
- 'theme.feedback.settings.reasons.label',
47
+ 'feedback.settings.reasons.label',
48
48
  'Which statement describes your thoughts about this page?',
49
49
  )}
50
50
  </Label>
@@ -58,11 +58,11 @@ export function Reasons({ settings, onChange, className }: ReasonsProps): JSX.El
58
58
  onChange={() => handleOptionChange(idx)}
59
59
  />
60
60
  <label
61
- data-translation-key={`theme.feedback.settings.reasons.items.${idx + 1}`}
61
+ data-translation-key={`feedback.settings.reasons.items.${idx + 1}`}
62
62
  id={reason}
63
63
  onClick={() => handleOptionChange(idx)}
64
64
  >
65
- {translate(`theme.feedback.settings.reasons.items.${idx + 1}`, reason)}
65
+ {translate(`feedback.settings.reasons.items.${idx + 1}`, reason)}
66
66
  </label>
67
67
  </OptionWrapper>
68
68
  ))}
@@ -96,10 +96,10 @@ export function Scale({ settings, onSubmit, className }: ScaleProps): JSX.Elemen
96
96
  if (isSubmitted) {
97
97
  return (
98
98
  <ScaleWrapper data-component-name="Feedback/Scale">
99
- <Label data-translation-key="theme.feedback.settings.submitText">
99
+ <Label data-translation-key="feedback.settings.submitText">
100
100
  {submitText ||
101
101
  translate(
102
- 'theme.feedback.settings.submitText',
102
+ 'feedback.settings.submitText',
103
103
  'Thank you for helping improve our documentation!',
104
104
  )}
105
105
  </Label>
@@ -112,20 +112,20 @@ export function Scale({ settings, onSubmit, className }: ScaleProps): JSX.Elemen
112
112
  <ScaleWrapper data-component-name="Feedback/Scale" className={className}>
113
113
  <StyledForm>
114
114
  <StyledFormMandatoryFields>
115
- <Label data-translation-key="theme.feedback.settings.label">
116
- {label || translate('theme.feedback.settings.label', 'Was this helpful?')}
115
+ <Label data-translation-key="feedback.settings.label">
116
+ {label || translate('feedback.settings.label', 'Was this helpful?')}
117
117
  </Label>
118
118
 
119
119
  <ScaleOptionsWrapper>{scaleOptions}</ScaleOptionsWrapper>
120
120
 
121
121
  <SubLabelContainer>
122
- <SubLabel data-translation-key="theme.feedback.settings.leftScaleLabel">
122
+ <SubLabel data-translation-key="feedback.settings.leftScaleLabel">
123
123
  {leftScaleLabel ||
124
- translate('theme.feedback.settings.leftScaleLabel', 'Not helpful at all')}
124
+ translate('feedback.settings.leftScaleLabel', 'Not helpful at all')}
125
125
  </SubLabel>
126
- <SubLabel data-translation-key="theme.feedback.settings.rightScaleLabel">
126
+ <SubLabel data-translation-key="feedback.settings.rightScaleLabel">
127
127
  {rightScaleLabel ||
128
- translate('theme.feedback.settings.rightScaleLabel', 'Extremely helpful')}
128
+ translate('feedback.settings.rightScaleLabel', 'Extremely helpful')}
129
129
  </SubLabel>
130
130
  </SubLabelContainer>
131
131
  </StyledFormMandatoryFields>
@@ -149,7 +149,7 @@ export function Scale({ settings, onSubmit, className }: ScaleProps): JSX.Elemen
149
149
  label:
150
150
  commentSettings?.label ||
151
151
  translate(
152
- 'theme.feedback.settings.comment.label',
152
+ 'feedback.settings.comment.label',
153
153
  'Please share your feedback with us.',
154
154
  ),
155
155
  }}
@@ -159,21 +159,21 @@ export function Scale({ settings, onSubmit, className }: ScaleProps): JSX.Elemen
159
159
  {displaySubmitBnt && (
160
160
  <ButtonsContainer>
161
161
  <Button
162
- data-translation-key="theme.feedback.settings.comment.cancel"
162
+ data-translation-key="feedback.settings.comment.cancel"
163
163
  onClick={handleCancel}
164
164
  variant="text"
165
165
  size="small"
166
166
  >
167
- {translate('theme.feedback.settings.comment.cancel', 'Cancel')}
167
+ {translate('feedback.settings.comment.cancel', 'Cancel')}
168
168
  </Button>
169
169
 
170
170
  <Button
171
- data-translation-key="theme.feedback.settings.scale.send"
171
+ data-translation-key="feedback.settings.scale.send"
172
172
  onClick={onSubmitScaleForm}
173
173
  variant="secondary"
174
174
  size="small"
175
175
  >
176
- {translate('theme.feedback.settings.scale.send', 'Submit')}
176
+ {translate('feedback.settings.scale.send', 'Submit')}
177
177
  </Button>
178
178
  </ButtonsContainer>
179
179
  )}
@@ -48,9 +48,9 @@ export function Sentiment({ settings, onSubmit, className }: SentimentProps): JS
48
48
  const commentLabel =
49
49
  score === 1
50
50
  ? (commentSettings && commentSettings.likeLabel) ||
51
- translate('theme.feedback.settings.comment.likeLabel', 'What was most helpful?')
51
+ translate('feedback.settings.comment.likeLabel', 'What was most helpful?')
52
52
  : (commentSettings && commentSettings.dislikeLabel) ||
53
- translate('theme.feedback.settings.comment.dislikeLabel', 'What can we improve?');
53
+ translate('feedback.settings.comment.dislikeLabel', 'What can we improve?');
54
54
 
55
55
  const onSubmitSentimentForm = () => {
56
56
  onSubmit({
@@ -76,10 +76,10 @@ export function Sentiment({ settings, onSubmit, className }: SentimentProps): JS
76
76
  return (
77
77
  <SentimentWrapper data-component-name="Feedback/Sentiment">
78
78
  <StyledFormMandatoryFields>
79
- <Label data-translation-key="theme.feedback.settings.submitText">
79
+ <Label data-translation-key="feedback.settings.submitText">
80
80
  {submitText ||
81
81
  translate(
82
- 'theme.feedback.settings.submitText',
82
+ 'feedback.settings.submitText',
83
83
  'Thank you for helping improve our documentation!',
84
84
  )}
85
85
  </Label>
@@ -93,8 +93,8 @@ export function Sentiment({ settings, onSubmit, className }: SentimentProps): JS
93
93
  <SentimentWrapper data-component-name="Feedback/Sentiment" className={className}>
94
94
  <StyledForm>
95
95
  <StyledFormMandatoryFields>
96
- <Label data-translation-key="theme.feedback.settings.label">
97
- {label || translate('theme.feedback.settings.label', 'Was this helpful?')}
96
+ <Label data-translation-key="feedback.settings.label">
97
+ {label || translate('feedback.settings.label', 'Was this helpful?')}
98
98
  </Label>
99
99
 
100
100
  <StyledMandatoryFieldContainer>
@@ -42,12 +42,12 @@ export function FilterContent({
42
42
  return (
43
43
  <FilterContentWrapper data-component-name="Filter/FilterContent">
44
44
  <FiltersHeader>
45
- <FiltersTitle data-translation-key="theme.catalog.filters.title">
46
- {translate('theme.catalog.filters.title', 'Filters')}
45
+ <FiltersTitle data-translation-key="catalog.filters.title">
46
+ {translate('catalog.filters.title', 'Filters')}
47
47
  </FiltersTitle>
48
48
  {hasActiveFilters ? (
49
49
  <Button size="medium" tone="danger" variant="ghost" onClick={handleClearAll}>
50
- {translate('theme.catalog.filters.clearAll', 'Clear filters')}
50
+ {translate('catalog.filters.clearAll', 'Clear filters')}
51
51
  </Button>
52
52
  ) : null}
53
53
  </FiltersHeader>
@@ -21,7 +21,7 @@ export function FilterInput(props: FilterInputProps): JSX.Element {
21
21
  <Input
22
22
  value={value}
23
23
  onChange={(e) => onChange(e.target.value)}
24
- placeholder={translate('theme.catalog.filters.placeholder', 'Type to filter...')}
24
+ placeholder={translate('catalog.filters.placeholder', 'Type to filter...')}
25
25
  />
26
26
  </InputWrapper>
27
27
  );
@@ -29,11 +29,11 @@ export function FilterPopover({
29
29
  return (
30
30
  <FilterPopoverWrapper data-component-name="Filter/FilterPopover">
31
31
  <FilterPopoverHeader>
32
- <FilterPopoverHeaderLabel data-translation-key="theme.catalog.filters.add">
33
- {translate('theme.catalog.filters.add', 'Add Filter')}
32
+ <FilterPopoverHeaderLabel data-translation-key="catalog.filters.add">
33
+ {translate('catalog.filters.add', 'Add Filter')}
34
34
  </FilterPopoverHeaderLabel>
35
35
  <FilterPopoverHeaderButton onClick={onClose}>
36
- {translate('theme.catalog.filters.done', 'Done')}
36
+ {translate('catalog.filters.done', 'Done')}
37
37
  </FilterPopoverHeaderButton>
38
38
  </FilterPopoverHeader>
39
39
  <FilterContent
@@ -24,8 +24,8 @@ export function FilterSelect({ filter, filterValuesCasing }: FilterProps): JSX.E
24
24
  value: '',
25
25
  element: (
26
26
  <FilterOption key="all" onClick={() => filter.selectOption('')}>
27
- <FilterOptionLabel data-translation-key="theme.catalog.filters.select.all">
28
- {translate('theme.catalog.filters.select.all', 'All')}
27
+ <FilterOptionLabel data-translation-key="catalog.filters.select.all">
28
+ {translate('catalog.filters.select.all', 'All')}
29
29
  </FilterOptionLabel>
30
30
  <CounterTag borderless>{defaultOptionCount}</CounterTag>
31
31
  </FilterOption>
@@ -21,10 +21,10 @@ export function FooterCopyright({
21
21
  <FooterCopyrightWrapper
22
22
  className={className}
23
23
  data-component-name="Footer/FooterCopyright"
24
- data-translation-key="theme.footer.copyrightText"
24
+ data-translation-key="footer.copyrightText"
25
25
  >
26
- <FooterCopyrightLabel data-translation-key="theme.footer.copyrightText">
27
- {translate('theme.footer.copyrightText', copyrightText)}
26
+ <FooterCopyrightLabel data-translation-key="footer.copyrightText">
27
+ {translate('footer.copyrightText', copyrightText)}
28
28
  </FooterCopyrightLabel>
29
29
  <LanguagePicker onChangeLanguage={changeLanguage} placement="top" alignment="end" />
30
30
  </FooterCopyrightWrapper>
@@ -41,8 +41,7 @@ export function LastUpdated(props: LastUpdatedProps): JSX.Element | null {
41
41
  const isoDate = lastModified.toISOString().split('T')[0];
42
42
 
43
43
  const lastUpdatedString = FORMATS[format as keyof typeof FORMATS](lastModified, locale);
44
- const translationKey =
45
- format === 'timeago' ? 'theme.page.lastUpdated.timeago' : 'theme.page.lastUpdated.on';
44
+ const translationKey = format === 'timeago' ? 'page.lastUpdated.timeago' : 'page.lastUpdated.on';
46
45
 
47
46
  const text =
48
47
  format === 'timeago'
@@ -23,7 +23,7 @@ export function NextButton({ nextPage, className }: NextPageType): JSX.Element {
23
23
 
24
24
  const nextPageText = nextPage.label || nextPage.routeSlug || '';
25
25
  const defaultLabel = navigation?.nextButton?.text || 'Next page';
26
- const translationKey = 'theme.page.nextButton';
26
+ const translationKey = 'page.nextButton';
27
27
  const label = translate(translationKey, { defaultValue: defaultLabel });
28
28
 
29
29
  return (
@@ -23,7 +23,7 @@ export function PreviousButton({ prevPage, className }: PreviousPageType): JSX.E
23
23
 
24
24
  const prevPageText = prevPage.label || prevPage.routeSlug || '';
25
25
  const defaultLabel = navigation?.previousButton?.text || 'Previous page';
26
- const translationKey = 'theme.page.previousButton';
26
+ const translationKey = 'page.previousButton';
27
27
  const label = translate(translationKey, { defaultValue: defaultLabel });
28
28
 
29
29
  return (
@@ -31,8 +31,8 @@ export function ProductPicker(): JSX.Element | null {
31
31
  {currentProduct ? (
32
32
  <Product product={currentProduct} />
33
33
  ) : (
34
- <span data-translation-key="theme.navbar.products">
35
- {translate('theme.navbar.products', 'Products')}
34
+ <span data-translation-key="navbar.products">
35
+ {translate('navbar.products', 'Products')}
36
36
  </span>
37
37
  )}
38
38
  </Button>
@@ -93,7 +93,7 @@ export function SearchFilterFieldSelect({
93
93
  options={selectOptions}
94
94
  onChange={onChange}
95
95
  placeholder={`${translate(
96
- 'theme.search.filter.field.placeholder',
96
+ 'search.filter.field.placeholder',
97
97
  'Search',
98
98
  )} ${facet.name.toLowerCase()}...`}
99
99
  alignment="start"