@rt-tools/ui-kit-v2 0.23.3 → 0.23.4

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 (348) hide show
  1. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs +142 -71
  2. package/fesm2022/rt-tools-ui-kit-v2-accordion.mjs.map +1 -1
  3. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs +467 -231
  4. package/fesm2022/rt-tools-ui-kit-v2-action-bar.mjs.map +1 -1
  5. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs +260 -91
  6. package/fesm2022/rt-tools-ui-kit-v2-ai-run-status.mjs.map +1 -1
  7. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs +80 -46
  8. package/fesm2022/rt-tools-ui-kit-v2-aside-section.mjs.map +1 -1
  9. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs +984 -697
  10. package/fesm2022/rt-tools-ui-kit-v2-aside.mjs.map +1 -1
  11. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs +452 -210
  12. package/fesm2022/rt-tools-ui-kit-v2-autocomplete.mjs.map +1 -1
  13. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs +143 -52
  14. package/fesm2022/rt-tools-ui-kit-v2-bar-list.mjs.map +1 -1
  15. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs +158 -83
  16. package/fesm2022/rt-tools-ui-kit-v2-bottom-sheet.mjs.map +1 -1
  17. package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs +335 -0
  18. package/fesm2022/rt-tools-ui-kit-v2-breadcrumbs.mjs.map +1 -0
  19. package/fesm2022/rt-tools-ui-kit-v2-button.mjs +437 -363
  20. package/fesm2022/rt-tools-ui-kit-v2-button.mjs.map +1 -1
  21. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs +430 -149
  22. package/fesm2022/rt-tools-ui-kit-v2-calendar.mjs.map +1 -1
  23. package/fesm2022/rt-tools-ui-kit-v2-card.mjs +155 -71
  24. package/fesm2022/rt-tools-ui-kit-v2-card.mjs.map +1 -1
  25. package/fesm2022/rt-tools-ui-kit-v2-carousel.mjs +155 -0
  26. package/fesm2022/rt-tools-ui-kit-v2-carousel.mjs.map +1 -0
  27. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs +215 -110
  28. package/fesm2022/rt-tools-ui-kit-v2-checkbox.mjs.map +1 -1
  29. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs +158 -75
  30. package/fesm2022/rt-tools-ui-kit-v2-collapsible-text.mjs.map +1 -1
  31. package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs +769 -0
  32. package/fesm2022/rt-tools-ui-kit-v2-color-palette.mjs.map +1 -0
  33. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs +462 -253
  34. package/fesm2022/rt-tools-ui-kit-v2-confirm-popover.mjs.map +1 -1
  35. package/fesm2022/rt-tools-ui-kit-v2-container.mjs +1276 -1316
  36. package/fesm2022/rt-tools-ui-kit-v2-container.mjs.map +1 -1
  37. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs +185 -80
  38. package/fesm2022/rt-tools-ui-kit-v2-copy-value.mjs.map +1 -1
  39. package/fesm2022/rt-tools-ui-kit-v2-core.mjs +2309 -2619
  40. package/fesm2022/rt-tools-ui-kit-v2-core.mjs.map +1 -1
  41. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs +100 -44
  42. package/fesm2022/rt-tools-ui-kit-v2-counter-row.mjs.map +1 -1
  43. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs +290 -155
  44. package/fesm2022/rt-tools-ui-kit-v2-counter.mjs.map +1 -1
  45. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs +2097 -858
  46. package/fesm2022/rt-tools-ui-kit-v2-data-list.mjs.map +1 -1
  47. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs +2247 -1176
  48. package/fesm2022/rt-tools-ui-kit-v2-data-table.mjs.map +1 -1
  49. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs +1043 -705
  50. package/fesm2022/rt-tools-ui-kit-v2-date-picker.mjs.map +1 -1
  51. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs +810 -525
  52. package/fesm2022/rt-tools-ui-kit-v2-date-range.mjs.map +1 -1
  53. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs +158 -138
  54. package/fesm2022/rt-tools-ui-kit-v2-delta-view.mjs.map +1 -1
  55. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs +177 -67
  56. package/fesm2022/rt-tools-ui-kit-v2-detail-list.mjs.map +1 -1
  57. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs +550 -477
  58. package/fesm2022/rt-tools-ui-kit-v2-dialog.mjs.map +1 -1
  59. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs +185 -168
  60. package/fesm2022/rt-tools-ui-kit-v2-dot-field.mjs.map +1 -1
  61. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs +116 -43
  62. package/fesm2022/rt-tools-ui-kit-v2-download-link.mjs.map +1 -1
  63. package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs +585 -0
  64. package/fesm2022/rt-tools-ui-kit-v2-draggable-tree.mjs.map +1 -0
  65. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs +755 -259
  66. package/fesm2022/rt-tools-ui-kit-v2-dynamic-list.mjs.map +1 -1
  67. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs +3266 -1115
  68. package/fesm2022/rt-tools-ui-kit-v2-dynamic-selector.mjs.map +1 -1
  69. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs +190 -55
  70. package/fesm2022/rt-tools-ui-kit-v2-empty-state.mjs.map +1 -1
  71. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs +283 -103
  72. package/fesm2022/rt-tools-ui-kit-v2-expansion-panel.mjs.map +1 -1
  73. package/fesm2022/rt-tools-ui-kit-v2-field.mjs +393 -177
  74. package/fesm2022/rt-tools-ui-kit-v2-field.mjs.map +1 -1
  75. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs +399 -207
  76. package/fesm2022/rt-tools-ui-kit-v2-file-card.mjs.map +1 -1
  77. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs +288 -212
  78. package/fesm2022/rt-tools-ui-kit-v2-file-drop.mjs.map +1 -1
  79. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs +262 -116
  80. package/fesm2022/rt-tools-ui-kit-v2-file-input.mjs.map +1 -1
  81. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs +57 -31
  82. package/fesm2022/rt-tools-ui-kit-v2-file-list.mjs.map +1 -1
  83. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs +258 -90
  84. package/fesm2022/rt-tools-ui-kit-v2-filter-control.mjs.map +1 -1
  85. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs +249 -215
  86. package/fesm2022/rt-tools-ui-kit-v2-form-control.mjs.map +1 -1
  87. package/fesm2022/rt-tools-ui-kit-v2-header.mjs +199 -71
  88. package/fesm2022/rt-tools-ui-kit-v2-header.mjs.map +1 -1
  89. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs +231 -0
  90. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree-selector.mjs.map +1 -0
  91. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs +336 -0
  92. package/fesm2022/rt-tools-ui-kit-v2-hybrid-tree.mjs.map +1 -0
  93. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs +451 -162
  94. package/fesm2022/rt-tools-ui-kit-v2-icon-button.mjs.map +1 -1
  95. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs +931 -686
  96. package/fesm2022/rt-tools-ui-kit-v2-icon.mjs.map +1 -1
  97. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs +664 -491
  98. package/fesm2022/rt-tools-ui-kit-v2-image-cropper.mjs.map +1 -1
  99. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs +574 -222
  100. package/fesm2022/rt-tools-ui-kit-v2-image-upload.mjs.map +1 -1
  101. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs +150 -36
  102. package/fesm2022/rt-tools-ui-kit-v2-info-item.mjs.map +1 -1
  103. package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs +606 -0
  104. package/fesm2022/rt-tools-ui-kit-v2-inline-edit.mjs.map +1 -0
  105. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs +461 -355
  106. package/fesm2022/rt-tools-ui-kit-v2-input-number.mjs.map +1 -1
  107. package/fesm2022/rt-tools-ui-kit-v2-input.mjs +338 -143
  108. package/fesm2022/rt-tools-ui-kit-v2-input.mjs.map +1 -1
  109. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs +135 -48
  110. package/fesm2022/rt-tools-ui-kit-v2-live-badge.mjs.map +1 -1
  111. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs +166 -92
  112. package/fesm2022/rt-tools-ui-kit-v2-logo.mjs.map +1 -1
  113. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs +118 -56
  114. package/fesm2022/rt-tools-ui-kit-v2-markdown-text.mjs.map +1 -1
  115. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs +1054 -527
  116. package/fesm2022/rt-tools-ui-kit-v2-menu.mjs.map +1 -1
  117. package/fesm2022/rt-tools-ui-kit-v2-message.mjs +230 -104
  118. package/fesm2022/rt-tools-ui-kit-v2-message.mjs.map +1 -1
  119. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs +210 -70
  120. package/fesm2022/rt-tools-ui-kit-v2-money-list.mjs.map +1 -1
  121. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs +532 -311
  122. package/fesm2022/rt-tools-ui-kit-v2-multiselect.mjs.map +1 -1
  123. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs +125 -50
  124. package/fesm2022/rt-tools-ui-kit-v2-night-grid.mjs.map +1 -1
  125. package/fesm2022/rt-tools-ui-kit-v2-note.mjs +73 -43
  126. package/fesm2022/rt-tools-ui-kit-v2-note.mjs.map +1 -1
  127. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs +161 -53
  128. package/fesm2022/rt-tools-ui-kit-v2-notifications-bell.mjs.map +1 -1
  129. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs +491 -310
  130. package/fesm2022/rt-tools-ui-kit-v2-page-header.mjs.map +1 -1
  131. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs +374 -174
  132. package/fesm2022/rt-tools-ui-kit-v2-pagination.mjs.map +1 -1
  133. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs +202 -159
  134. package/fesm2022/rt-tools-ui-kit-v2-photo-viewer.mjs.map +1 -1
  135. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs +438 -309
  136. package/fesm2022/rt-tools-ui-kit-v2-popover.mjs.map +1 -1
  137. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs +135 -45
  138. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs.map +1 -1
  139. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +293 -171
  140. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -1
  141. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +62 -55
  142. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -1
  143. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +3379 -1466
  144. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  145. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +114 -116
  146. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -1
  147. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +406 -299
  148. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
  149. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +137 -36
  150. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -1
  151. package/fesm2022/rt-tools-ui-kit-v2-select.mjs +687 -468
  152. package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
  153. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +2195 -1569
  154. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
  155. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +187 -48
  156. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -1
  157. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +242 -122
  158. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -1
  159. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs +439 -0
  160. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs.map +1 -0
  161. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +218 -69
  162. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -1
  163. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +292 -91
  164. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -1
  165. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +225 -138
  166. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -1
  167. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +150 -116
  168. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -1
  169. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +2462 -1583
  170. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
  171. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +647 -346
  172. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
  173. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +335 -121
  174. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
  175. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +217 -84
  176. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -1
  177. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +151 -72
  178. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -1
  179. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +697 -226
  180. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
  181. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +92 -38
  182. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -1
  183. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +752 -338
  184. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
  185. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +310 -129
  186. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -1
  187. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +286 -158
  188. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -1
  189. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +270 -134
  190. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -1
  191. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +322 -202
  192. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -1
  193. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs +908 -0
  194. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs.map +1 -0
  195. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs +785 -0
  196. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs.map +1 -0
  197. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +118 -63
  198. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -1
  199. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +783 -262
  200. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
  201. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +633 -294
  202. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
  203. package/fesm2022/rt-tools-ui-kit-v2.mjs +100 -103
  204. package/package.json +41 -1
  205. package/src/assets/icons/collapse-all.svg +9 -0
  206. package/src/assets/icons/expand-all.svg +9 -0
  207. package/src/assets/icons-material/collapse-all.fill.svg +5 -0
  208. package/src/assets/icons-material/collapse-all.svg +5 -0
  209. package/src/assets/icons-material/expand-all.fill.svg +5 -0
  210. package/src/assets/icons-material/expand-all.svg +5 -0
  211. package/src/assets/icons-material/undo.fill.svg +5 -0
  212. package/src/assets/icons-material/undo.svg +5 -0
  213. package/src/lib/components/bottom-sheet/CONTEXT.md +20 -2
  214. package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +35 -1
  215. package/src/lib/components/breadcrumbs/CONTEXT.md +37 -0
  216. package/src/lib/components/breadcrumbs/rt-breadcrumbs.component.scss +205 -0
  217. package/src/lib/components/carousel/CONTEXT.md +42 -0
  218. package/src/lib/components/carousel/rt-carousel.component.scss +117 -0
  219. package/src/lib/components/checkbox/CONTEXT.md +3 -0
  220. package/src/lib/components/checkbox/rt-checkbox.component.scss +9 -3
  221. package/src/lib/components/color-palette/CONTEXT.md +49 -0
  222. package/src/lib/components/color-palette/picker/rt-color-picker.component.scss +161 -0
  223. package/src/lib/components/color-palette/rt-color-palette.component.scss +132 -0
  224. package/src/lib/components/draggable-tree/CONTEXT.md +54 -0
  225. package/src/lib/components/draggable-tree/rt-draggable-tree.component.scss +219 -0
  226. package/src/lib/components/hybrid-tree/CONTEXT.md +31 -0
  227. package/src/lib/components/hybrid-tree-selector/CONTEXT.md +25 -0
  228. package/src/lib/components/icon-button/CONTEXT.md +3 -0
  229. package/src/lib/components/inline-edit/CONTEXT.md +41 -0
  230. package/src/lib/components/inline-edit/rt-inline-edit.component.scss +274 -0
  231. package/src/lib/components/popover/CONTEXT.md +3 -0
  232. package/src/lib/components/speed-menu/CONTEXT.md +34 -0
  233. package/src/lib/components/speed-menu/rt-speed-menu.component.scss +118 -0
  234. package/src/lib/components/tag/rt-tag.component.scss +12 -0
  235. package/src/lib/components/thread-list/CONTEXT.md +1 -0
  236. package/src/lib/components/thread-list/rt-thread-list.component.scss +2 -1
  237. package/src/lib/components/toolbar/CONTEXT.md +9 -4
  238. package/src/lib/components/toolbar/rt-toolbar.component.scss +10 -2
  239. package/src/lib/components/tooltip/CONTEXT.md +8 -1
  240. package/src/lib/components/tree/CONTEXT.md +66 -0
  241. package/src/lib/components/tree/rt-tree.component.scss +313 -0
  242. package/src/lib/components/tree-selector/CONTEXT.md +47 -0
  243. package/src/lib/components/tree-selector/rt-tree-selector.component.scss +121 -0
  244. package/src/styles/_primitives.scss +4 -0
  245. package/styles/tokens.css +3 -0
  246. package/types/rt-tools-ui-kit-v2-accordion.d.ts +31 -24
  247. package/types/rt-tools-ui-kit-v2-action-bar.d.ts +112 -91
  248. package/types/rt-tools-ui-kit-v2-ai-run-status.d.ts +64 -40
  249. package/types/rt-tools-ui-kit-v2-aside-section.d.ts +13 -10
  250. package/types/rt-tools-ui-kit-v2-aside.d.ts +268 -206
  251. package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +102 -61
  252. package/types/rt-tools-ui-kit-v2-bar-list.d.ts +39 -27
  253. package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +31 -20
  254. package/types/rt-tools-ui-kit-v2-breadcrumbs.d.ts +89 -0
  255. package/types/rt-tools-ui-kit-v2-button.d.ts +119 -59
  256. package/types/rt-tools-ui-kit-v2-calendar.d.ts +151 -86
  257. package/types/rt-tools-ui-kit-v2-card.d.ts +42 -21
  258. package/types/rt-tools-ui-kit-v2-carousel.d.ts +76 -0
  259. package/types/rt-tools-ui-kit-v2-checkbox.d.ts +48 -24
  260. package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +28 -20
  261. package/types/rt-tools-ui-kit-v2-color-palette.d.ts +208 -0
  262. package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +104 -47
  263. package/types/rt-tools-ui-kit-v2-container.d.ts +278 -221
  264. package/types/rt-tools-ui-kit-v2-copy-value.d.ts +39 -24
  265. package/types/rt-tools-ui-kit-v2-core.d.ts +856 -865
  266. package/types/rt-tools-ui-kit-v2-counter-row.d.ts +20 -12
  267. package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -38
  268. package/types/rt-tools-ui-kit-v2-data-list.d.ts +429 -264
  269. package/types/rt-tools-ui-kit-v2-data-table.d.ts +500 -351
  270. package/types/rt-tools-ui-kit-v2-date-picker.d.ts +164 -138
  271. package/types/rt-tools-ui-kit-v2-date-range.d.ts +102 -84
  272. package/types/rt-tools-ui-kit-v2-delta-view.d.ts +16 -13
  273. package/types/rt-tools-ui-kit-v2-detail-list.d.ts +23 -16
  274. package/types/rt-tools-ui-kit-v2-dialog.d.ts +130 -101
  275. package/types/rt-tools-ui-kit-v2-dot-field.d.ts +10 -13
  276. package/types/rt-tools-ui-kit-v2-download-link.d.ts +22 -17
  277. package/types/rt-tools-ui-kit-v2-draggable-tree.d.ts +132 -0
  278. package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +185 -96
  279. package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +904 -404
  280. package/types/rt-tools-ui-kit-v2-empty-state.d.ts +48 -19
  281. package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +67 -39
  282. package/types/rt-tools-ui-kit-v2-field.d.ts +90 -49
  283. package/types/rt-tools-ui-kit-v2-file-card.d.ts +115 -75
  284. package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -48
  285. package/types/rt-tools-ui-kit-v2-file-input.d.ts +53 -36
  286. package/types/rt-tools-ui-kit-v2-file-list.d.ts +5 -8
  287. package/types/rt-tools-ui-kit-v2-filter-control.d.ts +83 -49
  288. package/types/rt-tools-ui-kit-v2-form-control.d.ts +102 -74
  289. package/types/rt-tools-ui-kit-v2-header.d.ts +40 -22
  290. package/types/rt-tools-ui-kit-v2-hybrid-tree-selector.d.ts +14 -0
  291. package/types/rt-tools-ui-kit-v2-hybrid-tree.d.ts +72 -0
  292. package/types/rt-tools-ui-kit-v2-icon-button.d.ts +190 -90
  293. package/types/rt-tools-ui-kit-v2-icon.d.ts +160 -129
  294. package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +151 -111
  295. package/types/rt-tools-ui-kit-v2-image-upload.d.ts +159 -85
  296. package/types/rt-tools-ui-kit-v2-info-item.d.ts +26 -13
  297. package/types/rt-tools-ui-kit-v2-inline-edit.d.ts +194 -0
  298. package/types/rt-tools-ui-kit-v2-input-number.d.ts +102 -53
  299. package/types/rt-tools-ui-kit-v2-input.d.ts +82 -43
  300. package/types/rt-tools-ui-kit-v2-live-badge.d.ts +30 -17
  301. package/types/rt-tools-ui-kit-v2-logo.d.ts +49 -32
  302. package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +26 -17
  303. package/types/rt-tools-ui-kit-v2-menu.d.ts +272 -155
  304. package/types/rt-tools-ui-kit-v2-message.d.ts +59 -33
  305. package/types/rt-tools-ui-kit-v2-money-list.d.ts +36 -18
  306. package/types/rt-tools-ui-kit-v2-multiselect.d.ts +114 -80
  307. package/types/rt-tools-ui-kit-v2-night-grid.d.ts +34 -25
  308. package/types/rt-tools-ui-kit-v2-note.d.ts +12 -9
  309. package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +37 -16
  310. package/types/rt-tools-ui-kit-v2-page-header.d.ts +218 -150
  311. package/types/rt-tools-ui-kit-v2-pagination.d.ts +99 -63
  312. package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +61 -66
  313. package/types/rt-tools-ui-kit-v2-popover.d.ts +116 -55
  314. package/types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts +26 -16
  315. package/types/rt-tools-ui-kit-v2-radio-button.d.ts +85 -43
  316. package/types/rt-tools-ui-kit-v2-radius.d.ts +18 -15
  317. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +931 -590
  318. package/types/rt-tools-ui-kit-v2-ripple.d.ts +28 -25
  319. package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +60 -58
  320. package/types/rt-tools-ui-kit-v2-section-nav.d.ts +32 -22
  321. package/types/rt-tools-ui-kit-v2-select.d.ts +182 -139
  322. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +452 -349
  323. package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +53 -20
  324. package/types/rt-tools-ui-kit-v2-skeleton.d.ts +55 -26
  325. package/types/rt-tools-ui-kit-v2-speed-menu.d.ts +131 -0
  326. package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -28
  327. package/types/rt-tools-ui-kit-v2-split-button.d.ts +96 -55
  328. package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +88 -60
  329. package/types/rt-tools-ui-kit-v2-stepper.d.ts +50 -37
  330. package/types/rt-tools-ui-kit-v2-table.d.ts +631 -480
  331. package/types/rt-tools-ui-kit-v2-tabs.d.ts +198 -113
  332. package/types/rt-tools-ui-kit-v2-tag.d.ts +106 -53
  333. package/types/rt-tools-ui-kit-v2-textarea.d.ts +48 -25
  334. package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +28 -26
  335. package/types/rt-tools-ui-kit-v2-thread-list.d.ts +154 -94
  336. package/types/rt-tools-ui-kit-v2-timeline.d.ts +30 -28
  337. package/types/rt-tools-ui-kit-v2-toast.d.ts +174 -98
  338. package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +132 -86
  339. package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +88 -50
  340. package/types/rt-tools-ui-kit-v2-toolbar.d.ts +30 -27
  341. package/types/rt-tools-ui-kit-v2-tooltip.d.ts +65 -41
  342. package/types/rt-tools-ui-kit-v2-tree-selector.d.ts +257 -0
  343. package/types/rt-tools-ui-kit-v2-tree.d.ts +282 -0
  344. package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +21 -24
  345. package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +195 -124
  346. package/types/rt-tools-ui-kit-v2-workspace.d.ts +122 -79
  347. package/types/rt-tools-ui-kit-v2.d.ts +100 -90
  348. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +0 -1
