@diplodoc/components 4.7.0 → 4.9.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 (116) hide show
  1. package/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
  2. package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  3. package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  4. package/build/cjs/components/Contributors/Contributors.css.map +1 -1
  5. package/build/cjs/components/Control/Control.css.map +1 -1
  6. package/build/cjs/components/Controls/Controls.css.map +1 -1
  7. package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  8. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  9. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  10. package/build/cjs/components/DocLayout/DocLayout.css +13 -1
  11. package/build/cjs/components/DocLayout/DocLayout.css.map +3 -3
  12. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css +10 -0
  13. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +3 -3
  14. package/build/cjs/components/DocPage/DocPage.css +45 -5
  15. package/build/cjs/components/DocPage/DocPage.css.map +3 -3
  16. package/build/cjs/components/DocPage/DocPage.js +14 -3
  17. package/build/cjs/components/DocPage/DocPage.js.map +2 -2
  18. package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
  19. package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
  20. package/build/cjs/components/Feedback/Feedback.css.map +1 -1
  21. package/build/cjs/components/Mark/Mark.css.map +1 -1
  22. package/build/cjs/components/MiniToc/MiniToc.css +16 -1
  23. package/build/cjs/components/MiniToc/MiniToc.css.map +3 -3
  24. package/build/cjs/components/MiniToc/MiniToc.js +1 -1
  25. package/build/cjs/components/MiniToc/MiniToc.js.map +2 -2
  26. package/build/cjs/components/Paginator/Paginator.css.map +1 -1
  27. package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
  28. package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
  29. package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
  30. package/build/cjs/components/SubNavigation/SubNavigation.css +85 -0
  31. package/build/cjs/components/SubNavigation/SubNavigation.css.map +7 -0
  32. package/build/cjs/components/SubNavigation/SubNavigation.d.ts +15 -0
  33. package/build/cjs/components/SubNavigation/SubNavigation.js +175 -0
  34. package/build/cjs/components/SubNavigation/SubNavigation.js.map +7 -0
  35. package/build/cjs/components/SubNavigation/index.d.ts +2 -0
  36. package/build/cjs/components/SubNavigation/index.js +39 -0
  37. package/build/cjs/components/SubNavigation/index.js.map +7 -0
  38. package/build/cjs/components/Subscribe/Subscribe.css.map +1 -1
  39. package/build/cjs/components/Toc/Toc.css +6 -2
  40. package/build/cjs/components/Toc/Toc.css.map +3 -3
  41. package/build/cjs/components/Toc/Toc.js +9 -3
  42. package/build/cjs/components/Toc/Toc.js.map +2 -2
  43. package/build/cjs/components/TocItem/TocItem.css +13 -5
  44. package/build/cjs/components/TocItem/TocItem.css.map +3 -3
  45. package/build/cjs/components/TocItem/TocItem.js +2 -2
  46. package/build/cjs/components/TocItem/TocItem.js.map +2 -2
  47. package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
  48. package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
  49. package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
  50. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  51. package/build/cjs/i18n/index.d.ts +2 -0
  52. package/build/cjs/i18n/index.js +2 -1
  53. package/build/cjs/i18n/index.js.map +2 -2
  54. package/build/cjs/models/index.d.ts +1 -0
  55. package/build/cjs/models/index.js.map +2 -2
  56. package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
  57. package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  58. package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  59. package/build/esm/components/Contributors/Contributors.css.map +1 -1
  60. package/build/esm/components/Control/Control.css.map +1 -1
  61. package/build/esm/components/Controls/Controls.css.map +1 -1
  62. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  63. package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  64. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  65. package/build/esm/components/DocLayout/DocLayout.css +13 -1
  66. package/build/esm/components/DocLayout/DocLayout.css.map +3 -3
  67. package/build/esm/components/DocLeadingPage/DocLeadingPage.css +10 -0
  68. package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +3 -3
  69. package/build/esm/components/DocPage/DocPage.css +45 -5
  70. package/build/esm/components/DocPage/DocPage.css.map +3 -3
  71. package/build/esm/components/DocPage/DocPage.js +14 -3
  72. package/build/esm/components/DocPage/DocPage.js.map +2 -2
  73. package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
  74. package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
  75. package/build/esm/components/Feedback/Feedback.css.map +1 -1
  76. package/build/esm/components/Mark/Mark.css.map +1 -1
  77. package/build/esm/components/MiniToc/MiniToc.css +16 -1
  78. package/build/esm/components/MiniToc/MiniToc.css.map +3 -3
  79. package/build/esm/components/MiniToc/MiniToc.js +1 -1
  80. package/build/esm/components/MiniToc/MiniToc.js.map +2 -2
  81. package/build/esm/components/Paginator/Paginator.css.map +1 -1
  82. package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
  83. package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
  84. package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
  85. package/build/esm/components/SubNavigation/SubNavigation.css +85 -0
  86. package/build/esm/components/SubNavigation/SubNavigation.css.map +7 -0
  87. package/build/esm/components/SubNavigation/SubNavigation.d.ts +15 -0
  88. package/build/esm/components/SubNavigation/SubNavigation.js +144 -0
  89. package/build/esm/components/SubNavigation/SubNavigation.js.map +7 -0
  90. package/build/esm/components/SubNavigation/index.d.ts +2 -0
  91. package/build/esm/components/SubNavigation/index.js +7 -0
  92. package/build/esm/components/SubNavigation/index.js.map +7 -0
  93. package/build/esm/components/Subscribe/Subscribe.css.map +1 -1
  94. package/build/esm/components/Toc/Toc.css +6 -2
  95. package/build/esm/components/Toc/Toc.css.map +3 -3
  96. package/build/esm/components/Toc/Toc.js +9 -3
  97. package/build/esm/components/Toc/Toc.js.map +2 -2
  98. package/build/esm/components/TocItem/TocItem.css +13 -5
  99. package/build/esm/components/TocItem/TocItem.css.map +3 -3
  100. package/build/esm/components/TocItem/TocItem.js +2 -2
  101. package/build/esm/components/TocItem/TocItem.js.map +2 -2
  102. package/build/esm/components/TocLable/TocLabel.css.map +1 -1
  103. package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
  104. package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
  105. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  106. package/build/esm/i18n/index.d.ts +2 -0
  107. package/build/esm/i18n/index.js +2 -1
  108. package/build/esm/i18n/index.js.map +2 -2
  109. package/build/esm/models/index.d.ts +1 -0
  110. package/build/esm/models/index.js.map +2 -2
  111. package/build/index.css.map +1 -1
  112. package/build/themes/common/index.css +1 -1
  113. package/build/themes/common/index.css.map +2 -2
  114. package/package.json +1 -1
  115. package/src/i18n/en.json +1 -0
  116. package/src/i18n/ru.json +1 -0
