@rt-tools/ui-kit-v2 0.17.0 → 0.19.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 (328) hide show
  1. package/README.md +21 -2
  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 +233 -0
  5. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -0
  6. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +97 -0
  7. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -0
  8. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +47 -0
  9. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -0
  10. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +709 -0
  11. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -0
  12. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +214 -0
  13. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -0
  14. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +53 -0
  15. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -0
  16. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +88 -0
  17. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -0
  18. package/fesm2022/rt-tools-ui-kit-v2-button.mjs +365 -0
  19. package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -0
  20. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +152 -0
  21. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -0
  22. package/fesm2022/rt-tools-ui-kit-v2-card.mjs +72 -0
  23. package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -0
  24. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +111 -0
  25. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -0
  26. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +76 -0
  27. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -0
  28. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +255 -0
  29. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -0
  30. package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1326 -0
  31. package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -0
  32. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +81 -0
  33. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -0
  34. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2688 -0
  35. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -0
  36. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +45 -0
  37. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -0
  38. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +158 -0
  39. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -0
  40. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +894 -0
  41. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -0
  42. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +1217 -0
  43. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -0
  44. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +779 -0
  45. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -0
  46. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +573 -0
  47. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -0
  48. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +141 -0
  49. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -0
  50. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +68 -0
  51. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -0
  52. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +478 -0
  53. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -0
  54. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +183 -0
  55. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -0
  56. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +44 -0
  57. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -0
  58. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +260 -0
  59. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -0
  60. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +1036 -0
  61. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -0
  62. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +56 -0
  63. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -0
  64. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +107 -0
  65. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -0
  66. package/fesm2022/rt-tools-ui-kit-v2-field.mjs +183 -0
  67. package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -0
  68. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +219 -0
  69. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -0
  70. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +214 -0
  71. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -0
  72. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +117 -0
  73. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -0
  74. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +32 -0
  75. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -0
  76. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +91 -0
  77. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -0
  78. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +220 -0
  79. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -0
  80. package/fesm2022/rt-tools-ui-kit-v2-header.mjs +72 -0
  81. package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -0
  82. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +163 -0
  83. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -0
  84. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +711 -0
  85. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -0
  86. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +540 -0
  87. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -0
  88. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +227 -0
  89. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -0
  90. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +37 -0
  91. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -0
  92. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +361 -0
  93. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -0
  94. package/fesm2022/rt-tools-ui-kit-v2-input.mjs +143 -0
  95. package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -0
  96. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +49 -0
  97. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -0
  98. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +97 -0
  99. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -0
  100. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +57 -0
  101. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -0
  102. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +537 -0
  103. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -0
  104. package/fesm2022/rt-tools-ui-kit-v2-message.mjs +105 -0
  105. package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -0
  106. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +71 -0
  107. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -0
  108. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +315 -0
  109. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -0
  110. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +51 -0
  111. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -0
  112. package/fesm2022/rt-tools-ui-kit-v2-note.mjs +44 -0
  113. package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -0
  114. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +54 -0
  115. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -0
  116. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +339 -0
  117. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -0
  118. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +187 -0
  119. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -0
  120. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +170 -0
  121. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -0
  122. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +312 -0
  123. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -0
  124. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs +46 -0
  125. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs.map +1 -0
  126. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +174 -0
  127. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -0
  128. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +56 -0
  129. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -0
  130. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +336 -12
  131. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  132. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +118 -0
  133. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -0
  134. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +290 -0
  135. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -0
  136. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +37 -0
  137. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -0
  138. package/fesm2022/rt-tools-ui-kit-v2-select.mjs +495 -0
  139. package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -0
  140. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +1493 -0
  141. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -0
  142. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +49 -0
  143. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -0
  144. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +123 -0
  145. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -0
  146. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +70 -0
  147. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -0
  148. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +92 -0
  149. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -0
  150. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +147 -0
  151. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -0
  152. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +117 -0
  153. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -0
  154. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +1636 -0
  155. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -0
  156. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +350 -0
  157. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -0
  158. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +122 -0
  159. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -0
  160. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +85 -0
  161. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -0
  162. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +73 -0
  163. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -0
  164. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +222 -0
  165. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -0
  166. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +39 -0
  167. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -0
  168. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +338 -0
  169. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -0
  170. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +132 -0
  171. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -0
  172. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +162 -0
  173. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -0
  174. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +135 -0
  175. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -0
  176. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +214 -0
  177. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -0
  178. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +64 -0
  179. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -0
  180. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +263 -0
  181. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -0
  182. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +296 -0
  183. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -0
  184. package/fesm2022/rt-tools-ui-kit-v2.mjs +94 -23819
  185. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +1 -1
  186. package/package.json +361 -1
  187. package/rt-tools-ui-kit-v2-0.19.0.tgz +0 -0
  188. package/src/assets/icons/sparkle.svg +9 -0
  189. package/src/assets/icons/thumb-down.svg +10 -0
  190. package/src/assets/icons/thumb-up.svg +9 -0
  191. package/src/assets/icons/trash-x.svg +7 -0
  192. package/src/assets/icons-material/sparkle.fill.svg +5 -0
  193. package/src/assets/icons-material/sparkle.svg +5 -0
  194. package/src/assets/icons-material/thumb-down.fill.svg +5 -0
  195. package/src/assets/icons-material/thumb-down.svg +5 -0
  196. package/src/assets/icons-material/thumb-up.fill.svg +5 -0
  197. package/src/assets/icons-material/thumb-up.svg +5 -0
  198. package/src/assets/icons-material/trash-x.fill.svg +5 -0
  199. package/src/assets/icons-material/trash-x.svg +5 -0
  200. package/src/lib/components/action-bar/CONTEXT.md +8 -2
  201. package/src/lib/components/action-bar/rt-action-bar-holder.component.scss +10 -7
  202. package/src/lib/components/action-bar/rt-action-bar.component.scss +82 -34
  203. package/src/lib/components/ai-run-status/CONTEXT.md +36 -0
  204. package/src/lib/components/ai-run-status/rt-ai-run-status.component.scss +119 -0
  205. package/src/lib/components/aside/CONTEXT.md +1 -0
  206. package/src/lib/components/aside/header/rt-aside-header.component.scss +27 -11
  207. package/src/lib/components/copy-value/CONTEXT.md +31 -0
  208. package/src/lib/components/copy-value/rt-copy-value.component.scss +39 -0
  209. package/src/lib/components/data-list/settings/rt-data-list-settings-aside.component.scss +5 -5
  210. package/src/lib/components/dot-field/CONTEXT.md +31 -0
  211. package/src/lib/components/dot-field/rt-dot-field.component.scss +20 -0
  212. package/src/lib/components/dot-field/stories/component/CONTEXT.md +14 -0
  213. package/src/lib/components/dot-field/stories/component/test-dot-field.component.scss +31 -0
  214. package/src/lib/components/dynamic-selector/CONTEXT.md +18 -0
  215. package/src/lib/components/dynamic-selector/list/rt-dynamic-selector-list.component.scss +29 -1
  216. package/src/lib/components/dynamic-selector/popup/rt-dynamic-selector-popup.component.scss +84 -25
  217. package/src/lib/components/empty-state/CONTEXT.md +2 -1
  218. package/src/lib/components/empty-state/rt-empty-state.component.scss +4 -2
  219. package/src/lib/components/field/CONTEXT.md +18 -2
  220. package/src/lib/components/icon/CONTEXT.md +16 -12
  221. package/src/lib/components/icon/rt-icon.component.scss +13 -3
  222. package/src/lib/components/prompt-suggestion/CONTEXT.md +29 -0
  223. package/src/lib/components/prompt-suggestion/rt-prompt-suggestion.component.scss +58 -0
  224. package/src/lib/components/select/rt-select.component.scss +4 -0
  225. package/src/lib/components/thread-list/CONTEXT.md +4 -0
  226. package/src/lib/components/thread-list/rt-thread-list.component.scss +29 -0
  227. package/src/lib/components/toolbar/CONTEXT.md +4 -0
  228. package/src/lib/components/toolbar/rt-toolbar.component.scss +7 -0
  229. package/src/rich-editor/lib/components/ai-chat/CONTEXT.md +58 -0
  230. package/src/rich-editor/lib/components/ai-chat/answer/rt-ai-chat-answer.component.scss +12 -0
  231. package/src/rich-editor/lib/components/ai-chat/rt-ai-chat.component.scss +222 -0
  232. package/src/rich-editor/lib/components/rich-editor/rt-rich-editor.component.scss +3 -0
  233. package/src/styles/_scrollbar.scss +9 -0
  234. package/src/styles/_semantic.scss +1 -1
  235. package/styles/tokens.css +11 -8
  236. package/types/rt-tools-ui-kit-v2-accordion.d.ts +30 -0
  237. package/types/rt-tools-ui-kit-v2-action-bar.d.ts +149 -0
  238. package/types/rt-tools-ui-kit-v2-ai-run-status.d.ts +49 -0
  239. package/types/rt-tools-ui-kit-v2-aside-section.d.ts +25 -0
  240. package/types/rt-tools-ui-kit-v2-aside.d.ts +444 -0
  241. package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +78 -0
  242. package/types/rt-tools-ui-kit-v2-bar-list.d.ts +41 -0
  243. package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +20 -0
  244. package/types/rt-tools-ui-kit-v2-button.d.ts +76 -0
  245. package/types/rt-tools-ui-kit-v2-calendar.d.ts +96 -0
  246. package/types/rt-tools-ui-kit-v2-card.d.ts +38 -0
  247. package/types/rt-tools-ui-kit-v2-checkbox.d.ts +46 -0
  248. package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +20 -0
  249. package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +85 -0
  250. package/types/rt-tools-ui-kit-v2-container.d.ts +425 -0
  251. package/types/rt-tools-ui-kit-v2-copy-value.d.ts +29 -0
  252. package/types/rt-tools-ui-kit-v2-core.d.ts +1262 -0
  253. package/types/rt-tools-ui-kit-v2-counter-row.d.ts +22 -0
  254. package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -0
  255. package/types/rt-tools-ui-kit-v2-data-list.d.ts +334 -0
  256. package/types/rt-tools-ui-kit-v2-data-table.d.ts +494 -0
  257. package/types/rt-tools-ui-kit-v2-date-picker.d.ts +181 -0
  258. package/types/rt-tools-ui-kit-v2-date-range.d.ts +98 -0
  259. package/types/rt-tools-ui-kit-v2-delta-view.d.ts +20 -0
  260. package/types/rt-tools-ui-kit-v2-detail-list.d.ts +33 -0
  261. package/types/rt-tools-ui-kit-v2-dialog.d.ts +287 -0
  262. package/types/rt-tools-ui-kit-v2-dot-field.d.ts +17 -0
  263. package/types/rt-tools-ui-kit-v2-download-link.d.ts +17 -0
  264. package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +139 -0
  265. package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +423 -0
  266. package/types/rt-tools-ui-kit-v2-empty-state.d.ts +29 -0
  267. package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +57 -0
  268. package/types/rt-tools-ui-kit-v2-field.d.ts +82 -0
  269. package/types/rt-tools-ui-kit-v2-file-card.d.ts +114 -0
  270. package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -0
  271. package/types/rt-tools-ui-kit-v2-file-input.d.ts +48 -0
  272. package/types/rt-tools-ui-kit-v2-file-list.d.ts +13 -0
  273. package/types/rt-tools-ui-kit-v2-filter-control.d.ts +72 -0
  274. package/types/rt-tools-ui-kit-v2-form-control.d.ts +74 -0
  275. package/types/rt-tools-ui-kit-v2-header.d.ts +40 -0
  276. package/types/rt-tools-ui-kit-v2-icon-button.d.ts +113 -0
  277. package/types/rt-tools-ui-kit-v2-icon.d.ts +246 -0
  278. package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +168 -0
  279. package/types/rt-tools-ui-kit-v2-image-upload.d.ts +102 -0
  280. package/types/rt-tools-ui-kit-v2-info-item.d.ts +13 -0
  281. package/types/rt-tools-ui-kit-v2-input-number.d.ts +67 -0
  282. package/types/rt-tools-ui-kit-v2-input.d.ts +54 -0
  283. package/types/rt-tools-ui-kit-v2-live-badge.d.ts +23 -0
  284. package/types/rt-tools-ui-kit-v2-logo.d.ts +58 -0
  285. package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +30 -0
  286. package/types/rt-tools-ui-kit-v2-menu.d.ts +217 -0
  287. package/types/rt-tools-ui-kit-v2-message.d.ts +56 -0
  288. package/types/rt-tools-ui-kit-v2-money-list.d.ts +34 -0
  289. package/types/rt-tools-ui-kit-v2-multiselect.d.ts +93 -0
  290. package/types/rt-tools-ui-kit-v2-night-grid.d.ts +39 -0
  291. package/types/rt-tools-ui-kit-v2-note.d.ts +21 -0
  292. package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +23 -0
  293. package/types/rt-tools-ui-kit-v2-page-header.d.ts +173 -0
  294. package/types/rt-tools-ui-kit-v2-pagination.d.ts +64 -0
  295. package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +98 -0
  296. package/types/rt-tools-ui-kit-v2-popover.d.ts +79 -0
  297. package/types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts +21 -0
  298. package/types/rt-tools-ui-kit-v2-radio-button.d.ts +61 -0
  299. package/types/rt-tools-ui-kit-v2-radius.d.ts +37 -0
  300. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +186 -2
  301. package/types/rt-tools-ui-kit-v2-ripple.d.ts +39 -0
  302. package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +91 -0
  303. package/types/rt-tools-ui-kit-v2-section-nav.d.ts +23 -0
  304. package/types/rt-tools-ui-kit-v2-select.d.ts +215 -0
  305. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +483 -0
  306. package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +32 -0
  307. package/types/rt-tools-ui-kit-v2-skeleton.d.ts +41 -0
  308. package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -0
  309. package/types/rt-tools-ui-kit-v2-split-button.d.ts +72 -0
  310. package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +81 -0
  311. package/types/rt-tools-ui-kit-v2-stepper.d.ts +51 -0
  312. package/types/rt-tools-ui-kit-v2-table.d.ts +739 -0
  313. package/types/rt-tools-ui-kit-v2-tabs.d.ts +153 -0
  314. package/types/rt-tools-ui-kit-v2-tag.d.ts +70 -0
  315. package/types/rt-tools-ui-kit-v2-textarea.d.ts +36 -0
  316. package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +43 -0
  317. package/types/rt-tools-ui-kit-v2-thread-list.d.ts +124 -0
  318. package/types/rt-tools-ui-kit-v2-timeline.d.ts +35 -0
  319. package/types/rt-tools-ui-kit-v2-toast.d.ts +103 -0
  320. package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +109 -0
  321. package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +85 -0
  322. package/types/rt-tools-ui-kit-v2-toolbar.d.ts +66 -0
  323. package/types/rt-tools-ui-kit-v2-tooltip.d.ts +74 -0
  324. package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +33 -0
  325. package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +128 -0
  326. package/types/rt-tools-ui-kit-v2-workspace.d.ts +84 -0
  327. package/types/rt-tools-ui-kit-v2.d.ts +90 -9599
  328. package/rt-tools-ui-kit-v2-0.17.0.tgz +0 -0
