@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
@@ -7,6 +7,11 @@
7
7
  так они достаются только корню шаблона. */
8
8
 
9
9
  rt-tag {
10
+ /* Скругление и толщина рамки объявлены на хосте: правило приложения на теге компонента
11
+ их переопределяет, а шаги входа `radius` стоят тоже на хосте. */
12
+ --rt-tag-radius: var(--rt-radius-full);
13
+ --rt-tag-border-width: var(--rt-border-width-thin);
14
+
10
15
  display: inline-flex;
11
16
 
12
17
  /* Предел стоит и на хосте, и на пилюле внутри. Вмещающий блок пилюли — сам хост, и без
@@ -14,73 +19,88 @@
14
19
  разросшегося хоста, и метка вылезает за место, которое ей дали. */
15
20
  max-width: 100%;
16
21
 
22
+ /* Цвета и отступы приложение задаёт ручками `--rt-tag-color-*` и `--rt-tag-padding-*`:
23
+ их кит не объявляет, а запасное значение — то, что дают палитра и ступень размера.
24
+ У интервала запасного нет нарочно: незаданная ручка даёт unset, то есть наследование
25
+ от родителя, как до ручки. Запасное normal обрывало его. */
17
26
  .rt-tag {
18
- --rt-tag-radius: var(--rt-radius-full);
19
- --rt-tag-border-width: var(--rt-border-width-thin);
27
+ --rt-tag-severity-bg: var(--rt-neutral-100);
28
+ --rt-tag-severity-text: var(--rt-neutral-700);
29
+ --rt-tag-size-padding-block: var(--rt-space-1);
30
+ --rt-tag-size-padding-inline: var(--rt-space-2);
20
31
 
21
32
  display: inline-flex;
22
33
  max-width: 100%;
23
34
  align-items: center;
24
- padding: var(--rt-space-1) var(--rt-space-2);
35
+ padding: var(--rt-tag-padding-block, var(--rt-tag-size-padding-block))
36
+ var(--rt-tag-padding-inline, var(--rt-tag-size-padding-inline));
25
37
  border-radius: var(--rt-tag-radius);
26
- background: var(--rt-neutral-100);
27
- color: var(--rt-neutral-700);
38
+ background: var(--rt-tag-color-bg, var(--rt-tag-severity-bg));
39
+ color: var(--rt-tag-color-text, var(--rt-tag-severity-text));
28
40
  font-size: var(--rt-text-sm);
29
41
  gap: var(--rt-space-1);
42
+ letter-spacing: var(--rt-tag-letter-spacing);
30
43
  line-height: var(--rt-leading-tight);
31
44
 
32
45
  /* Ступени размера: отступы, кегль и просвет между частями двигаются вместе. `md`
33
46
  повторяет то, чем метка рисовалась до появления ступеней, и вид без входа не
34
47
  меняется ни на пиксель. */
35
48
  &--size--sm {
36
- padding: var(--rt-space-0-5) var(--rt-space-1);
49
+ --rt-tag-size-padding-block: var(--rt-space-0-5);
50
+ --rt-tag-size-padding-inline: var(--rt-space-1);
51
+
37
52
  font-size: var(--rt-text-xs);
38
53
  gap: var(--rt-space-0-5);
39
54
  }
40
55
 
41
56
  &--size--md {
42
- padding: var(--rt-space-1) var(--rt-space-2);
57
+ --rt-tag-size-padding-block: var(--rt-space-1);
58
+ --rt-tag-size-padding-inline: var(--rt-space-2);
59
+
43
60
  font-size: var(--rt-text-sm);
44
61
  gap: var(--rt-space-1);
45
62
  }
46
63
 
47
64
  &--size--lg {
48
- padding: var(--rt-space-2) var(--rt-space-4);
65
+ --rt-tag-size-padding-block: var(--rt-space-2);
66
+ --rt-tag-size-padding-inline: var(--rt-space-4);
67
+
49
68
  font-size: var(--rt-text-md);
50
69
  gap: var(--rt-space-2);
51
70
  }
52
71
 
53
72
  &--severity--info {
54
- background: var(--rt-color-state-info-bg);
55
- color: var(--rt-color-state-info);
73
+ --rt-tag-severity-bg: var(--rt-color-state-info-bg);
74
+ --rt-tag-severity-text: var(--rt-color-state-info);
56
75
  }
57
76
 
58
77
  &--severity--success {
59
- background: var(--rt-color-state-success-bg);
60
- color: var(--rt-color-state-success);
78
+ --rt-tag-severity-bg: var(--rt-color-state-success-bg);
79
+ --rt-tag-severity-text: var(--rt-color-state-success);
61
80
  }
62
81
 
63
82
  &--severity--warning {
64
- background: var(--rt-color-state-warning-bg);
65
- color: var(--rt-color-state-warning);
83
+ --rt-tag-severity-bg: var(--rt-color-state-warning-bg);
84
+ --rt-tag-severity-text: var(--rt-color-state-warning);
66
85
  }
67
86
 
68
87
  &--severity--danger {
69
- background: var(--rt-color-state-danger-bg);
70
- color: var(--rt-color-state-danger);
88
+ --rt-tag-severity-bg: var(--rt-color-state-danger-bg);
89
+ --rt-tag-severity-text: var(--rt-color-state-danger);
71
90
  }
72
91
 
73
92
  &--severity--secondary,
74
93
  &--severity--neutral {
75
- background: var(--rt-color-bg-subtle);
76
- color: var(--rt-color-text-primary);
94
+ --rt-tag-severity-bg: var(--rt-color-bg-subtle);
95
+ --rt-tag-severity-text: var(--rt-color-text-primary);
77
96
  }
78
97
 
79
98
  /* Outlined: прозрачный фон + рамка цвета палитры (currentColor = текст).
80
- После severity-блоков — иначе их `background` перебил бы transparent. */
99
+ После severity-блоков — иначе их фон перебил бы transparent. */
81
100
  &--appearance--outlined {
82
- border: var(--rt-tag-border-width) solid currentcolor;
83
- background: transparent;
101
+ --rt-tag-severity-bg: transparent;
102
+
103
+ border: var(--rt-tag-border-width) solid var(--rt-tag-color-border, currentcolor);
84
104
  }
85
105
 
86
106
  &__icon {
@@ -111,7 +131,7 @@
111
131
  }
112
132
  }
113
133
 
114
- /* Шаг входа `radius` переназначает собственное свойство пилюли. */
115
- @include kv.radius-steps('--rt-tag-radius', '> .rt-tag');
134
+ /* Шаг входа `radius` переназначает собственное свойство пилюли на хосте. */
135
+ @include kv.radius-steps('--rt-tag-radius');
116
136
  }
