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,20 +1,48 @@
1
+ import { RS_COMPONENT_SIZE_ICON_PX } from "../../../theme/types.js";
2
+ import { useRsConfigOptional } from "../../../composables/useRsConfig.js";
3
+ import { resolveDirMode } from "../../../locale/apply.js";
1
4
  import { useRsI18n } from "../../../composables/useRsI18n.js";
2
5
  import RsIcon_default from "../../icon/src/RsIcon.js";
3
- import { buildCalendarGrid, formatDateParts, isDateBetweenParsed, isDateWithinBounds, isSameDate } from "../../date-picker/src/date-picker-utils.js";
4
- import { Fragment, computed, createElementBlock, createElementVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderList, toDisplayString, unref, useModel } from "vue";
6
+ import { useRsFormContext } from "../../form/src/form-utils.js";
7
+ import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
8
+ import { rsRadiusCss, useResolvedRsRadius } from "../../_shared/src/resolve-radius.js";
9
+ import { buildCalendarGrid, getTodayDate, isSameDate, resolveWeekStartsOn } from "../../date-picker/src/date-picker-utils.js";
10
+ import { addCalendarMonths, calendarCellClass, chunkCalendarWeeks, resolveCalendarCellState, resolveFocusedDate, resolveKeyboardMove, sameYearMonth, toDisabledDateSet, weekNumberOfRow } from "./calendar-grid-utils.js";
11
+ import { Fragment, computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useModel, watch } from "vue";
5
12
  //#region src/components/calendar-grid/src/RsCalendarGrid.vue?vue&type=script&setup=true&lang.ts
6
- var _hoisted_1 = { class: "rs-calendar-grid" };
13
+ var _hoisted_1 = ["id"];
7
14
  var _hoisted_2 = { class: "rs-calendar-grid__header" };
8
15
  var _hoisted_3 = { class: "rs-calendar-grid__nav-group" };
9
- var _hoisted_4 = ["aria-label"];
10
- var _hoisted_5 = ["aria-label"];
11
- var _hoisted_6 = { class: "rs-calendar-grid__title" };
16
+ var _hoisted_4 = ["aria-label", "disabled"];
17
+ var _hoisted_5 = ["aria-label", "disabled"];
18
+ var _hoisted_6 = {
19
+ class: "rs-calendar-grid__title",
20
+ "aria-live": "polite"
21
+ };
12
22
  var _hoisted_7 = { class: "rs-calendar-grid__nav-group" };
13
- var _hoisted_8 = ["aria-label"];
14
- var _hoisted_9 = ["aria-label"];
15
- var _hoisted_10 = { class: "rs-calendar-grid__table" };
16
- var _hoisted_11 = ["disabled", "onClick"];
23
+ var _hoisted_8 = ["aria-label", "disabled"];
24
+ var _hoisted_9 = ["aria-label", "disabled"];
25
+ var _hoisted_10 = ["aria-label"];
26
+ var _hoisted_11 = {
27
+ key: 0,
28
+ scope: "col",
29
+ class: "rs-calendar-grid__weekday rs-calendar-grid__weekday--week"
30
+ };
31
+ var _hoisted_12 = {
32
+ key: 0,
33
+ class: "rs-calendar-grid__week-num"
34
+ };
35
+ var _hoisted_13 = [
36
+ "data-iso",
37
+ "disabled",
38
+ "tabindex",
39
+ "aria-selected",
40
+ "aria-current",
41
+ "aria-label",
42
+ "onClick"
43
+ ];
17
44
  var RsCalendarGrid_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
45
+ name: "RsCalendarGrid",
18
46
  __name: "RsCalendarGrid",
19
47
  props: /*@__PURE__*/ mergeModels({
20
48
  selected: { default: null },
@@ -22,7 +50,33 @@ var RsCalendarGrid_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
22
50
  rangeEnd: { default: null },
23
51
  minDate: {},
24
52
  maxDate: {},
25
- disabledDates: { default: () => [] }
53
+ disabledDates: { default: () => [] },
54
+ disabledDate: {},
55
+ weekStartsOn: {},
56
+ size: {},
57
+ radius: {},
58
+ disabled: {
59
+ type: Boolean,
60
+ default: false
61
+ },
62
+ highlightToday: {
63
+ type: Boolean,
64
+ default: true
65
+ },
66
+ showOutside: {
67
+ type: Boolean,
68
+ default: true
69
+ },
70
+ selectOutside: {
71
+ type: Boolean,
72
+ default: true
73
+ },
74
+ showWeekNumbers: {
75
+ type: Boolean,
76
+ default: false
77
+ },
78
+ ariaLabel: {},
79
+ id: {}
26
80
  }, {
27
81
  "viewYear": { required: true },
28
82
  "viewYearModifiers": {},
@@ -30,151 +84,268 @@ var RsCalendarGrid_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ d
30
84
  "viewMonthModifiers": {}
31
85
  }),
