@yadsh/dsh-qa-surface 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/README.md +34 -5
  2. package/compatibility.json +1 -1
  3. package/lib/account-remotes.js +13 -0
  4. package/lib/account-remotes.js.map +1 -1
  5. package/lib/accounts/database.js +120 -4
  6. package/lib/accounts/database.js.map +1 -1
  7. package/lib/accounts/file.js.map +1 -1
  8. package/lib/accounts/store.js +131 -5
  9. package/lib/accounts/store.js.map +1 -1
  10. package/lib/accounts/token.js +8 -2
  11. package/lib/accounts/token.js.map +1 -1
  12. package/lib/admin/metrics.js +15 -2
  13. package/lib/admin/metrics.js.map +1 -1
  14. package/lib/admin/read-budget.js +28 -0
  15. package/lib/admin/read-budget.js.map +1 -0
  16. package/lib/admin/service.js +135 -40
  17. package/lib/admin/service.js.map +1 -1
  18. package/lib/admin/session-log.js +63 -4
  19. package/lib/admin/session-log.js.map +1 -1
  20. package/lib/chat-sharing/native-fence.js +31 -2
  21. package/lib/chat-sharing/native-fence.js.map +1 -1
  22. package/lib/chat-sharing/store.js +9 -3
  23. package/lib/chat-sharing/store.js.map +1 -1
  24. package/lib/chat-sharing/transport.js +74 -13
  25. package/lib/chat-sharing/transport.js.map +1 -1
  26. package/lib/chat-sharing/uploads.js +79 -6
  27. package/lib/chat-sharing/uploads.js.map +1 -1
  28. package/lib/cli.js +13 -0
  29. package/lib/cli.js.map +1 -1
  30. package/lib/client/QaAccountsController.js +79 -0
  31. package/lib/client/QaAccountsController.js.map +1 -1
  32. package/lib/client/QaRouteController.js +3 -1
  33. package/lib/client/QaRouteController.js.map +1 -1
  34. package/lib/client/QaSessionController.js +102 -29
  35. package/lib/client/QaSessionController.js.map +1 -1
  36. package/lib/client/QaSurface.js +89 -19
  37. package/lib/client/QaSurface.js.map +1 -1
  38. package/lib/client/QaTranscriptAdapter.js +15 -2
  39. package/lib/client/QaTranscriptAdapter.js.map +1 -1
  40. package/lib/client/account-sessions.js +74 -8
  41. package/lib/client/account-sessions.js.map +1 -1
  42. package/lib/client/admin/CapabilityPicker.js +50 -0
  43. package/lib/client/admin/CapabilityPicker.js.map +1 -0
  44. package/lib/client/admin/CoverageNotice.js +9 -0
  45. package/lib/client/admin/CoverageNotice.js.map +1 -0
  46. package/lib/client/admin/QaAdmin.js +3 -150
  47. package/lib/client/admin/QaAdmin.js.map +1 -1
  48. package/lib/client/admin/RoleEditor.js +46 -0
  49. package/lib/client/admin/RoleEditor.js.map +1 -0
  50. package/lib/client/admin/capability-selection.js +63 -0
  51. package/lib/client/admin/capability-selection.js.map +1 -0
  52. package/lib/client/admin/pages/Conversations.js +35 -17
  53. package/lib/client/admin/pages/Conversations.js.map +1 -1
  54. package/lib/client/admin/pages/Overview.js +3 -2
  55. package/lib/client/admin/pages/Overview.js.map +1 -1
  56. package/lib/client/admin/pages/Quality.js +77 -20
  57. package/lib/client/admin/pages/Quality.js.map +1 -1
  58. package/lib/client/admin/pages/SkillFiles.js +14 -3
  59. package/lib/client/admin/pages/SkillFiles.js.map +1 -1
  60. package/lib/client/admin/shared.js +68 -3
  61. package/lib/client/admin/shared.js.map +1 -1
  62. package/lib/client/answer-review.js +89 -0
  63. package/lib/client/answer-review.js.map +1 -0
  64. package/lib/client/chat-artifacts.js +1 -0
  65. package/lib/client/chat-artifacts.js.map +1 -1
  66. package/lib/client/components/QaAnswerReviewStatus.js +45 -0
  67. package/lib/client/components/QaAnswerReviewStatus.js.map +1 -0
  68. package/lib/client/components/QaAuthGate.js +31 -28
  69. package/lib/client/components/QaAuthGate.js.map +1 -1
  70. package/lib/client/components/QaChangelog.js +79 -0
  71. package/lib/client/components/QaChangelog.js.map +1 -1
  72. package/lib/client/components/QaChatActions.js +52 -0
  73. package/lib/client/components/QaChatActions.js.map +1 -0
  74. package/lib/client/components/QaChatSharing.js +22 -19
  75. package/lib/client/components/QaChatSharing.js.map +1 -1
  76. package/lib/client/components/QaComposer.js +27 -4
  77. package/lib/client/components/QaComposer.js.map +1 -1
  78. package/lib/client/components/QaFormItem.js +63 -0
  79. package/lib/client/components/QaFormItem.js.map +1 -0
  80. package/lib/client/components/QaInputForm.js +281 -0
  81. package/lib/client/components/QaInputForm.js.map +1 -0
  82. package/lib/client/components/QaMarkdownPreview.js +86 -0
  83. package/lib/client/components/QaMarkdownPreview.js.map +1 -0
  84. package/lib/client/components/QaMessage.js +8 -2
  85. package/lib/client/components/QaMessage.js.map +1 -1
  86. package/lib/client/components/QaModal.js +34 -4
  87. package/lib/client/components/QaModal.js.map +1 -1
  88. package/lib/client/components/QaRightRail.js +6 -4
  89. package/lib/client/components/QaRightRail.js.map +1 -1
  90. package/lib/client/components/QaRightRailResize.js +129 -0
  91. package/lib/client/components/QaRightRailResize.js.map +1 -0
  92. package/lib/client/components/QaSidebar.js +10 -1
  93. package/lib/client/components/QaSidebar.js.map +1 -1
  94. package/lib/client/components/QaSourceFilters.js +22 -0
  95. package/lib/client/components/QaSourceFilters.js.map +1 -0
  96. package/lib/client/components/QaSourcesPanel.js +57 -13
  97. package/lib/client/components/QaSourcesPanel.js.map +1 -1
  98. package/lib/client/components/QaSpreadsheetPreview.js +56 -0
  99. package/lib/client/components/QaSpreadsheetPreview.js.map +1 -0
  100. package/lib/client/components/QaWelcomeNotice.js +2 -2
  101. package/lib/client/components/QaWelcomeNotice.js.map +1 -1
  102. package/lib/client/components/QaWorkspaceBrowser.js +22 -9
  103. package/lib/client/components/QaWorkspaceBrowser.js.map +1 -1
  104. package/lib/client/components/QaZoomImage.js +56 -0
  105. package/lib/client/components/QaZoomImage.js.map +1 -0
  106. package/lib/client/components/source-refs.js +18 -4
  107. package/lib/client/components/source-refs.js.map +1 -1
  108. package/lib/client/forms-styles.js +14 -0
  109. package/lib/client/forms-styles.js.map +1 -0
  110. package/lib/client/forms.js +40 -0
  111. package/lib/client/forms.js.map +1 -0
  112. package/lib/client/index.js +31 -3
  113. package/lib/client/index.js.map +1 -1
  114. package/lib/client/markdown/SourceImage.js +52 -0
  115. package/lib/client/markdown/SourceImage.js.map +1 -0
  116. package/lib/client/markdown/blocks.js +150 -115
  117. package/lib/client/markdown/blocks.js.map +1 -1
  118. package/lib/client/markdown/render.js +23 -5
  119. package/lib/client/markdown/render.js.map +1 -1
  120. package/lib/client/markdown/source-chip.js +2 -1
  121. package/lib/client/markdown/source-chip.js.map +1 -1
  122. package/lib/client/oidc-browser.js +39 -0
  123. package/lib/client/oidc-browser.js.map +1 -0
  124. package/lib/client/panels/PanelHost.js +23 -1
  125. package/lib/client/panels/PanelHost.js.map +1 -1
  126. package/lib/client/settings/sections/interface.js +2 -1
  127. package/lib/client/settings/sections/interface.js.map +1 -1
  128. package/lib/client/settings/sections/sources.js +1 -1
  129. package/lib/client/settings/sections/sources.js.map +1 -1
  130. package/lib/client/settings/sections/status.js +3 -1
  131. package/lib/client/settings/sections/status.js.map +1 -1
  132. package/lib/client/settings/styles.js +18 -28
  133. package/lib/client/settings/styles.js.map +1 -1
  134. package/lib/client/source-filters-styles.js +11 -0
  135. package/lib/client/source-filters-styles.js.map +1 -0
  136. package/lib/client/styles.js +56 -5
  137. package/lib/client/styles.js.map +1 -1
  138. package/lib/client/types.js.map +1 -1
  139. package/lib/client/use-right-rail.js +1 -1
  140. package/lib/client/use-right-rail.js.map +1 -1
  141. package/lib/client/user-settings/IntegrationTokensPage.js +30 -6
  142. package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
  143. package/lib/client.js +540 -71128
  144. package/lib/client.js.map +1 -1
  145. package/lib/config-resolvers/accounts.js +5 -4
  146. package/lib/config-resolvers/accounts.js.map +1 -1
  147. package/lib/config-resolvers/defaults.js +20 -3
  148. package/lib/config-resolvers/defaults.js.map +1 -1
  149. package/lib/config-resolvers/oidc.js +53 -0
  150. package/lib/config-resolvers/oidc.js.map +1 -0
  151. package/lib/config-resolvers/sources.js +2 -0
  152. package/lib/config-resolvers/sources.js.map +1 -1
  153. package/lib/config.js +74 -0
  154. package/lib/config.js.map +1 -1
  155. package/lib/forms/attachments.js +214 -0
  156. package/lib/forms/attachments.js.map +1 -0
  157. package/lib/forms/errors.js +37 -0
  158. package/lib/forms/errors.js.map +1 -0
  159. package/lib/forms/fingerprint.js +21 -0
  160. package/lib/forms/fingerprint.js.map +1 -0
  161. package/lib/forms/gate.js +125 -0
  162. package/lib/forms/gate.js.map +1 -0
  163. package/lib/forms/schema.js +182 -0
  164. package/lib/forms/schema.js.map +1 -0
  165. package/lib/forms/service.js +220 -0
  166. package/lib/forms/service.js.map +1 -0
  167. package/lib/forms/store.js +194 -0
  168. package/lib/forms/store.js.map +1 -0
  169. package/lib/forms/types.js +2 -0
  170. package/lib/forms/types.js.map +1 -0
  171. package/lib/forms/validation.js +113 -0
  172. package/lib/forms/validation.js.map +1 -0
  173. package/lib/index.js +276 -5
  174. package/lib/index.js.map +1 -1
  175. package/lib/integration/host-runner.js +1 -0
  176. package/lib/integration/host-runner.js.map +1 -1
  177. package/lib/integration/question-policy.js +126 -0
  178. package/lib/integration/question-policy.js.map +1 -0
  179. package/lib/integration/service.js +2 -0
  180. package/lib/integration/service.js.map +1 -1
  181. package/lib/llm-identity.js +27 -0
  182. package/lib/llm-identity.js.map +1 -0
  183. package/lib/markdown-frontmatter.js +47 -0
  184. package/lib/markdown-frontmatter.js.map +1 -0
  185. package/lib/markdown-images.js +33 -0
  186. package/lib/markdown-images.js.map +1 -0
  187. package/lib/oidc/http.js +30 -0
  188. package/lib/oidc/http.js.map +1 -0
  189. package/lib/oidc/service.js +250 -0
  190. package/lib/oidc/service.js.map +1 -0
  191. package/lib/prompt-notes.js +1 -1
  192. package/lib/prompt-notes.js.map +1 -1
  193. package/lib/provenance/collector.js +2 -0
  194. package/lib/provenance/collector.js.map +1 -1
  195. package/lib/provenance/connectors.js +25 -19
  196. package/lib/provenance/connectors.js.map +1 -1
  197. package/lib/provenance/dedupe.js +17 -0
  198. package/lib/provenance/dedupe.js.map +1 -1
  199. package/lib/provenance/document-preview.js +12 -2
  200. package/lib/provenance/document-preview.js.map +1 -1
  201. package/lib/provenance/extractors.js +23 -5
  202. package/lib/provenance/extractors.js.map +1 -1
  203. package/lib/provenance/file-preview.js +9 -2
  204. package/lib/provenance/file-preview.js.map +1 -1
  205. package/lib/provenance/integration-extractor.js +5 -6
  206. package/lib/provenance/integration-extractor.js.map +1 -1
  207. package/lib/provenance/snapshot-store.js +2 -0
  208. package/lib/provenance/snapshot-store.js.map +1 -1
  209. package/lib/provenance/source-content.js +103 -0
  210. package/lib/provenance/source-content.js.map +1 -0
  211. package/lib/provenance/source-image.js +57 -0
  212. package/lib/provenance/source-image.js.map +1 -0
  213. package/lib/provenance/spreadsheet-preview.js +52 -0
  214. package/lib/provenance/spreadsheet-preview.js.map +1 -0
  215. package/lib/qa-tools/activation-manager.js +24 -2
  216. package/lib/qa-tools/activation-manager.js.map +1 -1
  217. package/lib/qa-tools/catalog.js +11 -1
  218. package/lib/qa-tools/catalog.js.map +1 -1
  219. package/lib/qa-tools/index.js +27 -0
  220. package/lib/qa-tools/index.js.map +1 -1
  221. package/lib/qa-tools/request-user-form.js +121 -0
  222. package/lib/qa-tools/request-user-form.js.map +1 -0
  223. package/lib/questions.js +6 -1
  224. package/lib/questions.js.map +1 -1
  225. package/lib/resolve-config.js +2 -0
  226. package/lib/resolve-config.js.map +1 -1
  227. package/lib/secure-session.js +14 -8
  228. package/lib/secure-session.js.map +1 -1
  229. package/lib/shared/documents.js +12 -0
  230. package/lib/shared/documents.js.map +1 -1
  231. package/lib/typert.host.js +5136 -1341
  232. package/lib/typert.remote-client.d.ts +141 -7
  233. package/lib/typert.remote-client.js +5896 -2255
  234. package/lib/types/account-remotes.d.ts +3 -0
  235. package/lib/types/accounts/database.d.ts +13 -0
  236. package/lib/types/accounts/file.d.ts +2 -0
  237. package/lib/types/accounts/store.d.ts +23 -1
  238. package/lib/types/accounts/token.d.ts +3 -1
  239. package/lib/types/admin/metrics.d.ts +5 -1
  240. package/lib/types/admin/read-budget.d.ts +8 -0
  241. package/lib/types/admin/service.d.ts +17 -0
  242. package/lib/types/admin/session-log.d.ts +30 -1
  243. package/lib/types/answer-review.js +2 -0
  244. package/lib/types/answer-review.js.map +1 -0
  245. package/lib/types/chat-sharing/store.d.ts +1 -0
  246. package/lib/types/chat-sharing/transport.d.ts +1 -0
  247. package/lib/types/chat-sharing/uploads.d.ts +2 -1
  248. package/lib/types/client/QaAccountsController.d.ts +5 -0
  249. package/lib/types/client/QaRouteController.d.ts +1 -0
  250. package/lib/types/client/QaSessionController.d.ts +12 -3
  251. package/lib/types/client/QaSurface.d.ts +2 -0
  252. package/lib/types/client/admin/CapabilityPicker.d.ts +14 -0
  253. package/lib/types/client/admin/CoverageNotice.d.ts +6 -0
  254. package/lib/types/client/admin/RoleEditor.d.ts +15 -0
  255. package/lib/types/client/admin/capability-selection.d.ts +27 -0
  256. package/lib/types/client/admin/shared.d.ts +39 -1
  257. package/lib/types/client/answer-review.d.ts +16 -0
  258. package/lib/types/client/components/QaAnswerReviewStatus.d.ts +8 -0
  259. package/lib/types/client/components/QaAuthGate.d.ts +2 -0
  260. package/lib/types/client/components/QaChatActions.d.ts +7 -0
  261. package/lib/types/client/components/QaChatSharing.d.ts +4 -2
  262. package/lib/types/client/components/QaFormItem.d.ts +20 -0
  263. package/lib/types/client/components/QaInputForm.d.ts +18 -0
  264. package/lib/types/client/components/QaMarkdownPreview.d.ts +13 -0
  265. package/lib/types/client/components/QaModal.d.ts +9 -0
  266. package/lib/types/client/components/QaRightRail.d.ts +3 -2
  267. package/lib/types/client/components/QaRightRailResize.d.ts +9 -0
  268. package/lib/types/client/components/QaSidebar.d.ts +2 -0
  269. package/lib/types/client/components/QaSourceFilters.d.ts +12 -0
  270. package/lib/types/client/components/QaSpreadsheetPreview.d.ts +8 -0
  271. package/lib/types/client/components/QaWelcomeNotice.d.ts +1 -1
  272. package/lib/types/client/components/QaZoomImage.d.ts +38 -0
  273. package/lib/types/client/forms-styles.d.ts +2 -0
  274. package/lib/types/client/forms.d.ts +23 -0
  275. package/lib/types/client/markdown/SourceImage.d.ts +7 -0
  276. package/lib/types/client/markdown/blocks.d.ts +8 -1
  277. package/lib/types/client/markdown/render.d.ts +5 -1
  278. package/lib/types/client/markdown/source-chip.d.ts +1 -0
  279. package/lib/types/client/oidc-browser.d.ts +12 -0
  280. package/lib/types/client/settings/styles.d.ts +2 -5
  281. package/lib/types/client/source-filters-styles.d.ts +2 -0
  282. package/lib/types/client/types.d.ts +18 -6
  283. package/lib/types/config-resolvers/oidc.d.ts +3 -0
  284. package/lib/types/forms/attachments.d.ts +48 -0
  285. package/lib/types/forms/errors.d.ts +11 -0
  286. package/lib/types/forms/fingerprint.d.ts +9 -0
  287. package/lib/types/forms/gate.d.ts +33 -0
  288. package/lib/types/forms/schema.d.ts +72 -0
  289. package/lib/types/forms/service.d.ts +15 -0
  290. package/lib/types/forms/store.d.ts +25 -0
  291. package/lib/types/forms/types.d.ts +215 -0
  292. package/lib/types/forms/validation.d.ts +20 -0
  293. package/lib/types/index.d.ts +36 -3
  294. package/lib/types/integration/contract.d.ts +1 -0
  295. package/lib/types/integration/question-policy.d.ts +20 -0
  296. package/lib/types/integration/service.d.ts +1 -0
  297. package/lib/types/llm-identity.d.ts +20 -0
  298. package/lib/types/markdown-frontmatter.d.ts +10 -0
  299. package/lib/types/markdown-images.d.ts +3 -0
  300. package/lib/types/oidc/http.d.ts +5 -0
  301. package/lib/types/oidc/service.d.ts +30 -0
  302. package/lib/types/oidc.js +2 -0
  303. package/lib/types/oidc.js.map +1 -0
  304. package/lib/types/prompt-notes.d.ts +1 -1
  305. package/lib/types/provenance/document-preview.d.ts +3 -2
  306. package/lib/types/provenance/file-preview.d.ts +2 -1
  307. package/lib/types/provenance/source-content.d.ts +19 -0
  308. package/lib/types/provenance/source-image.d.ts +4 -0
  309. package/lib/types/provenance/spreadsheet-preview.d.ts +5 -0
  310. package/lib/types/provenance/types.d.ts +3 -0
  311. package/lib/types/qa-tools/activation-manager.d.ts +5 -0
  312. package/lib/types/qa-tools/catalog.d.ts +4 -1
  313. package/lib/types/qa-tools/index.d.ts +5 -1
  314. package/lib/types/qa-tools/request-user-form.d.ts +5 -0
  315. package/lib/types/questions.d.ts +2 -1
  316. package/lib/types/secure-session.d.ts +1 -0
  317. package/lib/types/shared/documents.d.ts +2 -0
  318. package/lib/types/types/accounts.d.ts +7 -1
  319. package/lib/types/types/admin.d.ts +6 -0
  320. package/lib/types/types/answer-review.d.ts +11 -0
  321. package/lib/types/types/config.d.ts +9 -0
  322. package/lib/types/types/oidc.d.ts +36 -0
  323. package/lib/types/types/session.d.ts +18 -3
  324. package/lib/types/types.d.ts +3 -0
  325. package/package.json +58 -56