117
137
  }
@@ -24,6 +24,7 @@ this.#notifications.error('Не удалось сохранить', 'danger', {
24
24
  | `duration` | `number \| string` (мс) | `4000` |
25
25
  | `visibleToasts` | `number \| string` | `3` |
26
26
  | `expand` | `boolean` | `false` |
27
+ | `mode` | `'stack' \| 'replace'` | `'stack'` |
27
28
 
28
29
  ## Главное, что нужно знать
29
30
 
@@ -42,12 +43,19 @@ this.#notifications.error('Не удалось сохранить', 'danger', {
42
43
  - `action` и `secondaryAction` рисуются кнопками внутри тоста и зовут переданные обработчики.
43
44
  - `meta` — приписка над сообщением (номер заявки), `description` — вторая строка под ним.
44
45
  - Положение раскладывается на два модификатора: `rt-toaster--y--bottom` и `rt-toaster--x--right`.
46
+ - `duration` у самого тоста важнее срока тостера; `duration: null` держит тост до крестика.
47
+ - `progress: true` рисует полосу срока; она встаёт тем же признаком `rt-toast--paused`, что и таймер.
48
+ - `icon` у тоста важнее карты `RT_TOAST_SEVERITY_ICONS`; `icon: null` снимает значок.
49
+ - `mode="replace"` помечает прежние тосты вытесненными, и они уходят той же анимацией, что по крестику.
45
50
 
46
51
  ## Края
47
52
 
48
53
  - **Нулевая длительность не значит «висит, пока не закроют».** `duration: 0` — это таймер на
49
54
  ноль миллисекунд: тост гасит себя сразу после первой отрисовки. Держать его открытым умеет
50
55
  только пауза таймера — признак `interacting` либо развёрнутая стопка.
