@diplodoc/components 5.6.0 → 5.7.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 (167) hide show
  1. package/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
  2. package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  3. package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  4. package/build/cjs/components/Contributors/Contributors.css.map +1 -1
  5. package/build/cjs/components/Control/Control.css.map +1 -1
  6. package/build/cjs/components/Controls/Controls.css.map +1 -1
  7. package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  8. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  9. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  10. package/build/cjs/components/DocLayout/DocLayout.css.map +1 -1
  11. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css +70 -0
  12. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +3 -3
  13. package/build/cjs/components/DocLeadingPage/DocLeadingPage.d.ts +2 -1
  14. package/build/cjs/components/DocLeadingPage/DocLeadingPage.js +3 -2
  15. package/build/cjs/components/DocLeadingPage/DocLeadingPage.js.map +2 -2
  16. package/build/cjs/components/DocPage/DocPage.css.map +1 -1
  17. package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
  18. package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
  19. package/build/cjs/components/Feedback/Feedback.css.map +1 -1
  20. package/build/cjs/components/Mark/Mark.css.map +1 -1
  21. package/build/cjs/components/MiniToc/MiniToc.css.map +1 -1
  22. package/build/cjs/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
  23. package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
  24. package/build/cjs/components/MobileControls/MobileControls.css.map +1 -1
  25. package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.css +63 -0
  26. package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.css.map +7 -0
  27. package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.d.ts +9 -0
  28. package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.js +99 -0
  29. package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.js.map +7 -0
  30. package/build/cjs/components/NeuroExpertModal/index.d.ts +2 -0
  31. package/build/cjs/components/NeuroExpertModal/index.js +27 -0
  32. package/build/cjs/components/NeuroExpertModal/index.js.map +7 -0
  33. package/build/cjs/components/Notification/Notification.css.map +1 -1
  34. package/build/cjs/components/Paginator/Paginator.css.map +1 -1
  35. package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
  36. package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
  37. package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
  38. package/build/cjs/components/SearchSuggest/AiIcon.d.ts +2 -0
  39. package/build/cjs/components/SearchSuggest/AiIcon.js +44 -0
  40. package/build/cjs/components/SearchSuggest/AiIcon.js.map +7 -0
  41. package/build/cjs/components/SearchSuggest/Suggest.d.ts +2 -1
  42. package/build/cjs/components/SearchSuggest/Suggest.js +4 -6
  43. package/build/cjs/components/SearchSuggest/Suggest.js.map +2 -2
  44. package/build/cjs/components/SearchSuggest/index.css +7 -0
  45. package/build/cjs/components/SearchSuggest/index.css.map +3 -3
  46. package/build/cjs/components/SearchSuggest/index.d.ts +3 -0
  47. package/build/cjs/components/SearchSuggest/index.js +14 -3
  48. package/build/cjs/components/SearchSuggest/index.js.map +3 -3
  49. package/build/cjs/components/SearchSuggest/useAiAction.d.ts +7 -0
  50. package/build/cjs/components/SearchSuggest/useAiAction.js +60 -0
  51. package/build/cjs/components/SearchSuggest/useAiAction.js.map +7 -0
  52. package/build/cjs/components/ShareButton/ShareButton.css.map +1 -1
  53. package/build/cjs/components/SubNavigation/SubNavigation.css.map +1 -1
  54. package/build/cjs/components/Subscribe/Subscribe.css.map +1 -1
  55. package/build/cjs/components/Toc/Toc.css.map +1 -1
  56. package/build/cjs/components/TocItem/TocItem.css.map +1 -1
  57. package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
  58. package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
  59. package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
  60. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  61. package/build/cjs/components/Widgets/Widgets.css.map +1 -1
  62. package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  63. package/build/cjs/components/navigation/Label/Label.css.map +1 -1
  64. package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  65. package/build/cjs/components/navigation/Sidebar/Sidebar.css.map +1 -1
  66. package/build/cjs/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  67. package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  68. package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  69. package/build/cjs/i18n/index.d.ts +32 -0
  70. package/build/cjs/i18n/index.js +26 -16
  71. package/build/cjs/i18n/index.js.map +2 -2
  72. package/build/cjs/index.d.ts +1 -0
  73. package/build/cjs/index.js +1 -0
  74. package/build/cjs/index.js.map +2 -2
  75. package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
  76. package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  77. package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  78. package/build/esm/components/Contributors/Contributors.css.map +1 -1
  79. package/build/esm/components/Control/Control.css.map +1 -1
  80. package/build/esm/components/Controls/Controls.css.map +1 -1
  81. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  82. package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  83. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  84. package/build/esm/components/DocLayout/DocLayout.css.map +1 -1
  85. package/build/esm/components/DocLeadingPage/DocLeadingPage.css +70 -0
  86. package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +3 -3
  87. package/build/esm/components/DocLeadingPage/DocLeadingPage.d.ts +2 -1
  88. package/build/esm/components/DocLeadingPage/DocLeadingPage.js +3 -2
  89. package/build/esm/components/DocLeadingPage/DocLeadingPage.js.map +2 -2
  90. package/build/esm/components/DocPage/DocPage.css.map +1 -1
  91. package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
  92. package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
  93. package/build/esm/components/Feedback/Feedback.css.map +1 -1
  94. package/build/esm/components/Mark/Mark.css.map +1 -1
  95. package/build/esm/components/MiniToc/MiniToc.css.map +1 -1
  96. package/build/esm/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
  97. package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
  98. package/build/esm/components/MobileControls/MobileControls.css.map +1 -1
  99. package/build/esm/components/NeuroExpertModal/NeuroExpertModal.css +63 -0
  100. package/build/esm/components/NeuroExpertModal/NeuroExpertModal.css.map +7 -0
  101. package/build/esm/components/NeuroExpertModal/NeuroExpertModal.d.ts +9 -0
  102. package/build/esm/components/NeuroExpertModal/NeuroExpertModal.js +68 -0
  103. package/build/esm/components/NeuroExpertModal/NeuroExpertModal.js.map +7 -0
  104. package/build/esm/components/NeuroExpertModal/index.d.ts +2 -0
  105. package/build/esm/components/NeuroExpertModal/index.js +6 -0
  106. package/build/esm/components/NeuroExpertModal/index.js.map +7 -0
  107. package/build/esm/components/Notification/Notification.css.map +1 -1
  108. package/build/esm/components/Paginator/Paginator.css.map +1 -1
  109. package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
  110. package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
  111. package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
  112. package/build/esm/components/SearchSuggest/AiIcon.d.ts +2 -0
  113. package/build/esm/components/SearchSuggest/AiIcon.js +13 -0
  114. package/build/esm/components/SearchSuggest/AiIcon.js.map +7 -0
  115. package/build/esm/components/SearchSuggest/Suggest.d.ts +2 -1
  116. package/build/esm/components/SearchSuggest/Suggest.js +4 -6
  117. package/build/esm/components/SearchSuggest/Suggest.js.map +2 -2
  118. package/build/esm/components/SearchSuggest/index.css +7 -0
  119. package/build/esm/components/SearchSuggest/index.css.map +3 -3
  120. package/build/esm/components/SearchSuggest/index.d.ts +3 -0
  121. package/build/esm/components/SearchSuggest/index.js +14 -3
  122. package/build/esm/components/SearchSuggest/index.js.map +3 -3
  123. package/build/esm/components/SearchSuggest/useAiAction.d.ts +7 -0
  124. package/build/esm/components/SearchSuggest/useAiAction.js +29 -0
  125. package/build/esm/components/SearchSuggest/useAiAction.js.map +7 -0
  126. package/build/esm/components/ShareButton/ShareButton.css.map +1 -1
  127. package/build/esm/components/SubNavigation/SubNavigation.css.map +1 -1
  128. package/build/esm/components/Subscribe/Subscribe.css.map +1 -1
  129. package/build/esm/components/Toc/Toc.css.map +1 -1
  130. package/build/esm/components/TocItem/TocItem.css.map +1 -1
  131. package/build/esm/components/TocLable/TocLabel.css.map +1 -1
  132. package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
  133. package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
  134. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  135. package/build/esm/components/Widgets/Widgets.css.map +1 -1
  136. package/build/esm/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  137. package/build/esm/components/navigation/Label/Label.css.map +1 -1
  138. package/build/esm/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  139. package/build/esm/components/navigation/Sidebar/Sidebar.css.map +1 -1
  140. package/build/esm/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  141. package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  142. package/build/esm/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  143. package/build/esm/i18n/index.d.ts +32 -0
  144. package/build/esm/i18n/index.js +26 -16
  145. package/build/esm/i18n/index.js.map +2 -2
  146. package/build/esm/index.d.ts +1 -0
  147. package/build/esm/index.js +1 -0
  148. package/build/esm/index.js.map +2 -2
  149. package/build/index.css.map +1 -1
  150. package/build/themes/common/index.css.map +1 -1
  151. package/package.json +1 -1
  152. package/src/i18n/ar.json +3 -1
  153. package/src/i18n/bg.json +3 -1
  154. package/src/i18n/cs.json +3 -1
  155. package/src/i18n/el.json +3 -1
  156. package/src/i18n/en.json +3 -1
  157. package/src/i18n/es.json +3 -1
  158. package/src/i18n/et.json +3 -1
  159. package/src/i18n/fr.json +3 -1
  160. package/src/i18n/he.json +3 -1
  161. package/src/i18n/kk.json +3 -1
  162. package/src/i18n/pt.json +3 -1
  163. package/src/i18n/ru.json +3 -1
  164. package/src/i18n/tr.json +3 -1
  165. package/src/i18n/uz.json +3 -1
  166. package/src/i18n/zh-tw.json +3 -1
  167. package/src/i18n/zh.json +3 -1
