@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
@@ -1 +1 @@
1
- {"version":3,"file":"rt-tools-ui-kit-v2-dynamic-list.mjs","sources":["../../../projects/ui-kit-v2/src/lib/components/dynamic-list/rt-dynamic-list.directives.ts","../../../projects/ui-kit-v2/src/lib/components/dynamic-list/rt-dynamic-list.component.ts","../../../projects/ui-kit-v2/src/lib/components/dynamic-list/rt-dynamic-list.component.html","../../../projects/ui-kit-v2/src/lib/components/dynamic-list/rt-tools-ui-kit-v2-dynamic-list.ts"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\n\n/**\n * Маркеры частей панели инструментов — своим файлом, как у соседних семей.\n *\n * В имени класса стоит слово «Toolbar», хотя в разметке его нет: имя `RtDynamicListSelectorsDirective`\n * в дереве уже занято первым китом, и там оно означает другое — проводку состояния списка, а не\n * маркер стороны полосы. Два одинаковых имени в двух китах проверка дерева не пропускает.\n *\n * Каждый маркер держит свой шаблон и о списке не знает ничего: список читает маркеры среди своего\n * содержимого и берёт у них шаблон. Часть, которую потребитель не объявил, для списка просто\n * отсутствует.\n */\n\n/**\n * Левая сторона панели: то, чем человек отбирает записи.\n *\n * @example\n * ```html\n * <rt-dynamic-list>\n * <ng-container *rtDynamicListSelectors>\n * <rt-select [options]=\"stages()\" />\n * </ng-container>\n * </rt-dynamic-list>\n * ```\n */\n@Directive({\n selector: '[rtDynamicListSelectors]',\n})\nexport class RtDynamicListToolbarSelectorsDirective {\n public readonly templateRef: TemplateRef<void> = inject<TemplateRef<void>>(TemplateRef);\n}\n\n/** Правая сторона панели: действия над разделом. Поле поиска стоит после них и остаётся за семьёй. */\n@Directive({\n selector: '[rtDynamicListActions]',\n})\nexport class RtDynamicListToolbarActionsDirective {\n public readonly templateRef: TemplateRef<void> = inject<TemplateRef<void>>(TemplateRef);\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n effect,\n inject,\n input,\n InputSignal,\n InputSignalWithTransform,\n numberAttribute,\n OnInit,\n output,\n OutputEmitterRef,\n Signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { filter, map } from 'rxjs';\n\nimport { BlockDirective, ElemDirective } from '@rt-tools/core';\nimport { IPageModel, TNullable } from '@rt-tools/utils';\n\nimport { RT_KIT_LABELS, rtKitLabel, TRtKitLabelMap, TRtKitLabelParams } from '@rt-tools/ui-kit-v2/core';\nimport { searchDebounce } from '@rt-tools/ui-kit-v2/core';\nimport { RtButtonDirective } from '@rt-tools/ui-kit-v2/button';\nimport { RtCheckboxComponent } from '@rt-tools/ui-kit-v2/checkbox';\nimport { IRtIcon } from '@rt-tools/ui-kit-v2/core';\nimport { RtEmptyStateComponent } from '@rt-tools/ui-kit-v2/empty-state';\nimport { RtIconButtonComponent } from '@rt-tools/ui-kit-v2/icon-button';\nimport { RtInputComponent } from '@rt-tools/ui-kit-v2/input';\nimport { RtPaginationComponent } from '@rt-tools/ui-kit-v2/pagination';\nimport { RtSpinnerComponent } from '@rt-tools/ui-kit-v2/spinner';\nimport { RtDynamicListToolbarActionsDirective, RtDynamicListToolbarSelectorsDirective } from './rt-dynamic-list.directives';\nimport { IRtDynamicList } from './rt-dynamic-list.model';\n\nconst BEM_BLOCK: string = 'rt-dynamic-list';\n\n/**\n * Размеры страницы, которые предлагает полоса страниц. Семья передаёт их полосе сама: по наименьшему\n * из них она решает, рисовать ли полосу, и то же решение принимает полоса у себя.\n */\nconst PER_PAGE_OPTIONS: ReadonlyArray<number> = [20, 50, 100];\n\n/**\n * Список записей со своей панелью инструментов.\n *\n * Полосу панели семья раскладывает сама, а не зовёт `rt-toolbar`: у того стороны объявлены\n * нешринкующимися, и на хозяине уже́ содержимого полоса раздаётся шире него и уезжает за край.\n * Семья кладёт в полосу готовые части кита — поле, кнопки, флажок, — а строит её сама.\n *\n * Семья ничего не рисует сама: поиск — поле кита, действия — его кнопки со значком, пустое место —\n * его пустое состояние, страницы — его нумерация. Сами записи проецируются: таблица между панелью\n * и страницами — потребителя, с его колонками, ячейками и действиями строки.\n *\n * Договорённость — `docs/specs/ui-kit-v2/dynamic-list/`.\n */\n@Component({\n selector: 'rt-dynamic-list',\n templateUrl: './rt-dynamic-list.component.html',\n styleUrls: ['./rt-dynamic-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // Angular\n NgTemplateOutlet,\n FormsModule,\n ReactiveFormsModule,\n\n // standalone components / directives\n RtButtonDirective,\n RtCheckboxComponent,\n RtEmptyStateComponent,\n RtIconButtonComponent,\n RtInputComponent,\n RtPaginationComponent,\n RtSpinnerComponent,\n BlockDirective,\n ElemDirective,\n ],\n host: { class: BEM_BLOCK },\n})\nexport class RtDynamicListComponent implements OnInit {\n readonly #destroyRef: DestroyRef = inject(DestroyRef);\n\n /**\n * Последнее, что знают и потребитель, и поле: отправленное потребителю или поставленное им самим.\n * Одно и то же дважды не спрашивается, а поставленное потребителем не возвращается ему эхом.\n */\n #lastSearch: string = '';\n\n protected readonly t: Signal<TRtKitLabelMap> = inject(RT_KIT_LABELS);\n\n protected readonly searchControl: FormControl<string> = new FormControl<string>('', { nonNullable: true });\n\n protected readonly perPageOptions: ReadonlyArray<number> = PER_PAGE_OPTIONS;\n\n protected readonly selectorsTpl: Signal<TNullable<RtDynamicListToolbarSelectorsDirective>> = contentChild(\n RtDynamicListToolbarSelectorsDirective\n );\n\n protected readonly actionsTpl: Signal<TNullable<RtDynamicListToolbarActionsDirective>> = contentChild(\n RtDynamicListToolbarActionsDirective\n );\n\n /** «Выбрано: N» — подпись с подстановкой, потому её берут не из карты, а вызовом. */\n protected readonly selectedLabel: Signal<string> = rtKitLabel(\n 'uiSelectedCount',\n computed((): TRtKitLabelParams => ({ count: this.selectedCount() }))\n );\n\n /** Отчего пусто. Отбор стоит — значит, записи убрал он, и человеку показывают дорогу назад. */\n protected readonly emptyReason: Signal<IRtDynamicList.EmptyReason> = computed((): IRtDynamicList.EmptyReason =>\n this.filtered() ? 'filter' : 'section'\n );\n\n /** Значок пустого места: под отбором — лупа, у пустого раздела — лоток. */\n protected readonly emptyIcon: Signal<IRtIcon.Name> = computed((): IRtIcon.Name =>\n this.emptyReason() === 'filter' ? 'search' : 'inbox'\n );\n\n /** Подпись пустого места. Своя подпись потребителя сильнее обеих подписей кита. */\n protected readonly emptyTitleText: Signal<string> = computed((): string => {\n if (this.emptyTitle()) {\n return this.emptyTitle();\n }\n\n return this.emptyReason() === 'filter' ? this.t().uiNothingFound : this.t().uiNoRows;\n });\n\n /**\n * Полоса страниц рисуется, пока записей больше наименьшего размера страницы — то же правило, что у\n * самой полосы. Число страниц при нынешнем размере тут не решает: выбравший крупный размер, при\n * котором всё легло на одну страницу, иначе терял вместе с полосой и дорогу к размеру поменьше.\n */\n protected readonly isPaginationShown: Signal<boolean> = computed((): boolean => {\n const page: TNullable<IPageModel> = this.pageModel();\n\n if (!page || this.empty()) {\n return false;\n }\n\n return page.totalCount > Math.min(...PER_PAGE_OPTIONS);\n });\n\n /**\n * Есть ли в панели хоть что-нибудь. Полоса без единой части — это отступ над записями, и\n * место она забирает у них.\n */\n protected readonly isToolbarShown: Signal<boolean> = computed((): boolean =>\n [\n this.showSearch(),\n this.showRefresh(),\n this.showClearFilters(),\n this.showColumnSettings(),\n this.selectable(),\n !!this.selectorsTpl(),\n !!this.actionsTpl(),\n ].some((part: boolean): boolean => part)\n );\n\n /** Записи проецируются, и о числе страниц семья узнаёт только из модели страницы. */\n public readonly pageModel: InputSignal<TNullable<IPageModel>> = input<TNullable<IPageModel>>(null);\n\n /** Первая загрузка: вместо всего содержимого стоит вертушка. */\n public readonly loading: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** Подгрузка поверх нарисованного: записи остаются на месте, вертушка стоит над ними. */\n public readonly fetching: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** Записей нет вовсе. От пустого ответа под отбором отличается входом `filtered`. */\n public readonly empty: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** Отбор стоит. Вместе с `empty` даёт вторую причину пустоты — ту, у которой есть дорога назад. */\n public readonly filtered: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** Кнопка сброса отбора: показана у раздела с отбором, выключена, пока сбрасывать нечего. */\n public readonly showClearFilters: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly showRefresh: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly showColumnSettings: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly showSearch: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(true, {\n transform: booleanAttribute,\n });\n\n /** Выбор записей: флажок «выбрать все» и счётчик выбранного на левой стороне панели. */\n public readonly selectable: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly allSelected: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly someSelected: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly selectAllDisabled: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly selectedCount: InputSignalWithTransform<number, NumberInput> = input<number, NumberInput>(0, {\n transform: numberAttribute,\n });\n\n public readonly emptyTitle: InputSignal<string> = input<string>('');\n\n public readonly emptyDescription: InputSignal<string | null> = input<string | null>(null);\n\n /** Поиск потребителя: поле следует за ним при каждой смене и потребителю его не возвращает. */\n public readonly searchTerm: InputSignal<TNullable<string>> = input<TNullable<string>>('');\n\n public readonly searchChange: OutputEmitterRef<string> = output<string>();\n\n public readonly refreshed: OutputEmitterRef<void> = output<void>();\n\n public readonly filtersCleared: OutputEmitterRef<void> = output<void>();\n\n public readonly columnSettingsOpened: OutputEmitterRef<void> = output<void>();\n\n public readonly pageChange: OutputEmitterRef<number> = output<number>();\n\n public readonly perPageChange: OutputEmitterRef<number> = output<number>();\n\n public readonly allSelectedChange: OutputEmitterRef<boolean> = output<boolean>();\n\n constructor() {\n // Поиск потребителя ставится в поле, только когда он отличается от последнего, что список\n // отправил или поставил сам. Эхо отправленного — даже запоздалое, когда человек уже дописал\n // дальше, — поле не трогает: иначе оно стирало бы набранное и сбивало каретку.\n effect((): void => {\n const term: string = this.searchTerm() ?? '';\n\n untracked((): void => {\n if (term.trim() === this.#lastSearch) {\n return;\n }\n\n this.#lastSearch = term.trim();\n this.searchControl.setValue(term, { emitEvent: false });\n });\n });\n }\n\n public ngOnInit(): void {\n // Дебаунс непустого ввода; очистка крестиком применяется сразу — так же, как в списке\n // переписок: оператор один на кит, и два разных ожидания разошлись бы молча.\n this.searchControl.valueChanges\n .pipe(\n map((value: string): string => value.trim()),\n searchDebounce(),\n // Набранное, которое потребитель или сброс отбора успели заменить, уже не в поле.\n filter((value: string): boolean => value === this.searchControl.value.trim()),\n filter((value: string): boolean => value !== this.#lastSearch),\n takeUntilDestroyed(this.#destroyRef)\n )\n .subscribe((value: string): void => {\n this.#lastSearch = value;\n this.searchChange.emit(value);\n });\n }\n\n protected onSelectAll(checked: boolean): void {\n this.allSelectedChange.emit(checked);\n }\n\n /**\n * Сброс отбора снимает и поиск: пустой ответ под поиском — тоже ответ под отбором, и дорога назад\n * без очистки поля вела бы к тому же пустому ответу. Поле очищается молча: `filtersCleared`\n * уже значит «и поиск снят», и отдельный пустой `searchChange` заставил бы потребителя\n * запрашивать список дважды.\n */\n protected onClearFilters(): void {\n this.#lastSearch = '';\n this.searchControl.setValue('', { emitEvent: false });\n this.filtersCleared.emit();\n }\n}\n","<ng-container rtBlock=\"rt-dynamic-list\">\n @if (loading()) {\n <div rtElem=\"loader\" qa-dataid=\"dynamic-list-loader\">\n <rt-spinner />\n </div>\n } @else {\n @if (fetching()) {\n <div rtElem=\"veil\" qa-dataid=\"dynamic-list-veil\">\n <rt-spinner />\n </div>\n }\n\n @if (isToolbarShown()) {\n <div rtElem=\"toolbar\" qa-dataid=\"dynamic-list-toolbar\">\n @if (selectable() || selectorsTpl()) {\n <div rtElem=\"selectors\" qa-dataid=\"dynamic-list-selectors\">\n @if (selectable()) {\n <rt-checkbox\n qa-dataid=\"dynamic-list-select-all\"\n [ariaLabel]=\"t().uiSelectAll\"\n [ngModel]=\"allSelected()\"\n [indeterminate]=\"!allSelected() && someSelected()\"\n [disabled]=\"selectAllDisabled()\"\n (ngModelChange)=\"onSelectAll($event)\" />\n\n @if (selectedCount()) {\n <span rtElem=\"counter\" qa-dataid=\"dynamic-list-selected-count\">\n {{ selectedLabel() }}\n </span>\n }\n }\n\n @if (selectorsTpl(); as tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl.templateRef\" />\n }\n </div>\n }\n\n <div rtElem=\"right\" qa-dataid=\"dynamic-list-right\">\n <div rtElem=\"actions\">\n @if (actionsTpl(); as tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl.templateRef\" />\n }\n\n @if (showClearFilters()) {\n <rt-icon-button\n qa-dataid=\"dynamic-list-clear-filters\"\n icon=\"filter-slash\"\n size=\"sm\"\n [ariaLabel]=\"t().uiClearFilters\"\n [tooltip]=\"t().uiClearFilters\"\n [disabled]=\"!filtered()\"\n (clicked)=\"onClearFilters()\" />\n }\n\n @if (showRefresh()) {\n <rt-icon-button\n qa-dataid=\"dynamic-list-refresh\"\n icon=\"refresh\"\n size=\"sm\"\n [ariaLabel]=\"t().uiRefresh\"\n [tooltip]=\"t().uiRefresh\"\n (clicked)=\"refreshed.emit()\" />\n }\n\n @if (showColumnSettings()) {\n <rt-icon-button\n qa-dataid=\"dynamic-list-column-settings\"\n icon=\"sliders-v\"\n size=\"sm\"\n [ariaLabel]=\"t().uiColumnSettings\"\n [tooltip]=\"t().uiColumnSettings\"\n (clicked)=\"columnSettingsOpened.emit()\" />\n }\n </div>\n\n @if (showSearch()) {\n <div rtElem=\"search\">\n <rt-input\n qa-dataid=\"dynamic-list-search\"\n iconLeft=\"search\"\n [placeholder]=\"t().uiSearch\"\n [formControl]=\"searchControl\" />\n </div>\n }\n </div>\n </div>\n }\n\n @if (empty()) {\n <rt-empty-state\n rtElem=\"empty\"\n qa-dataid=\"dynamic-list-empty\"\n [icon]=\"emptyIcon()\"\n [title]=\"emptyTitleText()\"\n [description]=\"emptyDescription()\">\n @if (emptyReason() === 'filter') {\n <button\n rtButton\n qa-dataid=\"dynamic-list-empty-clear\"\n type=\"button\"\n icon=\"filter-slash\"\n appearance=\"outlined\"\n size=\"sm\"\n [label]=\"t().uiClearFilters\"\n [attr.aria-label]=\"t().uiClearFilters\"\n (click)=\"onClearFilters()\"></button>\n }\n </rt-empty-state>\n } @else {\n <div rtElem=\"content\" qa-dataid=\"dynamic-list-content\">\n <ng-content />\n </div>\n\n @if (isPaginationShown()) {\n <rt-pagination\n rtElem=\"pagination\"\n qa-dataid=\"dynamic-list-pagination\"\n [pageModel]=\"pageModel()!\"\n [perPageOptions]=\"perPageOptions\"\n [loading]=\"fetching()\"\n (pageChange)=\"pageChange.emit($event)\"\n (perPageChange)=\"perPageChange.emit($event)\" />\n }\n }\n }\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rt-tools-ui-kit-v2-dynamic-list.mjs","names":[],"sources":["../../../projects/ui-kit-v2/src/lib/components/dynamic-list/rt-dynamic-list.directives.ts","../../../projects/ui-kit-v2/src/lib/components/dynamic-list/rt-dynamic-list.component.ts","../../../projects/ui-kit-v2/src/lib/components/dynamic-list/rt-dynamic-list.component.html"],"sourcesContent":["import { Directive, inject, TemplateRef } from '@angular/core';\n\n/**\n * Маркеры частей панели инструментов — своим файлом, как у соседних семей.\n *\n * В имени класса стоит слово «Toolbar», хотя в разметке его нет: имя `RtDynamicListSelectorsDirective`\n * в дереве уже занято первым китом, и там оно означает другое — проводку состояния списка, а не\n * маркер стороны полосы. Два одинаковых имени в двух китах проверка дерева не пропускает.\n *\n * Каждый маркер держит свой шаблон и о списке не знает ничего: список читает маркеры среди своего\n * содержимого и берёт у них шаблон. Часть, которую потребитель не объявил, для списка просто\n * отсутствует.\n */\n\n/**\n * Левая сторона панели: то, чем человек отбирает записи.\n *\n * @example\n * ```html\n * <rt-dynamic-list>\n * <ng-container *rtDynamicListSelectors>\n * <rt-select [options]=\"stages()\" />\n * </ng-container>\n * </rt-dynamic-list>\n * ```\n */\n@Directive({\n selector: '[rtDynamicListSelectors]',\n})\nexport class RtDynamicListToolbarSelectorsDirective {\n public readonly templateRef: TemplateRef<void> = inject<TemplateRef<void>>(TemplateRef);\n}\n\n/** Правая сторона панели: действия над разделом. Поле поиска стоит после них и остаётся за семьёй. */\n@Directive({\n selector: '[rtDynamicListActions]',\n})\nexport class RtDynamicListToolbarActionsDirective {\n public readonly templateRef: TemplateRef<void> = inject<TemplateRef<void>>(TemplateRef);\n}\n","import { BooleanInput, NumberInput } from '@angular/cdk/coercion';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n contentChild,\n DestroyRef,\n effect,\n inject,\n input,\n InputSignal,\n InputSignalWithTransform,\n numberAttribute,\n OnInit,\n output,\n OutputEmitterRef,\n Signal,\n untracked,\n ViewEncapsulation,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { filter, map } from 'rxjs';\n\nimport { BlockDirective, ElemDirective } from '@rt-tools/core';\nimport { IPageModel, TNullable } from '@rt-tools/utils';\n\nimport { RT_KIT_LABELS, rtKitLabel, TRtKitLabelMap, TRtKitLabelParams } from '@rt-tools/ui-kit-v2/core';\nimport { searchDebounce } from '@rt-tools/ui-kit-v2/core';\nimport { RtButtonDirective } from '@rt-tools/ui-kit-v2/button';\nimport { RtCheckboxComponent } from '@rt-tools/ui-kit-v2/checkbox';\nimport { IRtIcon } from '@rt-tools/ui-kit-v2/core';\nimport { RtEmptyStateComponent } from '@rt-tools/ui-kit-v2/empty-state';\nimport { RtIconButtonComponent } from '@rt-tools/ui-kit-v2/icon-button';\nimport { RtInputComponent } from '@rt-tools/ui-kit-v2/input';\nimport { RtPaginationComponent } from '@rt-tools/ui-kit-v2/pagination';\nimport { RtSpinnerComponent } from '@rt-tools/ui-kit-v2/spinner';\nimport { RtDynamicListToolbarActionsDirective, RtDynamicListToolbarSelectorsDirective } from './rt-dynamic-list.directives';\nimport { IRtDynamicList } from './rt-dynamic-list.model';\n\nconst BEM_BLOCK: string = 'rt-dynamic-list';\n\n/**\n * Размеры страницы, которые предлагает полоса страниц. Семья передаёт их полосе сама: по наименьшему\n * из них она решает, рисовать ли полосу, и то же решение принимает полоса у себя.\n */\nconst PER_PAGE_OPTIONS: ReadonlyArray<number> = [20, 50, 100];\n\n/**\n * Список записей со своей панелью инструментов.\n *\n * Полосу панели семья раскладывает сама, а не зовёт `rt-toolbar`: у того стороны объявлены\n * нешринкующимися, и на хозяине уже́ содержимого полоса раздаётся шире него и уезжает за край.\n * Семья кладёт в полосу готовые части кита — поле, кнопки, флажок, — а строит её сама.\n *\n * Семья ничего не рисует сама: поиск — поле кита, действия — его кнопки со значком, пустое место —\n * его пустое состояние, страницы — его нумерация. Сами записи проецируются: таблица между панелью\n * и страницами — потребителя, с его колонками, ячейками и действиями строки.\n *\n * Договорённость — `docs/specs/ui-kit-v2/dynamic-list/`.\n */\n@Component({\n selector: 'rt-dynamic-list',\n templateUrl: './rt-dynamic-list.component.html',\n styleUrls: ['./rt-dynamic-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // Angular\n NgTemplateOutlet,\n FormsModule,\n ReactiveFormsModule,\n\n // standalone components / directives\n RtButtonDirective,\n RtCheckboxComponent,\n RtEmptyStateComponent,\n RtIconButtonComponent,\n RtInputComponent,\n RtPaginationComponent,\n RtSpinnerComponent,\n BlockDirective,\n ElemDirective,\n ],\n host: { class: BEM_BLOCK },\n})\nexport class RtDynamicListComponent implements OnInit {\n readonly #destroyRef: DestroyRef = inject(DestroyRef);\n\n /**\n * Последнее, что знают и потребитель, и поле: отправленное потребителю или поставленное им самим.\n * Одно и то же дважды не спрашивается, а поставленное потребителем не возвращается ему эхом.\n */\n #lastSearch: string = '';\n\n protected readonly t: Signal<TRtKitLabelMap> = inject(RT_KIT_LABELS);\n\n protected readonly searchControl: FormControl<string> = new FormControl<string>('', { nonNullable: true });\n\n protected readonly perPageOptions: ReadonlyArray<number> = PER_PAGE_OPTIONS;\n\n protected readonly selectorsTpl: Signal<TNullable<RtDynamicListToolbarSelectorsDirective>> = contentChild(\n RtDynamicListToolbarSelectorsDirective\n );\n\n protected readonly actionsTpl: Signal<TNullable<RtDynamicListToolbarActionsDirective>> = contentChild(\n RtDynamicListToolbarActionsDirective\n );\n\n /** «Выбрано: N» — подпись с подстановкой, потому её берут не из карты, а вызовом. */\n protected readonly selectedLabel: Signal<string> = rtKitLabel(\n 'uiSelectedCount',\n computed((): TRtKitLabelParams => ({ count: this.selectedCount() }))\n );\n\n /** Отчего пусто. Отбор стоит — значит, записи убрал он, и человеку показывают дорогу назад. */\n protected readonly emptyReason: Signal<IRtDynamicList.EmptyReason> = computed((): IRtDynamicList.EmptyReason =>\n this.filtered() ? 'filter' : 'section'\n );\n\n /** Значок пустого места: под отбором — лупа, у пустого раздела — лоток. */\n protected readonly emptyIcon: Signal<IRtIcon.Name> = computed((): IRtIcon.Name =>\n this.emptyReason() === 'filter' ? 'search' : 'inbox'\n );\n\n /** Подпись пустого места. Своя подпись потребителя сильнее обеих подписей кита. */\n protected readonly emptyTitleText: Signal<string> = computed((): string => {\n if (this.emptyTitle()) {\n return this.emptyTitle();\n }\n\n return this.emptyReason() === 'filter' ? this.t().uiNothingFound : this.t().uiNoRows;\n });\n\n /**\n * Полоса страниц рисуется, пока записей больше наименьшего размера страницы — то же правило, что у\n * самой полосы. Число страниц при нынешнем размере тут не решает: выбравший крупный размер, при\n * котором всё легло на одну страницу, иначе терял вместе с полосой и дорогу к размеру поменьше.\n */\n protected readonly isPaginationShown: Signal<boolean> = computed((): boolean => {\n const page: TNullable<IPageModel> = this.pageModel();\n\n if (!page || this.empty()) {\n return false;\n }\n\n return page.totalCount > Math.min(...PER_PAGE_OPTIONS);\n });\n\n /**\n * Есть ли в панели хоть что-нибудь. Полоса без единой части — это отступ над записями, и\n * место она забирает у них.\n */\n protected readonly isToolbarShown: Signal<boolean> = computed((): boolean =>\n [\n this.showSearch(),\n this.showRefresh(),\n this.showClearFilters(),\n this.showColumnSettings(),\n this.selectable(),\n !!this.selectorsTpl(),\n !!this.actionsTpl(),\n ].some((part: boolean): boolean => part)\n );\n\n /** Записи проецируются, и о числе страниц семья узнаёт только из модели страницы. */\n public readonly pageModel: InputSignal<TNullable<IPageModel>> = input<TNullable<IPageModel>>(null);\n\n /** Первая загрузка: вместо всего содержимого стоит вертушка. */\n public readonly loading: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** Подгрузка поверх нарисованного: записи остаются на месте, вертушка стоит над ними. */\n public readonly fetching: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** Записей нет вовсе. От пустого ответа под отбором отличается входом `filtered`. */\n public readonly empty: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** Отбор стоит. Вместе с `empty` даёт вторую причину пустоты — ту, у которой есть дорога назад. */\n public readonly filtered: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n /** Кнопка сброса отбора: показана у раздела с отбором, выключена, пока сбрасывать нечего. */\n public readonly showClearFilters: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly showRefresh: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly showColumnSettings: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly showSearch: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(true, {\n transform: booleanAttribute,\n });\n\n /** Выбор записей: флажок «выбрать все» и счётчик выбранного на левой стороне панели. */\n public readonly selectable: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly allSelected: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly someSelected: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly selectAllDisabled: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n\n public readonly selectedCount: InputSignalWithTransform<number, NumberInput> = input<number, NumberInput>(0, {\n transform: numberAttribute,\n });\n\n public readonly emptyTitle: InputSignal<string> = input<string>('');\n\n public readonly emptyDescription: InputSignal<string | null> = input<string | null>(null);\n\n /** Поиск потребителя: поле следует за ним при каждой смене и потребителю его не возвращает. */\n public readonly searchTerm: InputSignal<TNullable<string>> = input<TNullable<string>>('');\n\n public readonly searchChange: OutputEmitterRef<string> = output<string>();\n\n public readonly refreshed: OutputEmitterRef<void> = output<void>();\n\n public readonly filtersCleared: OutputEmitterRef<void> = output<void>();\n\n public readonly columnSettingsOpened: OutputEmitterRef<void> = output<void>();\n\n public readonly pageChange: OutputEmitterRef<number> = output<number>();\n\n public readonly perPageChange: OutputEmitterRef<number> = output<number>();\n\n public readonly allSelectedChange: OutputEmitterRef<boolean> = output<boolean>();\n\n constructor() {\n // Поиск потребителя ставится в поле, только когда он отличается от последнего, что список\n // отправил или поставил сам. Эхо отправленного — даже запоздалое, когда человек уже дописал\n // дальше, — поле не трогает: иначе оно стирало бы набранное и сбивало каретку.\n effect((): void => {\n const term: string = this.searchTerm() ?? '';\n\n untracked((): void => {\n if (term.trim() === this.#lastSearch) {\n return;\n }\n\n this.#lastSearch = term.trim();\n this.searchControl.setValue(term, { emitEvent: false });\n });\n });\n }\n\n public ngOnInit(): void {\n // Дебаунс непустого ввода; очистка крестиком применяется сразу — так же, как в списке\n // переписок: оператор один на кит, и два разных ожидания разошлись бы молча.\n this.searchControl.valueChanges\n .pipe(\n map((value: string): string => value.trim()),\n searchDebounce(),\n // Набранное, которое потребитель или сброс отбора успели заменить, уже не в поле.\n filter((value: string): boolean => value === this.searchControl.value.trim()),\n filter((value: string): boolean => value !== this.#lastSearch),\n takeUntilDestroyed(this.#destroyRef)\n )\n .subscribe((value: string): void => {\n this.#lastSearch = value;\n this.searchChange.emit(value);\n });\n }\n\n protected onSelectAll(checked: boolean): void {\n this.allSelectedChange.emit(checked);\n }\n\n /**\n * Сброс отбора снимает и поиск: пустой ответ под поиском — тоже ответ под отбором, и дорога назад\n * без очистки поля вела бы к тому же пустому ответу. Поле очищается молча: `filtersCleared`\n * уже значит «и поиск снят», и отдельный пустой `searchChange` заставил бы потребителя\n * запрашивать список дважды.\n */\n protected onClearFilters(): void {\n this.#lastSearch = '';\n this.searchControl.setValue('', { emitEvent: false });\n this.filtersCleared.emit();\n }\n}\n","<ng-container rtBlock=\"rt-dynamic-list\">\n @if (loading()) {\n <div rtElem=\"loader\" qa-dataid=\"dynamic-list-loader\">\n <rt-spinner />\n </div>\n } @else {\n @if (fetching()) {\n <div rtElem=\"veil\" qa-dataid=\"dynamic-list-veil\">\n <rt-spinner />\n </div>\n }\n\n @if (isToolbarShown()) {\n <div rtElem=\"toolbar\" qa-dataid=\"dynamic-list-toolbar\">\n @if (selectable() || selectorsTpl()) {\n <div rtElem=\"selectors\" qa-dataid=\"dynamic-list-selectors\">\n @if (selectable()) {\n <rt-checkbox\n qa-dataid=\"dynamic-list-select-all\"\n [ariaLabel]=\"t().uiSelectAll\"\n [ngModel]=\"allSelected()\"\n [indeterminate]=\"!allSelected() && someSelected()\"\n [disabled]=\"selectAllDisabled()\"\n (ngModelChange)=\"onSelectAll($event)\" />\n\n @if (selectedCount()) {\n <span rtElem=\"counter\" qa-dataid=\"dynamic-list-selected-count\">\n {{ selectedLabel() }}\n </span>\n }\n }\n\n @if (selectorsTpl(); as tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl.templateRef\" />\n }\n </div>\n }\n\n <div rtElem=\"right\" qa-dataid=\"dynamic-list-right\">\n <div rtElem=\"actions\">\n @if (actionsTpl(); as tpl) {\n <ng-container [ngTemplateOutlet]=\"tpl.templateRef\" />\n }\n\n @if (showClearFilters()) {\n <rt-icon-button\n qa-dataid=\"dynamic-list-clear-filters\"\n icon=\"filter-slash\"\n size=\"sm\"\n [ariaLabel]=\"t().uiClearFilters\"\n [tooltip]=\"t().uiClearFilters\"\n [disabled]=\"!filtered()\"\n (clicked)=\"onClearFilters()\" />\n }\n\n @if (showRefresh()) {\n <rt-icon-button\n qa-dataid=\"dynamic-list-refresh\"\n icon=\"refresh\"\n size=\"sm\"\n [ariaLabel]=\"t().uiRefresh\"\n [tooltip]=\"t().uiRefresh\"\n (clicked)=\"refreshed.emit()\" />\n }\n\n @if (showColumnSettings()) {\n <rt-icon-button\n qa-dataid=\"dynamic-list-column-settings\"\n icon=\"sliders-v\"\n size=\"sm\"\n [ariaLabel]=\"t().uiColumnSettings\"\n [tooltip]=\"t().uiColumnSettings\"\n (clicked)=\"columnSettingsOpened.emit()\" />\n }\n </div>\n\n @if (showSearch()) {\n <div rtElem=\"search\">\n <rt-input\n qa-dataid=\"dynamic-list-search\"\n iconLeft=\"search\"\n [placeholder]=\"t().uiSearch\"\n [formControl]=\"searchControl\" />\n </div>\n }\n </div>\n </div>\n }\n\n @if (empty()) {\n <rt-empty-state\n rtElem=\"empty\"\n qa-dataid=\"dynamic-list-empty\"\n [icon]=\"emptyIcon()\"\n [title]=\"emptyTitleText()\"\n [description]=\"emptyDescription()\">\n @if (emptyReason() === 'filter') {\n <button\n rtButton\n qa-dataid=\"dynamic-list-empty-clear\"\n type=\"button\"\n icon=\"filter-slash\"\n appearance=\"outlined\"\n size=\"sm\"\n [label]=\"t().uiClearFilters\"\n [attr.aria-label]=\"t().uiClearFilters\"\n (click)=\"onClearFilters()\"></button>\n }\n </rt-empty-state>\n } @else {\n <div rtElem=\"content\" qa-dataid=\"dynamic-list-content\">\n <ng-content />\n </div>\n\n @if (isPaginationShown()) {\n <rt-pagination\n rtElem=\"pagination\"\n qa-dataid=\"dynamic-list-pagination\"\n [pageModel]=\"pageModel()!\"\n [perPageOptions]=\"perPageOptions\"\n [loading]=\"fetching()\"\n (pageChange)=\"pageChange.emit($event)\"\n (perPageChange)=\"perPageChange.emit($event)\" />\n }\n }\n }\n</ng-container>\n"],"mappings":"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"}