56
+ Тост «до крестика» задаётся `duration: null`.
57
+ - **Значок красится стилем, а не входом `color` значка.** Вход пишет цвет прямо в разметку, и
58
+ ручке `--rt-toast-icon-color` перебить его было бы нечем.
51
59
  - **В матрице каждому тосту ставится `[interacting]="true"`.** Иначе ячейки гаснут одна за
52
60
  другой, пока смотришь на показ, и кадр снимается с пустой сетки.
53
61
 
@@ -7,6 +7,7 @@
7
7
  --rt-toast-shadow-duration: var(--rt-duration-base);
8
8
  --rt-toast-leave-duration: var(--rt-duration-slower);
9
9
  --rt-toast-fade-duration: var(--rt-duration-fast);
10
+ --rt-toast-severity-color: var(--rt-color-state-info);
10
11
  --y: translateY(100%);
11
12
  --lift-amount: calc(var(--lift) * var(--gap));
12
13
 
@@ -17,11 +18,11 @@
17
18
  box-sizing: border-box;
18
19
  align-items: center;
19
20
  padding: var(--rt-space-4);
20
- border: var(--rt-toast-border-width) solid var(--rt-color-border-subtle);
21
+ border: var(--rt-toast-border-width) solid var(--rt-toast-border-color, var(--rt-color-border-subtle));
21
22
  border-radius: var(--rt-toast-radius);
22
- background: var(--rt-color-bg-surface);
23
+ background: var(--rt-toast-bg, var(--rt-color-bg-surface));
23
24
  box-shadow: var(--rt-toast-shadow);
24
- color: var(--rt-color-text-primary);
25
+ color: var(--rt-toast-color, var(--rt-color-text-primary));
25
26
  font-size: var(--rt-text-sm);
26
27
  font-weight: var(--rt-font-weight-medium);
27
28
  gap: var(--rt-space-2);
@@ -64,33 +65,52 @@
64
65
  bottom: 0;
65
66
  }
66
67
 
68
+ /* Цвет важности — частное свойство: его берут значок и полоса срока. */
69
+ &--severity--success {
70
+ --rt-toast-severity-color: var(--rt-color-state-success);
71
+ }
72
+
73
+ &--severity--warning {
74
+ --rt-toast-severity-color: var(--rt-color-state-warning);
75
+ }
76
+
77
+ &--severity--danger {
78
+ --rt-toast-severity-color: var(--rt-color-state-danger);
79
+ }
80
+
81
+ /* Залитый тост читает свои ручки по важности, а не общие: общая ручка фона, заданная
82
+ на корне страницы, иначе перекрасила бы и залитые тосты. Значок идёт за текстом. */
67
83
  &--filled {
68
84
  .rt-toast__description {
69
85
  color: inherit;
70
86
  }
71
87
 
88
+ .rt-toast__icon {
89
+ color: currentcolor;
90
+ }
91
+
72
92
  &.rt-toast--severity--info {
73
- border-color: var(--rt-color-state-info-bg);
74
- background: var(--rt-color-state-info-bg);
75
- color: var(--rt-color-state-info);
93
+ border-color: var(--rt-toast-filled-info-border-color, var(--rt-color-state-info-bg));
94
+ background: var(--rt-toast-filled-info-bg, var(--rt-color-state-info-bg));
95
+ color: var(--rt-toast-filled-info-color, var(--rt-color-state-info));
76
96
  }
77
97
 
78
98
  &.rt-toast--severity--success {
79
- border-color: var(--rt-color-state-success-bg);
80
- background: var(--rt-color-state-success-bg);
81
- color: var(--rt-color-state-success);
99
+ border-color: var(--rt-toast-filled-success-border-color, var(--rt-color-state-success-bg));
100
+ background: var(--rt-toast-filled-success-bg, var(--rt-color-state-success-bg));
101
+ color: var(--rt-toast-filled-success-color, var(--rt-color-state-success));
82
102
  }
83
103
 
84
104
  &.rt-toast--severity--warning {
85
- border-color: var(--rt-color-state-warning-bg);
86
- background: var(--rt-color-state-warning-bg);
87
- color: var(--rt-color-state-warning);
105
+ border-color: var(--rt-toast-filled-warning-border-color, var(--rt-color-state-warning-bg));
106
+ background: var(--rt-toast-filled-warning-bg, var(--rt-color-state-warning-bg));
107
+ color: var(--rt-toast-filled-warning-color, var(--rt-color-state-warning));
88
108
  }
89
109
 
90
110
  &.rt-toast--severity--danger {
91
- border-color: var(--rt-color-state-danger-bg);
92
- background: var(--rt-color-state-danger-bg);
93
- color: var(--rt-color-state-danger);
111
+ border-color: var(--rt-toast-filled-danger-border-color, var(--rt-color-state-danger-bg));
112
+ background: var(--rt-toast-filled-danger-bg, var(--rt-color-state-danger-bg));
113
+ color: var(--rt-toast-filled-danger-color, var(--rt-color-state-danger));
94
114
  }
95
115
  }
