@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
@@ -9,11 +9,6 @@
9
9
  rt-icon-button {
10
10
  display: inline-flex;
11
11
 
12
- /* Дефолт = md; перезаписывается модификаторами sm/lg ниже либо inline стилем потребителя.
13
- Ряд берётся из общей шкалы высот контролов: иконочная кнопка стоит в строке
14
- рядом с кнопкой и полем и обязана совпадать с ними по высоте. */
15
- --rt-icon-button-size: var(--rt-control-height-md);
16
-
17
12
  /* Цвет иконки объявлен здесь, а не приходил бы запасным значением на месте
18
13
  обращения: запасное переживает смену темы — переопределять нечего. Своё
19
14
  свойство блока перебивает тот, кому нужен другой цвет: так делает просмотр
@@ -38,20 +33,26 @@
38
33
  --rt-icon-button-color-hover: var(--rt-icon-button-color);
39
34
  --rt-icon-button-transition-duration: var(--rt-duration-fast);
40
35
 
41
- /* Заливка покоя — своим свойством: неактивная кнопка берёт из неё долю, которую задаёт
42
- набор оформления. */
43
- --rt-icon-button-bg: transparent;
36
+ /* Размер и заливка покоя — частные шаги: их пишут модификаторы размера и вида, а кнопка
37
+ читает их под публичными `--rt-icon-button-size` и `--rt-icon-button-bg`. Публичные
38
+ кнопка не объявляет, поэтому значение на теге `<rt-icon-button>` или выше доходит до
39
+ неё; раньше модификатор объявлял публичное свойство на самой кнопке и перебивал тег.
40
+ Компоненты кита, которым нужен свой размер кнопки, тоже пишут шаг, а не публичное
41
+ свойство: последнее слово остаётся за приложением.
42
+ Ряд размеров — из общей шкалы высот контролов: кнопка стоит в строке рядом с полем. */
43
+ --rt-icon-button-bg-variant: transparent;
44
+ --rt-icon-button-size-step: var(--rt-control-height-md);
44
45
 
45
46
  position: relative;
46
47
  display: inline-flex;
47
- width: var(--rt-icon-button-size);
48
- height: var(--rt-icon-button-size);
48
+ width: var(--rt-icon-button-size, var(--rt-icon-button-size-step));
49
+ height: var(--rt-icon-button-size, var(--rt-icon-button-size-step));
49
50
  align-items: center;
50
51
  justify-content: center;
51
52
  padding: 0;
52
53
  border: 0;
53
54
  border-radius: var(--rt-icon-button-radius);
54
- background-color: var(--rt-icon-button-bg);
55
+ background-color: var(--rt-icon-button-bg, var(--rt-icon-button-bg-variant));
55
56
  box-shadow: var(--rt-icon-button-shadow);
56
57
  color: var(--rt-icon-button-color);
57
58
  cursor: pointer;
@@ -59,24 +60,34 @@
59
60
  background-color var(--rt-icon-button-transition-duration) ease,
60
61
  box-shadow var(--rt-icon-button-transition-duration) ease;
61
62
 
63
+ /* Два шага меньше `sm` — для плотных строк. У шкалы нет ступени 22px, и ступень ради одной
64
+ кнопки легла бы мимо её сетки в 4px: шаг `xs` записан на месте. */
65
+ &--2xs {
66
+ --rt-icon-button-size-step: var(--rt-size-5);
67
+ }
68
+
69
+ &--xs {
70
+ --rt-icon-button-size-step: 22px;
71
+ }
72
+
62
73
  &--sm {
63
- --rt-icon-button-size: var(--rt-control-height-sm);
74
+ --rt-icon-button-size-step: var(--rt-control-height-sm);
64
75
  }
65
76
 
66
77
  &--md {
67
- --rt-icon-button-size: var(--rt-control-height-md);
78
+ --rt-icon-button-size-step: var(--rt-control-height-md);
68
79
  }
69
80
 
70
81
  &--lg {
71
- --rt-icon-button-size: var(--rt-control-height-lg);
82
+ --rt-icon-button-size-step: var(--rt-control-height-lg);
72
83
  }
73
84
 
74
85
  &--xl {
75
- --rt-icon-button-size: var(--rt-control-height-xl);
86
+ --rt-icon-button-size-step: var(--rt-control-height-xl);
76
87
  }
77
88
 
78
89
  &--2xl {
79
- --rt-icon-button-size: var(--rt-control-height-2xl);
90
+ --rt-icon-button-size-step: var(--rt-control-height-2xl);
80
91
  }
81
92
 
82
93
  /* Подъём под указателем — ручка для потребителя, как тень покоя; по умолчанию равен
@@ -85,9 +96,11 @@
85
96
  box-shadow: var(--rt-icon-button-shadow-hover);
86
97
  }
87
98
 
99
+ /* Заливка под указателем читается под ручкой `--rt-icon-button-bg-hover`; без неё каждый
100
+ вид берёт свою, как прежде. */
88
101
  &--ghost {
89
102
  &:hover:not(:disabled) {
90
- background-color: var(--rt-icon-button-color-bg-hover);
103
+ background-color: var(--rt-icon-button-bg-hover, var(--rt-icon-button-color-bg-hover));
91
104
  color: var(--rt-icon-button-color-hover);
92
105
  }
93
106
 
@@ -97,22 +110,22 @@
97
110
  }
98
111
 
99
112
  &--primary {
100
- --rt-icon-button-bg: var(--rt-color-action-primary);
113
+ --rt-icon-button-bg-variant: var(--rt-color-action-primary);
101
114
 
102
115
  color: var(--rt-color-action-on-primary);
103
116
 
104
117
  &:hover:not(:disabled) {
105
- background-color: var(--rt-color-action-primary-hover);
118
+ background-color: var(--rt-icon-button-bg-hover, var(--rt-color-action-primary-hover));
106
119
  }
107
120
  }
108
121
 
109
122
  &--secondary {
110
- --rt-icon-button-bg: var(--rt-color-bg-surface-subtle);
123
+ --rt-icon-button-bg-variant: var(--rt-color-bg-surface-subtle);
111
124
 
112
125
  color: var(--rt-color-text-primary);
113
126
 
114
127
  &:hover:not(:disabled) {
115
- background-color: var(--rt-icon-button-color-bg-hover);
128
+ background-color: var(--rt-icon-button-bg-hover, var(--rt-icon-button-color-bg-hover));
116
129
  }
117
130
  }
118
131
 
@@ -120,7 +133,7 @@
120
133
  color: var(--rt-color-state-danger);
121
134
 
122
135
  &:hover:not(:disabled) {
123
- background-color: var(--rt-icon-button-color-bg-hover);
136
+ background-color: var(--rt-icon-button-bg-hover, var(--rt-icon-button-color-bg-hover));
124
137
  }
125
138
 
126
139
  &.rt-icon-button--active {
@@ -132,7 +145,7 @@
132
145
  color: var(--rt-color-state-success);
133
146
 
134
147
  &:hover:not(:disabled) {
135
- background-color: var(--rt-icon-button-color-bg-hover);
148
+ background-color: var(--rt-icon-button-bg-hover, var(--rt-icon-button-color-bg-hover));
136
149
  }
137
150
 
138
151
  &.rt-icon-button--active {
@@ -144,7 +157,7 @@
144
157
  color: var(--rt-color-state-warning);
145
158
 
146
159
  &:hover:not(:disabled) {
147
- background-color: var(--rt-icon-button-color-bg-hover);
160
+ background-color: var(--rt-icon-button-bg-hover, var(--rt-icon-button-color-bg-hover));
148
161
  }
149
162
 
150
163
  &.rt-icon-button--active {
@@ -157,7 +170,11 @@
157
170
  встроенным стилем, и правилом его не перебить. Заливка остаётся долей заливки покоя: по умолчанию
158
171
  вся, и свой вид прежний. */
159
172
  &:disabled {
160
- background-color: color-mix(in srgb, var(--rt-icon-button-bg) var(--rt-icon-button-disabled-fill), transparent);
173
+ background-color: color-mix(
174
+ in srgb,
175
+ var(--rt-icon-button-bg, var(--rt-icon-button-bg-variant)) var(--rt-icon-button-disabled-fill),
176
+ transparent
177
+ );
161
178
  cursor: not-allowed;
162
179
  opacity: var(--rt-icon-button-disabled-opacity);
163
180
 
@@ -172,6 +189,15 @@
172
189
  outline-offset: 2px;
173
190
  }
174
191
 
192
+ /* Своё содержимое вместо значка по имени: встаёт по центру и берёт цвет кнопки. */
193
+ &__content {
194
+ display: inline-flex;
195
+ align-items: center;
196
+ justify-content: center;
197
+ color: inherit;
198
+ line-height: 1;
199
+ }
200
+
175
201
  &__spinner {
176
202
  --rt-icon-button-spin-duration: 1s;
177
203
 
@@ -12,20 +12,23 @@
12
12
  (imageChanged)="upload($event)" />
13
13
  ```
14
14
 
15
- | вход | тип | умолчание |
16
- | --------------- | ----------------------------------- | ---------------------------- |
17
- | `imageUrl` | `string \| null` | `null` |
18
- | `fileName` | `string` | `'image'` |
19
- | `tooltip` | `string` | `''` → `uiImageUploadChange` |
20
- | `downloadable` | `boolean` | `false` |
21
- | `downloadShape` | `'circle' \| 'square'` | `'circle'` |
22
- | `autoApply` | `boolean` | `false` |
23
- | `loading` | `boolean` | `false` |
24
- | `disabled` | `boolean` | `false` |
25
- | `ratio` | `number \| null` | `null` |
26
- | `round` | `boolean` | `false` |
27
- | `format` | `'png' \| 'jpeg' \| 'webp' \| null` | `null` |
28
- | `quality` | `number` | `92` |
15
+ | вход | тип | умолчание |
16
+ | ------------------ | ------------------------------------------------------- | ---------------------------- |
17
+ | `imageUrl` | `string \| null` | `null` |
18
+ | `fileName` | `string` | `'image'` |
19
+ | `tooltip` | `string` | `''` → `uiImageUploadChange` |
20
+ | `downloadable` | `boolean` | `false` |
21
+ | `downloadShape` | `'circle' \| 'square'` | `'circle'` |
22
+ | `downloadIconSize` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| null` | `null` → по размеру кнопки |
23
+ | `chooseAppearance` | `'filled' \| 'outlined' \| 'text'` | `'outlined'` |
24
+ | `chooseIcon` | `string \| null` | `'ico-upload'` |
25
+ | `autoApply` | `boolean` | `false` |
26
+ | `loading` | `boolean` | `false` |
27
+ | `disabled` | `boolean` | `false` |
28
+ | `ratio` | `number \| null` | `null` |
29
+ | `round` | `boolean` | `false` |
30
+ | `format` | `'png' \| 'jpeg' \| 'webp' \| null` | `null` |
31
+ | `quality` | `number` | `92` |
29
32
 
30
33
  Выходы: `imageChanged` (`File`), `downloaded`.
31
34
 
@@ -48,7 +51,9 @@
48
51
  Свойства блока: `--rt-image-upload-image-max-height`, `--rt-image-upload-image-radius`,
49
52
  `--rt-image-upload-hover-opacity`, `--rt-image-upload-focus-shadow`,
50
53
  `--rt-image-upload-download-overhang`, `--rt-image-upload-download-bg`,
51
- `--rt-image-upload-download-radius`. Они объявлены на самом блоке, поэтому переопределяются
54
+ `--rt-image-upload-download-radius`, `--rt-image-upload-download-size` (размер кнопки скачивания,
55
+ по умолчанию шаг `--rt-control-height-md`), `--rt-image-upload-download-blur` (размытие под ней,
56
+ 8px). Они объявлены на самом блоке, поэтому переопределяются
52
57
  правилом на `.rt-image-upload`, а не на `:root`. Зона загрузки берёт свойства
53
58
  `--rt-empty-state-frame-*`, обрезка — `--rt-image-cropper-*`.
54
59
 
@@ -10,6 +10,8 @@
10
10
  --rt-image-upload-download-overhang: var(--rt-space-sm);
11
11
  --rt-image-upload-download-bg: color-mix(in srgb, var(--rt-color-bg-surface) 75%, transparent);
12
12
  --rt-image-upload-download-radius: var(--rt-radius-md);
13
+ --rt-image-upload-download-blur: 8px;
14
+ --rt-image-upload-download-size: var(--rt-control-height-md);
13
15
 
14
16
  display: block;
15
17
  width: 100%;
@@ -36,6 +38,9 @@
36
38
  max-width: 100%;
37
39
  box-sizing: border-box;
38
40
  padding: var(--rt-image-upload-download-overhang);
41
+
42
+ /* На верх строки: на базовой линии под картинкой оставался зазор под нижние выносные. */
43
+ vertical-align: top;
39
44
  }
40
45
 
41
46
  &__download {
@@ -44,13 +49,20 @@
44
49
  right: 0;
45
50
  border-radius: var(--rt-image-upload-download-radius);
46
51
  /* stylelint-disable-next-line property-no-vendor-prefix -- Safari < 18 */
47
- -webkit-backdrop-filter: blur(8px);
48
- backdrop-filter: blur(8px);
52
+ -webkit-backdrop-filter: blur(var(--rt-image-upload-download-blur));
53
+ backdrop-filter: blur(var(--rt-image-upload-download-blur));
49
54
  background: var(--rt-image-upload-download-bg);
50
55
 
51
56
  &--round {
52
57
  --rt-image-upload-download-radius: var(--rt-radius-full);
53
58
  }
59
+
60
+ /* Размер отдаётся кнопке её частным шагом, а не публичным `--rt-icon-button-size`: так
61
+ последнее слово остаётся за приложением. Шаг кнопка объявляет на корне своего
62
+ шаблона, а не на хосте, поэтому правило адресует тот же корень. */
63
+ .rt-icon-button {
64
+ --rt-icon-button-size-step: var(--rt-image-upload-download-size);
65
+ }
54
66
  }
55
67
 
56
68
  &__image {
@@ -25,7 +25,7 @@
25
25
  }
26
26
 
27
27
  .rt-icon-button {
28
- --rt-icon-button-size: var(--rt-pagination-arrow-size);
28
+ --rt-icon-button-size-step: var(--rt-pagination-arrow-size);
29
29
  --rt-icon-button-radius: var(--rt-pagination-arrow-radius);
30
30
  --rt-icon-button-shadow: var(--rt-pagination-arrow-shadow);
31
31
  }
@@ -46,6 +46,8 @@
46
46
  - Нажатие на значок уводит тело к самому низу и в содержимое под значком не уходит.
47
47
  - Полоса не ловит указатель — нажатия по списку под ней проходят насквозь; значок ловит сам.
48
48
  - Перекрасить растушёвку можно свойством `--rt-scroll-area-hint-color` на блоке.
49
+ - Отступы и фоны шапки, тела и подвала — свойства блока `--rt-scroll-area-*-padding` и
50
+ `--rt-scroll-area-*-bg`; фоны по умолчанию прозрачные.
49
51
 
50
52
  ## Договорённость
51
53
 
@@ -1,8 +1,22 @@
1
1
  @layer rt-kit.components {
2
+ /* Фон хоста — с нулевой специфичностью. Хост области часто сам элемент чужого блока со своим
3
+ фоном (столбец бокового меню), и правило той же силы перебивало его порядком в файле:
4
+ столбец терял подложку. Под `:where` любое правило по классу сильнее. */
5
+ :where(.rt-scroll-area) {
6
+ background: var(--rt-scroll-area-bg);
7
+ }
8
+
2
9
  .rt-scroll-area {
3
10
  --rt-scroll-area-hint-height: var(--rt-space-10);
4
11
  --rt-scroll-area-hint-color: var(--rt-color-bg-surface);
5
12
  --rt-scroll-area-hint-radius: var(--rt-radius-full);
13
+ --rt-scroll-area-header-padding: var(--rt-space-2) var(--rt-space-4);
14
+ --rt-scroll-area-body-padding: var(--rt-space-4);
15
+ --rt-scroll-area-footer-padding: var(--rt-space-4);
16
+ --rt-scroll-area-bg: transparent;
17
+ --rt-scroll-area-header-bg: transparent;
18
+ --rt-scroll-area-body-bg: transparent;
19
+ --rt-scroll-area-footer-bg: transparent;
6
20
 
7
21
  // Полоса растушёвки считает своё место от хоста: тело обрезает всё по своему краю, а
8
22
  // полоса обязана дойти до содержимого подвала.
@@ -15,7 +29,8 @@
15
29
 
16
30
  &__header {
17
31
  flex: 0 0 auto;
18
- padding: var(--rt-space-2) var(--rt-space-4);
32
+ padding: var(--rt-scroll-area-header-padding);
33
+ background: var(--rt-scroll-area-header-bg);
19
34
  }
20
35
 
21
36
  &__body {
@@ -23,13 +38,15 @@
23
38
  overflow: auto;
24
39
  flex: 1 1 auto;
25
40
  flex-direction: column;
26
- padding: var(--rt-space-4);
41
+ padding: var(--rt-scroll-area-body-padding);
42
+ background: var(--rt-scroll-area-body-bg);
27
43
  min-block-size: 0;
28
44
  }
29
45
 
30
46
  &__footer {
31
47
  flex: 0 0 auto;
32
- padding: var(--rt-space-4);
48
+ padding: var(--rt-scroll-area-footer-padding);
49
+ background: var(--rt-scroll-area-footer-bg);
33
50
  }
34
51
 
35
52
  // Полоса стоит поверх стыка тела и подвала и не ловит указатель: под ней живой список,
@@ -82,6 +82,10 @@
82
82
  border-color: transparent;
83
83
  background-color: transparent;
84
84
 
85
+ /* Высота строки поля рассчитана на подпись поля, а здесь разметка потребителя: с ней
86
+ кнопка вырастала бы на пару точек и сдвигала панель. Строка остаётся прежней. */
87
+ line-height: var(--rt-leading-none);
88
+
85
89
  &:focus {
86
90
  border-color: transparent;
87
91
  box-shadow: none;
@@ -17,10 +17,15 @@
17
17
 
18
18
  **Режим и ширину подменю хранит сервис, а не меню.** `provideRtSideMenuSettings()` включает
19
19
  хранение под номером меню; без провайдера меню ничего не помнит, и режим с шириной приходят
20
- входами. Вход важнее сохранённого.
20
+ входами. Вход важнее сохранённого. `pinShown="false"` убирает кнопку закрепления, и сохранённое
21
+ закрепление тогда не читается: иначе человек не открепил бы меню.
22
+
23
+ **Подсказки строк подменю гасит `subMenuTooltipsShown="false"`.** Имена кнопок для чтения экрана
24
+ остаются.
21
25
 
22
26
  **Значок вне набора — шаблон `rtSideMenuIcon`.** Имя Material первого кита меню переводит парой
23
- из перечня кита, как `rt-menu`. Имя без пары берёт свой шаблон меню, один на все пункты; без
27
+ из перечня кита, как `rt-menu`. Имя без пары берёт свой шаблон меню, один на все пункты и кнопки строк;
28
+ контекст — строка (`$implicit`), имя (`icon`) и место (`slot`: `'icon'` или `'iconButton'`). Без
24
29
  шаблона на его месте пусто, а в режиме разработки консоль называет такое имя.
25
30
 
26
31
  **Раздел и запрос меню держит само.** Их не задать входом: раздел открывает нажатие или наведение
@@ -4,17 +4,24 @@
4
4
  <rt-spinner color="primary" [diameter]="32" />
5
5
  ```
6
6
 
7
- | вход | тип | умолчание |
8
- | ---------- | ---------------------------------------- | ----------- |
9
- | `diameter` | `number \| string` (px) | `32` |
10
- | `color` | `'primary' \| 'neutral' \| 'on-primary'` | `'primary'` |
11
-
12
- Выходов нет. Собственной разметки нет — кольцо рисуется на host-е.
7
+ | вход | тип | умолчание |
8
+ | ------------ | ---------------------------------------- | ----------- |
9
+ | `diameter` | `number \| string` (px) | `32` |
10
+ | `color` | `'primary' \| 'neutral' \| 'on-primary'` | `'primary'` |
11
+ | `appearance` | `'border' \| 'arc'` | `'border'` |
12
+ | `overlay` | `boolean` | `false` |
13
+ | `backdrop` | `boolean` — только вместе с `overlay` | `false` |
14
+ | `plate` | `boolean` | `false` |
15
+
16
+ Выходов нет. Без `overlay`, `plate` и `arc` собственной разметки нет — кольцо рисуется на host-е,
17
+ и так спиннер стоит в компонентах кита. Любой из этих входов включает внутреннюю разметку.
13
18
 
14
19
  ## Главное, что нужно знать
15
20
 
16
- **Спиннер не решает, показывать ли себя.** Ни условной отрисовки, ни подложки внутри нет: и то,
17
- и другое — дело вмещающего. Таблица рисует свой sticky-overlay и кладёт спиннер внутрь, кнопка
21
+ **Спиннер не решает, показывать ли себя.** Условной отрисовки внутри нет — это дело вмещающего.
22
+ Подложку и накрытие блока он рисует по просьбе: `overlay` занимает позиционированного родителя,
23
+ `backdrop` приглушает его содержимое. Слой оверлея — `sticky`, переназначается свойством
24
+ `--rt-spinner-overlay-z`. Таблица рисует свой sticky-overlay и кладёт спиннер внутрь, кнопка
18
25
  подменяет им иконку.
19
26
 
20
27
  Диаметр едет свойством оформления `--rt-spinner-diameter`, а не классом, — поэтому размер
@@ -7,15 +7,28 @@
7
7
  --rt-spinner-rotation-duration: 1s;
8
8
  --rt-spinner-rotation-duration-reduced: 4s;
9
9
  --rt-spinner-radius: var(--rt-radius-full);
10
+ --rt-spinner-overlay-z: var(--rt-z-sticky);
11
+ --rt-spinner-plate-size: calc(var(--rt-spinner-diameter) + 2 * var(--rt-space-2));
12
+ --rt-spinner-plate-bg: var(--rt-color-bg-surface);
13
+ --rt-spinner-plate-shadow: var(--rt-shadow-md);
14
+ --rt-spinner-plate-radius: var(--rt-radius-full);
15
+ --rt-spinner-backdrop-bg: color-mix(in srgb, var(--rt-color-bg-subtle) 85%, transparent);
16
+ --rt-spinner-arc-duration: 1.4s;
17
+ --rt-spinner-arc-duration-reduced: 5.6s;
10
18
 
11
- display: inline-block;
12
- width: var(--rt-spinner-diameter);
13
- height: var(--rt-spinner-diameter);
14
- box-sizing: border-box;
15
- border: var(--rt-spinner-border-width) solid var(--rt-spinner-track-color);
16
- border-radius: var(--rt-spinner-radius);
17
- border-right-color: var(--rt-spinner-progress-color);
18
- animation: rt-spinner-rotate var(--rt-spinner-rotation-duration) linear infinite;
19
+ /* Кольцо: border с одной цветной стороной и вращение. Его рисует host без новых режимов,
20
+ а в них — элемент `__ring` внутри, теми же правилами. */
21
+ &,
22
+ &__ring {
23
+ display: inline-block;
24
+ width: var(--rt-spinner-diameter);
25
+ height: var(--rt-spinner-diameter);
26
+ box-sizing: border-box;
27
+ border: var(--rt-spinner-border-width) solid var(--rt-spinner-track-color);
28
+ border-radius: var(--rt-spinner-radius);
29
+ border-right-color: var(--rt-spinner-progress-color);
30
+ animation: rt-spinner-rotate var(--rt-spinner-rotation-duration) linear infinite;
31
+ }
19
32
 
20
33
  &--primary {
21
34
  --rt-spinner-progress-color: var(--rt-color-action-primary);
@@ -29,6 +42,61 @@
29
42
  --rt-spinner-track-color: var(--rt-overlay-white-25);
30
43
  --rt-spinner-progress-color: var(--rt-color-action-on-primary);
31
44
  }
45
+
46
+ /* В новых режимах host — коробка, а кольцо внутри: border и вращение с host-а снимаются. */
47
+ &--framed {
48
+ display: inline-flex;
49
+ width: auto;
50
+ height: auto;
51
+ align-items: center;
52
+ justify-content: center;
53
+ border: 0;
54
+ border-radius: 0;
55
+ animation: none;
56
+ }
57
+
58
+ /* Слой — ступень sticky: выше закреплённых частей самого блока, ниже всего, что открывается
59
+ поверх страницы; приложение переназначает слой свойством `--rt-spinner-overlay-z`. Родитель
60
+ должен быть позиционирован — его спиннер не трогает. */
61
+ &--overlay {
62
+ position: absolute;
63
+ z-index: var(--rt-spinner-overlay-z);
64
+ display: flex;
65
+ inset: 0;
66
+ }
67
+
68
+ &--backdrop {
69
+ background: var(--rt-spinner-backdrop-bg);
70
+ }
71
+
72
+ &__plate {
73
+ display: inline-flex;
74
+ width: var(--rt-spinner-plate-size);
75
+ height: var(--rt-spinner-plate-size);
76
+ align-items: center;
77
+ justify-content: center;
78
+ border-radius: var(--rt-spinner-plate-radius);
79
+ background: var(--rt-spinner-plate-bg);
80
+ box-shadow: var(--rt-spinner-plate-shadow);
81
+ }
82
+
83
+ /* Дуга как у Material: контейнер вращается, а длина дуги растёт и сокращается. Дорожки нет. */
84
+ &__arc {
85
+ display: block;
86
+ width: var(--rt-spinner-diameter);
87
+ height: var(--rt-spinner-diameter);
88
+ animation: rt-spinner-rotate var(--rt-spinner-arc-duration) linear infinite;
89
+ }
90
+
91
+ &__arc-circle {
92
+ animation: rt-spinner-arc-dash var(--rt-spinner-arc-duration) ease-in-out infinite;
93
+ fill: none;
94
+ stroke: var(--rt-spinner-progress-color);
95
+ stroke-dasharray: 89 200;
96
+ stroke-dashoffset: -35;
97
+ stroke-linecap: round;
98
+ stroke-width: 4;
99
+ }
32
100
  }
33
101
 
34
102
  @keyframes rt-spinner-rotate {
@@ -37,9 +105,40 @@
37
105
  }
38
106
  }
39
107
 
108
+ /* Цикл Material — точка, длинная дуга, дуга уходит в точку — начат с длинной дуги. Движение то
109
+ же, а кадр с остановленным движением показывает дугу, а не точку. В середине дуга уже точка, и
110
+ переход к началу её длины глазу не виден. */
111
+ @keyframes rt-spinner-arc-dash {
112
+ 0% {
113
+ stroke-dasharray: 89 200;
114
+ stroke-dashoffset: -35;
115
+ }
116
+
117
+ 50% {
118
+ stroke-dasharray: 89 200;
119
+ stroke-dashoffset: -124;
120
+ }
121
+
122
+ 50.01% {
123
+ stroke-dasharray: 1 200;
124
+ stroke-dashoffset: 0;
125
+ }
126
+
127
+ 100% {
128
+ stroke-dasharray: 89 200;
129
+ stroke-dashoffset: -35;
130
+ }
131
+ }
132
+
40
133
  @media (prefers-reduced-motion: reduce) {
41
- .rt-spinner {
134
+ .rt-spinner,
135
+ .rt-spinner__ring {
42
136
  animation-duration: var(--rt-spinner-rotation-duration-reduced);
43
137
  }
138
+
139
+ .rt-spinner__arc,
140
+ .rt-spinner__arc-circle {
141
+ animation-duration: var(--rt-spinner-arc-duration-reduced);
142
+ }
44
143
  }
45
144
  }