@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,181 @@
1
+ import { NumberInput } from '@angular/cdk/coercion';
2
+ import * as i0 from '@angular/core';
3
+ import { Signal, ElementRef, WritableSignal, InputSignal, InputSignalWithTransform } from '@angular/core';
4
+ import { TRtKitLabelMap, IRtIcon, IRtInput } from '@rt-tools/ui-kit-v2/core';
5
+ import { RtFormControlBase } from '@rt-tools/ui-kit-v2/form-control';
6
+ import { RtPopoverDirective } from '@rt-tools/ui-kit-v2/popover';
7
+ import * as i1 from '@rt-tools/ui-kit-v2/radius';
8
+ import { IRtCalendar } from '@rt-tools/ui-kit-v2/calendar';
9
+
10
+ /** Контракт rt-date-picker. */
11
+ declare namespace IRtDatePicker {
12
+ /** Тип значения: дата, время или дата со временем. */
13
+ type Type = 'date' | 'datetime-local' | 'time';
14
+ /** Часть даты в тексте поля. */
15
+ type DatePart = 'day' | 'month' | 'year';
16
+ /** Как дата пишется в тексте поля по локали: порядок частей и знак между ними. */
17
+ interface TextLayout {
18
+ order: readonly DatePart[];
19
+ separator: string;
20
+ }
21
+ /** Буквы подсказки формы текста: `дд`, `мм`, `гггг`, `чч`, `мм` под русскими метками. */
22
+ interface ShapeLetters {
23
+ day: string;
24
+ month: string;
25
+ year: string;
26
+ hour: string;
27
+ minute: string;
28
+ }
29
+ /** Ячейка колонки часов или минут. */
30
+ interface TimeCell {
31
+ value: number;
32
+ label: string;
33
+ disabled: boolean;
34
+ }
35
+ /** Колонки времени панели. */
36
+ interface TimeColumns {
37
+ hours: readonly TimeCell[];
38
+ minutes: readonly TimeCell[];
39
+ }
40
+ /** Ячейка выбора месяца: `key` — `YYYY-MM`. */
41
+ interface MonthCell {
42
+ key: string;
43
+ label: string;
44
+ disabled: boolean;
45
+ }
46
+ /** Момент, разобранный на день `YYYY-MM-DD` и время `HH:mm`. */
47
+ interface Moment {
48
+ day: string;
49
+ time: string;
50
+ }
51
+ /** Что месяц панели знает о выборе и границах. */
52
+ interface MonthContext {
53
+ locale: string;
54
+ today: string;
55
+ chosen: string | null;
56
+ min: string | null;
57
+ max: string | null;
58
+ }
59
+ /** Что колонки времени знают о выбранном дне и границах. */
60
+ interface TimeContext {
61
+ step: number;
62
+ hour: number | null;
63
+ day: string | null;
64
+ min: string | null;
65
+ max: string | null;
66
+ }
67
+ }
68
+
69
+ /**
70
+ * Поле даты, времени или даты со временем со своей панелью кита, визуально и по токенам
71
+ * идентичное rt-input (host — box `--rt-input-*`, input — прозрачный `__field`). Кнопка в конце
72
+ * поля открывает `rt-date-panel`: на широком экране в поповере, на узком — в нижней шторке.
73
+ * CVA через общий `RtFormControlBase`: clearable, авто-подсветка invalid, read-only
74
+ * представление (значение форматируется через Intl).
75
+ *
76
+ * `value` — строка формы нативного input'а (`YYYY-MM-DD`, `YYYY-MM-DDTHH:mm`, `HH:mm`). Текст в
77
+ * поле — дата в порядке языка интерфейса (`01.08.2026` под `ru`), время `HH:mm`; набирается так же,
78
+ * вставленная форма значения тоже читается. Нечитаемый или лежащий за границами текст оставляет
79
+ * значение прежним и помечает поле ошибкой.
80
+ */
81
+ declare class RtDatePickerComponent extends RtFormControlBase<string> {
82
+ #private;
83
+ protected readonly t: Signal<TRtKitLabelMap>;
84
+ /** Узкий экран: панель открывается в нижней шторке, а не в поповере. */
85
+ protected readonly narrow: Signal<boolean>;
86
+ protected readonly fieldEl: Signal<ElementRef<HTMLInputElement> | undefined>;
87
+ protected readonly popover: Signal<RtPopoverDirective | undefined>;
88
+ /** Набранный текст не читается как значение в границах: поле помечено ошибкой. */
89
+ protected readonly textInvalid: WritableSignal<boolean>;
90
+ protected readonly sheetOpen: WritableSignal<boolean>;
91
+ /** Подсказка формы текста буквами кита: `дд.мм.гггг` под русскими метками. */
92
+ protected readonly shape: Signal<string>;
93
+ /**
94
+ * Текст в поле — значение в порядке языка интерфейса. Не строку форма кладёт мимо контракта
95
+ * (например `Date`), и поле показывает её пустой, как показывало браузерное.
96
+ */
97
+ protected readonly text: Signal<string>;
98
+ protected readonly openIcon: Signal<IRtIcon.Name>;
99
+ protected readonly hasValue: Signal<boolean>;
100
+ /**
101
+ * Ширина поля в знаках — по длине формы значения. Без неё текстовое поле берёт от браузера
102
+ * двадцать знаков и в строке отборов потребителя занимает место вдвое шире значения.
103
+ */
104
+ protected readonly fieldSize: Signal<number>;
105
+ /** Подсказка обрезается многоточием в узком поле, поэтому шаблон целиком виден при наведении. */
106
+ protected readonly shapeTitle: Signal<string | null>;
107
+ /** Вид рамки: `outline` — рамка со всех сторон, `fill` — залитое поле с чертой снизу. */
108
+ readonly appearance: InputSignal<IRtInput.Appearance>;
109
+ readonly displayText: Signal<string>;
110
+ readonly type: InputSignal<IRtDatePicker.Type>;
111
+ readonly min: InputSignal<string | null>;
112
+ readonly max: InputSignal<string | null>;
113
+ /** Шаг колонки минут в панели. */
114
+ readonly minuteStep: InputSignalWithTransform<number, NumberInput>;
115
+ /** Значение из формы снимает ошибку набора: в поле теперь стоит оно. */
116
+ writeValue(value: string | null): void;
117
+ protected getEmptyValue(): string;
118
+ protected focusAfterClear(): void;
119
+ protected clearValue(): void;
120
+ /** Набор текста: значение меняется, только когда текст читается как значение в границах. */
121
+ protected onTyped(event: Event): void;
122
+ /** Кнопка в конце поля: на узком экране открывает шторку, на широком поповер открывает сам. */
123
+ protected openPanel(): void;
124
+ protected closePanel(): void;
125
+ protected onPicked(value: string): void;
126
+ protected onBlur(): void;
127
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDatePickerComponent, never>;
128
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDatePickerComponent, "rt-date-picker", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
129
+ }
130
+
131
+ /** Время `HH:mm` из часа и минуты. */
132
+ declare function rtDateTime(hour: number, minute: number): string;
133
+ /** Первый день недели локали: 1 — понедельник … 7 — воскресенье. */
134
+ declare function rtDateFirstDay(locale: string): number;
135
+ /** Читает текст формы значения; `null` — текст не значение этого типа. */
136
+ declare function rtDateRead(text: string, type: IRtDatePicker.Type): string | null;
137
+ /** Собирает значение типа из дня и времени; без нужной части — пустая строка. */
138
+ declare function rtDateWrite(type: IRtDatePicker.Type, day: string | null, time: string | null): string;
139
+ /** Разбирает значение на день и время; недостающая часть — `null`. */
140
+ declare function rtDateSplit(value: string, type: IRtDatePicker.Type): {
141
+ day: string | null;
142
+ time: string | null;
143
+ };
144
+ /** Лежит ли значение в границах; граница обрезается до длины значения, `null` — открыта. */
145
+ declare function rtDateInBounds(value: string, min: string | null, max: string | null): boolean;
146
+ /** Текущий момент: день и время, округлённое вниз до шага минут. */
147
+ declare function rtDateNow(now: Date, step: number): IRtDatePicker.Moment;
148
+ /** Сдвигает месяц `YYYY-MM` на `delta` месяцев. */
149
+ declare function rtDateAddMonths(month: string, delta: number): string;
150
+ /** Можно ли листать от месяца на `delta`: соседний месяц не лежит за границей. */
151
+ declare function rtDateCanPage(month: string, delta: number, min: string | null, max: string | null): boolean;
152
+ /** Месяц `YYYY-MM` для календаря: подпись по локали, пустые ячейки до первого дня, дни. */
153
+ declare function rtDateMonth(month: string, ctx: IRtDatePicker.MonthContext): IRtCalendar.Month;
154
+ /** Короткие имена дней недели по локали, начиная с её первого дня. */
155
+ declare function rtDateWeekdays(locale: string): string[];
156
+ /** Двенадцать месяцев года для выбора месяца; месяц за границей выключен. */
157
+ declare function rtDateMonths(year: number, locale: string, min: string | null, max: string | null): IRtDatePicker.MonthCell[];
158
+ /** Колонки часов и минут: минуты идут с шагом, время за границей выключено. */
159
+ declare function rtDateTimeColumns(ctx: IRtDatePicker.TimeContext): IRtDatePicker.TimeColumns;
160
+ /**
161
+ * Куда клавиша переводит фокус с дня; `null` — клавиша не сеточная. День за границей не
162
+ * достаётся: фокус встаёт на ближний день в границах.
163
+ */
164
+ declare function rtDateGridKey(key: string, day: string, firstDay: number, min: string | null, max: string | null): string | null;
165
+
166
+ /** Порядок дня, месяца и года и знак между ними — по локали. */
167
+ declare function rtDateLayout(locale: string): IRtDatePicker.TextLayout;
168
+ /**
169
+ * Текст поля для значения ISO; пустое значение — пустой текст. Строка, которая не читается как
170
+ * значение этого типа, показывается как есть: она пришла из формы мимо поля и не должна пропасть.
171
+ */
172
+ declare function rtDateText(value: string, type: IRtDatePicker.Type, layout: IRtDatePicker.TextLayout): string;
173
+ /** Подсказка формы текста в буквах кита: `дд.мм.гггг`, `чч:мм`, `дд.мм.гггг чч:мм`. */
174
+ declare function rtDateShape(type: IRtDatePicker.Type, layout: IRtDatePicker.TextLayout, letters: IRtDatePicker.ShapeLetters): string;
175
+ /**
176
+ * Читает набранный текст в значение ISO; `null` — текст не значение этого типа. Читается и
177
+ * порядок локали, и сама форма значения: вставленная `2026-08-01` тоже становится значением.
178
+ */
179
+ declare function rtDateParse(text: string, type: IRtDatePicker.Type, layout: IRtDatePicker.TextLayout): string | null;
180
+
181
+ export { IRtDatePicker, RtDatePickerComponent, rtDateAddMonths, rtDateCanPage, rtDateFirstDay, rtDateGridKey, rtDateInBounds, rtDateLayout, rtDateMonth, rtDateMonths, rtDateNow, rtDateParse, rtDateRead, rtDateShape, rtDateSplit, rtDateText, rtDateTime, rtDateTimeColumns, rtDateWeekdays, rtDateWrite };
@@ -0,0 +1,98 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Signal, ElementRef, WritableSignal, InputSignal } from '@angular/core';
3
+ import { TRtKitLabelMap, IRtInput } from '@rt-tools/ui-kit-v2/core';
4
+ import { RtFormControlBase } from '@rt-tools/ui-kit-v2/form-control';
5
+ import { RtPopoverDirective } from '@rt-tools/ui-kit-v2/popover';
6
+ import * as i1 from '@rt-tools/ui-kit-v2/radius';
7
+
8
+ /** Быстрый вариант диапазона в панели поля. */
9
+ declare enum ERtDateRangePreset {
10
+ Today = "today",
11
+ Yesterday = "yesterday",
12
+ Last7 = "last-7",
13
+ Last30 = "last-30",
14
+ ThisMonth = "this-month",
15
+ LastMonth = "last-month"
16
+ }
17
+ /** Контракт rt-date-range. */
18
+ declare namespace IRtDateRange {
19
+ /** Значение поля: первый и последний день периода `YYYY-MM-DD`, оба включены, `start <= end`. */
20
+ interface Value {
21
+ start: string;
22
+ end: string;
23
+ }
24
+ /** Быстрый вариант в панели: его диапазон и выключен ли он границами. */
25
+ interface PresetCell {
26
+ preset: ERtDateRangePreset;
27
+ range: Value;
28
+ disabled: boolean;
29
+ }
30
+ /** Что месяц панели знает о черновике, наведении и границах. */
31
+ interface MonthContext {
32
+ locale: string;
33
+ today: string;
34
+ start: string | null;
35
+ end: string | null;
36
+ /** День под указателем, пока выбрано только начало: до него рисуется будущий диапазон. */
37
+ hover: string | null;
38
+ min: string | null;
39
+ max: string | null;
40
+ }
41
+ /** Форма числа дней по правилам множественного числа локали. */
42
+ type Plural = 'one' | 'few' | 'many' | 'other';
43
+ }
44
+
45
+ /**
46
+ * Поле диапазона дат со своей панелью кита, визуально и по токенам идентичное rt-input (host — box
47
+ * `--rt-input-*`, input — прозрачный `__field`). Кнопка в конце поля открывает
48
+ * `rt-date-range-panel`: на широком экране в поповере, на узком — в нижней шторке. CVA через общий
49
+ * `RtFormControlBase`: clearable, авто-подсветка invalid, read-only представление.
50
+ *
51
+ * `value` — пара дней `{ start, end }` в форме `YYYY-MM-DD` или `null`. Текст в поле — две даты в
52
+ * порядке языка интерфейса через тире (`12.10.2026 — 15.10.2026` под `ru`); набирается так же.
53
+ * Нечитаемый или лежащий за границами текст оставляет значение прежним и помечает поле ошибкой.
54
+ */
55
+ declare class RtDateRangeComponent extends RtFormControlBase<IRtDateRange.Value | null> {
56
+ #private;
57
+ protected readonly t: Signal<TRtKitLabelMap>;
58
+ /** Узкий экран: панель открывается в нижней шторке, а не в поповере. */
59
+ protected readonly narrow: Signal<boolean>;
60
+ protected readonly fieldEl: Signal<ElementRef<HTMLInputElement> | undefined>;
61
+ protected readonly popover: Signal<RtPopoverDirective | undefined>;
62
+ /** Набранный текст не читается как диапазон в границах: поле помечено ошибкой. */
63
+ protected readonly textInvalid: WritableSignal<boolean>;
64
+ protected readonly sheetOpen: WritableSignal<boolean>;
65
+ /** Подсказка формы текста буквами кита: `дд.мм.гггг — дд.мм.гггг` под русскими метками. */
66
+ protected readonly shape: Signal<string>;
67
+ /** Значение, прочитанное из формы: не пара дней по порядку поле показывает пустой. */
68
+ protected readonly range: Signal<IRtDateRange.Value | null>;
69
+ protected readonly text: Signal<string>;
70
+ protected readonly hasValue: Signal<boolean>;
71
+ /** Ширина поля в знаках — по длине формы значения, как у поля даты. */
72
+ protected readonly fieldSize: Signal<number>;
73
+ /** Подсказка обрезается многоточием в узком поле, поэтому шаблон целиком виден при наведении. */
74
+ protected readonly shapeTitle: Signal<string | null>;
75
+ /** Вид рамки: `outline` — рамка со всех сторон, `fill` — залитое поле с чертой снизу. */
76
+ readonly appearance: InputSignal<IRtInput.Appearance>;
77
+ readonly displayText: Signal<string>;
78
+ /** Первый допустимый день `YYYY-MM-DD`. */
79
+ readonly min: InputSignal<string | null>;
80
+ /** Последний допустимый день `YYYY-MM-DD`. */
81
+ readonly max: InputSignal<string | null>;
82
+ /** Значение из формы снимает ошибку набора: в поле теперь стоит оно. */
83
+ writeValue(value: IRtDateRange.Value | null): void;
84
+ protected getEmptyValue(): IRtDateRange.Value | null;
85
+ protected focusAfterClear(): void;
86
+ protected clearValue(): void;
87
+ /** Набор текста: значение меняется, только когда текст читается как диапазон в границах. */
88
+ protected onTyped(event: Event): void;
89
+ /** Кнопка в конце поля: на узком экране открывает шторку, на широком поповер открывает сам. */
90
+ protected openPanel(): void;
91
+ protected closePanel(): void;
92
+ protected onPicked(value: IRtDateRange.Value): void;
93
+ protected onBlur(): void;
94
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDateRangeComponent, never>;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDateRangeComponent, "rt-date-range", never, { "appearance": { "alias": "appearance"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
96
+ }
97
+
98
+ export { ERtDateRangePreset, IRtDateRange, RtDateRangeComponent };
@@ -0,0 +1,20 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InputSignal } from '@angular/core';
3
+ import { IQuillDelta } from '@rt-tools/ui-kit-v2/core';
4
+
5
+ /**
6
+ * Безопасный рендер Quill delta: обход ops со сборкой DOM через нативный API
7
+ * (`createElement`/`createTextNode` — текст экранируется автоматически). Никакого
8
+ * `innerHTML`: содержимое `insert` — произвольный пользовательский текст. Блочные
9
+ * атрибуты (list/header/blockquote/code-block) Quill вешает на op перевода строки —
10
+ * накопленный inline-буфер закрывается этим блоком.
11
+ */
12
+ declare class RtDeltaViewComponent {
13
+ #private;
14
+ readonly delta: InputSignal<IQuillDelta | null>;
15
+ constructor();
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDeltaViewComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDeltaViewComponent, "rt-delta-view", never, { "delta": { "alias": "delta"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
+ }
19
+
20
+ export { RtDeltaViewComponent };
@@ -0,0 +1,33 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InputSignal, InputSignalWithTransform } from '@angular/core';
3
+ import { BooleanInput } from '@angular/cdk/coercion';
4
+
5
+ /**
6
+ * Контейнер для стопки `rt-detail-row` — задаёт единый вертикальный gap между
7
+ * строками «лейбл + значение». Используется в read-only details-панелях асайдов
8
+ * (детали заявки, профиля) вместо самопальных `div`-обёрток.
9
+ *
10
+ * Контент — только `rt-detail-row` через проекцию.
11
+ */
12
+ declare class RtDetailListComponent {
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDetailListComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDetailListComponent, "rt-detail-list", never, {}, {}, never, ["*"], true, never>;
15
+ }
16
+
17
+ /**
18
+ * Одна read-only строка «лейбл + значение» в stacked-раскладке: приглушённый
19
+ * лейбл сверху, значение снизу. Единый паттерн info-строки для всех асайдов
20
+ * (раньше — пять разных реализаций).
21
+ *
22
+ * Значение проецируется через `<ng-content>` — допустим текст, дата через pipe
23
+ * или `rt-tag`. При `[loading]="true"` значение замещается скелетоном (потребитель
24
+ * не оборачивает `rt-skeleton-wrapper` вручную).
25
+ */
26
+ declare class RtDetailRowComponent {
27
+ readonly label: InputSignal<string>;
28
+ readonly loading: InputSignalWithTransform<boolean, BooleanInput>;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDetailRowComponent, never>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDetailRowComponent, "rt-detail-row", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
31
+ }
32
+
33
+ export { RtDetailListComponent, RtDetailRowComponent };
@@ -0,0 +1,287 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InputSignal, WritableSignal, InjectionToken, Signal, InputSignalWithTransform } from '@angular/core';
3
+ import * as i1 from '@rt-tools/ui-kit-v2/radius';
4
+ import { OverlayRef, ComponentType } from '@angular/cdk/overlay';
5
+ import { Observable } from 'rxjs';
6
+ import { BooleanInput } from '@angular/cdk/coercion';
7
+ import { TRtKitLabelMap } from '@rt-tools/ui-kit-v2/core';
8
+
9
+ type TRtDialogSize = 'sm' | 'md' | 'lg';
10
+ /**
11
+ * Презентационный styled-frame для модалки поверх CDK Overlay.
12
+ *
13
+ * Видимость / backdrop / scroll-block / ESC / фокус — НЕ внутренняя
14
+ * ответственность компонента. Это обеспечивает `RtDialogService.open()`: оверлей CDK, а
15
+ * ловушку и первый фокус — по флагам `trapFocus`, `restoreFocus` и `autoFocus` (по
16
+ * умолчанию выключены). Рамка несёт `tabindex="-1"`, чтобы `autoFocus: 'dialog'` мог её взять. rt-dialog здесь — стилизованная "рамка"
17
+ * (padding-free контейнер) с size-вариантами + ng-content слотом.
18
+ *
19
+ * Композиция:
20
+ * \`\`\`html
21
+ * <rt-dialog size="md">
22
+ * <rt-dialog-header title="Создание записи" />
23
+ * <div style="padding: var(--rt-space-lg);">body...</div>
24
+ * <rt-dialog-footer>
25
+ * <button rtButton (click)="cancel()">Отмена</button>
26
+ * <button rtButton (click)="save()">Сохранить</button>
27
+ * </rt-dialog-footer>
28
+ * </rt-dialog>
29
+ * \`\`\`
30
+ *
31
+ * Открытие — через `RtDialogService.open(MyModalComponent, { data })` →
32
+ * получаешь `RtDialogRef<T>` с `.close(result)` + `.afterClosed()`.
33
+ *
34
+ * `ViewEncapsulation.None` — стили префиксованы `.rt-dialog`, чтобы
35
+ * rt-dialog-header / rt-dialog-footer subscriptions работали с одним
36
+ * BEM-классом без cross-encapsulation хака.
37
+ */
38
+ declare class RtDialogComponent {
39
+ /**
40
+ * Размер модалки:
41
+ * - `sm` — 460px (`--rt-dialog-width-sm`)
42
+ * - `md` — 660px (`--rt-dialog-width-md`, дефолт)
43
+ * - `lg` — 860px (`--rt-dialog-width-lg`)
44
+ */
45
+ readonly size: InputSignal<TRtDialogSize>;
46
+ /** Override ширины через CSS-property `--rt-dialog-width`. Имеет приоритет над `size`. */
47
+ readonly width: InputSignal<string | null>;
48
+ /** ARIA-label для dialog-обёртки (если нет видимого заголовка). */
49
+ readonly ariaLabel: InputSignal<string | null>;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDialogComponent, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDialogComponent, "rt-dialog", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, [{ directive: typeof i1.RtRadiusDirective; inputs: { "radius": "radius"; }; outputs: {}; }]>;
52
+ }
53
+
54
+ /**
55
+ * Хэндл к программно открытой модалке (через `RtDialogService.open()`).
56
+ *
57
+ * Контент-компонент инжектит `RtDialogRef` и закрывает модалку через `.close(result?)`.
58
+ * Родитель, открывший модалку, ждёт результата через `.afterClosed()`.
59
+ *
60
+ * Слой, снятый без `close()` — переходом по адресу или уничтожением хозяина, — тоже завершает
61
+ * `afterClosed()`: подписчик получает `undefined`. Иначе он ждал бы ответа, которого не будет.
62
+ *
63
+ * Generic `<T>` — тип результата `close(result)`. Дефолт `unknown` — если результат
64
+ * не нужен, оставляй generic пустым.
65
+ *
66
+ * @example
67
+ * \`\`\`ts
68
+ * // в контент-компоненте
69
+ * private readonly dialogRef = inject(RtDialogRef);
70
+ * close(): void { this.dialogRef.close({ confirmed: true }); }
71
+ *
72
+ * // в родителе
73
+ * dialogService.open(MyDialogComponent).afterClosed().subscribe((result) => {...});
74
+ * \`\`\`
75
+ */
76
+ declare class RtDialogRef<T = unknown> {
77
+ #private;
78
+ /**
79
+ * Runtime-флаг, блокирующий close() через ESC / backdrop click.
80
+ *
81
+ * Default `false`. Включай (`dialogRef.disableClose.set(true)`) на
82
+ * время in-flight submit'а, чтобы юзер не потерял введённые в форму
83
+ * данные на случайном ESC. После next/error subscribe ставь обратно
84
+ * в `false`. Не влияет на программный `close(result)` — он всегда
85
+ * закрывает overlay.
86
+ *
87
+ * Статические config-флаги `closeOnEscape` / `closeOnBackdropClick`
88
+ * (см. `IRtDialogConfig`) определяют, подписан ли вообще handler на
89
+ * соответствующее событие; `disableClose` — это runtime-override,
90
+ * который гейтит dispatch внутри уже-подписанного handler'а.
91
+ */
92
+ readonly disableClose: WritableSignal<boolean>;
93
+ constructor(overlayRef: OverlayRef);
94
+ /** Закрывает overlay; опционально передаёт результат подписчикам `afterClosed()`. */
95
+ close(result?: T): void;
96
+ /** Эмиттит один раз — результат `close(result)` или `undefined` при снятом слое — и завершается. */
97
+ afterClosed(): Observable<T | undefined>;
98
+ }
99
+
100
+ /**
101
+ * Конфигурация открытия модалки через `RtDialogService.open()`.
102
+ */
103
+ interface IRtDialogConfig<TData = unknown> {
104
+ /** Данные, доступные внутри модалки через `inject(RT_DIALOG_DATA)`. */
105
+ data?: TData;
106
+ /** Дополнительный CSS-класс для backdrop (поверх стандартного `rt-dialog-backdrop`). */
107
+ backdropClass?: string | string[];
108
+ /** Дополнительный CSS-класс для panel-обёртки overlay (поверх `rt-dialog-overlay`). */
109
+ panelClass?: string | string[];
110
+ /** Закрывать модалку по клику на backdrop. По дефолту `true`. */
111
+ closeOnBackdropClick?: boolean;
112
+ /** Закрывать модалку по ESC. По дефолту `true`. */
113
+ closeOnEscape?: boolean;
114
+ /** Держать Tab внутри модалки, пока она открыта. По дефолту `false` — как было. */
115
+ trapFocus?: boolean;
116
+ /** После закрытия вернуть фокус туда, где он стоял при открытии. По дефолту `false`. */
117
+ restoreFocus?: boolean;
118
+ /**
119
+ * Куда поставить фокус при открытии: `'dialog'` — на рамку окна, `'first-tabbable'` — на первый
120
+ * элемент, до которого доходит Tab. По дефолту `false` — фокус не трогается.
121
+ */
122
+ autoFocus?: TRtDialogAutoFocus;
123
+ }
124
+ /** Куда диалог ставит фокус при открытии; `false` — никуда. */
125
+ type TRtDialogAutoFocus = 'dialog' | 'first-tabbable' | false;
126
+ /**
127
+ * Программный API для открытия модалок поверх CDK Overlay.
128
+ *
129
+ * Устройство сервиса:
130
+ * - `Overlay.position().global().centerHorizontally().centerVertically()` — центрирование.
131
+ * - `scrollStrategies.block()` — фиксирует background-scroll.
132
+ * - `hasBackdrop: true` + кастомный класс — затемнение.
133
+ * - `ComponentPortal` + custom `Injector` подкидывает `RtDialogRef` + `RT_DIALOG_DATA` в DI
134
+ * контент-компонента.
135
+ *
136
+ * Альтернатива: legacy inline `<rt-dialog [visible]>` форма продолжает работать через
137
+ * native `<dialog>.showModal()`. Новые экраны — на программный API.
138
+ *
139
+ * @example
140
+ * \`\`\`ts
141
+ * // открытие
142
+ * private readonly dialogService = inject(RtDialogService);
143
+ *
144
+ * openConfirm(): void {
145
+ * const ref = this.dialogService.open<ConfirmDialogComponent, { question: string }, boolean>(
146
+ * ConfirmDialogComponent,
147
+ * { data: { question: "Удалить?" } }
148
+ * );
149
+ * ref.afterClosed().subscribe((confirmed) => {
150
+ * if (confirmed) this.delete();
151
+ * });
152
+ * }
153
+ *
154
+ * // контент-компонент
155
+ * @Component({
156
+ * selector: "rt-confirm-dialog",
157
+ * template: \`
158
+ * <rt-dialog size="sm">
159
+ * <rt-dialog-header [title]="data.question" />
160
+ * <div>Действие необратимо.</div>
161
+ * <rt-dialog-footer>
162
+ * <button rtButton (click)="close(false)">Отмена</button>
163
+ * <button rtButton theme="danger" (click)="close(true)">Удалить</button>
164
+ * </rt-dialog-footer>
165
+ * </rt-dialog>
166
+ * \`,
167
+ * })
168
+ * export class ConfirmDialogComponent {
169
+ * readonly data = inject(RT_DIALOG_DATA) as { question: string };
170
+ * readonly #ref = inject(RtDialogRef<boolean>);
171
+ * close(result: boolean): void { this.#ref.close(result); }
172
+ * }
173
+ * \`\`\`
174
+ */
175
+ declare class RtDialogService {
176
+ #private;
177
+ constructor();
178
+ open<TComponent, TData = unknown, TResult = unknown>(component: ComponentType<TComponent>, config?: IRtDialogConfig<TData>): RtDialogRef<TResult>;
179
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDialogService, never>;
180
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
181
+ }
182
+
183
+ /**
184
+ * Injection token для передачи данных в модалку, открытую через `RtDialogService.open()`.
185
+ *
186
+ * Пользовательский компонент-контент модалки инжектит токен и получает данные,
187
+ * переданные в `DialogConfig.data`. Тип значения задаётся generic'ом — `inject(RT_DIALOG_DATA)`
188
+ * вернёт `unknown`, прокастуй через `inject(RT_DIALOG_DATA) as MyDataType` ИЛИ
189
+ * объяви токен с конкретным generic'ом в feature-либе.
190
+ *
191
+ * @example
192
+ * \`\`\`ts
193
+ * @Component({...})
194
+ * export class WelcomeModalComponent {
195
+ * readonly data = inject(RT_DIALOG_DATA) as { userName: string };
196
+ * }
197
+ *
198
+ * // parent
199
+ * dialogService.open(WelcomeModalComponent, { data: { userName: "Иван" } });
200
+ * \`\`\`
201
+ */
202
+ declare const RT_DIALOG_DATA: InjectionToken<unknown>;
203
+
204
+ /**
205
+ * Заголовок модалки для композиции внутри `<rt-dialog>`.
206
+ *
207
+ * Если компонент рендерится внутри overlay-портала, открытого через `RtDialogService.open()`,
208
+ * кнопка закрытия дёргает `inject(RtDialogRef).close()` автоматически. В legacy-режиме
209
+ * (внутри inline `<rt-dialog [visible]>`) `RtDialogRef` не зарегистрирован — клик
210
+ * по close-кнопке эмитит output `(closeAction)`, который должен повесить родитель.
211
+ *
212
+ * Перед заголовком — место для значка или другого элемента: узел с атрибутом
213
+ * `rtDialogHeaderLead` проецируется туда. Пустое место ничего не занимает.
214
+ *
215
+ * `ViewEncapsulation.None` — для единообразия с rt-dialog (стили префиксованы `.rt-dialog-header`).
216
+ *
217
+ * @example
218
+ * \`\`\`html
219
+ * <rt-dialog size="md">
220
+ * <rt-dialog-header title="Создание записи" />
221
+ * <div>...форма...</div>
222
+ * <rt-dialog-footer>
223
+ * <button rtButton (click)="cancel()">Отмена</button>
224
+ * <button rtButton theme="primary" (click)="save()">Сохранить</button>
225
+ * </rt-dialog-footer>
226
+ * </rt-dialog>
227
+ * \`\`\`
228
+ */
229
+ declare class RtDialogHeaderComponent {
230
+ #private;
231
+ /** Текст заголовка — рендерится в `<h2>`. */
232
+ protected readonly t: Signal<TRtKitLabelMap>;
233
+ readonly title: InputSignal<string>;
234
+ /** Показывать кнопку закрытия в углу заголовка. Дефолт `true`. */
235
+ readonly closable: InputSignalWithTransform<boolean, BooleanInput>;
236
+ protected onClose(): void;
237
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDialogHeaderComponent, never>;
238
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDialogHeaderComponent, "rt-dialog-header", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; }, {}, never, ["[rtDialogHeaderLead]"], true, never>;
239
+ }
240
+
241
+ /** Как подвал раскладывает содержимое: к началу, по центру, к концу или по обоим краям. */
242
+ type TRtDialogFooterAlign = 'start' | 'center' | 'end' | 'between';
243
+ /**
244
+ * Footer-слот для композиции внутри `<rt-dialog>`. Принимает любой проектированный
245
+ * контент (action-кнопки, статусные сообщения и т.п.), оборачивает в footer с
246
+ * top-border и flex-раскладкой; вход `align` прижимает содержимое к концу (по умолчанию),
247
+ * к началу, к центру или разводит по краям (`between`).
248
+ *
249
+ * `ViewEncapsulation.None` — для единообразия с rt-dialog.
250
+ *
251
+ * @example
252
+ * \`\`\`html
253
+ * <rt-dialog-footer>
254
+ * <button rtButton (click)="cancel()">Отмена</button>
255
+ * <button rtButton theme="primary" (click)="save()">Сохранить</button>
256
+ * </rt-dialog-footer>
257
+ * \`\`\`
258
+ */
259
+ declare class RtDialogFooterComponent {
260
+ readonly align: InputSignal<TRtDialogFooterAlign>;
261
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDialogFooterComponent, never>;
262
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDialogFooterComponent, "rt-dialog-footer", never, { "align": { "alias": "align"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
263
+ }
264
+
265
+ /**
266
+ * Тело модалки для композиции внутри `<rt-dialog>` между шапкой и подвалом. Даёт отступ и
267
+ * прокрутку: длинное содержимое прокручивается внутри тела, а шапка и подвал стоят на месте.
268
+ * Отступ задаёт `--rt-dialog-content-padding`, потолок высоты — `--rt-dialog-content-max-height`.
269
+ *
270
+ * Часть необязательная: окно со своей обёрткой тела выглядит как прежде.
271
+ *
272
+ * @example
273
+ * \`\`\`html
274
+ * <rt-dialog size="md">
275
+ * <rt-dialog-header title="Создание записи" />
276
+ * <rt-dialog-content>...форма...</rt-dialog-content>
277
+ * <rt-dialog-footer>...</rt-dialog-footer>
278
+ * </rt-dialog>
279
+ * \`\`\`
280
+ */
281
+ declare class RtDialogContentComponent {
282
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDialogContentComponent, never>;
283
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDialogContentComponent, "rt-dialog-content", never, {}, {}, never, ["*"], true, never>;
284
+ }
285
+
286
+ export { RT_DIALOG_DATA, RtDialogComponent, RtDialogContentComponent, RtDialogFooterComponent, RtDialogHeaderComponent, RtDialogRef, RtDialogService };
287
+ export type { IRtDialogConfig, TRtDialogAutoFocus, TRtDialogFooterAlign, TRtDialogSize };
@@ -0,0 +1,17 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Signal, ElementRef } from '@angular/core';
3
+
4
+ /**
5
+ * Фон из квадратных точек, которые медленно плывут облаками. Заполняет позиционированного
6
+ * родителя и стоит под его содержимым; в центре точки редеют. Цвет — CSS-свойство `color` хоста.
7
+ */
8
+ declare class RtDotFieldComponent {
9
+ #private;
10
+ /** `viewChild` не принимает поле с решёткой. */
11
+ protected readonly canvas: Signal<ElementRef<HTMLCanvasElement>>;
12
+ constructor();
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<RtDotFieldComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<RtDotFieldComponent, "rt-dot-field", never, {}, {}, never, never, true, never>;
15
+ }
16
+
17
+ export { RtDotFieldComponent };