@rt-tools/ui-kit-v2 0.16.0 → 0.18.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 (321) hide show
  1. package/README.md +25 -0
  2. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +79 -0
  3. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -0
  4. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +227 -0
  5. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -0
  6. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +47 -0
  7. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -0
  8. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +702 -0
  9. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -0
  10. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +214 -0
  11. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -0
  12. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +53 -0
  13. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -0
  14. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +88 -0
  15. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -0
  16. package/fesm2022/rt-tools-ui-kit-v2-button.mjs +365 -0
  17. package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -0
  18. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +152 -0
  19. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -0
  20. package/fesm2022/rt-tools-ui-kit-v2-card.mjs +72 -0
  21. package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -0
  22. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +111 -0
  23. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -0
  24. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +76 -0
  25. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -0
  26. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +255 -0
  27. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -0
  28. package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1326 -0
  29. package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -0
  30. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2590 -0
  31. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -0
  32. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +45 -0
  33. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -0
  34. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +158 -0
  35. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -0
  36. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +894 -0
  37. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -0
  38. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +1217 -0
  39. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -0
  40. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +779 -0
  41. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -0
  42. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +573 -0
  43. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -0
  44. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +141 -0
  45. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -0
  46. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +68 -0
  47. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -0
  48. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +478 -0
  49. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -0
  50. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +183 -0
  51. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -0
  52. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +44 -0
  53. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -0
  54. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +260 -0
  55. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -0
  56. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +937 -0
  57. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -0
  58. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +56 -0
  59. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -0
  60. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +107 -0
  61. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -0
  62. package/fesm2022/rt-tools-ui-kit-v2-field.mjs +183 -0
  63. package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -0
  64. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +219 -0
  65. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -0
  66. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +214 -0
  67. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -0
  68. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +117 -0
  69. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -0
  70. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +32 -0
  71. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -0
  72. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +91 -0
  73. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -0
  74. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +220 -0
  75. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -0
  76. package/fesm2022/rt-tools-ui-kit-v2-header.mjs +72 -0
  77. package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -0
  78. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +163 -0
  79. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -0
  80. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +674 -0
  81. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -0
  82. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +540 -0
  83. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -0
  84. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +227 -0
  85. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -0
  86. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +37 -0
  87. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -0
  88. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +361 -0
  89. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -0
  90. package/fesm2022/rt-tools-ui-kit-v2-input.mjs +143 -0
  91. package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -0
  92. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +49 -0
  93. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -0
  94. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +97 -0
  95. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -0
  96. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +57 -0
  97. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -0
  98. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +537 -0
  99. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -0
  100. package/fesm2022/rt-tools-ui-kit-v2-message.mjs +105 -0
  101. package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -0
  102. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +71 -0
  103. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -0
  104. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +315 -0
  105. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -0
  106. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +51 -0
  107. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -0
  108. package/fesm2022/rt-tools-ui-kit-v2-note.mjs +44 -0
  109. package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -0
  110. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +54 -0
  111. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -0
  112. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +339 -0
  113. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -0
  114. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +187 -0
  115. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -0
  116. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +170 -0
  117. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -0
  118. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +312 -0
  119. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -0
  120. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +174 -0
  121. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -0
  122. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +56 -0
  123. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -0
  124. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +96 -41
  125. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  126. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +118 -0
  127. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -0
  128. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +290 -0
  129. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -0
  130. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +37 -0
  131. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -0
  132. package/fesm2022/rt-tools-ui-kit-v2-select.mjs +495 -0
  133. package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -0
  134. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +1493 -0
  135. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -0
  136. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +49 -0
  137. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -0
  138. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +123 -0
  139. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -0
  140. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +70 -0
  141. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -0
  142. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +92 -0
  143. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -0
  144. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +147 -0
  145. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -0
  146. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +117 -0
  147. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -0
  148. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +1636 -0
  149. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -0
  150. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +350 -0
  151. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -0
  152. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +122 -0
  153. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -0
  154. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +85 -0
  155. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -0
  156. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +73 -0
  157. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -0
  158. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +196 -0
  159. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -0
  160. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +39 -0
  161. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -0
  162. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +338 -0
  163. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -0
  164. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +132 -0
  165. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -0
  166. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +162 -0
  167. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -0
  168. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +135 -0
  169. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -0
  170. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +214 -0
  171. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -0
  172. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +64 -0
  173. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -0
  174. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +263 -0
  175. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -0
  176. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +296 -0
  177. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -0
  178. package/fesm2022/rt-tools-ui-kit-v2.mjs +91 -23164
  179. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  180. package/package.json +349 -1
  181. package/rt-tools-ui-kit-v2-0.18.0.tgz +0 -0
  182. package/src/lib/components/action-bar/CONTEXT.md +5 -0
  183. package/src/lib/components/action-bar/rt-action-bar.component.scss +30 -16
  184. package/src/lib/components/aside/CONTEXT.md +9 -1
  185. package/src/lib/components/aside/footer/rt-aside-footer.component.scss +7 -8
  186. package/src/lib/components/aside/header/rt-aside-header.component.scss +16 -1
  187. package/src/lib/components/aside/rt-aside.component.scss +17 -1
  188. package/src/lib/components/button/CONTEXT.md +12 -11
  189. package/src/lib/components/button/rt-button.directive.scss +36 -0
  190. package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +2 -2
  191. package/src/lib/components/data-table/cell/rt-data-table-cell.component.scss +1 -1
  192. package/src/lib/components/data-table/filter-cell/rt-data-table-filter-cell.component.scss +1 -1
  193. package/src/lib/components/data-table/rt-data-table.component.scss +1 -1
  194. package/src/lib/components/dialog/CONTEXT.md +9 -0
  195. package/src/lib/components/dialog/content/rt-dialog-content.component.scss +20 -0
  196. package/src/lib/components/dialog/footer/rt-dialog-footer.component.scss +18 -2
  197. package/src/lib/components/dialog/header/rt-dialog-header.component.scss +21 -3
  198. package/src/lib/components/dialog/rt-dialog.component.scss +9 -3
  199. package/src/lib/components/dot-field/CONTEXT.md +31 -0
  200. package/src/lib/components/dot-field/rt-dot-field.component.scss +20 -0
  201. package/src/lib/components/dot-field/stories/component/CONTEXT.md +14 -0
  202. package/src/lib/components/dot-field/stories/component/test-dot-field.component.scss +31 -0
  203. package/src/lib/components/dynamic-selector/CONTEXT.md +6 -0
  204. package/src/lib/components/field/CONTEXT.md +18 -2
  205. package/src/lib/components/header/CONTEXT.md +2 -2
  206. package/src/lib/components/icon/CONTEXT.md +11 -7
  207. package/src/lib/components/icon/rt-icon.component.scss +47 -0
  208. package/src/lib/components/icon-button/CONTEXT.md +27 -20
  209. package/src/lib/components/icon-button/rt-icon-button.component.scss +51 -25
  210. package/src/lib/components/image-upload/CONTEXT.md +20 -15
  211. package/src/lib/components/image-upload/rt-image-upload.component.scss +14 -2
  212. package/src/lib/components/pagination/rt-pagination.component.scss +1 -1
  213. package/src/lib/components/scroll-area/CONTEXT.md +2 -0
  214. package/src/lib/components/scroll-area/rt-scroll-area.component.scss +20 -3
  215. package/src/lib/components/select/rt-select.component.scss +4 -0
  216. package/src/lib/components/side-menu/CONTEXT.md +7 -2
  217. package/src/lib/components/spinner/CONTEXT.md +15 -8
  218. package/src/lib/components/spinner/rt-spinner.component.scss +108 -9
  219. package/src/lib/components/tag/rt-tag.component.scss +43 -23
  220. package/src/lib/components/toast/CONTEXT.md +8 -0
  221. package/src/lib/components/toast/rt-toast.component.scss +74 -15
  222. package/src/lib/components/toast/rt-toaster.component.scss +5 -1
  223. package/src/lib/components/toggle-button-group/rt-toggle-button-group.component.scss +35 -37
  224. package/src/lib/components/toggle-switch/CONTEXT.md +11 -3
  225. package/src/lib/components/toggle-switch/rt-toggle-switch.component.scss +53 -14
  226. package/src/lib/components/toolbar/rt-toolbar.component.scss +15 -4
  227. package/src/lib/components/tooltip/CONTEXT.md +5 -5
  228. package/src/rich-editor/lib/components/chat/CONTEXT.md +7 -2
  229. package/src/rich-editor/lib/components/chat/rt-chat.component.scss +25 -0
  230. package/src/styles/_semantic.scss +1 -1
  231. package/styles/tokens.css +43 -8
  232. package/types/rt-tools-ui-kit-v2-accordion.d.ts +30 -0
  233. package/types/rt-tools-ui-kit-v2-action-bar.d.ts +140 -0
  234. package/types/rt-tools-ui-kit-v2-aside-section.d.ts +25 -0
  235. package/types/rt-tools-ui-kit-v2-aside.d.ts +436 -0
  236. package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +78 -0
  237. package/types/rt-tools-ui-kit-v2-bar-list.d.ts +41 -0
  238. package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +20 -0
  239. package/types/rt-tools-ui-kit-v2-button.d.ts +76 -0
  240. package/types/rt-tools-ui-kit-v2-calendar.d.ts +96 -0
  241. package/types/rt-tools-ui-kit-v2-card.d.ts +38 -0
  242. package/types/rt-tools-ui-kit-v2-checkbox.d.ts +46 -0
  243. package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +20 -0
  244. package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +85 -0
  245. package/types/rt-tools-ui-kit-v2-container.d.ts +425 -0
  246. package/types/rt-tools-ui-kit-v2-core.d.ts +1222 -0
  247. package/types/rt-tools-ui-kit-v2-counter-row.d.ts +22 -0
  248. package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -0
  249. package/types/rt-tools-ui-kit-v2-data-list.d.ts +334 -0
  250. package/types/rt-tools-ui-kit-v2-data-table.d.ts +494 -0
  251. package/types/rt-tools-ui-kit-v2-date-picker.d.ts +181 -0
  252. package/types/rt-tools-ui-kit-v2-date-range.d.ts +98 -0
  253. package/types/rt-tools-ui-kit-v2-delta-view.d.ts +20 -0
  254. package/types/rt-tools-ui-kit-v2-detail-list.d.ts +33 -0
  255. package/types/rt-tools-ui-kit-v2-dialog.d.ts +287 -0
  256. package/types/rt-tools-ui-kit-v2-dot-field.d.ts +17 -0
  257. package/types/rt-tools-ui-kit-v2-download-link.d.ts +17 -0
  258. package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +139 -0
  259. package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +384 -0
  260. package/types/rt-tools-ui-kit-v2-empty-state.d.ts +29 -0
  261. package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +57 -0
  262. package/types/rt-tools-ui-kit-v2-field.d.ts +82 -0
  263. package/types/rt-tools-ui-kit-v2-file-card.d.ts +114 -0
  264. package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -0
  265. package/types/rt-tools-ui-kit-v2-file-input.d.ts +48 -0
  266. package/types/rt-tools-ui-kit-v2-file-list.d.ts +13 -0
  267. package/types/rt-tools-ui-kit-v2-filter-control.d.ts +72 -0
  268. package/types/rt-tools-ui-kit-v2-form-control.d.ts +74 -0
  269. package/types/rt-tools-ui-kit-v2-header.d.ts +40 -0
  270. package/types/rt-tools-ui-kit-v2-icon-button.d.ts +113 -0
  271. package/types/rt-tools-ui-kit-v2-icon.d.ts +238 -0
  272. package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +168 -0
  273. package/types/rt-tools-ui-kit-v2-image-upload.d.ts +102 -0
  274. package/types/rt-tools-ui-kit-v2-info-item.d.ts +13 -0
  275. package/types/rt-tools-ui-kit-v2-input-number.d.ts +67 -0
  276. package/types/rt-tools-ui-kit-v2-input.d.ts +54 -0
  277. package/types/rt-tools-ui-kit-v2-live-badge.d.ts +23 -0
  278. package/types/rt-tools-ui-kit-v2-logo.d.ts +58 -0
  279. package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +30 -0
  280. package/types/rt-tools-ui-kit-v2-menu.d.ts +217 -0
  281. package/types/rt-tools-ui-kit-v2-message.d.ts +56 -0
  282. package/types/rt-tools-ui-kit-v2-money-list.d.ts +34 -0
  283. package/types/rt-tools-ui-kit-v2-multiselect.d.ts +93 -0
  284. package/types/rt-tools-ui-kit-v2-night-grid.d.ts +39 -0
  285. package/types/rt-tools-ui-kit-v2-note.d.ts +21 -0
  286. package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +23 -0
  287. package/types/rt-tools-ui-kit-v2-page-header.d.ts +173 -0
  288. package/types/rt-tools-ui-kit-v2-pagination.d.ts +64 -0
  289. package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +98 -0
  290. package/types/rt-tools-ui-kit-v2-popover.d.ts +79 -0
  291. package/types/rt-tools-ui-kit-v2-radio-button.d.ts +61 -0
  292. package/types/rt-tools-ui-kit-v2-radius.d.ts +37 -0
  293. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +16 -20
  294. package/types/rt-tools-ui-kit-v2-ripple.d.ts +39 -0
  295. package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +91 -0
  296. package/types/rt-tools-ui-kit-v2-section-nav.d.ts +23 -0
  297. package/types/rt-tools-ui-kit-v2-select.d.ts +215 -0
  298. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +483 -0
  299. package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +32 -0
  300. package/types/rt-tools-ui-kit-v2-skeleton.d.ts +41 -0
  301. package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -0
  302. package/types/rt-tools-ui-kit-v2-split-button.d.ts +72 -0
  303. package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +81 -0
  304. package/types/rt-tools-ui-kit-v2-stepper.d.ts +51 -0
  305. package/types/rt-tools-ui-kit-v2-table.d.ts +739 -0
  306. package/types/rt-tools-ui-kit-v2-tabs.d.ts +153 -0
  307. package/types/rt-tools-ui-kit-v2-tag.d.ts +70 -0
  308. package/types/rt-tools-ui-kit-v2-textarea.d.ts +36 -0
  309. package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +43 -0
  310. package/types/rt-tools-ui-kit-v2-thread-list.d.ts +111 -0
  311. package/types/rt-tools-ui-kit-v2-timeline.d.ts +35 -0
  312. package/types/rt-tools-ui-kit-v2-toast.d.ts +103 -0
  313. package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +109 -0
  314. package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +85 -0
  315. package/types/rt-tools-ui-kit-v2-toolbar.d.ts +66 -0
  316. package/types/rt-tools-ui-kit-v2-tooltip.d.ts +74 -0
  317. package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +33 -0
  318. package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +128 -0
  319. package/types/rt-tools-ui-kit-v2-workspace.d.ts +84 -0
  320. package/types/rt-tools-ui-kit-v2.d.ts +87 -9290
  321. package/rt-tools-ui-kit-v2-0.16.0.tgz +0 -0