96
116
 
@@ -152,6 +172,25 @@
152
172
 
153
173
  &__icon {
154
174
  flex-shrink: 0;
175
+ color: var(--rt-toast-icon-color, var(--rt-toast-severity-color));
176
+ }
177
+
178
+ /* Полоса срока — анимация того же срока, что у таймера, и встаёт от того же признака.
179
+ Она лежит у нижнего края внутри рамки и повторяет нижние скругления. */
180
+ &__progress {
181
+ position: absolute;
182
+ bottom: 0;
183
+ animation: rt-toast-progress var(--lifetime) linear forwards;
184
+ background: var(--rt-toast-progress-color, var(--rt-toast-severity-color));
185
+ block-size: var(--rt-toast-progress-height, var(--rt-space-0-5));
186
+ border-end-end-radius: var(--rt-toast-radius);
187
+ border-end-start-radius: var(--rt-toast-radius);
188
+ inset-inline: 0;
189
+ transform-origin: left center;
190
+ }
191
+
192
+ &--paused &__progress {
193
+ animation-play-state: paused;
155
194
  }
156
195
 
157
196
  &__content {
@@ -186,7 +225,17 @@
186
225
  align-self: flex-start;
187
226
  }
188
227
 
228
+ /* Ручка цвета действия — заливка главной кнопки во всех её состояниях; подпись на ней
229
+ остаётся цветом кита. */
230
+ & &__action:not(.rt-button--text) {
231
+ --rt-btn-bg: var(--rt-toast-action-color, var(--rt-color-action-primary));
232
+ --rt-btn-bg-hover: var(--rt-toast-action-color, var(--rt-color-action-primary-hover));
233
+ --rt-btn-bg-active: var(--rt-toast-action-color, var(--rt-color-action-primary-active));
234
+ }
235
+
189
236
  & &__close {
237
+ --rt-icon-button-color: var(--rt-toast-close-color, var(--rt-color-text-primary));
238
+
190
239
  flex-shrink: 0;
191
240
  align-self: flex-start;
192
241
  margin-inline-start: auto;
@@ -207,4 +256,14 @@
207
256
  }
208
257
  }
209
258
  }
259
+
260
+ @keyframes rt-toast-progress {
261
+ from {
262
+ transform: scaleX(1);
263
+ }
264
+
265
+ to {
266
+ transform: scaleX(0);
267
+ }
268
+ }
210
269
  }
@@ -3,8 +3,12 @@
3
3
  --width: 356px;
4
4
  --toaster-offset: 32px;
5
5
 
6
+ /* Слой — своё свойство на шаге шкалы: шаг `sticky` и есть прежние 1100, а приложение,
7
+ которому тост нужен поверх диалога, перебивает свойство правилом на своём теге. */
8
+ --rt-toaster-z-index: var(--rt-z-sticky);
9
+
6
10
  position: fixed;
7
- z-index: 1100;
11
+ z-index: var(--rt-toaster-z-index);
8
12
  width: var(--width);
9
13
  box-sizing: border-box;
10
14
  padding: 0;
@@ -10,31 +10,46 @@
10
10
  (sm 30 / md 40 / lg 50px).
11
11
  Цвета — только семантические --rt-* токены. */
12
12
 