@@ -1,183 +1,399 @@
1
- import * as i0 from '@angular/core';
2
- import { Directive, inject, contentChild, computed, input, booleanAttribute, effect, ViewEncapsulation, ChangeDetectionStrategy, Component } from '@angular/core';
3
- import { BlockDirective, ElemDirective, ModDirective } from '@rt-tools/core';
4
- import { RT_KIT_LABELS, rtKitLabel } from '@rt-tools/ui-kit-v2/core';
5
- import { RtFormControlBase } from '@rt-tools/ui-kit-v2/form-control';
6
- import { RtIconComponent } from '@rt-tools/ui-kit-v2/icon';
7
- import { RtPopoverDirective } from '@rt-tools/ui-kit-v2/popover';
8
- import { RtSkeletonWrapperComponent } from '@rt-tools/ui-kit-v2/skeleton-wrapper';
9
-
10
- /**
11
- * Маркер проецируемого hint'а для rt-field. Нужен, когда подсказке требуется
12
- * разметка (`<strong>`, интерполяция значений), которую плоский string-input
13
- * `[hint]` передать не может. Если проецируемый hint присутствует — rt-field
14
- * рендерит его вместо строкового `[hint]` (тот остаётся fallback'ом).
15
- */
16
- class RtFieldHintDirective {
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtFieldHintDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
18
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: RtFieldHintDirective, isStandalone: true, selector: "[rtFieldHint]", ngImport: i0 }); }
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtFieldHintDirective, decorators: [{
21
- type: Directive,
22
- args: [{
23
- selector: '[rtFieldHint]',
24
- }]
25
- }] });
26
-
27
- /**
28
- * Ключи сообщений об ошибках по имени валидатора (перекрываются input'ом
29
- * [errors] поштучно, уже готовым текстом).
30
- *
31
- * Здесь ключи, а не переводы: карта собирается при загрузке модуля, когда язык
32
- * страницы ещё неизвестен, и готовый текст остался бы на языке по умолчанию
33
- * даже под переведённой подписью поля. Переводит сам компонент поля.
34
- */
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, Directive, ViewEncapsulation, booleanAttribute, computed, contentChild, effect, inject, input } from "@angular/core";
3
+ import { BlockDirective, ElemDirective, ModDirective } from "@rt-tools/core";
4
+ import { RT_KIT_LABELS, rtKitLabel } from "@rt-tools/ui-kit-v2/core";
5
+ import { RtFormControlBase } from "@rt-tools/ui-kit-v2/form-control";
6
+ import { RtIconComponent } from "@rt-tools/ui-kit-v2/icon";
7
+ import { RtPopoverDirective } from "@rt-tools/ui-kit-v2/popover";
8
+ import { RtSkeletonWrapperComponent } from "@rt-tools/ui-kit-v2/skeleton-wrapper";
9
+ var RtFieldHintDirective = class RtFieldHintDirective {
10
+ static {
11
+ this.ɵfac = i0.ɵɵngDeclareFactory({
12
+ minVersion: "12.0.0",
13
+ version: "22.2.2",
14
+ ngImport: i0,
15
+ type: RtFieldHintDirective,
16
+ deps: [],
17
+ target: i0.ɵɵFactoryTarget.Directive
18
+ });
19
+ }
20
+ static {
21
+ this.ɵdir = i0.ɵɵngDeclareDirective({
22
+ minVersion: "14.0.0",
23
+ version: "22.2.2",
24
+ type: RtFieldHintDirective,
25
+ isStandalone: true,
26
+ selector: "[rtFieldHint]",
27
+ ngImport: i0
28
+ });
29
+ }
30
+ };
31
+ i0.ɵɵngDeclareClassMetadata({
32
+ minVersion: "12.0.0",
33
+ version: "22.2.2",
34
+ ngImport: i0,
35
+ type: RtFieldHintDirective,
36
+ decorators: [{
37
+ type: Directive,
38
+ args: [{ selector: "[rtFieldHint]" }]
39
+ }]
40
+ });
35
41
  const RT_FIELD_DEFAULT_ERROR_KEYS = {
36
- required: 'fieldErrorRequired',
37
- email: 'fieldErrorEmail',
38
- minlength: 'fieldErrorMinLength',
39
- maxlength: 'fieldErrorMaxLength',
40
- min: 'fieldErrorMin',
41
- max: 'fieldErrorMax',
42
- pattern: 'fieldErrorPattern',
42
+ required: "fieldErrorRequired",
43
+ email: "fieldErrorEmail",
44
+ minlength: "fieldErrorMinLength",
45
+ maxlength: "fieldErrorMaxLength",
46
+ min: "fieldErrorMin",
47
+ max: "fieldErrorMax",
48
+ pattern: "fieldErrorPattern"
43
49
  };