@@ -1,6 +1,6 @@
1
1
  import type { ReactNode } from 'react';
2
2
  import type { ISearchProvider } from '../../models';
3
- import type { SearchSuggestItem } from './types';
3
+ import type { SearchSuggestActionItem, SearchSuggestItem } from './types';
4
4
  import type { ListItemData } from '@gravity-ui/uikit';
5
5
  import React from 'react';
6
6
  import { List } from '@gravity-ui/uikit';
@@ -19,5 +19,6 @@ export declare const Suggest: React.MemoExoticComponent<React.ForwardRefExoticCo
19
19
  provider: ISearchProvider;
20
20
  withAllResults?: boolean;
21
21
  emptyState?: ReactNode;
22
+ prependItems?: SearchSuggestActionItem[];
22
23
  } & Omit<SuggestListProps, "items"> & React.RefAttributes<List<SearchSuggestItem>>>>;
23
24
  export {};
@@ -88,11 +88,9 @@ var SuggestList = (0, import_react.memo)(
88
88
  SuggestList.displayName = "SuggestList";
89
89
  var Suggest = (0, import_react.memo)(
90
90
  (0, import_react.forwardRef)((props, ref) => {
91
- var _a, _b;
92
- const { query, provider, withAllResults = true, emptyState } = props;
91
+ const { query, provider, withAllResults = true, emptyState, prependItems } = props;
93
92
  const [items, suggest] = (0, import_useProvider.useProvider)(provider, { withAllResults });
94
93
  (0, import_react.useEffect)(() => suggest(query), [query, suggest]);
95
- const emptyAction = Array.isArray(items) && !items.length ? (_b = (_a = provider.onEmptyAction) == null ? void 0 : _a.call(provider, query)) != null ? _b : null : null;
96
94
  if (!items) {
97
95
  return null;
98
96
  }
@@ -107,10 +105,10 @@ var Suggest = (0, import_react.memo)(
107
105
  "activeItemIndex"
108
106
  ]);
109
107
  if (Array.isArray(items) && !items.length) {
110
- const emptyItems = emptyAction ? [emptyAction] : [];
111
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, Boolean(emptyItems.length) && /* @__PURE__ */ import_react.default.createElement(SuggestList, __spreadValues({ ref, items: emptyItems }, listProps)), /* @__PURE__ */ import_react.default.createElement(SuggestEmpty, { query, emptyState }));
108
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, prependItems && /* @__PURE__ */ import_react.default.createElement(SuggestList, __spreadValues({ ref, items: prependItems }, listProps)), /* @__PURE__ */ import_react.default.createElement(SuggestEmpty, { query, emptyState }));
112
109
  }
113
- return /* @__PURE__ */ import_react.default.createElement(SuggestList, __spreadValues({ ref, items }, listProps));
110
+ const allItems = (prependItems == null ? void 0 : prependItems.length) ? [...prependItems, ...items] : items;
111
+ return /* @__PURE__ */ import_react.default.createElement(SuggestList, __spreadValues({ ref, items: allItems }, listProps));
114
112
  })
115
113
  );
116
114
  Suggest.displayName = "Suggest";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/SearchSuggest/Suggest.tsx"],