@@ -24,6 +24,12 @@
24
24
  **Отметки всплывающего окна уходят только по «Применить».** «Отмена», `Escape` и щелчок мимо
25
25
  снимают их, значение остаётся прежним.
26
26
 
27
+ **Вид приглашения, очистки, поиска и пустого результата задаёт приложение входами.** Значок и вид
28
+ кнопки приглашения — `invitationButtonIcon` и `invitationButtonAppearance`, значок очистки —
29
+ `clearIcon`, вид поля поиска окна — `searchAppearance`, подпись пустого результата —
30
+ `emptyResultsText`; у поля строк вид поля новой строки — `fieldAppearance`. Цвет кнопки «Добавить»
31
+ — ручка `--rt-dynamic-selector-list-add-color`: кнопку проецируют оба поля, и вид у неё разный.
32
+
27
33
  **Поле строк срезает пробелы по краям и не добавляет пустое и повторное.** Повтор сравнивается
28
34
  точно, с учётом регистра.
29
35
 
@@ -37,6 +43,18 @@
37
43
  - Приглашение (`invitation`) встаёт вместо полосы кнопок; его кнопка открывает тот же выбор.
38
44
  `listActionsShown = false` убирает сброс и очистку, оставляя кнопку добавления;
39
45
  `removeShown = false` убирает корзину строк.