32
86
  emits: /*@__PURE__*/ mergeModels(["select"], ["update:viewYear", "update:viewMonth"]),
33
- setup(__props, { emit: __emit }) {
87
+ setup(__props, { expose: __expose, emit: __emit }) {
34
88
  const viewYear = useModel(__props, "viewYear");
35
89
  const viewMonth = useModel(__props, "viewMonth");
36
90
  const props = __props;
37
91
  const emit = __emit;
38
92
  const { t, locale } = useRsI18n();
93
+ const config = useRsConfigOptional();
94
+ const form = useRsFormContext();
95
+ const resolvedSize = useResolvedRsComponentSize(() => props.size);
96
+ const resolvedRadius = useResolvedRsRadius(() => props.radius, "sm");
97
+ const rootRef = ref(null);
98
+ const focused = ref(resolveFocusedDate(viewYear.value, viewMonth.value, props.selected));
99
+ const resolvedDisabled = computed(() => props.disabled || form?.disabled.value === true);
100
+ const writingDir = computed(() => resolveDirMode(config?.dir.value ?? "auto", locale.value));
101
+ const resolvedWeekStartsOn = computed(() => resolveWeekStartsOn(locale.value, props.weekStartsOn));
102
+ const navIconSize = computed(() => RS_COMPONENT_SIZE_ICON_PX[resolvedSize.value]);
103
+ const disabledDateSet = computed(() => toDisabledDateSet(props.disabledDates));
104
+ const todayDate = computed(() => props.highlightToday ? getTodayDate() : null);
39
105
  const weekdayLabels = computed(() => {
40
106
  const formatter = new Intl.DateTimeFormat(locale.value, { weekday: "short" });
41
- const monday = new Date(2024, 0, 1);
107
+ const sunday = new Date(2024, 0, 7);
42
108
  return Array.from({ length: 7 }, (_, index) => {
43
- const date = new Date(monday);
44
- date.setDate(monday.getDate() + index);
109
+ const date = new Date(sunday);
110
+ date.setDate(sunday.getDate() + (resolvedWeekStartsOn.value + index) % 7);
45
111
  return formatter.format(date);
46
112
  });
47
113
  });
48
- const monthLabel = computed(() => new Intl.DateTimeFormat(locale.value, {
114
+ const monthFormatter = computed(() => new Intl.DateTimeFormat(locale.value, {
49
115
  year: "numeric",
50
116
  month: "long"
51
- }).format(new Date(viewYear.value, viewMonth.value - 1, 1)));
52
- const cells = computed(() => buildCalendarGrid(viewYear.value, viewMonth.value));
53
- const weeks = computed(() => {
54
- const rows = [];
55
- for (let index = 0; index < cells.value.length; index += 7) rows.push(cells.value.slice(index, index + 7));
56
- return rows;
117
+ }));
118
+ const monthLabel = computed(() => monthFormatter.value.format(new Date(viewYear.value, viewMonth.value - 1, 1)));
119
+ const cellAriaFormatter = computed(() => new Intl.DateTimeFormat(locale.value, { dateStyle: "full" }));
120
+ const cellViews = computed(() => {
121
+ return buildCalendarGrid(viewYear.value, viewMonth.value, resolvedWeekStartsOn.value).map((cell) => ({
122
+ cell,
123
+ state: resolveCalendarCellState(cell, {
124
+ selected: props.selected,
125
+ rangeStart: props.rangeStart,
126
+ rangeEnd: props.rangeEnd,
127
+ today: todayDate.value,
128
+ disabledDates: disabledDateSet.value,
129
+ disabledDate: props.disabledDate,
130
+ minDate: props.minDate,
131
+ maxDate: props.maxDate,
132
+ gridDisabled: resolvedDisabled.value
133
+ })
134
+ }));
57
135
  });
136
+ const weeks = computed(() => chunkCalendarWeeks(cellViews.value).map((days) => ({
137
+ days,
138
+ weekNumber: weekNumberOfRow(days, resolvedWeekStartsOn.value)
139
+ })));
140
+ const gridLabel = computed(() => props.ariaLabel || t("calendarGrid.label"));
141
+ const rootStyle = computed(() => ({ "--rs-calendar-grid-radius": rsRadiusCss(resolvedRadius.value) }));
142
+ function cellAriaLabel(date) {
143
+ return cellAriaFormatter.value.format(new Date(date.year, date.month - 1, date.day));
144
+ }
145
+ function cellSlotProps(view, weekNumber) {
146
+ return {
147
+ date: {
148
+ year: view.cell.year,
149
+ month: view.cell.month,
150
+ day: view.cell.day
151
+ },
152
+ iso: view.state.iso,
153
+ inCurrentMonth: view.cell.inCurrentMonth,
154
+ selected: view.state.selected,
155
+ disabled: view.state.disabled,
156
+ today: view.state.today,
157
+ inRange: view.state.inRange,
158
+ rangeStart: view.state.rangeStart,
159
+ rangeEnd: view.state.rangeEnd,
160
+ weekNumber
161
+ };
162
+ }
163
+ function isCellInteractive(inCurrentMonth, disabled) {
164
+ if (disabled) return false;
165
+ if (!inCurrentMonth && !props.showOutside) return false;
166
+ if (!inCurrentMonth && !props.selectOutside) return false;
167
+ return true;
168
+ }
169
+ function isCellTabbable(date, inCurrentMonth) {
170
+ if (!props.showOutside && !inCurrentMonth) return false;
171
+ return isSameDate(focused.value, date);
172
+ }
173
+ function applyView(next) {
174
+ if (next.year !== viewYear.value) viewYear.value = next.year;
175
+ if (next.month !== viewMonth.value) viewMonth.value = next.month;
176
+ focused.value = next;
177
+ }
178
+ function focusCell(date) {
179
+ const iso = `${String(date.year).padStart(4, "0")}-${String(date.month).padStart(2, "0")}-${String(date.day).padStart(2, "0")}`;
180
+ (rootRef.value?.querySelector(`[data-iso="${iso}"]`))?.focus();
181
+ }
58
182
  function goPrevYear() {
59
- viewYear.value -= 1;
183
+ if (resolvedDisabled.value) return;
184
+ applyView(addCalendarMonths({
185
+ year: viewYear.value,
186
+ month: viewMonth.value,
187
+ day: focused.value.day
188
+ }, -12));
60
189
  }
61
190
  function goNextYear() {
62
- viewYear.value += 1;
191
+ if (resolvedDisabled.value) return;
192
+ applyView(addCalendarMonths({
193
+ year: viewYear.value,
194
+ month: viewMonth.value,
195
+ day: focused.value.day
196
+ }, 12));
63
197
  }
64
198
  function goPrevMonth() {
65
- if (viewMonth.value === 1) {
66
- viewYear.value -= 1;
67
- viewMonth.value = 12;
68
- return;
69
- }
70
- viewMonth.value -= 1;
199
+ if (resolvedDisabled.value) return;
200
+ applyView(addCalendarMonths({
201
+ year: viewYear.value,
202
+ month: viewMonth.value,
203
+ day: focused.value.day
204
+ }, -1));
71
205
  }
72
206
  function goNextMonth() {
73
- if (viewMonth.value === 12) {
74
- viewYear.value += 1;
75
- viewMonth.value = 1;
76
- return;
77
- }
78
- viewMonth.value += 1;
207
+ if (resolvedDisabled.value) return;
208
+ applyView(addCalendarMonths({
209
+ year: viewYear.value,
210
+ month: viewMonth.value,
211
+ day: focused.value.day
212
+ }, 1));
79
213
  }
80
- function isSelected(cell) {
81
- return props.selected ? isSameDate(props.selected, cell) : false;
82
- }
83
- function isRangeStart(cell) {
84
- return props.rangeStart ? isSameDate(props.rangeStart, cell) : false;
214
+ function selectDate(date, inCurrentMonth, disabled) {
215
+ if (!isCellInteractive(inCurrentMonth, disabled)) return;
216
+ focused.value = date;
217
+ emit("select", {
218
+ year: date.year,
219
+ month: date.month,
220
+ day: date.day
221
+ });
85
222
  }
86
- function isRangeEnd(cell) {
87
- return props.rangeEnd ? isSameDate(props.rangeEnd, cell) : false;
223
+ function moveFocus(next) {
224
+ applyView(next);
225
+ nextTick(() => focusCell(next));
88
226
  }
89
- function isInRange(cell) {
90
- if (!props.rangeStart || !props.rangeEnd) return false;
91
- return isDateBetweenParsed(cell, props.rangeStart, props.rangeEnd);
227
+ function selectFocusedDate() {
228
+ const view = cellViews.value.find((item) => isSameDate(item.cell, focused.value));
229
+ if (view) selectDate(view.cell, view.cell.inCurrentMonth, view.state.disabled);
92
230
  }
93
- function isDisabled(cell) {
94
- const iso = formatDateParts(cell);
95
- if (props.disabledDates.includes(iso)) return true;
96
- return !isDateWithinBounds(cell.year, cell.month, cell.day, {
97
- minDate: props.minDate,
98
- maxDate: props.maxDate
231
+ function onGridKeydown(event) {
232
+ if (resolvedDisabled.value) return;
233
+ if (event.key === "Enter" || event.key === " ") {
234
+ event.preventDefault();
235
+ selectFocusedDate();
236
+ return;
237
+ }
238
+ const next = resolveKeyboardMove(focused.value, event.key, {
239
+ weekStartsOn: resolvedWeekStartsOn.value,
240
+ rtl: writingDir.value === "rtl",
241
+ shiftKey: event.shiftKey
99
242
  });
243
+ if (!next) return;
244
+ event.preventDefault();
245
+ moveFocus(next);
100
246
  }
101
- function cellClass(cell) {
102
- const endpoint = isRangeStart(cell) || isRangeEnd(cell);
103
- const inRange = isInRange(cell);
104
- const selected = isSelected(cell);
105
- return {
106
- "rs-calendar-grid__cell--outside": !cell.inCurrentMonth,
107
- "rs-calendar-grid__cell--selected": selected,
108
- "rs-calendar-grid__cell--range-start": isRangeStart(cell),
109
- "rs-calendar-grid__cell--range-end": isRangeEnd(cell),
110
- "rs-calendar-grid__cell--in-range": inRange && !endpoint,
111
- "rs-calendar-grid__cell--endpoint": endpoint || selected
112
- };
247
+ function focus() {
248
+ if (resolvedDisabled.value) return;
249
+ if (!sameYearMonth(focused.value, viewYear.value, viewMonth.value)) focused.value = resolveFocusedDate(viewYear.value, viewMonth.value, props.selected);
250
+ nextTick(() => focusCell(focused.value));
113
251
  }
114
- function selectDate(cell) {
115
- if (isDisabled(cell)) return;
116
- emit("select", {
117
- year: cell.year,
118
- month: cell.month,
119
- day: cell.day
120
- });
252
+ function goToToday() {
253
+ if (resolvedDisabled.value) return;
254
+ const today = getTodayDate();
255
+ applyView(today);
256
+ nextTick(() => focusCell(today));
121
257
  }
258
+ watch(() => [
259
+ viewYear.value,
260
+ viewMonth.value,
261
+ props.selected
262
+ ], () => {
263
+ if (!sameYearMonth(focused.value, viewYear.value, viewMonth.value)) focused.value = resolveFocusedDate(viewYear.value, viewMonth.value, props.selected);
264
+ });
265
+ __expose({
266
+ focus,
267
+ goToToday
268
+ });
122
269
  return (_ctx, _cache) => {
123
- return openBlock(), createElementBlock("div", _hoisted_1, [createElementVNode("div", _hoisted_2, [
270
+ return openBlock(), createElementBlock("div", {
271
+ id: __props.id,
272
+ ref_key: "rootRef",
273
+ ref: rootRef,
274
+ class: normalizeClass(["rs-calendar-grid", [`rs-calendar-grid--${unref(resolvedSize)}`, { "rs-calendar-grid--disabled": resolvedDisabled.value }]]),
275
+ style: normalizeStyle(rootStyle.value)
276
+ }, [createElementVNode("div", _hoisted_2, [
124
277
  createElementVNode("div", _hoisted_3, [createElementVNode("button", {
125
278
  type: "button",
126
279
  class: "rs-calendar-grid__nav rs-calendar-grid__nav--prev-year",
127
- "aria-label": unref(t)("datePicker.prevYear"),
280
+ "aria-label": unref(t)("calendarGrid.prevYear"),
281
+ disabled: resolvedDisabled.value,
128
282
  onClick: goPrevYear
129
283
  }, [createVNode(RsIcon_default, {
130
284
  name: "chevrons-left",
131
- size: 16
132
- })], 8, _hoisted_4), createElementVNode("button", {
285
+ size: navIconSize.value
286
+ }, null, 8, ["size"])], 8, _hoisted_4), createElementVNode("button", {
133
287
  type: "button",
134
288
  class: "rs-calendar-grid__nav rs-calendar-grid__nav--prev-month",
135
- "aria-label": unref(t)("datePicker.prevMonth"),
289
+ "aria-label": unref(t)("calendarGrid.prevMonth"),
290
+ disabled: resolvedDisabled.value,
136
291
  onClick: goPrevMonth
137
292
  }, [createVNode(RsIcon_default, {
138
293
  name: "chevron-left",
139
- size: 16
140
- })], 8, _hoisted_5)]),
141
- createElementVNode("span", _hoisted_6, toDisplayString(monthLabel.value), 1),
294
+ size: navIconSize.value
295
+ }, null, 8, ["size"])], 8, _hoisted_5)]),
296
+ createElementVNode("span", _hoisted_6, [renderSlot(_ctx.$slots, "title", {
297
+ year: viewYear.value,
298
+ month: viewMonth.value,
299
+ label: monthLabel.value
300
+ }, () => [createTextVNode(toDisplayString(monthLabel.value), 1)], true)]),
142
301
  createElementVNode("div", _hoisted_7, [createElementVNode("button", {
143
302
  type: "button",
144
303
  class: "rs-calendar-grid__nav rs-calendar-grid__nav--next-month",
145
- "aria-label": unref(t)("datePicker.nextMonth"),
304
+ "aria-label": unref(t)("calendarGrid.nextMonth"),
305
+ disabled: resolvedDisabled.value,
146
306
  onClick: goNextMonth
147
307
  }, [createVNode(RsIcon_default, {
148
308
  name: "chevron-right",
149
- size: 16
150
- })], 8, _hoisted_8), createElementVNode("button", {
309
+ size: navIconSize.value
310
+ }, null, 8, ["size"])], 8, _hoisted_8), createElementVNode("button", {
151
311
  type: "button",
152
312
  class: "rs-calendar-grid__nav rs-calendar-grid__nav--next-year",
153
- "aria-label": unref(t)("datePicker.nextYear"),
313
+ "aria-label": unref(t)("calendarGrid.nextYear"),
314
+ disabled: resolvedDisabled.value,
154
315
  onClick: goNextYear
155
316
  }, [createVNode(RsIcon_default, {
156
317
  name: "chevrons-right",
157
- size: 16
158
- })], 8, _hoisted_9)])
159
- ]), createElementVNode("table", _hoisted_10, [createElementVNode("thead", null, [createElementVNode("tr", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(weekdayLabels.value, (label, index) => {
318
+ size: navIconSize.value
319
+ }, null, 8, ["size"])], 8, _hoisted_9)])
320
+ ]), createElementVNode("table", {
321
+ class: "rs-calendar-grid__table",
322
+ "aria-label": gridLabel.value,
323
+ onKeydown: onGridKeydown
324
+ }, [createElementVNode("thead", null, [createElementVNode("tr", null, [__props.showWeekNumbers ? (openBlock(), createElementBlock("th", _hoisted_11, toDisplayString(unref(t)("calendarGrid.week")), 1)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(weekdayLabels.value, (label, index) => {
160
325
  return openBlock(), createElementBlock("th", {
161
326
  key: index,
162
327
  scope: "col",
163
328
  class: "rs-calendar-grid__weekday"
164
329
  }, toDisplayString(label), 1);
165
330
  }), 128))])]), createElementVNode("tbody", null, [(openBlock(true), createElementBlock(Fragment, null, renderList(weeks.value, (week, weekIndex) => {
166
- return openBlock(), createElementBlock("tr", { key: weekIndex }, [(openBlock(true), createElementBlock(Fragment, null, renderList(week, (cell) => {
331
+ return openBlock(), createElementBlock("tr", { key: weekIndex }, [__props.showWeekNumbers ? (openBlock(), createElementBlock("td", _hoisted_12, toDisplayString(week.weekNumber), 1)) : createCommentVNode("", true), (openBlock(true), createElementBlock(Fragment, null, renderList(week.days, (view) => {
167
332
  return openBlock(), createElementBlock("td", {
168
- key: unref(formatDateParts)(cell),
333
+ key: view.state.iso,
169
334
  class: "rs-calendar-grid__day"
170
- }, [createElementVNode("button", {
335
+ }, [view.cell.inCurrentMonth || __props.showOutside ? (openBlock(), createElementBlock("button", {
336
+ key: 0,
171
337
  type: "button",
172
- class: normalizeClass(["rs-calendar-grid__cell", cellClass(cell)]),
173
- disabled: isDisabled(cell),
174
- onClick: ($event) => selectDate(cell)
175
- }, toDisplayString(cell.day), 11, _hoisted_11)]);
338
+ class: normalizeClass(["rs-calendar-grid__cell", unref(calendarCellClass)(view.state, view.cell.inCurrentMonth)]),
339
+ "data-iso": view.state.iso,
340
+ disabled: view.state.disabled || !view.cell.inCurrentMonth && !__props.selectOutside,
341
+ tabindex: isCellTabbable(view.cell, view.cell.inCurrentMonth) ? 0 : -1,
342
+ "aria-selected": view.state.selected || view.state.rangeStart || view.state.rangeEnd,
343
+ "aria-current": view.state.today ? "date" : void 0,
344
+ "aria-label": cellAriaLabel(view.cell),
345
+ onClick: ($event) => selectDate(view.cell, view.cell.inCurrentMonth, view.state.disabled)
346
+ }, [renderSlot(_ctx.$slots, "cell", mergeProps({ ref_for: true }, cellSlotProps(view, week.weekNumber)), () => [createTextVNode(toDisplayString(view.cell.day), 1)], true)], 10, _hoisted_13)) : createCommentVNode("", true)]);
176
347
  }), 128))]);
177
- }), 128))])])]);
348
+ }), 128))])], 40, _hoisted_10)], 14, _hoisted_1);
178
349
  };