13
+ /* Свойства объявлены на хосте: правило приложения на теге переопределяет их, а ступени
14
+ размера — тоже правила хоста, по модификатору на нём самом.
15
+
16
+ Дорожка берёт приглушённую поверхность, а не ближайшую по светлоте ступень:
17
+ прежний код цвета стоял почти на уровне белого, а отличаться дорожка обязана
18
+ именно от активного сегмента, который белым и покрашен. Default size = sm. */
13
19
  rt-toggle-button-group {
20
+ --rt-toggle-button-group-track-bg: var(--rt-color-bg-surface-subtle);
21
+ --rt-toggle-button-group-active-bg: var(--rt-color-bg-surface);
22
+ --rt-toggle-button-group-height: 30px;
23
+ --rt-toggle-button-group-transition-duration: var(--rt-duration-fast);
24
+ --rt-toggle-button-group-focus-shadow: var(--rt-shadow-focus-ring);
25
+ --rt-toggle-button-group-track-padding: 4px;
26
+ --rt-toggle-button-group-track-radius: var(--rt-radius-md);
27
+ --rt-toggle-button-group-btn-padding: 0 8px;
28
+ --rt-toggle-button-group-btn-radius: var(--rt-radius-ms);
29
+ --rt-toggle-button-group-btn-gap: 4px;
30
+ --rt-toggle-button-group-btn-font-size: 12px;
31
+ --rt-toggle-button-group-btn-line-height: 14px;
32
+
14
33
  display: inline-flex;
15
34
 
16
- /* Локальные overridable custom properties — позволяют потребителю
17
- подстроить trackовый bg без перекраски всей темы (см. dark override ниже).
35
+ /* Размерные тиры — общая высота совпадает с rt-button (sm/md/lg). */
36
+ &.rt-toggle-button-group--md {
37
+ --rt-toggle-button-group-height: 40px;
38
+ --rt-toggle-button-group-btn-padding: 0 14px;
39
+ --rt-toggle-button-group-btn-gap: 6px;
40
+ --rt-toggle-button-group-btn-font-size: 14px;
41
+ --rt-toggle-button-group-btn-line-height: 16px;
42
+ }
18
43
 
19
- Дорожка берёт приглушённую поверхность, а не ближайшую по светлоте ступень:
20
- прежний код цвета стоял почти на уровне белого, а отличаться дорожка обязана
21
- именно от активного сегмента, который белым и покрашен. */
22
- --rt-toggle-button-group-track-bg: var(--rt-color-bg-surface-subtle);
23
- --rt-toggle-button-group-active-bg: var(--rt-color-bg-surface);
44
+ &.rt-toggle-button-group--lg {
45
+ --rt-toggle-button-group-height: 50px;
46
+ --rt-toggle-button-group-btn-padding: 0 20px;
47
+ --rt-toggle-button-group-btn-gap: 8px;
48
+ --rt-toggle-button-group-btn-font-size: 16px;
49
+ --rt-toggle-button-group-btn-line-height: 18px;
50
+ }
24
51
 
25
52
  .rt-toggle-button-group {
26
- /* Default size = sm. md/lg переопределяют ниже. */
27
- --rt-toggle-button-group-height: 30px;
28
- --rt-toggle-button-group-transition-duration: var(--rt-duration-fast);
29
- --rt-toggle-button-group-focus-shadow: var(--rt-shadow-focus-ring);
30
- --rt-toggle-button-group-track-padding: 4px;
31
- --rt-toggle-button-group-track-radius: var(--rt-radius-md);
32
- --rt-toggle-button-group-btn-padding: 0 8px;
33
- --rt-toggle-button-group-btn-radius: var(--rt-radius-ms);
34
- --rt-toggle-button-group-btn-gap: 4px;
35
- --rt-toggle-button-group-btn-font-size: 12px;
36
- --rt-toggle-button-group-btn-line-height: 14px;
37
-
38
53
  display: inline-flex;
39
54
  height: var(--rt-toggle-button-group-height);
40
55
  box-sizing: border-box;
@@ -97,30 +112,13 @@
97
112
  flex-shrink: 0;
98
113
  }
99
114
 
100
- /* Размерные тиры — общая высота совпадает с rt-button (sm/md/lg). */
101
- &--md {
102
- --rt-toggle-button-group-height: 40px;
103
- --rt-toggle-button-group-btn-padding: 0 14px;
104
- --rt-toggle-button-group-btn-gap: 6px;
105
- --rt-toggle-button-group-btn-font-size: 14px;
106
- --rt-toggle-button-group-btn-line-height: 16px;
107
- }
108
-
109
- &--lg {
110
- --rt-toggle-button-group-height: 50px;
111
- --rt-toggle-button-group-btn-padding: 0 20px;
112
- --rt-toggle-button-group-btn-gap: 8px;
113
- --rt-toggle-button-group-btn-font-size: 16px;
114
- --rt-toggle-button-group-btn-line-height: 18px;
115
- }
116
-
117
115
  &--disabled {
118
116
  opacity: 0.5;
119
117
  }
120
118
  }