46
+ Рисунок приглашения — значок кита `invitationIcon` или имя Material `invitationGlyph`; при обоих
47
+ рисуется значок кита.
48
+ - Подпись поля — обёртка `rt-field` с `label`, как у любого поля кита. У поля строк она ведёт к полю
49
+ новой строки, пока оно открыто.
50
+ - Выбранное без формы — вход `chosenEntities`: непустой список с другими ключами становится и
51
+ значением, и списком для «Сбросить»; эхо выбора от родителя ничего не меняет.
52
+ - `titleWrap="false"` — название строки одной строкой с многоточием и подсказкой при обрезке.
53
+ - Подпись самого поля новой строки — вход `fieldLabel`: поле встаёт в `rt-field` с этой подписью.
54
+ Без подписи обёртки нет, и поле стоит как раньше.
55
+ - Вид кнопки приглашения, значок очистки, вид поиска, подпись пустого результата и перенос названия
56
+ строки приложение задаёт один раз — `provideRtKit({ components: { dynamicSelector: { … } } })`.
57
+ Вход на месте сильнее, без настроек остаются умолчания кита.
40
58
  - Правки в своём шаблоне строки — `extraChanged`: сброс и очистка включены при прежних ключах и
41
59
  сообщают `listReset` и `listCleared`, значение сброс тогда не трогает.
42
60
  - Начальный запрос окна — `searchTerm`, событием поиска он не уходит. Открыто ли окно — сигнал
@@ -9,6 +9,10 @@
9
9
  --rt-dynamic-selector-list-divider-width: var(--rt-border-width-thin);
10
10
  --rt-dynamic-selector-list-drag-shadow: var(--rt-shadow-md);
