@rt-tools/ui-kit-v2 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/README.md +21 -2
  2. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +79 -0
  3. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -0
  4. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +233 -0
  5. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -0
  6. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +97 -0
  7. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -0
  8. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +47 -0
  9. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -0
  10. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +709 -0
  11. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -0
  12. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +214 -0
  13. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -0
  14. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +53 -0
  15. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -0
  16. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +88 -0
  17. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -0
  18. package/fesm2022/rt-tools-ui-kit-v2-button.mjs +365 -0
  19. package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -0
  20. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +152 -0
  21. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -0
  22. package/fesm2022/rt-tools-ui-kit-v2-card.mjs +72 -0
  23. package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -0
  24. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +111 -0
  25. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -0
  26. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +76 -0
  27. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -0
  28. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +255 -0
  29. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -0
  30. package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1326 -0
  31. package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -0
  32. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +81 -0
  33. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -0
  34. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2688 -0
  35. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -0
  36. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +45 -0
  37. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -0
  38. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +158 -0
  39. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -0
  40. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +894 -0
  41. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -0
  42. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +1217 -0
  43. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -0
  44. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +779 -0
  45. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -0
  46. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +573 -0
  47. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -0
  48. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +141 -0
  49. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -0
  50. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +68 -0
  51. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -0
  52. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +478 -0
  53. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -0
  54. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +183 -0
  55. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -0
  56. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +44 -0
  57. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -0
  58. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +260 -0
  59. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -0
  60. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +1036 -0
  61. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -0
  62. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +56 -0
  63. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -0
  64. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +107 -0
  65. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -0
  66. package/fesm2022/rt-tools-ui-kit-v2-field.mjs +183 -0
  67. package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -0
  68. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +219 -0
  69. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -0
  70. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +214 -0
  71. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -0
  72. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +117 -0
  73. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -0
  74. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +32 -0
  75. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -0
  76. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +91 -0
  77. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -0
  78. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +220 -0
  79. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -0
  80. package/fesm2022/rt-tools-ui-kit-v2-header.mjs +72 -0
  81. package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -0
  82. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +163 -0
  83. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -0
  84. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +711 -0
  85. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -0
  86. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +540 -0
  87. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -0
  88. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +227 -0
  89. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -0
  90. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +37 -0
  91. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -0
  92. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +361 -0
  93. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -0
  94. package/fesm2022/rt-tools-ui-kit-v2-input.mjs +143 -0
  95. package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -0
  96. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +49 -0
  97. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -0
  98. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +97 -0
  99. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -0
  100. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +57 -0
  101. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -0
  102. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +537 -0
  103. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -0
  104. package/fesm2022/rt-tools-ui-kit-v2-message.mjs +105 -0
  105. package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -0
  106. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +71 -0
  107. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -0
  108. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +315 -0
  109. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -0
  110. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +51 -0
  111. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -0
  112. package/fesm2022/rt-tools-ui-kit-v2-note.mjs +44 -0
  113. package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -0
  114. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +54 -0
  115. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -0
  116. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +339 -0
  117. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -0
  118. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +187 -0
  119. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -0
  120. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +170 -0
  121. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -0
  122. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +312 -0
  123. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -0
  124. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs +46 -0
  125. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs.map +1 -0
  126. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +174 -0
  127. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -0
  128. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +56 -0
  129. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -0
  130. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +336 -12
  131. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  132. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +118 -0
  133. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -0
  134. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +290 -0
  135. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -0
  136. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +37 -0
  137. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -0
  138. package/fesm2022/rt-tools-ui-kit-v2-select.mjs +495 -0
  139. package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -0
  140. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +1493 -0
  141. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -0
  142. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +49 -0
  143. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -0
  144. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +123 -0
  145. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -0
  146. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +70 -0
  147. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -0
  148. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +92 -0
  149. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -0
  150. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +147 -0
  151. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -0
  152. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +117 -0
  153. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -0
  154. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +1636 -0
  155. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -0
  156. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +350 -0
  157. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -0
  158. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +122 -0
  159. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -0
  160. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +85 -0
  161. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -0
  162. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +73 -0
  163. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -0
  164. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +222 -0
  165. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -0
  166. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +39 -0
  167. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -0
  168. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +338 -0
  169. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -0
  170. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +132 -0
  171. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -0
  172. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +162 -0
  173. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -0
  174. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +135 -0
  175. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -0
  176. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +214 -0
  177. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -0
  178. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +64 -0
  179. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -0
  180. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +263 -0
  181. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -0
  182. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +296 -0
  183. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -0
  184. package/fesm2022/rt-tools-ui-kit-v2.mjs +94 -23819
  185. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  186. package/package.json +361 -1
  187. package/rt-tools-ui-kit-v2-0.19.0.tgz +0 -0
  188. package/src/assets/icons/sparkle.svg +9 -0
  189. package/src/assets/icons/thumb-down.svg +10 -0
  190. package/src/assets/icons/thumb-up.svg +9 -0
  191. package/src/assets/icons/trash-x.svg +7 -0
  192. package/src/assets/icons-material/sparkle.fill.svg +5 -0
  193. package/src/assets/icons-material/sparkle.svg +5 -0
  194. package/src/assets/icons-material/thumb-down.fill.svg +5 -0
  195. package/src/assets/icons-material/thumb-down.svg +5 -0
  196. package/src/assets/icons-material/thumb-up.fill.svg +5 -0
  197. package/src/assets/icons-material/thumb-up.svg +5 -0
  198. package/src/assets/icons-material/trash-x.fill.svg +5 -0
  199. package/src/assets/icons-material/trash-x.svg +5 -0
  200. package/src/lib/components/action-bar/CONTEXT.md +8 -2
  201. package/src/lib/components/action-bar/rt-action-bar-holder.component.scss +10 -7
  202. package/src/lib/components/action-bar/rt-action-bar.component.scss +82 -34
  203. package/src/lib/components/ai-run-status/CONTEXT.md +36 -0
  204. package/src/lib/components/ai-run-status/rt-ai-run-status.component.scss +119 -0
  205. package/src/lib/components/aside/CONTEXT.md +1 -0
  206. package/src/lib/components/aside/header/rt-aside-header.component.scss +27 -11
  207. package/src/lib/components/copy-value/CONTEXT.md +31 -0
  208. package/src/lib/components/copy-value/rt-copy-value.component.scss +39 -0
  209. package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +5 -5
  210. package/src/lib/components/dot-field/CONTEXT.md +31 -0
  211. package/src/lib/components/dot-field/rt-dot-field.component.scss +20 -0
  212. package/src/lib/components/dot-field/stories/component/CONTEXT.md +14 -0
  213. package/src/lib/components/dot-field/stories/component/test-dot-field.component.scss +31 -0
  214. package/src/lib/components/dynamic-selector/CONTEXT.md +18 -0
  215. package/src/lib/components/dynamic-selector/list/rt-dynamic-selector-list.component.scss +29 -1
  216. package/src/lib/components/dynamic-selector/popup/rt-dynamic-selector-popup.component.scss +84 -25
  217. package/src/lib/components/empty-state/CONTEXT.md +2 -1
  218. package/src/lib/components/empty-state/rt-empty-state.component.scss +4 -2
  219. package/src/lib/components/field/CONTEXT.md +18 -2
  220. package/src/lib/components/icon/CONTEXT.md +16 -12
  221. package/src/lib/components/icon/rt-icon.component.scss +13 -3
  222. package/src/lib/components/prompt-suggestion/CONTEXT.md +29 -0
  223. package/src/lib/components/prompt-suggestion/rt-prompt-suggestion.component.scss +58 -0
  224. package/src/lib/components/select/rt-select.component.scss +4 -0
  225. package/src/lib/components/thread-list/CONTEXT.md +4 -0
  226. package/src/lib/components/thread-list/rt-thread-list.component.scss +29 -0
  227. package/src/lib/components/toolbar/CONTEXT.md +4 -0
  228. package/src/lib/components/toolbar/rt-toolbar.component.scss +7 -0
  229. package/src/rich-editor/lib/components/ai-chat/CONTEXT.md +58 -0
  230. package/src/rich-editor/lib/components/ai-chat/answer/rt-ai-chat-answer.component.scss +12 -0
  231. package/src/rich-editor/lib/components/ai-chat/rt-ai-chat.component.scss +222 -0
  232. package/src/rich-editor/lib/components/rich-editor/rt-rich-editor.component.scss +3 -0
  233. package/src/styles/_scrollbar.scss +9 -0
  234. package/src/styles/_semantic.scss +1 -1
  235. package/styles/tokens.css +11 -8
  236. package/types/rt-tools-ui-kit-v2-accordion.d.ts +30 -0
  237. package/types/rt-tools-ui-kit-v2-action-bar.d.ts +149 -0
  238. package/types/rt-tools-ui-kit-v2-ai-run-status.d.ts +49 -0
  239. package/types/rt-tools-ui-kit-v2-aside-section.d.ts +25 -0
  240. package/types/rt-tools-ui-kit-v2-aside.d.ts +444 -0
  241. package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +78 -0
  242. package/types/rt-tools-ui-kit-v2-bar-list.d.ts +41 -0
  243. package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +20 -0
  244. package/types/rt-tools-ui-kit-v2-button.d.ts +76 -0
  245. package/types/rt-tools-ui-kit-v2-calendar.d.ts +96 -0
  246. package/types/rt-tools-ui-kit-v2-card.d.ts +38 -0
  247. package/types/rt-tools-ui-kit-v2-checkbox.d.ts +46 -0
  248. package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +20 -0
  249. package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +85 -0
  250. package/types/rt-tools-ui-kit-v2-container.d.ts +425 -0
  251. package/types/rt-tools-ui-kit-v2-copy-value.d.ts +29 -0
  252. package/types/rt-tools-ui-kit-v2-core.d.ts +1262 -0
  253. package/types/rt-tools-ui-kit-v2-counter-row.d.ts +22 -0
  254. package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -0
  255. package/types/rt-tools-ui-kit-v2-data-list.d.ts +334 -0
  256. package/types/rt-tools-ui-kit-v2-data-table.d.ts +494 -0
  257. package/types/rt-tools-ui-kit-v2-date-picker.d.ts +181 -0
  258. package/types/rt-tools-ui-kit-v2-date-range.d.ts +98 -0
  259. package/types/rt-tools-ui-kit-v2-delta-view.d.ts +20 -0
  260. package/types/rt-tools-ui-kit-v2-detail-list.d.ts +33 -0
  261. package/types/rt-tools-ui-kit-v2-dialog.d.ts +287 -0
  262. package/types/rt-tools-ui-kit-v2-dot-field.d.ts +17 -0
  263. package/types/rt-tools-ui-kit-v2-download-link.d.ts +17 -0
  264. package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +139 -0
  265. package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +423 -0
  266. package/types/rt-tools-ui-kit-v2-empty-state.d.ts +29 -0
  267. package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +57 -0
  268. package/types/rt-tools-ui-kit-v2-field.d.ts +82 -0
  269. package/types/rt-tools-ui-kit-v2-file-card.d.ts +114 -0
  270. package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -0
  271. package/types/rt-tools-ui-kit-v2-file-input.d.ts +48 -0
  272. package/types/rt-tools-ui-kit-v2-file-list.d.ts +13 -0
  273. package/types/rt-tools-ui-kit-v2-filter-control.d.ts +72 -0
  274. package/types/rt-tools-ui-kit-v2-form-control.d.ts +74 -0
  275. package/types/rt-tools-ui-kit-v2-header.d.ts +40 -0
  276. package/types/rt-tools-ui-kit-v2-icon-button.d.ts +113 -0
  277. package/types/rt-tools-ui-kit-v2-icon.d.ts +246 -0
  278. package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +168 -0
  279. package/types/rt-tools-ui-kit-v2-image-upload.d.ts +102 -0
  280. package/types/rt-tools-ui-kit-v2-info-item.d.ts +13 -0
  281. package/types/rt-tools-ui-kit-v2-input-number.d.ts +67 -0
  282. package/types/rt-tools-ui-kit-v2-input.d.ts +54 -0
  283. package/types/rt-tools-ui-kit-v2-live-badge.d.ts +23 -0
  284. package/types/rt-tools-ui-kit-v2-logo.d.ts +58 -0
  285. package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +30 -0
  286. package/types/rt-tools-ui-kit-v2-menu.d.ts +217 -0
  287. package/types/rt-tools-ui-kit-v2-message.d.ts +56 -0
  288. package/types/rt-tools-ui-kit-v2-money-list.d.ts +34 -0
  289. package/types/rt-tools-ui-kit-v2-multiselect.d.ts +93 -0
  290. package/types/rt-tools-ui-kit-v2-night-grid.d.ts +39 -0
  291. package/types/rt-tools-ui-kit-v2-note.d.ts +21 -0
  292. package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +23 -0
  293. package/types/rt-tools-ui-kit-v2-page-header.d.ts +173 -0
  294. package/types/rt-tools-ui-kit-v2-pagination.d.ts +64 -0
  295. package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +98 -0
  296. package/types/rt-tools-ui-kit-v2-popover.d.ts +79 -0
  297. package/types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts +21 -0
  298. package/types/rt-tools-ui-kit-v2-radio-button.d.ts +61 -0
  299. package/types/rt-tools-ui-kit-v2-radius.d.ts +37 -0
  300. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +186 -2
  301. package/types/rt-tools-ui-kit-v2-ripple.d.ts +39 -0
  302. package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +91 -0
  303. package/types/rt-tools-ui-kit-v2-section-nav.d.ts +23 -0
  304. package/types/rt-tools-ui-kit-v2-select.d.ts +215 -0
  305. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +483 -0
  306. package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +32 -0
  307. package/types/rt-tools-ui-kit-v2-skeleton.d.ts +41 -0
  308. package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -0
  309. package/types/rt-tools-ui-kit-v2-split-button.d.ts +72 -0
  310. package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +81 -0
  311. package/types/rt-tools-ui-kit-v2-stepper.d.ts +51 -0
  312. package/types/rt-tools-ui-kit-v2-table.d.ts +739 -0
  313. package/types/rt-tools-ui-kit-v2-tabs.d.ts +153 -0
  314. package/types/rt-tools-ui-kit-v2-tag.d.ts +70 -0
  315. package/types/rt-tools-ui-kit-v2-textarea.d.ts +36 -0
  316. package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +43 -0
  317. package/types/rt-tools-ui-kit-v2-thread-list.d.ts +124 -0
  318. package/types/rt-tools-ui-kit-v2-timeline.d.ts +35 -0
  319. package/types/rt-tools-ui-kit-v2-toast.d.ts +103 -0
  320. package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +109 -0
  321. package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +85 -0
  322. package/types/rt-tools-ui-kit-v2-toolbar.d.ts +66 -0
  323. package/types/rt-tools-ui-kit-v2-tooltip.d.ts +74 -0
  324. package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +33 -0
  325. package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +128 -0
  326. package/types/rt-tools-ui-kit-v2-workspace.d.ts +84 -0
  327. package/types/rt-tools-ui-kit-v2.d.ts +90 -9599
  328. package/rt-tools-ui-kit-v2-0.17.0.tgz +0 -0
