@diplodoc/components 5.12.2 → 5.13.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 (178) hide show
  1. package/README.md +11 -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 +1 -0
  9. package/build/cjs/components/Controls/Controls.js +10 -2
  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/SettingsControl/SettingsControl.css.map +1 -1
  14. package/build/cjs/components/DocLayout/DocLayout.css.map +1 -1
  15. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
  16. package/build/cjs/components/DocPage/DocPage.css.map +1 -1
  17. package/build/cjs/components/DocPage/DocPage.d.ts +6 -1
  18. package/build/cjs/components/DocPage/DocPage.js +16 -7
  19. package/build/cjs/components/DocPage/DocPage.js.map +2 -2
  20. package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
  21. package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
  22. package/build/cjs/components/Feedback/Feedback.css +6 -0
  23. package/build/cjs/components/Feedback/Feedback.css.map +3 -3
  24. package/build/cjs/components/Feedback/Feedback.d.ts +5 -0
  25. package/build/cjs/components/Feedback/Feedback.js +70 -5
  26. package/build/cjs/components/Feedback/Feedback.js.map +3 -3
  27. package/build/cjs/components/Feedback/controls/FeedbackControl.d.ts +8 -0
  28. package/build/cjs/components/Feedback/controls/FeedbackControl.js +78 -0
  29. package/build/cjs/components/Feedback/controls/FeedbackControl.js.map +7 -0
  30. package/build/cjs/components/Feedback/controls/{DislikeVariantsPopup.d.ts → FeedbackFormPopup.d.ts} +6 -3
  31. package/build/cjs/components/Feedback/controls/{DislikeVariantsPopup.js → FeedbackFormPopup.js} +27 -18
  32. package/build/cjs/components/Feedback/controls/FeedbackFormPopup.js.map +7 -0
  33. package/build/cjs/components/Gallery/Gallery.css.map +1 -1
  34. package/build/cjs/components/Mark/Mark.css.map +1 -1
  35. package/build/cjs/components/MiniToc/MiniToc.css.map +1 -1
  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/NeuroExpertModal/NeuroExpertModal.js +7 -1
  41. package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.js.map +2 -2
  42. package/build/cjs/components/Notification/Notification.css.map +1 -1
  43. package/build/cjs/components/Paginator/Paginator.css.map +1 -1
  44. package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
  45. package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
  46. package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
  47. package/build/cjs/components/SearchSuggest/index.css.map +1 -1
  48. package/build/cjs/components/ShareButton/ShareButton.css.map +1 -1
  49. package/build/cjs/components/SubNavigation/SubNavigation.css.map +1 -1
  50. package/build/cjs/components/Subscribe/Subscribe.css.map +1 -1
  51. package/build/cjs/components/Toc/Toc.css.map +1 -1
  52. package/build/cjs/components/TocItem/TocItem.css.map +1 -1
  53. package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
  54. package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
  55. package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
  56. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  57. package/build/cjs/components/Widgets/Widgets.css.map +1 -1
  58. package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  59. package/build/cjs/components/navigation/DropdownContent/Column/Column.css.map +1 -1
  60. package/build/cjs/components/navigation/DropdownContent/DropdownContent.css.map +1 -1
  61. package/build/cjs/components/navigation/DropdownContent/Section/Section.css.map +1 -1
  62. package/build/cjs/components/navigation/Label/Label.css.map +1 -1
  63. package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  64. package/build/cjs/components/navigation/NavigationDropdown/NavigationDropdown.css.map +1 -1
  65. package/build/cjs/components/navigation/Sidebar/Sidebar.css.map +1 -1
  66. package/build/cjs/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  67. package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  68. package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  69. package/build/cjs/contexts/InterfaceContext.d.ts +13 -2
  70. package/build/cjs/contexts/InterfaceContext.js.map +2 -2
  71. package/build/cjs/i18n/index.d.ts +48 -0
  72. package/build/cjs/i18n/index.js +31 -16
  73. package/build/cjs/i18n/index.js.map +2 -2
  74. package/build/cjs/models/index.d.ts +3 -1
  75. package/build/cjs/models/index.js +1 -0
  76. package/build/cjs/models/index.js.map +2 -2
  77. package/build/cjs/shared/libs/analytics/constant.d.ts +2 -0
  78. package/build/cjs/shared/libs/analytics/constant.js +2 -0
  79. package/build/cjs/shared/libs/analytics/constant.js.map +2 -2
  80. package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
  81. package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  82. package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  83. package/build/esm/components/Contributors/Contributors.css.map +1 -1
  84. package/build/esm/components/Control/Control.css.map +1 -1
  85. package/build/esm/components/Controls/Controls.css.map +1 -1
  86. package/build/esm/components/Controls/Controls.d.ts +1 -0
  87. package/build/esm/components/Controls/Controls.js +10 -2
  88. package/build/esm/components/Controls/Controls.js.map +2 -2
  89. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  90. package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  91. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  92. package/build/esm/components/DocLayout/DocLayout.css.map +1 -1
  93. package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
  94. package/build/esm/components/DocPage/DocPage.css.map +1 -1
  95. package/build/esm/components/DocPage/DocPage.d.ts +6 -1
  96. package/build/esm/components/DocPage/DocPage.js +17 -8
  97. package/build/esm/components/DocPage/DocPage.js.map +2 -2
  98. package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
  99. package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
  100. package/build/esm/components/Feedback/Feedback.css +6 -0
  101. package/build/esm/components/Feedback/Feedback.css.map +3 -3
  102. package/build/esm/components/Feedback/Feedback.d.ts +5 -0
  103. package/build/esm/components/Feedback/Feedback.js +71 -6
  104. package/build/esm/components/Feedback/Feedback.js.map +2 -2
  105. package/build/esm/components/Feedback/controls/FeedbackControl.d.ts +8 -0
  106. package/build/esm/components/Feedback/controls/FeedbackControl.js +47 -0
  107. package/build/esm/components/Feedback/controls/FeedbackControl.js.map +7 -0
  108. package/build/esm/components/Feedback/controls/{DislikeVariantsPopup.d.ts → FeedbackFormPopup.d.ts} +6 -3
  109. package/build/esm/components/Feedback/controls/{DislikeVariantsPopup.js → FeedbackFormPopup.js} +24 -15
  110. package/build/esm/components/Feedback/controls/FeedbackFormPopup.js.map +7 -0
  111. package/build/esm/components/Gallery/Gallery.css.map +1 -1
  112. package/build/esm/components/Mark/Mark.css.map +1 -1
  113. package/build/esm/components/MiniToc/MiniToc.css.map +1 -1
  114. package/build/esm/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
  115. package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
  116. package/build/esm/components/MobileControls/MobileControls.css.map +1 -1
  117. package/build/esm/components/NeuroExpertModal/NeuroExpertModal.css.map +1 -1
  118. package/build/esm/components/NeuroExpertModal/NeuroExpertModal.js +7 -1
  119. package/build/esm/components/NeuroExpertModal/NeuroExpertModal.js.map +2 -2
  120. package/build/esm/components/Notification/Notification.css.map +1 -1
  121. package/build/esm/components/Paginator/Paginator.css.map +1 -1
  122. package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
  123. package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
  124. package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
  125. package/build/esm/components/SearchSuggest/index.css.map +1 -1
  126. package/build/esm/components/ShareButton/ShareButton.css.map +1 -1
  127. package/build/esm/components/SubNavigation/SubNavigation.css.map +1 -1
  128. package/build/esm/components/Subscribe/Subscribe.css.map +1 -1
  129. package/build/esm/components/Toc/Toc.css.map +1 -1
  130. package/build/esm/components/TocItem/TocItem.css.map +1 -1
  131. package/build/esm/components/TocLable/TocLabel.css.map +1 -1
  132. package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
  133. package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
  134. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  135. package/build/esm/components/Widgets/Widgets.css.map +1 -1
  136. package/build/esm/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  137. package/build/esm/components/navigation/DropdownContent/Column/Column.css.map +1 -1
  138. package/build/esm/components/navigation/DropdownContent/DropdownContent.css.map +1 -1
  139. package/build/esm/components/navigation/DropdownContent/Section/Section.css.map +1 -1
  140. package/build/esm/components/navigation/Label/Label.css.map +1 -1
  141. package/build/esm/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  142. package/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.css.map +1 -1
  143. package/build/esm/components/navigation/Sidebar/Sidebar.css.map +1 -1
  144. package/build/esm/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  145. package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  146. package/build/esm/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  147. package/build/esm/contexts/InterfaceContext.d.ts +13 -2
  148. package/build/esm/contexts/InterfaceContext.js.map +2 -2
  149. package/build/esm/i18n/index.d.ts +48 -0
  150. package/build/esm/i18n/index.js +31 -16
  151. package/build/esm/i18n/index.js.map +2 -2
  152. package/build/esm/models/index.d.ts +3 -1
  153. package/build/esm/models/index.js +1 -0
  154. package/build/esm/models/index.js.map +2 -2
  155. package/build/esm/shared/libs/analytics/constant.d.ts +2 -0
  156. package/build/esm/shared/libs/analytics/constant.js +2 -0
  157. package/build/esm/shared/libs/analytics/constant.js.map +2 -2
  158. package/build/index.css.map +1 -1
  159. package/build/themes/common/index.css.map +1 -1
  160. package/package.json +4 -4
  161. package/src/i18n/ar.json +4 -1
  162. package/src/i18n/bg.json +4 -1
  163. package/src/i18n/cs.json +4 -1
  164. package/src/i18n/el.json +4 -1
  165. package/src/i18n/en.json +4 -1
  166. package/src/i18n/es.json +4 -1
  167. package/src/i18n/et.json +4 -1
  168. package/src/i18n/fr.json +4 -1
  169. package/src/i18n/he.json +4 -1
  170. package/src/i18n/kk.json +4 -1
  171. package/src/i18n/pt.json +4 -1
  172. package/src/i18n/ru.json +4 -1
  173. package/src/i18n/tr.json +4 -1
  174. package/src/i18n/uz.json +4 -1
  175. package/src/i18n/zh-tw.json +4 -1
  176. package/src/i18n/zh.json +4 -1
  177. package/build/cjs/components/Feedback/controls/DislikeVariantsPopup.js.map +0 -7
  178. package/build/esm/components/Feedback/controls/DislikeVariantsPopup.js.map +0 -7
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Feedback/Feedback.scss", "../../../../src/components/Feedback/%3Cinput css RCH60J%3E", "../../../../src/styles/variables.scss", "../../../../src/styles/mixins.scss"],
4
- "sourcesContent": ["@use 'sass:map';\n@use '../../styles/mixins';\n@use '../../styles/variables';\n\n$popupWidth: 320px;\n\n@mixin tooltip-in-center {\n // use sm to cover a larger number of smartphones\n @media screen and (max-width: map.get(variables.$screenBreakpoints, 'sm')) {\n & {\n // stylelint-disable declaration-no-important\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n }\n}\n\n.dc-feedback {\n &__container {\n &_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n }\n }\n\n &__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n\n width: 100%;\n padding: 26px;\n\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n\n &_view_wide {\n display: flex;\n align-items: center;\n }\n }\n\n &__success-popup {\n left: -20px;\n\n padding: variables.$popupPadding 50px variables.$popupPadding variables.$popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__variants-popup {\n padding: variables.$popupPadding;\n width: $popupWidth;\n left: -20px;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__popup-title {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n padding-bottom: 8px;\n }\n\n &__popup-text {\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n }\n\n &__variants {\n display: flex;\n flex-direction: column;\n padding: 8px 0;\n }\n\n &__variant {\n margin-bottom: 8px;\n white-space: normal;\n }\n\n &__variant:last-of-type {\n margin-bottom: 0;\n }\n\n &__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n }\n\n &__variants-action {\n margin-left: 10px;\n }\n\n &__textarea {\n padding: 8px 0;\n }\n\n &__title {\n &_view_wide {\n @include mixins.text-size(subheader-3);\n font-weight: 400;\n }\n }\n\n &__controls {\n display: flex;\n gap: 20px;\n\n &_view_wide {\n display: flex;\n }\n }\n\n &__control {\n &:nth-child(1),\n &:nth-child(2) {\n display: flex;\n align-items: center;\n\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n }\n\n &_view_wide {\n margin-right: 24px;\n\n &:last-of-type {\n margin-right: 0;\n }\n }\n\n &_view_regular {\n margin-right: 4px;\n\n &:last-of-type {\n margin-right: 0;\n }\n }\n }\n}\n", ".dc-feedback__container_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n}\n.dc-feedback__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n width: 100%;\n padding: 26px;\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n}\n.dc-feedback__container-col_view_wide {\n display: flex;\n align-items: center;\n}\n.dc-feedback__success-popup {\n left: -20px;\n padding: 16px 50px 16px 16px;\n width: 320px;\n}\n@media screen and (max-width: 577px) {\n .dc-feedback__success-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-feedback__variants-popup {\n padding: 16px;\n width: 320px;\n left: -20px;\n}\n@media screen and (max-width: 577px) {\n .dc-feedback__variants-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-feedback__popup-title {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n padding-bottom: 8px;\n}\n.dc-feedback__popup-text {\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n}\n.dc-feedback__variants {\n display: flex;\n flex-direction: column;\n padding: 8px 0;\n}\n.dc-feedback__variant {\n margin-bottom: 8px;\n white-space: normal;\n}\n.dc-feedback__variant:last-of-type {\n margin-bottom: 0;\n}\n.dc-feedback__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n}\n.dc-feedback__variants-action {\n margin-left: 10px;\n}\n.dc-feedback__textarea {\n padding: 8px 0;\n}\n.dc-feedback__title_view_wide {\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n font-weight: 400;\n}\n.dc-feedback__controls {\n display: flex;\n gap: 20px;\n}\n.dc-feedback__controls_view_wide {\n display: flex;\n}\n.dc-feedback__control:nth-child(1), .dc-feedback__control:nth-child(2) {\n display: flex;\n align-items: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n}\n.dc-feedback__control_view_wide {\n margin-right: 24px;\n}\n.dc-feedback__control_view_wide:last-of-type {\n margin-right: 0;\n}\n.dc-feedback__control_view_regular {\n margin-right: 4px;\n}\n.dc-feedback__control_view_regular:last-of-type {\n margin-right: 0;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0ZlZWRiYWNrIiwic291cmNlcyI6WyJGZWVkYmFjay5zY3NzIiwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vc3R5bGVzL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CUTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBRUE7RUFDQSxPQS9DSzs7QUFJVDtFQUNJO0lBRUk7SUFDQTtJQUNBOzs7QUE2Q1I7RUFDSSxTQ2pETztFRGtEUCxPQXhESztFQXlETDs7QUFyREo7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBdURSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSUE7RUV6R0o7RUFDQTtFRjBHUTs7QUFJUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFLSjtFQUVJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7O0FBRUE7RUFDSSIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4uLy4uL3N0eWxlcy9taXhpbnMnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5cbiRwb3B1cFdpZHRoOiAzMjBweDtcblxuQG1peGluIHRvb2x0aXAtaW4tY2VudGVyIHtcbiAgICAvLyB1c2Ugc20gdG8gY292ZXIgYSBsYXJnZXIgbnVtYmVyIG9mIHNtYXJ0cGhvbmVzXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICAmIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuICAgICAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRjLWZlZWRiYWNrIHtcbiAgICAmX19jb250YWluZXIge1xuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRhaW5lci1jb2wge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAyMHB4O1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAyNnB4O1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1wb3B1cCB7XG4gICAgICAgIGxlZnQ6IC0yMHB4O1xuXG4gICAgICAgIHBhZGRpbmc6IHZhcmlhYmxlcy4kcG9wdXBQYWRkaW5nIDUwcHggdmFyaWFibGVzLiRwb3B1cFBhZGRpbmcgdmFyaWFibGVzLiRwb3B1cFBhZGRpbmc7XG4gICAgICAgIHdpZHRoOiAkcG9wdXBXaWR0aDtcblxuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b29sdGlwLWluLWNlbnRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMtcG9wdXAge1xuICAgICAgICBwYWRkaW5nOiB2YXJpYWJsZXMuJHBvcHVwUGFkZGluZztcbiAgICAgICAgd2lkdGg6ICRwb3B1cFdpZHRoO1xuICAgICAgICBsZWZ0OiAtMjBweDtcblxuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b29sdGlwLWluLWNlbnRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcG9wdXAtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTItZm9udC1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIH1cblxuICAgICZfX3BvcHVwLXRleHQge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LXNob3J0LWZvbnQtc2l6ZSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS1zaG9ydC1saW5lLWhlaWdodCk7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnQ6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1hY3Rpb25zIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1hY3Rpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmX190ZXh0YXJlYSB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShzdWJoZWFkZXItMyk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udHJvbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDIwcHg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICAmOm50aC1jaGlsZCgxKSxcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjRweDtcblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld19yZWd1bGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gU2l6ZXNcbiRoZWFkZXJIZWlnaHQ6IDBweDtcbiRzdWJIZWFkZXJIZWlnaHQ6IDQwcHg7XG4kc3ViTmF2aWdhdGlvbkhlaWdodDogNTJweDtcbiRub3JtYWxPZmZzZXQ6IDIwcHg7XG4kbWluaVRvY09mZnNldDogNTZweDtcbiRibG9ja01hcmdpbkJvdHRvbUxhcmdlOiAyMHB4O1xuJGJsb2NrTWFyZ2luQm90dG9tTWVkaXVtOiAxNXB4O1xuJGhlYWRlck1hcmdpblRvcExhcmdlOiA0MHB4O1xuJGhlYWRlck1hcmdpblRvcE1lZGl1bTogMzJweDtcbiRwb3B1cFBhZGRpbmc6IDE2cHg7XG4kY2VudGVyQmxvY2tNYXhXaWR0aDogNzM2cHg7XG5cbi8vIE5hdmlnYXRpb25cbiR0b01haW5NZW51VmVydGljYWxQYWRkaW5nOiA0cHg7XG4kdG9NYWluTWVudUhvcml6b250YWxQYWRkaW5nOiAxMnB4O1xuJHRvTWFpbk1lbnVIZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tZGMtc3VibmF2aWdhdGlvbi1oZWlnaHQsICRzdWJOYXZpZ2F0aW9uSGVpZ2h0KSAtICN7JHRvTWFpbk1lbnVWZXJ0aWNhbFBhZGRpbmd9IC1cbiAgICAgICAgI3skdG9NYWluTWVudVZlcnRpY2FsUGFkZGluZ31cbik7XG5cbi8vIE1pbmlUb2NcbiRtaW5pVG9jVmVydGljYWxQYWRkaW5nOiAxNnB4O1xuJG1pbmlUb2NUaXRsZUhlaWdodDogMjBweDsgLy8gbGluZS1oZWlnaHQgYm9keS0yXG4kbWluaVRvY1RpdGxlTWFyZ2luOiAxMnB4O1xuJG1vYmlsZU1pbmlUb2NPZmZzZXQ6IDIgKiAkbWluaVRvY1ZlcnRpY2FsUGFkZGluZyArICRtaW5pVG9jVGl0bGVIZWlnaHQgKyAkbWluaVRvY1RpdGxlTWFyZ2luO1xuXG4vLyBNb2JpbGVDb250cm9sc1xuJG1vYmlsZUNvbnRyb2xzSGVpZ2h0OiA0NHB4O1xuJG1vYmlsZUNvbnRyb2xzVG9wUGFkZGluZzogNHB4O1xuJG1vYmlsZUNvbnRyb2xzQm90dG9tUGFkZGluZzogMzRweDtcblxuJHNjcmVlbkJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzJzogMzc1cHgsXG4gICAgJ3NtJzogNTc3cHgsXG4gICAgJ21kJzogNzY5cHgsXG4gICAgJ2xnJzogMTA4MXB4LFxuICAgICd4bCc6IDExODVweCxcbik7XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICd2YXJpYWJsZXMnO1xuXG5AbWl4aW4gdGV4dC1zaXplKCRuYW1lKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtI3skbmFtZX0tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUoKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1peGluIGZpeEFuY2hvclBvc2l0aW9uKCRvZmZzZXQ6IDBweCkge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbn1cblxuQG1peGluIHJlc2V0LWxpbmstc3R5bGUoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaXNsYW5kcy1mb2N1cygpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLnV0aWxpdHlmb2N1cyAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICNmZmRiNGQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXNhYmxlKCRvZmZzZXQ6IDAsICRtb2RlOiAnb3V0bGluZScpIHtcbiAgICBAaWYgJG1vZGUgPT0gJ291dGxpbmUnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRtb2RlID09ICdib3gtc2hhZG93JyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGluaygpIHtcbiAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgwLCAnYm94LXNoYWRvdycpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTMpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0xKTtcbn1cblxuQG1peGluIGhlYWRpbmczKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xufVxuXG5AbWl4aW4gaGVhZGluZzQoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNigpIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBjb250cmlidXRvcnMtdGV4dCgpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0ZXh0LWJvZHktMSgpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LWZvbnQtd2VpZ2h0KTtcbn1cblxuQG1peGluIGRlc2t0b3Atb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZ3Jhdml0eS11aS10ZXh0LXNpemVzKCRkZWx0YSkge1xuICAgIC0tZy10ZXh0LWJvZHktMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0OiAjezE4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMi1mb250LXNpemU6ICN7MTVweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWxpbmUtaGVpZ2h0OiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0OiAjezI0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMS1mb250LXNpemU6ICN7OXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jYXB0aW9uLTItZm9udC1zaXplOiAjezExcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0xLWZvbnQtc2l6ZTogI3syMHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1oZWFkZXItMi1mb250LXNpemU6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0xLWZvbnQtc2l6ZTogI3syOHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTItZm9udC1zaXplOiAjezMycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMy1mb250LXNpemU6ICN7NDBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS00LWZvbnQtc2l6ZTogI3s0OHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMi1mb250LXNpemU6ICN7MTRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0xLWZvbnQtc2l6ZTogI3sxMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcblxuICAgIC0teWZtLWZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oMjogdmFyKC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgzOiB2YXIoLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDQ6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNTogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg2OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplKTtcbn1cbiJdfQ== */", "// Sizes\n$headerHeight: 0px;\n$subHeaderHeight: 40px;\n$subNavigationHeight: 52px;\n$normalOffset: 20px;\n$miniTocOffset: 56px;\n$blockMarginBottomLarge: 20px;\n$blockMarginBottomMedium: 15px;\n$headerMarginTopLarge: 40px;\n$headerMarginTopMedium: 32px;\n$popupPadding: 16px;\n$centerBlockMaxWidth: 736px;\n\n// Navigation\n$toMainMenuVerticalPadding: 4px;\n$toMainMenuHorizontalPadding: 12px;\n$toMainMenuHeight: calc(\n var(--dc-subnavigation-height, $subNavigationHeight) - #{$toMainMenuVerticalPadding} -\n #{$toMainMenuVerticalPadding}\n);\n\n// MiniToc\n$miniTocVerticalPadding: 16px;\n$miniTocTitleHeight: 20px; // line-height body-2\n$miniTocTitleMargin: 12px;\n$mobileMiniTocOffset: 2 * $miniTocVerticalPadding + $miniTocTitleHeight + $miniTocTitleMargin;\n\n// MobileControls\n$mobileControlsHeight: 44px;\n$mobileControlsTopPadding: 4px;\n$mobileControlsBottomPadding: 34px;\n\n$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\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"],
5
- "mappings": ";AAoBQ,CAAA;AACI,WAAA;AACA,eAAA;AACA,kBAAA;AACA,SAAA;ACnBZ;ADuBI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,eAAA;AACA,kBAAA;AACA,OAAA;AAEA,SAAA;AACA,WAAA;AAEA,UAAA,IAAA,MAAA,IAAA;AACA,iBAAA;ACvBR;ADyBQ,CAAA;AACI,WAAA;AACA,eAAA;ACvBZ;AD2BI,CAAA;AACI,QAAA;AAEA,WAAA,KAAA,KAAA,KAAA;AACA,SAAA;AC1BR;ADjBI,OAAA,YAAA,WAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;ACkBV;AACF;AD0BI,CAAA;AACI,WAAA;AACA,SAAA;AACA,QAAA;ACxBR;AD7BI,OAAA,YAAA,WAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;AC8BV;AACF;ADwBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,kBAAA;ACtBR;ADyBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;ACvBR;AD0BI,CAAA;AACI,WAAA;AACA,kBAAA;AACA,WAAA,IAAA;ACxBR;AD2BI,CAAA;AACI,iBAAA;AACA,eAAA;ACzBR;AD4BI,CALA,oBAKA;AACI,iBAAA;AC1BR;AD6BI,CAAA;AACI,eAAA;AACA,WAAA;AACA,mBAAA;AC3BR;AD8BI,CAAA;AACI,eAAA;AC5BR;AD+BI,CAAA;AACI,WAAA,IAAA;AC7BR;ADiCQ,CAAA;AGzGJ,aAAA,IAAA;AACA,eAAA,IAAA;AH0GQ,eAAA;AC9BZ;ADkCI,CAAA;AACI,WAAA;AACA,OAAA;AChCR;ADkCQ,CAAA;AACI,WAAA;AChCZ;ADqCQ,CAAA,oBAAA;AAAA,CAAA,oBAAA;AAEI,WAAA;AACA,eAAA;AAEA,aAAA;AACA,eAAA;AACA,eAAA;ACrCZ;ADwCQ,CAAA;AACI,gBAAA;ACtCZ;ADwCY,CAHJ,8BAGI;AACI,gBAAA;ACtChB;AD0CQ,CAAA;AACI,gBAAA;ACxCZ;AD0CY,CAHJ,iCAGI;AACI,gBAAA;ACxChB;",
3
+ "sources": ["../../../../src/components/Feedback/Feedback.scss", "../../../../src/components/Feedback/%3Cinput css C0NjFD%3E", "../../../../src/styles/variables.scss", "../../../../src/styles/mixins.scss"],
4
+ "sourcesContent": ["@use 'sass:map';\n@use '../../styles/mixins';\n@use '../../styles/variables';\n\n$popupWidth: 320px;\n\n@mixin tooltip-in-center {\n // use sm to cover a larger number of smartphones\n @media screen and (max-width: map.get(variables.$screenBreakpoints, 'sm')) {\n & {\n // stylelint-disable declaration-no-important\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n }\n}\n\n.dc-feedback {\n &__container {\n &_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n }\n }\n\n &__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n\n width: 100%;\n padding: 26px;\n\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n\n &_view_wide {\n display: flex;\n align-items: center;\n }\n }\n\n &__success-popup {\n left: -20px;\n\n padding: variables.$popupPadding 50px variables.$popupPadding variables.$popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__variants-popup {\n padding: variables.$popupPadding;\n width: $popupWidth;\n left: -20px;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__popup-title {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n padding-bottom: 8px;\n }\n\n &__popup-text {\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n }\n\n &__variants {\n display: flex;\n flex-direction: column;\n padding: 8px 0;\n }\n\n &__variant {\n margin-bottom: 8px;\n white-space: normal;\n }\n\n &__variant:last-of-type {\n margin-bottom: 0;\n }\n\n &__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n }\n\n &__variants-action {\n margin-left: 10px;\n }\n\n &__textarea {\n padding: 8px 0;\n }\n\n &__title {\n &_view_wide {\n @include mixins.text-size(subheader-3);\n font-weight: 400;\n }\n }\n\n &__controls {\n display: flex;\n gap: 20px;\n\n &_view_wide {\n flex-wrap: wrap;\n justify-content: center;\n }\n }\n\n // Wide-only: own full-width row so the button stays content-width and centered\n &__comment-row {\n display: flex;\n flex-basis: 100%;\n justify-content: center;\n }\n\n &__control {\n &:nth-child(1),\n &:nth-child(2) {\n display: flex;\n align-items: center;\n\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n }\n\n &_view_wide {\n margin-right: 24px;\n\n &:last-of-type {\n margin-right: 0;\n }\n }\n\n &_view_regular {\n margin-right: 4px;\n\n &:last-of-type {\n margin-right: 0;\n }\n }\n }\n}\n", ".dc-feedback__container_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n}\n.dc-feedback__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n width: 100%;\n padding: 26px;\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n}\n.dc-feedback__container-col_view_wide {\n display: flex;\n align-items: center;\n}\n.dc-feedback__success-popup {\n left: -20px;\n padding: 16px 50px 16px 16px;\n width: 320px;\n}\n@media screen and (max-width: 577px) {\n .dc-feedback__success-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-feedback__variants-popup {\n padding: 16px;\n width: 320px;\n left: -20px;\n}\n@media screen and (max-width: 577px) {\n .dc-feedback__variants-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-feedback__popup-title {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n padding-bottom: 8px;\n}\n.dc-feedback__popup-text {\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n}\n.dc-feedback__variants {\n display: flex;\n flex-direction: column;\n padding: 8px 0;\n}\n.dc-feedback__variant {\n margin-bottom: 8px;\n white-space: normal;\n}\n.dc-feedback__variant:last-of-type {\n margin-bottom: 0;\n}\n.dc-feedback__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n}\n.dc-feedback__variants-action {\n margin-left: 10px;\n}\n.dc-feedback__textarea {\n padding: 8px 0;\n}\n.dc-feedback__title_view_wide {\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n font-weight: 400;\n}\n.dc-feedback__controls {\n display: flex;\n gap: 20px;\n}\n.dc-feedback__controls_view_wide {\n flex-wrap: wrap;\n justify-content: center;\n}\n.dc-feedback__comment-row {\n display: flex;\n flex-basis: 100%;\n justify-content: center;\n}\n.dc-feedback__control:nth-child(1), .dc-feedback__control:nth-child(2) {\n display: flex;\n align-items: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n}\n.dc-feedback__control_view_wide {\n margin-right: 24px;\n}\n.dc-feedback__control_view_wide:last-of-type {\n margin-right: 0;\n}\n.dc-feedback__control_view_regular {\n margin-right: 4px;\n}\n.dc-feedback__control_view_regular:last-of-type {\n margin-right: 0;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0ZlZWRiYWNrIiwic291cmNlcyI6WyJGZWVkYmFjay5zY3NzIiwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vc3R5bGVzL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CUTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBRUE7RUFDQSxPQS9DSzs7QUFJVDtFQUNJO0lBRUk7SUFDQTtJQUNBOzs7QUE2Q1I7RUFDSSxTQ2pETztFRGtEUCxPQXhESztFQXlETDs7QUFyREo7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBdURSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSUE7RUV6R0o7RUFDQTtFRjBHUTs7QUFJUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUtSO0VBQ0k7RUFDQTtFQUNBOztBQUlBO0VBRUk7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFFQTtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5AdXNlICcuLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcblxuJHBvcHVwV2lkdGg6IDMyMHB4O1xuXG5AbWl4aW4gdG9vbHRpcC1pbi1jZW50ZXIge1xuICAgIC8vIHVzZSBzbSB0byBjb3ZlciBhIGxhcmdlciBudW1iZXIgb2Ygc21hcnRwaG9uZXNcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgICYge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG4gICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGMtZmVlZGJhY2sge1xuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyLWNvbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDIwcHg7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDI2cHg7XG5cbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLXBvcHVwIHtcbiAgICAgICAgbGVmdDogLTIwcHg7XG5cbiAgICAgICAgcGFkZGluZzogdmFyaWFibGVzLiRwb3B1cFBhZGRpbmcgNTBweCB2YXJpYWJsZXMuJHBvcHVwUGFkZGluZyB2YXJpYWJsZXMuJHBvcHVwUGFkZGluZztcbiAgICAgICAgd2lkdGg6ICRwb3B1cFdpZHRoO1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvb2x0aXAtaW4tY2VudGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1wb3B1cCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcmlhYmxlcy4kcG9wdXBQYWRkaW5nO1xuICAgICAgICB3aWR0aDogJHBvcHVwV2lkdGg7XG4gICAgICAgIGxlZnQ6IC0yMHB4O1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvb2x0aXAtaW4tY2VudGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wb3B1cC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgJl9fcG9wdXAtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LXNob3J0LWxpbmUtaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudDpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnRzLWFjdGlvbnMge1xuICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnRzLWFjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgICZfX3RleHRhcmVhIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMudGV4dC1zaXplKHN1YmhlYWRlci0zKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMjBweDtcblxuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdpZGUtb25seTogb3duIGZ1bGwtd2lkdGggcm93IHNvIHRoZSBidXR0b24gc3RheXMgY29udGVudC13aWR0aCBhbmQgY2VudGVyZWRcbiAgICAmX19jb21tZW50LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICAmOm50aC1jaGlsZCgxKSxcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjRweDtcblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld19yZWd1bGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gU2l6ZXNcbiRoZWFkZXJIZWlnaHQ6IDBweDtcbiRzdWJIZWFkZXJIZWlnaHQ6IDQwcHg7XG4kc3ViTmF2aWdhdGlvbkhlaWdodDogNTJweDtcbiRub3JtYWxPZmZzZXQ6IDIwcHg7XG4kbWluaVRvY09mZnNldDogNTZweDtcbiRibG9ja01hcmdpbkJvdHRvbUxhcmdlOiAyMHB4O1xuJGJsb2NrTWFyZ2luQm90dG9tTWVkaXVtOiAxNXB4O1xuJGhlYWRlck1hcmdpblRvcExhcmdlOiA0MHB4O1xuJGhlYWRlck1hcmdpblRvcE1lZGl1bTogMzJweDtcbiRwb3B1cFBhZGRpbmc6IDE2cHg7XG4kY2VudGVyQmxvY2tNYXhXaWR0aDogNzM2cHg7XG5cbi8vIE5hdmlnYXRpb25cbiR0b01haW5NZW51VmVydGljYWxQYWRkaW5nOiA0cHg7XG4kdG9NYWluTWVudUhvcml6b250YWxQYWRkaW5nOiAxMnB4O1xuJHRvTWFpbk1lbnVIZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tZGMtc3VibmF2aWdhdGlvbi1oZWlnaHQsICRzdWJOYXZpZ2F0aW9uSGVpZ2h0KSAtICN7JHRvTWFpbk1lbnVWZXJ0aWNhbFBhZGRpbmd9IC1cbiAgICAgICAgI3skdG9NYWluTWVudVZlcnRpY2FsUGFkZGluZ31cbik7XG5cbi8vIE1pbmlUb2NcbiRtaW5pVG9jVmVydGljYWxQYWRkaW5nOiAxNnB4O1xuJG1pbmlUb2NUaXRsZUhlaWdodDogMjBweDsgLy8gbGluZS1oZWlnaHQgYm9keS0yXG4kbWluaVRvY1RpdGxlTWFyZ2luOiAxMnB4O1xuJG1vYmlsZU1pbmlUb2NPZmZzZXQ6IDIgKiAkbWluaVRvY1ZlcnRpY2FsUGFkZGluZyArICRtaW5pVG9jVGl0bGVIZWlnaHQgKyAkbWluaVRvY1RpdGxlTWFyZ2luO1xuXG4vLyBNb2JpbGVDb250cm9sc1xuJG1vYmlsZUNvbnRyb2xzSGVpZ2h0OiA0NHB4O1xuJG1vYmlsZUNvbnRyb2xzVG9wUGFkZGluZzogNHB4O1xuJG1vYmlsZUNvbnRyb2xzQm90dG9tUGFkZGluZzogMzRweDtcblxuJHNjcmVlbkJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzJzogMzc1cHgsXG4gICAgJ3NtJzogNTc3cHgsXG4gICAgJ21kJzogNzY5cHgsXG4gICAgJ2xnJzogMTA4MXB4LFxuICAgICd4bCc6IDExODVweCxcbik7XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICd2YXJpYWJsZXMnO1xuXG5AbWl4aW4gdGV4dC1zaXplKCRuYW1lKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtI3skbmFtZX0tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUoKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1peGluIGZpeEFuY2hvclBvc2l0aW9uKCRvZmZzZXQ6IDBweCkge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbn1cblxuQG1peGluIHJlc2V0LWxpbmstc3R5bGUoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaXNsYW5kcy1mb2N1cygpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLnV0aWxpdHlmb2N1cyAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICNmZmRiNGQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXNhYmxlKCRvZmZzZXQ6IDAsICRtb2RlOiAnb3V0bGluZScpIHtcbiAgICBAaWYgJG1vZGUgPT0gJ291dGxpbmUnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRtb2RlID09ICdib3gtc2hhZG93JyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGluaygpIHtcbiAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgwLCAnYm94LXNoYWRvdycpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTMpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0xKTtcbn1cblxuQG1peGluIGhlYWRpbmczKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xufVxuXG5AbWl4aW4gaGVhZGluZzQoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNigpIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBjb250cmlidXRvcnMtdGV4dCgpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0ZXh0LWJvZHktMSgpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LWZvbnQtd2VpZ2h0KTtcbn1cblxuQG1peGluIGRlc2t0b3Atb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZ3Jhdml0eS11aS10ZXh0LXNpemVzKCRkZWx0YSkge1xuICAgIC0tZy10ZXh0LWJvZHktMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0OiAjezE4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMi1mb250LXNpemU6ICN7MTVweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWxpbmUtaGVpZ2h0OiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0OiAjezI0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMS1mb250LXNpemU6ICN7OXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jYXB0aW9uLTItZm9udC1zaXplOiAjezExcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0xLWZvbnQtc2l6ZTogI3syMHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1oZWFkZXItMi1mb250LXNpemU6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0xLWZvbnQtc2l6ZTogI3syOHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTItZm9udC1zaXplOiAjezMycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMy1mb250LXNpemU6ICN7NDBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS00LWZvbnQtc2l6ZTogI3s0OHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMi1mb250LXNpemU6ICN7MTRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0xLWZvbnQtc2l6ZTogI3sxMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcblxuICAgIC0teWZtLWZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oMjogdmFyKC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgzOiB2YXIoLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDQ6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNTogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg2OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplKTtcbn1cbiJdfQ== */", "// Sizes\n$headerHeight: 0px;\n$subHeaderHeight: 40px;\n$subNavigationHeight: 52px;\n$normalOffset: 20px;\n$miniTocOffset: 56px;\n$blockMarginBottomLarge: 20px;\n$blockMarginBottomMedium: 15px;\n$headerMarginTopLarge: 40px;\n$headerMarginTopMedium: 32px;\n$popupPadding: 16px;\n$centerBlockMaxWidth: 736px;\n\n// Navigation\n$toMainMenuVerticalPadding: 4px;\n$toMainMenuHorizontalPadding: 12px;\n$toMainMenuHeight: calc(\n var(--dc-subnavigation-height, $subNavigationHeight) - #{$toMainMenuVerticalPadding} -\n #{$toMainMenuVerticalPadding}\n);\n\n// MiniToc\n$miniTocVerticalPadding: 16px;\n$miniTocTitleHeight: 20px; // line-height body-2\n$miniTocTitleMargin: 12px;\n$mobileMiniTocOffset: 2 * $miniTocVerticalPadding + $miniTocTitleHeight + $miniTocTitleMargin;\n\n// MobileControls\n$mobileControlsHeight: 44px;\n$mobileControlsTopPadding: 4px;\n$mobileControlsBottomPadding: 34px;\n\n$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\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"],
5
+ "mappings": ";AAoBQ,CAAA;AACI,WAAA;AACA,eAAA;AACA,kBAAA;AACA,SAAA;ACnBZ;ADuBI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,eAAA;AACA,kBAAA;AACA,OAAA;AAEA,SAAA;AACA,WAAA;AAEA,UAAA,IAAA,MAAA,IAAA;AACA,iBAAA;ACvBR;ADyBQ,CAAA;AACI,WAAA;AACA,eAAA;ACvBZ;AD2BI,CAAA;AACI,QAAA;AAEA,WAAA,KAAA,KAAA,KAAA;AACA,SAAA;AC1BR;ADjBI,OAAA,YAAA,WAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;ACkBV;AACF;AD0BI,CAAA;AACI,WAAA;AACA,SAAA;AACA,QAAA;ACxBR;AD7BI,OAAA,YAAA,WAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;AC8BV;AACF;ADwBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,kBAAA;ACtBR;ADyBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;ACvBR;AD0BI,CAAA;AACI,WAAA;AACA,kBAAA;AACA,WAAA,IAAA;ACxBR;AD2BI,CAAA;AACI,iBAAA;AACA,eAAA;ACzBR;AD4BI,CALA,oBAKA;AACI,iBAAA;AC1BR;AD6BI,CAAA;AACI,eAAA;AACA,WAAA;AACA,mBAAA;AC3BR;AD8BI,CAAA;AACI,eAAA;AC5BR;AD+BI,CAAA;AACI,WAAA,IAAA;AC7BR;ADiCQ,CAAA;AGzGJ,aAAA,IAAA;AACA,eAAA,IAAA;AH0GQ,eAAA;AC9BZ;ADkCI,CAAA;AACI,WAAA;AACA,OAAA;AChCR;ADkCQ,CAAA;AACI,aAAA;AACA,mBAAA;AChCZ;ADqCI,CAAA;AACI,WAAA;AACA,cAAA;AACA,mBAAA;ACnCR;ADuCQ,CAAA,oBAAA;AAAA,CAAA,oBAAA;AAEI,WAAA;AACA,eAAA;AAEA,aAAA;AACA,eAAA;AACA,eAAA;ACvCZ;AD0CQ,CAAA;AACI,gBAAA;ACxCZ;AD0CY,CAHJ,8BAGI;AACI,gBAAA;ACxChB;AD4CQ,CAAA;AACI,gBAAA;AC1CZ;AD4CY,CAHJ,iCAGI;AACI,gBAAA;AC1ChB;",
6
6
  "names": []
