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,57 +1,81 @@
1
- import { AvatarFallback, AvatarImage, AvatarRoot } from "../../_shared/src/reka.js";
2
1
  import RsIcon_default from "../../icon/src/RsIcon.js";
3
- import { getAvatarInitials } from "./avatar-utils.js";
4
- import { computed, createBlock, createCommentVNode, createElementBlock, createVNode, defineComponent, normalizeClass, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
2
+ import { RS_AVATAR_ICON_PX, getAvatarInitials, resolveRsAvatarShape, resolveRsAvatarSize, resolveRsAvatarTone } from "./avatar-utils.js";
3
+ import { computed, createBlock, createCommentVNode, createElementBlock, defineComponent, normalizeClass, openBlock, ref, renderSlot, toDisplayString, watch } from "vue";
5
4
  //#region src/components/avatar/src/RsAvatar.vue?vue&type=script&setup=true&lang.ts
6
- var _hoisted_1 = { key: 1 };
5
+ var _hoisted_1 = ["role", "aria-label"];
6
+ var _hoisted_2 = ["src", "alt"];
7
+ var _hoisted_3 = { key: 1 };
7
8
  var RsAvatar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
9
+ name: "RsAvatar",
8
10
  __name: "RsAvatar",
9
11
  props: {
10
- src: {},
11
- alt: {},
12
- name: {},
13
- fallback: {},
12
+ src: { default: void 0 },
13
+ alt: { default: void 0 },
14
+ name: { default: void 0 },
15
+ fallback: { default: void 0 },
14
16
  icon: { default: "user" },
15
17
  size: { default: "md" },
16
18
  shape: { default: "circle" },
17
19
  tone: { default: "primary" },
18
- label: {}
20
+ label: { default: void 0 }
19
21
  },
20
22
  setup(__props) {
21
23
  const props = __props;
24
+ const imageLoaded = ref(false);
25
+ const imageFailed = ref(false);
26
+ watch(() => props.src, () => {
27
+ imageLoaded.value = false;
28
+ imageFailed.value = false;
29
+ });
30
+ const resolvedSize = computed(() => resolveRsAvatarSize(props.size));
31
+ const resolvedShape = computed(() => resolveRsAvatarShape(props.shape));
32
+ const resolvedTone = computed(() => resolveRsAvatarTone(props.tone));
33
+ const iconPx = computed(() => RS_AVATAR_ICON_PX[resolvedSize.value]);
22
34
  const fallbackText = computed(() => {
23
35
  if (props.fallback?.trim()) return props.fallback.trim();
24
36
  if (props.name?.trim()) return getAvatarInitials(props.name);
25
37
  return "";
26
38
  });
27
39
  const showIconFallback = computed(() => !fallbackText.value);
40
+ const showImage = computed(() => Boolean(props.src) && !imageFailed.value);
41
+ const showFallback = computed(() => !showImage.value || !imageLoaded.value);
42
+ const pictureReady = computed(() => showImage.value && imageLoaded.value);
28
43
  const imageAlt = computed(() => props.alt ?? props.name ?? "");
29
44
  const ariaLabel = computed(() => props.label ?? props.alt ?? props.name ?? void 0);
45
+ const rootRole = computed(() => {
46
+ if (pictureReady.value || !ariaLabel.value) return void 0;
47
+ return "img";
48
+ });
49
+ const rootLabel = computed(() => pictureReady.value ? void 0 : ariaLabel.value);
50
+ function onLoad() {
51
+ imageLoaded.value = true;
52
+ imageFailed.value = false;
53
+ }
54
+ function onError() {
55
+ imageLoaded.value = false;
56
+ imageFailed.value = true;
57
+ }
30
58
  return (_ctx, _cache) => {
31
- return openBlock(), createBlock(unref(AvatarRoot), {
32
- class: normalizeClass(["rs-avatar", [`rs-avatar--${__props.size}`, `rs-avatar--${__props.shape}`]]),
33
- "aria-label": ariaLabel.value,
34
- role: ariaLabel.value ? "img" : void 0
35
- }, {
36
- default: withCtx(() => [__props.src ? (openBlock(), createBlock(unref(AvatarImage), {
37
- key: 0,
38
- src: __props.src,
39
- alt: imageAlt.value,
40
- class: "rs-avatar__image"
41
- }, null, 8, ["src", "alt"])) : createCommentVNode("", true), createVNode(unref(AvatarFallback), { class: normalizeClass(["rs-avatar__fallback", `rs-avatar__fallback--${__props.tone}`]) }, {
42
- default: withCtx(() => [renderSlot(_ctx.$slots, "fallback", {}, () => [showIconFallback.value ? (openBlock(), createBlock(RsIcon_default, {
43
- key: 0,
44
- name: __props.icon,
45
- size: __props.size === "sm" ? 14 : __props.size === "lg" ? 20 : 16
46
- }, null, 8, ["name", "size"])) : (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(fallbackText.value), 1))])]),
47
- _: 3
48
- }, 8, ["class"])]),
49
- _: 3
50
- }, 8, [
51
- "class",
52
- "aria-label",
53
- "role"
54
- ]);
59
+ return openBlock(), createElementBlock("span", {
60
+ class: normalizeClass(["rs-avatar", [`rs-avatar--${resolvedSize.value}`, `rs-avatar--${resolvedShape.value}`]]),
61
+ role: rootRole.value,
62
+ "aria-label": rootLabel.value
63
+ }, [showImage.value ? (openBlock(), createElementBlock("img", {
64
+ key: 0,
65
+ class: normalizeClass(["rs-avatar__image", { "rs-avatar__image--ready": imageLoaded.value }]),
66
+ src: __props.src,
67
+ alt: imageAlt.value,
68
+ onLoad,
69
+ onError
70
+ }, null, 42, _hoisted_2)) : createCommentVNode("", true), showFallback.value ? (openBlock(), createElementBlock("span", {
71
+ key: 1,
72
+ class: normalizeClass(["rs-avatar__fallback", `rs-avatar__fallback--${resolvedTone.value}`]),
73
+ "aria-hidden": "true"
74
+ }, [renderSlot(_ctx.$slots, "fallback", {}, () => [showIconFallback.value ? (openBlock(), createBlock(RsIcon_default, {
75
+ key: 0,
76
+ name: __props.icon,
77
+ size: iconPx.value
78
+ }, null, 8, ["name", "size"])) : (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(fallbackText.value), 1))], true)], 2)) : createCommentVNode("", true)], 10, _hoisted_1);
55
79
  };