@@ -0,0 +1,79 @@
1
+ import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { OnDestroy, WritableSignal, InputSignal, TemplateRef, InputSignalWithTransform, OutputEmitterRef, Signal } from '@angular/core';
4
+
5
+ /**
6
+ * Модель `[rtPopover]`: один корневой неймспейс с префиксом `I`.
7
+ */
8
+ declare namespace IRtPopover {
9
+ /** Жест, открывающий popover. `manual` — host управляет через open()/close(). */
10
+ type Trigger = 'click' | 'hover' | 'manual';
11
+ /**
12
+ * Стратегия ширины панели: ровно по host'у (dropdown), не уже host'а и дальше по
13
+ * содержимому (`trigger-min`) или по содержимому целиком (tooltip).
14
+ */
15
+ type Width = 'trigger' | 'trigger-min' | 'auto';
16
+ /** Горизонтальное выравнивание панели относительно host'а. */
17
+ type Align = 'start' | 'end';
18
+ }
19
+
20
+ /**
21
+ * Переиспользуемый popover-примитив поверх CDK Overlay. Привязывает плавающую
22
+ * панель (`<ng-template>`) к host-элементу. Движок — CDK Overlay
23
+ * (`flexibleConnectedTo`): авто-flip у края viewport, reposition при скролле,
24
+ * outside-click и Escape закрытие из коробки — без ручного `position: absolute`
25
+ * в `:host` (тот резался `overflow: hidden` предками: таблицы, aside, карточки).
26
+ *
27
+ * Триггеры:
28
+ * - `click` (default) — toggle по клику на host; outside-click закрывает.
29
+ * - `hover` — открытие на `mouseenter`, закрытие с grace-периодом на `mouseleave`
30
+ * (наведение на панель удерживает её открытой).
31
+ * - `manual` — авто-listener'ы не вешаются; host сам зовёт `open()/close()`.
32
+ * Используется form-control'ами с собственным жестом (autocomplete — открытие
33
+ * по набору текста).
34
+ *
35
+ * `open()/close()/toggle()/isOpen()` публичны во ВСЕХ режимах — `trigger` лишь
36
+ * определяет авто-listener'ы. `width: 'trigger'` синхронизирует ширину панели с
37
+ * host'ом (dropdown'ы), `'trigger-min'` не даёт панели стать уже host'а и дальше пускает
38
+ * её по содержимому, `'auto'` — content-sized (тултипы).
39
+ */
40
+ declare class RtPopoverDirective implements OnDestroy {
41
+ #private;
42
+ protected readonly isOpenState: WritableSignal<boolean>;
43
+ readonly template: InputSignal<TemplateRef<unknown> | null>;
44
+ readonly trigger: InputSignal<IRtPopover.Trigger>;
45
+ readonly width: InputSignal<IRtPopover.Width>;
46
+ /** `end` — панель прижата к правому краю host'а (триггеры у правого края viewport). */
47
+ readonly align: InputSignal<IRtPopover.Align>;
48
+ /**
49
+ * Панель обязана уместиться во вьюпорт: не влезающая по ширине сдвигается от
50
+ * края экрана внутрь, не влезающая по высоте ужимается до свободного места под
51
+ * триггером, и содержимое в ней прокручивается.
52
+ *
53
+ * По умолчанию выключено: панель стоит ровно там, куда её ставит привязка к
54
+ * триггеру, даже если часть её ушла за экран. Включать там, где панель широкая
55
+ * или высокая настолько, что привязка сама по себе её не удерживает, — иначе
56
+ * пункты навигации остаются за краем экрана и недостижимы.
57
+ */
58
+ readonly fitViewport: InputSignalWithTransform<boolean, BooleanInput>;
59
+ readonly context: InputSignal<unknown>;
60
+ readonly panelClass: InputSignal<string>;
61
+ readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
62
+ readonly offsetY: InputSignalWithTransform<number, NumberInput>;
63
+ readonly offsetX: InputSignalWithTransform<number, NumberInput>;
64
+ readonly opened: OutputEmitterRef<void>;
65
+ readonly closed: OutputEmitterRef<void>;
66
+ readonly isOpen: Signal<boolean>;
67
+ constructor();
68
+ ngOnDestroy(): void;
69
+ open(): void;
70
+ close(): void;
71
+ toggle(): void;
72
+ protected onHostClick(): void;
73
+ protected onHostMouseEnter(): void;
74
+ protected onHostMouseLeave(event: MouseEvent): void;
75
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtPopoverDirective, never>;
76
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtPopoverDirective, "[rtPopover]", ["rtPopover"], { "template": { "alias": "rtPopover"; "required": false; "isSignal": true; }; "trigger": { "alias": "rtPopoverTrigger"; "required": false; "isSignal": true; }; "width": { "alias": "rtPopoverWidth"; "required": false; "isSignal": true; }; "align": { "alias": "rtPopoverAlign"; "required": false; "isSignal": true; }; "fitViewport": { "alias": "rtPopoverFitViewport"; "required": false; "isSignal": true; }; "context": { "alias": "rtPopoverContext"; "required": false; "isSignal": true; }; "panelClass": { "alias": "rtPopoverPanelClass"; "required": false; "isSignal": true; }; "disabled": { "alias": "rtPopoverDisabled"; "required": false; "isSignal": true; }; "offsetY": { "alias": "rtPopoverOffsetY"; "required": false; "isSignal": true; }; "offsetX": { "alias": "rtPopoverOffsetX"; "required": false; "isSignal": true; }; }, { "opened": "rtPopoverOpened"; "closed": "rtPopoverClosed"; }, never, never, true, never>;
77
+ }
78
+
79
+ export { IRtPopover, RtPopoverDirective };
@@ -0,0 +1,21 @@
1
+ import { BooleanInput } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { InputSignal, InputSignalWithTransform, OutputEmitterRef } from '@angular/core';
4
+
5
+ /**
6
+ * Карточка готового вопроса на пустом экране ассистента: подпись слева, стрелка справа на
7
+ * одинаковом отступе. Нажатие сообщает текст подсказки наружу — что с ним делать, решает
8
+ * приложение.
9
+ */
10
+ declare class RtPromptSuggestionComponent {
11
+ /** Текст вопроса: он и на карточке, и в выходе. */
12
+ readonly label: InputSignal<string>;
13
+ readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
14
+ /** Карточку нажали; значение — текст вопроса. */
15
+ readonly picked: OutputEmitterRef<string>;
16
+ protected onClick(): void;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtPromptSuggestionComponent, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtPromptSuggestionComponent, "rt-prompt-suggestion", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "picked": "picked"; }, never, never, true, never>;
19
+ }
20
+
21
+ export { RtPromptSuggestionComponent };
@@ -0,0 +1,61 @@
1
+ import { BooleanInput } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { Signal, InputSignal, InputSignalWithTransform, OutputEmitterRef } from '@angular/core';
4
+ import { ControlValueAccessor } from '@angular/forms';
5
+ import * as i1 from '@rt-tools/ui-kit-v2/radius';
6
+
7
+ /**
8
+ * Радиокнопка: `role="radio"` с `aria-checked` и `aria-disabled`, выбор нажатием, пробелом и Enter.
9
+ *
10
+ * Выбор приходит двумя путями. Форма пишет модель через `ControlValueAccessor`, и радиокнопка
11
+ * выбрана, когда её значение — сама модель, а не равное ей. Без формы выбранность ставится входом
12
+ * `checked`, а выбор сообщается выходом `checkedChange`: так строку отмечает таблица. Заданный вход
13
+ * решает раньше модели формы.
14
+ *
15
+ * Нажатие на выбранную выбор не снимает — радиокнопку покидают только выбором другой. Каждое
16
+ * нажатие сообщается наружу `clickAction` и дальше обёртки не идёт: строка таблицы под кружком не
17
+ * открывается. Выбор клавишей наружу нажатием не сообщается.
18
+ *
19
+ * Отключение складывается из входа `disabled` и слова формы: форма зовёт `setDisabledState`
20
+ * раньше первого обновления вида, и один общий signal затёр бы её слово.
21
+ *
22
+ * Каждая радиокнопка — свой `ControlValueAccessor`, и значение, отданное одной, форма соседям на
23
+ * том же контроле не пишет: поэтому модель берётся и у самого контрола.
24
+ */
25
+ declare class RtRadioButtonComponent implements ControlValueAccessor {
26
+ #private;
27
+ protected readonly isChecked: Signal<boolean>;
28
+ protected readonly isDisabled: Signal<boolean>;
29
+ /** Значение радиокнопки: выбрана та, чьё значение — модель формы. */
30
+ readonly value: InputSignal<unknown>;
31
+ /** Выбранность без формы; не заданный вход оставляет решение форме. */
32
+ readonly checked: InputSignalWithTransform<boolean | null, BooleanInput | null | undefined>;
33
+ readonly disabled: InputSignalWithTransform<boolean, BooleanInput>;
34
+ /** Вид «карточка»: рамка, содержимое слева, кружок справа. */
35
+ readonly card: InputSignalWithTransform<boolean, BooleanInput>;
36
+ readonly label: InputSignal<string>;
37
+ readonly description: InputSignal<string>;
38
+ /** Имя для вспомогательных средств, когда видимой подписи нет — кружок в строке таблицы. */
39
+ readonly ariaLabel: InputSignal<string | null>;
40
+ /** Каждое нажатие указателем, сменило оно выбор или нет. */
41
+ readonly clickAction: OutputEmitterRef<MouseEvent>;
42
+ /** Радиокнопка стала выбранной. */
43
+ readonly checkedChange: OutputEmitterRef<boolean>;
44
+ constructor();
45
+ writeValue(value: unknown): void;
46
+ /**
47
+ * Директива формы зовёт это при каждой привязке к контролу — и первой, и после смены контрола,
48
+ * — уже поставив новый контрол себе. Здесь радиокнопка и узнаёт, кого слушать. Спросить
49
+ * директиву в конструкторе нельзя: она берёт радиокнопку своим accessor, и это круговая
50
+ * зависимость.
51
+ */
52
+ registerOnChange(fn: (value: unknown) => void): void;
53
+ registerOnTouched(fn: () => void): void;
54
+ setDisabledState(disabled: boolean): void;
55
+ protected onClick(event: MouseEvent): void;
56
+ protected onKeydown(event: KeyboardEvent): void;
57
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtRadioButtonComponent, never>;
58
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtRadioButtonComponent, "rt-radio-button", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "card": { "alias": "card"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "clickAction": "clickAction"; "checkedChange": "checkedChange"; }, never, never, true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
59
+ }
60
+
61
+ export { RtRadioButtonComponent };
@@ -0,0 +1,37 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InputSignal, Signal } from '@angular/core';
3
+ import { TRtRadius } from '@rt-tools/ui-kit-v2/core';
4
+
5
+ /**
6
+ * Вход скругления, один на весь кит. Компонент с поверхностью берёт его
7
+ * хост-директивой, и у всех он называется одинаково — `radius`.
8
+ *
9
+ * Шаг ложится на хост атрибутом `data-rt-radius`, а не наследуемым свойством:
10
+ * свойство протекло бы в каждый вложенный компонент, и скруглённая карточка
11
+ * скруглила бы все кнопки в себе. Атрибут читают только правила своего хоста.
12
+ *
13
+ * Пустой вход атрибута не пишет: компонент остаётся со своим скруглением по
14
+ * умолчанию из собственных стилей.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * @Component({
19
+ * selector: 'rt-card',
20
+ * hostDirectives: [{ directive: RtRadiusDirective, inputs: ['radius'] }],
21
+ * })
22
+ * ```
23
+ * ```html
24
+ * <rt-card radius="none">…</rt-card>
25
+ * ```
26
+ */
27
+ declare class RtRadiusDirective {
28
+ #private;
29
+ /** Шаг шкалы. Пусто — скругление компонента по умолчанию. */
30
+ readonly radius: InputSignal<TRtRadius | null | undefined>;
31
+ /** Шаг на хосте: названный входом, иначе умолчание хоста, если оно задано. */
32
+ readonly step: Signal<TRtRadius | null>;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtRadiusDirective, never>;
34
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtRadiusDirective, "[rtRadius]", never, { "radius": { "alias": "radius"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
35
+ }
36
+
37
+ export { RtRadiusDirective };
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { AfterViewInit, OnDestroy, Signal, ElementRef, WritableSignal, InputSignal, OutputEmitterRef, InputSignalWithTransform, ModelSignal, TemplateRef, PipeTransform } from '@angular/core';
3
- import { RtFormControlBase, IQuillDelta, TRtKitLabelMap } from '@rt-tools/ui-kit-v2';
3
+ import { RtFormControlBase, IQuillDelta, TRtKitLabelMap, IRtAiRunStatus, IRtTimeline, IRtThreadList, IRtSideMenu } from '@rt-tools/ui-kit-v2';
4
4
  import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
5
5
  import { FormGroup, FormControl } from '@angular/forms';
6
6
 
@@ -540,6 +540,190 @@ interface IToRtMessageOptions<TMessage extends IRtMappableMessage> {
540
540
  */
541
541
  declare function toRtMessage<TMessage extends IRtMappableMessage>(message: TMessage, options: IToRtMessageOptions<TMessage>): IRtChat.Message;
542
542
 
543
+ declare namespace IRtAiChat {
544
+ /** Кто написал сообщение. */
545
+ type Role = 'user' | 'assistant';
546
+ /** Оценка ответа человеком; `null` — не оценён. */
547
+ type Feedback = 'liked' | 'disliked' | null;
548
+ /** Ход работы над ответом: строка `rt-ai-run-status` над текстом ответа. */
549
+ interface Run {
550
+ readonly state: IRtAiRunStatus.State;
551
+ readonly label: string;
552
+ readonly meta?: string;
553
+ readonly steps?: readonly IRtTimeline.Step[];
554
+ }
555
+ interface Message {
556
+ readonly id: string;
557
+ readonly role: Role;
558
+ /** Текст сообщения; у ответа — markdown. Пустой ответ рисует только ход работы. */
559
+ readonly text: string;
560
+ /** Время под пузырём вопроса; пусто — не рисуется. */
561
+ readonly time?: string;
562
+ /** Ход работы над этим ответом. */
563
+ readonly run?: Run;
564
+ /** Ответ ещё пишется: оценка не рисуется. */
565
+ readonly streaming?: boolean;
566
+ readonly feedback?: Feedback;
567
+ }
568
+ /** Ответ оборвался: текст ошибки, номер обращения и можно ли спросить снова. */
569
+ interface RunError {
570
+ readonly message: string;
571
+ readonly referenceId?: string;
572
+ readonly retryable?: boolean;
573
+ }
574
+ /** Беседа в списке бесед. */
575
+ interface Thread {
576
+ readonly id: string;
577
+ readonly title: string;
578
+ /** Время последнего сообщения, готовой строкой. */
579
+ readonly time?: string;
580
+ /** Непрочитанных ответов; больше нуля — строка помечена и показывает число. */
581
+ readonly unreadCount?: number;
582
+ }
583
+ /** Оценка ответа: какое сообщение и какая оценка. */
584
+ interface FeedbackChange {
585
+ readonly messageId: string;
586
+ readonly feedback: Feedback;
587
+ }
588
+ /** Контекст шаблона вложений ответа. */
589
+ interface ExtraContext {
590
+ readonly $implicit: Message;
591
+ }
592
+ }
593
+
594
+ /**
595
+ * Вложения ответа ассистента: то, что рисует приложение под текстом ответа — график, таблица,
596
+ * карточка. Шаблон получает сообщение.
597
+ */
598
+ declare class RtAiChatMessageExtraDirective {
599
+ readonly templateRef: TemplateRef<IRtAiChat.ExtraContext>;
600
+ static ngTemplateContextGuard(_directive: RtAiChatMessageExtraDirective, context: unknown): context is IRtAiChat.ExtraContext;
601
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtAiChatMessageExtraDirective, never>;
602
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtAiChatMessageExtraDirective, "ng-template[rtAiChatMessageExtra]", never, {}, {}, never, never, true, never>;
603
+ }
604
+
605
+ /** Строка беседы для списка бесед: `rt-thread-list` ждёт `id` и `hasUnread`. */
606
+ interface IThreadRow extends IRtThreadList.Row {
607
+ readonly id: string;
608
+ readonly hasUnread: boolean;
609
+ readonly title: string;
610
+ readonly titleParts: readonly IRtSideMenu.TitlePart[];
611
+ readonly time: string;
612
+ readonly unreadCount: number;
613
+ }
614
+ /**
615
+ * Панель ИИ-ассистента одним компонентом: шапка с действиями, лента вопросов и ответов с ходом
616
+ * работы, пустой экран с подсказками, ошибка с номером обращения, поле сообщения и подпись под
617
+ * ним; по кнопке «Conversations» — список бесед.
618
+ *
619
+ * Компонент презентационный: сообщения, ход работы, беседы и ошибка приходят входами, действия
620
+ * уходят выходами. Вложения ответа — графики и прочее — приложение отдаёт шаблоном
621
+ * `rtAiChatMessageExtra`.
622
+ */
623
+ declare class RtAiChatComponent {
624
+ #private;
625
+ protected readonly composer: Signal<RtMessageComposerComponent | undefined>;
626
+ protected readonly backButton: Signal<ElementRef<HTMLElement> | undefined>;
627
+ protected readonly feed: Signal<ElementRef<HTMLElement> | undefined>;
628
+ protected readonly t: Signal<TRtKitLabelMap>;
629
+ protected readonly extraTemplate: Signal<RtAiChatMessageExtraDirective | undefined>;
630
+ /** Ответы, у которых человек раскрыл шаги. */
631
+ protected readonly openRuns: WritableSignal<ReadonlySet<string>>;
632
+ protected readonly titleText: Signal<string>;
633
+ protected readonly emptyTitleText: Signal<string>;
634
+ protected readonly emptyDescriptionText: Signal<string>;
635
+ protected readonly disclaimerText: Signal<string>;
636
+ protected readonly hasThreads: Signal<boolean>;
637
+ /** Список бесед стоит колонкой слева: на весь экран, когда беседы есть. */
638
+ protected readonly isThreadColumn: Signal<boolean>;
639
+ /** Список бесед стоит на месте ленты: в узкой панели по кнопке «Conversations». */
640
+ protected readonly isThreadPage: Signal<boolean>;
641
+ protected readonly isEmpty: Signal<boolean>;
642
+ /** Строка поиска по беседам: подсвечивает совпадения и меняет подпись пустого списка. */
643
+ protected readonly threadQuery: WritableSignal<string>;
644
+ protected readonly threadRows: Signal<readonly IThreadRow[]>;
645
+ /** Пустой список: без поиска — «бесед нет», с поиском — подпись списка «ничего не найдено». */
646
+ protected readonly threadsEmptyText: Signal<string>;
647
+ /** Заголовок беседы над лентой; пусто — строки нет. */
648
+ readonly title: InputSignal<string>;
649
+ /** Вторая строка шапки — обычно название беседы. Пусто — не рисуется. */
650
+ readonly subtitle: InputSignal<string>;
651
+ readonly messages: InputSignal<readonly IRtAiChat.Message[]>;
652
+ /** Готовые вопросы пустого экрана. */
653
+ readonly suggestions: InputSignal<readonly string[]>;
654
+ readonly emptyTitle: InputSignal<string>;
655
+ readonly emptyDescription: InputSignal<string>;
656
+ /** Подсказка в поле сообщения; пусто — подпись поля кита. */
657
+ readonly placeholder: InputSignal<string>;
658
+ /** Подпись под полем сообщения; `null` — подпись кита, пустая строка — без подписи. */
659
+ readonly disclaimer: InputSignal<string | null>;
660
+ /** Ответ пишется: поле сообщения в режиме остановки, подсказки и новая беседа выключены. */
661
+ readonly sending: InputSignalWithTransform<boolean, BooleanInput>;
662
+ /** Беседа загружается: крутилка, пока сообщений нет. */
663
+ readonly loading: InputSignalWithTransform<boolean, BooleanInput>;
664
+ readonly error: InputSignal<IRtAiChat.RunError | null>;
665
+ /** Беседы; `null` — кнопки «Conversations» нет. */
666
+ readonly threads: InputSignal<readonly IRtAiChat.Thread[] | null>;
667
+ readonly activeThreadId: InputSignal<string | null>;
668
+ readonly threadsLoading: InputSignalWithTransform<boolean, BooleanInput>;
669
+ readonly threadsFetching: InputSignalWithTransform<boolean, BooleanInput>;
670
+ readonly threadsHasMore: InputSignalWithTransform<boolean, BooleanInput>;
671
+ /** Кнопка «Full screen» в шапке. */
672
+ readonly fullScreenable: InputSignalWithTransform<boolean, BooleanInput>;
673
+ /** Кнопка закрытия в шапке. */
674
+ readonly closable: InputSignalWithTransform<boolean, BooleanInput>;
675
+ /** Черновик в поле сообщения. */
676
+ readonly draft: ModelSignal<string>;
677
+ /** Список бесед открыт на месте ленты. */
678
+ readonly threadsOpen: ModelSignal<boolean>;
679
+ readonly fullScreen: ModelSignal<boolean>;
680
+ /** Вопрос ушёл: набранный или выбранная подсказка. */
681
+ readonly send: OutputEmitterRef<string>;
682
+ readonly stop: OutputEmitterRef<void>;
683
+ readonly retry: OutputEmitterRef<void>;
684
+ readonly newThread: OutputEmitterRef<void>;
685
+ readonly closed: OutputEmitterRef<void>;
686
+ readonly selectThread: OutputEmitterRef<string>;
687
+ readonly deleteThread: OutputEmitterRef<string>;
688
+ readonly searchThreads: OutputEmitterRef<string>;
689
+ readonly loadMoreThreads: OutputEmitterRef<void>;
690
+ readonly feedbackChange: OutputEmitterRef<IRtAiChat.FeedbackChange>;
691
+ constructor();
692
+ /** Фокус в поле сообщения после отрисовки: приложению — после своих действий вне панели. */
693
+ focusComposer(): void;
694
+ protected onFeedScroll(): void;
695
+ protected onSubmitted(value: IRtMessageComposer.SubmitPayload): void;
696
+ protected onSuggestion(text: string): void;
697
+ protected onToggleRun(messageId: string, open: boolean): void;
698
+ protected onFeedback(message: IRtAiChat.Message, feedback: Exclude<IRtAiChat.Feedback, null>): void;
699
+ protected onToggleThreads(): void;
700
+ protected onNewThread(): void;
701
+ protected onStop(): void;
702
+ protected onToggleFullScreen(): void;
703
+ protected onSearchThreads(query: string): void;
704
+ protected onSelectThread(id: IRtThreadList.TRowId): void;
705
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtAiChatComponent, never>;
706
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtAiChatComponent, "rt-ai-chat", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "messages": { "alias": "messages"; "required": false; "isSignal": true; }; "suggestions": { "alias": "suggestions"; "required": false; "isSignal": true; }; "emptyTitle": { "alias": "emptyTitle"; "required": false; "isSignal": true; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "disclaimer": { "alias": "disclaimer"; "required": false; "isSignal": true; }; "sending": { "alias": "sending"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "threads": { "alias": "threads"; "required": false; "isSignal": true; }; "activeThreadId": { "alias": "activeThreadId"; "required": false; "isSignal": true; }; "threadsLoading": { "alias": "threadsLoading"; "required": false; "isSignal": true; }; "threadsFetching": { "alias": "threadsFetching"; "required": false; "isSignal": true; }; "threadsHasMore": { "alias": "threadsHasMore"; "required": false; "isSignal": true; }; "fullScreenable": { "alias": "fullScreenable"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "draft": { "alias": "draft"; "required": false; "isSignal": true; }; "threadsOpen": { "alias": "threadsOpen"; "required": false; "isSignal": true; }; "fullScreen": { "alias": "fullScreen"; "required": false; "isSignal": true; }; }, { "draft": "draftChange"; "threadsOpen": "threadsOpenChange"; "fullScreen": "fullScreenChange"; "send": "send"; "stop": "stop"; "retry": "retry"; "newThread": "newThread"; "closed": "closed"; "selectThread": "selectThread"; "deleteThread": "deleteThread"; "searchThreads": "searchThreads"; "loadMoreThreads": "loadMoreThreads"; "feedbackChange": "feedbackChange"; }, ["extraTemplate"], never, true, never>;
707
+ }
708
+
709
+ /**
710
+ * Ответ ассистента в ленте `rt-ai-chat`: ход работы, текст в markdown, вложения приложения и оценка.
711
+ * Оценка появляется, когда текст дописан.
712
+ */
713
+ declare class RtAiChatAnswerComponent {
714
+ protected readonly t: Signal<TRtKitLabelMap>;
715
+ protected readonly isRated: Signal<boolean>;
716
+ readonly message: InputSignal<IRtAiChat.Message>;
717
+ /** Шаблон вложений ответа; `null` — вложений нет. */
718
+ readonly extra: InputSignal<TemplateRef<IRtAiChat.ExtraContext> | null>;
719
+ /** Шаги хода работы раскрыты. */
720
+ readonly expanded: ModelSignal<boolean>;
721
+ /** Нажата оценка; повторное нажатие той же снимает её — решает родитель. */
722
+ readonly feedbackChange: OutputEmitterRef<Exclude<IRtAiChat.Feedback, null>>;
723
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtAiChatAnswerComponent, never>;
724
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtAiChatAnswerComponent, "rt-ai-chat-answer", never, { "message": { "alias": "message"; "required": true; "isSignal": true; }; "extra": { "alias": "extra"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "expanded": "expandedChange"; "feedbackChange": "feedbackChange"; }, never, never, true, never>;
725
+ }
726
+
543
727
  /** Ключ текстовой расшифровки иконки статуса сообщения. */
544
728
  declare class RtChatStatusLabelPipe implements PipeTransform {
545
729
  transform(status: ERtChatMessageStatus): string;
@@ -547,5 +731,5 @@ declare class RtChatStatusLabelPipe implements PipeTransform {
547
731
  static ɵpipe: i0.ɵɵPipeDeclaration<RtChatStatusLabelPipe, "rtChatStatusLabel", true>;
548
732
  }
549
733
 
550
- export { ERtChatMessageStatus, IRtChat, IRtMessageComposer, RtChatComponent, RtChatMessageActionsDirective, RtChatMessageHasActionsPipe, RtChatStatusLabelPipe, RtMessageComposerComponent, RtRichEditorComponent, deliveryStatus, messageHasAvailableActions, pendingToRtMessage, toRtMessage };
734
+ export { ERtChatMessageStatus, IRtAiChat, IRtChat, IRtMessageComposer, RtAiChatAnswerComponent, RtAiChatComponent, RtAiChatMessageExtraDirective, RtChatComponent, RtChatMessageActionsDirective, RtChatMessageHasActionsPipe, RtChatStatusLabelPipe, RtMessageComposerComponent, RtRichEditorComponent, deliveryStatus, messageHasAvailableActions, pendingToRtMessage, toRtMessage };
551
735
  export type { IRtChatMessageActionsContext, IRtMappableMessage, IRtPendingMessage, IToRtMessageOptions, TRtRichEditorToolbar };
@@ -0,0 +1,39 @@
1
+ import { BooleanInput } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { InputSignalWithTransform } from '@angular/core';
4
+
5
+ /**
6
+ * Волна нажатия. Ставится на элемент, который нажимают, и рисует расходящийся
7
+ * от точки касания круг.
8
+ *
9
+ * Волна живёт в своём обрезающем слое внутри элемента, а не прямо в нём:
10
+ * `overflow: hidden` на самой кнопке срезал бы всё, что торчит за её край, —
11
+ * у кнопки-значка так стоит метка, вынесенная на два пикселя наружу.
12
+ *
13
+ * @example
14
+ * ```html
15
+ * <button rtRipple>Сохранить</button>
16
+ * <button rtRipple [rippleDisabled]="loading()">Сохранить</button>
17
+ * ```
18
+ */
19
+ declare class RtRippleDirective {
20
+ #private;
21
+ /**
22
+ * Отключает волну, не трогая остальное поведение элемента.
23
+ * Отключённая и загружающаяся кнопка волны не даёт.
24
+ */
25
+ readonly rippleDisabled: InputSignalWithTransform<boolean, BooleanInput>;
26
+ /** Гасит незакончившиеся волны: иначе таймер трогает снятый из дерева узел. */
27
+ constructor();
28
+ /**
29
+ * Ставит один слой волны от точки нажатия и снимает его, когда тот отгорит.
30
+ *
31
+ * Радиус считается по дальнему углу элемента: волна из угла должна накрыть
32
+ * противоположный, иначе на широкой кнопке она обрывается на полпути.
33
+ */
34
+ launch(event: PointerEvent): void;
35
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtRippleDirective, never>;
36
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtRippleDirective, "[rtRipple]", never, { "rippleDisabled": { "alias": "rippleDisabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
37
+ }
38
+
39
+ export { RtRippleDirective };
@@ -0,0 +1,91 @@
1
+ import { BooleanInput } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { TemplateRef, Signal, ElementRef, WritableSignal, InputSignalWithTransform } from '@angular/core';
4
+ import { TNullable } from '@rt-tools/utils';
5
+ import { TRtKitLabelMap } from '@rt-tools/ui-kit-v2/core';
6
+
7
+ /**
8
+ * Маркеры частей области прокрутки — своим файлом, как у соседних семей.
9
+ *
10
+ * Каждый маркер держит свой шаблон и не знает об области ничего: область читает маркеры среди
11
+ * своего содержимого и берёт у них шаблон. Часть, которую потребитель не объявил, для области
12
+ * просто отсутствует — рисовать нечего.
13
+ */
14
+ /**
15
+ * Шапка области: стоит сверху и не прокручивается.
16
+ *
17
+ * @example
18
+ * ```html
19
+ * <rt-scroll-area>
20
+ * <ng-container *rtScrollAreaHeader>
21
+ * <h3>Заголовок</h3>
22
+ * </ng-container>
23
+ * </rt-scroll-area>
24
+ * ```
25
+ */
26
+ declare class RtScrollAreaHeaderDirective {
27
+ readonly templateRef: TemplateRef<void>;
28
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtScrollAreaHeaderDirective, never>;
29
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtScrollAreaHeaderDirective, "[rtScrollAreaHeader]", never, {}, {}, never, never, true, never>;
30
+ }
31
+ /** Тело области: единственная часть, которая прокручивается. */
32
+ declare class RtScrollAreaContentDirective {
33
+ readonly templateRef: TemplateRef<void>;
34
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtScrollAreaContentDirective, never>;
35
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtScrollAreaContentDirective, "[rtScrollAreaContent]", never, {}, {}, never, never, true, never>;
36
+ }
37
+ /** Подвал области: стоит снизу и не прокручивается. */
38
+ declare class RtScrollAreaFooterDirective {
39
+ readonly templateRef: TemplateRef<void>;
40
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtScrollAreaFooterDirective, never>;
41
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtScrollAreaFooterDirective, "[rtScrollAreaFooter]", never, {}, {}, never, never, true, never>;
42
+ }
43
+
44
+ /**
45
+ * Область прокрутки: шапка и подвал стоят, тело прокручивается.
46
+ *
47
+ * Части объявляет потребитель — по директиве на каждую. Необъявленная часть не рисуется вовсе:
48
+ * пустая шапка это полоса отступа над списком, а высоту она забирает у тела, ради которого
49
+ * область и открыли.
50
+ *
51
+ * Договорённость — `docs/specs/ui-kit-v2/scroll-area/`.
52
+ */
53
+ declare class RtScrollAreaComponent {
54
+ #private;
55
+ protected readonly t: Signal<TRtKitLabelMap>;
56
+ protected readonly bodyRef: Signal<TNullable<ElementRef<HTMLElement>>>;
57
+ protected readonly footerRef: Signal<TNullable<ElementRef<HTMLElement>>>;
58
+ /**
59
+ * Ниже окна области ещё есть содержимое. Считается по трём числам самого узла, а не по числу
60
+ * пунктов: область не знает, что ей подали, и высота строки у каждого потребителя своя.
61
+ */
62
+ protected readonly hasMoreBelow: WritableSignal<boolean>;
63
+ /**
64
+ * На сколько полоса растушёвки поднята над низом области. Она обязана кончиться там, где
65
+ * начинается содержимое подвала: разделитель потребитель рисует первой его строкой, и полоса,
66
+ * оборвавшаяся выше, оставляет до него чистый фон. Считается замером — верхний отступ подвала
67
+ * потребитель пишет как хочет, и вычесть его в стилях не из чего. Без подвала полоса стоит у
68
+ * самого низа.
69
+ */
70
+ protected readonly hintBottom: WritableSignal<number>;
71
+ readonly headerTpl: Signal<TNullable<RtScrollAreaHeaderDirective>>;
72
+ readonly contentTpl: Signal<TNullable<RtScrollAreaContentDirective>>;
73
+ readonly footerTpl: Signal<TNullable<RtScrollAreaFooterDirective>>;
74
+ /**
75
+ * Признак того, что снизу осталось непоказанное. Выключен по умолчанию: область рисуют
76
+ * десятки экранов, и признак, поставленный безусловно, сдвинул бы вид каждому из них.
77
+ */
78
+ readonly isScrollHintShown: InputSignalWithTransform<boolean, BooleanInput>;
79
+ constructor();
80
+ /**
81
+ * Нажатие на значок уводит тело к самому низу. Нажатие останавливается здесь и в содержимое
82
+ * под значком не уходит: под ним живой пункт, и человек, целившийся в подсказку, уехал бы на
83
+ * чужой экран.
84
+ */
85
+ onScrollHintClick(event: Event): void;
86
+ onBodyScroll(): void;
87
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtScrollAreaComponent, never>;
88
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtScrollAreaComponent, "rt-scroll-area", never, { "isScrollHintShown": { "alias": "isScrollHintShown"; "required": false; "isSignal": true; }; }, {}, ["headerTpl", "contentTpl", "footerTpl"], never, true, never>;
89
+ }
90
+
91
+ export { RtScrollAreaComponent, RtScrollAreaContentDirective, RtScrollAreaFooterDirective, RtScrollAreaHeaderDirective };
@@ -0,0 +1,23 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InputSignal, OutputEmitterRef } from '@angular/core';
3
+ import { IRtIcon } from '@rt-tools/ui-kit-v2/core';
4
+ import * as i1 from '@rt-tools/ui-kit-v2/radius';
5
+
6
+ declare namespace IRtSectionNav {
7
+ interface Item {
8
+ id: string;
9
+ icon: IRtIcon.Name;
10
+ label: string;
11
+ active: boolean;
12
+ }
13
+ }
14
+
15
+ declare class RtSectionNavComponent {
16
+ readonly items: InputSignal<readonly IRtSectionNav.Item[]>;
17
+ readonly itemSelect: OutputEmitterRef<string>;
18
+ protected onSelect(item: IRtSectionNav.Item): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtSectionNavComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtSectionNavComponent, "rt-section-nav", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, { "itemSelect": "itemSelect"; }, never, never, true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
21
+ }
22
+
23
+ export { IRtSectionNav, RtSectionNavComponent };