@gravity-ui/querieskit 1.3.0 → 1.3.2

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 (546) hide show
  1. package/build/cjs/components/AttachmentList/AttachmentList.d.ts +2 -2
  2. package/build/cjs/components/AttachmentList/AttachmentList.js +9 -1
  3. package/build/cjs/components/AttachmentList/AttachmentList.js.map +1 -1
  4. package/build/cjs/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
  5. package/build/cjs/components/AttachmentList/AttachmentList.stories.js +3 -0
  6. package/build/cjs/components/AttachmentList/AttachmentList.stories.js.map +1 -1
  7. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
  8. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js +11 -0
  9. package/build/cjs/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
  10. package/build/cjs/components/AttachmentListPlaceholder/AttachmentListPlaceholder.js +4 -4
  11. package/build/cjs/components/AttachmentListPlaceholder/AttachmentListPlaceholder.js.map +1 -1
  12. package/build/cjs/modules/Attachments/Attachments.css +4 -0
  13. package/build/cjs/modules/Attachments/Attachments.css.map +1 -1
  14. package/build/cjs/modules/Attachments/Attachments.d.ts +2 -1
  15. package/build/cjs/modules/Attachments/Attachments.js +8 -1
  16. package/build/cjs/modules/Attachments/Attachments.js.map +1 -1
  17. package/build/cjs/modules/Attachments/Attachments.stories.d.ts +2 -1
  18. package/build/cjs/modules/Attachments/Attachments.stories.js +7 -3
  19. package/build/cjs/modules/Attachments/Attachments.stories.js.map +1 -1
  20. package/build/cjs/modules/HistoryLayout/HistoryLayout.d.ts +1 -1
  21. package/build/cjs/modules/HistoryLayout/HistoryLayout.js +1 -1
  22. package/build/cjs/modules/HistoryLayout/HistoryLayout.js.map +1 -1
  23. package/build/cjs/modules/RowsList/RowsList.css +4 -0
  24. package/build/cjs/modules/RowsList/RowsList.css.map +1 -1
  25. package/build/cjs/types/queryList.d.ts +1 -1
  26. package/build/cjs/types/queryList.js.map +1 -1
  27. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js +1 -2
  28. package/build/cjs/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  29. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.d.ts +1 -0
  30. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js +82 -1
  31. package/build/cjs/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  32. package/build/cjs/widgets/SavedQueries/SavedQueries.stories.js.map +1 -1
  33. package/build/esm/components/AttachmentList/AttachmentList.d.ts +2 -2
  34. package/build/esm/components/AttachmentList/AttachmentList.js +9 -1
  35. package/build/esm/components/AttachmentList/AttachmentList.js.map +1 -1
  36. package/build/esm/components/AttachmentList/AttachmentList.stories.d.ts +36 -20
  37. package/build/esm/components/AttachmentList/AttachmentList.stories.js +3 -0
  38. package/build/esm/components/AttachmentList/AttachmentList.stories.js.map +1 -1
  39. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.d.ts +2 -0
  40. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js +5 -0
  41. package/build/esm/components/AttachmentList/helpers/isInteractiveTarget.js.map +1 -0
  42. package/build/esm/components/AttachmentListPlaceholder/AttachmentListPlaceholder.js +4 -4
  43. package/build/esm/components/AttachmentListPlaceholder/AttachmentListPlaceholder.js.map +1 -1
  44. package/build/esm/modules/Attachments/Attachments.css +4 -0
  45. package/build/esm/modules/Attachments/Attachments.css.map +1 -1
  46. package/build/esm/modules/Attachments/Attachments.d.ts +2 -1
  47. package/build/esm/modules/Attachments/Attachments.js +8 -1
  48. package/build/esm/modules/Attachments/Attachments.js.map +1 -1
  49. package/build/esm/modules/Attachments/Attachments.scss +5 -0
  50. package/build/esm/modules/Attachments/Attachments.stories.d.ts +2 -1
  51. package/build/esm/modules/Attachments/Attachments.stories.js +7 -3
  52. package/build/esm/modules/Attachments/Attachments.stories.js.map +1 -1
  53. package/build/esm/modules/HistoryLayout/HistoryLayout.d.ts +1 -1
  54. package/build/esm/modules/HistoryLayout/HistoryLayout.js +1 -1
  55. package/build/esm/modules/HistoryLayout/HistoryLayout.js.map +1 -1
  56. package/build/esm/modules/RowsList/RowsList.css +4 -0
  57. package/build/esm/modules/RowsList/RowsList.css.map +1 -1
  58. package/build/esm/modules/RowsList/RowsList.scss +3 -0
  59. package/build/esm/types/queryList.d.ts +1 -1
  60. package/build/esm/types/queryList.js.map +1 -1
  61. package/build/esm/widgets/QueriesHistory/QueriesHistory.js +1 -2
  62. package/build/esm/widgets/QueriesHistory/QueriesHistory.js.map +1 -1
  63. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.d.ts +1 -0
  64. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js +81 -0
  65. package/build/esm/widgets/QueriesHistory/QueriesHistory.stories.js.map +1 -1
  66. package/build/esm/widgets/SavedQueries/SavedQueries.stories.js.map +1 -1
  67. package/package.json +29 -2
  68. package/.agents/skills/code-review-checklist/SKILL.md +0 -94
  69. package/.agents/skills/github-pr-review/SKILL.md +0 -24
  70. package/.agents/skills/gravity-ui/SKILL.md +0 -175
  71. package/.agents/skills/gravity-ui/references/icons.md +0 -60
  72. package/.agents/skills/gravity-ui/references/layout.md +0 -366
  73. package/.agents/skills/gravity-ui/references/package-routing.md +0 -424
  74. package/.agents/skills/gravity-ui/references/theming.md +0 -309
  75. package/.agents/skills/gravity-ui/rules/hallucination-traps.md +0 -361
  76. package/.agents/skills/gravity-ui/scripts/icon-image-search.sh +0 -63
  77. package/.eslintignore +0 -3
  78. package/.github/workflows/ci.yml +0 -25
  79. package/.github/workflows/main-preview.yml +0 -31
  80. package/.github/workflows/pr-preview-build.yml +0 -13
  81. package/.github/workflows/pr-preview-deploy.yml +0 -22
  82. package/.github/workflows/pr-title.yml +0 -27
  83. package/.github/workflows/release.yml +0 -20
  84. package/.nvmrc +0 -1
  85. package/.prettierrc.js +0 -1
  86. package/.storybook/main.ts +0 -31
  87. package/.storybook/preview.tsx +0 -43
  88. package/.storybook/redefinition.css +0 -3
  89. package/.storybook/tsconfig.json +0 -9
  90. package/.stylelintrc +0 -9
  91. package/AGENTS.md +0 -129
  92. package/CHANGELOG.md +0 -103
  93. package/CODEOWNERS +0 -2
  94. package/CONTRIBUTING.md +0 -31
  95. package/NOTICES.md +0 -8
  96. package/app-builder.config.ts +0 -9
  97. package/commitlint.config.cjs +0 -6
  98. package/eslint.config.mjs +0 -53
  99. package/plans/i18n-rules.md +0 -116
  100. package/plans/navigation-architecture.md +0 -262
  101. package/plans/queries-history-structure.md +0 -143
  102. package/plans/queries-navigation-architecture-review.md +0 -217
  103. package/plans/styles-rules.md +0 -137
  104. package/skills-lock.json +0 -11
  105. package/src/components/AddChartButton/AddChartButton.scss +0 -12
  106. package/src/components/AddChartButton/AddChartButton.stories.tsx +0 -34
  107. package/src/components/AddChartButton/AddChartButton.tsx +0 -139
  108. package/src/components/AddChartButton/index.ts +0 -6
  109. package/src/components/AttachmentList/AttachmentList.scss +0 -25
  110. package/src/components/AttachmentList/AttachmentList.stories.tsx +0 -243
  111. package/src/components/AttachmentList/AttachmentList.tsx +0 -67
  112. package/src/components/AttachmentList/helpers/getIconByAttachmentName.ts +0 -36
  113. package/src/components/AttachmentList/helpers/objectLinkValidator.ts +0 -40
  114. package/src/components/AttachmentList/helpers/stringRequiredValidator.ts +0 -24
  115. package/src/components/AttachmentList/hooks/useKeyDownFormControl.ts +0 -22
  116. package/src/components/AttachmentList/hooks/useLabelRef.ts +0 -25
  117. package/src/components/AttachmentList/i18n/dicts.ts +0 -4
  118. package/src/components/AttachmentList/i18n/en.json +0 -10
  119. package/src/components/AttachmentList/i18n/index.ts +0 -5
  120. package/src/components/AttachmentList/i18n/ru.json +0 -10
  121. package/src/components/AttachmentList/index.ts +0 -4
  122. package/src/components/AttachmentList/internal/AttachmentItem/AttachmentItem.scss +0 -23
  123. package/src/components/AttachmentList/internal/AttachmentItem/AttachmentItem.tsx +0 -75
  124. package/src/components/AttachmentList/internal/AttachmentItem/index.ts +0 -2
  125. package/src/components/AttachmentList/internal/EditAttachmentItem/EditAttachmentItem.tsx +0 -21
  126. package/src/components/AttachmentList/internal/EditAttachmentItem/EditLinkItem.scss +0 -21
  127. package/src/components/AttachmentList/internal/EditAttachmentItem/EditLinkItem.tsx +0 -194
  128. package/src/components/AttachmentList/internal/EditAttachmentItem/FileEdit.tsx +0 -92
  129. package/src/components/AttachmentList/internal/EditAttachmentItem/index.ts +0 -4
  130. package/src/components/AttachmentListPlaceholder/AttachmentListPlaceholder.scss +0 -5
  131. package/src/components/AttachmentListPlaceholder/AttachmentListPlaceholder.stories.tsx +0 -30
  132. package/src/components/AttachmentListPlaceholder/AttachmentListPlaceholder.tsx +0 -72
  133. package/src/components/AttachmentListPlaceholder/assets/empty-attachments.svg +0 -14
  134. package/src/components/AttachmentListPlaceholder/i18n/dicts.ts +0 -4
  135. package/src/components/AttachmentListPlaceholder/i18n/en.json +0 -7
  136. package/src/components/AttachmentListPlaceholder/i18n/index.ts +0 -5
  137. package/src/components/AttachmentListPlaceholder/i18n/ru.json +0 -7
  138. package/src/components/AttachmentListPlaceholder/index.ts +0 -2
  139. package/src/components/Breadcrumbs/Breadcrumbs.scss +0 -25
  140. package/src/components/Breadcrumbs/Breadcrumbs.tsx +0 -114
  141. package/src/components/Breadcrumbs/helpers/parsePathSegments.ts +0 -16
  142. package/src/components/Breadcrumbs/i18n/dicts.ts +0 -4
  143. package/src/components/Breadcrumbs/i18n/en.json +0 -4
  144. package/src/components/Breadcrumbs/i18n/index.ts +0 -5
  145. package/src/components/Breadcrumbs/i18n/ru.json +0 -4
  146. package/src/components/Breadcrumbs/index.ts +0 -2
  147. package/src/components/Chart/Chart.scss +0 -40
  148. package/src/components/Chart/Chart.stories.tsx +0 -75
  149. package/src/components/Chart/Chart.tsx +0 -120
  150. package/src/components/Chart/i18n/dicts.ts +0 -4
  151. package/src/components/Chart/i18n/en.json +0 -6
  152. package/src/components/Chart/i18n/index.ts +0 -5
  153. package/src/components/Chart/i18n/ru.json +0 -6
  154. package/src/components/Chart/index.ts +0 -2
  155. package/src/components/ChartEditorForm/ChartEditorForm.scss +0 -20
  156. package/src/components/ChartEditorForm/ChartEditorForm.stories.tsx +0 -88
  157. package/src/components/ChartEditorForm/ChartEditorForm.tsx +0 -120
  158. package/src/components/ChartEditorForm/helpers/resolveLabels.ts +0 -17
  159. package/src/components/ChartEditorForm/i18n/dicts.ts +0 -4
  160. package/src/components/ChartEditorForm/i18n/en.json +0 -12
  161. package/src/components/ChartEditorForm/i18n/index.ts +0 -5
  162. package/src/components/ChartEditorForm/i18n/ru.json +0 -12
  163. package/src/components/ChartEditorForm/index.ts +0 -7
  164. package/src/components/ChartEditorForm/internal/Field.tsx +0 -11
  165. package/src/components/ChartEditorForm/types.ts +0 -44
  166. package/src/components/ClusterRow/ClusterRow.tsx +0 -34
  167. package/src/components/ClusterRow/index.ts +0 -2
  168. package/src/components/Dashboard/Dashboard.scss +0 -4
  169. package/src/components/Dashboard/Dashboard.stories.scss +0 -18
  170. package/src/components/Dashboard/Dashboard.stories.tsx +0 -248
  171. package/src/components/Dashboard/Dashboard.tsx +0 -51
  172. package/src/components/Dashboard/helpers/createDefaultLayout.ts +0 -43
  173. package/src/components/Dashboard/hooks/useDashboardConfig.ts +0 -63
  174. package/src/components/Dashboard/index.ts +0 -2
  175. package/src/components/Dashboard/internal/DashPlate.scss +0 -23
  176. package/src/components/Dashboard/internal/DashPlate.tsx +0 -35
  177. package/src/components/Dashboard/internal/DashboardProvider.tsx +0 -37
  178. package/src/components/Dashboard/types.ts +0 -21
  179. package/src/components/DataTable/DataTable.scss +0 -27
  180. package/src/components/DataTable/DataTable.stories.tsx +0 -65
  181. package/src/components/DataTable/DataTable.tsx +0 -100
  182. package/src/components/DataTable/index.ts +0 -1
  183. package/src/components/EditableRowTitle/EditableRowTitle.tsx +0 -67
  184. package/src/components/EditableRowTitle/index.ts +0 -2
  185. package/src/components/EmptyContent/EmptyContent.scss +0 -3
  186. package/src/components/EmptyContent/EmptyContent.tsx +0 -57
  187. package/src/components/EmptyContent/i18n/dicts.ts +0 -4
  188. package/src/components/EmptyContent/i18n/en.json +0 -7
  189. package/src/components/EmptyContent/i18n/index.ts +0 -5
  190. package/src/components/EmptyContent/i18n/ru.json +0 -7
  191. package/src/components/EmptyContent/index.ts +0 -1
  192. package/src/components/ErrorTree/ErrorTree.stories.tsx +0 -94
  193. package/src/components/ErrorTree/ErrorTree.tsx +0 -30
  194. package/src/components/ErrorTree/helpers/formatAttributes.ts +0 -9
  195. package/src/components/ErrorTree/helpers/getIntermediateChain.ts +0 -21
  196. package/src/components/ErrorTree/i18n/dicts.ts +0 -4
  197. package/src/components/ErrorTree/i18n/en.json +0 -11
  198. package/src/components/ErrorTree/i18n/index.ts +0 -5
  199. package/src/components/ErrorTree/i18n/ru.json +0 -13
  200. package/src/components/ErrorTree/index.ts +0 -1
  201. package/src/components/ErrorTree/internal/ErrorTreeChildren.scss +0 -5
  202. package/src/components/ErrorTree/internal/ErrorTreeChildren.tsx +0 -25
  203. package/src/components/ErrorTree/internal/ErrorTreeNode.scss +0 -95
  204. package/src/components/ErrorTree/internal/ErrorTreeNode.tsx +0 -178
  205. package/src/components/ErrorTree/internal/IntermediateMessages.scss +0 -13
  206. package/src/components/ErrorTree/internal/IntermediateMessages.tsx +0 -127
  207. package/src/components/FieldsSearchToolbar/FieldsSearchToolbar.tsx +0 -48
  208. package/src/components/FieldsSearchToolbar/index.ts +0 -2
  209. package/src/components/FieldsSelector/FieldsSelector.scss +0 -18
  210. package/src/components/FieldsSelector/FieldsSelector.stories.tsx +0 -48
  211. package/src/components/FieldsSelector/FieldsSelector.tsx +0 -92
  212. package/src/components/FieldsSelector/i18n/dicts.ts +0 -4
  213. package/src/components/FieldsSelector/i18n/en.json +0 -3
  214. package/src/components/FieldsSelector/i18n/index.ts +0 -5
  215. package/src/components/FieldsSelector/i18n/ru.json +0 -3
  216. package/src/components/FieldsSelector/index.ts +0 -2
  217. package/src/components/HistoryFilter/HistoryFilter.scss +0 -5
  218. package/src/components/HistoryFilter/HistoryFilter.stories.tsx +0 -69
  219. package/src/components/HistoryFilter/HistoryFilter.tsx +0 -64
  220. package/src/components/HistoryFilter/i18n/dicts.ts +0 -4
  221. package/src/components/HistoryFilter/i18n/en.json +0 -4
  222. package/src/components/HistoryFilter/i18n/index.ts +0 -5
  223. package/src/components/HistoryFilter/i18n/ru.json +0 -4
  224. package/src/components/HistoryFilter/index.ts +0 -1
  225. package/src/components/HistoryGroupHeader/HistoryGroupHeader.scss +0 -7
  226. package/src/components/HistoryGroupHeader/HistoryGroupHeader.tsx +0 -18
  227. package/src/components/HistoryGroupHeader/index.ts +0 -1
  228. package/src/components/HistoryPrivateIcon/HistoryPrivateIcon.scss +0 -7
  229. package/src/components/HistoryPrivateIcon/HistoryPrivateIcon.tsx +0 -22
  230. package/src/components/HistoryPrivateIcon/index.ts +0 -1
  231. package/src/components/Icons/LogoCPlusPlus.tsx +0 -34
  232. package/src/components/Icons/index.ts +0 -1
  233. package/src/components/LazyList/LazyList.scss +0 -13
  234. package/src/components/LazyList/LazyList.tsx +0 -97
  235. package/src/components/LazyList/index.ts +0 -2
  236. package/src/components/ListSpinner/ListSpinner.scss +0 -3
  237. package/src/components/ListSpinner/ListSpinner.tsx +0 -18
  238. package/src/components/ListSpinner/index.ts +0 -2
  239. package/src/components/MonacoEditor/MonacoEditor.tsx +0 -112
  240. package/src/components/MonacoEditor/MonacoEditorThemes.tsx +0 -73
  241. package/src/components/MonacoEditor/index.ts +0 -11
  242. package/src/components/MonacoEditor/monaco-yql-languages/_.contribution.ts +0 -193
  243. package/src/components/MonacoEditor/monaco-yql-languages/clickhouse/clickhouse.contribution.ts +0 -14
  244. package/src/components/MonacoEditor/monaco-yql-languages/clickhouse/clickhouse.keywords.ts +0 -146
  245. package/src/components/MonacoEditor/monaco-yql-languages/clickhouse/clickhouse.ts +0 -217
  246. package/src/components/MonacoEditor/monaco-yql-languages/constants.ts +0 -6
  247. package/src/components/MonacoEditor/monaco-yql-languages/fillers/monaco-editor-core.ts +0 -3
  248. package/src/components/MonacoEditor/monaco-yql-languages/index.ts +0 -1
  249. package/src/components/MonacoEditor/monaco-yql-languages/monaco.contribution.ts +0 -5
  250. package/src/components/MonacoEditor/monaco-yql-languages/s-expressions/s-expressions.contribution.ts +0 -14
  251. package/src/components/MonacoEditor/monaco-yql-languages/s-expressions/s-expressions.keywords.ts +0 -97
  252. package/src/components/MonacoEditor/monaco-yql-languages/s-expressions/s-expressions.ts +0 -170
  253. package/src/components/MonacoEditor/monaco-yql-languages/themes/themes.contribution.ts +0 -35
  254. package/src/components/MonacoEditor/monaco-yql-languages/yql/yql.contribution.ts +0 -14
  255. package/src/components/MonacoEditor/monaco-yql-languages/yql/yql.keywords.ts +0 -13
  256. package/src/components/MonacoEditor/monaco-yql-languages/yql/yql.ts +0 -178
  257. package/src/components/MonacoEditor/monaco-yql-languages/yql_ansi/yql_ansi.contribution.ts +0 -14
  258. package/src/components/MonacoEditor/monaco-yql-languages/yql_ansi/yql_ansi.keywords.ts +0 -45
  259. package/src/components/MonacoEditor/monaco-yql-languages/yql_ansi/yql_ansi.ts +0 -142
  260. package/src/components/NavigationActionButtons/NavigationActionButtons.tsx +0 -46
  261. package/src/components/NavigationActionButtons/index.ts +0 -2
  262. package/src/components/NavigationItemRow/NavigationItemRow.tsx +0 -28
  263. package/src/components/NavigationItemRow/index.ts +0 -2
  264. package/src/components/PathEditor/PathEditor.scss +0 -41
  265. package/src/components/PathEditor/PathEditor.stories.helpers.ts +0 -118
  266. package/src/components/PathEditor/PathEditor.stories.tsx +0 -57
  267. package/src/components/PathEditor/PathEditor.tsx +0 -380
  268. package/src/components/PathEditor/helpers/suggestions.ts +0 -40
  269. package/src/components/PathEditor/i18n/dicts.ts +0 -4
  270. package/src/components/PathEditor/i18n/en.json +0 -4
  271. package/src/components/PathEditor/i18n/index.ts +0 -5
  272. package/src/components/PathEditor/i18n/ru.json +0 -4
  273. package/src/components/PathEditor/index.ts +0 -2
  274. package/src/components/QueryDuration/QueryDuration.scss +0 -6
  275. package/src/components/QueryDuration/QueryDuration.stories.tsx +0 -40
  276. package/src/components/QueryDuration/QueryDuration.tsx +0 -21
  277. package/src/components/QueryDuration/index.ts +0 -1
  278. package/src/components/QueryDuration/useQueryDuration.ts +0 -34
  279. package/src/components/QueryResultsTable/QueryResultsTable.scss +0 -65
  280. package/src/components/QueryResultsTable/QueryResultsTable.tsx +0 -112
  281. package/src/components/QueryResultsTable/helpers/formatQueryResultType.ts +0 -76
  282. package/src/components/QueryResultsTable/helpers/formatQueryResultValue.ts +0 -38
  283. package/src/components/QueryResultsTable/i18n/dicts.ts +0 -4
  284. package/src/components/QueryResultsTable/i18n/en.json +0 -5
  285. package/src/components/QueryResultsTable/i18n/index.ts +0 -4
  286. package/src/components/QueryResultsTable/i18n/ru.json +0 -5
  287. package/src/components/QueryResultsTable/index.ts +0 -3
  288. package/src/components/QueryResultsTable/internal/QueryResultCell.tsx +0 -63
  289. package/src/components/QueryStatusIcon/QueryStatusIcon.scss +0 -17
  290. package/src/components/QueryStatusIcon/QueryStatusIcon.stories.tsx +0 -50
  291. package/src/components/QueryStatusIcon/QueryStatusIcon.tsx +0 -37
  292. package/src/components/QueryStatusIcon/index.ts +0 -1
  293. package/src/components/RowActionsMenu/RowActionsMenu.tsx +0 -47
  294. package/src/components/RowActionsMenu/index.ts +0 -2
  295. package/src/components/RowLink/RowLink.scss +0 -8
  296. package/src/components/RowLink/RowLink.tsx +0 -23
  297. package/src/components/RowLink/index.ts +0 -2
  298. package/src/components/SearchRowLayout/SearchRowLayout.scss +0 -18
  299. package/src/components/SearchRowLayout/SearchRowLayout.tsx +0 -45
  300. package/src/components/SearchRowLayout/helpers/fitQueryToVisibleLines.ts +0 -10
  301. package/src/components/SearchRowLayout/helpers/monacoConfig.ts +0 -25
  302. package/src/components/SearchRowLayout/index.ts +0 -2
  303. package/src/components/SearchWithButtons/SearchWithButtons.scss +0 -10
  304. package/src/components/SearchWithButtons/SearchWithButtons.stories.tsx +0 -107
  305. package/src/components/SearchWithButtons/SearchWithButtons.tsx +0 -56
  306. package/src/components/SearchWithButtons/index.ts +0 -2
  307. package/src/components/SimpleForm/CheckboxGroupField.tsx +0 -53
  308. package/src/components/SimpleForm/RangeDatePickerField.tsx +0 -50
  309. package/src/components/SimpleForm/SelectField.tsx +0 -24
  310. package/src/components/SimpleForm/SimpleForm.stories.tsx +0 -115
  311. package/src/components/SimpleForm/SimpleForm.tsx +0 -65
  312. package/src/components/SimpleForm/SwitchField.tsx +0 -23
  313. package/src/components/SimpleForm/helpers/controlsRegistry.ts +0 -24
  314. package/src/components/SimpleForm/helpers/getInitialValues.ts +0 -10
  315. package/src/components/SimpleForm/helpers/index.ts +0 -2
  316. package/src/components/SimpleForm/index.ts +0 -7
  317. package/src/components/SkeletonRows/SkeletonRows.tsx +0 -24
  318. package/src/components/SkeletonRows/index.ts +0 -2
  319. package/src/components/index.ts +0 -71
  320. package/src/constants/query.ts +0 -10
  321. package/src/constants/row.ts +0 -2
  322. package/src/helpers/buildColumnsFromKeys.ts +0 -17
  323. package/src/helpers/createUuid.ts +0 -3
  324. package/src/helpers/getDefaultNavigationIcon.ts +0 -33
  325. package/src/helpers/getListKey.ts +0 -12
  326. package/src/helpers/getParentPath.ts +0 -10
  327. package/src/helpers/isEmptyValue.ts +0 -2
  328. package/src/helpers/isFieldVisible.ts +0 -20
  329. package/src/helpers/isObjectEqual.ts +0 -15
  330. package/src/helpers/time.ts +0 -29
  331. package/src/helpers/useDebouncedValue.ts +0 -14
  332. package/src/helpers/useLoadMoreSentinel.ts +0 -31
  333. package/src/helpers/useToggle.ts +0 -11
  334. package/src/helpers/useVisibleColumns.ts +0 -26
  335. package/src/i18n/index.ts +0 -26
  336. package/src/index.ts +0 -12
  337. package/src/modules/Attachments/Attachments.scss +0 -10
  338. package/src/modules/Attachments/Attachments.stories.tsx +0 -112
  339. package/src/modules/Attachments/Attachments.tsx +0 -336
  340. package/src/modules/Attachments/i18n/dicts.ts +0 -4
  341. package/src/modules/Attachments/i18n/en.json +0 -5
  342. package/src/modules/Attachments/i18n/index.ts +0 -5
  343. package/src/modules/Attachments/i18n/ru.json +0 -5
  344. package/src/modules/Attachments/index.ts +0 -2
  345. package/src/modules/ChartEditor/ChartEditor.scss +0 -12
  346. package/src/modules/ChartEditor/ChartEditor.tsx +0 -116
  347. package/src/modules/ChartEditor/i18n/dicts.ts +0 -4
  348. package/src/modules/ChartEditor/i18n/en.json +0 -3
  349. package/src/modules/ChartEditor/i18n/index.ts +0 -5
  350. package/src/modules/ChartEditor/i18n/ru.json +0 -3
  351. package/src/modules/ChartEditor/index.ts +0 -2
  352. package/src/modules/ChartEditor/story/ChartEditor.stories.tsx +0 -186
  353. package/src/modules/ChartEditor/story/mockData.ts +0 -222
  354. package/src/modules/ChartEditor/types.ts +0 -18
  355. package/src/modules/ClustersList/ClustersList.scss +0 -11
  356. package/src/modules/ClustersList/ClustersList.tsx +0 -49
  357. package/src/modules/ClustersList/index.ts +0 -2
  358. package/src/modules/HistoryComparisonActions/HistoryComparisonActions.scss +0 -4
  359. package/src/modules/HistoryComparisonActions/HistoryComparisonActions.tsx +0 -42
  360. package/src/modules/HistoryComparisonActions/index.ts +0 -2
  361. package/src/modules/HistoryHeader/HistoryHeader.stories.tsx +0 -47
  362. package/src/modules/HistoryHeader/HistoryHeader.tsx +0 -58
  363. package/src/modules/HistoryHeader/index.ts +0 -1
  364. package/src/modules/HistoryHeader/internal/FullSearchToggleButton.tsx +0 -16
  365. package/src/modules/HistoryLayout/HistoryLayout.scss +0 -7
  366. package/src/modules/HistoryLayout/HistoryLayout.tsx +0 -43
  367. package/src/modules/HistoryLayout/index.ts +0 -2
  368. package/src/modules/HistoryRow/HistoryRow.scss +0 -32
  369. package/src/modules/HistoryRow/HistoryRow.stories.tsx +0 -91
  370. package/src/modules/HistoryRow/HistoryRow.tsx +0 -77
  371. package/src/modules/HistoryRow/index.ts +0 -1
  372. package/src/modules/HistorySearchRow/HistorySearchRow.scss +0 -13
  373. package/src/modules/HistorySearchRow/HistorySearchRow.stories.tsx +0 -52
  374. package/src/modules/HistorySearchRow/HistorySearchRow.tsx +0 -62
  375. package/src/modules/HistorySearchRow/helpers/resolveMonacoLanguage.ts +0 -19
  376. package/src/modules/HistorySearchRow/index.ts +0 -1
  377. package/src/modules/NavigationDetail/NavigationDetail.scss +0 -13
  378. package/src/modules/NavigationDetail/NavigationDetail.tsx +0 -121
  379. package/src/modules/NavigationDetail/helpers/getInitialTab.ts +0 -9
  380. package/src/modules/NavigationDetail/helpers/getVisibleTabs.ts +0 -5
  381. package/src/modules/NavigationDetail/index.ts +0 -2
  382. package/src/modules/NavigationDetail/internal/NavigationDetailTabs.tsx +0 -32
  383. package/src/modules/NavigationHeader/NavigationHeader.stories.tsx +0 -118
  384. package/src/modules/NavigationHeader/NavigationHeader.tsx +0 -33
  385. package/src/modules/NavigationHeader/index.ts +0 -2
  386. package/src/modules/NavigationItemsList/NavigationItemsList.scss +0 -65
  387. package/src/modules/NavigationItemsList/NavigationItemsList.tsx +0 -92
  388. package/src/modules/NavigationItemsList/index.ts +0 -2
  389. package/src/modules/NavigationItemsList/internal/NavigationItemsListEmptyState.tsx +0 -45
  390. package/src/modules/NavigationItemsList/internal/NavigationItemsListHeader.scss +0 -6
  391. package/src/modules/NavigationItemsList/internal/NavigationItemsListHeader.tsx +0 -54
  392. package/src/modules/NavigationItemsList/internal/useParentRow.ts +0 -23
  393. package/src/modules/NavigationMeta/NavigationMeta.scss +0 -25
  394. package/src/modules/NavigationMeta/NavigationMeta.tsx +0 -81
  395. package/src/modules/NavigationMeta/helpers/buildMetaGroups.tsx +0 -27
  396. package/src/modules/NavigationMeta/i18n/dicts.ts +0 -4
  397. package/src/modules/NavigationMeta/i18n/en.json +0 -4
  398. package/src/modules/NavigationMeta/i18n/index.ts +0 -5
  399. package/src/modules/NavigationMeta/i18n/ru.json +0 -4
  400. package/src/modules/NavigationMeta/index.ts +0 -3
  401. package/src/modules/NavigationMeta/story/NavigationMeta.stories.tsx +0 -80
  402. package/src/modules/NavigationMeta/story/mockData.ts +0 -22
  403. package/src/modules/NavigationPreview/NavigationPreview.scss +0 -32
  404. package/src/modules/NavigationPreview/NavigationPreview.tsx +0 -155
  405. package/src/modules/NavigationPreview/helpers/buildPreviewColumns.tsx +0 -11
  406. package/src/modules/NavigationPreview/helpers/filterPreviewRows.ts +0 -29
  407. package/src/modules/NavigationPreview/i18n/dicts.ts +0 -4
  408. package/src/modules/NavigationPreview/i18n/en.json +0 -3
  409. package/src/modules/NavigationPreview/i18n/index.ts +0 -5
  410. package/src/modules/NavigationPreview/i18n/ru.json +0 -3
  411. package/src/modules/NavigationPreview/index.ts +0 -4
  412. package/src/modules/NavigationPreview/story/NavigationPreview.stories.tsx +0 -123
  413. package/src/modules/NavigationPreview/story/mockData.ts +0 -14
  414. package/src/modules/NavigationSchema/NavigationSchema.scss +0 -24
  415. package/src/modules/NavigationSchema/NavigationSchema.tsx +0 -118
  416. package/src/modules/NavigationSchema/helpers/buildSchemaColumns.tsx +0 -54
  417. package/src/modules/NavigationSchema/helpers/filterSchema.ts +0 -18
  418. package/src/modules/NavigationSchema/i18n/dicts.ts +0 -4
  419. package/src/modules/NavigationSchema/i18n/en.json +0 -9
  420. package/src/modules/NavigationSchema/i18n/index.ts +0 -5
  421. package/src/modules/NavigationSchema/i18n/ru.json +0 -9
  422. package/src/modules/NavigationSchema/index.ts +0 -4
  423. package/src/modules/NavigationSchema/story/NavigationSchema.stories.tsx +0 -112
  424. package/src/modules/NavigationSchema/story/mockData.ts +0 -9
  425. package/src/modules/NavigationView/NavigationView.scss +0 -44
  426. package/src/modules/NavigationView/NavigationView.tsx +0 -60
  427. package/src/modules/NavigationView/helpers/buildViewColumns.tsx +0 -11
  428. package/src/modules/NavigationView/i18n/dicts.ts +0 -4
  429. package/src/modules/NavigationView/i18n/en.json +0 -3
  430. package/src/modules/NavigationView/i18n/index.ts +0 -5
  431. package/src/modules/NavigationView/i18n/ru.json +0 -3
  432. package/src/modules/NavigationView/index.ts +0 -3
  433. package/src/modules/NavigationView/internal/NavigationViewSectionItem.tsx +0 -70
  434. package/src/modules/NavigationView/story/NavigationView.stories.tsx +0 -110
  435. package/src/modules/NavigationView/story/mockData.ts +0 -35
  436. package/src/modules/QueriesList/QueriesList.scss +0 -10
  437. package/src/modules/QueriesList/QueriesList.tsx +0 -98
  438. package/src/modules/QueriesList/index.ts +0 -2
  439. package/src/modules/QueryStatistics/QueryStatistics.scss +0 -3
  440. package/src/modules/QueryStatistics/QueryStatistics.tsx +0 -125
  441. package/src/modules/QueryStatistics/helpers.ts +0 -96
  442. package/src/modules/QueryStatistics/i18n/dicts.ts +0 -4
  443. package/src/modules/QueryStatistics/i18n/en.json +0 -16
  444. package/src/modules/QueryStatistics/i18n/index.ts +0 -4
  445. package/src/modules/QueryStatistics/i18n/ru.json +0 -16
  446. package/src/modules/QueryStatistics/index.ts +0 -13
  447. package/src/modules/QueryStatistics/internal/MetricCell.scss +0 -12
  448. package/src/modules/QueryStatistics/internal/MetricCell.tsx +0 -99
  449. package/src/modules/QueryStatistics/internal/QueryStatisticsTable.scss +0 -8
  450. package/src/modules/QueryStatistics/internal/QueryStatisticsTable.tsx +0 -135
  451. package/src/modules/QueryStatistics/internal/QueryStatisticsToolbar.scss +0 -1
  452. package/src/modules/QueryStatistics/internal/QueryStatisticsToolbar.tsx +0 -61
  453. package/src/modules/QueryStatistics/story/QueryStatistics.stories.tsx +0 -71
  454. package/src/modules/RowsList/RowsList.scss +0 -5
  455. package/src/modules/RowsList/RowsList.tsx +0 -96
  456. package/src/modules/RowsList/helpers/prepareRowData.ts +0 -61
  457. package/src/modules/RowsList/index.ts +0 -2
  458. package/src/modules/SavedQueryRow/SavedQueryRow.scss +0 -20
  459. package/src/modules/SavedQueryRow/SavedQueryRow.tsx +0 -60
  460. package/src/modules/SavedQueryRow/index.ts +0 -2
  461. package/src/modules/SavedQuerySearchRow/SavedQuerySearchRow.scss +0 -15
  462. package/src/modules/SavedQuerySearchRow/SavedQuerySearchRow.tsx +0 -58
  463. package/src/modules/SavedQuerySearchRow/index.ts +0 -2
  464. package/src/modules/TutorialRow/TutorialRow.scss +0 -9
  465. package/src/modules/TutorialRow/TutorialRow.stories.tsx +0 -43
  466. package/src/modules/TutorialRow/TutorialRow.tsx +0 -25
  467. package/src/modules/TutorialRow/index.ts +0 -2
  468. package/src/modules/TutorialSearchRow/TutorialSearchRow.scss +0 -5
  469. package/src/modules/TutorialSearchRow/TutorialSearchRow.stories.tsx +0 -44
  470. package/src/modules/TutorialSearchRow/TutorialSearchRow.tsx +0 -33
  471. package/src/modules/TutorialSearchRow/index.ts +0 -2
  472. package/src/modules/index.ts +0 -50
  473. package/src/types/declarations.d.ts +0 -25
  474. package/src/types/errorTree.ts +0 -30
  475. package/src/types/forms.ts +0 -33
  476. package/src/types/history.ts +0 -12
  477. package/src/types/navigation.ts +0 -209
  478. package/src/types/pathEditor.ts +0 -29
  479. package/src/types/queryList.ts +0 -92
  480. package/src/types/queryResults.ts +0 -48
  481. package/src/types/queryStatistics.ts +0 -67
  482. package/src/types/savedQueries.ts +0 -7
  483. package/src/types/tutorial.ts +0 -3
  484. package/src/widgets/DashboardCharts/DashboardCharts.scss +0 -25
  485. package/src/widgets/DashboardCharts/DashboardCharts.tsx +0 -214
  486. package/src/widgets/DashboardCharts/helpers/chartTypeIcons.ts +0 -33
  487. package/src/widgets/DashboardCharts/i18n/dicts.ts +0 -4
  488. package/src/widgets/DashboardCharts/i18n/en.json +0 -7
  489. package/src/widgets/DashboardCharts/i18n/index.ts +0 -5
  490. package/src/widgets/DashboardCharts/i18n/ru.json +0 -7
  491. package/src/widgets/DashboardCharts/index.ts +0 -2
  492. package/src/widgets/DashboardCharts/internal/EmptyDashboardPlaceholder.tsx +0 -26
  493. package/src/widgets/DashboardCharts/story/DashboardCharts.stories.scss +0 -6
  494. package/src/widgets/DashboardCharts/story/DashboardCharts.stories.tsx +0 -77
  495. package/src/widgets/DashboardCharts/story/mockData.ts +0 -419
  496. package/src/widgets/DashboardCharts/types.ts +0 -30
  497. package/src/widgets/QueriesHistory/QueriesHistory.scss +0 -3
  498. package/src/widgets/QueriesHistory/QueriesHistory.stories.tsx +0 -276
  499. package/src/widgets/QueriesHistory/QueriesHistory.tsx +0 -71
  500. package/src/widgets/QueriesHistory/i18n/dicts.ts +0 -4
  501. package/src/widgets/QueriesHistory/i18n/en.json +0 -3
  502. package/src/widgets/QueriesHistory/i18n/index.ts +0 -5
  503. package/src/widgets/QueriesHistory/i18n/ru.json +0 -3
  504. package/src/widgets/QueriesHistory/index.ts +0 -2
  505. package/src/widgets/QueriesHistory/internal/HistoryRowContent.tsx +0 -22
  506. package/src/widgets/QueriesNavigation/QueriesNavigation.scss +0 -9
  507. package/src/widgets/QueriesNavigation/QueriesNavigation.stories.tsx +0 -409
  508. package/src/widgets/QueriesNavigation/QueriesNavigation.tsx +0 -195
  509. package/src/widgets/QueriesNavigation/helpers/createEmptyDetailConfig.tsx +0 -8
  510. package/src/widgets/QueriesNavigation/helpers/createNavigationDetailResolver.ts +0 -28
  511. package/src/widgets/QueriesNavigation/helpers/createTableDetailConfig.tsx +0 -127
  512. package/src/widgets/QueriesNavigation/i18n/dicts.ts +0 -4
  513. package/src/widgets/QueriesNavigation/i18n/en.json +0 -10
  514. package/src/widgets/QueriesNavigation/i18n/index.ts +0 -5
  515. package/src/widgets/QueriesNavigation/i18n/ru.json +0 -10
  516. package/src/widgets/QueriesNavigation/index.ts +0 -13
  517. package/src/widgets/QueryResults/QueryResults.scss +0 -25
  518. package/src/widgets/QueryResults/QueryResults.stories.tsx +0 -155
  519. package/src/widgets/QueryResults/QueryResults.tsx +0 -121
  520. package/src/widgets/QueryResults/i18n/dicts.ts +0 -4
  521. package/src/widgets/QueryResults/i18n/en.json +0 -10
  522. package/src/widgets/QueryResults/i18n/index.ts +0 -4
  523. package/src/widgets/QueryResults/i18n/ru.json +0 -12
  524. package/src/widgets/QueryResults/index.ts +0 -2
  525. package/src/widgets/QueryResults/internal/QueryResultsSchema.tsx +0 -41
  526. package/src/widgets/SavedQueries/SavedQueries.scss +0 -3
  527. package/src/widgets/SavedQueries/SavedQueries.stories.tsx +0 -192
  528. package/src/widgets/SavedQueries/SavedQueries.tsx +0 -77
  529. package/src/widgets/SavedQueries/SavedQueryRowContent.tsx +0 -26
  530. package/src/widgets/SavedQueries/i18n/dicts.ts +0 -4
  531. package/src/widgets/SavedQueries/i18n/en.json +0 -3
  532. package/src/widgets/SavedQueries/i18n/index.ts +0 -4
  533. package/src/widgets/SavedQueries/i18n/ru.json +0 -3
  534. package/src/widgets/SavedQueries/index.ts +0 -2
  535. package/src/widgets/TutorialsHistory/TutorialRowContent.tsx +0 -16
  536. package/src/widgets/TutorialsHistory/TutorialsHistory.scss +0 -3
  537. package/src/widgets/TutorialsHistory/TutorialsHistory.stories.tsx +0 -135
  538. package/src/widgets/TutorialsHistory/TutorialsHistory.tsx +0 -63
  539. package/src/widgets/TutorialsHistory/i18n/dicts.ts +0 -4
  540. package/src/widgets/TutorialsHistory/i18n/en.json +0 -3
  541. package/src/widgets/TutorialsHistory/i18n/index.ts +0 -5
  542. package/src/widgets/TutorialsHistory/i18n/ru.json +0 -3
  543. package/src/widgets/TutorialsHistory/index.ts +0 -2
  544. package/src/widgets/index.ts +0 -20
  545. package/tsconfig.json +0 -20
  546. package/tsconfig.publish.json +0 -11
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_actions","_SavedQueries","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","QUERY","BASE_ITEMS","id","title","savedAt","engine","author","query","height","filterFields","type","initialValue","items","fields","meta","component","SavedQueries","tags","parameters","layout","_default","exports","SavedQueriesStory","_useState","useState","_useState2","_slicedToArray","setItems","_useState3","value","fullSearch","_useState4","search","setSearch","_useState5","_useState6","visibleFields","setVisibleFields","_useState7","_useState8","comparedRowIds","setComparedRowIds","_useState9","_useState0","editingRowId","setEditingRowId","filteredItems","useMemo","toLowerCase","filter","item","_item$query","includes","updateTitle","currentItems","map","currentItem","_objectSpread","undefined","_jsx","style","width","children","hasClear","onUpdate","onApply","action","onReset","onChange","editing","rowId","onSubmit","onCancel","comparison","enabled","Boolean","length","selected","currentIds","concat","_toConsumableArray","slice","onCompare","getRowActions","text","onClick","theme","CustomAuthorStory","team","_useState1","_useState10","renderAuthor","Text","color","EmptyStory","_useState11","_useState12","Default","render","CustomAuthor","Empty"],"sources":["SavedQueries.stories.tsx"],"sourcesContent":["import React, {useMemo, useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Text} from '@gravity-ui/uikit';\nimport {action} from 'storybook/actions';\nimport {\n QueryListFieldKey,\n QueryListFilterConfig,\n QueryListItem,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {SavedQuery} from '../../types/savedQueries';\nimport {SavedQueries} from './SavedQueries';\n\nconst QUERY = `SELECT\n session_id,\n COUNT(*) AS sessions_count\nFROM visits\nGROUP BY session_id;`;\n\nconst BASE_ITEMS: QueryListItem<SavedQuery>[] = [\n {\n id: 1,\n title: 'New Query',\n savedAt: '2026-04-29T12:00:00.000Z',\n engine: 'SQL',\n author: 'Anna Petrova',\n query: QUERY,\n height: 52,\n },\n {\n id: 2,\n title: 'Daily conversion report',\n savedAt: '2026-04-29T11:00:00.000Z',\n engine: 'YQL',\n author: 'Pavel Sidorov',\n query: QUERY,\n height: 52,\n },\n {\n id: 3,\n title: 'Product funnel',\n savedAt: '2026-04-28T09:00:00.000Z',\n engine: 'SQL',\n author: 'Maria Volkova',\n query: 'SELECT 1;',\n height: 52,\n },\n];\n\nconst filterFields: QueryListFilterConfig['fields'] = [\n {id: 'onlyMine', type: 'switch', title: 'My queries only', initialValue: true},\n {id: 'range', type: 'rangeDatePicker', title: 'Period'},\n {\n id: 'engine',\n type: 'checkboxGroup',\n title: 'Engine',\n initialValue: [],\n items: [\n {id: 'yql', title: 'YQL'},\n {id: 'sql', title: 'SQL'},\n ],\n },\n];\n\nconst fields: QueryListVisibleFieldsConfig<SavedQuery>['fields'] = [\n {id: 'savedAt', title: 'Saved date'},\n {id: 'engine', title: 'Engine'},\n {id: 'author', title: 'Author'},\n];\n\nconst meta: Meta<typeof SavedQueries> = {\n title: 'Widgets/SavedQueries',\n component: SavedQueries,\n tags: ['autodocs'],\n parameters: {layout: 'padded'},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof SavedQueries>;\n\nconst SavedQueriesStory = () => {\n const [items, setItems] = useState(BASE_ITEMS);\n const [search, setSearch] = useState({value: '', fullSearch: false});\n const [visibleFields, setVisibleFields] = useState<QueryListFieldKey<SavedQuery>[]>([\n 'savedAt',\n 'engine',\n 'author',\n ]);\n const [comparedRowIds, setComparedRowIds] = useState<number[]>([]);\n const [editingRowId, setEditingRowId] = useState<number>();\n\n const filteredItems = useMemo(() => {\n if (!search.value) return items;\n\n const value = search.value.toLowerCase();\n return items.filter((item) => {\n if ('header' in item) return false;\n\n return search.fullSearch\n ? item.title.toLowerCase().includes(value) ||\n item.query?.toLowerCase().includes(value)\n : item.title.toLowerCase().includes(value);\n });\n }, [items, search]);\n\n const updateTitle = (item: SavedQuery, title: string) => {\n setItems((currentItems) =>\n currentItems.map((currentItem) =>\n 'id' in currentItem && currentItem.id === item.id\n ? {...currentItem, title}\n : currentItem,\n ),\n );\n setEditingRowId(undefined);\n };\n\n return (\n <div style={{width: 360, height: 560}}>\n <SavedQueries\n items={filteredItems}\n search={{...search, hasClear: true, onUpdate: setSearch}}\n filter={{\n fields: filterFields,\n onApply: action('onFilterApply'),\n onReset: action('onFilterReset'),\n }}\n visibleFields={{value: visibleFields, fields, onChange: setVisibleFields}}\n editing={{\n rowId: editingRowId,\n onSubmit: updateTitle,\n onCancel: () => setEditingRowId(undefined),\n }}\n comparison={{\n enabled: Boolean(comparedRowIds.length),\n comparedRowIds,\n onChange: (item, selected) => {\n setComparedRowIds((currentIds) =>\n selected\n ? [...currentIds.filter((id) => id !== item.id).slice(-1), item.id]\n : currentIds.filter((id) => id !== item.id),\n );\n },\n onCancel: () => setComparedRowIds([]),\n onCompare: () => action('onCompare')(comparedRowIds),\n }}\n getRowActions={(item) => [\n {text: 'Copy to', onClick: () => action('onCopyTo')(item)},\n {text: 'Show operations', onClick: () => action('onShowOperations')(item)},\n {text: 'Edit', onClick: () => setEditingRowId(item.id)},\n {\n text: 'Compare with baseline',\n onClick: () => setComparedRowIds([item.id]),\n },\n {text: 'Delete', theme: 'danger', onClick: () => action('onDelete')(item)},\n ]}\n />\n </div>\n );\n};\n\ntype ExtendedSavedQuery = SavedQuery & {team: string};\n\nconst CustomAuthorStory = () => {\n const items: QueryListItem<ExtendedSavedQuery>[] = BASE_ITEMS.map((item) =>\n 'header' in item ? item : {...item, team: 'Analytics'},\n );\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 360, height: 280}}>\n <SavedQueries\n items={items}\n search={{...search, hasClear: true, onUpdate: setSearch}}\n renderAuthor={(item) => <Text color=\"complementary\">{item.team}</Text>}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 360, height: 280}}>\n <SavedQueries items={[]} search={{...search, hasClear: true, onUpdate: setSearch}} />\n </div>\n );\n};\n\nexport const Default: Story = {render: () => <SavedQueriesStory />};\nexport const CustomAuthor: Story = {render: () => <CustomAuthorStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikit","_actions","_SavedQueries","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","QUERY","BASE_ITEMS","id","title","savedAt","engine","author","query","height","filterFields","type","initialValue","items","fields","meta","component","SavedQueries","tags","parameters","layout","_default","exports","SavedQueriesStory","_useState","useState","_useState2","_slicedToArray","setItems","_useState3","value","fullSearch","_useState4","search","setSearch","_useState5","_useState6","visibleFields","setVisibleFields","_useState7","_useState8","comparedRowIds","setComparedRowIds","_useState9","_useState0","editingRowId","setEditingRowId","filteredItems","useMemo","toLowerCase","filter","item","_item$query","includes","updateTitle","currentItems","map","currentItem","_objectSpread","undefined","_jsx","style","width","children","hasClear","onUpdate","onApply","action","onReset","onChange","editing","rowId","onSubmit","onCancel","comparison","enabled","Boolean","length","selected","currentIds","concat","_toConsumableArray","slice","onCompare","getRowActions","text","onClick","theme","CustomAuthorStory","team","_useState1","_useState10","renderAuthor","Text","color","EmptyStory","_useState11","_useState12","Default","render","CustomAuthor","Empty"],"sources":["SavedQueries.stories.tsx"],"sourcesContent":["import React, {useMemo, useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Text} from '@gravity-ui/uikit';\nimport {action} from 'storybook/actions';\nimport {\n QueryListFieldKey,\n QueryListFilterConfig,\n QueryListItem,\n QueryListVisibleFieldsConfig,\n} from '../../types/queryList';\nimport {SavedQuery} from '../../types/savedQueries';\nimport {SavedQueries} from './SavedQueries';\n\nconst QUERY = `SELECT\n session_id,\n COUNT(*) AS sessions_count\nFROM visits\nGROUP BY session_id;`;\n\nconst BASE_ITEMS: QueryListItem<SavedQuery>[] = [\n {\n id: 1,\n title: 'New Query',\n savedAt: '2026-04-29T12:00:00.000Z',\n engine: 'SQL',\n author: 'Anna Petrova',\n query: QUERY,\n height: 52,\n },\n {\n id: 2,\n title: 'Daily conversion report',\n savedAt: '2026-04-29T11:00:00.000Z',\n engine: 'YQL',\n author: 'Pavel Sidorov',\n query: QUERY,\n height: 52,\n },\n {\n id: 3,\n title: 'Product funnel',\n savedAt: '2026-04-28T09:00:00.000Z',\n engine: 'SQL',\n author: 'Maria Volkova',\n query: 'SELECT 1;',\n height: 52,\n },\n];\n\nconst filterFields: QueryListFilterConfig['fields'] = [\n {id: 'onlyMine', type: 'switch', title: 'My queries only', initialValue: true},\n {id: 'range', type: 'rangeDatePicker', title: 'Period'},\n {\n id: 'engine',\n type: 'checkboxGroup',\n title: 'Engine',\n initialValue: [],\n items: [\n {id: 'yql', title: 'YQL'},\n {id: 'sql', title: 'SQL'},\n ],\n },\n];\n\nconst fields: QueryListVisibleFieldsConfig<SavedQuery>['fields'] = [\n {id: 'savedAt', title: 'Saved date'},\n {id: 'engine', title: 'Engine'},\n {id: 'author', title: 'Author'},\n];\n\nconst meta: Meta<typeof SavedQueries> = {\n title: 'Widgets/SavedQueries',\n component: SavedQueries,\n tags: ['autodocs'],\n parameters: {layout: 'padded'},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof SavedQueries>;\n\nconst SavedQueriesStory = () => {\n const [items, setItems] = useState(BASE_ITEMS);\n const [search, setSearch] = useState({value: '', fullSearch: false});\n const [visibleFields, setVisibleFields] = useState<QueryListFieldKey<SavedQuery>[]>([\n 'savedAt',\n 'engine',\n 'author',\n ]);\n const [comparedRowIds, setComparedRowIds] = useState<(number | string)[]>([]);\n const [editingRowId, setEditingRowId] = useState<number | string>();\n\n const filteredItems = useMemo(() => {\n if (!search.value) return items;\n\n const value = search.value.toLowerCase();\n return items.filter((item) => {\n if ('header' in item) return false;\n\n return search.fullSearch\n ? item.title.toLowerCase().includes(value) ||\n item.query?.toLowerCase().includes(value)\n : item.title.toLowerCase().includes(value);\n });\n }, [items, search]);\n\n const updateTitle = (item: SavedQuery, title: string) => {\n setItems((currentItems) =>\n currentItems.map((currentItem) =>\n 'id' in currentItem && currentItem.id === item.id\n ? {...currentItem, title}\n : currentItem,\n ),\n );\n setEditingRowId(undefined);\n };\n\n return (\n <div style={{width: 360, height: 560}}>\n <SavedQueries\n items={filteredItems}\n search={{...search, hasClear: true, onUpdate: setSearch}}\n filter={{\n fields: filterFields,\n onApply: action('onFilterApply'),\n onReset: action('onFilterReset'),\n }}\n visibleFields={{value: visibleFields, fields, onChange: setVisibleFields}}\n editing={{\n rowId: editingRowId,\n onSubmit: updateTitle,\n onCancel: () => setEditingRowId(undefined),\n }}\n comparison={{\n enabled: Boolean(comparedRowIds.length),\n comparedRowIds,\n onChange: (item, selected) => {\n setComparedRowIds((currentIds) =>\n selected\n ? [...currentIds.filter((id) => id !== item.id).slice(-1), item.id]\n : currentIds.filter((id) => id !== item.id),\n );\n },\n onCancel: () => setComparedRowIds([]),\n onCompare: () => action('onCompare')(comparedRowIds),\n }}\n getRowActions={(item) => [\n {text: 'Copy to', onClick: () => action('onCopyTo')(item)},\n {text: 'Show operations', onClick: () => action('onShowOperations')(item)},\n {text: 'Edit', onClick: () => setEditingRowId(item.id)},\n {\n text: 'Compare with baseline',\n onClick: () => setComparedRowIds([item.id]),\n },\n {text: 'Delete', theme: 'danger', onClick: () => action('onDelete')(item)},\n ]}\n />\n </div>\n );\n};\n\ntype ExtendedSavedQuery = SavedQuery & {team: string};\n\nconst CustomAuthorStory = () => {\n const items: QueryListItem<ExtendedSavedQuery>[] = BASE_ITEMS.map((item) =>\n 'header' in item ? item : {...item, team: 'Analytics'},\n );\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 360, height: 280}}>\n <SavedQueries\n items={items}\n search={{...search, hasClear: true, onUpdate: setSearch}}\n renderAuthor={(item) => <Text color=\"complementary\">{item.team}</Text>}\n />\n </div>\n );\n};\n\nconst EmptyStory = () => {\n const [search, setSearch] = useState({value: '', fullSearch: false});\n\n return (\n <div style={{width: 360, height: 280}}>\n <SavedQueries items={[]} search={{...search, hasClear: true, onUpdate: setSearch}} />\n </div>\n );\n};\n\nexport const Default: Story = {render: () => <SavedQueriesStory />};\nexport const CustomAuthor: Story = {render: () => <CustomAuthorStory />};\nexport const Empty: Story = {render: () => <EmptyStory />};\n"],"mappings":"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","ignoreList":[]}
@@ -2,7 +2,7 @@ import React, { ReactNode } from 'react';
2
2
  import { ListProps } from '@gravity-ui/uikit';
