@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,785 @@
1
+ import { NgTemplateOutlet } from "@angular/common";
2
+ import * as i0 from "@angular/core";
3
+ import { ChangeDetectionStrategy, Component, Directive, TemplateRef, ViewEncapsulation, booleanAttribute, computed, contentChild, inject, input, model, output, signal } from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import { FormsModule } from "@angular/forms";
6
+ import { BlockDirective, ElemDirective, ModDirective } from "@rt-tools/core";
7
+ import { RT_KIT_LABELS } from "@rt-tools/ui-kit-v2/core";
8
+ import { RtCheckboxComponent } from "@rt-tools/ui-kit-v2/checkbox";
9
+ import { RtIconComponent } from "@rt-tools/ui-kit-v2/icon";
10
+ import { RtRadioButtonComponent } from "@rt-tools/ui-kit-v2/radio-button";
11
+ import { RtTagComponent } from "@rt-tools/ui-kit-v2/tag";
12
+ import { RtTooltipDirective } from "@rt-tools/ui-kit-v2/tooltip";
13
+ import { rtTreeBranchState, rtTreeLeaves, rtTreeOpenFor, rtTreeRows, rtTreeSideKey, rtTreeToggle } from "@rt-tools/ui-kit-v2/select";
14
+ import { splitTitleByWords } from "@rt-tools/ui-kit-v2/side-menu";
15
+ var RtTreeNodeEndDirective = class RtTreeNodeEndDirective {
16
+ constructor() {
17
+ this.templateRef = inject(TemplateRef);
18
+ }
19
+ static {
20
+ this.ɵfac = i0.ɵɵngDeclareFactory({
21
+ minVersion: "12.0.0",
22
+ version: "22.2.2",
23
+ ngImport: i0,
24
+ type: RtTreeNodeEndDirective,
25
+ deps: [],
26
+ target: i0.ɵɵFactoryTarget.Directive
27
+ });
28
+ }
29
+ static {
30
+ this.ɵdir = i0.ɵɵngDeclareDirective({
31
+ minVersion: "14.0.0",
32
+ version: "22.2.2",
33
+ type: RtTreeNodeEndDirective,
34
+ isStandalone: true,
35
+ selector: "ng-template[rtTreeNodeEnd]",
36
+ ngImport: i0
37
+ });
38
+ }
39
+ };
40
+ i0.ɵɵngDeclareClassMetadata({
41
+ minVersion: "12.0.0",
42
+ version: "22.2.2",
43
+ ngImport: i0,
44
+ type: RtTreeNodeEndDirective,
45
+ decorators: [{
46
+ type: Directive,
47
+ args: [{ selector: "ng-template[rtTreeNodeEnd]" }]
48
+ }]
49
+ });
50
+ var RtTreeNodeMetaDirective = class RtTreeNodeMetaDirective {
51
+ constructor() {
52
+ this.templateRef = inject(TemplateRef);
53
+ }
54
+ static {
55
+ this.ɵfac = i0.ɵɵngDeclareFactory({
56
+ minVersion: "12.0.0",
57
+ version: "22.2.2",
58
+ ngImport: i0,
59
+ type: RtTreeNodeMetaDirective,
60
+ deps: [],
61
+ target: i0.ɵɵFactoryTarget.Directive
62
+ });
63
+ }
64
+ static {
65
+ this.ɵdir = i0.ɵɵngDeclareDirective({
66
+ minVersion: "14.0.0",
67
+ version: "22.2.2",
68
+ type: RtTreeNodeMetaDirective,
69
+ isStandalone: true,
70
+ selector: "ng-template[rtTreeNodeMeta]",
71
+ ngImport: i0
72
+ });
73
+ }
74
+ };
75
+ i0.ɵɵngDeclareClassMetadata({
76
+ minVersion: "12.0.0",
77
+ version: "22.2.2",
78
+ ngImport: i0,
79
+ type: RtTreeNodeMetaDirective,
80
+ decorators: [{
81
+ type: Directive,
82
+ args: [{ selector: "ng-template[rtTreeNodeMeta]" }]
83
+ }]
84
+ });
85
+ function isBranch(node) {
86
+ return (node.children ?? []).length > 0;
87
+ }
88
+ function without(value, drop) {
89
+ return value.filter((item) => !drop.includes(item));
90
+ }
91
+ function withAll(value, add) {
92
+ return [...value, ...add.filter((item) => !value.includes(item))];
93
+ }
94
+ function rtTreeMark(node, value, cascade) {
95
+ if (cascade && isBranch(node)) return rtTreeBranchState(node, value);
96
+ return value.includes(node.value) ? "all" : "none";
97
+ }
98
+ function rtTreeChoose(node, value, mode, cascade) {
99
+ if (node.disabled || mode === "none") return value;
100
+ if (mode === "single") return [node.value];
101
+ if (cascade && isBranch(node)) {
102
+ const leaves = rtTreeLeaves(node);
103
+ return rtTreeBranchState(node, value) === "all" ? without(value, leaves) : withAll(value, leaves);
104
+ }
105
+ return value.includes(node.value) ? without(value, [node.value]) : withAll(value, [node.value]);
106
+ }
107
+ function rtTreeVisibleLeaves(rows) {
108
+ return rows.flatMap((row) => row.branch && row.open ? [] : rtTreeLeaves(row.option));
109
+ }
110
+ function rtTreeSelectAllMark(rows, value) {
111
+ const leaves = rtTreeVisibleLeaves(rows);
112
+ const count = leaves.filter((leaf) => value.includes(leaf)).length;
113
+ if (count === 0) return "none";
114
+ return count === leaves.length ? "all" : "some";
115
+ }
116
+ function rtTreeSelectAll(rows, value) {
117
+ const leaves = rtTreeVisibleLeaves(rows);
118
+ return rtTreeSelectAllMark(rows, value) === "all" ? without(value, leaves) : withAll(value, leaves);
119
+ }
120
+ function rtTreeLabelParts(node, term) {
121
+ return {
122
+ label: splitTitleByWords(node.label, term),
123
+ description: splitTitleByWords(node.description ?? "", term),
124
+ badges: (node.badges ?? []).map((badge) => splitTitleByWords(badge.text, term))
125
+ };
126
+ }
127
+ function covered(node) {
128
+ return [node.value, ...(node.children ?? []).flatMap((child) => covered(child))];
129
+ }
130
+ function disabledValues(nodes) {
131
+ return nodes.flatMap((node) => [...node.disabled ? [node.value] : [], ...disabledValues(node.children ?? [])]);
132
+ }
133
+ function rtTreeAloneBase(nodes, node, value) {
134
+ const keep = [...covered(node), ...disabledValues(nodes)];
135
+ return value.filter((item) => keep.includes(item));
136
+ }
137
+ function rtTreeChooseAlone(nodes, node, value, cascade) {
138
+ if (node.disabled) return value;
139
+ return rtTreeChoose(node, rtTreeAloneBase(nodes, node, value), "multiple", cascade);
140
+ }
141
+ const BEM_BLOCK = "rt-tree";
142
+ var RtTreeComponent = class RtTreeComponent {
143
+ constructor() {
144
+ this.#open = signal(null, ...ngDevMode ? [{ debugName: "#open" }] : /* istanbul ignore next */ []);
145
+ this.#highlighted = signal(null, ...ngDevMode ? [{ debugName: "#highlighted" }] : /* istanbul ignore next */ []);
146
+ this.t = inject(RT_KIT_LABELS);
147
+ this.nodeEnd = contentChild(RtTreeNodeEndDirective, ...ngDevMode ? [{ debugName: "nodeEnd" }] : /* istanbul ignore next */ []);
148
+ this.nodeMeta = contentChild(RtTreeNodeMetaDirective, ...ngDevMode ? [{ debugName: "nodeMeta" }] : /* istanbul ignore next */ []);
149
+ this.endTemplate = computed(() => this.nodeEndTemplate() ?? this.nodeEnd()?.templateRef ?? null, ...ngDevMode ? [{ debugName: "endTemplate" }] : /* istanbul ignore next */ []);
150
+ this.metaTemplate = computed(() => this.nodeMetaTemplate() ?? this.nodeMeta()?.templateRef ?? null, ...ngDevMode ? [{ debugName: "metaTemplate" }] : /* istanbul ignore next */ []);
151
+ this.openBranches = computed(() => this.#open() ?? rtTreeOpenFor(this.nodes(), this.value()), ...ngDevMode ? [{ debugName: "openBranches" }] : /* istanbul ignore next */ []);
152
+ this.rows = computed(() => rtTreeRows(this.nodes(), this.openBranches(), this.filter() ? this.searchTerm() : ""), ...ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []);
153
+ this.views = computed(() => {
154
+ const value = this.value();
155
+ const cascade = this.cascade();
156
+ const term = this.searchTerm();
157
+ const highlighted = this.#highlighted();
158
+ const mode = this.mode();
159
+ const branchMarks = this.branchMarks();
160
+ const treeDisabled = this.disabled();
161
+ return this.rows().map((row) => {
162
+ const marked = mode !== "none" && (branchMarks || !row.branch);
163
+ const state = this.rowState(row, value, cascade);
164
+ return {
165
+ row,
166
+ marked,
167
+ mark: state.mark,
168
+ radio: state.radio,
169
+ disabled: treeDisabled || !!row.option.disabled,
170
+ count: marked ? null : state.count,
171
+ parts: rtTreeLabelParts(row.option, term),
172
+ highlighted: row.option.value === highlighted
173
+ };
174
+ });
175
+ }, ...ngDevMode ? [{ debugName: "views" }] : /* istanbul ignore next */ []);
176
+ this.selectAllMark = computed(() => this.selectAllMarkOf(this.rows(), this.value()), ...ngDevMode ? [{ debugName: "selectAllMark" }] : /* istanbul ignore next */ []);
177
+ this.isSelectAllShown = computed(() => this.showSelectAll() && this.cascade() && this.mode() === "multiple" && this.rows().length > 0, ...ngDevMode ? [{ debugName: "isSelectAllShown" }] : /* istanbul ignore next */ []);
178
+ this.isSelectAllUnderMark = computed(() => this.views()[0]?.marked ?? false, ...ngDevMode ? [{ debugName: "isSelectAllUnderMark" }] : /* istanbul ignore next */ []);
179
+ this.isSelectAllOverLeaf = computed(() => this.views()[0]?.row.branch === false, ...ngDevMode ? [{ debugName: "isSelectAllOverLeaf" }] : /* istanbul ignore next */ []);
180
+ this.emptyText = computed(() => this.nodes().length > 0 ? this.t().uiNothingFound : this.t().uiNoOptions, ...ngDevMode ? [{ debugName: "emptyText" }] : /* istanbul ignore next */ []);
181
+ this.nodes = input.required(...ngDevMode ? [{ debugName: "nodes" }] : /* istanbul ignore next */ []);
182
+ this.value = model([], ...ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []);
183
+ this.mode = input("multiple", ...ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []);
184
+ this.cascade = input(true, {
185
+ ...ngDevMode ? { debugName: "cascade" } : /* istanbul ignore next */ {},
186
+ transform: booleanAttribute
187
+ });
188
+ this.searchTerm = input("", ...ngDevMode ? [{ debugName: "searchTerm" }] : /* istanbul ignore next */ []);
189
+ this.showSelectAll = input(false, {
190
+ ...ngDevMode ? { debugName: "showSelectAll" } : /* istanbul ignore next */ {},
191
+ transform: booleanAttribute
192
+ });
193
+ this.ariaLabel = input(null, ...ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []);
194
+ this.branchMarks = input(true, {
195
+ ...ngDevMode ? { debugName: "branchMarks" } : /* istanbul ignore next */ {},
196
+ transform: booleanAttribute
197
+ });
198
+ this.exclusive = input(false, {
199
+ ...ngDevMode ? { debugName: "exclusive" } : /* istanbul ignore next */ {},
200
+ transform: booleanAttribute
201
+ });
202
+ this.filter = input(true, {
203
+ ...ngDevMode ? { debugName: "filter" } : /* istanbul ignore next */ {},
204
+ transform: booleanAttribute
205
+ });
206
+ this.emptyIcon = input(null, ...ngDevMode ? [{ debugName: "emptyIcon" }] : /* istanbul ignore next */ []);
207
+ this.nodeEndTemplate = input(null, ...ngDevMode ? [{ debugName: "nodeEndTemplate" }] : /* istanbul ignore next */ []);
208
+ this.nodeMetaTemplate = input(null, ...ngDevMode ? [{ debugName: "nodeMetaTemplate" }] : /* istanbul ignore next */ []);
209
+ this.disabled = input(false, {
210
+ ...ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {},
211
+ transform: booleanAttribute
212
+ });
213
+ this.picked = output();
214
+ }
215
+ #open;
216
+ #highlighted;
217
+ handleKeydown(event) {
218
+ if (this.disabled()) return false;
219
+ const taken = this.#takeKey(event.key, event.ctrlKey || event.metaKey);
220
+ if (taken) {
221
+ event.preventDefault();
222
+ event.stopPropagation();
223
+ }
224
+ return taken;
225
+ }
226
+ expandAll() {
227
+ const all = /* @__PURE__ */ new Set();
228
+ this.#collectBranches(this.nodes(), all);
229
+ this.#open.set(all);
230
+ }
231
+ collapseAll() {
232
+ this.#open.set(/* @__PURE__ */ new Set());
233
+ }
234
+ clearHighlight() {
235
+ this.#highlighted.set(null);
236
+ }
237
+ onRowClick(row, event) {
238
+ if (this.disabled()) return;
239
+ this.#highlighted.set(row.option.value);
240
+ if (row.option.disabled) return;
241
+ if (this.#opensOnly(row)) {
242
+ this.#toggleOrPick(row);
243
+ return;
244
+ }
245
+ this.#choose(this.nextChoice(row.option, event.ctrlKey || event.metaKey));
246
+ }
247
+ onToggleClick(event, value) {
248
+ event.stopPropagation();
249
+ this.#toggle(value);
250
+ }
251
+ onSelectAll() {
252
+ if (this.disabled()) return;
253
+ this.#choose(this.selectAllChoice(this.rows(), this.value()));
254
+ }
255
+ rowState(row, value, cascade) {
256
+ return {
257
+ mark: rtTreeMark(row.option, value, cascade),
258
+ radio: this.mode() === "single",
259
+ count: null
260
+ };
261
+ }
262
+ selectAllMarkOf(rows, value) {
263
+ return rtTreeSelectAllMark(rows, value);
264
+ }
265
+ selectAllChoice(rows, value) {
266
+ return rtTreeSelectAll(rows, value);
267
+ }
268
+ nextChoice(node, additive) {
269
+ if (this.exclusive() && this.mode() === "multiple" && !additive) return rtTreeChooseAlone(this.nodes(), node, this.value(), this.cascade());
270
+ return rtTreeChoose(node, this.value(), this.mode(), this.cascade());
271
+ }
272
+ #opensOnly(row) {
273
+ return this.mode() === "none" || row.branch && !this.branchMarks();
274
+ }
275
+ #toggleOrPick(row) {
276
+ if (row.branch) this.#toggle(row.option.value);
277
+ else this.picked.emit(row.option);
278
+ }
279
+ #collectBranches(list, into) {
280
+ list.forEach((node) => {
281
+ if ((node.children ?? []).length > 0) {
282
+ into.add(node.value);
283
+ this.#collectBranches(node.children ?? [], into);
284
+ }
285
+ });
286
+ }
287
+ #choose(next) {
288
+ this.#open.set(this.openBranches());
289
+ this.value.set(next);
290
+ }
291
+ #toggle(value) {
292
+ this.#open.set(rtTreeToggle(this.openBranches(), value));
293
+ }
294
+ #highlightedIndex() {
295
+ const highlighted = this.#highlighted();
296
+ return this.rows().findIndex((row) => row.option.value === highlighted);
297
+ }
298
+ #takeKey(key, additive) {
299
+ const rows = this.rows();
300
+ const index = this.#highlightedIndex();
301
+ if (key === "ArrowDown" || key === "ArrowUp") return this.#move(rows, index, key === "ArrowDown" ? 1 : -1);
302
+ if (index < 0) return false;
303
+ if (key === "ArrowRight" || key === "ArrowLeft") {
304
+ this.#side(rows, index, key);
305
+ return true;
306
+ }
307
+ if (key === " ") {
308
+ this.#space(rows[index], additive);
309
+ return true;
310
+ }
311
+ if (key === "Enter") {
312
+ this.#enter(rows[index], additive);
313
+ return true;
314
+ }
315
+ return false;
316
+ }
317
+ #move(rows, index, step) {
318
+ if (rows.length === 0) return false;
319
+ const next = index < 0 ? 0 : Math.min(rows.length - 1, Math.max(0, index + step));
320
+ this.#highlighted.set(rows[next].option.value);
321
+ return true;
322
+ }
323
+ #side(rows, index, key) {
324
+ const answer = rtTreeSideKey(rows, index, key);
325
+ if (answer.toggle !== null) this.#toggle(answer.toggle);
326
+ this.#highlighted.set(rows[answer.index].option.value);
327
+ }
328
+ #space(row, additive) {
329
+ if (this.#opensOnly(row) && row.branch) {
330
+ this.#toggle(row.option.value);
331
+ return;
332
+ }
333
+ if (!row.option.disabled && this.mode() !== "none") this.#choose(this.nextChoice(row.option, additive));
334
+ }
335
+ #enter(row, additive) {
336
+ if (this.#opensOnly(row) && row.branch) {
337
+ this.#toggle(row.option.value);
338
+ return;
339
+ }
340
+ if (row.option.disabled) return;
341
+ if (this.mode() !== "none") this.#choose(this.nextChoice(row.option, additive));
342
+ this.picked.emit(row.option);
343
+ }
344
+ static {
345
+ this.ɵfac = i0.ɵɵngDeclareFactory({
346
+ minVersion: "12.0.0",
347
+ version: "22.2.2",
348
+ ngImport: i0,
349
+ type: RtTreeComponent,
350
+ deps: [],
351
+ target: i0.ɵɵFactoryTarget.Component
352
+ });
353
+ }
354
+ static {
355
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
356
+ minVersion: "17.0.0",
357
+ version: "22.2.2",
358
+ type: RtTreeComponent,
359
+ isStandalone: true,
360
+ selector: "rt-tree",
361
+ inputs: {
362
+ nodes: {
363
+ classPropertyName: "nodes",
364
+ publicName: "nodes",
365
+ isSignal: true,
366
+ isRequired: true,
367
+ transformFunction: null
368
+ },
369
+ value: {
370
+ classPropertyName: "value",
371
+ publicName: "value",
372
+ isSignal: true,
373
+ isRequired: false,
374
+ transformFunction: null
375
+ },
376
+ mode: {
377
+ classPropertyName: "mode",
378
+ publicName: "mode",
379
+ isSignal: true,
380
+ isRequired: false,
381
+ transformFunction: null
382
+ },
383
+ cascade: {
384
+ classPropertyName: "cascade",
385
+ publicName: "cascade",
386
+ isSignal: true,
387
+ isRequired: false,
388
+ transformFunction: null
389
+ },
390
+ searchTerm: {
391
+ classPropertyName: "searchTerm",
392
+ publicName: "searchTerm",
393
+ isSignal: true,
394
+ isRequired: false,
395
+ transformFunction: null
396
+ },
397
+ showSelectAll: {
398
+ classPropertyName: "showSelectAll",
399
+ publicName: "showSelectAll",
400
+ isSignal: true,
401
+ isRequired: false,
402
+ transformFunction: null
403
+ },
404
+ ariaLabel: {
405
+ classPropertyName: "ariaLabel",
406
+ publicName: "ariaLabel",
407
+ isSignal: true,
408
+ isRequired: false,
409
+ transformFunction: null
410
+ },
411
+ branchMarks: {
412
+ classPropertyName: "branchMarks",
413
+ publicName: "branchMarks",
414
+ isSignal: true,
415
+ isRequired: false,
416
+ transformFunction: null
417
+ },
418
+ exclusive: {
419
+ classPropertyName: "exclusive",
420
+ publicName: "exclusive",
421
+ isSignal: true,
422
+ isRequired: false,
423
+ transformFunction: null
424
+ },
425
+ filter: {
426
+ classPropertyName: "filter",
427
+ publicName: "filter",
428
+ isSignal: true,
429
+ isRequired: false,
430
+ transformFunction: null
431
+ },
432
+ emptyIcon: {
433
+ classPropertyName: "emptyIcon",
434
+ publicName: "emptyIcon",
435
+ isSignal: true,
436
+ isRequired: false,
437
+ transformFunction: null
438
+ },
439
+ nodeEndTemplate: {
440
+ classPropertyName: "nodeEndTemplate",
441
+ publicName: "nodeEndTemplate",
442
+ isSignal: true,
443
+ isRequired: false,
444
+ transformFunction: null
445
+ },
446
+ nodeMetaTemplate: {
447
+ classPropertyName: "nodeMetaTemplate",
448
+ publicName: "nodeMetaTemplate",
449
+ isSignal: true,
450
+ isRequired: false,
451
+ transformFunction: null
452
+ },
453
+ disabled: {
454
+ classPropertyName: "disabled",
455
+ publicName: "disabled",
456
+ isSignal: true,
457
+ isRequired: false,
458
+ transformFunction: null
459
+ }
460
+ },
461
+ outputs: {
462
+ value: "valueChange",
463
+ picked: "picked"
464
+ },
465
+ host: {
466
+ attributes: { "role": "tree" },
467
+ listeners: { "keydown": "handleKeydown($event)" },
468
+ properties: {
469
+ "attr.tabindex": "disabled() ? -1 : 0",
470
+ "attr.aria-disabled": "disabled() || null",
471
+ "attr.aria-label": "ariaLabel()",
472
+ "attr.aria-multiselectable": "mode() === 'multiple'"
473
+ },
474
+ classAttribute: "rt-tree"
475
+ },
476
+ queries: [{
477
+ propertyName: "nodeEnd",
478
+ first: true,
479
+ predicate: RtTreeNodeEndDirective,
480
+ descendants: true,
481
+ isSignal: true
482
+ }, {
483
+ propertyName: "nodeMeta",
484
+ first: true,
485
+ predicate: RtTreeNodeMetaDirective,
486
+ descendants: true,
487
+ isSignal: true
488
+ }],
489
+ ngImport: i0,
490
+ template: "<ng-container rtBlock=\"rt-tree\">\n <!--\n Строки выбираются мышью через (click); клавиатура — на самом дереве (handleKeydown), строки\n по отдельности фокус не берут: подсветка — третье состояние рядом с фокусом и выбором.\n -->\n <!-- eslint-disable @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n @if (isSelectAllShown()) {\n <div\n rtElem=\"select-all\"\n qa-dataid=\"tree-select-all\"\n role=\"presentation\"\n [rtMod]=\"{ disabled: disabled(), 'over-leaf': isSelectAllOverLeaf() }\"\n (click)=\"onSelectAll()\">\n @if (isSelectAllUnderMark()) {\n <span rtElem=\"toggle-space\"></span>\n }\n <rt-checkbox\n rtElem=\"check\"\n inert\n [disabled]=\"disabled()\"\n [indeterminate]=\"selectAllMark() === 'some'\"\n [ngModel]=\"selectAllMark() === 'all'\"\n [ngModelOptions]=\"{ standalone: true }\" />\n <span rtElem=\"label\">{{ t().uiSelectAll }}</span>\n </div>\n }\n\n @for (view of views(); track view.row.option.value) {\n <div\n rtElem=\"row\"\n qa-dataid=\"tree-row\"\n role=\"treeitem\"\n [attr.data-value]=\"view.row.option.value\"\n [attr.aria-level]=\"view.row.level + 1\"\n [attr.aria-expanded]=\"view.row.branch ? view.row.open : null\"\n [attr.aria-selected]=\"view.marked ? view.mark === 'all' : null\"\n [attr.aria-disabled]=\"view.disabled\"\n [style.--rt-tree-level]=\"view.row.level\"\n [rtMod]=\"{ highlighted: view.highlighted, disabled: view.disabled, chosen: view.mark === 'all' }\"\n (click)=\"onRowClick(view.row, $event)\">\n @if (view.row.branch) {\n <button\n rtElem=\"toggle\"\n qa-dataid=\"tree-row-toggle\"\n type=\"button\"\n tabindex=\"-1\"\n [attr.aria-label]=\"view.row.open ? t().uiCollapse : t().uiExpand\"\n (click)=\"onToggleClick($event, view.row.option.value)\">\n <rt-icon size=\"sm\" color=\"muted\" [name]=\"view.row.open ? 'chevron-down' : 'chevron-right'\" />\n </button>\n } @else {\n <span rtElem=\"toggle-space\"></span>\n }\n\n @if (view.marked && !view.radio) {\n <rt-checkbox\n rtElem=\"check\"\n qa-dataid=\"tree-row-checkbox\"\n inert\n [disabled]=\"view.disabled\"\n [indeterminate]=\"view.mark === 'some'\"\n [ngModel]=\"view.mark === 'all'\"\n [ngModelOptions]=\"{ standalone: true }\" />\n } @else if (view.marked) {\n <rt-radio-button\n rtElem=\"check\"\n qa-dataid=\"tree-row-radio\"\n inert\n [value]=\"view.row.option.value\"\n [checked]=\"view.mark === 'all'\"\n [disabled]=\"view.disabled\" />\n }\n\n <span rtElem=\"text\">\n <span rtElem=\"label\" qa-dataid=\"tree-row-label\" rtTooltipWhenTruncated [rtTooltip]=\"view.row.option.label\">\n @for (part of view.parts.label; track $index) {\n <span rtElem=\"part\" [rtMod]=\"{ match: part.matched }\">{{ part.text }}</span>\n }\n </span>\n @if (view.parts.description.length > 0) {\n <span\n rtElem=\"description\"\n qa-dataid=\"tree-row-description\"\n rtTooltipWhenTruncated\n [rtTooltip]=\"view.row.option.description\">\n @for (part of view.parts.description; track $index) {\n <span rtElem=\"part\" [rtMod]=\"{ match: part.matched }\">{{ part.text }}</span>\n }\n </span>\n }\n @if (view.row.option.badges?.length || metaTemplate()) {\n <span rtElem=\"meta\" qa-dataid=\"tree-row-meta\">\n @for (badge of view.row.option.badges; track $index) {\n <rt-tag size=\"sm\" [value]=\"badge.text\" [severity]=\"badge.severity ?? 'neutral'\" [highlight]=\"searchTerm()\" />\n }\n @if (metaTemplate(); as meta) {\n <ng-container [ngTemplateOutlet]=\"meta\" [ngTemplateOutletContext]=\"{ $implicit: view.row.option }\" />\n }\n </span>\n }\n </span>\n\n @if (view.count) {\n <span rtElem=\"count\" qa-dataid=\"tree-row-count\">{{ view.count }}</span>\n }\n\n @if (endTemplate(); as end) {\n <span rtElem=\"end\" qa-dataid=\"tree-row-end\">\n <ng-container [ngTemplateOutlet]=\"end\" [ngTemplateOutletContext]=\"{ $implicit: view.row.option }\" />\n </span>\n }\n </div>\n } @empty {\n <div rtElem=\"empty\" qa-dataid=\"tree-empty\" [rtMod]=\"{ 'with-icon': !!emptyIcon() }\">\n @if (emptyIcon(); as icon) {\n <rt-icon rtElem=\"empty-icon\" qa-dataid=\"tree-empty-icon\" size=\"lg\" [name]=\"icon\" />\n }\n {{ emptyText() }}\n </div>\n }\n</ng-container>\n",
491
+ styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-tree{--rt-tree-font-size: var(--rt-input-font-size);--rt-tree-color: var(--rt-color-text-primary);--rt-tree-indent: var(--rt-space-lg);--rt-tree-row-padding-block: var(--rt-space-sm);--rt-tree-row-padding-inline: var(--rt-space-md);--rt-tree-row-gap: var(--rt-space-sm);--rt-tree-row-spacing: var(--rt-space-0);--rt-tree-row-min-height: auto;--rt-tree-row-box-sizing: content-box;--rt-tree-row-radius: var(--rt-radius-none);--rt-tree-row-bg-hover: var(--rt-color-bg-hover);--rt-tree-row-bg-highlighted: var(--rt-color-bg-hover);--rt-tree-row-bg-chosen: var(--rt-color-action-primary-subtle);--rt-tree-guide-width: var(--rt-border-width-thin);--rt-tree-guide-color: transparent;--rt-tree-toggle-size: var(--rt-input-icon-size);--rt-tree-toggle-color: var(--rt-neutral-600);--rt-tree-leaf-space-display: inline-flex;--rt-tree-check-size: calc(var(--rt-size-4) + var(--rt-space-0-5));--rt-tree-check-border-color: var(--rt-color-border-strong);--rt-tree-match-bg: var(--rt-yellow-400);--rt-tree-match-color: var(--rt-neutral-950);--rt-tree-match-radius: var(--rt-radius-xs);--rt-tree-match-font-weight: var(--rt-font-weight-regular);--rt-tree-count-color: var(--rt-color-text-muted);--rt-tree-count-bg: transparent;--rt-tree-count-font-size: var(--rt-text-sm);--rt-tree-count-padding-inline: var(--rt-space-0);--rt-tree-count-min-size: auto;--rt-tree-count-radius: var(--rt-radius-none);--rt-tree-select-all-font-size: var(--rt-tree-font-size);--rt-tree-select-all-font-weight: var(--rt-font-weight-regular);--rt-tree-empty-color: var(--rt-color-text-muted);--rt-tree-empty-gap: var(--rt-space-sm);--rt-tree-focus-shadow: var(--rt-shadow-focus-ring);--rt-tree-border-width: var(--rt-border-width-thin);--rt-tree-bg: var(--rt-color-bg-surface);--rt-tree-select-all-bg: var(--rt-tree-bg);--rt-tree-select-all-z: var(--rt-z-sticky);display:block;background-color:var(--rt-tree-bg);color:var(--rt-tree-color);font-size:var(--rt-tree-font-size);isolation:isolate;outline:none}@media(pointer:coarse){.rt-tree{--rt-tree-row-min-height: var(--rt-control-height-lg)}}:is(.rt-preset-material,[data-preset=material]) .rt-tree{--rt-tree-indent: calc(var(--rt-size-12) - var(--rt-space-0-5));--rt-tree-row-padding-block: var(--rt-space-1);--rt-tree-row-padding-inline: calc(var(--rt-space-2) + var(--rt-space-1));--rt-tree-row-gap: calc(var(--rt-space-2) + var(--rt-space-0-5));--rt-tree-row-spacing: calc(var(--rt-space-1) + var(--rt-space-0-5) / 2);--rt-tree-row-min-height: var(--rt-size-8);--rt-tree-row-box-sizing: border-box;--rt-tree-row-radius: var(--rt-radius-ms);--rt-tree-guide-color: var(--mat-sys-outline-variant, var(--rt-color-border-subtle));--rt-tree-toggle-color: var(--rt-color-action-primary);--rt-tree-leaf-space-display: none;--rt-tree-check-size: calc(var(--rt-size-4) - 2 * var(--rt-input-border-width));--rt-tree-check-border-color: var(--rt-mat-neutral-40);--rt-tree-match-bg: var(--rt-mat-yellow-100);--rt-tree-match-font-weight: var(--rt-font-weight-semibold);--rt-tree-count-bg: var(--rt-color-action-primary);--rt-tree-count-color: var(--mat-sys-on-primary, var(--rt-color-text-inverse));--rt-tree-count-font-size: var(--rt-text-xs);--rt-tree-count-padding-inline: calc(var(--rt-space-1) + var(--rt-space-0-5));--rt-tree-count-min-size: var(--rt-size-5);--rt-tree-count-radius: var(--rt-radius-full);--rt-tree-select-all-font-size: var(--rt-text-sm);--rt-tree-select-all-font-weight: var(--rt-font-weight-medium)}@media(pointer:coarse){:is(.rt-preset-material,[data-preset=material]) .rt-tree{--rt-tree-row-min-height: var(--rt-control-height-lg)}}.rt-tree:focus-visible{box-shadow:var(--rt-tree-focus-shadow)}.rt-tree__select-all,.rt-tree__row{--rt-tree-level: 0;display:flex;box-sizing:var(--rt-tree-row-box-sizing);align-items:center;padding:var(--rt-tree-row-padding-block) var(--rt-tree-row-padding-inline);border-radius:var(--rt-tree-row-radius);cursor:pointer;gap:var(--rt-tree-row-gap);min-block-size:var(--rt-tree-row-min-height);padding-inline-start:calc(var(--rt-tree-row-padding-inline) + var(--rt-tree-indent) * var(--rt-tree-level))}.rt-tree__select-all:hover,.rt-tree__row:hover{background-color:var(--rt-tree-row-bg-hover)}.rt-tree__select-all{position:sticky;z-index:var(--rt-tree-select-all-z);top:0;border-bottom:var(--rt-tree-border-width) solid var(--rt-color-border-default);background-color:var(--rt-tree-select-all-bg)}.rt-tree__select-all:hover{background-color:var(--rt-tree-select-all-bg);background-image:linear-gradient(var(--rt-tree-row-bg-hover),var(--rt-tree-row-bg-hover))}.rt-tree__select-all--disabled{cursor:not-allowed;opacity:var(--rt-input-disabled-opacity)}.rt-tree__select-all .rt-tree__label{font-size:var(--rt-tree-select-all-font-size);font-weight:var(--rt-tree-select-all-font-weight)}.rt-tree__row{position:relative}.rt-tree__row+.rt-tree__row{margin-block-start:var(--rt-tree-row-spacing)}.rt-tree__row:before{position:absolute;background:repeating-linear-gradient(to right,var(--rt-tree-guide-color) 0 var(--rt-tree-guide-width),transparent var(--rt-tree-guide-width) var(--rt-tree-indent));content:\"\";inline-size:calc(var(--rt-tree-indent) * var(--rt-tree-level));inset-block:calc(-1 * var(--rt-tree-row-spacing)) 0;inset-inline-start:calc(var(--rt-tree-row-padding-inline) + (var(--rt-tree-toggle-size) - var(--rt-tree-guide-width)) / 2);pointer-events:none}.rt-tree__row--highlighted{background-color:var(--rt-tree-row-bg-highlighted)}.rt-tree__row--chosen{background-color:var(--rt-tree-row-bg-chosen)}.rt-tree__row--disabled{cursor:not-allowed;opacity:var(--rt-input-disabled-opacity)}.rt-tree__row--disabled:hover{background-color:transparent}.rt-tree__toggle,.rt-tree__toggle-space{display:inline-flex;flex-shrink:0;block-size:var(--rt-tree-toggle-size);inline-size:var(--rt-tree-toggle-size)}.rt-tree__row>.rt-tree__toggle-space,.rt-tree__select-all--over-leaf>.rt-tree__toggle-space{display:var(--rt-tree-leaf-space-display)}.rt-tree__toggle{--rt-icon-color-muted: var(--rt-tree-toggle-color);align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer}.rt-tree__check{--rt-checkbox-box-size: var(--rt-tree-check-size);--rt-checkbox-box-border-color: var(--rt-tree-check-border-color);flex-shrink:0;margin:0;pointer-events:none}.rt-tree__text{display:flex;min-width:0;flex:1 1 auto;flex-direction:column}.rt-tree__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-tree__description{overflow:hidden;color:var(--rt-color-text-muted);font-size:var(--rt-text-sm);text-overflow:ellipsis;white-space:nowrap}.rt-tree__meta{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:var(--rt-space-1);margin-block-start:var(--rt-space-1)}.rt-tree__part--match{border-radius:var(--rt-tree-match-radius);background:var(--rt-tree-match-bg);color:var(--rt-tree-match-color);font-weight:var(--rt-tree-match-font-weight)}.rt-tree__count{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--rt-tree-count-radius);background:var(--rt-tree-count-bg);color:var(--rt-tree-count-color);font-size:var(--rt-tree-count-font-size);font-variant-numeric:tabular-nums;min-block-size:var(--rt-tree-count-min-size);min-inline-size:var(--rt-tree-count-min-size);padding-inline:var(--rt-tree-count-padding-inline)}.rt-tree__end{display:inline-flex;flex-shrink:0;align-items:center;margin-inline-start:auto}.rt-tree__empty{padding:var(--rt-space-md);color:var(--rt-tree-empty-color);text-align:center}.rt-tree__empty--with-icon{display:flex;flex-direction:column;align-items:center;gap:var(--rt-tree-empty-gap)}.rt-tree__empty-icon{flex-shrink:0}}\n"],
492
+ dependencies: [
493
+ {
494
+ kind: "directive",
495
+ type: NgTemplateOutlet,
496
+ selector: "[ngTemplateOutlet]",
497
+ inputs: [
498
+ "ngTemplateOutletContext",
499
+ "ngTemplateOutlet",
500
+ "ngTemplateOutletInjector"
501
+ ]
502
+ },
503
+ {
504
+ kind: "ngmodule",
505
+ type: FormsModule
506
+ },
507
+ {
508
+ kind: "directive",
509
+ type: i1.NgControlStatus,
510
+ selector: "[formControlName],[ngModel],[formControl]"
511
+ },
512
+ {
513
+ kind: "directive",
514
+ type: i1.NgModel,
515
+ selector: "[ngModel]:not([formControlName]):not([formControl])",
516
+ inputs: [
517
+ "name",
518
+ "disabled",
519
+ "ngModel",
520
+ "ngModelOptions"
521
+ ],
522
+ outputs: ["ngModelChange"],
523
+ exportAs: ["ngModel"]
524
+ },
525
+ {
526
+ kind: "component",
527
+ type: RtCheckboxComponent,
528
+ selector: "rt-checkbox",
529
+ inputs: [
530
+ "inputId",
531
+ "ariaLabel",
532
+ "disabled",
533
+ "indeterminate"
534
+ ]
535
+ },
536
+ {
537
+ kind: "component",
538
+ type: RtIconComponent,
539
+ selector: "rt-icon",
540
+ inputs: [
541
+ "name",
542
+ "glyph",
543
+ "glyphStrategy",
544
+ "size",
545
+ "color",
546
+ "fill",
547
+ "spin",
548
+ "rotate"
549
+ ]
550
+ },
551
+ {
552
+ kind: "component",
553
+ type: RtRadioButtonComponent,
554
+ selector: "rt-radio-button",
555
+ inputs: [
556
+ "value",
557
+ "checked",
558
+ "disabled",
559
+ "card",
560
+ "label",
561
+ "description",
562
+ "ariaLabel"
563
+ ],
564
+ outputs: ["clickAction", "checkedChange"]
565
+ },
566
+ {
567
+ kind: "component",
568
+ type: RtTagComponent,
569
+ selector: "rt-tag",
570
+ inputs: [
571
+ "value",
572
+ "highlight",
573
+ "severity",
574
+ "size",
575
+ "appearance",
576
+ "icon",
577
+ "iconEnd",
578
+ "closable"
579
+ ],
580
+ outputs: ["closed"]
581
+ },
582
+ {
583
+ kind: "directive",
584
+ type: RtTooltipDirective,
585
+ selector: "[rtTooltip]",
586
+ inputs: [
587
+ "rtTooltip",
588
+ "rtTooltipPlacement",
589
+ "rtTooltipWhenTruncated",
590
+ "rtTooltipHideOnClick"
591
+ ],
592
+ exportAs: ["rtTooltip"]
593
+ },
594
+ {
595
+ kind: "directive",
596
+ type: BlockDirective,
597
+ selector: "[rtBlock]",
598
+ inputs: ["rtMod"]
599
+ },
600
+ {
601
+ kind: "directive",
602
+ type: ElemDirective,
603
+ selector: "[rtElem]",
604
+ inputs: ["rtMod"]
605
+ },
606
+ {
607
+ kind: "directive",
608
+ type: ModDirective,
609
+ selector: "[rtMod]"
610
+ }
611
+ ],
612
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
613
+ encapsulation: i0.ViewEncapsulation.None
614
+ });
615
+ }
616
+ };
617
+ i0.ɵɵngDeclareClassMetadata({
618
+ minVersion: "12.0.0",
619
+ version: "22.2.2",
620
+ ngImport: i0,
621
+ type: RtTreeComponent,
622
+ decorators: [{
623
+ type: Component,
624
+ args: [{
625
+ selector: "rt-tree",
626
+ changeDetection: ChangeDetectionStrategy.OnPush,
627
+ encapsulation: ViewEncapsulation.None,
628
+ imports: [
629
+ NgTemplateOutlet,
630
+ FormsModule,
631
+ RtCheckboxComponent,
632
+ RtIconComponent,
633
+ RtRadioButtonComponent,
634
+ RtTagComponent,
635
+ RtTooltipDirective,
636
+ BlockDirective,
637
+ ElemDirective,
638
+ ModDirective
639
+ ],
640
+ host: {
641
+ class: BEM_BLOCK,
642
+ role: "tree",
643
+ "[attr.tabindex]": "disabled() ? -1 : 0",
644
+ "[attr.aria-disabled]": "disabled() || null",
645
+ "[attr.aria-label]": "ariaLabel()",
646
+ "[attr.aria-multiselectable]": "mode() === 'multiple'",
647
+ "(keydown)": "handleKeydown($event)"
648
+ },
649
+ template: "<ng-container rtBlock=\"rt-tree\">\n <!--\n Строки выбираются мышью через (click); клавиатура — на самом дереве (handleKeydown), строки\n по отдельности фокус не берут: подсветка — третье состояние рядом с фокусом и выбором.\n -->\n <!-- eslint-disable @angular-eslint/template/click-events-have-key-events, @angular-eslint/template/interactive-supports-focus -->\n @if (isSelectAllShown()) {\n <div\n rtElem=\"select-all\"\n qa-dataid=\"tree-select-all\"\n role=\"presentation\"\n [rtMod]=\"{ disabled: disabled(), 'over-leaf': isSelectAllOverLeaf() }\"\n (click)=\"onSelectAll()\">\n @if (isSelectAllUnderMark()) {\n <span rtElem=\"toggle-space\"></span>\n }\n <rt-checkbox\n rtElem=\"check\"\n inert\n [disabled]=\"disabled()\"\n [indeterminate]=\"selectAllMark() === 'some'\"\n [ngModel]=\"selectAllMark() === 'all'\"\n [ngModelOptions]=\"{ standalone: true }\" />\n <span rtElem=\"label\">{{ t().uiSelectAll }}</span>\n </div>\n }\n\n @for (view of views(); track view.row.option.value) {\n <div\n rtElem=\"row\"\n qa-dataid=\"tree-row\"\n role=\"treeitem\"\n [attr.data-value]=\"view.row.option.value\"\n [attr.aria-level]=\"view.row.level + 1\"\n [attr.aria-expanded]=\"view.row.branch ? view.row.open : null\"\n [attr.aria-selected]=\"view.marked ? view.mark === 'all' : null\"\n [attr.aria-disabled]=\"view.disabled\"\n [style.--rt-tree-level]=\"view.row.level\"\n [rtMod]=\"{ highlighted: view.highlighted, disabled: view.disabled, chosen: view.mark === 'all' }\"\n (click)=\"onRowClick(view.row, $event)\">\n @if (view.row.branch) {\n <button\n rtElem=\"toggle\"\n qa-dataid=\"tree-row-toggle\"\n type=\"button\"\n tabindex=\"-1\"\n [attr.aria-label]=\"view.row.open ? t().uiCollapse : t().uiExpand\"\n (click)=\"onToggleClick($event, view.row.option.value)\">\n <rt-icon size=\"sm\" color=\"muted\" [name]=\"view.row.open ? 'chevron-down' : 'chevron-right'\" />\n </button>\n } @else {\n <span rtElem=\"toggle-space\"></span>\n }\n\n @if (view.marked && !view.radio) {\n <rt-checkbox\n rtElem=\"check\"\n qa-dataid=\"tree-row-checkbox\"\n inert\n [disabled]=\"view.disabled\"\n [indeterminate]=\"view.mark === 'some'\"\n [ngModel]=\"view.mark === 'all'\"\n [ngModelOptions]=\"{ standalone: true }\" />\n } @else if (view.marked) {\n <rt-radio-button\n rtElem=\"check\"\n qa-dataid=\"tree-row-radio\"\n inert\n [value]=\"view.row.option.value\"\n [checked]=\"view.mark === 'all'\"\n [disabled]=\"view.disabled\" />\n }\n\n <span rtElem=\"text\">\n <span rtElem=\"label\" qa-dataid=\"tree-row-label\" rtTooltipWhenTruncated [rtTooltip]=\"view.row.option.label\">\n @for (part of view.parts.label; track $index) {\n <span rtElem=\"part\" [rtMod]=\"{ match: part.matched }\">{{ part.text }}</span>\n }\n </span>\n @if (view.parts.description.length > 0) {\n <span\n rtElem=\"description\"\n qa-dataid=\"tree-row-description\"\n rtTooltipWhenTruncated\n [rtTooltip]=\"view.row.option.description\">\n @for (part of view.parts.description; track $index) {\n <span rtElem=\"part\" [rtMod]=\"{ match: part.matched }\">{{ part.text }}</span>\n }\n </span>\n }\n @if (view.row.option.badges?.length || metaTemplate()) {\n <span rtElem=\"meta\" qa-dataid=\"tree-row-meta\">\n @for (badge of view.row.option.badges; track $index) {\n <rt-tag size=\"sm\" [value]=\"badge.text\" [severity]=\"badge.severity ?? 'neutral'\" [highlight]=\"searchTerm()\" />\n }\n @if (metaTemplate(); as meta) {\n <ng-container [ngTemplateOutlet]=\"meta\" [ngTemplateOutletContext]=\"{ $implicit: view.row.option }\" />\n }\n </span>\n }\n </span>\n\n @if (view.count) {\n <span rtElem=\"count\" qa-dataid=\"tree-row-count\">{{ view.count }}</span>\n }\n\n @if (endTemplate(); as end) {\n <span rtElem=\"end\" qa-dataid=\"tree-row-end\">\n <ng-container [ngTemplateOutlet]=\"end\" [ngTemplateOutletContext]=\"{ $implicit: view.row.option }\" />\n </span>\n }\n </div>\n } @empty {\n <div rtElem=\"empty\" qa-dataid=\"tree-empty\" [rtMod]=\"{ 'with-icon': !!emptyIcon() }\">\n @if (emptyIcon(); as icon) {\n <rt-icon rtElem=\"empty-icon\" qa-dataid=\"tree-empty-icon\" size=\"lg\" [name]=\"icon\" />\n }\n {{ emptyText() }}\n </div>\n }\n</ng-container>\n",
650
+ styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-tree{--rt-tree-font-size: var(--rt-input-font-size);--rt-tree-color: var(--rt-color-text-primary);--rt-tree-indent: var(--rt-space-lg);--rt-tree-row-padding-block: var(--rt-space-sm);--rt-tree-row-padding-inline: var(--rt-space-md);--rt-tree-row-gap: var(--rt-space-sm);--rt-tree-row-spacing: var(--rt-space-0);--rt-tree-row-min-height: auto;--rt-tree-row-box-sizing: content-box;--rt-tree-row-radius: var(--rt-radius-none);--rt-tree-row-bg-hover: var(--rt-color-bg-hover);--rt-tree-row-bg-highlighted: var(--rt-color-bg-hover);--rt-tree-row-bg-chosen: var(--rt-color-action-primary-subtle);--rt-tree-guide-width: var(--rt-border-width-thin);--rt-tree-guide-color: transparent;--rt-tree-toggle-size: var(--rt-input-icon-size);--rt-tree-toggle-color: var(--rt-neutral-600);--rt-tree-leaf-space-display: inline-flex;--rt-tree-check-size: calc(var(--rt-size-4) + var(--rt-space-0-5));--rt-tree-check-border-color: var(--rt-color-border-strong);--rt-tree-match-bg: var(--rt-yellow-400);--rt-tree-match-color: var(--rt-neutral-950);--rt-tree-match-radius: var(--rt-radius-xs);--rt-tree-match-font-weight: var(--rt-font-weight-regular);--rt-tree-count-color: var(--rt-color-text-muted);--rt-tree-count-bg: transparent;--rt-tree-count-font-size: var(--rt-text-sm);--rt-tree-count-padding-inline: var(--rt-space-0);--rt-tree-count-min-size: auto;--rt-tree-count-radius: var(--rt-radius-none);--rt-tree-select-all-font-size: var(--rt-tree-font-size);--rt-tree-select-all-font-weight: var(--rt-font-weight-regular);--rt-tree-empty-color: var(--rt-color-text-muted);--rt-tree-empty-gap: var(--rt-space-sm);--rt-tree-focus-shadow: var(--rt-shadow-focus-ring);--rt-tree-border-width: var(--rt-border-width-thin);--rt-tree-bg: var(--rt-color-bg-surface);--rt-tree-select-all-bg: var(--rt-tree-bg);--rt-tree-select-all-z: var(--rt-z-sticky);display:block;background-color:var(--rt-tree-bg);color:var(--rt-tree-color);font-size:var(--rt-tree-font-size);isolation:isolate;outline:none}@media(pointer:coarse){.rt-tree{--rt-tree-row-min-height: var(--rt-control-height-lg)}}:is(.rt-preset-material,[data-preset=material]) .rt-tree{--rt-tree-indent: calc(var(--rt-size-12) - var(--rt-space-0-5));--rt-tree-row-padding-block: var(--rt-space-1);--rt-tree-row-padding-inline: calc(var(--rt-space-2) + var(--rt-space-1));--rt-tree-row-gap: calc(var(--rt-space-2) + var(--rt-space-0-5));--rt-tree-row-spacing: calc(var(--rt-space-1) + var(--rt-space-0-5) / 2);--rt-tree-row-min-height: var(--rt-size-8);--rt-tree-row-box-sizing: border-box;--rt-tree-row-radius: var(--rt-radius-ms);--rt-tree-guide-color: var(--mat-sys-outline-variant, var(--rt-color-border-subtle));--rt-tree-toggle-color: var(--rt-color-action-primary);--rt-tree-leaf-space-display: none;--rt-tree-check-size: calc(var(--rt-size-4) - 2 * var(--rt-input-border-width));--rt-tree-check-border-color: var(--rt-mat-neutral-40);--rt-tree-match-bg: var(--rt-mat-yellow-100);--rt-tree-match-font-weight: var(--rt-font-weight-semibold);--rt-tree-count-bg: var(--rt-color-action-primary);--rt-tree-count-color: var(--mat-sys-on-primary, var(--rt-color-text-inverse));--rt-tree-count-font-size: var(--rt-text-xs);--rt-tree-count-padding-inline: calc(var(--rt-space-1) + var(--rt-space-0-5));--rt-tree-count-min-size: var(--rt-size-5);--rt-tree-count-radius: var(--rt-radius-full);--rt-tree-select-all-font-size: var(--rt-text-sm);--rt-tree-select-all-font-weight: var(--rt-font-weight-medium)}@media(pointer:coarse){:is(.rt-preset-material,[data-preset=material]) .rt-tree{--rt-tree-row-min-height: var(--rt-control-height-lg)}}.rt-tree:focus-visible{box-shadow:var(--rt-tree-focus-shadow)}.rt-tree__select-all,.rt-tree__row{--rt-tree-level: 0;display:flex;box-sizing:var(--rt-tree-row-box-sizing);align-items:center;padding:var(--rt-tree-row-padding-block) var(--rt-tree-row-padding-inline);border-radius:var(--rt-tree-row-radius);cursor:pointer;gap:var(--rt-tree-row-gap);min-block-size:var(--rt-tree-row-min-height);padding-inline-start:calc(var(--rt-tree-row-padding-inline) + var(--rt-tree-indent) * var(--rt-tree-level))}.rt-tree__select-all:hover,.rt-tree__row:hover{background-color:var(--rt-tree-row-bg-hover)}.rt-tree__select-all{position:sticky;z-index:var(--rt-tree-select-all-z);top:0;border-bottom:var(--rt-tree-border-width) solid var(--rt-color-border-default);background-color:var(--rt-tree-select-all-bg)}.rt-tree__select-all:hover{background-color:var(--rt-tree-select-all-bg);background-image:linear-gradient(var(--rt-tree-row-bg-hover),var(--rt-tree-row-bg-hover))}.rt-tree__select-all--disabled{cursor:not-allowed;opacity:var(--rt-input-disabled-opacity)}.rt-tree__select-all .rt-tree__label{font-size:var(--rt-tree-select-all-font-size);font-weight:var(--rt-tree-select-all-font-weight)}.rt-tree__row{position:relative}.rt-tree__row+.rt-tree__row{margin-block-start:var(--rt-tree-row-spacing)}.rt-tree__row:before{position:absolute;background:repeating-linear-gradient(to right,var(--rt-tree-guide-color) 0 var(--rt-tree-guide-width),transparent var(--rt-tree-guide-width) var(--rt-tree-indent));content:\"\";inline-size:calc(var(--rt-tree-indent) * var(--rt-tree-level));inset-block:calc(-1 * var(--rt-tree-row-spacing)) 0;inset-inline-start:calc(var(--rt-tree-row-padding-inline) + (var(--rt-tree-toggle-size) - var(--rt-tree-guide-width)) / 2);pointer-events:none}.rt-tree__row--highlighted{background-color:var(--rt-tree-row-bg-highlighted)}.rt-tree__row--chosen{background-color:var(--rt-tree-row-bg-chosen)}.rt-tree__row--disabled{cursor:not-allowed;opacity:var(--rt-input-disabled-opacity)}.rt-tree__row--disabled:hover{background-color:transparent}.rt-tree__toggle,.rt-tree__toggle-space{display:inline-flex;flex-shrink:0;block-size:var(--rt-tree-toggle-size);inline-size:var(--rt-tree-toggle-size)}.rt-tree__row>.rt-tree__toggle-space,.rt-tree__select-all--over-leaf>.rt-tree__toggle-space{display:var(--rt-tree-leaf-space-display)}.rt-tree__toggle{--rt-icon-color-muted: var(--rt-tree-toggle-color);align-items:center;justify-content:center;padding:0;border:0;background:transparent;cursor:pointer}.rt-tree__check{--rt-checkbox-box-size: var(--rt-tree-check-size);--rt-checkbox-box-border-color: var(--rt-tree-check-border-color);flex-shrink:0;margin:0;pointer-events:none}.rt-tree__text{display:flex;min-width:0;flex:1 1 auto;flex-direction:column}.rt-tree__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-tree__description{overflow:hidden;color:var(--rt-color-text-muted);font-size:var(--rt-text-sm);text-overflow:ellipsis;white-space:nowrap}.rt-tree__meta{display:flex;min-width:0;flex-wrap:wrap;align-items:center;gap:var(--rt-space-1);margin-block-start:var(--rt-space-1)}.rt-tree__part--match{border-radius:var(--rt-tree-match-radius);background:var(--rt-tree-match-bg);color:var(--rt-tree-match-color);font-weight:var(--rt-tree-match-font-weight)}.rt-tree__count{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;border-radius:var(--rt-tree-count-radius);background:var(--rt-tree-count-bg);color:var(--rt-tree-count-color);font-size:var(--rt-tree-count-font-size);font-variant-numeric:tabular-nums;min-block-size:var(--rt-tree-count-min-size);min-inline-size:var(--rt-tree-count-min-size);padding-inline:var(--rt-tree-count-padding-inline)}.rt-tree__end{display:inline-flex;flex-shrink:0;align-items:center;margin-inline-start:auto}.rt-tree__empty{padding:var(--rt-space-md);color:var(--rt-tree-empty-color);text-align:center}.rt-tree__empty--with-icon{display:flex;flex-direction:column;align-items:center;gap:var(--rt-tree-empty-gap)}.rt-tree__empty-icon{flex-shrink:0}}\n"]
651
+ }]
652
+ }],
653
+ propDecorators: {
654
+ nodeEnd: [{
655
+ type: i0.ContentChild,
656
+ args: [i0.forwardRef(() => RtTreeNodeEndDirective), { isSignal: true }]
657
+ }],
658
+ nodeMeta: [{
659
+ type: i0.ContentChild,
660
+ args: [i0.forwardRef(() => RtTreeNodeMetaDirective), { isSignal: true }]
661
+ }],
662
+ nodes: [{
663
+ type: i0.Input,
664
+ args: [{
665
+ isSignal: true,
666
+ alias: "nodes",
667
+ required: true
668
+ }]
669
+ }],
670
+ value: [{
671
+ type: i0.Input,
672
+ args: [{
673
+ isSignal: true,
674
+ alias: "value",
675
+ required: false
676
+ }]
677
+ }, {
678
+ type: i0.Output,
679
+ args: ["valueChange"]
680
+ }],
681
+ mode: [{
682
+ type: i0.Input,
683
+ args: [{
684
+ isSignal: true,
685
+ alias: "mode",
686
+ required: false
687
+ }]
688
+ }],
689
+ cascade: [{
690
+ type: i0.Input,
691
+ args: [{
692
+ isSignal: true,
693
+ alias: "cascade",
694
+ required: false
695
+ }]
696
+ }],
697
+ searchTerm: [{
698
+ type: i0.Input,
699
+ args: [{
700
+ isSignal: true,
701
+ alias: "searchTerm",
702
+ required: false
703
+ }]
704
+ }],
705
+ showSelectAll: [{
706
+ type: i0.Input,
707
+ args: [{
708
+ isSignal: true,
709
+ alias: "showSelectAll",
710
+ required: false
711
+ }]
712
+ }],
713
+ ariaLabel: [{
714
+ type: i0.Input,
715
+ args: [{
716
+ isSignal: true,
717
+ alias: "ariaLabel",
718
+ required: false
719
+ }]
720
+ }],
721
+ branchMarks: [{
722
+ type: i0.Input,
723
+ args: [{
724
+ isSignal: true,
725
+ alias: "branchMarks",
726
+ required: false
727
+ }]
728
+ }],
729
+ exclusive: [{
730
+ type: i0.Input,
731
+ args: [{
732
+ isSignal: true,
733
+ alias: "exclusive",
734
+ required: false
735
+ }]
736
+ }],
737
+ filter: [{
738
+ type: i0.Input,
739
+ args: [{
740
+ isSignal: true,
741
+ alias: "filter",
742
+ required: false
743
+ }]
744
+ }],
745
+ emptyIcon: [{
746
+ type: i0.Input,
747
+ args: [{
748
+ isSignal: true,
749
+ alias: "emptyIcon",
750
+ required: false
751
+ }]
752
+ }],
753
+ nodeEndTemplate: [{
754
+ type: i0.Input,
755
+ args: [{
756
+ isSignal: true,
757
+ alias: "nodeEndTemplate",
758
+ required: false
759
+ }]
760
+ }],
761
+ nodeMetaTemplate: [{
762
+ type: i0.Input,
763
+ args: [{
764
+ isSignal: true,
765
+ alias: "nodeMetaTemplate",
766
+ required: false
767
+ }]
768
+ }],
769
+ disabled: [{
770
+ type: i0.Input,
771
+ args: [{
772
+ isSignal: true,
773
+ alias: "disabled",
774
+ required: false
775
+ }]
776
+ }],
777
+ picked: [{
778
+ type: i0.Output,
779
+ args: ["picked"]
780
+ }]
781
+ }
782
+ });
783
+ export { RtTreeComponent, RtTreeNodeEndDirective, RtTreeNodeMetaDirective, rtTreeAloneBase, rtTreeChoose, rtTreeChooseAlone, rtTreeLabelParts, rtTreeMark, rtTreeSelectAll, rtTreeSelectAllMark, rtTreeVisibleLeaves };
784
+
785
+ //# sourceMappingURL=rt-tools-ui-kit-v2-tree.mjs.map