@@ -0,0 +1,17 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Signal, InputSignal, OutputEmitterRef } from '@angular/core';
3
+
4
+ declare class RtDownloadLinkComponent {
5
+ /**
6
+ * Подпись для скринридера: имя файла подставляется в неё, поэтому карты
7
+ * подписей ей мало — параметр приходит из входа.
8
+ */
9
+ protected readonly downloadAriaLabel: Signal<string>;
10
+ readonly label: InputSignal<string>;
11
+ readonly downloadClick: OutputEmitterRef<void>;
12
+ protected onClick(): void;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDownloadLinkComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDownloadLinkComponent, "rt-download-link", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; }, { "downloadClick": "downloadClick"; }, never, never, true, never>;
15
+ }
16
+
17
+ export { RtDownloadLinkComponent };
@@ -0,0 +1,139 @@
1
+ import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { TemplateRef, OnInit, Signal, InputSignal, InputSignalWithTransform, OutputEmitterRef } from '@angular/core';
4
+ import { FormControl } from '@angular/forms';
5
+ import { TNullable, IPageModel } from '@rt-tools/utils';
6
+ import { TRtKitLabelMap, IRtIcon } from '@rt-tools/ui-kit-v2/core';
7
+
8
+ /**
9
+ * Маркеры частей панели инструментов — своим файлом, как у соседних семей.
10
+ *
11
+ * В имени класса стоит слово «Toolbar», хотя в разметке его нет: имя `RtDynamicListSelectorsDirective`
12
+ * в дереве уже занято первым китом, и там оно означает другое — проводку состояния списка, а не
13
+ * маркер стороны полосы. Два одинаковых имени в двух китах проверка дерева не пропускает.
14
+ *
15
+ * Каждый маркер держит свой шаблон и о списке не знает ничего: список читает маркеры среди своего
16
+ * содержимого и берёт у них шаблон. Часть, которую потребитель не объявил, для списка просто
17
+ * отсутствует.
18
+ */
19
+ /**
20
+ * Левая сторона панели: то, чем человек отбирает записи.
21
+ *
22
+ * @example
23
+ * ```html
24
+ * <rt-dynamic-list>
25
+ * <ng-container *rtDynamicListSelectors>
26
+ * <rt-select [options]="stages()" />
27
+ * </ng-container>
28
+ * </rt-dynamic-list>
29
+ * ```
30
+ */
31
+ declare class RtDynamicListToolbarSelectorsDirective {
32
+ readonly templateRef: TemplateRef<void>;
33
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicListToolbarSelectorsDirective, never>;
34
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtDynamicListToolbarSelectorsDirective, "[rtDynamicListSelectors]", never, {}, {}, never, never, true, never>;
35
+ }
36
+ /** Правая сторона панели: действия над разделом. Поле поиска стоит после них и остаётся за семьёй. */
37
+ declare class RtDynamicListToolbarActionsDirective {
38
+ readonly templateRef: TemplateRef<void>;
39
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicListToolbarActionsDirective, never>;
40
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtDynamicListToolbarActionsDirective, "[rtDynamicListActions]", never, {}, {}, never, never, true, never>;
41
+ }
42
+
43
+ /**
44
+ * Модель `<rt-dynamic-list>`: один корневой неймспейс с префиксом `I`.
45
+ */
46
+ declare namespace IRtDynamicList {
47
+ /**
48
+ * Отчего пусто. Причины две, и человеку они говорят разное: в разделе записей нет вовсе или
49
+ * их не оставил отбор. Из второго человеку показывают дорогу назад.
50
+ */
51
+ type EmptyReason = 'section' | 'filter';
52
+ }
53
+
54
+ /**
55
+ * Список записей со своей панелью инструментов.
56
+ *
57
+ * Полосу панели семья раскладывает сама, а не зовёт `rt-toolbar`: у того стороны объявлены
58
+ * нешринкующимися, и на хозяине уже́ содержимого полоса раздаётся шире него и уезжает за край.
59
+ * Семья кладёт в полосу готовые части кита — поле, кнопки, флажок, — а строит её сама.
60
+ *
61
+ * Семья ничего не рисует сама: поиск — поле кита, действия — его кнопки со значком, пустое место —
62
+ * его пустое состояние, страницы — его нумерация. Сами записи проецируются: таблица между панелью
63
+ * и страницами — потребителя, с его колонками, ячейками и действиями строки.
64
+ *
65
+ * Договорённость — `docs/specs/ui-kit-v2/dynamic-list/`.
66
+ */
67
+ declare class RtDynamicListComponent implements OnInit {
68
+ #private;
69
+ protected readonly t: Signal<TRtKitLabelMap>;
70
+ protected readonly searchControl: FormControl<string>;
71
+ protected readonly perPageOptions: ReadonlyArray<number>;
72
+ protected readonly selectorsTpl: Signal<TNullable<RtDynamicListToolbarSelectorsDirective>>;
73
+ protected readonly actionsTpl: Signal<TNullable<RtDynamicListToolbarActionsDirective>>;
74
+ /** «Выбрано: N» — подпись с подстановкой, потому её берут не из карты, а вызовом. */
75
+ protected readonly selectedLabel: Signal<string>;
76
+ /** Отчего пусто. Отбор стоит — значит, записи убрал он, и человеку показывают дорогу назад. */
77
+ protected readonly emptyReason: Signal<IRtDynamicList.EmptyReason>;
78
+ /** Значок пустого места: под отбором — лупа, у пустого раздела — лоток. */
79
+ protected readonly emptyIcon: Signal<IRtIcon.Name>;
80
+ /** Подпись пустого места. Своя подпись потребителя сильнее обеих подписей кита. */
81
+ protected readonly emptyTitleText: Signal<string>;
82
+ /**
83
+ * Полоса страниц рисуется, пока записей больше наименьшего размера страницы — то же правило, что у
84
+ * самой полосы. Число страниц при нынешнем размере тут не решает: выбравший крупный размер, при
85
+ * котором всё легло на одну страницу, иначе терял вместе с полосой и дорогу к размеру поменьше.
86
+ */
87
+ protected readonly isPaginationShown: Signal<boolean>;
88
+ /**
89
+ * Есть ли в панели хоть что-нибудь. Полоса без единой части — это отступ над записями, и
90
+ * место она забирает у них.
91
+ */
92
+ protected readonly isToolbarShown: Signal<boolean>;
93
+ /** Записи проецируются, и о числе страниц семья узнаёт только из модели страницы. */
94
+ readonly pageModel: InputSignal<TNullable<IPageModel>>;
95
+ /** Первая загрузка: вместо всего содержимого стоит вертушка. */
96
+ readonly loading: InputSignalWithTransform<boolean, BooleanInput>;
97
+ /** Подгрузка поверх нарисованного: записи остаются на месте, вертушка стоит над ними. */
98
+ readonly fetching: InputSignalWithTransform<boolean, BooleanInput>;
99
+ /** Записей нет вовсе. От пустого ответа под отбором отличается входом `filtered`. */
100
+ readonly empty: InputSignalWithTransform<boolean, BooleanInput>;
101
+ /** Отбор стоит. Вместе с `empty` даёт вторую причину пустоты — ту, у которой есть дорога назад. */
102
+ readonly filtered: InputSignalWithTransform<boolean, BooleanInput>;
103
+ /** Кнопка сброса отбора: показана у раздела с отбором, выключена, пока сбрасывать нечего. */
104
+ readonly showClearFilters: InputSignalWithTransform<boolean, BooleanInput>;
105
+ readonly showRefresh: InputSignalWithTransform<boolean, BooleanInput>;
106
+ readonly showColumnSettings: InputSignalWithTransform<boolean, BooleanInput>;
107
+ readonly showSearch: InputSignalWithTransform<boolean, BooleanInput>;
108
+ /** Выбор записей: флажок «выбрать все» и счётчик выбранного на левой стороне панели. */
109
+ readonly selectable: InputSignalWithTransform<boolean, BooleanInput>;
110
+ readonly allSelected: InputSignalWithTransform<boolean, BooleanInput>;
111
+ readonly someSelected: InputSignalWithTransform<boolean, BooleanInput>;
112
+ readonly selectAllDisabled: InputSignalWithTransform<boolean, BooleanInput>;
113
+ readonly selectedCount: InputSignalWithTransform<number, NumberInput>;
114
+ readonly emptyTitle: InputSignal<string>;
115
+ readonly emptyDescription: InputSignal<string | null>;
116
+ /** Поиск потребителя: поле следует за ним при каждой смене и потребителю его не возвращает. */
117
+ readonly searchTerm: InputSignal<TNullable<string>>;
118
+ readonly searchChange: OutputEmitterRef<string>;
119
+ readonly refreshed: OutputEmitterRef<void>;
120
+ readonly filtersCleared: OutputEmitterRef<void>;
121
+ readonly columnSettingsOpened: OutputEmitterRef<void>;
122
+ readonly pageChange: OutputEmitterRef<number>;
123
+ readonly perPageChange: OutputEmitterRef<number>;
124
+ readonly allSelectedChange: OutputEmitterRef<boolean>;
125
+ constructor();
126
+ ngOnInit(): void;
127
+ protected onSelectAll(checked: boolean): void;
128
+ /**
129
+ * Сброс отбора снимает и поиск: пустой ответ под поиском — тоже ответ под отбором, и дорога назад
130
+ * без очистки поля вела бы к тому же пустому ответу. Поле очищается молча: `filtersCleared`
131
+ * уже значит «и поиск снят», и отдельный пустой `searchChange` заставил бы потребителя
132
+ * запрашивать список дважды.
133
+ */
134
+ protected onClearFilters(): void;
135
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicListComponent, never>;
136
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicListComponent, "rt-dynamic-list", never, { "pageModel": { "alias": "pageModel"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fetching": { "alias": "fetching"; "required": false; "isSignal": true; }; "empty": { "alias": "empty"; "required": false; "isSignal": true; }; "filtered": { "alias": "filtered"; "required": false; "isSignal": true; }; "showClearFilters": { "alias": "showClearFilters"; "required": false; "isSignal": true; }; "showRefresh": { "alias": "showRefresh"; "required": false; "isSignal": true; }; "showColumnSettings": { "alias": "showColumnSettings"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "allSelected": { "alias": "allSelected"; "required": false; "isSignal": true; }; "someSelected": { "alias": "someSelected"; "required": false; "isSignal": true; }; "selectAllDisabled": { "alias": "selectAllDisabled"; "required": false; "isSignal": true; }; "selectedCount": { "alias": "selectedCount"; "required": false; "isSignal": true; }; "emptyTitle": { "alias": "emptyTitle"; "required": false; "isSignal": true; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; }, { "searchChange": "searchChange"; "refreshed": "refreshed"; "filtersCleared": "filtersCleared"; "columnSettingsOpened": "columnSettingsOpened"; "pageChange": "pageChange"; "perPageChange": "perPageChange"; "allSelectedChange": "allSelectedChange"; }, ["selectorsTpl", "actionsTpl"], ["*"], true, never>;
137
+ }
138
+
139
+ export { IRtDynamicList, RtDynamicListComponent, RtDynamicListToolbarActionsDirective, RtDynamicListToolbarSelectorsDirective };
@@ -0,0 +1,384 @@
1
+ import * as i0 from '@angular/core';
2
+ import { TemplateRef, Signal, ElementRef, WritableSignal, InputSignal, InputSignalWithTransform, OutputEmitterRef, OnInit, ModelSignal } from '@angular/core';
3
+ import { RtFormControlBase } from '@rt-tools/ui-kit-v2/form-control';
4
+ import { TRtRadius, IRtIcon } from '@rt-tools/ui-kit-v2/core';
5
+ import { CdkDragDrop } from '@angular/cdk/drag-drop';
6
+ import { RtPopoverDirective } from '@rt-tools/ui-kit-v2/popover';
7
+
8
+ /**
9
+ * Модель `rt-dynamic-selector`: один корневой неймспейс с префиксом `I`.
10
+ */
11
+ declare namespace IRtDynamicSelector {
12
+ /** Состояние флажка «Выбрать всё» по видимым пунктам. */
13
+ type SelectAllState = 'none' | 'some' | 'all';
14
+ /** Как выбирает всплывающий список: один пункт переключателем или несколько флажками. */
15
+ type Mode = 'single' | 'multi';
16
+ /** Строки всплывающего выбора: отмеченные раньше над разделителем и найденные под ним. */
17
+ interface PopupRows<T> {
18
+ readonly ticked: ReadonlyArray<T>;
19
+ readonly found: ReadonlyArray<T>;
20
+ }
21
+ /** Строка всплывающего выбора, готовая для разметки. */
22
+ interface PopupRow<T> {
23
+ readonly entity: T;
24
+ readonly key: unknown;
25
+ readonly label: string;
26
+ readonly ticked: boolean;
27
+ /** Под строкой стоит разделитель. */
28
+ readonly separated: boolean;
29
+ }
30
+ /** Строка списка выбранного, готовая для разметки. */
31
+ interface ListRow<T> {
32
+ readonly item: T;
33
+ readonly key: unknown;
34
+ readonly label: string;
35
+ /** Строку нельзя убрать из списка. */
36
+ readonly locked: boolean;
37
+ }
38
+ /** Перенос строки списка выбранного: откуда и куда. */
39
+ interface Move {
40
+ readonly from: number;
41
+ readonly to: number;
42
+ }
43
+ /** Обстановка шаблона строки, который принёс вызывающий. */
44
+ interface RowContext<T> {
45
+ readonly $implicit: T;
46
+ }
47
+ /** Правка строки поля списка строк: прежнее значение и новое. */
48
+ interface TextEdit {
49
+ readonly previous: string;
50
+ readonly next: string;
51
+ }
52
+ }
53
+
54
+ /**
55
+ * Маркеры частей строки списка выбранного — своим файлом, как у соседних семей.
56
+ *
57
+ * Маркер держит свой шаблон и о списке не знает ничего: селектор и поле списка строк читают его
58
+ * среди своего содержимого и отдают шаблон списку. Удаление и ручка перетаскивания остаются
59
+ * за китом.
60
+ */
61
+ /**
62
+ * Свои кнопки у каждой строки: стоят перед кнопкой удаления.
63
+ *
64
+ * @example
65
+ * ```html
66
+ * <rt-dynamic-selector keyExp="id" displayExp="name" [entities]="people()">
67
+ * <ng-template rtDynamicSelectorRowControls let-person>
68
+ * <rt-icon-button icon="info" ariaLabel="About" (clicked)="open(person)" />
69
+ * </ng-template>
70
+ * </rt-dynamic-selector>
71
+ * ```
72
+ */
73
+ declare class RtDynamicSelectorRowControlsDirective<T = unknown> {
74
+ readonly templateRef: TemplateRef<IRtDynamicSelector.RowContext<T>>;
75
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorRowControlsDirective<any>, never>;
76
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtDynamicSelectorRowControlsDirective<any>, "[rtDynamicSelectorRowControls]", never, {}, {}, never, never, true, never>;
77
+ }
78
+ /** Своё название строки вместо подписи из поля записи. */
79
+ declare class RtDynamicSelectorRowTitleDirective<T = unknown> {
80
+ readonly templateRef: TemplateRef<IRtDynamicSelector.RowContext<T>>;
81
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorRowTitleDirective<any>, never>;
82
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RtDynamicSelectorRowTitleDirective<any>, "[rtDynamicSelectorRowTitle]", never, {}, {}, never, never, true, never>;
83
+ }
84
+
85
+ /**
86
+ * Поле списка строк: строки человек набирает сам. Значение — массив строк в порядке списка.
87
+ * Enter или уход из поля добавляют срезанный по краям текст в конец; пустой и повторный не
88
+ * добавляются. Сброс, очистка, удаление строки и перетаскивание — те же, что у селектора.
89
+ *
90
+ * @example
91
+ * ```html
92
+ * <rt-dynamic-input editable [formControl]="tags" />
93
+ * ```
94
+ */
95
+ declare class RtDynamicInputComponent extends RtFormControlBase<string[]> {
96
+ #private;
97
+ protected readonly addLabel: Signal<string>;
98
+ protected readonly placeholderLabel: Signal<string>;
99
+ protected readonly field: Signal<ElementRef<HTMLElement> | undefined>;
100
+ protected readonly rowControls: Signal<RtDynamicSelectorRowControlsDirective<string> | undefined>;
101
+ protected readonly controlsTpl: Signal<TemplateRef<IRtDynamicSelector.RowContext<string>> | null>;
102
+ /** Поле набора открыто, и в нём текст. */
103
+ protected readonly isFieldShown: WritableSignal<boolean>;
104
+ protected readonly draft: WritableSignal<string>;
105
+ /** Приглашение снимается нажатием его кнопки и до новой записи формы не возвращается. */
106
+ protected readonly isInvitationDismissed: WritableSignal<boolean>;
107
+ protected readonly rows: Signal<IRtDynamicSelector.ListRow<string>[]>;
108
+ protected readonly isInvitationShown: Signal<boolean>;
109
+ protected readonly isAddShown: Signal<boolean>;
110
+ protected readonly isKeysReset: Signal<boolean>;
111
+ protected readonly isKeysClear: Signal<boolean>;
112
+ /** Правки в шаблоне строки держат сброс и очистку включёнными, даже когда строки не менялись. */
113
+ protected readonly isResetDisabled: Signal<boolean>;
114
+ protected readonly isClearDisabled: Signal<boolean>;
115
+ protected readonly addTitle: Signal<string>;
116
+ protected readonly fieldPlaceholder: Signal<string>;
117
+ protected readonly hasValue: Signal<boolean>;
118
+ readonly buttonTitle: InputSignal<string>;
119
+ readonly placeholder: InputSignal<string>;
120
+ /** Строки, которые нельзя убрать из списка. */
121
+ readonly readonlyKeys: InputSignal<ReadonlyArray<string>>;
122
+ readonly draggable: InputSignalWithTransform<boolean, unknown>;
123
+ /** Шаг скругления кнопок-иконок списка; по умолчанию они круглые. */
124
+ readonly buttonRadius: InputSignal<TRtRadius | null>;
125
+ readonly editable: InputSignalWithTransform<boolean, unknown>;
126
+ readonly invitation: InputSignalWithTransform<boolean, unknown>;
127
+ readonly invitationIcon: InputSignal<IRtIcon.Name | null>;
128
+ readonly invitationDescription: InputSignal<string>;
129
+ /** Корзина строк; без неё строки убирает только очистка или сам вызывающий. */
130
+ readonly removeShown: InputSignalWithTransform<boolean, unknown>;
131
+ /** Сброс и очистка под списком: `false` их убирает, кнопка добавления остаётся. */
132
+ readonly listActionsShown: InputSignalWithTransform<boolean, unknown>;
133
+ /**
134
+ * Строки правлены в шаблоне вызывающего: сброс и очистка включены и тогда, когда строки прежние.
135
+ * Сброс сообщает `listReset`, очистка — `listCleared`, и вызывающий снимает свои правки.
136
+ */
137
+ readonly extraChanged: InputSignalWithTransform<boolean, unknown>;
138
+ readonly listReset: OutputEmitterRef<void>;
139
+ readonly listCleared: OutputEmitterRef<void>;
140
+ readonly displayText: Signal<string>;
141
+ /** Записанное формой становится и списком, и значением для сброса; пустой массив список опустошает. */
142
+ writeValue(value: string[] | null): void;
143
+ protected onAdd(): void;
144
+ /** Enter или уход из поля: пустой текст поле не закрывает, повторный закрывает без изменений. */
145
+ protected onCommit(): void;
146
+ protected onRemoved(key: unknown): void;
147
+ protected onMoved(move: IRtDynamicSelector.Move): void;
148
+ protected onEdited(edit: IRtDynamicSelector.TextEdit): void;
149
+ protected onReset(): void;
150
+ protected onCleared(): void;
151
+ protected getEmptyValue(): string[];
152
+ protected focusAfterClear(): void;
153
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicInputComponent, never>;
154
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicInputComponent, "rt-dynamic-input", never, { "buttonTitle": { "alias": "buttonTitle"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "readonlyKeys": { "alias": "readonlyKeys"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "buttonRadius": { "alias": "buttonRadius"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "invitation": { "alias": "invitation"; "required": false; "isSignal": true; }; "invitationIcon": { "alias": "invitationIcon"; "required": false; "isSignal": true; }; "invitationDescription": { "alias": "invitationDescription"; "required": false; "isSignal": true; }; "removeShown": { "alias": "removeShown"; "required": false; "isSignal": true; }; "listActionsShown": { "alias": "listActionsShown"; "required": false; "isSignal": true; }; "extraChanged": { "alias": "extraChanged"; "required": false; "isSignal": true; }; }, { "listReset": "listReset"; "listCleared": "listCleared"; }, ["rowControls"], never, true, never>;
155
+ }
156
+
157
+ /**
158
+ * Список выбранного семьи динамических селекторов: строки с удалением, ручкой перетаскивания и
159
+ * правкой, под ними полоса с кнопкой добавления вызывающего, сбросом и очисткой. Значения список
160
+ * не держит: он сообщает, что человек сделал, а селектор и поле списка строк решают, что из этого
161
+ * выходит.
162
+ */
163
+ declare class RtDynamicSelectorListComponent<TItem> {
164
+ #private;
165
+ /** На узком экране подсказки кнопок не показываются: наведения там нет. */
166
+ protected readonly isNarrow: Signal<boolean>;
167
+ protected readonly dragLabel: Signal<string>;
168
+ protected readonly removeLabel: Signal<string>;
169
+ protected readonly editLabel: Signal<string>;
170
+ protected readonly applyLabel: Signal<string>;
171
+ protected readonly cancelLabel: Signal<string>;
172
+ protected readonly resetLabel: Signal<string>;
173
+ protected readonly clearLabel: Signal<string>;
174
+ /** Строка, открытая для правки, и текст в её поле. */
175
+ protected readonly editedIndex: WritableSignal<number | null>;
176
+ protected readonly draft: WritableSignal<string>;
177
+ readonly rows: InputSignal<ReadonlyArray<IRtDynamicSelector.ListRow<TItem>>>;
178
+ readonly draggable: InputSignalWithTransform<boolean, unknown>;
179
+ readonly editable: InputSignalWithTransform<boolean, unknown>;
180
+ readonly disabled: InputSignalWithTransform<boolean, unknown>;
181
+ /** Полоса под строками; приглашение вызывающего встаёт на её место. */
182
+ readonly actionsShown: InputSignalWithTransform<boolean, unknown>;
183
+ /** Сброс и очистка в полосе; без них в полосе остаётся кнопка добавления. */
184
+ readonly resetClearShown: InputSignalWithTransform<boolean, unknown>;
185
+ /** Корзина строк; без неё строки двигаются и правятся, но не убираются. */
186
+ readonly removeShown: InputSignalWithTransform<boolean, unknown>;
187
+ readonly resetDisabled: InputSignalWithTransform<boolean, unknown>;
188
+ readonly clearDisabled: InputSignalWithTransform<boolean, unknown>;
189
+ /** Шаг скругления кнопок-иконок списка; по умолчанию они круглые. */
190
+ readonly buttonRadius: InputSignal<TRtRadius | null>;
191
+ readonly titleTpl: InputSignal<TemplateRef<IRtDynamicSelector.RowContext<TItem>> | null>;
192
+ readonly controlsTpl: InputSignal<TemplateRef<IRtDynamicSelector.RowContext<TItem>> | null>;
193
+ readonly removed: OutputEmitterRef<unknown>;
194
+ readonly moved: OutputEmitterRef<IRtDynamicSelector.Move>;
195
+ readonly edited: OutputEmitterRef<IRtDynamicSelector.TextEdit>;
196
+ readonly resetClicked: OutputEmitterRef<void>;
197
+ readonly cleared: OutputEmitterRef<void>;
198
+ /** Строка, взятая из чужого списка, ничего не меняет; брошенная на своё место — тоже. */
199
+ protected onDrop(event: CdkDragDrop<unknown>): void;
200
+ protected onRemove(row: IRtDynamicSelector.ListRow<TItem>): void;
201
+ protected onEditStart(index: number, row: IRtDynamicSelector.ListRow<TItem>): void;
202
+ protected onEditApply(row: IRtDynamicSelector.ListRow<TItem>): void;
203
+ protected onEditCancel(): void;
204
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorListComponent<any>, never>;
205
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicSelectorListComponent<any>, "rt-dynamic-selector-list", never, { "rows": { "alias": "rows"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "actionsShown": { "alias": "actionsShown"; "required": false; "isSignal": true; }; "resetClearShown": { "alias": "resetClearShown"; "required": false; "isSignal": true; }; "removeShown": { "alias": "removeShown"; "required": false; "isSignal": true; }; "resetDisabled": { "alias": "resetDisabled"; "required": false; "isSignal": true; }; "clearDisabled": { "alias": "clearDisabled"; "required": false; "isSignal": true; }; "buttonRadius": { "alias": "buttonRadius"; "required": false; "isSignal": true; }; "titleTpl": { "alias": "titleTpl"; "required": false; "isSignal": true; }; "controlsTpl": { "alias": "controlsTpl"; "required": false; "isSignal": true; }; }, { "removed": "removed"; "moved": "moved"; "edited": "edited"; "resetClicked": "resetClicked"; "cleared": "cleared"; }, never, ["*"], true, never>;
206
+ }
207
+
208
+ /** Сколько ждёт поиск на сервере после последней нажатой клавиши. */
209
+ declare const RT_DYNAMIC_SELECTOR_SEARCH_DEBOUNCE: number;
210
+ /**
211
+ * Всплывающий выбор динамического селектора: поиск, флажки или переключатели, «Выбрать всё»,
212
+ * догрузка при прокрутке, «Отмена» и «Применить». Отметки живут в самом окне и уходят наружу
213
+ * только по «Применить»: окно создаётся заново при каждом открытии, и закрытие их сбрасывает.
214
+ */
215
+ declare class RtDynamicSelectorPopupComponent<TEntity extends object> implements OnInit {
216
+ #private;
217
+ protected readonly searchLabel: Signal<string>;
218
+ protected readonly selectAllLabel: Signal<string>;
219
+ protected readonly multiLabel: Signal<string>;
220
+ protected readonly multiHintLabel: Signal<string>;
221
+ protected readonly noResultsLabel: Signal<string>;
222
+ protected readonly cancelLabel: Signal<string>;
223
+ protected readonly applyLabel: Signal<string>;
224
+ /** Отмеченные ключи — ещё не применённые. */
225
+ protected readonly ticked: WritableSignal<unknown[]>;
226
+ protected readonly query: WritableSignal<string>;
227
+ /** Выбор нескольких включён: без него простое нажатие оставляет одну отметку. */
228
+ protected readonly isMultiOn: WritableSignal<boolean>;
229
+ /** Найденные строки: местный поиск отбирает сам, серверный отдаёт запрос наружу. */
230
+ protected readonly found: Signal<TEntity[]>;
231
+ protected readonly rows: Signal<IRtDynamicSelector.PopupRows<TEntity>>;
232
+ protected readonly visibleKeys: Signal<unknown[]>;
233
+ /** Строки для разметки: отмеченные раньше над разделителем, найденные — под ним. */
234
+ protected readonly rowItems: Signal<IRtDynamicSelector.PopupRow<TEntity>[]>;
235
+ protected readonly hasRows: Signal<boolean>;
236
+ protected readonly selectAllState: Signal<IRtDynamicSelector.SelectAllState>;
237
+ protected readonly isSingle: Signal<boolean>;
238
+ protected readonly isSelectAllShown: Signal<boolean>;
239
+ protected readonly isMultiToggleVisible: Signal<boolean>;
240
+ protected readonly lastPinnedKey: Signal<unknown>;
241
+ protected readonly isApplyDisabled: Signal<boolean>;
242
+ protected readonly isNavShown: Signal<boolean>;
243
+ /** Предлагаемые записи: ещё не выбранные, отсортированные селектором. */
244
+ readonly entities: InputSignal<ReadonlyArray<TEntity>>;
245
+ readonly keyExp: InputSignal<keyof TEntity & string>;
246
+ readonly displayExp: InputSignal<keyof TEntity & string>;
247
+ readonly mode: InputSignal<IRtDynamicSelector.Mode>;
248
+ readonly multiToggleShown: InputSignalWithTransform<boolean, unknown>;
249
+ readonly selectAllShown: InputSignalWithTransform<boolean, unknown>;
250
+ readonly localSearch: InputSignalWithTransform<boolean, unknown>;
251
+ readonly lazyLoad: InputSignalWithTransform<boolean, unknown>;
252
+ readonly loading: InputSignalWithTransform<boolean, unknown>;
253
+ readonly fetching: InputSignalWithTransform<boolean, unknown>;
254
+ readonly pinnedKeys: InputSignal<ReadonlyArray<unknown>>;
255
+ readonly navigateTitle: InputSignal<string>;
256
+ readonly navigateLink: InputSignal<string>;
257
+ /** Запрос, с которым выбор открывается; событием поиска он не уходит — вызывающий его знает. */
258
+ readonly searchTerm: InputSignal<string>;
259
+ /** Применённые ключи в порядке отметок. */
260
+ readonly applied: OutputEmitterRef<unknown[]>;
261
+ readonly cancelled: OutputEmitterRef<void>;
262
+ /** Запрос для поиска на сервере: через паузу после последней клавиши, стёртый — пустой строкой. */
263
+ readonly searchChange: OutputEmitterRef<string>;
264
+ readonly loadMore: OutputEmitterRef<void>;
265
+ /** Отмеченные записи: пустой список при открытии и текущие отметки после каждого поиска. */
266
+ readonly temporaryChoiceChange: OutputEmitterRef<TEntity[]>;
267
+ ngOnInit(): void;
268
+ protected onQueryChange(value: string | null): void;
269
+ /** Нажатие строки флажков: при выключенном выборе нескольких без Ctrl или Cmd остаётся одна отметка. */
270
+ protected onRowClick(event: MouseEvent, item: TEntity): void;
271
+ protected onRadioChange(item: TEntity): void;
272
+ protected onSelectAll(checked: boolean): void;
273
+ protected onMultiToggle(value: boolean): void;
274
+ protected onApply(): void;
275
+ protected onCancel(): void;
276
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorPopupComponent<any>, never>;
277
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicSelectorPopupComponent<any>, "rt-dynamic-selector-popup", never, { "entities": { "alias": "entities"; "required": false; "isSignal": true; }; "keyExp": { "alias": "keyExp"; "required": true; "isSignal": true; }; "displayExp": { "alias": "displayExp"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "multiToggleShown": { "alias": "multiToggleShown"; "required": false; "isSignal": true; }; "selectAllShown": { "alias": "selectAllShown"; "required": false; "isSignal": true; }; "localSearch": { "alias": "localSearch"; "required": false; "isSignal": true; }; "lazyLoad": { "alias": "lazyLoad"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fetching": { "alias": "fetching"; "required": false; "isSignal": true; }; "pinnedKeys": { "alias": "pinnedKeys"; "required": false; "isSignal": true; }; "navigateTitle": { "alias": "navigateTitle"; "required": false; "isSignal": true; }; "navigateLink": { "alias": "navigateLink"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; }, { "applied": "applied"; "cancelled": "cancelled"; "searchChange": "searchChange"; "loadMore": "loadMore"; "temporaryChoiceChange": "temporaryChoiceChange"; }, never, never, true, never>;
278
+ }
279
+
280
+ /**
281
+ * Динамический селектор: поле формы со списком выбранных записей. Значение — массив ключей в
282
+ * порядке списка. Записи добавляются всплывающим выбором, убираются корзиной строки, список
283
+ * возвращается к записанному формой сбросом и пустеет очисткой — кроме строк только для чтения.
284
+ *
285
+ * @example
286
+ * ```html
287
+ * <rt-dynamic-selector keyExp="id" displayExp="name" [entities]="people()" [formControl]="team" />
288
+ * ```
289
+ */
290
+ declare class RtDynamicSelectorComponent<TEntity extends object> extends RtFormControlBase<unknown[]> {
291
+ #private;
292
+ protected readonly addLabel: Signal<string>;
293
+ protected readonly nothingToChooseLabel: Signal<string>;
294
+ /** Всплывающий выбор открывается от нажатой кнопки добавления: у полосы и у приглашения — свой. */
295
+ protected readonly popovers: Signal<readonly RtPopoverDirective[]>;
296
+ protected readonly rowTitle: Signal<RtDynamicSelectorRowTitleDirective<TEntity> | undefined>;
297
+ protected readonly rowControls: Signal<RtDynamicSelectorRowControlsDirective<TEntity> | undefined>;
298
+ protected readonly titleTpl: Signal<TemplateRef<IRtDynamicSelector.RowContext<TEntity>> | null>;
299
+ protected readonly controlsTpl: Signal<TemplateRef<IRtDynamicSelector.RowContext<TEntity>> | null>;
300
+ /** Выбранные записи в порядке значения; ключ, которого нет среди записей, строки не рисует. */
301
+ protected readonly chosen: Signal<TEntity[]>;
302
+ protected readonly rows: Signal<IRtDynamicSelector.ListRow<TEntity>[]>;
303
+ /** Что предлагает всплывающий выбор: ещё не выбранное, в порядке вызывающего или по алфавиту. */
304
+ protected readonly offered: Signal<TEntity[]>;
305
+ protected readonly hasOffer: Signal<boolean>;
306
+ protected readonly isNothingToChoose: Signal<boolean>;
307
+ protected readonly isAddShown: Signal<boolean>;
308
+ protected readonly isKeysReset: Signal<boolean>;
309
+ protected readonly isKeysClear: Signal<boolean>;
310
+ /** Правки в шаблоне строки держат сброс и очистку включёнными, даже когда ключи не менялись. */
311
+ protected readonly isResetDisabled: Signal<boolean>;
312
+ protected readonly isClearDisabled: Signal<boolean>;
313
+ protected readonly addTitle: Signal<string>;
314
+ protected readonly hasValue: Signal<boolean>;
315
+ /** Записи, из которых выбирают; у каждой есть поле ключа и поле подписи. */
316
+ readonly entities: InputSignal<ReadonlyArray<TEntity>>;
317
+ readonly keyExp: InputSignal<keyof TEntity & string>;
318
+ readonly displayExp: InputSignal<keyof TEntity & string>;
319
+ readonly mode: InputSignal<IRtDynamicSelector.Mode>;
320
+ /** Название кнопки добавления; пустое — «Add» из словаря кита. */
321
+ readonly buttonTitle: InputSignal<string>;
322
+ readonly addShown: InputSignalWithTransform<boolean, unknown>;
323
+ /** Корзина строк; без неё записи убирает только очистка или сам вызывающий. */
324
+ readonly removeShown: InputSignalWithTransform<boolean, unknown>;
325
+ /** Сброс и очистка под списком: `false` их убирает, кнопка добавления остаётся. */
326
+ readonly listActionsShown: InputSignalWithTransform<boolean, unknown>;
327
+ /**
328
+ * Строки правлены в шаблоне вызывающего: сброс и очистка включены и тогда, когда ключи прежние.
329
+ * Сброс сообщает `listReset`, очистка — `listCleared`, и вызывающий снимает свои правки.
330
+ */
331
+ readonly extraChanged: InputSignalWithTransform<boolean, unknown>;
332
+ /** Запрос, с которым открывается всплывающий выбор; событием поиска он не уходит. */
333
+ readonly searchTerm: InputSignal<string>;
334
+ /** Ключи, которые нельзя убрать из списка. */
335
+ readonly readonlyKeys: InputSignal<ReadonlyArray<unknown>>;
336
+ /** Ключи строк всплывающего выбора, под последней из которых стоит разделитель. */
337
+ readonly pinnedKeys: InputSignal<ReadonlyArray<unknown>>;
338
+ readonly draggable: InputSignalWithTransform<boolean, unknown>;
339
+ /** Шаг скругления кнопок-иконок списка; по умолчанию они круглые. */
340
+ readonly buttonRadius: InputSignal<TRtRadius | null>;
341
+ /** Приглашение вместо полосы кнопок: значок, описание и кнопка добавления. */
342
+ readonly invitation: InputSignalWithTransform<boolean, unknown>;
343
+ readonly invitationIcon: InputSignal<IRtIcon.Name | null>;
344
+ readonly invitationDescription: InputSignal<string>;
345
+ readonly multiToggleShown: InputSignalWithTransform<boolean, unknown>;
346
+ readonly selectAllShown: InputSignalWithTransform<boolean, unknown>;
347
+ readonly localSearch: InputSignalWithTransform<boolean, unknown>;
348
+ readonly lazyLoad: InputSignalWithTransform<boolean, unknown>;
349
+ readonly loading: InputSignalWithTransform<boolean, unknown>;
350
+ readonly fetching: InputSignalWithTransform<boolean, unknown>;
351
+ readonly navigateTitle: InputSignal<string>;
352
+ readonly navigateLink: InputSignal<string>;
353
+ readonly sortFn: InputSignal<((a: TEntity, b: TEntity) => number) | null>;
354
+ /** Выбранные записи: те же, что уходят событием изменения выбора. */
355
+ readonly chosenEntities: ModelSignal<TEntity[]>;
356
+ readonly selectionChange: OutputEmitterRef<TEntity[]>;
357
+ readonly listReset: OutputEmitterRef<void>;
358
+ readonly listCleared: OutputEmitterRef<void>;
359
+ /** Всплывающий выбор открылся или закрылся. */
360
+ readonly popupOpenChange: OutputEmitterRef<boolean>;
361
+ readonly searchChange: OutputEmitterRef<string>;
362
+ readonly loadMore: OutputEmitterRef<void>;
363
+ readonly temporaryChoiceChange: OutputEmitterRef<TEntity[]>;
364
+ /** Открыт ли всплывающий выбор — от кнопки полосы или от кнопки приглашения. */
365
+ readonly popupOpen: Signal<boolean>;
366
+ readonly displayText: Signal<string>;
367
+ /** Записанное формой становится и списком, и значением для сброса; пустой массив список опустошает. */
368
+ writeValue(value: unknown[] | null): void;
369
+ protected onAdd(popover: RtPopoverDirective): void;
370
+ protected onApplied(keys: unknown[]): void;
371
+ protected onCancelled(): void;
372
+ protected onRemoved(key: unknown): void;
373
+ protected onMoved(move: IRtDynamicSelector.Move): void;
374
+ protected onReset(): void;
375
+ protected onCleared(): void;
376
+ protected onOpened(): void;
377
+ protected onClosed(): void;
378
+ protected getEmptyValue(): unknown[];
379
+ protected focusAfterClear(): void;
380
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDynamicSelectorComponent<any>, never>;
381
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDynamicSelectorComponent<any>, "rt-dynamic-selector", never, { "entities": { "alias": "entities"; "required": false; "isSignal": true; }; "keyExp": { "alias": "keyExp"; "required": true; "isSignal": true; }; "displayExp": { "alias": "displayExp"; "required": true; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "buttonTitle": { "alias": "buttonTitle"; "required": false; "isSignal": true; }; "addShown": { "alias": "addShown"; "required": false; "isSignal": true; }; "removeShown": { "alias": "removeShown"; "required": false; "isSignal": true; }; "listActionsShown": { "alias": "listActionsShown"; "required": false; "isSignal": true; }; "extraChanged": { "alias": "extraChanged"; "required": false; "isSignal": true; }; "searchTerm": { "alias": "searchTerm"; "required": false; "isSignal": true; }; "readonlyKeys": { "alias": "readonlyKeys"; "required": false; "isSignal": true; }; "pinnedKeys": { "alias": "pinnedKeys"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "buttonRadius": { "alias": "buttonRadius"; "required": false; "isSignal": true; }; "invitation": { "alias": "invitation"; "required": false; "isSignal": true; }; "invitationIcon": { "alias": "invitationIcon"; "required": false; "isSignal": true; }; "invitationDescription": { "alias": "invitationDescription"; "required": false; "isSignal": true; }; "multiToggleShown": { "alias": "multiToggleShown"; "required": false; "isSignal": true; }; "selectAllShown": { "alias": "selectAllShown"; "required": false; "isSignal": true; }; "localSearch": { "alias": "localSearch"; "required": false; "isSignal": true; }; "lazyLoad": { "alias": "lazyLoad"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "fetching": { "alias": "fetching"; "required": false; "isSignal": true; }; "navigateTitle": { "alias": "navigateTitle"; "required": false; "isSignal": true; }; "navigateLink": { "alias": "navigateLink"; "required": false; "isSignal": true; }; "sortFn": { "alias": "sortFn"; "required": false; "isSignal": true; }; "chosenEntities": { "alias": "chosenEntities"; "required": false; "isSignal": true; }; }, { "chosenEntities": "chosenEntitiesChange"; "selectionChange": "selectionChange"; "listReset": "listReset"; "listCleared": "listCleared"; "popupOpenChange": "popupOpenChange"; "searchChange": "searchChange"; "loadMore": "loadMore"; "temporaryChoiceChange": "temporaryChoiceChange"; }, ["rowTitle", "rowControls"], never, true, never>;
382
+ }
383
+
384
+ export { IRtDynamicSelector, RT_DYNAMIC_SELECTOR_SEARCH_DEBOUNCE, RtDynamicInputComponent, RtDynamicSelectorComponent, RtDynamicSelectorListComponent, RtDynamicSelectorPopupComponent, RtDynamicSelectorRowControlsDirective, RtDynamicSelectorRowTitleDirective };
@@ -0,0 +1,29 @@
1
+ import { BooleanInput } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { InputSignal, InputSignalWithTransform } from '@angular/core';
4
+ import { IRtIcon } from '@rt-tools/ui-kit-v2/core';
5
+ import * as i1 from '@rt-tools/ui-kit-v2/radius';
6
+
7
+ /**
8
+ * Заглушка пустого состояния: центрированная иконка в круглой подложке, заголовок,
9
+ * опциональное описание и проецируемый слот для действия (кнопка «Прикрепить»,
10
+ * «Выбрать» и т.п.). Применяется в пустых вкладках/списках и зонах загрузки, когда
11
+ * сущностей ещё нет.
12
+ *
13
+ * Иконка опциональна (`icon`), действие — через `<ng-content />` (если ничего не
14
+ * спроецировано, слот скрыт `:empty`). Громких severity-цветов нет — приглушённая
15
+ * палитра, как у `rt-note`.
16
+ */
17
+ declare class RtEmptyStateComponent {
18
+ readonly icon: InputSignal<IRtIcon.Name | null>;
19
+ /** Имя Material вместо `icon` — рисуется так же, как вход `glyph` у `rt-icon`. */
20
+ readonly glyph: InputSignal<string | null>;
21
+ readonly title: InputSignal<string>;
22
+ readonly description: InputSignal<string | null>;
23
+ /** Пунктирная рамка вокруг заглушки — так она читается как зона, куда бросают файл. */
24
+ readonly framed: InputSignalWithTransform<boolean, BooleanInput>;
25
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtEmptyStateComponent, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtEmptyStateComponent, "rt-empty-state", never, { "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "glyph": { "alias": "glyph"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "framed": { "alias": "framed"; "required": false; "isSignal": true; }; }, {}, never, ["[rtEmptyIllustration]", "*"], true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
27
+ }
28
+
29
+ export { RtEmptyStateComponent };