3
3
  import { AttachmentItemProps } from './internal/AttachmentItem/AttachmentItem';
4
4
  import './AttachmentList.scss';
5
- export type AttachmentListProps = Omit<ListProps, 'items' | 'selectedItemIndex' | 'virtualized'> & {
5
+ export type AttachmentListProps<T extends AttachmentItemProps['attachment'] = AttachmentItemProps['attachment']> = Omit<ListProps<T>, 'items' | 'selectedItemIndex' | 'virtualized'> & {
6
6
  attachments: AttachmentItemProps['attachment'][];
7
7
  className?: string;
8
8
  onDelete?: (attachment: AttachmentItemProps['attachment']) => void;
@@ -14,4 +14,4 @@ export type AttachmentListProps = Omit<ListProps, 'items' | 'selectedItemIndex'
14
14
  editingIds?: string[];
15
15
  isDeleted?: boolean;
16
16
  };
17
- export declare const AttachmentList: ({ attachments, onEdit, onDelete, onRevert, wasAddedIds, wasEditedIds, editingIds, renderEditForm, className, isDeleted, ...listProps }: AttachmentListProps) => React.JSX.Element;
17
+ export declare const AttachmentList: ({ attachments, onEdit, onDelete, onRevert, wasAddedIds, wasEditedIds, editingIds, renderEditForm, className, isDeleted, onItemClick, ...listProps }: AttachmentListProps) => React.JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["attachments", "onEdit", "onDelete", "onRevert", "wasAddedIds", "wasEditedIds", "editingIds", "renderEditForm", "className", "isDeleted"];
3
+ var _excluded = ["attachments", "onEdit", "onDelete", "onRevert", "wasAddedIds", "wasEditedIds", "editingIds", "renderEditForm", "className", "isDeleted", "onItemClick"];
4
4
  import "core-js/modules/es.array.iterator.js";
5
5
  import "core-js/modules/es.object.to-string.js";
6
6
  import "core-js/modules/es.set.js";
@@ -16,6 +16,7 @@ import "core-js/modules/web.dom-collections.iterator.js";
16
16
  import React, { useMemo } from 'react';
17
17
  import { Flex, List } from '@gravity-ui/uikit';
18
18
  import { AttachmentItem } from "./internal/AttachmentItem/AttachmentItem";
19
+ import { isInteractiveTarget } from "./helpers/isInteractiveTarget";
19
20
  import "./AttachmentList.css";
20
21
  import { jsx as _jsx } from "react/jsx-runtime";
21
22
  export var AttachmentList = function AttachmentList(_ref) {
@@ -29,6 +30,7 @@ export var AttachmentList = function AttachmentList(_ref) {
29
30
  renderEditForm = _ref.renderEditForm,
30
31
  className = _ref.className,
31
32
  isDeleted = _ref.isDeleted,
33
+ onItemClick = _ref.onItemClick,
32
34
  listProps = _objectWithoutProperties(_ref, _excluded);
33
35
  var addedIdsSet = useMemo(function () {
34
36
  return new Set(wasAddedIds);
@@ -39,6 +41,11 @@ export var AttachmentList = function AttachmentList(_ref) {
39
41
  var editingIdsSet = useMemo(function () {
40
42
  return new Set(editingIds);
41
43
  }, [editingIds]);
44
+ var handleItemClick = function handleItemClick(item, index, fromKeyboard, event) {
45
+ if (editingIdsSet.has(item.id)) return;
46
+ if (isInteractiveTarget(event === null || event === void 0 ? void 0 : event.target)) return;
47
+ onItemClick === null || onItemClick === void 0 || onItemClick(item, index, fromKeyboard, event);
48
+ };
42
49
  return /*#__PURE__*/_jsx(Flex, {
43
50
  className: className,
44
51
  width: "100%",
@@ -47,6 +54,7 @@ export var AttachmentList = function AttachmentList(_ref) {
47
54
  filterable: false,
48
55
  virtualized: false,
49
56
  items: attachments,
57
+ onItemClick: handleItemClick,
50
58
  renderItem: function renderItem(attachment) {
51
59
  if (editingIdsSet.has(attachment.id)) {
52
60
  return renderEditForm === null || renderEditForm === void 0 ? void 0 : renderEditForm(attachment);
@@ -1 +1 @@
1
- {"version":3,"names":["React","useMemo","Flex","List","AttachmentItem","jsx","_jsx","AttachmentList","_ref","attachments","onEdit","onDelete","onRevert","wasAddedIds","wasEditedIds","editingIds","renderEditForm","className","isDeleted","listProps","_objectWithoutProperties","_excluded","addedIdsSet","Set","editedIdsSet","editingIdsSet","width","height","children","_objectSpread","filterable","virtualized","items","renderItem","attachment","has","id","wasAdded","wasEdited"],"sources":["AttachmentList.tsx"],"sourcesContent":["import React, {ReactNode, useMemo} from 'react';\nimport {Flex, List, ListProps} from '@gravity-ui/uikit';\nimport {AttachmentItem, AttachmentItemProps} from './internal/AttachmentItem/AttachmentItem';\nimport './AttachmentList.scss';\n\nexport type AttachmentListProps = Omit<ListProps, 'items' | 'selectedItemIndex' | 'virtualized'> & {\n attachments: AttachmentItemProps['attachment'][];\n className?: string;\n onDelete?: (attachment: AttachmentItemProps['attachment']) => void;\n onEdit?: (attachment: AttachmentItemProps['attachment']) => void;\n onRevert?: (attachment: AttachmentItemProps['attachment']) => void;\n\n renderEditForm?: (attachment: AttachmentItemProps['attachment']) => ReactNode;\n\n wasAddedIds?: string[];\n wasEditedIds?: string[];\n\n editingIds?: string[];\n\n isDeleted?: boolean;\n};\n\nexport const AttachmentList = ({\n attachments,\n onEdit,\n onDelete,\n onRevert,\n wasAddedIds,\n wasEditedIds,\n editingIds,\n renderEditForm,\n className,\n isDeleted,\n ...listProps\n}: AttachmentListProps) => {\n const addedIdsSet = useMemo(() => new Set(wasAddedIds), [wasAddedIds]);\n const editedIdsSet = useMemo(() => new Set(wasEditedIds), [wasEditedIds]);\n const editingIdsSet = useMemo(() => new Set(editingIds), [editingIds]);\n\n return (\n <Flex className={className} width=\"100%\" height=\"100%\">\n <List<AttachmentListProps['attachments'][number]>\n filterable={false}\n virtualized={false}\n items={attachments}\n renderItem={(attachment) => {\n if (editingIdsSet.has(attachment.id)) {\n return renderEditForm?.(attachment);\n }\n\n return (\n <AttachmentItem\n attachment={attachment}\n wasAdded={addedIdsSet.has(attachment.id)}\n wasEdited={editedIdsSet.has(attachment.id)}\n onEdit={onEdit}\n onRevert={onRevert}\n onDelete={onDelete}\n isDeleted={isDeleted}\n />\n );\n }}\n {...listProps}\n />\n </Flex>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAAA,OAAOA,KAAK,IAAcC,OAAO,QAAO,OAAO;AAC/C,SAAQC,IAAI,EAAEC,IAAI,QAAkB,mBAAmB;AACvD,SAAQC,cAAc;AACtB;AAA+B,SAAAC,GAAA,IAAAC,IAAA;AAmB/B,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAYA;EAAA,IAXvBC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IACXC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;IACdC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,SAAS,GAAAV,IAAA,CAATU,SAAS;IACNC,SAAS,GAAAC,wBAAA,CAAAZ,IAAA,EAAAa,SAAA;EAEZ,IAAMC,WAAW,GAAGrB,OAAO,CAAC;IAAA,OAAM,IAAIsB,GAAG,CAACV,WAAW,CAAC;EAAA,GAAE,CAACA,WAAW,CAAC,CAAC;EACtE,IAAMW,YAAY,GAAGvB,OAAO,CAAC;IAAA,OAAM,IAAIsB,GAAG,CAACT,YAAY,CAAC;EAAA,GAAE,CAACA,YAAY,CAAC,CAAC;EACzE,IAAMW,aAAa,GAAGxB,OAAO,CAAC;IAAA,OAAM,IAAIsB,GAAG,CAACR,UAAU,CAAC;EAAA,GAAE,CAACA,UAAU,CAAC,CAAC;EAEtE,oBACIT,IAAA,CAACJ,IAAI;IAACe,SAAS,EAAEA,SAAU;IAACS,KAAK,EAAC,MAAM;IAACC,MAAM,EAAC,MAAM;IAAAC,QAAA,eAClDtB,IAAA,CAACH,IAAI,EAAA0B,aAAA;MACDC,UAAU,EAAE,KAAM;MAClBC,WAAW,EAAE,KAAM;MACnBC,KAAK,EAAEvB,WAAY;MACnBwB,UAAU,EAAE,SAAZA,UAAUA,CAAGC,UAAU,EAAK;QACxB,IAAIT,aAAa,CAACU,GAAG,CAACD,UAAU,CAACE,EAAE,CAAC,EAAE;UAClC,OAAOpB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGkB,UAAU,CAAC;QACvC;QAEA,oBACI5B,IAAA,CAACF,cAAc;UACX8B,UAAU,EAAEA,UAAW;UACvBG,QAAQ,EAAEf,WAAW,CAACa,GAAG,CAACD,UAAU,CAACE,EAAE,CAAE;UACzCE,SAAS,EAAEd,YAAY,CAACW,GAAG,CAACD,UAAU,CAACE,EAAE,CAAE;UAC3C1B,MAAM,EAAEA,MAAO;UACfE,QAAQ,EAAEA,QAAS;UACnBD,QAAQ,EAAEA,QAAS;UACnBO,SAAS,EAAEA;QAAU,CACxB,CAAC;MAEV;IAAE,GACEC,SAAS,CAChB;EAAC,CACA,CAAC;AAEf,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useMemo","Flex","List","AttachmentItem","isInteractiveTarget","jsx","_jsx","AttachmentList","_ref","attachments","onEdit","onDelete","onRevert","wasAddedIds","wasEditedIds","editingIds","renderEditForm","className","isDeleted","onItemClick","listProps","_objectWithoutProperties","_excluded","addedIdsSet","Set","editedIdsSet","editingIdsSet","handleItemClick","item","index","fromKeyboard","event","has","id","target","width","height","children","_objectSpread","filterable","virtualized","items","renderItem","attachment","wasAdded","wasEdited"],"sources":["AttachmentList.tsx"],"sourcesContent":["import React, {ReactNode, useMemo} from 'react';\nimport {Flex, List, ListProps} from '@gravity-ui/uikit';\nimport {AttachmentItem, AttachmentItemProps} from './internal/AttachmentItem/AttachmentItem';\nimport {isInteractiveTarget} from './helpers/isInteractiveTarget';\nimport './AttachmentList.scss';\n\nexport type AttachmentListProps<\n T extends AttachmentItemProps['attachment'] = AttachmentItemProps['attachment'],\n> = Omit<ListProps<T>, 'items' | 'selectedItemIndex' | 'virtualized'> & {\n attachments: AttachmentItemProps['attachment'][];\n className?: string;\n onDelete?: (attachment: AttachmentItemProps['attachment']) => void;\n onEdit?: (attachment: AttachmentItemProps['attachment']) => void;\n onRevert?: (attachment: AttachmentItemProps['attachment']) => void;\n\n renderEditForm?: (attachment: AttachmentItemProps['attachment']) => ReactNode;\n\n wasAddedIds?: string[];\n wasEditedIds?: string[];\n\n editingIds?: string[];\n\n isDeleted?: boolean;\n};\n\nexport const AttachmentList = ({\n attachments,\n onEdit,\n onDelete,\n onRevert,\n wasAddedIds,\n wasEditedIds,\n editingIds,\n renderEditForm,\n className,\n isDeleted,\n onItemClick,\n ...listProps\n}: AttachmentListProps) => {\n const addedIdsSet = useMemo(() => new Set(wasAddedIds), [wasAddedIds]);\n const editedIdsSet = useMemo(() => new Set(wasEditedIds), [wasEditedIds]);\n const editingIdsSet = useMemo(() => new Set(editingIds), [editingIds]);\n\n const handleItemClick: AttachmentListProps['onItemClick'] = (\n item,\n index,\n fromKeyboard,\n event,\n ) => {\n if (editingIdsSet.has(item.id)) return;\n if (isInteractiveTarget(event?.target)) return;\n onItemClick?.(item, index, fromKeyboard, event);\n };\n\n return (\n <Flex className={className} width=\"100%\" height=\"100%\">\n <List<AttachmentListProps['attachments'][number]>\n filterable={false}\n virtualized={false}\n items={attachments}\n onItemClick={handleItemClick}\n renderItem={(attachment) => {\n if (editingIdsSet.has(attachment.id)) {\n return renderEditForm?.(attachment);\n }\n\n return (\n <AttachmentItem\n attachment={attachment}\n wasAdded={addedIdsSet.has(attachment.id)}\n wasEdited={editedIdsSet.has(attachment.id)}\n onEdit={onEdit}\n onRevert={onRevert}\n onDelete={onDelete}\n isDeleted={isDeleted}\n />\n );\n }}\n {...listProps}\n />\n </Flex>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAAA,OAAOA,KAAK,IAAcC,OAAO,QAAO,OAAO;AAC/C,SAAQC,IAAI,EAAEC,IAAI,QAAkB,mBAAmB;AACvD,SAAQC,cAAc;AACtB,SAAQC,mBAAmB;AAC3B;AAA+B,SAAAC,GAAA,IAAAC,IAAA;AAqB/B,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAaA;EAAA,IAZvBC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IACXC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,QAAQ,GAAAH,IAAA,CAARG,QAAQ;IACRC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IACZC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;IACdC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,SAAS,GAAAV,IAAA,CAATU,SAAS;IACTC,WAAW,GAAAX,IAAA,CAAXW,WAAW;IACRC,SAAS,GAAAC,wBAAA,CAAAb,IAAA,EAAAc,SAAA;EAEZ,IAAMC,WAAW,GAAGvB,OAAO,CAAC;IAAA,OAAM,IAAIwB,GAAG,CAACX,WAAW,CAAC;EAAA,GAAE,CAACA,WAAW,CAAC,CAAC;EACtE,IAAMY,YAAY,GAAGzB,OAAO,CAAC;IAAA,OAAM,IAAIwB,GAAG,CAACV,YAAY,CAAC;EAAA,GAAE,CAACA,YAAY,CAAC,CAAC;EACzE,IAAMY,aAAa,GAAG1B,OAAO,CAAC;IAAA,OAAM,IAAIwB,GAAG,CAACT,UAAU,CAAC;EAAA,GAAE,CAACA,UAAU,CAAC,CAAC;EAEtE,IAAMY,eAAmD,GAAG,SAAtDA,eAAmDA,CACrDC,IAAI,EACJC,KAAK,EACLC,YAAY,EACZC,KAAK,EACJ;IACD,IAAIL,aAAa,CAACM,GAAG,CAACJ,IAAI,CAACK,EAAE,CAAC,EAAE;IAChC,IAAI7B,mBAAmB,CAAC2B,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEG,MAAM,CAAC,EAAE;IACxCf,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAGS,IAAI,EAAEC,KAAK,EAAEC,YAAY,EAAEC,KAAK,CAAC;EACnD,CAAC;EAED,oBACIzB,IAAA,CAACL,IAAI;IAACgB,SAAS,EAAEA,SAAU;IAACkB,KAAK,EAAC,MAAM;IAACC,MAAM,EAAC,MAAM;IAAAC,QAAA,eAClD/B,IAAA,CAACJ,IAAI,EAAAoC,aAAA;MACDC,UAAU,EAAE,KAAM;MAClBC,WAAW,EAAE,KAAM;MACnBC,KAAK,EAAEhC,WAAY;MACnBU,WAAW,EAAEQ,eAAgB;MAC7Be,UAAU,EAAE,SAAZA,UAAUA,CAAGC,UAAU,EAAK;QACxB,IAAIjB,aAAa,CAACM,GAAG,CAACW,UAAU,CAACV,EAAE,CAAC,EAAE;UAClC,OAAOjB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAG2B,UAAU,CAAC;QACvC;QAEA,oBACIrC,IAAA,CAACH,cAAc;UACXwC,UAAU,EAAEA,UAAW;UACvBC,QAAQ,EAAErB,WAAW,CAACS,GAAG,CAACW,UAAU,CAACV,EAAE,CAAE;UACzCY,SAAS,EAAEpB,YAAY,CAACO,GAAG,CAACW,UAAU,CAACV,EAAE,CAAE;UAC3CvB,MAAM,EAAEA,MAAO;UACfE,QAAQ,EAAEA,QAAS;UACnBD,QAAQ,EAAEA,QAAS;UACnBO,SAAS,EAAEA;QAAU,CACxB,CAAC;MAEV;IAAE,GACEE,SAAS,CAChB;EAAC,CACA,CAAC;AAEf,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@ import type { StoryObj } from '@storybook/react';
3
3
  import { type AttachmentListProps } from './AttachmentList';
4
4
  declare const meta: {
5
5
  title: string;
6
- component: ({ attachments, onEdit, onDelete, onRevert, wasAddedIds, wasEditedIds, editingIds, renderEditForm, className, isDeleted, ...listProps }: AttachmentListProps) => React.JSX.Element;
6
+ component: ({ attachments, onEdit, onDelete, onRevert, wasAddedIds, wasEditedIds, editingIds, renderEditForm, className, isDeleted, onItemClick, ...listProps }: AttachmentListProps) => React.JSX.Element;
7
7
  tags: string[];
8
8
  parameters: {
9
9
  layout: string;
@@ -18,16 +18,22 @@ declare const meta: {
18
18
  loading?: boolean | undefined;
19
19
  size?: import("@gravity-ui/uikit").TextInputSize | undefined;
20
20
  sortable?: boolean | undefined;
21
- itemHeight?: number | ((item: {
22
- disabled?: boolean;
23
- }, itemIndex: number) => number) | undefined;
24
- renderItem?: ((item: {
25
- disabled?: boolean;
26
- }, isItemActive: boolean, itemIndex: number) => React.ReactNode) | undefined;
21
+ itemHeight?: number | ((item: import("@gravity-ui/uikit").ListItemData<{
22
+ id: string;
23
+ name: string;
24
+ link?: string;
25
+ }>, itemIndex: number) => number) | undefined;
26
+ renderItem?: ((item: import("@gravity-ui/uikit").ListItemData<{
27
+ id: string;
28
+ name: string;
29
+ link?: string;
30
+ }>, isItemActive: boolean, itemIndex: number) => React.ReactNode) | undefined;
27
31
  onLoadMore?: (() => void) | undefined;
28
- onItemClick?: ((item: {
29
- disabled?: boolean;
30
- }, index: number, fromKeyboard?: boolean, event?: React.MouseEvent<HTMLDivElement, MouseEvent> | React.KeyboardEvent<HTMLElement>) => void) | undefined;
32
+ onItemClick?: ((item: import("@gravity-ui/uikit").ListItemData<{
33
+ id: string;
34
+ name: string;
35
+ link?: string;
36
+ }>, index: number, fromKeyboard?: boolean, event?: React.MouseEvent<HTMLDivElement, MouseEvent> | React.KeyboardEvent<HTMLElement>) => void) | undefined;
31
37
  filterable?: boolean | undefined;
32
38
  itemClassName?: string | undefined;
33
39
  itemsClassName?: string | undefined;
@@ -35,20 +41,30 @@ declare const meta: {
35
41
  emptyPlaceholder?: React.ReactNode;
36
42
  filterPlaceholder?: string | undefined;
37
43
  activeItemIndex?: number | undefined;
38
- itemKey?: ((item: {
39
- disabled?: boolean;
40
- }) => string) | undefined;
41
- itemsHeight?: number | ((items: unknown[]) => number) | undefined;
44
+ itemKey?: ((item: import("@gravity-ui/uikit").ListItemData<{
45
+ id: string;
46
+ name: string;
47
+ link?: string;
48
+ }>) => string) | undefined;
49
+ itemsHeight?: number | ((items: {
50
+ id: string;
51
+ name: string;
52
+ link?: string;
53
+ }[]) => number) | undefined;
42
54
  deactivateOnLeave?: boolean | undefined;
43
55
  sortHandleAlign?: import("@gravity-ui/uikit").ListSortHandleAlign | undefined;
44
- filterItem?: ((filter: string) => (item: {
45
- disabled?: boolean;
46
- }) => boolean) | undefined;
56
+ filterItem?: ((filter: string) => (item: import("@gravity-ui/uikit").ListItemData<{
57
+ id: string;
58
+ name: string;
59
+ link?: string;
60
+ }>) => boolean) | undefined;
47
61
  onFilterUpdate?: ((filter: string) => void) | undefined;
48
62
  onFilterEnd?: (({ items }: {
49
- items: {
50
- disabled?: boolean;
51
- }[];
63
+ items: import("@gravity-ui/uikit").ListItemData<{
64
+ id: string;
65
+ name: string;
66
+ link?: string;
67
+ }>[];
52
68
  }) => void) | undefined;
53
69
  onSortEnd?: ((params: import("@gravity-ui/uikit").ListSortParams) => void) | undefined;
54
70
  onChangeActive?: ((index?: number) => void) | undefined;
@@ -127,6 +127,7 @@ var InteractiveAttachmentList = function InteractiveAttachmentList(props) {
127
127
  });
128
128
  });
129
129
  },
130
+ onItemClick: console.info,
130
131
  onEdit: function onEdit(attachment) {
131
132
  var _props$onEdit;
132
133
  (_props$onEdit = props.onEdit) === null || _props$onEdit === void 0 || _props$onEdit.call(props, attachment);
@@ -208,6 +209,7 @@ var EditableAttachmentList = function EditableAttachmentList(props) {
208
209
  }));
209
210
  }
210
211
  },
212
+ onItemClick: console.info,
211
213
  renderEditForm: function renderEditForm(attachment) {
212
214
  var isLink = typeof attachment.link === 'string';
213
215
  if (isLink) {
@@ -260,6 +262,7 @@ var SortableAttachmentList = function SortableAttachmentList(props) {
260
262
  setOrderedAttachments = _useState12[1];
261
263
  return /*#__PURE__*/_jsx(AttachmentList, _objectSpread(_objectSpread({}, props), {}, {
262
264
  attachments: orderedAttachments,
265
+ onItemClick: console.info,
263
266
  onSortEnd: function onSortEnd(_ref) {
264
267
  var _props$onSortEnd;
265
268
  var oldIndex = _ref.oldIndex,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","Text","EditAttachmentItem","fn","AttachmentList","jsx","_jsx","attachments","id","name","link","meta","title","component","tags","parameters","layout","decorators","Story","style","width","height","children","args","onDelete","onEdit","Default","ChangeStates","wasAddedIds","wasEditedIds","Filterable","filterable","filterPlaceholder","filterItem","filter","attachment","toLocaleLowerCase","includes","InteractiveAttachmentList","props","_useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","editedIds","setEditedIds","_objectSpread","_props$onDelete","call","current","item","_props$onEdit","concat","_toConsumableArray","InteractiveActions","render","EditableAttachmentList","_useState5","_useState6","_useState7","_useState8","editingId","setEditingId","_useState9","_useState0","draftName","setDraftName","_useState1","token","_useState10","draftLink","setDraftLink","handleAcceptDraft","prevState","map","attach","undefined","editingIds","list","l","_props$onEdit2","renderEditForm","isLink","onCancel","onAccept","values","onChange","tokens","value","type","fileName","onChangeFileName","CustomEditForm","SortableAttachmentList","_useState11","_useState12","orderedAttachments","setOrderedAttachments","onSortEnd","_ref","_props$onSortEnd","oldIndex","newIndex","next","_next$splice","splice","_next$splice2","movedAttachment","Sortable","sortable","sortHandleAlign","Empty","emptyPlaceholder","color","Loading","loading"],"sources":["AttachmentList.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Text} from '@gravity-ui/uikit';\nimport {EditAttachmentItem, EditLinkValues} from './internal/EditAttachmentItem';\nimport {fn} from 'storybook/test';\n\nimport {AttachmentList, type AttachmentListProps} from './AttachmentList';\n\nconst attachments: AttachmentListProps['attachments'] = [\n {id: 'readme', name: 'README'},\n {id: 'javascript', name: 'index.js'},\n {id: 'python', name: 'main.py'},\n {id: 'csv', name: 'sales.csv'},\n {id: 'link-image', name: 'https://home/tutorial', link: 'https://home/tutorial'},\n {id: 'excel', name: 'forecast.xlsx'},\n {id: 'cpp', name: 'processor.cpp'},\n {id: 'ql', name: 'analytics.ql'},\n {id: 'yql', name: 'events.yql'},\n {id: 'sql', name: 'report.sql'},\n {id: 'link', name: 'link to file.cpp', link: 'link/to/file.cpp'},\n];\n\nconst meta = {\n title: 'Components/AttachmentList',\n component: AttachmentList,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{width: 360, height: 360}}>\n <Story />\n </div>\n ),\n ],\n args: {\n attachments,\n onDelete: fn(),\n onEdit: fn(),\n },\n} satisfies Meta<typeof AttachmentList>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Attachments with supported extensions use their corresponding icons. Row actions appear on hover. */\nexport const Default: Story = {};\n\n/** `wasAddedIds` and `wasEditedIds` highlight attachments with their current change state. */\nexport const ChangeStates: Story = {\n args: {\n wasAddedIds: ['javascript', 'csv'],\n wasEditedIds: ['python', 'sql'],\n },\n};\n\n/** The inherited List filtering API can be enabled when a consumer needs local attachment search. */\nexport const Filterable: Story = {\n args: {\n filterable: true,\n filterPlaceholder: 'Filter by attachment name',\n filterItem: (filter) => (attachment) =>\n (attachment as AttachmentListProps['attachments'][number]).name\n .toLocaleLowerCase()\n .includes(filter.toLocaleLowerCase()),\n },\n};\n\nconst InteractiveAttachmentList = (props: AttachmentListProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments);\n const [editedIds, setEditedIds] = useState<string[]>([]);\n\n return (\n <AttachmentList\n {...props}\n attachments={currentAttachments}\n wasEditedIds={editedIds}\n onDelete={(attachment) => {\n props.onDelete?.(attachment);\n setCurrentAttachments((current) =>\n current.filter((item) => item.id !== attachment.id),\n );\n setEditedIds((current) => current.filter((id) => id !== attachment.id));\n }}\n onEdit={(attachment) => {\n props.onEdit?.(attachment);\n setEditedIds((current) =>\n current.includes(attachment.id)\n ? current.filter((id) => id !== attachment.id)\n : [...current, attachment.id],\n );\n }}\n />\n );\n};\n\n/** Hover a row: edit toggles its edited state and delete removes it from the list. */\nexport const InteractiveActions: Story = {\n render: (args) => <InteractiveAttachmentList {...args} />,\n};\n\nconst EditableAttachmentList = (props: AttachmentListProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments);\n const [editingId, setEditingId] = useState<string>();\n const [draftName, setDraftName] = useState('');\n const [draftLink, setDraftLink] = useState<EditLinkValues>({\n link: '',\n token: '',\n name: '',\n });\n\n const handleAcceptDraft = () => {\n setCurrentAttachments((prevState) => {\n return prevState.map((attach) => {\n if (attach.id === editingId && attach.link === undefined) {\n return {\n ...attach,\n name: draftName,\n };\n }\n if (attach.id === editingId && typeof attach.link === 'string') {\n return {\n ...attach,\n name: draftLink.name,\n link: draftLink.link,\n };\n }\n return attach;\n });\n });\n setDraftName('');\n setEditingId('');\n };\n\n return (\n <AttachmentList\n {...props}\n attachments={currentAttachments}\n editingIds={editingId ? [editingId] : []}\n onDelete={(attach) =>\n setCurrentAttachments((list) => list.filter((l) => l.id !== attach.id))\n }\n onEdit={(attachment) => {\n props.onEdit?.(attachment);\n setEditingId(attachment.id);\n setDraftName(attachment.name);\n if (typeof attachment.link === 'string') {\n setDraftLink({...draftLink, name: attachment.name, link: attachment.link});\n }\n }}\n renderEditForm={(attachment) => {\n const isLink = typeof attachment.link === 'string';\n\n if (isLink) {\n return (\n <EditAttachmentItem\n onCancel={() => setEditingId('')}\n onAccept={handleAcceptDraft}\n values={draftLink}\n onChange={setDraftLink}\n tokens={[\n {value: 'default_database_logs', title: 'default_database_logs'},\n {value: 'default_yt', title: 'default_yt'},\n {value: 'default_yql', title: 'default_yql'},\n {\n value: 'default_long_token_title',\n title: 'default_long_token_title',\n },\n ]}\n type={'link'}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n fileName={draftName}\n onChangeFileName={setDraftName}\n onCancel={() => setEditingId('')}\n onAccept={handleAcceptDraft}\n type={'file'}\n />\n );\n }}\n />\n );\n};\n\n/** Hover a row and click edit to replace it with a consumer-provided rename form. */\nexport const CustomEditForm: Story = {\n render: (args) => <EditableAttachmentList {...args} />,\n};\n\nconst SortableAttachmentList = (props: AttachmentListProps) => {\n const [orderedAttachments, setOrderedAttachments] = useState(props.attachments);\n\n return (\n <AttachmentList\n {...props}\n attachments={orderedAttachments}\n onSortEnd={({oldIndex, newIndex}) => {\n props.onSortEnd?.({oldIndex, newIndex});\n setOrderedAttachments((current) => {\n const next = [...current];\n const [movedAttachment] = next.splice(oldIndex, 1);\n\n if (movedAttachment) {\n next.splice(newIndex, 0, movedAttachment);\n }\n\n return next;\n });\n }}\n />\n );\n};\n\n/** Drag attachments by the handle to reorder them using the inherited List sorting API. */\nexport const Sortable: Story = {\n args: {\n sortable: true,\n sortHandleAlign: 'left',\n onSortEnd: fn(),\n },\n render: (args) => <SortableAttachmentList {...args} />,\n};\n\n/** Consumer-provided content is displayed when the attachment array is empty. */\nexport const Empty: Story = {\n args: {\n attachments: [],\n emptyPlaceholder: <Text color=\"secondary\">No attachments yet</Text>,\n },\n};\n\n/** The inherited loading state can be used while the attachment collection is being fetched. */\nexport const Loading: Story = {\n args: {\n attachments: [],\n loading: true,\n },\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useState","Text","EditAttachmentItem","fn","AttachmentList","jsx","_jsx","attachments","id","name","link","meta","title","component","tags","parameters","layout","decorators","Story","style","width","height","children","args","onDelete","onEdit","Default","ChangeStates","wasAddedIds","wasEditedIds","Filterable","filterable","filterPlaceholder","filterItem","filter","attachment","toLocaleLowerCase","includes","InteractiveAttachmentList","props","_useState","_useState2","_slicedToArray","currentAttachments","setCurrentAttachments","_useState3","_useState4","editedIds","setEditedIds","_objectSpread","_props$onDelete","call","current","item","onItemClick","console","info","_props$onEdit","concat","_toConsumableArray","InteractiveActions","render","EditableAttachmentList","_useState5","_useState6","_useState7","_useState8","editingId","setEditingId","_useState9","_useState0","draftName","setDraftName","_useState1","token","_useState10","draftLink","setDraftLink","handleAcceptDraft","prevState","map","attach","undefined","editingIds","list","l","_props$onEdit2","renderEditForm","isLink","onCancel","onAccept","values","onChange","tokens","value","type","fileName","onChangeFileName","CustomEditForm","SortableAttachmentList","_useState11","_useState12","orderedAttachments","setOrderedAttachments","onSortEnd","_ref","_props$onSortEnd","oldIndex","newIndex","next","_next$splice","splice","_next$splice2","movedAttachment","Sortable","sortable","sortHandleAlign","Empty","emptyPlaceholder","color","Loading","loading"],"sources":["AttachmentList.stories.tsx"],"sourcesContent":["import React, {useState} from 'react';\nimport type {Meta, StoryObj} from '@storybook/react';\nimport {Text} from '@gravity-ui/uikit';\nimport {EditAttachmentItem, EditLinkValues} from './internal/EditAttachmentItem';\nimport {fn} from 'storybook/test';\n\nimport {AttachmentList, type AttachmentListProps} from './AttachmentList';\n\nconst attachments: AttachmentListProps['attachments'] = [\n {id: 'readme', name: 'README'},\n {id: 'javascript', name: 'index.js'},\n {id: 'python', name: 'main.py'},\n {id: 'csv', name: 'sales.csv'},\n {id: 'link-image', name: 'https://home/tutorial', link: 'https://home/tutorial'},\n {id: 'excel', name: 'forecast.xlsx'},\n {id: 'cpp', name: 'processor.cpp'},\n {id: 'ql', name: 'analytics.ql'},\n {id: 'yql', name: 'events.yql'},\n {id: 'sql', name: 'report.sql'},\n {id: 'link', name: 'link to file.cpp', link: 'link/to/file.cpp'},\n];\n\nconst meta = {\n title: 'Components/AttachmentList',\n component: AttachmentList,\n tags: ['autodocs'],\n parameters: {\n layout: 'padded',\n },\n decorators: [\n (Story) => (\n <div style={{width: 360, height: 360}}>\n <Story />\n </div>\n ),\n ],\n args: {\n attachments,\n onDelete: fn(),\n onEdit: fn(),\n },\n} satisfies Meta<typeof AttachmentList>;\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n/** Attachments with supported extensions use their corresponding icons. Row actions appear on hover. */\nexport const Default: Story = {};\n\n/** `wasAddedIds` and `wasEditedIds` highlight attachments with their current change state. */\nexport const ChangeStates: Story = {\n args: {\n wasAddedIds: ['javascript', 'csv'],\n wasEditedIds: ['python', 'sql'],\n },\n};\n\n/** The inherited List filtering API can be enabled when a consumer needs local attachment search. */\nexport const Filterable: Story = {\n args: {\n filterable: true,\n filterPlaceholder: 'Filter by attachment name',\n filterItem: (filter) => (attachment) =>\n (attachment as AttachmentListProps['attachments'][number]).name\n .toLocaleLowerCase()\n .includes(filter.toLocaleLowerCase()),\n },\n};\n\nconst InteractiveAttachmentList = (props: AttachmentListProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments);\n const [editedIds, setEditedIds] = useState<string[]>([]);\n\n return (\n <AttachmentList\n {...props}\n attachments={currentAttachments}\n wasEditedIds={editedIds}\n onDelete={(attachment) => {\n props.onDelete?.(attachment);\n setCurrentAttachments((current) =>\n current.filter((item) => item.id !== attachment.id),\n );\n setEditedIds((current) => current.filter((id) => id !== attachment.id));\n }}\n onItemClick={console.info}\n onEdit={(attachment) => {\n props.onEdit?.(attachment);\n setEditedIds((current) =>\n current.includes(attachment.id)\n ? current.filter((id) => id !== attachment.id)\n : [...current, attachment.id],\n );\n }}\n />\n );\n};\n\n/** Hover a row: edit toggles its edited state and delete removes it from the list. */\nexport const InteractiveActions: Story = {\n render: (args) => <InteractiveAttachmentList {...args} />,\n};\n\nconst EditableAttachmentList = (props: AttachmentListProps) => {\n const [currentAttachments, setCurrentAttachments] = useState(props.attachments);\n const [editingId, setEditingId] = useState<string>();\n const [draftName, setDraftName] = useState('');\n const [draftLink, setDraftLink] = useState<EditLinkValues>({\n link: '',\n token: '',\n name: '',\n });\n\n const handleAcceptDraft = () => {\n setCurrentAttachments((prevState) => {\n return prevState.map((attach) => {\n if (attach.id === editingId && attach.link === undefined) {\n return {\n ...attach,\n name: draftName,\n };\n }\n if (attach.id === editingId && typeof attach.link === 'string') {\n return {\n ...attach,\n name: draftLink.name,\n link: draftLink.link,\n };\n }\n return attach;\n });\n });\n setDraftName('');\n setEditingId('');\n };\n\n return (\n <AttachmentList\n {...props}\n attachments={currentAttachments}\n editingIds={editingId ? [editingId] : []}\n onDelete={(attach) =>\n setCurrentAttachments((list) => list.filter((l) => l.id !== attach.id))\n }\n onEdit={(attachment) => {\n props.onEdit?.(attachment);\n setEditingId(attachment.id);\n setDraftName(attachment.name);\n if (typeof attachment.link === 'string') {\n setDraftLink({...draftLink, name: attachment.name, link: attachment.link});\n }\n }}\n onItemClick={console.info}\n renderEditForm={(attachment) => {\n const isLink = typeof attachment.link === 'string';\n\n if (isLink) {\n return (\n <EditAttachmentItem\n onCancel={() => setEditingId('')}\n onAccept={handleAcceptDraft}\n values={draftLink}\n onChange={setDraftLink}\n tokens={[\n {value: 'default_database_logs', title: 'default_database_logs'},\n {value: 'default_yt', title: 'default_yt'},\n {value: 'default_yql', title: 'default_yql'},\n {\n value: 'default_long_token_title',\n title: 'default_long_token_title',\n },\n ]}\n type={'link'}\n />\n );\n }\n\n return (\n <EditAttachmentItem\n fileName={draftName}\n onChangeFileName={setDraftName}\n onCancel={() => setEditingId('')}\n onAccept={handleAcceptDraft}\n type={'file'}\n />\n );\n }}\n />\n );\n};\n\n/** Hover a row and click edit to replace it with a consumer-provided rename form. */\nexport const CustomEditForm: Story = {\n render: (args) => <EditableAttachmentList {...args} />,\n};\n\nconst SortableAttachmentList = (props: AttachmentListProps) => {\n const [orderedAttachments, setOrderedAttachments] = useState(props.attachments);\n\n return (\n <AttachmentList\n {...props}\n attachments={orderedAttachments}\n onItemClick={console.info}\n onSortEnd={({oldIndex, newIndex}) => {\n props.onSortEnd?.({oldIndex, newIndex});\n setOrderedAttachments((current) => {\n const next = [...current];\n const [movedAttachment] = next.splice(oldIndex, 1);\n\n if (movedAttachment) {\n next.splice(newIndex, 0, movedAttachment);\n }\n\n return next;\n });\n }}\n />\n );\n};\n\n/** Drag attachments by the handle to reorder them using the inherited List sorting API. */\nexport const Sortable: Story = {\n args: {\n sortable: true,\n sortHandleAlign: 'left',\n onSortEnd: fn(),\n },\n render: (args) => <SortableAttachmentList {...args} />,\n};\n\n/** Consumer-provided content is displayed when the attachment array is empty. */\nexport const Empty: Story = {\n args: {\n attachments: [],\n emptyPlaceholder: <Text color=\"secondary\">No attachments yet</Text>,\n },\n};\n\n/** The inherited loading state can be used while the attachment collection is being fetched. */\nexport const Loading: Story = {\n args: {\n attachments: [],\n loading: true,\n },\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ export declare const INTERACITVE_SELECTOR = "a, button, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [role=\"menuitem\"], [contenteditable=\"true\"], [tabindex]:not([tabindex=\"-1\"])";
2
+ export declare const isInteractiveTarget: (target: EventTarget | null | undefined) => boolean;
@@ -0,0 +1,5 @@
1
+ export var INTERACITVE_SELECTOR = 'a, button, input, select, textarea, label, [role="button"], [role="link"], [role="menuitem"], [contenteditable="true"], [tabindex]:not([tabindex="-1"])';
2
+ export var isInteractiveTarget = function isInteractiveTarget(target) {
3
+ return target instanceof Element && Boolean(target.closest(INTERACITVE_SELECTOR));
4
+ };
5
+ // #sourceMappingURL=isInteractiveTarget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["INTERACITVE_SELECTOR","isInteractiveTarget","target","Element","Boolean","closest"],"sources":["isInteractiveTarget.ts"],"sourcesContent":["export const INTERACITVE_SELECTOR =\n 'a, button, input, select, textarea, label, [role=\"button\"], [role=\"link\"], [role=\"menuitem\"], [contenteditable=\"true\"], [tabindex]:not([tabindex=\"-1\"])';\n\nexport const isInteractiveTarget = (target: EventTarget | null | undefined) => {\n return target instanceof Element && Boolean(target.closest(INTERACITVE_SELECTOR));\n};\n"],"mappings":"AAAA,OAAO,IAAMA,oBAAoB,GAC7B,yJAAyJ;AAE7J,OAAO,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIC,MAAsC,EAAK;EAC3E,OAAOA,MAAM,YAAYC,OAAO,IAAIC,OAAO,CAACF,MAAM,CAACG,OAAO,CAACL,oBAAoB,CAAC,CAAC;AACrF,CAAC","ignoreList":[]}
@@ -2,9 +2,9 @@ import "core-js/modules/es.symbol.js";
2
2
  import "core-js/modules/es.symbol.description.js";
3
3
  import React from 'react';
4
4
  import { Button, Flex, Icon, Link, Text } from '@gravity-ui/uikit';
5
+ import { Folder } from '@gravity-ui/illustrations';
5
6
  import { Plus } from '@gravity-ui/icons';
6
7
  import cn from 'bem-cn-lite';
7
- import image from "./assets/empty-attachments.svg";
8
8
  import i18n from "./i18n";
9
9
  import "./AttachmentListPlaceholder.css";
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
@@ -30,9 +30,9 @@ export var AttachmentListPlaceholder = function AttachmentListPlaceholder(_ref)
30
30
  height: "100%",
31
31
  className: block(null, className),
32
32
  "data-qa": qa,
33
- children: [/*#__PURE__*/_jsx("img", {
34
- src: "".concat(image),
35
- alt: "empty-attachments-image"
33
+ children: [/*#__PURE__*/_jsx(Folder, {
34
+ height: 100,
35
+ width: 100
36
36
  }), /*#__PURE__*/_jsxs(Flex, {
37
37
  gap: 1,
38
38
  direction: "column",
@@ -1 +1 @@
1
- {"version":3,"names":["React","Button","Flex","Icon","Link","Text","Plus","cn","image","i18n","jsx","_jsx","jsxs","_jsxs","block","AttachmentListPlaceholder","_ref","customerTitle","title","customerDescription","description","linkForDoc","customerLinkText","linkText","className","onAddFile","onAddLink","qa","direction","alignItems","justifyContent","gap","width","height","children","src","concat","alt","variant","href","onClick","data","view"],"sources":["AttachmentListPlaceholder.tsx"],"sourcesContent":["import React, {ReactNode} from 'react';\nimport {Button, Flex, Icon, Link, Text} from '@gravity-ui/uikit';\nimport {Plus} from '@gravity-ui/icons';\nimport cn from 'bem-cn-lite';\nimport image from './assets/empty-attachments.svg';\nimport i18n from './i18n';\nimport './AttachmentListPlaceholder.scss';\n\nexport type AttachmentListPlaceholderProps = {\n title?: ReactNode;\n description?: ReactNode;\n linkForDoc?: string;\n linkText?: string;\n className?: string;\n onAddFile?: () => void;\n onAddLink?: () => void;\n qa?: string;\n};\n\nconst block = cn('qp-attachment-list-placeholder');\n\nexport const AttachmentListPlaceholder = ({\n title: customerTitle,\n description: customerDescription,\n linkForDoc,\n linkText: customerLinkText,\n className,\n onAddFile,\n onAddLink,\n qa,\n}: AttachmentListPlaceholderProps) => {\n const title = customerTitle ?? i18n('title_no-attachments');\n const description = customerDescription ?? i18n('context_add-attachment-for-request');\n const linkText = customerLinkText ?? i18n('action_attachments-help');\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={5}\n width=\"100%\"\n height=\"100%\"\n className={block(null, className)}\n data-qa={qa}\n >\n <img src={`${image}`} alt=\"empty-attachments-image\" />\n\n <Flex gap={1} direction=\"column\" alignItems=\"center\">\n <Text variant=\"subheader-1\">{title}</Text>\n <Text variant=\"body-1\">{description}</Text>\n {linkForDoc && (\n <Link className={block('doc-link')} href={linkForDoc}>\n {linkText}\n </Link>\n )}\n </Flex>\n\n <Flex gap={2}>\n <Button onClick={onAddFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button onClick={onAddLink} view=\"outlined\">\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n </Flex>\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Button","Flex","Icon","Link","Text","Folder","Plus","cn","i18n","jsx","_jsx","jsxs","_jsxs","block","AttachmentListPlaceholder","_ref","customerTitle","title","customerDescription","description","linkForDoc","customerLinkText","linkText","className","onAddFile","onAddLink","qa","direction","alignItems","justifyContent","gap","width","height","children","variant","href","onClick","data","view"],"sources":["AttachmentListPlaceholder.tsx"],"sourcesContent":["import React, {ReactNode} from 'react';\nimport {Button, Flex, Icon, Link, Text} from '@gravity-ui/uikit';\nimport {Folder} from '@gravity-ui/illustrations';\nimport {Plus} from '@gravity-ui/icons';\nimport cn from 'bem-cn-lite';\nimport i18n from './i18n';\nimport './AttachmentListPlaceholder.scss';\n\nexport type AttachmentListPlaceholderProps = {\n title?: ReactNode;\n description?: ReactNode;\n linkForDoc?: string;\n linkText?: string;\n className?: string;\n onAddFile?: () => void;\n onAddLink?: () => void;\n qa?: string;\n};\n\nconst block = cn('qp-attachment-list-placeholder');\n\nexport const AttachmentListPlaceholder = ({\n title: customerTitle,\n description: customerDescription,\n linkForDoc,\n linkText: customerLinkText,\n className,\n onAddFile,\n onAddLink,\n qa,\n}: AttachmentListPlaceholderProps) => {\n const title = customerTitle ?? i18n('title_no-attachments');\n const description = customerDescription ?? i18n('context_add-attachment-for-request');\n const linkText = customerLinkText ?? i18n('action_attachments-help');\n\n return (\n <Flex\n direction=\"column\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap={5}\n width=\"100%\"\n height=\"100%\"\n className={block(null, className)}\n data-qa={qa}\n >\n <Folder height={100} width={100} />\n\n <Flex gap={1} direction=\"column\" alignItems=\"center\">\n <Text variant=\"subheader-1\">{title}</Text>\n <Text variant=\"body-1\">{description}</Text>\n {linkForDoc && (\n <Link className={block('doc-link')} href={linkForDoc}>\n {linkText}\n </Link>\n )}\n </Flex>\n\n <Flex gap={2}>\n <Button onClick={onAddFile}>\n <Icon data={Plus} />\n {i18n('action_add-file')}\n </Button>\n\n <Button onClick={onAddLink} view=\"outlined\">\n <Icon data={Plus} />\n {i18n('action_add-link')}\n </Button>\n </Flex>\n </Flex>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -5,4 +5,8 @@
5
5
  display: flex;
6
6
  gap: var(--g-spacing-2);
7
7
  }
8
+ .qp-attachments__tab-list {
9
+ padding-left: var(--g-spacing-4);
10
+ padding-right: var(--g-spacing-4);
11
+ }
8
12
  /*# sourceMappingURL=Attachments.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AACI;EACI,OAAA;AAAR;AAGI;EACI,aAAA;EACA,uBAAA;AADR","file":"Attachments.css","sourcesContent":[".qp-attachments {\n &__panel {\n flex: 1;\n }\n\n &__tab .g-tab__title {\n display: flex;\n gap: var(--g-spacing-2)\n }\n}"],"sourceRoot":""}
1
+ {"version":3,"sources":["Attachments.scss"],"names":[],"mappings":"AACI;EACI,OAAA;AAAR;AAGI;EACI,aAAA;EACA,uBAAA;AADR;AAII;EACI,gCAAA;EACA,iCAAA;AAFR","file":"Attachments.css","sourcesContent":[".qp-attachments {\n &__panel {\n flex: 1;\n }\n\n &__tab .g-tab__title {\n display: flex;\n gap: var(--g-spacing-2)\n }\n\n &__tab-list {\n padding-left: var(--g-spacing-4);\n padding-right: var(--g-spacing-4);\n }\n}"],"sourceRoot":""}
@@ -14,9 +14,10 @@ export type AttachmentsProps = {
14
14
  attachmentListProps?: Pick<AttachmentListProps, 'className'>;
15
15
  attachments?: AttachItem[];
16
16
  deletedAttachments?: AttachItem[];
17
+ onItemClick?: AttachmentListProps<AttachItem>['onItemClick'];
17
18
  onChange?: (payload: {
18
19
  attachments: AttachItem[];
19
20
  deletedAttachments: AttachItem[];
20
21
  }) => void;
21
22
  };
22
- export declare const Attachments: ({ tokens, placeholderProps, attachmentListProps, onChange, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: AttachmentsProps) => React.JSX.Element;
23
+ export declare const Attachments: ({ tokens, placeholderProps, attachmentListProps, onChange, onItemClick, attachments: customerAttachments, deletedAttachments: customerDeletedAttachments, }: AttachmentsProps) => React.JSX.Element;
@@ -30,6 +30,7 @@ export var Attachments = function Attachments(_ref) {
30
30
  placeholderProps = _ref.placeholderProps,
31
31
  attachmentListProps = _ref.attachmentListProps,
32
32
  onChange = _ref.onChange,
33
+ onItemClick = _ref.onItemClick,
33
34
  customerAttachments = _ref.attachments,
34
35
  customerDeletedAttachments = _ref.deletedAttachments;
35
36
  var _useState = useState('Current'),
@@ -255,6 +256,7 @@ export var Attachments = function Attachments(_ref) {
255
256
  return setCurrentTab(tab);
256
257
  },
257
258
  children: [/*#__PURE__*/_jsxs(TabList, {
259
+ className: block('tab-list'),
258
260
  children: [/*#__PURE__*/_jsxs(Tab, {
259
261
  className: block('tab'),
260
262
  value: "Current",
@@ -299,6 +301,7 @@ export var Attachments = function Attachments(_ref) {
299
301
  onDelete: function onDelete(attach) {
300
302
  return handleDelete(attach.id);
301
303
  },
304
+ onItemClick: onItemClick,
302
305
  renderEditForm: function renderEditForm(attach) {
303
306
  var isLink = typeof attach.link === 'string';
304
307
  if (isLink) {
@@ -330,6 +333,9 @@ export var Attachments = function Attachments(_ref) {
330
333
  onAddFile: handleAddEmptyFile,
331
334
  onAddLink: handleAddEmptyLink
332
335
  }, placeholderProps)), Boolean(attachList.length) && /*#__PURE__*/_jsxs(Flex, {
336
+ spacing: {
337
+ px: 4
338
+ },
333
339
  gap: 2,
334
340
  children: [/*#__PURE__*/_jsxs(Button, {
335
341
  onClick: handleAddEmptyFile,
@@ -363,7 +369,8 @@ export var Attachments = function Attachments(_ref) {
363
369
  attachments: deletedAttachList,
364
370
  onRevert: function onRevert(attach) {
365
371
  return handleRevertDelete(attach.id);
366
- }
372
+ },
373
+ onItemClick: onItemClick
367
374
  }))
368
375
  })
369
376
  })]