4
- "sourcesContent": ["import type {ReactNode} from 'react';\nimport type {ISearchProvider} from '../../models';\nimport type {SearchSuggestActionItem, SearchSuggestItem} from './types';\nimport type {ListItemData} from '@gravity-ui/uikit';\n\nimport React, {forwardRef, memo, useEffect} from 'react';\nimport {List, Loader} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport pick from 'lodash/pick';\n\nimport {useTranslation} from '../../hooks';\n\nimport {useProvider} from './useProvider';\nimport './index.scss';\n\nconst b = block('dc-search-suggest');\n\nconst SuggestLoader = memo(() => {\n return (\n <div className={b('loader')}>\n <Loader />\n </div>\n );\n});\n\nSuggestLoader.displayName = 'SuggestLoader';\n\nconst SuggestEmpty = memo<{query: string; emptyState?: ReactNode}>(({query, emptyState}) => {\n const {t} = useTranslation('search-suggest');\n\n return (\n <div className={b('list', {empty: true})}>\n {emptyState === undefined ? t('search-suggest_not-found', {query}) : emptyState}\n </div>\n );\n});\n\nSuggestEmpty.displayName = 'SuggestEmpty';\n\ntype SuggestListProps = {\n id: string;\n items: SearchSuggestItem[];\n renderItem: (item: SearchSuggestItem) => ReactNode;\n onItemClick: (\n item: ListItemData<SearchSuggestItem>,\n index?: number,\n fromKeyboard?: boolean,\n ) => boolean | void;\n onChangeActive: (index?: number) => void;\n activeItemIndex?: number;\n};\n\nconst SuggestList = memo(\n forwardRef<List<SearchSuggestItem>, SuggestListProps>((props, ref) => {\n const {id, items, renderItem, onItemClick, onChangeActive, activeItemIndex} = props;\n\n return (\n <List\n ref={ref}\n id={id}\n className={b('list')}\n role={'listbox'}\n filterable={false}\n virtualized={false}\n items={items}\n renderItem={renderItem}\n onItemClick={onItemClick}\n onChangeActive={onChangeActive}\n activeItemIndex={activeItemIndex}\n />\n );\n }),\n);\n\nSuggestList.displayName = 'SuggestList';\n\ntype SuggestProps = {\n id: string;\n query: string;\n provider: ISearchProvider;\n withAllResults?: boolean;\n emptyState?: ReactNode;\n} & Omit<SuggestListProps, 'items'>;\n\nexport const Suggest = memo(\n forwardRef<List<SearchSuggestItem>, SuggestProps>((props, ref) => {\n const {query, provider, withAllResults = true, emptyState} = props;\n const [items, suggest] = useProvider(provider, {withAllResults});\n\n useEffect(() => suggest(query), [query, suggest]);\n\n const emptyAction =\n Array.isArray(items) && !items.length\n ? (provider.onEmptyAction?.(query) ?? null)\n : null;\n\n if (!items) {\n return null;\n }\n\n if (items instanceof Promise) {\n return <SuggestLoader />;\n }\n\n const listProps = pick(props, [\n 'id',\n 'renderItem',\n 'onItemClick',\n 'onChangeActive',\n 'activeItemIndex',\n ]);\n\n if (Array.isArray(items) && !items.length) {\n const emptyItems: SearchSuggestActionItem[] = emptyAction ? [emptyAction] : [];\n\n return (\n <>\n {Boolean(emptyItems.length) && (\n <SuggestList ref={ref} items={emptyItems} {...listProps} />\n )}\n <SuggestEmpty query={query} emptyState={emptyState} />\n </>\n );\n }\n\n return <SuggestList ref={ref} items={items} {...listProps} />;\n }),\n);\n\nSuggest.displayName = 'Suggest';\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,mBAAiD;AACjD,mBAA2B;AAC3B,yBAAkB;AAClB,kBAAiB;AAEjB,mBAA6B;AAE7B,yBAA0B;AAC1B,mBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,mBAAmB;AAEnC,IAAM,oBAAgB,mBAAK,MAAM;AAC7B,SACI,6BAAAC,QAAA,cAAC,SAAI,WAAW,EAAE,QAAQ,KACtB,6BAAAA,QAAA,cAAC,yBAAO,CACZ;AAER,CAAC;AAED,cAAc,cAAc;AAE5B,IAAM,mBAAe,mBAA8C,CAAC,EAAC,OAAO,WAAU,MAAM;AACxF,QAAM,EAAC,EAAC,QAAI,6BAAe,gBAAgB;AAE3C,SACI,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,QAAQ,EAAC,OAAO,KAAI,CAAC,KAClC,eAAe,SAAY,EAAE,4BAA4B,EAAC,MAAK,CAAC,IAAI,UACzE;AAER,CAAC;AAED,aAAa,cAAc;AAe3B,IAAM,kBAAc;AAAA,MAChB,yBAAsD,CAAC,OAAO,QAAQ;AAClE,UAAM,EAAC,IAAI,OAAO,YAAY,aAAa,gBAAgB,gBAAe,IAAI;AAE9E,WACI,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA,WAAW,EAAE,MAAM;AAAA,QACnB,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,EAER,CAAC;AACL;AAEA,YAAY,cAAc;AAUnB,IAAM,cAAU;AAAA,MACnB,yBAAkD,CAAC,OAAO,QAAQ;AArFtE;AAsFQ,UAAM,EAAC,OAAO,UAAU,iBAAiB,MAAM,WAAU,IAAI;AAC7D,UAAM,CAAC,OAAO,OAAO,QAAI,gCAAY,UAAU,EAAC,eAAc,CAAC;AAE/D,gCAAU,MAAM,QAAQ,KAAK,GAAG,CAAC,OAAO,OAAO,CAAC;AAEhD,UAAM,cACF,MAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,UACxB,oBAAS,kBAAT,kCAAyB,WAAzB,YAAmC,OACpC;AAEV,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,SAAS;AAC1B,aAAO,6BAAAA,QAAA,cAAC,mBAAc;AAAA,IAC1B;AAEA,UAAM,gBAAY,YAAAC,SAAK,OAAO;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,QAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,QAAQ;AACvC,YAAM,aAAwC,cAAc,CAAC,WAAW,IAAI,CAAC;AAE7E,aACI,6BAAAD,QAAA,2BAAAA,QAAA,gBACK,QAAQ,WAAW,MAAM,KACtB,6BAAAA,QAAA,cAAC,8BAAY,KAAU,OAAO,cAAgB,UAAW,GAE7D,6BAAAA,QAAA,cAAC,gBAAa,OAAc,YAAwB,CACxD;AAAA,IAER;AAEA,WAAO,6BAAAA,QAAA,cAAC,8BAAY,KAAU,SAAkB,UAAW;AAAA,EAC/D,CAAC;AACL;AAEA,QAAQ,cAAc;",
4
+ "sourcesContent": ["import type {ReactNode} from 'react';\nimport type {ISearchProvider} from '../../models';\nimport type {SearchSuggestActionItem, SearchSuggestItem} from './types';\nimport type {ListItemData} from '@gravity-ui/uikit';\n\nimport React, {forwardRef, memo, useEffect} from 'react';\nimport {List, Loader} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport pick from 'lodash/pick';\n\nimport {useTranslation} from '../../hooks';\n\nimport {useProvider} from './useProvider';\nimport './index.scss';\n\nconst b = block('dc-search-suggest');\n\nconst SuggestLoader = memo(() => {\n return (\n <div className={b('loader')}>\n <Loader />\n </div>\n );\n});\n\nSuggestLoader.displayName = 'SuggestLoader';\n\nconst SuggestEmpty = memo<{query: string; emptyState?: ReactNode}>(({query, emptyState}) => {\n const {t} = useTranslation('search-suggest');\n\n return (\n <div className={b('list', {empty: true})}>\n {emptyState === undefined ? t('search-suggest_not-found', {query}) : emptyState}\n </div>\n );\n});\n\nSuggestEmpty.displayName = 'SuggestEmpty';\n\ntype SuggestListProps = {\n id: string;\n items: SearchSuggestItem[];\n renderItem: (item: SearchSuggestItem) => ReactNode;\n onItemClick: (\n item: ListItemData<SearchSuggestItem>,\n index?: number,\n fromKeyboard?: boolean,\n ) => boolean | void;\n onChangeActive: (index?: number) => void;\n activeItemIndex?: number;\n};\n\nconst SuggestList = memo(\n forwardRef<List<SearchSuggestItem>, SuggestListProps>((props, ref) => {\n const {id, items, renderItem, onItemClick, onChangeActive, activeItemIndex} = props;\n\n return (\n <List\n ref={ref}\n id={id}\n className={b('list')}\n role={'listbox'}\n filterable={false}\n virtualized={false}\n items={items}\n renderItem={renderItem}\n onItemClick={onItemClick}\n onChangeActive={onChangeActive}\n activeItemIndex={activeItemIndex}\n />\n );\n }),\n);\n\nSuggestList.displayName = 'SuggestList';\n\ntype SuggestProps = {\n id: string;\n query: string;\n provider: ISearchProvider;\n withAllResults?: boolean;\n emptyState?: ReactNode;\n prependItems?: SearchSuggestActionItem[];\n} & Omit<SuggestListProps, 'items'>;\n\nexport const Suggest = memo(\n forwardRef<List<SearchSuggestItem>, SuggestProps>((props, ref) => {\n const {query, provider, withAllResults = true, emptyState, prependItems} = props;\n const [items, suggest] = useProvider(provider, {withAllResults});\n\n useEffect(() => suggest(query), [query, suggest]);\n\n if (!items) {\n return null;\n }\n\n if (items instanceof Promise) {\n return <SuggestLoader />;\n }\n\n const listProps = pick(props, [\n 'id',\n 'renderItem',\n 'onItemClick',\n 'onChangeActive',\n 'activeItemIndex',\n ]);\n\n if (Array.isArray(items) && !items.length) {\n return (\n <>\n {prependItems && <SuggestList ref={ref} items={prependItems} {...listProps} />}\n <SuggestEmpty query={query} emptyState={emptyState} />\n </>\n );\n }\n\n const allItems = prependItems?.length ? [...prependItems, ...items] : items;\n\n return <SuggestList ref={ref} items={allItems} {...listProps} />;\n }),\n);\n\nSuggest.displayName = 'Suggest';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKA,mBAAiD;AACjD,mBAA2B;AAC3B,yBAAkB;AAClB,kBAAiB;AAEjB,mBAA6B;AAE7B,yBAA0B;AAC1B,mBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,mBAAmB;AAEnC,IAAM,oBAAgB,mBAAK,MAAM;AAC7B,SACI,6BAAAC,QAAA,cAAC,SAAI,WAAW,EAAE,QAAQ,KACtB,6BAAAA,QAAA,cAAC,yBAAO,CACZ;AAER,CAAC;AAED,cAAc,cAAc;AAE5B,IAAM,mBAAe,mBAA8C,CAAC,EAAC,OAAO,WAAU,MAAM;AACxF,QAAM,EAAC,EAAC,QAAI,6BAAe,gBAAgB;AAE3C,SACI,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,QAAQ,EAAC,OAAO,KAAI,CAAC,KAClC,eAAe,SAAY,EAAE,4BAA4B,EAAC,MAAK,CAAC,IAAI,UACzE;AAER,CAAC;AAED,aAAa,cAAc;AAe3B,IAAM,kBAAc;AAAA,MAChB,yBAAsD,CAAC,OAAO,QAAQ;AAClE,UAAM,EAAC,IAAI,OAAO,YAAY,aAAa,gBAAgB,gBAAe,IAAI;AAE9E,WACI,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA;AAAA,QACA,WAAW,EAAE,MAAM;AAAA,QACnB,MAAM;AAAA,QACN,YAAY;AAAA,QACZ,aAAa;AAAA,QACb;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,IACJ;AAAA,EAER,CAAC;AACL;AAEA,YAAY,cAAc;AAWnB,IAAM,cAAU;AAAA,MACnB,yBAAkD,CAAC,OAAO,QAAQ;AAC9D,UAAM,EAAC,OAAO,UAAU,iBAAiB,MAAM,YAAY,aAAY,IAAI;AAC3E,UAAM,CAAC,OAAO,OAAO,QAAI,gCAAY,UAAU,EAAC,eAAc,CAAC;AAE/D,gCAAU,MAAM,QAAQ,KAAK,GAAG,CAAC,OAAO,OAAO,CAAC;AAEhD,QAAI,CAAC,OAAO;AACR,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,SAAS;AAC1B,aAAO,6BAAAA,QAAA,cAAC,mBAAc;AAAA,IAC1B;AAEA,UAAM,gBAAY,YAAAC,SAAK,OAAO;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AAED,QAAI,MAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,QAAQ;AACvC,aACI,6BAAAD,QAAA,2BAAAA,QAAA,gBACK,gBAAgB,6BAAAA,QAAA,cAAC,8BAAY,KAAU,OAAO,gBAAkB,UAAW,GAC5E,6BAAAA,QAAA,cAAC,gBAAa,OAAc,YAAwB,CACxD;AAAA,IAER;AAEA,UAAM,YAAW,6CAAc,UAAS,CAAC,GAAG,cAAc,GAAG,KAAK,IAAI;AAEtE,WAAO,6BAAAA,QAAA,cAAC,8BAAY,KAAU,OAAO,YAAc,UAAW;AAAA,EAClE,CAAC;AACL;AAEA,QAAQ,cAAc;",
6
6
  "names": ["block", "React", "pick"]
7
7
  }
@@ -11,6 +11,13 @@
11
11
  --g-text-input-border-color: rgba(255, 255, 255, 0.4);
12
12
  --g-text-input-border-color-hover: rgba(255, 255, 255, 0.5);
13
13
  }