@@ -1,3 +1,4 @@
1
+ import { settingsBodyStyles } from "@yadsh/dsh-plugin-kit/client";
1
2
  /**
2
3
  * Card stylesheet: body rules for this plugin's own controls.
3
4
  *
@@ -9,15 +10,11 @@
9
10
  * outline under pointer modality at a specificity our rule cannot win, so a
10
11
  * hard-coded ring is one that goes missing rather than one that degrades.
11
12
  *
12
- * The type scale is the surface's: text the operator reads in order to decide —
13
- * section titles, field labels, the values in the controls, the toggle copy —
14
- * is 16px, a control's own label and an outcome line are 14px, and only chrome
15
- * stays small on purpose: the «Изменено» badge (9px), the status chips (11px),
16
- * the monospace data rows (11px) and the footer note (10px).
13
+ * The body controls use the plugin kit's shared type scale. Status chips,
14
+ * data rows and the footer retain their compact page-specific presentation.
17
15
  */
18
16
  export const QA_SETTINGS_STYLES = `.qa-card-body,.qa-card-body *{box-sizing:border-box}
19
17
  .qa-card-body{display:grid;gap:18px;color:var(--dsw-alias-label-primary)}
20
- .qa-card-section{display:grid;gap:12px}
21
18
  .qa-card-section__title{display:flex;justify-content:space-between;align-items:center;gap:12px}
22
19
  .qa-card-section__title h3{font-size:16px;margin:0;display:flex;align-items:center;gap:7px}
23
20
  .qa-card-muted{color:var(--dsw-alias-label-tertiary);font-size:16px;margin:0;line-height:1.5}
@@ -28,32 +25,11 @@ export const QA_SETTINGS_STYLES = `.qa-card-body,.qa-card-body *{box-sizing:bord
28
25
  the section directly or through a grid, so both paths share the rhythm. */
29
26
  .qa-card-grid>*,.qa-card-section>.qa-card-field{padding:12px 0}
30
27
  .qa-card-grid>*+*,.qa-card-section>.qa-card-field:not(:first-child){border-top:.5px solid var(--dsw-alias-border-l2)}
31
- .qa-card-field{display:grid;gap:6px}
32
- .qa-card-field>span{font-size:16px;color:var(--dsw-alias-label-primary);font-weight:500}
33
- .qa-card-control{width:100%;height:34px;border:.5px solid var(--dsw-alias-border-l4);border-radius:8px;background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-primary);padding:0 12px;font:inherit;font-size:16px;line-height:1.5;outline:none}
34
- textarea.qa-card-control{height:auto;padding:8px 12px;line-height:1.5;resize:vertical}
35
- .qa-card-control:focus-visible{border-color:var(--dsw-alias-brand-primary);outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));outline-offset:-1px}
36
- .qa-card-control:disabled{cursor:default;opacity:.45}
37
- .qa-card-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
38
- .qa-card-toggle-copy{display:grid;gap:2px;min-width:0}
39
- .qa-card-toggle-copy strong{font-size:16px;font-weight:500;color:var(--dsw-alias-label-primary)}
40
- .qa-card-toggle-copy span{font-size:16px;line-height:1.5;color:var(--dsw-alias-label-tertiary)}
41
- .qa-card-toggle{appearance:none;width:34px;height:19px;border-radius:999px;background:var(--dsw-alias-label-dimmed);position:relative;cursor:pointer;transition:.18s;flex:none}
42
- .qa-card-toggle:after{content:'';position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:var(--dsw-alias-bg-layer-3);transition:.18s}
43
- .qa-card-toggle:checked{background:var(--dsw-alias-brand-primary)}
44
- .qa-card-toggle:checked:after{transform:translateX(15px)}
45
- .qa-card-toggle:disabled{cursor:default;opacity:.45}
46
- .qa-card-toggle:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));outline-offset:2px}
47
- .qa-card-btn{height:34px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-module-platform);color:var(--dsw-alias-label-primary);padding:0 12px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;white-space:nowrap}
48
- .qa-card-btn:hover:not(:disabled){border-color:var(--dsw-alias-label-dimmed);background:var(--dsw-alias-interactive-bg-hover)}
49
- .qa-card-btn:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));outline-offset:-1px}
50
- .qa-card-btn:disabled{cursor:default;opacity:.45}
51
28
  .qa-card-btn.link{height:27px;padding:0 8px;background:transparent}
