@rt-tools/ui-kit-v2 0.23.3 → 0.24.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 (354) 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 +2321 -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-profile-menu.mjs +295 -0
  138. package/fesm2022/rt-tools-ui-kit-v2-profile-menu.mjs.map +1 -0
  139. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs +135 -45
  140. package/fesm2022/rt-tools-ui-kit-v2-prompt-suggestion.mjs.map +1 -1
  141. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs +293 -171
  142. package/fesm2022/rt-tools-ui-kit-v2-radio-button.mjs.map +1 -1
  143. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs +62 -55
  144. package/fesm2022/rt-tools-ui-kit-v2-radius.mjs.map +1 -1
  145. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs +3379 -1466
  146. package/fesm2022/rt-tools-ui-kit-v2-rich-editor.mjs.map +1 -1
  147. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs +114 -116
  148. package/fesm2022/rt-tools-ui-kit-v2-ripple.mjs.map +1 -1
  149. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs +406 -299
  150. package/fesm2022/rt-tools-ui-kit-v2-scroll-area.mjs.map +1 -1
  151. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs +137 -36
  152. package/fesm2022/rt-tools-ui-kit-v2-section-nav.mjs.map +1 -1
  153. package/fesm2022/rt-tools-ui-kit-v2-select.mjs +687 -468
  154. package/fesm2022/rt-tools-ui-kit-v2-select.mjs.map +1 -1
  155. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs +2195 -1569
  156. package/fesm2022/rt-tools-ui-kit-v2-side-menu.mjs.map +1 -1
  157. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs +187 -48
  158. package/fesm2022/rt-tools-ui-kit-v2-skeleton-wrapper.mjs.map +1 -1
  159. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs +242 -122
  160. package/fesm2022/rt-tools-ui-kit-v2-skeleton.mjs.map +1 -1
  161. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs +439 -0
  162. package/fesm2022/rt-tools-ui-kit-v2-speed-menu.mjs.map +1 -0
  163. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs +218 -69
  164. package/fesm2022/rt-tools-ui-kit-v2-spinner.mjs.map +1 -1
  165. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs +292 -91
  166. package/fesm2022/rt-tools-ui-kit-v2-split-button.mjs.map +1 -1
  167. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs +225 -138
  168. package/fesm2022/rt-tools-ui-kit-v2-stat-tile.mjs.map +1 -1
  169. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs +150 -116
  170. package/fesm2022/rt-tools-ui-kit-v2-stepper.mjs.map +1 -1
  171. package/fesm2022/rt-tools-ui-kit-v2-table.mjs +2462 -1583
  172. package/fesm2022/rt-tools-ui-kit-v2-table.mjs.map +1 -1
  173. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs +647 -346
  174. package/fesm2022/rt-tools-ui-kit-v2-tabs.mjs.map +1 -1
  175. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs +335 -121
  176. package/fesm2022/rt-tools-ui-kit-v2-tag.mjs.map +1 -1
  177. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs +217 -84
  178. package/fesm2022/rt-tools-ui-kit-v2-textarea.mjs.map +1 -1
  179. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs +151 -72
  180. package/fesm2022/rt-tools-ui-kit-v2-theme-toggle.mjs.map +1 -1
  181. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs +697 -226
  182. package/fesm2022/rt-tools-ui-kit-v2-thread-list.mjs.map +1 -1
  183. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs +92 -38
  184. package/fesm2022/rt-tools-ui-kit-v2-timeline.mjs.map +1 -1
  185. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs +752 -338
  186. package/fesm2022/rt-tools-ui-kit-v2-toast.mjs.map +1 -1
  187. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs +310 -129
  188. package/fesm2022/rt-tools-ui-kit-v2-toggle-button-group.mjs.map +1 -1
  189. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs +286 -158
  190. package/fesm2022/rt-tools-ui-kit-v2-toggle-switch.mjs.map +1 -1
  191. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs +270 -134
  192. package/fesm2022/rt-tools-ui-kit-v2-toolbar.mjs.map +1 -1
  193. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs +322 -202
  194. package/fesm2022/rt-tools-ui-kit-v2-tooltip.mjs.map +1 -1
  195. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs +908 -0
  196. package/fesm2022/rt-tools-ui-kit-v2-tree-selector.mjs.map +1 -0
  197. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs +785 -0
  198. package/fesm2022/rt-tools-ui-kit-v2-tree.mjs.map +1 -0
  199. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs +118 -63
  200. package/fesm2022/rt-tools-ui-kit-v2-welcome-dialog.mjs.map +1 -1
  201. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs +783 -262
  202. package/fesm2022/rt-tools-ui-kit-v2-workspace-details.mjs.map +1 -1
  203. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs +633 -294
  204. package/fesm2022/rt-tools-ui-kit-v2-workspace.mjs.map +1 -1
  205. package/fesm2022/rt-tools-ui-kit-v2.mjs +100 -103
  206. package/package.json +45 -1
  207. package/src/assets/icons/collapse-all.svg +9 -0
  208. package/src/assets/icons/expand-all.svg +9 -0
  209. package/src/assets/icons-material/collapse-all.fill.svg +5 -0
  210. package/src/assets/icons-material/collapse-all.svg +5 -0
  211. package/src/assets/icons-material/expand-all.fill.svg +5 -0
  212. package/src/assets/icons-material/expand-all.svg +5 -0
  213. package/src/assets/icons-material/undo.fill.svg +5 -0
  214. package/src/assets/icons-material/undo.svg +5 -0
  215. package/src/lib/components/bottom-sheet/CONTEXT.md +20 -2
  216. package/src/lib/components/bottom-sheet/rt-bottom-sheet.component.scss +36 -1
  217. package/src/lib/components/breadcrumbs/CONTEXT.md +37 -0
  218. package/src/lib/components/breadcrumbs/rt-breadcrumbs.component.scss +205 -0
  219. package/src/lib/components/carousel/CONTEXT.md +42 -0
  220. package/src/lib/components/carousel/rt-carousel.component.scss +117 -0
  221. package/src/lib/components/checkbox/CONTEXT.md +3 -0
  222. package/src/lib/components/checkbox/rt-checkbox.component.scss +9 -3
  223. package/src/lib/components/color-palette/CONTEXT.md +49 -0
  224. package/src/lib/components/color-palette/picker/rt-color-picker.component.scss +161 -0
  225. package/src/lib/components/color-palette/rt-color-palette.component.scss +132 -0
  226. package/src/lib/components/draggable-tree/CONTEXT.md +54 -0
  227. package/src/lib/components/draggable-tree/rt-draggable-tree.component.scss +219 -0
  228. package/src/lib/components/hybrid-tree/CONTEXT.md +31 -0
  229. package/src/lib/components/hybrid-tree-selector/CONTEXT.md +25 -0
  230. package/src/lib/components/icon-button/CONTEXT.md +3 -0
  231. package/src/lib/components/inline-edit/CONTEXT.md +41 -0
  232. package/src/lib/components/inline-edit/rt-inline-edit.component.scss +274 -0
  233. package/src/lib/components/popover/CONTEXT.md +3 -0
  234. package/src/lib/components/profile-menu/CONTEXT.md +32 -0
  235. package/src/lib/components/profile-menu/rt-profile-menu.component.scss +104 -0
  236. package/src/lib/components/speed-menu/CONTEXT.md +34 -0
  237. package/src/lib/components/speed-menu/rt-speed-menu.component.scss +118 -0
  238. package/src/lib/components/tag/rt-tag.component.scss +12 -0
  239. package/src/lib/components/thread-list/CONTEXT.md +1 -0
  240. package/src/lib/components/thread-list/rt-thread-list.component.scss +2 -1
  241. package/src/lib/components/toolbar/CONTEXT.md +9 -4
  242. package/src/lib/components/toolbar/rt-toolbar.component.scss +10 -2
  243. package/src/lib/components/tooltip/CONTEXT.md +8 -1
  244. package/src/lib/components/tree/CONTEXT.md +66 -0
  245. package/src/lib/components/tree/rt-tree.component.scss +313 -0
  246. package/src/lib/components/tree-selector/CONTEXT.md +47 -0
  247. package/src/lib/components/tree-selector/rt-tree-selector.component.scss +121 -0
  248. package/src/styles/_primitives.scss +4 -0
  249. package/src/styles/_semantic.scss +5 -0
  250. package/styles/tokens.css +43 -0
  251. package/types/rt-tools-ui-kit-v2-accordion.d.ts +31 -24
  252. package/types/rt-tools-ui-kit-v2-action-bar.d.ts +112 -91
  253. package/types/rt-tools-ui-kit-v2-ai-run-status.d.ts +64 -40
  254. package/types/rt-tools-ui-kit-v2-aside-section.d.ts +13 -10
  255. package/types/rt-tools-ui-kit-v2-aside.d.ts +268 -206
  256. package/types/rt-tools-ui-kit-v2-autocomplete.d.ts +102 -61
  257. package/types/rt-tools-ui-kit-v2-bar-list.d.ts +39 -27
  258. package/types/rt-tools-ui-kit-v2-bottom-sheet.d.ts +31 -20
  259. package/types/rt-tools-ui-kit-v2-breadcrumbs.d.ts +89 -0
  260. package/types/rt-tools-ui-kit-v2-button.d.ts +119 -59
  261. package/types/rt-tools-ui-kit-v2-calendar.d.ts +151 -86
  262. package/types/rt-tools-ui-kit-v2-card.d.ts +42 -21
  263. package/types/rt-tools-ui-kit-v2-carousel.d.ts +76 -0
  264. package/types/rt-tools-ui-kit-v2-checkbox.d.ts +48 -24
  265. package/types/rt-tools-ui-kit-v2-collapsible-text.d.ts +28 -20
  266. package/types/rt-tools-ui-kit-v2-color-palette.d.ts +208 -0
  267. package/types/rt-tools-ui-kit-v2-confirm-popover.d.ts +104 -47
  268. package/types/rt-tools-ui-kit-v2-container.d.ts +278 -221
  269. package/types/rt-tools-ui-kit-v2-copy-value.d.ts +39 -24
  270. package/types/rt-tools-ui-kit-v2-core.d.ts +862 -865
  271. package/types/rt-tools-ui-kit-v2-counter-row.d.ts +20 -12
  272. package/types/rt-tools-ui-kit-v2-counter.d.ts +70 -38
  273. package/types/rt-tools-ui-kit-v2-data-list.d.ts +429 -264
  274. package/types/rt-tools-ui-kit-v2-data-table.d.ts +500 -351
  275. package/types/rt-tools-ui-kit-v2-date-picker.d.ts +164 -138
  276. package/types/rt-tools-ui-kit-v2-date-range.d.ts +102 -84
  277. package/types/rt-tools-ui-kit-v2-delta-view.d.ts +16 -13
  278. package/types/rt-tools-ui-kit-v2-detail-list.d.ts +23 -16
  279. package/types/rt-tools-ui-kit-v2-dialog.d.ts +130 -101
  280. package/types/rt-tools-ui-kit-v2-dot-field.d.ts +10 -13
  281. package/types/rt-tools-ui-kit-v2-download-link.d.ts +22 -17
  282. package/types/rt-tools-ui-kit-v2-draggable-tree.d.ts +132 -0
  283. package/types/rt-tools-ui-kit-v2-dynamic-list.d.ts +185 -96
  284. package/types/rt-tools-ui-kit-v2-dynamic-selector.d.ts +904 -404
  285. package/types/rt-tools-ui-kit-v2-empty-state.d.ts +48 -19
  286. package/types/rt-tools-ui-kit-v2-expansion-panel.d.ts +67 -39
  287. package/types/rt-tools-ui-kit-v2-field.d.ts +90 -49
  288. package/types/rt-tools-ui-kit-v2-file-card.d.ts +115 -75
  289. package/types/rt-tools-ui-kit-v2-file-drop.d.ts +75 -48
  290. package/types/rt-tools-ui-kit-v2-file-input.d.ts +53 -36
  291. package/types/rt-tools-ui-kit-v2-file-list.d.ts +5 -8
  292. package/types/rt-tools-ui-kit-v2-filter-control.d.ts +83 -49
  293. package/types/rt-tools-ui-kit-v2-form-control.d.ts +102 -74
  294. package/types/rt-tools-ui-kit-v2-header.d.ts +40 -22
  295. package/types/rt-tools-ui-kit-v2-hybrid-tree-selector.d.ts +14 -0
  296. package/types/rt-tools-ui-kit-v2-hybrid-tree.d.ts +72 -0
  297. package/types/rt-tools-ui-kit-v2-icon-button.d.ts +190 -90
  298. package/types/rt-tools-ui-kit-v2-icon.d.ts +160 -129
  299. package/types/rt-tools-ui-kit-v2-image-cropper.d.ts +151 -111
  300. package/types/rt-tools-ui-kit-v2-image-upload.d.ts +159 -85
  301. package/types/rt-tools-ui-kit-v2-info-item.d.ts +26 -13
  302. package/types/rt-tools-ui-kit-v2-inline-edit.d.ts +194 -0
  303. package/types/rt-tools-ui-kit-v2-input-number.d.ts +102 -53
  304. package/types/rt-tools-ui-kit-v2-input.d.ts +82 -43
  305. package/types/rt-tools-ui-kit-v2-live-badge.d.ts +30 -17
  306. package/types/rt-tools-ui-kit-v2-logo.d.ts +49 -32
  307. package/types/rt-tools-ui-kit-v2-markdown-text.d.ts +26 -17
  308. package/types/rt-tools-ui-kit-v2-menu.d.ts +272 -155
  309. package/types/rt-tools-ui-kit-v2-message.d.ts +59 -33
  310. package/types/rt-tools-ui-kit-v2-money-list.d.ts +36 -18
  311. package/types/rt-tools-ui-kit-v2-multiselect.d.ts +114 -80
  312. package/types/rt-tools-ui-kit-v2-night-grid.d.ts +34 -25
  313. package/types/rt-tools-ui-kit-v2-note.d.ts +12 -9
  314. package/types/rt-tools-ui-kit-v2-notifications-bell.d.ts +37 -16
  315. package/types/rt-tools-ui-kit-v2-page-header.d.ts +218 -150
  316. package/types/rt-tools-ui-kit-v2-pagination.d.ts +99 -63
  317. package/types/rt-tools-ui-kit-v2-photo-viewer.d.ts +61 -66
  318. package/types/rt-tools-ui-kit-v2-popover.d.ts +116 -55
  319. package/types/rt-tools-ui-kit-v2-profile-menu.d.ts +103 -0
  320. package/types/rt-tools-ui-kit-v2-prompt-suggestion.d.ts +26 -16
  321. package/types/rt-tools-ui-kit-v2-radio-button.d.ts +85 -43
  322. package/types/rt-tools-ui-kit-v2-radius.d.ts +18 -15
  323. package/types/rt-tools-ui-kit-v2-rich-editor.d.ts +931 -590
  324. package/types/rt-tools-ui-kit-v2-ripple.d.ts +28 -25
  325. package/types/rt-tools-ui-kit-v2-scroll-area.d.ts +60 -58
  326. package/types/rt-tools-ui-kit-v2-section-nav.d.ts +32 -22
  327. package/types/rt-tools-ui-kit-v2-select.d.ts +182 -139
  328. package/types/rt-tools-ui-kit-v2-side-menu.d.ts +452 -349
  329. package/types/rt-tools-ui-kit-v2-skeleton-wrapper.d.ts +53 -20
  330. package/types/rt-tools-ui-kit-v2-skeleton.d.ts +55 -26
  331. package/types/rt-tools-ui-kit-v2-speed-menu.d.ts +131 -0
  332. package/types/rt-tools-ui-kit-v2-spinner.d.ts +56 -28
  333. package/types/rt-tools-ui-kit-v2-split-button.d.ts +96 -55
  334. package/types/rt-tools-ui-kit-v2-stat-tile.d.ts +88 -60
  335. package/types/rt-tools-ui-kit-v2-stepper.d.ts +50 -37
  336. package/types/rt-tools-ui-kit-v2-table.d.ts +631 -480
  337. package/types/rt-tools-ui-kit-v2-tabs.d.ts +198 -113
  338. package/types/rt-tools-ui-kit-v2-tag.d.ts +106 -53
  339. package/types/rt-tools-ui-kit-v2-textarea.d.ts +48 -25
  340. package/types/rt-tools-ui-kit-v2-theme-toggle.d.ts +28 -26
  341. package/types/rt-tools-ui-kit-v2-thread-list.d.ts +154 -94
  342. package/types/rt-tools-ui-kit-v2-timeline.d.ts +30 -28
  343. package/types/rt-tools-ui-kit-v2-toast.d.ts +174 -98
  344. package/types/rt-tools-ui-kit-v2-toggle-button-group.d.ts +132 -86
  345. package/types/rt-tools-ui-kit-v2-toggle-switch.d.ts +88 -50
  346. package/types/rt-tools-ui-kit-v2-toolbar.d.ts +30 -27
  347. package/types/rt-tools-ui-kit-v2-tooltip.d.ts +65 -41
  348. package/types/rt-tools-ui-kit-v2-tree-selector.d.ts +257 -0
  349. package/types/rt-tools-ui-kit-v2-tree.d.ts +282 -0
  350. package/types/rt-tools-ui-kit-v2-welcome-dialog.d.ts +21 -24
  351. package/types/rt-tools-ui-kit-v2-workspace-details.d.ts +195 -124
  352. package/types/rt-tools-ui-kit-v2-workspace.d.ts +122 -79
  353. package/types/rt-tools-ui-kit-v2.d.ts +100 -90
  354. package/fesm2022/rt-tools-ui-kit-v2.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"rt-tools-ui-kit-v2-delta-view.mjs","sources":["../../../projects/ui-kit-v2/src/lib/components/delta-view/rt-delta-view.component.ts","../../../projects/ui-kit-v2/src/lib/components/delta-view/rt-tools-ui-kit-v2-delta-view.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, InputSignal, ViewEncapsulation } from '@angular/core';\n\nimport { IQuillDelta, IQuillDeltaAttributes } from '@rt-tools/ui-kit-v2/core';\n\nconst BEM_BLOCK: string = 'rt-delta-view';\n\n/** Inline-атрибут → оборачивающий тег. Порядок задаёт вложенность обёрток. */\nconst INLINE_TAGS: ReadonlyArray<[keyof IQuillDeltaAttributes, string]> = [\n ['bold', 'strong'],\n ['italic', 'em'],\n ['underline', 'u'],\n ['strike', 's'],\n];\n\n/** Одна строка треда: накопленные inline-узлы + атрибуты завершающего перевода строки. */\ninterface IDeltaLine {\n nodes: Node[];\n attrs?: IQuillDeltaAttributes;\n}\n\n/**\n * Безопасный рендер Quill delta: обход ops со сборкой DOM через нативный API\n * (`createElement`/`createTextNode` — текст экранируется автоматически). Никакого\n * `innerHTML`: содержимое `insert` — произвольный пользовательский текст. Блочные\n * атрибуты (list/header/blockquote/code-block) Quill вешает на op перевода строки —\n * накопленный inline-буфер закрывается этим блоком.\n */\n@Component({\n selector: 'rt-delta-view',\n template: '',\n styleUrl: './rt-delta-view.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: BEM_BLOCK,\n },\n})\nexport class RtDeltaViewComponent {\n readonly #doc: Document = inject(DOCUMENT);\n readonly #host: ElementRef<HTMLElement> = inject(ElementRef);\n\n public readonly delta: InputSignal<IQuillDelta | null> = input<IQuillDelta | null>(null);\n\n constructor() {\n effect((): void => {\n const value: IQuillDelta | null = this.delta();\n const host: HTMLElement = this.#host.nativeElement;\n host.textContent = '';\n if (value !== null) {\n host.appendChild(this.#build(value));\n }\n });\n }\n\n /** Собирает фрагмент из строк delta, группируя подряд идущие list-элементы. */\n #build(delta: IQuillDelta): DocumentFragment {\n const fragment: DocumentFragment = this.#doc.createDocumentFragment();\n let list: HTMLElement | null = null;\n for (const line of this.#splitLines(delta)) {\n const listType: 'ordered' | 'bullet' | undefined = line.attrs?.list;\n if (listType !== undefined) {\n list = this.#appendListItem(fragment, list, line, listType);\n continue;\n }\n list = null;\n fragment.appendChild(this.#blockElement(line));\n }\n return fragment;\n }\n\n /** Разбивает ops на строки по `\\n`: inline-текст копится, `\\n` закрывает строку. */\n #splitLines(delta: IQuillDelta): IDeltaLine[] {\n const lines: IDeltaLine[] = [];\n let buffer: Node[] = [];\n for (const op of delta.ops) {\n const parts: string[] = op.insert.split('\\n');\n parts.forEach((part: string, index: number): void => {\n if (part.length > 0) {\n buffer.push(this.#inlineNode(part, op.attributes));\n }\n if (index < parts.length - 1) {\n lines.push({ nodes: buffer, attrs: op.attributes });\n buffer = [];\n }\n });\n }\n if (buffer.length > 0) {\n lines.push({ nodes: buffer });\n }\n return lines;\n }\n\n /** Текстовый узел, обёрнутый в inline-теги по whitelist-атрибутам. */\n #inlineNode(text: string, attrs: IQuillDeltaAttributes | undefined): Node {\n let node: Node = this.#doc.createTextNode(text);\n for (const [attr, tag] of INLINE_TAGS) {\n if (attrs?.[attr] === true) {\n const wrapper: HTMLElement = this.#doc.createElement(tag);\n wrapper.appendChild(node);\n node = wrapper;\n }\n }\n return node;\n }\n\n /** Блочный элемент строки (header/blockquote/code-block/абзац). */\n #blockElement(line: IDeltaLine): HTMLElement {\n if (line.attrs?.['code-block'] === true) {\n const pre: HTMLElement = this.#doc.createElement('pre');\n const code: HTMLElement = this.#doc.createElement('code');\n this.#fill(code, line.nodes);\n pre.appendChild(code);\n return pre;\n }\n const element: HTMLElement = this.#doc.createElement(this.#blockTag(line.attrs));\n this.#fill(element, line.nodes);\n return element;\n }\n\n /** Тег блока по whitelist-атрибутам перевода строки. */\n #blockTag(attrs: IQuillDeltaAttributes | undefined): string {\n if (attrs?.header !== undefined) {\n return `h${attrs.header}`;\n }\n if (attrs?.blockquote === true) {\n return 'blockquote';\n }\n return 'p';\n }\n\n /** Обеспечивает список нужного типа и добавляет в него элемент строки. */\n #appendListItem(\n fragment: DocumentFragment,\n current: HTMLElement | null,\n line: IDeltaLine,\n listType: 'ordered' | 'bullet'\n ): HTMLElement {\n const tag: string = listType === 'ordered' ? 'ol' : 'ul';\n let list: HTMLElement | null = current;\n if (list === null || list.tagName.toLowerCase() !== tag) {\n list = this.#doc.createElement(tag);\n fragment.appendChild(list);\n }\n const item: HTMLElement = this.#doc.createElement('li');\n this.#fill(item, line.nodes);\n list.appendChild(item);\n return list;\n }\n\n #fill(element: HTMLElement, nodes: Node[]): void {\n for (const node of nodes) {\n element.appendChild(node);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rt-tools-ui-kit-v2-delta-view.mjs","names":[],"sources":["../../../projects/ui-kit-v2/src/lib/components/delta-view/rt-delta-view.component.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, InputSignal, ViewEncapsulation } from '@angular/core';\n\nimport { IQuillDelta, IQuillDeltaAttributes } from '@rt-tools/ui-kit-v2/core';\n\nconst BEM_BLOCK: string = 'rt-delta-view';\n\n/** Inline-атрибут → оборачивающий тег. Порядок задаёт вложенность обёрток. */\nconst INLINE_TAGS: ReadonlyArray<[keyof IQuillDeltaAttributes, string]> = [\n ['bold', 'strong'],\n ['italic', 'em'],\n ['underline', 'u'],\n ['strike', 's'],\n];\n\n/** Одна строка треда: накопленные inline-узлы + атрибуты завершающего перевода строки. */\ninterface IDeltaLine {\n nodes: Node[];\n attrs?: IQuillDeltaAttributes;\n}\n\n/**\n * Безопасный рендер Quill delta: обход ops со сборкой DOM через нативный API\n * (`createElement`/`createTextNode` — текст экранируется автоматически). Никакого\n * `innerHTML`: содержимое `insert` — произвольный пользовательский текст. Блочные\n * атрибуты (list/header/blockquote/code-block) Quill вешает на op перевода строки —\n * накопленный inline-буфер закрывается этим блоком.\n */\n@Component({\n selector: 'rt-delta-view',\n template: '',\n styleUrl: './rt-delta-view.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n class: BEM_BLOCK,\n },\n})\nexport class RtDeltaViewComponent {\n readonly #doc: Document = inject(DOCUMENT);\n readonly #host: ElementRef<HTMLElement> = inject(ElementRef);\n\n public readonly delta: InputSignal<IQuillDelta | null> = input<IQuillDelta | null>(null);\n\n constructor() {\n effect((): void => {\n const value: IQuillDelta | null = this.delta();\n const host: HTMLElement = this.#host.nativeElement;\n host.textContent = '';\n if (value !== null) {\n host.appendChild(this.#build(value));\n }\n });\n }\n\n /** Собирает фрагмент из строк delta, группируя подряд идущие list-элементы. */\n #build(delta: IQuillDelta): DocumentFragment {\n const fragment: DocumentFragment = this.#doc.createDocumentFragment();\n let list: HTMLElement | null = null;\n for (const line of this.#splitLines(delta)) {\n const listType: 'ordered' | 'bullet' | undefined = line.attrs?.list;\n if (listType !== undefined) {\n list = this.#appendListItem(fragment, list, line, listType);\n continue;\n }\n list = null;\n fragment.appendChild(this.#blockElement(line));\n }\n return fragment;\n }\n\n /** Разбивает ops на строки по `\\n`: inline-текст копится, `\\n` закрывает строку. */\n #splitLines(delta: IQuillDelta): IDeltaLine[] {\n const lines: IDeltaLine[] = [];\n let buffer: Node[] = [];\n for (const op of delta.ops) {\n const parts: string[] = op.insert.split('\\n');\n parts.forEach((part: string, index: number): void => {\n if (part.length > 0) {\n buffer.push(this.#inlineNode(part, op.attributes));\n }\n if (index < parts.length - 1) {\n lines.push({ nodes: buffer, attrs: op.attributes });\n buffer = [];\n }\n });\n }\n if (buffer.length > 0) {\n lines.push({ nodes: buffer });\n }\n return lines;\n }\n\n /** Текстовый узел, обёрнутый в inline-теги по whitelist-атрибутам. */\n #inlineNode(text: string, attrs: IQuillDeltaAttributes | undefined): Node {\n let node: Node = this.#doc.createTextNode(text);\n for (const [attr, tag] of INLINE_TAGS) {\n if (attrs?.[attr] === true) {\n const wrapper: HTMLElement = this.#doc.createElement(tag);\n wrapper.appendChild(node);\n node = wrapper;\n }\n }\n return node;\n }\n\n /** Блочный элемент строки (header/blockquote/code-block/абзац). */\n #blockElement(line: IDeltaLine): HTMLElement {\n if (line.attrs?.['code-block'] === true) {\n const pre: HTMLElement = this.#doc.createElement('pre');\n const code: HTMLElement = this.#doc.createElement('code');\n this.#fill(code, line.nodes);\n pre.appendChild(code);\n return pre;\n }\n const element: HTMLElement = this.#doc.createElement(this.#blockTag(line.attrs));\n this.#fill(element, line.nodes);\n return element;\n }\n\n /** Тег блока по whitelist-атрибутам перевода строки. */\n #blockTag(attrs: IQuillDeltaAttributes | undefined): string {\n if (attrs?.header !== undefined) {\n return `h${attrs.header}`;\n }\n if (attrs?.blockquote === true) {\n return 'blockquote';\n }\n return 'p';\n }\n\n /** Обеспечивает список нужного типа и добавляет в него элемент строки. */\n #appendListItem(\n fragment: DocumentFragment,\n current: HTMLElement | null,\n line: IDeltaLine,\n listType: 'ordered' | 'bullet'\n ): HTMLElement {\n const tag: string = listType === 'ordered' ? 'ol' : 'ul';\n let list: HTMLElement | null = current;\n if (list === null || list.tagName.toLowerCase() !== tag) {\n list = this.#doc.createElement(tag);\n fragment.appendChild(list);\n }\n const item: HTMLElement = this.#doc.createElement('li');\n this.#fill(item, line.nodes);\n list.appendChild(item);\n return list;\n }\n\n #fill(element: HTMLElement, nodes: Node[]): void {\n for (const node of nodes) {\n element.appendChild(node);\n }\n }\n}\n"],"mappings":"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"}