7
7
  }
@@ -10,6 +10,11 @@ export interface FeedbackProps {
10
10
  isDisliked?: boolean;
11
11
  onSendFeedback: (data: FeedbackSendData) => void;
12
12
  view?: FeedbackView;
13
+ /**
14
+ * Opt in to the rating-free "leave a comment" entry point.
15
+ * When omitted, falls back to the `feedback-comment` interface flag.
16
+ */
17
+ showComment?: boolean;
13
18
  }
14
19
  declare const Feedback: React.FC<FeedbackProps>;
15
20
  export default Feedback;
@@ -50,11 +50,13 @@ __export(Feedback_exports, {
50
50
  module.exports = __toCommonJS(Feedback_exports);
51
51
  var import_react = __toESM(require("react"));
52
52
  var import_bem_cn_lite = __toESM(require("bem-cn-lite"));
53
+ var import_InterfaceContext = require("../../contexts/InterfaceContext");
53
54
  var import_hooks = require("../../hooks");
54
55
  var import_models = require("../../models");
55
56
  var import_analytics = require("../../shared/libs/analytics");
56
57
  var import_DislikeControl = __toESM(require("./controls/DislikeControl"));
57
- var import_DislikeVariantsPopup = __toESM(require("./controls/DislikeVariantsPopup"));
58
+ var import_FeedbackControl = __toESM(require("./controls/FeedbackControl"));
59
+ var import_FeedbackFormPopup = __toESM(require("./controls/FeedbackFormPopup"));
58
60
  var import_LikeControl = __toESM(require("./controls/LikeControl"));
59
61
  var import_SuccessPopup = __toESM(require("./controls/SuccessPopup"));
60
62
  var import_Feedback = require("./Feedback.css");
@@ -86,23 +88,35 @@ var Feedback = (props) => {
86
88
  isLiked = false,
87
89
  isDisliked = false,
88
90
  onSendFeedback,
89
- view = "regular" /* Regular */
91
+ view = "regular" /* Regular */,
92
+ showComment
90
93
  } = props;
91
94
  const analytics = (0, import_analytics.useAnalytics)();
92
95
  const likeControlRef = (0, import_react.useRef)(null);
93
96
  const dislikeControlRef = (0, import_react.useRef)(null);
97
+ const feedbackControlRef = (0, import_react.useRef)(null);
94
98
  const [innerState, setInnerState] = (0, import_react.useState)(getInnerState(isLiked, isDisliked));
95
99
  (0, import_react.useEffect)(() => {
96
100
  setInnerState(getInnerState(isLiked, isDisliked));
97
101
  }, [isLiked, isDisliked, setInnerState]);
98
102
  const likeSuccessPopup = (0, import_hooks.usePopupState)({ autoclose: 3e3 });
99
103
  const dislikeSuccessPopup = (0, import_hooks.usePopupState)({ autoclose: 3e3 });
104
+ const commentSuccessPopup = (0, import_hooks.usePopupState)({ autoclose: 3e3 });
100
105
  const dislikeVariantsPopup = (0, import_hooks.usePopupState)();
106
+ const commentFormPopup = (0, import_hooks.usePopupState)();
101
107
  const hideFeedbackPopups = (0, import_react.useCallback)(() => {
102
108
  likeSuccessPopup.close();
103
109
  dislikeSuccessPopup.close();
110
+ commentSuccessPopup.close();
104
111
  dislikeVariantsPopup.close();
105
- }, [likeSuccessPopup, dislikeSuccessPopup, dislikeVariantsPopup]);
112
+ commentFormPopup.close();
113
+ }, [
114
+ likeSuccessPopup,
115
+ dislikeSuccessPopup,
116
+ commentSuccessPopup,
117
+ dislikeVariantsPopup,
118
+ commentFormPopup
119
+ ]);
106
120
  const onChangeLike = (0, import_react.useCallback)(() => {
107
121
  const event = view === "regular" /* Regular */ ? import_analytics.CommonAnalyticsEvent.DOCS_ASIDE_LIKE_CLICK : import_analytics.CommonAnalyticsEvent.DOCS_FOOTER_LIKE_CLICK;
108
122
  analytics.track(event);
@@ -136,8 +150,24 @@ var Feedback = (props) => {
136
150
  },
137
151
  [onSendFeedback, setInnerState, dislikeSuccessPopup, hideFeedbackPopups]
138
152
  );
153
+ const onClickFeedback = (0, import_react.useCallback)(() => {
154
+ const event = view === "regular" /* Regular */ ? import_analytics.CommonAnalyticsEvent.DOCS_ASIDE_FEEDBACK_CLICK : import_analytics.CommonAnalyticsEvent.DOCS_FOOTER_FEEDBACK_CLICK;
155
+ analytics.track(event);
156
+ hideFeedbackPopups();
157
+ commentFormPopup.open();
158
+ }, [view, analytics, hideFeedbackPopups, commentFormPopup]);
159
+ const onSendComment = (0, import_react.useCallback)(
160
+ (data) => {
161
+ hideFeedbackPopups();
162
+ commentSuccessPopup.open();
163
+ onSendFeedback({ type: import_models.FeedbackType.comment, comment: data.comment });
164
+ },
165
+ [onSendFeedback, commentSuccessPopup, hideFeedbackPopups]
166
+ );
139
167
  const isDislikePopupVisible = dislikeSuccessPopup.visible || dislikeVariantsPopup.visible;
140
168
  const isFeedbackHidden = (0, import_hooks.useInterface)("feedback");
169
+ const { interface: viewerInterface } = (0, import_react.useContext)(import_InterfaceContext.InterfaceContext);
170
+ const isCommentEnabled = showComment != null ? showComment : (viewerInterface == null ? void 0 : viewerInterface["feedback-comment"]) === true;
141
171
  if (isFeedbackHidden) {
142
172
  return null;
143
173
  }
@@ -159,7 +189,21 @@ var Feedback = (props) => {
159
189
  isDisliked: innerState === import_models.FeedbackType.dislike,
160
190
  isPopupVisible: isDislikePopupVisible
161
191
  }
162
- )), likeControlRef.current && /* @__PURE__ */ import_react.default.createElement(
192
+ ), isCommentEnabled && (view === "wide" /* Wide */ ? /* @__PURE__ */ import_react.default.createElement("div", { className: b("comment-row") }, /* @__PURE__ */ import_react.default.createElement(
193
+ import_FeedbackControl.default,
194
+ {
195
+ ref: feedbackControlRef,
196
+ view,
197
+ onClick: onClickFeedback
198
+ }
199
+ )) : /* @__PURE__ */ import_react.default.createElement(
200
+ import_FeedbackControl.default,
201
+ {
202
+ ref: feedbackControlRef,
203
+ view,
204
+ onClick: onClickFeedback
205
+ }
206
+ ))), likeControlRef.current && /* @__PURE__ */ import_react.default.createElement(
163
207
  import_SuccessPopup.default,
164
208
  {
165
209
  visible: likeSuccessPopup.visible,
@@ -176,14 +220,35 @@ var Feedback = (props) => {
176
220
  onOutsideClick: hideFeedbackPopups
177
221
  }
178
222
  ), dislikeControlRef.current && /* @__PURE__ */ import_react.default.createElement(
179
- import_DislikeVariantsPopup.default,
223
+ import_FeedbackFormPopup.default,
180
224
  {
181
225
  visible: dislikeVariantsPopup.visible,
182
226
  anchor: dislikeControlRef,
183
227
  view,
228
+ titleKey: "dislike-variants-title",
229
+ showVariants: true,
184
230
  onSubmit: onSendDislikeInformation,
185
231
  onOutsideClick: hideFeedbackPopups
186
232
  }
233
+ ), isCommentEnabled && feedbackControlRef.current && /* @__PURE__ */ import_react.default.createElement(
234
+ import_SuccessPopup.default,
235
+ {
236
+ visible: commentSuccessPopup.visible,
237
+ anchor: feedbackControlRef,
238
+ view,
239
+ onOutsideClick: hideFeedbackPopups
240
+ }
241
+ ), isCommentEnabled && feedbackControlRef.current && /* @__PURE__ */ import_react.default.createElement(
242
+ import_FeedbackFormPopup.default,
243
+ {
244
+ visible: commentFormPopup.visible,
245
+ anchor: feedbackControlRef,
246
+ view,
247
+ titleKey: "comment-form-title",
248
+ placeholderKey: "comment-form-placeholder",
249
+ onSubmit: onSendComment,
250
+ onOutsideClick: hideFeedbackPopups
251
+ }
187
252
  ));