121
119
 
122
120
  /* Шаг входа `radius` переназначает скругление дорожки; сегменты держат своё. */
123
- @include kv.radius-steps('--rt-toggle-button-group-track-radius', '> .rt-toggle-button-group');
121
+ @include kv.radius-steps('--rt-toggle-button-group-track-radius');
124
122
  }
125
123
 
126
124
  /* full-width: группа растягивается на контейнер, опции делят ширину поровну. */
@@ -8,17 +8,25 @@
8
8
  | -------------------- | ---------------------- | --------- |
9
9
  | `inputId` | `string \| null` | `null` |
10
10
  | `ariaLabel` | `string \| null` | `null` |
11
+ | `label` | `string \| null` | `null` |
11
12
  | `size` | `'sm' \| 'md' \| 'lg'` | `'sm'` |
12
13
  | `iconOff` / `iconOn` | `IRtIcon.Name \| null` | `null` |
13
14
  | `disabled` | `boolean` | `false` |
14
15
 
15
- Значение — `boolean` через `ControlValueAccessor`. Своей подписи на экране нет.
16
+ Значение — `boolean` через `ControlValueAccessor`. Подпись на экране рисует только вход `label`.
16
17
 
17
18
  ## Главное, что нужно знать
18
19
 
19
20
  **`role="switch"`, а не `checkbox`.** Скринридер произносит «switch off/on» вместо «checkbox
20
- unchecked» — для тумблера это точнее. Своего текста у контрола нет, поэтому подпись задаётся
21
- входом `ariaLabel` или внешним `<label for>` через `inputId`.
21
+ unchecked» — для тумблера это точнее. Имя даёт вход `label`, вход `ariaLabel` или внешний
22
+ `<label for>` через `inputId`.
23
+
24
+ **Подпись `label` — `<label>`, связанный с кнопкой.** Нажатие на неё переключает, кнопка ссылается
25
+ на неё через `aria-labelledby`. Без входа разметка прежняя: ни подписи, ни своего id.
26
+
27
+ **Свойства размеров и подписи объявлены на хосте.** Ступени размера — правила хоста по его
28
+ модификатору, прозрачность отключения `--rt-toggle-disabled-opacity` гасит и подпись. Правило
29
+ приложения на теге перебивает и ступень.
22
30
 
23
31
  ## Как этим пользоваться
24
32
 
@@ -6,17 +6,20 @@
6
6
  и на `<rt-toggle-switch>`, и на корне шаблона, поэтому правила блока вложены в хост —
7
7
  так они достаются только корню шаблона. */
8
8
 