@@ -1,68 +1,178 @@
1
- import * as i0 from '@angular/core';
2
- import { ViewEncapsulation, ChangeDetectionStrategy, Component, input, booleanAttribute } from '@angular/core';
3
- import { BlockDirective, ElemDirective } from '@rt-tools/core';
4
- import { RtSkeletonWrapperComponent } from '@rt-tools/ui-kit-v2/skeleton-wrapper';
5
-
6
- const BEM_BLOCK$1 = 'rt-detail-list';
7
- /**
8
- * Контейнер для стопки `rt-detail-row` — задаёт единый вертикальный gap между
9
- * строками «лейбл + значение». Используется в read-only details-панелях асайдов
10
- * (детали заявки, профиля) вместо самопальных `div`-обёрток.
11
- *
12
- * Контент — только `rt-detail-row` через проекцию.
13
- */
14
- class RtDetailListComponent {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtDetailListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: RtDetailListComponent, isStandalone: true, selector: "rt-detail-list", host: { classAttribute: "rt-detail-list" }, ngImport: i0, template: "<ng-container rtBlock=\"rt-detail-list\">\n <ng-content />\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-detail-list{display:flex;flex-direction:column;gap:var(--rt-space-md)}}\n"], dependencies: [{ kind: "directive", type:
17
- // standalone components / directives
18
- BlockDirective, selector: "[rtBlock]", inputs: ["rtMod"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtDetailListComponent, decorators: [{
21
- type: Component,
22
- args: [{ selector: 'rt-detail-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
23
- // standalone components / directives
24
- BlockDirective,
25
- ], host: {
26
- class: BEM_BLOCK$1,
27
- }, template: "<ng-container rtBlock=\"rt-detail-list\">\n <ng-content />\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-detail-list{display:flex;flex-direction:column;gap:var(--rt-space-md)}}\n"] }]
28
- }] });
29
-
30
- const BEM_BLOCK = 'rt-detail-row';
31
- /**
32
- * Одна read-only строка «лейбл + значение» в stacked-раскладке: приглушённый
33
- * лейбл сверху, значение снизу. Единый паттерн info-строки для всех асайдов
34
- * (раньше — пять разных реализаций).
35
- *
36
- * Значение проецируется через `<ng-content>` — допустим текст, дата через pipe
37
- * или `rt-tag`. При `[loading]="true"` значение замещается скелетоном (потребитель
38
- * не оборачивает `rt-skeleton-wrapper` вручную).
39
- */
40
- class RtDetailRowComponent {
41
- constructor() {
42
- this.label = input('', /* @ts-ignore */
43
- ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
44
- this.loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
45
- }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtDetailRowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: RtDetailRowComponent, isStandalone: true, selector: "rt-detail-row", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "rt-detail-row" }, ngImport: i0, template: "<ng-container rtBlock=\"rt-detail-row\">\n <span rtElem=\"label\" qa-dataid=\"detail-row-label\">{{ label() }}</span>\n <div rtElem=\"value\" qa-dataid=\"detail-row-value\">\n <rt-skeleton-wrapper width=\"180px\" height=\"16px\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-detail-row{display:flex;flex-direction:column;gap:var(--rt-field-gap)}.rt-detail-row__label{color:var(--rt-field-label-color);font-size:var(--rt-field-label-font-size);font-weight:var(--rt-field-label-font-weight)}.rt-detail-row__value{color:var(--rt-field-value-color);font-size:var(--rt-field-value-font-size)}}\n"], dependencies: [{ kind: "component", type:
48
- // standalone components / directives
49
- 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
50
- }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RtDetailRowComponent, decorators: [{
52
- type: Component,
53
- args: [{ selector: 'rt-detail-row', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [
54
- // standalone components / directives
55
- RtSkeletonWrapperComponent,
56
- BlockDirective,
57
- ElemDirective,
58
- ], host: {
59
- class: BEM_BLOCK,
60
- }, template: "<ng-container rtBlock=\"rt-detail-row\">\n <span rtElem=\"label\" qa-dataid=\"detail-row-label\">{{ label() }}</span>\n <div rtElem=\"value\" qa-dataid=\"detail-row-value\">\n <rt-skeleton-wrapper width=\"180px\" height=\"16px\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n </div>\n</ng-container>\n", styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-detail-row{display:flex;flex-direction:column;gap:var(--rt-field-gap)}.rt-detail-row__label{color:var(--rt-field-label-color);font-size:var(--rt-field-label-font-size);font-weight:var(--rt-field-label-font-weight)}.rt-detail-row__value{color:var(--rt-field-value-color);font-size:var(--rt-field-value-font-size)}}\n"] }]
61
- }], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }] } });
62
-
63
- /**
64
- * Generated bundle index. Do not edit.
65
- */
66
-
1
+ import * as i0 from "@angular/core";
2
+ import { ChangeDetectionStrategy, Component, ViewEncapsulation, booleanAttribute, input } from "@angular/core";
3
+ import { BlockDirective, ElemDirective } from "@rt-tools/core";
4
+ import { RtSkeletonWrapperComponent } from "@rt-tools/ui-kit-v2/skeleton-wrapper";
5
+ const BEM_BLOCK$1 = "rt-detail-list";
6
+ var RtDetailListComponent = class RtDetailListComponent {
7
+ static {
8
+ this.ɵfac = i0.ɵɵngDeclareFactory({
9
+ minVersion: "12.0.0",
10
+ version: "22.2.2",
11
+ ngImport: i0,
12
+ type: RtDetailListComponent,
13
+ deps: [],
14
+ target: i0.ɵɵFactoryTarget.Component
15
+ });
16
+ }
17
+ static {
18
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
19
+ minVersion: "14.0.0",
20
+ version: "22.2.2",
21
+ type: RtDetailListComponent,
22
+ isStandalone: true,
23
+ selector: "rt-detail-list",
24
+ host: { classAttribute: "rt-detail-list" },
25
+ ngImport: i0,
26
+ template: "<ng-container rtBlock=\"rt-detail-list\">\n <ng-content />\n</ng-container>\n",
27
+ styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-detail-list{display:flex;flex-direction:column;gap:var(--rt-space-md)}}\n"],
28
+ dependencies: [{
29
+ kind: "directive",
30
+ type: BlockDirective,
31
+ selector: "[rtBlock]",
32
+ inputs: ["rtMod"]
33
+ }],
34
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
35
+ encapsulation: i0.ViewEncapsulation.None
36
+ });
37
+ }
38
+ };
39
+ i0.ɵɵngDeclareClassMetadata({
40
+ minVersion: "12.0.0",
41
+ version: "22.2.2",
42
+ ngImport: i0,
43
+ type: RtDetailListComponent,
44
+ decorators: [{
45
+ type: Component,
46
+ args: [{
47
+ selector: "rt-detail-list",
48
+ changeDetection: ChangeDetectionStrategy.OnPush,
49
+ encapsulation: ViewEncapsulation.None,
50
+ imports: [BlockDirective],
51
+ host: { class: BEM_BLOCK$1 },
52
+ template: "<ng-container rtBlock=\"rt-detail-list\">\n <ng-content />\n</ng-container>\n",
53
+ styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-detail-list{display:flex;flex-direction:column;gap:var(--rt-space-md)}}\n"]
54
+ }]
55
+ }]
56
+ });
57
+ const BEM_BLOCK = "rt-detail-row";
58
+ var RtDetailRowComponent = class RtDetailRowComponent {
59
+ constructor() {
60
+ this.label = input("", ...ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []);
61
+ this.loading = input(false, {
62
+ ...ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {},
63
+ transform: booleanAttribute
64
+ });
65
+ }
66
+ static {
67
+ this.ɵfac = i0.ɵɵngDeclareFactory({
68
+ minVersion: "12.0.0",
69
+ version: "22.2.2",
70
+ ngImport: i0,
71
+ type: RtDetailRowComponent,
72
+ deps: [],
73
+ target: i0.ɵɵFactoryTarget.Component
74
+ });
75
+ }
76
+ static {
77
+ this.ɵcmp = i0.ɵɵngDeclareComponent({
78
+ minVersion: "17.1.0",
79
+ version: "22.2.2",
80
+ type: RtDetailRowComponent,
81
+ isStandalone: true,
82
+ selector: "rt-detail-row",
83
+ inputs: {
84
+ label: {
85
+ classPropertyName: "label",
86
+ publicName: "label",
87
+ isSignal: true,
88
+ isRequired: false,
89
+ transformFunction: null
90
+ },
91
+ loading: {
92
+ classPropertyName: "loading",
93
+ publicName: "loading",
94
+ isSignal: true,
95
+ isRequired: false,
96
+ transformFunction: null
97
+ }
98
+ },
99
+ host: { classAttribute: "rt-detail-row" },
100
+ ngImport: i0,
101
+ template: "<ng-container rtBlock=\"rt-detail-row\">\n <span rtElem=\"label\" qa-dataid=\"detail-row-label\">{{ label() }}</span>\n <div rtElem=\"value\" qa-dataid=\"detail-row-value\">\n <rt-skeleton-wrapper width=\"180px\" height=\"16px\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n </div>\n</ng-container>\n",
102
+ styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-detail-row{display:flex;flex-direction:column;gap:var(--rt-field-gap)}.rt-detail-row__label{color:var(--rt-field-label-color);font-size:var(--rt-field-label-font-size);font-weight:var(--rt-field-label-font-weight)}.rt-detail-row__value{color:var(--rt-field-value-color);font-size:var(--rt-field-value-font-size)}}\n"],
103
+ dependencies: [
104
+ {
105
+ kind: "component",
106
+ type: RtSkeletonWrapperComponent,
107
+ selector: "rt-skeleton-wrapper",
108
+ inputs: [
109
+ "width",
110
+ "height",
111
+ "shape",
112
+ "size",
113
+ "radius",
114
+ "animation",
115
+ "isLoading"
116
+ ]
117
+ },
118
+ {
119
+ kind: "directive",
120
+ type: BlockDirective,
121
+ selector: "[rtBlock]",
122
+ inputs: ["rtMod"]
123
+ },
124
+ {
125
+ kind: "directive",
126
+ type: ElemDirective,
127
+ selector: "[rtElem]",
128
+ inputs: ["rtMod"]
129
+ }
130
+ ],
131
+ changeDetection: i0.ChangeDetectionStrategy.OnPush,
132
+ encapsulation: i0.ViewEncapsulation.None
133
+ });
134
+ }
135
+ };
136
+ i0.ɵɵngDeclareClassMetadata({
137
+ minVersion: "12.0.0",
138
+ version: "22.2.2",
139
+ ngImport: i0,
140
+ type: RtDetailRowComponent,
141
+ decorators: [{
142
+ type: Component,
143
+ args: [{
144
+ selector: "rt-detail-row",
145
+ changeDetection: ChangeDetectionStrategy.OnPush,
146
+ encapsulation: ViewEncapsulation.None,
147
+ imports: [
148
+ RtSkeletonWrapperComponent,
149
+ BlockDirective,
150
+ ElemDirective
151
+ ],
152
+ host: { class: BEM_BLOCK },
153
+ template: "<ng-container rtBlock=\"rt-detail-row\">\n <span rtElem=\"label\" qa-dataid=\"detail-row-label\">{{ label() }}</span>\n <div rtElem=\"value\" qa-dataid=\"detail-row-value\">\n <rt-skeleton-wrapper width=\"180px\" height=\"16px\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n </div>\n</ng-container>\n",
154
+ styles: ["@charset \"UTF-8\";@layer rt-kit.components{.rt-detail-row{display:flex;flex-direction:column;gap:var(--rt-field-gap)}.rt-detail-row__label{color:var(--rt-field-label-color);font-size:var(--rt-field-label-font-size);font-weight:var(--rt-field-label-font-weight)}.rt-detail-row__value{color:var(--rt-field-value-color);font-size:var(--rt-field-value-font-size)}}\n"]
155
+ }]
156
+ }],
157
+ propDecorators: {
158
+ label: [{
159
+ type: i0.Input,
160
+ args: [{
161
+ isSignal: true,
162
+ alias: "label",
163
+ required: false
164
+ }]
165
+ }],
166
+ loading: [{
167
+ type: i0.Input,
168
+ args: [{
169
+ isSignal: true,
170
+ alias: "loading",
171
+ required: false
172
+ }]
173
+ }]
174
+ }
175
+ });
67
176
  export { RtDetailListComponent, RtDetailRowComponent };
