niuma-ui 2.0.3 → 2.0.9

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 (457) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/dist/components/_shared/index.d.ts +2 -2
  3. package/dist/components/_shared/src/overlay-utils.d.ts +44 -1
  4. package/dist/components/_shared/src/overlay-utils.js +87 -2
  5. package/dist/components/_shared/src/reka.d.ts +1 -1
  6. package/dist/components/_shared/src/reka.js +2 -2
  7. package/dist/components/alert/index.d.ts +1 -0
  8. package/dist/components/alert/src/RsAlert.css +120 -65
  9. package/dist/components/alert/src/RsAlert.d.ts +24 -5
  10. package/dist/components/alert/src/RsAlert.impl.js +108 -36
  11. package/dist/components/alert/src/RsAlert.js +1 -1
  12. package/dist/components/alert/src/alert-utils.d.ts +37 -0
  13. package/dist/components/alert/src/alert-utils.js +71 -0
  14. package/dist/components/anchor/index.d.ts +1 -1
  15. package/dist/components/anchor/src/RsAnchor.css +63 -32
  16. package/dist/components/anchor/src/RsAnchor.d.ts +29 -2
  17. package/dist/components/anchor/src/RsAnchor.impl.js +199 -81
  18. package/dist/components/anchor/src/RsAnchor.js +1 -1
  19. package/dist/components/anchor/src/anchor-utils.d.ts +36 -4
  20. package/dist/components/anchor/src/anchor-utils.js +81 -19
  21. package/dist/components/auto-complete/index.d.ts +2 -0
  22. package/dist/components/auto-complete/src/RsAutoComplete.css +122 -0
  23. package/dist/components/auto-complete/src/RsAutoComplete.d.ts +47 -7
  24. package/dist/components/auto-complete/src/RsAutoComplete.impl.js +180 -72
  25. package/dist/components/auto-complete/src/RsAutoComplete.js +4 -1
  26. package/dist/components/auto-complete/src/auto-complete-utils.d.ts +7 -0
  27. package/dist/components/auto-complete/src/auto-complete-utils.js +17 -0
  28. package/dist/components/avatar/index.d.ts +1 -0
  29. package/dist/components/avatar/src/RsAvatar.css +36 -19
  30. package/dist/components/avatar/src/RsAvatar.d.ts +9 -3
  31. package/dist/components/avatar/src/RsAvatar.impl.js +57 -33
  32. package/dist/components/avatar/src/RsAvatar.js +2 -1
  33. package/dist/components/avatar/src/avatar-utils.d.ts +16 -7
  34. package/dist/components/avatar/src/avatar-utils.js +41 -3
  35. package/dist/components/breadcrumb/index.d.ts +1 -1
  36. package/dist/components/breadcrumb/src/RsBreadcrumb.css +50 -17
  37. package/dist/components/breadcrumb/src/RsBreadcrumb.d.ts +45 -6
  38. package/dist/components/breadcrumb/src/RsBreadcrumb.impl.js +111 -12
  39. package/dist/components/breadcrumb/src/RsBreadcrumb.js +2 -1
  40. package/dist/components/breadcrumb/src/breadcrumb-utils.d.ts +37 -5
  41. package/dist/components/breadcrumb/src/breadcrumb-utils.js +70 -9
  42. package/dist/components/button/src/RsButton.impl.js +1 -1
  43. package/dist/components/calendar-grid/index.d.ts +2 -0
  44. package/dist/components/calendar-grid/src/RsCalendarGrid.css +105 -45
  45. package/dist/components/calendar-grid/src/RsCalendarGrid.d.ts +62 -2
  46. package/dist/components/calendar-grid/src/RsCalendarGrid.impl.js +265 -94
  47. package/dist/components/calendar-grid/src/RsCalendarGrid.js +1 -1
  48. package/dist/components/calendar-grid/src/calendar-grid-utils.d.ts +72 -0
  49. package/dist/components/calendar-grid/src/calendar-grid-utils.js +122 -0
  50. package/dist/components/card/index.d.ts +1 -1
  51. package/dist/components/card/src/RsCard.css +108 -98
  52. package/dist/components/card/src/RsCard.d.ts +4 -13
  53. package/dist/components/card/src/RsCard.impl.js +29 -25
  54. package/dist/components/card/src/RsCard.js +2 -1
  55. package/dist/components/card/src/card-utils.d.ts +25 -0
  56. package/dist/components/card/src/card-utils.js +10 -0
  57. package/dist/components/cascader/index.d.ts +1 -0
  58. package/dist/components/cascader/src/RsCascader.css +175 -30
  59. package/dist/components/cascader/src/RsCascader.d.ts +15 -3
  60. package/dist/components/cascader/src/RsCascader.impl.js +277 -48
  61. package/dist/components/cascader/src/RsCascader.js +1 -1
  62. package/dist/components/cascader/src/cascader-utils.d.ts +2 -0
  63. package/dist/components/cascader/src/cascader-utils.js +8 -1
  64. package/dist/components/checkbox/index.d.ts +1 -0
  65. package/dist/components/checkbox/src/RsCheckbox.css +46 -23
  66. package/dist/components/checkbox/src/RsCheckbox.d.ts +11 -1
  67. package/dist/components/checkbox/src/RsCheckbox.impl.js +37 -9
  68. package/dist/components/checkbox/src/RsCheckbox.js +2 -1
  69. package/dist/components/checkbox/src/checkbox-utils.d.ts +4 -0
  70. package/dist/components/checkbox/src/checkbox-utils.js +12 -0
  71. package/dist/components/code-block/index.d.ts +1 -0
  72. package/dist/components/code-block/src/RsCodeBlock.css +93 -52
  73. package/dist/components/code-block/src/RsCodeBlock.d.ts +36 -9
  74. package/dist/components/code-block/src/RsCodeBlock.impl.js +203 -84
  75. package/dist/components/code-block/src/RsCodeBlock.js +1 -1
  76. package/dist/components/code-block/src/code-block-highlight.d.ts +4 -0
  77. package/dist/components/code-block/src/code-block-highlight.js +34 -0
  78. package/dist/components/code-block/src/code-block-utils.d.ts +23 -0
  79. package/dist/components/code-block/src/code-block-utils.js +71 -0
  80. package/dist/components/code-editor/index.d.ts +1 -1
  81. package/dist/components/code-editor/src/RsCodeEditor.css +118 -92
  82. package/dist/components/code-editor/src/RsCodeEditor.d.ts +14 -3
  83. package/dist/components/code-editor/src/RsCodeEditor.impl.js +261 -94
  84. package/dist/components/code-editor/src/RsCodeEditor.js +1 -1
  85. package/dist/components/code-editor/src/code-editor-utils.d.ts +15 -0
  86. package/dist/components/code-editor/src/code-editor-utils.js +36 -1
  87. package/dist/components/code-editor/src/code-mirror-completion.d.ts +1 -1
  88. package/dist/components/code-editor/src/code-mirror-completion.js +8 -5
  89. package/dist/components/code-editor/src/code-mirror-diagnostics.d.ts +2 -3
  90. package/dist/components/code-editor/src/code-mirror-diagnostics.js +3 -4
  91. package/dist/components/code-editor/src/code-mirror-ghost.d.ts +1 -1
  92. package/dist/components/code-editor/src/code-mirror-ghost.js +12 -3
  93. package/dist/components/code-editor/src/code-mirror-inline-edit.js +8 -3
  94. package/dist/components/code-editor/src/code-mirror-intel.d.ts +2 -2
  95. package/dist/components/code-editor/src/code-mirror-intel.js +50 -39
  96. package/dist/components/code-editor/src/code-mirror-lang.js +4 -0
  97. package/dist/components/code-editor/src/code-mirror-session.d.ts +13 -0
  98. package/dist/components/code-editor/src/code-mirror-session.js +30 -0
  99. package/dist/components/container/index.d.ts +1 -1
  100. package/dist/components/container/src/RsContainer.css +11 -11
  101. package/dist/components/container/src/RsContainer.d.ts +2 -12
  102. package/dist/components/container/src/RsContainer.impl.js +10 -57
  103. package/dist/components/container/src/RsContainer.js +1 -1
  104. package/dist/components/container/src/container-utils.d.ts +23 -0
  105. package/dist/components/container/src/container-utils.js +51 -0
  106. package/dist/components/context-menu/index.d.ts +1 -1
  107. package/dist/components/context-menu/src/RsContextMenu.css +115 -89
  108. package/dist/components/context-menu/src/RsContextMenu.d.ts +32 -11
  109. package/dist/components/context-menu/src/RsContextMenu.impl.js +795 -48
  110. package/dist/components/context-menu/src/RsContextMenuItems.d.ts +25 -1
  111. package/dist/components/context-menu/src/RsContextMenuItems.impl.js +110 -61
  112. package/dist/components/context-menu/src/context-menu-utils.d.ts +89 -3
  113. package/dist/components/context-menu/src/context-menu-utils.js +168 -3
  114. package/dist/components/date-picker/index.d.ts +4 -2
  115. package/dist/components/date-picker/src/RsDatePicker.css +42 -22
  116. package/dist/components/date-picker/src/RsDatePicker.d.ts +44 -20
  117. package/dist/components/date-picker/src/RsDatePicker.impl.js +484 -222
  118. package/dist/components/date-picker/src/RsDatePicker.js +1 -3
  119. package/dist/components/date-picker/src/RsDateTimePicker.d.ts +33 -6
  120. package/dist/components/date-picker/src/RsDateTimePicker.impl.js +47 -6
  121. package/dist/components/date-picker/src/date-picker-utils.d.ts +19 -0
  122. package/dist/components/date-picker/src/date-picker-utils.js +33 -10
  123. package/dist/components/descriptions/index.d.ts +1 -1
  124. package/dist/components/descriptions/src/RsDescriptions.css +38 -11
  125. package/dist/components/descriptions/src/RsDescriptions.d.ts +20 -4
  126. package/dist/components/descriptions/src/RsDescriptions.impl.js +89 -19
  127. package/dist/components/descriptions/src/RsDescriptionsItem.impl.js +13 -6
  128. package/dist/components/descriptions/src/descriptions-utils.d.ts +19 -0
  129. package/dist/components/descriptions/src/descriptions-utils.js +39 -1
  130. package/dist/components/dialog/index.d.ts +1 -1
  131. package/dist/components/dialog/src/RsConfirmDialog.css +47 -21
  132. package/dist/components/dialog/src/RsConfirmDialog.d.ts +19 -7
  133. package/dist/components/dialog/src/RsConfirmDialog.impl.js +349 -119
  134. package/dist/components/dialog/src/RsConfirmDialog.js +2 -1
  135. package/dist/components/dialog/src/RsDialog.css +102 -109
  136. package/dist/components/dialog/src/RsDialog.d.ts +34 -24
  137. package/dist/components/dialog/src/RsDialog.impl.js +410 -177
  138. package/dist/components/dialog/src/RsDialog.js +2 -1
  139. package/dist/components/dialog/src/dialog-utils.d.ts +40 -1
  140. package/dist/components/dialog/src/dialog-utils.js +152 -1
  141. package/dist/components/dialog/src/dialog-window.js +29 -8
  142. package/dist/components/drawer/index.d.ts +1 -1
  143. package/dist/components/drawer/src/RsDrawer.css +61 -29
  144. package/dist/components/drawer/src/RsDrawer.d.ts +37 -21
  145. package/dist/components/drawer/src/RsDrawer.impl.js +441 -223
  146. package/dist/components/drawer/src/drawer-utils.d.ts +35 -0
  147. package/dist/components/drawer/src/drawer-utils.js +131 -1
  148. package/dist/components/dropdown/index.d.ts +1 -1
  149. package/dist/components/dropdown/src/RsDropdown.css +140 -61
  150. package/dist/components/dropdown/src/RsDropdown.d.ts +39 -6
  151. package/dist/components/dropdown/src/RsDropdown.impl.js +693 -63
  152. package/dist/components/dropdown/src/RsDropdownItemView.impl.js +17 -7
  153. package/dist/components/dropdown/src/RsDropdownItems.d.ts +32 -3
  154. package/dist/components/dropdown/src/RsDropdownItems.impl.js +171 -59
  155. package/dist/components/dropdown/src/dropdown-utils.d.ts +50 -0
  156. package/dist/components/dropdown/src/dropdown-utils.js +103 -3
  157. package/dist/components/dynamic-tags/index.d.ts +1 -1
  158. package/dist/components/dynamic-tags/src/RsDynamicTags.css +115 -38
  159. package/dist/components/dynamic-tags/src/RsDynamicTags.d.ts +58 -17
  160. package/dist/components/dynamic-tags/src/RsDynamicTags.impl.js +269 -106
  161. package/dist/components/dynamic-tags/src/RsDynamicTags.js +1 -1
  162. package/dist/components/dynamic-tags/src/dynamic-tags-utils.d.ts +19 -0
  163. package/dist/components/dynamic-tags/src/dynamic-tags-utils.js +60 -0
  164. package/dist/components/empty/index.d.ts +1 -0
  165. package/dist/components/empty/src/RsEmpty.css +105 -23
  166. package/dist/components/empty/src/RsEmpty.d.ts +27 -4
  167. package/dist/components/empty/src/RsEmpty.impl.js +154 -11
  168. package/dist/components/empty/src/RsEmpty.js +2 -1
  169. package/dist/components/empty/src/empty-utils.d.ts +28 -0
  170. package/dist/components/empty/src/empty-utils.js +55 -0
  171. package/dist/components/fieldset/src/RsFieldset.css +71 -41
  172. package/dist/components/fieldset/src/RsFieldset.d.ts +21 -2
  173. package/dist/components/fieldset/src/RsFieldset.impl.js +93 -26
  174. package/dist/components/fieldset/src/RsFieldset.js +1 -1
  175. package/dist/components/fieldset/src/fieldset-utils.d.ts +4 -0
  176. package/dist/components/fieldset/src/fieldset-utils.js +9 -1
  177. package/dist/components/form/index.d.ts +1 -0
  178. package/dist/components/form/src/RsForm.css +15 -12
  179. package/dist/components/form/src/RsForm.d.ts +21 -23
  180. package/dist/components/form/src/RsForm.impl.js +33 -20
  181. package/dist/components/form/src/RsForm.js +1 -1
  182. package/dist/components/form/src/form-utils.d.ts +7 -0
  183. package/dist/components/form/src/form-utils.js +28 -1
  184. package/dist/components/input/index.d.ts +1 -1
  185. package/dist/components/input/src/RsInput.css +78 -260
  186. package/dist/components/input/src/RsInput.d.ts +5 -3
  187. package/dist/components/input/src/RsInput.impl.js +8 -16
  188. package/dist/components/input/src/RsInput.js +1 -1
  189. package/dist/components/input/src/input-utils.d.ts +11 -0
  190. package/dist/components/input/src/input-utils.js +22 -0
  191. package/dist/components/input-number/index.d.ts +1 -0
  192. package/dist/components/input-number/src/RsInputNumber.css +31 -31
  193. package/dist/components/input-number/src/RsInputNumber.d.ts +16 -14
  194. package/dist/components/input-number/src/RsInputNumber.impl.js +17 -4
  195. package/dist/components/input-number/src/RsInputNumber.js +1 -1
  196. package/dist/components/label/src/RsLabel.css +30 -11
  197. package/dist/components/label/src/RsLabel.d.ts +18 -1
  198. package/dist/components/label/src/RsLabel.impl.js +63 -10
  199. package/dist/components/label/src/RsLabel.js +1 -1
  200. package/dist/components/label/src/label-utils.d.ts +6 -0
  201. package/dist/components/label/src/label-utils.js +16 -0
  202. package/dist/components/link/src/RsLink.d.ts +2 -2
  203. package/dist/components/loading/index.d.ts +1 -0
  204. package/dist/components/loading/src/RsLoading.css +13 -97
  205. package/dist/components/loading/src/RsLoading.d.ts +53 -3
  206. package/dist/components/loading/src/RsLoading.impl.js +216 -33
  207. package/dist/components/loading/src/RsLoading.js +2 -1
  208. package/dist/components/loading/src/loading-status.css +210 -0
  209. package/dist/components/loading/src/loading-status.d.ts +34 -0
  210. package/dist/components/loading/src/loading-status.impl.js +84 -0
  211. package/dist/components/loading/src/loading-status.js +8 -0
  212. package/dist/components/loading/src/loading-utils.d.ts +51 -4
  213. package/dist/components/loading/src/loading-utils.js +122 -0
  214. package/dist/components/loading-bar/index.d.ts +1 -0
  215. package/dist/components/loading-bar/src/RsLoadingBar.css +72 -8
  216. package/dist/components/loading-bar/src/RsLoadingBar.d.ts +55 -11
  217. package/dist/components/loading-bar/src/RsLoadingBar.impl.js +298 -57
  218. package/dist/components/loading-bar/src/RsLoadingBar.js +1 -1
  219. package/dist/components/loading-bar/src/loading-bar-utils.d.ts +69 -0
  220. package/dist/components/loading-bar/src/loading-bar-utils.js +97 -0
  221. package/dist/components/log/src/RsLog.css +52 -144
  222. package/dist/components/log/src/RsLog.d.ts +12 -11
  223. package/dist/components/log/src/RsLog.impl.js +181 -148
  224. package/dist/components/log/src/RsLog.js +1 -1
  225. package/dist/components/log/src/RsLogRow.css +152 -0
  226. package/dist/components/log/src/RsLogRow.d.ts +35 -0
  227. package/dist/components/log/src/RsLogRow.impl.js +91 -0
  228. package/dist/components/log/src/RsLogRow.js +8 -0
  229. package/dist/components/log/src/log-utils.d.ts +8 -0
  230. package/dist/components/log/src/log-utils.js +71 -10
  231. package/dist/components/markdown/index.d.ts +1 -1
  232. package/dist/components/markdown/src/RsMarkdown.css +75 -32
  233. package/dist/components/markdown/src/RsMarkdown.d.ts +6 -2
  234. package/dist/components/markdown/src/RsMarkdown.impl.js +185 -17
  235. package/dist/components/markdown/src/markdown-utils.d.ts +26 -0
  236. package/dist/components/markdown/src/markdown-utils.js +114 -12
  237. package/dist/components/mentions/index.d.ts +2 -1
  238. package/dist/components/mentions/src/RsMentions.css +119 -3
  239. package/dist/components/mentions/src/RsMentions.d.ts +57 -5
  240. package/dist/components/mentions/src/RsMentions.impl.js +298 -79
  241. package/dist/components/mentions/src/RsMentions.js +1 -3
  242. package/dist/components/mentions/src/mentions-utils.d.ts +5 -1
  243. package/dist/components/mentions/src/mentions-utils.js +28 -9
  244. package/dist/components/menu/index.d.ts +1 -1
  245. package/dist/components/menu/src/RsMenu.css +70 -29
  246. package/dist/components/menu/src/RsMenu.d.ts +58 -4
  247. package/dist/components/menu/src/RsMenu.impl.js +93 -46
  248. package/dist/components/menu/src/RsMenuItems.d.ts +22 -5
  249. package/dist/components/menu/src/RsMenuItems.impl.js +506 -154
  250. package/dist/components/menu/src/menu-utils.d.ts +56 -0
  251. package/dist/components/menu/src/menu-utils.js +139 -6
  252. package/dist/components/monaco-editor/index.d.ts +1 -1
  253. package/dist/components/monaco-editor/src/RsMonacoEditor.css +28 -16
  254. package/dist/components/monaco-editor/src/RsMonacoEditor.d.ts +39 -41
  255. package/dist/components/monaco-editor/src/RsMonacoEditor.impl.js +212 -133
  256. package/dist/components/monaco-editor/src/RsMonacoEditor.js +1 -1
  257. package/dist/components/monaco-editor/src/monaco-editor-utils.d.ts +126 -0
  258. package/dist/components/monaco-editor/src/monaco-editor-utils.js +302 -0
  259. package/dist/components/pagination/index.d.ts +2 -2
  260. package/dist/components/pagination/src/RsPagination.css +93 -46
  261. package/dist/components/pagination/src/RsPagination.d.ts +68 -8
  262. package/dist/components/pagination/src/RsPagination.impl.js +229 -86
  263. package/dist/components/pagination/src/RsPagination.js +1 -1
  264. package/dist/components/pagination/src/pagination-utils.d.ts +59 -0
  265. package/dist/components/pagination/src/pagination-utils.js +105 -1
  266. package/dist/components/popover/index.d.ts +1 -0
  267. package/dist/components/popover/src/RsPopover.css +124 -14
  268. package/dist/components/popover/src/RsPopover.d.ts +38 -7
  269. package/dist/components/popover/src/RsPopover.impl.js +546 -35
  270. package/dist/components/popover/src/RsPopover.js +2 -1
  271. package/dist/components/popover/src/popover-utils.d.ts +24 -2
  272. package/dist/components/popover/src/popover-utils.js +55 -0
  273. package/dist/components/radio/index.d.ts +1 -1
  274. package/dist/components/radio/src/RsRadio.css +7 -6
  275. package/dist/components/radio/src/RsRadio.d.ts +8 -5
  276. package/dist/components/radio/src/RsRadio.impl.js +34 -24
  277. package/dist/components/radio/src/RsRadio.js +2 -1
  278. package/dist/components/radio/src/RsRadioItem.css +61 -44
  279. package/dist/components/radio/src/RsRadioItem.d.ts +2 -2
  280. package/dist/components/radio/src/RsRadioItem.impl.js +53 -20
  281. package/dist/components/radio/src/RsRadioItem.js +2 -1
  282. package/dist/components/radio/src/radio-utils.d.ts +12 -1
  283. package/dist/components/radio/src/radio-utils.js +15 -1
  284. package/dist/components/scrollbar/src/RsScrollbar.css +71 -24
  285. package/dist/components/scrollbar/src/RsScrollbar.d.ts +9 -5
  286. package/dist/components/scrollbar/src/RsScrollbar.impl.js +372 -47
  287. package/dist/components/scrollbar/src/RsScrollbar.js +2 -1
  288. package/dist/components/scrollbar/src/scrollbar-utils.d.ts +34 -2
  289. package/dist/components/scrollbar/src/scrollbar-utils.js +64 -1
  290. package/dist/components/select/index.d.ts +1 -0
  291. package/dist/components/select/src/RsSelect.css +54 -42
  292. package/dist/components/select/src/RsSelect.d.ts +19 -2
  293. package/dist/components/select/src/RsSelect.impl.js +727 -312
  294. package/dist/components/select/src/RsSelect.js +1 -1
  295. package/dist/components/select/src/select-utils.d.ts +4 -2
  296. package/dist/components/select/src/select-utils.js +8 -3
  297. package/dist/components/select/src/use-rs-select.d.ts +1 -0
  298. package/dist/components/select/src/use-rs-select.js +23 -17
  299. package/dist/components/sidebar/index.d.ts +1 -0
  300. package/dist/components/sidebar/src/RsSidebar.css +91 -33
  301. package/dist/components/sidebar/src/RsSidebar.d.ts +17 -9
  302. package/dist/components/sidebar/src/RsSidebar.impl.js +124 -22
  303. package/dist/components/sidebar/src/RsSidebar.js +1 -1
  304. package/dist/components/sidebar/src/RsSidebarGroup.css +23 -6
  305. package/dist/components/sidebar/src/RsSidebarGroup.d.ts +6 -2
  306. package/dist/components/sidebar/src/RsSidebarGroup.impl.js +17 -4
  307. package/dist/components/sidebar/src/RsSidebarGroup.js +1 -1
  308. package/dist/components/sidebar/src/RsSidebarItem.css +50 -20
  309. package/dist/components/sidebar/src/RsSidebarItem.d.ts +21 -3
  310. package/dist/components/sidebar/src/RsSidebarItem.impl.js +71 -20
  311. package/dist/components/sidebar/src/RsSidebarItem.js +1 -1
  312. package/dist/components/sidebar/src/sidebar-utils.d.ts +47 -0
  313. package/dist/components/sidebar/src/sidebar-utils.js +72 -0
  314. package/dist/components/split-pane/index.d.ts +2 -2
  315. package/dist/components/split-pane/src/RsSplitPane.css +41 -30
  316. package/dist/components/split-pane/src/RsSplitPane.d.ts +6 -2
  317. package/dist/components/split-pane/src/RsSplitPane.impl.js +153 -45
  318. package/dist/components/split-pane/src/split-pane-utils.d.ts +23 -0
  319. package/dist/components/split-pane/src/split-pane-utils.js +18 -1
  320. package/dist/components/stat-card/index.d.ts +1 -0
  321. package/dist/components/stat-card/src/RsStatCard.css +129 -25
  322. package/dist/components/stat-card/src/RsStatCard.d.ts +40 -4
  323. package/dist/components/stat-card/src/RsStatCard.impl.js +106 -12
  324. package/dist/components/stat-card/src/RsStatCard.js +1 -1
  325. package/dist/components/stat-card/src/stat-card-utils.d.ts +39 -0
  326. package/dist/components/stat-card/src/stat-card-utils.js +113 -0
  327. package/dist/components/steps/index.d.ts +1 -1
  328. package/dist/components/steps/src/RsSteps.css +158 -37
  329. package/dist/components/steps/src/RsSteps.d.ts +69 -5
  330. package/dist/components/steps/src/RsSteps.impl.js +168 -28
  331. package/dist/components/steps/src/RsSteps.js +1 -1
  332. package/dist/components/steps/src/steps-utils.d.ts +51 -1
  333. package/dist/components/steps/src/steps-utils.js +67 -1
  334. package/dist/components/switch/index.d.ts +2 -1
  335. package/dist/components/switch/src/RsSwitch.css +36 -18
  336. package/dist/components/switch/src/RsSwitch.d.ts +18 -5
  337. package/dist/components/switch/src/RsSwitch.impl.js +61 -29
  338. package/dist/components/switch/src/RsSwitch.js +2 -1
  339. package/dist/components/switch/src/switch-utils.d.ts +4 -0
  340. package/dist/components/switch/src/switch-utils.js +9 -0
  341. package/dist/components/table/src/RsTable.impl.js +4 -2
  342. package/dist/components/table/src/composables/useRsTableContextMenu.d.ts +16 -0
  343. package/dist/components/table/src/composables/useRsTableContextMenu.js +1 -1
  344. package/dist/components/table/src/composables/useRsTableEngine.js +6 -2
  345. package/dist/components/table/src/composables/useRsTableScrollLayout.js +2 -0
  346. package/dist/components/table/src/composables/useRsTableShell.d.ts +16 -0
  347. package/dist/components/table/src/rs-table-props.d.ts +1 -1
  348. package/dist/components/table/src/rs-table-props.js +0 -1
  349. package/dist/components/table/src/table-body/RsTableBody.impl.js +1 -0
  350. package/dist/components/table/src/table-body/RsTableCellEditor.impl.js +10 -2
  351. package/dist/components/table/src/table-body/RsTableColGroup.impl.js +1 -0
  352. package/dist/components/table/src/table-footer/RsTableSummaryRow.impl.js +1 -0
  353. package/dist/components/table/src/table-header/RsTableHeader.impl.js +1 -0
  354. package/dist/components/table/src/utils/table-utils.d.ts +10 -6
  355. package/dist/components/table/src/utils/table-utils.js +27 -25
  356. package/dist/components/table/style/rs-table.css +34 -20
  357. package/dist/components/tabs/index.d.ts +2 -2
  358. package/dist/components/tabs/src/RsTabs.css +225 -101
  359. package/dist/components/tabs/src/RsTabs.d.ts +37 -8
  360. package/dist/components/tabs/src/RsTabs.impl.js +400 -270
  361. package/dist/components/tabs/src/tabs-utils.d.ts +41 -2
  362. package/dist/components/tabs/src/tabs-utils.js +55 -1
  363. package/dist/components/terminal/index.d.ts +1 -1
  364. package/dist/components/terminal/src/RsTerminal.css +60 -37
  365. package/dist/components/terminal/src/RsTerminal.d.ts +36 -4
  366. package/dist/components/terminal/src/RsTerminal.impl.js +288 -68
  367. package/dist/components/terminal/src/RsTerminal.js +1 -1
  368. package/dist/components/terminal/src/terminal-utils.d.ts +42 -4
  369. package/dist/components/terminal/src/terminal-utils.js +113 -10
  370. package/dist/components/textarea/src/RsTextarea.css +23 -23
  371. package/dist/components/textarea/src/RsTextarea.d.ts +7 -13
  372. package/dist/components/textarea/src/RsTextarea.impl.js +37 -46
  373. package/dist/components/textarea/src/RsTextarea.js +1 -1
  374. package/dist/components/textarea/src/textarea-utils.d.ts +27 -0
  375. package/dist/components/textarea/src/textarea-utils.js +61 -0
  376. package/dist/components/time-picker/index.d.ts +3 -2
  377. package/dist/components/time-picker/src/RsTimePicker.css +41 -24
  378. package/dist/components/time-picker/src/RsTimePicker.d.ts +52 -7
  379. package/dist/components/time-picker/src/RsTimePicker.impl.js +520 -156
  380. package/dist/components/time-picker/src/RsTimePicker.js +1 -3
  381. package/dist/components/time-picker/src/RsTimePickerColumns.css +26 -18
  382. package/dist/components/time-picker/src/RsTimePickerColumns.d.ts +3 -1
  383. package/dist/components/time-picker/src/RsTimePickerColumns.impl.js +62 -9
  384. package/dist/components/time-picker/src/RsTimePickerColumns.js +1 -1
  385. package/dist/components/time-picker/src/time-picker-utils.d.ts +38 -0
  386. package/dist/components/time-picker/src/time-picker-utils.js +97 -5
  387. package/dist/components/toaster/src/RsToaster.css +156 -203
  388. package/dist/components/toaster/src/RsToaster.d.ts +33 -3
  389. package/dist/components/toaster/src/RsToaster.impl.js +309 -34
  390. package/dist/components/toaster/src/toast-store.d.ts +95 -0
  391. package/dist/components/toaster/src/toast-store.js +177 -0
  392. package/dist/components/toaster/src/toast-utils.d.ts +60 -0
  393. package/dist/components/toaster/src/toast-utils.js +86 -0
  394. package/dist/components/toolbar/index.d.ts +1 -1
  395. package/dist/components/toolbar/src/RsToolbar.css +206 -32
  396. package/dist/components/toolbar/src/RsToolbar.d.ts +41 -16
  397. package/dist/components/toolbar/src/RsToolbar.impl.js +146 -18
  398. package/dist/components/toolbar/src/RsToolbar.js +2 -1
  399. package/dist/components/toolbar/src/toolbar-utils.d.ts +20 -0
  400. package/dist/components/toolbar/src/toolbar-utils.js +105 -0
  401. package/dist/components/tooltip/index.d.ts +1 -0
  402. package/dist/components/tooltip/src/RsTooltip.css +104 -26
  403. package/dist/components/tooltip/src/RsTooltip.d.ts +39 -17
  404. package/dist/components/tooltip/src/RsTooltip.impl.js +420 -51
  405. package/dist/components/tooltip/src/RsTooltip.js +2 -1
  406. package/dist/components/tooltip/src/RsTooltipProvider.d.ts +4 -4
  407. package/dist/components/tooltip/src/RsTooltipProvider.impl.js +51 -14
  408. package/dist/components/tooltip/src/tooltip-utils.d.ts +30 -0
  409. package/dist/components/tooltip/src/tooltip-utils.js +23 -0
  410. package/dist/components/tree/index.d.ts +2 -2
  411. package/dist/components/tree/src/RsTree.css +84 -75
  412. package/dist/components/tree/src/RsTree.d.ts +23 -23
  413. package/dist/components/tree/src/RsTree.impl.js +292 -66
  414. package/dist/components/tree/src/RsTree.js +1 -1
  415. package/dist/components/tree/src/tree-utils.d.ts +22 -0
  416. package/dist/components/tree/src/tree-utils.js +18 -4
  417. package/dist/components/tree-select/index.d.ts +2 -0
  418. package/dist/components/tree-select/src/RsTreeSelect.css +100 -25
  419. package/dist/components/tree-select/src/RsTreeSelect.d.ts +91 -7
  420. package/dist/components/tree-select/src/RsTreeSelect.impl.js +464 -79
  421. package/dist/components/tree-select/src/RsTreeSelect.js +1 -1
  422. package/dist/components/tree-select/src/tree-select-utils.d.ts +20 -0
  423. package/dist/components/tree-select/src/tree-select-utils.js +60 -0
  424. package/dist/components/upload/index.d.ts +2 -1
  425. package/dist/components/upload/src/RsUpload.css +223 -75
  426. package/dist/components/upload/src/RsUpload.d.ts +77 -1
  427. package/dist/components/upload/src/RsUpload.impl.js +404 -90
  428. package/dist/components/upload/src/RsUpload.js +1 -1
  429. package/dist/components/upload/src/upload-utils.d.ts +21 -2
  430. package/dist/components/upload/src/upload-utils.js +139 -9
  431. package/dist/components/virtual-list/index.d.ts +1 -1
  432. package/dist/components/virtual-list/src/RsVirtualList.css +64 -9
  433. package/dist/components/virtual-list/src/RsVirtualList.d.ts +31 -5
  434. package/dist/components/virtual-list/src/RsVirtualList.impl.js +425 -76
  435. package/dist/components/virtual-list/src/RsVirtualList.js +1 -1
  436. package/dist/components/virtual-list/src/virtual-list-utils.d.ts +64 -1
  437. package/dist/components/virtual-list/src/virtual-list-utils.js +215 -1
  438. package/dist/composables/useRsLoadingBar.d.ts +2 -5
  439. package/dist/composables/useRsLoadingBar.js +21 -5
  440. package/dist/composables/useRsTabsNav.d.ts +3 -1
  441. package/dist/composables/useRsTabsNav.js +96 -28
  442. package/dist/composables/useRsToast.d.ts +11 -13
  443. package/dist/composables/useRsToast.js +66 -17
  444. package/dist/index.d.ts +51 -32
  445. package/dist/index.js +20 -0
  446. package/dist/locale/apply.js +6 -1
  447. package/dist/locale/messages.js +174 -4
  448. package/dist/styles.css +1007 -980
  449. package/dist/theme/brand.example.css +3 -2
  450. package/dist/vite-plugins/niuma-ui-host.js +1 -1
  451. package/package.json +2 -3
  452. package/dist/components/breadcrumb/src/RsBreadcrumbItems.d.ts +0 -8
  453. package/dist/components/breadcrumb/src/RsBreadcrumbItems.impl.js +0 -40
  454. package/dist/components/breadcrumb/src/RsBreadcrumbItems.js +0 -5
  455. package/dist/components/date-picker/src/RsDatePicker-1.css +0 -157
  456. package/dist/components/mentions/src/RsMentions-1.css +0 -29
  457. package/dist/components/time-picker/src/RsTimePicker-1.css +0 -98