@@ -0,0 +1,175 @@
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/SubNavigation/SubNavigation.tsx
31
+ var SubNavigation_exports = {};
32
+ __export(SubNavigation_exports, {
33
+ SubNavigation: () => SubNavigation,
34
+ default: () => SubNavigation_default
35
+ });
36
+ module.exports = __toCommonJS(SubNavigation_exports);
37
+ var import_react = __toESM(require("react"));
38
+ var import_icons = require("@gravity-ui/icons");
39
+ var import_uikit = require("@gravity-ui/uikit");
40
+ var import_bem_cn_lite = __toESM(require("bem-cn-lite"));
41
+ var import_SubNavigation = require("./SubNavigation.css");
42
+ var b = (0, import_bem_cn_lite.default)("dc-subnavigation");
43
+ var useVisibility = (miniTocOpened, closeMiniToc) => {
44
+ const [visibility, setVisibility] = (0, import_react.useState)(true);
45
+ const [hiddingTimeout, setHiddingTimeout] = (0, import_react.useState)(void 0);
46
+ const [lastScrollY, setLastScrollY] = (0, import_react.useState)(window.screenY);
47
+ const clickOutsideMiniToc = (0, import_react.useCallback)(
48
+ (event) => {
49
+ const isOutside = !event.composedPath().slice(0, -2).some((item) => {
50
+ var _a;
51
+ const el = item;
52
+ const classes = (_a = el.classList) != null ? _a : [];
53
+ return classes == null ? void 0 : classes.contains("dc-doc-layout__right");
54
+ });
55
+ if (isOutside) {
56
+ closeMiniToc();
57
+ }
58
+ },
59
+ [closeMiniToc]
60
+ );
61
+ const controlVisibility = (0, import_react.useCallback)(() => {
62
+ if (miniTocOpened) {
63
+ setVisibility(true);
64
+ return;
65
+ }
66
+ if (lastScrollY === 0) {
67
+ setVisibility(true);
68
+ }
69
+ if (window.scrollY > lastScrollY) {
70
+ if (hiddingTimeout) {
71
+ return;
72
+ }
73
+ setVisibility(false);
74
+ setHiddingTimeout(
75
+ window.setTimeout(() => {
76
+ window.clearTimeout(hiddingTimeout);
77
+ setHiddingTimeout(void 0);
78
+ }, 300)
79
+ );
80
+ } else if (window.scrollY < lastScrollY) {
81
+ setVisibility(true);
82
+ }
83
+ setLastScrollY(window.scrollY);
84
+ }, [
85
+ miniTocOpened,
86
+ lastScrollY,
87
+ hiddingTimeout,
88
+ setLastScrollY,
89
+ setVisibility,
90
+ setHiddingTimeout
91
+ ]);
92
+ (0, import_react.useEffect)(() => {
93
+ if (window.scrollY === 0) {
94
+ return;
95
+ }
96
+ setHiddingTimeout(
97
+ window.setTimeout(() => {
98
+ setLastScrollY(window.scrollY);
99
+ setHiddingTimeout(void 0);
100
+ }, 100)
101
+ );
102
+ }, []);
103
+ (0, import_react.useEffect)(() => {
104
+ window.addEventListener("scroll", controlVisibility);
105
+ return () => {
106
+ window.removeEventListener("scroll", controlVisibility);
107
+ };
108
+ }, [controlVisibility]);
109
+ (0, import_react.useEffect)(() => {
110
+ document.addEventListener("click", clickOutsideMiniToc, true);
111
+ return () => {
112
+ document.removeEventListener("click", clickOutsideMiniToc, true);
113
+ };
114
+ }, [clickOutsideMiniToc]);
115
+ return visibility;
116
+ };
117
+ var useShareHandler = (title) => {
118
+ const shareData = (0, import_react.useMemo)(() => {
119
+ return {
120
+ title,
121
+ url: window.location.href
122
+ };
123
+ }, [title]);
124
+ const shareHandler = (0, import_react.useCallback)(() => {
125
+ if (navigator && navigator.share) {
126
+ navigator.share(shareData).then(() => {
127
+ }).catch((error) => console.error("Error sharing", error));
128
+ } else {
129
+ console.log("Share not supported", shareData);
130
+ }
131
+ }, [shareData]);
132
+ return shareHandler;
133
+ };
134
+ var SubNavigation = ({
135
+ title,
136
+ hideMiniToc,
137
+ miniTocOpened,
138
+ toggleMiniTocOpen,
139
+ closeMiniToc
140
+ }) => {
141
+ const visibility = useVisibility(miniTocOpened, closeMiniToc);
142
+ const shareHandler = useShareHandler(title);
143
+ return /* @__PURE__ */ import_react.default.createElement(
144
+ "div",
145
+ {
146
+ className: b({
147
+ hidden: !visibility,
148
+ visible: visibility,
149
+ invisible: hideMiniToc
150
+ })
151
+ },
152
+ /* @__PURE__ */ import_react.default.createElement(
153
+ "button",
154
+ {
155
+ className: b("left", { hidden: hideMiniToc }),
156
+ type: "button",
157
+ onClick: toggleMiniTocOpen
158
+ },
159
+ /* @__PURE__ */ import_react.default.createElement("div", { className: b("icon") }, /* @__PURE__ */ import_react.default.createElement(import_icons.SquareListUl, { width: 20, height: 20 })),
160
+ /* @__PURE__ */ import_react.default.createElement("span", { className: b("title") }, title && title.length > 30 ? title.substring(0, 30).trim().concat("...") : title != null ? title : "")
161
+ ),
162
+ /* @__PURE__ */ import_react.default.createElement(
163
+ import_uikit.Button,
164
+ {
165
+ className: b("button"),
166
+ size: "xl",
167
+ view: hideMiniToc ? "raised" : "flat",
168
+ onClick: shareHandler
169
+ },
170
+ /* @__PURE__ */ import_react.default.createElement(import_uikit.Button.Icon, null, /* @__PURE__ */ import_react.default.createElement(import_icons.ArrowShapeTurnUpRight, { width: 20, height: 20 }))
171
+ )
172
+ );
173
+ };
174
+ var SubNavigation_default = SubNavigation;
175
+ //# sourceMappingURL=SubNavigation.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/SubNavigation/SubNavigation.tsx"],
4
+ "sourcesContent": ["import React, {useCallback, useEffect, useMemo, useState} from 'react';\n\nimport {ArrowShapeTurnUpRight, SquareListUl} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport './SubNavigation.scss';\n\nconst b = block('dc-subnavigation');\n\nexport type ShareData = {\n title: string | undefined;\n url?: string;\n};\n\nconst useVisibility = (miniTocOpened: boolean, closeMiniToc: () => void) => {\n const [visibility, setVisibility] = useState(true);\n const [hiddingTimeout, setHiddingTimeout] = useState<number | undefined>(undefined);\n const [lastScrollY, setLastScrollY] = useState(window.screenY);\n\n const clickOutsideMiniToc = useCallback(\n (event: MouseEvent) => {\n /*\n * func \"composedPath\" returns an array in which the last two elements are \"HTML\" and \"#document\",\n * which do not have the classList property, so they are subtracted before checking by slice()\n */\n const isOutside = !event\n .composedPath()\n .slice(0, -2)\n .some((item) => {\n const el = item as HTMLElement;\n const classes = el.classList ?? [];\n\n return classes?.contains('dc-doc-layout__right');\n });\n\n if (isOutside) {\n closeMiniToc();\n }\n },\n [closeMiniToc],\n );\n\n const controlVisibility = useCallback(() => {\n if (miniTocOpened) {\n setVisibility(true);\n return;\n }\n\n if (lastScrollY === 0) {\n setVisibility(true);\n }\n\n if (window.scrollY > lastScrollY) {\n if (hiddingTimeout) {\n return;\n }\n\n setVisibility(false);\n\n setHiddingTimeout(\n window.setTimeout(() => {\n window.clearTimeout(hiddingTimeout);\n setHiddingTimeout(undefined);\n }, 300),\n );\n } else if (window.scrollY < lastScrollY) {\n setVisibility(true);\n }\n\n setLastScrollY(window.scrollY);\n }, [\n miniTocOpened,\n lastScrollY,\n hiddingTimeout,\n setLastScrollY,\n setVisibility,\n setHiddingTimeout,\n ]);\n\n useEffect(() => {\n if (window.scrollY === 0) {\n return;\n }\n\n setHiddingTimeout(\n window.setTimeout(() => {\n setLastScrollY(window.scrollY);\n setHiddingTimeout(undefined);\n }, 100),\n );\n }, []);\n\n useEffect(() => {\n window.addEventListener('scroll', controlVisibility);\n\n return () => {\n window.removeEventListener('scroll', controlVisibility);\n };\n }, [controlVisibility]);\n\n useEffect(() => {\n document.addEventListener('click', clickOutsideMiniToc, true);\n\n return () => {\n document.removeEventListener('click', clickOutsideMiniToc, true);\n };\n }, [clickOutsideMiniToc]);\n\n return visibility;\n};\n\nconst useShareHandler = (title: string | undefined) => {\n const shareData = useMemo(() => {\n return {\n title,\n url: window.location.href,\n };\n }, [title]);\n\n const shareHandler = useCallback(() => {\n if (navigator && navigator.share) {\n navigator\n .share(shareData)\n .then(() => {})\n .catch((error) => console.error('Error sharing', error));\n } else {\n console.log('Share not supported', shareData);\n }\n }, [shareData]);\n\n return shareHandler;\n};\n\nexport interface SubNavigationProps {\n title: string | undefined;\n hideMiniToc: boolean;\n miniTocOpened: boolean;\n toggleMiniTocOpen: () => void;\n closeMiniToc: () => void;\n}\n\nexport const SubNavigation = ({\n title,\n hideMiniToc,\n miniTocOpened,\n toggleMiniTocOpen,\n closeMiniToc,\n}: SubNavigationProps) => {\n const visibility = useVisibility(miniTocOpened, closeMiniToc);\n const shareHandler = useShareHandler(title);\n\n return (\n <div\n className={b({\n hidden: !visibility,\n visible: visibility,\n invisible: hideMiniToc,\n })}\n >\n <button\n className={b('left', {hidden: hideMiniToc})}\n type=\"button\"\n onClick={toggleMiniTocOpen}\n >\n <div className={b('icon')}>\n <SquareListUl width={20} height={20} />\n </div>\n <span className={b('title')}>\n {title && title.length > 30\n ? title.substring(0, 30).trim().concat('...')\n : title ?? ''}\n </span>\n </button>\n <Button\n className={b('button')}\n size=\"xl\"\n view={hideMiniToc ? 'raised' : 'flat'}\n onClick={shareHandler}\n >\n <Button.Icon>\n <ArrowShapeTurnUpRight width={20} height={20} />\n </Button.Icon>\n </Button>\n </div>\n );\n};\n\nexport default SubNavigation;\n"],
5
+ "mappings": "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",
6
+ "names": ["block", "React"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export * from './SubNavigation';
2
+ export { default as SubNavigation } from './SubNavigation';
@@ -0,0 +1,39 @@
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 __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+
31
+ // src/components/SubNavigation/index.ts
32
+ var SubNavigation_exports = {};
33
+ __export(SubNavigation_exports, {
34
+ SubNavigation: () => import_SubNavigation.default
35
+ });
36
+ module.exports = __toCommonJS(SubNavigation_exports);
37
+ __reExport(SubNavigation_exports, require("./SubNavigation"), module.exports);
38
+ var import_SubNavigation = __toESM(require("./SubNavigation"));
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/SubNavigation/index.ts"],
4
+ "sourcesContent": ["export * from './SubNavigation';\nexport {default as SubNavigation} from './SubNavigation';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAAc,4BAAd;AACA,2BAAuC;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Subscribe/home/runner/work/components/components/src/components/Subscribe/Subscribe.scss", "../../../../src/components/Subscribe/%3Cinput%20css%20krO24D%3E", "../../../../src/components/Subscribe/home/runner/work/components/components/src/styles/variables.scss"],
3
+ "sources": ["../../../../src/components/Subscribe/home/runner/work/components/components/src/components/Subscribe/Subscribe.scss", "../../../../src/components/Subscribe/%3Cinput%20css%20BX3GdM%3E", "../../../../src/components/Subscribe/home/runner/work/components/components/src/styles/variables.scss"],
4
4
  "sourcesContent": ["@import '../../styles/mixins';\n@import '../../styles/variables';\n\n$popupWidth: 320px;\n\n@mixin tooltip-in-center {\n @media screen and (max-width: map-get($screenBreakpoints, 'xs')) {\n & {\n // stylelint-disable declaration-no-important\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n }\n}\n\n.dc-subscribe {\n &__container {\n &_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n }\n }\n\n &__container-row {\n display: flex;\n justify-content: center;\n width: 100%;\n padding: 28px;\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 padding: $popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__variants-popup {\n padding: $popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__popup-title {\n font-size: var(--g-text-body2-font-size);\n line-height: var(--g-text-body2-line-height);\n padding-bottom: 8px;\n }\n\n &__popup-text {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n }\n\n &__variants-actions {\n display: flex;\n justify-content: flex-end;\n }\n\n &__variants-action {\n margin-left: 10px;\n }\n\n &__variant__list-item {\n padding: 6px 12px;\n }\n\n &__textarea {\n padding: 8px 0;\n }\n\n &__title {\n &_view_wide {\n font-size: var(--g-text-body2-font-size);\n line-height: var(--g-text-body2-line-height);\n margin-right: 16px;\n font-weight: 400;\n }\n }\n\n &__controls {\n display: flex;\n\n &_view_wide {\n display: flex;\n }\n }\n\n &__control {\n &:last-child {\n font-size: 13px;\n line-height: 18px;\n display: flex;\n align-items: center;\n }\n\n &_view_wide {\n margin-right: 12px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n &_view_regular {\n margin-right: 4px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n}\n", ".dc-subscribe__container_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n}\n.dc-subscribe__container-row {\n display: flex;\n justify-content: center;\n width: 100%;\n padding: 28px;\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n}\n.dc-subscribe__container-row_view_wide {\n display: flex;\n align-items: center;\n}\n.dc-subscribe__success-popup {\n padding: 16px;\n width: 320px;\n}\n@media screen and (max-width: 375px) {\n .dc-subscribe__success-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-subscribe__variants-popup {\n padding: 16px;\n width: 320px;\n}\n@media screen and (max-width: 375px) {\n .dc-subscribe__variants-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-subscribe__popup-title {\n font-size: var(--g-text-body2-font-size);\n line-height: var(--g-text-body2-line-height);\n padding-bottom: 8px;\n}\n.dc-subscribe__popup-text {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-subscribe__variants-actions {\n display: flex;\n justify-content: flex-end;\n}\n.dc-subscribe__variants-action {\n margin-left: 10px;\n}\n.dc-subscribe__variant__list-item {\n padding: 6px 12px;\n}\n.dc-subscribe__textarea {\n padding: 8px 0;\n}\n.dc-subscribe__title_view_wide {\n font-size: var(--g-text-body2-font-size);\n line-height: var(--g-text-body2-line-height);\n margin-right: 16px;\n font-weight: 400;\n}\n.dc-subscribe__controls {\n display: flex;\n}\n.dc-subscribe__controls_view_wide {\n display: flex;\n}\n.dc-subscribe__control:last-child {\n font-size: 13px;\n line-height: 18px;\n display: flex;\n align-items: center;\n}\n.dc-subscribe__control_view_wide {\n margin-right: 12px;\n}\n.dc-subscribe__control_view_wide:last-child {\n margin-right: 0;\n}\n.dc-subscribe__control_view_regular {\n margin-right: 4px;\n}\n.dc-subscribe__control_view_regular:last-child {\n margin-right: 0;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1N1YnNjcmliZSIsInNvdXJjZXMiOlsiU3Vic2NyaWJlLnNjc3MiLCIuLi8uLi9zdHlsZXMvdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBa0JRO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBSVI7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUlSO0VBQ0ksU0NsQ087RURtQ1AsT0F4Q0s7O0FBR1Q7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBdUNSO0VBQ0ksU0MzQ087RUQ0Q1AsT0FqREs7O0FBR1Q7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBZ0RSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJOztBQUVBO0VBQ0k7O0FBS0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFFQTtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcblxuJHBvcHVwV2lkdGg6IDMyMHB4O1xuXG5AbWl4aW4gdG9vbHRpcC1pbi1jZW50ZXIge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAneHMnKSkge1xuICAgICAgICAmIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuICAgICAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRjLXN1YnNjcmliZSB7XG4gICAgJl9fY29udGFpbmVyIHtcbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250YWluZXItcm93IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAyOHB4O1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1wb3B1cCB7XG4gICAgICAgIHBhZGRpbmc6ICRwb3B1cFBhZGRpbmc7XG4gICAgICAgIHdpZHRoOiAkcG9wdXBXaWR0aDtcblxuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b29sdGlwLWluLWNlbnRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMtcG9wdXAge1xuICAgICAgICBwYWRkaW5nOiAkcG9wdXBQYWRkaW5nO1xuICAgICAgICB3aWR0aDogJHBvcHVwV2lkdGg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9vbHRpcC1pbi1jZW50ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3BvcHVwLXRpdGxlIHtcbiAgICAgICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keTItZm9udC1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5Mi1saW5lLWhlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgJl9fcG9wdXAtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMtYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMtYWN0aW9uIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudF9fbGlzdC1pdGVtIHtcbiAgICAgICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgfVxuXG4gICAgJl9fdGV4dGFyZWEge1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHkyLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHkyLWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX3ZpZXdfcmVndWxhciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBTaXplc1xuJGhlYWRlckhlaWdodDogMHB4O1xuJG5vcm1hbE9mZnNldDogMjBweDtcbiRtaW5pVG9jT2Zmc2V0OiA1NnB4O1xuJGJsb2NrTWFyZ2luQm90dG9tTGFyZ2U6IDIwcHg7XG4kYmxvY2tNYXJnaW5Cb3R0b21NZWRpdW06IDE1cHg7XG4kaGVhZGVyTWFyZ2luVG9wTGFyZ2U6IDQwcHg7XG4kaGVhZGVyTWFyZ2luVG9wTWVkaXVtOiAzMnB4O1xuJHBvcHVwUGFkZGluZzogMTZweDtcbiRjZW50ZXJCbG9ja01heFdpZHRoOiA3MzZweDtcblxuJHNjcmVlbkJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzJzogMzc1cHgsXG4gICAgJ3NtJzogNTc3cHgsXG4gICAgJ21kJzogNzY5cHgsXG4gICAgJ2xnJzogMTA4MXB4LFxuICAgICd4bCc6IDExODVweCxcbik7XG4iXX0= */", "// Sizes\n$headerHeight: 0px;\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$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\n);\n"],
5
5
  "mappings": ";AAkBQ,CAAA;AACI,WAAA;AACA,eAAA;AACA,kBAAA;AACA,SAAA;ACjBZ;ADqBI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,SAAA;AACA,WAAA;AAEA,UAAA,IAAA,MAAA,IAAA;AACA,iBAAA;ACpBR;ADsBQ,CAAA;AACI,WAAA;AACA,eAAA;ACpBZ;ADwBI,CAAA;AACI,WAAA;AACA,SAAA;ACtBR;ADfI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;ACiBV;ADpBM,GAAA;AAII,YAAA;ACgBV;AACF;ADsBI,CAAA;AACI,WAAA;AACA,SAAA;ACpBR;AD1BI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AC4BV;AD/BM,GAAA;AAII,YAAA;AC2BV;AACF;ADoBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,kBAAA;AClBR;ADqBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;ACnBR;ADsBI,CAAA;AACI,WAAA;AACA,mBAAA;ACpBR;ADuBI,CAAA;AACI,eAAA;ACrBR;ADwBI,CAAA;AACI,WAAA,IAAA;ACtBR;ADyBI,CAAA;AACI,WAAA,IAAA;ACvBR;AD2BQ,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,gBAAA;AACA,eAAA;ACzBZ;AD6BI,CAAA;AACI,WAAA;AC3BR;AD6BQ,CAAA;AACI,WAAA;AC3BZ;ADgCQ,CAAA,qBAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AC9BZ;ADiCQ,CAAA;AACI,gBAAA;AC/BZ;ADiCY,CAHJ,+BAGI;AACI,gBAAA;AC/BhB;ADmCQ,CAAA;AACI,gBAAA;ACjCZ;ADmCY,CAHJ,kCAGI;AACI,gBAAA;ACjChB;",
6
6
  "names": []
@@ -20,6 +20,7 @@
20
20
  display: flex;
21
21
  align-items: flex-start;
22
22
  padding: 10px 10px 8px 0;
23
+ margin-bottom: 12px;
23
24
  }
