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
@@ -1,4 +1,3 @@
1
- import { readDocumentTheme } from "../../code-editor/src/code-editor-utils.js";
2
1
  //#region src/components/terminal/src/terminal-utils.ts
3
2
  var TERMINAL_CSS_KEYS = [
4
3
  ["background", "--rs-terminal-bg"],
@@ -112,10 +111,24 @@ function themeSourceElement(mode) {
112
111
  if (document.documentElement.dataset.rsTheme === mode) return document.documentElement;
113
112
  return themeProbeElement(mode);
114
113
  }
115
- /** 从全局 `--rs-terminal-*` token 构建 xterm 调色板(须已加载 styles.css) */
116
- function readTerminalThemeFromCss(mode) {
114
+ /**
115
+ * auto 看最近的 `data-rs-theme`,没有时看 documentElement。
116
+ * 未写或不是 dark 时跟全库浅色。传入元素时深色岛不必改整页。
117
+ */
118
+ function resolveTerminalTheme(mode = "auto", el) {
119
+ if (mode !== "auto") return mode;
120
+ if (typeof document === "undefined") return "light";
121
+ const node = el?.closest?.("[data-rs-theme]") ?? document.documentElement;
122
+ return (node instanceof HTMLElement ? node.dataset.rsTheme : null) === "dark" ? "dark" : "light";
123
+ }
124
+ function pickThemeSource(mode, el) {
125
+ if (el && resolveTerminalTheme("auto", el) === mode) return el;
126
+ return themeSourceElement(mode);
127
+ }
128
+ /** 从 `--rs-terminal-*` 构建 xterm 调色板。传入宿主时读继承到的 token。 */
129
+ function readTerminalThemeFromCss(mode, el) {
117
130
  if (typeof document === "undefined" || typeof getComputedStyle === "undefined") return {};
118
- const source = themeSourceElement(mode);
131
+ const source = pickThemeSource(mode, el);
119
132
  const theme = {};
120
133
  for (const [key, cssVar] of TERMINAL_CSS_KEYS) {
121
134
  const value = resolveCssColorForXterm(readResolvedCssColor(cssVar, source, BACKGROUND_THEME_KEYS.has(key)));
@@ -123,15 +136,12 @@ function readTerminalThemeFromCss(mode) {
123
136
  }
124
137
  return theme;
125
138
  }
126
- function resolveTerminalTheme(mode = "auto") {
127
- return mode === "auto" ? readDocumentTheme() : mode;
128
- }
129
139
  function getTerminalThemePalette(mode) {
130
140
  return readTerminalThemeFromCss(mode);
131
141
  }
132
- function mergeTerminalTheme(mode, overrides) {
142
+ function mergeTerminalTheme(mode, overrides, el) {
133
143
  return {
134
- ...readTerminalThemeFromCss(mode),
144
+ ...readTerminalThemeFromCss(mode, el),
135
145
  ...overrides
136
146
  };
137
147
  }
@@ -216,6 +226,99 @@ function isMacPlatform() {
216
226
  function terminalShortcutLabel(key) {
217
227
  return isMacPlatform() ? `⌘${key}` : `Ctrl+${key}`;
218
228
  }
229
+ var themeListeners = /* @__PURE__ */ new Set();
230
+ var sharedThemeObserver = null;
231
+ function ensureTerminalThemeObserver() {
232
+ if (sharedThemeObserver || typeof document === "undefined" || typeof MutationObserver === "undefined") return;
233
+ sharedThemeObserver = new MutationObserver(() => {
234
+ for (const listener of themeListeners) listener();
235
+ });
236
+ sharedThemeObserver.observe(document.documentElement, {
237
+ attributes: true,
238
+ attributeFilter: ["data-rs-theme"],
239
+ subtree: true
240
+ });
241
+ }
242
+ /**
243
+ * 多个终端共用一个 `data-rs-theme` 观察器(含主题岛)。
244
+ * 最后一个退订时断开,避免卸载后仍监听整棵文档。
245
+ */
246
+ function subscribeTerminalTheme(listener) {
247
+ if (typeof document === "undefined" || typeof MutationObserver === "undefined") return () => void 0;
248
+ themeListeners.add(listener);
249
+ ensureTerminalThemeObserver();
250
+ return () => {
251
+ themeListeners.delete(listener);
252
+ if (themeListeners.size === 0 && sharedThemeObserver) {
253
+ sharedThemeObserver.disconnect();
254
+ sharedThemeObserver = null;
255
+ }
256
+ };
257
+ }
258
+ var TERMINAL_LINK_TRAILING = /* @__PURE__ */ new Set([
259
+ ".",
260
+ ",",
261
+ ";",
262
+ ":",
263
+ "!",
264
+ "?",
265
+ ")",
266
+ ">",
267
+ "]"
268
+ ]);
269
+ function trimTerminalLinkPunctuation(raw) {
270
+ let end = raw.length;
271
+ while (end > 0 && TERMINAL_LINK_TRAILING.has(raw.charAt(end - 1))) end -= 1;
272
+ return raw.slice(0, end);
273
+ }
274
+ /** 只放行 http(s) 与 mailto。javascript: / data: 一律拒绝。 */
275
+ function isSafeTerminalLink(value) {
276
+ try {
277
+ const url = new URL(value);
278
+ return url.protocol === "http:" || url.protocol === "https:" || url.protocol === "mailto:";
279
+ } catch {
280
+ return false;
281
+ }
282
+ }
283
+ /** 从一行可见文本里找出可点的 http(s) / mailto。end 为不含尾标点的字符串下标。 */
284
+ function findTerminalHttpLinks(line) {
285
+ if (!line.includes("http") && !line.includes("mailto")) return [];
286
+ const re = /(?:https?:\/\/|mailto:)[^\s<>"']+/gi;
287
+ const out = [];
288
+ let match;
289
+ while (match = re.exec(line)) {
290
+ const text = trimTerminalLinkPunctuation(match[0]);
291
+ if (!text || !isSafeTerminalLink(text)) continue;
292
+ out.push({
293
+ start: match.index,
294
+ end: match.index + text.length,
295
+ text
296
+ });
297
+ }
298
+ return out;
299
+ }
300
+ /**
301
+ * 把字符串下标换成 xterm 1-based 单元格列。
302
+ * 宽字符占两格,后续 width 0 的格子跳过,避免链接框落在汉字上。
303
+ */
304
+ function terminalCellIndexForString(cells, stringIndex) {
305
+ let seen = 0;
306
+ for (let i = 0; i < cells.length; i += 1) {
307
+ if ((cells[i]?.width ?? 1) < 1) continue;
308
+ if (seen >= stringIndex) return i + 1;
309
+ const chars = cells[i]?.chars ?? "";
310
+ seen += chars.length || 1;
311
+ }
312
+ return Math.max(1, cells.length);
313
+ }
314
+ function terminalLinkCellRange(cells, start, end) {
315
+ const startX = terminalCellIndexForString(cells, start);
316
+ const endX = terminalCellIndexForString(cells, Math.max(start, end - 1));
317
+ return {
318
+ startX,
319
+ endX: Math.max(startX, endX)
320
+ };
321
+ }
219
322
  /** ANSI 16 色演示文本 */
220
323
  function buildAnsiColorDemo() {
221
324
  const names = [
@@ -252,4 +355,4 @@ function buildAnsiColorDemo() {
252
355
  ].join("\r\n")}\r\n`;
253
356
  }
254
357
  //#endregion
255
- export { buildAnsiColorDemo, containsAltScreenEnter, containsEscapeSequence, containsFullScreenClear, containsTuiRefreshSequence, getTerminalThemePalette, isMacPlatform, mergeTerminalTheme, needsPtyWriteViewportPrep, normalizeTerminalHexColor, prepareTerminalForPtyWrite, proposeTerminalGeometry, readTerminalThemeFromCss, readXtermCssCellSize, resetLocalTerminalModes, resolveCssColorForXterm, resolveTerminalTheme, snapTerminalViewportToBottom, terminalShortcutLabel };
358
+ export { buildAnsiColorDemo, containsAltScreenEnter, containsEscapeSequence, containsFullScreenClear, containsTuiRefreshSequence, findTerminalHttpLinks, getTerminalThemePalette, isMacPlatform, isSafeTerminalLink, mergeTerminalTheme, needsPtyWriteViewportPrep, normalizeTerminalHexColor, prepareTerminalForPtyWrite, proposeTerminalGeometry, readTerminalThemeFromCss, readXtermCssCellSize, resetLocalTerminalModes, resolveCssColorForXterm, resolveTerminalTheme, snapTerminalViewportToBottom, subscribeTerminalTheme, terminalCellIndexForString, terminalLinkCellRange, terminalShortcutLabel };
@@ -1,8 +1,8 @@
1
1
 
2
- .rs-textarea[data-v-cba8d859] {
2
+ .rs-textarea[data-v-4aaa8fd4] {
3
3
  width: 100%;
4
4
  }
5
- .rs-textarea__shell[data-v-cba8d859] {
5
+ .rs-textarea__shell[data-v-4aaa8fd4] {
6
6
  position: relative;
7
7
  box-sizing: border-box;
8
8
  width: 100%;
@@ -14,32 +14,32 @@
14
14
  border-color var(--rs-transition-fast),
15
15
  box-shadow var(--rs-transition-fast);
16
16
  }
17
- .rs-textarea__shell[data-v-cba8d859]:hover:not(.is-disabled):not(.is-readonly):not(:focus-within) {
17
+ .rs-textarea__shell[data-v-4aaa8fd4]:hover:not(.is-disabled):not(.is-readonly):not(:focus-within) {
18
18
  border-color: var(--rs-input-border-hover, var(--rs-border));
19
19
  }
20
- .rs-textarea__shell[data-v-cba8d859]:focus-within {
20
+ .rs-textarea__shell[data-v-4aaa8fd4]:focus-within {
21
21
  border-color: var(--rs-focus-border, var(--rs-primary));
22
22
  box-shadow:
23
23
  var(--rs-input-shadow, none),
24
24
  0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
25
25
  }
26
- .rs-textarea__shell.is-invalid[data-v-cba8d859] {
26
+ .rs-textarea__shell.is-invalid[data-v-4aaa8fd4] {
27
27
  border-color: var(--rs-danger);
28
28
  }
29
- .rs-textarea__shell.is-invalid[data-v-cba8d859]:focus-within {
29
+ .rs-textarea__shell.is-invalid[data-v-4aaa8fd4]:focus-within {
30
30
  box-shadow:
31
31
  var(--rs-input-shadow, none),
32
32
  0 0 0 var(--rs-focus-ring-width, 2px) color-mix(in srgb, var(--rs-danger) 14%, transparent);
33
33
  }
34
- .rs-textarea__shell.is-disabled[data-v-cba8d859] {
34
+ .rs-textarea__shell.is-disabled[data-v-4aaa8fd4] {
35
35
  opacity: 0.38;
36
36
  cursor: not-allowed;
37
37
  background: var(--rs-surface-hover);
38
38
  }
39
- .rs-textarea__shell.is-readonly[data-v-cba8d859] {
39
+ .rs-textarea__shell.is-readonly[data-v-4aaa8fd4] {
40
40
  background: var(--rs-surface-hover);
41
41
  }
42
- .rs-textarea__control[data-v-cba8d859] {
42
+ .rs-textarea__control[data-v-4aaa8fd4] {
43
43
  display: block;
44
44
  box-sizing: border-box;
45
45
  width: 100%;
@@ -53,37 +53,37 @@
53
53
  font-size: var(--rs-font-size-sm);
54
54
  line-height: 1.5;
55
55
  }
56
- .rs-textarea__shell.is-autosize .rs-textarea__control[data-v-cba8d859] {
56
+ .rs-textarea__shell.is-autosize .rs-textarea__control[data-v-4aaa8fd4] {
57
57
  min-height: 0;
58
58
  }
59
- .rs-textarea__shell.has-count .rs-textarea__control[data-v-cba8d859] {
59
+ .rs-textarea__shell.has-count .rs-textarea__control[data-v-4aaa8fd4] {
60
60
  padding-bottom: 1.55rem;
61
61
  }
62
- .rs-textarea__shell.has-clear .rs-textarea__control[data-v-cba8d859] {
62
+ .rs-textarea__shell.has-clear .rs-textarea__control[data-v-4aaa8fd4] {
63
63
  padding-inline-end: 1.85rem;
64
64
  }
65
- .rs-input-field--sm .rs-textarea__control[data-v-cba8d859] {
65
+ .rs-input-field--sm .rs-textarea__control[data-v-4aaa8fd4] {
66
66
  min-height: 3.5rem;
67
67
  padding: 0.4rem 0.6rem;
68
68
  font-size: var(--rs-font-size-xs);
69
69
  }
70
- .rs-input-field--sm .rs-textarea__shell.has-count .rs-textarea__control[data-v-cba8d859] {
70
+ .rs-input-field--sm .rs-textarea__shell.has-count .rs-textarea__control[data-v-4aaa8fd4] {
71
71
  padding-bottom: 1.4rem;
72
72
  }
73
- .rs-input-field--lg .rs-textarea__control[data-v-cba8d859] {
73
+ .rs-input-field--lg .rs-textarea__control[data-v-4aaa8fd4] {
74
74
  min-height: 5.5rem;
75
75
  padding: 0.7rem 0.9rem;
76
76
  }
77
- .rs-textarea__control[data-v-cba8d859]::placeholder {
77
+ .rs-textarea__control[data-v-4aaa8fd4]::placeholder {
78
78
  color: var(--rs-placeholder);
79
79
  }
80
- .rs-textarea__control[data-v-cba8d859]:disabled {
80
+ .rs-textarea__control[data-v-4aaa8fd4]:disabled {
81
81
  cursor: not-allowed;
82
82
  }
83
- .rs-textarea__control[data-v-cba8d859]:read-only {
83
+ .rs-textarea__control[data-v-4aaa8fd4]:read-only {
84
84
  cursor: default;
85
85
  }
86
- .rs-textarea__clear[data-v-cba8d859] {
86
+ .rs-textarea__clear[data-v-4aaa8fd4] {
87
87
  position: absolute;
88
88
  top: 0.45rem;
89
89
  inset-inline-end: 0.45rem;
@@ -102,11 +102,11 @@
102
102
  color var(--rs-transition-fast),
103
103
  background var(--rs-transition-fast);
104
104
  }
105
- .rs-textarea__clear[data-v-cba8d859]:hover {
105
+ .rs-textarea__clear[data-v-4aaa8fd4]:hover {
106
106
  color: var(--rs-text);
107
107
  background: var(--rs-item-hover);
108
108
  }
109
- .rs-textarea__count[data-v-cba8d859] {
109
+ .rs-textarea__count[data-v-4aaa8fd4] {
110
110
  position: absolute;
111
111
  inset-inline-end: 0.65rem;
112
112
  bottom: 0.3rem;
@@ -117,10 +117,10 @@
117
117
  line-height: 1;
118
118
  color: var(--rs-muted);
119
119
  }
120
- .rs-textarea__count.is-limit[data-v-cba8d859] {
120
+ .rs-textarea__count.is-limit[data-v-4aaa8fd4] {
121
121
  color: var(--rs-danger);
122
122
  }
123
- .rs-field--label-left .rs-textarea[data-v-cba8d859] {
123
+ .rs-field--label-left .rs-textarea[data-v-4aaa8fd4] {
124
124
  grid-column: 2;
125
125
  min-width: 0;
126
126
  }
@@ -1,17 +1,8 @@
1
1
  import type { RsComponentSize, RsRadius } from '../../../theme/types';
2
+ import type { RsInputRule, RsInputValidateTrigger } from '../../input/src/input-rules';
2
3
  import { type RsFormLabelPosition } from '../../form/src/form-utils';
3
4
  import { type RsFormRuleTrigger } from '../../form/src/form-rules';
4
- import type { RsInputRule, RsInputValidateTrigger } from '../../input/src/input-rules';
5
- /** 原生 resize;autosize 开启时强制 none,与 Element Plus 一致。 */
6
- export type RsTextareaResize = 'none' | 'horizontal' | 'vertical' | 'both';
7
- /**
8
- * 自适应高度。true 从 rows 起往下长;对象可锁 minRows / maxRows。
9
- * 对齐 Ant Design autoSize、Element Plus autosize。
10
- */
11
- export type RsTextareaAutosize = boolean | {
12
- minRows?: number;
13
- maxRows?: number;
14
- };
5
+ import { type RsTextareaAutosize, type RsTextareaResize } from './textarea-utils';
15
6
  /**
16
7
  * RsTextarea 模板 ref 请用此类型。
17
8
  * 不要写 InstanceType<typeof RsTextarea>:组件实例类型过深,vue-tsc 会报 Excessive stack depth。
@@ -28,6 +19,7 @@ export interface RsTextareaExpose {
28
19
  export type RsTextareaInstance = RsTextareaExpose & {
29
20
  $el: HTMLElement;
30
21
  };
22
+ export type { RsTextareaAutosize, RsTextareaResize };
31
23
  type __VLS_Props = {
32
24
  id?: string;
33
25
  placeholder?: string;
@@ -64,7 +56,9 @@ declare var __VLS_6: {
64
56
  count: number;
65
57
  maxlength: number | undefined;
66
58
  }, __VLS_8: {
59
+ name: string | undefined;
67
60
  message: string;
61
+ value: string;
68
62
  };
69
63
  type __VLS_Slots = {} & {
70
64
  count?: (props: typeof __VLS_6) => any;
@@ -92,16 +86,16 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, RsTex
92
86
  }) => any) | undefined;
93
87
  onPressEnter?: ((event: KeyboardEvent) => any) | undefined;
94
88
  }>, {
89
+ required: boolean;
95
90
  invalid: boolean;
96
91
  resize: RsTextareaResize;
97
- required: boolean;
98
92
  disabled: boolean;
99
93
  readonly: boolean;
94
+ rows: number;
100
95
  validateTrigger: RsInputValidateTrigger;
101
96
  clearable: boolean;
102
97
  showCount: boolean;
103
98
  showValidateMessage: boolean;
104
- rows: number;
105
99
  autosize: RsTextareaAutosize;
106
100
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
107
101
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -4,7 +4,10 @@ import { buildLocalInputRules, runFormFieldRules } from "../../form/src/form-rul
4
4
  import { isRsFormItemBoundControl, useRsFormContext, useRsFormField, useRsFormItemContext } from "../../form/src/form-utils.js";
5
5
  import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
6
6
  import { rsRadiusCss, useResolvedRsRadius } from "../../_shared/src/resolve-radius.js";
7
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, onMounted, openBlock, ref, renderSlot, toDisplayString, unref, useAttrs, useId, useModel, watch, withModifiers } from "vue";
7
+ import { normalizeRsInputValue } from "../../input/src/input-utils.js";
8
+ import RsVNodeHost_default from "../../vnode-host/src/RsVNodeHost.js";
9
+ import { applyTextareaAutosize, isRsTextareaAutosizeEnabled, resolveRsTextareaAutosizeSpec, resolveRsTextareaDisplayRows, resolveRsTextareaResize } from "./textarea-utils.js";
10
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onMounted, openBlock, ref, renderSlot, toDisplayString, unref, useAttrs, useId, useModel, watch, withModifiers } from "vue";
8
11
  //#region src/components/textarea/src/RsTextarea.vue?vue&type=script&setup=true&lang.ts
9
12
  var _hoisted_1 = {
10
13
  key: 0,
@@ -36,6 +39,7 @@ var _hoisted_8 = {
36
39
  class: "rs-field__hint"
37
40
  };
38
41
  var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
42
+ name: "RsTextarea",
39
43
  inheritAttrs: false,
40
44
  __name: "RsTextarea",
41
45
  props: /*@__PURE__*/ mergeModels({
@@ -102,10 +106,10 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
102
106
  const { t } = useRsI18n();
103
107
  const model = useModel(__props, "modelValue", {
104
108
  get(value) {
105
- return value == null ? "" : String(value);
109
+ return normalizeRsInputValue(value);
106
110
  },
107
111
  set(value) {
108
- return value == null ? "" : String(value);
112
+ return normalizeRsInputValue(value);
109
113
  }
110
114
  });
111
115
  const props = __props;
@@ -133,6 +137,15 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
133
137
  if (props.showValidateMessage && autoInvalid.value) return autoMessage.value;
134
138
  return "";
135
139
  });
140
+ const errorSlotProps = computed(() => ({
141
+ name: props.name,
142
+ message: displayMessage.value,
143
+ value: model.value
144
+ }));
145
+ const formErrorContent = computed(() => {
146
+ if (!displayMessage.value || !formContext?.renderError) return null;
147
+ return formContext.renderError(errorSlotProps.value);
148
+ });
136
149
  const isInvalid = computed(() => {
137
150
  if (boundToItem.value) return Boolean(formItem?.invalid.value || props.invalid);
138
151
  return props.invalid || autoInvalid.value;
@@ -151,54 +164,26 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
151
164
  if (!labelWidth) return void 0;
152
165
  return { "--rs-field-label-width": labelWidth };
153
166
  });
154
- const autosizeEnabled = computed(() => Boolean(props.autosize));
155
- const autosizeSpec = computed(() => typeof props.autosize === "object" && props.autosize ? props.autosize : {});
156
- const displayRows = computed(() => autosizeSpec.value.minRows ?? props.rows);
157
- const resolvedResize = computed(() => autosizeEnabled.value ? "none" : props.resize);
167
+ const autosizeEnabled = computed(() => isRsTextareaAutosizeEnabled(props.autosize));
168
+ const autosizeSpec = computed(() => resolveRsTextareaAutosizeSpec(props.autosize));
169
+ const displayRows = computed(() => resolveRsTextareaDisplayRows(props.autosize, props.rows));
170
+ const resolvedResize = computed(() => resolveRsTextareaResize(props.resize, props.autosize));
158
171
  const countText = computed(() => {
159
172
  const n = model.value.length;
160
173
  return props.maxlength != null ? `${n} / ${props.maxlength}` : String(n);
161
174
  });
162
175
  const countLimitReached = computed(() => props.maxlength != null && model.value.length >= props.maxlength);
163
176
  const showClearButton = computed(() => props.clearable && !resolvedDisabled.value && !props.readonly && model.value.length > 0);
164
- function parseLineHeight(el) {
165
- const style = getComputedStyle(el);
166
- const lh = Number.parseFloat(style.lineHeight);
167
- if (Number.isFinite(lh) && lh > 0) return lh;
168
- return (Number.parseFloat(style.fontSize) || 14) * 1.5;
169
- }
170
- function autosizePadding(el) {
171
- const style = getComputedStyle(el);
172
- const pad = Number.parseFloat(style.paddingTop) + Number.parseFloat(style.paddingBottom);
173
- if (style.boxSizing !== "border-box") return 0;
174
- const border = Number.parseFloat(style.borderTopWidth) + Number.parseFloat(style.borderBottomWidth);
175
- return (Number.isFinite(pad) ? pad : 0) + (Number.isFinite(border) ? border : 0);
176
- }
177
177
  function adjustHeight() {
178
- const el = textareaRef.value;
179
- if (!el) return;
180
- if (!autosizeEnabled.value) {
181
- el.style.height = "";
182
- el.style.overflowY = "";
183
- return;
184
- }
185
- el.style.height = "auto";
186
- el.style.overflowY = "hidden";
187
- const lineHeight = parseLineHeight(el);
188
- const extra = autosizePadding(el);
189
- const minRows = autosizeSpec.value.minRows ?? props.rows;
190
- const maxRows = autosizeSpec.value.maxRows;
191
- const min = lineHeight * minRows + extra;
192
- const max = maxRows != null ? lineHeight * maxRows + extra : void 0;
193
- let height = el.scrollHeight;
194
- if (height < min) height = min;
195
- if (max != null && height > max) {
196
- height = max;
197
- el.style.overflowY = "auto";
198
- }
199
- el.style.height = `${height}px`;
178
+ applyTextareaAutosize(textareaRef.value, {
179
+ enabled: autosizeEnabled.value,
180
+ minRows: autosizeSpec.value.minRows ?? props.rows,
181
+ maxRows: autosizeSpec.value.maxRows
182
+ });
200
183
  }
201
184
  function scheduleAdjustHeight() {
185
+ const el = textareaRef.value;
186
+ if (!autosizeEnabled.value && !el?.style.height) return;
202
187
  nextTick(adjustHeight);
203
188
  }
204
189
  async function runValidate(trigger = "submit") {
@@ -229,7 +214,7 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
229
214
  autoMessage.value = message;
230
215
  }
231
216
  function setValue(value) {
232
- model.value = String(value ?? "");
217
+ model.value = normalizeRsInputValue(value);
233
218
  scheduleAdjustHeight();
234
219
  }
235
220
  function clearValidation() {
@@ -262,6 +247,9 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
262
247
  if (props.validateTrigger === "blur" || props.validateTrigger === "both") runValidate("blur");
263
248
  emit("blur", event);
264
249
  }
250
+ function onFocus(event) {
251
+ emit("focus", event);
252
+ }
265
253
  function onKeydown(event) {
266
254
  if (event.key !== "Enter" || composing.value) return;
267
255
  emit("pressEnter", event);
@@ -346,7 +334,7 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
346
334
  onCompositionend: onCompositionEnd,
347
335
  onKeydown,
348
336
  onBlur,
349
- onFocus: _cache[0] || (_cache[0] = ($event) => emit("focus", $event))
337
+ onFocus
350
338
  }), null, 16, _hoisted_5),
351
339
  showClearButton.value ? (openBlock(), createElementBlock("button", {
352
340
  key: 0,
@@ -354,7 +342,7 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
354
342
  class: "rs-textarea__clear",
355
343
  tabindex: "-1",
356
344
  "aria-label": unref(t)("input.clear"),
357
- onPointerdown: _cache[1] || (_cache[1] = withModifiers(() => {}, ["prevent"])),
345
+ onPointerdown: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent"])),
358
346
  onClick: onClear
359
347
  }, [createVNode(RsIcon_default, {
360
348
  name: "x",
@@ -375,7 +363,10 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
375
363
  id: errorId.value,
376
364
  class: "rs-field__error",
377
365
  role: "alert"
378
- }, [renderSlot(_ctx.$slots, "error", { message: displayMessage.value }, () => [createTextVNode(toDisplayString(displayMessage.value), 1)], true)], 8, _hoisted_7)) : createCommentVNode("", true),
366
+ }, [renderSlot(_ctx.$slots, "error", normalizeProps(guardReactiveProps(errorSlotProps.value)), () => [formErrorContent.value !== null && formErrorContent.value !== void 0 ? (openBlock(), createBlock(RsVNodeHost_default, {
367
+ key: 0,
368
+ content: formErrorContent.value
369
+ }, null, 8, ["content"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(displayMessage.value), 1)], 64))], true)], 8, _hoisted_7)) : createCommentVNode("", true),
379
370
  __props.hint ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(__props.hint), 1)) : createCommentVNode("", true)
380
371
  ])], 6);
381
372
  };
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
3
3
  import RsTextarea_vue_vue_type_script_setup_true_lang_default from "./RsTextarea.impl.js";
4
4
 
5
5
  //#region src/components/textarea/src/RsTextarea.vue
6
- var RsTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsTextarea_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-cba8d859"]]);
6
+ var RsTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsTextarea_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-4aaa8fd4"]]);
7
7
  //#endregion
8
8
  export { RsTextarea_default as default };
@@ -0,0 +1,27 @@
1
+ export declare const RS_TEXTAREA_RESIZES: readonly ["none", "horizontal", "vertical", "both"];
2
+ export type RsTextareaResize = (typeof RS_TEXTAREA_RESIZES)[number];
3
+ /**
4
+ * 自适应高度。true 从 rows 起往下长;对象可锁 minRows / maxRows。
5
+ * 对齐 Ant Design autoSize、Element Plus autosize。
6
+ */
7
+ export type RsTextareaAutosize = boolean | {
8
+ minRows?: number;
9
+ maxRows?: number;
10
+ };
11
+ export declare function isRsTextareaResize(value: unknown): value is RsTextareaResize;
12
+ export declare function isRsTextareaAutosizeEnabled(autosize?: RsTextareaAutosize | null): boolean;
13
+ export declare function resolveRsTextareaAutosizeSpec(autosize?: RsTextareaAutosize | null): {
14
+ minRows?: number;
15
+ maxRows?: number;
16
+ };
17
+ export declare function resolveRsTextareaDisplayRows(autosize?: RsTextareaAutosize | null, rows?: number): number;
18
+ /** autosize 开启时强制 none,与 Element Plus 一致。 */
19
+ export declare function resolveRsTextareaResize(resize?: RsTextareaResize | null, autosize?: RsTextareaAutosize | null): RsTextareaResize;
20
+ export declare function parseTextareaLineHeight(el: HTMLTextAreaElement): number;
21
+ export declare function textareaAutosizePadding(el: HTMLTextAreaElement): number;
22
+ /** 写入或清掉 autosize 高度。el 已卸载时直接返回。 */
23
+ export declare function applyTextareaAutosize(el: HTMLTextAreaElement | null, options: {
24
+ enabled: boolean;
25
+ minRows: number;
26
+ maxRows?: number;
27
+ }): void;
@@ -0,0 +1,61 @@
1
+ //#region src/components/textarea/src/textarea-utils.ts
2
+ var RS_TEXTAREA_RESIZES = [
3
+ "none",
4
+ "horizontal",
5
+ "vertical",
6
+ "both"
7
+ ];
8
+ function isRsTextareaResize(value) {
9
+ return typeof value === "string" && RS_TEXTAREA_RESIZES.includes(value);
10
+ }
11
+ function isRsTextareaAutosizeEnabled(autosize) {
12
+ return autosize === true || typeof autosize === "object" && autosize != null;
13
+ }
14
+ function resolveRsTextareaAutosizeSpec(autosize) {
15
+ return typeof autosize === "object" && autosize ? autosize : {};
16
+ }
17
+ function resolveRsTextareaDisplayRows(autosize, rows = 3) {
18
+ return resolveRsTextareaAutosizeSpec(autosize).minRows ?? rows;
19
+ }
20
+ /** autosize 开启时强制 none,与 Element Plus 一致。 */
21
+ function resolveRsTextareaResize(resize, autosize) {
22
+ if (isRsTextareaAutosizeEnabled(autosize)) return "none";
23
+ return isRsTextareaResize(resize) ? resize : "vertical";
24
+ }
25
+ function parseTextareaLineHeight(el) {
26
+ const style = getComputedStyle(el);
27
+ const lh = Number.parseFloat(style.lineHeight);
28
+ if (Number.isFinite(lh) && lh > 0) return lh;
29
+ return (Number.parseFloat(style.fontSize) || 14) * 1.5;
30
+ }
31
+ function textareaAutosizePadding(el) {
32
+ const style = getComputedStyle(el);
33
+ const pad = Number.parseFloat(style.paddingTop) + Number.parseFloat(style.paddingBottom);
34
+ if (style.boxSizing !== "border-box") return 0;
35
+ const border = Number.parseFloat(style.borderTopWidth) + Number.parseFloat(style.borderBottomWidth);
36
+ return (Number.isFinite(pad) ? pad : 0) + (Number.isFinite(border) ? border : 0);
37
+ }
38
+ /** 写入或清掉 autosize 高度。el 已卸载时直接返回。 */
39
+ function applyTextareaAutosize(el, options) {
40
+ if (!el) return;
41
+ if (!options.enabled) {
42
+ el.style.height = "";
43
+ el.style.overflowY = "";
44
+ return;
45
+ }
46
+ el.style.height = "auto";
47
+ el.style.overflowY = "hidden";
48
+ const lineHeight = parseTextareaLineHeight(el);
49
+ const extra = textareaAutosizePadding(el);
50
+ const min = lineHeight * options.minRows + extra;
51
+ const max = options.maxRows != null ? lineHeight * options.maxRows + extra : void 0;
52
+ let height = el.scrollHeight;
53
+ if (height < min) height = min;
54
+ if (max != null && height > max) {
55
+ height = max;
56
+ el.style.overflowY = "auto";
57
+ }
58
+ el.style.height = `${height}px`;
59
+ }
60
+ //#endregion
61
+ export { RS_TEXTAREA_RESIZES, applyTextareaAutosize, isRsTextareaAutosizeEnabled, isRsTextareaResize, parseTextareaLineHeight, resolveRsTextareaAutosizeSpec, resolveRsTextareaDisplayRows, resolveRsTextareaResize, textareaAutosizePadding };
@@ -1,7 +1,8 @@
1
1
  export { default as RsTimePicker } from './src/RsTimePicker.js';
2
2
  export { default as RsTimePickerColumns } from './src/RsTimePickerColumns.js';
3
- export type { RsParsedTime, RsTimeRangeValue, RsTimeUnit, RsTimeUnitOption } from './src/time-picker-utils';
4
- export { EMPTY_TIME_RANGE, TIME_HOUR_OPTIONS, TIME_SECOND_OPTIONS, formatTimeFromParts, formatTimeParts, formatTimeRangeDisplay, formatTimeUnitLabel, formatTimeValue, getTimeMinuteOptions, isTimeRangeEmpty, isTimeRangeOrdered, isTimeWithinBounds, parseTimeValue, scrollTimeColumnToValue, } from './src/time-picker-utils';
3
+ export type { RsTimePickerExpose, RsTimePickerInstance, RsTimePickerLabelPosition, } from './src/RsTimePicker.js';
4
+ export type { RsParsedTime, RsTimePickerDisabledTime, RsTimePickerGetPopupContainer, RsTimePickerHourCycle, RsTimePickerModelValue, RsTimePickerShortcut, RsTimeRangeValue, RsTimeUnit, RsTimeUnitOption, } from './src/time-picker-utils';
5
+ export { EMPTY_TIME_RANGE, TIME_HOUR12_OPTIONS, TIME_HOUR_OPTIONS, TIME_SECOND_OPTIONS, formatTimeDisplay, formatTimeFromParts, formatTimeParts, formatTimeRangeDisplay, formatTimeUnitLabel, formatTimeValue, getTimeMinuteOptions, isTimeRangeEmpty, isTimeRangeOrdered, isTimeWithinBounds, parseTimeValue, scrollTimeColumnToValue, toHour12, toHour24, } from './src/time-picker-utils';
5
6
  export type { RsTimeValidationError, RsTimeValidationResult, RsTimeValidationRules } from './src/time-validation';
6
7
  export { validateTimeValue } from './src/time-validation';
7
8
  export type { RsTimeRangeValidationError, RsTimeRangeValidationResult, RsTimeRangeValidationRules, } from './src/time-range-validation';