11
11
  --rt-dynamic-selector-list-drag-duration: var(--rt-duration-base);
12
+ --rt-dynamic-selector-list-row-padding-x: var(--rt-space-sm);
13
+ --rt-dynamic-selector-list-add-font-weight: var(--rt-font-weight-medium);
14
+ --rt-dynamic-selector-list-add-indent: 0;
15
+ --rt-dynamic-selector-list-reset-color: var(--rt-color-text-primary);
12
16
 
13
17
  display: flex;
14
18
  flex-direction: column;
@@ -25,7 +29,7 @@
25
29
  min-height: var(--rt-control-height-lg);
26
30
  box-sizing: border-box;
27
31
  align-items: center;
28
- padding: var(--rt-space-2xs) var(--rt-space-2xs) var(--rt-space-2xs) var(--rt-space-sm);
32
+ padding: var(--rt-space-2xs) var(--rt-space-2xs) var(--rt-space-2xs) var(--rt-dynamic-selector-list-row-padding-x);
29
33
  border-radius: var(--rt-dynamic-selector-list-row-radius);
30
34
  background: var(--rt-dynamic-selector-list-row-bg);
31
35
  color: var(--rt-color-text-primary);
@@ -44,6 +48,13 @@
44
48
  flex: 1 1 auto;
45
49
  font-size: var(--rt-text-md);
46
50
  overflow-wrap: anywhere;
51
+
52
+ // Название одной строкой: длинное режется многоточием, а полный текст даёт подсказка.
53
+ &--nowrap {
54
+ overflow: hidden;
55
+ text-overflow: ellipsis;
56
+ white-space: nowrap;
57
+ }
47
58
  }
48
59
 
49
60
  &__field {
@@ -69,6 +80,23 @@
69
80
  min-width: 0;
70
81
  flex: 1 1 auto;
71
82
  align-items: center;
83
+ padding-inline-start: var(--rt-dynamic-selector-list-add-indent);
84
+ }
85
+
86
+ // Кнопку «Добавить» проецируют два хозяина, и вид у неё разный: у выбора вторичный, у
87
+ // ввода основной. Поэтому цвет — ручка потребителя: не задан — кнопка остаётся своего цвета.
88
+ &__add .rt-button {
89
+ color: var(--rt-dynamic-selector-list-add-color, var(--rt-btn-color));
90
+ font-weight: var(--rt-dynamic-selector-list-add-font-weight);
91
+ }
92
+
93
+ // Значок «Сбросить» красится цветом кнопки; выключенная кнопка остаётся приглушённой.
94
+ &__reset.rt-icon-button {
95
+ --rt-icon-button-color: var(--rt-dynamic-selector-list-reset-color);
96
+ }
97
+
98
+ &__clear {
99
+ flex: none;
72
100
  }
73
101
 
74
102
  // Строка в полёте живёт у конца страницы, вне блока: свойства объявлены на ней самой.
@@ -4,42 +4,63 @@
4
4
  /* rt-dynamic-selector-popup — панель выбора в CDK Overlay. ViewEncapsulation.None.
5
5
  Размер и вид сняты с кадров первого кита: 20rem на 30rem, поверхность с рамкой и тенью. */
6
6
 
