niuma-ui 2.0.4 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/CHANGELOG.md +67 -0
  2. package/NOTICE +0 -1
  3. package/README.md +3 -3
  4. package/README.zh-CN.md +3 -3
  5. package/dist/components/_shared/index.d.ts +2 -2
  6. package/dist/components/_shared/src/overlay-utils.d.ts +44 -1
  7. package/dist/components/_shared/src/overlay-utils.js +87 -2
  8. package/dist/components/alert/index.d.ts +1 -0
  9. package/dist/components/alert/src/RsAlert.css +120 -65
  10. package/dist/components/alert/src/RsAlert.d.ts +24 -5
  11. package/dist/components/alert/src/RsAlert.impl.js +108 -36
  12. package/dist/components/alert/src/RsAlert.js +1 -1
  13. package/dist/components/alert/src/alert-utils.d.ts +37 -0
  14. package/dist/components/alert/src/alert-utils.js +71 -0
  15. package/dist/components/auto-complete/src/RsAutoComplete.d.ts +1 -1
  16. package/dist/components/button/src/RsButton.css +75 -72
  17. package/dist/components/button/src/RsButton.d.ts +1 -4
  18. package/dist/components/button/src/RsButton.impl.js +3 -7
  19. package/dist/components/button/src/RsButton.js +1 -1
  20. package/dist/components/card/src/RsCard.d.ts +1 -1
  21. package/dist/components/code-block/index.d.ts +1 -0
  22. package/dist/components/code-block/src/RsCodeBlock.css +93 -52
  23. package/dist/components/code-block/src/RsCodeBlock.d.ts +36 -9
  24. package/dist/components/code-block/src/RsCodeBlock.impl.js +203 -84
  25. package/dist/components/code-block/src/RsCodeBlock.js +1 -1
  26. package/dist/components/code-block/src/code-block-highlight.d.ts +4 -0
  27. package/dist/components/code-block/src/code-block-highlight.js +34 -0
  28. package/dist/components/code-block/src/code-block-utils.d.ts +23 -0
  29. package/dist/components/code-block/src/code-block-utils.js +71 -0
  30. package/dist/components/code-editor/index.d.ts +1 -1
  31. package/dist/components/code-editor/src/RsCodeEditor.css +118 -92
  32. package/dist/components/code-editor/src/RsCodeEditor.d.ts +14 -3
  33. package/dist/components/code-editor/src/RsCodeEditor.impl.js +261 -94
  34. package/dist/components/code-editor/src/RsCodeEditor.js +1 -1
  35. package/dist/components/code-editor/src/code-editor-utils.d.ts +15 -0
  36. package/dist/components/code-editor/src/code-editor-utils.js +36 -1
  37. package/dist/components/code-editor/src/code-mirror-completion.d.ts +1 -1
  38. package/dist/components/code-editor/src/code-mirror-completion.js +8 -5
  39. package/dist/components/code-editor/src/code-mirror-diagnostics.d.ts +2 -3
  40. package/dist/components/code-editor/src/code-mirror-diagnostics.js +3 -4
  41. package/dist/components/code-editor/src/code-mirror-ghost.d.ts +1 -1
  42. package/dist/components/code-editor/src/code-mirror-ghost.js +12 -3
  43. package/dist/components/code-editor/src/code-mirror-inline-edit.js +8 -3
  44. package/dist/components/code-editor/src/code-mirror-intel.d.ts +2 -2
  45. package/dist/components/code-editor/src/code-mirror-intel.js +50 -39
  46. package/dist/components/code-editor/src/code-mirror-lang.js +4 -0
  47. package/dist/components/code-editor/src/code-mirror-session.d.ts +13 -0
  48. package/dist/components/code-editor/src/code-mirror-session.js +30 -0
  49. package/dist/components/config-provider/src/RsConfigProvider.css +1 -1
  50. package/dist/components/config-provider/src/RsConfigProvider.d.ts +2 -2
  51. package/dist/components/config-provider/src/RsConfigProvider.impl.js +7 -16
  52. package/dist/components/config-provider/src/RsConfigProvider.js +1 -1
  53. package/dist/components/context-menu/index.d.ts +1 -1
  54. package/dist/components/context-menu/src/RsContextMenu.css +115 -89
  55. package/dist/components/context-menu/src/RsContextMenu.d.ts +32 -11
  56. package/dist/components/context-menu/src/RsContextMenu.impl.js +795 -48
  57. package/dist/components/context-menu/src/RsContextMenuItems.d.ts +25 -1
  58. package/dist/components/context-menu/src/RsContextMenuItems.impl.js +110 -61
  59. package/dist/components/context-menu/src/context-menu-utils.d.ts +89 -3
  60. package/dist/components/context-menu/src/context-menu-utils.js +168 -3
  61. package/dist/components/date-picker/src/RsDatePicker.d.ts +2 -2
  62. package/dist/components/date-picker/src/RsDateTimePicker.d.ts +2 -2
  63. package/dist/components/descriptions/index.d.ts +1 -1
  64. package/dist/components/descriptions/src/RsDescriptions.css +38 -11
  65. package/dist/components/descriptions/src/RsDescriptions.d.ts +20 -4
  66. package/dist/components/descriptions/src/RsDescriptions.impl.js +89 -19
  67. package/dist/components/descriptions/src/RsDescriptionsItem.impl.js +13 -6
  68. package/dist/components/descriptions/src/descriptions-utils.d.ts +19 -0
  69. package/dist/components/descriptions/src/descriptions-utils.js +39 -1
  70. package/dist/components/dialog/index.d.ts +1 -1
  71. package/dist/components/dialog/src/RsConfirmDialog.css +47 -21
  72. package/dist/components/dialog/src/RsConfirmDialog.d.ts +19 -7
  73. package/dist/components/dialog/src/RsConfirmDialog.impl.js +349 -119
  74. package/dist/components/dialog/src/RsConfirmDialog.js +2 -1
  75. package/dist/components/dialog/src/RsDialog.css +102 -109
  76. package/dist/components/dialog/src/RsDialog.d.ts +34 -24
  77. package/dist/components/dialog/src/RsDialog.impl.js +410 -177
  78. package/dist/components/dialog/src/RsDialog.js +2 -1
  79. package/dist/components/dialog/src/dialog-utils.d.ts +40 -1
  80. package/dist/components/dialog/src/dialog-utils.js +152 -1
  81. package/dist/components/dialog/src/dialog-window.js +29 -8
  82. package/dist/components/drawer/index.d.ts +1 -1
  83. package/dist/components/drawer/src/RsDrawer.css +61 -29
  84. package/dist/components/drawer/src/RsDrawer.d.ts +37 -21
  85. package/dist/components/drawer/src/RsDrawer.impl.js +441 -223
  86. package/dist/components/drawer/src/drawer-utils.d.ts +35 -0
  87. package/dist/components/drawer/src/drawer-utils.js +131 -1
  88. package/dist/components/dropdown/index.d.ts +1 -1
  89. package/dist/components/dropdown/src/RsDropdown.css +140 -61
  90. package/dist/components/dropdown/src/RsDropdown.d.ts +39 -6
  91. package/dist/components/dropdown/src/RsDropdown.impl.js +693 -63
  92. package/dist/components/dropdown/src/RsDropdownItemView.impl.js +17 -7
  93. package/dist/components/dropdown/src/RsDropdownItems.d.ts +32 -3
  94. package/dist/components/dropdown/src/RsDropdownItems.impl.js +171 -59
  95. package/dist/components/dropdown/src/dropdown-utils.d.ts +50 -0
  96. package/dist/components/dropdown/src/dropdown-utils.js +103 -3
  97. package/dist/components/empty/index.d.ts +1 -0
  98. package/dist/components/empty/src/RsEmpty.css +105 -23
  99. package/dist/components/empty/src/RsEmpty.d.ts +27 -4
  100. package/dist/components/empty/src/RsEmpty.impl.js +154 -11
  101. package/dist/components/empty/src/RsEmpty.js +2 -1
  102. package/dist/components/empty/src/empty-utils.d.ts +28 -0
  103. package/dist/components/empty/src/empty-utils.js +55 -0
  104. package/dist/components/form/src/RsForm.d.ts +1 -1
  105. package/dist/components/input-number/src/RsInputNumber.d.ts +1 -1
  106. package/dist/components/label/src/RsLabel.d.ts +1 -1
  107. package/dist/components/loading/index.d.ts +1 -0
  108. package/dist/components/loading/src/RsLoading.css +13 -97
  109. package/dist/components/loading/src/RsLoading.d.ts +52 -2
  110. package/dist/components/loading/src/RsLoading.impl.js +216 -33
  111. package/dist/components/loading/src/RsLoading.js +2 -1
  112. package/dist/components/loading/src/loading-status.css +210 -0
  113. package/dist/components/loading/src/loading-status.d.ts +34 -0
  114. package/dist/components/loading/src/loading-status.impl.js +84 -0
  115. package/dist/components/loading/src/loading-status.js +8 -0
  116. package/dist/components/loading/src/loading-utils.d.ts +51 -4
  117. package/dist/components/loading/src/loading-utils.js +122 -0
  118. package/dist/components/loading-bar/index.d.ts +1 -0
  119. package/dist/components/loading-bar/src/RsLoadingBar.css +72 -8
  120. package/dist/components/loading-bar/src/RsLoadingBar.d.ts +55 -11
  121. package/dist/components/loading-bar/src/RsLoadingBar.impl.js +298 -57
  122. package/dist/components/loading-bar/src/RsLoadingBar.js +1 -1
  123. package/dist/components/loading-bar/src/loading-bar-utils.d.ts +69 -0
  124. package/dist/components/loading-bar/src/loading-bar-utils.js +97 -0
  125. package/dist/components/log/src/RsLog.css +52 -144
  126. package/dist/components/log/src/RsLog.d.ts +12 -11
  127. package/dist/components/log/src/RsLog.impl.js +181 -148
  128. package/dist/components/log/src/RsLog.js +1 -1
  129. package/dist/components/log/src/RsLogRow.css +152 -0
  130. package/dist/components/log/src/RsLogRow.d.ts +35 -0
  131. package/dist/components/log/src/RsLogRow.impl.js +91 -0
  132. package/dist/components/log/src/RsLogRow.js +8 -0
  133. package/dist/components/log/src/log-utils.d.ts +8 -0
  134. package/dist/components/log/src/log-utils.js +71 -10
  135. package/dist/components/markdown/index.d.ts +1 -1
  136. package/dist/components/markdown/src/RsMarkdown.css +75 -32
  137. package/dist/components/markdown/src/RsMarkdown.d.ts +6 -2
  138. package/dist/components/markdown/src/RsMarkdown.impl.js +185 -17
  139. package/dist/components/markdown/src/markdown-utils.d.ts +26 -0
  140. package/dist/components/markdown/src/markdown-utils.js +114 -12
  141. package/dist/components/mentions/src/RsMentions.d.ts +2 -2
  142. package/dist/components/menu/index.d.ts +1 -1
  143. package/dist/components/menu/src/RsMenu.css +70 -29
  144. package/dist/components/menu/src/RsMenu.d.ts +58 -4
  145. package/dist/components/menu/src/RsMenu.impl.js +93 -46
  146. package/dist/components/menu/src/RsMenuItems.d.ts +22 -5
  147. package/dist/components/menu/src/RsMenuItems.impl.js +506 -154
  148. package/dist/components/menu/src/menu-utils.d.ts +56 -0
  149. package/dist/components/menu/src/menu-utils.js +139 -6
  150. package/dist/components/monaco-editor/index.d.ts +1 -1
  151. package/dist/components/monaco-editor/src/RsMonacoEditor.css +28 -16
  152. package/dist/components/monaco-editor/src/RsMonacoEditor.d.ts +39 -41
  153. package/dist/components/monaco-editor/src/RsMonacoEditor.impl.js +212 -133
  154. package/dist/components/monaco-editor/src/RsMonacoEditor.js +1 -1
  155. package/dist/components/monaco-editor/src/monaco-editor-utils.d.ts +126 -0
  156. package/dist/components/monaco-editor/src/monaco-editor-utils.js +302 -0
  157. package/dist/components/pagination/index.d.ts +2 -2
  158. package/dist/components/pagination/src/RsPagination.css +93 -46
  159. package/dist/components/pagination/src/RsPagination.d.ts +68 -8
  160. package/dist/components/pagination/src/RsPagination.impl.js +229 -86
  161. package/dist/components/pagination/src/RsPagination.js +1 -1
  162. package/dist/components/pagination/src/pagination-utils.d.ts +59 -0
  163. package/dist/components/pagination/src/pagination-utils.js +105 -1
  164. package/dist/components/popover/index.d.ts +1 -0
  165. package/dist/components/popover/src/RsPopover.css +124 -14
  166. package/dist/components/popover/src/RsPopover.d.ts +38 -7
  167. package/dist/components/popover/src/RsPopover.impl.js +546 -35
  168. package/dist/components/popover/src/RsPopover.js +2 -1
  169. package/dist/components/popover/src/popover-utils.d.ts +24 -2
  170. package/dist/components/popover/src/popover-utils.js +55 -0
  171. package/dist/components/sidebar/index.d.ts +1 -0
  172. package/dist/components/sidebar/src/RsSidebar.css +91 -33
  173. package/dist/components/sidebar/src/RsSidebar.d.ts +17 -9
  174. package/dist/components/sidebar/src/RsSidebar.impl.js +124 -22
  175. package/dist/components/sidebar/src/RsSidebar.js +1 -1
  176. package/dist/components/sidebar/src/RsSidebarGroup.css +23 -6
  177. package/dist/components/sidebar/src/RsSidebarGroup.d.ts +6 -2
  178. package/dist/components/sidebar/src/RsSidebarGroup.impl.js +17 -4
  179. package/dist/components/sidebar/src/RsSidebarGroup.js +1 -1
  180. package/dist/components/sidebar/src/RsSidebarItem.css +50 -20
  181. package/dist/components/sidebar/src/RsSidebarItem.d.ts +21 -3
  182. package/dist/components/sidebar/src/RsSidebarItem.impl.js +71 -20
  183. package/dist/components/sidebar/src/RsSidebarItem.js +1 -1
  184. package/dist/components/sidebar/src/sidebar-utils.d.ts +47 -0
  185. package/dist/components/sidebar/src/sidebar-utils.js +72 -0
  186. package/dist/components/split-pane/index.d.ts +2 -2
  187. package/dist/components/split-pane/src/RsSplitPane.css +41 -30
  188. package/dist/components/split-pane/src/RsSplitPane.d.ts +6 -2
  189. package/dist/components/split-pane/src/RsSplitPane.impl.js +153 -45
  190. package/dist/components/split-pane/src/split-pane-utils.d.ts +23 -0
  191. package/dist/components/split-pane/src/split-pane-utils.js +18 -1
  192. package/dist/components/stat-card/index.d.ts +1 -0
  193. package/dist/components/stat-card/src/RsStatCard.css +129 -25
  194. package/dist/components/stat-card/src/RsStatCard.d.ts +40 -4
  195. package/dist/components/stat-card/src/RsStatCard.impl.js +106 -12
  196. package/dist/components/stat-card/src/RsStatCard.js +1 -1
  197. package/dist/components/stat-card/src/stat-card-utils.d.ts +39 -0
  198. package/dist/components/stat-card/src/stat-card-utils.js +113 -0
  199. package/dist/components/steps/index.d.ts +1 -1
  200. package/dist/components/steps/src/RsSteps.css +158 -37
  201. package/dist/components/steps/src/RsSteps.d.ts +69 -5
  202. package/dist/components/steps/src/RsSteps.impl.js +168 -28
  203. package/dist/components/steps/src/RsSteps.js +1 -1
  204. package/dist/components/steps/src/steps-utils.d.ts +51 -1
  205. package/dist/components/steps/src/steps-utils.js +67 -1
  206. package/dist/components/table/src/RsTable.impl.js +4 -2
  207. package/dist/components/table/src/composables/useRsTableContextMenu.d.ts +16 -0
  208. package/dist/components/table/src/composables/useRsTableContextMenu.js +1 -1
  209. package/dist/components/table/src/composables/useRsTableEngine.js +6 -2
  210. package/dist/components/table/src/composables/useRsTableScrollLayout.js +2 -0
  211. package/dist/components/table/src/composables/useRsTableShell.d.ts +16 -0
  212. package/dist/components/table/src/rs-table-props.d.ts +1 -1
  213. package/dist/components/table/src/rs-table-props.js +0 -1
  214. package/dist/components/table/src/table-body/RsTableBody.impl.js +1 -0
  215. package/dist/components/table/src/table-body/RsTableCell.impl.js +1 -1
  216. package/dist/components/table/src/table-body/RsTableCellEditor.impl.js +10 -2
  217. package/dist/components/table/src/table-body/RsTableColGroup.impl.js +1 -0
  218. package/dist/components/table/src/table-footer/RsTableSummaryRow.impl.js +1 -0
  219. package/dist/components/table/src/table-header/RsTableHeader.impl.js +1 -0
  220. package/dist/components/table/src/utils/table-utils.d.ts +10 -6
  221. package/dist/components/table/src/utils/table-utils.js +27 -25
  222. package/dist/components/table/style/rs-table.css +86 -28
  223. package/dist/components/tabs/index.d.ts +2 -2
  224. package/dist/components/tabs/src/RsTabs.css +225 -101
  225. package/dist/components/tabs/src/RsTabs.d.ts +37 -8
  226. package/dist/components/tabs/src/RsTabs.impl.js +400 -270
  227. package/dist/components/tabs/src/tabs-utils.d.ts +41 -2
  228. package/dist/components/tabs/src/tabs-utils.js +55 -1
  229. package/dist/components/terminal/index.d.ts +1 -1
  230. package/dist/components/terminal/src/RsTerminal.css +60 -37
  231. package/dist/components/terminal/src/RsTerminal.d.ts +36 -4
  232. package/dist/components/terminal/src/RsTerminal.impl.js +288 -68
  233. package/dist/components/terminal/src/RsTerminal.js +1 -1
  234. package/dist/components/terminal/src/terminal-utils.d.ts +42 -4
  235. package/dist/components/terminal/src/terminal-utils.js +113 -10
  236. package/dist/components/textarea/src/RsTextarea.d.ts +1 -1
  237. package/dist/components/time-picker/src/RsTimePicker.d.ts +2 -2
  238. package/dist/components/toaster/src/RsToaster.css +156 -203
  239. package/dist/components/toaster/src/RsToaster.d.ts +32 -2
  240. package/dist/components/toaster/src/RsToaster.impl.js +309 -34
  241. package/dist/components/toaster/src/toast-store.d.ts +95 -0
  242. package/dist/components/toaster/src/toast-store.js +177 -0
  243. package/dist/components/toaster/src/toast-utils.d.ts +60 -0
  244. package/dist/components/toaster/src/toast-utils.js +86 -0
  245. package/dist/components/toolbar/index.d.ts +1 -1
  246. package/dist/components/toolbar/src/RsToolbar.css +206 -32
  247. package/dist/components/toolbar/src/RsToolbar.d.ts +41 -16
  248. package/dist/components/toolbar/src/RsToolbar.impl.js +146 -18
  249. package/dist/components/toolbar/src/RsToolbar.js +2 -1
  250. package/dist/components/toolbar/src/toolbar-utils.d.ts +20 -0
  251. package/dist/components/toolbar/src/toolbar-utils.js +105 -0
  252. package/dist/components/tooltip/index.d.ts +1 -0
  253. package/dist/components/tooltip/src/RsTooltip.css +104 -26
  254. package/dist/components/tooltip/src/RsTooltip.d.ts +38 -16
  255. package/dist/components/tooltip/src/RsTooltip.impl.js +420 -51
  256. package/dist/components/tooltip/src/RsTooltip.js +2 -1
  257. package/dist/components/tooltip/src/RsTooltipProvider.d.ts +4 -4
  258. package/dist/components/tooltip/src/RsTooltipProvider.impl.js +51 -14
  259. package/dist/components/tooltip/src/tooltip-utils.d.ts +30 -0
  260. package/dist/components/tooltip/src/tooltip-utils.js +23 -0
  261. package/dist/components/tree/index.d.ts +2 -2
  262. package/dist/components/tree/src/RsTree.css +84 -75
  263. package/dist/components/tree/src/RsTree.d.ts +20 -20
  264. package/dist/components/tree/src/RsTree.impl.js +292 -66
  265. package/dist/components/tree/src/RsTree.js +1 -1
  266. package/dist/components/tree/src/tree-utils.d.ts +22 -0
  267. package/dist/components/tree/src/tree-utils.js +18 -4
  268. package/dist/components/tree-select/src/RsTreeSelect.d.ts +1 -1
  269. package/dist/components/virtual-list/index.d.ts +1 -1
  270. package/dist/components/virtual-list/src/RsVirtualList.css +64 -9
  271. package/dist/components/virtual-list/src/RsVirtualList.d.ts +31 -5
  272. package/dist/components/virtual-list/src/RsVirtualList.impl.js +425 -76
  273. package/dist/components/virtual-list/src/RsVirtualList.js +1 -1
  274. package/dist/components/virtual-list/src/virtual-list-utils.d.ts +64 -1
  275. package/dist/components/virtual-list/src/virtual-list-utils.js +215 -1
  276. package/dist/composables/useRsLoadingBar.d.ts +2 -5
  277. package/dist/composables/useRsLoadingBar.js +21 -5
  278. package/dist/composables/useRsTabsNav.d.ts +3 -1
  279. package/dist/composables/useRsTabsNav.js +96 -28
  280. package/dist/composables/useRsToast.d.ts +11 -13
  281. package/dist/composables/useRsToast.js +66 -17
  282. package/dist/index.d.ts +30 -21
  283. package/dist/index.js +14 -0
  284. package/dist/locale/apply.js +6 -1
  285. package/dist/locale/messages.js +128 -2
  286. package/dist/styles.css +465 -808
  287. package/dist/theme/brand.example.css +3 -2
  288. package/dist/vite-plugins/niuma-ui-host.js +1 -1
  289. package/package.json +2 -5
  290. package/dist/components/_shared/src/reka.d.ts +0 -2
  291. package/dist/components/_shared/src/reka.js +0 -2