52
29
  .qa-card-status{display:flex;flex-wrap:wrap;gap:8px}
53
30
  .qa-card-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--dsw-alias-border-l2);border-radius:999px;padding:3px 10px;font-size:11px;color:var(--dsw-alias-label-secondary)}
54
31
  .qa-card-chip b{font-weight:600;color:var(--dsw-alias-label-primary)}
55
32
  .qa-card-chip.off{color:var(--dsw-alias-label-tertiary)}
56
- .qa-card-notice{padding:9px 11px;border-radius:8px;background:var(--dsw-alias-bg-module-platform);border:1px solid var(--dsw-alias-border-l2);font-size:14px;line-height:1.5;color:var(--dsw-alias-label-secondary)}
57
33
  .qa-card-notice.warn{border-color:var(--dsw-alias-label-dimmed);color:var(--dsw-alias-label-primary)}
58
34
  .qa-card-error{padding:9px 11px;border-radius:8px;background:color-mix(in srgb, var(--dsw-alias-state-error-primary, #b3261e) 8%, transparent);color:var(--dsw-alias-state-error-primary, #b3261e);font-size:14px;line-height:1.5}
59
35
  .qa-card-advanced{border:1px solid var(--dsw-alias-border-l2);border-radius:10px;padding:0 12px}
@@ -65,5 +41,19 @@ textarea.qa-card-control{height:auto;padding:8px 12px;line-height:1.5;resize:ver
65
41
  .qa-card-row code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
66
42
  .qa-card-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
67
43
  .qa-card-footer-note{font-size:10px;color:var(--dsw-alias-label-tertiary);margin:0;line-height:1.5;max-width:64ch}
68
- `;
44
+ ` +
45
+ settingsBodyStyles({
46
+ body: ".qa-card-body",
47
+ section: ".qa-card-section",
48
+ sectionTitle: ".qa-card-section__title",
49
+ field: ".qa-card-field",
50
+ fieldLabel: ".qa-card-field>span:first-child",
51
+ hint: ".qa-card-field>.qa-card-muted",
52
+ control: ".qa-card-control",
53
+ button: ".qa-card-btn",
54
+ toggleRow: ".qa-card-toggle-row",
55
+ toggleCopy: ".qa-card-toggle-copy",
56
+ toggle: ".qa-card-toggle",
57
+ notice: ".qa-card-notice",
58
+ });
69
59
  //# sourceMappingURL=styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/client/settings/styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkDzC,CAAC"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../src/client/settings/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BD;IACC,kBAAkB,CAAC;QACjB,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,kBAAkB;QAC3B,YAAY,EAAE,yBAAyB;QACvC,KAAK,EAAE,gBAAgB;QACvB,UAAU,EAAE,iCAAiC;QAC7C,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,cAAc;QACtB,SAAS,EAAE,qBAAqB;QAChC,UAAU,EAAE,sBAAsB;QAClC,MAAM,EAAE,iBAAiB;QACzB,MAAM,EAAE,iBAAiB;KAC1B,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ export const sourceFiltersStyles = `
2
+ .dsh-qa-sourcefilters{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:2px 12px 10px;flex:none}
3
+ .dsh-qa-sourcefilters input,.dsh-qa-sourcefilters select{min-width:0;padding:7px 9px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:inherit;font-size:12px}
4
+ .dsh-qa-sourcefilters input{flex:1 1 200px;width:100%}
5
+ .dsh-qa-sourcefilters select{flex:1 1 150px;max-width:100%}
6
+ .dsh-qa-sourcefilters__count{color:var(--dsw-alias-label-tertiary);font-size:11px}
7
+ .dsh-qa-sourcefilters button{margin-left:auto;border:0;background:transparent;color:var(--dsh-qa-accent);font:inherit;font-size:12px;cursor:pointer}
8
+ .dsh-qa-sourcefilters :is(input,select,button):focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsh-qa-accent));outline-offset:2px}
9
+ .dsh-qa-sourcedetail__content-label{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--dsw-alias-label-primary)}
10
+ `;
11
+ //# sourceMappingURL=source-filters-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-filters-styles.js","sourceRoot":"","sources":["../../src/client/source-filters-styles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;;;;;;CASlC,CAAC"}
@@ -2,6 +2,7 @@ import { QA_BLEED_MAX_WIDTH } from "./components/QaWidthHandle.js";
2
2
  import { QA_ADMIN_CONSOLE_STYLES } from "./admin/styles.js";
3
3
  import { AUDIT_UI_STYLES } from "@yadsh/dsh-audit-ui";
4
4
  import { KATEX_CSS } from "./markdown/katex-css.js";
5
+ import { sourceFiltersStyles } from "./source-filters-styles.js";
5
6
  /**
6
7
  * Company interaction palette ("Цвета взаимодействия" guideline) — the single
7
8
  * source of every hard-coded color in this file. The object is emitted once as
@@ -146,12 +147,22 @@ export const QA_SURFACE_STYLES = String.raw `
146
147
  .dsh-qa-sidebar__item-audit-verdict--bad{color:var(--dsw-alias-state-error-primary)}