@@ -5,75 +5,30 @@ import RsInput_default from "../../input/src/RsInput.js";
5
5
  import RsEmpty_default from "../../empty/src/RsEmpty.js";
6
6
  import { copyTextToClipboard } from "../../../utils/rs-clipboard.js";
7
7
  import RsVirtualList_default from "../../virtual-list/src/RsVirtualList.js";
8
- import { RS_LOG_FILTER_LEVELS, asLogLineInputs, clampLogCount, countDroppedLines, filterLogLines, joinLogLines, normalizeLogLines, resolveLogCopyText, resolveLogLive, splitLogHighlight, splitLogText, toLogLineInput } from "./log-utils.js";
9
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useModel, useSlots, watch, withCtx } from "vue";
8
+ import { RS_LOG_FILTER_LEVELS, RS_LOG_LEVELS, asLogLineInputs, clampLogCount, countDroppedLines, filterLogLines, normalizeLogLines, resolveLogCopyText, resolveLogLive, splitLogText, toLogLineInput } from "./log-utils.js";
9
+ import RsLogRow_default from "./RsLogRow.js";
10
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onUnmounted, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useId, useModel, useSlots, watch, withCtx } from "vue";
10
11
  //#region src/components/log/src/RsLog.vue?vue&type=script&setup=true&lang.ts