179
350
  }
180
351
  });
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
3
3
  import RsCalendarGrid_vue_vue_type_script_setup_true_lang_default from "./RsCalendarGrid.impl.js";
4
4
 
5
5
  //#region src/components/calendar-grid/src/RsCalendarGrid.vue
6
- var RsCalendarGrid_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsCalendarGrid_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-35786efd"]]);
6
+ var RsCalendarGrid_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsCalendarGrid_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-e9d29258"]]);
7
7
  //#endregion
8
8
  export { RsCalendarGrid_default as default };
@@ -0,0 +1,72 @@
1
+ import { type RsCalendarCell, type RsDatePickerDisabledDate, type RsParsedDate, type RsWeekStartsOn } from '../../date-picker/src/date-picker-utils';
2
+ export type { RsCalendarCell, RsDatePickerDisabledDate, RsParsedDate, RsWeekStartsOn, };
3
+ /** `#cell` 插槽载荷。墙钟年月日,不是 Date。 */
4
+ export interface RsCalendarGridCellSlot {
5
+ date: RsParsedDate;
6
+ iso: string;
7
+ inCurrentMonth: boolean;
8
+ selected: boolean;
9
+ disabled: boolean;
10
+ today: boolean;
11
+ inRange: boolean;
12
+ rangeStart: boolean;
13
+ rangeEnd: boolean;
14
+ weekNumber: number;
15
+ }
16
+ export interface RsCalendarCellState {
17
+ iso: string;
18
+ selected: boolean;
19
+ rangeStart: boolean;
20
+ rangeEnd: boolean;
21
+ inRange: boolean;
22
+ endpoint: boolean;
23
+ today: boolean;
24
+ disabled: boolean;
25
+ }
26
+ export interface RsCalendarCellView {
27
+ cell: RsCalendarCell;
28
+ state: RsCalendarCellState;
29
+ }
30
+ export interface RsCalendarWeekView {
31
+ days: RsCalendarCellView[];
32
+ weekNumber: number;
33
+ }
34
+ export declare function toDisabledDateSet(dates: readonly string[] | undefined): Set<string>;
35
+ export declare function isCalendarCellDisabled(cell: RsParsedDate, options: {
36
+ disabledDates: ReadonlySet<string>;
37
+ disabledDate?: RsDatePickerDisabledDate;
38
+ minDate?: string;
39
+ maxDate?: string;
40
+ }): boolean;
41
+ export declare function resolveCalendarCellState(cell: RsCalendarCell, options: {
42
+ selected?: RsParsedDate | null;
43
+ rangeStart?: RsParsedDate | null;
44
+ rangeEnd?: RsParsedDate | null;
45
+ today?: RsParsedDate | null;
46
+ disabledDates: ReadonlySet<string>;
47
+ disabledDate?: RsDatePickerDisabledDate;
48
+ minDate?: string;
49
+ maxDate?: string;
50
+ gridDisabled?: boolean;
51
+ }): RsCalendarCellState;
52
+ export declare function calendarCellClass(state: RsCalendarCellState, inCurrentMonth: boolean): Record<string, boolean>;
53
+ export declare function shiftViewMonth(year: number, month: number, delta: number): {
54
+ year: number;
55
+ month: number;
56
+ };
57
+ export declare function shiftViewYear(year: number, delta: number): number;
58
+ export declare function addCalendarDays(date: RsParsedDate, days: number): RsParsedDate;
59
+ export declare function addCalendarMonths(date: RsParsedDate, months: number): RsParsedDate;
60
+ export declare function startOfCalendarWeek(date: RsParsedDate, weekStartsOn: RsWeekStartsOn): RsParsedDate;
61
+ export declare function endOfCalendarWeek(date: RsParsedDate, weekStartsOn: RsWeekStartsOn): RsParsedDate;
62
+ /** ISO-8601 周序号(周四所在年)。不引入 dayjs isoWeek 插件。 */
63
+ export declare function isoWeekOf(date: RsParsedDate): number;
64
+ export declare function weekNumberOfRow(days: readonly RsCalendarCellView[], weekStartsOn: RsWeekStartsOn): number;
65
+ export declare function chunkCalendarWeeks(cells: readonly RsCalendarCellView[]): RsCalendarCellView[][];
66
+ export declare function resolveKeyboardMove(focused: RsParsedDate, key: string, options: {
67
+ weekStartsOn: RsWeekStartsOn;
68
+ rtl: boolean;
69
+ shiftKey: boolean;
70
+ }): RsParsedDate | null;
71
+ export declare function resolveFocusedDate(viewYear: number, viewMonth: number, selected?: RsParsedDate | null): RsParsedDate;
72
+ export declare function sameYearMonth(date: RsParsedDate, year: number, month: number): boolean;
@@ -0,0 +1,122 @@
1
+ import { dayjs } from "../../../utils/rs-dayjs.js";
2
+ import { formatDateParts, getTodayDate, isDateBetweenParsed, isDateWithinBounds, isSameDate } from "../../date-picker/src/date-picker-utils.js";
3
+ //#region src/components/calendar-grid/src/calendar-grid-utils.ts
4
+ function toDisabledDateSet(dates) {
5
+ return new Set(dates ?? []);
6
+ }
7
+ function isCalendarCellDisabled(cell, options) {
8
+ const iso = formatDateParts(cell);
9
+ if (options.disabledDates.has(iso)) return true;
10
+ if (options.disabledDate?.({
11
+ year: cell.year,
12
+ month: cell.month,
13
+ day: cell.day
14
+ })) return true;
15
+ return !isDateWithinBounds(cell.year, cell.month, cell.day, {
16
+ minDate: options.minDate,
17
+ maxDate: options.maxDate
18
+ });
19
+ }
20
+ function resolveCalendarCellState(cell, options) {
21
+ const selected = options.selected ? isSameDate(options.selected, cell) : false;
22
+ const rangeStart = options.rangeStart ? isSameDate(options.rangeStart, cell) : false;
23
+ const rangeEnd = options.rangeEnd ? isSameDate(options.rangeEnd, cell) : false;
24
+ const inRange = Boolean(options.rangeStart && options.rangeEnd && isDateBetweenParsed(cell, options.rangeStart, options.rangeEnd));
25
+ const endpoint = rangeStart || rangeEnd || selected;
26
+ return {
27
+ iso: formatDateParts(cell),
28
+ selected,
29
+ rangeStart,
30
+ rangeEnd,
31
+ inRange: inRange && !endpoint,
32
+ endpoint,
33
+ today: options.today ? isSameDate(options.today, cell) : false,
34
+ disabled: options.gridDisabled === true || isCalendarCellDisabled(cell, options)
35
+ };
36
+ }
37
+ function calendarCellClass(state, inCurrentMonth) {
38
+ return {
39
+ "rs-calendar-grid__cell--outside": !inCurrentMonth,
40
+ "rs-calendar-grid__cell--selected": state.selected,
41
+ "rs-calendar-grid__cell--range-start": state.rangeStart,
42
+ "rs-calendar-grid__cell--range-end": state.rangeEnd,
43
+ "rs-calendar-grid__cell--in-range": state.inRange,
44
+ "rs-calendar-grid__cell--endpoint": state.endpoint,
45
+ "rs-calendar-grid__cell--today": state.today
46
+ };
47
+ }
48
+ function addCalendarDays(date, days) {
49
+ const next = dayjs().year(date.year).month(date.month - 1).date(date.day).add(days, "day");
50
+ return {
51
+ year: next.year(),
52
+ month: next.month() + 1,
53
+ day: next.date()
54
+ };
55
+ }
56
+ function addCalendarMonths(date, months) {
57
+ const nextMonth = dayjs().year(date.year).month(date.month - 1).date(1).add(months, "month");
58
+ const maxDay = nextMonth.daysInMonth();
59
+ return {
60
+ year: nextMonth.year(),
61
+ month: nextMonth.month() + 1,
62
+ day: Math.min(date.day, maxDay)
63
+ };
64
+ }
65
+ function startOfCalendarWeek(date, weekStartsOn) {
66
+ return addCalendarDays(date, -((dayjs().year(date.year).month(date.month - 1).date(date.day).day() - weekStartsOn + 7) % 7));
67
+ }
68
+ function endOfCalendarWeek(date, weekStartsOn) {
69
+ return addCalendarDays(startOfCalendarWeek(date, weekStartsOn), 6);
70
+ }
71
+ /** ISO-8601 周序号(周四所在年)。不引入 dayjs isoWeek 插件。 */
72
+ function isoWeekOf(date) {
73
+ const current = dayjs().year(date.year).month(date.month - 1).date(date.day);
74
+ const weekday = current.day() || 7;
75
+ const thursday = current.add(4 - weekday, "day");
76
+ const jan1 = dayjs().year(thursday.year()).month(0).date(1);
77
+ return Math.ceil((thursday.diff(jan1, "day") + 1) / 7);
78
+ }
79
+ function weekNumberOfRow(days, weekStartsOn) {
80
+ const pivot = days[(4 - weekStartsOn + 7) % 7]?.cell ?? days[0]?.cell;
81
+ return pivot ? isoWeekOf(pivot) : 0;
82
+ }
83
+ function chunkCalendarWeeks(cells) {
84
+ const rows = [];
85
+ for (let index = 0; index < cells.length; index += 7) rows.push(cells.slice(index, index + 7));
86
+ return rows;
87
+ }
88
+ function arrowDayDelta(key, rtl) {
89
+ if (key === "ArrowLeft") return rtl ? 1 : -1;
90
+ if (key === "ArrowRight") return rtl ? -1 : 1;
91
+ if (key === "ArrowUp") return -7;
92
+ if (key === "ArrowDown") return 7;
93
+ return null;
94
+ }
95
+ function resolveKeyboardMove(focused, key, options) {
96
+ const days = arrowDayDelta(key, options.rtl);
97
+ if (days != null) return addCalendarDays(focused, days);
98
+ if (key === "Home") return startOfCalendarWeek(focused, options.weekStartsOn);
99
+ if (key === "End") return endOfCalendarWeek(focused, options.weekStartsOn);
100
+ if (key === "PageUp") return addCalendarMonths(focused, options.shiftKey ? -12 : -1);
101
+ if (key === "PageDown") return addCalendarMonths(focused, options.shiftKey ? 12 : 1);
102
+ return null;
103
+ }
104
+ function resolveFocusedDate(viewYear, viewMonth, selected) {
105
+ if (selected?.year === viewYear && selected.month === viewMonth) return {
106
+ year: selected.year,
107
+ month: selected.month,
108
+ day: selected.day
109
+ };
110
+ const today = getTodayDate();
111
+ if (today.year === viewYear && today.month === viewMonth) return today;
112
+ return {
113
+ year: viewYear,
114
+ month: viewMonth,
115
+ day: 1
116
+ };
117
+ }
118
+ function sameYearMonth(date, year, month) {
119
+ return date.year === year && date.month === month;
120
+ }
121
+ //#endregion
122
+ export { addCalendarDays, addCalendarMonths, calendarCellClass, chunkCalendarWeeks, endOfCalendarWeek, isCalendarCellDisabled, isoWeekOf, resolveCalendarCellState, resolveFocusedDate, resolveKeyboardMove, sameYearMonth, startOfCalendarWeek, toDisabledDateSet, weekNumberOfRow };
@@ -1,2 +1,2 @@
1
1
  export { default as RsCard } from './src/RsCard.js';
2
- export type { RsCardSize, RsCardVariant } from './src/RsCard.js';
2
+ export type { RsCardSize, RsCardVariant } from './src/card-utils';