147
148
  .dsh-qa-sidebar__item-delete:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsh-qa-accent));outline-offset:-2px}
148
149
  .dsh-qa-sidebar__item-delete svg{width:14px;height:14px;display:block;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
150
+ .dsh-qa-chat-actions{position:absolute;top:50%;right:4px;transform:translateY(-50%)}
151
+ .dsh-qa-chat-actions__trigger{appearance:none;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:6px;border:0;border-radius:6px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-tertiary);cursor:pointer;opacity:0;transition:opacity .12s,color .12s}
152
+ .dsh-qa-sidebar__item:hover .dsh-qa-chat-actions__trigger,.dsh-qa-chat-actions:focus-within .dsh-qa-chat-actions__trigger,.dsh-qa-chat-actions__trigger[aria-expanded=true]{opacity:1}
153
+ .dsh-qa-chat-actions__trigger:hover{color:var(--dsw-alias-label-primary)}
154
+ .dsh-qa-chat-actions__trigger svg{width:16px;height:16px;fill:currentColor}
155
+ .dsh-qa-chat-actions__menu{position:fixed;z-index:1200;width:180px;padding:4px;border:1px solid var(--dsw-alias-border-l2);border-radius:10px;background:var(--dsw-alias-bg-layer-2);box-shadow:0 6px 24px #0002;display:grid;gap:2px}
156
+ .dsh-qa-chat-actions__menu button{appearance:none;font:inherit;font-size:13px;text-align:left;color:var(--dsw-alias-label-primary);background:transparent;border:0;border-radius:6px;padding:8px 10px;cursor:pointer}
157
+ .dsh-qa-chat-actions__menu button:hover{background:var(--dsw-alias-bg-layer-3)}
158
+ .dsh-qa-chat-actions__trigger:focus-visible,.dsh-qa-chat-actions__menu button:focus-visible{outline:var(--dsw-focus-ring-width,2px) solid var(--dsw-focus-ring-color,var(--dsh-qa-accent));outline-offset:-2px}
159
+ @media(hover:none){.dsh-qa-chat-actions__trigger{opacity:1}}
149
160
  .dsh-qa-sidebar__item-title{flex:1;min-width:0;overflow:hidden;color:var(--dsw-alias-label-secondary);font-size:13px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}
150
161
  .dsh-qa-sidebar__item--active .dsh-qa-sidebar__item-title{color:var(--dsw-alias-label-primary);font-weight:500}
151
162
  .dsh-qa-sidebar__item-meta{flex:none;display:flex;align-items:center;gap:5px;color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:14px}
152
163
  .dsh-qa-sidebar__dot{width:7px;height:7px;border-radius:999px;background:var(--dsh-qa-brand);flex:none}
153
164
  .dsh-qa-sidebar__footer{flex:none;padding:8px 16px 12px;border-top:1px solid var(--dsw-alias-border-l2)}
154
- .dsh-qa-sidebar__version{appearance:none;display:inline-flex;align-items:center;padding:2px 0;border:0;background:0 0;color:var(--dsw-alias-label-tertiary);font:inherit;font-size:12px;line-height:16px;cursor:pointer;transition:color .12s}
165
+ .dsh-qa-sidebar__version{appearance:none;display:inline-flex;align-items:center;padding:2px 0;border:0;background:0 0;color:var(--dsw-alias-label-secondary);font:inherit;font-size:12px;line-height:16px;cursor:pointer;transition:color .12s}
155
166
  .dsh-qa-sidebar__version:hover{color:var(--dsw-alias-label-primary)}
156
167
  .dsh-qa-sidebar__version:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsh-qa-accent));outline-offset:2px;border-radius:4px}
157
168
  .dsh-qa-sidebar__account{display:flex;align-items:center;gap:6px;min-width:0;margin-bottom:6px}
@@ -209,6 +220,14 @@ export const QA_SURFACE_STYLES = String.raw `
209
220
  .dsh-qa-modal__close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}
210
221
  .dsh-qa-modal__close:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsh-qa-accent));outline-offset:-2px}
211
222
  .dsh-qa-modal__close svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
223
+ .dsh-qa-zoom{display:block;margin:0;padding:0;border:0;border-radius:inherit;background:0 0;color:inherit;cursor:zoom-in}
224
+ .dsh-qa-zoom:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsh-qa-accent));outline-offset:2px}
225
+ .dsh-qa-lightbox{${QA_BRAND_TOKENS};position:fixed;inset:0;z-index:2147483610;display:grid;place-items:center;padding:24px;overflow:hidden;background:var(--dsh-qa-overlay)}
226
+ .dsh-qa-lightbox__image{max-width:min(1600px,100%);max-height:100%;object-fit:contain;border-radius:12px;box-shadow:0 18px 48px var(--dsh-qa-overlay)}
227
+ .dsh-qa-lightbox__close{appearance:none;position:fixed;top:20px;right:20px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:999px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);cursor:pointer}
228
+ .dsh-qa-lightbox__close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}
229
+ .dsh-qa-lightbox__close:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsh-qa-accent));outline-offset:-2px}
230
+ .dsh-qa-lightbox__close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
212
231
  .dsh-qa-audit-dialog{display:flex;flex-direction:column;min-height:0;height:100%}
213
232
  .dsh-qa-audit-dialog__body{flex:1;min-height:0;overflow:auto;padding:16px 18px}
214
233
  .dsh-qa-audit-dialog__body .dsh-audit-json{height:100%;min-height:320px}
@@ -495,7 +514,11 @@ export const QA_SURFACE_STYLES = String.raw `
495
514
  .dsh-qa-variants button:focus-visible{outline:var(--dsw-focus-ring-width, 2px) solid var(--dsw-focus-ring-color, var(--dsh-qa-accent));outline-offset:-1px}
496
515
  .dsh-qa-variants button svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
497
516
  .dsh-qa-variants span{min-width:34px;text-align:center;color:var(--dsw-alias-label-tertiary);font-size:12px;line-height:20px;font-variant-numeric:tabular-nums}
498
- .dsh-qa-panel{flex:none;display:flex;flex-direction:column;width:360px;min-height:0;border-left:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base)}
517
+ .dsh-qa-panel{position:relative;flex:none;display:flex;flex-direction:column;width:var(--dsh-qa-panel-width,360px);min-height:0;border-left:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base)}
518
+ .dsh-qa-panel__resize{position:absolute;top:0;bottom:0;left:-4px;width:8px;cursor:col-resize;touch-action:none;user-select:none;z-index:11;outline:0}
519
+ .dsh-qa-panel__resize::after{content:"";position:absolute;inset:0 3px;background:transparent;transition:background .14s}
520
+ .dsh-qa-panel__resize:hover::after,.dsh-qa-panel__resize:focus-visible::after,.dsh-qa-panel__resize[data-dragging]::after{background:var(--dsw-alias-label-dimmed)}
521
+ @media(max-width:600px){.dsh-qa-panel__resize{display:none}}
499
522
  .dsh-qa-panel__strip{display:flex;align-items:center;gap:4px;flex:none;padding:10px 10px 8px 12px}
500
523
  .dsh-qa-panel__tab{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:0;border-radius:8px;background:transparent;color:var(--dsw-alias-label-tertiary);font:inherit;font-size:13px;font-weight:500;line-height:20px;cursor:pointer}
501
524
  .dsh-qa-panel__tab span{display:inline-grid;place-items:center;min-width:19px;height:18px;padding:0 5px;border-radius:999px;background:var(--dsw-alias-bg-layer-3);color:var(--dsw-alias-label-tertiary);font-size:10px;font-weight:400;line-height:18px}