11
- var _hoisted_1 = ["dir"];
12
+ var _hoisted_1 = ["id"];
12
13
  var _hoisted_2 = {
13
14
  key: 0,
14
15
  class: "rs-log__chrome"
15
16
  };
16
- var _hoisted_3 = {
17
- key: 1,
17
+ var _hoisted_3 = ["id"];
18
+ var _hoisted_4 = {
19
+ key: 2,
18
20
  class: "rs-log__filters"
19
21
  };
20
- var _hoisted_4 = { class: "rs-log__sr-only" };
21
- var _hoisted_5 = ["aria-pressed", "onClick"];
22
- var _hoisted_6 = ["aria-live"];
23
- var _hoisted_7 = ["aria-label", "aria-busy"];
22
+ var _hoisted_5 = { class: "rs-log__sr-only" };
23
+ var _hoisted_6 = ["aria-pressed", "onClick"];
24
+ var _hoisted_7 = ["aria-live"];
24
25
  var _hoisted_8 = [
26
+ "dir",
25
27
  "aria-label",
26
- "data-log-index",
27
- "onClick"
28
- ];
29
- var _hoisted_9 = {
30
- key: 0,
31
- class: "rs-log__no"
32
- };
33
- var _hoisted_10 = {
34
- key: 1,
35
- class: "rs-log__time"
36
- };
37
- var _hoisted_11 = {
38
- key: 2,
39
- class: "rs-log__level"
40
- };
41
- var _hoisted_12 = {
42
- key: 3,
43
- class: "rs-log__sr-only"
44
- };
45
- var _hoisted_13 = { class: "rs-log__text" };
46
- var _hoisted_14 = {
47
- key: 0,
48
- class: "rs-log__hit"
49
- };
50
- var _hoisted_15 = [
51
- "aria-label",
52
- "data-log-index",
53
- "onClick"
28
+ "aria-busy"
54
29
  ];
55
- var _hoisted_16 = {
56
- key: 0,
57
- class: "rs-log__no"
58
- };
59
- var _hoisted_17 = {
60
- key: 1,
61
- class: "rs-log__time"
62
- };
63
- var _hoisted_18 = {
64
- key: 2,
65
- class: "rs-log__level"
66
- };
67
- var _hoisted_19 = {
68
- key: 3,
69
- class: "rs-log__sr-only"
70
- };
71
- var _hoisted_20 = { class: "rs-log__text" };
72
- var _hoisted_21 = {
73
- key: 0,
74
- class: "rs-log__hit"
75
- };
76
30
  var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
31
+ name: "RsLog",
77
32
  __name: "RsLog",
78
33
  props: /*@__PURE__*/ mergeModels({
79
34
  text: {},
@@ -139,7 +94,8 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
139
94
  },
140
95
  dir: { default: "ltr" },
141
96
  severityScale: { default: "auto" },
142
- timeFormat: {}
97
+ timeFormat: {},
98
+ id: {}
143
99
  }, {
144
100
  "lines": { default: "" },
145
101
  "linesModifiers": {},
@@ -161,6 +117,7 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
161
117
  const emit = __emit;
162
118
  const { t, locale } = useRsI18n();
163
119
  const slots = useSlots();
120
+ const matchId = useId();
164
121
  const lines = useModel(__props, "lines");
165
122
  const search = useModel(__props, "search");
166
123
  const filterLevels = useModel(__props, "levels");
@@ -173,8 +130,10 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
173
130
  let copiedTimer = 0;
174
131
  const listRef = ref(null);
175
132
  const stuckToBottom = ref(true);
133
+ const followAnchor = ref(null);
176
134
  const activeIndex = ref(-1);
177
135
  const announcement = ref("");
136
+ let announceTick = 0;
178
137
  const resolvedRadius = useResolvedRsRadius(() => props.radius, "sm");
179
138
  const liveMode = computed(() => resolveLogLive(props.live));
180
139
  const useVirtual = computed(() => {
@@ -202,9 +161,16 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
202
161
  locale: locale.value,
203
162
  timeFormat: props.timeFormat
204
163
  }));
164
+ const levelNames = computed(() => {
165
+ const names = /* @__PURE__ */ new Map();
166
+ for (const level of RS_LOG_LEVELS) names.set(level, t(`log.level.${level}`, level));
167
+ return names;
168
+ });
205
169
  const displayLines = computed(() => filterLogLines(resolvedLines.value, {
206
170
  levels: filterLevels.value,
207
- search: search.value
171
+ search: search.value,
172
+ locale: locale.value,
173
+ levelText: (level) => levelNames.value.get(level) ?? level
208
174
  }));
209
175
  const emptyLabel = computed(() => props.emptyText || t("log.empty", "No log output"));
210
176
  const regionLabel = computed(() => props.ariaLabel || t("log.label", "Log"));
@@ -220,17 +186,10 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
220
186
  "--rs-log-box-height": typeof props.height === "number" ? `${props.height}px` : props.height
221
187
  }));
