@diplodoc/components 5.3.2 → 5.4.1

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 (166) hide show
  1. package/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
  2. package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +2 -2
  3. package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +2 -2
  4. package/build/cjs/components/Contributors/Contributors.css.map +2 -2
  5. package/build/cjs/components/Control/Control.css.map +2 -2
  6. package/build/cjs/components/Controls/Controls.css.map +2 -2
  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 +2 -2
  9. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +2 -2
  10. package/build/cjs/components/DocLayout/DocLayout.css.map +2 -2
  11. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +2 -2
  12. package/build/cjs/components/DocPage/DocPage.css +8 -4
  13. package/build/cjs/components/DocPage/DocPage.css.map +3 -3
  14. package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
  15. package/build/cjs/components/ErrorPage/ErrorPage.css.map +2 -2
  16. package/build/cjs/components/Feedback/Feedback.css.map +2 -2
  17. package/build/cjs/components/Mark/Mark.css.map +1 -1
  18. package/build/cjs/components/MiniToc/MiniToc.css.map +2 -2
  19. package/build/cjs/components/MobileControls/MobileControl/MobileControl.css.map +2 -2
  20. package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +2 -2
  21. package/build/cjs/components/MobileControls/MobileControls.css.map +1 -1
  22. package/build/cjs/components/Notification/Notification.css.map +1 -1
  23. package/build/cjs/components/Paginator/Paginator.css.map +2 -2
  24. package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
  25. package/build/cjs/components/SearchItem/SearchItem.css.map +2 -2
  26. package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
  27. package/build/cjs/components/SearchSuggest/SearchInput.d.ts +2 -0
  28. package/build/cjs/components/SearchSuggest/SearchInput.js +5 -2
  29. package/build/cjs/components/SearchSuggest/SearchInput.js.map +2 -2
  30. package/build/cjs/components/SearchSuggest/Suggest.d.ts +3 -0
  31. package/build/cjs/components/SearchSuggest/Suggest.js +19 -14
  32. package/build/cjs/components/SearchSuggest/Suggest.js.map +2 -2
  33. package/build/cjs/components/SearchSuggest/SuggestItem.d.ts +7 -2
  34. package/build/cjs/components/SearchSuggest/SuggestItem.js +23 -2
  35. package/build/cjs/components/SearchSuggest/SuggestItem.js.map +2 -2
  36. package/build/cjs/components/SearchSuggest/__tests__/SearchSuggestWithAi.spec.d.ts +1 -0
  37. package/build/cjs/components/SearchSuggest/index.css +45 -0
  38. package/build/cjs/components/SearchSuggest/index.css.map +3 -3
  39. package/build/cjs/components/SearchSuggest/index.d.ts +8 -2
  40. package/build/cjs/components/SearchSuggest/index.js +27 -8
  41. package/build/cjs/components/SearchSuggest/index.js.map +3 -3
  42. package/build/cjs/components/SearchSuggest/types.d.ts +12 -2
  43. package/build/cjs/components/SearchSuggest/types.js +1 -0
  44. package/build/cjs/components/SearchSuggest/types.js.map +2 -2
  45. package/build/cjs/components/SearchSuggest/useProvider.d.ts +4 -1
  46. package/build/cjs/components/SearchSuggest/useProvider.js +69 -27
  47. package/build/cjs/components/SearchSuggest/useProvider.js.map +2 -2
  48. package/build/cjs/components/ShareButton/ShareButton.css.map +1 -1
  49. package/build/cjs/components/SubNavigation/SubNavigation.css.map +2 -2
  50. package/build/cjs/components/Subscribe/Subscribe.css.map +1 -1
  51. package/build/cjs/components/Toc/Toc.css.map +2 -2
  52. package/build/cjs/components/TocItem/TocItem.css.map +2 -2
  53. package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
  54. package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +2 -2
  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/constants.d.ts +1 -0
  59. package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  60. package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  61. package/build/cjs/components/navigation/Sidebar/Sidebar.css.map +2 -2
  62. package/build/cjs/components/navigation/SidebarContent/SidebarContent.css.map +2 -2
  63. package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.css.map +2 -2
  64. package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.css.map +2 -2
  65. package/build/cjs/models/index.d.ts +14 -2
  66. package/build/cjs/models/index.js.map +1 -1
  67. package/build/cjs/shared/libs/analytics/adapters/yandex-metrika-adapter.d.ts +19 -0
  68. package/build/cjs/shared/libs/analytics/adapters/yandex-metrika-adapter.js +21 -0
  69. package/build/cjs/shared/libs/analytics/adapters/yandex-metrika-adapter.js.map +2 -2
  70. package/build/cjs/shared/libs/analytics/analytics.d.ts +2 -0
  71. package/build/cjs/shared/libs/analytics/analytics.js +19 -0
  72. package/build/cjs/shared/libs/analytics/analytics.js.map +2 -2
  73. package/build/cjs/shared/libs/analytics/index.d.ts +1 -1
  74. package/build/cjs/shared/libs/analytics/index.js.map +2 -2
  75. package/build/cjs/shared/libs/analytics/types.d.ts +1 -0
  76. package/build/cjs/shared/libs/script-utils/append-script.d.ts +7 -0
  77. package/build/cjs/shared/libs/script-utils/append-script.js +51 -0
  78. package/build/cjs/shared/libs/script-utils/append-script.js.map +7 -0
  79. package/build/cjs/shared/libs/script-utils/index.d.ts +1 -0
  80. package/build/cjs/shared/libs/script-utils/index.js +28 -0
  81. package/build/cjs/shared/libs/script-utils/index.js.map +7 -0
  82. package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
  83. package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +2 -2
  84. package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +2 -2
  85. package/build/esm/components/Contributors/Contributors.css.map +2 -2
  86. package/build/esm/components/Control/Control.css.map +2 -2
  87. package/build/esm/components/Controls/Controls.css.map +2 -2
  88. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  89. package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +2 -2
  90. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +2 -2
  91. package/build/esm/components/DocLayout/DocLayout.css.map +2 -2
  92. package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +2 -2
  93. package/build/esm/components/DocPage/DocPage.css +8 -4
  94. package/build/esm/components/DocPage/DocPage.css.map +3 -3
  95. package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
  96. package/build/esm/components/ErrorPage/ErrorPage.css.map +2 -2
  97. package/build/esm/components/Feedback/Feedback.css.map +2 -2
  98. package/build/esm/components/Mark/Mark.css.map +1 -1
  99. package/build/esm/components/MiniToc/MiniToc.css.map +2 -2
  100. package/build/esm/components/MobileControls/MobileControl/MobileControl.css.map +2 -2
  101. package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +2 -2
  102. package/build/esm/components/MobileControls/MobileControls.css.map +1 -1
  103. package/build/esm/components/Notification/Notification.css.map +1 -1
  104. package/build/esm/components/Paginator/Paginator.css.map +2 -2
  105. package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
  106. package/build/esm/components/SearchItem/SearchItem.css.map +2 -2
  107. package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
  108. package/build/esm/components/SearchSuggest/SearchInput.d.ts +2 -0
  109. package/build/esm/components/SearchSuggest/SearchInput.js +5 -2
  110. package/build/esm/components/SearchSuggest/SearchInput.js.map +2 -2
  111. package/build/esm/components/SearchSuggest/Suggest.d.ts +3 -0
  112. package/build/esm/components/SearchSuggest/Suggest.js +19 -14
  113. package/build/esm/components/SearchSuggest/Suggest.js.map +2 -2
  114. package/build/esm/components/SearchSuggest/SuggestItem.d.ts +7 -2
  115. package/build/esm/components/SearchSuggest/SuggestItem.js +23 -2
  116. package/build/esm/components/SearchSuggest/SuggestItem.js.map +2 -2
  117. package/build/esm/components/SearchSuggest/__tests__/SearchSuggestWithAi.spec.d.ts +1 -0
  118. package/build/esm/components/SearchSuggest/index.css +45 -0
  119. package/build/esm/components/SearchSuggest/index.css.map +3 -3
  120. package/build/esm/components/SearchSuggest/index.d.ts +8 -2
  121. package/build/esm/components/SearchSuggest/index.js +27 -8
  122. package/build/esm/components/SearchSuggest/index.js.map +3 -3
  123. package/build/esm/components/SearchSuggest/types.d.ts +12 -2
  124. package/build/esm/components/SearchSuggest/types.js +1 -0
  125. package/build/esm/components/SearchSuggest/types.js.map +2 -2
  126. package/build/esm/components/SearchSuggest/useProvider.d.ts +4 -1
  127. package/build/esm/components/SearchSuggest/useProvider.js +69 -27
  128. package/build/esm/components/SearchSuggest/useProvider.js.map +2 -2
  129. package/build/esm/components/ShareButton/ShareButton.css.map +1 -1
  130. package/build/esm/components/SubNavigation/SubNavigation.css.map +2 -2
  131. package/build/esm/components/Subscribe/Subscribe.css.map +1 -1
  132. package/build/esm/components/Toc/Toc.css.map +2 -2
  133. package/build/esm/components/TocItem/TocItem.css.map +2 -2
  134. package/build/esm/components/TocLable/TocLabel.css.map +1 -1
  135. package/build/esm/components/TocNavPanel/TocNavPanel.css.map +2 -2
  136. package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
  137. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  138. package/build/esm/components/Widgets/Widgets.css.map +1 -1
  139. package/build/esm/components/constants.d.ts +1 -0
  140. package/build/esm/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  141. package/build/esm/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  142. package/build/esm/components/navigation/Sidebar/Sidebar.css.map +2 -2
  143. package/build/esm/components/navigation/SidebarContent/SidebarContent.css.map +2 -2
  144. package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.css.map +2 -2
  145. package/build/esm/components/navigation/ToMainMenu/ToMainMenu.css.map +2 -2
  146. package/build/esm/models/index.d.ts +14 -2
  147. package/build/esm/models/index.js.map +1 -1
  148. package/build/esm/shared/libs/analytics/adapters/yandex-metrika-adapter.d.ts +19 -0
  149. package/build/esm/shared/libs/analytics/adapters/yandex-metrika-adapter.js +21 -0
  150. package/build/esm/shared/libs/analytics/adapters/yandex-metrika-adapter.js.map +2 -2
  151. package/build/esm/shared/libs/analytics/analytics.d.ts +2 -0
  152. package/build/esm/shared/libs/analytics/analytics.js +19 -0
  153. package/build/esm/shared/libs/analytics/analytics.js.map +2 -2
  154. package/build/esm/shared/libs/analytics/index.d.ts +1 -1
  155. package/build/esm/shared/libs/analytics/index.js.map +2 -2
  156. package/build/esm/shared/libs/analytics/types.d.ts +1 -0
  157. package/build/esm/shared/libs/script-utils/append-script.d.ts +7 -0
  158. package/build/esm/shared/libs/script-utils/append-script.js +30 -0
  159. package/build/esm/shared/libs/script-utils/append-script.js.map +7 -0
  160. package/build/esm/shared/libs/script-utils/index.d.ts +1 -0
  161. package/build/esm/shared/libs/script-utils/index.js +7 -0
  162. package/build/esm/shared/libs/script-utils/index.js.map +7 -0
  163. package/build/index.css +1 -0
  164. package/build/index.css.map +3 -3
  165. package/build/themes/common/index.css.map +1 -1
  166. package/package.json +1 -1