7
+ /* Свойства окна приложение задаёт на любом предке — на панели оверлея или на своём контейнере:
8
+ на самом окне объявлены только умолчания с приставкой `-default`, а читается свойство с
9
+ запасным значением. Объявленное на окне под публичным именем перебило бы правило предка. */
7
10
  .rt-dynamic-selector-popup {
8
- --rt-dynamic-selector-popup-width: calc(var(--rt-size-40) * 2);
9
- --rt-dynamic-selector-popup-max-height: calc(var(--rt-size-100) + var(--rt-size-20));
10
- --rt-dynamic-selector-popup-radius: var(--rt-radius-md);
11
- --rt-dynamic-selector-popup-border-width: var(--rt-border-width-thin);
12
- --rt-dynamic-selector-popup-shadow: var(--rt-shadow-lg);
11
+ --rt-dynamic-selector-popup-width-default: calc(var(--rt-size-40) * 2);
12
+ --rt-dynamic-selector-popup-max-height-default: calc(var(--rt-size-100) + var(--rt-size-20));
13
+ --rt-dynamic-selector-popup-radius-default: var(--rt-radius-md);
14
+ --rt-dynamic-selector-popup-border-width-default: var(--rt-border-width-thin);
15
+ --rt-dynamic-selector-popup-shadow-default: var(--rt-shadow-lg);
16
+ --rt-dynamic-selector-popup-bg-default: var(--rt-color-bg-surface);
17
+ --rt-dynamic-selector-popup-min-height-default: 0;
18
+ --rt-dynamic-selector-popup-padding-default: var(--rt-space-md);
19
+ --rt-dynamic-selector-popup-foot-border-width-default: var(
20
+ --rt-dynamic-selector-popup-border-width,
21
+ var(--rt-dynamic-selector-popup-border-width-default)
22
+ );
23
+ --rt-dynamic-selector-popup-nav-color-default: var(--rt-color-text-link);
24
+
25
+ /* Кнопки «Отмена» и «Применить» по умолчанию той же высоты и кегля, что кнопка кита среднего шага. */
26
+ --rt-dynamic-selector-popup-button-height-default: var(--rt-control-height-md);
27
+ --rt-dynamic-selector-popup-button-font-size-default: 0.95rem;
28
+
29
+ /* Заглушка «ничего не нашлось» по умолчанию повторяет свойства самой заглушки. */
30
+ --rt-dynamic-selector-popup-empty-icon-size-default: var(--rt-size-8);
31
+ --rt-dynamic-selector-popup-empty-icon-wrap-bg-default: var(--rt-color-bg-subtle);
32
+ --rt-dynamic-selector-popup-empty-text-size-default: var(--rt-text-md);
33
+ --rt-dynamic-selector-popup-empty-text-weight-default: var(--rt-font-weight-medium);
34
+ --rt-dynamic-selector-popup-empty-text-color-default: var(--rt-color-text-primary);
13
35
 
14
36
  display: flex;
15
- width: var(--rt-dynamic-selector-popup-width);
37
+ width: var(--rt-dynamic-selector-popup-width, var(--rt-dynamic-selector-popup-width-default));
16
38
  max-width: calc(100vw - var(--rt-space-md) * 2);
17
- max-height: var(--rt-dynamic-selector-popup-max-height);
39
+ min-height: var(--rt-dynamic-selector-popup-min-height, var(--rt-dynamic-selector-popup-min-height-default));
40
+ max-height: var(--rt-dynamic-selector-popup-max-height, var(--rt-dynamic-selector-popup-max-height-default));
18
41
  box-sizing: border-box;
19
42
  flex-direction: column;
20
- border: var(--rt-dynamic-selector-popup-border-width) solid var(--rt-color-border-subtle);
21
- border-radius: var(--rt-dynamic-selector-popup-radius);
22
- background: var(--rt-color-bg-surface);
23
- box-shadow: var(--rt-dynamic-selector-popup-shadow);
43
+ border: var(--rt-dynamic-selector-popup-border-width, var(--rt-dynamic-selector-popup-border-width-default)) solid
44
+ var(--rt-color-border-subtle);
45
+ border-radius: var(--rt-dynamic-selector-popup-radius, var(--rt-dynamic-selector-popup-radius-default));
46
+ background: var(--rt-dynamic-selector-popup-bg, var(--rt-dynamic-selector-popup-bg-default));
47
+ box-shadow: var(--rt-dynamic-selector-popup-shadow, var(--rt-dynamic-selector-popup-shadow-default));
24
48
  color: var(--rt-color-text-primary);
25
49
  gap: var(--rt-space-sm);
26
- padding-block: var(--rt-space-md);
50
+ padding-block: var(--rt-dynamic-selector-popup-padding, var(--rt-dynamic-selector-popup-padding-default));
27
51
 
28
52
  &__head {
29
53
  display: flex;
30
54
  flex-direction: column;
31
55
  gap: var(--rt-space-sm);
32
- padding-inline: var(--rt-space-md);
33
- }
34
-
35
- &__search {
36
- display: block;
56
+ padding-inline: var(--rt-dynamic-selector-popup-padding, var(--rt-dynamic-selector-popup-padding-default));
37
57
  }
38
58
 
39
59
  &__controls {
40
60
  display: flex;
41
61
  flex-direction: column;
42
- border-bottom: var(--rt-dynamic-selector-popup-border-width) solid var(--rt-color-border-subtle);
62
+ border-bottom: var(--rt-dynamic-selector-popup-border-width, var(--rt-dynamic-selector-popup-border-width-default)) solid
63
+ var(--rt-color-border-subtle);
43
64
 
44
65
  /* Строка переключателя и «Выбрать все» — два разных решения; при зазоре 2xs флажок
45
66
  прилипал к переключателю и читался его частью. */
@@ -84,8 +105,11 @@
84
105
  display: block;
85
106
  }
86
107
 
108
+ // Тело окна — загрузка, список или пустой результат — занимает высоту, которую оставили шапка и
109
+ // футер: при заданной наименьшей высоте окна футер стоит у нижней кромки, а не под коротким телом.
87
110
  &__state {
88
111
  display: flex;
112
+ flex: 1 1 auto;
89
113
  align-items: center;
90
114
  justify-content: center;
91
115
  padding: var(--rt-space-md);
@@ -97,7 +121,7 @@
97
121
  flex: 1 1 auto;
98
122
  flex-direction: column;
99
123
  overflow-y: auto;
100
- padding-inline: var(--rt-space-md);
124
+ padding-inline: var(--rt-dynamic-selector-popup-padding, var(--rt-dynamic-selector-popup-padding-default));
101
125
  }
102
126
 
103
127
  // Шаг строки снят с первого кита: флажок и по отступу сверху и снизу — около 36px.
@@ -106,7 +130,8 @@
106
130
  padding-block: var(--rt-space-sm);
107
131
 
108
132
  &--separated {
109
- border-bottom: var(--rt-dynamic-selector-popup-border-width) solid var(--rt-color-border-subtle);
133
+ border-bottom: var(--rt-dynamic-selector-popup-border-width, var(--rt-dynamic-selector-popup-border-width-default)) solid
134
+ var(--rt-color-border-subtle);
110
135
  margin-block-end: var(--rt-space-2xs);
111
136
  padding-block-end: var(--rt-space-sm);
112
137
  }
@@ -129,18 +154,44 @@
129
154
  }
130
155
 
131
156
  &__empty {
132
- display: block;
133
- padding-inline: var(--rt-space-md);
157
+ flex: 1 1 auto;
158
+ padding-inline: var(--rt-dynamic-selector-popup-padding, var(--rt-dynamic-selector-popup-padding-default));
159
+ }
160
+
161
+ /* Свойства заглушки переставляются правилом из двух классов: объявление самой заглушки
162
+ стоит на том же элементе, и одним классом его не перебить. */
163
+ &__empty.rt-empty-state {
164
+ --rt-empty-state-icon-size: var(
165
+ --rt-dynamic-selector-popup-empty-icon-size,
166
+ var(--rt-dynamic-selector-popup-empty-icon-size-default)
167
+ );
168
+ --rt-empty-state-icon-wrap-bg: var(
169
+ --rt-dynamic-selector-popup-empty-icon-wrap-bg,
170
+ var(--rt-dynamic-selector-popup-empty-icon-wrap-bg-default)
171
+ );
172
+ --rt-empty-state-title-size: var(
173
+ --rt-dynamic-selector-popup-empty-text-size,
174
+ var(--rt-dynamic-selector-popup-empty-text-size-default)
175
+ );
176
+ --rt-empty-state-title-weight: var(
177
+ --rt-dynamic-selector-popup-empty-text-weight,
178
+ var(--rt-dynamic-selector-popup-empty-text-weight-default)
179
+ );
180
+ --rt-empty-state-title-color: var(
181
+ --rt-dynamic-selector-popup-empty-text-color,
182
+ var(--rt-dynamic-selector-popup-empty-text-color-default)
183
+ );
134
184
  }
135
185
 