14
+ .dc-search-suggest__ai-icon {
15
+ color: #fc4714;
16
+ padding: 0 8px;
17
+ display: flex;
18
+ align-items: center;
19
+ justify-content: center;
20
+ }
14
21
  .dc-search-suggest__wrapper {
15
22
  position: relative;
16
23
  width: 100%;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/SearchSuggest/index.scss", "../../../../src/components/SearchSuggest/%3Cinput css Wk_s3v%3E", "../../../../src/styles/mixins.scss"],
4
- "sourcesContent": ["@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-search-suggest {\n $block: &;\n\n --g-text-input-placeholder-color: rgba(0, 0, 0, 0.5);\n --g-text-input-placeholder-color-hover: rgba(0, 0, 0, 0.65);\n --g-text-input-border-color: rgba(0, 0, 0, 0.5);\n --g-text-input-border-color-hover: rgba(0, 0, 0, 0.65);\n\n .g-root_theme_dark & {\n --g-text-input-placeholder-color: rgba(255, 255, 255, 0.3);\n --g-text-input-placeholder-color-hover: rgba(255, 255, 255, 0.5);\n --g-text-input-border-color: rgba(255, 255, 255, 0.4);\n --g-text-input-border-color-hover: rgba(255, 255, 255, 0.5);\n }\n\n &__wrapper {\n position: relative;\n width: 100%;\n\n &_focused {\n > .dc-search-suggest,\n > .dc-search-suggest__close {\n position: relative;\n z-index: 101;\n }\n }\n }\n\n &__overlay {\n position: fixed;\n inset: 0;\n z-index: 100;\n opacity: 0.5;\n background: #000;\n }\n\n &__popup {\n z-index: 1002;\n }\n\n &__loader {\n display: flex;\n justify-content: center;\n padding: 10px;\n }\n\n &__list {\n box-sizing: border-box;\n display: flex;\n max-height: 60vh;\n overflow: hidden auto;\n\n &_empty {\n text-align: center;\n padding: 12px;\n word-break: break-word;\n }\n }\n\n &__close {\n flex: none;\n margin-left: 16px;\n }\n\n &__item {\n width: 100%;\n display: block;\n overflow: hidden;\n padding: 12px 20px;\n box-sizing: border-box;\n\n cursor: pointer;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n @include mixins.text-size(body-1);\n\n &-content {\n display: flex;\n gap: 8px;\n }\n\n &-main {\n flex: 1;\n min-width: 0;\n }\n\n &-hint {\n flex-shrink: 0;\n align-self: center;\n opacity: 0;\n color: var(--g-color-text-secondary);\n }\n\n &-title,\n &-description,\n &-breadcrumbs > * {\n display: block;\n overflow: hidden;\n\n text-overflow: ellipsis;\n }\n\n &-description {\n margin-top: 4px;\n\n color: var(--g-color-text-secondary);\n }\n\n &_type {\n &_page {\n padding-bottom: 9px;\n\n @include mixins.link();\n\n #{$block}__item {\n &-breadcrumbs {\n padding-top: 2px;\n\n color: var(--g-color-text-secondary);\n }\n }\n }\n\n &_service,\n &_marketplace {\n display: flex;\n\n padding-top: 9px;\n padding-bottom: 11px;\n\n #{$block}__item {\n &-logo {\n margin-right: 16px;\n padding: 3px 0 1px;\n\n text-align: center;\n }\n\n &-icon {\n width: 16px;\n height: var(--g-text-body-3-line-height);\n }\n\n &-text {\n min-width: 0;\n }\n\n &-title {\n padding: 3px 0 1px;\n }\n }\n }\n\n &_group {\n padding: 16px 20px 4px;\n\n color: var(--www-text-content-color);\n }\n\n &_link {\n display: flex;\n\n padding: 22px 20px;\n\n color: var(--g-color-text-link);\n border-top: 1px solid var(--g-color-line-generic);\n }\n\n &_delimiter {\n height: 1px;\n padding: 0;\n\n background-color: var(--g-color-line-generic);\n }\n\n &_action {\n &:hover,\n &:focus-visible {\n background-color: var(--g-color-base-simple-hover);\n\n #{$block}__item-hint {\n opacity: 1;\n }\n }\n }\n }\n\n h5 {\n margin: 0;\n font-weight: 700;\n font-size: 16px;\n line-height: 25px;\n }\n\n em {\n position: relative;\n\n font-style: inherit;\n\n &::before {\n position: absolute;\n z-index: -1;\n top: -3px;\n bottom: -1px;\n\n width: 100%;\n\n content: '';\n\n background-color: var(--g-color-base-selection);\n }\n }\n }\n\n // popup renders via portal outside .dc-search-suggest,\n // so these selectors must not have it as an ancestor\n @at-root {\n .g-list__item_active #{$block}__item-hint,\n #{$block}__item:hover #{$block}__item-hint,\n #{$block}__item:focus-within #{$block}__item-hint {\n opacity: 1;\n }\n }\n}\n", ".dc-search-suggest {\n --g-text-input-placeholder-color: rgba(0, 0, 0, 0.5);\n --g-text-input-placeholder-color-hover: rgba(0, 0, 0, 0.65);\n --g-text-input-border-color: rgba(0, 0, 0, 0.5);\n --g-text-input-border-color-hover: rgba(0, 0, 0, 0.65);\n}\n.g-root_theme_dark .dc-search-suggest {\n --g-text-input-placeholder-color: rgba(255, 255, 255, 0.3);\n --g-text-input-placeholder-color-hover: rgba(255, 255, 255, 0.5);\n --g-text-input-border-color: rgba(255, 255, 255, 0.4);\n --g-text-input-border-color-hover: rgba(255, 255, 255, 0.5);\n}\n.dc-search-suggest__wrapper {\n position: relative;\n width: 100%;\n}\n.dc-search-suggest__wrapper_focused > .dc-search-suggest,\n.dc-search-suggest__wrapper_focused > .dc-search-suggest__close {\n position: relative;\n z-index: 101;\n}\n.dc-search-suggest__overlay {\n position: fixed;\n inset: 0;\n z-index: 100;\n opacity: 0.5;\n background: #000;\n}\n.dc-search-suggest__popup {\n z-index: 1002;\n}\n.dc-search-suggest__loader {\n display: flex;\n justify-content: center;\n padding: 10px;\n}\n.dc-search-suggest__list {\n box-sizing: border-box;\n display: flex;\n max-height: 60vh;\n overflow: hidden auto;\n}\n.dc-search-suggest__list_empty {\n text-align: center;\n padding: 12px;\n word-break: break-word;\n}\n.dc-search-suggest__close {\n flex: none;\n margin-left: 16px;\n}\n.dc-search-suggest__item {\n width: 100%;\n display: block;\n overflow: hidden;\n padding: 12px 20px;\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-search-suggest__item-content {\n display: flex;\n gap: 8px;\n}\n.dc-search-suggest__item-main {\n flex: 1;\n min-width: 0;\n}\n.dc-search-suggest__item-hint {\n flex-shrink: 0;\n align-self: center;\n opacity: 0;\n color: var(--g-color-text-secondary);\n}\n.dc-search-suggest__item-title, .dc-search-suggest__item-description, .dc-search-suggest__item-breadcrumbs > * {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dc-search-suggest__item-description {\n margin-top: 4px;\n color: var(--g-color-text-secondary);\n}\n.dc-search-suggest__item_type_page {\n padding-bottom: 9px;\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n outline: none;\n}\n.utilityfocus .dc-search-suggest__item_type_page:focus {\n outline: 2px solid #ffdb4d;\n}\n.dc-search-suggest__item_type_page:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.dc-search-suggest__item_type_page:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.dc-search-suggest__item_type_page:hover, .dc-search-suggest__item_type_page:active {\n color: var(--g-color-text-link-hover);\n}\n.dc-search-suggest__item_type_page .dc-search-suggest__item-breadcrumbs {\n padding-top: 2px;\n color: var(--g-color-text-secondary);\n}\n.dc-search-suggest__item_type_service, .dc-search-suggest__item_type_marketplace {\n display: flex;\n padding-top: 9px;\n padding-bottom: 11px;\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-logo, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-logo {\n margin-right: 16px;\n padding: 3px 0 1px;\n text-align: center;\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-icon, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-icon {\n width: 16px;\n height: var(--g-text-body-3-line-height);\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-text, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-text {\n min-width: 0;\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-title, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-title {\n padding: 3px 0 1px;\n}\n.dc-search-suggest__item_type_group {\n padding: 16px 20px 4px;\n color: var(--www-text-content-color);\n}\n.dc-search-suggest__item_type_link {\n display: flex;\n padding: 22px 20px;\n color: var(--g-color-text-link);\n border-top: 1px solid var(--g-color-line-generic);\n}\n.dc-search-suggest__item_type_delimiter {\n height: 1px;\n padding: 0;\n background-color: var(--g-color-line-generic);\n}\n.dc-search-suggest__item_type_action:hover, .dc-search-suggest__item_type_action:focus-visible {\n background-color: var(--g-color-base-simple-hover);\n}\n.dc-search-suggest__item_type_action:hover .dc-search-suggest__item-hint, .dc-search-suggest__item_type_action:focus-visible .dc-search-suggest__item-hint {\n opacity: 1;\n}\n.dc-search-suggest__item h5 {\n margin: 0;\n font-weight: 700;\n font-size: 16px;\n line-height: 25px;\n}\n.dc-search-suggest__item em {\n position: relative;\n font-style: inherit;\n}\n.dc-search-suggest__item em::before {\n position: absolute;\n z-index: -1;\n top: -3px;\n bottom: -1px;\n width: 100%;\n content: \"\";\n background-color: var(--g-color-base-selection);\n}\n.g-list__item_active .dc-search-suggest__item-hint,\n.dc-search-suggest__item:hover .dc-search-suggest__item-hint,\n.dc-search-suggest__item:focus-within .dc-search-suggest__item-hint {\n opacity: 1;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaFN1Z2dlc3QiLCJzb3VyY2VzIjpbImluZGV4LnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFHSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSTtBQUFBO0VBRUk7RUFDQTs7QUFLWjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7RUN4RUo7RUFDQTs7QUQyRUk7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBR0k7RUFDQTtFQUVBOztBQUdKO0VBQ0k7RUFFQTs7QUFJQTtFQUNJO0VDM0RaO0VBQ0E7RUFDQTtFQUNBO0VBakNBOztBQUVBO0VBQ0k7O0FBZ0JBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQWVSO0VBRUk7O0FEcURZO0VBQ0k7RUFFQTs7QUFLWjtFQUVJO0VBRUE7RUFDQTs7QUFHSTtFQUNJO0VBQ0E7RUFFQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJOztBQUtaO0VBQ0k7RUFFQTs7QUFHSjtFQUNJO0VBRUE7RUFFQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUVBOztBQUlBO0VBRUk7O0FBRUE7RUFDSTs7QUFNaEI7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBRUE7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBRUE7RUFFQTs7QUFRUjtBQUFBO0FBQUE7RUFHSSIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL3N0eWxlcy92YXJpYWJsZXMnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5cbi5kYy1zZWFyY2gtc3VnZ2VzdCB7XG4gICAgJGJsb2NrOiAmO1xuXG4gICAgLS1nLXRleHQtaW5wdXQtcGxhY2Vob2xkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAtLWctdGV4dC1pbnB1dC1wbGFjZWhvbGRlci1jb2xvci1ob3ZlcjogcmdiYSgwLCAwLCAwLCAwLjY1KTtcbiAgICAtLWctdGV4dC1pbnB1dC1ib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgICAtLWctdGV4dC1pbnB1dC1ib3JkZXItY29sb3ItaG92ZXI6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG5cbiAgICAuZy1yb290X3RoZW1lX2RhcmsgJiB7XG4gICAgICAgIC0tZy10ZXh0LWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgICAgIC0tZy10ZXh0LWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgICAgIC0tZy10ZXh0LWlucHV0LWJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAgICAgICAtLWctdGV4dC1pbnB1dC1ib3JkZXItY29sb3ItaG92ZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX2ZvY3VzZWQge1xuICAgICAgICAgICAgPiAuZGMtc2VhcmNoLXN1Z2dlc3QsXG4gICAgICAgICAgICA+IC5kYy1zZWFyY2gtc3VnZ2VzdF9fY2xvc2Uge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgfVxuXG4gICAgJl9fcG9wdXAge1xuICAgICAgICB6LWluZGV4OiAxMDAyO1xuICAgIH1cblxuICAgICZfX2xvYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiA2MHZoO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuIGF1dG87XG5cbiAgICAgICAgJl9lbXB0eSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlIHtcbiAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMTJweCAyMHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShib2R5LTEpO1xuXG4gICAgICAgICYtY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLW1haW4ge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaGludCB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLXRpdGxlLFxuICAgICAgICAmLWRlc2NyaXB0aW9uLFxuICAgICAgICAmLWJyZWFkY3J1bWJzID4gKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG5cbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdHlwZSB7XG4gICAgICAgICAgICAmX3BhZ2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5cHg7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMubGluaygpO1xuXG4gICAgICAgICAgICAgICAgI3skYmxvY2t9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgJi1icmVhZGNydW1icyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMnB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfc2VydmljZSxcbiAgICAgICAgICAgICZfbWFya2V0cGxhY2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMXB4O1xuXG4gICAgICAgICAgICAgICAgI3skYmxvY2t9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgJi1sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAwIDFweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYtdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAwIDFweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9ncm91cCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTZweCAyMHB4IDRweDtcblxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13d3ctdGV4dC1jb250ZW50LWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9saW5rIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjJweCAyMHB4O1xuXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rKTtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX2RlbGltaXRlciB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9hY3Rpb24ge1xuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZy1jb2xvci1iYXNlLXNpbXBsZS1ob3Zlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgI3skYmxvY2t9X19pdGVtLWhpbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGg1IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGVtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgZm9udC1zdHlsZTogaW5oZXJpdDtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgdG9wOiAtM3B4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcblxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nLWNvbG9yLWJhc2Utc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHBvcHVwIHJlbmRlcnMgdmlhIHBvcnRhbCBvdXRzaWRlIC5kYy1zZWFyY2gtc3VnZ2VzdCxcbiAgICAvLyBzbyB0aGVzZSBzZWxlY3RvcnMgbXVzdCBub3QgaGF2ZSBpdCBhcyBhbiBhbmNlc3RvclxuICAgIEBhdC1yb290IHtcbiAgICAgICAgLmctbGlzdF9faXRlbV9hY3RpdmUgI3skYmxvY2t9X19pdGVtLWhpbnQsXG4gICAgICAgICN7JGJsb2NrfV9faXRlbTpob3ZlciAjeyRibG9ja31fX2l0ZW0taGludCxcbiAgICAgICAgI3skYmxvY2t9X19pdGVtOmZvY3VzLXdpdGhpbiAjeyRibG9ja31fX2l0ZW0taGludCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAndmFyaWFibGVzJztcblxuQG1peGluIHRleHQtc2l6ZSgkbmFtZSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlKCkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbkBtaXhpbiBmaXhBbmNob3JQb3NpdGlvbigkb2Zmc2V0OiAwcHgpIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoI3skb2Zmc2V0fSAtIHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG59XG5cbkBtaXhpbiByZXNldC1saW5rLXN0eWxlKCkge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1peGluIGlzbGFuZHMtZm9jdXMoKSB7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgIC51dGlsaXR5Zm9jdXMgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAjZmZkYjRkO1xuICAgIH1cbn1cblxuQG1peGluIGZvY3VzYWJsZSgkb2Zmc2V0OiAwLCAkbW9kZTogJ291dGxpbmUnKSB7XG4gICAgQGlmICRtb2RlID09ICdvdXRsaW5lJyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogJG9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkbW9kZSA9PSAnYm94LXNoYWRvdycge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGxpbmsoKSB7XG4gICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWctZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICBAaW5jbHVkZSBpc2xhbmRzLWZvY3VzKCk7XG5cbiAgICBAaW5jbHVkZSBmb2N1c2FibGUoMCwgJ2JveC1zaGFkb3cnKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmstaG92ZXIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcxKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0zKTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0yKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMigpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nMygpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0yKTtcbn1cblxuQG1peGluIGhlYWRpbmc0KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzUoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xufVxuXG5AbWl4aW4gaGVhZGluZzYoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xufVxuXG5AbWl4aW4gY29udHJpYnV0b3JzLXRleHQoKSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG5AbWl4aW4gdGV4dC1ib2R5LTEoKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0xLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTEtbGluZS1oZWlnaHQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS1mb250LXdlaWdodCk7XG59XG5cbkBtaXhpbiBkZXNrdG9wLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVza3RvcC10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGdyYXZpdHktdWktdGV4dC1zaXplcygkZGVsdGEpIHtcbiAgICAtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodDogI3sxOHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTItZm9udC1zaXplOiAjezE1cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodDogI3syMHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTMtZm9udC1zaXplOiAjezE3cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1saW5lLWhlaWdodDogI3syNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LXNob3J0LWZvbnQtc2l6ZTogI3sxM3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jYXB0aW9uLTEtZm9udC1zaXplOiAjezlweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY2FwdGlvbi0yLWZvbnQtc2l6ZTogI3sxMXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1oZWFkZXItMS1mb250LXNpemU6ICN7MjBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtaGVhZGVyLTItZm9udC1zaXplOiAjezI0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0xLWZvbnQtc2l6ZTogI3sxM3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMi1mb250LXNpemU6ICN7MTVweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTMtZm9udC1zaXplOiAjezE3cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMS1mb250LXNpemU6ICN7MjhweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0yLWZvbnQtc2l6ZTogI3szMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTMtZm9udC1zaXplOiAjezQwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktNC1mb250LXNpemU6ICN7NDhweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0xLWZvbnQtc2l6ZTogI3sxMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTItZm9udC1zaXplOiAjezE0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMy1mb250LXNpemU6ICN7MTZweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS1pbmxpbmUtMS1mb250LXNpemU6ICN7MTJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS1pbmxpbmUtMi1mb250LXNpemU6ICN7MTRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS1pbmxpbmUtMy1mb250LXNpemU6ICN7MTZweCArICRkZWx0YX07XG5cbiAgICAtLXlmbS1mb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LWxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0yLWxpbmUtaGVpZ2h0KTtcbiAgICAtLXlmbS1mb250LXNpemUtaDI6IHZhcigtLWctdGV4dC1oZWFkZXItMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oMzogdmFyKC0tZy10ZXh0LWhlYWRlci0xLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg0OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTMtZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDU6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNjogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0xLWZvbnQtc2l6ZSk7XG59XG4iXX0= */", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n"],
5
- "mappings": "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",
3
+ "sources": ["../../../../src/components/SearchSuggest/index.scss", "../../../../src/components/SearchSuggest/%3Cinput css QOr9Vl%3E", "../../../../src/styles/mixins.scss"],
4
+ "sourcesContent": ["@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.dc-search-suggest {\n $block: &;\n\n --g-text-input-placeholder-color: rgba(0, 0, 0, 0.5);\n --g-text-input-placeholder-color-hover: rgba(0, 0, 0, 0.65);\n --g-text-input-border-color: rgba(0, 0, 0, 0.5);\n --g-text-input-border-color-hover: rgba(0, 0, 0, 0.65);\n\n .g-root_theme_dark & {\n --g-text-input-placeholder-color: rgba(255, 255, 255, 0.3);\n --g-text-input-placeholder-color-hover: rgba(255, 255, 255, 0.5);\n --g-text-input-border-color: rgba(255, 255, 255, 0.4);\n --g-text-input-border-color-hover: rgba(255, 255, 255, 0.5);\n }\n\n &__ai-icon {\n color: #fc4714;\n padding: 0 8px;\n\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n &__wrapper {\n position: relative;\n width: 100%;\n\n &_focused {\n > .dc-search-suggest,\n > .dc-search-suggest__close {\n position: relative;\n z-index: 101;\n }\n }\n }\n\n &__overlay {\n position: fixed;\n inset: 0;\n z-index: 100;\n opacity: 0.5;\n background: #000;\n }\n\n &__popup {\n z-index: 1002;\n }\n\n &__loader {\n display: flex;\n justify-content: center;\n padding: 10px;\n }\n\n &__list {\n box-sizing: border-box;\n display: flex;\n max-height: 60vh;\n overflow: hidden auto;\n\n &_empty {\n text-align: center;\n padding: 12px;\n word-break: break-word;\n }\n }\n\n &__close {\n flex: none;\n margin-left: 16px;\n }\n\n &__item {\n width: 100%;\n display: block;\n overflow: hidden;\n padding: 12px 20px;\n box-sizing: border-box;\n\n cursor: pointer;\n white-space: nowrap;\n text-overflow: ellipsis;\n\n @include mixins.text-size(body-1);\n\n &-content {\n display: flex;\n gap: 8px;\n }\n\n &-main {\n flex: 1;\n min-width: 0;\n }\n\n &-hint {\n flex-shrink: 0;\n align-self: center;\n opacity: 0;\n color: var(--g-color-text-secondary);\n }\n\n &-title,\n &-description,\n &-breadcrumbs > * {\n display: block;\n overflow: hidden;\n\n text-overflow: ellipsis;\n }\n\n &-description {\n margin-top: 4px;\n\n color: var(--g-color-text-secondary);\n }\n\n &_type {\n &_page {\n padding-bottom: 9px;\n\n @include mixins.link();\n\n #{$block}__item {\n &-breadcrumbs {\n padding-top: 2px;\n\n color: var(--g-color-text-secondary);\n }\n }\n }\n\n &_service,\n &_marketplace {\n display: flex;\n\n padding-top: 9px;\n padding-bottom: 11px;\n\n #{$block}__item {\n &-logo {\n margin-right: 16px;\n padding: 3px 0 1px;\n\n text-align: center;\n }\n\n &-icon {\n width: 16px;\n height: var(--g-text-body-3-line-height);\n }\n\n &-text {\n min-width: 0;\n }\n\n &-title {\n padding: 3px 0 1px;\n }\n }\n }\n\n &_group {\n padding: 16px 20px 4px;\n\n color: var(--www-text-content-color);\n }\n\n &_link {\n display: flex;\n\n padding: 22px 20px;\n\n color: var(--g-color-text-link);\n border-top: 1px solid var(--g-color-line-generic);\n }\n\n &_delimiter {\n height: 1px;\n padding: 0;\n\n background-color: var(--g-color-line-generic);\n }\n\n &_action {\n &:hover,\n &:focus-visible {\n background-color: var(--g-color-base-simple-hover);\n\n #{$block}__item-hint {\n opacity: 1;\n }\n }\n }\n }\n\n h5 {\n margin: 0;\n font-weight: 700;\n font-size: 16px;\n line-height: 25px;\n }\n\n em {\n position: relative;\n\n font-style: inherit;\n\n &::before {\n position: absolute;\n z-index: -1;\n top: -3px;\n bottom: -1px;\n\n width: 100%;\n\n content: '';\n\n background-color: var(--g-color-base-selection);\n }\n }\n }\n\n // popup renders via portal outside .dc-search-suggest,\n // so these selectors must not have it as an ancestor\n @at-root {\n .g-list__item_active #{$block}__item-hint,\n #{$block}__item:hover #{$block}__item-hint,\n #{$block}__item:focus-within #{$block}__item-hint {\n opacity: 1;\n }\n }\n}\n", ".dc-search-suggest {\n --g-text-input-placeholder-color: rgba(0, 0, 0, 0.5);\n --g-text-input-placeholder-color-hover: rgba(0, 0, 0, 0.65);\n --g-text-input-border-color: rgba(0, 0, 0, 0.5);\n --g-text-input-border-color-hover: rgba(0, 0, 0, 0.65);\n}\n.g-root_theme_dark .dc-search-suggest {\n --g-text-input-placeholder-color: rgba(255, 255, 255, 0.3);\n --g-text-input-placeholder-color-hover: rgba(255, 255, 255, 0.5);\n --g-text-input-border-color: rgba(255, 255, 255, 0.4);\n --g-text-input-border-color-hover: rgba(255, 255, 255, 0.5);\n}\n.dc-search-suggest__ai-icon {\n color: #fc4714;\n padding: 0 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.dc-search-suggest__wrapper {\n position: relative;\n width: 100%;\n}\n.dc-search-suggest__wrapper_focused > .dc-search-suggest,\n.dc-search-suggest__wrapper_focused > .dc-search-suggest__close {\n position: relative;\n z-index: 101;\n}\n.dc-search-suggest__overlay {\n position: fixed;\n inset: 0;\n z-index: 100;\n opacity: 0.5;\n background: #000;\n}\n.dc-search-suggest__popup {\n z-index: 1002;\n}\n.dc-search-suggest__loader {\n display: flex;\n justify-content: center;\n padding: 10px;\n}\n.dc-search-suggest__list {\n box-sizing: border-box;\n display: flex;\n max-height: 60vh;\n overflow: hidden auto;\n}\n.dc-search-suggest__list_empty {\n text-align: center;\n padding: 12px;\n word-break: break-word;\n}\n.dc-search-suggest__close {\n flex: none;\n margin-left: 16px;\n}\n.dc-search-suggest__item {\n width: 100%;\n display: block;\n overflow: hidden;\n padding: 12px 20px;\n box-sizing: border-box;\n cursor: pointer;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n}\n.dc-search-suggest__item-content {\n display: flex;\n gap: 8px;\n}\n.dc-search-suggest__item-main {\n flex: 1;\n min-width: 0;\n}\n.dc-search-suggest__item-hint {\n flex-shrink: 0;\n align-self: center;\n opacity: 0;\n color: var(--g-color-text-secondary);\n}\n.dc-search-suggest__item-title, .dc-search-suggest__item-description, .dc-search-suggest__item-breadcrumbs > * {\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dc-search-suggest__item-description {\n margin-top: 4px;\n color: var(--g-color-text-secondary);\n}\n.dc-search-suggest__item_type_page {\n padding-bottom: 9px;\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n outline: none;\n}\n.utilityfocus .dc-search-suggest__item_type_page:focus {\n outline: 2px solid #ffdb4d;\n}\n.dc-search-suggest__item_type_page:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.dc-search-suggest__item_type_page:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.dc-search-suggest__item_type_page:hover, .dc-search-suggest__item_type_page:active {\n color: var(--g-color-text-link-hover);\n}\n.dc-search-suggest__item_type_page .dc-search-suggest__item-breadcrumbs {\n padding-top: 2px;\n color: var(--g-color-text-secondary);\n}\n.dc-search-suggest__item_type_service, .dc-search-suggest__item_type_marketplace {\n display: flex;\n padding-top: 9px;\n padding-bottom: 11px;\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-logo, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-logo {\n margin-right: 16px;\n padding: 3px 0 1px;\n text-align: center;\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-icon, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-icon {\n width: 16px;\n height: var(--g-text-body-3-line-height);\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-text, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-text {\n min-width: 0;\n}\n.dc-search-suggest__item_type_service .dc-search-suggest__item-title, .dc-search-suggest__item_type_marketplace .dc-search-suggest__item-title {\n padding: 3px 0 1px;\n}\n.dc-search-suggest__item_type_group {\n padding: 16px 20px 4px;\n color: var(--www-text-content-color);\n}\n.dc-search-suggest__item_type_link {\n display: flex;\n padding: 22px 20px;\n color: var(--g-color-text-link);\n border-top: 1px solid var(--g-color-line-generic);\n}\n.dc-search-suggest__item_type_delimiter {\n height: 1px;\n padding: 0;\n background-color: var(--g-color-line-generic);\n}\n.dc-search-suggest__item_type_action:hover, .dc-search-suggest__item_type_action:focus-visible {\n background-color: var(--g-color-base-simple-hover);\n}\n.dc-search-suggest__item_type_action:hover .dc-search-suggest__item-hint, .dc-search-suggest__item_type_action:focus-visible .dc-search-suggest__item-hint {\n opacity: 1;\n}\n.dc-search-suggest__item h5 {\n margin: 0;\n font-weight: 700;\n font-size: 16px;\n line-height: 25px;\n}\n.dc-search-suggest__item em {\n position: relative;\n font-style: inherit;\n}\n.dc-search-suggest__item em::before {\n position: absolute;\n z-index: -1;\n top: -3px;\n bottom: -1px;\n width: 100%;\n content: \"\";\n background-color: var(--g-color-base-selection);\n}\n.g-list__item_active .dc-search-suggest__item-hint,\n.dc-search-suggest__item:hover .dc-search-suggest__item-hint,\n.dc-search-suggest__item:focus-within .dc-search-suggest__item-hint {\n opacity: 1;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1NlYXJjaFN1Z2dlc3QiLCJzb3VyY2VzIjpbImluZGV4LnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFHSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0k7QUFBQTtFQUVJO0VBQ0E7O0FBS1o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFFQTtFQUNJO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBRUE7RUFDQTtFQUNBO0VDakZKO0VBQ0E7O0FEb0ZJO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQUdJO0VBQ0E7RUFFQTs7QUFHSjtFQUNJO0VBRUE7O0FBSUE7RUFDSTtFQ3BFWjtFQUNBO0VBQ0E7RUFDQTtFQWpDQTs7QUFFQTtFQUNJOztBQWdCQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSTs7QUFlUjtFQUVJOztBRDhEWTtFQUNJO0VBRUE7O0FBS1o7RUFFSTtFQUVBO0VBQ0E7O0FBR0k7RUFDSTtFQUNBO0VBRUE7O0FBR0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7O0FBR0o7RUFDSTs7QUFLWjtFQUNJO0VBRUE7O0FBR0o7RUFDSTtFQUVBO0VBRUE7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFFQTs7QUFJQTtFQUVJOztBQUVBO0VBQ0k7O0FBTWhCO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTtFQUVBOztBQUVBO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUVBO0VBRUE7O0FBUVI7QUFBQTtBQUFBO0VBR0kiLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcbkB1c2UgJy4uLy4uL3N0eWxlcy9taXhpbnMnO1xuXG4uZGMtc2VhcmNoLXN1Z2dlc3Qge1xuICAgICRibG9jazogJjtcblxuICAgIC0tZy10ZXh0LWlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgLS1nLXRleHQtaW5wdXQtcGxhY2Vob2xkZXItY29sb3ItaG92ZXI6IHJnYmEoMCwgMCwgMCwgMC42NSk7XG4gICAgLS1nLXRleHQtaW5wdXQtYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgLS1nLXRleHQtaW5wdXQtYm9yZGVyLWNvbG9yLWhvdmVyOiByZ2JhKDAsIDAsIDAsIDAuNjUpO1xuXG4gICAgLmctcm9vdF90aGVtZV9kYXJrICYge1xuICAgICAgICAtLWctdGV4dC1pbnB1dC1wbGFjZWhvbGRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgICAgICAtLWctdGV4dC1pbnB1dC1wbGFjZWhvbGRlci1jb2xvci1ob3ZlcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpO1xuICAgICAgICAtLWctdGV4dC1pbnB1dC1ib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KTtcbiAgICAgICAgLS1nLXRleHQtaW5wdXQtYm9yZGVyLWNvbG9yLWhvdmVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7XG4gICAgfVxuXG4gICAgJl9fYWktaWNvbiB7XG4gICAgICAgIGNvbG9yOiAjZmM0NzE0O1xuICAgICAgICBwYWRkaW5nOiAwIDhweDtcblxuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAmX193cmFwcGVyIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmX2ZvY3VzZWQge1xuICAgICAgICAgICAgPiAuZGMtc2VhcmNoLXN1Z2dlc3QsXG4gICAgICAgICAgICA+IC5kYy1zZWFyY2gtc3VnZ2VzdF9fY2xvc2Uge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19vdmVybGF5IHtcbiAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICBpbnNldDogMDtcbiAgICAgICAgei1pbmRleDogMTAwO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgfVxuXG4gICAgJl9fcG9wdXAge1xuICAgICAgICB6LWluZGV4OiAxMDAyO1xuICAgIH1cblxuICAgICZfX2xvYWRlciB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgIH1cblxuICAgICZfX2xpc3Qge1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBtYXgtaGVpZ2h0OiA2MHZoO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuIGF1dG87XG5cbiAgICAgICAgJl9lbXB0eSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMnB4O1xuICAgICAgICAgICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2Nsb3NlIHtcbiAgICAgICAgZmxleDogbm9uZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDE2cHg7XG4gICAgfVxuXG4gICAgJl9faXRlbSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgcGFkZGluZzogMTJweCAyMHB4O1xuICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5cbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShib2R5LTEpO1xuXG4gICAgICAgICYtY29udGVudCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZ2FwOiA4cHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLW1haW4ge1xuICAgICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYtaGludCB7XG4gICAgICAgICAgICBmbGV4LXNocmluazogMDtcbiAgICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgIH1cblxuICAgICAgICAmLXRpdGxlLFxuICAgICAgICAmLWRlc2NyaXB0aW9uLFxuICAgICAgICAmLWJyZWFkY3J1bWJzID4gKiB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1kZXNjcmlwdGlvbiB7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiA0cHg7XG5cbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtc2Vjb25kYXJ5KTtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdHlwZSB7XG4gICAgICAgICAgICAmX3BhZ2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiA5cHg7XG5cbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMubGluaygpO1xuXG4gICAgICAgICAgICAgICAgI3skYmxvY2t9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgJi1icmVhZGNydW1icyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMnB4O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LXNlY29uZGFyeSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfc2VydmljZSxcbiAgICAgICAgICAgICZfbWFya2V0cGxhY2Uge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogOXB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAxMXB4O1xuXG4gICAgICAgICAgICAgICAgI3skYmxvY2t9X19pdGVtIHtcbiAgICAgICAgICAgICAgICAgICAgJi1sb2dvIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAwIDFweDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNnB4O1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICYtdGV4dCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtaW4td2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLXRpdGxlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDNweCAwIDFweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9ncm91cCB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTZweCAyMHB4IDRweDtcblxuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS13d3ctdGV4dC1jb250ZW50LWNvbG9yKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9saW5rIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgICAgICAgICAgICAgcGFkZGluZzogMjJweCAyMHB4O1xuXG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rKTtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmX2RlbGltaXRlciB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl9hY3Rpb24ge1xuICAgICAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAgICAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZy1jb2xvci1iYXNlLXNpbXBsZS1ob3Zlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgI3skYmxvY2t9X19pdGVtLWhpbnQge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGg1IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMjVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGVtIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICAgICAgICAgZm9udC1zdHlsZTogaW5oZXJpdDtcblxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgei1pbmRleDogLTE7XG4gICAgICAgICAgICAgICAgdG9wOiAtM3B4O1xuICAgICAgICAgICAgICAgIGJvdHRvbTogLTFweDtcblxuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG5cbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1nLWNvbG9yLWJhc2Utc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHBvcHVwIHJlbmRlcnMgdmlhIHBvcnRhbCBvdXRzaWRlIC5kYy1zZWFyY2gtc3VnZ2VzdCxcbiAgICAvLyBzbyB0aGVzZSBzZWxlY3RvcnMgbXVzdCBub3QgaGF2ZSBpdCBhcyBhbiBhbmNlc3RvclxuICAgIEBhdC1yb290IHtcbiAgICAgICAgLmctbGlzdF9faXRlbV9hY3RpdmUgI3skYmxvY2t9X19pdGVtLWhpbnQsXG4gICAgICAgICN7JGJsb2NrfV9faXRlbTpob3ZlciAjeyRibG9ja31fX2l0ZW0taGludCxcbiAgICAgICAgI3skYmxvY2t9X19pdGVtOmZvY3VzLXdpdGhpbiAjeyRibG9ja31fX2l0ZW0taGludCB7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAndmFyaWFibGVzJztcblxuQG1peGluIHRleHQtc2l6ZSgkbmFtZSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlKCkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbkBtaXhpbiBmaXhBbmNob3JQb3NpdGlvbigkb2Zmc2V0OiAwcHgpIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoI3skb2Zmc2V0fSAtIHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG59XG5cbkBtaXhpbiByZXNldC1saW5rLXN0eWxlKCkge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1peGluIGlzbGFuZHMtZm9jdXMoKSB7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgIC51dGlsaXR5Zm9jdXMgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAjZmZkYjRkO1xuICAgIH1cbn1cblxuQG1peGluIGZvY3VzYWJsZSgkb2Zmc2V0OiAwLCAkbW9kZTogJ291dGxpbmUnKSB7XG4gICAgQGlmICRtb2RlID09ICdvdXRsaW5lJyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogJG9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkbW9kZSA9PSAnYm94LXNoYWRvdycge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGxpbmsoKSB7XG4gICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWctZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICBAaW5jbHVkZSBpc2xhbmRzLWZvY3VzKCk7XG5cbiAgICBAaW5jbHVkZSBmb2N1c2FibGUoMCwgJ2JveC1zaGFkb3cnKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmstaG92ZXIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcxKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0zKTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0yKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMigpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nMygpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0yKTtcbn1cblxuQG1peGluIGhlYWRpbmc0KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzUoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xufVxuXG5AbWl4aW4gaGVhZGluZzYoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xufVxuXG5AbWl4aW4gY29udHJpYnV0b3JzLXRleHQoKSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG5AbWl4aW4gdGV4dC1ib2R5LTEoKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0xLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTEtbGluZS1oZWlnaHQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS1mb250LXdlaWdodCk7XG59XG5cbkBtaXhpbiBkZXNrdG9wLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVza3RvcC10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGdyYXZpdHktdWktdGV4dC1zaXplcygkZGVsdGEpIHtcbiAgICAtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodDogI3sxOHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTItZm9udC1zaXplOiAjezE1cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodDogI3syMHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LTMtZm9udC1zaXplOiAjezE3cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1saW5lLWhlaWdodDogI3syNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1ib2R5LXNob3J0LWZvbnQtc2l6ZTogI3sxM3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jYXB0aW9uLTEtZm9udC1zaXplOiAjezlweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY2FwdGlvbi0yLWZvbnQtc2l6ZTogI3sxMXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1oZWFkZXItMS1mb250LXNpemU6ICN7MjBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtaGVhZGVyLTItZm9udC1zaXplOiAjezI0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0xLWZvbnQtc2l6ZTogI3sxM3B4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMi1mb250LXNpemU6ICN7MTVweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTMtZm9udC1zaXplOiAjezE3cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMS1mb250LXNpemU6ICN7MjhweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0yLWZvbnQtc2l6ZTogI3szMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTMtZm9udC1zaXplOiAjezQwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktNC1mb250LXNpemU6ICN7NDhweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0xLWZvbnQtc2l6ZTogI3sxMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTItZm9udC1zaXplOiAjezE0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMy1mb250LXNpemU6ICN7MTZweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS1pbmxpbmUtMS1mb250LXNpemU6ICN7MTJweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS1pbmxpbmUtMi1mb250LXNpemU6ICN7MTRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS1pbmxpbmUtMy1mb250LXNpemU6ICN7MTZweCArICRkZWx0YX07XG5cbiAgICAtLXlmbS1mb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTItZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LWxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS0yLWxpbmUtaGVpZ2h0KTtcbiAgICAtLXlmbS1mb250LXNpemUtaDI6IHZhcigtLWctdGV4dC1oZWFkZXItMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oMzogdmFyKC0tZy10ZXh0LWhlYWRlci0xLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg0OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTMtZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDU6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNjogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0xLWZvbnQtc2l6ZSk7XG59XG4iXX0= */", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -4,6 +4,8 @@ import React from 'react';
4
4
  import './index.scss';
5
5
  export type { SearchSuggestActionItem, SearchSuggestItem, SearchSuggestLinkableItem, SearchSuggestPageItem, } from './types';
6
6
  export { SuggestItemType } from './types';
7
+ export { AiIcon } from './AiIcon';
8
+ export { useAiActionItem } from './useAiAction';
7
9
  export interface SearchSuggestProps {
8
10
  provider: ISearchProvider;
9
11
  placeholder?: string;
@@ -20,6 +22,7 @@ export interface SearchSuggestProps {
20
22
  hasClear?: boolean;
21
23
  withFocusOverlay?: boolean;
22
24
  emptyState?: React.ReactNode;
25
+ onAiAction?: (query: string) => void;
23
26
  }
24
27
  export interface SearchSuggestApi {
25
28
  open(): void;
@@ -47,8 +47,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
47
47
  // src/components/SearchSuggest/index.tsx
48
48
  var SearchSuggest_exports = {};
49
49
  __export(SearchSuggest_exports, {
50
+ AiIcon: () => import_AiIcon.AiIcon,
50
51
  SearchSuggest: () => SearchSuggest,
51
- SuggestItemType: () => import_types2.SuggestItemType
52
+ SuggestItemType: () => import_types2.SuggestItemType,
53
+ useAiActionItem: () => import_useAiAction2.useAiActionItem
52
54
  });
53
55
  module.exports = __toCommonJS(SearchSuggest_exports);
54
56
  var import_react = __toESM(require("react"));
@@ -59,12 +61,15 @@ var import_uniqueId = __toESM(require("lodash/uniqueId"));
59
61
  var import_analytics = require("../../shared/libs/analytics");
60
62
  var import_hooks = require("../../hooks");
61
63
  var import_types = require("./types");
64
+ var import_useAiAction = require("./useAiAction");
62
65
  var import_SearchInput = require("./SearchInput");
63
66
  var import_Suggest = require("./Suggest");
64
67
  var import_SuggestItem = require("./SuggestItem");
65
68
  var import_useFocus = require("./useFocus");
66
69
  var import_index = require("./index.css");
67
70
  var import_types2 = require("./types");
71
+ var import_AiIcon = require("./AiIcon");
72
+ var import_useAiAction2 = require("./useAiAction");
68
73
  var b = (0, import_bem_cn_lite.default)("dc-search-suggest");
69
74
  var MIMIC_PC_CONTROL = "pc-control pc-control_size_l pc-control_theme_primary";
70
75
  function CloseButton({ onClick, className }) {
@@ -96,7 +101,8 @@ var SearchSuggest = (0, import_react.forwardRef)((props, api) => {
96
101
  focusFirstSearchResult = false,
97
102
  hasClear = false,
98
103
  withFocusOverlay = false,
99
- emptyState
104
+ emptyState,
105
+ onAiAction
100
106
  } = props;
101
107
  const analytics = (0, import_analytics.useAnalytics)();
102
108
  const href = (0, import_react.useRef)(null);
@@ -107,6 +113,10 @@ var SearchSuggest = (0, import_react.forwardRef)((props, api) => {
107
113
  const [active, setActive] = (0, import_react.useState)(void 0);
108
114
  const [focused, setFocused, handlers] = (0, import_useFocus.useFocus)(props);
109
115
  const [box, watch] = (0, import_hooks.useVirtualElementRef)(input.current);
116
+ const aiActionItem = (0, import_useAiAction.useAiActionItem)({
117
+ query,
118
+ onAiAction
119
+ });
110
120
  const submitItem = (0, import_react.useCallback)(
111
121
  (link) => {
112
122
  if (href.current) {
@@ -217,7 +227,8 @@ var SearchSuggest = (0, import_react.forwardRef)((props, api) => {
217
227
  renderItem: import_SuggestItem.SuggestItem,
218
228
  onItemClick: onSubmit,
219
229
  onChangeActive: setActive,
220
- emptyState
230
+ emptyState,
231
+ prependItems: aiActionItem ? [aiActionItem] : void 0
221
232
  }
222
233
  )
223
234
  ));
@@ -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} 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": ["import_types", "block", "React", "uniqueId"]
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 {useAiActionItem} from './useAiAction';\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';\nexport {AiIcon} from './AiIcon';\nexport {useAiActionItem} from './useAiAction';\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 onAiAction?: (query: string) => void;\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 onAiAction,\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 aiActionItem = useAiActionItem({\n query,\n onAiAction,\n });\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 prependItems={aiActionItem ? [aiActionItem] : undefined}\n />\n </Popup>\n )}\n </div>\n );\n});\n\nSearchSuggest.displayName = 'SearchSuggest';\n"],
5
+ "mappings": "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",
6
+ "names": ["import_types", "import_useAiAction", "block", "React", "uniqueId"]
7
7
  }
@@ -0,0 +1,7 @@
1
+ import type { SearchSuggestActionItem } from './types';
2
+ interface AiActionItemProps {
3
+ query: string;
4
+ onAiAction: ((query: string) => void) | undefined;
5
+ }
6
+ export declare function useAiActionItem({ query, onAiAction, }: AiActionItemProps): SearchSuggestActionItem | null;
7
+ export {};
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/components/SearchSuggest/useAiAction.tsx
31
+ var useAiAction_exports = {};
32
+ __export(useAiAction_exports, {
33
+ useAiActionItem: () => useAiActionItem
34
+ });
35
+ module.exports = __toCommonJS(useAiAction_exports);
36
+ var import_react = __toESM(require("react"));
37
+ var import_uikit = require("@gravity-ui/uikit");
38
+ var import_hooks = require("../../hooks");
39
+ var import_types = require("./types");
40
+ var import_AiIcon = require("./AiIcon");
41
+ var ENTER_HINT = /* @__PURE__ */ import_react.default.createElement(import_uikit.Text, { variant: "body-short", color: "secondary" }, "ENTER");
42
+ function useAiActionItem({
43
+ query,
44
+ onAiAction
45
+ }) {
46
+ const { t } = (0, import_hooks.useTranslation)("search-suggest");
47
+ return (0, import_react.useMemo)(() => {
48
+ if (!onAiAction || !query) {
49
+ return null;
50
+ }
51
+ return {
52
+ type: import_types.SuggestItemType.Action,
53
+ title: t("search-suggest_ask-ai"),
54
+ icon: /* @__PURE__ */ import_react.default.createElement(import_AiIcon.AiIcon, null),
55
+ hint: ENTER_HINT,
56
+ onClick: () => onAiAction(query)
57
+ };
58
+ }, [onAiAction, query, t]);
59
+ }
60
+ //# sourceMappingURL=useAiAction.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/SearchSuggest/useAiAction.tsx"],
4
+ "sourcesContent": ["import type {SearchSuggestActionItem} from './types';\n\nimport React, {useMemo} from 'react';\nimport {Text} from '@gravity-ui/uikit';\n\nimport {useTranslation} from '../../hooks';\n\nimport {SuggestItemType} from './types';\nimport {AiIcon} from './AiIcon';\n\ninterface AiActionItemProps {\n query: string;\n onAiAction: ((query: string) => void) | undefined;\n}\n\nconst ENTER_HINT = (\n <Text variant=\"body-short\" color=\"secondary\">\n ENTER\n </Text>\n);\n\nexport function useAiActionItem({\n query,\n onAiAction,\n}: AiActionItemProps): SearchSuggestActionItem | null {\n const {t} = useTranslation('search-suggest');\n\n return useMemo(() => {\n if (!onAiAction || !query) {\n return null;\n }\n\n return {\n type: SuggestItemType.Action,\n title: t('search-suggest_ask-ai'),\n icon: <AiIcon />,\n hint: ENTER_HINT,\n onClick: () => onAiAction(query),\n };\n }, [onAiAction, query, t]);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA6B;AAC7B,mBAAmB;AAEnB,mBAA6B;AAE7B,mBAA8B;AAC9B,oBAAqB;AAOrB,IAAM,aACF,6BAAAA,QAAA,cAAC,qBAAK,SAAQ,cAAa,OAAM,eAAY,OAE7C;AAGG,SAAS,gBAAgB;AAAA,EAC5B;AAAA,EACA;AACJ,GAAsD;AAClD,QAAM,EAAC,EAAC,QAAI,6BAAe,gBAAgB;AAE3C,aAAO,sBAAQ,MAAM;AACjB,QAAI,CAAC,cAAc,CAAC,OAAO;AACvB,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,MACH,MAAM,6BAAgB;AAAA,MACtB,OAAO,EAAE,uBAAuB;AAAA,MAChC,MAAM,6BAAAA,QAAA,cAAC,0BAAO;AAAA,MACd,MAAM;AAAA,MACN,SAAS,MAAM,WAAW,KAAK;AAAA,IACnC;AAAA,EACJ,GAAG,CAAC,YAAY,OAAO,CAAC,CAAC;AAC7B;",
6
+ "names": ["React"]
7
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/ShareButton/ShareButton.scss", "../../../../src/components/ShareButton/%3Cinput css yfkzpB%3E"],
3
+ "sources": ["../../../../src/components/ShareButton/ShareButton.scss", "../../../../src/components/ShareButton/%3Cinput css 6nMcYy%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,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/SubNavigation/SubNavigation.scss", "../../../../src/components/SubNavigation/%3Cinput css GjdjWi%3E", "../../../../src/styles/mixins.scss"],
3
+ "sources": ["../../../../src/components/SubNavigation/SubNavigation.scss", "../../../../src/components/SubNavigation/%3Cinput css ztt79B%3E", "../../../../src/styles/mixins.scss"],
4
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": []