68
- //# sourceMappingURL=rt-tools-ui-kit-v2-detail-list.mjs.map
177
+
178
+ //# sourceMappingURL=rt-tools-ui-kit-v2-detail-list.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rt-tools-ui-kit-v2-detail-list.mjs","sources":["../../../projects/ui-kit-v2/src/lib/components/detail-list/rt-detail-list.component.ts","../../../projects/ui-kit-v2/src/lib/components/detail-list/rt-detail-list.component.html","../../../projects/ui-kit-v2/src/lib/components/detail-list/rt-detail-row.component.ts","../../../projects/ui-kit-v2/src/lib/components/detail-list/rt-detail-row.component.html","../../../projects/ui-kit-v2/src/lib/components/detail-list/rt-tools-ui-kit-v2-detail-list.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { BlockDirective } from '@rt-tools/core';\n\nconst BEM_BLOCK: string = 'rt-detail-list';\n\n/**\n * Контейнер для стопки `rt-detail-row` — задаёт единый вертикальный gap между\n * строками «лейбл + значение». Используется в read-only details-панелях асайдов\n * (детали заявки, профиля) вместо самопальных `div`-обёрток.\n *\n * Контент — только `rt-detail-row` через проекцию.\n */\n@Component({\n selector: 'rt-detail-list',\n templateUrl: './rt-detail-list.component.html',\n styleUrl: './rt-detail-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // standalone components / directives\n BlockDirective,\n ],\n host: {\n class: BEM_BLOCK,\n },\n})\nexport class RtDetailListComponent {}\n","<ng-container rtBlock=\"rt-detail-list\">\n <ng-content />\n</ng-container>\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n InputSignal,\n InputSignalWithTransform,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { BlockDirective, ElemDirective } from '@rt-tools/core';\n\nimport { RtSkeletonWrapperComponent } from '@rt-tools/ui-kit-v2/skeleton-wrapper';\n\nconst BEM_BLOCK: string = 'rt-detail-row';\n\n/**\n * Одна read-only строка «лейбл + значение» в stacked-раскладке: приглушённый\n * лейбл сверху, значение снизу. Единый паттерн info-строки для всех асайдов\n * (раньше — пять разных реализаций).\n *\n * Значение проецируется через `<ng-content>` — допустим текст, дата через pipe\n * или `rt-tag`. При `[loading]=\"true\"` значение замещается скелетоном (потребитель\n * не оборачивает `rt-skeleton-wrapper` вручную).\n */\n@Component({\n selector: 'rt-detail-row',\n templateUrl: './rt-detail-row.component.html',\n styleUrl: './rt-detail-row.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // standalone components / directives\n RtSkeletonWrapperComponent,\n BlockDirective,\n ElemDirective,\n ],\n host: {\n class: BEM_BLOCK,\n },\n})\nexport class RtDetailRowComponent {\n public readonly label: InputSignal<string> = input<string>('');\n\n public readonly loading: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n}\n","<ng-container rtBlock=\"rt-detail-row\">\n <span rtElem=\"label\" qa-dataid=\"detail-row-label\">{{ label() }}</span>\n <div rtElem=\"value\" qa-dataid=\"detail-row-value\">\n <rt-skeleton-wrapper width=\"180px\" height=\"16px\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n </div>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["BEM_BLOCK"],"mappings":"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"}
1
+ {"version":3,"file":"rt-tools-ui-kit-v2-detail-list.mjs","names":["BEM_BLOCK"],"sources":["../../../projects/ui-kit-v2/src/lib/components/detail-list/rt-detail-list.component.ts","../../../projects/ui-kit-v2/src/lib/components/detail-list/rt-detail-list.component.html","../../../projects/ui-kit-v2/src/lib/components/detail-list/rt-detail-row.component.ts","../../../projects/ui-kit-v2/src/lib/components/detail-list/rt-detail-row.component.html"],"sourcesContent":["import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\nimport { BlockDirective } from '@rt-tools/core';\n\nconst BEM_BLOCK: string = 'rt-detail-list';\n\n/**\n * Контейнер для стопки `rt-detail-row` — задаёт единый вертикальный gap между\n * строками «лейбл + значение». Используется в read-only details-панелях асайдов\n * (детали заявки, профиля) вместо самопальных `div`-обёрток.\n *\n * Контент — только `rt-detail-row` через проекцию.\n */\n@Component({\n selector: 'rt-detail-list',\n templateUrl: './rt-detail-list.component.html',\n styleUrl: './rt-detail-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // standalone components / directives\n BlockDirective,\n ],\n host: {\n class: BEM_BLOCK,\n },\n})\nexport class RtDetailListComponent {}\n","<ng-container rtBlock=\"rt-detail-list\">\n <ng-content />\n</ng-container>\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n input,\n InputSignal,\n InputSignalWithTransform,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { BlockDirective, ElemDirective } from '@rt-tools/core';\n\nimport { RtSkeletonWrapperComponent } from '@rt-tools/ui-kit-v2/skeleton-wrapper';\n\nconst BEM_BLOCK: string = 'rt-detail-row';\n\n/**\n * Одна read-only строка «лейбл + значение» в stacked-раскладке: приглушённый\n * лейбл сверху, значение снизу. Единый паттерн info-строки для всех асайдов\n * (раньше — пять разных реализаций).\n *\n * Значение проецируется через `<ng-content>` — допустим текст, дата через pipe\n * или `rt-tag`. При `[loading]=\"true\"` значение замещается скелетоном (потребитель\n * не оборачивает `rt-skeleton-wrapper` вручную).\n */\n@Component({\n selector: 'rt-detail-row',\n templateUrl: './rt-detail-row.component.html',\n styleUrl: './rt-detail-row.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n // standalone components / directives\n RtSkeletonWrapperComponent,\n BlockDirective,\n ElemDirective,\n ],\n host: {\n class: BEM_BLOCK,\n },\n})\nexport class RtDetailRowComponent {\n public readonly label: InputSignal<string> = input<string>('');\n\n public readonly loading: InputSignalWithTransform<boolean, BooleanInput> = input<boolean, BooleanInput>(false, {\n transform: booleanAttribute,\n });\n}\n","<ng-container rtBlock=\"rt-detail-row\">\n <span rtElem=\"label\" qa-dataid=\"detail-row-label\">{{ label() }}</span>\n <div rtElem=\"value\" qa-dataid=\"detail-row-value\">\n <rt-skeleton-wrapper width=\"180px\" height=\"16px\" [isLoading]=\"loading()\">\n <ng-content />\n </rt-skeleton-wrapper>\n </div>\n</ng-container>\n"],"mappings":";;;;AAIA,MAAMA,cAAoB;AAuB1B,IAAa,wBAAb,MAAa,sBAAqB;CAArB;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAqB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAArB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAqB,cAAA;GAAA,UAAA;GAAA,MAAA,EAAA,gBAAA,iBAAA;GAAA,UAAA;GAAA,UC3BlC;GAGA,QAAA,CAAA,2HAAA;GAAA,cAAA,CAAA;IAAA,MAAA;IAAA,MDkBQ;IAAc,UAAA;IAAA,QAAA,CAAA,OAAA;GAAA,CAAA;GAAA,iBAAA,GAAA,wBAAA;GAAA,eAAA,GAAA,kBAAA;EAAA,CAAA;CAAA;;AAMT,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAqB,YAAA,CAAA;EAdjC,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAgB,iBAGT,wBAAwB;GAAM,eAChC,kBAAkB;GAAI,SAC5B,CAEL,cACH;GAAA,MACK,EACF,OAAOA,YACV;GAAA,UAAA;GAAA,QAAA,CAAA,2HAAA;EAAA,CAAA;;;AEVL,MAAM,YAAoB;AA2B1B,IAAa,uBAAb,MAAa,qBAAoB;CAhBjC,cAAA;EAiBoB,KAAA,QAA6B,MAAc,IAAG,GAAA,YAAA,CAAA,EAAA,WAAA,QAAA,CAAA,+BAAA,CAAA,CAAA;EAE9C,KAAA,UAA2D,MAA6B,OAAK;GAAA,GAAA,YAAA,EAAA,WAAA,UAAA,+BAAA,CAAA;GACzG,WAAW;EAAgB,CAAA;CAElC;CANY;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAoB,MAAA,CAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;CAAA;CAApB;EAAA,KAAA,OAAA,GAAA,qBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,MAAA;GAAoB,cAAA;GAAA,UAAA;GAAA,QAAA;IAAA,OAAA;KAAA,mBAAA;KAAA,YAAA;KAAA,UAAA;KAAA,YAAA;KAAA,mBAAA;IAAA;IAAA,SAAA;KAAA,mBAAA;KAAA,YAAA;KAAA,UAAA;KAAA,YAAA;KAAA,mBAAA;IAAA;GAAA;GAAA,MAAA,EAAA,gBAAA,gBAAA;GAAA,UAAA;GAAA,UC1CjC;GAQA,QAAA,CAAA,6WAAA;GAAA,cAAA;IAAA;KAAA,MAAA;KAAA,MD0BQ;KAA0B,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;MAAA;KAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAC1B;KAAc,UAAA;KAAA,QAAA,CAAA,OAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACd;KAAa,UAAA;KAAA,QAAA,CAAA,OAAA;IAAA;GAAA;GAAA,iBAAA,GAAA,wBAAA;GAAA,eAAA,GAAA,kBAAA;EAAA,CAAA;CAAA;;AAMR,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAoB,YAAA,CAAA;EAhBhC,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAe,iBAGR,wBAAwB;GAAM,eAChC,kBAAkB;GAAI,SAC5B;IAEL;IACA;IACA;GACH;GAAA,MACK,EACF,OAAO,UACV;GAAA,UAAA;GAAA,QAAA,CAAA,6WAAA;EAAA,CAAA"}