@@ -34,11 +34,13 @@ import block from "bem-cn-lite";
34
34
  import uniqueId from "lodash/uniqueId";
35
35
  import { CommonAnalyticsEvent, useAnalytics } from "../../shared/libs/analytics";
36
36
  import { useTranslation, useVirtualElementRef } from "../../hooks";
37
+ import { SuggestItemType } from "./types";
37
38
  import { SearchInput } from "./SearchInput";
38
39
  import { Suggest } from "./Suggest";
39
40
  import { SuggestItem } from "./SuggestItem";
40
41
  import { useFocus } from "./useFocus";
41
42
  import "./index.css";
43
+ import { SuggestItemType as SuggestItemType2 } from "./types";
42
44
  var b = block("dc-search-suggest");
43
45
  var MIMIC_PC_CONTROL = "pc-control pc-control_size_l pc-control_theme_primary";
44
46
  function CloseButton({ onClick, className }) {
@@ -62,9 +64,15 @@ var SearchSuggest = forwardRef((props, api) => {
62
64
  classNameContainer,
63
65
  classNameClose,
64
66
  placeholder = t("search_placeholder"),
67
+ startContent,
65
68
  endContent,
66
69
  closeButton,
67
- onBlur
70
+ onBlur,
71
+ withAllResults = true,
72
+ focusFirstSearchResult = false,
73
+ hasClear = false,
74
+ withFocusOverlay = false,
75
+ emptyState
68
76
  } = props;
69
77
  const analytics = useAnalytics();
70
78
  const href = useRef(null);
@@ -87,13 +95,13 @@ var SearchSuggest = forwardRef((props, api) => {
87
95
  const page = provider.link(query);
88
96
  const onKeyDown = useCallback(
89
97
  (event) => {
90
- if (event.key === "Enter" && active === void 0 && page) {
98
+ if (event.key === "Enter" && withAllResults && !focusFirstSearchResult && active === void 0 && page) {
91
99
  submitItem(page);
92
100
  } else if (suggest.current) {
93
101
  suggest.current.onKeyDown(event);
94
102
  }
95
103
  },
96
- [suggest, active, submitItem, page]
104
+ [suggest, active, submitItem, page, withAllResults, focusFirstSearchResult]
97
105
  );
98
106
  const open = useCallback(() => {
99
107
  setFocused(true);
@@ -109,6 +117,10 @@ var SearchSuggest = forwardRef((props, api) => {
109
117
  if (!fromKeyboard) {
110
118
  return;
111
119
  }
120
+ if (item.type === SuggestItemType.Action) {
121
+ item.onClick();
122
+ return;
123
+ }
112
124
  submitItem(item.link);
113
125
  },
114
126
  [submitItem]
@@ -136,7 +148,8 @@ var SearchSuggest = forwardRef((props, api) => {
136
148
  };
137
149
  }, [analytics, focused, watch]);
138
150
  useImperativeHandle(api, () => ({ open, close }), [open, close]);
139
- return /* @__PURE__ */ React.createElement("div", { className: b("wrapper", classNameContainer) }, /* @__PURE__ */ React.createElement("a", { ref: href, href: "#", hidden: true, "aria-hidden": true }), /* @__PURE__ */ React.createElement(
151
+ const wrapperClassName = [b("wrapper", { focused }), classNameContainer].filter(Boolean).join(" ");
152
+ return /* @__PURE__ */ React.createElement("div", { className: wrapperClassName }, withFocusOverlay && focused && /* @__PURE__ */ React.createElement("div", { className: b("overlay"), onClick: onOutsideClick }), /* @__PURE__ */ React.createElement("a", { ref: href, href: "#", hidden: true, "aria-hidden": true }), /* @__PURE__ */ React.createElement(
140
153
  SearchInput,
141
154
  __spreadProps(__spreadValues({}, handlers), {
142
155
  ref: input,
@@ -148,12 +161,14 @@ var SearchSuggest = forwardRef((props, api) => {
148
161
  onKeyDown,
149
162
  autoFocus: focused,
150
163
  placeholder,
164
+ startContent,
151
165
  endContent: !focused && endContent,
152
166
  controlProps: {
153
167
  "aria-controls": `dc-popup-${id}`,
154
168
  "aria-expanded": Boolean(input.current && focused),
155
169
  "aria-activedescendant": active === void 0 ? void 0 : `dc-${id}-list-item-${active}`
156
- }
170
+ },
171
+ hasClear
157
172
  })
158
173
  ), closeButton && focused && /* @__PURE__ */ React.createElement(CloseButton, { onClick: onClose, className: classNameClose }), input.current && /* @__PURE__ */ React.createElement(
159
174
  Popup,
@@ -162,7 +177,7 @@ var SearchSuggest = forwardRef((props, api) => {
162
177
  onOutsideClick,
163
178
  id: `dc-popup-${id}`,
164
179
  className: b("popup"),
165
- style: { width: box.width },
180
+ style: { width: box.width, zIndex: 1002 },
166
181
  anchorRef: box,
167
182
  strategy: "fixed"
168
183
  },
@@ -173,15 +188,19 @@ var SearchSuggest = forwardRef((props, api) => {
173
188
  id: `dc-${id}-list`,
174
189
  query,
175
190
  provider,
191
+ withAllResults,
192
+ activeItemIndex: focusFirstSearchResult ? active != null ? active : 0 : active,
176
193
  renderItem: SuggestItem,
177
194
  onItemClick: onSubmit,
178
- onChangeActive: setActive
195
+ onChangeActive: setActive,
196
+ emptyState
179
197
  }
180
198
  )
181
199
  ));
182
200
  });
183
201
  SearchSuggest.displayName = "SearchSuggest";
184
202
  export {
185
- SearchSuggest
203
+ SearchSuggest,
204
+ SuggestItemType2 as SuggestItemType
186
205
  };
187
206
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchSuggest/index.tsx"],
4
- "sourcesContent": ["import type {KeyboardEvent, MouseEventHandler, SyntheticEvent} from 'react';\nimport type {ISearchProvider} from '../../models';\nimport type {SearchSuggestItem, SearchSuggestLinkableItem, SearchSuggestPageItem} from './types';\nimport type {List} from '@gravity-ui/uikit';\n\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {Icon, Popup} from '@gravity-ui/uikit';\nimport {Xmark} from '@gravity-ui/icons';\nimport block from 'bem-cn-lite';\nimport uniqueId from 'lodash/uniqueId';\n\nimport {CommonAnalyticsEvent, useAnalytics} from '../../shared/libs/analytics';\nimport {useTranslation, useVirtualElementRef} from '../../hooks';\n\nimport {SearchInput} from './SearchInput';\nimport {Suggest} from './Suggest';\nimport {SuggestItem} from './SuggestItem';\nimport {useFocus} from './useFocus';\nimport './index.scss';\n\nconst b = block('dc-search-suggest');\n\nexport type {SearchSuggestItem, SearchSuggestLinkableItem, SearchSuggestPageItem};\n\nexport interface SearchSuggestProps {\n provider: ISearchProvider;\n placeholder?: string;\n classNameContainer?: string;\n classNameClose?: string;\n className?: string;\n onFocus?: (event: SyntheticEvent) => void;\n onBlur?: (event: SyntheticEvent) => void;\n endContent?: React.ReactNode;\n closeButton?: boolean;\n}\n\nexport interface SearchSuggestApi {\n open(): void;\n\n close(): void;\n}\n\nconst MIMIC_PC_CONTROL = 'pc-control pc-control_size_l pc-control_theme_primary';\n\nfunction CloseButton({onClick, className}: {onClick: MouseEventHandler; className?: string}) {\n const {t} = useTranslation('search');\n\n return (\n <button\n type=\"button\"\n aria-label={t('search_close')}\n className={b('close', [MIMIC_PC_CONTROL, className].join(' '))}\n onClick={onClick}\n >\n <Icon data={Xmark} size={24} />\n </button>\n );\n}\n\nexport const SearchSuggest = forwardRef<SearchSuggestApi, SearchSuggestProps>((props, api) => {\n const {t} = useTranslation('search');\n\n const {\n provider,\n className,\n classNameContainer,\n classNameClose,\n placeholder = t('search_placeholder'),\n endContent,\n closeButton,\n onBlur,\n } = props;\n const analytics = useAnalytics();\n const href = useRef<HTMLAnchorElement>(null);\n const input = useRef<HTMLElement>(null);\n const suggest = useRef<List<SearchSuggestItem>>(null);\n const id = useMemo(uniqueId, []);\n const [query, setQuery] = useState('');\n const [active, setActive] = useState<undefined | number>(undefined);\n const [focused, setFocused, handlers] = useFocus(props);\n const [box, watch] = useVirtualElementRef(input.current);\n\n const submitItem = useCallback(\n (link: string) => {\n if (href.current) {\n href.current.href = link;\n href.current.click();\n }\n },\n [href],\n );\n\n const page = provider.link(query);\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (event.key === 'Enter' && active === undefined && page) {\n submitItem(page);\n } else if (suggest.current) {\n suggest.current.onKeyDown(event);\n }\n },\n [suggest, active, submitItem, page],\n );\n\n const open = useCallback(() => {\n setFocused(true);\n }, [setFocused]);\n\n const close = useCallback(() => {\n setFocused(false);\n }, [setFocused]);\n\n const clearQuery = useCallback(() => {\n setQuery('');\n }, [setQuery]);\n\n const onSubmit = useCallback(\n (item: SearchSuggestItem, _index?: number, fromKeyboard?: boolean) => {\n if (!fromKeyboard) {\n return;\n }\n\n submitItem((item as SearchSuggestLinkableItem).link);\n },\n [submitItem],\n );\n\n const onClose = useCallback(\n (event: SyntheticEvent) => {\n close();\n clearQuery();\n onBlur?.(event);\n },\n [close, clearQuery, onBlur],\n );\n\n const onOutsideClick = useCallback(() => {\n if (focused) {\n close();\n }\n }, [focused, close]);\n\n useEffect(() => provider.init(), [provider]);\n useEffect(() => {\n if (focused) {\n analytics.track(CommonAnalyticsEvent.DOCS_SEARCH_CLICK);\n\n return watch();\n }\n\n return () => {};\n }, [analytics, focused, watch]);\n\n useImperativeHandle(api, () => ({open, close}), [open, close]);\n\n return (\n <div className={b('wrapper', classNameContainer)}>\n <a ref={href} href=\"#\" hidden aria-hidden />\n <SearchInput\n {...handlers}\n ref={input}\n id={`dc-${id}-input`}\n size=\"l\"\n className={b(null, className)}\n text={query}\n onUpdate={setQuery}\n onKeyDown={onKeyDown}\n autoFocus={focused}\n placeholder={placeholder}\n endContent={!focused && endContent}\n controlProps={{\n 'aria-controls': `dc-popup-${id}`,\n 'aria-expanded': Boolean(input.current && focused),\n 'aria-activedescendant':\n active === undefined ? undefined : `dc-${id}-list-item-${active}`,\n }}\n />\n {closeButton && focused && <CloseButton onClick={onClose} className={classNameClose} />}\n {input.current && (\n <Popup\n open={Boolean(query && focused)}\n onOutsideClick={onOutsideClick}\n id={`dc-popup-${id}`}\n className={b('popup')}\n style={{width: box.width}}\n anchorRef={box}\n strategy=\"fixed\"\n >\n <Suggest\n ref={suggest}\n id={`dc-${id}-list`}\n query={query}\n provider={provider}\n renderItem={SuggestItem}\n onItemClick={onSubmit}\n onChangeActive={setActive}\n />\n </Popup>\n )}\n </div>\n );\n});\n\nSearchSuggest.displayName = 'SearchSuggest';\n"],
5
- "mappings": "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",
6
- "names": []
4
+ "sourcesContent": ["import type {KeyboardEvent, MouseEventHandler, SyntheticEvent} from 'react';\nimport type {ISearchProvider} from '../../models';\nimport type {SearchSuggestItem, SearchSuggestLinkableItem} from './types';\nimport type {List} from '@gravity-ui/uikit';\n\nimport React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {Icon, Popup} from '@gravity-ui/uikit';\nimport {Xmark} from '@gravity-ui/icons';\nimport block from 'bem-cn-lite';\nimport uniqueId from 'lodash/uniqueId';\n\nimport {CommonAnalyticsEvent, useAnalytics} from '../../shared/libs/analytics';\nimport {useTranslation, useVirtualElementRef} from '../../hooks';\n\nimport {SuggestItemType} from './types';\nimport {SearchInput} from './SearchInput';\nimport {Suggest} from './Suggest';\nimport {SuggestItem} from './SuggestItem';\nimport {useFocus} from './useFocus';\nimport './index.scss';\n\nconst b = block('dc-search-suggest');\n\nexport type {\n SearchSuggestActionItem,\n SearchSuggestItem,\n SearchSuggestLinkableItem,\n SearchSuggestPageItem,\n} from './types';\nexport {SuggestItemType} from './types';\n\nexport interface SearchSuggestProps {\n provider: ISearchProvider;\n placeholder?: string;\n classNameContainer?: string;\n classNameClose?: string;\n className?: string;\n onFocus?: (event: SyntheticEvent) => void;\n onBlur?: (event: SyntheticEvent) => void;\n startContent?: React.ReactNode;\n endContent?: React.ReactNode;\n closeButton?: boolean;\n withAllResults?: boolean;\n focusFirstSearchResult?: boolean;\n hasClear?: boolean;\n withFocusOverlay?: boolean;\n emptyState?: React.ReactNode;\n}\n\nexport interface SearchSuggestApi {\n open(): void;\n\n close(): void;\n}\n\nconst MIMIC_PC_CONTROL = 'pc-control pc-control_size_l pc-control_theme_primary';\n\nfunction CloseButton({onClick, className}: {onClick: MouseEventHandler; className?: string}) {\n const {t} = useTranslation('search');\n\n return (\n <button\n type=\"button\"\n aria-label={t('search_close')}\n className={b('close', [MIMIC_PC_CONTROL, className].join(' '))}\n onClick={onClick}\n >\n <Icon data={Xmark} size={24} />\n </button>\n );\n}\n\nexport const SearchSuggest = forwardRef<SearchSuggestApi, SearchSuggestProps>((props, api) => {\n const {t} = useTranslation('search');\n\n const {\n provider,\n className,\n classNameContainer,\n classNameClose,\n placeholder = t('search_placeholder'),\n startContent,\n endContent,\n closeButton,\n onBlur,\n withAllResults = true,\n focusFirstSearchResult = false,\n hasClear = false,\n withFocusOverlay = false,\n emptyState,\n } = props;\n const analytics = useAnalytics();\n const href = useRef<HTMLAnchorElement>(null);\n const input = useRef<HTMLElement>(null);\n const suggest = useRef<List<SearchSuggestItem>>(null);\n const id = useMemo(uniqueId, []);\n const [query, setQuery] = useState('');\n const [active, setActive] = useState<undefined | number>(undefined);\n const [focused, setFocused, handlers] = useFocus(props);\n const [box, watch] = useVirtualElementRef(input.current);\n\n const submitItem = useCallback(\n (link: string) => {\n if (href.current) {\n href.current.href = link;\n href.current.click();\n }\n },\n [href],\n );\n\n const page = provider.link(query);\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n if (\n event.key === 'Enter' &&\n withAllResults &&\n !focusFirstSearchResult &&\n active === undefined &&\n page\n ) {\n submitItem(page);\n } else if (suggest.current) {\n suggest.current.onKeyDown(event);\n }\n },\n [suggest, active, submitItem, page, withAllResults, focusFirstSearchResult],\n );\n\n const open = useCallback(() => {\n setFocused(true);\n }, [setFocused]);\n\n const close = useCallback(() => {\n setFocused(false);\n }, [setFocused]);\n\n const clearQuery = useCallback(() => {\n setQuery('');\n }, [setQuery]);\n\n const onSubmit = useCallback(\n (item: SearchSuggestItem, _index?: number, fromKeyboard?: boolean) => {\n if (!fromKeyboard) {\n return;\n }\n\n if (item.type === SuggestItemType.Action) {\n item.onClick();\n return;\n }\n\n submitItem((item as SearchSuggestLinkableItem).link);\n },\n [submitItem],\n );\n\n const onClose = useCallback(\n (event: SyntheticEvent) => {\n close();\n clearQuery();\n onBlur?.(event);\n },\n [close, clearQuery, onBlur],\n );\n\n const onOutsideClick = useCallback(() => {\n if (focused) {\n close();\n }\n }, [focused, close]);\n\n useEffect(() => provider.init(), [provider]);\n useEffect(() => {\n if (focused) {\n analytics.track(CommonAnalyticsEvent.DOCS_SEARCH_CLICK);\n\n return watch();\n }\n\n return () => {};\n }, [analytics, focused, watch]);\n\n useImperativeHandle(api, () => ({open, close}), [open, close]);\n\n const wrapperClassName = [b('wrapper', {focused}), classNameContainer]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={wrapperClassName}>\n {withFocusOverlay && focused && (\n <div className={b('overlay')} onClick={onOutsideClick} />\n )}\n <a ref={href} href=\"#\" hidden aria-hidden />\n <SearchInput\n {...handlers}\n ref={input}\n id={`dc-${id}-input`}\n size=\"l\"\n className={b(null, className)}\n text={query}\n onUpdate={setQuery}\n onKeyDown={onKeyDown}\n autoFocus={focused}\n placeholder={placeholder}\n startContent={startContent}\n endContent={!focused && endContent}\n controlProps={{\n 'aria-controls': `dc-popup-${id}`,\n 'aria-expanded': Boolean(input.current && focused),\n 'aria-activedescendant':\n active === undefined ? undefined : `dc-${id}-list-item-${active}`,\n }}\n hasClear={hasClear}\n />\n {closeButton && focused && <CloseButton onClick={onClose} className={classNameClose} />}\n {input.current && (\n <Popup\n open={Boolean(query && focused)}\n onOutsideClick={onOutsideClick}\n id={`dc-popup-${id}`}\n className={b('popup')}\n style={{width: box.width, zIndex: 1002}}\n anchorRef={box}\n strategy=\"fixed\"\n >\n <Suggest\n ref={suggest}\n id={`dc-${id}-list`}\n query={query}\n provider={provider}\n withAllResults={withAllResults}\n activeItemIndex={focusFirstSearchResult ? (active ?? 0) : active}\n renderItem={SuggestItem}\n onItemClick={onSubmit}\n onChangeActive={setActive}\n emptyState={emptyState}\n />\n </Popup>\n )}\n </div>\n );\n});\n\nSearchSuggest.displayName = 'SearchSuggest';\n"],
5
+ "mappings": "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",
6
+ "names": ["SuggestItemType"]
7
7
  }
@@ -1,14 +1,18 @@
1
1
  import type { BreadcrumbItem } from '../../models';
2
+ import type { ReactNode } from 'react';
2
3
  export declare enum SuggestItemType {
3
4
  Text = "text",
4
5
  Page = "page",
5
6
  Group = "group",
6
7
  Delimiter = "delimiter",
7
- Link = "link"
8
+ Link = "link",
9
+ Action = "action"
8
10
  }
9
11
  interface SearchSuggestBaseItem {
10
12
  type: SuggestItemType;
11
13
  disabled?: boolean;
14
+ icon?: ReactNode;
15
+ hint?: ReactNode;
12
16
  }
13
17
  interface SearchSuggestTextItem extends SearchSuggestBaseItem {
14
18
  type: SuggestItemType.Text;
@@ -33,8 +37,14 @@ interface SearchSuggestLinkItem extends SearchSuggestBaseItem {
33
37
  title: string;
34
38
  link: string;
35
39
  }
40
+ export interface SearchSuggestActionItem extends SearchSuggestBaseItem {
41
+ type: SuggestItemType.Action;
42
+ title: string;
43
+ description?: string;
44
+ onClick: () => void;
45
+ }
36
46
  export type SearchSuggestLinkableItem = SearchSuggestPageItem | SearchSuggestLinkItem;
37
- export type SearchSuggestItem = SearchSuggestLinkableItem | SearchSuggestTextItem | SearchSuggestGroupItem | SearchSuggestDelimiterItem;
47
+ export type SearchSuggestItem = SearchSuggestActionItem | SearchSuggestLinkableItem | SearchSuggestTextItem | SearchSuggestGroupItem | SearchSuggestDelimiterItem;
38
48
  export type SearchGroup = {
39
49
  type: SuggestItemType;
40
50
  items: SearchSuggestItem[];
@@ -5,6 +5,7 @@ var SuggestItemType = /* @__PURE__ */ ((SuggestItemType2) => {
5
5
  SuggestItemType2["Group"] = "group";
6
6
  SuggestItemType2["Delimiter"] = "delimiter";
7
7
  SuggestItemType2["Link"] = "link";
8
+ SuggestItemType2["Action"] = "action";
8
9
  return SuggestItemType2;
9
10
  })(SuggestItemType || {});
10
11
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchSuggest/types.ts"],
4
- "sourcesContent": ["import type {BreadcrumbItem} from '../../models';\n\nexport enum SuggestItemType {\n Text = 'text',\n Page = 'page',\n Group = 'group',\n Delimiter = 'delimiter',\n Link = 'link',\n}\n\ninterface SearchSuggestBaseItem {\n type: SuggestItemType;\n disabled?: boolean;\n}\n\ninterface SearchSuggestTextItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Text;\n title: string;\n}\n\nexport interface SearchSuggestPageItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Page;\n title: string;\n link: string;\n description?: string;\n breadcrumbs?: BreadcrumbItem[];\n}\n\ninterface SearchSuggestGroupItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Group;\n title: string;\n}\n\ninterface SearchSuggestDelimiterItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Delimiter;\n}\n\ninterface SearchSuggestLinkItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Link;\n title: string;\n link: string;\n}\n\nexport type SearchSuggestLinkableItem = SearchSuggestPageItem | SearchSuggestLinkItem;\n\nexport type SearchSuggestItem =\n | SearchSuggestLinkableItem\n | SearchSuggestTextItem\n | SearchSuggestGroupItem\n | SearchSuggestDelimiterItem;\n\nexport type SearchGroup = {\n type: SuggestItemType;\n items: SearchSuggestItem[];\n};\n"],
5
- "mappings": ";AAEO,IAAK,kBAAL,kBAAKA,qBAAL;AACH,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,eAAY;AACZ,EAAAA,iBAAA,UAAO;AALC,SAAAA;AAAA,GAAA;",
4
+ "sourcesContent": ["import type {BreadcrumbItem} from '../../models';\nimport type {ReactNode} from 'react';\n\nexport enum SuggestItemType {\n Text = 'text',\n Page = 'page',\n Group = 'group',\n Delimiter = 'delimiter',\n Link = 'link',\n Action = 'action',\n}\n\ninterface SearchSuggestBaseItem {\n type: SuggestItemType;\n disabled?: boolean;\n icon?: ReactNode;\n hint?: ReactNode;\n}\n\ninterface SearchSuggestTextItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Text;\n title: string;\n}\n\nexport interface SearchSuggestPageItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Page;\n title: string;\n link: string;\n description?: string;\n breadcrumbs?: BreadcrumbItem[];\n}\n\ninterface SearchSuggestGroupItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Group;\n title: string;\n}\n\ninterface SearchSuggestDelimiterItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Delimiter;\n}\n\ninterface SearchSuggestLinkItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Link;\n title: string;\n link: string;\n}\n\nexport interface SearchSuggestActionItem extends SearchSuggestBaseItem {\n type: SuggestItemType.Action;\n title: string;\n description?: string;\n onClick: () => void;\n}\n\nexport type SearchSuggestLinkableItem = SearchSuggestPageItem | SearchSuggestLinkItem;\n\nexport type SearchSuggestItem =\n | SearchSuggestActionItem\n | SearchSuggestLinkableItem\n | SearchSuggestTextItem\n | SearchSuggestGroupItem\n | SearchSuggestDelimiterItem;\n\nexport type SearchGroup = {\n type: SuggestItemType;\n items: SearchSuggestItem[];\n};\n"],
5
+ "mappings": ";AAGO,IAAK,kBAAL,kBAAKA,qBAAL;AACH,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,eAAY;AACZ,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,YAAS;AAND,SAAAA;AAAA,GAAA;",
6
6
  "names": ["SuggestItemType"]
7
7
  }
@@ -3,5 +3,8 @@ import type { SearchSuggestItem } from './types';
3
3
  type Zalgo<T> = Promise<T> | T;
4
4
  type Items = Zalgo<SearchSuggestItem[] | null>;
5
5
  type Request = (query: string) => () => void;
6
- export declare function useProvider(provider: ISearchProvider): [Items, Request];
6
+ type UseProviderOptions = {
7
+ withAllResults?: boolean;
8
+ };
9
+ export declare function useProvider(provider: ISearchProvider, options?: UseProviderOptions): [Items, Request];
7
10
  export {};
@@ -4,18 +4,26 @@ import debounce from "lodash/debounce";
4
4
  import { useTranslation } from "../../hooks";
5
5
  import { SuggestItemType } from "./types";
6
6
  var cache = /* @__PURE__ */ new Map();
7
- function useProvider(provider) {
7
+ function useProvider(provider, options = {}) {
8
+ const { withAllResults = true } = options;
8
9
  const wait = useRef(null);
9
10
  const [items, setItems] = useState(null);
10
11
  const { t } = useTranslation("search-suggest");
11
12
  const suggest = useMemo(
12
13
  () => debounce((query) => {
14
+ const cacheKey = `${withAllResults ? "all" : "items"}:${query}`;
13
15
  const promise = wait.current = (async () => {
14
16
  try {
15
17
  const data = await provider.suggest(query);
16
- const items2 = format(query, data, (args) => provider.link(args), t);
17
- cache.set(query, items2);
18
- setTimeout(() => cache.delete(query), 3e4);
18
+ const items2 = format(
19
+ query,
20
+ data,
21
+ (args) => provider.link(args),
22
+ t,
23
+ withAllResults
24
+ );
25
+ cache.set(cacheKey, items2);
26
+ setTimeout(() => cache.delete(cacheKey), 3e4);
19
27
  return items2;
20
28
  } catch (e) {
21
29
  return [
@@ -34,44 +42,77 @@ function useProvider(provider) {
34
42
  }
35
43
  });
36
44
  }, 300),
37
- [t, provider, wait, setItems]
45
+ [t, provider, wait, setItems, withAllResults]
38
46
  );
39
47
  const request = useCallback(
40
48
  (query) => {
49
+ const cacheKey = `${withAllResults ? "all" : "items"}:${query}`;
41
50
  if (!query) {
42
51
  wait.current = null;
43
52
  setItems(null);
44
- } else if (cache.has(query)) {
53
+ } else if (cache.has(cacheKey)) {
45
54
  wait.current = null;
46
- setItems(cache.get(query));
55
+ setItems(cache.get(cacheKey));
47
56
  } else {
48
57
  suggest(query);
49
58
  }
50
59
  return suggest.cancel;
51
60
  },
52
- [suggest, setItems]
61
+ [suggest, setItems, withAllResults]
53
62
  );
54
63
  return [items, request];
55
64
  }
56
- function format(query, items, link, t) {
65
+ function format(query, items, link, t, withAllResults) {
57
66
  const page = link(query);
58
- const groups = Object.values(
59
- items.reduce(
60
- (result2, item) => {
61
- result2[item.type] = result2[item.type] || { type: item.type, items: [] };
62
- result2[item.type].items.push({
63
- type: SuggestItemType.Page,
64
- title: item.title,
65
- link: item.link,
66
- description: item.description,
67
- breadcrumbs: item.breadcrumbs
68
- });
69
- return result2;
70
- },
71
- {}
72
- )
73
- );
74
- const result = groups.length === 1 ? groups[0].items : groups.reduce((result2, group) => {
67
+ const preparedItems = [];
68
+ const groupedItemsMap = {};
69
+ items.forEach((item) => {
70
+ if (item.type === SuggestItemType.Action) {
71
+ preparedItems.push({
72
+ type: SuggestItemType.Action,
73
+ title: item.title,
74
+ description: item.description || "",
75
+ onClick: item.onClick,
76
+ icon: item.icon,
77
+ hint: item.hint
78
+ });
79
+ return;
80
+ }
81
+ if (item.type === SuggestItemType.Page) {
82
+ preparedItems.push({
83
+ type: SuggestItemType.Page,
84
+ title: item.title,
85
+ link: item.link,
86
+ description: item.description,
87
+ breadcrumbs: item.breadcrumbs,
88
+ icon: item.icon,
89
+ hint: item.hint
90
+ });
91
+ return;
92
+ }
93
+ if (item.type === SuggestItemType.Link) {
94
+ preparedItems.push({
95
+ type: SuggestItemType.Link,
96
+ title: item.title,
97
+ link: item.link,
98
+ icon: item.icon,
99
+ hint: item.hint
100
+ });
101
+ return;
102
+ }
103
+ groupedItemsMap[item.type] = groupedItemsMap[item.type] || { type: item.type, items: [] };
104
+ groupedItemsMap[item.type].items.push({
105
+ type: SuggestItemType.Page,
106
+ title: item.title,
107
+ link: item.link,
108
+ description: item.description,
109
+ breadcrumbs: item.breadcrumbs,
110
+ icon: item.icon,
111
+ hint: item.hint
112
+ });
113
+ });
114
+ const groups = Object.values(groupedItemsMap);
115
+ const groupedItems = groups.length === 1 ? groups[0].items : groups.reduce((result2, group) => {
75
116
  if (result2.length) {
76
117
  result2.push({
77
118
  type: SuggestItemType.Delimiter,
@@ -85,7 +126,8 @@ function format(query, items, link, t) {
85
126
  });
86
127
  return result2.concat(group.items);
87
128
  }, []);
88
- if (result.length > 0 && page) {
129
+ const result = preparedItems.concat(groupedItems);
130
+ if (withAllResults && result.length > 0 && page) {
89
131
  result.push({
90
132
  type: SuggestItemType.Link,
91
133
  title: t("search-suggest_all-results"),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchSuggest/useProvider.ts"],
4
- "sourcesContent": ["import type {ISearchProvider, ISearchResult, TFunction} from '../../models';\nimport type {SearchGroup, SearchSuggestItem} from './types';\n\nimport {useCallback, useMemo, useRef, useState} from 'react';\nimport debounce from 'lodash/debounce';\n\nimport {useTranslation} from '../../hooks';\n\nimport {SuggestItemType} from './types';\n\ntype Link = (query: string) => string | null;\ntype Zalgo<T> = Promise<T> | T;\ntype Items = Zalgo<SearchSuggestItem[] | null>;\ntype Request = (query: string) => () => void;\n\nconst cache = new Map<string, SearchSuggestItem[]>();\n\nexport function useProvider(provider: ISearchProvider): [Items, Request] {\n const wait = useRef<Zalgo<SearchSuggestItem[] | null>>(null);\n const [items, setItems] = useState<Zalgo<SearchSuggestItem[] | null>>(null);\n const {t} = useTranslation('search-suggest');\n\n const suggest = useMemo(\n () =>\n debounce((query: string) => {\n const promise = (wait.current = (async () => {\n try {\n const data = await provider.suggest(query);\n const items = format(query, data, (args) => provider.link(args), t);\n\n cache.set(query, items);\n setTimeout(() => cache.delete(query), 30000);\n\n return items;\n } catch {\n return [\n {\n type: SuggestItemType.Text,\n title: t('search-suggest_error-text'),\n disabled: true,\n },\n ] as SearchSuggestItem[];\n }\n })());\n\n setItems(promise);\n\n promise.then((items) => {\n if (wait.current === promise) {\n setItems(items);\n }\n });\n }, 300),\n [t, provider, wait, setItems],\n );\n\n const request = useCallback(\n (query: string) => {\n if (!query) {\n wait.current = null;\n setItems(null);\n } else if (cache.has(query)) {\n wait.current = null;\n setItems(cache.get(query) as SearchSuggestItem[]);\n } else {\n suggest(query);\n }\n\n return suggest.cancel;\n },\n [suggest, setItems],\n );\n\n return [items, request];\n}\n\nfunction format(query: string, items: ISearchResult[], link: Link, t: TFunction) {\n const page = link(query);\n const groups = Object.values(\n items.reduce(\n (result, item) => {\n result[item.type] = result[item.type] || {type: item.type, items: []};\n result[item.type].items.push({\n type: SuggestItemType.Page,\n title: item.title,\n link: item.link,\n description: item.description,\n breadcrumbs: item.breadcrumbs,\n });\n return result;\n },\n {} as Record<string, SearchGroup>,\n ),\n );\n\n const result =\n groups.length === 1\n ? groups[0].items\n : groups.reduce((result, group) => {\n if (result.length) {\n result.push({\n type: SuggestItemType.Delimiter,\n disabled: true,\n });\n }\n\n result.push({\n type: SuggestItemType.Group,\n title: t(`search-item_type-${group.type}`, t('search-item_type-main')),\n disabled: true,\n });\n\n return result.concat(group.items as SearchSuggestItem[]);\n }, [] as SearchSuggestItem[]);\n\n if (result.length > 0 && page) {\n result.push({\n type: SuggestItemType.Link,\n title: t('search-suggest_all-results'),\n link: page,\n });\n }\n\n return result;\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type {ISearchProvider, ISearchResult, TFunction} from '../../models';\nimport type {SearchGroup, SearchSuggestItem} from './types';\n\nimport {useCallback, useMemo, useRef, useState} from 'react';\nimport debounce from 'lodash/debounce';\n\nimport {useTranslation} from '../../hooks';\n\nimport {SuggestItemType} from './types';\n\ntype Link = (query: string) => string | null;\ntype Zalgo<T> = Promise<T> | T;\ntype Items = Zalgo<SearchSuggestItem[] | null>;\ntype Request = (query: string) => () => void;\ntype UseProviderOptions = {\n withAllResults?: boolean;\n};\n\nconst cache = new Map<string, SearchSuggestItem[]>();\n\nexport function useProvider(\n provider: ISearchProvider,\n options: UseProviderOptions = {},\n): [Items, Request] {\n const {withAllResults = true} = options;\n const wait = useRef<Zalgo<SearchSuggestItem[] | null>>(null);\n const [items, setItems] = useState<Zalgo<SearchSuggestItem[] | null>>(null);\n const {t} = useTranslation('search-suggest');\n\n const suggest = useMemo(\n () =>\n debounce((query: string) => {\n const cacheKey = `${withAllResults ? 'all' : 'items'}:${query}`;\n const promise = (wait.current = (async () => {\n try {\n const data = await provider.suggest(query);\n const items = format(\n query,\n data,\n (args) => provider.link(args),\n t,\n withAllResults,\n );\n\n cache.set(cacheKey, items);\n setTimeout(() => cache.delete(cacheKey), 30000);\n\n return items;\n } catch {\n return [\n {\n type: SuggestItemType.Text,\n title: t('search-suggest_error-text'),\n disabled: true,\n },\n ] as SearchSuggestItem[];\n }\n })());\n\n setItems(promise);\n\n promise.then((items) => {\n if (wait.current === promise) {\n setItems(items);\n }\n });\n }, 300),\n [t, provider, wait, setItems, withAllResults],\n );\n\n const request = useCallback(\n (query: string) => {\n const cacheKey = `${withAllResults ? 'all' : 'items'}:${query}`;\n\n if (!query) {\n wait.current = null;\n setItems(null);\n } else if (cache.has(cacheKey)) {\n wait.current = null;\n setItems(cache.get(cacheKey) as SearchSuggestItem[]);\n } else {\n suggest(query);\n }\n\n return suggest.cancel;\n },\n [suggest, setItems, withAllResults],\n );\n\n return [items, request];\n}\n\nfunction format(\n query: string,\n items: ISearchResult[],\n link: Link,\n t: TFunction,\n withAllResults: boolean,\n) {\n const page = link(query);\n const preparedItems: SearchSuggestItem[] = [];\n const groupedItemsMap = {} as Record<string, SearchGroup>;\n\n items.forEach((item) => {\n if (item.type === SuggestItemType.Action) {\n preparedItems.push({\n type: SuggestItemType.Action,\n title: item.title,\n description: item.description || '',\n onClick: item.onClick,\n icon: item.icon,\n hint: item.hint,\n });\n return;\n }\n\n if (item.type === SuggestItemType.Page) {\n preparedItems.push({\n type: SuggestItemType.Page,\n title: item.title,\n link: item.link,\n description: item.description,\n breadcrumbs: item.breadcrumbs,\n icon: item.icon,\n hint: item.hint,\n });\n return;\n }\n\n if (item.type === SuggestItemType.Link) {\n preparedItems.push({\n type: SuggestItemType.Link,\n title: item.title,\n link: item.link,\n icon: item.icon,\n hint: item.hint,\n });\n return;\n }\n\n groupedItemsMap[item.type] = groupedItemsMap[item.type] || {type: item.type, items: []};\n groupedItemsMap[item.type].items.push({\n type: SuggestItemType.Page,\n title: item.title,\n link: item.link,\n description: item.description,\n breadcrumbs: item.breadcrumbs,\n icon: item.icon,\n hint: item.hint,\n });\n });\n\n const groups = Object.values(groupedItemsMap);\n\n const groupedItems =\n groups.length === 1\n ? groups[0].items\n : groups.reduce((result, group) => {\n if (result.length) {\n result.push({\n type: SuggestItemType.Delimiter,\n disabled: true,\n });\n }\n\n result.push({\n type: SuggestItemType.Group,\n title: t(`search-item_type-${group.type}`, t('search-item_type-main')),\n disabled: true,\n });\n\n return result.concat(group.items as SearchSuggestItem[]);\n }, [] as SearchSuggestItem[]);\n\n const result = preparedItems.concat(groupedItems);\n\n if (withAllResults && result.length > 0 && page) {\n result.push({\n type: SuggestItemType.Link,\n title: t('search-suggest_all-results'),\n link: page,\n });\n }\n\n return result;\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["items", "result"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/ShareButton/ShareButton.scss", "../../../../src/components/ShareButton/%3Cinput css gazzNC%3E"],
3
+ "sources": ["../../../../src/components/ShareButton/ShareButton.scss", "../../../../src/components/ShareButton/%3Cinput css asnFGd%3E"],
4
4
  "sourcesContent": ["// same as bookmark button keep it sync :)\n\n.dc-share-button {\n vertical-align: middle;\n margin: 0 0 5px 12px;\n\n &:hover::before {\n background-color: transparent;\n }\n}\n", ".dc-share-button {\n vertical-align: middle;\n margin: 0 0 5px 12px;\n}\n.dc-share-button:hover::before {\n background-color: transparent;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NoYXJlQnV0dG9uIiwic291cmNlcyI6WyJTaGFyZUJ1dHRvbi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBO0VBQ0k7RUFDQTs7QUFFQTtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc2FtZSBhcyBib29rbWFyayBidXR0b24ga2VlcCBpdCBzeW5jIDopXG5cbi5kYy1zaGFyZS1idXR0b24ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgbWFyZ2luOiAwIDAgNXB4IDEycHg7XG5cbiAgICAmOmhvdmVyOjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG59XG4iXX0= */"],
5
5
  "mappings": ";AAEA,CAAA;AACI,kBAAA;AACA,UAAA,EAAA,EAAA,IAAA;ACDJ;ADGI,CAJJ,eAII,MAAA;AACI,oBAAA;ACDR;",
6
6
  "names": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/SubNavigation/SubNavigation.scss", "../../../../src/components/SubNavigation/%3Cinput css LDxFyG%3E", "../../../../src/styles/mixins.scss"],
4
- "sourcesContent": ["@use 'sass:map';\n@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-subnavigation {\n $horizontalPadding: 12px;\n $verticalPadding: 4px;\n\n position: relative;\n z-index: 119;\n\n display: flex;\n justify-content: space-between;\n\n box-sizing: content-box;\n width: calc(100% - 2 * #{$horizontalPadding});\n height: variables.$subNavigationHeight - $verticalPadding - $verticalPadding;\n padding: $verticalPadding $horizontalPadding;\n\n gap: $verticalPadding;\n\n background: var(--g-color-base-background);\n border-bottom: 1px solid var(--g-color-line-generic);\n\n transition: transform 300ms 0s;\n\n will-change: transform;\n\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n\n .dc-root_wide-format & {\n padding-inline: 0 8px;\n width: calc(100% - 8px);\n }\n\n &_visible {\n margin-top: 0;\n }\n\n &_invisible {\n --dc-header-height: 64px;\n transform: translateY(calc(0px - var(--dc-header-height, #{variables.$headerHeight})));\n }\n\n &_hidden {\n display: none;\n }\n\n &__wrapper {\n width: 100%;\n }\n\n &__mini-toc {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n width: 100%;\n max-height: 0px;\n\n box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.15);\n background: var(--g-color-base-background);\n\n overflow-y: hidden;\n\n will-change: max-height;\n\n body:has(&_open .dc-mini-toc_overflowed) {\n overflow-y: hidden;\n }\n\n &_open {\n max-height: calc(\n 100vh - var(--dc-header-height, variables.$headerHeight) - var(\n --dc-subnavigation-height,\n variables.$subNavigationHeight\n )\n );\n transition: max-height 300ms 0s;\n }\n }\n }\n\n &__icon {\n display: flex;\n justify-content: center;\n align-items: center;\n\n padding: 12px;\n }\n\n &__mini-toc-button {\n $gap: 4px;\n $iconSize: 44px;\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 0 0;\n\n width: 100%;\n max-width: calc(100% - #{$iconSize} - 2 * #{$gap} - #{$horizontalPadding});\n\n padding: 0;\n padding-left: 4px;\n gap: $gap;\n\n border-radius: var(--g-border-radius-xs, 3px);\n border: none;\n border-left: 1px solid var(--g-color-line-generic);\n outline: none;\n\n color: var(--g-color-text-primary);\n background: none;\n\n text-decoration: none;\n\n @include mixins.text-size(subheader-2);\n font-weight: 500;\n\n transition:\n transform 0.1s ease-out,\n color 0.15s linear;\n transform: scale(1);\n\n touch-action: manipulation;\n\n .dc-root_wide-format & {\n max-width: calc(100% - #{$iconSize} - 2 * #{$gap});\n }\n\n // if has burger\n &:nth-child(2) {\n max-width: calc(100% - 2 * #{$iconSize} - 2 * #{$gap});\n }\n\n &_hidden {\n visibility: hidden;\n }\n\n &_disabled {\n user-select: text;\n }\n\n &_label {\n border-left: none;\n justify-content: center;\n\n font-weight: 600;\n @include mixins.text-size(subheader-3);\n }\n\n &_center,\n .dc-root_wide-format &_center {\n max-width: unset;\n }\n\n // without burgerButton\n &:nth-child(1) {\n border-left: none;\n }\n\n // with burgerButton\n &:nth-child(2) {\n padding-left: 0;\n }\n\n &:not(&_disabled) {\n &:hover {\n background: var(--g-color-base-simple-hover);\n }\n\n &:active {\n transition: none;\n transform: scale(0.98);\n }\n\n &:focus-visible {\n outline: var(--g-color-line-focus, rgb(78, 121, 235));\n outline-width: 2px;\n outline-style: solid;\n }\n }\n }\n\n &__title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &_single {\n padding-left: $horizontalPadding;\n }\n }\n\n & &__share-button {\n &_absolute {\n position: absolute;\n right: 0;\n\n .dc-root_wide-format & {\n right: 8px;\n }\n }\n\n &_invisible {\n display: none;\n }\n }\n}\n", ".dc-subnavigation {\n position: relative;\n z-index: 119;\n display: flex;\n justify-content: space-between;\n box-sizing: content-box;\n width: calc(100% - 2 * 12px);\n height: 44px;\n padding: 4px 12px;\n gap: 4px;\n background: var(--g-color-base-background);\n border-bottom: 1px solid var(--g-color-line-generic);\n transition: transform 300ms 0s;\n will-change: transform;\n}\n@media (min-width: 769px) {\n .dc-subnavigation {\n display: none;\n }\n}\n.dc-root_wide-format .dc-subnavigation {\n padding-inline: 0 8px;\n width: calc(100% - 8px);\n}\n.dc-subnavigation_visible {\n margin-top: 0;\n}\n.dc-subnavigation_invisible {\n --dc-header-height: 64px;\n transform: translateY(calc(0px - var(--dc-header-height, 0px)));\n}\n.dc-subnavigation_hidden {\n display: none;\n}\n.dc-subnavigation__wrapper {\n width: 100%;\n}\n@media (max-width: 768px) {\n .dc-subnavigation__mini-toc {\n width: 100%;\n max-height: 0px;\n box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.15);\n background: var(--g-color-base-background);\n overflow-y: hidden;\n will-change: max-height;\n }\n body:has(.dc-subnavigation__mini-toc_open .dc-mini-toc_overflowed) {\n overflow-y: hidden;\n }\n .dc-subnavigation__mini-toc_open {\n max-height: calc(100vh - var(--dc-header-height, 0px) - var(--dc-subnavigation-height, 52px));\n transition: max-height 300ms 0s;\n }\n}\n.dc-subnavigation__icon {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 12px;\n}\n.dc-subnavigation__mini-toc-button {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 0 0;\n width: 100%;\n max-width: calc(100% - 44px - 2 * 4px - 12px);\n padding: 0;\n padding-left: 4px;\n gap: 4px;\n border-radius: var(--g-border-radius-xs, 3px);\n border: none;\n border-left: 1px solid var(--g-color-line-generic);\n outline: none;\n color: var(--g-color-text-primary);\n background: none;\n text-decoration: none;\n font-size: var(--g-text-subheader-2-font-size);\n line-height: var(--g-text-subheader-2-line-height);\n font-weight: 500;\n transition: transform 0.1s ease-out, color 0.15s linear;\n transform: scale(1);\n touch-action: manipulation;\n}\n.dc-root_wide-format .dc-subnavigation__mini-toc-button {\n max-width: calc(100% - 44px - 2 * 4px);\n}\n.dc-subnavigation__mini-toc-button:nth-child(2) {\n max-width: calc(100% - 2 * 44px - 2 * 4px);\n}\n.dc-subnavigation__mini-toc-button_hidden {\n visibility: hidden;\n}\n.dc-subnavigation__mini-toc-button_disabled {\n user-select: text;\n}\n.dc-subnavigation__mini-toc-button_label {\n border-left: none;\n justify-content: center;\n font-weight: 600;\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n}\n.dc-subnavigation__mini-toc-button_center, .dc-root_wide-format .dc-subnavigation__mini-toc-button_center {\n max-width: unset;\n}\n.dc-subnavigation__mini-toc-button:nth-child(1) {\n border-left: none;\n}\n.dc-subnavigation__mini-toc-button:nth-child(2) {\n padding-left: 0;\n}\n.dc-subnavigation__mini-toc-button:not(.dc-subnavigation__mini-toc-button_disabled):hover {\n background: var(--g-color-base-simple-hover);\n}\n.dc-subnavigation__mini-toc-button:not(.dc-subnavigation__mini-toc-button_disabled):active {\n transition: none;\n transform: scale(0.98);\n}\n.dc-subnavigation__mini-toc-button:not(.dc-subnavigation__mini-toc-button_disabled):focus-visible {\n outline: var(--g-color-line-focus, rgb(78, 121, 235));\n outline-width: 2px;\n outline-style: solid;\n}\n.dc-subnavigation__title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dc-subnavigation__title_single {\n padding-left: 12px;\n}\n.dc-subnavigation .dc-subnavigation__share-button_absolute {\n position: absolute;\n right: 0;\n}\n.dc-root_wide-format .dc-subnavigation .dc-subnavigation__share-button_absolute {\n right: 8px;\n}\n.dc-subnavigation .dc-subnavigation__share-button_invisible {\n display: none;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1N1Yk5hdmlnYXRpb24iLCJzb3VyY2VzIjpbIlN1Yk5hdmlnYXRpb24uc2NzcyIsIi4uLy4uL3N0eWxlcy9taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTtFQUlJO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQSxLQWJrQjtFQWVsQjtFQUNBO0VBRUE7RUFFQTs7QUFFQTtFQXhCSjtJQXlCUTs7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFJQTtFQURKO0lBRVE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUVBOztFQUVBO0lBQ0k7O0VBR0o7SUFDSTtJQU1BOzs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUVBOztBQUdKO0VBSUk7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBLEtBYk07RUFlTjtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQzlHSjtFQUNBO0VEZ0hJO0VBRUEsWUFDSTtFQUVKO0VBRUE7O0FBRUE7RUFDSTs7QUFJSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFFQTtFQy9JUjtFQUNBOztBRGtKSTtFQUVJOztBQUlKO0VBQ0k7O0FBSUo7RUFDSTs7QUFJQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFLWjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLGNBekxZOztBQThMaEI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSSIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4uLy4uL3N0eWxlcy92YXJpYWJsZXMnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5cbi5kYy1zdWJuYXZpZ2F0aW9uIHtcbiAgICAkaG9yaXpvbnRhbFBhZGRpbmc6IDEycHg7XG4gICAgJHZlcnRpY2FsUGFkZGluZzogNHB4O1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDExOTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAjeyRob3Jpem9udGFsUGFkZGluZ30pO1xuICAgIGhlaWdodDogdmFyaWFibGVzLiRzdWJOYXZpZ2F0aW9uSGVpZ2h0IC0gJHZlcnRpY2FsUGFkZGluZyAtICR2ZXJ0aWNhbFBhZGRpbmc7XG4gICAgcGFkZGluZzogJHZlcnRpY2FsUGFkZGluZyAkaG9yaXpvbnRhbFBhZGRpbmc7XG5cbiAgICBnYXA6ICR2ZXJ0aWNhbFBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcblxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyAwcztcblxuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5kYy1yb290X3dpZGUtZm9ybWF0ICYge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMCA4cHg7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4cHgpO1xuICAgIH1cblxuICAgICZfdmlzaWJsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgJl9pbnZpc2libGUge1xuICAgICAgICAtLWRjLWhlYWRlci1oZWlnaHQ6IDY0cHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKDBweCAtIHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSkpO1xuICAgIH1cblxuICAgICZfaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fbWluaS10b2Mge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMHB4O1xuXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWctY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogbWF4LWhlaWdodDtcblxuICAgICAgICAgICAgYm9keTpoYXMoJl9vcGVuIC5kYy1taW5pLXRvY19vdmVyZmxvd2VkKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX29wZW4ge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIDEwMHZoIC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgdmFyaWFibGVzLiRoZWFkZXJIZWlnaHQpIC0gdmFyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tZGMtc3VibmF2aWdhdGlvbi1oZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzLiRzdWJOYXZpZ2F0aW9uSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDMwMG1zIDBzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fbWluaS10b2MtYnV0dG9uIHtcbiAgICAgICAgJGdhcDogNHB4O1xuICAgICAgICAkaWNvblNpemU6IDQ0cHg7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBmbGV4OiAxIDAgMDtcblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAjeyRpY29uU2l6ZX0gLSAyICogI3skZ2FwfSAtICN7JGhvcml6b250YWxQYWRkaW5nfSk7XG5cbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgIGdhcDogJGdhcDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWJvcmRlci1yYWRpdXMteHMsIDNweCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShzdWJoZWFkZXItMik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIHRyYW5zZm9ybSAwLjFzIGVhc2Utb3V0LFxuICAgICAgICAgICAgY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuXG4gICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gICAgICAgIC5kYy1yb290X3dpZGUtZm9ybWF0ICYge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAjeyRpY29uU2l6ZX0gLSAyICogI3skZ2FwfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBoYXMgYnVyZ2VyXG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMiAqICN7JGljb25TaXplfSAtIDIgKiAjeyRnYXB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfaGlkZGVuIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfZGlzYWJsZWQge1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX2xhYmVsIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMudGV4dC1zaXplKHN1YmhlYWRlci0zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfY2VudGVyLFxuICAgICAgICAuZGMtcm9vdF93aWRlLWZvcm1hdCAmX2NlbnRlciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gd2l0aG91dCBidXJnZXJCdXR0b25cbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3aXRoIGJ1cmdlckJ1dHRvblxuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgmX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nLWNvbG9yLWJhc2Utc2ltcGxlLWhvdmVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMsIHJnYig3OCwgMTIxLCAyMzUpKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLXdpZHRoOiAycHg7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgICZfc2luZ2xlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGhvcml6b250YWxQYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiAmX19zaGFyZS1idXR0b24ge1xuICAgICAgICAmX2Fic29sdXRlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAuZGMtcm9vdF93aWRlLWZvcm1hdCAmIHtcbiAgICAgICAgICAgICAgICByaWdodDogOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9pbnZpc2libGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3ZhcmlhYmxlcyc7XG5cbkBtaXhpbiB0ZXh0LXNpemUoJG5hbWUpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtI3skbmFtZX0tbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSgpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5AbWl4aW4gZml4QW5jaG9yUG9zaXRpb24oJG9mZnNldDogMHB4KSB7XG4gICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCN7JG9mZnNldH0gLSB2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgQGluY2x1ZGUgaXNsYW5kcy1mb2N1cygpO1xuXG4gICAgQGluY2x1ZGUgZm9jdXNhYmxlKDAsICdib3gtc2hhZG93Jyk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rLWhvdmVyKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzIoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzMoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMik7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0xKTtcbn1cblxuQG1peGluIGhlYWRpbmc1KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGhlYWRpbmc2KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGRlc2t0b3AtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBncmF2aXR5LXVpLXRleHQtc2l6ZXMoJGRlbHRhKSB7XG4gICAgLS1nLXRleHQtYm9keS0xLWZvbnQtc2l6ZTogI3sxM3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTItZm9udC1zaXplOiAjezE1cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS1zaG9ydC1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY2FwdGlvbi0xLWZvbnQtc2l6ZTogI3s5cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMi1mb250LXNpemU6ICN7MTFweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplOiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZTogI3syNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTItZm9udC1zaXplOiAjezE1cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0zLWZvbnQtc2l6ZTogI3sxN3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTEtZm9udC1zaXplOiAjezI4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMi1mb250LXNpemU6ICN7MzJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0zLWZvbnQtc2l6ZTogI3s0MHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTQtZm9udC1zaXplOiAjezQ4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMS1mb250LXNpemU6ICN7MTJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTMtZm9udC1zaXplOiAjezE2cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTItZm9udC1zaXplOiAjezE0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTMtZm9udC1zaXplOiAjezE2cHggKyAkZGVsdGF9O1xuXG4gICAgLS15Zm0tZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgyOiB2YXIoLS1nLXRleHQtaGVhZGVyLTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDM6IHZhcigtLWctdGV4dC1oZWFkZXItMS1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNDogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0zLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg1OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDY6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMS1mb250LXNpemUpO1xufVxuIl19 */", "@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-2-font-size: #{15px + $delta};\n --g-text-body-3-font-size: #{17px + $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-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"],
3
+ "sources": ["../../../../src/components/SubNavigation/SubNavigation.scss", "../../../../src/components/SubNavigation/%3Cinput css tTqZxU%3E", "../../../../src/styles/mixins.scss"],
4
+ "sourcesContent": ["@use 'sass:map';\n@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-subnavigation {\n $horizontalPadding: 12px;\n $verticalPadding: 4px;\n\n position: relative;\n z-index: 119;\n\n display: flex;\n justify-content: space-between;\n\n box-sizing: content-box;\n width: calc(100% - 2 * #{$horizontalPadding});\n height: variables.$subNavigationHeight - $verticalPadding - $verticalPadding;\n padding: $verticalPadding $horizontalPadding;\n\n gap: $verticalPadding;\n\n background: var(--g-color-base-background);\n border-bottom: 1px solid var(--g-color-line-generic);\n\n transition: transform 300ms 0s;\n\n will-change: transform;\n\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n\n .dc-root_wide-format & {\n padding-inline: 0 8px;\n width: calc(100% - 8px);\n }\n\n &_visible {\n margin-top: 0;\n }\n\n &_invisible {\n --dc-header-height: 64px;\n transform: translateY(calc(0px - var(--dc-header-height, #{variables.$headerHeight})));\n }\n\n &_hidden {\n display: none;\n }\n\n &__wrapper {\n width: 100%;\n }\n\n &__mini-toc {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n width: 100%;\n max-height: 0px;\n\n box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.15);\n background: var(--g-color-base-background);\n\n overflow-y: hidden;\n\n will-change: max-height;\n\n body:has(&_open .dc-mini-toc_overflowed) {\n overflow-y: hidden;\n }\n\n &_open {\n max-height: calc(\n 100vh - var(--dc-header-height, variables.$headerHeight) - var(\n --dc-subnavigation-height,\n variables.$subNavigationHeight\n )\n );\n transition: max-height 300ms 0s;\n }\n }\n }\n\n &__icon {\n display: flex;\n justify-content: center;\n align-items: center;\n\n padding: 12px;\n }\n\n &__mini-toc-button {\n $gap: 4px;\n $iconSize: 44px;\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 0 0;\n\n width: 100%;\n max-width: calc(100% - #{$iconSize} - 2 * #{$gap} - #{$horizontalPadding});\n\n padding: 0;\n padding-left: 4px;\n gap: $gap;\n\n border-radius: var(--g-border-radius-xs, 3px);\n border: none;\n border-left: 1px solid var(--g-color-line-generic);\n outline: none;\n\n color: var(--g-color-text-primary);\n background: none;\n\n text-decoration: none;\n\n @include mixins.text-size(subheader-2);\n font-weight: 500;\n\n transition:\n transform 0.1s ease-out,\n color 0.15s linear;\n transform: scale(1);\n\n touch-action: manipulation;\n\n .dc-root_wide-format & {\n max-width: calc(100% - #{$iconSize} - 2 * #{$gap});\n }\n\n // if has burger\n &:nth-child(2) {\n max-width: calc(100% - 2 * #{$iconSize} - 2 * #{$gap});\n }\n\n &_hidden {\n visibility: hidden;\n }\n\n &_disabled {\n user-select: text;\n }\n\n &_label {\n border-left: none;\n justify-content: center;\n\n font-weight: 600;\n @include mixins.text-size(subheader-3);\n }\n\n &_center,\n .dc-root_wide-format &_center {\n max-width: unset;\n }\n\n // without burgerButton\n &:nth-child(1) {\n border-left: none;\n }\n\n // with burgerButton\n &:nth-child(2) {\n padding-left: 0;\n }\n\n &:not(&_disabled) {\n &:hover {\n background: var(--g-color-base-simple-hover);\n }\n\n &:active {\n transition: none;\n transform: scale(0.98);\n }\n\n &:focus-visible {\n outline: var(--g-color-line-focus, rgb(78, 121, 235));\n outline-width: 2px;\n outline-style: solid;\n }\n }\n }\n\n &__title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &_single {\n padding-left: $horizontalPadding;\n }\n }\n\n & &__share-button {\n &_absolute {\n position: absolute;\n right: 0;\n\n .dc-root_wide-format & {\n right: 8px;\n }\n }\n\n &_invisible {\n display: none;\n }\n }\n}\n", ".dc-subnavigation {\n position: relative;\n z-index: 119;\n display: flex;\n justify-content: space-between;\n box-sizing: content-box;\n width: calc(100% - 2 * 12px);\n height: 44px;\n padding: 4px 12px;\n gap: 4px;\n background: var(--g-color-base-background);\n border-bottom: 1px solid var(--g-color-line-generic);\n transition: transform 300ms 0s;\n will-change: transform;\n}\n@media (min-width: 769px) {\n .dc-subnavigation {\n display: none;\n }\n}\n.dc-root_wide-format .dc-subnavigation {\n padding-inline: 0 8px;\n width: calc(100% - 8px);\n}\n.dc-subnavigation_visible {\n margin-top: 0;\n}\n.dc-subnavigation_invisible {\n --dc-header-height: 64px;\n transform: translateY(calc(0px - var(--dc-header-height, 0px)));\n}\n.dc-subnavigation_hidden {\n display: none;\n}\n.dc-subnavigation__wrapper {\n width: 100%;\n}\n@media (max-width: 768px) {\n .dc-subnavigation__mini-toc {\n width: 100%;\n max-height: 0px;\n box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.15);\n background: var(--g-color-base-background);\n overflow-y: hidden;\n will-change: max-height;\n }\n body:has(.dc-subnavigation__mini-toc_open .dc-mini-toc_overflowed) {\n overflow-y: hidden;\n }\n .dc-subnavigation__mini-toc_open {\n max-height: calc(100vh - var(--dc-header-height, 0px) - var(--dc-subnavigation-height, 52px));\n transition: max-height 300ms 0s;\n }\n}\n.dc-subnavigation__icon {\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 12px;\n}\n.dc-subnavigation__mini-toc-button {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n flex: 1 0 0;\n width: 100%;\n max-width: calc(100% - 44px - 2 * 4px - 12px);\n padding: 0;\n padding-left: 4px;\n gap: 4px;\n border-radius: var(--g-border-radius-xs, 3px);\n border: none;\n border-left: 1px solid var(--g-color-line-generic);\n outline: none;\n color: var(--g-color-text-primary);\n background: none;\n text-decoration: none;\n font-size: var(--g-text-subheader-2-font-size);\n line-height: var(--g-text-subheader-2-line-height);\n font-weight: 500;\n transition: transform 0.1s ease-out, color 0.15s linear;\n transform: scale(1);\n touch-action: manipulation;\n}\n.dc-root_wide-format .dc-subnavigation__mini-toc-button {\n max-width: calc(100% - 44px - 2 * 4px);\n}\n.dc-subnavigation__mini-toc-button:nth-child(2) {\n max-width: calc(100% - 2 * 44px - 2 * 4px);\n}\n.dc-subnavigation__mini-toc-button_hidden {\n visibility: hidden;\n}\n.dc-subnavigation__mini-toc-button_disabled {\n user-select: text;\n}\n.dc-subnavigation__mini-toc-button_label {\n border-left: none;\n justify-content: center;\n font-weight: 600;\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n}\n.dc-subnavigation__mini-toc-button_center, .dc-root_wide-format .dc-subnavigation__mini-toc-button_center {\n max-width: unset;\n}\n.dc-subnavigation__mini-toc-button:nth-child(1) {\n border-left: none;\n}\n.dc-subnavigation__mini-toc-button:nth-child(2) {\n padding-left: 0;\n}\n.dc-subnavigation__mini-toc-button:not(.dc-subnavigation__mini-toc-button_disabled):hover {\n background: var(--g-color-base-simple-hover);\n}\n.dc-subnavigation__mini-toc-button:not(.dc-subnavigation__mini-toc-button_disabled):active {\n transition: none;\n transform: scale(0.98);\n}\n.dc-subnavigation__mini-toc-button:not(.dc-subnavigation__mini-toc-button_disabled):focus-visible {\n outline: var(--g-color-line-focus, rgb(78, 121, 235));\n outline-width: 2px;\n outline-style: solid;\n}\n.dc-subnavigation__title {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dc-subnavigation__title_single {\n padding-left: 12px;\n}\n.dc-subnavigation .dc-subnavigation__share-button_absolute {\n position: absolute;\n right: 0;\n}\n.dc-root_wide-format .dc-subnavigation .dc-subnavigation__share-button_absolute {\n right: 8px;\n}\n.dc-subnavigation .dc-subnavigation__share-button_invisible {\n display: none;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1N1Yk5hdmlnYXRpb24iLCJzb3VyY2VzIjpbIlN1Yk5hdmlnYXRpb24uc2NzcyIsIi4uLy4uL3N0eWxlcy9taXhpbnMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQTtFQUlJO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFFQSxLQWJrQjtFQWVsQjtFQUNBO0VBRUE7RUFFQTs7QUFFQTtFQXhCSjtJQXlCUTs7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFJQTtFQURKO0lBRVE7SUFDQTtJQUVBO0lBQ0E7SUFFQTtJQUVBOztFQUVBO0lBQ0k7O0VBR0o7SUFDSTtJQU1BOzs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUVBOztBQUdKO0VBSUk7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBRUE7RUFDQTtFQUNBLEtBYk07RUFlTjtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQzlHSjtFQUNBO0VEZ0hJO0VBRUEsWUFDSTtFQUVKO0VBRUE7O0FBRUE7RUFDSTs7QUFJSjtFQUNJOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFFQTtFQy9JUjtFQUNBOztBRGtKSTtFQUVJOztBQUlKO0VBQ0k7O0FBSUo7RUFDSTs7QUFJQTtFQUNJOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFLWjtFQUNJO0VBQ0E7RUFDQTs7QUFFQTtFQUNJLGNBekxZOztBQThMaEI7RUFDSTtFQUNBOztBQUVBO0VBQ0k7O0FBSVI7RUFDSSIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4uLy4uL3N0eWxlcy92YXJpYWJsZXMnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5cbi5kYy1zdWJuYXZpZ2F0aW9uIHtcbiAgICAkaG9yaXpvbnRhbFBhZGRpbmc6IDEycHg7XG4gICAgJHZlcnRpY2FsUGFkZGluZzogNHB4O1xuXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHotaW5kZXg6IDExOTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSAtIDIgKiAjeyRob3Jpem9udGFsUGFkZGluZ30pO1xuICAgIGhlaWdodDogdmFyaWFibGVzLiRzdWJOYXZpZ2F0aW9uSGVpZ2h0IC0gJHZlcnRpY2FsUGFkZGluZyAtICR2ZXJ0aWNhbFBhZGRpbmc7XG4gICAgcGFkZGluZzogJHZlcnRpY2FsUGFkZGluZyAkaG9yaXpvbnRhbFBhZGRpbmc7XG5cbiAgICBnYXA6ICR2ZXJ0aWNhbFBhZGRpbmc7XG5cbiAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nLWNvbG9yLWJhc2UtYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcblxuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyAwcztcblxuICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5kYy1yb290X3dpZGUtZm9ybWF0ICYge1xuICAgICAgICBwYWRkaW5nLWlubGluZTogMCA4cHg7XG4gICAgICAgIHdpZHRoOiBjYWxjKDEwMCUgLSA4cHgpO1xuICAgIH1cblxuICAgICZfdmlzaWJsZSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgfVxuXG4gICAgJl9pbnZpc2libGUge1xuICAgICAgICAtLWRjLWhlYWRlci1oZWlnaHQ6IDY0cHg7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWShjYWxjKDBweCAtIHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSkpO1xuICAgIH1cblxuICAgICZfaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgJl9fbWluaS10b2Mge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMHB4O1xuXG4gICAgICAgICAgICBib3gtc2hhZG93OiAwcHggMXB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWctY29sb3ItYmFzZS1iYWNrZ3JvdW5kKTtcblxuICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuXG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogbWF4LWhlaWdodDtcblxuICAgICAgICAgICAgYm9keTpoYXMoJl9vcGVuIC5kYy1taW5pLXRvY19vdmVyZmxvd2VkKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX29wZW4ge1xuICAgICAgICAgICAgICAgIG1heC1oZWlnaHQ6IGNhbGMoXG4gICAgICAgICAgICAgICAgICAgIDEwMHZoIC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgdmFyaWFibGVzLiRoZWFkZXJIZWlnaHQpIC0gdmFyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tZGMtc3VibmF2aWdhdGlvbi1oZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGVzLiRzdWJOYXZpZ2F0aW9uSGVpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDMwMG1zIDBzO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9faWNvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgIHBhZGRpbmc6IDEycHg7XG4gICAgfVxuXG4gICAgJl9fbWluaS10b2MtYnV0dG9uIHtcbiAgICAgICAgJGdhcDogNHB4O1xuICAgICAgICAkaWNvblNpemU6IDQ0cHg7XG5cbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgICAgICBmbGV4OiAxIDAgMDtcblxuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAjeyRpY29uU2l6ZX0gLSAyICogI3skZ2FwfSAtICN7JGhvcml6b250YWxQYWRkaW5nfSk7XG5cbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgICAgIGdhcDogJGdhcDtcblxuICAgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWJvcmRlci1yYWRpdXMteHMsIDNweCk7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1wcmltYXJ5KTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcblxuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShzdWJoZWFkZXItMik7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICAgICAgdHJhbnNpdGlvbjpcbiAgICAgICAgICAgIHRyYW5zZm9ybSAwLjFzIGVhc2Utb3V0LFxuICAgICAgICAgICAgY29sb3IgMC4xNXMgbGluZWFyO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuXG4gICAgICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuXG4gICAgICAgIC5kYy1yb290X3dpZGUtZm9ybWF0ICYge1xuICAgICAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAjeyRpY29uU2l6ZX0gLSAyICogI3skZ2FwfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBpZiBoYXMgYnVyZ2VyXG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogY2FsYygxMDAlIC0gMiAqICN7JGljb25TaXplfSAtIDIgKiAjeyRnYXB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfaGlkZGVuIHtcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfZGlzYWJsZWQge1xuICAgICAgICAgICAgdXNlci1zZWxlY3Q6IHRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICAmX2xhYmVsIHtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiBub25lO1xuICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMudGV4dC1zaXplKHN1YmhlYWRlci0zKTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfY2VudGVyLFxuICAgICAgICAuZGMtcm9vdF93aWRlLWZvcm1hdCAmX2NlbnRlciB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IHVuc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gd2l0aG91dCBidXJnZXJCdXR0b25cbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3aXRoIGJ1cmdlckJ1dHRvblxuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAmOm5vdCgmX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1nLWNvbG9yLWJhc2Utc2ltcGxlLWhvdmVyKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphY3RpdmUge1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICBvdXRsaW5lOiB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMsIHJnYig3OCwgMTIxLCAyMzUpKTtcbiAgICAgICAgICAgICAgICBvdXRsaW5lLXdpZHRoOiAycHg7XG4gICAgICAgICAgICAgICAgb3V0bGluZS1zdHlsZTogc29saWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuXG4gICAgICAgICZfc2luZ2xlIHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogJGhvcml6b250YWxQYWRkaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJiAmX19zaGFyZS1idXR0b24ge1xuICAgICAgICAmX2Fic29sdXRlIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHJpZ2h0OiAwO1xuXG4gICAgICAgICAgICAuZGMtcm9vdF93aWRlLWZvcm1hdCAmIHtcbiAgICAgICAgICAgICAgICByaWdodDogOHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJl9pbnZpc2libGUge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJ3ZhcmlhYmxlcyc7XG5cbkBtaXhpbiB0ZXh0LXNpemUoJG5hbWUpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtI3skbmFtZX0tbGluZS1oZWlnaHQpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGlzdC1zdHlsZSgpIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5AbWl4aW4gZml4QW5jaG9yUG9zaXRpb24oJG9mZnNldDogMHB4KSB7XG4gICAgcGFkZGluZy10b3A6IGNhbGModmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCN7JG9mZnNldH0gLSB2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xufVxuXG5AbWl4aW4gcmVzZXQtbGluay1zdHlsZSgpIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiBpc2xhbmRzLWZvY3VzKCkge1xuICAgIG91dGxpbmU6IG5vbmU7XG5cbiAgICAudXRpbGl0eWZvY3VzICY6Zm9jdXMge1xuICAgICAgICBvdXRsaW5lOiAycHggc29saWQgI2ZmZGI0ZDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1c2FibGUoJG9mZnNldDogMCwgJG1vZGU6ICdvdXRsaW5lJykge1xuICAgIEBpZiAkbW9kZSA9PSAnb3V0bGluZScge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZS1vZmZzZXQ6ICRvZmZzZXQ7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJG1vZGUgPT0gJ2JveC1zaGFkb3cnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAycHggdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIH1cbiAgICAgICAgJjpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBsaW5rKCkge1xuICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluayk7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1nLWZvY3VzLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgQGluY2x1ZGUgaXNsYW5kcy1mb2N1cygpO1xuXG4gICAgQGluY2x1ZGUgZm9jdXNhYmxlKDAsICdib3gtc2hhZG93Jyk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rLWhvdmVyKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMyk7XG5cbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzIoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzMoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMik7XG59XG5cbkBtaXhpbiBoZWFkaW5nNCgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0xKTtcbn1cblxuQG1peGluIGhlYWRpbmc1KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGhlYWRpbmc2KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbn1cblxuQG1peGluIGNvbnRyaWJ1dG9ycy10ZXh0KCkge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIG1hcmdpbi1yaWdodDogNXB4O1xuICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuQG1peGluIHRleHQtYm9keS0xKCkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMS1mb250LXNpemUpO1xuICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0KTtcbiAgICBmb250LXdlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktZm9udC13ZWlnaHQpO1xufVxuXG5AbWl4aW4gZGVza3RvcC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGRlc2t0b3AtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBncmF2aXR5LXVpLXRleHQtc2l6ZXMoJGRlbHRhKSB7XG4gICAgLS1nLXRleHQtYm9keS0xLWZvbnQtc2l6ZTogI3sxM3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTEtbGluZS1oZWlnaHQ6ICN7MThweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQ6ICN7MjBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWZvbnQtc2l6ZTogI3sxN3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTMtbGluZS1oZWlnaHQ6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS1zaG9ydC1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY2FwdGlvbi0xLWZvbnQtc2l6ZTogI3s5cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMi1mb250LXNpemU6ICN7MTFweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplOiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZTogI3syNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTItZm9udC1zaXplOiAjezE1cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0zLWZvbnQtc2l6ZTogI3sxN3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTEtZm9udC1zaXplOiAjezI4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMi1mb250LXNpemU6ICN7MzJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0zLWZvbnQtc2l6ZTogI3s0MHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTQtZm9udC1zaXplOiAjezQ4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMS1mb250LXNpemU6ICN7MTJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTMtZm9udC1zaXplOiAjezE2cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTItZm9udC1zaXplOiAjezE0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtaW5saW5lLTMtZm9udC1zaXplOiAjezE2cHggKyAkZGVsdGF9O1xuXG4gICAgLS15Zm0tZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1saW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodCk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgyOiB2YXIoLS1nLXRleHQtaGVhZGVyLTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDM6IHZhcigtLWctdGV4dC1oZWFkZXItMS1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNDogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0zLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg1OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDY6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMS1mb250LXNpemUpO1xufVxuIl19 */", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": []
7
7
  }