136
186
  &__foot {
137
187
  display: flex;
138
188
  align-items: center;
139
189
  justify-content: flex-end;
140
- border-top: var(--rt-dynamic-selector-popup-border-width) solid var(--rt-color-border-subtle);
190
+ border-top: var(--rt-dynamic-selector-popup-foot-border-width, var(--rt-dynamic-selector-popup-foot-border-width-default)) solid
191
+ var(--rt-color-border-subtle);
141
192
  gap: var(--rt-space-sm);
142
193
  padding-block-start: var(--rt-space-sm);
143
- padding-inline: var(--rt-space-md);
194
+ padding-inline: var(--rt-dynamic-selector-popup-padding, var(--rt-dynamic-selector-popup-padding-default));
144
195
 
145
196
  &--nav {
146
197
  justify-content: space-between;
@@ -151,7 +202,7 @@
151
202
  &__nav {
152
203
  overflow: hidden;
153
204
  min-width: 0;
154
- color: var(--rt-color-text-link);
205
+ color: var(--rt-dynamic-selector-popup-nav-color, var(--rt-dynamic-selector-popup-nav-color-default));
155
206
  font-size: var(--rt-text-sm);
156
207
  text-overflow: ellipsis;
157
208
  white-space: nowrap;
@@ -166,5 +217,13 @@
166
217
  flex: 0 0 auto;
167
218
  gap: var(--rt-space-sm);
168
219
  }
220
+
221
+ &__actions .rt-button {
222
+ --rt-btn-height: var(--rt-dynamic-selector-popup-button-height, var(--rt-dynamic-selector-popup-button-height-default));
223
+ --rt-btn-font-size: var(
224
+ --rt-dynamic-selector-popup-button-font-size,
225
+ var(--rt-dynamic-selector-popup-button-font-size-default)
226
+ );
227
+ }
169
228
  }
170
229
  }
@@ -34,7 +34,8 @@
34
34
  - Слот действия существует всегда, даже пустым; прячет его `:empty` в стилях.
35
35
  - Размеры и подложка — свойства блока: `--rt-empty-state-icon-wrap-size`,
36
36
  `--rt-empty-state-icon-wrap-bg`, `--rt-empty-state-icon-size`, `--rt-empty-state-title-size`,
37
- `--rt-empty-state-title-weight`. Список ставит им назначения `--rt-list-empty-*`. Под
37
+ `--rt-empty-state-title-weight`, `--rt-empty-state-title-color`,
38
+ `--rt-empty-state-description-size`. Список ставит им назначения `--rt-list-empty-*`. Под
38
39
  материальным набором его заглушка рисуется как у первого кита: значок 48px без круга, заголовок
39
40
  32px весом 400.
40
41
 
@@ -13,6 +13,8 @@
13
13
  --rt-empty-state-icon-size: var(--rt-size-8);
14
14
  --rt-empty-state-title-size: var(--rt-text-md);
15
15
  --rt-empty-state-title-weight: var(--rt-font-weight-medium);
16
+ --rt-empty-state-title-color: var(--rt-color-text-primary);
17
+ --rt-empty-state-description-size: var(--rt-text-sm);
16
18
  --rt-empty-state-frame-width: var(--rt-border-width-medium);
17
19
  --rt-empty-state-frame-color: var(--rt-color-border-strong);
18
20
  --rt-empty-state-frame-radius: var(--rt-radius-lg);
@@ -62,7 +64,7 @@
62
64
 
63
65
  &__title {
64
66
  margin: 0;
65
- color: var(--rt-color-text-primary);
67
+ color: var(--rt-empty-state-title-color);
66
68
  font-size: var(--rt-empty-state-title-size);
67
69
  font-weight: var(--rt-empty-state-title-weight);
68
70
  }
@@ -71,7 +73,7 @@
71
73
  max-width: 320px;
72
74
  margin: 0;
73
75
  color: var(--rt-color-text-muted);
74
- font-size: var(--rt-text-sm);
76
+ font-size: var(--rt-empty-state-description-size);
75
77
  line-height: var(--rt-leading-normal);
76
78
  }
77
79
 
@@ -25,6 +25,7 @@
25
25
  | `errors` | `Record<validatorKey, string>` | `{}` |
26
26
  | `readonly` | `boolean` | `false` |
27
27
  | `loading` | `boolean` | `false` |
28
+ | `required` | `boolean` | `false` |
28
29
  | `hideRequiredMark` | `boolean` | `false` |
29
30
  | `reserveHintSpace` | `boolean` | `false` |
30
31
 
@@ -35,8 +36,8 @@
35
36
 
36
37
  - выдаёт контролу авто-идентификатор (`rt-field-N`) и связывает с ним `<label for>`, если у
37
38
  контрола нет своего `controlId`;
38
- - рисует «\*», если у контрола есть валидатор обязательности (обнаруживается сам, входа для этого
39
- нет);
39
+ - рисует «\*», если у контрола есть валидатор обязательности (обнаруживается сам) или у поля стоит
40
+ вход `required`;
40
41
  - показывает текст ошибки и включает режим плоского чтения.
41
42
 
42
43
  Всё это работает только для контролов кита. Обычный `<input>` внутрь класть можно, но подписи,
@@ -53,6 +54,21 @@
53
54
 
54
55
  Ошибка появляется только после касания или правки контрола — это решает сам контрол, а не поле.
55
56
 
57
+ ## Обязательность без валидатора
58
+
59
+ Шаблонная форма (`ngModel`) валидатора на контрол не кладёт, и обязательным поле само себя не
60
+ объявит. Для неё у поля есть вход `required`:
61
+
62
+ ```html
63
+ <rt-field label="Имя" required>
64
+ <rt-input [(ngModel)]="name" />
65
+ </rt-field>
66
+ ```
67
+
68
+ Поле рисует «\*». Тронутое и оставленное пустым краснеет с ошибкой `required`. Форму вход
69
+ недействительной не делает: можно ли записать, решает сама форма. Рядом с валидатором формы вход
70
+ ничего не меняет.
71
+
56
72
  ## Подсказка
57
73
 
58
74
  - Строковый `[hint]` — обычный случай.
@@ -4,19 +4,23 @@
4
4
  <rt-icon name="check" size="md" color="current" [rotate]="null" />