@@ -1,19 +1,33 @@
1
- import { AlertDialogContent, AlertDialogDescription, AlertDialogOverlay, AlertDialogPortal, AlertDialogRoot, AlertDialogTitle } from "../../_shared/src/reka.js";
2
1
  import { useRsI18n } from "../../../composables/useRsI18n.js";
3
2
  import RsButton_default from "../../button/src/RsButton.js";
4
- import { isRsDialogWidthPreset, resolveDialogOverlayStyle, resolveRsDialogCssWidth, runRsConfirmBeforeClose } from "./dialog-utils.js";
5
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, normalizeStyle, openBlock, renderSlot, resolveDynamicComponent, toDisplayString, unref, useModel, withCtx } from "vue";
3
+ import { acquireDialogScrollLock, claimDialogInert, dialogLayerTick, dialogTargetOwnsTab, isRsDialogWidthPreset, isTopDialogLayer, listDialogTabbables, pushDialogLayer, releaseDialogInert, removeDialogLayer, resolveDialogOverlayStyle, resolveDialogTabTarget, resolveRsDialogCssWidth, runRsConfirmBeforeClose } from "./dialog-utils.js";
4
+ import { Fragment, Teleport, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, nextTick, normalizeClass, normalizeStyle, onBeforeUnmount, openBlock, ref, renderSlot, resolveDynamicComponent, toDisplayString, unref, useId, useModel, watch, withCtx } from "vue";
6
5
  //#region src/components/dialog/src/RsConfirmDialog.vue?vue&type=script&setup=true&lang.ts