188
253
  };
189
254
  var Feedback_default = Feedback;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Feedback/Feedback.tsx"],
4
- "sourcesContent": ["import type {PropsWithChildren} from 'react';\nimport type {FeedbackSendData} from '../../models';\nimport type {FormData} from './controls/DislikeVariantsPopup';\n\nimport React, {useCallback, useEffect, useRef, useState} from 'react';\nimport block from 'bem-cn-lite';\n\nimport {useInterface, usePopupState, useTranslation} from '../../hooks';\nimport {FeedbackType} from '../../models';\nimport {CommonAnalyticsEvent, useAnalytics} from '../../shared/libs/analytics';\n\nimport DislikeControl from './controls/DislikeControl';\nimport DislikeVariantsPopup from './controls/DislikeVariantsPopup';\nimport LikeControl from './controls/LikeControl';\nimport SuccessPopup from './controls/SuccessPopup';\nimport './Feedback.scss';\n\nconst b = block('dc-feedback');\n\nexport enum FeedbackView {\n Wide = 'wide',\n Regular = 'regular',\n}\n\nexport interface FeedbackProps {\n isLiked?: boolean;\n isDisliked?: boolean;\n onSendFeedback: (data: FeedbackSendData) => void;\n view?: FeedbackView;\n}\n\nconst getInnerState = (isLiked: boolean, isDisliked: boolean) => {\n switch (true) {\n case Boolean(isDisliked):\n return FeedbackType.dislike;\n case Boolean(isLiked):\n return FeedbackType.like;\n default:\n return FeedbackType.indeterminate;\n }\n};\n\nconst ControlsLayout: React.FC<PropsWithChildren<{view: FeedbackView}>> = ({view, children}) => {\n const {t} = useTranslation('feedback');\n\n if (view === FeedbackView.Regular) {\n return <React.Fragment>{children}</React.Fragment>;\n }\n\n return (\n <div className={b('container', {view})}>\n <div className={b('container-col', {view})}>\n <h3 className={b('title', {view})}>{t('main-question')}</h3>\n <div className={b('controls', {view})}>{children}</div>\n </div>\n </div>\n );\n};\n\nconst Feedback: React.FC<FeedbackProps> = (props) => {\n const {\n isLiked = false,\n isDisliked = false,\n onSendFeedback,\n view = FeedbackView.Regular,\n } = props;\n const analytics = useAnalytics();\n const likeControlRef = useRef<HTMLButtonElement | null>(null);\n const dislikeControlRef = useRef<HTMLButtonElement | null>(null);\n\n const [innerState, setInnerState] = useState<FeedbackType>(getInnerState(isLiked, isDisliked));\n useEffect(() => {\n setInnerState(getInnerState(isLiked, isDisliked));\n }, [isLiked, isDisliked, setInnerState]);\n\n const likeSuccessPopup = usePopupState({autoclose: 3000});\n const dislikeSuccessPopup = usePopupState({autoclose: 3000});\n const dislikeVariantsPopup = usePopupState();\n\n const hideFeedbackPopups = useCallback(() => {\n likeSuccessPopup.close();\n dislikeSuccessPopup.close();\n dislikeVariantsPopup.close();\n }, [likeSuccessPopup, dislikeSuccessPopup, dislikeVariantsPopup]);\n\n const onChangeLike = useCallback(() => {\n const event =\n view === FeedbackView.Regular\n ? CommonAnalyticsEvent.DOCS_ASIDE_LIKE_CLICK\n : CommonAnalyticsEvent.DOCS_FOOTER_LIKE_CLICK;\n analytics.track(event);\n hideFeedbackPopups();\n\n if (innerState === FeedbackType.like) {\n setInnerState(FeedbackType.indeterminate);\n onSendFeedback({type: FeedbackType.indeterminate});\n } else {\n setInnerState(FeedbackType.like);\n onSendFeedback({type: FeedbackType.like});\n likeSuccessPopup.open();\n }\n }, [view, analytics, hideFeedbackPopups, innerState, onSendFeedback, likeSuccessPopup]);\n\n const onChangeDislike = useCallback(() => {\n const event =\n view === FeedbackView.Regular\n ? CommonAnalyticsEvent.DOCS_ASIDE_DISLIKE_CLICK\n : CommonAnalyticsEvent.DOCS_FOOTER_DISLIKE_CLICK;\n analytics.track(event);\n hideFeedbackPopups();\n\n if (innerState === FeedbackType.dislike) {\n setInnerState(FeedbackType.indeterminate);\n onSendFeedback({type: FeedbackType.indeterminate});\n } else {\n dislikeVariantsPopup.open();\n }\n }, [view, analytics, hideFeedbackPopups, innerState, onSendFeedback, dislikeVariantsPopup]);\n\n const onSendDislikeInformation = useCallback(\n (data: FormData) => {\n hideFeedbackPopups();\n dislikeSuccessPopup.open();\n setInnerState(FeedbackType.dislike);\n onSendFeedback({type: FeedbackType.dislike, ...data});\n },\n [onSendFeedback, setInnerState, dislikeSuccessPopup, hideFeedbackPopups],\n );\n\n const isDislikePopupVisible = dislikeSuccessPopup.visible || dislikeVariantsPopup.visible;\n const isFeedbackHidden = useInterface('feedback');\n\n if (isFeedbackHidden) {\n return null;\n }\n\n return (\n <React.Fragment>\n <ControlsLayout view={view}>\n <LikeControl\n ref={likeControlRef}\n view={view}\n onClick={onChangeLike}\n isLiked={innerState === FeedbackType.like}\n isPopupVisible={likeSuccessPopup.visible}\n />\n <DislikeControl\n ref={dislikeControlRef}\n view={view}\n onClick={onChangeDislike}\n isDisliked={innerState === FeedbackType.dislike}\n isPopupVisible={isDislikePopupVisible}\n />\n </ControlsLayout>\n {likeControlRef.current && (\n <SuccessPopup\n visible={likeSuccessPopup.visible}\n anchor={likeControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {dislikeControlRef.current && (\n <SuccessPopup\n visible={dislikeSuccessPopup.visible}\n anchor={dislikeControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {dislikeControlRef.current && (\n <DislikeVariantsPopup\n visible={dislikeVariantsPopup.visible}\n anchor={dislikeControlRef}\n view={view}\n onSubmit={onSendDislikeInformation}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n </React.Fragment>\n );\n};\n\nexport default Feedback;\n"],
5
- "mappings": "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",
6
- "names": ["block", "FeedbackView", "React", "LikeControl", "DislikeControl", "SuccessPopup", "DislikeVariantsPopup"]
4
+ "sourcesContent": ["import type {PropsWithChildren} from 'react';\nimport type {FeedbackSendData} from '../../models';\nimport type {FormData} from './controls/FeedbackFormPopup';\n\nimport React, {useCallback, useContext, useEffect, useRef, useState} from 'react';\nimport block from 'bem-cn-lite';\n\nimport {InterfaceContext} from '../../contexts/InterfaceContext';\nimport {useInterface, usePopupState, useTranslation} from '../../hooks';\nimport {FeedbackType} from '../../models';\nimport {CommonAnalyticsEvent, useAnalytics} from '../../shared/libs/analytics';\n\nimport DislikeControl from './controls/DislikeControl';\nimport FeedbackControl from './controls/FeedbackControl';\nimport FeedbackFormPopup from './controls/FeedbackFormPopup';\nimport LikeControl from './controls/LikeControl';\nimport SuccessPopup from './controls/SuccessPopup';\nimport './Feedback.scss';\n\nconst b = block('dc-feedback');\n\nexport enum FeedbackView {\n Wide = 'wide',\n Regular = 'regular',\n}\n\nexport interface FeedbackProps {\n isLiked?: boolean;\n isDisliked?: boolean;\n onSendFeedback: (data: FeedbackSendData) => void;\n view?: FeedbackView;\n /**\n * Opt in to the rating-free \"leave a comment\" entry point.\n * When omitted, falls back to the `feedback-comment` interface flag.\n */\n showComment?: boolean;\n}\n\nconst getInnerState = (isLiked: boolean, isDisliked: boolean) => {\n switch (true) {\n case Boolean(isDisliked):\n return FeedbackType.dislike;\n case Boolean(isLiked):\n return FeedbackType.like;\n default:\n return FeedbackType.indeterminate;\n }\n};\n\nconst ControlsLayout: React.FC<PropsWithChildren<{view: FeedbackView}>> = ({view, children}) => {\n const {t} = useTranslation('feedback');\n\n if (view === FeedbackView.Regular) {\n return <React.Fragment>{children}</React.Fragment>;\n }\n\n return (\n <div className={b('container', {view})}>\n <div className={b('container-col', {view})}>\n <h3 className={b('title', {view})}>{t('main-question')}</h3>\n <div className={b('controls', {view})}>{children}</div>\n </div>\n </div>\n );\n};\n\nconst Feedback: React.FC<FeedbackProps> = (props) => {\n const {\n isLiked = false,\n isDisliked = false,\n onSendFeedback,\n view = FeedbackView.Regular,\n showComment,\n } = props;\n const analytics = useAnalytics();\n const likeControlRef = useRef<HTMLButtonElement | null>(null);\n const dislikeControlRef = useRef<HTMLButtonElement | null>(null);\n const feedbackControlRef = useRef<HTMLButtonElement | null>(null);\n\n const [innerState, setInnerState] = useState<FeedbackType>(getInnerState(isLiked, isDisliked));\n useEffect(() => {\n setInnerState(getInnerState(isLiked, isDisliked));\n }, [isLiked, isDisliked, setInnerState]);\n\n const likeSuccessPopup = usePopupState({autoclose: 3000});\n const dislikeSuccessPopup = usePopupState({autoclose: 3000});\n const commentSuccessPopup = usePopupState({autoclose: 3000});\n const dislikeVariantsPopup = usePopupState();\n const commentFormPopup = usePopupState();\n\n const hideFeedbackPopups = useCallback(() => {\n likeSuccessPopup.close();\n dislikeSuccessPopup.close();\n commentSuccessPopup.close();\n dislikeVariantsPopup.close();\n commentFormPopup.close();\n }, [\n likeSuccessPopup,\n dislikeSuccessPopup,\n commentSuccessPopup,\n dislikeVariantsPopup,\n commentFormPopup,\n ]);\n\n const onChangeLike = useCallback(() => {\n const event =\n view === FeedbackView.Regular\n ? CommonAnalyticsEvent.DOCS_ASIDE_LIKE_CLICK\n : CommonAnalyticsEvent.DOCS_FOOTER_LIKE_CLICK;\n analytics.track(event);\n hideFeedbackPopups();\n\n if (innerState === FeedbackType.like) {\n setInnerState(FeedbackType.indeterminate);\n onSendFeedback({type: FeedbackType.indeterminate});\n } else {\n setInnerState(FeedbackType.like);\n onSendFeedback({type: FeedbackType.like});\n likeSuccessPopup.open();\n }\n }, [view, analytics, hideFeedbackPopups, innerState, onSendFeedback, likeSuccessPopup]);\n\n const onChangeDislike = useCallback(() => {\n const event =\n view === FeedbackView.Regular\n ? CommonAnalyticsEvent.DOCS_ASIDE_DISLIKE_CLICK\n : CommonAnalyticsEvent.DOCS_FOOTER_DISLIKE_CLICK;\n analytics.track(event);\n hideFeedbackPopups();\n\n if (innerState === FeedbackType.dislike) {\n setInnerState(FeedbackType.indeterminate);\n onSendFeedback({type: FeedbackType.indeterminate});\n } else {\n dislikeVariantsPopup.open();\n }\n }, [view, analytics, hideFeedbackPopups, innerState, onSendFeedback, dislikeVariantsPopup]);\n\n const onSendDislikeInformation = useCallback(\n (data: FormData) => {\n hideFeedbackPopups();\n dislikeSuccessPopup.open();\n setInnerState(FeedbackType.dislike);\n onSendFeedback({type: FeedbackType.dislike, ...data});\n },\n [onSendFeedback, setInnerState, dislikeSuccessPopup, hideFeedbackPopups],\n );\n\n const onClickFeedback = useCallback(() => {\n const event =\n view === FeedbackView.Regular\n ? CommonAnalyticsEvent.DOCS_ASIDE_FEEDBACK_CLICK\n : CommonAnalyticsEvent.DOCS_FOOTER_FEEDBACK_CLICK;\n analytics.track(event);\n hideFeedbackPopups();\n commentFormPopup.open();\n }, [view, analytics, hideFeedbackPopups, commentFormPopup]);\n\n const onSendComment = useCallback(\n (data: FormData) => {\n hideFeedbackPopups();\n commentSuccessPopup.open();\n onSendFeedback({type: FeedbackType.comment, comment: data.comment});\n },\n [onSendFeedback, commentSuccessPopup, hideFeedbackPopups],\n );\n\n const isDislikePopupVisible = dislikeSuccessPopup.visible || dislikeVariantsPopup.visible;\n const isFeedbackHidden = useInterface('feedback');\n const {interface: viewerInterface} = useContext(InterfaceContext);\n const isCommentEnabled = showComment ?? viewerInterface?.['feedback-comment'] === true;\n\n if (isFeedbackHidden) {\n return null;\n }\n\n return (\n <React.Fragment>\n <ControlsLayout view={view}>\n <LikeControl\n ref={likeControlRef}\n view={view}\n onClick={onChangeLike}\n isLiked={innerState === FeedbackType.like}\n isPopupVisible={likeSuccessPopup.visible}\n />\n <DislikeControl\n ref={dislikeControlRef}\n view={view}\n onClick={onChangeDislike}\n isDisliked={innerState === FeedbackType.dislike}\n isPopupVisible={isDislikePopupVisible}\n />\n {isCommentEnabled &&\n (view === FeedbackView.Wide ? (\n <div className={b('comment-row')}>\n <FeedbackControl\n ref={feedbackControlRef}\n view={view}\n onClick={onClickFeedback}\n />\n </div>\n ) : (\n <FeedbackControl\n ref={feedbackControlRef}\n view={view}\n onClick={onClickFeedback}\n />\n ))}\n </ControlsLayout>\n {likeControlRef.current && (\n <SuccessPopup\n visible={likeSuccessPopup.visible}\n anchor={likeControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {dislikeControlRef.current && (\n <SuccessPopup\n visible={dislikeSuccessPopup.visible}\n anchor={dislikeControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {dislikeControlRef.current && (\n <FeedbackFormPopup\n visible={dislikeVariantsPopup.visible}\n anchor={dislikeControlRef}\n view={view}\n titleKey=\"dislike-variants-title\"\n showVariants\n onSubmit={onSendDislikeInformation}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {isCommentEnabled && feedbackControlRef.current && (\n <SuccessPopup\n visible={commentSuccessPopup.visible}\n anchor={feedbackControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {isCommentEnabled && feedbackControlRef.current && (\n <FeedbackFormPopup\n visible={commentFormPopup.visible}\n anchor={feedbackControlRef}\n view={view}\n titleKey=\"comment-form-title\"\n placeholderKey=\"comment-form-placeholder\"\n onSubmit={onSendComment}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n </React.Fragment>\n );\n};\n\nexport default Feedback;\n"],
5
+ "mappings": "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",
6
+ "names": ["block", "FeedbackView", "React", "LikeControl", "DislikeControl", "FeedbackControl", "SuccessPopup", "FeedbackFormPopup"]
7
7
  }
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { FeedbackView } from '../Feedback';
3
+ type FeedbackControlProps = {
4
+ view: FeedbackView | undefined;
5
+ onClick: () => void;
6
+ };
7
+ declare const FeedbackControl: React.MemoExoticComponent<React.ForwardRefExoticComponent<FeedbackControlProps & React.RefAttributes<HTMLButtonElement>>>;
8
+ export default FeedbackControl;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/Feedback/controls/FeedbackControl.tsx
31
+ var FeedbackControl_exports = {};
32
+ __export(FeedbackControl_exports, {
33
+ default: () => FeedbackControl_default
34
+ });
35
+ module.exports = __toCommonJS(FeedbackControl_exports);
36
+ var import_react = __toESM(require("react"));
37
+ var import_icons = require("@gravity-ui/icons");
38
+ var import_uikit = require("@gravity-ui/uikit");
39
+ var import_bem_cn_lite = __toESM(require("bem-cn-lite"));
40
+ var import_hooks = require("../../../hooks");
41
+ var import_Control = require("../../Control");
42
+ var import_ControlsLayout = require("../../Controls/ControlsLayout");
43
+ var import_Feedback = require("../Feedback");
44
+ var b = (0, import_bem_cn_lite.default)("dc-feedback");
45
+ var FeedbackControl = (0, import_react.memo)(
46
+ (0, import_react.forwardRef)(({ view, onClick }, ref) => {
47
+ const { t } = (0, import_hooks.useTranslation)("feedback");
48
+ const { isVerticalView, popupPosition, controlClassName } = (0, import_react.useContext)(import_ControlsLayout.ControlsLayoutContext);
49
+ if (view === import_Feedback.FeedbackView.Wide) {
50
+ return /* @__PURE__ */ import_react.default.createElement(
51
+ import_uikit.Button,
52
+ {
53
+ view: "flat",
54
+ ref,
55
+ onClick,
56
+ className: b("comment-action", { view })
57
+ },
58
+ /* @__PURE__ */ import_react.default.createElement(import_uikit.Button.Icon, null, /* @__PURE__ */ import_react.default.createElement(import_icons.Comment, { width: 20, height: 20 })),
59
+ t("comment-text")
60
+ );
61
+ }
62
+ return /* @__PURE__ */ import_react.default.createElement(
63
+ import_Control.Control,
64
+ {
65
+ onClick,
66
+ className: b("control", { view }, controlClassName),
67
+ isVerticalView,
68
+ tooltipText: t("comment-text"),
69
+ ref,
70
+ icon: import_icons.Comment,
71
+ popupPosition
72
+ }
73
+ );
74
+ })
75
+ );
76
+ FeedbackControl.displayName = "FeedbackControl";
77
+ var FeedbackControl_default = FeedbackControl;
78
+ //# sourceMappingURL=FeedbackControl.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/Feedback/controls/FeedbackControl.tsx"],
4
+ "sourcesContent": ["import React, {forwardRef, memo, useContext} from 'react';\nimport {Comment} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../../hooks';\nimport {Control} from '../../Control';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\ntype FeedbackControlProps = {\n view: FeedbackView | undefined;\n onClick: () => void;\n};\n\nconst b = block('dc-feedback');\n\nconst FeedbackControl = memo(\n forwardRef<HTMLButtonElement, FeedbackControlProps>(({view, onClick}, ref) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView, popupPosition, controlClassName} = useContext(ControlsLayoutContext);\n\n if (view === FeedbackView.Wide) {\n return (\n <Button\n view=\"flat\"\n ref={ref}\n onClick={onClick}\n className={b('comment-action', {view})}\n >\n <Button.Icon>\n <Comment width={20} height={20} />\n </Button.Icon>\n {t('comment-text')}\n </Button>\n );\n }\n\n return (\n <Control\n onClick={onClick}\n className={b('control', {view}, controlClassName)}\n isVerticalView={isVerticalView}\n tooltipText={t('comment-text')}\n ref={ref}\n icon={Comment}\n popupPosition={popupPosition}\n />\n );\n }),\n);\n\nFeedbackControl.displayName = 'FeedbackControl';\n\nexport default FeedbackControl;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkD;AAClD,mBAAsB;AACtB,mBAAqB;AACrB,yBAAkB;AAElB,mBAA6B;AAC7B,qBAAsB;AACtB,4BAAoC;AACpC,sBAA2B;AAO3B,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAE7B,IAAM,sBAAkB;AAAA,MACpB,yBAAoD,CAAC,EAAC,MAAM,QAAO,GAAG,QAAQ;AAC1E,UAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,UAAM,EAAC,gBAAgB,eAAe,iBAAgB,QAAI,yBAAW,2CAAqB;AAE1F,QAAI,SAAS,6BAAa,MAAM;AAC5B,aACI,6BAAAC,QAAA;AAAA,QAAC;AAAA;AAAA,UACG,MAAK;AAAA,UACL;AAAA,UACA;AAAA,UACA,WAAW,EAAE,kBAAkB,EAAC,KAAI,CAAC;AAAA;AAAA,QAErC,6BAAAA,QAAA,cAAC,oBAAO,MAAP,MACG,6BAAAA,QAAA,cAAC,wBAAQ,OAAO,IAAI,QAAQ,IAAI,CACpC;AAAA,QACC,EAAE,cAAc;AAAA,MACrB;AAAA,IAER;AAEA,WACI,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,WAAW,EAAE,WAAW,EAAC,KAAI,GAAG,gBAAgB;AAAA,QAChD;AAAA,QACA,aAAa,EAAE,cAAc;AAAA,QAC7B;AAAA,QACA,MAAM;AAAA,QACN;AAAA;AAAA,IACJ;AAAA,EAER,CAAC;AACL;AAEA,gBAAgB,cAAc;AAE9B,IAAO,0BAAQ;",
6
+ "names": ["block", "React"]
7
+ }
@@ -8,12 +8,15 @@ export type FormData = {
8
8
  comment: string;
9
9
  answers: string[];
10
10
  };