56
80
  }
57
81
  });
@@ -1,7 +1,8 @@
1
1
  import './RsAvatar.css'
2
+ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
2
3
  import RsAvatar_vue_vue_type_script_setup_true_lang_default from "./RsAvatar.impl.js";
3
4
 
4
5
  //#region src/components/avatar/src/RsAvatar.vue
5
- var RsAvatar_default = RsAvatar_vue_vue_type_script_setup_true_lang_default;
6
+ var RsAvatar_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsAvatar_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-5eb19cf0"]]);
6
7
  //#endregion
7
8
  export { RsAvatar_default as default };
@@ -1,11 +1,20 @@
1
- /** 头像尺寸 */
2
- export type RsAvatarSize = 'sm' | 'md' | 'lg';
3
- /** 头像形状 */
4
- export type RsAvatarShape = 'circle' | 'square';
5
- /** 头像占位色调 */
6
- export type RsAvatarTone = 'default' | 'primary' | 'success' | 'warning' | 'danger';
1
+ /** 头像边长。不是控件四档,没有 ssm。 */
2
+ export declare const RS_AVATAR_SIZES: readonly ["sm", "md", "lg"];
3
+ export type RsAvatarSize = (typeof RS_AVATAR_SIZES)[number];
4
+ export declare const RS_AVATAR_SHAPES: readonly ["circle", "square"];
5
+ export type RsAvatarShape = (typeof RS_AVATAR_SHAPES)[number];
6
+ export declare const RS_AVATAR_TONES: readonly ["default", "primary", "success", "warning", "danger"];
7
+ export type RsAvatarTone = (typeof RS_AVATAR_TONES)[number];
8
+ /** 回退图标边长,跟原来 sm 14 / md 16 / lg 20 一致。 */
9
+ export declare const RS_AVATAR_ICON_PX: Record<RsAvatarSize, number>;
10
+ export declare function isRsAvatarSize(value: unknown): value is RsAvatarSize;
11
+ export declare function isRsAvatarShape(value: unknown): value is RsAvatarShape;
12
+ export declare function isRsAvatarTone(value: unknown): value is RsAvatarTone;
13
+ export declare function resolveRsAvatarSize(size?: RsAvatarSize | null): RsAvatarSize;
14
+ export declare function resolveRsAvatarShape(shape?: RsAvatarShape | null): RsAvatarShape;
15
+ export declare function resolveRsAvatarTone(tone?: RsAvatarTone | null): RsAvatarTone;
7
16
  /**
8
17
  * 从姓名提取缩写(最多 2 个字符)。
9
- * @param name 显示名称
18
+ * 单段取前两字;多段取前两段首字。空串返回空,由组件改走图标。
10
19
  */