222
188
  function levelLabel(level) {
223
- return t(`log.level.${level}`, level);
189
+ return levelNames.value.get(level) ?? level;
224
190
  }
225
- function rowLabel(item) {
226
- const parts = [levelLabel(item.level)];
227
- if (props.showLineNo) parts.push(t("log.lineNo", "Line {n}", { n: item.seq }));
228
- if (item.time) parts.push(item.time);
229
- parts.push(item.text);
230
- return parts.filter(Boolean).join(", ");
231
- }
232
- function highlightParts(text) {
233
- return splitLogHighlight(text, search.value);
191
+ function logItemKey(item) {
192
+ return item.key;
234
193
  }
235
194
  function writeLines(next) {
236
195
  lines.value = typeof next === "string" ? next : clampLogCount(next, props.maxLines);
@@ -242,10 +201,8 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
242
201
  if (typeof current === "string" || current == null) {
243
202
  const chunk = added.map((item) => typeof item === "string" ? item : item.text).join("\n");
244
203
  const base = typeof current === "string" ? current : "";
245
- writeLines(joinLogLines(normalizeLogLines(base ? `${base}\n${chunk}` : chunk, {
246
- inferLevel: false,
247
- maxLines: props.maxLines
248
- })));
204
+ const parts = splitLogText(base ? `${base}\n${chunk}` : chunk);
205
+ writeLines((props.maxLines != null && props.maxLines > 0 && parts.length > props.maxLines ? parts.slice(parts.length - props.maxLines) : parts).join("\n"));
249
206
  return;
250
207
  }
251
208
  writeLines([...current, ...added]);
@@ -292,23 +249,31 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
292
249
  if (root && node && !root.contains(node)) return "";
293
250
  return text;
294
251
  }
252
+ let alive = true;
253
+ function armCopyTimer(delay, apply) {
254
+ if (!alive) return;
255
+ if (copiedTimer) window.clearTimeout(copiedTimer);
256
+ copiedTimer = window.setTimeout(() => {
257
+ copiedTimer = 0;
258
+ if (!alive) return;
259
+ apply();
260
+ }, delay);
261
+ }
295
262
  function markCopied() {
263
+ if (!alive) return;
296
264
  copied.value = true;
297
265
  copyFailed.value = false;
298
- if (copiedTimer) window.clearTimeout(copiedTimer);
299
- copiedTimer = window.setTimeout(() => {
266
+ armCopyTimer(1500, () => {
300
267
  copied.value = false;
301
- copiedTimer = 0;
302
- }, 1500);
268
+ });
303
269
  }
304
270
  function markCopyFailed() {
271
+ if (!alive) return;
305
272
  copyFailed.value = true;
306
273
  copied.value = false;
307
- if (copiedTimer) window.clearTimeout(copiedTimer);
308
- copiedTimer = window.setTimeout(() => {
274
+ armCopyTimer(2500, () => {
309
275
  copyFailed.value = false;
310
- copiedTimer = 0;
311
- }, 2500);
276
+ });
312
277
  }
313
278
  async function writeCopy(text, source) {
314
279
  if (!text) return false;
@@ -325,13 +290,13 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
325
290
  async function copy() {
326
291
  const resolved = resolveLogCopyText({
327
292
  selection: readDomSelection(),
328
- visibleTexts: displayLines.value.map((line) => line.text),
329
- allTexts: resolvedLines.value.map((line) => line.text)
293
+ visibleTexts: displayLines.value.map((line) => line.plain),
294
+ allTexts: resolvedLines.value.map((line) => line.plain)
330
295
  });
331
296
  return writeCopy(resolved.text, resolved.source);
332
297
  }
333
298
  async function copyAll() {
334
- return writeCopy(joinLogLines(resolvedLines.value), "all");
299
+ return writeCopy(resolvedLines.value.map((line) => line.plain).join("\n"), "all");
335
300
  }
336
301
  function focusSearch() {
337
302
  const input = searchRef.value?.querySelector("input");
@@ -350,8 +315,16 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
350
315
  function setStuck(next) {
351
316
  if (stuckToBottom.value === next) return;
352
317
  stuckToBottom.value = next;
318
+ followAnchor.value = next ? null : displayLines.value.length;
353
319
  emit("followChange", next);
354
320
  }
321
+ function hasTextSelectionInside() {
322
+ const sel = typeof document === "undefined" ? null : document.getSelection();
323
+ if (!sel || sel.isCollapsed) return false;
324
+ const root = rootRef.value;
325
+ const node = sel.anchorNode;
326
+ return Boolean(root && node && root.contains(node));
327
+ }
355
328
  function onListScroll(event) {
356
329
  const el = event.target;
357
330
  if (!(el instanceof HTMLElement)) return;
@@ -393,6 +366,23 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
393
366
  copy();
394
367
  }
395
368
  }
369
+ function onSearchKeydown(event) {
370
+ if (event.key !== "Enter" || event.isComposing || event.altKey || event.ctrlKey || event.metaKey) return;
371
+ if (!search.value.trim() || displayLines.value.length === 0) return;
372
+ event.preventDefault();
373
+ const max = displayLines.value.length - 1;
374
+ const current = activeIndex.value;
375
+ const delta = event.shiftKey ? -1 : 1;
376
+ const next = current < 0 ? delta > 0 ? 0 : max : (current + delta + displayLines.value.length) % displayLines.value.length;
377
+ activeIndex.value = next;
378
+ setStuck(next >= max);
379
+ if (useVirtual.value) {
380
+ listRef.value?.scrollToIndex(next, "nearest");
381
+ return;
382
+ }
383
+ const row = plainRef.value?.querySelector(`[data-log-index="${next}"]`);
384
+ if (typeof row?.scrollIntoView === "function") row.scrollIntoView({ block: "nearest" });
385
+ }
396
386
  function onViewportKeydown(event) {
397
387
  if (isSearchShortcut(event) || isCopyShortcut(event)) return;
398
388
  if (isTypingTarget(event.target)) return;
@@ -438,8 +428,16 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
438
428
  }
439
429
  watch(() => displayLines.value.length, async (count, prev) => {
440
430
  const delta = count - (prev ?? 0);
441
- if (liveMode.value !== "off" && delta > 0) announcement.value = t("log.newLines", "{count, plural, one {# new line} other {# new lines}}", { count: delta });
431
+ if (liveMode.value !== "off" && delta > 0) {
432
+ const message = t("log.newLines", "{count, plural, one {# new line} other {# new lines}}", { count: delta });
433
+ announceTick += 1;
434
+ announcement.value = announceTick % 2 === 0 ? `${message}\u200b` : message;
435
+ }
442
436
  if (!props.follow || delta <= 0 || !stuckToBottom.value) return;
437
+ if (hasTextSelectionInside()) {
438
+ setStuck(false);
439
+ return;
440
+ }
443
441
  await nextTick();
444
442
  scrollToBottom();
445
443
  });
@@ -450,8 +448,18 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
450
448
  kept: resolvedLines.value.length
451
449
  });
