@diplodoc/components 5.21.0 → 5.23.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 (181) hide show
  1. package/build/cjs/components/BackToTop/BackToTop.css.map +1 -1
  2. package/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
  3. package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  4. package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  5. package/build/cjs/components/Contributors/Contributors.css.map +1 -1
  6. package/build/cjs/components/Control/Control.css.map +1 -1
  7. package/build/cjs/components/Controls/Controls.css.map +1 -1
  8. package/build/cjs/components/Controls/Controls.d.ts +2 -0
  9. package/build/cjs/components/Controls/Controls.js +3 -1
  10. package/build/cjs/components/Controls/Controls.js.map +2 -2
  11. package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  12. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  13. package/build/cjs/components/Controls/single-controls/MarkdownControl.d.ts +3 -1
  14. package/build/cjs/components/Controls/single-controls/MarkdownControl.js +110 -27
  15. package/build/cjs/components/Controls/single-controls/MarkdownControl.js.map +3 -3
  16. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  17. package/build/cjs/components/Controls/single-controls/markdown-url.d.ts +4 -0
  18. package/build/cjs/components/Controls/single-controls/markdown-url.js +56 -0
  19. package/build/cjs/components/Controls/single-controls/markdown-url.js.map +7 -0
  20. package/build/cjs/components/DocLayout/DocLayout.css.map +1 -1
  21. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +2 -2
  22. package/build/cjs/components/DocPage/DocPage.css +7 -4
  23. package/build/cjs/components/DocPage/DocPage.css.map +3 -3
  24. package/build/cjs/components/DocPage/DocPage.js +14 -6
  25. package/build/cjs/components/DocPage/DocPage.js.map +2 -2
  26. package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
  27. package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
  28. package/build/cjs/components/Feedback/Feedback.css.map +2 -2
  29. package/build/cjs/components/Gallery/Gallery.css.map +1 -1
  30. package/build/cjs/components/Mark/Mark.css.map +1 -1
  31. package/build/cjs/components/MiniToc/MiniToc.css +26 -8
  32. package/build/cjs/components/MiniToc/MiniToc.css.map +3 -3
  33. package/build/cjs/components/MiniToc/MiniToc.d.ts +1 -0
  34. package/build/cjs/components/MiniToc/MiniToc.js +26 -9
  35. package/build/cjs/components/MiniToc/MiniToc.js.map +3 -3
  36. package/build/cjs/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
  37. package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
  38. package/build/cjs/components/MobileControls/MobileControls.css.map +1 -1
  39. package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.css.map +1 -1
  40. package/build/cjs/components/Notification/Notification.css.map +1 -1
  41. package/build/cjs/components/Paginator/Paginator.css.map +1 -1
  42. package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
  43. package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
  44. package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
  45. package/build/cjs/components/SearchSuggest/index.css.map +1 -1
  46. package/build/cjs/components/ShareButton/ShareButton.css.map +1 -1
  47. package/build/cjs/components/SubNavigation/SubNavigation.css +10 -2
  48. package/build/cjs/components/SubNavigation/SubNavigation.css.map +3 -3
  49. package/build/cjs/components/SubNavigation/SubNavigation.d.ts +2 -1
  50. package/build/cjs/components/SubNavigation/SubNavigation.js +2 -0
  51. package/build/cjs/components/SubNavigation/SubNavigation.js.map +2 -2
  52. package/build/cjs/components/Subscribe/Subscribe.css.map +2 -2
  53. package/build/cjs/components/Summary/Summary.css +12 -0
  54. package/build/cjs/components/Summary/Summary.css.map +7 -0
  55. package/build/cjs/components/Summary/Summary.d.ts +7 -0
  56. package/build/cjs/components/Summary/Summary.js +47 -0
  57. package/build/cjs/components/Summary/Summary.js.map +7 -0
  58. package/build/cjs/components/Summary/index.d.ts +2 -0
  59. package/build/cjs/components/Summary/index.js +39 -0
  60. package/build/cjs/components/Summary/index.js.map +7 -0
  61. package/build/cjs/components/Tags/Tags.css.map +1 -1
  62. package/build/cjs/components/TagsFilter/TagsFilter.css.map +1 -1
  63. package/build/cjs/components/Toc/Toc.css.map +1 -1
  64. package/build/cjs/components/TocItem/TocItem.css.map +1 -1
  65. package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
  66. package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
  67. package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
  68. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  69. package/build/cjs/components/Widgets/Widgets.css.map +1 -1
  70. package/build/cjs/components/constants.d.ts +5 -0
  71. package/build/cjs/components/navigation/CustomFooter/CustomFooter.css.map +1 -1
  72. package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  73. package/build/cjs/components/navigation/DropdownContent/Column/Column.css.map +1 -1
  74. package/build/cjs/components/navigation/DropdownContent/DropdownContent.css.map +1 -1
  75. package/build/cjs/components/navigation/DropdownContent/Section/Section.css.map +1 -1
  76. package/build/cjs/components/navigation/Label/Label.css.map +1 -1
  77. package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  78. package/build/cjs/components/navigation/NavigationDropdown/NavigationDropdown.css.map +1 -1
  79. package/build/cjs/components/navigation/Sidebar/Sidebar.css.map +1 -1
  80. package/build/cjs/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  81. package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  82. package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  83. package/build/cjs/contexts/InterfaceContext.d.ts +5 -1
  84. package/build/cjs/contexts/InterfaceContext.js.map +2 -2
  85. package/build/cjs/index.d.ts +1 -0
  86. package/build/cjs/index.js +1 -0
  87. package/build/cjs/index.js.map +2 -2
  88. package/build/cjs/models/index.d.ts +1 -0
  89. package/build/cjs/models/index.js.map +2 -2
  90. package/build/esm/components/BackToTop/BackToTop.css.map +1 -1
  91. package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
  92. package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  93. package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  94. package/build/esm/components/Contributors/Contributors.css.map +1 -1
  95. package/build/esm/components/Control/Control.css.map +1 -1
  96. package/build/esm/components/Controls/Controls.css.map +1 -1
  97. package/build/esm/components/Controls/Controls.d.ts +2 -0
  98. package/build/esm/components/Controls/Controls.js +3 -1
  99. package/build/esm/components/Controls/Controls.js.map +2 -2
  100. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  101. package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  102. package/build/esm/components/Controls/single-controls/MarkdownControl.d.ts +3 -1
  103. package/build/esm/components/Controls/single-controls/MarkdownControl.js +103 -30
  104. package/build/esm/components/Controls/single-controls/MarkdownControl.js.map +3 -3
  105. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  106. package/build/esm/components/Controls/single-controls/markdown-url.d.ts +4 -0
  107. package/build/esm/components/Controls/single-controls/markdown-url.js +35 -0
  108. package/build/esm/components/Controls/single-controls/markdown-url.js.map +7 -0
  109. package/build/esm/components/DocLayout/DocLayout.css.map +1 -1
  110. package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +2 -2
  111. package/build/esm/components/DocPage/DocPage.css +7 -4
  112. package/build/esm/components/DocPage/DocPage.css.map +3 -3
  113. package/build/esm/components/DocPage/DocPage.js +14 -6
  114. package/build/esm/components/DocPage/DocPage.js.map +2 -2
  115. package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
  116. package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
  117. package/build/esm/components/Feedback/Feedback.css.map +2 -2
  118. package/build/esm/components/Gallery/Gallery.css.map +1 -1
  119. package/build/esm/components/Mark/Mark.css.map +1 -1
  120. package/build/esm/components/MiniToc/MiniToc.css +26 -8
  121. package/build/esm/components/MiniToc/MiniToc.css.map +3 -3
  122. package/build/esm/components/MiniToc/MiniToc.d.ts +1 -0
  123. package/build/esm/components/MiniToc/MiniToc.js +26 -9
  124. package/build/esm/components/MiniToc/MiniToc.js.map +2 -2
  125. package/build/esm/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
  126. package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
  127. package/build/esm/components/MobileControls/MobileControls.css.map +1 -1
  128. package/build/esm/components/NeuroExpertModal/NeuroExpertModal.css.map +1 -1
  129. package/build/esm/components/Notification/Notification.css.map +1 -1
  130. package/build/esm/components/Paginator/Paginator.css.map +1 -1
  131. package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
  132. package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
  133. package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
  134. package/build/esm/components/SearchSuggest/index.css.map +1 -1
  135. package/build/esm/components/ShareButton/ShareButton.css.map +1 -1
  136. package/build/esm/components/SubNavigation/SubNavigation.css +10 -2
  137. package/build/esm/components/SubNavigation/SubNavigation.css.map +3 -3
  138. package/build/esm/components/SubNavigation/SubNavigation.d.ts +2 -1
  139. package/build/esm/components/SubNavigation/SubNavigation.js +2 -0
  140. package/build/esm/components/SubNavigation/SubNavigation.js.map +2 -2
  141. package/build/esm/components/Subscribe/Subscribe.css.map +2 -2
  142. package/build/esm/components/Summary/Summary.css +12 -0
  143. package/build/esm/components/Summary/Summary.css.map +7 -0
  144. package/build/esm/components/Summary/Summary.d.ts +7 -0
  145. package/build/esm/components/Summary/Summary.js +16 -0
  146. package/build/esm/components/Summary/Summary.js.map +7 -0
  147. package/build/esm/components/Summary/index.d.ts +2 -0
  148. package/build/esm/components/Summary/index.js +7 -0
  149. package/build/esm/components/Summary/index.js.map +7 -0
  150. package/build/esm/components/Tags/Tags.css.map +1 -1
  151. package/build/esm/components/TagsFilter/TagsFilter.css.map +1 -1
  152. package/build/esm/components/Toc/Toc.css.map +1 -1
  153. package/build/esm/components/TocItem/TocItem.css.map +1 -1
  154. package/build/esm/components/TocLable/TocLabel.css.map +1 -1
  155. package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
  156. package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
  157. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  158. package/build/esm/components/Widgets/Widgets.css.map +1 -1
  159. package/build/esm/components/constants.d.ts +5 -0
  160. package/build/esm/components/navigation/CustomFooter/CustomFooter.css.map +1 -1
  161. package/build/esm/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  162. package/build/esm/components/navigation/DropdownContent/Column/Column.css.map +1 -1
  163. package/build/esm/components/navigation/DropdownContent/DropdownContent.css.map +1 -1
  164. package/build/esm/components/navigation/DropdownContent/Section/Section.css.map +1 -1
  165. package/build/esm/components/navigation/Label/Label.css.map +1 -1
  166. package/build/esm/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  167. package/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.css.map +1 -1
  168. package/build/esm/components/navigation/Sidebar/Sidebar.css.map +1 -1
  169. package/build/esm/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  170. package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  171. package/build/esm/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  172. package/build/esm/contexts/InterfaceContext.d.ts +5 -1
  173. package/build/esm/contexts/InterfaceContext.js.map +2 -2
  174. package/build/esm/index.d.ts +1 -0
  175. package/build/esm/index.js +1 -0
  176. package/build/esm/index.js.map +2 -2
  177. package/build/esm/models/index.d.ts +1 -0
  178. package/build/esm/models/index.js.map +2 -2
  179. package/build/index.css.map +2 -2
  180. package/build/themes/common/index.css.map +1 -1
  181. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Controls/Controls.scss", "../../../../src/styles/mixins.scss", "../../../../src/components/Controls/%3Cinput css U0juoQ%3E"],