5
5
  ```
6
6
 
7
- | вход | тип | умолчание |
8
- | -------- | ----------------------------------------------------------------------------------- | ----------- |
9
- | `name` | `IRtIcon.Name \| null` — литеральный union из `rt-icon-names.ts`; побеждает `glyph` | `null` |
10
- | `glyph` | `string \| null` — имя Material: пара кита или лигатура шрифта | `null` |
11
- | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| number` — число в пикселях | `'md'` |
12
- | `color` | `'current' \| 'muted' \| 'info' \| 'success' \| 'warning' \| 'danger' \| 'inverse'` | `'current'` |
13
- | `rotate` | `number \| string \| null` | `null` |
14
- | `fill` | `boolean` — залитый рисунок материального набора и заливка шрифта лигатуры | `false` |
15
- | `spin` | `boolean` — вращение, медленнее при просьбе системы о меньшем движении | `false` |
7
+ | вход | тип | умолчание |
8
+ | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
9
+ | `name` | `IRtIcon.Name \| null` — литеральный union из `rt-icon-names.ts`; побеждает `glyph` | `null` |
10
+ | `glyph` | `string \| null` — имя Material: пара кита или лигатура шрифта | `null` |
11
+ | `glyphStrategy` | `'map-first' \| 'font' \| null` — способ рисовать `glyph` у этого значка; `null` — настройка `provideRtIcons` | `null` |
12
+ | `size` | `'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| '4xl' \| number` — ступень берёт свойство `--rt-icon-step-*`, число — пиксели | `'md'` |
13
+ | `color` | `'current' \| 'primary' \| 'muted' \| 'disabled' \| 'info' \| 'success' \| 'warning' \| 'danger' \| 'inverse'` — кроме `current`, свойство `--rt-icon-color-*` | `'current'` |
14
+ | `rotate` | `number \| string \| null` | `null` |
15
+ | `fill` | `boolean` — залитый рисунок материального набора и заливка шрифта лигатуры | `false` |
16
+ | `spin` | `boolean` — вращение, медленнее при просьбе системы о меньшем движении | `false` |
16
17
 
17
- Выходов нет. Размер и цвет едут инлайновым стилем host-а (`width`/`height`/`color`), не классом:
18
- `xs` 12px, `sm` 16px, `md` 20px, `lg` 24px, `xl` 32px, `2xl` 40px, или число пикселей. Лигатура
19
- глифа скрыта, пока шрифты страницы не готовы: её ждёт `RtIconFontService`.
18
+ Выходов нет. Размер и цвет едут инлайновым стилем host-а (`width`/`height`/`color`), не классом.
19
+ Ступень — свойство `--rt-icon-step-<ступень>`, по умолчанию `xs` 12px, `sm` 16px, `md` 20px,
20
+ `lg` 24px, `xl` 32px, `2xl` 40px, `3xl` 48px, `4xl` 64px; число — пиксели. Цвет, кроме `current`, —
21
+ свойство `--rt-icon-color-<цвет>` с ролью кита по умолчанию. Оси шрифта лигатуры — свойства
22
+ `--rt-icon-glyph-weight`, `-grade`, `-opsz`. Лигатура глифа скрыта, пока шрифты страницы не готовы:
23
+ её ждёт `RtIconFontService`.
20
24
 
21
25
  ## Главное, что нужно знать
22
26
 
@@ -19,15 +19,25 @@
19
19
 