11
- type DislikeVariantsPopupProps = {
11
+ type FeedbackFormPopupProps = {
12
12
  view: FeedbackView;
13
13
  visible: boolean;
14
14
  anchor: RefObject<HTMLButtonElement>;
15
+ titleKey: string;
16
+ placeholderKey?: string;
17
+ showVariants?: boolean;
15
18
  onOutsideClick: () => void;
16
19
  onSubmit: (data: FormData) => void;
17
20
  };
18
- declare const DislikeVariantsPopup: React.FC<DislikeVariantsPopupProps>;
19
- export default DislikeVariantsPopup;
21
+ declare const FeedbackFormPopup: React.FC<FeedbackFormPopupProps>;
22
+ export default FeedbackFormPopup;
@@ -44,12 +44,12 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
44
44
  ));
45
45
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
46
46
 
47
- // src/components/Feedback/controls/DislikeVariantsPopup.tsx
48
- var DislikeVariantsPopup_exports = {};
49
- __export(DislikeVariantsPopup_exports, {
50
- default: () => DislikeVariantsPopup_default
47
+ // src/components/Feedback/controls/FeedbackFormPopup.tsx
48
+ var FeedbackFormPopup_exports = {};
49
+ __export(FeedbackFormPopup_exports, {
50
+ default: () => FeedbackFormPopup_default
51
51
  });
52
- module.exports = __toCommonJS(DislikeVariantsPopup_exports);
52
+ module.exports = __toCommonJS(FeedbackFormPopup_exports);
53
53
  var import_react = __toESM(require("react"));
54
54
  var import_uikit = require("@gravity-ui/uikit");
55
55
  var import_bem_cn_lite = __toESM(require("bem-cn-lite"));
@@ -58,7 +58,7 @@ var import_utils = require("../../../utils");
58
58
  var import_ControlsLayout = require("../../Controls/ControlsLayout");
59
59
  var import_Feedback = require("../Feedback");
60
60
  var b = (0, import_bem_cn_lite.default)("dc-feedback");
61
- var DislikeVariantsList = (0, import_react.memo)(
61
+ var FeedbackVariantsList = (0, import_react.memo)(
62
62
  (0, import_react.forwardRef)((_props, ref) => {
63
63
  const { t, i18n } = (0, import_hooks.useTranslation)("feedback-variants");
64
64
  const variants = i18n.getResourceBundle(i18n.language, "feedback-variants");
@@ -92,9 +92,9 @@ var DislikeVariantsList = (0, import_react.memo)(
92
92
  )));
93
93
  })
94
94
  );
95
- DislikeVariantsList.displayName = "DislikeVariantsList";
96
- var DislikeVariantsInput = (0, import_react.memo)(
97
- (0, import_react.forwardRef)((_props, ref) => {
95
+ FeedbackVariantsList.displayName = "FeedbackVariantsList";
96
+ var FeedbackCommentInput = (0, import_react.memo)(
97
+ (0, import_react.forwardRef)(({ placeholderKey }, ref) => {
98
98
  const { t } = (0, import_hooks.useTranslation)("feedback");
99
99
  const [feedbackComment, setFeedbackComment] = (0, import_react.useState)("");
100
100
  const onChange = (0, import_react.useCallback)((event) => {
@@ -115,7 +115,7 @@ var DislikeVariantsInput = (0, import_react.memo)(
115
115
  {
116
116
  size: "m",
117
117
  rows: 6,
118
- placeholder: t("comment-placeholder"),
118
+ placeholder: t(placeholderKey),
119
119
  hasClear: true,
120
120
  value: feedbackComment,
121
121
  onChange
@@ -123,9 +123,18 @@ var DislikeVariantsInput = (0, import_react.memo)(
123
123
  ));
124
124
  })
125
125
  );
126
- DislikeVariantsInput.displayName = "DislikeVariantsInput";
127
- var DislikeVariantsPopup = (0, import_react.memo)(
128
- ({ anchor, visible, view, onOutsideClick, onSubmit }) => {
126
+ FeedbackCommentInput.displayName = "FeedbackCommentInput";
127
+ var FeedbackFormPopup = (0, import_react.memo)(
128
+ ({
129
+ anchor,
130
+ visible,
131
+ view,
132
+ titleKey,
133
+ placeholderKey = "comment-placeholder",
134
+ showVariants = false,
135
+ onOutsideClick,
136
+ onSubmit
137
+ }) => {
129
138
  const { t } = (0, import_hooks.useTranslation)("feedback");
130
139
  const { isVerticalView } = (0, import_react.useContext)(import_ControlsLayout.ControlsLayoutContext);
131
140
  const direction = (0, import_uikit.useDirection)();
@@ -160,11 +169,11 @@ var DislikeVariantsPopup = (0, import_react.memo)(
160
169
  placement: position,
161
170
  offset: { mainAxis: 1, crossAxis: 0 }
162
171
  },
163
- /* @__PURE__ */ import_react.default.createElement("h3", { className: b("popup-title") }, t("dislike-variants-title")),
164
- /* @__PURE__ */ import_react.default.createElement("form", { onSubmit: onFormSubmit }, /* @__PURE__ */ import_react.default.createElement(DislikeVariantsList, { ref: feedbackCheckboxes }), /* @__PURE__ */ import_react.default.createElement(DislikeVariantsInput, { ref: feedbackComment }), /* @__PURE__ */ import_react.default.createElement("div", { className: b("variants-actions") }, /* @__PURE__ */ import_react.default.createElement(import_uikit.Button, { view: "action", className: b("variants-action"), type: "submit" }, t("send-action-text"))))
172
+ /* @__PURE__ */ import_react.default.createElement("h3", { className: b("popup-title") }, t(titleKey)),
173
+ /* @__PURE__ */ import_react.default.createElement("form", { onSubmit: onFormSubmit }, showVariants && /* @__PURE__ */ import_react.default.createElement(FeedbackVariantsList, { ref: feedbackCheckboxes }), /* @__PURE__ */ import_react.default.createElement(FeedbackCommentInput, { ref: feedbackComment, placeholderKey }), /* @__PURE__ */ import_react.default.createElement("div", { className: b("variants-actions") }, /* @__PURE__ */ import_react.default.createElement(import_uikit.Button, { view: "action", className: b("variants-action"), type: "submit" }, t("send-action-text"))))
165
174
  );
166
175
  }
167
176
  );
168
- DislikeVariantsPopup.displayName = "FeedbackDislikeVariantsPopup";
169
- var DislikeVariantsPopup_default = DislikeVariantsPopup;
170
- //# sourceMappingURL=DislikeVariantsPopup.js.map
177
+ FeedbackFormPopup.displayName = "FeedbackFormPopup";
178
+ var FeedbackFormPopup_default = FeedbackFormPopup;
179
+ //# sourceMappingURL=FeedbackFormPopup.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../src/components/Feedback/controls/FeedbackFormPopup.tsx"],
4
+ "sourcesContent": ["import type {RefObject, SyntheticEvent} from 'react';\n\nimport React, {\n forwardRef,\n memo,\n useCallback,\n useContext,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {Button, Checkbox, Popup, TextArea, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {PopperPosition, useTranslation} from '../../../hooks';\nimport {getPopupPosition} from '../../../utils';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\nexport interface FeedbackCheckboxes {\n [key: string]: boolean;\n}\n\nconst b = block('dc-feedback');\n\nconst FeedbackVariantsList = memo(\n forwardRef<FormPart<string[]>>((_props, ref) => {\n const {t, i18n} = useTranslation('feedback-variants');\n const variants = i18n.getResourceBundle(i18n.language, 'feedback-variants');\n const [checked, setChecked] = useState({} as FeedbackCheckboxes);\n\n useImperativeHandle(ref, () => {\n return {\n data() {\n return Object.keys(checked)\n .filter((key) => Boolean(checked[key]))\n .map((key) => variants[key]);\n },\n\n clean() {\n setChecked({});\n },\n };\n });\n\n if (!Object.keys(variants).length) {\n return null;\n }\n\n return (\n <div className={b('variants')}>\n {Object.keys(variants).map((variant) => (\n <Checkbox\n key={variant}\n className={b('variant')}\n checked={checked[variant]}\n // uikit Checkbox onUpdate reports only the value, not the variant key\n onUpdate={(state) => {\n setChecked({\n ...checked,\n [variant]: state,\n });\n }}\n content={t(variant)}\n />\n ))}\n </div>\n );\n }),\n);\n\nFeedbackVariantsList.displayName = 'FeedbackVariantsList';\n\nconst FeedbackCommentInput = memo(\n forwardRef<FormPart<string>, {placeholderKey: string}>(({placeholderKey}, ref) => {\n const {t} = useTranslation('feedback');\n const [feedbackComment, setFeedbackComment] = useState('');\n const onChange = useCallback((event: SyntheticEvent) => {\n setFeedbackComment((event.target as HTMLTextAreaElement).value);\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n data() {\n return feedbackComment;\n },\n\n clean() {\n setFeedbackComment('');\n },\n };\n });\n\n return (\n <div className={b('textarea')}>\n <TextArea\n size=\"m\"\n rows={6}\n placeholder={t(placeholderKey)}\n hasClear\n value={feedbackComment}\n onChange={onChange}\n />\n </div>\n );\n }),\n);\n\nFeedbackCommentInput.displayName = 'FeedbackCommentInput';\n\ntype FormPart<T> = {\n data(): T;\n clean(): void;\n};\n\nexport type FormData = {\n comment: string;\n answers: string[];\n};\n\ntype FeedbackFormPopupProps = {\n view: FeedbackView;\n visible: boolean;\n anchor: RefObject<HTMLButtonElement>;\n titleKey: string;\n placeholderKey?: string;\n showVariants?: boolean;\n onOutsideClick: () => void;\n onSubmit: (data: FormData) => void;\n};\n\nconst FeedbackFormPopup: React.FC<FeedbackFormPopupProps> = memo(\n ({\n anchor,\n visible,\n view,\n titleKey,\n placeholderKey = 'comment-placeholder',\n showVariants = false,\n onOutsideClick,\n onSubmit,\n }) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n\n const position = useMemo(() => {\n if (!view || view === FeedbackView.Regular) {\n return getPopupPosition(isVerticalView, direction);\n }\n\n return PopperPosition.RIGHT;\n }, [isVerticalView, view, direction]);\n\n const feedbackComment = useRef<FormPart<string> | null>(null);\n const feedbackCheckboxes = useRef<FormPart<string[]> | null>(null);\n\n const onFormSubmit = useCallback(\n (event: SyntheticEvent) => {\n event.preventDefault();\n\n onSubmit({\n comment: feedbackComment.current?.data() || '',\n answers: feedbackCheckboxes.current?.data() || [],\n });\n\n feedbackComment.current?.clean();\n feedbackCheckboxes.current?.clean();\n },\n [onSubmit],\n );\n\n return (\n <Popup\n anchorElement={anchor.current}\n open={visible}\n onOutsideClick={onOutsideClick}\n className={b('variants-popup', {view})}\n placement={position}\n offset={{mainAxis: 1, crossAxis: 0}}\n >\n <h3 className={b('popup-title')}>{t(titleKey)}</h3>\n <form onSubmit={onFormSubmit}>\n {showVariants && <FeedbackVariantsList ref={feedbackCheckboxes} />}\n <FeedbackCommentInput ref={feedbackComment} placeholderKey={placeholderKey} />\n <div className={b('variants-actions')}>\n <Button view=\"action\" className={b('variants-action')} type={'submit'}>\n {t('send-action-text')}\n </Button>\n </div>\n </form>\n </Popup>\n );\n },\n);\n\nFeedbackFormPopup.displayName = 'FeedbackFormPopup';\n\nexport default FeedbackFormPopup;\n"],
5
+ "mappings": "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",
6
+ "names": ["block", "React"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Gallery/Gallery.scss", "../../../../src/components/Gallery/%3Cinput css _kI1tw%3E"],
3
+ "sources": ["../../../../src/components/Gallery/Gallery.scss", "../../../../src/components/Gallery/%3Cinput css J_haDA%3E"],
4
4
  "sourcesContent": [".dc-gallery__iframe {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n.dc-gallery__media-clickable {\n cursor: pointer;\n}\n", ".dc-gallery__iframe {\n width: 100%;\n height: 100%;\n border: none;\n}\n\n.dc-gallery__media-clickable {\n cursor: pointer;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0dhbGxlcnkiLCJzb3VyY2VzIjpbIkdhbGxlcnkuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJO0VBQ0E7RUFDQTs7O0FBR0o7RUFDSSIsInNvdXJjZXNDb250ZW50IjpbIi5kYy1nYWxsZXJ5X19pZnJhbWUge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBib3JkZXI6IG5vbmU7XG59XG5cbi5kYy1nYWxsZXJ5X19tZWRpYS1jbGlja2FibGUge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cbiJdfQ== */"],
5
5
  "mappings": ";AAAA,CAAA;AACI,SAAA;AACA,UAAA;AACA,UAAA;ACCJ;ADEA,CAAA;AACI,UAAA;ACCJ;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Mark/Mark.scss", "../../../../src/components/Mark/%3Cinput css YW_Zwk%3E"],
3
+ "sources": ["../../../../src/components/Mark/Mark.scss", "../../../../src/components/Mark/%3Cinput css _H-8Jk%3E"],
4
4
  "sourcesContent": [".dc-mark {\n display: inline-block;\n font-weight: bold;\n line-height: 1;\n\n &_color {\n &_blue {\n color: #67b0f8;\n }\n\n &_green {\n color: #56bd67;\n }\n }\n\n &_size {\n &_s {\n font-size: 10px;\n letter-spacing: 0.25px;\n }\n\n &_m {\n font-size: 12px;\n letter-spacing: 0.3px;\n }\n }\n}\n", ".dc-mark {\n display: inline-block;\n font-weight: bold;\n line-height: 1;\n}\n.dc-mark_color_blue {\n color: #67b0f8;\n}\n.dc-mark_color_green {\n color: #56bd67;\n}\n.dc-mark_size_s {\n font-size: 10px;\n letter-spacing: 0.25px;\n}\n.dc-mark_size_m {\n font-size: 12px;\n letter-spacing: 0.3px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL01hcmsiLCJzb3VyY2VzIjpbIk1hcmsuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSTtFQUNJOztBQUdKO0VBQ0k7O0FBS0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi5kYy1tYXJrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAmX2NvbG9yIHtcbiAgICAgICAgJl9ibHVlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjdiMGY4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9ncmVlbiB7XG4gICAgICAgICAgICBjb2xvcjogIzU2YmQ2NztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfc2l6ZSB7XG4gICAgICAgICZfcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4yNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9tIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== */"],
5
5
  "mappings": ";AAAA,CAAA;AACI,WAAA;AACA,eAAA;AACA,eAAA;ACCJ;ADEQ,CAAA;AACI,SAAA;ACAZ;ADGQ,CAAA;AACI,SAAA;ACDZ;ADMQ,CAAA;AACI,aAAA;AACA,kBAAA;ACJZ;ADOQ,CAAA;AACI,aAAA;AACA,kBAAA;ACLZ;",
6
6
  "names": []