@rt-tools/ui-kit-v2 0.23.3 → 0.24.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 (354) hide show
  1. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +142 -71
  2. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -1
  3. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +467 -231
  4. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -1
  5. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +260 -91
  6. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -1
  7. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +80 -46
  8. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -1
  9. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +984 -697
  10. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -1
  11. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +452 -210
  12. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -1
  13. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +143 -52
  14. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -1
  15. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +158 -83
  16. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -1
  17. package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs +335 -0
  18. package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs.map +1 -0
  19. package/fesm2022/rt-tools-ui-kit-v2-button.mjs +437 -363
  20. package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -1
  21. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +430 -149
  22. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -1
  23. package/fesm2022/rt-tools-ui-kit-v2-card.mjs +155 -71
  24. package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -1
  25. package/fesm2022/rt-tools-ui-kit-v2-carousel.mjs +155 -0
  26. package/fesm2022/rt-tools-ui-kit-v2-carousel.mjs.map +1 -0
  27. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +215 -110
  28. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -1
  29. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +158 -75
  30. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -1
  31. package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs +769 -0
  32. package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs.map +1 -0
  33. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +462 -253
  34. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -1
  35. package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1276 -1316
  36. package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -1
  37. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +185 -80
  38. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -1
  39. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2321 -2619
  40. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
  41. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +100 -44
  42. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -1
  43. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +290 -155
  44. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -1
  45. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +2097 -858
  46. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -1
  47. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +2247 -1176
  48. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
  49. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +1043 -705
  50. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -1
  51. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +810 -525
  52. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -1
  53. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +158 -138
  54. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -1
  55. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +177 -67
  56. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -1
  57. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +550 -477
  58. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -1
  59. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +185 -168
  60. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -1
  61. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +116 -43
  62. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -1
  63. package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs +585 -0
  64. package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs.map +1 -0
  65. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +755 -259
  66. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -1
  67. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +3266 -1115
  68. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
  69. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +190 -55
  70. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -1
  71. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +283 -103
  72. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -1
  73. package/fesm2022/rt-tools-ui-kit-v2-field.mjs +393 -177
  74. package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -1
  75. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +399 -207
  76. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -1
  77. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +288 -212
  78. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -1
  79. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +262 -116
  80. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -1
  81. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +57 -31
  82. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -1
  83. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +258 -90
  84. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -1
  85. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +249 -215
  86. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -1
  87. package/fesm2022/rt-tools-ui-kit-v2-header.mjs +199 -71
  88. package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -1
  89. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs +231 -0
  90. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs.map +1 -0
  91. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs +336 -0
  92. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs.map +1 -0
  93. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +451 -162
  94. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -1
  95. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +931 -686
  96. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -1
  97. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +664 -491
  98. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -1
  99. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +574 -222
  100. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -1
  101. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +150 -36
  102. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -1
  103. package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs +606 -0
  104. package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs.map +1 -0
  105. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +461 -355
  106. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -1
  107. package/fesm2022/rt-tools-ui-kit-v2-input.mjs +338 -143
  108. package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -1
  109. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +135 -48
  110. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -1
  111. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +166 -92
  112. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -1
  113. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +118 -56
  114. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -1
  115. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +1054 -527
  116. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -1
  117. package/fesm2022/rt-tools-ui-kit-v2-message.mjs +230 -104
  118. package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -1
  119. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +210 -70
  120. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -1
  121. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +532 -311
  122. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -1
  123. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +125 -50
  124. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -1
  125. package/fesm2022/rt-tools-ui-kit-v2-note.mjs +73 -43
  126. package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -1
  127. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +161 -53
  128. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -1
  129. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +491 -310
  130. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
  131. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +374 -174
  132. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -1
  133. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +202 -159
  134. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -1
  135. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +438 -309
  136. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -1
  137. package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs +295 -0
  138. package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs.map +1 -0
  139. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs +135 -45
  140. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs.map +1 -1
  141. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +293 -171
  142. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -1
  143. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +62 -55
  144. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -1
  145. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +3379 -1466
  146. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  147. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +114 -116
  148. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -1
  149. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +406 -299
  150. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
  151. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +137 -36
  152. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -1
  153. package/fesm2022/rt-tools-ui-kit-v2-select.mjs +687 -468
  154. package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
  155. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +2195 -1569
  156. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
  157. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +187 -48
  158. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -1
  159. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +242 -122
  160. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -1
  161. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs +439 -0
  162. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs.map +1 -0
  163. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +218 -69
  164. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -1
  165. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +292 -91
  166. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -1
  167. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +225 -138
  168. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -1
  169. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +150 -116
  170. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -1
  171. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +2462 -1583
  172. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
  173. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +647 -346
  174. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
  175. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +335 -121
  176. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
  177. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +217 -84
  178. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -1
  179. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +151 -72
  180. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -1
  181. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +697 -226
  182. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
  183. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +92 -38
  184. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -1
  185. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +752 -338
  186. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
  187. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +310 -129
  188. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -1
  189. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +286 -158
  190. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -1
  191. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +270 -134
  192. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -1
  193. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +322 -202
  194. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -1
  195. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs +908 -0
  196. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs.map +1 -0
  197. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs +785 -0
  198. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs.map +1 -0
  199. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +118 -63
  200. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -1
  201. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +783 -262
  202. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
  203. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +633 -294
  204. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
  205. package/fesm2022/rt-tools-ui-kit-v2.mjs +100 -103
  206. package/package.json +45 -1
  207. package/src/assets/icons/collapse-all.svg +9 -0
  208. package/src/assets/icons/expand-all.svg +9 -0
  209. package/src/assets/icons-material/collapse-all.fill.svg +5 -0
  210. package/src/assets/icons-material/collapse-all.svg +5 -0
  211. package/src/assets/icons-material/expand-all.fill.svg +5 -0
  212. package/src/assets/icons-material/expand-all.svg +5 -0
  213. package/src/assets/icons-material/undo.fill.svg +5 -0
  214. package/src/assets/icons-material/undo.svg +5 -0
  215. package/src/lib/components/bottom-sheet/CONTEXT.md +20 -2
  216. package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +36 -1
  217. package/src/lib/components/breadcrumbs/CONTEXT.md +37 -0
  218. package/src/lib/components/breadcrumbs/rt-breadcrumbs.component.scss +205 -0
  219. package/src/lib/components/carousel/CONTEXT.md +42 -0
  220. package/src/lib/components/carousel/rt-carousel.component.scss +117 -0
  221. package/src/lib/components/checkbox/CONTEXT.md +3 -0
  222. package/src/lib/components/checkbox/rt-checkbox.component.scss +9 -3
  223. package/src/lib/components/color-palette/CONTEXT.md +49 -0
  224. package/src/lib/components/color-palette/picker/rt-color-picker.component.scss +161 -0
  225. package/src/lib/components/color-palette/rt-color-palette.component.scss +132 -0
  226. package/src/lib/components/draggable-tree/CONTEXT.md +54 -0
  227. package/src/lib/components/draggable-tree/rt-draggable-tree.component.scss +219 -0
  228. package/src/lib/components/hybrid-tree/CONTEXT.md +31 -0
  229. package/src/lib/components/hybrid-tree-selector/CONTEXT.md +25 -0
  230. package/src/lib/components/icon-button/CONTEXT.md +3 -0
  231. package/src/lib/components/inline-edit/CONTEXT.md +41 -0
  232. package/src/lib/components/inline-edit/rt-inline-edit.component.scss +274 -0
  233. package/src/lib/components/popover/CONTEXT.md +3 -0
  234. package/src/lib/components/profile-menu/CONTEXT.md +32 -0
  235. package/src/lib/components/profile-menu/rt-profile-menu.component.scss +104 -0
  236. package/src/lib/components/speed-menu/CONTEXT.md +34 -0
  237. package/src/lib/components/speed-menu/rt-speed-menu.component.scss +118 -0
  238. package/src/lib/components/tag/rt-tag.component.scss +12 -0
  239. package/src/lib/components/thread-list/CONTEXT.md +1 -0
  240. package/src/lib/components/thread-list/rt-thread-list.component.scss +2 -1
  241. package/src/lib/components/toolbar/CONTEXT.md +9 -4
  242. package/src/lib/components/toolbar/rt-toolbar.component.scss +10 -2
  243. package/src/lib/components/tooltip/CONTEXT.md +8 -1
  244. package/src/lib/components/tree/CONTEXT.md +66 -0
  245. package/src/lib/components/tree/rt-tree.component.scss +313 -0
  246. package/src/lib/components/tree-selector/CONTEXT.md +47 -0
  247. package/src/lib/components/tree-selector/rt-tree-selector.component.scss +121 -0
  248. package/src/styles/_primitives.scss +4 -0
  249. package/src/styles/_semantic.scss +5 -0
  250. package/styles/tokens.css +43 -0
  251. package/types/rt-tools-ui-kit-v2-accordion.d.ts +31 -24
  252. package/types/rt-tools-ui-kit-v2-action-bar.d.ts +112 -91
  253. package/types/rt-tools-ui-kit-v2-ai-run-status.d.ts +64 -40
  254. package/types/rt-tools-ui-kit-v2-aside-section.d.ts +13 -10
  255. package/types/rt-tools-ui-kit-v2-aside.d.ts +268 -206
  256. package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +102 -61
  257. package/types/rt-tools-ui-kit-v2-bar-list.d.ts +39 -27
  258. package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +31 -20
  259. package/types/rt-tools-ui-kit-v2-breadcrumbs.d.ts +89 -0
  260. package/types/rt-tools-ui-kit-v2-button.d.ts +119 -59
  261. package/types/rt-tools-ui-kit-v2-calendar.d.ts +151 -86
  262. package/types/rt-tools-ui-kit-v2-card.d.ts +42 -21
  263. package/types/rt-tools-ui-kit-v2-carousel.d.ts +76 -0
  264. package/types/rt-tools-ui-kit-v2-checkbox.d.ts +48 -24
  265. package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +28 -20
  266. package/types/rt-tools-ui-kit-v2-color-palette.d.ts +208 -0
  267. package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +104 -47
  268. package/types/rt-tools-ui-kit-v2-container.d.ts +278 -221
  269. package/types/rt-tools-ui-kit-v2-copy-value.d.ts +39 -24
  270. package/types/rt-tools-ui-kit-v2-core.d.ts +862 -865
  271. package/types/rt-tools-ui-kit-v2-counter-row.d.ts +20 -12
  272. package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -38
  273. package/types/rt-tools-ui-kit-v2-data-list.d.ts +429 -264
  274. package/types/rt-tools-ui-kit-v2-data-table.d.ts +500 -351
  275. package/types/rt-tools-ui-kit-v2-date-picker.d.ts +164 -138
  276. package/types/rt-tools-ui-kit-v2-date-range.d.ts +102 -84
  277. package/types/rt-tools-ui-kit-v2-delta-view.d.ts +16 -13
  278. package/types/rt-tools-ui-kit-v2-detail-list.d.ts +23 -16
  279. package/types/rt-tools-ui-kit-v2-dialog.d.ts +130 -101
  280. package/types/rt-tools-ui-kit-v2-dot-field.d.ts +10 -13
  281. package/types/rt-tools-ui-kit-v2-download-link.d.ts +22 -17
  282. package/types/rt-tools-ui-kit-v2-draggable-tree.d.ts +132 -0
  283. package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +185 -96
  284. package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +904 -404
  285. package/types/rt-tools-ui-kit-v2-empty-state.d.ts +48 -19
  286. package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +67 -39
  287. package/types/rt-tools-ui-kit-v2-field.d.ts +90 -49
  288. package/types/rt-tools-ui-kit-v2-file-card.d.ts +115 -75
  289. package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -48
  290. package/types/rt-tools-ui-kit-v2-file-input.d.ts +53 -36
  291. package/types/rt-tools-ui-kit-v2-file-list.d.ts +5 -8
  292. package/types/rt-tools-ui-kit-v2-filter-control.d.ts +83 -49
  293. package/types/rt-tools-ui-kit-v2-form-control.d.ts +102 -74
  294. package/types/rt-tools-ui-kit-v2-header.d.ts +40 -22
  295. package/types/rt-tools-ui-kit-v2-hybrid-tree-selector.d.ts +14 -0
  296. package/types/rt-tools-ui-kit-v2-hybrid-tree.d.ts +72 -0
  297. package/types/rt-tools-ui-kit-v2-icon-button.d.ts +190 -90
  298. package/types/rt-tools-ui-kit-v2-icon.d.ts +160 -129
  299. package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +151 -111
  300. package/types/rt-tools-ui-kit-v2-image-upload.d.ts +159 -85
  301. package/types/rt-tools-ui-kit-v2-info-item.d.ts +26 -13
  302. package/types/rt-tools-ui-kit-v2-inline-edit.d.ts +194 -0
  303. package/types/rt-tools-ui-kit-v2-input-number.d.ts +102 -53
  304. package/types/rt-tools-ui-kit-v2-input.d.ts +82 -43
  305. package/types/rt-tools-ui-kit-v2-live-badge.d.ts +30 -17
  306. package/types/rt-tools-ui-kit-v2-logo.d.ts +49 -32
  307. package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +26 -17
  308. package/types/rt-tools-ui-kit-v2-menu.d.ts +272 -155
  309. package/types/rt-tools-ui-kit-v2-message.d.ts +59 -33
  310. package/types/rt-tools-ui-kit-v2-money-list.d.ts +36 -18
  311. package/types/rt-tools-ui-kit-v2-multiselect.d.ts +114 -80
  312. package/types/rt-tools-ui-kit-v2-night-grid.d.ts +34 -25
  313. package/types/rt-tools-ui-kit-v2-note.d.ts +12 -9
  314. package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +37 -16
  315. package/types/rt-tools-ui-kit-v2-page-header.d.ts +218 -150
  316. package/types/rt-tools-ui-kit-v2-pagination.d.ts +99 -63
  317. package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +61 -66
  318. package/types/rt-tools-ui-kit-v2-popover.d.ts +116 -55
  319. package/types/rt-tools-ui-kit-v2-profile-menu.d.ts +103 -0
  320. package/types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts +26 -16
  321. package/types/rt-tools-ui-kit-v2-radio-button.d.ts +85 -43
  322. package/types/rt-tools-ui-kit-v2-radius.d.ts +18 -15
  323. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +931 -590
  324. package/types/rt-tools-ui-kit-v2-ripple.d.ts +28 -25
  325. package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +60 -58
  326. package/types/rt-tools-ui-kit-v2-section-nav.d.ts +32 -22
  327. package/types/rt-tools-ui-kit-v2-select.d.ts +182 -139
  328. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +452 -349
  329. package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +53 -20
  330. package/types/rt-tools-ui-kit-v2-skeleton.d.ts +55 -26
  331. package/types/rt-tools-ui-kit-v2-speed-menu.d.ts +131 -0
  332. package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -28
  333. package/types/rt-tools-ui-kit-v2-split-button.d.ts +96 -55
  334. package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +88 -60
  335. package/types/rt-tools-ui-kit-v2-stepper.d.ts +50 -37
  336. package/types/rt-tools-ui-kit-v2-table.d.ts +631 -480
  337. package/types/rt-tools-ui-kit-v2-tabs.d.ts +198 -113
  338. package/types/rt-tools-ui-kit-v2-tag.d.ts +106 -53
  339. package/types/rt-tools-ui-kit-v2-textarea.d.ts +48 -25
  340. package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +28 -26
  341. package/types/rt-tools-ui-kit-v2-thread-list.d.ts +154 -94
  342. package/types/rt-tools-ui-kit-v2-timeline.d.ts +30 -28
  343. package/types/rt-tools-ui-kit-v2-toast.d.ts +174 -98
  344. package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +132 -86
  345. package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +88 -50
  346. package/types/rt-tools-ui-kit-v2-toolbar.d.ts +30 -27
  347. package/types/rt-tools-ui-kit-v2-tooltip.d.ts +65 -41
  348. package/types/rt-tools-ui-kit-v2-tree-selector.d.ts +257 -0
  349. package/types/rt-tools-ui-kit-v2-tree.d.ts +282 -0
  350. package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +21 -24
  351. package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +195 -124
  352. package/types/rt-tools-ui-kit-v2-workspace.d.ts +122 -79
  353. package/types/rt-tools-ui-kit-v2.d.ts +100 -90
  354. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rt-tools-ui-kit-v2-draggable-tree.mjs","names":[],"sources":["../../../projects/ui-kit-v2/src/lib/components/draggable-tree/rt-draggable-tree.directives.ts","../../../projects/ui-kit-v2/src/lib/components/draggable-tree/rt-draggable-tree.logic.ts","../../../projects/ui-kit-v2/src/lib/components/draggable-tree/rt-draggable-tree.component.ts","../../../projects/ui-kit-v2/src/lib/components/draggable-tree/rt-draggable-tree.component.html"],"sourcesContent":["import { inject, Directive, TemplateRef } from '@angular/core';\n\nimport { IRtTree } from '@rt-tools/ui-kit-v2/tree';\n\n/**\n * Разметка приложения вместо подписи строки `rt-draggable-tree`. Узел строки приходит в контексте\n * как `$implicit`.\n */\n@Directive({ selector: 'ng-template[rtDraggableTreeNode]' })\nexport class RtDraggableTreeNodeDirective<TValue> {\n public readonly templateRef: TemplateRef<IRtTree.NodeContext<TValue>> = inject<TemplateRef<IRtTree.NodeContext<TValue>>>(TemplateRef);\n}\n","import { IRtTree } from '@rt-tools/ui-kit-v2/tree';\nimport { IRtDraggableTree } from './rt-draggable-tree.model';\n\ntype TNode<TValue> = IRtTree.Node<TValue>;\ntype TNodes<TValue> = ReadonlyArray<TNode<TValue>>;\n\n/** Где узел лежит: его соседи, место среди них и значение родителя. */\ninterface ILocation<TValue> {\n readonly node: TNode<TValue>;\n readonly siblings: TNodes<TValue>;\n readonly index: number;\n readonly parent: TValue | null;\n}\n\n/** Контейнер — узел с массивом детей, даже пустым: он принимает узлы внутрь. */\nfunction isContainer<TValue>(node: TNode<TValue>): boolean {\n return Array.isArray(node.children);\n}\n\nfunction locate<TValue>(nodes: TNodes<TValue>, value: TValue, parent: TValue | null = null): ILocation<TValue> | null {\n for (let index: number = 0; index < nodes.length; index++) {\n const node: TNode<TValue> = nodes[index];\n if (node.value === value) {\n return { siblings: nodes, node, index, parent };\n }\n const found: ILocation<TValue> | null = locate(node.children ?? [], value, node.value);\n if (found) {\n return found;\n }\n }\n return null;\n}\n\nfunction holds<TValue>(node: TNode<TValue>, value: TValue): boolean {\n return (node.children ?? []).some((child: TNode<TValue>): boolean => child.value === value || holds(child, value));\n}\n\nfunction without<TValue>(nodes: TNodes<TValue>, value: TValue): TNodes<TValue> {\n return nodes\n .filter((node: TNode<TValue>): boolean => node.value !== value)\n .map((node: TNode<TValue>): TNode<TValue> =>\n node.children && holds(node, value) ? { ...node, children: without(node.children, value) } : node\n );\n}\n\nfunction inserted<TValue>(nodes: TNodes<TValue>, moving: TNode<TValue>, drop: IRtDraggableTree.Drop<TValue>): TNodes<TValue> {\n const at: number = nodes.findIndex((node: TNode<TValue>): boolean => node.value === drop.target);\n if (at >= 0 && drop.place !== 'inside') {\n const index: number = drop.place === 'before' ? at : at + 1;\n return [...nodes.slice(0, index), moving, ...nodes.slice(index)];\n }\n return nodes.map((node: TNode<TValue>): TNode<TValue> => {\n if (node.value === drop.target && drop.place === 'inside') {\n return { ...node, children: [...(node.children ?? []), moving] };\n }\n if (node.children && holds(node, drop.target)) {\n return { ...node, children: inserted(node.children, moving, drop) };\n }\n return node;\n });\n}\n\nfunction siblingPlace<TValue>(here: ILocation<TValue>, step: number): IRtDraggableTree.Drop<TValue> | null {\n const next: TNode<TValue> | undefined = here.siblings[here.index + step];\n return next ? { target: next.value, place: step < 0 ? 'before' : 'after' } : null;\n}\n\nfunction levelPlace<TValue>(here: ILocation<TValue>, out: boolean): IRtDraggableTree.Drop<TValue> | null {\n if (out) {\n return here.parent === null ? null : { target: here.parent, place: 'after' };\n }\n const above: TNode<TValue> | undefined = here.siblings[here.index - 1];\n return above && isContainer(above) ? { target: above.value, place: 'inside' } : null;\n}\n\n/**\n * Место сброса по третям высоты строки: верхняя — перед целью, нижняя — после, средняя — внутрь.\n * Средняя треть листа места не даёт: внутрь принимает только контейнер.\n */\nexport function rtDragPlace<TValue>(target: TNode<TValue>, top: number, height: number, pointer: number): IRtDraggableTree.Place | null {\n const third: number = height / 3;\n const offset: number = pointer - top;\n if (offset < third) {\n return 'before';\n }\n if (offset > 2 * third) {\n return 'after';\n }\n return isContainer(target) ? 'inside' : null;\n}\n\n/**\n * Можно ли поставить узел на место: не на себя, не в своё поддерево, внутрь — только в контейнер, и\n * если приложение не запретило.\n */\nexport function rtDragAllowed<TValue>(\n nodes: TNodes<TValue>,\n value: TValue,\n drop: IRtDraggableTree.Drop<TValue>,\n canDrop: IRtDraggableTree.CanDrop<TValue> | null = null\n): boolean {\n const moving: ILocation<TValue> | null = locate(nodes, value);\n const target: ILocation<TValue> | null = locate(nodes, drop.target);\n if (!moving || !target || drop.target === value || holds(moving.node, drop.target)) {\n return false;\n }\n if (drop.place === 'inside' && !isContainer(target.node)) {\n return false;\n }\n return canDrop ? canDrop(moving.node, target.node, drop.place) : true;\n}\n\n/** Переносит узел вместе с поддеревом. Узлы на входе не меняются: ветки на пути строятся заново. */\nexport function rtDragMove<TValue>(\n nodes: TNodes<TValue>,\n value: TValue,\n drop: IRtDraggableTree.Drop<TValue>\n): IRtDraggableTree.MoveResult<TValue> | null {\n const moving: ILocation<TValue> | null = locate(nodes, value);\n if (!moving || !rtDragAllowed(nodes, value, drop)) {\n return null;\n }\n const next: TNodes<TValue> = inserted(without(nodes, value), moving.node, drop);\n const landed: ILocation<TValue> | null = locate(next, value);\n if (!landed) {\n return null;\n }\n return { nodes: next, moved: { node: moving.node, parent: landed.parent, index: landed.index } };\n}\n\n/**\n * Место для переноса клавишей с Alt. Вверх и вниз — среди соседей, влево — сразу после своей ветки,\n * вправо — последним в контейнер, стоящий прямо над узлом. Двигаться некуда — `null`.\n */\nexport function rtDragKeyPlace<TValue>(nodes: TNodes<TValue>, value: TValue, key: string): IRtDraggableTree.Drop<TValue> | null {\n const here: ILocation<TValue> | null = locate(nodes, value);\n if (!here) {\n return null;\n }\n if (key === 'ArrowUp' || key === 'ArrowDown') {\n return siblingPlace(here, key === 'ArrowUp' ? -1 : 1);\n }\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n return levelPlace(here, key === 'ArrowLeft');\n }\n return null;\n}\n","import { CdkDrag, CdkDragHandle, CdkDragMove, CdkDropList } from '@angular/cdk/drag-drop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n computed,\n contentChild,\n inject,\n input,\n model,\n output,\n signal,\n viewChildren,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n InputSignal,\n ModelSignal,\n OutputEmitterRef,\n Signal,\n ViewEncapsulation,\n WritableSignal,\n} from '@angular/core';\n\nimport { BlockDirective, ElemDirective, ModDirective } from '@rt-tools/core';\n\nimport { IRtIcon, RT_KIT_LABELS, TRtKitLabelMap } from '@rt-tools/ui-kit-v2/core';\nimport { RtIconComponent } from '@rt-tools/ui-kit-v2/icon';\nimport { rtTreeRows, rtTreeSideKey, rtTreeToggle } from '@rt-tools/ui-kit-v2/select';\nimport { IRtSelect } from '@rt-tools/ui-kit-v2/select';\nimport { RtTooltipDirective } from '@rt-tools/ui-kit-v2/tooltip';\nimport { IRtTree } from '@rt-tools/ui-kit-v2/tree';\nimport { RtDraggableTreeNodeDirective } from './rt-draggable-tree.directives';\nimport { rtDragAllowed, rtDragKeyPlace, rtDragMove, rtDragPlace } from './rt-draggable-tree.logic';\nimport { IRtDraggableTree } from './rt-draggable-tree.model';\n\nconst BEM_BLOCK: string = 'rt-draggable-tree';\nconst MOVE_KEYS: ReadonlyArray<string> = ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'];\n\n/**\n * Дерево, узлы которого человек переставляет: перетаскиванием строки до, после или внутрь другой,\n * или клавишами с Alt.\n *\n * Строки, уровни и раскрытие считает тот же модуль, что у `rt-tree`. Узлы на входе не меняются:\n * перенос пишет в `nodes` новый массив и сообщает `moved`. Место сброса — чистая функция от рамки\n * строки под указателем; документ дерево не читает.\n */\n@Component({\n selector: 'rt-draggable-tree',\n templateUrl: './rt-draggable-tree.component.html',\n styleUrl: './rt-draggable-tree.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgTemplateOutlet,\n CdkDrag,\n CdkDragHandle,\n CdkDropList,\n RtIconComponent,\n RtTooltipDirective,\n BlockDirective,\n ElemDirective,\n ModDirective,\n ],\n host: {\n class: BEM_BLOCK,\n role: 'tree',\n tabindex: '0',\n '[attr.aria-label]': 'ariaLabel()',\n '(keydown)': 'handleKeydown($event)',\n },\n})\nexport class RtDraggableTreeComponent<TValue> {\n readonly #highlighted: WritableSignal<TValue | null> = signal<TValue | null>(null);\n readonly #dragged: WritableSignal<TValue | null> = signal<TValue | null>(null);\n\n protected readonly t: Signal<TRtKitLabelMap> = inject(RT_KIT_LABELS);\n\n protected readonly nodeTemplate: Signal<RtDraggableTreeNodeDirective<TValue> | undefined> = contentChild(RtDraggableTreeNodeDirective);\n\n protected readonly rowElements: Signal<ReadonlyArray<ElementRef<HTMLElement>>> = viewChildren<ElementRef<HTMLElement>>('row');\n\n /** Место, куда встанет перетаскиваемый узел; `null` — сейчас места нет. */\n protected readonly drop: WritableSignal<IRtDraggableTree.Drop<TValue> | null> = signal<IRtDraggableTree.Drop<TValue> | null>(null);\n\n /**\n * Раскрытые ветки. Пока приложение их не задало и человек ничего не сворачивал, раскрыты все:\n * порядок виден целиком с первого взгляда.\n */\n protected readonly openBranches: Signal<ReadonlySet<TValue>> = computed((): ReadonlySet<TValue> => {\n const open: ReadonlyArray<TValue> | null = this.open();\n if (open !== null) {\n return new Set<TValue>(open);\n }\n const all: Set<TValue> = new Set<TValue>();\n this.#collectBranches(this.nodes(), all);\n return all;\n });\n\n protected readonly rows: Signal<ReadonlyArray<IRtTree.Row<TValue>>> = computed((): ReadonlyArray<IRtTree.Row<TValue>> =>\n rtTreeRows(this.nodes(), this.openBranches(), '')\n );\n\n protected readonly highlighted: Signal<TValue | null> = this.#highlighted.asReadonly();\n\n public readonly nodes: ModelSignal<ReadonlyArray<IRtTree.Node<TValue>>> = model.required<ReadonlyArray<IRtTree.Node<TValue>>>();\n /** Значения раскрытых веток; `null` — раскрыты все. Пара `openChange` приходит на каждое раскрытие. */\n public readonly open: ModelSignal<ReadonlyArray<TValue> | null> = model<ReadonlyArray<TValue> | null>(null);\n public readonly canDrop: InputSignal<IRtDraggableTree.CanDrop<TValue> | null> = input<IRtDraggableTree.CanDrop<TValue> | null>(null);\n public readonly ariaLabel: InputSignal<string | null> = input<string | null>(null);\n /** Значок кита над подписью пустого дерева. Без него пустое дерево — одна подпись. */\n public readonly emptyIcon: InputSignal<IRtIcon.Name | null> = input<IRtIcon.Name | null>(null);\n\n public readonly moved: OutputEmitterRef<IRtDraggableTree.Moved<TValue>> = output<IRtDraggableTree.Moved<TValue>>();\n public readonly picked: OutputEmitterRef<IRtTree.Node<TValue>> = output<IRtTree.Node<TValue>>();\n\n /** Клавиша для дерева. Отвечает, взята ли она: не взятая идёт дальше нетронутой. */\n public handleKeydown(event: KeyboardEvent): boolean {\n const taken: boolean = event.altKey ? this.#moveByKey(event.key) : this.#walkByKey(event.key);\n if (taken) {\n event.preventDefault();\n event.stopPropagation();\n }\n return taken;\n }\n\n protected onRowClick(row: IRtTree.Row<TValue>): void {\n this.#highlighted.set(row.option.value);\n this.picked.emit(row.option);\n }\n\n protected onToggleClick(event: Event, value: TValue): void {\n event.stopPropagation();\n this.#toggle(value);\n }\n\n protected onDragStarted(value: TValue): void {\n this.#dragged.set(value);\n }\n\n protected onDragMoved(event: CdkDragMove<TValue>): void {\n this.drop.set(this.#dropAt(event.pointerPosition.y));\n }\n\n protected onDropped(): void {\n const dragged: TValue | null = this.#dragged();\n const drop: IRtDraggableTree.Drop<TValue> | null = this.drop();\n this.#dragged.set(null);\n this.drop.set(null);\n if (dragged !== null && drop) {\n this.#apply(dragged, drop);\n }\n }\n\n #dropAt(pointer: number): IRtDraggableTree.Drop<TValue> | null {\n const dragged: TValue | null = this.#dragged();\n const rows: ReadonlyArray<IRtTree.Row<TValue>> = this.rows();\n const elements: ReadonlyArray<ElementRef<HTMLElement>> = this.rowElements();\n if (dragged === null) {\n return null;\n }\n const index: number = elements.findIndex((element: ElementRef<HTMLElement>, at: number): boolean => {\n const box: DOMRect = element.nativeElement.getBoundingClientRect();\n return rows[at]?.option.value !== dragged && pointer >= box.top && pointer < box.bottom;\n });\n if (index < 0) {\n return null;\n }\n const box: DOMRect = elements[index].nativeElement.getBoundingClientRect();\n const target: IRtTree.Node<TValue> = rows[index].option;\n const place: IRtDraggableTree.Place | null = rtDragPlace(target, box.top, box.height, pointer);\n const drop: IRtDraggableTree.Drop<TValue> | null = place ? { target: target.value, place } : null;\n return drop && rtDragAllowed(this.nodes(), dragged, drop, this.canDrop()) ? drop : null;\n }\n\n #moveByKey(key: string): boolean {\n const value: TValue | null = this.#highlighted();\n if (!MOVE_KEYS.includes(key)) {\n return false;\n }\n const node: IRtTree.Node<TValue> | undefined = this.rows().find(\n (row: IRtTree.Row<TValue>): boolean => row.option.value === value\n )?.option;\n const drop: IRtDraggableTree.Drop<TValue> | null = node && !node.disabled ? rtDragKeyPlace(this.nodes(), node.value, key) : null;\n if (node && drop && rtDragAllowed(this.nodes(), node.value, drop, this.canDrop())) {\n this.#apply(node.value, drop);\n }\n return true;\n }\n\n #walkByKey(key: string): boolean {\n const rows: ReadonlyArray<IRtTree.Row<TValue>> = this.rows();\n const index: number = rows.findIndex((row: IRtTree.Row<TValue>): boolean => row.option.value === this.#highlighted());\n if (key === 'ArrowDown' || key === 'ArrowUp') {\n return this.#step(rows, index, key === 'ArrowDown' ? 1 : -1);\n }\n if (index < 0) {\n return false;\n }\n if (key === 'ArrowRight' || key === 'ArrowLeft') {\n const answer: IRtSelect.SideKeyAnswer<TValue> = rtTreeSideKey(rows, index, key);\n if (answer.toggle !== null) {\n this.#toggle(answer.toggle);\n }\n this.#highlighted.set(rows[answer.index].option.value);\n return true;\n }\n if (key === 'Enter') {\n this.picked.emit(rows[index].option);\n return true;\n }\n return false;\n }\n\n #step(rows: ReadonlyArray<IRtTree.Row<TValue>>, index: number, step: number): boolean {\n if (rows.length === 0) {\n return false;\n }\n const next: number = index < 0 ? 0 : Math.min(rows.length - 1, Math.max(0, index + step));\n this.#highlighted.set(rows[next].option.value);\n return true;\n }\n\n #apply(value: TValue, drop: IRtDraggableTree.Drop<TValue>): void {\n const result: IRtDraggableTree.MoveResult<TValue> | null = rtDragMove(this.nodes(), value, drop);\n if (!result) {\n return;\n }\n this.nodes.set(result.nodes);\n if (drop.place === 'inside' && !this.openBranches().has(drop.target)) {\n this.open.set([...this.openBranches(), drop.target]);\n }\n this.moved.emit(result.moved);\n }\n\n #toggle(value: TValue): void {\n this.open.set([...rtTreeToggle(this.openBranches(), value)]);\n }\n\n #collectBranches(list: ReadonlyArray<IRtTree.Node<TValue>>, into: Set<TValue>): void {\n list.forEach((node: IRtTree.Node<TValue>): void => {\n if ((node.children ?? []).length > 0) {\n into.add(node.value);\n this.#collectBranches(node.children ?? [], into);\n }\n });\n }\n}\n","<ng-container rtBlock=\"rt-draggable-tree\">\n <!--\n Строки берут мышь через (click), клавиатура — на самом дереве (handleKeydown): строки фокус не\n берут, подсвеченная строка — состояние рядом с фокусом. Строку тянут за ручку; список один на\n всё дерево, и место сброса считает компонент по рамке строки под указателем.\n -->\n <!-- eslint-disable @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n <div rtElem=\"list\" cdkDropList [cdkDropListSortingDisabled]=\"true\" (cdkDropListDropped)=\"onDropped()\">\n @for (row of rows(); track row.option.value) {\n <div\n #row\n rtElem=\"row\"\n qa-dataid=\"draggable-tree-row\"\n role=\"treeitem\"\n cdkDrag\n [cdkDragData]=\"row.option.value\"\n [cdkDragDisabled]=\"!!row.option.disabled\"\n [attr.data-value]=\"row.option.value\"\n [attr.aria-level]=\"row.level + 1\"\n [attr.aria-expanded]=\"row.branch ? row.open : null\"\n [attr.aria-selected]=\"row.option.value === highlighted()\"\n [attr.aria-disabled]=\"!!row.option.disabled\"\n [style.--rt-draggable-tree-level]=\"row.level\"\n [rtMod]=\"{\n highlighted: row.option.value === highlighted(),\n disabled: !!row.option.disabled,\n 'drop-before': drop()?.target === row.option.value && drop()?.place === 'before',\n 'drop-after': drop()?.target === row.option.value && drop()?.place === 'after',\n 'drop-inside': drop()?.target === row.option.value && drop()?.place === 'inside',\n }\"\n (cdkDragStarted)=\"onDragStarted(row.option.value)\"\n (cdkDragMoved)=\"onDragMoved($event)\"\n (click)=\"onRowClick(row)\">\n @if (row.option.disabled) {\n <span rtElem=\"handle-space\"></span>\n } @else {\n <span rtElem=\"handle\" qa-dataid=\"draggable-tree-handle\" cdkDragHandle aria-hidden=\"true\">\n <rt-icon name=\"bars\" size=\"sm\" color=\"muted\" />\n </span>\n }\n\n @if (row.branch) {\n <button\n rtElem=\"toggle\"\n qa-dataid=\"draggable-tree-toggle\"\n type=\"button\"\n tabindex=\"-1\"\n [attr.aria-label]=\"row.open ? t().uiCollapse : t().uiExpand\"\n (click)=\"onToggleClick($event, row.option.value)\">\n <rt-icon size=\"sm\" color=\"muted\" [name]=\"row.open ? 'chevron-down' : 'chevron-right'\" />\n </button>\n } @else {\n <span rtElem=\"toggle-space\"></span>\n }\n\n <span rtElem=\"content\" qa-dataid=\"draggable-tree-content\">\n @if (nodeTemplate(); as template) {\n <ng-container [ngTemplateOutlet]=\"template.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: row.option }\" />\n } @else {\n <span rtElem=\"label\" qa-dataid=\"draggable-tree-label\" rtTooltipWhenTruncated [rtTooltip]=\"row.option.label\">\n {{ row.option.label }}\n </span>\n }\n </span>\n </div>\n } @empty {\n <div rtElem=\"empty\" qa-dataid=\"draggable-tree-empty\" [rtMod]=\"{ 'with-icon': !!emptyIcon() }\">\n @if (emptyIcon(); as icon) {\n <rt-icon rtElem=\"empty-icon\" qa-dataid=\"draggable-tree-empty-icon\" size=\"lg\" [name]=\"icon\" />\n }\n {{ t().uiNoOptions }}\n </div>\n }\n </div>\n</ng-container>\n"],"mappings":"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"}