20
20
  /* Лигатура шрифта Material Symbols для глифа без пары. Шрифт подключает приложение,
21
21
  семью можно переназначить свойством сверху. Размер шрифта — встроенным стилем, он равен
22
- ширине значка. До готовности шрифтов лигатура скрыта: иначе на её месте видно слово. */
22
+ ширине значка. До готовности шрифтов лигатура скрыта: иначе на её месте видно слово.
23
+ Оси шрифта — вес, градация и оптический размер — приложение задаёт свойствами сверху,
24
+ заливка идёт от входа `fill` и переставляется модификатором. Оптический размер по
25
+ умолчанию — сторона значка: её пишет компонент встроенным стилем, как делал браузер. */
23
26
  &__glyph {
27
+ --rt-icon-glyph-fill: 0;
28
+ --rt-icon-glyph-opsz-auto: 24;
29
+
24
30
  display: block;
25
31
  overflow: hidden;
26
32
  width: 100%;
27
33
  font-family: var(--rt-icon-glyph-font, 'Material Symbols Outlined'), sans-serif;
28
34
  font-feature-settings: 'liga';
29
35
  font-style: normal;
30
- font-variation-settings: 'FILL' 0;
36
+ font-variation-settings:
37
+ 'FILL' var(--rt-icon-glyph-fill),
38
+ 'wght' var(--rt-icon-glyph-weight, 400),
39
+ 'GRAD' var(--rt-icon-glyph-grade, 0),
40
+ 'opsz' var(--rt-icon-glyph-opsz, var(--rt-icon-glyph-opsz-auto));
31
41
  font-weight: var(--rt-font-weight-regular);
32
42
  letter-spacing: normal;
33
43
  line-height: 1;
@@ -36,7 +46,7 @@
36
46
  white-space: nowrap;
37
47
 
38
48
  &--filled {
39
- font-variation-settings: 'FILL' 1;
49
+ --rt-icon-glyph-fill: 1;
40
50
  }
41
51
 
42
52
  &--pending {
@@ -0,0 +1,29 @@
1
+ # `rt-prompt-suggestion`
2
+
3
+ ```html
4
+ @for (q of suggestions(); track q) {
5
+ <rt-prompt-suggestion [label]="q" (picked)="ask($event)" />
6
+ }
7
+ ```
8
+
9
+ | вход | тип | умолчание |
10
+ | ---------- | --------- | ---------- |
11
+ | `label` | `string` | обязателен |
12
+ | `disabled` | `boolean` | `false` |
13
+
14
+ Выход: `picked` — текст вопроса.
15
+
16
+ Спек — `docs/specs/ui-kit-v2/prompt-suggestion/`; здесь только устройство папки.
17
+
18
+ ## Главное, что нужно знать
19
+
20
+ **Карточка занимает всю ширину родителя**, стрелка прижата к правому краю. В столбце подсказок
21
+ разной длины стрелки стоят на одной вертикали.
22
+
23
+ ## Края
24
+
25
+ - Класс блока висит и на хосте, и на кнопке: правила вложены в селектор хоста.
26
+
27
+ ## Рядом
28
+
29
+ - [`rt-empty-state`](../empty-state/CONTEXT.md) — пустой экран, на котором стоят подсказки.
@@ -0,0 +1,58 @@
1
+ @layer rt-kit.components {
2
+ /* rt-prompt-suggestion — карточка готового вопроса. ViewEncapsulation.None.
3
+ Класс блока висит и на хосте, и на кнопке шаблона, поэтому правила вложены в хост. */
4
+
5
+ rt-prompt-suggestion {
6
+ display: block;
7
+
8
+ .rt-prompt-suggestion {
9
+ --rt-prompt-suggestion-radius: var(--rt-radius-lg);
10
+ --rt-prompt-suggestion-focus-shadow: var(--rt-shadow-focus-ring);
11
+ --rt-prompt-suggestion-transition-duration: var(--rt-duration-fast);
12
+
13
+ display: flex;
14
+ box-sizing: border-box;
15
+ align-items: center;
16
+ justify-content: space-between;
17
+ padding: var(--rt-space-sm) var(--rt-space-md);
18
+ border: 0;
19
+ border-radius: var(--rt-prompt-suggestion-radius);
20
+ margin: 0;
21
+ background: var(--rt-color-bg-hover);
22
+ color: var(--rt-color-text-primary);
23
+ cursor: pointer;
24
+ font: inherit;
25
+ font-size: var(--rt-text-sm);
26
+ font-weight: var(--rt-font-weight-medium);
27
+ gap: var(--rt-space-sm);
28
+ inline-size: 100%;
29
+ line-height: var(--rt-leading-snug);
30
+ text-align: start;
31
+ transition: background-color var(--rt-prompt-suggestion-transition-duration) ease;
32
+
33
+ &:hover:not(:disabled) {
34
+ background: var(--rt-color-bg-subtle);
35
+ }
36
+
37
+ &:focus-visible {
38
+ box-shadow: var(--rt-prompt-suggestion-focus-shadow);
39
+ outline: 2px solid transparent;
40
+ outline-offset: 2px;
41
+ }
42
+
43
+ &:disabled {
44
+ color: var(--rt-color-text-disabled);
45
+ cursor: default;
46
+ }
47
+
48
+ &__label {
49
+ min-inline-size: 0;
50
+ }
51
+
52
+ &__arrow {
53
+ flex: none;
54
+ color: var(--rt-color-text-muted);
55
+ }
56
+ }
57
+ }
58
+ }
@@ -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;
@@ -28,6 +28,10 @@
28
28
  Тот же массив строк передаётся входом `[rtThreadListRow]` в шаблон строки: из него выводится тип
29
29
  `row`. Без этого входа строгая сборка приложения отказывает — атрибут без значения приходит строкой.
30
30
 
31
+ Действия строки — `<ng-template let-row [rtThreadListRowActions]="rows()">`: кнопки стоят поверх
32
+ правого края строки, рядом с её кнопкой, а не внутри: вложенная кнопка в `<button>` недопустима и
33
+ забирала бы клик выбора. Видны при наведении и фокусе. Без шаблона строка стоит без обёртки.
34
+
31
35
  ## Главное, что нужно знать
32
36
 
33
37
  **Ctrl/Cmd+клик просит открыть в новой вкладке, а не выбирает строку.** Список — это навигация,
@@ -125,6 +125,35 @@
125
125
  }
126
126
  }
127
127
 
128
+ // Действия строки стоят поверх правого края строки, а не внутри её кнопки: вложенная
129
+ // кнопка в `<button>` недопустима. Подложка повторяет фон строки, чтобы закрыть время.
130
+ &__row-wrap {
131
+ position: relative;
132
+
133
+ &:hover .rt-thread-list__row-actions,
134
+ &:focus-within .rt-thread-list__row-actions {
135
+ opacity: 1;
136
+ pointer-events: auto;
137
+ }
138
+ }
139
+
140
+ &__row-actions {
141
+ position: absolute;
142
+ display: flex;
143
+ align-items: center;
144
+ background: var(--rt-color-bg-subtle);
145
+ gap: var(--rt-space-1);
146
+ inset-block: 0;
147
+ inset-inline-end: 0;
148
+ opacity: 0;
149
+ padding-inline: var(--rt-space-2) var(--rt-space-4);
150
+ pointer-events: none;
151
+ }
152
+
153
+ &__row--active + .rt-thread-list__row-actions {
154
+ background: var(--rt-color-state-info-bg);
155
+ }
156
+
128
157
  &__row-body {
129
158
  display: flex;
130
159
  flex-direction: column;
@@ -23,3 +23,7 @@
23
23
 
24
24
  **Отступ полосы сверху и снизу — свойства блока** `--rt-toolbar-padding-top` и
25
25
  `--rt-toolbar-padding-bottom`, по умолчанию 8px. Список ставит им свои имена.
26
+
27
+ **Плотная полоса остаётся строкой на любой ширине, и её левая часть сжимается.** Длинный
28
+ заголовок в ней переносится по словам и не выходит за правый край. Кнопки справа держат свою
29
+ ширину. Обычная полоса левую часть не сжимает: на узком экране она стекает в колонку.
@@ -65,6 +65,13 @@
65
65
  }
66
66
  }
67
67
 
68
+ // Плотная полоса не стекает в колонку, и длинный заголовок левой зоны ей некуда деть: зона
69
+ // сжимается, а заголовок переносится по словам. Правая зона с кнопками держит свою ширину
70
+ .rt-toolbar--dense .rt-toolbar__bar--left {
71
+ min-width: 0;
72
+ flex: 0 1 auto;
73
+ }
74
+
68
75
  // Мобилка: три зоны не влезают в строку — стекаем в колонку на всю ширину
69
76
  // (фильтр → поиск → действия), поиск растягивается. `--dense` (компактная
70
77
  // шапка вроде rt-chat) из стекинга исключён — остаётся в одну строку.