11
20
  export declare function getAvatarInitials(name: string): string;
@@ -1,13 +1,51 @@
1
1
  //#region src/components/avatar/src/avatar-utils.ts
2
+ /** 头像边长。不是控件四档,没有 ssm。 */
3
+ var RS_AVATAR_SIZES = [
4
+ "sm",
5
+ "md",
6
+ "lg"
7
+ ];
8
+ var RS_AVATAR_SHAPES = ["circle", "square"];
9
+ var RS_AVATAR_TONES = [
10
+ "default",
11
+ "primary",
12
+ "success",
13
+ "warning",
14
+ "danger"
15
+ ];
16
+ /** 回退图标边长,跟原来 sm 14 / md 16 / lg 20 一致。 */
17
+ var RS_AVATAR_ICON_PX = {
18
+ sm: 14,
19
+ md: 16,
20
+ lg: 20
21
+ };
22
+ function isRsAvatarSize(value) {
23
+ return typeof value === "string" && RS_AVATAR_SIZES.includes(value);
24
+ }
25
+ function isRsAvatarShape(value) {
26
+ return typeof value === "string" && RS_AVATAR_SHAPES.includes(value);
27
+ }
28
+ function isRsAvatarTone(value) {
29
+ return typeof value === "string" && RS_AVATAR_TONES.includes(value);
30
+ }
31
+ function resolveRsAvatarSize(size) {
32
+ return isRsAvatarSize(size) ? size : "md";
33
+ }
34
+ function resolveRsAvatarShape(shape) {
35
+ return isRsAvatarShape(shape) ? shape : "circle";
36
+ }
37
+ function resolveRsAvatarTone(tone) {
38
+ return isRsAvatarTone(tone) ? tone : "primary";
39
+ }
2
40
  /**
3
41
  * 从姓名提取缩写(最多 2 个字符)。
4
- * @param name 显示名称
42
+ * 单段取前两字;多段取前两段首字。空串返回空,由组件改走图标。
5
43
  */
6
44
  function getAvatarInitials(name) {
7
45
  const parts = name.trim().split(/\s+/).filter(Boolean);
8
- if (!parts.length) return "?";
46
+ if (!parts.length) return "";
9
47
  if (parts.length === 1) return parts[0].slice(0, 2).toUpperCase();
10
48
  return `${parts[0][0] ?? ""}${parts[1][0] ?? ""}`.toUpperCase();
11
49
  }
12
50
  //#endregion
13
- export { getAvatarInitials };
51
+ export { RS_AVATAR_ICON_PX, RS_AVATAR_SHAPES, RS_AVATAR_SIZES, RS_AVATAR_TONES, getAvatarInitials, isRsAvatarShape, isRsAvatarSize, isRsAvatarTone, resolveRsAvatarShape, resolveRsAvatarSize, resolveRsAvatarTone };
@@ -1,2 +1,2 @@
1
1
  export { default as RsBreadcrumb } from './src/RsBreadcrumb.js';
2
- export type { RsBreadcrumbItem } from './src/RsBreadcrumb.js';
2
+ export type { RsBreadcrumbItem } from './src/breadcrumb-utils';
@@ -1,37 +1,70 @@
1
1
 