44
- /** Текст-плейсхолдер read-only поля без значения. */
45
- const RT_FIELD_EMPTY_VALUE = '—';
46
-
47
- const BEM_BLOCK = 'rt-field';
48
- /** Счётчик для авто-id (связка label[for] ↔ controlId спроецированного контрола). */
50
+ const RT_FIELD_EMPTY_VALUE = "—";
51
+ const BEM_BLOCK = "rt-field";
49
52
  let uidSeed = 0;
50
53
  function nextAutoId() {
51
- uidSeed += 1;
52
- return `rt-field-${uidSeed}`;
54
+ uidSeed += 1;
55
+ return `rt-field-${uidSeed}`;
53
56
  }
54
- /**
55
- * Обёртка единой анатомии поля: label (+ опц. help-иконка с popover, + авто «*»
56
- * для required) сверху, спроецированный rt-контрол посередине, hint/error снизу.
57
- * `required` объявляет поле обязательным там, где валидатора на контроле нет (шаблонная форма).
58
- * `hideRequiredMark` глушит авто-«*» — для форм, где все поля обязательны и
59
- * маркер лишний (логин).
60
- * `reserveHintSpace` держит под контролом строку высотой в одно сообщение даже
61
- * когда ни ошибки, ни hint нет — чтобы появление ошибки не сдвигало форму вниз
62
- * (нужно для полей без постоянного hint, напр. логин).
63
- *
64
- * Читает контрол через contentChild(RtFormControlBase): авто-связывает label[for],
65
- * прокидывает read-only режим, показывает текст ошибки/required-маркер. На loading
66
- * оборачивает зону контрола в rt-skeleton-wrapper (label/hint остаются видимыми) —
67
- * нужно для route-aside, где поля рендерятся до прихода данных.
68
- */
69
- class RtFieldComponent {
70
- #autoId;
71
- /** Имя первого сработавшего валидатора: сообщений показываем по одному */
72
- #failedValidator;
73
- /**
74
- * Умолчание переводится по ключу.
75
- *
76
- * Ключ передаётся сигналом, а не строкой: так подпись пересчитывается и при
77
- * смене валидатора, и при смене языка — пользователь переключает его
78
- * на лету, и текст ошибки обязан переключиться вместе с формой.
79
- */
80
- #defaultErrorText;
81
- constructor() {
82
- // contentChild нельзя объявлять на ES-private (#) поле — Angular это запрещает,
83
- // поэтому проекция контрола живёт в protected-поле.
84
- this.t = inject(RT_KIT_LABELS);
85
- this.projectedControl = contentChild(RtFormControlBase, /* @ts-ignore */
86
- ...(ngDevMode ? [{ debugName: "projectedControl" }] : /* istanbul ignore next */ []));
87
- // Проецируемый hint (с разметкой) — если присутствует, рендерится вместо
88
- // строкового [hint].
89
- this.projectedHint = contentChild(RtFieldHintDirective, /* @ts-ignore */
90
- ...(ngDevMode ? [{ debugName: "projectedHint" }] : /* istanbul ignore next */ []));
91
- this.#autoId = nextAutoId();
92
- /** Итоговый id: явный controlId контрола важнее авто-id. */
93
- this.controlId = computed(() => this.projectedControl()?.effectiveControlId() ?? this.#autoId, /* @ts-ignore */
94
- ...(ngDevMode ? [{ debugName: "controlId" }] : /* istanbul ignore next */ []));
95
- this.isRequired = computed(() => this.projectedControl()?.required() ?? false, /* @ts-ignore */
96
- ...(ngDevMode ? [{ debugName: "isRequired" }] : /* istanbul ignore next */ []));
97
- this.showError = computed(() => !!this.projectedControl()?.invalid(), /* @ts-ignore */
98
- ...(ngDevMode ? [{ debugName: "showError" }] : /* istanbul ignore next */ []));
99
- /** Имя первого сработавшего валидатора: сообщений показываем по одному */
100
- this.#failedValidator = computed(() => {
101
- const errs = this.projectedControl()?.errors() ?? null;
102
- return errs ? (Object.keys(errs)[0] ?? '') : '';
103
- }, /* @ts-ignore */
104
- ...(ngDevMode ? [{ debugName: "#failedValidator" }] : /* istanbul ignore next */ []));
105
- /**
106
- * Умолчание переводится по ключу.
107
- *
108
- * Ключ передаётся сигналом, а не строкой: так подпись пересчитывается и при
109
- * смене валидатора, и при смене языка — пользователь переключает его
110
- * на лету, и текст ошибки обязан переключиться вместе с формой.
111
- */
112
- this.#defaultErrorText = rtKitLabel(computed(() => RT_FIELD_DEFAULT_ERROR_KEYS[this.#failedValidator()] ?? ''));
113
- /** Сообщение об ошибке: текст, переданный формой, важнее умолчания */
114
- this.errorText = computed(() => {
115
- const validator = this.#failedValidator();
116
- if (!validator) {
117
- return '';
118
- }
119
- const own = this.errors()[validator];
120
- if (own) {
121
- return own;
122
- }
123
- return RT_FIELD_DEFAULT_ERROR_KEYS[validator] ? this.#defaultErrorText() : '';
124
- }, /* @ts-ignore */
125
- ...(ngDevMode ? [{ debugName: "errorText" }] : /* istanbul ignore next */ []));
126
- this.emptyValue = RT_FIELD_EMPTY_VALUE;
127
- this.label = input('', /* @ts-ignore */
128
- ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
129
- this.hint = input('', /* @ts-ignore */
130
- ...(ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []));
131
- this.help = input('', /* @ts-ignore */
132
- ...(ngDevMode ? [{ debugName: "help" }] : /* istanbul ignore next */ []));
133
- this.readonly = input(false, { ...(ngDevMode ? { debugName: "readonly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
134
- this.loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
135
- /**
136
- * Поле обязательно, хотя валидатора на контроле нет: шаблонная форма его не кладёт. Даёт «*» и
137
- * ошибку под тронутым пустым полем. Форму недействительной не делает — решение о записи
138
- * остаётся у формы.
139
- */
140
- this.required = input(false, { ...(ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
141
- this.hideRequiredMark = input(false, { ...(ngDevMode ? { debugName: "hideRequiredMark" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
142
- this.reserveHintSpace = input(false, { ...(ngDevMode ? { debugName: "reserveHintSpace" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
143
- this.errors = input({}, /* @ts-ignore */
144
- ...(ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []));
145
- // Реактивно прокидываем read-only режим в спроецированный контрол.
146
- effect(() => {
147
- this.projectedControl()?.setReadonly(this.readonly());
148
- });
149
- effect(() => {
150
- this.projectedControl()?.setRequired(this.required());
151
- });
152
- }
153
- ngAfterContentInit() {
154
- const ctrl = this.projectedControl();
155
- // Авто-id только если у контрола нет явного controlId — для label[for].
156
- if (ctrl && ctrl.effectiveControlId() === null) {
157
- ctrl.assignControlId(this.#autoId);
158
- }
159
- }
160
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtFieldComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
161
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: RtFieldComponent, isStandalone: true, selector: "rt-field", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, help: { classPropertyName: "help", publicName: "help", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, hideRequiredMark: { classPropertyName: "hideRequiredMark", publicName: "hideRequiredMark", isSignal: true, isRequired: false, transformFunction: null }, reserveHintSpace: { classPropertyName: "reserveHintSpace", publicName: "reserveHintSpace", isSignal: true, isRequired: false, transformFunction: null }, errors: { classPropertyName: "errors", publicName: "errors", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "rt-field" }, queries: [{ propertyName: "projectedControl", first: true, predicate: RtFormControlBase, descendants: true, isSignal: true }, { propertyName: "projectedHint", first: true, predicate: RtFieldHintDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container rtBlock=\"rt-field\">\n @if (label()) {\n <span rtElem=\"label-row\">\n <label rtElem=\"label\" qa-dataid=\"field-label\" [attr.for]=\"controlId()\">\n {{ label() }}\n @if (isRequired() && !hideRequiredMark()) {\n <span rtElem=\"required\" qa-dataid=\"field-required\" aria-hidden=\"true\">*</span>\n }\n </label>\n @if (help()) {\n <button\n rtElem=\"help\"\n qa-dataid=\"field-help\"\n type=\"button\"\n rtPopoverTrigger=\"hover\"\n [attr.aria-label]=\"t().uiHint\"\n [rtPopover]=\"helpTpl\">\n <rt-icon name=\"ico-help\" size=\"sm\" color=\"muted\" />\n </button>\n <ng-template #helpTpl>\n <span rtElem=\"help-popover\" qa-dataid=\"field-help-popover\">{{ help() }}</span>\n </ng-template>\n }\n </span>\n }\n\n <rt-skeleton-wrapper rtElem=\"control\" height=\"var(--rt-input-height)\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n\n <!-- \u0421 \u0440\u0435\u0437\u0435\u0440\u0432\u043E\u043C hint \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u0432 \u043F\u043E\u0442\u043E\u043A\u0435 \u0434\u0430\u0436\u0435 \u043F\u043E\u0434 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 (\u0441\u043A\u0440\u044B\u0442\u044B\u0439), \u0430 \u0441\u0430\u043C\u0430\n \u043E\u0448\u0438\u0431\u043A\u0430 \u043A\u043B\u0430\u0434\u0451\u0442\u0441\u044F \u0432 \u0442\u0443 \u0436\u0435 \u044F\u0447\u0435\u0439\u043A\u0443 \u0433\u0440\u0438\u0434\u0430: \u0432\u044B\u0441\u043E\u0442\u0430 \u0437\u043E\u043D\u044B \u0440\u0430\u0432\u043D\u0430 \u0431\u043E\u043B\u044C\u0448\u0435\u043C\u0443 \u0438\u0437\n \u0434\u0432\u0443\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u0438 \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0438\u0445 \u043F\u043E\u0434\u043C\u0435\u043D\u0435. \u0411\u0435\u0437 \u0440\u0435\u0437\u0435\u0440\u0432\u0430 \u2014 \u043A\u0430\u043A \u0431\u044B\u043B\u043E,\n \u043E\u0434\u043D\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0437\u0430 \u0440\u0430\u0437, \u0447\u0442\u043E\u0431\u044B \u043F\u043B\u043E\u0442\u043D\u044B\u0435 \u0444\u043E\u0440\u043C\u044B \u043D\u0435 \u043D\u0430\u0431\u0438\u0440\u0430\u043B\u0438 \u043B\u0438\u0448\u043D\u0438\u0439 \u0432\u043E\u0437\u0434\u0443\u0445. -->\n <span rtElem=\"messages\" [rtMod]=\"{ reserved: reserveHintSpace() }\">\n @if (projectedHint() && (reserveHintSpace() || !showError())) {\n <small rtElem=\"hint\" qa-dataid=\"field-hint\" [rtMod]=\"{ hidden: showError() }\" [attr.aria-hidden]=\"showError() ? 'true' : null\">\n <ng-content select=\"[rtFieldHint]\" />\n </small>\n } @else if (hint() && (reserveHintSpace() || !showError())) {\n <small rtElem=\"hint\" qa-dataid=\"field-hint\" [rtMod]=\"{ hidden: showError() }\" [attr.aria-hidden]=\"showError() ? 'true' : null\">\n {{ hint() }}\n </small>\n }\n\n @if (showError()) {\n <small rtElem=\"error\" qa-dataid=\"field-error\">{{ errorText() }}</small>\n }\n </span>\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-field{display:flex;flex-direction:column;gap:var(--rt-field-gap)}.rt-field__label-row{display:inline-flex;align-items:center;gap:var(--rt-field-label-help-gap)}.rt-field__label{color:var(--rt-field-label-color);font-size:var(--rt-field-label-font-size);font-weight:var(--rt-field-label-font-weight)}.rt-field__required{color:var(--rt-field-required-color)}.rt-field__control{color:var(--rt-field-value-color);font-size:var(--rt-field-value-font-size)}.rt-field__help{display:inline-flex;padding:0;border:none;margin:0;background:none;cursor:help}.rt-field__help-popover{display:block;max-width:240px;font-size:var(--rt-field-hint-font-size)}.rt-field__messages{display:grid}.rt-field__messages--reserved{font-size:var(--rt-field-error-font-size);min-block-size:1lh}.rt-field__messages--reserved>*{grid-area:1/1}.rt-field__hint{color:var(--rt-field-hint-color);font-size:var(--rt-field-hint-font-size)}.rt-field__hint--hidden{visibility:hidden}.rt-field__error{color:var(--rt-field-error-color);font-size:var(--rt-field-error-font-size)}}\n"], dependencies: [{ kind: "component", type:
162
- // standalone components / directives
163
- RtIconComponent, selector: "rt-icon", inputs: ["name", "glyph", "glyphStrategy", "size", "color", "fill", "spin", "rotate"] }, { kind: "directive", type: RtPopoverDirective, selector: "[rtPopover]", inputs: ["rtPopover", "rtPopoverTrigger", "rtPopoverWidth", "rtPopoverAlign", "rtPopoverFitViewport", "rtPopoverContext", "rtPopoverPanelClass", "rtPopoverDisabled", "rtPopoverOffsetY", "rtPopoverOffsetX"], outputs: ["rtPopoverOpened", "rtPopoverClosed"], exportAs: ["rtPopover"] }, { kind: "component", type: RtSkeletonWrapperComponent, selector: "rt-skeleton-wrapper", inputs: ["width", "height", "shape", "size", "radius", "animation", "isLoading"] }, { kind: "directive", type: BlockDirective, selector: "[rtBlock]", inputs: ["rtMod"] }, { kind: "directive", type: ElemDirective, selector: "[rtElem]", inputs: ["rtMod"] }, { kind: "directive", type: ModDirective, selector: "[rtMod]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
164
- }
165
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtFieldComponent, decorators: [{
166
- type: Component,
167
- args: [{ selector: 'rt-field', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
168
- // standalone components / directives
169
- RtIconComponent,
170
- RtPopoverDirective,
171
- RtSkeletonWrapperComponent,
172
- BlockDirective,
173
- ElemDirective,
174
- ModDirective,
175
- ], host: { class: BEM_BLOCK }, template: "<ng-container rtBlock=\"rt-field\">\n @if (label()) {\n <span rtElem=\"label-row\">\n <label rtElem=\"label\" qa-dataid=\"field-label\" [attr.for]=\"controlId()\">\n {{ label() }}\n @if (isRequired() && !hideRequiredMark()) {\n <span rtElem=\"required\" qa-dataid=\"field-required\" aria-hidden=\"true\">*</span>\n }\n </label>\n @if (help()) {\n <button\n rtElem=\"help\"\n qa-dataid=\"field-help\"\n type=\"button\"\n rtPopoverTrigger=\"hover\"\n [attr.aria-label]=\"t().uiHint\"\n [rtPopover]=\"helpTpl\">\n <rt-icon name=\"ico-help\" size=\"sm\" color=\"muted\" />\n </button>\n <ng-template #helpTpl>\n <span rtElem=\"help-popover\" qa-dataid=\"field-help-popover\">{{ help() }}</span>\n </ng-template>\n }\n </span>\n }\n\n <rt-skeleton-wrapper rtElem=\"control\" height=\"var(--rt-input-height)\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n\n <!-- \u0421 \u0440\u0435\u0437\u0435\u0440\u0432\u043E\u043C hint \u043E\u0441\u0442\u0430\u0451\u0442\u0441\u044F \u0432 \u043F\u043E\u0442\u043E\u043A\u0435 \u0434\u0430\u0436\u0435 \u043F\u043E\u0434 \u043E\u0448\u0438\u0431\u043A\u043E\u0439 (\u0441\u043A\u0440\u044B\u0442\u044B\u0439), \u0430 \u0441\u0430\u043C\u0430\n \u043E\u0448\u0438\u0431\u043A\u0430 \u043A\u043B\u0430\u0434\u0451\u0442\u0441\u044F \u0432 \u0442\u0443 \u0436\u0435 \u044F\u0447\u0435\u0439\u043A\u0443 \u0433\u0440\u0438\u0434\u0430: \u0432\u044B\u0441\u043E\u0442\u0430 \u0437\u043E\u043D\u044B \u0440\u0430\u0432\u043D\u0430 \u0431\u043E\u043B\u044C\u0448\u0435\u043C\u0443 \u0438\u0437\n \u0434\u0432\u0443\u0445 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0439 \u0438 \u043D\u0435 \u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u043F\u0440\u0438 \u0438\u0445 \u043F\u043E\u0434\u043C\u0435\u043D\u0435. \u0411\u0435\u0437 \u0440\u0435\u0437\u0435\u0440\u0432\u0430 \u2014 \u043A\u0430\u043A \u0431\u044B\u043B\u043E,\n \u043E\u0434\u043D\u043E \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u0437\u0430 \u0440\u0430\u0437, \u0447\u0442\u043E\u0431\u044B \u043F\u043B\u043E\u0442\u043D\u044B\u0435 \u0444\u043E\u0440\u043C\u044B \u043D\u0435 \u043D\u0430\u0431\u0438\u0440\u0430\u043B\u0438 \u043B\u0438\u0448\u043D\u0438\u0439 \u0432\u043E\u0437\u0434\u0443\u0445. -->\n <span rtElem=\"messages\" [rtMod]=\"{ reserved: reserveHintSpace() }\">\n @if (projectedHint() && (reserveHintSpace() || !showError())) {\n <small rtElem=\"hint\" qa-dataid=\"field-hint\" [rtMod]=\"{ hidden: showError() }\" [attr.aria-hidden]=\"showError() ? 'true' : null\">\n <ng-content select=\"[rtFieldHint]\" />\n </small>\n } @else if (hint() && (reserveHintSpace() || !showError())) {\n <small rtElem=\"hint\" qa-dataid=\"field-hint\" [rtMod]=\"{ hidden: showError() }\" [attr.aria-hidden]=\"showError() ? 'true' : null\">\n {{ hint() }}\n </small>\n }\n\n @if (showError()) {\n <small rtElem=\"error\" qa-dataid=\"field-error\">{{ errorText() }}</small>\n }\n </span>\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-field{display:flex;flex-direction:column;gap:var(--rt-field-gap)}.rt-field__label-row{display:inline-flex;align-items:center;gap:var(--rt-field-label-help-gap)}.rt-field__label{color:var(--rt-field-label-color);font-size:var(--rt-field-label-font-size);font-weight:var(--rt-field-label-font-weight)}.rt-field__required{color:var(--rt-field-required-color)}.rt-field__control{color:var(--rt-field-value-color);font-size:var(--rt-field-value-font-size)}.rt-field__help{display:inline-flex;padding:0;border:none;margin:0;background:none;cursor:help}.rt-field__help-popover{display:block;max-width:240px;font-size:var(--rt-field-hint-font-size)}.rt-field__messages{display:grid}.rt-field__messages--reserved{font-size:var(--rt-field-error-font-size);min-block-size:1lh}.rt-field__messages--reserved>*{grid-area:1/1}.rt-field__hint{color:var(--rt-field-hint-color);font-size:var(--rt-field-hint-font-size)}.rt-field__hint--hidden{visibility:hidden}.rt-field__error{color:var(--rt-field-error-color);font-size:var(--rt-field-error-font-size)}}\n"] }]
176
- }], ctorParameters: () => [], propDecorators: { projectedControl: [{ type: i0.ContentChild, args: [i0.forwardRef(() => RtFormControlBase), { isSignal: true }] }], projectedHint: [{ type: i0.ContentChild, args: [i0.forwardRef(() => RtFieldHintDirective), { isSignal: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], hint: [{ type: i0.Input, args: [{ isSignal: true, alias: "hint", required: false }] }], help: [{ type: i0.Input, args: [{ isSignal: true, alias: "help", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], required: [{ type: i0.Input, args: [{ isSignal: true, alias: "required", required: false }] }], hideRequiredMark: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideRequiredMark", required: false }] }], reserveHintSpace: [{ type: i0.Input, args: [{ isSignal: true, alias: "reserveHintSpace", required: false }] }], errors: [{ type: i0.Input, args: [{ isSignal: true, alias: "errors", required: false }] }] } });
177
-
178
- /**
179
- * Generated bundle index. Do not edit.
180
- */
181
-
57
+ var RtFieldComponent = class RtFieldComponent {
58
+ #autoId;
59
+ #failedValidator;
60
+ #defaultErrorText;
61
+ constructor() {
62
+ this.t = inject(RT_KIT_LABELS);
63
+ this.projectedControl = contentChild(RtFormControlBase, ...ngDevMode ? [{ debugName: "projectedControl" }] : /* istanbul ignore next */ []);
64
+ this.projectedHint = contentChild(RtFieldHintDirective, ...ngDevMode ? [{ debugName: "projectedHint" }] : /* istanbul ignore next */ []);
65
+ this.#autoId = nextAutoId();
66
+ this.controlId = computed(() => this.projectedControl()?.effectiveControlId() ?? this.#autoId, ...ngDevMode ? [{ debugName: "controlId" }] : /* istanbul ignore next */ []);
67
+ this.isRequired = computed(() => this.projectedControl()?.required() ?? false, ...ngDevMode ? [{ debugName: "isRequired" }] : /* istanbul ignore next */ []);
68
+ this.showError = computed(() => !!this.projectedControl()?.invalid(), ...ngDevMode ? [{ debugName: "showError" }] : /* istanbul ignore next */ []);
69
+ this.#failedValidator = computed(() => {
70
+ const errs = this.projectedControl()?.errors() ?? null;
71
+ return errs ? Object.keys(errs)[0] ?? "" : "";
72
+ }, ...ngDevMode ? [{ debugName: "#failedValidator" }] : /* istanbul ignore next */ []);
73
+ this.#defaultErrorText = rtKitLabel(computed(() => RT_FIELD_DEFAULT_ERROR_KEYS[this.#failedValidator()] ?? ""));
74
+ this.errorText = computed(() => {
75
+ const validator = this.#failedValidator();
76
+ if (!validator) return "";
77
+ const own = this.errors()[validator];
78
+ if (own) return own;
79
+ return RT_FIELD_DEFAULT_ERROR_KEYS[validator] ? this.#defaultErrorText() : "";
80
+ }, ...ngDevMode ? [{ debugName: "errorText" }] : /* istanbul ignore next */ []);
81
+ this.emptyValue = "—";
82
+ this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
83
+ this.hint = input("", ...ngDevMode ? [{ debugName: "hint" }] : /* istanbul ignore next */ []);
84
+ this.help = input("", ...ngDevMode ? [{ debugName: "help" }] : /* istanbul ignore next */ []);
85
+ this.readonly = input(false, {
86
+ ...ngDevMode ? { debugName: "readonly" } : /* istanbul ignore next */ {},
87
+ transform: booleanAttribute
88
+ });
89
+ this.loading = input(false, {
90
+ ...ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {},
91
+ transform: booleanAttribute
92
+ });
93
+ this.required = input(false, {
94
+ ...ngDevMode ? { debugName: "required" } : /* istanbul ignore next */ {},
95
+ transform: booleanAttribute
96
+ });
97
+ this.hideRequiredMark = input(false, {
98
+ ...ngDevMode ? { debugName: "hideRequiredMark" } : /* istanbul ignore next */ {},
99
+ transform: booleanAttribute
100
+ });
101
+ this.reserveHintSpace = input(false, {
102
+ ...ngDevMode ? { debugName: "reserveHintSpace" } : /* istanbul ignore next */ {},
103
+ transform: booleanAttribute
104
+ });
105
+ this.errors = input({}, ...ngDevMode ? [{ debugName: "errors" }] : /* istanbul ignore next */ []);
106
+ effect(() => {
107
+ this.projectedControl()?.setReadonly(this.readonly());
108
+ });
109
+ effect(() => {
110
+ this.projectedControl()?.setRequired(this.required());
111
+ });
112
+ }
113
+ ngAfterContentInit() {
114
+ const ctrl = this.projectedControl();
115
+ if (ctrl && ctrl.effectiveControlId() === null) ctrl.assignControlId(this.#autoId);
116
+ }
117
+ static {
118
+ this.ɵfac = i0.ɵɵngDeclareFactory({
119
+ minVersion: "12.0.0",
120
+ version: "22.2.2",
121
+ ngImport: i0,
122
+ type: RtFieldComponent,
123
+ deps: [],
124
+ target: i0.ɵɵFactoryTarget.Component
125
+ });
126
+ }
127
+ static {
128
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
129
+ minVersion: "17.0.0",
130
+ version: "22.2.2",
131
+ type: RtFieldComponent,
132
+ isStandalone: true,
133
+ selector: "rt-field",
134
+ inputs: {
135
+ label: {
136
+ classPropertyName: "label",
137
+ publicName: "label",
138
+ isSignal: true,
139
+ isRequired: false,
140
+ transformFunction: null
141
+ },
142
+ hint: {
143
+ classPropertyName: "hint",
144
+ publicName: "hint",
145
+ isSignal: true,
146
+ isRequired: false,
147
+ transformFunction: null
148
+ },
149
+ help: {
150
+ classPropertyName: "help",
151
+ publicName: "help",
152
+ isSignal: true,
153
+ isRequired: false,
154
+ transformFunction: null
155
+ },
156
+ readonly: {
157
+ classPropertyName: "readonly",
158
+ publicName: "readonly",
159
+ isSignal: true,
160
+ isRequired: false,
161
+ transformFunction: null
162
+ },
163
+ loading: {
164
+ classPropertyName: "loading",
165
+ publicName: "loading",
166
+ isSignal: true,
167
+ isRequired: false,
168
+ transformFunction: null
169
+ },
170
+ required: {
171
+ classPropertyName: "required",
172
+ publicName: "required",
173
+ isSignal: true,
174
+ isRequired: false,
175
+ transformFunction: null
176
+ },
177
+ hideRequiredMark: {
178
+ classPropertyName: "hideRequiredMark",
179
+ publicName: "hideRequiredMark",
180
+ isSignal: true,
181
+ isRequired: false,
182
+ transformFunction: null
183
+ },
184
+ reserveHintSpace: {
185
+ classPropertyName: "reserveHintSpace",
186
+ publicName: "reserveHintSpace",
187
+ isSignal: true,
188
+ isRequired: false,
189
+ transformFunction: null
190
+ },
191
+ errors: {
192
+ classPropertyName: "errors",
193
+ publicName: "errors",
194
+ isSignal: true,
195
+ isRequired: false,
196
+ transformFunction: null
197
+ }
198
+ },
199
+ host: { classAttribute: "rt-field" },
200
+ queries: [{
201
+ propertyName: "projectedControl",
202
+ first: true,
203
+ predicate: RtFormControlBase,
204
+ descendants: true,
205
+ isSignal: true
206
+ }, {
207
+ propertyName: "projectedHint",
208
+ first: true,
209
+ predicate: RtFieldHintDirective,
210
+ descendants: true,
211
+ isSignal: true
212
+ }],
213
+ ngImport: i0,
214
+ template: "<ng-container rtBlock=\"rt-field\">\n @if (label()) {\n <span rtElem=\"label-row\">\n <label rtElem=\"label\" qa-dataid=\"field-label\" [attr.for]=\"controlId()\">\n {{ label() }}\n @if (isRequired() && !hideRequiredMark()) {\n <span rtElem=\"required\" qa-dataid=\"field-required\" aria-hidden=\"true\">*</span>\n }\n </label>\n @if (help()) {\n <button\n rtElem=\"help\"\n qa-dataid=\"field-help\"\n type=\"button\"\n rtPopoverTrigger=\"hover\"\n [attr.aria-label]=\"t().uiHint\"\n [rtPopover]=\"helpTpl\">\n <rt-icon name=\"ico-help\" size=\"sm\" color=\"muted\" />\n </button>\n <ng-template #helpTpl>\n <span rtElem=\"help-popover\" qa-dataid=\"field-help-popover\">{{ help() }}</span>\n </ng-template>\n }\n </span>\n }\n\n <rt-skeleton-wrapper rtElem=\"control\" height=\"var(--rt-input-height)\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n\n <!-- С резервом hint остаётся в потоке даже под ошибкой (скрытый), а сама\n ошибка кладётся в ту же ячейку грида: высота зоны равна большему из\n двух сообщений и не меняется при их подмене. Без резерва — как было,\n одно сообщение за раз, чтобы плотные формы не набирали лишний воздух. -->\n <span rtElem=\"messages\" [rtMod]=\"{ reserved: reserveHintSpace() }\">\n @if (projectedHint() && (reserveHintSpace() || !showError())) {\n <small rtElem=\"hint\" qa-dataid=\"field-hint\" [rtMod]=\"{ hidden: showError() }\" [attr.aria-hidden]=\"showError() ? 'true' : null\">\n <ng-content select=\"[rtFieldHint]\" />\n </small>\n } @else if (hint() && (reserveHintSpace() || !showError())) {\n <small rtElem=\"hint\" qa-dataid=\"field-hint\" [rtMod]=\"{ hidden: showError() }\" [attr.aria-hidden]=\"showError() ? 'true' : null\">\n {{ hint() }}\n </small>\n }\n\n @if (showError()) {\n <small rtElem=\"error\" qa-dataid=\"field-error\">{{ errorText() }}</small>\n }\n </span>\n</ng-container>\n",
215
+ styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-field{display:flex;flex-direction:column;gap:var(--rt-field-gap)}.rt-field__label-row{display:inline-flex;align-items:center;gap:var(--rt-field-label-help-gap)}.rt-field__label{color:var(--rt-field-label-color);font-size:var(--rt-field-label-font-size);font-weight:var(--rt-field-label-font-weight)}.rt-field__required{color:var(--rt-field-required-color)}.rt-field__control{color:var(--rt-field-value-color);font-size:var(--rt-field-value-font-size)}.rt-field__help{display:inline-flex;padding:0;border:none;margin:0;background:none;cursor:help}.rt-field__help-popover{display:block;max-width:240px;font-size:var(--rt-field-hint-font-size)}.rt-field__messages{display:grid}.rt-field__messages--reserved{font-size:var(--rt-field-error-font-size);min-block-size:1lh}.rt-field__messages--reserved>*{grid-area:1/1}.rt-field__hint{color:var(--rt-field-hint-color);font-size:var(--rt-field-hint-font-size)}.rt-field__hint--hidden{visibility:hidden}.rt-field__error{color:var(--rt-field-error-color);font-size:var(--rt-field-error-font-size)}}\n"],
216
+ dependencies: [
217
+ {
218
+ kind: "component",
219
+ type: RtIconComponent,
220
+ selector: "rt-icon",
221
+ inputs: [
222
+ "name",
223
+ "glyph",
224
+ "glyphStrategy",
225
+ "size",
226
+ "color",
227
+ "fill",
228
+ "spin",
229
+ "rotate"
230
+ ]
231
+ },
232
+ {
233
+ kind: "directive",
234
+ type: RtPopoverDirective,
235
+ selector: "[rtPopover]",
236
+ inputs: [
237
+ "rtPopover",
238
+ "rtPopoverTrigger",
239
+ "rtPopoverWidth",
240
+ "rtPopoverAlign",
241
+ "rtPopoverFitViewport",
242
+ "rtPopoverContext",
243
+ "rtPopoverPanelClass",
244
+ "rtPopoverDisabled",
245
+ "rtPopoverOffsetY",
246
+ "rtPopoverOffsetX",
247
+ "rtPopoverPositions"
248
+ ],
249
+ outputs: ["rtPopoverOpened", "rtPopoverClosed"],
250
+ exportAs: ["rtPopover"]
251
+ },
252
+ {
253
+ kind: "component",
254
+ type: RtSkeletonWrapperComponent,
255
+ selector: "rt-skeleton-wrapper",
256
+ inputs: [
257
+ "width",
258
+ "height",
259
+ "shape",
260
+ "size",
261
+ "radius",
262
+ "animation",
263
+ "isLoading"
264
+ ]
265
+ },
266
+ {
267
+ kind: "directive",
268
+ type: BlockDirective,
269
+ selector: "[rtBlock]",
270
+ inputs: ["rtMod"]
271
+ },
272
+ {
273
+ kind: "directive",
274
+ type: ElemDirective,
275
+ selector: "[rtElem]",
276
+ inputs: ["rtMod"]
277
+ },
278
+ {
279
+ kind: "directive",
280
+ type: ModDirective,
281
+ selector: "[rtMod]"
282
+ }
283
+ ],
284
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
285
+ encapsulation: i0.ViewEncapsulation.None
286
+ });
287
+ }
288
+ };
289
+ i0.ɵɵngDeclareClassMetadata({
290
+ minVersion: "12.0.0",
291
+ version: "22.2.2",
292
+ ngImport: i0,
293
+ type: RtFieldComponent,
294
+ decorators: [{
295
+ type: Component,
296
+ args: [{
297
+ selector: "rt-field",
298
+ changeDetection: ChangeDetectionStrategy.OnPush,
299
+ encapsulation: ViewEncapsulation.None,
300
+ imports: [
301
+ RtIconComponent,
302
+ RtPopoverDirective,
303
+ RtSkeletonWrapperComponent,
304
+ BlockDirective,
305
+ ElemDirective,
306
+ ModDirective
307
+ ],
308
+ host: { class: BEM_BLOCK },
309
+ template: "<ng-container rtBlock=\"rt-field\">\n @if (label()) {\n <span rtElem=\"label-row\">\n <label rtElem=\"label\" qa-dataid=\"field-label\" [attr.for]=\"controlId()\">\n {{ label() }}\n @if (isRequired() && !hideRequiredMark()) {\n <span rtElem=\"required\" qa-dataid=\"field-required\" aria-hidden=\"true\">*</span>\n }\n </label>\n @if (help()) {\n <button\n rtElem=\"help\"\n qa-dataid=\"field-help\"\n type=\"button\"\n rtPopoverTrigger=\"hover\"\n [attr.aria-label]=\"t().uiHint\"\n [rtPopover]=\"helpTpl\">\n <rt-icon name=\"ico-help\" size=\"sm\" color=\"muted\" />\n </button>\n <ng-template #helpTpl>\n <span rtElem=\"help-popover\" qa-dataid=\"field-help-popover\">{{ help() }}</span>\n </ng-template>\n }\n </span>\n }\n\n <rt-skeleton-wrapper rtElem=\"control\" height=\"var(--rt-input-height)\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n\n <!-- С резервом hint остаётся в потоке даже под ошибкой (скрытый), а сама\n ошибка кладётся в ту же ячейку грида: высота зоны равна большему из\n двух сообщений и не меняется при их подмене. Без резерва — как было,\n одно сообщение за раз, чтобы плотные формы не набирали лишний воздух. -->\n <span rtElem=\"messages\" [rtMod]=\"{ reserved: reserveHintSpace() }\">\n @if (projectedHint() && (reserveHintSpace() || !showError())) {\n <small rtElem=\"hint\" qa-dataid=\"field-hint\" [rtMod]=\"{ hidden: showError() }\" [attr.aria-hidden]=\"showError() ? 'true' : null\">\n <ng-content select=\"[rtFieldHint]\" />\n </small>\n } @else if (hint() && (reserveHintSpace() || !showError())) {\n <small rtElem=\"hint\" qa-dataid=\"field-hint\" [rtMod]=\"{ hidden: showError() }\" [attr.aria-hidden]=\"showError() ? 'true' : null\">\n {{ hint() }}\n </small>\n }\n\n @if (showError()) {\n <small rtElem=\"error\" qa-dataid=\"field-error\">{{ errorText() }}</small>\n }\n </span>\n</ng-container>\n",
310
+ styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-field{display:flex;flex-direction:column;gap:var(--rt-field-gap)}.rt-field__label-row{display:inline-flex;align-items:center;gap:var(--rt-field-label-help-gap)}.rt-field__label{color:var(--rt-field-label-color);font-size:var(--rt-field-label-font-size);font-weight:var(--rt-field-label-font-weight)}.rt-field__required{color:var(--rt-field-required-color)}.rt-field__control{color:var(--rt-field-value-color);font-size:var(--rt-field-value-font-size)}.rt-field__help{display:inline-flex;padding:0;border:none;margin:0;background:none;cursor:help}.rt-field__help-popover{display:block;max-width:240px;font-size:var(--rt-field-hint-font-size)}.rt-field__messages{display:grid}.rt-field__messages--reserved{font-size:var(--rt-field-error-font-size);min-block-size:1lh}.rt-field__messages--reserved>*{grid-area:1/1}.rt-field__hint{color:var(--rt-field-hint-color);font-size:var(--rt-field-hint-font-size)}.rt-field__hint--hidden{visibility:hidden}.rt-field__error{color:var(--rt-field-error-color);font-size:var(--rt-field-error-font-size)}}\n"]
311
+ }]
312
+ }],
313
+ ctorParameters: () => [],
314
+ propDecorators: {
315
+ projectedControl: [{
316
+ type: i0.ContentChild,
317
+ args: [i0.forwardRef(() => RtFormControlBase), { isSignal: true }]
318
+ }],
319
+ projectedHint: [{
320
+ type: i0.ContentChild,
321
+ args: [i0.forwardRef(() => RtFieldHintDirective), { isSignal: true }]
322
+ }],
323
+ label: [{
324
+ type: i0.Input,
325
+ args: [{
326
+ isSignal: true,
327
+ alias: "label",
328
+ required: false
329
+ }]
330
+ }],
331
+ hint: [{
332
+ type: i0.Input,
333
+ args: [{
334
+ isSignal: true,
335
+ alias: "hint",
336
+ required: false
337
+ }]
338
+ }],
339
+ help: [{
340
+ type: i0.Input,
341
+ args: [{
342
+ isSignal: true,
343
+ alias: "help",
344
+ required: false
345
+ }]
346
+ }],
347
+ readonly: [{
348
+ type: i0.Input,
349
+ args: [{
350
+ isSignal: true,
351
+ alias: "readonly",
352
+ required: false
353
+ }]
354
+ }],
355
+ loading: [{
356
+ type: i0.Input,
357
+ args: [{
358
+ isSignal: true,
359
+ alias: "loading",
360
+ required: false
361
+ }]
362
+ }],
363
+ required: [{
364
+ type: i0.Input,
365
+ args: [{
366
+ isSignal: true,
367
+ alias: "required",
368
+ required: false
369
+ }]
370
+ }],
371
+ hideRequiredMark: [{
372
+ type: i0.Input,
373
+ args: [{
374
+ isSignal: true,
375
+ alias: "hideRequiredMark",
376
+ required: false
377
+ }]
378
+ }],
379
+ reserveHintSpace: [{
380
+ type: i0.Input,
381
+ args: [{
382
+ isSignal: true,
383
+ alias: "reserveHintSpace",
384
+ required: false
385
+ }]
386
+ }],
387
+ errors: [{
388
+ type: i0.Input,
389
+ args: [{
390
+ isSignal: true,
391
+ alias: "errors",
392
+ required: false
393
+ }]
394
+ }]
395
+ }
396
+ });
182
397
  export { RT_FIELD_DEFAULT_ERROR_KEYS, RT_FIELD_EMPTY_VALUE, RtFieldComponent, RtFieldHintDirective };
183
- //# sourceMappingURL=rt-tools-ui-kit-v2-field.mjs.map
398
+
399
+ //# sourceMappingURL=rt-tools-ui-kit-v2-field.mjs.map