7
- var _hoisted_1 = { class: "rs-confirm-dialog__main" };
8
- var _hoisted_2 = {
6
+ var _hoisted_1 = [
7
+ "data-rs-theme",
8
+ "dir",
9
+ "lang"
10
+ ];
11
+ var _hoisted_2 = [
12
+ "id",
13
+ "aria-labelledby",
14
+ "aria-label",
15
+ "aria-describedby"
16
+ ];
17
+ var _hoisted_3 = { class: "rs-confirm-dialog__main" };
18
+ var _hoisted_4 = ["id"];
19
+ var _hoisted_5 = {
9
20
  key: 0,
10
21
  class: "rs-confirm-dialog__subtitle"
11
22
  };
12
- var _hoisted_3 = {
23
+ var _hoisted_6 = ["id"];
24
+ var _hoisted_7 = ["id"];
25
+ var _hoisted_8 = ["id"];
26
+ var _hoisted_9 = {
13
27
  key: 4,
14
28
  class: "rs-confirm-dialog__extra"
15
29
  };
16
- var _hoisted_4 = { class: "rs-confirm-dialog__footer" };
30
+ var _hoisted_10 = { class: "rs-confirm-dialog__footer" };
17
31
  var RsConfirmDialog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
18
32
  __name: "RsConfirmDialog",
19
33
  props: /*@__PURE__*/ mergeModels({
@@ -45,7 +59,18 @@ var RsConfirmDialog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
45
59
  },
46
60
  overlayOpacity: {},
47
61
  overlayBlur: {},
48
- teleportTo: { type: [String, Boolean] }
62
+ teleportTo: { type: [String, Boolean] },
63
+ closeOnEsc: {
64
+ type: Boolean,
65
+ default: true
66
+ },
67
+ lockScroll: {
68
+ type: Boolean,
69
+ default: true
70
+ },
71
+ zIndex: {},
72
+ ariaLabel: {},
73
+ id: {}
49
74
  }, {
50
75
  "open": {
51
76
  type: Boolean,
@@ -59,147 +84,352 @@ var RsConfirmDialog_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/
59
84
  const props = __props;
60
85
  const emit = __emit;
61
86
  const { t } = useRsI18n();
87
+ const uid = useId();
88
+ const layerId = uid;
89
+ const anchorRef = ref(null);
90
+ const shellRef = ref(null);
91
+ const contentRef = ref(null);
92
+ const panelTheme = ref();
93
+ const panelDir = ref();
94
+ const panelLang = ref();
95
+ const domId = computed(() => props.id?.trim() || `rs-confirm-${uid}`);
96
+ const titleDomId = computed(() => `${domId.value}-title`);
97
+ const descriptionDomId = computed(() => `${domId.value}-description`);
98
+ let disposed = false;
99
+ let closing = false;
100
+ let closeGeneration = 0;
101
+ /** requestClose 已决定原因。null 表示父级把 open 设成 false。 */
102
+ let closeFromInside = null;
103
+ let keyBound = false;
104
+ let releaseScroll = null;
105
+ let returnTo = null;
106
+ let inertGeneration = 0;
62
107
  const contentClass = computed(() => {
63
108
  if (props.width && isRsDialogWidthPreset(props.width)) return `rs-confirm-dialog__content--${props.width}`;
64
109
  });
65
- const overlayStyle = computed(() => resolveDialogOverlayStyle({
66
- overlayOpacity: props.overlayOpacity,
67
- overlayBlur: props.overlayBlur
68
- }));
110
+ function zIndexStyle(offset) {
111
+ if (props.zIndex == null || !Number.isFinite(props.zIndex)) return void 0;
112
+ return { zIndex: String(Math.round(props.zIndex) + offset) };
113
+ }
114
+ const overlayStyle = computed(() => {
115
+ const visual = props.showOverlay ? resolveDialogOverlayStyle({
116
+ overlayOpacity: props.overlayOpacity,
117
+ overlayBlur: props.overlayBlur
118
+ }) : void 0;
119
+ const z = zIndexStyle(0);
120
+ if (!visual) return z;
121
+ if (!z) return visual;
122
+ return {
123
+ ...visual,
124
+ ...z
125
+ };
126
+ });
69
127
  const contentStyle = computed(() => {
70
- if (props.width == null || isRsDialogWidthPreset(props.width)) return void 0;
71
- const css = resolveRsDialogCssWidth(props.width);
72
- if (!css) return void 0;
73
- return { maxWidth: css };
128
+ const style = {};
129
+ if (props.width != null && !isRsDialogWidthPreset(props.width)) {
130
+ const css = resolveRsDialogCssWidth(props.width);
131
+ if (css) style.maxWidth = css;
132
+ }
133
+ const z = zIndexStyle(1);
134
+ if (z) Object.assign(style, z);
135
+ return Object.keys(style).length ? style : void 0;
74
136
  });
75
137
  const descriptionText = computed(() => {
76
138
  if (props.description != null && props.description !== "") return props.description;
77
139
  });
78
140
  const showDefaultDescription = computed(() => descriptionText.value == null && !props.subtitle);
79
- let closing = false;
80
- let pendingCloseReason = "programmatic";
141
+ const hasDescribedBy = computed(() => descriptionText.value != null || Boolean(props.subtitle) || showDefaultDescription.value);
142
+ const labelledBy = computed(() => props.ariaLabel?.trim() ? void 0 : titleDomId.value);
143
+ const accessibleName = computed(() => props.ariaLabel?.trim() || void 0);
144
+ const teleportDisabled = computed(() => props.teleportTo === false);
145
+ const teleportTarget = computed(() => {
146
+ const target = props.teleportTo;
147
+ if (target === false || target == null) return "body";
148
+ return target;
149
+ });
150
+ function syncChrome() {
151
+ const el = anchorRef.value;
152
+ if (!el) {
153
+ panelTheme.value = void 0;
154
+ panelDir.value = void 0;
155
+ panelLang.value = void 0;
156
+ return;
157
+ }
158
+ const themed = el.closest("[data-rs-theme]");
159
+ const directed = el.closest("[dir]");
160
+ const langed = el.closest("[lang]");
161
+ panelTheme.value = themed instanceof HTMLElement ? themed.dataset.rsTheme : void 0;
162
+ const dir = directed?.getAttribute("dir");
163
+ panelDir.value = dir === "ltr" || dir === "rtl" ? dir : void 0;
164
+ panelLang.value = langed?.getAttribute("lang") || void 0;
165
+ }
166
+ function syncScrollLock() {
167
+ const should = open.value && props.lockScroll;
168
+ if (should && !releaseScroll) {
169
+ releaseScroll = acquireDialogScrollLock();
170
+ return;
171
+ }
172
+ if (!should && releaseScroll) {
173
+ releaseScroll();
174
+ releaseScroll = null;
175
+ }
176
+ }
177
+ async function syncInert() {
178
+ const generation = ++inertGeneration;
179
+ await nextTick();
180
+ if (disposed || generation !== inertGeneration) return;
181
+ if (!(open.value && isTopDialogLayer(layerId)) || !shellRef.value) {
182
+ releaseDialogInert(layerId);
183
+ return;
184
+ }
185
+ claimDialogInert(layerId, shellRef.value);
186
+ }
187
+ function bindKey() {
188
+ if (keyBound || typeof document === "undefined") return;
189
+ document.addEventListener("keydown", onDocumentKeydown, true);
190
+ keyBound = true;
191
+ }
192
+ function unbindKey() {
193
+ if (!keyBound || typeof document === "undefined") return;
194
+ document.removeEventListener("keydown", onDocumentKeydown, true);
195
+ keyBound = false;
196
+ }
197
+ function rememberTrigger() {
198
+ if (typeof document === "undefined") return;
199
+ const active = document.activeElement;
200
+ if (active instanceof HTMLElement && active !== document.body && active !== document.documentElement) {
201
+ returnTo = active;
202
+ return;
203
+ }
204
+ returnTo = null;
205
+ }
206
+ function restoreTrigger() {
207
+ const el = returnTo;
208
+ returnTo = null;
209
+ if (!el?.isConnected) return;
210
+ if (contentRef.value?.contains(el)) return;
211
+ el.focus();
212
+ }
213
+ function focusDialog(force) {
214
+ const root = contentRef.value;
215
+ if (!root || disposed) return;
216
+ const active = document.activeElement;
217
+ if (!force && active instanceof HTMLElement && root.contains(active) && active !== root) return;
218
+ const preferred = root.querySelector("[autofocus]");
219
+ if (preferred && !preferred.hasAttribute("disabled")) {
220
+ preferred.focus();
221
+ return;
222
+ }
223
+ const first = listDialogTabbables(root)[0];
224
+ if (first) {
225
+ first.focus();
226
+ return;
227
+ }
228
+ root.focus();
229
+ }
230
+ function queueFocus() {
231
+ nextTick(() => {
232
+ if (!open.value || disposed) return;
233
+ focusDialog(false);
234
+ });
235
+ }
236
+ function focus() {
237
+ focusDialog(true);
238
+ }
81
239
  async function requestClose(reason) {
82
- if (!open.value || closing) return false;
240
+ if (disposed || !open.value || closing) return false;
241
+ const generation = ++closeGeneration;
83
242
  closing = true;
84
243
  try {
85
- if (!await runRsConfirmBeforeClose(props.beforeClose, reason)) return false;
244
+ if (!await runRsConfirmBeforeClose(props.beforeClose, reason) || disposed || generation !== closeGeneration || !open.value) return false;
245
+ closeFromInside = reason;
86
246
  open.value = false;
87
247
  return true;
248
+ } catch {
249
+ return false;
88
250
  } finally {
89
- closing = false;
251
+ if (generation === closeGeneration) closing = false;
90
252
  }
91
253
  }
254
+ function onDocumentKeydown(event) {
255
+ if (!open.value || !isTopDialogLayer(layerId)) return;
256
+ if (event.key === "Escape") {
257
+ if (event.isComposing) return;
258
+ if (!props.closeOnEsc || props.confirmLoading) {
259
+ event.preventDefault();
260
+ return;
261
+ }
262
+ event.preventDefault();
263
+ requestClose("escape");
264
+ return;
265
+ }
266
+ if (event.key !== "Tab" || dialogTargetOwnsTab(event.target)) return;
267
+ const root = contentRef.value;
268
+ if (!root) return;
269
+ const target = resolveDialogTabTarget(root, document.activeElement, event.shiftKey);
270
+ if (target === "stay") return;
271
+ event.preventDefault();
272
+ target.focus();
273
+ }
92
274
  async function onConfirmClick() {
93
275
  emit("confirm");
94
276
  if (props.autoCloseOnConfirm !== false) await requestClose("confirm");
95
277
  }
96
- async function onCancelClick() {
97
- if (await requestClose("cancel")) emit("cancel");
278
+ function finishClose(wasOpen) {
279
+ removeDialogLayer(layerId);
280
+ unbindKey();
281
+ syncScrollLock();
282
+ inertGeneration += 1;
283
+ releaseDialogInert(layerId);
284
+ if (!wasOpen) return;
285
+ const reason = closeFromInside;
286
+ closeFromInside = null;
287
+ restoreTrigger();
288
+ if (reason !== "confirm") emit("cancel");
98
289
  }
99
- function onEscapeKeyDown(event) {
100
- if (props.confirmLoading) {
101
- event.preventDefault();
102
- return;
290
+ async function vetoParentClose() {
291
+ const generation = ++closeGeneration;
292
+ closing = true;
293
+ try {
294
+ const allowed = await runRsConfirmBeforeClose(props.beforeClose, "programmatic");
295
+ if (disposed || generation !== closeGeneration) return;
296
+ if (!allowed) {
297
+ open.value = true;
298
+ return;
299
+ }
300
+ closeFromInside = "programmatic";
301
+ finishClose(true);
302
+ } catch {
303
+ if (!disposed && generation === closeGeneration) open.value = true;
304
+ } finally {
305
+ if (generation === closeGeneration) closing = false;
103
306
  }
104
- pendingCloseReason = "escape";
105
307
  }
106
- async function onUpdateOpen(next) {
107
- if (next) {
108
- open.value = true;
109
- return;
110
- }
111
- if (closing) {
112
- open.value = false;
308
+ async function onCancelClick() {
309
+ await requestClose("cancel");
310
+ }
311
+ watch(open, (isOpen, wasOpen) => {
312
+ if (isOpen) {
313
+ if (wasOpen !== true) {
314
+ rememberTrigger();
315
+ syncChrome();
316
+ pushDialogLayer(layerId);
317
+ queueFocus();
318
+ }
319
+ bindKey();
320
+ syncScrollLock();
321
+ syncInert();
113
322
  return;
114
323
  }
115
- const reason = pendingCloseReason;
116
- pendingCloseReason = "programmatic";
117
- if (!await runRsConfirmBeforeClose(props.beforeClose, reason)) {
118
- open.value = true;
324
+ if (wasOpen === true && closeFromInside == null) {
325
+ vetoParentClose();
119
326
  return;
120
327
  }
121
- open.value = false;
122
- if (reason === "escape" || reason === "programmatic") emit("cancel");
123
- }
124
- __expose({
125
- /** 请求关闭(走 beforeClose) */
126
- close: (reason = "programmatic") => requestClose(reason) });
328
+ finishClose(wasOpen === true);
329
+ }, { immediate: true });
330
+ watch(() => [props.lockScroll, dialogLayerTick.value], () => {
331
+ if (!open.value || disposed) return;
332
+ syncScrollLock();
333
+ syncInert();
334
+ });
335
+ onBeforeUnmount(() => {
336
+ disposed = true;
337
+ inertGeneration += 1;
338
+ closeGeneration += 1;
339
+ removeDialogLayer(layerId);
340
+ unbindKey();
341
+ releaseScroll?.();
342
+ releaseScroll = null;
343
+ releaseDialogInert(layerId);
344
+ });
345
+ __expose({
346
+ close: (reason = "programmatic") => requestClose(reason),
347
+ focus
348
+ });
127
349
  return (_ctx, _cache) => {
128
- return openBlock(), createBlock(unref(AlertDialogRoot), {
129
- open: open.value,
130
- "onUpdate:open": onUpdateOpen
131
- }, {
132
- default: withCtx(() => [createVNode(unref(AlertDialogPortal), {
133
- disabled: __props.teleportTo === false,
134
- to: __props.teleportTo === false ? void 0 : __props.teleportTo
350
+ return openBlock(), createElementBlock(Fragment, null, [createElementVNode("span", {
351
+ ref_key: "anchorRef",
352
+ ref: anchorRef,
353
+ hidden: "",
354
+ class: "rs-confirm-dialog__anchor",
355
+ "aria-hidden": "true"
356
+ }, null, 512), (openBlock(), createBlock(Teleport, {
357
+ defer: "",
358
+ to: teleportTarget.value,
359
+ disabled: teleportDisabled.value
360
+ }, [open.value ? (openBlock(), createElementBlock("div", {
361
+ key: 0,
362
+ ref_key: "shellRef",
363
+ ref: shellRef,
364
+ class: "rs-confirm-dialog",
365
+ "data-rs-theme": panelTheme.value,
366
+ dir: panelDir.value,
367
+ lang: panelLang.value
368
+ }, [createElementVNode("div", {
369
+ class: normalizeClass(["rs-confirm-dialog__backdrop", { "rs-confirm-dialog__overlay": __props.showOverlay }]),
370
+ style: normalizeStyle(overlayStyle.value),
371
+ "aria-hidden": "true"
372
+ }, null, 6), createElementVNode("dialog", {
373
+ id: domId.value,
374
+ ref_key: "contentRef",
375
+ ref: contentRef,
376
+ open: "",
377
+ class: normalizeClass(["rs-confirm-dialog__content", contentClass.value]),
378
+ style: normalizeStyle(contentStyle.value),
379
+ role: "alertdialog",
380
+ "aria-modal": "true",
381
+ "aria-labelledby": labelledBy.value,
382
+ "aria-label": accessibleName.value,
383
+ "aria-describedby": hasDescribedBy.value ? descriptionDomId.value : void 0,
384
+ tabindex: "-1"
385
+ }, [createElementVNode("div", {
386
+ class: normalizeClass(["rs-confirm-dialog__icon", `rs-confirm-dialog__icon--${__props.tone}`]),
387
+ "aria-hidden": "true"
388
+ }, [renderSlot(_ctx.$slots, "icon", {}, () => [__props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), {
389
+ key: 0,
390
+ class: "rs-confirm-dialog__icon-glyph"
391
+ })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode("!")], 64))], true)], 2), createElementVNode("div", _hoisted_3, [
392
+ createElementVNode("h2", {
393
+ id: titleDomId.value,
394
+ class: "rs-confirm-dialog__title"
395
+ }, toDisplayString(__props.title ?? unref(t)("confirm.title")), 9, _hoisted_4),
396
+ __props.subtitle && descriptionText.value != null ? (openBlock(), createElementBlock("p", _hoisted_5, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true),
397
+ descriptionText.value != null ? (openBlock(), createElementBlock("p", {
398
+ key: 1,
399
+ id: descriptionDomId.value,
400
+ class: "rs-confirm-dialog__description"
401
+ }, toDisplayString(descriptionText.value), 9, _hoisted_6)) : __props.subtitle ? (openBlock(), createElementBlock("p", {
402
+ key: 2,
403
+ id: descriptionDomId.value,
404
+ class: "rs-confirm-dialog__subtitle"
405
+ }, toDisplayString(__props.subtitle), 9, _hoisted_7)) : showDefaultDescription.value ? (openBlock(), createElementBlock("p", {
406
+ key: 3,
407
+ id: descriptionDomId.value,
408
+ class: "rs-confirm-dialog__description"
409
+ }, toDisplayString(unref(t)("confirm.description")), 9, _hoisted_8)) : createCommentVNode("", true),
410
+ _ctx.$slots.extra ? (openBlock(), createElementBlock("div", _hoisted_9, [renderSlot(_ctx.$slots, "extra", {}, void 0, true)])) : createCommentVNode("", true),
411
+ createElementVNode("footer", _hoisted_10, [__props.showCancel ? (openBlock(), createBlock(RsButton_default, {
412
+ key: 0,
413
+ variant: "default",
414
+ disabled: __props.confirmLoading,
415
+ onClick: onCancelClick
416
+ }, {
417
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.cancelText ?? unref(t)("common.cancel")), 1)]),
418
+ _: 1
419
+ }, 8, ["disabled"])) : createCommentVNode("", true), createVNode(RsButton_default, {
420
+ variant: __props.confirmVariant,
421
+ loading: __props.confirmLoading,
422
+ disabled: __props.confirmLoading,
423
+ onClick: onConfirmClick
135
424
  }, {
136
- default: withCtx(() => [__props.showOverlay ? (openBlock(), createBlock(unref(AlertDialogOverlay), {
137
- key: 0,
138
- class: "rs-confirm-dialog__overlay",
139
- style: normalizeStyle(overlayStyle.value)
140
- }, null, 8, ["style"])) : createCommentVNode("", true), createVNode(unref(AlertDialogContent), {
141
- class: normalizeClass(["rs-confirm-dialog__content", contentClass.value]),
142
- style: normalizeStyle(contentStyle.value),
143
- "disable-outside-pointer-events": true,
144
- onEscapeKeyDown
145
- }, {
146
- default: withCtx(() => [createElementVNode("div", { class: normalizeClass(["rs-confirm-dialog__icon", `rs-confirm-dialog__icon--${__props.tone}`]) }, [renderSlot(_ctx.$slots, "icon", {}, () => [__props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), {
147
- key: 0,
148
- class: "rs-confirm-dialog__icon-glyph"
149
- })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode("!")], 64))])], 2), createElementVNode("div", _hoisted_1, [
150
- createVNode(unref(AlertDialogTitle), { class: "rs-confirm-dialog__title" }, {
151
- default: withCtx(() => [createTextVNode(toDisplayString(__props.title ?? unref(t)("confirm.title")), 1)]),
152
- _: 1
153
- }),
154
- __props.subtitle && descriptionText.value != null ? (openBlock(), createElementBlock("p", _hoisted_2, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true),
155
- descriptionText.value != null ? (openBlock(), createBlock(unref(AlertDialogDescription), {
156
- key: 1,
157
- class: "rs-confirm-dialog__description"
158
- }, {
159
- default: withCtx(() => [createTextVNode(toDisplayString(descriptionText.value), 1)]),
160
- _: 1
161
- })) : __props.subtitle ? (openBlock(), createBlock(unref(AlertDialogDescription), {
162
- key: 2,
163
- class: "rs-confirm-dialog__subtitle"
164
- }, {
165
- default: withCtx(() => [createTextVNode(toDisplayString(__props.subtitle), 1)]),
166
- _: 1
167
- })) : showDefaultDescription.value ? (openBlock(), createBlock(unref(AlertDialogDescription), {
168
- key: 3,
169
- class: "rs-confirm-dialog__description"
170
- }, {
171
- default: withCtx(() => [createTextVNode(toDisplayString(unref(t)("confirm.description")), 1)]),
172
- _: 1
173
- })) : createCommentVNode("", true),
174
- _ctx.$slots.extra ? (openBlock(), createElementBlock("div", _hoisted_3, [renderSlot(_ctx.$slots, "extra")])) : createCommentVNode("", true),
175
- createElementVNode("footer", _hoisted_4, [__props.showCancel ? (openBlock(), createBlock(RsButton_default, {
176
- key: 0,
177
- variant: "default",
178
- disabled: __props.confirmLoading,
179
- onClick: onCancelClick
180
- }, {
181
- default: withCtx(() => [createTextVNode(toDisplayString(__props.cancelText ?? unref(t)("common.cancel")), 1)]),
182
- _: 1
183
- }, 8, ["disabled"])) : createCommentVNode("", true), createVNode(RsButton_default, {
184
- variant: __props.confirmVariant,
185
- loading: __props.confirmLoading,
186
- disabled: __props.confirmLoading,
187
- onClick: onConfirmClick
188
- }, {
189
- default: withCtx(() => [createTextVNode(toDisplayString(__props.confirmText ?? unref(t)("common.confirm")), 1)]),
190
- _: 1
191
- }, 8, [
192
- "variant",
193
- "loading",
194
- "disabled"
195
- ])])
196
- ])]),
197
- _: 3
198
- }, 8, ["class", "style"])]),
199
- _: 3
200
- }, 8, ["disabled", "to"])]),
201
- _: 3
202
- }, 8, ["open"]);
425
+ default: withCtx(() => [createTextVNode(toDisplayString(__props.confirmText ?? unref(t)("common.confirm")), 1)]),
426
+ _: 1
427
+ }, 8, [
428
+ "variant",
429
+ "loading",
430
+ "disabled"
431
+ ])])
432
+ ])], 14, _hoisted_2)], 8, _hoisted_1)) : createCommentVNode("", true)], 8, ["to", "disabled"]))], 64);
203
433
  };
204
434
  }
205
435
  });
@@ -1,7 +1,8 @@
1
1
  import './RsConfirmDialog.css'
2
+ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_export-helper.js";
2
3
  import RsConfirmDialog_vue_vue_type_script_setup_true_lang_default from "./RsConfirmDialog.impl.js";
3
4
 
4
5
  //#region src/components/dialog/src/RsConfirmDialog.vue
5
- var RsConfirmDialog_default = RsConfirmDialog_vue_vue_type_script_setup_true_lang_default;
6
+ var RsConfirmDialog_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsConfirmDialog_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2c82ddba"]]);
6
7
  //#endregion
7
8
  export { RsConfirmDialog_default as default };