3
+ "sources": ["../../../../src/components/Controls/Controls.scss", "../../../../src/styles/mixins.scss", "../../../../src/components/Controls/%3Cinput css WG-WlE%3E"],
4
4
  "sourcesContent": ["@use 'sass:map';\n@use '../../styles/mixins';\n@use '../../styles/variables';\n\n.dc-controls {\n display: flex;\n align-items: center;\n\n @include mixins.text-size(body-1);\n\n &__control:not(:last-child),\n &__divider {\n margin-right: 4px;\n }\n\n &__list {\n padding: 4px 0;\n }\n\n &__list-icon {\n font-size: 22px;\n }\n\n &__icon-rotated {\n transform: rotate(90deg);\n }\n\n &__popup-tooltip {\n padding: 0;\n }\n\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n &_vertical {\n flex-direction: column;\n }\n\n &_vertical &__divider {\n height: 1px;\n width: 16px;\n }\n\n &_vertical &__control:not(:last-child),\n &_vertical &__divider {\n margin-right: 0;\n margin-bottom: 4px;\n }\n }\n}\n", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n", ".dc-controls {\n display: flex;\n align-items: center;\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-controls__control:not(:last-child), .dc-controls__divider {\n margin-right: 4px;\n}\n.dc-controls__list {\n padding: 4px 0;\n}\n.dc-controls__list-icon {\n font-size: 22px;\n}\n.dc-controls__icon-rotated {\n transform: rotate(90deg);\n}\n.dc-controls__popup-tooltip {\n padding: 0;\n}\n@media (min-width: 769px) {\n .dc-controls_vertical {\n flex-direction: column;\n }\n .dc-controls_vertical .dc-controls__divider {\n height: 1px;\n width: 16px;\n }\n .dc-controls_vertical .dc-controls__control:not(:last-child), .dc-controls_vertical .dc-controls__divider {\n margin-right: 0;\n margin-bottom: 4px;\n }\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0NvbnRyb2xzIiwic291cmNlcyI6WyJDb250cm9scy5zY3NzIiwiLi4vLi4vc3R5bGVzL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBO0VBQ0k7RUFDQTtFQ0ZBO0VBQ0E7O0FES0E7RUFFSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7SUFDSTs7RUFHSjtJQUNJO0lBQ0E7O0VBR0o7SUFFSTtJQUNBIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5AdXNlICcuLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcblxuLmRjLWNvbnRyb2xzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICBAaW5jbHVkZSBtaXhpbnMudGV4dC1zaXplKGJvZHktMSk7XG5cbiAgICAmX19jb250cm9sOm5vdCg6bGFzdC1jaGlsZCksXG4gICAgJl9fZGl2aWRlciB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICB9XG5cbiAgICAmX19saXN0LWljb24ge1xuICAgICAgICBmb250LXNpemU6IDIycHg7XG4gICAgfVxuXG4gICAgJl9faWNvbi1yb3RhdGVkIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgIH1cblxuICAgICZfX3BvcHVwLXRvb2x0aXAge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgICZfdmVydGljYWwge1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdmVydGljYWwgJl9fZGl2aWRlciB7XG4gICAgICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl92ZXJ0aWNhbCAmX19jb250cm9sOm5vdCg6bGFzdC1jaGlsZCksXG4gICAgICAgICZfdmVydGljYWwgJl9fZGl2aWRlciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICd2YXJpYWJsZXMnO1xuXG5AbWl4aW4gdGV4dC1zaXplKCRuYW1lKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtI3skbmFtZX0tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUoKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1peGluIGZpeEFuY2hvclBvc2l0aW9uKCRvZmZzZXQ6IDBweCkge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbn1cblxuQG1peGluIHJlc2V0LWxpbmstc3R5bGUoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaXNsYW5kcy1mb2N1cygpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLnV0aWxpdHlmb2N1cyAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICNmZmRiNGQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXNhYmxlKCRvZmZzZXQ6IDAsICRtb2RlOiAnb3V0bGluZScpIHtcbiAgICBAaWYgJG1vZGUgPT0gJ291dGxpbmUnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRtb2RlID09ICdib3gtc2hhZG93JyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGluaygpIHtcbiAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgwLCAnYm94LXNoYWRvdycpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTMpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0xKTtcbn1cblxuQG1peGluIGhlYWRpbmczKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xufVxuXG5AbWl4aW4gaGVhZGluZzQoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNigpIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBjb250cmlidXRvcnMtdGV4dCgpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0ZXh0LWJvZHktMSgpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LWZvbnQtd2VpZ2h0KTtcbn1cblxuQG1peGluIGRlc2t0b3Atb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZ3Jhdml0eS11aS10ZXh0LXNpemVzKCRkZWx0YSkge1xuICAgIC0tZy10ZXh0LWJvZHktMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0OiAjezE4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMi1mb250LXNpemU6ICN7MTVweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWxpbmUtaGVpZ2h0OiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0OiAjezI0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMS1mb250LXNpemU6ICN7OXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jYXB0aW9uLTItZm9udC1zaXplOiAjezExcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0xLWZvbnQtc2l6ZTogI3syMHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1oZWFkZXItMi1mb250LXNpemU6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0xLWZvbnQtc2l6ZTogI3syOHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTItZm9udC1zaXplOiAjezMycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMy1mb250LXNpemU6ICN7NDBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS00LWZvbnQtc2l6ZTogI3s0OHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMi1mb250LXNpemU6ICN7MTRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0xLWZvbnQtc2l6ZTogI3sxMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcblxuICAgIC0teWZtLWZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oMjogdmFyKC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgzOiB2YXIoLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDQ6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNTogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg2OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplKTtcbn1cbiJdfQ== */"],
5
5
  "mappings": ";AAIA,CAAA;AACI,WAAA;AACA,eAAA;ACFA,aAAA,IAAA;AACA,eAAA,IAAA;ACAJ;AFKI,CAAA,oBAAA,KAAA;AAAA,CAAA;AAEI,gBAAA;AEJR;AFOI,CAAA;AACI,WAAA,IAAA;AELR;AFQI,CAAA;AACI,aAAA;AENR;AFSI,CAAA;AACI,aAAA,OAAA;AEPR;AFUI,CAAA;AACI,WAAA;AERR;AFWI,QAAA,WAAA;AACI,GAAA;AACI,oBAAA;AETV;AFYM,GAJA,qBAIA,CA1BJ;AA2BQ,YAAA;AACA,WAAA;AEVV;AFaM,GATA,qBASA,CA/BJ,oBA+BI,KAAA;EAAA,CATA,qBASA,CA/BJ;AAiCQ,kBAAA;AACA,mBAAA;AEZV;AACF;",
6
6
  "names": []
@@ -1,4 +1,5 @@
1
1
  import type { AvailableLangs, FeedbackSendData, Lang, LangOptions, SubscribeData, TextSizes, Theme } from '../../models';
2
+ import type { MarkdownActionsMode } from '../../contexts/InterfaceContext';
2
3
  import React from 'react';
3
4
  import './Controls.scss';
4
5
  export interface ControlsProps {
@@ -36,6 +37,7 @@ export interface ControlsProps {
36
37
  hideFeedbackControls?: boolean;
37
38
  availableLangs?: AvailableLangs;
38
39
  showMarkdownActions?: boolean;
40
+ markdownActions?: MarkdownActionsMode;
39
41
  mdDocsUrl?: string;
40
42
  onMdDocsButtonClick?: React.MouseEventHandler<HTMLElement>;
41
43
  }
@@ -75,6 +75,7 @@ var ControlsList = (props) => {
75
75
  availableLangs = [],
76
76
  className,
77
77
  showMarkdownActions,
78
+ markdownActions = "dropdown",
78
79
  mdDocsUrl,
79
80
  onMdDocsButtonClick
80
81
  } = props;
@@ -172,9 +173,10 @@ var ControlsList = (props) => {
172
173
  },
173
174
  "subscribe-control"
174
175
  ),
175
- showMarkdownActions && /* @__PURE__ */ jsx(
176
+ showMarkdownActions && markdownActions !== "none" && /* @__PURE__ */ jsx(
176
177
  MarkdownControl,
177
178
  {
179
+ mode: markdownActions,
178
180
  mdDocsUrl,
179
181
  onClick: onMdDocsButtonClick
180
182
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Controls/Controls.tsx"],
4
- "sourcesContent": ["import type {\n AvailableLangs,\n ControlSizes,\n FeedbackSendData,\n Lang,\n LangOptions,\n SubscribeData,\n TextSizes,\n Theme,\n} from '../../models';\n\nimport React, {memo, useContext} from 'react';\nimport block from 'bem-cn-lite';\n\nimport {Feedback, FeedbackView} from '../Feedback';\nimport {Subscribe, SubscribeView} from '../Subscribe';\nimport {useInterface} from '../../hooks';\n\nimport {ControlsLayoutContext} from './ControlsLayout';\nimport MarkdownControl from './single-controls/MarkdownControl';\n\nimport {\n DividerControl,\n EditControl,\n FullScreenControl,\n LangControl,\n PdfControl,\n SettingsControl,\n SinglePageControl,\n} from './';\n\n// eslint-disable-next-line import/order\nimport './Controls.scss';\n\nexport interface ControlsProps {\n lang?: `${Lang}` | Lang;\n langs?: (`${Lang}` | Lang)[];\n fullScreen?: boolean;\n singlePage?: boolean;\n wideFormat?: boolean;\n showMiniToc?: boolean;\n theme?: Theme;\n textSize?: TextSizes;\n vcsUrl?: string;\n vcsType?: string;\n isLiked?: boolean;\n isDisliked?: boolean;\n onChangeLang?: (lang: `${Lang}` | Lang, options?: LangOptions) => void;\n onChangeFullScreen?: (value: boolean) => void;\n onChangeSinglePage?: (value: boolean) => void;\n onChangeWideFormat?: (value: boolean) => void;\n onChangeShowMiniToc?: (value: boolean) => void;\n onChangeTheme?: (theme: Theme) => void;\n onChangeTextSize?: (textSize: TextSizes) => void;\n onSendFeedback?: (data: FeedbackSendData) => void;\n onSubscribe?: (data: SubscribeData) => void;\n consentContent?: React.ReactNode;\n onEditClick?: () => void;\n pdfLink?: string;\n pdfIconConfig?: {position?: string; size?: 'S' | 'M' | 'L'; icon?: string};\n className?: string;\n hideEditControl?: boolean;\n hideFeedbackControls?: boolean;\n availableLangs?: AvailableLangs;\n showMarkdownActions?: boolean;\n mdDocsUrl?: string;\n onMdDocsButtonClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nconst b = block('dc-controls');\n\ntype Defined = {\n [P in keyof ControlsProps]-?: ControlsProps[P];\n};\n\nfunction hasLangs(langs?: (`${Lang}` | Lang)[]) {\n return langs?.length && langs.length > 1;\n}\n\nexport const ControlsList: React.FC<\n ControlsProps & {isHiddenFeedback: boolean; isHiddenAsideFeedback: boolean}\n> = (props) => {\n const {\n fullScreen,\n singlePage,\n theme,\n wideFormat,\n showMiniToc,\n hideEditControl,\n hideFeedbackControls,\n textSize,\n onChangeFullScreen,\n onChangeTheme,\n onChangeShowMiniToc,\n onChangeTextSize,\n onChangeWideFormat,\n onChangeLang,\n onChangeSinglePage,\n onSendFeedback,\n onSubscribe,\n consentContent,\n onEditClick,\n lang,\n langs,\n pdfLink,\n pdfIconConfig,\n vcsUrl,\n vcsType,\n isLiked,\n isDisliked,\n isHiddenFeedback,\n isHiddenAsideFeedback,\n availableLangs = [],\n className,\n showMarkdownActions,\n mdDocsUrl,\n onMdDocsButtonClick,\n } = props;\n\n const {isVerticalView} = useContext(ControlsLayoutContext);\n\n const withFullscreenControl = Boolean(onChangeFullScreen);\n const withSettingsControl = Boolean(\n onChangeWideFormat || onChangeTheme || onChangeShowMiniToc || onChangeTextSize,\n );\n const withLangControl = Boolean(lang && hasLangs(langs) && onChangeLang);\n const withSinglePageControl = Boolean(onChangeSinglePage);\n const withPdfControl = Boolean(pdfLink);\n const withEditControl = Boolean(!singlePage && !hideEditControl && vcsUrl);\n const withFeedbackControl = Boolean(\n !singlePage &&\n !hideFeedbackControls &&\n !isHiddenFeedback &&\n !isHiddenAsideFeedback &&\n onSendFeedback,\n );\n const withSubscribeControls = Boolean(!singlePage && onSubscribe);\n\n const controls = [\n withFullscreenControl && (\n <FullScreenControl\n key=\"fullscreen-control\"\n value={fullScreen}\n onChange={onChangeFullScreen}\n />\n ),\n withSettingsControl && (\n <SettingsControl\n key=\"settings-control\"\n theme={theme}\n wideFormat={wideFormat}\n showMiniToc={showMiniToc}\n textSize={textSize}\n onChangeTheme={onChangeTheme}\n onChangeShowMiniToc={onChangeShowMiniToc}\n onChangeTextSize={onChangeTextSize}\n onChangeWideFormat={onChangeWideFormat}\n />\n ),\n withLangControl && (\n <LangControl\n key=\"lang-control\"\n lang={lang as Lang}\n langs={langs}\n availableLangs={availableLangs}\n onChangeLang={onChangeLang as Defined['onChangeLang']}\n />\n ),\n withSinglePageControl && (\n <SinglePageControl\n key=\"single-page-control\"\n value={singlePage}\n onChange={onChangeSinglePage as Defined['onChangeSinglePage']}\n />\n ),\n withPdfControl && (\n <PdfControl\n key=\"pdf-control\"\n pdfLink={pdfLink as Defined['pdfLink']}\n icon={pdfIconConfig?.icon}\n size={pdfIconConfig?.size as ControlSizes | undefined}\n />\n ),\n '---',\n withEditControl && (\n <EditControl\n key=\"edit-control\"\n vcsUrl={vcsUrl as Defined['vcsUrl']}\n vcsType={vcsType as Defined['vcsType']}\n onClick={onEditClick}\n />\n ),\n '---',\n withFeedbackControl && (\n <Feedback\n key=\"feedback-control\"\n isLiked={isLiked}\n isDisliked={isDisliked}\n onSendFeedback={onSendFeedback as Defined['onSendFeedback']}\n view={FeedbackView.Regular}\n />\n ),\n '---',\n withSubscribeControls && (\n <Subscribe\n key=\"subscribe-control\"\n onSubscribe={onSubscribe as Defined['onSubscribe']}\n consentContent={consentContent}\n view={SubscribeView.Regular}\n />\n ),\n showMarkdownActions && (\n <MarkdownControl\n key=\"markdown-control\"\n mdDocsUrl={mdDocsUrl}\n onClick={onMdDocsButtonClick}\n />\n ),\n ]\n .filter(Boolean)\n .reduce((result, control, index, array) => {\n if (control === '---') {\n if (array[index - 1] && array[index + 1] && array[index + 1] !== '---') {\n result.push(\n <DividerControl key={'divider-' + index} className={b('divider')} />,\n );\n }\n } else {\n result.push(control as React.ReactElement);\n }\n\n return result;\n }, [] as React.ReactElement[]);\n\n if (!controls.length) {\n return null;\n }\n\n return <div className={b({vertical: isVerticalView}, className)}>{controls}</div>;\n};\n\nconst Controls = memo<ControlsProps>((props) => {\n const isHiddenFeedback = useInterface('feedback');\n const isHiddenAsideFeedback = useInterface('feedback-aside');\n\n return (\n <ControlsList\n {...props}\n isHiddenFeedback={isHiddenFeedback}\n isHiddenAsideFeedback={isHiddenAsideFeedback}\n />\n );\n});\n\nControls.displayName = 'DCControls';\n\nexport default Controls;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;AAWA,SAAe,MAAM,kBAAiB;AACtC,OAAO,WAAW;AAElB,SAAQ,UAAU,oBAAmB;AACrC,SAAQ,WAAW,qBAAoB;AACvC,SAAQ,oBAAmB;AAE3B,SAAQ,6BAA4B;AACpC,OAAO,qBAAqB;AAE5B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAGP,OAAO;AA4GK;AAvEZ,IAAM,IAAI,MAAM,aAAa;AAM7B,SAAS,SAAS,OAA8B;AAC5C,UAAO,+BAAO,WAAU,MAAM,SAAS;AAC3C;AAEO,IAAM,eAET,CAAC,UAAU;AACX,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,iBAAiB,CAAC;AAAA,IAClB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,QAAM,EAAC,eAAc,IAAI,WAAW,qBAAqB;AAEzD,QAAM,wBAAwB,QAAQ,kBAAkB;AACxD,QAAM,sBAAsB;AAAA,IACxB,sBAAsB,iBAAiB,uBAAuB;AAAA,EAClE;AACA,QAAM,kBAAkB,QAAQ,QAAQ,SAAS,KAAK,KAAK,YAAY;AACvE,QAAM,wBAAwB,QAAQ,kBAAkB;AACxD,QAAM,iBAAiB,QAAQ,OAAO;AACtC,QAAM,kBAAkB,QAAQ,CAAC,cAAc,CAAC,mBAAmB,MAAM;AACzE,QAAM,sBAAsB;AAAA,IACxB,CAAC,cACD,CAAC,wBACD,CAAC,oBACD,CAAC,yBACD;AAAA,EACJ;AACA,QAAM,wBAAwB,QAAQ,CAAC,cAAc,WAAW;AAEhE,QAAM,WAAW;AAAA,IACb,yBACI;AAAA,MAAC;AAAA;AAAA,QAEG,OAAO;AAAA,QACP,UAAU;AAAA;AAAA,MAFN;AAAA,IAGR;AAAA,IAEJ,uBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,MARI;AAAA,IASR;AAAA,IAEJ,mBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,MAJI;AAAA,IAKR;AAAA,IAEJ,yBACI;AAAA,MAAC;AAAA;AAAA,QAEG,OAAO;AAAA,QACP,UAAU;AAAA;AAAA,MAFN;AAAA,IAGR;AAAA,IAEJ,kBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA,MAAM,+CAAe;AAAA,QACrB,MAAM,+CAAe;AAAA;AAAA,MAHjB;AAAA,IAIR;AAAA,IAEJ;AAAA,IACA,mBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA,SAAS;AAAA;AAAA,MAHL;AAAA,IAIR;AAAA,IAEJ;AAAA,IACA,uBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM,aAAa;AAAA;AAAA,MAJf;AAAA,IAKR;AAAA,IAEJ;AAAA,IACA,yBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA,MAAM,cAAc;AAAA;AAAA,MAHhB;AAAA,IAIR;AAAA,IAEJ,uBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA,SAAS;AAAA;AAAA,MAFL;AAAA,IAGR;AAAA,EAER,EACK,OAAO,OAAO,EACd,OAAO,CAAC,QAAQ,SAAS,OAAO,UAAU;AACvC,QAAI,YAAY,OAAO;AACnB,UAAI,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,MAAM,OAAO;AACpE,eAAO;AAAA,UACH,oBAAC,kBAAwC,WAAW,EAAE,SAAS,KAA1C,aAAa,KAAgC;AAAA,QACtE;AAAA,MACJ;AAAA,IACJ,OAAO;AACH,aAAO,KAAK,OAA6B;AAAA,IAC7C;AAEA,WAAO;AAAA,EACX,GAAG,CAAC,CAAyB;AAEjC,MAAI,CAAC,SAAS,QAAQ;AAClB,WAAO;AAAA,EACX;AAEA,SAAO,oBAAC,SAAI,WAAW,EAAE,EAAC,UAAU,eAAc,GAAG,SAAS,GAAI,oBAAS;AAC/E;AAEA,IAAM,WAAW,KAAoB,CAAC,UAAU;AAC5C,QAAM,mBAAmB,aAAa,UAAU;AAChD,QAAM,wBAAwB,aAAa,gBAAgB;AAE3D,SACI;AAAA,IAAC;AAAA,qCACO,QADP;AAAA,MAEG;AAAA,MACA;AAAA;AAAA,EACJ;AAER,CAAC;AAED,SAAS,cAAc;AAEvB,IAAO,mBAAQ;",
4
+ "sourcesContent": ["import type {\n AvailableLangs,\n ControlSizes,\n FeedbackSendData,\n Lang,\n LangOptions,\n SubscribeData,\n TextSizes,\n Theme,\n} from '../../models';\nimport type {MarkdownActionsMode} from '../../contexts/InterfaceContext';\n\nimport React, {memo, useContext} from 'react';\nimport block from 'bem-cn-lite';\n\nimport {Feedback, FeedbackView} from '../Feedback';\nimport {Subscribe, SubscribeView} from '../Subscribe';\nimport {useInterface} from '../../hooks';\n\nimport {ControlsLayoutContext} from './ControlsLayout';\nimport MarkdownControl from './single-controls/MarkdownControl';\n\nimport {\n DividerControl,\n EditControl,\n FullScreenControl,\n LangControl,\n PdfControl,\n SettingsControl,\n SinglePageControl,\n} from './';\n\n// eslint-disable-next-line import/order\nimport './Controls.scss';\n\nexport interface ControlsProps {\n lang?: `${Lang}` | Lang;\n langs?: (`${Lang}` | Lang)[];\n fullScreen?: boolean;\n singlePage?: boolean;\n wideFormat?: boolean;\n showMiniToc?: boolean;\n theme?: Theme;\n textSize?: TextSizes;\n vcsUrl?: string;\n vcsType?: string;\n isLiked?: boolean;\n isDisliked?: boolean;\n onChangeLang?: (lang: `${Lang}` | Lang, options?: LangOptions) => void;\n onChangeFullScreen?: (value: boolean) => void;\n onChangeSinglePage?: (value: boolean) => void;\n onChangeWideFormat?: (value: boolean) => void;\n onChangeShowMiniToc?: (value: boolean) => void;\n onChangeTheme?: (theme: Theme) => void;\n onChangeTextSize?: (textSize: TextSizes) => void;\n onSendFeedback?: (data: FeedbackSendData) => void;\n onSubscribe?: (data: SubscribeData) => void;\n consentContent?: React.ReactNode;\n onEditClick?: () => void;\n pdfLink?: string;\n pdfIconConfig?: {position?: string; size?: 'S' | 'M' | 'L'; icon?: string};\n className?: string;\n hideEditControl?: boolean;\n hideFeedbackControls?: boolean;\n availableLangs?: AvailableLangs;\n showMarkdownActions?: boolean;\n markdownActions?: MarkdownActionsMode;\n mdDocsUrl?: string;\n onMdDocsButtonClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nconst b = block('dc-controls');\n\ntype Defined = {\n [P in keyof ControlsProps]-?: ControlsProps[P];\n};\n\nfunction hasLangs(langs?: (`${Lang}` | Lang)[]) {\n return langs?.length && langs.length > 1;\n}\n\nexport const ControlsList: React.FC<\n ControlsProps & {isHiddenFeedback: boolean; isHiddenAsideFeedback: boolean}\n> = (props) => {\n const {\n fullScreen,\n singlePage,\n theme,\n wideFormat,\n showMiniToc,\n hideEditControl,\n hideFeedbackControls,\n textSize,\n onChangeFullScreen,\n onChangeTheme,\n onChangeShowMiniToc,\n onChangeTextSize,\n onChangeWideFormat,\n onChangeLang,\n onChangeSinglePage,\n onSendFeedback,\n onSubscribe,\n consentContent,\n onEditClick,\n lang,\n langs,\n pdfLink,\n pdfIconConfig,\n vcsUrl,\n vcsType,\n isLiked,\n isDisliked,\n isHiddenFeedback,\n isHiddenAsideFeedback,\n availableLangs = [],\n className,\n showMarkdownActions,\n markdownActions = 'dropdown',\n mdDocsUrl,\n onMdDocsButtonClick,\n } = props;\n\n const {isVerticalView} = useContext(ControlsLayoutContext);\n\n const withFullscreenControl = Boolean(onChangeFullScreen);\n const withSettingsControl = Boolean(\n onChangeWideFormat || onChangeTheme || onChangeShowMiniToc || onChangeTextSize,\n );\n const withLangControl = Boolean(lang && hasLangs(langs) && onChangeLang);\n const withSinglePageControl = Boolean(onChangeSinglePage);\n const withPdfControl = Boolean(pdfLink);\n const withEditControl = Boolean(!singlePage && !hideEditControl && vcsUrl);\n const withFeedbackControl = Boolean(\n !singlePage &&\n !hideFeedbackControls &&\n !isHiddenFeedback &&\n !isHiddenAsideFeedback &&\n onSendFeedback,\n );\n const withSubscribeControls = Boolean(!singlePage && onSubscribe);\n\n const controls = [\n withFullscreenControl && (\n <FullScreenControl\n key=\"fullscreen-control\"\n value={fullScreen}\n onChange={onChangeFullScreen}\n />\n ),\n withSettingsControl && (\n <SettingsControl\n key=\"settings-control\"\n theme={theme}\n wideFormat={wideFormat}\n showMiniToc={showMiniToc}\n textSize={textSize}\n onChangeTheme={onChangeTheme}\n onChangeShowMiniToc={onChangeShowMiniToc}\n onChangeTextSize={onChangeTextSize}\n onChangeWideFormat={onChangeWideFormat}\n />\n ),\n withLangControl && (\n <LangControl\n key=\"lang-control\"\n lang={lang as Lang}\n langs={langs}\n availableLangs={availableLangs}\n onChangeLang={onChangeLang as Defined['onChangeLang']}\n />\n ),\n withSinglePageControl && (\n <SinglePageControl\n key=\"single-page-control\"\n value={singlePage}\n onChange={onChangeSinglePage as Defined['onChangeSinglePage']}\n />\n ),\n withPdfControl && (\n <PdfControl\n key=\"pdf-control\"\n pdfLink={pdfLink as Defined['pdfLink']}\n icon={pdfIconConfig?.icon}\n size={pdfIconConfig?.size as ControlSizes | undefined}\n />\n ),\n '---',\n withEditControl && (\n <EditControl\n key=\"edit-control\"\n vcsUrl={vcsUrl as Defined['vcsUrl']}\n vcsType={vcsType as Defined['vcsType']}\n onClick={onEditClick}\n />\n ),\n '---',\n withFeedbackControl && (\n <Feedback\n key=\"feedback-control\"\n isLiked={isLiked}\n isDisliked={isDisliked}\n onSendFeedback={onSendFeedback as Defined['onSendFeedback']}\n view={FeedbackView.Regular}\n />\n ),\n '---',\n withSubscribeControls && (\n <Subscribe\n key=\"subscribe-control\"\n onSubscribe={onSubscribe as Defined['onSubscribe']}\n consentContent={consentContent}\n view={SubscribeView.Regular}\n />\n ),\n showMarkdownActions && markdownActions !== 'none' && (\n <MarkdownControl\n key=\"markdown-control\"\n mode={markdownActions}\n mdDocsUrl={mdDocsUrl}\n onClick={onMdDocsButtonClick}\n />\n ),\n ]\n .filter(Boolean)\n .reduce((result, control, index, array) => {\n if (control === '---') {\n if (array[index - 1] && array[index + 1] && array[index + 1] !== '---') {\n result.push(\n <DividerControl key={'divider-' + index} className={b('divider')} />,\n );\n }\n } else {\n result.push(control as React.ReactElement);\n }\n\n return result;\n }, [] as React.ReactElement[]);\n\n if (!controls.length) {\n return null;\n }\n\n return <div className={b({vertical: isVerticalView}, className)}>{controls}</div>;\n};\n\nconst Controls = memo<ControlsProps>((props) => {\n const isHiddenFeedback = useInterface('feedback');\n const isHiddenAsideFeedback = useInterface('feedback-aside');\n\n return (\n <ControlsList\n {...props}\n isHiddenFeedback={isHiddenFeedback}\n isHiddenAsideFeedback={isHiddenAsideFeedback}\n />\n );\n});\n\nControls.displayName = 'DCControls';\n\nexport default Controls;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;AAYA,SAAe,MAAM,kBAAiB;AACtC,OAAO,WAAW;AAElB,SAAQ,UAAU,oBAAmB;AACrC,SAAQ,WAAW,qBAAoB;AACvC,SAAQ,oBAAmB;AAE3B,SAAQ,6BAA4B;AACpC,OAAO,qBAAqB;AAE5B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAGP,OAAO;AA8GK;AAxEZ,IAAM,IAAI,MAAM,aAAa;AAM7B,SAAS,SAAS,OAA8B;AAC5C,UAAO,+BAAO,WAAU,MAAM,SAAS;AAC3C;AAEO,IAAM,eAET,CAAC,UAAU;AACX,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,iBAAiB,CAAC;AAAA,IAClB;AAAA,IACA;AAAA,IACA,kBAAkB;AAAA,IAClB;AAAA,IACA;AAAA,EACJ,IAAI;AAEJ,QAAM,EAAC,eAAc,IAAI,WAAW,qBAAqB;AAEzD,QAAM,wBAAwB,QAAQ,kBAAkB;AACxD,QAAM,sBAAsB;AAAA,IACxB,sBAAsB,iBAAiB,uBAAuB;AAAA,EAClE;AACA,QAAM,kBAAkB,QAAQ,QAAQ,SAAS,KAAK,KAAK,YAAY;AACvE,QAAM,wBAAwB,QAAQ,kBAAkB;AACxD,QAAM,iBAAiB,QAAQ,OAAO;AACtC,QAAM,kBAAkB,QAAQ,CAAC,cAAc,CAAC,mBAAmB,MAAM;AACzE,QAAM,sBAAsB;AAAA,IACxB,CAAC,cACD,CAAC,wBACD,CAAC,oBACD,CAAC,yBACD;AAAA,EACJ;AACA,QAAM,wBAAwB,QAAQ,CAAC,cAAc,WAAW;AAEhE,QAAM,WAAW;AAAA,IACb,yBACI;AAAA,MAAC;AAAA;AAAA,QAEG,OAAO;AAAA,QACP,UAAU;AAAA;AAAA,MAFN;AAAA,IAGR;AAAA,IAEJ,uBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,MARI;AAAA,IASR;AAAA,IAEJ,mBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,MAJI;AAAA,IAKR;AAAA,IAEJ,yBACI;AAAA,MAAC;AAAA;AAAA,QAEG,OAAO;AAAA,QACP,UAAU;AAAA;AAAA,MAFN;AAAA,IAGR;AAAA,IAEJ,kBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA,MAAM,+CAAe;AAAA,QACrB,MAAM,+CAAe;AAAA;AAAA,MAHjB;AAAA,IAIR;AAAA,IAEJ;AAAA,IACA,mBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA,SAAS;AAAA;AAAA,MAHL;AAAA,IAIR;AAAA,IAEJ;AAAA,IACA,uBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM,aAAa;AAAA;AAAA,MAJf;AAAA,IAKR;AAAA,IAEJ;AAAA,IACA,yBACI;AAAA,MAAC;AAAA;AAAA,QAEG;AAAA,QACA;AAAA,QACA,MAAM,cAAc;AAAA;AAAA,MAHhB;AAAA,IAIR;AAAA,IAEJ,uBAAuB,oBAAoB,UACvC;AAAA,MAAC;AAAA;AAAA,QAEG,MAAM;AAAA,QACN;AAAA,QACA,SAAS;AAAA;AAAA,MAHL;AAAA,IAIR;AAAA,EAER,EACK,OAAO,OAAO,EACd,OAAO,CAAC,QAAQ,SAAS,OAAO,UAAU;AACvC,QAAI,YAAY,OAAO;AACnB,UAAI,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,KAAK,MAAM,QAAQ,CAAC,MAAM,OAAO;AACpE,eAAO;AAAA,UACH,oBAAC,kBAAwC,WAAW,EAAE,SAAS,KAA1C,aAAa,KAAgC;AAAA,QACtE;AAAA,MACJ;AAAA,IACJ,OAAO;AACH,aAAO,KAAK,OAA6B;AAAA,IAC7C;AAEA,WAAO;AAAA,EACX,GAAG,CAAC,CAAyB;AAEjC,MAAI,CAAC,SAAS,QAAQ;AAClB,WAAO;AAAA,EACX;AAEA,SAAO,oBAAC,SAAI,WAAW,EAAE,EAAC,UAAU,eAAc,GAAG,SAAS,GAAI,oBAAS;AAC/E;AAEA,IAAM,WAAW,KAAoB,CAAC,UAAU;AAC5C,QAAM,mBAAmB,aAAa,UAAU;AAChD,QAAM,wBAAwB,aAAa,gBAAgB;AAE3D,SACI;AAAA,IAAC;AAAA,qCACO,QADP;AAAA,MAEG;AAAA,MACA;AAAA;AAAA,EACJ;AAER,CAAC;AAED,SAAS,cAAc;AAEvB,IAAO,mBAAQ;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../../../src/components/Controls/single-controls/DividerControl/DividerControl.scss", "../../../../../../src/components/Controls/single-controls/DividerControl/%3Cinput css XYQ13z%3E"],
3
+ "sources": ["../../../../../../src/components/Controls/single-controls/DividerControl/DividerControl.scss", "../../../../../../src/components/Controls/single-controls/DividerControl/%3Cinput css ZPJDBk%3E"],
4
4
  "sourcesContent": [".dc-divider-control {\n background: var(--g-color-line-generic);\n\n &:first-child {\n display: none;\n }\n\n &:not(&_vertical) {\n width: 100%;\n height: 1px;\n }\n\n &_vertical {\n width: 1px;\n }\n\n &#{&}_vertical#{&}_size_m {\n height: 16px;\n }\n &#{&}_vertical#{&}_size_l {\n height: 24px;\n }\n}\n", ".dc-divider-control {\n background: var(--g-color-line-generic);\n}\n.dc-divider-control:first-child {\n display: none;\n}\n.dc-divider-control:not(.dc-divider-control_vertical) {\n width: 100%;\n height: 1px;\n}\n.dc-divider-control_vertical {\n width: 1px;\n}\n.dc-divider-control.dc-divider-control_vertical.dc-divider-control_size_m {\n height: 16px;\n}\n.dc-divider-control.dc-divider-control_vertical.dc-divider-control_size_l {\n height: 24px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0NvbnRyb2xzL3NpbmdsZS1jb250cm9scy9EaXZpZGVyQ29udHJvbCIsInNvdXJjZXMiOlsiRGl2aWRlckNvbnRyb2wuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFFSjtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiLmRjLWRpdmlkZXItY29udHJvbCB7XG4gICAgYmFja2dyb3VuZDogdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuXG4gICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgJjpub3QoJl92ZXJ0aWNhbCkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgfVxuXG4gICAgJl92ZXJ0aWNhbCB7XG4gICAgICAgIHdpZHRoOiAxcHg7XG4gICAgfVxuXG4gICAgJiN7Jn1fdmVydGljYWwjeyZ9X3NpemVfbSB7XG4gICAgICAgIGhlaWdodDogMTZweDtcbiAgICB9XG4gICAgJiN7Jn1fdmVydGljYWwjeyZ9X3NpemVfbCB7XG4gICAgICAgIGhlaWdodDogMjRweDtcbiAgICB9XG59XG4iXX0= */"],
5
5
  "mappings": ";AAAA,CAAA;AACI,cAAA,IAAA;ACCJ;ADCI,CAHJ,kBAGI;AACI,WAAA;ACCR;ADEI,CAPJ,kBAOI,KAAA,CAAA;AACI,SAAA;AACA,UAAA;ACAR;ADGI,CALA;AAMI,SAAA;ACDR;ADII,CAhBJ,kBAgBI,CATA,2BASA,CAAA;AACI,UAAA;ACFR;ADII,CAnBJ,kBAmBI,CAZA,2BAYA,CAAA;AACI,UAAA;ACFR;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../../../src/components/Controls/single-controls/LangControl/LangControl.scss", "../../../../../../src/styles/mixins.scss", "../../../../../../src/components/Controls/single-controls/LangControl/%3Cinput css HevxjH%3E"],
3
+ "sources": ["../../../../../../src/components/Controls/single-controls/LangControl/LangControl.scss", "../../../../../../src/styles/mixins.scss", "../../../../../../src/components/Controls/single-controls/LangControl/%3Cinput css ax7Qbi%3E"],
4
4
  "sourcesContent": ["@use '../../../../styles/mixins';\n@use '../../../../styles/variables';\n\n.dc-lang-control {\n display: flex;\n align-items: center;\n @include mixins.text-size(body-1);\n\n &__popup {\n width: 100px;\n @include mixins.text-size(body-1);\n }\n\n div &__popup-tooltip {\n padding: 0;\n }\n\n &__list {\n padding: 4px 0;\n }\n\n &__list-item {\n --g-focus-border-radius: 4px;\n\n display: flex;\n gap: 8px;\n align-items: center;\n width: 100%;\n height: 100%;\n border-radius: var(--g-focus-border-radius);\n border: 0;\n padding: 0 12px;\n color: inherit;\n cursor: pointer;\n background-color: inherit;\n font-family: inherit;\n\n @include mixins.focusable(-2px);\n }\n\n &__list-item_tld {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n gap: 4px;\n }\n\n &__list-item_tld > span {\n color: var(--g-color-text-hint);\n }\n\n &__list-item_disabled {\n color: var(--g-color-text-secondary);\n cursor: default;\n opacity: 0.7;\n }\n}\n", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n", ".dc-lang-control {\n display: flex;\n align-items: center;\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-lang-control__popup {\n width: 100px;\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\ndiv .dc-lang-control__popup-tooltip {\n padding: 0;\n}\n.dc-lang-control__list {\n padding: 4px 0;\n}\n.dc-lang-control__list-item {\n --g-focus-border-radius: 4px;\n display: flex;\n gap: 8px;\n align-items: center;\n width: 100%;\n height: 100%;\n border-radius: var(--g-focus-border-radius);\n border: 0;\n padding: 0 12px;\n color: inherit;\n cursor: pointer;\n background-color: inherit;\n font-family: inherit;\n}\n.dc-lang-control__list-item:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: -2px;\n}\n.dc-lang-control__list-item:focus:not(:focus-visible) {\n outline: 0;\n}\n.dc-lang-control__list-item_tld {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n gap: 4px;\n}\n.dc-lang-control__list-item_tld > span {\n color: var(--g-color-text-hint);\n}\n.dc-lang-control__list-item_disabled {\n color: var(--g-color-text-secondary);\n cursor: default;\n opacity: 0.7;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0NvbnRyb2xzL3NpbmdsZS1jb250cm9scy9MYW5nQ29udHJvbCIsInNvdXJjZXMiOlsiTGFuZ0NvbnRyb2wuc2NzcyIsIi4uLy4uLy4uLy4uL3N0eWxlcy9taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQTtFQUNJO0VBQ0E7RUNEQTtFQUNBOztBREdBO0VBQ0k7RUNMSjtFQUNBOztBRFFBO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQ0RBO0VBQ0k7RUFDQSxnQkRDc0I7O0FDQzFCO0VBQ0k7O0FEQ1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vLi4vLi4vc3R5bGVzL21peGlucyc7XG5AdXNlICcuLi8uLi8uLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcblxuLmRjLWxhbmctY29udHJvbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIEBpbmNsdWRlIG1peGlucy50ZXh0LXNpemUoYm9keS0xKTtcblxuICAgICZfX3BvcHVwIHtcbiAgICAgICAgd2lkdGg6IDEwMHB4O1xuICAgICAgICBAaW5jbHVkZSBtaXhpbnMudGV4dC1zaXplKGJvZHktMSk7XG4gICAgfVxuXG4gICAgZGl2ICZfX3BvcHVwLXRvb2x0aXAge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBwYWRkaW5nOiA0cHggMDtcbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW0ge1xuICAgICAgICAtLWctZm9jdXMtYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogOHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMTJweDtcbiAgICAgICAgY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG5cbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmZvY3VzYWJsZSgtMnB4KTtcbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW1fdGxkIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW1fdGxkID4gc3BhbiB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtaGludCk7XG4gICAgfVxuXG4gICAgJl9fbGlzdC1pdGVtX2Rpc2FibGVkIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1zZWNvbmRhcnkpO1xuICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICd2YXJpYWJsZXMnO1xuXG5AbWl4aW4gdGV4dC1zaXplKCRuYW1lKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtI3skbmFtZX0tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUoKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1peGluIGZpeEFuY2hvclBvc2l0aW9uKCRvZmZzZXQ6IDBweCkge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbn1cblxuQG1peGluIHJlc2V0LWxpbmstc3R5bGUoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaXNsYW5kcy1mb2N1cygpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLnV0aWxpdHlmb2N1cyAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICNmZmRiNGQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXNhYmxlKCRvZmZzZXQ6IDAsICRtb2RlOiAnb3V0bGluZScpIHtcbiAgICBAaWYgJG1vZGUgPT0gJ291dGxpbmUnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRtb2RlID09ICdib3gtc2hhZG93JyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGluaygpIHtcbiAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgwLCAnYm94LXNoYWRvdycpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTMpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0xKTtcbn1cblxuQG1peGluIGhlYWRpbmczKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xufVxuXG5AbWl4aW4gaGVhZGluZzQoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNigpIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBjb250cmlidXRvcnMtdGV4dCgpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0ZXh0LWJvZHktMSgpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LWZvbnQtd2VpZ2h0KTtcbn1cblxuQG1peGluIGRlc2t0b3Atb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZ3Jhdml0eS11aS10ZXh0LXNpemVzKCRkZWx0YSkge1xuICAgIC0tZy10ZXh0LWJvZHktMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0OiAjezE4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMi1mb250LXNpemU6ICN7MTVweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWxpbmUtaGVpZ2h0OiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0OiAjezI0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMS1mb250LXNpemU6ICN7OXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jYXB0aW9uLTItZm9udC1zaXplOiAjezExcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0xLWZvbnQtc2l6ZTogI3syMHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1oZWFkZXItMi1mb250LXNpemU6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0xLWZvbnQtc2l6ZTogI3syOHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTItZm9udC1zaXplOiAjezMycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMy1mb250LXNpemU6ICN7NDBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS00LWZvbnQtc2l6ZTogI3s0OHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMi1mb250LXNpemU6ICN7MTRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0xLWZvbnQtc2l6ZTogI3sxMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcblxuICAgIC0teWZtLWZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oMjogdmFyKC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgzOiB2YXIoLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDQ6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNTogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg2OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplKTtcbn1cbiJdfQ== */"],
5
5
  "mappings": ";AAGA,CAAA;AACI,WAAA;AACA,eAAA;ACDA,aAAA,IAAA;AACA,eAAA,IAAA;ACAJ;AFGI,CAAA;AACI,SAAA;ACLJ,aAAA,IAAA;AACA,eAAA,IAAA;ACKJ;AFGI,IAAA,CAAA;AACI,WAAA;AEDR;AFII,CAAA;AACI,WAAA,IAAA;AEFR;AFKI,CAAA;AACI,2BAAA;AAEA,WAAA;AACA,OAAA;AACA,eAAA;AACA,SAAA;AACA,UAAA;AACA,iBAAA;AAAA,iBAAA,IAAA;AACA,UAAA;AACA,WAAA,EAAA;AACA,SAAA;AACA,UAAA;AACA,oBAAA;AACA,eAAA;AEJR;ADGQ,CDbJ,0BCaI;AACI,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;ACDZ;ADGQ,CDjBJ,0BCiBI,MAAA,KAAA;AACI,WAAA;ACDZ;AFEI,CAAA;AACI,kBAAA;AACA,eAAA;AACA,mBAAA;AACA,OAAA;AEAR;AFGI,CAPA,+BAOA,EAAA;AACI,SAAA,IAAA;AEDR;AFII,CAAA;AACI,SAAA,IAAA;AACA,UAAA;AACA,WAAA;AEFR;",
6
6
  "names": []
@@ -1,6 +1,8 @@
1
+ import type { MarkdownActionsMode } from '../../../contexts/InterfaceContext';
1
2
  import React from 'react';
2
- export declare function getMarkdownUrl(currentUrl: string): string;
3
+ export { getMarkdownUrl } from './markdown-url';
3
4
  export interface MarkdownControlProps {
5
+ mode?: Exclude<MarkdownActionsMode, 'none'>;
4
6
  mdDocsUrl?: string;
5
7
  onClick?: React.MouseEventHandler<HTMLElement>;
6
8
  }
@@ -1,47 +1,83 @@
1
1
  // src/components/Controls/single-controls/MarkdownControl.tsx
2
- import { useCallback, useContext, useMemo } from "react";
3
- import { Copy, LogoMarkdown } from "@gravity-ui/icons";
4
- import { DropdownMenu, Icon } from "@gravity-ui/uikit";
2
+ import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
3
+ import { Copy, LogoMarkdown, SquareCheck } from "@gravity-ui/icons";
4
+ import { ActionTooltip, Button, DropdownMenu, Icon } from "@gravity-ui/uikit";
5
5
  import { useTranslation } from "../../../hooks";
6
6
  import { CommonAnalyticsEvent, useAnalytics } from "../../../shared/libs/analytics";
7
7
  import { ControlsLayoutContext } from "../ControlsLayout";
8
- import { jsx } from "react/jsx-runtime";
9
- function getMarkdownUrl(currentUrl) {
10
- const markdownUrl = new URL(currentUrl);
11
- if (markdownUrl.pathname.endsWith("/")) {
12
- markdownUrl.pathname += "index.md";
13
- } else {
14
- markdownUrl.pathname = markdownUrl.pathname.replace(/\.(?:html?|md)$/i, "") + ".md";
15
- }
16
- return markdownUrl.toString();
17
- }
18
- var MarkdownControl = ({ mdDocsUrl, onClick }) => {
8
+ import { getMarkdownUrl, resolveMarkdownActionUrl } from "./markdown-url";
9
+ import { getMarkdownUrl as getMarkdownUrl2 } from "./markdown-url";
10
+ import { jsx, jsxs } from "react/jsx-runtime";
11
+ var COPY_SUCCESS_TIMEOUT = 2e3;
12
+ var MarkdownControl = ({
13
+ mode = "dropdown",
14
+ mdDocsUrl,
15
+ onClick
16
+ }) => {
19
17
  const { t } = useTranslation("markdown-button");
20
18
  const analytics = useAnalytics();
21
19
  const { controlClassName, controlSize } = useContext(ControlsLayoutContext);
20
+ const [copyState, setCopyState] = useState("idle");
21
+ const [dropdownOpen, setDropdownOpen] = useState(false);
22
+ const ignoreNextClose = useRef(false);
23
+ const copySuccessTimer = useRef(void 0);
22
24
  const resolveMarkdownUrl = useCallback(
23
- () => mdDocsUrl || getMarkdownUrl(window.location.href),
25
+ (action) => {
26
+ if (!mdDocsUrl) {
27
+ return getMarkdownUrl(window.location.href, action);
28
+ }
29
+ return resolveMarkdownActionUrl(mdDocsUrl, window.location.href, action);
30
+ },
24
31
  [mdDocsUrl]
25
32
  );
33
+ useEffect(
34
+ () => () => {
35
+ if (copySuccessTimer.current) {
36
+ clearTimeout(copySuccessTimer.current);
37
+ }
38
+ },
39
+ []
40
+ );
26
41
  const copyMarkdown = useCallback(async () => {
27
42
  var _a;
43
+ if (copyState === "pending") {
44
+ return;
45
+ }
28
46
  analytics.track(CommonAnalyticsEvent.DOCS_COPY_AS_MARKDOWN_CLICK);
29
- const response = await fetch(resolveMarkdownUrl(), {
30
- credentials: "same-origin",
31
- headers: { Accept: "text/markdown" }
32
- });
33
- if (!response.ok || !((_a = response.headers.get("content-type")) == null ? void 0 : _a.includes("text/markdown"))) {
34
- throw new Error(`Failed to load Markdown: ${response.status}`);
47
+ if (copySuccessTimer.current) {
48
+ clearTimeout(copySuccessTimer.current);
49
+ copySuccessTimer.current = void 0;
35
50
  }
36
- await navigator.clipboard.writeText(await response.text());
37
- }, [analytics, resolveMarkdownUrl]);
51
+ setCopyState("pending");
52
+ try {
53
+ const response = await fetch(resolveMarkdownUrl("copy"), {
54
+ credentials: "same-origin",
55
+ headers: { Accept: "text/markdown" }
56
+ });
57
+ if (!response.ok || !((_a = response.headers.get("content-type")) == null ? void 0 : _a.includes("text/markdown"))) {
58
+ throw new Error(`Failed to load Markdown: ${response.status}`);
59
+ }
60
+ await navigator.clipboard.writeText(await response.text());
61
+ setCopyState("success");
62
+ copySuccessTimer.current = setTimeout(() => {
63
+ copySuccessTimer.current = void 0;
64
+ setCopyState("idle");
65
+ }, COPY_SUCCESS_TIMEOUT);
66
+ } catch (e) {
67
+ setCopyState("idle");
68
+ }
69
+ }, [analytics, copyState, resolveMarkdownUrl]);
70
+ const handleCopy = useCallback(() => {
71
+ ignoreNextClose.current = mode === "dropdown";
72
+ copyMarkdown();
73
+ }, [copyMarkdown, mode]);
38
74
  const viewMarkdown = useCallback(
39
75
  (event) => {
40
76
  analytics.track(CommonAnalyticsEvent.DOCS_VIEW_AS_MARKDOWN_CLICK);
41
77
  if ("nativeEvent" in event) {
42
78
  onClick == null ? void 0 : onClick(event);
43
79
  }
44
- window.open(resolveMarkdownUrl(), "_blank", "noopener,noreferrer");
80
+ window.open(resolveMarkdownUrl("view"), "_blank", "noopener,noreferrer");
45
81
  },
46
82
  [analytics, onClick, resolveMarkdownUrl]
47
83
  );
@@ -49,10 +85,10 @@ var MarkdownControl = ({ mdDocsUrl, onClick }) => {
49
85
  () => [
50
86
  {
51
87
  text: t("copy-as-markdown"),
52
- iconStart: /* @__PURE__ */ jsx(Icon, { data: Copy, size: 16 }),
53
- action: () => {
54
- copyMarkdown().catch(() => void 0);
55
- }
88
+ iconStart: /* @__PURE__ */ jsx(Icon, { data: copyState === "success" ? SquareCheck : Copy, size: 16 }),
89
+ disabled: copyState === "pending",
90
+ className: `dc-markdown-control__copy_${copyState}`,
91
+ action: handleCopy
56
92
  },
57
93
  {
58
94
  text: t("view-in-markdown"),
@@ -60,12 +96,49 @@ var MarkdownControl = ({ mdDocsUrl, onClick }) => {
60
96
  action: viewMarkdown
61
97
  }
62
98
  ],
63
- [copyMarkdown, t, viewMarkdown]
99
+ [copyState, handleCopy, t, viewMarkdown]
64
100
  );
101
+ const handleDropdownToggle = useCallback((open) => {
102
+ if (!open && ignoreNextClose.current) {
103
+ ignoreNextClose.current = false;
104
+ return;
105
+ }
106
+ setDropdownOpen(open);
107
+ }, []);
108
+ if (mode === "visible") {
109
+ return /* @__PURE__ */ jsxs(React.Fragment, { children: [
110
+ /* @__PURE__ */ jsx(ActionTooltip, { title: t("copy-as-markdown"), children: /* @__PURE__ */ jsx(
111
+ Button,
112
+ {
113
+ "aria-label": t("copy-as-markdown"),
114
+ className: `${controlClassName || ""} dc-markdown-control__copy_${copyState}`.trim(),
115
+ size: controlSize,
116
+ view: "flat-secondary",
117
+ disabled: copyState === "pending",
118
+ "data-copy-state": copyState,
119
+ onClick: handleCopy,
120
+ children: /* @__PURE__ */ jsx(Button.Icon, { children: copyState === "success" ? /* @__PURE__ */ jsx(SquareCheck, {}) : /* @__PURE__ */ jsx(Copy, {}) })
121
+ }
122
+ ) }),
123
+ /* @__PURE__ */ jsx(ActionTooltip, { title: t("view-in-markdown"), children: /* @__PURE__ */ jsx(
124
+ Button,
125
+ {
126
+ "aria-label": t("view-in-markdown"),
127
+ className: controlClassName,
128
+ size: controlSize,
129
+ view: "flat-secondary",
130
+ onClick: viewMarkdown,
131
+ children: /* @__PURE__ */ jsx(Button.Icon, { children: /* @__PURE__ */ jsx(LogoMarkdown, {}) })
132
+ }
133
+ ) })
134
+ ] });
135
+ }
65
136
  return /* @__PURE__ */ jsx(
66
137
  DropdownMenu,
67
138
  {
68
139
  items,
140
+ open: dropdownOpen,
141
+ onOpenToggle: handleDropdownToggle,
69
142
  size: controlSize,
70
143
  switcherWrapperClassName: controlClassName,
71
144
  defaultSwitcherProps: {
@@ -79,6 +152,6 @@ var MarkdownControl = ({ mdDocsUrl, onClick }) => {
79
152
  var MarkdownControl_default = MarkdownControl;
80
153
  export {
81
154
  MarkdownControl_default as default,
82
- getMarkdownUrl
155
+ getMarkdownUrl2 as getMarkdownUrl
83
156
  };
84
157
  //# sourceMappingURL=MarkdownControl.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/Controls/single-controls/MarkdownControl.tsx"],
4
- "sourcesContent": ["import type {DropdownMenuItem} from '@gravity-ui/uikit';\n\nimport React, {useCallback, useContext, useMemo} from 'react';\nimport {Copy, LogoMarkdown} from '@gravity-ui/icons';\nimport {DropdownMenu, Icon} from '@gravity-ui/uikit';\n\nimport {useTranslation} from '../../../hooks';\nimport {CommonAnalyticsEvent, useAnalytics} from '../../../shared/libs/analytics';\nimport {ControlsLayoutContext} from '../ControlsLayout';\n\nexport function getMarkdownUrl(currentUrl: string) {\n const markdownUrl = new URL(currentUrl);\n\n if (markdownUrl.pathname.endsWith('/')) {\n markdownUrl.pathname += 'index.md';\n } else {\n markdownUrl.pathname = markdownUrl.pathname.replace(/\\.(?:html?|md)$/i, '') + '.md';\n }\n\n return markdownUrl.toString();\n}\n\nexport interface MarkdownControlProps {\n mdDocsUrl?: string;\n onClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nconst MarkdownControl: React.FC<MarkdownControlProps> = ({mdDocsUrl, onClick}) => {\n const {t} = useTranslation('markdown-button');\n const analytics = useAnalytics();\n const {controlClassName, controlSize} = useContext(ControlsLayoutContext);\n const resolveMarkdownUrl = useCallback(\n () => mdDocsUrl || getMarkdownUrl(window.location.href),\n [mdDocsUrl],\n );\n\n const copyMarkdown = useCallback(async () => {\n analytics.track(CommonAnalyticsEvent.DOCS_COPY_AS_MARKDOWN_CLICK);\n\n const response = await fetch(resolveMarkdownUrl(), {\n credentials: 'same-origin',\n headers: {Accept: 'text/markdown'},\n });\n\n if (!response.ok || !response.headers.get('content-type')?.includes('text/markdown')) {\n throw new Error(`Failed to load Markdown: ${response.status}`);\n }\n\n await navigator.clipboard.writeText(await response.text());\n }, [analytics, resolveMarkdownUrl]);\n\n const viewMarkdown = useCallback<NonNullable<DropdownMenuItem<unknown>['action']>>(\n (event) => {\n analytics.track(CommonAnalyticsEvent.DOCS_VIEW_AS_MARKDOWN_CLICK);\n\n if ('nativeEvent' in event) {\n onClick?.(event);\n }\n\n window.open(resolveMarkdownUrl(), '_blank', 'noopener,noreferrer');\n },\n [analytics, onClick, resolveMarkdownUrl],\n );\n\n const items = useMemo<DropdownMenuItem<unknown>[]>(\n () => [\n {\n text: t('copy-as-markdown'),\n iconStart: <Icon data={Copy} size={16} />,\n action: () => {\n copyMarkdown().catch(() => undefined);\n },\n },\n {\n text: t('view-in-markdown'),\n iconStart: <Icon data={LogoMarkdown} size={16} />,\n action: viewMarkdown,\n },\n ],\n [copyMarkdown, t, viewMarkdown],\n );\n\n return (\n <DropdownMenu\n items={items}\n size={controlSize}\n switcherWrapperClassName={controlClassName}\n defaultSwitcherProps={{\n 'aria-label': t('markdown-actions'),\n view: 'flat-secondary',\n }}\n popupProps={{placement: ['bottom-end', 'top-end']}}\n />\n );\n};\n\nexport default MarkdownControl;\n"],
5
- "mappings": ";AAEA,SAAe,aAAa,YAAY,eAAc;AACtD,SAAQ,MAAM,oBAAmB;AACjC,SAAQ,cAAc,YAAW;AAEjC,SAAQ,sBAAqB;AAC7B,SAAQ,sBAAsB,oBAAmB;AACjD,SAAQ,6BAA4B;AA4DT;AA1DpB,SAAS,eAAe,YAAoB;AAC/C,QAAM,cAAc,IAAI,IAAI,UAAU;AAEtC,MAAI,YAAY,SAAS,SAAS,GAAG,GAAG;AACpC,gBAAY,YAAY;AAAA,EAC5B,OAAO;AACH,gBAAY,WAAW,YAAY,SAAS,QAAQ,oBAAoB,EAAE,IAAI;AAAA,EAClF;AAEA,SAAO,YAAY,SAAS;AAChC;AAOA,IAAM,kBAAkD,CAAC,EAAC,WAAW,QAAO,MAAM;AAC9E,QAAM,EAAC,EAAC,IAAI,eAAe,iBAAiB;AAC5C,QAAM,YAAY,aAAa;AAC/B,QAAM,EAAC,kBAAkB,YAAW,IAAI,WAAW,qBAAqB;AACxE,QAAM,qBAAqB;AAAA,IACvB,MAAM,aAAa,eAAe,OAAO,SAAS,IAAI;AAAA,IACtD,CAAC,SAAS;AAAA,EACd;AAEA,QAAM,eAAe,YAAY,YAAY;AApCjD;AAqCQ,cAAU,MAAM,qBAAqB,2BAA2B;AAEhE,UAAM,WAAW,MAAM,MAAM,mBAAmB,GAAG;AAAA,MAC/C,aAAa;AAAA,MACb,SAAS,EAAC,QAAQ,gBAAe;AAAA,IACrC,CAAC;AAED,QAAI,CAAC,SAAS,MAAM,GAAC,cAAS,QAAQ,IAAI,cAAc,MAAnC,mBAAsC,SAAS,mBAAkB;AAClF,YAAM,IAAI,MAAM,4BAA4B,SAAS,MAAM,EAAE;AAAA,IACjE;AAEA,UAAM,UAAU,UAAU,UAAU,MAAM,SAAS,KAAK,CAAC;AAAA,EAC7D,GAAG,CAAC,WAAW,kBAAkB,CAAC;AAElC,QAAM,eAAe;AAAA,IACjB,CAAC,UAAU;AACP,gBAAU,MAAM,qBAAqB,2BAA2B;AAEhE,UAAI,iBAAiB,OAAO;AACxB,2CAAU;AAAA,MACd;AAEA,aAAO,KAAK,mBAAmB,GAAG,UAAU,qBAAqB;AAAA,IACrE;AAAA,IACA,CAAC,WAAW,SAAS,kBAAkB;AAAA,EAC3C;AAEA,QAAM,QAAQ;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM,EAAE,kBAAkB;AAAA,QAC1B,WAAW,oBAAC,QAAK,MAAM,MAAM,MAAM,IAAI;AAAA,QACvC,QAAQ,MAAM;AACV,uBAAa,EAAE,MAAM,MAAM,MAAS;AAAA,QACxC;AAAA,MACJ;AAAA,MACA;AAAA,QACI,MAAM,EAAE,kBAAkB;AAAA,QAC1B,WAAW,oBAAC,QAAK,MAAM,cAAc,MAAM,IAAI;AAAA,QAC/C,QAAQ;AAAA,MACZ;AAAA,IACJ;AAAA,IACA,CAAC,cAAc,GAAG,YAAY;AAAA,EAClC;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,MAAM;AAAA,MACN,0BAA0B;AAAA,MAC1B,sBAAsB;AAAA,QAClB,cAAc,EAAE,kBAAkB;AAAA,QAClC,MAAM;AAAA,MACV;AAAA,MACA,YAAY,EAAC,WAAW,CAAC,cAAc,SAAS,EAAC;AAAA;AAAA,EACrD;AAER;AAEA,IAAO,0BAAQ;",
6
- "names": []
4
+ "sourcesContent": ["import type {DropdownMenuItem} from '@gravity-ui/uikit';\nimport type {MarkdownActionsMode} from '../../../contexts/InterfaceContext';\n\nimport React, {useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport {Copy, LogoMarkdown, SquareCheck} from '@gravity-ui/icons';\nimport {ActionTooltip, Button, DropdownMenu, Icon} from '@gravity-ui/uikit';\n\nimport {useTranslation} from '../../../hooks';\nimport {CommonAnalyticsEvent, useAnalytics} from '../../../shared/libs/analytics';\nimport {ControlsLayoutContext} from '../ControlsLayout';\n\nimport {type MarkdownAction, getMarkdownUrl, resolveMarkdownActionUrl} from './markdown-url';\n\nconst COPY_SUCCESS_TIMEOUT = 2000;\n\nexport {getMarkdownUrl} from './markdown-url';\n\ntype CopyState = 'idle' | 'pending' | 'success';\n\nexport interface MarkdownControlProps {\n mode?: Exclude<MarkdownActionsMode, 'none'>;\n mdDocsUrl?: string;\n onClick?: React.MouseEventHandler<HTMLElement>;\n}\n\nconst MarkdownControl: React.FC<MarkdownControlProps> = ({\n mode = 'dropdown',\n mdDocsUrl,\n onClick,\n}) => {\n const {t} = useTranslation('markdown-button');\n const analytics = useAnalytics();\n const {controlClassName, controlSize} = useContext(ControlsLayoutContext);\n const [copyState, setCopyState] = useState<CopyState>('idle');\n const [dropdownOpen, setDropdownOpen] = useState(false);\n const ignoreNextClose = useRef(false);\n const copySuccessTimer = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const resolveMarkdownUrl = useCallback(\n (action: MarkdownAction) => {\n if (!mdDocsUrl) {\n return getMarkdownUrl(window.location.href, action);\n }\n\n return resolveMarkdownActionUrl(mdDocsUrl, window.location.href, action);\n },\n [mdDocsUrl],\n );\n\n useEffect(\n () => () => {\n if (copySuccessTimer.current) {\n clearTimeout(copySuccessTimer.current);\n }\n },\n [],\n );\n\n const copyMarkdown = useCallback(async () => {\n if (copyState === 'pending') {\n return;\n }\n\n analytics.track(CommonAnalyticsEvent.DOCS_COPY_AS_MARKDOWN_CLICK);\n if (copySuccessTimer.current) {\n clearTimeout(copySuccessTimer.current);\n copySuccessTimer.current = undefined;\n }\n setCopyState('pending');\n\n try {\n const response = await fetch(resolveMarkdownUrl('copy'), {\n credentials: 'same-origin',\n headers: {Accept: 'text/markdown'},\n });\n\n if (!response.ok || !response.headers.get('content-type')?.includes('text/markdown')) {\n throw new Error(`Failed to load Markdown: ${response.status}`);\n }\n\n await navigator.clipboard.writeText(await response.text());\n setCopyState('success');\n\n copySuccessTimer.current = setTimeout(() => {\n copySuccessTimer.current = undefined;\n setCopyState('idle');\n }, COPY_SUCCESS_TIMEOUT);\n } catch {\n setCopyState('idle');\n }\n }, [analytics, copyState, resolveMarkdownUrl]);\n\n const handleCopy = useCallback(() => {\n ignoreNextClose.current = mode === 'dropdown';\n copyMarkdown();\n }, [copyMarkdown, mode]);\n\n const viewMarkdown = useCallback<NonNullable<DropdownMenuItem<unknown>['action']>>(\n (event) => {\n analytics.track(CommonAnalyticsEvent.DOCS_VIEW_AS_MARKDOWN_CLICK);\n\n if ('nativeEvent' in event) {\n onClick?.(event);\n }\n\n window.open(resolveMarkdownUrl('view'), '_blank', 'noopener,noreferrer');\n },\n [analytics, onClick, resolveMarkdownUrl],\n );\n\n const items = useMemo<DropdownMenuItem<unknown>[]>(\n () => [\n {\n text: t('copy-as-markdown'),\n iconStart: <Icon data={copyState === 'success' ? SquareCheck : Copy} size={16} />,\n disabled: copyState === 'pending',\n className: `dc-markdown-control__copy_${copyState}`,\n action: handleCopy,\n },\n {\n text: t('view-in-markdown'),\n iconStart: <Icon data={LogoMarkdown} size={16} />,\n action: viewMarkdown,\n },\n ],\n [copyState, handleCopy, t, viewMarkdown],\n );\n\n const handleDropdownToggle = useCallback((open: boolean) => {\n if (!open && ignoreNextClose.current) {\n ignoreNextClose.current = false;\n return;\n }\n\n setDropdownOpen(open);\n }, []);\n\n if (mode === 'visible') {\n return (\n <React.Fragment>\n <ActionTooltip title={t('copy-as-markdown')}>\n <Button\n aria-label={t('copy-as-markdown')}\n className={`${controlClassName || ''} dc-markdown-control__copy_${copyState}`.trim()}\n size={controlSize}\n view=\"flat-secondary\"\n disabled={copyState === 'pending'}\n data-copy-state={copyState}\n onClick={handleCopy}\n >\n <Button.Icon>\n {copyState === 'success' ? <SquareCheck /> : <Copy />}\n </Button.Icon>\n </Button>\n </ActionTooltip>\n <ActionTooltip title={t('view-in-markdown')}>\n <Button\n aria-label={t('view-in-markdown')}\n className={controlClassName}\n size={controlSize}\n view=\"flat-secondary\"\n onClick={viewMarkdown}\n >\n <Button.Icon>\n <LogoMarkdown />\n </Button.Icon>\n </Button>\n </ActionTooltip>\n </React.Fragment>\n );\n }\n\n return (\n <DropdownMenu\n items={items}\n open={dropdownOpen}\n onOpenToggle={handleDropdownToggle}\n size={controlSize}\n switcherWrapperClassName={controlClassName}\n defaultSwitcherProps={{\n 'aria-label': t('markdown-actions'),\n view: 'flat-secondary',\n }}\n popupProps={{placement: ['bottom-end', 'top-end']}}\n />\n );\n};\n\nexport default MarkdownControl;\n"],
5
+ "mappings": ";AAGA,OAAO,SAAQ,aAAa,YAAY,WAAW,SAAS,QAAQ,gBAAe;AACnF,SAAQ,MAAM,cAAc,mBAAkB;AAC9C,SAAQ,eAAe,QAAQ,cAAc,YAAW;AAExD,SAAQ,sBAAqB;AAC7B,SAAQ,sBAAsB,oBAAmB;AACjD,SAAQ,6BAA4B;AAEpC,SAA6B,gBAAgB,gCAA+B;AAI5E,SAAQ,kBAAAA,uBAAqB;AAmGF,cAyBf,YAzBe;AArG3B,IAAM,uBAAuB;AAY7B,IAAM,kBAAkD,CAAC;AAAA,EACrD,OAAO;AAAA,EACP;AAAA,EACA;AACJ,MAAM;AACF,QAAM,EAAC,EAAC,IAAI,eAAe,iBAAiB;AAC5C,QAAM,YAAY,aAAa;AAC/B,QAAM,EAAC,kBAAkB,YAAW,IAAI,WAAW,qBAAqB;AACxE,QAAM,CAAC,WAAW,YAAY,IAAI,SAAoB,MAAM;AAC5D,QAAM,CAAC,cAAc,eAAe,IAAI,SAAS,KAAK;AACtD,QAAM,kBAAkB,OAAO,KAAK;AACpC,QAAM,mBAAmB,OAAkD,MAAS;AAEpF,QAAM,qBAAqB;AAAA,IACvB,CAAC,WAA2B;AACxB,UAAI,CAAC,WAAW;AACZ,eAAO,eAAe,OAAO,SAAS,MAAM,MAAM;AAAA,MACtD;AAEA,aAAO,yBAAyB,WAAW,OAAO,SAAS,MAAM,MAAM;AAAA,IAC3E;AAAA,IACA,CAAC,SAAS;AAAA,EACd;AAEA;AAAA,IACI,MAAM,MAAM;AACR,UAAI,iBAAiB,SAAS;AAC1B,qBAAa,iBAAiB,OAAO;AAAA,MACzC;AAAA,IACJ;AAAA,IACA,CAAC;AAAA,EACL;AAEA,QAAM,eAAe,YAAY,YAAY;AA1DjD;AA2DQ,QAAI,cAAc,WAAW;AACzB;AAAA,IACJ;AAEA,cAAU,MAAM,qBAAqB,2BAA2B;AAChE,QAAI,iBAAiB,SAAS;AAC1B,mBAAa,iBAAiB,OAAO;AACrC,uBAAiB,UAAU;AAAA,IAC/B;AACA,iBAAa,SAAS;AAEtB,QAAI;AACA,YAAM,WAAW,MAAM,MAAM,mBAAmB,MAAM,GAAG;AAAA,QACrD,aAAa;AAAA,QACb,SAAS,EAAC,QAAQ,gBAAe;AAAA,MACrC,CAAC;AAED,UAAI,CAAC,SAAS,MAAM,GAAC,cAAS,QAAQ,IAAI,cAAc,MAAnC,mBAAsC,SAAS,mBAAkB;AAClF,cAAM,IAAI,MAAM,4BAA4B,SAAS,MAAM,EAAE;AAAA,MACjE;AAEA,YAAM,UAAU,UAAU,UAAU,MAAM,SAAS,KAAK,CAAC;AACzD,mBAAa,SAAS;AAEtB,uBAAiB,UAAU,WAAW,MAAM;AACxC,yBAAiB,UAAU;AAC3B,qBAAa,MAAM;AAAA,MACvB,GAAG,oBAAoB;AAAA,IAC3B,SAAQ;AACJ,mBAAa,MAAM;AAAA,IACvB;AAAA,EACJ,GAAG,CAAC,WAAW,WAAW,kBAAkB,CAAC;AAE7C,QAAM,aAAa,YAAY,MAAM;AACjC,oBAAgB,UAAU,SAAS;AACnC,iBAAa;AAAA,EACjB,GAAG,CAAC,cAAc,IAAI,CAAC;AAEvB,QAAM,eAAe;AAAA,IACjB,CAAC,UAAU;AACP,gBAAU,MAAM,qBAAqB,2BAA2B;AAEhE,UAAI,iBAAiB,OAAO;AACxB,2CAAU;AAAA,MACd;AAEA,aAAO,KAAK,mBAAmB,MAAM,GAAG,UAAU,qBAAqB;AAAA,IAC3E;AAAA,IACA,CAAC,WAAW,SAAS,kBAAkB;AAAA,EAC3C;AAEA,QAAM,QAAQ;AAAA,IACV,MAAM;AAAA,MACF;AAAA,QACI,MAAM,EAAE,kBAAkB;AAAA,QAC1B,WAAW,oBAAC,QAAK,MAAM,cAAc,YAAY,cAAc,MAAM,MAAM,IAAI;AAAA,QAC/E,UAAU,cAAc;AAAA,QACxB,WAAW,6BAA6B,SAAS;AAAA,QACjD,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,QACI,MAAM,EAAE,kBAAkB;AAAA,QAC1B,WAAW,oBAAC,QAAK,MAAM,cAAc,MAAM,IAAI;AAAA,QAC/C,QAAQ;AAAA,MACZ;AAAA,IACJ;AAAA,IACA,CAAC,WAAW,YAAY,GAAG,YAAY;AAAA,EAC3C;AAEA,QAAM,uBAAuB,YAAY,CAAC,SAAkB;AACxD,QAAI,CAAC,QAAQ,gBAAgB,SAAS;AAClC,sBAAgB,UAAU;AAC1B;AAAA,IACJ;AAEA,oBAAgB,IAAI;AAAA,EACxB,GAAG,CAAC,CAAC;AAEL,MAAI,SAAS,WAAW;AACpB,WACI,qBAAC,MAAM,UAAN,EACG;AAAA,0BAAC,iBAAc,OAAO,EAAE,kBAAkB,GACtC;AAAA,QAAC;AAAA;AAAA,UACG,cAAY,EAAE,kBAAkB;AAAA,UAChC,WAAW,GAAG,oBAAoB,EAAE,8BAA8B,SAAS,GAAG,KAAK;AAAA,UACnF,MAAM;AAAA,UACN,MAAK;AAAA,UACL,UAAU,cAAc;AAAA,UACxB,mBAAiB;AAAA,UACjB,SAAS;AAAA,UAET,8BAAC,OAAO,MAAP,EACI,wBAAc,YAAY,oBAAC,eAAY,IAAK,oBAAC,QAAK,GACvD;AAAA;AAAA,MACJ,GACJ;AAAA,MACA,oBAAC,iBAAc,OAAO,EAAE,kBAAkB,GACtC;AAAA,QAAC;AAAA;AAAA,UACG,cAAY,EAAE,kBAAkB;AAAA,UAChC,WAAW;AAAA,UACX,MAAM;AAAA,UACN,MAAK;AAAA,UACL,SAAS;AAAA,UAET,8BAAC,OAAO,MAAP,EACG,8BAAC,gBAAa,GAClB;AAAA;AAAA,MACJ,GACJ;AAAA,OACJ;AAAA,EAER;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG;AAAA,MACA,MAAM;AAAA,MACN,cAAc;AAAA,MACd,MAAM;AAAA,MACN,0BAA0B;AAAA,MAC1B,sBAAsB;AAAA,QAClB,cAAc,EAAE,kBAAkB;AAAA,QAClC,MAAM;AAAA,MACV;AAAA,MACA,YAAY,EAAC,WAAW,CAAC,cAAc,SAAS,EAAC;AAAA;AAAA,EACrD;AAER;AAEA,IAAO,0BAAQ;",
6
+ "names": ["getMarkdownUrl"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../../../src/components/Controls/single-controls/SettingsControl/SettingsControl.scss", "../../../../../../src/components/Controls/single-controls/SettingsControl/%3Cinput css KbbMH-%3E", "../../../../../../src/styles/mixins.scss"],
3
+ "sources": ["../../../../../../src/components/Controls/single-controls/SettingsControl/SettingsControl.scss", "../../../../../../src/components/Controls/single-controls/SettingsControl/%3Cinput css PHj_59%3E", "../../../../../../src/styles/mixins.scss"],
4
4
  "sourcesContent": ["@use 'sass:map';\n@use '../../../../styles/mixins';\n@use '../../../../styles/variables';\n\n.dc-settings-control {\n &__text-size-control {\n display: flex;\n align-items: center;\n }\n\n &__text-size-button {\n &_s {\n @include mixins.text-size(body-1);\n }\n &_m {\n @include mixins.text-size(body-2);\n }\n &_l {\n @include mixins.text-size(body-3);\n }\n }\n\n &__text-size-button-icon {\n &_active {\n color: var(--g-color-base-brand);\n }\n }\n\n &__popup {\n width: 230px;\n @include mixins.text-size(body-1);\n }\n\n &__popup-tooltip-content {\n padding: 0;\n }\n\n &__list {\n padding: 4px 0;\n width: 230px;\n\n .g-list__item_active {\n background: transparent;\n }\n }\n\n &__list-icon {\n margin-right: 8px;\n }\n\n &__list-item {\n display: flex;\n padding: 12px;\n width: 100%;\n }\n\n &__list-item-description {\n color: var(--g-color-text-secondary);\n }\n\n &__list-item-control {\n display: flex;\n align-items: center;\n margin-left: auto;\n\n [dir='rtl'] & {\n margin: 0 auto 0 0;\n }\n\n [dir='rtl'] & > label {\n transform: rotate(180deg);\n }\n }\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md')) {\n &__popup {\n width: 100vw;\n }\n\n &__popup-tooltip {\n position: fixed;\n /* stylelint-disable-next-line declaration-no-important */\n inset: var(--header-height) 0px auto 0px !important;\n /* stylelint-disable-next-line declaration-no-important */\n transform: translate3d(0, 0, 0) !important;\n }\n\n &__popup-tooltip-content {\n max-width: 100%;\n }\n\n &__list {\n width: 100%;\n }\n }\n}\n", ".dc-settings-control__text-size-control {\n display: flex;\n align-items: center;\n}\n.dc-settings-control__text-size-button_s {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-settings-control__text-size-button_m {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n}\n.dc-settings-control__text-size-button_l {\n font-size: var(--g-text-body-3-font-size);\n line-height: var(--g-text-body-3-line-height);\n}\n.dc-settings-control__text-size-button-icon_active {\n color: var(--g-color-base-brand);\n}\n.dc-settings-control__popup {\n width: 230px;\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-settings-control__popup-tooltip-content {\n padding: 0;\n}\n.dc-settings-control__list {\n padding: 4px 0;\n width: 230px;\n}\n.dc-settings-control__list .g-list__item_active {\n background: transparent;\n}\n.dc-settings-control__list-icon {\n margin-right: 8px;\n}\n.dc-settings-control__list-item {\n display: flex;\n padding: 12px;\n width: 100%;\n}\n.dc-settings-control__list-item-description {\n color: var(--g-color-text-secondary);\n}\n.dc-settings-control__list-item-control {\n display: flex;\n align-items: center;\n margin-left: auto;\n}\n[dir=rtl] .dc-settings-control__list-item-control {\n margin: 0 auto 0 0;\n}\n[dir=rtl] .dc-settings-control__list-item-control > label {\n transform: rotate(180deg);\n}\n@media (max-width: 769px) {\n .dc-settings-control__popup {\n width: 100vw;\n }\n .dc-settings-control__popup-tooltip {\n position: fixed;\n /* stylelint-disable-next-line declaration-no-important */\n inset: var(--header-height) 0px auto 0px !important;\n /* stylelint-disable-next-line declaration-no-important */\n transform: translate3d(0, 0, 0) !important;\n }\n .dc-settings-control__popup-tooltip-content {\n max-width: 100%;\n }\n .dc-settings-control__list {\n width: 100%;\n }\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0NvbnRyb2xzL3NpbmdsZS1jb250cm9scy9TZXR0aW5nc0NvbnRyb2wiLCJzb3VyY2VzIjpbIlNldHRpbmdzQ29udHJvbC5zY3NzIiwiLi4vLi4vLi4vLi4vc3R5bGVzL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtJO0VBQ0k7RUFDQTs7QUFJQTtFQ1BKO0VBQ0E7O0FEU0k7RUNWSjtFQUNBOztBRFlJO0VDYko7RUFDQTs7QURrQkk7RUFDSTs7QUFJUjtFQUNJO0VDekJKO0VBQ0E7O0FENEJBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTs7QUFJUjtFQUNJO0lBQ0k7O0VBR0o7SUFDSTtBQUNBO0lBQ0E7QUFDQTtJQUNBOztFQUdKO0lBQ0k7O0VBR0o7SUFDSSIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4uLy4uLy4uLy4uL3N0eWxlcy9taXhpbnMnO1xuQHVzZSAnLi4vLi4vLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5cbi5kYy1zZXR0aW5ncy1jb250cm9sIHtcbiAgICAmX190ZXh0LXNpemUtY29udHJvbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJl9fdGV4dC1zaXplLWJ1dHRvbiB7XG4gICAgICAgICZfcyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMudGV4dC1zaXplKGJvZHktMSk7XG4gICAgICAgIH1cbiAgICAgICAgJl9tIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1peGlucy50ZXh0LXNpemUoYm9keS0yKTtcbiAgICAgICAgfVxuICAgICAgICAmX2wge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShib2R5LTMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGV4dC1zaXplLWJ1dHRvbi1pY29uIHtcbiAgICAgICAgJl9hY3RpdmUge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItYmFzZS1icmFuZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wb3B1cCB7XG4gICAgICAgIHdpZHRoOiAyMzBweDtcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShib2R5LTEpO1xuICAgIH1cblxuICAgICZfX3BvcHVwLXRvb2x0aXAtY29udGVudCB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgJl9fbGlzdCB7XG4gICAgICAgIHBhZGRpbmc6IDRweCAwO1xuICAgICAgICB3aWR0aDogMjMwcHg7XG5cbiAgICAgICAgLmctbGlzdF9faXRlbV9hY3RpdmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0LWljb24ge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAmX19saXN0LWl0ZW0tZGVzY3JpcHRpb24ge1xuICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgfVxuXG4gICAgJl9fbGlzdC1pdGVtLWNvbnRyb2wge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcblxuICAgICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvIDAgMDtcbiAgICAgICAgfVxuXG4gICAgICAgIFtkaXI9J3J0bCddICYgPiBsYWJlbCB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykpIHtcbiAgICAgICAgJl9fcG9wdXAge1xuICAgICAgICAgICAgd2lkdGg6IDEwMHZ3O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fcG9wdXAtdG9vbHRpcCB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgICAgICAgICBpbnNldDogdmFyKC0taGVhZGVyLWhlaWdodCkgMHB4IGF1dG8gMHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICAgICAvKiBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50ICovXG4gICAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX19wb3B1cC10b29sdGlwLWNvbnRlbnQge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJl9fbGlzdCB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3ZhcmlhYmxlcyc7XG5cbkBtaXhpbiB0ZXh0LXNpemUoJG5hbWUpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtI3skbmFtZX0tbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSgpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5AbWl4aW4gZml4QW5jaG9yUG9zaXRpb24oJG9mZnNldDogMHB4KSB7XG4gICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCN7JG9mZnNldH0gLSB2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgQGluY2x1ZGUgaXNsYW5kcy1mb2N1cygpO1xuXG4gICAgQGluY2x1ZGUgZm9jdXNhYmxlKDAsICdib3gtc2hhZG93Jyk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rLWhvdmVyKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzIoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzMoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMik7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0xKTtcbn1cblxuQG1peGluIGhlYWRpbmc1KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGhlYWRpbmc2KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGRlc2t0b3AtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBncmF2aXR5LXVpLXRleHQtc2l6ZXMoJGRlbHRhKSB7XG4gICAgLS1nLXRleHQtYm9keS0xLWZvbnQtc2l6ZTogI3sxM3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTEtbGluZS1oZWlnaHQ6ICN7MThweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQ6ICN7MjBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWZvbnQtc2l6ZTogI3sxN3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTMtbGluZS1oZWlnaHQ6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS1zaG9ydC1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY2FwdGlvbi0xLWZvbnQtc2l6ZTogI3s5cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMi1mb250LXNpemU6ICN7MTFweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplOiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZTogI3syNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTItZm9udC1zaXplOiAjezE1cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0zLWZvbnQtc2l6ZTogI3sxN3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTEtZm9udC1zaXplOiAjezI4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMi1mb250LXNpemU6ICN7MzJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0zLWZvbnQtc2l6ZTogI3s0MHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTQtZm9udC1zaXplOiAjezQ4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMS1mb250LXNpemU6ICN7MTJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTMtZm9udC1zaXplOiAjezE2cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTItZm9udC1zaXplOiAjezE0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTMtZm9udC1zaXplOiAjezE2cHggKyAkZGVsdGF9O1xuXG4gICAgLS15Zm0tZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1saW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodCk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgyOiB2YXIoLS1nLXRleHQtaGVhZGVyLTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDM6IHZhcigtLWctdGV4dC1oZWFkZXItMS1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNDogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0zLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg1OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDY6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMS1mb250LXNpemUpO1xufVxuIl19 */", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n"],
5
5
  "mappings": ";AAKI,CAAA;AACI,WAAA;AACA,eAAA;ACJR;ADQQ,CAAA;AEPJ,aAAA,IAAA;AACA,eAAA,IAAA;ADEJ;ADOQ,CAAA;AEVJ,aAAA,IAAA;AACA,eAAA,IAAA;ADMJ;ADMQ,CAAA;AEbJ,aAAA,IAAA;AACA,eAAA,IAAA;ADUJ;ADQQ,CAAA;AACI,SAAA,IAAA;ACNZ;ADUI,CAAA;AACI,SAAA;AEzBJ,aAAA,IAAA;AACA,eAAA,IAAA;ADkBJ;ADUI,CAAA;AACI,WAAA;ACRR;ADWI,CAAA;AACI,WAAA,IAAA;AACA,SAAA;ACTR;ADWQ,CAJJ,0BAII,CAAA;AACI,cAAA;ACTZ;ADaI,CAAA;AACI,gBAAA;ACXR;ADcI,CAAA;AACI,WAAA;AACA,WAAA;AACA,SAAA;ACZR;ADeI,CAAA;AACI,SAAA,IAAA;ACbR;ADgBI,CAAA;AACI,WAAA;AACA,eAAA;AACA,eAAA;ACdR;ADgBQ,CAAA,SAAA,CALJ;AAMQ,UAAA,EAAA,KAAA,EAAA;ACdZ;ADiBQ,CAAA,SAAA,CATJ,uCASI,EAAA;AACI,aAAA,OAAA;ACfZ;ADmBI,QAAA,WAAA;AACI,GA/CJ;AAgDQ,WAAA;ACjBV;ADoBM,GAAA;AACI,cAAA;AAEA,SAAA,IAAA;AAAA,WAAA;AAAA,YAAA;AAAA,UAAA;AAEA,eAAA,YAAA,CAAA,EAAA,CAAA,EAAA;AClBV;ADqBM,GAtDJ;AAuDQ,eAAA;ACnBV;ADsBM,GAtDJ;AAuDQ,WAAA;ACpBV;AACF;",
6
6
  "names": []
@@ -0,0 +1,4 @@
1
+ export type MarkdownAction = 'copy' | 'view';
2
+ export declare function setMarkdownAction(url: URL, action: MarkdownAction): string;
3
+ export declare function resolveMarkdownActionUrl(sourceUrl: string, baseUrl: string, action: MarkdownAction): string;
4
+ export declare function getMarkdownUrl(currentUrl: string, action?: MarkdownAction): string;
@@ -0,0 +1,35 @@
1
+ // src/components/Controls/single-controls/markdown-url.ts
2
+ var COPY_ACTION_QUERY_PARAM = "__mdAction";
3
+ function setMarkdownAction(url, action) {
4
+ url.hash = "";
5
+ if (action === "copy") {
6
+ url.searchParams.set(COPY_ACTION_QUERY_PARAM, action);
7
+ } else {
8
+ url.searchParams.delete(COPY_ACTION_QUERY_PARAM);
9
+ }
10
+ return url.toString();
11
+ }
12
+ function resolveMarkdownActionUrl(sourceUrl, baseUrl, action) {
13
+ const markdownUrl = new URL(sourceUrl, baseUrl);
14
+ const resolvedUrl = setMarkdownAction(markdownUrl, action);
15
+ if (/^[a-z][a-z\d+.-]*:/iu.test(sourceUrl)) {
16
+ return resolvedUrl;
17
+ }
18
+ const [relativePath] = sourceUrl.split(/[?#]/u, 1);
19
+ return `${relativePath}${markdownUrl.search}`;
20
+ }
21
+ function getMarkdownUrl(currentUrl, action = "view") {
22
+ const markdownUrl = new URL(currentUrl);
23
+ if (markdownUrl.pathname.endsWith("/")) {
24
+ markdownUrl.pathname += "index.md";
25
+ } else {
26
+ markdownUrl.pathname = markdownUrl.pathname.replace(/\.(?:html?|md)$/i, "") + ".md";
27
+ }
28
+ return setMarkdownAction(markdownUrl, action);
29
+ }
30
+ export {
31
+ getMarkdownUrl,
32
+ resolveMarkdownActionUrl,
33
+ setMarkdownAction
34
+ };
35
+ //# sourceMappingURL=markdown-url.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/Controls/single-controls/markdown-url.ts"],
4
+ "sourcesContent": ["export type MarkdownAction = 'copy' | 'view';\n\nconst COPY_ACTION_QUERY_PARAM = '__mdAction';\n\nexport function setMarkdownAction(url: URL, action: MarkdownAction) {\n url.hash = '';\n\n if (action === 'copy') {\n url.searchParams.set(COPY_ACTION_QUERY_PARAM, action);\n } else {\n url.searchParams.delete(COPY_ACTION_QUERY_PARAM);\n }\n\n return url.toString();\n}\n\nexport function resolveMarkdownActionUrl(\n sourceUrl: string,\n baseUrl: string,\n action: MarkdownAction,\n) {\n const markdownUrl = new URL(sourceUrl, baseUrl);\n const resolvedUrl = setMarkdownAction(markdownUrl, action);\n\n if (/^[a-z][a-z\\d+.-]*:/iu.test(sourceUrl)) {\n return resolvedUrl;\n }\n\n const [relativePath] = sourceUrl.split(/[?#]/u, 1);\n\n return `${relativePath}${markdownUrl.search}`;\n}\n\nexport function getMarkdownUrl(currentUrl: string, action: MarkdownAction = 'view') {\n const markdownUrl = new URL(currentUrl);\n\n if (markdownUrl.pathname.endsWith('/')) {\n markdownUrl.pathname += 'index.md';\n } else {\n markdownUrl.pathname = markdownUrl.pathname.replace(/\\.(?:html?|md)$/i, '') + '.md';\n }\n\n return setMarkdownAction(markdownUrl, action);\n}\n"],
5
+ "mappings": ";AAEA,IAAM,0BAA0B;AAEzB,SAAS,kBAAkB,KAAU,QAAwB;AAChE,MAAI,OAAO;AAEX,MAAI,WAAW,QAAQ;AACnB,QAAI,aAAa,IAAI,yBAAyB,MAAM;AAAA,EACxD,OAAO;AACH,QAAI,aAAa,OAAO,uBAAuB;AAAA,EACnD;AAEA,SAAO,IAAI,SAAS;AACxB;AAEO,SAAS,yBACZ,WACA,SACA,QACF;AACE,QAAM,cAAc,IAAI,IAAI,WAAW,OAAO;AAC9C,QAAM,cAAc,kBAAkB,aAAa,MAAM;AAEzD,MAAI,uBAAuB,KAAK,SAAS,GAAG;AACxC,WAAO;AAAA,EACX;AAEA,QAAM,CAAC,YAAY,IAAI,UAAU,MAAM,SAAS,CAAC;AAEjD,SAAO,GAAG,YAAY,GAAG,YAAY,MAAM;AAC/C;AAEO,SAAS,eAAe,YAAoB,SAAyB,QAAQ;AAChF,QAAM,cAAc,IAAI,IAAI,UAAU;AAEtC,MAAI,YAAY,SAAS,SAAS,GAAG,GAAG;AACpC,gBAAY,YAAY;AAAA,EAC5B,OAAO;AACH,gBAAY,WAAW,YAAY,SAAS,QAAQ,oBAAoB,EAAE,IAAI;AAAA,EAClF;AAEA,SAAO,kBAAkB,aAAa,MAAM;AAChD;",
6
+ "names": []
7
+ }