452
450
  });
451
+ const pendingLines = computed(() => {
452
+ if (stuckToBottom.value || followAnchor.value == null) return 0;
453
+ return Math.max(0, displayLines.value.length - followAnchor.value);
454
+ });
455
+ const showJump = computed(() => props.follow && !stuckToBottom.value && displayLines.value.length > 0);
456
+ const jumpLabel = computed(() => pendingLines.value > 0 ? t("log.newLines", "{count, plural, one {# new line} other {# new lines}}", { count: pendingLines.value }) : t("log.jump", "Jump to latest"));
457
+ const matchCount = computed(() => search.value.trim() ? displayLines.value.length : null);
458
+ const matchLabel = computed(() => matchCount.value == null ? "" : t("log.matchCount", "{count, plural, one {# match} other {# matches}}", { count: matchCount.value }));
453
459
  onUnmounted(() => {
460
+ alive = false;
454
461
  if (copiedTimer) window.clearTimeout(copiedTimer);
462
+ copiedTimer = 0;
455
463
  });
456
464
  __expose({
457
465
  append,
@@ -474,8 +482,8 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
474
482
  "rs-log--zebra": __props.zebra,
475
483
  "rs-log--chrome": hasChrome.value
476
484
  }]),
485
+ id: __props.id,
477
486
  style: normalizeStyle(rootStyle.value),