9
+ /* Свойства объявлены на хосте: правило приложения на теге переопределяет их, а
10
+ ступени размера — тоже правила хоста, по модификатору на нём самом. Имена подписи
11
+ не повторяют первый кит: у его переключателя свои `--rt-toggle-label-*`. */
9
12
  rt-toggle-switch {
10
- display: inline-flex;
11
-
12
- /* Шаг входа `radius` переназначает скругление дорожки, ручка идёт за ней. */
13
- @include kv.radius-steps('--rt-toggle-radius', '> .rt-toggle-switch');
14
- }
15
-
16
- rt-toggle-switch .rt-toggle-switch {
17
13
  --rt-toggle-radius: var(--rt-radius-full);
18
14
  --rt-toggle-focus-shadow: var(--rt-shadow-focus-ring);
19
15
  --rt-toggle-transition-duration: var(--rt-duration-fast);
16
+ --rt-toggle-disabled-opacity: 0.5;
17
+ --rt-toggle-justify: flex-start;
18
+ --rt-toggle-label-gap: var(--rt-space-2);
19
+ --rt-toggle-label-size: var(--rt-text-sm);
20
+ --rt-toggle-label-color-off: var(--rt-color-text-muted);
21
+ --rt-toggle-label-color-on: var(--rt-color-text-primary);
22
+ --rt-toggle-label-color-hover: var(--rt-color-text-primary);
20
23
 
21
24
  /* Геометрия размера. База — `sm`; модификаторы перекрывают только числа,
22
25
  правила ниже к размерам не привязаны. `thumb-travel` держим явным
@@ -29,17 +32,16 @@
29
32
  --rt-toggle-icon-inset: 4px;
30
33
 
31
34
  display: inline-flex;
32
- padding: 0;
33
- border: none;
34
- background: none;
35
- cursor: pointer;
35
+ align-items: center;
36
+ justify-content: var(--rt-toggle-justify);
37
+ gap: var(--rt-toggle-label-gap);
36
38
 
37
- &--md {
39
+ &.rt-toggle-switch--md {
38
40
  --rt-toggle-track-width: 52px;
39
41
  --rt-toggle-thumb-travel: 28px;
40
42
  }
41
43
 
42
- &--lg {
44
+ &.rt-toggle-switch--lg {
43
45
  --rt-toggle-track-width: 60px;
44
46
  --rt-toggle-track-height: 30px;
45
47
  --rt-toggle-thumb-size: 24px;
@@ -47,6 +49,22 @@
47
49
  --rt-toggle-icon-inset: 6px;
48
50
  }
49
51
 
52
+ /* Прозрачность — на хосте: подпись гаснет вместе с переключателем. */
53
+ &.rt-toggle-switch--disabled {
54
+ opacity: var(--rt-toggle-disabled-opacity);
55
+ }
56
+
57
+ /* Шаг входа `radius` переназначает скругление дорожки, ручка идёт за ней. */
58
+ @include kv.radius-steps('--rt-toggle-radius');
59
+ }
60
+
61
+ rt-toggle-switch .rt-toggle-switch {
62
+ display: inline-flex;
63
+ padding: 0;
64
+ border: none;
65
+ background: none;
66
+ cursor: pointer;
67
+
50
68
  &:focus-visible {
51
69
  border-radius: var(--rt-toggle-radius);
52
70
  box-shadow: var(--rt-toggle-focus-shadow);
@@ -56,7 +74,6 @@
56
74
 
57
75
  &--disabled {
58
76
  cursor: not-allowed;
59
- opacity: 0.5;
60
77
  }
61
78
 
62
79
  &__track {
@@ -114,5 +131,27 @@
114
131
  &--on .rt-toggle-switch__thumb {
115
132
  transform: translateX(var(--rt-toggle-thumb-travel));
116
133
  }
134
+
135
+ &__label {
136
+ color: var(--rt-toggle-label-color-off);
137
+ cursor: pointer;
138
+ font-size: var(--rt-toggle-label-size);
139
+ transition: color var(--rt-toggle-transition-duration) ease;
140
+ user-select: none;
141
+ }
142
+ }
143
+
144
+ /* Состояния подписи — по модификаторам хоста: подпись стоит рядом с кнопкой, не в ней.
145
+ Наведение ниже включённого: под курсором подпись берёт свой цвет и у включённого. */
146
+ rt-toggle-switch.rt-toggle-switch--on .rt-toggle-switch__label {
147
+ color: var(--rt-toggle-label-color-on);
148
+ }
149
+
150
+ rt-toggle-switch:not(.rt-toggle-switch--disabled):hover .rt-toggle-switch__label {
151
+ color: var(--rt-toggle-label-color-hover);
152
+ }
153
+
154
+ rt-toggle-switch.rt-toggle-switch--disabled .rt-toggle-switch__label {
155
+ cursor: not-allowed;
117
156
  }
118
157
  }
@@ -1,19 +1,29 @@
1
1
  @layer rt-kit.components {
2
2
  .rt-toolbar {
3
- /* Отступ полосы сверху и снизу — свойства блока: обёртка переставляет их снаружи. */
3
+ /* Раскладка полосы — свойства блока: обёртка и приложение переставляют их снаружи.
4
+ Высота — наименьшая: полоса, стёкшая в колонку на узком экране, не обрезается. */
4
5
  --rt-toolbar-padding-top: var(--rt-space-2);
5
6
  --rt-toolbar-padding-bottom: var(--rt-space-2);
7
+ --rt-toolbar-padding-inline: 0;
8
+ --rt-toolbar-height: auto;
9
+ --rt-toolbar-border-bottom: none;
10
+ --rt-toolbar-gap: var(--rt-space-2);
11
+ --rt-toolbar-center-justify: flex-end;
12
+ --rt-toolbar-center-overflow: visible;
6
13
 
7
14
  display: block;
8
15
 
9
16
  &__bars {
10
17
  display: flex;
11
18
  width: 100%;
19
+ min-height: var(--rt-toolbar-height);
20
+ box-sizing: border-box;
12
21
  flex-direction: row;
13
22
  align-items: center;
14
23
  justify-content: space-between;
15
- padding: var(--rt-toolbar-padding-top) 0 var(--rt-toolbar-padding-bottom);
16
- gap: var(--rt-space-2);
24
+ padding: var(--rt-toolbar-padding-top) var(--rt-toolbar-padding-inline) var(--rt-toolbar-padding-bottom);
25
+ border-bottom: var(--rt-toolbar-border-bottom);
26
+ gap: var(--rt-toolbar-gap);
17
27
  }
18
28
 
19
29
  &__bar {
@@ -29,8 +39,9 @@
29
39
  }
30
40
 
31
41
  &--center {
42
+ overflow: var(--rt-toolbar-center-overflow);
32
43
  flex: 1 1 auto;
33
- justify-content: flex-end;
44
+ justify-content: var(--rt-toolbar-center-justify);
34
45
  gap: var(--rt-space-2);
35
46
 
36
47
  // Контрол-фильтр (поиск/селект) занимает ширину center и право-
@@ -5,11 +5,11 @@
5
5
  <rt-icon-button icon="ico-trash" ariaLabel="Удалить" tooltip="Удалить" />
6
6
  ```
7
7
 
8
- | вход | тип | умолчание |
9
- | ------------------------ | ----------------------------- | ----------------------------------------------- |
10
- | `rtTooltip` | `string \| null \| undefined` | `''` |
11
- | `rtTooltipPlacement` | `'top' \| 'bottom' \| null` | `null` — сверху, под материальным набором снизу |
12
- | `rtTooltipWhenTruncated` | `boolean` | `false` — подсказка только у обрезанного текста |
8
+ | вход | тип | умолчание |
9
+ | ------------------------ | ------------------------------------------------ | ----------------------------------------------- |
10
+ | `rtTooltip` | `string \| null \| undefined` | `''` |
11
+ | `rtTooltipPlacement` | `'top' \| 'bottom' \| 'left' \| 'right' \| null` | `null` — сверху, под материальным набором снизу |
12
+ | `rtTooltipWhenTruncated` | `boolean` | `false` — подсказка только у обрезанного текста |
13
13
 
14
14
  Выходов нет. Панель — `rt-tooltip` в оверлее CDK, `role="tooltip"`.
15
15
 
@@ -16,8 +16,8 @@
16
16
  ```
17
17
 
18
18
  Основные входы: `messages`, `hasThread`, `canReply`, `replyBlockReason`, `loading`, `fetching`,
19
- `sending`, `attachments`, `accept`, `formatting`, `title`, `showRefresh`, `showExpand`, `fill`.
20
- Выходы: `send`, `refresh` и события по сообщениям (повтор, удаление).
19
+ `sending`, `attachments`, `accept`, `formatting`, `title`, `showRefresh`, `showExpand`, `fill`,
20
+ `typingText`. Выходы: `send`, `refresh`, `typing` и события по сообщениям (повтор, удаление).
21
21
 
22
22
  ## Главное, что нужно знать
23
23
 
@@ -35,6 +35,11 @@ rtChatMessageActions let-message>` рисуется в меню «…» у ре
35
35
  **Поле ответа гейтится `canReply`.** Когда отвечать нельзя, вместо него рисуется причина
36
36
  из `replyBlockReason`.
37
37
 
38
+ **Набор текста уходит наружу одним событием на отрезок.** `typing` шлёт `true`, когда человек начал
39
+ набирать, и `false` на пустом поле, при отправке и после 3 секунд без ввода — в обоих режимах поля.
40
+ Что печатает вторая сторона, показывает `typingText`: плашка стоит поверх низа ленты и места не
41
+ занимает, пустая строка её прячет. Текст и перевод даёт приложение.
42
+
38
43
  **Удалённое сообщение остаётся в ленте** отдельной пометкой вместо текста: иначе непонятно, на
39
44
  что отвечали соседние реплики.
40
45