2
- .rs-breadcrumb__list {
2
+ .rs-breadcrumb__list[data-v-8913d929] {
3
3
  display: flex;
4
4
  flex-wrap: wrap;
5
5
  align-items: center;
6
- gap: 0.25rem;
6
+ gap: var(--rs-breadcrumb-gap);
7
7
  margin: 0;
8
8
  padding: 0;
9
9
  list-style: none;
10
10
  }
11
- .rs-breadcrumb__item {
11
+ .rs-breadcrumb__item[data-v-8913d929] {
12
12
  display: inline-flex;
13
13
  align-items: center;
14
- gap: 0.25rem;
14
+ gap: var(--rs-breadcrumb-item-gap);
15
15
  }
16
- .rs-breadcrumb__link {
17
- font-size: var(--rs-font-size-sm);
18
- color: var(--rs-muted);
16
+ .rs-breadcrumb__link[data-v-8913d929],
17
+ .rs-breadcrumb__more[data-v-8913d929] {
18
+ display: inline-flex;
19
+ align-items: center;
20
+ gap: var(--rs-breadcrumb-item-gap);
21
+ font-size: var(--rs-breadcrumb-font-size);
22
+ line-height: var(--rs-line-height-normal);
23
+ color: var(--rs-breadcrumb-link);
19
24
  text-decoration: none;
20
- padding: 0.125rem 0.25rem;
25
+ padding-block: var(--rs-breadcrumb-link-pad-block);
26
+ padding-inline: var(--rs-breadcrumb-link-pad-inline);
27
+ border: 0;
21
28
  border-radius: var(--rs-radius-xs);
29
+ background: transparent;
30
+ cursor: pointer;
22
31
  transition:
23
32
  color var(--rs-transition-fast),
24
- background var(--rs-transition-fast);
33
+ background-color var(--rs-transition-fast);
25
34
  }
26
- .rs-breadcrumb__link:hover:not(.rs-breadcrumb__link--current) {
27
- color: var(--rs-primary);
28
- background: var(--rs-surface-hover);
35
+ .rs-breadcrumb__link[data-v-8913d929]:hover:not(.rs-breadcrumb__link--current):not(.rs-breadcrumb__link--disabled),
36
+ .rs-breadcrumb__more[data-v-8913d929]:hover {
37
+ color: var(--rs-breadcrumb-link-hover);
38
+ background: var(--rs-breadcrumb-link-hover-bg);
29
39
  }
30
- .rs-breadcrumb__link--current {
31
- color: var(--rs-text);
32
- font-weight: var(--rs-font-weight-medium);
40
+ .rs-breadcrumb__link[data-v-8913d929]:focus-visible,
41
+ .rs-breadcrumb__more[data-v-8913d929]:focus-visible {
42
+ outline: var(--rs-focus-ring-width) solid var(--rs-focus-ring);
43
+ outline-offset: 2px;
44
+ }
45
+ .rs-breadcrumb__link--current[data-v-8913d929] {
46
+ color: var(--rs-breadcrumb-current);
47
+ font-weight: var(--rs-breadcrumb-current-weight);
33
48
  pointer-events: none;
49
+ cursor: default;
50
+ }
51
+ .rs-breadcrumb__link--disabled[data-v-8913d929] {
52
+ opacity: var(--rs-breadcrumb-disabled-opacity);
53
+ cursor: not-allowed;
54
+ }
55
+ .rs-breadcrumb__sep[data-v-8913d929] {
56
+ color: var(--rs-breadcrumb-sep);
57
+ flex-shrink: 0;
58
+ }
59
+ .rs-breadcrumb__icon[data-v-8913d929] {
60
+ color: inherit;
61
+ }
62
+ .rs-breadcrumb__sep[data-v-8913d929]:dir(rtl) {
63
+ transform: scaleX(-1);
64
+ }
65
+ @media (prefers-reduced-motion: reduce) {
66
+ .rs-breadcrumb__link[data-v-8913d929],
67
+ .rs-breadcrumb__more[data-v-8913d929] {
68
+ transition: none;
34
69
  }
35
- .rs-breadcrumb__sep {
36
- color: var(--rs-muted);
37
70
  }
@@ -1,11 +1,50 @@
1
- export interface RsBreadcrumbItem {
2
- label: string;
3
- to?: string;
4
- href?: string;
5
- }
1
+ import { type RsBreadcrumbItem } from './breadcrumb-utils';
6
2
  type __VLS_Props = {
7
3
  items: RsBreadcrumbItem[];
4
+ /** 文字分隔符。未传时用 separatorIcon。 */
5
+ separator?: string;
6
+ /** Lucide kebab-case。有 separator 文字时不渲染图标。 */
7
+ separatorIcon?: string;
8
+ /** 超过该数量时中间收成省略号。省略号算一项。 */
9
+ maxItems?: number;
10
+ itemsBeforeCollapse?: number;
11
+ itemsAfterCollapse?: number;
12
+ ariaLabel?: string;
13
+ id?: string;
8
14
  };
9
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare function expand(): void;
16
+ declare var __VLS_1: {
17
+ hiddenItems: RsBreadcrumbItem[];
18
+ expand: typeof expand;
19
+ }, __VLS_16: {
20
+ item: RsBreadcrumbItem;
21
+ index: number;
22
+ isCurrent: boolean;
23
+ href: string | undefined;
24
+ }, __VLS_23: {
25
+ index: number;
26
+ };
27
+ type __VLS_Slots = {} & {
28
+ more?: (props: typeof __VLS_1) => any;
29
+ } & {
30
+ item?: (props: typeof __VLS_16) => any;
31
+ } & {
32
+ separator?: (props: typeof __VLS_23) => any;
33
+ };
34
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
35
+ click: (item: RsBreadcrumbItem, event: MouseEvent) => any;
36
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
37
+ onClick?: ((item: RsBreadcrumbItem, event: MouseEvent) => any) | undefined;
38
+ }>, {
39
+ separatorIcon: string;
40
+ itemsBeforeCollapse: number;
41
+ itemsAfterCollapse: number;
42
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
43
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
10
44
  declare const _default: typeof __VLS_export;
11
45
  export default _default;
46
+ type __VLS_WithSlots<T, S> = T & {
47
+ new (): {
48
+ $slots: S;
49
+ };
50
+ };
@@ -1,24 +1,123 @@
1
1
  import { useRsI18n } from "../../../composables/useRsI18n.js";
2
+ import RsIcon_default from "../../icon/src/RsIcon.js";
2
3
  import { buildBreadcrumbRenderItems } from "./breadcrumb-utils.js";
3
- import RsBreadcrumbItems_default from "./RsBreadcrumbItems.js";
4
- import { computed, createElementBlock, createVNode, defineComponent, openBlock, unref } from "vue";
4
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, watch, withCtx } from "vue";
5
5
  //#region src/components/breadcrumb/src/RsBreadcrumb.vue?vue&type=script&setup=true&lang.ts
6
- var _hoisted_1 = ["aria-label"];
6
+ var _hoisted_1 = ["id", "aria-label"];
7
+ var _hoisted_2 = { class: "rs-breadcrumb__list" };
8
+ var _hoisted_3 = ["aria-label"];
9
+ var _hoisted_4 = { class: "rs-breadcrumb__label" };
10
+ var _hoisted_5 = {
11
+ key: 0,
12
+ class: "rs-breadcrumb__sep",
13
+ "aria-hidden": "true"
14
+ };
7
15
  var RsBreadcrumb_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
16
+ name: "RsBreadcrumb",
8
17
  __name: "RsBreadcrumb",
9
- props: { items: {} },
10
- setup(__props) {
11
- const { t } = useRsI18n();
18
+ props: {
19
+ items: {},
20
+ separator: {},
21
+ separatorIcon: { default: "chevron-right" },
22
+ maxItems: {},
23
+ itemsBeforeCollapse: { default: 1 },
24
+ itemsAfterCollapse: { default: 1 },
25
+ ariaLabel: {},
26
+ id: {}
27
+ },
28
+ emits: ["click"],
29
+ setup(__props, { emit: __emit }) {
12
30
  const props = __props;
13
- const renderItems = computed(() => buildBreadcrumbRenderItems(props.items));
31
+ const emit = __emit;
32
+ const { t } = useRsI18n();
33
+ const expanded = ref(false);
34
+ watch(() => [
35
+ props.maxItems ?? "",
36
+ props.itemsBeforeCollapse,
37
+ props.itemsAfterCollapse,
38
+ props.items.length,
39
+ props.items.map((item, index) => item.key ?? item.label ?? index).join("\0")
40
+ ].join("\n"), () => {
41
+ expanded.value = false;
42
+ });
43
+ const renderItems = computed(() => buildBreadcrumbRenderItems(props.items, {
44
+ maxItems: props.maxItems,
45
+ itemsBeforeCollapse: props.itemsBeforeCollapse,
46
+ itemsAfterCollapse: props.itemsAfterCollapse,
47
+ expanded: expanded.value
48
+ }));
49
+ const navLabel = computed(() => props.ariaLabel || t("breadcrumb.label"));
50
+ const separatorLabel = computed(() => t("breadcrumb.separator"));
51
+ const moreLabel = computed(() => t("breadcrumb.more"));
52
+ function expand() {
53
+ expanded.value = true;
54
+ }
55
+ function onItemClick(item, event, disabled) {
56
+ emit("click", item, event);
57
+ if (disabled) event.preventDefault();
58
+ }
14
59
  return (_ctx, _cache) => {
15
60
  return openBlock(), createElementBlock("nav", {
61
+ id: __props.id,
16
62
  class: "rs-breadcrumb",
17
- "aria-label": unref(t)("breadcrumb.label")
18
- }, [createVNode(RsBreadcrumbItems_default, {
19
- items: renderItems.value,
20
- "separator-label": unref(t)("breadcrumb.separator")
21
- }, null, 8, ["items", "separator-label"])], 8, _hoisted_1);
63
+ "aria-label": navLabel.value
64
+ }, [createElementVNode("ol", _hoisted_2, [(openBlock(true), createElementBlock(Fragment, null, renderList(renderItems.value, (item, index) => {
65
+ return openBlock(), createElementBlock("li", {
66
+ key: item.key,
67
+ class: normalizeClass(["rs-breadcrumb__item", { "rs-breadcrumb__item--ellipsis": item.isEllipsis }])
68
+ }, [item.isEllipsis ? (openBlock(), createElementBlock("button", {
69
+ key: 0,
70
+ type: "button",
71
+ class: "rs-breadcrumb__more",
72
+ "aria-label": moreLabel.value,
73
+ onClick: expand
74
+ }, [renderSlot(_ctx.$slots, "more", {
75
+ hiddenItems: item.hiddenItems ?? [],
76
+ expand
77
+ }, () => [createVNode(RsIcon_default, {
78
+ name: "ellipsis",
79
+ size: "sm"
80
+ })], true)], 8, _hoisted_3)) : (openBlock(), createBlock(resolveDynamicComponent(item.isLink ? "a" : "span"), {
81
+ key: 1,
82
+ href: item.isLink ? item.href : void 0,
83
+ target: item.isLink ? item.target : void 0,
84
+ rel: item.isLink ? item.rel : void 0,
85
+ class: normalizeClass(["rs-breadcrumb__link", {
86
+ "rs-breadcrumb__link--current": item.isCurrent,
87
+ "rs-breadcrumb__link--disabled": item.isDisabled
88
+ }]),
89
+ "aria-current": item.isCurrent ? "page" : void 0,
90
+ "aria-disabled": item.isDisabled ? "true" : void 0,
91
+ onClick: ($event) => item.source ? onItemClick(item.source, $event, item.isDisabled) : void 0
92
+ }, {
93
+ default: withCtx(() => [renderSlot(_ctx.$slots, "item", {
94
+ item: item.source,
95
+ index: item.sourceIndex,
96
+ isCurrent: item.isCurrent,
97
+ href: item.href
98
+ }, () => [item.icon ? (openBlock(), createBlock(RsIcon_default, {
99
+ key: 0,
100
+ name: item.icon,
101
+ size: "sm",
102
+ class: "rs-breadcrumb__icon"
103
+ }, null, 8, ["name"])) : createCommentVNode("", true), createElementVNode("span", _hoisted_4, toDisplayString(item.label), 1)], true)]),
104
+ _: 2
105
+ }, 1032, [
106
+ "href",
107
+ "target",
108
+ "rel",
109
+ "class",
110
+ "aria-current",
111
+ "aria-disabled",
112
+ "onClick"
113
+ ])), index < renderItems.value.length - 1 ? renderSlot(_ctx.$slots, "separator", { index }, () => [__props.separator ? (openBlock(), createElementBlock("span", _hoisted_5, toDisplayString(__props.separator), 1)) : (openBlock(), createBlock(RsIcon_default, {
114
+ key: 1,
115
+ name: __props.separatorIcon,
116
+ size: "sm",
117
+ class: "rs-breadcrumb__sep",
118
+ label: separatorLabel.value
119
+ }, null, 8, ["name", "label"]))], true, 2) : createCommentVNode("", true)], 2);
120
+ }), 128))])], 8, _hoisted_1);
22
121
  };
23
122
  }
24
123
  });
@@ -1,7 +1,8 @@
1
1
  import './RsBreadcrumb.css'
2
+ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
2
3
  import RsBreadcrumb_vue_vue_type_script_setup_true_lang_default from "./RsBreadcrumb.impl.js";
3
4
 
4
5
  //#region src/components/breadcrumb/src/RsBreadcrumb.vue
5
- var RsBreadcrumb_default = RsBreadcrumb_vue_vue_type_script_setup_true_lang_default;
6
+ var RsBreadcrumb_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsBreadcrumb_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-8913d929"]]);
6
7
  //#endregion
7
8
  export { RsBreadcrumb_default as default };
@@ -1,12 +1,44 @@
1
+ export interface RsBreadcrumbItem {
2
+ key?: string;
3
+ label: string;
4
+ /** SPA 路径。未传 href 时写到 a[href]。Vue Router 请在 click 里 preventDefault 后 push,或用 #item。 */
5
+ to?: string;
6
+ /** 外链或完整地址。与 to 同时存在时以 href 为准。 */
7
+ href?: string;
8
+ /** Lucide kebab-case,写在文案前。 */
9
+ icon?: string;
10
+ disabled?: boolean;
11
+ target?: '_self' | '_blank' | '_parent' | '_top' | (string & {});
12
+ rel?: string;
13
+ }
1
14
  export interface RsBreadcrumbRenderItem {
2
15
  key: string;
16
+ sourceIndex: number;
17
+ source?: RsBreadcrumbItem;
3
18
  label: string;
4
19
  href?: string;
20
+ icon?: string;
21
+ target?: string;
22
+ rel?: string;
5
23
  isLink: boolean;
6
24
  isCurrent: boolean;
25
+ isDisabled: boolean;
26
+ isEllipsis: boolean;
27
+ hiddenItems?: RsBreadcrumbItem[];
7
28
  }
8
- export declare function buildBreadcrumbRenderItems(items: Array<{
9
- label: string;
10
- to?: string;
11
- href?: string;
12
- }>): RsBreadcrumbRenderItem[];
29
+ export interface RsBreadcrumbCollapseOptions {
30
+ maxItems?: number;
31
+ itemsBeforeCollapse?: number;
32
+ itemsAfterCollapse?: number;
33
+ expanded?: boolean;
34
+ }
35
+ /** href 优先;没有 href 时用 to,保证只传 to 的项仍是带地址的 a。 */
36
+ export declare function resolveBreadcrumbHref(item: Pick<RsBreadcrumbItem, 'href' | 'to'>): string | undefined;
37
+ /** `_blank` 时补 noopener / noreferrer,并保留调用方已有 rel。 */
38
+ export declare function mergeBreadcrumbLinkRel(rel: string | undefined, target: string | undefined): string | undefined;
39
+ export declare function pickCollapsedBreadcrumbIndexes(length: number, maxItems: number | undefined, itemsBeforeCollapse?: number, itemsAfterCollapse?: number, expanded?: boolean): {
40
+ visible: number[];
41
+ hidden: number[];
42
+ insertEllipsisAt: number;
43
+ } | null;
44
+ export declare function buildBreadcrumbRenderItems(items: RsBreadcrumbItem[], options?: RsBreadcrumbCollapseOptions): RsBreadcrumbRenderItem[];
@@ -1,12 +1,73 @@
1
1
  //#region src/components/breadcrumb/src/breadcrumb-utils.ts
2
- function buildBreadcrumbRenderItems(items) {
3
- return items.map((item, index) => ({
4
- key: `${item.label}-${index}`,
5
- label: item.label,
6
- href: item.href,
7
- isLink: Boolean(item.to || item.href),
8
- isCurrent: index === items.length - 1
9
- }));
2
+ /** href 优先;没有 href 时用 to,保证只传 to 的项仍是带地址的 a。 */
3
+ function resolveBreadcrumbHref(item) {
4
+ if (item.href) return item.href;
5
+ if (item.to) return item.to;
6
+ }
7
+ /** `_blank` 时补 noopener / noreferrer,并保留调用方已有 rel。 */
8
+ function mergeBreadcrumbLinkRel(rel, target) {
9
+ const parts = (rel ?? "").split(/\s+/).map((item) => item.trim()).filter(Boolean);
10
+ if (target === "_blank") {
11
+ if (!parts.includes("noopener")) parts.push("noopener");
12
+ if (!parts.includes("noreferrer")) parts.push("noreferrer");
13
+ }
14
+ return parts.length > 0 ? parts.join(" ") : void 0;
15
+ }
16
+ function pickCollapsedBreadcrumbIndexes(length, maxItems, itemsBeforeCollapse = 1, itemsAfterCollapse = 1, expanded = false) {
17
+ if (expanded || maxItems == null || maxItems < 2 || length <= maxItems) return null;
18
+ const before = Math.max(0, Math.floor(itemsBeforeCollapse));
19
+ const after = Math.max(1, Math.floor(itemsAfterCollapse));
20
+ if (before + after >= length) return null;
21
+ const hiddenStart = before;
22
+ const hiddenEnd = length - after;
23
+ if (hiddenStart >= hiddenEnd) return null;
24
+ const visible = [];
25
+ const hidden = [];
26
+ for (let index = 0; index < length; index += 1) if (index >= hiddenStart && index < hiddenEnd) hidden.push(index);
27
+ else visible.push(index);
28
+ return {
29
+ visible,
30
+ hidden,
31
+ insertEllipsisAt: before
32
+ };
33
+ }
34
+ function buildBreadcrumbRenderItems(items, options = {}) {
35
+ const lastIndex = items.length - 1;
36
+ const mapped = items.map((item, index) => {
37
+ const href = resolveBreadcrumbHref(item);
38
+ const disabled = Boolean(item.disabled);
39
+ return {
40
+ key: item.key ?? String(index),
41
+ sourceIndex: index,
42
+ source: item,
43
+ label: item.label,
44
+ href,
45
+ icon: item.icon,
46
+ target: item.target,
47
+ rel: mergeBreadcrumbLinkRel(item.rel, item.target),
48
+ isLink: Boolean(href) && !disabled && index !== lastIndex,
49
+ isCurrent: index === lastIndex,
50
+ isDisabled: disabled,
51
+ isEllipsis: false
52
+ };
53
+ });
54
+ const collapsed = pickCollapsedBreadcrumbIndexes(mapped.length, options.maxItems, options.itemsBeforeCollapse ?? 1, options.itemsAfterCollapse ?? 1, options.expanded ?? false);
55
+ if (!collapsed) return mapped;
56
+ const result = [];
57
+ collapsed.visible.forEach((index, visibleIndex) => {
58
+ if (visibleIndex === collapsed.insertEllipsisAt) result.push({
59
+ key: "ellipsis",
60
+ sourceIndex: -1,
61
+ label: "",
62
+ isLink: false,
63
+ isCurrent: false,
64
+ isDisabled: false,
65
+ isEllipsis: true,
66
+ hiddenItems: collapsed.hidden.map((hiddenIndex) => items[hiddenIndex])
67
+ });
68
+ result.push(mapped[index]);
69
+ });
70
+ return result;
10
71
  }
11
72
  //#endregion
12
- export { buildBreadcrumbRenderItems };
73
+ export { buildBreadcrumbRenderItems, mergeBreadcrumbLinkRel, pickCollapsedBreadcrumbIndexes, resolveBreadcrumbHref };
@@ -1,7 +1,7 @@
1
1
  import { RS_COMPONENT_SIZE_ICON_PX } from "../../../theme/types.js";
2
2
  import RsIcon_default from "../../icon/src/RsIcon.js";
3
- import { placeRsButtonTip, resolveRsButtonTone, resolveRsButtonVariant } from "./button-utils.js";
4
3
  import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
4
+ import { placeRsButtonTip, resolveRsButtonTone, resolveRsButtonVariant } from "./button-utils.js";
5
5
  import { rsRadiusCss, useResolvedRsRadius } from "../../_shared/src/resolve-radius.js";
6
6
  import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, nextTick, normalizeClass, normalizeStyle, onUnmounted, openBlock, ref, renderSlot, toDisplayString, unref, useId, useSlots, watch } from "vue";
7
7
  //#region src/components/button/src/RsButton.vue?vue&type=script&setup=true&lang.ts
@@ -1 +1,3 @@
1
1
  export { default as RsCalendarGrid } from './src/RsCalendarGrid.js';
2
+ export type { RsCalendarGridExpose, RsCalendarGridInstance, } from './src/RsCalendarGrid.js';
3
+ export type { RsCalendarCell, RsCalendarGridCellSlot, } from './src/calendar-grid-utils';