24
25
  .dc-toc__top_scrolled {
25
26
  border-bottom: 1px solid var(--g-color-line-generic);
@@ -109,16 +110,19 @@
109
110
  -moz-user-select: none;
110
111
  user-select: none;
111
112
  }
113
+ .dc-toc__list-item_labeled {
114
+ margin-top: 16px;
115
+ }
112
116
  .dc-toc__list-item_main > *:first-child {
113
117
  color: var(--g-color-text-primary);
114
118
  }
115
119
  .dc-toc__list-item:not(.dc-toc__list-item_opened) > .dc-toc__list {
116
120
  display: none;
117
121
  }
118
- .dc-toc__list-item > .dc-toc__list {
122
+ .dc-toc__list-item:not(.dc-toc__list-item_labeled) > .dc-toc__list {
119
123
  padding-left: 20px;
120
124
  }
121
- [dir=rtl] .dc-toc__list-item > .dc-toc__list {
125
+ [dir=rtl] .dc-toc__list-item:not(.dc-toc__list-item_labeled) > .dc-toc__list {
122
126
  padding-right: 20px;
123
127
  }
124
128
  .dc-toc__content > .dc-toc__list {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Toc/home/runner/work/components/components/src/components/Toc/Toc.scss", "../../../../src/components/Toc/%3Cinput%20css%20emTldA%3E", "../../../../src/components/Toc/home/runner/work/components/components/src/styles/mixins.scss"],
4
- "sourcesContent": ["@import '../../styles/variables';\n@import '../../styles/mixins';\n\n$iconSize: 18px;\n$toggleSize: 10px;\n$leftOffset: 57px;\n\n@mixin toc-header {\n @include text-size(body-2);\n font-weight: 500;\n}\n\n.dc-toc {\n $class: &;\n\n display: flex;\n flex-direction: column;\n height: calc(100vh - var(--dc-header-height, #{$headerHeight}));\n overflow-y: hidden;\n border-right: 1px solid var(--g-color-line-generic);\n\n .mobile & {\n border-top: 1px solid var(--g-color-line-generic);\n border-right: none;\n }\n\n &__empty {\n padding: 5px 15px 5px 24px;\n }\n\n &__top {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: flex-start;\n padding: 10px 10px 8px 0;\n\n &_scrolled {\n border-bottom: 1px solid var(--g-color-line-generic);\n }\n\n &-header-icon {\n display: flex;\n margin-right: 5px;\n flex-shrink: 0;\n\n [dir='rtl'] & {\n margin-left: 5px;\n }\n }\n\n &-header {\n flex-grow: 0;\n $headerClass: &;\n position: relative;\n\n @include text-size(body-2);\n font-weight: 500;\n\n &_link {\n @include reset-link-style();\n display: flex;\n align-items: center;\n border-radius: var(--g-focus-border-radius);\n\n &:hover {\n @include link();\n\n color: var(--g-color-text-primary);\n }\n @include focusable();\n }\n }\n }\n\n &__bottom {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n padding: 4px 10px 20px 0;\n\n &_scrolled {\n border-top: 1px solid var(--g-color-line-generic);\n }\n }\n\n &__content {\n --g-scrollbar-width: 6px;\n\n position: relative;\n flex-grow: 1;\n overflow-y: auto;\n scrollbar-width: thin;\n\n &_offset_top {\n padding-top: 24px;\n }\n }\n\n &__list {\n @include reset-list-style();\n\n display: block;\n\n &-item {\n cursor: pointer;\n user-select: none;\n\n &_main > *:first-child {\n color: var(--g-color-text-primary);\n }\n\n &:not(&_opened) > #{$class}__list {\n display: none;\n }\n\n // recurcive padding\n > #{$class}__list {\n padding-left: 20px;\n\n [dir='rtl'] & {\n padding-right: 20px;\n }\n }\n }\n }\n\n &__content > &__list {\n padding-right: 21px;\n padding-bottom: 30px;\n }\n}\n", ".dc-toc {\n display: flex;\n flex-direction: column;\n height: calc(100vh - var(--dc-header-height, 0px));\n overflow-y: hidden;\n border-right: 1px solid var(--g-color-line-generic);\n}\n.mobile .dc-toc {\n border-top: 1px solid var(--g-color-line-generic);\n border-right: none;\n}\n.dc-toc__empty {\n padding: 5px 15px 5px 24px;\n}\n.dc-toc__top {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: flex-start;\n padding: 10px 10px 8px 0;\n}\n.dc-toc__top_scrolled {\n border-bottom: 1px solid var(--g-color-line-generic);\n}\n.dc-toc__top-header-icon {\n display: flex;\n margin-right: 5px;\n flex-shrink: 0;\n}\n[dir=rtl] .dc-toc__top-header-icon {\n margin-left: 5px;\n}\n.dc-toc__top-header {\n flex-grow: 0;\n position: relative;\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n font-weight: 500;\n}\n.dc-toc__top-header_link {\n color: inherit;\n text-decoration: none;\n display: flex;\n align-items: center;\n border-radius: var(--g-focus-border-radius);\n}\n.dc-toc__top-header_link:hover {\n outline: none;\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n color: var(--g-color-text-primary);\n}\n.utilityfocus .dc-toc__top-header_link:hover:focus {\n outline: 2px solid #ffdb4d;\n}\n.dc-toc__top-header_link:hover:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.dc-toc__top-header_link:hover:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.dc-toc__top-header_link:hover:hover, .dc-toc__top-header_link:hover:active {\n color: var(--g-color-text-link-hover);\n}\n.dc-toc__top-header_link:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: 0;\n}\n.dc-toc__top-header_link:focus:not(:focus-visible) {\n outline: 0;\n}\n.dc-toc__bottom {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n padding: 4px 10px 20px 0;\n}\n.dc-toc__bottom_scrolled {\n border-top: 1px solid var(--g-color-line-generic);\n}\n.dc-toc__content {\n --g-scrollbar-width: 6px;\n position: relative;\n flex-grow: 1;\n overflow-y: auto;\n scrollbar-width: thin;\n}\n.dc-toc__content_offset_top {\n padding-top: 24px;\n}\n.dc-toc__list {\n margin: 0;\n padding: 0;\n list-style: none;\n display: block;\n}\n.dc-toc__list-item {\n cursor: pointer;\n user-select: none;\n}\n.dc-toc__list-item_main > *:first-child {\n color: var(--g-color-text-primary);\n}\n.dc-toc__list-item:not(.dc-toc__list-item_opened) > .dc-toc__list {\n display: none;\n}\n.dc-toc__list-item > .dc-toc__list {\n padding-left: 20px;\n}\n[dir=rtl] .dc-toc__list-item > .dc-toc__list {\n padding-right: 20px;\n}\n.dc-toc__content > .dc-toc__list {\n padding-right: 21px;\n padding-bottom: 30px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1RvYyIsInNvdXJjZXMiOlsiVG9jLnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUVBO0VDbkRSO0VBQ0E7RURxRFE7O0FBRUE7RUN4Q1I7RUFDQTtFRHlDWTtFQUNBO0VBQ0E7O0FBRUE7RUN6Q1o7RUFpQ0E7RUFDQTtFQUNBO0VBQ0E7RURRZ0I7O0FDMUNoQjtFQUNJOztBQWdCQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSTs7QUFjUjtFQUVJOztBQS9CQTtFQUNJO0VBQ0EsZ0JBSmM7O0FBTWxCO0VBQ0k7O0FEcUNSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7RUFFQTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJOztBQUlSO0VDNUZBO0VBQ0E7RUFDQTtFRDZGSTs7QUFFQTtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFHSjtFQUNJOztBQUlKO0VBQ0k7O0FBRUE7RUFDSTs7QUFNaEI7RUFDSTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuJGljb25TaXplOiAxOHB4O1xuJHRvZ2dsZVNpemU6IDEwcHg7XG4kbGVmdE9mZnNldDogNTdweDtcblxuQG1peGluIHRvYy1oZWFkZXIge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTIpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5kYy10b2Mge1xuICAgICRjbGFzczogJjtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAjeyRoZWFkZXJIZWlnaHR9KSk7XG4gICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcblxuICAgIC5tb2JpbGUgJiB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG4gICAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICB9XG5cbiAgICAmX19lbXB0eSB7XG4gICAgICAgIHBhZGRpbmc6IDVweCAxNXB4IDVweCAyNHB4O1xuICAgIH1cblxuICAgICZfX3RvcCB7XG4gICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDEwcHggOHB4IDA7XG5cbiAgICAgICAgJl9zY3JvbGxlZCB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1oZWFkZXItaWNvbiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcblxuICAgICAgICAgICAgW2Rpcj0ncnRsJ10gJiB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYtaGVhZGVyIHtcbiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDtcbiAgICAgICAgICAgICRoZWFkZXJDbGFzczogJjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMik7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgICAgICAgICAmX2xpbmsge1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIHJlc2V0LWxpbmstc3R5bGUoKTtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBsaW5rKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9jdXNhYmxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19ib3R0b20ge1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiA0cHggMTBweCAyMHB4IDA7XG5cbiAgICAgICAgJl9zY3JvbGxlZCB7XG4gICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCB7XG4gICAgICAgIC0tZy1zY3JvbGxiYXItd2lkdGg6IDZweDtcblxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICAgICAgc2Nyb2xsYmFyLXdpZHRoOiB0aGluO1xuXG4gICAgICAgICZfb2Zmc2V0X3RvcCB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMjRweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBAaW5jbHVkZSByZXNldC1saXN0LXN0eWxlKCk7XG5cbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgJi1pdGVtIHtcbiAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgICAgIHVzZXItc2VsZWN0OiBub25lO1xuXG4gICAgICAgICAgICAmX21haW4gPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgmX29wZW5lZCkgPiAjeyRjbGFzc31fX2xpc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHJlY3VyY2l2ZSBwYWRkaW5nXG4gICAgICAgICAgICA+ICN7JGNsYXNzfV9fbGlzdCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAyMHB4O1xuXG4gICAgICAgICAgICAgICAgW2Rpcj0ncnRsJ10gJiB7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGVudCA+ICZfX2xpc3Qge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAyMXB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMzBweDtcbiAgICB9XG59XG4iLCJAaW1wb3J0ICcuL3ZhcmlhYmxlcyc7XG5cbkBtaXhpbiB0ZXh0LXNpemUoJG5hbWUpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtI3skbmFtZX0tbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSgpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5AbWl4aW4gZml4QW5jaG9yUG9zaXRpb24oJG9mZnNldDogMHB4KSB7XG4gICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3skaGVhZGVySGVpZ2h0fSkpO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoI3skb2Zmc2V0fSAtIHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7JGhlYWRlckhlaWdodH0pKTtcbn1cblxuQG1peGluIHJlc2V0LWxpbmstc3R5bGUoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaXNsYW5kcy1mb2N1cygpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLnV0aWxpdHlmb2N1cyAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICNmZmRiNGQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXNhYmxlKCRvZmZzZXQ6IDAsICRtb2RlOiAnb3V0bGluZScpIHtcbiAgICBAaWYgJG1vZGUgPT0gJ291dGxpbmUnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRtb2RlID09ICdib3gtc2hhZG93JyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGluaygpIHtcbiAgICBAaW5jbHVkZSBpc2xhbmRzLWZvY3VzKCk7XG4gICAgQGluY2x1ZGUgZm9jdXNhYmxlKDAsICdib3gtc2hhZG93Jyk7XG5cbiAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmstaG92ZXIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcxKCkge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTMpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0yKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMigpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0xKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AbWl4aW4gaGVhZGluZzMoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0yKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AbWl4aW4gaGVhZGluZzQoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0xKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AbWl4aW4gaGVhZGluZzUoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQG1peGluIGhlYWRpbmc2KCkge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG59XG5cbkBtaXhpbiBjb250cmlidXRvcnMtdGV4dCgpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0ZXh0LWJvZHktMSgpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LWZvbnQtd2VpZ2h0KTtcbn1cblxuQG1peGluIGRlc2t0b3Atb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGRlc2t0b3AtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iXX0= */", "@import './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, #{$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{$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 @include islands-focus();\n @include focusable(0, 'box-shadow');\n\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n @include text-size(display-3);\n font-weight: 500;\n\n @media (max-width: map-get($screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n @include text-size(display-1);\n font-weight: 500;\n}\n\n@mixin heading3() {\n @include text-size(header-2);\n font-weight: 500;\n}\n\n@mixin heading4() {\n @include text-size(header-1);\n font-weight: 500;\n}\n\n@mixin heading5() {\n @include text-size(body-3);\n font-weight: 500;\n}\n\n@mixin heading6() {\n @include text-size(body-3);\n font-weight: 400;\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($screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map-get($screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map-get($screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map-get($screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n"],
5
- "mappings": ";AAYA,CAAA;AAGI,WAAA;AACA,kBAAA;AACA,UAAA,KAAA,MAAA,EAAA;AAAA,UAAA,KAAA,MAAA,EAAA,IAAA,kBAAA,EAAA;AACA,cAAA;AACA,gBAAA,IAAA,MAAA,IAAA;ACbJ;ADeI,CAAA,OAAA,CATJ;AAUQ,cAAA,IAAA,MAAA,IAAA;AACA,gBAAA;ACbR;ADgBI,CAAA;AACI,WAAA,IAAA,KAAA,IAAA;ACdR;ADiBI,CAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AACA,WAAA,KAAA,KAAA,IAAA;ACfR;ADiBQ,CAAA;AACI,iBAAA,IAAA,MAAA,IAAA;ACfZ;ADkBQ,CAAA;AACI,WAAA;AACA,gBAAA;AACA,eAAA;AChBZ;ADkBY,CAAA,SAAA,CALJ;AAMQ,eAAA;AChBhB;ADoBQ,CAAA;AACI,aAAA;AAEA,YAAA;AEnDR,aAAA,IAAA;AACA,eAAA,IAAA;AFqDQ,eAAA;ACnBZ;ADqBY,CAAA;AExCR,SAAA;AACA,2BAAA;AAAA,mBAAA;AFyCY,WAAA;AACA,eAAA;AACA,iBAAA,IAAA;AClBhB;ADoBgB,CANJ,uBAMI;AEzCZ,WAAA;AAiCA,SAAA,IAAA;AACA,2BAAA;AAAA,mBAAA;AACA,UAAA;AACA,iBAAA,IAAA;AFQgB,SAAA,IAAA;ACfpB;AC3BI,CAAA,aAAA,CFiCQ,uBEjCR,MAAA;AACI,WAAA,IAAA,MAAA;AD6BR;ACbQ,CFgBI,uBEhBJ,MAAA;AACI,cAAA,EAAA,EAAA,EAAA,IAAA,IAAA;AACA,WAAA;ADeZ;ACbQ,CFYI,uBEZJ,MAAA,MAAA,KAAA;AACI,cAAA;ADeZ;ACDI,CFHQ,uBEGR,MAAA;AAAA,CFHQ,uBEGR,MAAA;AAEI,SAAA,IAAA;ADER;ACjCQ,CF0BI,uBE1BJ;AACI,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;ADmCZ;ACjCQ,CFsBI,uBEtBJ,MAAA,KAAA;AACI,WAAA;ADmCZ;ADEI,CAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AACA,WAAA,IAAA,KAAA,KAAA;ACAR;ADEQ,CAAA;AACI,cAAA,IAAA,MAAA,IAAA;ACAZ;ADII,CAAA;AACI,uBAAA;AAEA,YAAA;AACA,aAAA;AACA,cAAA;AACA,mBAAA;ACHR;ADKQ,CAAA;AACI,eAAA;ACHZ;ADOI,CAAA;AE5FA,UAAA;AACA,WAAA;AACA,cAAA;AF6FI,WAAA;ACJR;ADMQ,CAAA;AACI,UAAA;AACA,uBAAA;AAAA,oBAAA;AAAA,eAAA;ACJZ;ADMY,CAAA,uBAAA,EAAA,CAAA;AACI,SAAA,IAAA;ACJhB;ADOY,CARJ,iBAQI,KAAA,CAAA,0BAAA,EAAA,CAbR;AAcY,WAAA;ACLhB;ADSY,CAbJ,kBAaI,EAAA,CAlBR;AAmBY,gBAAA;ACPhB;ADSgB,CAAA,SAAA,CAhBR,kBAgBQ,EAAA,CArBZ;AAsBgB,iBAAA;ACPpB;ADaI,CAzCA,gBAyCA,EAAA,CA5BA;AA6BI,iBAAA;AACA,kBAAA;ACXR;",
3
+ "sources": ["../../../../src/components/Toc/home/runner/work/components/components/src/components/Toc/Toc.scss", "../../../../src/components/Toc/%3Cinput%20css%20sF8HkC%3E", "../../../../src/components/Toc/home/runner/work/components/components/src/styles/mixins.scss"],
4
+ "sourcesContent": ["@import '../../styles/variables';\n@import '../../styles/mixins';\n\n$iconSize: 18px;\n$toggleSize: 10px;\n$leftOffset: 57px;\n\n@mixin toc-header {\n @include text-size(body-2);\n font-weight: 500;\n}\n\n.dc-toc {\n $class: &;\n\n display: flex;\n flex-direction: column;\n height: calc(100vh - var(--dc-header-height, #{$headerHeight}));\n overflow-y: hidden;\n border-right: 1px solid var(--g-color-line-generic);\n\n .mobile & {\n border-top: 1px solid var(--g-color-line-generic);\n border-right: none;\n }\n\n &__empty {\n padding: 5px 15px 5px 24px;\n }\n\n &__top {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: flex-start;\n padding: 10px 10px 8px 0;\n margin-bottom: 12px;\n\n &_scrolled {\n border-bottom: 1px solid var(--g-color-line-generic);\n }\n\n &-header-icon {\n display: flex;\n margin-right: 5px;\n flex-shrink: 0;\n\n [dir='rtl'] & {\n margin-left: 5px;\n }\n }\n\n &-header {\n flex-grow: 0;\n $headerClass: &;\n position: relative;\n\n @include text-size(body-2);\n font-weight: 500;\n\n &_link {\n @include reset-link-style();\n display: flex;\n align-items: center;\n border-radius: var(--g-focus-border-radius);\n\n &:hover {\n @include link();\n\n color: var(--g-color-text-primary);\n }\n @include focusable();\n }\n }\n }\n\n &__bottom {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n padding: 4px 10px 20px 0;\n\n &_scrolled {\n border-top: 1px solid var(--g-color-line-generic);\n }\n }\n\n &__content {\n --g-scrollbar-width: 6px;\n\n position: relative;\n flex-grow: 1;\n overflow-y: auto;\n scrollbar-width: thin;\n\n &_offset_top {\n padding-top: 24px;\n }\n }\n\n &__list {\n @include reset-list-style();\n\n display: block;\n\n &-item {\n cursor: pointer;\n user-select: none;\n\n &_labeled {\n margin-top: 16px;\n }\n\n &_main > *:first-child {\n color: var(--g-color-text-primary);\n }\n\n &:not(&_opened) > #{$class}__list {\n display: none;\n }\n\n // recurcive padding\n &:not(&_labeled) > #{$class}__list {\n padding-left: 20px;\n\n [dir='rtl'] & {\n padding-right: 20px;\n }\n }\n }\n }\n\n &__content > &__list {\n padding-right: 21px;\n padding-bottom: 30px;\n }\n}\n", ".dc-toc {\n display: flex;\n flex-direction: column;\n height: calc(100vh - var(--dc-header-height, 0px));\n overflow-y: hidden;\n border-right: 1px solid var(--g-color-line-generic);\n}\n.mobile .dc-toc {\n border-top: 1px solid var(--g-color-line-generic);\n border-right: none;\n}\n.dc-toc__empty {\n padding: 5px 15px 5px 24px;\n}\n.dc-toc__top {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: flex-start;\n padding: 10px 10px 8px 0;\n margin-bottom: 12px;\n}\n.dc-toc__top_scrolled {\n border-bottom: 1px solid var(--g-color-line-generic);\n}\n.dc-toc__top-header-icon {\n display: flex;\n margin-right: 5px;\n flex-shrink: 0;\n}\n[dir=rtl] .dc-toc__top-header-icon {\n margin-left: 5px;\n}\n.dc-toc__top-header {\n flex-grow: 0;\n position: relative;\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n font-weight: 500;\n}\n.dc-toc__top-header_link {\n color: inherit;\n text-decoration: none;\n display: flex;\n align-items: center;\n border-radius: var(--g-focus-border-radius);\n}\n.dc-toc__top-header_link:hover {\n outline: none;\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n color: var(--g-color-text-primary);\n}\n.utilityfocus .dc-toc__top-header_link:hover:focus {\n outline: 2px solid #ffdb4d;\n}\n.dc-toc__top-header_link:hover:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.dc-toc__top-header_link:hover:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.dc-toc__top-header_link:hover:hover, .dc-toc__top-header_link:hover:active {\n color: var(--g-color-text-link-hover);\n}\n.dc-toc__top-header_link:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: 0;\n}\n.dc-toc__top-header_link:focus:not(:focus-visible) {\n outline: 0;\n}\n.dc-toc__bottom {\n flex-grow: 0;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n padding: 4px 10px 20px 0;\n}\n.dc-toc__bottom_scrolled {\n border-top: 1px solid var(--g-color-line-generic);\n}\n.dc-toc__content {\n --g-scrollbar-width: 6px;\n position: relative;\n flex-grow: 1;\n overflow-y: auto;\n scrollbar-width: thin;\n}\n.dc-toc__content_offset_top {\n padding-top: 24px;\n}\n.dc-toc__list {\n margin: 0;\n padding: 0;\n list-style: none;\n display: block;\n}\n.dc-toc__list-item {\n cursor: pointer;\n user-select: none;\n}\n.dc-toc__list-item_labeled {\n margin-top: 16px;\n}\n.dc-toc__list-item_main > *:first-child {\n color: var(--g-color-text-primary);\n}\n.dc-toc__list-item:not(.dc-toc__list-item_opened) > .dc-toc__list {\n display: none;\n}\n.dc-toc__list-item:not(.dc-toc__list-item_labeled) > .dc-toc__list {\n padding-left: 20px;\n}\n[dir=rtl] .dc-toc__list-item:not(.dc-toc__list-item_labeled) > .dc-toc__list {\n padding-right: 20px;\n}\n.dc-toc__content > .dc-toc__list {\n padding-right: 21px;\n padding-bottom: 30px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1RvYyIsInNvdXJjZXMiOlsiVG9jLnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUE7RUFHSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTs7QUFJUjtFQUNJO0VBRUE7RUNwRFI7RUFDQTtFRHNEUTs7QUFFQTtFQ3pDUjtFQUNBO0VEMENZO0VBQ0E7RUFDQTs7QUFFQTtFQzFDWjtFQWlDQTtFQUNBO0VBQ0E7RUFDQTtFRFNnQjs7QUMzQ2hCO0VBQ0k7O0FBZ0JBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQWNSO0VBRUk7O0FBL0JBO0VBQ0k7RUFDQSxnQkFKYzs7QUFNbEI7RUFDSTs7QURzQ1I7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTtFQUVBO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUM3RkE7RUFDQTtFQUNBO0VEOEZJOztBQUVBO0VBQ0k7RUFDQTs7QUFFQTtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFJSjtFQUNJOztBQUVBO0VBQ0k7O0FBTWhCO0VBQ0k7RUFDQSIsInNvdXJjZXNDb250ZW50IjpbIkBpbXBvcnQgJy4uLy4uL3N0eWxlcy92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5cbiRpY29uU2l6ZTogMThweDtcbiR0b2dnbGVTaXplOiAxMHB4O1xuJGxlZnRPZmZzZXQ6IDU3cHg7XG5cbkBtaXhpbiB0b2MtaGVhZGVyIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0yKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uZGMtdG9jIHtcbiAgICAkY2xhc3M6ICY7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3skaGVhZGVySGVpZ2h0fSkpO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG5cbiAgICAubW9iaWxlICYge1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gICAgfVxuXG4gICAgJl9fZW1wdHkge1xuICAgICAgICBwYWRkaW5nOiA1cHggMTVweCA1cHggMjRweDtcbiAgICB9XG5cbiAgICAmX190b3Age1xuICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgICAgcGFkZGluZzogMTBweCAxMHB4IDhweCAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuXG4gICAgICAgICZfc2Nyb2xsZWQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaGVhZGVyLWljb24ge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgICAgICAgICAgZmxleC1zaHJpbms6IDA7XG5cbiAgICAgICAgICAgIFtkaXI9J3J0bCddICYge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiA1cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLWhlYWRlciB7XG4gICAgICAgICAgICBmbGV4LWdyb3c6IDA7XG4gICAgICAgICAgICAkaGVhZGVyQ2xhc3M6ICY7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTIpO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgICAgICAgICAgJl9saW5rIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSByZXNldC1saW5rLXN0eWxlKCk7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWctZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAgICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbGluaygpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fYm90dG9tIHtcbiAgICAgICAgZmxleC1ncm93OiAwO1xuICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogNHB4IDEwcHggMjBweCAwO1xuXG4gICAgICAgICZfc2Nyb2xsZWQge1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRlbnQge1xuICAgICAgICAtLWctc2Nyb2xsYmFyLXdpZHRoOiA2cHg7XG5cbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgICAgIHNjcm9sbGJhci13aWR0aDogdGhpbjtcblxuICAgICAgICAmX29mZnNldF90b3Age1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDI0cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19saXN0IHtcbiAgICAgICAgQGluY2x1ZGUgcmVzZXQtbGlzdC1zdHlsZSgpO1xuXG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICYtaXRlbSB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcblxuICAgICAgICAgICAgJl9sYWJlbGVkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX21haW4gPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXByaW1hcnkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOm5vdCgmX29wZW5lZCkgPiAjeyRjbGFzc31fX2xpc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIHJlY3VyY2l2ZSBwYWRkaW5nXG4gICAgICAgICAgICAmOm5vdCgmX2xhYmVsZWQpID4gI3skY2xhc3N9X19saXN0IHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG5cbiAgICAgICAgICAgICAgICBbZGlyPSdydGwnXSAmIHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMjBweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250ZW50ID4gJl9fbGlzdCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDIxcHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAzMHB4O1xuICAgIH1cbn1cbiIsIkBpbXBvcnQgJy4vdmFyaWFibGVzJztcblxuQG1peGluIHRleHQtc2l6ZSgkbmFtZSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlKCkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbkBtaXhpbiBmaXhBbmNob3JQb3NpdGlvbigkb2Zmc2V0OiAwcHgpIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAjeyRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3skaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcbiAgICBAaW5jbHVkZSBmb2N1c2FibGUoMCwgJ2JveC1zaGFkb3cnKTtcblxuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nMygpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTEpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG5AbWl4aW4gaGVhZGluZzYoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVza3RvcC10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiJdfQ== */", "@import './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, #{$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{$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 @include islands-focus();\n @include focusable(0, 'box-shadow');\n\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n @include text-size(display-3);\n font-weight: 500;\n\n @media (max-width: map-get($screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n @include text-size(display-1);\n font-weight: 500;\n}\n\n@mixin heading3() {\n @include text-size(header-2);\n font-weight: 500;\n}\n\n@mixin heading4() {\n @include text-size(header-1);\n font-weight: 500;\n}\n\n@mixin heading5() {\n @include text-size(body-3);\n font-weight: 500;\n}\n\n@mixin heading6() {\n @include text-size(body-3);\n font-weight: 400;\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($screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map-get($screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map-get($screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map-get($screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n"],
5
+ "mappings": ";AAYA,CAAA;AAGI,WAAA;AACA,kBAAA;AACA,UAAA,KAAA,MAAA,EAAA;AAAA,UAAA,KAAA,MAAA,EAAA,IAAA,kBAAA,EAAA;AACA,cAAA;AACA,gBAAA,IAAA,MAAA,IAAA;ACbJ;ADeI,CAAA,OAAA,CATJ;AAUQ,cAAA,IAAA,MAAA,IAAA;AACA,gBAAA;ACbR;ADgBI,CAAA;AACI,WAAA,IAAA,KAAA,IAAA;ACdR;ADiBI,CAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AACA,WAAA,KAAA,KAAA,IAAA;AACA,iBAAA;ACfR;ADiBQ,CAAA;AACI,iBAAA,IAAA,MAAA,IAAA;ACfZ;ADkBQ,CAAA;AACI,WAAA;AACA,gBAAA;AACA,eAAA;AChBZ;ADkBY,CAAA,SAAA,CALJ;AAMQ,eAAA;AChBhB;ADoBQ,CAAA;AACI,aAAA;AAEA,YAAA;AEpDR,aAAA,IAAA;AACA,eAAA,IAAA;AFsDQ,eAAA;ACnBZ;ADqBY,CAAA;AEzCR,SAAA;AACA,2BAAA;AAAA,mBAAA;AF0CY,WAAA;AACA,eAAA;AACA,iBAAA,IAAA;AClBhB;ADoBgB,CANJ,uBAMI;AE1CZ,WAAA;AAiCA,SAAA,IAAA;AACA,2BAAA;AAAA,mBAAA;AACA,UAAA;AACA,iBAAA,IAAA;AFSgB,SAAA,IAAA;ACfpB;AC5BI,CAAA,aAAA,CFkCQ,uBElCR,MAAA;AACI,WAAA,IAAA,MAAA;AD8BR;ACdQ,CFiBI,uBEjBJ,MAAA;AACI,cAAA,EAAA,EAAA,EAAA,IAAA,IAAA;AACA,WAAA;ADgBZ;ACdQ,CFaI,uBEbJ,MAAA,MAAA,KAAA;AACI,cAAA;ADgBZ;ACFI,CFFQ,uBEER,MAAA;AAAA,CFFQ,uBEER,MAAA;AAEI,SAAA,IAAA;ADGR;AClCQ,CF2BI,uBE3BJ;AACI,WAAA,IAAA,MAAA,IAAA;AACA,kBAAA;ADoCZ;AClCQ,CFuBI,uBEvBJ,MAAA,KAAA;AACI,WAAA;ADoCZ;ADEI,CAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AACA,WAAA,IAAA,KAAA,KAAA;ACAR;ADEQ,CAAA;AACI,cAAA,IAAA,MAAA,IAAA;ACAZ;ADII,CAAA;AACI,uBAAA;AAEA,YAAA;AACA,aAAA;AACA,cAAA;AACA,mBAAA;ACHR;ADKQ,CAAA;AACI,eAAA;ACHZ;ADOI,CAAA;AE7FA,UAAA;AACA,WAAA;AACA,cAAA;AF8FI,WAAA;ACJR;ADMQ,CAAA;AACI,UAAA;AACA,uBAAA;AAAA,oBAAA;AAAA,eAAA;ACJZ;ADMY,CAAA;AACI,cAAA;ACJhB;ADOY,CAAA,uBAAA,EAAA,CAAA;AACI,SAAA,IAAA;ACLhB;ADQY,CAZJ,iBAYI,KAAA,CAAA,0BAAA,EAAA,CAjBR;AAkBY,WAAA;ACNhB;ADUY,CAjBJ,iBAiBI,KAAA,CAbA,2BAaA,EAAA,CAtBR;AAuBY,gBAAA;ACRhB;ADUgB,CAAA,SAAA,CApBR,iBAoBQ,KAAA,CAhBJ,2BAgBI,EAAA,CAzBZ;AA0BgB,iBAAA;ACRpB;ADcI,CA7CA,gBA6CA,EAAA,CAhCA;AAiCI,iBAAA;AACA,kBAAA;ACZR;",
6
6
  "names": []
7
7
  }
@@ -96,15 +96,21 @@ var Toc = class extends import_react.default.Component {
96
96
  const active = singlePage && !activeId && index === 0 && main || item.id === activeId;
97
97
  const opened = fixedById[item.id] === "opened";
98
98
  const closed = fixedById[item.id] === "closed";
99
- const expandable = Boolean(item.items && item.items.length > 0);
100
- const expanded = expandable && !closed && (item.expanded || activeScope[item.id] || opened);
99
+ const hasItems = Boolean(item.items && item.items.length > 0);
100
+ const expandable = hasItems && !item.labeled;
101
+ const expanded = expandable && !closed && (item.expanded || activeScope[item.id] || opened) || hasItems && Boolean(item.labeled);
101
102
  const ref = active ? { ref: this.activeRef } : {};
102
103
  return /* @__PURE__ */ import_react.default.createElement(
103
104
  "li",
104
105
  {
105
106
  key: item.id,
106
107
  id: item.id,
107
- className: b("list-item", { main, active, opened: expanded })
108
+ className: b("list-item", {
109
+ main,
110
+ active,
111
+ opened: expanded,
112
+ labeled: item.labeled
113
+ })
108
114
  },
109
115
  /* @__PURE__ */ import_react.default.createElement(
110
116
  import_TocItem.TocItem,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Toc/Toc.tsx"],
4
- "sourcesContent": ["import React from 'react';\n\nimport {getUniqId} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport omit from 'lodash/omit';\n\nimport {PopperPosition} from '../../hooks';\nimport {ControlSizes, Router, TocData, TocItem} from '../../models';\nimport {isActiveItem, normalizeHash, normalizePath} from '../../utils';\nimport {Controls, ControlsLayout} from '../Controls';\nimport {HTML} from '../HTML';\nimport {TocItem as Item} from '../TocItem';\nimport TocLabel from '../TocLable/TocLabel';\n\nimport {TocItemRegistry} from './TocItemRegistry';\n\nimport './Toc.scss';\n\nconst b = block('dc-toc');\nconst HEADER_DEFAULT_HEIGHT = 0;\n\nfunction zip<T>(array: string[], fill: T): Record<string, T> {\n return array.reduce((acc, item) => Object.assign(acc, {[item]: fill}), {});\n}\n\nexport interface TocProps extends TocData {\n router: Router;\n headerHeight?: number;\n tocTitleIcon?: React.ReactNode;\n hideTocHeader?: boolean;\n singlePage?: boolean;\n onChangeSinglePage?: (value: boolean) => void;\n pdfLink?: string;\n}\n\ninterface TocState {\n activeId: string | null | undefined;\n fixedById: Record<string, 'opened' | 'closed'>;\n contentScrolled: boolean;\n registry: TocItemRegistry;\n}\n\nclass Toc extends React.Component<TocProps, TocState> {\n contentRef = React.createRef<HTMLDivElement>();\n rootRef = React.createRef<HTMLDivElement>();\n activeRef = React.createRef<Item>();\n\n containerEl: HTMLElement | null = null;\n footerEl: HTMLElement | null = null;\n tocTopId: string;\n\n constructor(props: TocProps) {\n super(props);\n\n this.state = this.computeState(this.getInitialState());\n this.tocTopId = getUniqId();\n }\n\n getInitialState() {\n return {\n registry: new TocItemRegistry(this.props.items, this.normalizeUrl),\n fixedById: {},\n activeId: null,\n contentScrolled: false,\n };\n }\n\n componentDidMount() {\n this.containerEl = document.querySelector('.Layout__content');\n this.footerEl = document.querySelector('.Footer');\n this.setTocHeight();\n\n window.addEventListener('scroll', this.handleScroll);\n window.addEventListener('resize', this.handleResize);\n if (this.contentRef && this.contentRef.current) {\n this.contentRef.current.addEventListener('scroll', this.handleContentScroll);\n }\n\n this.scrollToActiveItem();\n }\n\n componentDidUpdate(prevProps: TocProps, prevState: TocState) {\n const {router, singlePage, items} = this.props;\n\n let nextState;\n\n if (prevProps.items !== items) {\n nextState = this.getInitialState();\n }\n\n if (\n prevProps.router.pathname !== router.pathname ||\n prevProps.router.hash !== router.hash ||\n prevProps.singlePage !== singlePage\n ) {\n this.setTocHeight();\n\n nextState = this.computeState(nextState || prevState);\n } else if (prevState.activeId !== this.state.activeId) {\n this.scrollToActiveItem();\n }\n\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('scroll', this.handleScroll);\n window.removeEventListener('resize', this.handleResize);\n if (this.contentRef && this.contentRef.current) {\n this.contentRef.current.removeEventListener('scroll', this.handleContentScroll);\n }\n }\n\n render() {\n const {items, hideTocHeader} = this.props;\n const content = items ? this.renderList(items) : this.renderEmpty('');\n\n return (\n <div className={b()} ref={this.rootRef}>\n {this.renderTop()}\n <div className={b('content', {offset_top: hideTocHeader})} ref={this.contentRef}>\n {content}\n </div>\n {this.renderBottom()}\n </div>\n );\n }\n\n computeState(prevState: TocState) {\n const {router} = this.props;\n const {pathname, hash} = router;\n\n const activeUrl = this.normalizeUrl(pathname, hash);\n const activeId = activeUrl && prevState.registry.getIdByUrl(activeUrl as string);\n\n let fixedById = prevState.fixedById;\n\n if (activeId && prevState.activeId && activeId !== prevState.activeId) {\n const expandedIds = [activeId].concat(prevState.registry.getParentIds(activeId));\n const dropClosedSign = expandedIds.filter((id) => prevState.fixedById[id] === 'closed');\n\n if (dropClosedSign.length) {\n fixedById = omit(fixedById, dropClosedSign);\n }\n }\n\n return {...prevState, activeId, fixedById};\n }\n\n private normalizeUrl = (path: string, hash: string | undefined) => {\n const {singlePage} = this.props;\n\n return singlePage ? normalizeHash(hash) : normalizePath(path);\n };\n\n private renderList = (items: TocItem[]) => {\n const {toggleItem} = this;\n const {singlePage} = this.props;\n const {activeId, fixedById} = this.state;\n\n const activeItem = activeId && this.state.registry.getItemById(activeId);\n const activeScope: Record<string, boolean> = activeItem\n ? zip([activeId].concat(this.state.registry.getParentIds(activeId)), true)\n : {};\n\n return (\n <ul className={b('list')} aria-labelledby={this.tocTopId}>\n {items.map((item, index) => {\n const main = !this.state.registry.getParentId(item.id);\n const active =\n (singlePage && !activeId && index === 0 && main) || item.id === activeId;\n const opened = fixedById[item.id] === 'opened';\n const closed = fixedById[item.id] === 'closed';\n const expandable = Boolean(item.items && item.items.length > 0);\n const expanded =\n expandable && !closed && (item.expanded || activeScope[item.id] || opened);\n\n const ref = active ? {ref: this.activeRef} : {};\n\n return (\n <li\n key={item.id}\n id={item.id}\n className={b('list-item', {main, active, opened: expanded})}\n >\n <Item\n {...{\n ...item,\n ...ref,\n active,\n expanded,\n expandable,\n toggleItem,\n }}\n />\n {expanded && this.renderList(item.items as TocItem[])}\n </li>\n );\n })}\n </ul>\n );\n };\n\n private renderEmpty(text: string) {\n return <div className={b('empty')}>{text}</div>;\n }\n\n private renderTop() {\n const {router, title, href, tocTitleIcon, hideTocHeader, singlePage, label} = this.props;\n const {contentScrolled} = this.state;\n let topHeader;\n\n if (hideTocHeader) {\n return null;\n }\n\n if (href) {\n const active = isActiveItem(router, href, singlePage);\n\n topHeader = (\n <a\n href={href}\n className={b('top-header', {active, link: true})}\n data-router-shallow\n >\n <HTML>{title}</HTML>\n </a>\n );\n } else {\n topHeader = (\n <div className={b('top-header')}>\n <HTML>{title}</HTML>\n </div>\n );\n }\n\n return (\n <div className={b('top', {scrolled: contentScrolled})} id={this.tocTopId}>\n {tocTitleIcon ? (\n <div className={b('top-header-icon')} aria-hidden={'true'}>\n {tocTitleIcon}\n </div>\n ) : null}\n {topHeader}\n {label ? <TocLabel label={label} /> : null}\n </div>\n );\n }\n\n private renderBottom() {\n const {singlePage, onChangeSinglePage, pdfLink} = this.props;\n const {contentScrolled} = this.state;\n\n return (\n <div className={b('bottom', {scrolled: contentScrolled})}>\n <ControlsLayout\n controlSize={ControlSizes.L}\n popupPosition={PopperPosition.TOP_START}\n >\n <Controls\n singlePage={singlePage}\n onChangeSinglePage={onChangeSinglePage}\n pdfLink={pdfLink}\n />\n </ControlsLayout>\n </div>\n );\n }\n\n private setTocHeight() {\n const {headerHeight = HEADER_DEFAULT_HEIGHT} = this.props;\n const containerHeight = this.containerEl?.offsetHeight ?? 0;\n const footerHeight = this.footerEl?.offsetHeight ?? 0;\n const scrollDiff =\n window.scrollY + window.innerHeight + footerHeight - headerHeight - containerHeight;\n const rootNode = this.rootRef.current;\n\n if (!rootNode) {\n return;\n }\n\n if (scrollDiff > 0) {\n rootNode.style.height = window.innerHeight - headerHeight - scrollDiff + 'px';\n } else if (containerHeight < window.innerHeight) {\n rootNode.style.height = containerHeight - footerHeight + 'px';\n } else {\n rootNode.style.height = window.innerHeight - headerHeight + 'px';\n }\n }\n\n private handleScroll = () => {\n this.setTocHeight();\n };\n\n private handleResize = () => {\n this.setTocHeight();\n };\n\n private scrollToActiveItem = () => {\n if (!this.activeRef.current) {\n return;\n }\n\n this.activeRef.current.scrollToItem();\n };\n\n private handleContentScroll = () => {\n const contentNode = this.contentRef.current;\n const contentScrolled = contentNode ? contentNode.scrollTop > 0 : false;\n if (contentScrolled !== this.state.contentScrolled) {\n this.setState({contentScrolled});\n }\n };\n\n private openItem = (id: string) => {\n this.setState((prevState) => ({\n ...prevState,\n fixedById: {\n ...prevState.fixedById,\n [id]: 'opened',\n },\n }));\n };\n\n private closeItem = (id: string) => {\n const ids = this.state.registry.getChildIds(id);\n\n this.setState((prevState) => ({\n ...prevState,\n fixedById: {\n ...omit(prevState.fixedById, ids),\n [id]: 'closed',\n },\n }));\n };\n\n private toggleItem = (id: string, opened: boolean) => {\n if (opened) {\n this.closeItem(id);\n } else {\n this.openItem(id);\n }\n };\n}\n\nexport default Toc;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React from 'react';\n\nimport {getUniqId} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport omit from 'lodash/omit';\n\nimport {PopperPosition} from '../../hooks';\nimport {ControlSizes, Router, TocData, TocItem} from '../../models';\nimport {isActiveItem, normalizeHash, normalizePath} from '../../utils';\nimport {Controls, ControlsLayout} from '../Controls';\nimport {HTML} from '../HTML';\nimport {TocItem as Item} from '../TocItem';\nimport TocLabel from '../TocLable/TocLabel';\n\nimport {TocItemRegistry} from './TocItemRegistry';\n\nimport './Toc.scss';\n\nconst b = block('dc-toc');\nconst HEADER_DEFAULT_HEIGHT = 0;\n\nfunction zip<T>(array: string[], fill: T): Record<string, T> {\n return array.reduce((acc, item) => Object.assign(acc, {[item]: fill}), {});\n}\n\nexport interface TocProps extends TocData {\n router: Router;\n headerHeight?: number;\n tocTitleIcon?: React.ReactNode;\n hideTocHeader?: boolean;\n singlePage?: boolean;\n onChangeSinglePage?: (value: boolean) => void;\n pdfLink?: string;\n}\n\ninterface TocState {\n activeId: string | null | undefined;\n fixedById: Record<string, 'opened' | 'closed'>;\n contentScrolled: boolean;\n registry: TocItemRegistry;\n}\n\nclass Toc extends React.Component<TocProps, TocState> {\n contentRef = React.createRef<HTMLDivElement>();\n rootRef = React.createRef<HTMLDivElement>();\n activeRef = React.createRef<Item>();\n\n containerEl: HTMLElement | null = null;\n footerEl: HTMLElement | null = null;\n tocTopId: string;\n\n constructor(props: TocProps) {\n super(props);\n\n this.state = this.computeState(this.getInitialState());\n this.tocTopId = getUniqId();\n }\n\n getInitialState() {\n return {\n registry: new TocItemRegistry(this.props.items, this.normalizeUrl),\n fixedById: {},\n activeId: null,\n contentScrolled: false,\n };\n }\n\n componentDidMount() {\n this.containerEl = document.querySelector('.Layout__content');\n this.footerEl = document.querySelector('.Footer');\n this.setTocHeight();\n\n window.addEventListener('scroll', this.handleScroll);\n window.addEventListener('resize', this.handleResize);\n if (this.contentRef && this.contentRef.current) {\n this.contentRef.current.addEventListener('scroll', this.handleContentScroll);\n }\n\n this.scrollToActiveItem();\n }\n\n componentDidUpdate(prevProps: TocProps, prevState: TocState) {\n const {router, singlePage, items} = this.props;\n\n let nextState;\n\n if (prevProps.items !== items) {\n nextState = this.getInitialState();\n }\n\n if (\n prevProps.router.pathname !== router.pathname ||\n prevProps.router.hash !== router.hash ||\n prevProps.singlePage !== singlePage\n ) {\n this.setTocHeight();\n\n nextState = this.computeState(nextState || prevState);\n } else if (prevState.activeId !== this.state.activeId) {\n this.scrollToActiveItem();\n }\n\n if (nextState) {\n this.setState(nextState);\n }\n }\n\n componentWillUnmount() {\n window.removeEventListener('scroll', this.handleScroll);\n window.removeEventListener('resize', this.handleResize);\n if (this.contentRef && this.contentRef.current) {\n this.contentRef.current.removeEventListener('scroll', this.handleContentScroll);\n }\n }\n\n render() {\n const {items, hideTocHeader} = this.props;\n const content = items ? this.renderList(items) : this.renderEmpty('');\n\n return (\n <div className={b()} ref={this.rootRef}>\n {this.renderTop()}\n <div className={b('content', {offset_top: hideTocHeader})} ref={this.contentRef}>\n {content}\n </div>\n {this.renderBottom()}\n </div>\n );\n }\n\n computeState(prevState: TocState) {\n const {router} = this.props;\n const {pathname, hash} = router;\n\n const activeUrl = this.normalizeUrl(pathname, hash);\n const activeId = activeUrl && prevState.registry.getIdByUrl(activeUrl as string);\n\n let fixedById = prevState.fixedById;\n\n if (activeId && prevState.activeId && activeId !== prevState.activeId) {\n const expandedIds = [activeId].concat(prevState.registry.getParentIds(activeId));\n const dropClosedSign = expandedIds.filter((id) => prevState.fixedById[id] === 'closed');\n\n if (dropClosedSign.length) {\n fixedById = omit(fixedById, dropClosedSign);\n }\n }\n\n return {...prevState, activeId, fixedById};\n }\n\n private normalizeUrl = (path: string, hash: string | undefined) => {\n const {singlePage} = this.props;\n\n return singlePage ? normalizeHash(hash) : normalizePath(path);\n };\n\n private renderList = (items: TocItem[]) => {\n const {toggleItem} = this;\n const {singlePage} = this.props;\n const {activeId, fixedById} = this.state;\n\n const activeItem = activeId && this.state.registry.getItemById(activeId);\n const activeScope: Record<string, boolean> = activeItem\n ? zip([activeId].concat(this.state.registry.getParentIds(activeId)), true)\n : {};\n\n return (\n <ul className={b('list')} aria-labelledby={this.tocTopId}>\n {items.map((item, index) => {\n const main = !this.state.registry.getParentId(item.id);\n const active =\n (singlePage && !activeId && index === 0 && main) || item.id === activeId;\n const opened = fixedById[item.id] === 'opened';\n const closed = fixedById[item.id] === 'closed';\n const hasItems = Boolean(item.items && item.items.length > 0);\n const expandable = hasItems && !item.labeled;\n const expanded =\n (expandable &&\n !closed &&\n (item.expanded || activeScope[item.id] || opened)) ||\n (hasItems && Boolean(item.labeled));\n\n const ref = active ? {ref: this.activeRef} : {};\n\n return (\n <li\n key={item.id}\n id={item.id}\n className={b('list-item', {\n main,\n active,\n opened: expanded,\n labeled: item.labeled,\n })}\n >\n <Item\n {...{\n ...item,\n ...ref,\n active,\n expanded,\n expandable,\n toggleItem,\n }}\n />\n {expanded && this.renderList(item.items as TocItem[])}\n </li>\n );\n })}\n </ul>\n );\n };\n\n private renderEmpty(text: string) {\n return <div className={b('empty')}>{text}</div>;\n }\n\n private renderTop() {\n const {router, title, href, tocTitleIcon, hideTocHeader, singlePage, label} = this.props;\n const {contentScrolled} = this.state;\n let topHeader;\n\n if (hideTocHeader) {\n return null;\n }\n\n if (href) {\n const active = isActiveItem(router, href, singlePage);\n\n topHeader = (\n <a\n href={href}\n className={b('top-header', {active, link: true})}\n data-router-shallow\n >\n <HTML>{title}</HTML>\n </a>\n );\n } else {\n topHeader = (\n <div className={b('top-header')}>\n <HTML>{title}</HTML>\n </div>\n );\n }\n\n return (\n <div className={b('top', {scrolled: contentScrolled})} id={this.tocTopId}>\n {tocTitleIcon ? (\n <div className={b('top-header-icon')} aria-hidden={'true'}>\n {tocTitleIcon}\n </div>\n ) : null}\n {topHeader}\n {label ? <TocLabel label={label} /> : null}\n </div>\n );\n }\n\n private renderBottom() {\n const {singlePage, onChangeSinglePage, pdfLink} = this.props;\n const {contentScrolled} = this.state;\n\n return (\n <div className={b('bottom', {scrolled: contentScrolled})}>\n <ControlsLayout\n controlSize={ControlSizes.L}\n popupPosition={PopperPosition.TOP_START}\n >\n <Controls\n singlePage={singlePage}\n onChangeSinglePage={onChangeSinglePage}\n pdfLink={pdfLink}\n />\n </ControlsLayout>\n </div>\n );\n }\n\n private setTocHeight() {\n const {headerHeight = HEADER_DEFAULT_HEIGHT} = this.props;\n const containerHeight = this.containerEl?.offsetHeight ?? 0;\n const footerHeight = this.footerEl?.offsetHeight ?? 0;\n const scrollDiff =\n window.scrollY + window.innerHeight + footerHeight - headerHeight - containerHeight;\n const rootNode = this.rootRef.current;\n\n if (!rootNode) {\n return;\n }\n\n if (scrollDiff > 0) {\n rootNode.style.height = window.innerHeight - headerHeight - scrollDiff + 'px';\n } else if (containerHeight < window.innerHeight) {\n rootNode.style.height = containerHeight - footerHeight + 'px';\n } else {\n rootNode.style.height = window.innerHeight - headerHeight + 'px';\n }\n }\n\n private handleScroll = () => {\n this.setTocHeight();\n };\n\n private handleResize = () => {\n this.setTocHeight();\n };\n\n private scrollToActiveItem = () => {\n if (!this.activeRef.current) {\n return;\n }\n\n this.activeRef.current.scrollToItem();\n };\n\n private handleContentScroll = () => {\n const contentNode = this.contentRef.current;\n const contentScrolled = contentNode ? contentNode.scrollTop > 0 : false;\n if (contentScrolled !== this.state.contentScrolled) {\n this.setState({contentScrolled});\n }\n };\n\n private openItem = (id: string) => {\n this.setState((prevState) => ({\n ...prevState,\n fixedById: {\n ...prevState.fixedById,\n [id]: 'opened',\n },\n }));\n };\n\n private closeItem = (id: string) => {\n const ids = this.state.registry.getChildIds(id);\n\n this.setState((prevState) => ({\n ...prevState,\n fixedById: {\n ...omit(prevState.fixedById, ids),\n [id]: 'closed',\n },\n }));\n };\n\n private toggleItem = (id: string, opened: boolean) => {\n if (opened) {\n this.closeItem(id);\n } else {\n this.openItem(id);\n }\n };\n}\n\nexport default Toc;\n"],
5
+ "mappings": "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",
6
6
  "names": ["block", "React", "Item", "omit", "TocLabel"]
7
7
  }
@@ -37,7 +37,6 @@
37
37
  width: 100%;
38
38
  border-radius: 4px;
39
39
  border-radius: var(--g-focus-border-radius);
40
- cursor: pointer;
41
40
  color: var(--g-color-text-primary);
42
41
  }
43
42
  [dir=rtl] .dc-toc-item__text {
@@ -47,6 +46,19 @@
47
46
  border-radius: 3px;
48
47
  background: var(--g-color-base-selection);
49
48
  }
49
+ .dc-toc-item__text_labeled {
50
+ font-size: var(--g-text-body-1-font-size);
51
+ line-height: var(--g-text-body-1-line-height);
52
+ font-weight: 500;
53
+ text-transform: uppercase;
54
+ }
55
+ .dc-toc-item__text_clicable {
56
+ cursor: pointer;
57
+ }
58
+ .dc-toc-item__text_clicable:hover {
59
+ border-radius: 3px;
60
+ background: var(--g-color-base-simple-hover);
61
+ }
50
62
  .dc-toc-item__text::before {
51
63
  content: "";
52
64
  position: absolute;
@@ -55,10 +67,6 @@
55
67
  left: -100vw;
56
68
  height: 100%;
57
69
  }
58
- .dc-toc-item__text:hover {
59
- border-radius: 3px;
60
- background: var(--g-color-base-simple-hover);
61
- }
62
70
  .dc-toc-item__text:focus {
63
71
  outline: 2px solid var(--g-color-line-focus);
64
72
  outline-offset: -2px;