478
- dir: __props.dir,
479
487
  onKeydown: onRootKeydown
480
488
  }, [
481
489
  hasChrome.value ? (openBlock(), createElementBlock("div", _hoisted_2, [renderSlot(_ctx.$slots, "toolbar", {}, () => [
@@ -483,7 +491,8 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
483
491
  key: 0,
484
492
  ref_key: "searchRef",
485
493
  ref: searchRef,
486
- class: "rs-log__search"
494
+ class: "rs-log__search",
495
+ onKeydown: onSearchKeydown
487
496
  }, [createVNode(RsInput_default, {
488
497
  modelValue: search.value,
489
498
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => search.value = $event),
@@ -491,23 +500,31 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
491
500
  size: "sm",
492
501
  clearable: "",
493
502
  placeholder: unref(t)("log.searchPlaceholder", "Filter lines…"),
494
- "aria-label": unref(t)("log.search", "Search logs")
503
+ "aria-label": unref(t)("log.search", "Search logs"),
504
+ "aria-describedby": matchCount.value != null ? unref(matchId) : void 0
495
505
  }, null, 8, [
496
506
  "modelValue",
497
507
  "placeholder",
498
- "aria-label"
499
- ])], 512)) : createCommentVNode("", true),
500
- __props.showFilter ? (openBlock(), createElementBlock("fieldset", _hoisted_3, [createElementVNode("legend", _hoisted_4, toDisplayString(unref(t)("log.filter", "Filter levels")), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(RS_LOG_FILTER_LEVELS), (level) => {
508
+ "aria-label",
509
+ "aria-describedby"
510
+ ])], 544)) : createCommentVNode("", true),
511
+ matchCount.value != null ? (openBlock(), createElementBlock("p", {
512
+ key: 1,
513
+ id: unref(matchId),
514
+ class: "rs-log__matches",
515
+ role: "status"
516
+ }, toDisplayString(matchLabel.value), 9, _hoisted_3)) : createCommentVNode("", true),
517
+ __props.showFilter ? (openBlock(), createElementBlock("fieldset", _hoisted_4, [createElementVNode("legend", _hoisted_5, toDisplayString(unref(t)("log.filter", "Filter levels")), 1), (openBlock(true), createElementBlock(Fragment, null, renderList(unref(RS_LOG_FILTER_LEVELS), (level) => {
501
518
  return openBlock(), createElementBlock("button", {
502
519
  key: level,
503
520
  type: "button",
504
521
  class: normalizeClass(["rs-log__chip", [`rs-log__chip--${level}`, { "rs-log__chip--on": filterLevels.value.includes(level) }]]),
505
522
  "aria-pressed": filterLevels.value.includes(level),
506
523
  onClick: ($event) => toggleLevel(level)
507
- }, toDisplayString(levelLabel(level)), 11, _hoisted_5);
524
+ }, toDisplayString(levelLabel(level)), 11, _hoisted_6);
508
525
  }), 128))])) : createCommentVNode("", true),