@@ -550,6 +573,20 @@ export const QA_SURFACE_STYLES = String.raw `
550
573
  .dsh-qa-ws__download:hover{border-color:var(--dsw-alias-label-dimmed);color:var(--dsw-alias-label-primary)}
551
574
  .dsh-qa-ws__meta{margin:0 2px;color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px}
552
575
  .dsh-qa-ws__toggle{appearance:none;align-self:flex-start;padding:1px 3px;border:0;border-radius:5px;background:0 0;color:var(--dsh-qa-accent);font:inherit;font-size:11px;cursor:pointer}
576
+ .dsh-qa-sheet{min-width:0;color:var(--dsw-alias-label-primary);font-size:12px}
577
+ .dsh-qa-sheet__controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}
578
+ .dsh-qa-sheet__controls select,.dsh-qa-sheet__controls button{max-width:100%;font:inherit;color:inherit;background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:6px;padding:5px 8px}
579
+ .dsh-qa-sheet__controls button:disabled{opacity:.5}
580
+ .dsh-qa-sheet__note{color:var(--dsw-alias-label-tertiary);font-size:11px}
581
+ .dsh-qa-sheet__scroll{overflow:auto;max-height:65vh;border:1px solid var(--dsw-alias-border-l2);border-radius:8px}
582
+ .dsh-qa-sheet table{border-collapse:separate;border-spacing:0;min-width:100%}
583
+ .dsh-qa-sheet th,.dsh-qa-sheet td{padding:5px 8px;border-right:1px solid var(--dsw-alias-border-l2);border-bottom:1px solid var(--dsw-alias-border-l2);min-width:90px;max-width:320px;white-space:pre-wrap;overflow-wrap:anywhere;vertical-align:top}
584
+ .dsh-qa-sheet th{position:sticky;background:var(--dsw-alias-bg-layer-2);font-weight:600}
585
+ .dsh-qa-sheet thead th{top:0;z-index:1}
586
+ .dsh-qa-sheet tbody th{left:0;min-width:36px}
587
+ .dsh-qa-sheet td[data-type=number]{text-align:right;font-variant-numeric:tabular-nums}
588
+ .dsh-qa-sheet td[data-type=error]{color:var(--dsw-alias-state-error-primary)}
589
+ .dsh-qa-sheet__caption{text-align:left;padding:6px 8px}
553
590
  .dsh-qa-ws__text{margin:0;padding:8px 9px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font-size:11px;line-height:16px;white-space:pre-wrap;word-break:break-word}
554
591
  .dsh-qa-ws__image{max-width:100%;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-layer-2)}
555
592
  .dsh-qa-ws__pdf{width:100%;height:62vh;min-height:240px;border:1px solid var(--dsw-alias-border-l2);border-radius:8px;background:var(--dsw-alias-bg-layer-3)}
@@ -618,6 +655,20 @@ a.dsh-qa-sources__title:hover{text-decoration:underline}
618
655
  .dsh-qa-preview__raw code{display:block;min-width:max-content}
619
656
  .dsh-qa-preview__line{display:flex;min-height:18px}
620
657
  .dsh-qa-preview__line--highlight{background:var(--dsw-alias-interactive-bg-hover)}
658
+ .dsh-qa-preview__block{scroll-margin-block:24px}
659
+ .dsh-qa-preview__block--highlight{background:var(--dsw-alias-interactive-bg-hover);box-shadow:inset 3px 0 var(--dsh-qa-accent);border-radius:6px}
660
+ .dsh-qa-docmeta{padding:14px;margin-bottom:18px;border:1px solid var(--dsw-alias-border-l2);border-radius:10px;background:var(--dsw-alias-bg-layer-3);overflow-wrap:anywhere}
661
+ .dsh-qa-preview__markdown .dsh-qa-docmeta h2{margin:0 0 12px;font-size:17px}
662
+ .dsh-qa-docmeta dl{margin:0;display:grid;gap:10px}
663
+ .dsh-qa-docmeta__attributes{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
664
+ .dsh-qa-docmeta dt{color:var(--dsw-alias-label-tertiary);font-size:11px}
665
+ .dsh-qa-docmeta dd{margin:2px 0 0;color:var(--dsw-alias-label-primary)}
666
+ .dsh-qa-docmeta details{margin-top:12px;padding-top:10px;border-top:1px solid var(--dsw-alias-border-l2)}
667
+ .dsh-qa-docmeta summary{cursor:pointer;color:var(--dsw-alias-label-secondary)}
668
+ .dsh-qa-docmeta details[open]>dl{margin-top:12px}
669
+ .dsh-qa-docmeta dd dl{padding-left:10px;border-left:1px solid var(--dsw-alias-border-l2)}
670
+ .dsh-qa-source-image{display:block;min-height:32px;color:var(--dsw-alias-label-tertiary)}
671
+ .dsh-qa-source-image img{display:block;max-width:100%;height:auto;margin-block:10px}
621
672
  .dsh-qa-preview__number{width:46px;flex:none;padding-right:10px;color:var(--dsw-alias-label-tertiary);text-align:right;user-select:none}
622
673
  .dsh-qa-message{display:flex;flex-direction:column;width:100%;min-width:0;margin:0 0 20px}
623
674
  .dsh-qa-message--user{align-items:flex-end;margin-left:auto}
@@ -649,7 +700,6 @@ a.dsh-qa-sources__title:hover{text-decoration:underline}
649
700
  .dsh-qa-message__files .dsh-qa-file{background:var(--dsw-alias-bg-layer-3)}
650
701
  .dsh-qa-message--user .dsh-qa-message__images{justify-content:flex-end}
651
702
  .dsh-qa-message__image{display:block;width:132px;height:96px;border-radius:12px;border:1px solid var(--dsw-alias-border-l2);object-fit:cover;background:var(--dsw-alias-bg-layer-2)}
652
- a.dsh-qa-message__image{padding:0}
653
703
  span.dsh-qa-message__image{display:grid;place-items:center;color:var(--dsw-alias-label-tertiary);font-size:11px}
654
704
  span.dsh-qa-message__image[data-state="broken"]::after{content:"Не удалось загрузить"}
655
705
  span.dsh-qa-message__image[data-state="loading"]{animation:dsh-qa-spin 1.2s linear infinite;border-style:dashed}
@@ -906,7 +956,7 @@ a.dsh-qa-srcref:hover,button.dsh-qa-srcref:hover{border-color:var(--dsw-alias-la
906
956
  .dsh-qa-footer{position:relative;flex:none;padding:28px 16px max(12px,env(safe-area-inset-bottom));background:linear-gradient(180deg,color-mix(in srgb,var(--dsw-alias-bg-base) 0%,transparent) 0,var(--dsw-alias-bg-base) 28px)}
907
957
  .dsh-qa-footer__inner{width:100%;max-width:var(--dsh-qa-content-width);margin:0 auto}
908
958
  .dsh-qa-composer-wrap{display:flex;flex-direction:column;gap:10px;width:100%}
909
- .dsh-qa-footer__disclaimer{display:flex;align-items:flex-start;justify-content:center;gap:6px;margin:10px auto 0;max-width:640px;color:var(--dsw-alias-label-tertiary);font-size:11px;line-height:16px;text-align:left}
959
+ .dsh-qa-footer__disclaimer{display:flex;align-items:flex-start;justify-content:center;gap:6px;margin:10px auto 0;max-width:640px;color:var(--dsw-alias-label-secondary);font-size:11px;line-height:16px;text-align:left}
910
960
  .dsh-qa-footer__disclaimer svg{width:13px;height:13px;flex:none;margin-top:1px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round}
911
961
  .dsh-qa-quick-questions{display:flex;gap:8px;width:100%;padding:2px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}
912
962
  .dsh-qa-quick-questions button{flex:none;max-width:min(360px,80vw);padding:8px 13px;border:1px solid var(--dsw-alias-border-l2);border-radius:999px;background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:inherit;font-size:13px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
@@ -978,7 +1028,7 @@ a.dsh-qa-srcref:hover,button.dsh-qa-srcref:hover{border-color:var(--dsw-alias-la
978
1028
  .dsh-qa-composer textarea::placeholder{color:var(--dsw-alias-label-tertiary)}
979
1029
  .dsh-qa-composer textarea:disabled{cursor:default}
980
1030
  .dsh-qa-composer__toolbar{display:flex;align-items:center;min-height:34px;gap:12px}
981
- .dsh-qa-composer__hint{flex:1;min-width:0;overflow:hidden;color:var(--dsw-alias-label-caption);font-size:11px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}
1031
+ .dsh-qa-composer__hint{flex:1;min-width:0;overflow:hidden;color:var(--dsw-alias-label-secondary);font-size:11px;line-height:18px;text-overflow:ellipsis;white-space:nowrap}
982
1032
  .dsh-qa-composer__action{display:grid;place-items:center;flex:none;width:34px;height:34px;padding:0;border:0;border-radius:999px;color:var(--dsh-qa-accent-contrast);cursor:pointer}
983
1033
  .dsh-qa-composer__action svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
984
1034
  .dsh-qa-composer__action--send{background:var(--dsh-qa-accent)}
@@ -1026,6 +1076,7 @@ ${QA_ADMIN_CONSOLE_STYLES}
1026
1076
  * rules from its own KaTeX stylesheet are harmless.
1027
1077
  */
1028
1078
  export const QA_ROOT_STYLES = `${QA_SURFACE_STYLES}
1079
+ ${sourceFiltersStyles}
1029
1080
  ${KATEX_CSS}