509
526
  __props.showCopy ? (openBlock(), createBlock(RsButton_default, {
510
- key: 2,
527
+ key: 3,
511
528
  class: "rs-log__copy",
512
529
  variant: "ghost",
513
530
  size: "sm",
@@ -528,13 +545,14 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
528
545
  class: "rs-log__sr-only",
529
546
  "aria-live": liveMode.value,
530
547
  "aria-atomic": "true"
531
- }, toDisplayString(announcement.value), 9, _hoisted_6)) : createCommentVNode("", true),
548
+ }, toDisplayString(announcement.value), 9, _hoisted_7)) : createCommentVNode("", true),
532
549
  createElementVNode("div", {
533
550
  ref_key: "viewportRef",
534
551
  ref: viewportRef,
535
552
  class: "rs-log__viewport",
536
553
  role: "region",
537
554
  tabindex: "0",
555
+ dir: __props.dir,
538
556
  "aria-label": regionLabel.value,
539
557
  "aria-busy": __props.busy ? "true" : void 0,
540
558
  onKeydown: onViewportKeydown
@@ -548,6 +566,7 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
548
566
  class: "rs-log__list",
549
567
  role: "list",
550
568
  items: displayLines.value,
569
+ "item-key": logItemKey,
551
570
  "item-size": resolvedItemSize.value,
552
571
  height: 0,
553
572
  overscan: __props.overscan,
@@ -555,32 +574,35 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
555
574
  radius: "none",
556
575
  onScroll: onListScroll
557
576
  }, {
558
- default: withCtx(({ item, index }) => [createElementVNode("div", {
559
- class: normalizeClass(["rs-log__row", [`rs-log__row--${item.level}`, {
560
- "rs-log__row--odd": index % 2 === 1,
561
- "rs-log__row--active": index === activeIndex.value
562
- }]]),
563
- role: "listitem",
564
- "aria-label": rowLabel(item),
565
- "data-log-index": index,
566
- onClick: ($event) => onRowClick(index)
567
- }, [
568
- _cache[2] || (_cache[2] = createElementVNode("span", {
569
- class: "rs-log__marker",
570
- "aria-hidden": "true"
571
- }, null, -1)),
572
- __props.showLineNo ? (openBlock(), createElementBlock("span", _hoisted_9, toDisplayString(item.seq), 1)) : createCommentVNode("", true),
573
- __props.showTime && item.time ? (openBlock(), createElementBlock("span", _hoisted_10, toDisplayString(item.time), 1)) : createCommentVNode("", true),
574
- __props.showLevel && item.level !== "plain" ? (openBlock(), createElementBlock("span", _hoisted_11, toDisplayString(levelLabel(item.level)), 1)) : (openBlock(), createElementBlock("span", _hoisted_12, toDisplayString(levelLabel(item.level)), 1)),
575
- renderSlot(_ctx.$slots, "row", {
576
- item,
577
- index,
578
- levelLabel: levelLabel(item.level),
579
- parts: highlightParts(item.text)
580
- }, () => [createElementVNode("span", _hoisted_13, [(openBlock(true), createElementBlock(Fragment, null, renderList(highlightParts(item.text), (part, partIndex) => {
581
- return openBlock(), createElementBlock(Fragment, { key: partIndex }, [part.hit ? (openBlock(), createElementBlock("mark", _hoisted_14, toDisplayString(part.text), 1)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(part.text), 1)], 64))], 64);
582
- }), 128))])], true)
583
- ], 10, _hoisted_8)]),
577
+ default: withCtx(({ item, index }) => [createVNode(RsLogRow_default, {
578
+ item,
579
+ index,
580
+ active: index === activeIndex.value,
581
+ zebra: __props.zebra,
582
+ wrap: __props.wrap,
583
+ fill: !__props.wrap,
584
+ "show-line-no": __props.showLineNo,
585
+ "show-time": __props.showTime,
586
+ "show-level": __props.showLevel,
587
+ search: search.value,
588
+ onSelect: ($event) => onRowClick(index)
589
+ }, createSlots({ _: 2 }, [unref(slots).row ? {
590
+ name: "default",
591
+ fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, "row", normalizeProps(guardReactiveProps(slotProps)), void 0, true)]),
592
+ key: "0"
593
+ } : void 0]), 1032, [
594
+ "item",
595
+ "index",
596
+ "active",
597
+ "zebra",
598
+ "wrap",
599
+ "fill",
600
+ "show-line-no",
601
+ "show-time",
602
+ "show-level",
603
+ "search",
604
+ "onSelect"
605
+ ])]),
584
606
  _: 3
585
607
  }, 8, [
586
608
  "items",
@@ -595,34 +617,45 @@ var RsLog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
595
617
  role: "list",
596
618
  onScroll: onListScroll
597
619
  }, [(openBlock(true), createElementBlock(Fragment, null, renderList(displayLines.value, (item, index) => {
598
- return openBlock(), createElementBlock("div", {
620
+ return openBlock(), createBlock(RsLogRow_default, {
599
621
  key: item.key,
600
- class: normalizeClass(["rs-log__row", [`rs-log__row--${item.level}`, {
601
- "rs-log__row--odd": index % 2 === 1,
602
- "rs-log__row--active": index === activeIndex.value
603
- }]]),
604
- role: "listitem",
605
- "aria-label": rowLabel(item),
606
- "data-log-index": index,
607
- onClick: ($event) => onRowClick(index)
608
- }, [
609
- _cache[3] || (_cache[3] = createElementVNode("span", {
610
- class: "rs-log__marker",
611
- "aria-hidden": "true"
612
- }, null, -1)),
613
- __props.showLineNo ? (openBlock(), createElementBlock("span", _hoisted_16, toDisplayString(item.seq), 1)) : createCommentVNode("", true),
614
- __props.showTime && item.time ? (openBlock(), createElementBlock("span", _hoisted_17, toDisplayString(item.time), 1)) : createCommentVNode("", true),
615
- __props.showLevel && item.level !== "plain" ? (openBlock(), createElementBlock("span", _hoisted_18, toDisplayString(levelLabel(item.level)), 1)) : (openBlock(), createElementBlock("span", _hoisted_19, toDisplayString(levelLabel(item.level)), 1)),
616
- renderSlot(_ctx.$slots, "row", {
617
- item,
618
- index,
619
- levelLabel: levelLabel(item.level),
620
- parts: highlightParts(item.text)
621
- }, () => [createElementVNode("span", _hoisted_20, [(openBlock(true), createElementBlock(Fragment, null, renderList(highlightParts(item.text), (part, partIndex) => {
622
- return openBlock(), createElementBlock(Fragment, { key: partIndex }, [part.hit ? (openBlock(), createElementBlock("mark", _hoisted_21, toDisplayString(part.text), 1)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(part.text), 1)], 64))], 64);
623
- }), 128))])], true)
624
- ], 10, _hoisted_15);
625
- }), 128))], 544))], 40, _hoisted_7)
622
+ item,
623
+ index,
624
+ active: index === activeIndex.value,
625
+ zebra: __props.zebra,
626
+ wrap: __props.wrap,
627
+ fill: false,
628
+ "show-line-no": __props.showLineNo,
629
+ "show-time": __props.showTime,
630
+ "show-level": __props.showLevel,
631
+ search: search.value,
632
+ onSelect: ($event) => onRowClick(index)
633
+ }, createSlots({ _: 2 }, [unref(slots).row ? {
634
+ name: "default",
635
+ fn: withCtx((slotProps) => [renderSlot(_ctx.$slots, "row", mergeProps({ ref_for: true }, slotProps), void 0, true)]),
636
+ key: "0"
637
+ } : void 0]), 1032, [
638
+ "item",
639
+ "index",
640
+ "active",
641
+ "zebra",
642
+ "wrap",
643
+ "show-line-no",
644
+ "show-time",
645
+ "show-level",
646
+ "search",
647
+ "onSelect"
648
+ ]);
649
+ }), 128))], 544)), showJump.value ? (openBlock(), createBlock(RsButton_default, {
650
+ key: 3,
651
+ class: "rs-log__jump",
652
+ size: "sm",
653
+ variant: "default",
654
+ onClick: scrollToBottom
655
+ }, {
656
+ default: withCtx(() => [createTextVNode(toDisplayString(jumpLabel.value), 1)]),
657
+ _: 1
658
+ })) : createCommentVNode("", true)], 40, _hoisted_8)
626
659
  ], 46, _hoisted_1);
627
660
  };
628
661
  }
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
3
3
  import RsLog_vue_vue_type_script_setup_true_lang_default from "./RsLog.impl.js";
4
4
 
5
5
  //#region src/components/log/src/RsLog.vue
6
- var RsLog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsLog_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-03a9ca4b"]]);
6
+ var RsLog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsLog_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-69545db7"]]);
7
7
  //#endregion
8
8
  export { RsLog_default as default };
@@ -0,0 +1,152 @@
1
+
2
+ .rs-log__row[data-v-a8e6725e] {
3
+ display: flex;
4
+ align-items: flex-start;
5
+ gap: var(--rs-space-sm);
6
+ box-sizing: border-box;
7
+ padding-inline: var(--rs-space-md);
8
+ position: relative;
9
+ white-space: nowrap;
10
+ color: var(--rs-log-row-fg, var(--rs-log-fg, var(--rs-text-primary)));
11
+ }
12
+ .rs-log__row--fill[data-v-a8e6725e] {
13
+ min-height: 100%;
14
+ }
15
+ .rs-log__row--wrap[data-v-a8e6725e] {
16
+ height: auto;
17
+ max-height: none;
18
+ min-height: 0;
19
+ white-space: pre-wrap;
20
+ overflow-wrap: anywhere;
21
+ word-break: break-word;
22
+ padding-block: var(--rs-space-xs);
23
+ }
24
+ .rs-log__row--zebra.rs-log__row--odd[data-v-a8e6725e] {
25
+ background: var(--rs-log-stripe, transparent);
26
+ }
27
+ .rs-log__row.rs-log__row--active[data-v-a8e6725e] {
28
+ background: var(--rs-log-active-bg, color-mix(in srgb, var(--rs-primary) 12%, var(--rs-log-bg, transparent)));
29
+ }
30
+ .rs-log__row--active[data-v-a8e6725e]::before {
31
+ content: '';
32
+ position: absolute;
33
+ inset-inline-start: 0;
34
+ inset-block: 0;
35
+ width: var(--rs-log-accent-width, 0.125rem);
36
+ background: var(--rs-log-accent, var(--rs-primary));
37
+ pointer-events: none;
38
+ }
39
+ .rs-log__marker[data-v-a8e6725e] {
40
+ flex-shrink: 0;
41
+ width: var(--rs-log-marker-width, 0.2rem);
42
+ align-self: stretch;
43
+ min-height: 0.9em;
44
+ margin-block: 0.2rem;
45
+ border-radius: var(--rs-radius-full);
46
+ background: currentColor;
47
+ user-select: none;
48
+ }
49
+ .rs-log__no[data-v-a8e6725e],
50
+ .rs-log__time[data-v-a8e6725e] {
51
+ flex-shrink: 0;
52
+ color: var(--rs-log-muted, var(--rs-text-secondary));
53
+ font-variant-numeric: tabular-nums;
54
+ unicode-bidi: isolate;
55
+ user-select: none;
56
+ }
57
+ .rs-log__level[data-v-a8e6725e] {
58
+ flex-shrink: 0;
59
+ min-inline-size: var(--rs-log-level-min, 3.6rem);
60
+ font-weight: var(--rs-font-weight-semibold);
61
+ letter-spacing: 0.02em;
62
+ unicode-bidi: isolate;
63
+ user-select: none;
64
+ }
65
+ .rs-log__text[data-v-a8e6725e] {
66
+ min-width: 0;
67
+ flex: 1;
68
+ font-weight: inherit;
69
+ unicode-bidi: plaintext;
70
+ user-select: text;
71
+ }
72
+ .rs-log__row--wrap .rs-log__text[data-v-a8e6725e] {
73
+ overflow: visible;
74
+ height: auto;
75
+ min-height: 0;
76
+ }
77
+ .rs-log__row:not(.rs-log__row--wrap) .rs-log__text[data-v-a8e6725e] {
78
+ overflow: hidden;
79
+ text-overflow: ellipsis;
80
+ }
81
+ .rs-log__hit[data-v-a8e6725e] {
82
+ padding: 0 0.1em;
83
+ background: var(--rs-log-hit-bg);
84
+ color: var(--rs-log-hit-fg);
85
+ font: inherit;
86
+ }
87
+ .rs-log__sr-only[data-v-a8e6725e] {
88
+ position: absolute;
89
+ width: 1px;
90
+ height: 1px;
91
+ padding: 0;
92
+ margin: -1px;
93
+ overflow: hidden;
94
+ clip: rect(0, 0, 0, 0);
95
+ white-space: nowrap;
96
+ border: 0;
97
+ }
98
+ .rs-log__row--plain[data-v-a8e6725e] {
99
+ --rs-log-row-fg: var(--rs-log-fg);
100
+ font-weight: var(--rs-font-weight-regular);
101
+ }
102
+ .rs-log__row--trace[data-v-a8e6725e] {
103
+ --rs-log-row-fg: var(--rs-log-trace);
104
+ font-weight: var(--rs-font-weight-regular);
105
+ }
106
+ .rs-log__row--debug[data-v-a8e6725e] {
107
+ --rs-log-row-fg: var(--rs-log-debug);
108
+ font-weight: var(--rs-font-weight-regular);
109
+ }
110
+ .rs-log__row--info[data-v-a8e6725e] {
111
+ --rs-log-row-fg: var(--rs-log-info);
112
+ font-weight: var(--rs-font-weight-medium);
113
+ }
114
+ .rs-log__row--notice[data-v-a8e6725e] {
115
+ --rs-log-row-fg: var(--rs-log-notice);
116
+ font-weight: var(--rs-font-weight-medium);
117
+ }
118
+ .rs-log__row--success[data-v-a8e6725e] {
119
+ --rs-log-row-fg: var(--rs-log-success);
120
+ font-weight: var(--rs-font-weight-medium);
121
+ }
122
+ .rs-log__row--warn[data-v-a8e6725e] {
123
+ --rs-log-row-fg: var(--rs-log-warn);
124
+ font-weight: var(--rs-font-weight-semibold);
125
+ }
126
+ .rs-log__row--error[data-v-a8e6725e] {
127
+ --rs-log-row-fg: var(--rs-log-error);
128
+ font-weight: var(--rs-font-weight-bold);
129
+ }
130
+ .rs-log__row--fatal[data-v-a8e6725e] {
131
+ --rs-log-row-fg: var(--rs-log-fatal);
132
+ font-weight: var(--rs-font-weight-bold);
133
+ }
134
+ @media (forced-colors: active) {
135
+ .rs-log__row[data-v-a8e6725e] {
136
+ color: CanvasText;
137
+ }
138
+ .rs-log__marker[data-v-a8e6725e] {
139
+ background: ButtonText;
140
+ }
141
+ .rs-log__hit[data-v-a8e6725e] {
142
+ background: Highlight;
143
+ color: HighlightText;
144
+ }
145
+ .rs-log__row--active[data-v-a8e6725e] {
146
+ outline: var(--rs-focus-ring-width, 2px) solid Highlight;
147
+ outline-offset: calc(var(--rs-focus-ring-width, 2px) * -1);
148
+ }
149
+ .rs-log__row--active[data-v-a8e6725e]::before {
150
+ background: Highlight;
151
+ }
152
+ }