1030
1081
  ${AUDIT_UI_STYLES}`;
1031
1082
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/client/styles.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AA6uBA,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAmB,MAAM,CAAC,MAAM,CAAC;IACjE,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,IAAI;IACf,uEAAuE;IACvE,uEAAuE;IACvE,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3B,cAAc,EAAE,IAAI;IACpB,KAAK,EAAE,IAAI;IACX,qBAAqB,EAAE,KAAK;IAC5B,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1B,eAAe,EAAE,IAAI;IACrB,uBAAuB,EAAE,SAAS;IAClC,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,iCAAiC;IACjC,YAAY,EAAE,IAAI;IAClB,0EAA0E;IAC1E,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,cAAc,EAAE,aAAa;QAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,CAAC;KACV,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAixBA,iFAAiF;AACjF,MAAM,CAAC,MAAM,qBAAqB,GAAmB,MAAM,CAAC,MAAM,CAAC;IACjE,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,IAAI;IACf,uEAAuE;IACvE,uEAAuE;IACvE,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3B,cAAc,EAAE,IAAI;IACpB,KAAK,EAAE,IAAI;IACX,qBAAqB,EAAE,KAAK;IAC5B,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,KAAK;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACxB,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC1B,eAAe,EAAE,IAAI;IACrB,uBAAuB,EAAE,SAAS;IAClC,eAAe,EAAE,IAAI;IACrB,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5B,6EAA6E;IAC7E,iCAAiC;IACjC,YAAY,EAAE,IAAI;IAClB,0EAA0E;IAC1E,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,MAAM;QACb,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,cAAc,EAAE,aAAa;QAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/B,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,CAAC;KACV,CAAC;CACH,CAAC,CAAC"}
@@ -29,7 +29,7 @@ export function useRightRail(ui) {
29
29
  const openSourceDetail = useCallback((source) => {
30
30
  setDrawerSources(null);
31
31
  setDrawerCompleteness(null);
32
- setDrawerDetail(source);
32
+ setDrawerDetail({ ...source });
33
33
  setRailOpen(true);
34
34
  setRailTab("sources");
35
35
  setAgentsOpen(false);
@@ -1 +1 @@
1
- {"version":3,"file":"use-right-rail.js","sourceRoot":"","sources":["../../src/client/use-right-rail.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"use-right-rail.js","sourceRoot":"","sources":["../../src/client/use-right-rail.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import { CopyHint } from "../components/copy-hint.js";
6
6
  import { QaSettingsActions, QaSettingsButton, QaSettingsField, QaSettingsNotice, QaSettingsSection, } from "./fields.js";
7
7
  /** Scope names as the person choosing them reads them. */
8
8
  const SCOPE_LABELS = {
9
- ask: "Задавать вопросы",
9
+ ask: "Отправлять запросы ассистенту",
10
10
  "sessions:read": "Читать историю чатов",
11
11
  };
12
12
  /** The lifetimes a token is usually asked for; the Host bounds the real range. */
@@ -50,10 +50,29 @@ export function QaIntegrationTokensPage(props) {
50
50
  const [days, setDays] = useState(TTL_CHOICES[1] ?? 90);
51
51
  const [scopes, setScopes] = useState(QA_SERVICE_TOKEN_DEFAULT_SCOPES);
52
52
  const [busy, setBusy] = useState(false);
53
+ const [allowClarifications, setAllowClarifications] = useState(true);
53
54
  const [issued, setIssued] = useState(null);
54
55
  const { copied, impossible: copyImpossible, refused: copyRefused, copy: copySecret, } = useCopyAction(issued?.token ?? "");
55
56
  const [pendingRevoke, setPendingRevoke] = useState(null);
56
57
  const [revoking, setRevoking] = useState(null);
58
+ const [updating, setUpdating] = useState(null);
59
+ const changeClarifications = async (tokenId, allowed) => {
60
+ const update = props.api.setClarifications;
61
+ if (update === undefined)
62
+ return;
63
+ setUpdating(tokenId);
64
+ try {
65
+ const result = await update(tokenId, allowed);
66
+ if (!result.ok) {
67
+ setError(result.error);
68
+ return;
69
+ }
70
+ await reload();
71
+ }
72
+ finally {
73
+ setUpdating(null);
74
+ }
75
+ };
57
76
  useEffect(() => {
58
77
  let live = true;
59
78
  void props.api.list().then((result) => {
@@ -91,6 +110,7 @@ export function QaIntegrationTokensPage(props) {
91
110
  .create({
92
111
  label: label.trim(),
93
112
  scopes: [...scopes],
113
+ allowClarifications,
94
114
  ttlDays: days,
95
115
  })
96
116
  .then(async (result) => {
@@ -125,18 +145,22 @@ export function QaIntegrationTokensPage(props) {
125
145
  });
126
146
  };
127
147
  const now = Date.now();
128
- return (_jsxs("div", { className: "dsh-qa-settings__page", "data-testid": "qa-settings-tokens", children: [_jsx("h3", { className: "dsh-qa-settings__page-title", "data-testid": "qa-settings-tokens-title", children: "\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0435 \u0442\u043E\u043A\u0435\u043D\u044B" }), _jsx("p", { className: "dsh-qa-settings__lead", "data-testid": "qa-settings-tokens-lead", children: "\u0422\u043E\u043A\u0435\u043D \u2014 \u044D\u0442\u043E \u043A\u043B\u044E\u0447 \u0434\u043B\u044F \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B: \u043E\u043D\u0430 \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u043E\u043F\u0440\u043E\u0441\u044B \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0451\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438, \u043D\u0435 \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440. \u0412\u044B\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0439 \u0442\u043E\u043A\u0435\u043D \u043A\u0430\u0436\u0434\u043E\u0439 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u043E\u0442\u0437\u044B\u0432\u0430\u0439\u0442\u0435 \u0435\u0433\u043E, \u043A\u043E\u0433\u0434\u0430 \u043E\u043D\u0430 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430. \u0422\u043E\u043A\u0435\u043D \u043F\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043C\u0435\u043D\u0443 \u0432\u0430\u0448\u0435\u0433\u043E \u043F\u0430\u0440\u043E\u043B\u044F, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E." }), issued === null ? null : (_jsxs(QaSettingsSection, { testId: "qa-settings-tokens-issued", title: "\u0422\u043E\u043A\u0435\u043D \u0441\u043E\u0437\u0434\u0430\u043D", children: [_jsx(QaSettingsNotice, { tone: "warn", testId: "qa-settings-tokens-issued-notice", children: "\u0421\u043A\u043E\u043F\u0438\u0440\u0443\u0439\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 \u043F\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 \u0435\u0433\u043E \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438. \u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0435\u0433\u043E \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u043D\u0435\u043B\u044C\u0437\u044F: \u043D\u0430 \u0441\u0442\u0435\u043D\u0434\u0435 \u0445\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043E\u043A." }), _jsx(QaSettingsField, { testId: "qa-settings-tokens-secret", label: "\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0442\u043E\u043A\u0435\u043D\u0430", hint: "\u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0433\u043E \u043A\u0430\u043A \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A Authorization: Bearer \u2026", children: _jsx("input", { className: "dsh-qa-settings__code", value: issued.token, readOnly: true, onFocus: (event) => event.currentTarget.select() }) }), _jsxs(QaSettingsActions, { children: [copyImpossible ? (_jsx(CopyHint, { testId: "qa-settings-tokens-copy-hint" })) : (_jsxs(_Fragment, { children: [_jsx(QaSettingsButton, { testId: "qa-settings-tokens-copy", label: copied ? "Скопировано" : "Скопировать", onClick: copySecret }), copyRefused ? (_jsx(CopyHint, { testId: "qa-settings-tokens-copy-hint" })) : null] })), _jsx(QaSettingsButton, { testId: "qa-settings-tokens-ack", tone: "primary", label: "\u042F \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u043B \u0442\u043E\u043A\u0435\u043D", onClick: () => setIssued(null) })] })] })), _jsx(QaSettingsSection, { testId: "qa-settings-tokens-new", title: "\u041D\u043E\u0432\u044B\u0439 \u0442\u043E\u043A\u0435\u043D", children: props.api.canCreate ? (_jsxs("form", { className: "dsh-qa-settings__page", "data-testid": "qa-settings-tokens-create-form", onSubmit: submit, children: [_jsx(QaSettingsField, { testId: "qa-settings-tokens-label", label: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435", hint: "\u041F\u043E \u043D\u0435\u043C\u0443 \u0432\u044B \u043E\u0442\u043B\u0438\u0447\u0438\u0442\u0435 \u0442\u043E\u043A\u0435\u043D\u044B \u0432 \u0441\u043F\u0438\u0441\u043A\u0435: \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u00AB\u043C\u043E\u0441\u0442 \u0437\u0430\u044F\u0432\u043E\u043A\u00BB.", children: _jsx("input", { value: label, maxLength: QA_SERVICE_TOKEN_LABEL_MAX, placeholder: "\u043C\u043E\u0441\u0442 \u0437\u0430\u044F\u0432\u043E\u043A", onChange: (event) => setLabel(event.currentTarget.value) }) }), QA_SERVICE_TOKEN_SCOPES.map((scope) => (_jsx("div", { className: "dsh-qa-settings__toggle-row", "data-testid": "qa-settings-tokens-scope", children: _jsxs("label", { className: "dsh-qa-settings__toggle", children: [_jsx("input", { type: "checkbox", "data-testid": "qa-settings-tokens-scope-input", checked: scopes.includes(scope), onChange: (event) => toggleScope(scope, event.currentTarget.checked) }), _jsx("span", { className: "dsh-qa-settings__toggle-label", "data-testid": "qa-settings-tokens-scope-label", children: SCOPE_LABELS[scope] })] }) }, scope))), _jsx("p", { className: "dsh-qa-settings__field-hint", "data-testid": "qa-settings-tokens-scopes-hint", children: "\u041F\u0440\u0430\u0432\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u044E\u0442 \u0442\u043E\u043A\u0435\u043D, \u043D\u043E \u043D\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u044F\u044E\u0442 \u0434\u043E\u0441\u0442\u0443\u043F \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0451\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438: \u0442\u043E\u043A\u0435\u043D \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u043E\u043B\u044C\u0448\u0435 \u0442\u043E\u0433\u043E, \u0447\u0442\u043E \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u044B." }), _jsx(QaSettingsField, { testId: "qa-settings-tokens-ttl", label: "\u0421\u0440\u043E\u043A, \u0434\u043D\u0435\u0439", hint: `От ${String(QA_SERVICE_TOKEN_TTL_DAYS_MIN)} до ${String(QA_SERVICE_TOKEN_TTL_DAYS_MAX)}; по умолчанию — срок вашей сессии.`, children: _jsx("select", { value: days, onChange: (event) => setDays(Number(event.currentTarget.value)), children: TTL_CHOICES.map((choice) => (_jsx("option", { value: choice, children: choice }, choice))) }) }), _jsx(QaSettingsActions, { children: _jsx(QaSettingsButton, { testId: "qa-settings-tokens-create", type: "submit", tone: "primary", disabled: busy, label: busy ? "Создание…" : "Создать токен" }) })] })) : (_jsx(QaSettingsNotice, { tone: "info", testId: "qa-settings-tokens-api-off", children: "\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 API \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D \u043D\u0430 \u044D\u0442\u043E\u043C \u0441\u0442\u0435\u043D\u0434\u0435, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u0442\u043E\u043A\u0435\u043D\u044B \u043F\u043E\u043A\u0430 \u043D\u0435 \u0434\u043B\u044F \u0447\u0435\u0433\u043E. \u0412\u044B\u0434\u0430\u043D\u043D\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u0442\u043E\u043A\u0435\u043D\u044B \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u043D\u0438\u0436\u0435 \u2014 \u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043E\u0442\u043E\u0437\u0432\u0430\u0442\u044C." })) }), _jsxs(QaSettingsSection, { testId: "qa-settings-tokens-list", title: "\u0412\u044B\u0434\u0430\u043D\u043D\u044B\u0435 \u0442\u043E\u043A\u0435\u043D\u044B", children: [error === null ? null : (_jsx(QaSettingsNotice, { tone: "error", testId: "qa-settings-tokens-error", children: error })), loading ? (_jsx("p", { className: "dsh-qa-settings__field-hint", "data-testid": "qa-settings-tokens-loading", children: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u2026" })) : tokens.length === 0 ? (_jsx("p", { className: "dsh-qa-settings__field-hint", "data-testid": "qa-settings-tokens-empty", children: "\u0423 \u0432\u0430\u0441 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0442\u043E\u043A\u0435\u043D\u043E\u0432." })) : (_jsx("ul", { className: "dsh-qa-settings__rows", "data-testid": "qa-settings-tokens-rows", children: tokens.map((token) => {
148
+ return (_jsxs("div", { className: "dsh-qa-settings__page", "data-testid": "qa-settings-tokens", children: [_jsx("h3", { className: "dsh-qa-settings__page-title", "data-testid": "qa-settings-tokens-title", children: "\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0435 \u0442\u043E\u043A\u0435\u043D\u044B" }), _jsx("p", { className: "dsh-qa-settings__lead", "data-testid": "qa-settings-tokens-lead", children: "\u0422\u043E\u043A\u0435\u043D \u2014 \u044D\u0442\u043E \u043A\u043B\u044E\u0447 \u0434\u043B\u044F \u0434\u0440\u0443\u0433\u043E\u0439 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u043C\u044B: \u043E\u043D\u0430 \u0437\u0430\u0434\u0430\u0451\u0442 \u0432\u043E\u043F\u0440\u043E\u0441\u044B \u043E\u0442 \u0438\u043C\u0435\u043D\u0438 \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0451\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438, \u043D\u0435 \u043E\u0442\u043A\u0440\u044B\u0432\u0430\u044F \u0431\u0440\u0430\u0443\u0437\u0435\u0440. \u0412\u044B\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u044B\u0439 \u0442\u043E\u043A\u0435\u043D \u043A\u0430\u0436\u0434\u043E\u0439 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u043E\u0442\u0437\u044B\u0432\u0430\u0439\u0442\u0435 \u0435\u0433\u043E, \u043A\u043E\u0433\u0434\u0430 \u043E\u043D\u0430 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043D\u0443\u0436\u043D\u0430. \u0422\u043E\u043A\u0435\u043D \u043F\u0435\u0440\u0435\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u043C\u0435\u043D\u0443 \u0432\u0430\u0448\u0435\u0433\u043E \u043F\u0430\u0440\u043E\u043B\u044F, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u043E\u0442\u0437\u044B\u0432\u0430\u0435\u0442\u0441\u044F \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E." }), issued === null ? null : (_jsxs(QaSettingsSection, { testId: "qa-settings-tokens-issued", title: "\u0422\u043E\u043A\u0435\u043D \u0441\u043E\u0437\u0434\u0430\u043D", children: [_jsx(QaSettingsNotice, { tone: "warn", testId: "qa-settings-tokens-issued-notice", children: "\u0421\u043A\u043E\u043F\u0438\u0440\u0443\u0439\u0442\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438 \u043F\u0435\u0440\u0435\u0434\u0430\u0439\u0442\u0435 \u0435\u0433\u043E \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438. \u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0435\u0433\u043E \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u043D\u0435\u043B\u044C\u0437\u044F: \u043D\u0430 \u0441\u0442\u0435\u043D\u0434\u0435 \u0445\u0440\u0430\u043D\u0438\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043E\u0442\u043F\u0435\u0447\u0430\u0442\u043E\u043A." }), _jsx(QaSettingsField, { testId: "qa-settings-tokens-secret", label: "\u0417\u043D\u0430\u0447\u0435\u043D\u0438\u0435 \u0442\u043E\u043A\u0435\u043D\u0430", hint: "\u041F\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0435\u0433\u043E \u043A\u0430\u043A \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A Authorization: Bearer \u2026", children: _jsx("input", { className: "dsh-qa-settings__code", value: issued.token, readOnly: true, onFocus: (event) => event.currentTarget.select() }) }), _jsxs(QaSettingsActions, { children: [copyImpossible ? (_jsx(CopyHint, { testId: "qa-settings-tokens-copy-hint" })) : (_jsxs(_Fragment, { children: [_jsx(QaSettingsButton, { testId: "qa-settings-tokens-copy", label: copied ? "Скопировано" : "Скопировать", onClick: copySecret }), copyRefused ? (_jsx(CopyHint, { testId: "qa-settings-tokens-copy-hint" })) : null] })), _jsx(QaSettingsButton, { testId: "qa-settings-tokens-ack", tone: "primary", label: "\u042F \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u043B \u0442\u043E\u043A\u0435\u043D", onClick: () => setIssued(null) })] })] })), _jsx(QaSettingsSection, { testId: "qa-settings-tokens-new", title: "\u041D\u043E\u0432\u044B\u0439 \u0442\u043E\u043A\u0435\u043D", children: props.api.canCreate ? (_jsxs("form", { className: "dsh-qa-settings__page", "data-testid": "qa-settings-tokens-create-form", onSubmit: submit, children: [_jsx(QaSettingsField, { testId: "qa-settings-tokens-label", label: "\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435", hint: "\u041F\u043E \u043D\u0435\u043C\u0443 \u0432\u044B \u043E\u0442\u043B\u0438\u0447\u0438\u0442\u0435 \u0442\u043E\u043A\u0435\u043D\u044B \u0432 \u0441\u043F\u0438\u0441\u043A\u0435: \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440, \u00AB\u043C\u043E\u0441\u0442 \u0437\u0430\u044F\u0432\u043E\u043A\u00BB.", children: _jsx("input", { value: label, maxLength: QA_SERVICE_TOKEN_LABEL_MAX, placeholder: "\u043C\u043E\u0441\u0442 \u0437\u0430\u044F\u0432\u043E\u043A", onChange: (event) => setLabel(event.currentTarget.value) }) }), QA_SERVICE_TOKEN_SCOPES.map((scope) => (_jsx("div", { className: "dsh-qa-settings__toggle-row", "data-testid": "qa-settings-tokens-scope", children: _jsxs("label", { className: "dsh-qa-settings__toggle", children: [_jsx("input", { type: "checkbox", "data-testid": "qa-settings-tokens-scope-input", checked: scopes.includes(scope), onChange: (event) => toggleScope(scope, event.currentTarget.checked) }), _jsx("span", { className: "dsh-qa-settings__toggle-label", "data-testid": "qa-settings-tokens-scope-label", children: SCOPE_LABELS[scope] })] }) }, scope))), _jsx("p", { className: "dsh-qa-settings__field-hint", "data-testid": "qa-settings-tokens-scopes-hint", children: "\u041F\u0440\u0430\u0432\u0430 \u043E\u0433\u0440\u0430\u043D\u0438\u0447\u0438\u0432\u0430\u044E\u0442 \u0442\u043E\u043A\u0435\u043D, \u043D\u043E \u043D\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u044F\u044E\u0442 \u0434\u043E\u0441\u0442\u0443\u043F \u0432\u0430\u0448\u0435\u0439 \u0443\u0447\u0451\u0442\u043D\u043E\u0439 \u0437\u0430\u043F\u0438\u0441\u0438: \u0442\u043E\u043A\u0435\u043D \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u043E\u043B\u044C\u0448\u0435 \u0442\u043E\u0433\u043E, \u0447\u0442\u043E \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\u044B. \u00AB\u041E\u0442\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0437\u0430\u043F\u0440\u043E\u0441\u044B \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0443\u00BB \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0435\u0442 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u043E\u0442\u0432\u0435\u0442\u044B \u0447\u0435\u0440\u0435\u0437 API. \u042D\u0442\u043E \u043F\u0440\u0430\u0432\u043E \u043D\u0435 \u0443\u043F\u0440\u0430\u0432\u043B\u044F\u0435\u0442 \u0443\u0442\u043E\u0447\u043D\u044F\u044E\u0449\u0438\u043C\u0438 \u0432\u043E\u043F\u0440\u043E\u0441\u0430\u043C\u0438 \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442\u0430. \u0411\u0435\u0437 \u043D\u0435\u0433\u043E \u0437\u0430\u043F\u0440\u043E\u0441\u044B \u043D\u0430 \u043E\u0442\u0432\u0435\u0442 \u0432\u0435\u0440\u043D\u0443\u0442 HTTP 403." }), _jsx(QaSettingsField, { testId: "qa-settings-tokens-ttl", label: "\u0421\u0440\u043E\u043A, \u0434\u043D\u0435\u0439", hint: `От ${String(QA_SERVICE_TOKEN_TTL_DAYS_MIN)} до ${String(QA_SERVICE_TOKEN_TTL_DAYS_MAX)}; по умолчанию — срок вашей сессии.`, children: _jsx("select", { value: days, onChange: (event) => setDays(Number(event.currentTarget.value)), children: TTL_CHOICES.map((choice) => (_jsx("option", { value: choice, children: choice }, choice))) }) }), _jsxs("label", { className: "dsh-qa-settings__toggle", "data-testid": "qa-settings-tokens-clarifications", children: [_jsx("input", { type: "checkbox", checked: allowClarifications, onChange: (event) => setAllowClarifications(event.currentTarget.checked) }), _jsx("span", { className: "dsh-qa-settings__toggle-label", children: "\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044C \u0443\u0442\u043E\u0447\u043D\u044F\u044E\u0449\u0438\u0435 \u0432\u043E\u043F\u0440\u043E\u0441\u044B" })] }), _jsx("p", { className: "dsh-qa-settings__field-hint", "data-testid": "qa-settings-tokens-clarifications-hint", children: "\u0412\u044B\u043A\u043B\u044E\u0447\u0438\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0430\u0441\u0441\u0438\u0441\u0442\u0435\u043D\u0442 \u043E\u0442\u0432\u0435\u0447\u0430\u043B \u043F\u043E \u0438\u043C\u0435\u044E\u0449\u0438\u043C\u0441\u044F \u0434\u0430\u043D\u043D\u044B\u043C \u0438 \u043E\u0442\u043C\u0435\u0447\u0430\u043B \u043D\u0435\u0434\u043E\u0441\u0442\u0430\u044E\u0449\u0443\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E, \u043D\u0435 \u043E\u0436\u0438\u0434\u0430\u044F \u0432\u0430\u0448\u0438\u0445 \u043E\u0442\u0432\u0435\u0442\u043E\u0432. \u041F\u0440\u0430\u0432\u043E \u043D\u0430 \u043E\u0442\u043F\u0440\u0430\u0432\u043A\u0443 \u0437\u0430\u043F\u0440\u043E\u0441\u043E\u0432 \u0447\u0435\u0440\u0435\u0437 API \u0441\u043E\u0445\u0440\u0430\u043D\u044F\u0435\u0442\u0441\u044F. \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 \u0437\u0430\u043F\u0440\u043E\u0441\u044B." }), _jsx(QaSettingsActions, { children: _jsx(QaSettingsButton, { testId: "qa-settings-tokens-create", type: "submit", tone: "primary", disabled: busy, label: busy ? "Создание…" : "Создать токен" }) })] })) : (_jsx(QaSettingsNotice, { tone: "info", testId: "qa-settings-tokens-api-off", children: "\u0418\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0439 API \u0432\u044B\u043A\u043B\u044E\u0447\u0435\u043D \u043D\u0430 \u044D\u0442\u043E\u043C \u0441\u0442\u0435\u043D\u0434\u0435, \u043F\u043E\u044D\u0442\u043E\u043C\u0443 \u0441\u043E\u0437\u0434\u0430\u0432\u0430\u0442\u044C \u0442\u043E\u043A\u0435\u043D\u044B \u043F\u043E\u043A\u0430 \u043D\u0435 \u0434\u043B\u044F \u0447\u0435\u0433\u043E. \u0412\u044B\u0434\u0430\u043D\u043D\u044B\u0435 \u0440\u0430\u043D\u0435\u0435 \u0442\u043E\u043A\u0435\u043D\u044B \u043E\u0441\u0442\u0430\u044E\u0442\u0441\u044F \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u043D\u0438\u0436\u0435 \u2014 \u0438\u0445 \u043C\u043E\u0436\u043D\u043E \u043E\u0442\u043E\u0437\u0432\u0430\u0442\u044C." })) }), _jsxs(QaSettingsSection, { testId: "qa-settings-tokens-list", title: "\u0412\u044B\u0434\u0430\u043D\u043D\u044B\u0435 \u0442\u043E\u043A\u0435\u043D\u044B", children: [error === null ? null : (_jsx(QaSettingsNotice, { tone: "error", testId: "qa-settings-tokens-error", children: error })), loading ? (_jsx("p", { className: "dsh-qa-settings__field-hint", "data-testid": "qa-settings-tokens-loading", children: "\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u2026" })) : tokens.length === 0 ? (_jsx("p", { className: "dsh-qa-settings__field-hint", "data-testid": "qa-settings-tokens-empty", children: "\u0423 \u0432\u0430\u0441 \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u044B\u0445 \u0442\u043E\u043A\u0435\u043D\u043E\u0432." })) : (_jsx("ul", { className: "dsh-qa-settings__rows", "data-testid": "qa-settings-tokens-rows", children: tokens.map((token) => {
129
149
  const state = tokenState(token, now);
130
150
  const confirming = pendingRevoke === token.id;
131
- return (_jsx("li", { className: "dsh-qa-settings__row", "data-testid": "qa-settings-tokens-row", children: _jsxs("div", { className: "dsh-qa-settings__row-button", "data-testid": "qa-settings-tokens-row-body", children: [_jsx("span", { className: "dsh-qa-settings__row-title", "data-testid": "qa-settings-tokens-row-title", children: token.label }), _jsx("span", { className: "dsh-qa-settings__row-description", "data-testid": "qa-settings-tokens-row-scopes", children: scopeLabels(token.scopes) }), _jsxs("span", { className: "dsh-qa-settings__row-meta", "data-testid": "qa-settings-tokens-row-meta", children: ["\u0441\u043E\u0437\u0434\u0430\u043D ", day(token.createdAt), " \u00B7 \u0434\u043E ", day(token.expiresAt), " ", "\u00B7 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0439: ", token.useCount, token.lastUsedAt === null
151
+ return (_jsx("li", { className: "dsh-qa-settings__row", "data-testid": "qa-settings-tokens-row", children: _jsxs("div", { className: "dsh-qa-settings__row-button", "data-testid": "qa-settings-tokens-row-body", children: [_jsx("span", { className: "dsh-qa-settings__row-title", "data-testid": "qa-settings-tokens-row-title", children: token.label }), _jsxs("span", { className: "dsh-qa-settings__row-description", "data-testid": "qa-settings-tokens-row-scopes", children: [scopeLabels(token.scopes), " \u00B7", " ", token.allowClarifications === false
152
+ ? "без уточняющих вопросов"
153
+ : "уточнения разрешены"] }), _jsxs("span", { className: "dsh-qa-settings__row-meta", "data-testid": "qa-settings-tokens-row-meta", children: ["\u0441\u043E\u0437\u0434\u0430\u043D ", day(token.createdAt), " \u00B7 \u0434\u043E ", day(token.expiresAt), " ", "\u00B7 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u0439: ", token.useCount, token.lastUsedAt === null
132
154
  ? ""
133
155
  : ` · последний раз ${day(token.lastUsedAt)}`] }), state === "active" ? null : (_jsx("span", { className: state === "revoked"
134
156
  ? "dsh-qa-settings__row-meta"
135
157
  : "dsh-qa-settings__row-warning", "data-testid": "qa-settings-tokens-row-state", children: state === "revoked"
136
158
  ? "отозван"
137
- : "истёк — интеграция больше не может им пользоваться" })), state === "active" ? (_jsx(QaSettingsActions, { children: confirming ? (_jsxs(_Fragment, { children: [_jsx(QaSettingsButton, { testId: "qa-settings-tokens-revoke-cancel", label: "\u041E\u0442\u043C\u0435\u043D\u0430", onClick: () => setPendingRevoke(null) }), _jsx(QaSettingsButton, { testId: "qa-settings-tokens-revoke-confirm", tone: "danger", disabled: revoking === token.id, label: revoking === token.id
138
- ? "Отзываем…"
139
- : "Отозвать окончательно", onClick: () => revoke(token.id) })] })) : (_jsx(QaSettingsButton, { testId: "qa-settings-tokens-revoke", tone: "danger", label: "\u041E\u0442\u043E\u0437\u0432\u0430\u0442\u044C", title: `Отозвать токен «${token.label}»`, onClick: () => setPendingRevoke(token.id) })) })) : null] }) }, token.id));
159
+ : "истёк — интеграция больше не может им пользоваться" })), state === "active" ? (_jsxs(QaSettingsActions, { children: [props.api.setClarifications === undefined ? null : (_jsxs("label", { className: "dsh-qa-settings__toggle", "data-testid": "qa-settings-tokens-row-clarifications", children: [_jsx("input", { type: "checkbox", checked: token.allowClarifications !== false, disabled: updating === token.id, onChange: (event) => {
160
+ void changeClarifications(token.id, event.currentTarget.checked);
161
+ } }), _jsx("span", { className: "dsh-qa-settings__toggle-label", children: "\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044C \u0443\u0442\u043E\u0447\u043D\u044F\u044E\u0449\u0438\u0435 \u0432\u043E\u043F\u0440\u043E\u0441\u044B" })] })), confirming ? (_jsxs(_Fragment, { children: [_jsx(QaSettingsButton, { testId: "qa-settings-tokens-revoke-cancel", label: "\u041E\u0442\u043C\u0435\u043D\u0430", onClick: () => setPendingRevoke(null) }), _jsx(QaSettingsButton, { testId: "qa-settings-tokens-revoke-confirm", tone: "danger", disabled: revoking === token.id, label: revoking === token.id
162
+ ? "Отзываем…"
163
+ : "Отозвать окончательно", onClick: () => revoke(token.id) })] })) : (_jsx(QaSettingsButton, { testId: "qa-settings-tokens-revoke", tone: "danger", label: "\u041E\u0442\u043E\u0437\u0432\u0430\u0442\u044C", title: `Отозвать токен «${token.label}»`, onClick: () => setPendingRevoke(token.id) }))] })) : null] }) }, token.id));
140
164
  }) }))] })] }));
141
165
  }
142
166
  //# sourceMappingURL=IntegrationTokensPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IntegrationTokensPage.js","sourceRoot":"","sources":["../../../src/client/user-settings/IntegrationTokensPage.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IntegrationTokensPage.js","sourceRoot":"","sources":["../../../src/client/user-settings/IntegrationTokensPage.tsx"],"names":[],"mappings":"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"}