niuma-ui 1.0.0 → 1.0.2

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 (159) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/NOTICE +2 -2
  3. package/package.json +13 -5
  4. package/src/__tests__/RsButton.spec.ts +47 -0
  5. package/src/__tests__/RsCard.spec.ts +160 -1
  6. package/src/__tests__/RsConfirmDialog.spec.ts +127 -0
  7. package/src/__tests__/RsContextMenu.spec.ts +12 -0
  8. package/src/__tests__/RsDateTimePicker.spec.ts +11 -0
  9. package/src/__tests__/RsDescriptions.spec.ts +50 -0
  10. package/src/__tests__/RsDialog.spec.ts +117 -0
  11. package/src/__tests__/RsDrawer.spec.ts +96 -3
  12. package/src/__tests__/RsDynamicTags.spec.ts +52 -0
  13. package/src/__tests__/RsForm.spec.ts +245 -1
  14. package/src/__tests__/RsInput.spec.ts +15 -1
  15. package/src/__tests__/RsMenu.spec.ts +406 -14
  16. package/src/__tests__/RsPagination.spec.ts +67 -2
  17. package/src/__tests__/RsSelect.spec.ts +42 -1
  18. package/src/__tests__/RsSwitch.spec.ts +44 -0
  19. package/src/__tests__/RsTable.a11y.spec.ts +83 -0
  20. package/src/__tests__/RsTable.dom-baseline.spec.ts +87 -0
  21. package/src/__tests__/RsTable.perf.spec.ts +23 -4
  22. package/src/__tests__/RsTable.spec.ts +63 -8
  23. package/src/__tests__/RsTable.ssr.spec.ts +71 -0
  24. package/src/__tests__/RsTable.summary.spec.ts +45 -0
  25. package/src/__tests__/RsTabs.spec.ts +102 -4
  26. package/src/__tests__/RsTerminal.spec.ts +1 -1
  27. package/src/__tests__/RsTimePicker.spec.ts +11 -0
  28. package/src/__tests__/RsUpload.spec.ts +62 -6
  29. package/src/__tests__/createRsDialog.spec.ts +145 -0
  30. package/src/__tests__/form-rules.spec.ts +76 -0
  31. package/src/__tests__/perf-budgets.ts +32 -0
  32. package/src/__tests__/rs-table-api.spec.ts +206 -0
  33. package/src/__tests__/rs-table-compat-matrix.spec.ts +108 -0
  34. package/src/__tests__/rs-table-echarts-adapter.spec.ts +43 -0
  35. package/src/__tests__/rs-table-grid-nav.spec.ts +63 -0
  36. package/src/__tests__/rs-table-isolation.spec.ts +158 -0
  37. package/src/__tests__/split-pane-utils.spec.ts +21 -0
  38. package/src/__tests__/table-chart-utils.spec.ts +88 -0
  39. package/src/__tests__/table-summary-utils.spec.ts +62 -0
  40. package/src/__tests__/table-utils.spec.ts +124 -0
  41. package/src/__tests__/theme.spec.ts +25 -0
  42. package/src/__tests__/useRsTableColumnResize.spec.ts +25 -0
  43. package/src/__tests__/useRsTableCore.perf.spec.ts +170 -0
  44. package/src/components/RsAlert.vue +212 -0
  45. package/src/components/RsButton.vue +145 -21
  46. package/src/components/RsCard.vue +200 -16
  47. package/src/components/RsConfirmDialog.vue +215 -28
  48. package/src/components/RsContextMenu.vue +51 -13
  49. package/src/components/RsDatePicker.vue +267 -34
  50. package/src/components/RsDateTimePicker.vue +19 -2
  51. package/src/components/RsDescriptions.vue +186 -0
  52. package/src/components/RsDescriptionsItem.vue +32 -0
  53. package/src/components/RsDialog.vue +363 -51
  54. package/src/components/RsDivider.vue +89 -0
  55. package/src/components/RsDrawer.vue +558 -33
  56. package/src/components/RsDropdown.vue +33 -2
  57. package/src/components/RsDynamicTags.vue +517 -0
  58. package/src/components/RsForm.vue +97 -8
  59. package/src/components/RsInput.vue +80 -82
  60. package/src/components/RsInputNumber.vue +64 -23
  61. package/src/components/RsLabel.vue +20 -5
  62. package/src/components/RsLoadingBar.vue +151 -0
  63. package/src/components/RsMenu.vue +73 -15
  64. package/src/components/RsMenuItems.vue +147 -9
  65. package/src/components/RsPagination.vue +93 -14
  66. package/src/components/RsRadio.vue +81 -0
  67. package/src/components/RsRadioItem.vue +156 -0
  68. package/src/components/RsSelect.vue +67 -58
  69. package/src/components/RsSplitPane.vue +69 -1
  70. package/src/components/RsSwitch.vue +179 -0
  71. package/src/components/RsTable.vue +653 -2555
  72. package/src/components/RsTabs.vue +415 -83
  73. package/src/components/RsTag.vue +191 -0
  74. package/src/components/RsTerminal.vue +3 -3
  75. package/src/components/RsTimePicker.vue +44 -5
  76. package/src/components/RsTimePickerColumns.vue +136 -77
  77. package/src/components/RsToaster.vue +58 -18
  78. package/src/components/RsTree.vue +39 -21
  79. package/src/components/RsUpload.vue +145 -12
  80. package/src/components/RsVNodeHost.vue +20 -0
  81. package/src/components/button-utils.ts +39 -0
  82. package/src/components/context-menu-utils.ts +6 -0
  83. package/src/components/date-picker-utils.ts +84 -4
  84. package/src/components/descriptions-utils.ts +24 -0
  85. package/src/components/dialog-utils.ts +147 -0
  86. package/src/components/dialog-window.ts +74 -9
  87. package/src/components/drawer-utils.ts +73 -0
  88. package/src/components/form-rules.ts +257 -0
  89. package/src/components/form-utils.ts +52 -2
  90. package/src/components/menu-utils.ts +11 -0
  91. package/src/components/overlay-utils.ts +3 -0
  92. package/src/components/radio-utils.ts +12 -0
  93. package/src/components/reka.ts +5 -0
  94. package/src/components/select-utils.ts +21 -2
  95. package/src/components/split-pane-utils.ts +65 -12
  96. package/src/components/table/RsTableBody.vue +217 -0
  97. package/src/components/table/RsTableBodyRow.vue +90 -1
  98. package/src/components/table/RsTableColGroup.vue +41 -0
  99. package/src/components/table/RsTableHeader.vue +158 -0
  100. package/src/components/table/RsTableSummaryRow.vue +52 -0
  101. package/src/components/table/rs-table-api.ts +99 -0
  102. package/src/components/table/rs-table-compat-matrix.ts +71 -0
  103. package/src/components/table/rs-table-echarts-adapter.ts +81 -0
  104. package/src/components/table/rs-table-feature-host.ts +178 -0
  105. package/src/components/table/rs-table-grid-nav.ts +122 -0
  106. package/src/components/table/rs-table-header-types.ts +47 -0
  107. package/src/components/table/rs-table-module-registry.ts +72 -0
  108. package/src/components/table/rs-table-props.ts +274 -0
  109. package/src/components/table/rs-table-view-context.ts +258 -0
  110. package/src/components/table/rs-table.css +84 -6
  111. package/src/components/table/table-chart-utils.ts +165 -0
  112. package/src/components/table/table-features.ts +284 -0
  113. package/src/components/table/table-summary-utils.ts +194 -0
  114. package/src/components/table-utils.ts +452 -2
  115. package/src/components/tabs-utils.ts +142 -2
  116. package/src/components/terminal-utils.ts +1 -1
  117. package/src/components/terminal-wheel.ts +1 -1
  118. package/src/components/time-picker-utils.ts +76 -3
  119. package/src/components/upload-utils.ts +122 -0
  120. package/src/components/virtual-list-utils.ts +15 -2
  121. package/src/composables/assembleRsTableApi.ts +79 -0
  122. package/src/composables/bindRsTableViewContext.ts +269 -0
  123. package/src/composables/createRsDialog.ts +357 -0
  124. package/src/composables/createRsTableEditEmitBridge.ts +38 -0
  125. package/src/composables/useRsLoadingBar.ts +36 -0
  126. package/src/composables/useRsTable.ts +134 -0
  127. package/src/composables/useRsTableA11y.ts +52 -0
  128. package/src/composables/useRsTableChartBridge.ts +79 -0
  129. package/src/composables/useRsTableColumnLayout.ts +320 -0
  130. package/src/composables/useRsTableColumnResize.ts +244 -0
  131. package/src/composables/useRsTableColumnVirtual.ts +180 -0
  132. package/src/composables/useRsTableColumns.ts +200 -0
  133. package/src/composables/useRsTableContextMenu.ts +257 -0
  134. package/src/composables/useRsTableCore.ts +256 -0
  135. package/src/composables/useRsTableEditActions.ts +606 -0
  136. package/src/composables/useRsTableEditLayer.ts +251 -0
  137. package/src/composables/useRsTableEngine.ts +357 -0
  138. package/src/composables/useRsTableGridKeyboard.ts +123 -0
  139. package/src/composables/useRsTableHeadless.ts +137 -0
  140. package/src/composables/useRsTableInteraction.ts +433 -0
  141. package/src/composables/useRsTableScrollHost.ts +75 -0
  142. package/src/composables/useRsTableScrollLayout.ts +255 -0
  143. package/src/composables/useRsTableSelectionSource.ts +89 -0
  144. package/src/composables/useRsTableShell.ts +416 -0
  145. package/src/composables/useRsTableShellChrome.ts +170 -0
  146. package/src/composables/useRsTableSummary.ts +113 -0
  147. package/src/composables/useRsTableViewProvide.ts +263 -0
  148. package/src/composables/useRsTableVirtual.ts +154 -0
  149. package/src/composables/useRsTabsNav.ts +4 -0
  150. package/src/composables/useTableEdit.ts +1 -1
  151. package/src/icons/lucide.ts +2 -2
  152. package/src/index.ts +309 -9
  153. package/src/locale/messages.ts +30 -0
  154. package/src/styles.css +305 -52
  155. package/src/theme/brand.example.css +21 -2
  156. package/src/theme/presets.ts +4 -0
  157. package/src/theme/types.ts +67 -0
  158. package/src/components/RsTableColgroup.vue +0 -17
  159. package/src/components/RsTableHeaderRow.vue +0 -30
package/src/index.ts CHANGED
@@ -4,7 +4,35 @@ export { default as RsContainer } from './components/RsContainer.vue'
4
4
  export { default as RsBreadcrumb } from './components/RsBreadcrumb.vue'
5
5
  export { default as RsToolbar } from './components/RsToolbar.vue'
6
6
  export { default as RsButton } from './components/RsButton.vue'
7
+ export type { RsButtonTone, RsButtonVariant } from './components/button-utils'
8
+ export {
9
+ isRsButtonFilledVariant,
10
+ supportsRsButtonTone,
11
+ } from './components/button-utils'
7
12
  export { default as RsCheckbox } from './components/RsCheckbox.vue'
13
+ export { default as RsSwitch } from './components/RsSwitch.vue'
14
+ export { default as RsRadio } from './components/RsRadio.vue'
15
+ export { default as RsRadioItem } from './components/RsRadioItem.vue'
16
+ export type { RsRadioValue } from './components/radio-utils'
17
+ export { default as RsTag } from './components/RsTag.vue'
18
+ export type { RsTagVariant } from './components/RsTag.vue'
19
+ export { default as RsDynamicTags } from './components/RsDynamicTags.vue'
20
+ export type {
21
+ RsDynamicTagsInputMode,
22
+ RsDynamicTagsRejectReason,
23
+ } from './components/RsDynamicTags.vue'
24
+ export { default as RsAlert } from './components/RsAlert.vue'
25
+ export { default as RsDivider } from './components/RsDivider.vue'
26
+ export { default as RsDescriptions } from './components/RsDescriptions.vue'
27
+ export { default as RsDescriptionsItem } from './components/RsDescriptionsItem.vue'
28
+ export type {
29
+ RsDescriptionsItem as RsDescriptionsItemData,
30
+ RsDescriptionsLabelPlacement,
31
+ RsDescriptionsSize,
32
+ } from './components/descriptions-utils'
33
+ export { default as RsLoadingBar } from './components/RsLoadingBar.vue'
34
+ export { useRsLoadingBar } from './composables/useRsLoadingBar'
35
+ export type { RsLoadingBarApi } from './composables/useRsLoadingBar'
8
36
  export { default as RsDropdown } from './components/RsDropdown.vue'
9
37
  export { default as RsIcon } from './components/RsIcon.vue'
10
38
  export { default as RsInput } from './components/RsInput.vue'
@@ -29,7 +57,7 @@ export { default as RsSelect } from './components/RsSelect.vue'
29
57
  export { default as RsScrollbar } from './components/RsScrollbar.vue'
30
58
  export { default as RsAvatar } from './components/RsAvatar.vue'
31
59
  export { default as RsCard } from './components/RsCard.vue'
32
- export type { RsCardVariant } from './components/RsCard.vue'
60
+ export type { RsCardSize, RsCardVariant } from './components/RsCard.vue'
33
61
  export { default as RsEmpty } from './components/RsEmpty.vue'
34
62
  export { default as RsLoading } from './components/RsLoading.vue'
35
63
  export { default as RsTabs } from './components/RsTabs.vue'
@@ -39,7 +67,45 @@ export { default as RsPopover } from './components/RsPopover.vue'
39
67
  export { default as RsDialog } from './components/RsDialog.vue'
40
68
  export { default as RsContextMenu } from './components/RsContextMenu.vue'
41
69
  export { default as RsConfirmDialog } from './components/RsConfirmDialog.vue'
70
+ export { openRsDialog, rsConfirm } from './composables/createRsDialog'
71
+ export type {
72
+ RsConfirmApi,
73
+ RsConfirmInput,
74
+ RsDialogHandle,
75
+ RsDialogOpenOptions,
76
+ RsConfirmResult,
77
+ } from './composables/createRsDialog'
78
+ export type {
79
+ RsConfirmBeforeClose,
80
+ RsConfirmCloseReason,
81
+ RsConfirmOptions,
82
+ RsDialogBeforeClose,
83
+ RsDialogCloseReason,
84
+ RsDialogLayout,
85
+ RsDialogWidth,
86
+ RsDialogWidthPreset,
87
+ } from './components/dialog-utils'
88
+ export {
89
+ isRsDialogWidthPreset,
90
+ resolveDialogOverlayStyle,
91
+ resolveRsDialogCssWidth,
92
+ runRsConfirmBeforeClose,
93
+ runRsDialogBeforeClose,
94
+ } from './components/dialog-utils'
42
95
  export { default as RsDrawer } from './components/RsDrawer.vue'
96
+ export type {
97
+ RsDrawerBeforeClose,
98
+ RsDrawerCloseReason,
99
+ RsDrawerDimension,
100
+ RsDrawerSide,
101
+ RsDrawerSize,
102
+ } from './components/drawer-utils'
103
+ export {
104
+ resolveDrawerOverlayStyle,
105
+ resolveRsDrawerDimensionCss,
106
+ resolveRsDrawerSizeCss,
107
+ runRsDrawerBeforeClose,
108
+ } from './components/drawer-utils'
43
109
  export { default as RsForm } from './components/RsForm.vue'
44
110
  export { default as RsToaster } from './components/RsToaster.vue'
45
111
  export { default as RsDatePicker } from './components/RsDatePicker.vue'
@@ -55,9 +121,8 @@ export { default as RsStatCard } from './components/RsStatCard.vue'
55
121
  export { default as RsSteps } from './components/RsSteps.vue'
56
122
  export { default as RsTable } from './components/RsTable.vue'
57
123
  export { default as RsTableCellEditor } from './components/table/RsTableCellEditor.vue'
58
- export { default as RsTableHeaderRow } from './components/RsTableHeaderRow.vue'
59
- export { default as RsTableColgroup } from './components/RsTableColgroup.vue'
60
124
  export { default as RsPagination } from './components/RsPagination.vue'
125
+ export type { RsPaginationSize } from './components/RsPagination.vue'
61
126
  export { default as RsTree } from './components/RsTree.vue'
62
127
  export { default as RsUpload } from './components/RsUpload.vue'
63
128
  export { default as RsVirtualList } from './components/RsVirtualList.vue'
@@ -141,11 +206,19 @@ export type { RsDropdownItem, RsDropdownItemGroup, RsDropdownItems } from './com
141
206
  export type { RsMenuItem, RsMenuItemGroup, RsMenuItems } from './components/menu-utils'
142
207
  export type { RsScrollbarOrientation, RsScrollbarType } from './components/scrollbar-utils'
143
208
  export type { RsSelectOption, RsSelectOptionGroup, RsSelectOptions } from './components/select-utils'
209
+ export {
210
+ RS_SELECT_EMPTY_VALUE,
211
+ fromComboboxValue,
212
+ toComboboxValue,
213
+ } from './components/select-utils'
144
214
  export type { RsFeedbackTone, RsToastPosition, RsToastType } from './components/overlay-utils'
145
215
  export { RS_TOAST_DEFAULT_GAP, RS_TOAST_DEFAULT_POSITION, rsToastPositions, rsFeedbackIconClass } from './components/overlay-utils'
146
216
  export type {
147
217
  RsFormContext,
218
+ RsFormErrorRender,
219
+ RsFormErrorRenderContext,
148
220
  RsFormFieldExpose,
221
+ RsFormFieldValidationResult,
149
222
  RsFormGap,
150
223
  RsFormLabelAlign,
151
224
  RsFormLabelPosition,
@@ -156,26 +229,60 @@ export type {
156
229
  export {
157
230
  cloneFormFieldValue,
158
231
  RS_FORM_INJECTION_KEY,
232
+ resolveFieldRules,
159
233
  useRsFormContext,
160
234
  useRsFormField,
161
235
  } from './components/form-utils'
162
- export type { RsTabItem, RsTabsOverflow, RsTabsSize, RsTabsVariant } from './components/tabs-utils'
236
+ export type {
237
+ RsFormRuleItem,
238
+ RsFormRuleMessage,
239
+ RsFormRules,
240
+ RsFormRuleTrigger,
241
+ RsFormRuleValidateResult,
242
+ } from './components/form-rules'
163
243
  export {
244
+ buildLocalInputRules,
245
+ matchFormRuleTrigger,
246
+ normalizeFormRules,
247
+ resolveRuleMessage,
248
+ runFormFieldRules,
249
+ } from './components/form-rules'
250
+ export type {
251
+ RsTabItem,
252
+ RsTabsCloseAction,
253
+ RsTabsContentGap,
254
+ RsTabsOverflow,
255
+ RsTabsSize,
256
+ RsTabsJustify,
257
+ RsTabsVariant,
258
+ } from './components/tabs-utils'
259
+ export {
260
+ buildTabContextMenuItems,
261
+ getNextTabAfterBatchClose,
164
262
  getNextTabAfterClose,
165
263
  isTabClosable,
264
+ isTabFixed,
166
265
  isTabRenamable,
167
266
  reorderTabItems,
267
+ resolveTabsToClose,
168
268
  resolveVisibleTabValues,
169
269
  } from './components/tabs-utils'
170
270
  export type { RsStepItem, RsStepStatus, RsStepsOrientation, RsStepsSize } from './components/steps-utils'
171
271
  export { isStepSeparatorCompleted, resolveStepStatus } from './components/steps-utils'
172
- export type { RsSplitConstraint, RsSplitOrientation, RsSplitPaneItem } from './components/split-pane-utils'
272
+ export type {
273
+ RsSplitConstraint,
274
+ RsSplitOrientation,
275
+ RsSplitPaneItem,
276
+ RsSplitPaneSize,
277
+ } from './components/split-pane-utils'
173
278
  export {
174
279
  applySplitResize,
175
280
  collapseSplitPane,
176
281
  expandSplitPane,
282
+ isRsSplitPaneAutoSize,
177
283
  isSplitPaneCollapsed,
178
284
  normalizeSplitSizes,
285
+ resolveSplitAutoFlags,
179
286
  resolveSplitConstraints,
180
287
  splitSizesEqual,
181
288
  } from './components/split-pane-utils'
@@ -198,6 +305,148 @@ export {
198
305
  validateCellValueAsync,
199
306
  } from './components/table/table-edit-utils'
200
307
  export type { RsTableStagedCell, RsTableUndoEntry, RsTableFocusCell } from './composables/useTableEdit'
308
+ export {
309
+ useRsTable,
310
+ useRsTableApi,
311
+ RS_TABLE_API_KEY,
312
+ RS_TABLE_API_VERSION,
313
+ isRsTableApi,
314
+ RsTableModuleRegistry,
315
+ resolveInstanceFeatures,
316
+ type RsTableApi,
317
+ type UseRsTableSurface,
318
+ } from './composables/useRsTable'
319
+ export { useRsTableCore, type RsTableCoreApi, type UseRsTableCoreOptions } from './composables/useRsTableCore'
320
+ export {
321
+ useRsTableShell,
322
+ type RsTableShellApi,
323
+ type UseRsTableShellCoreSlice,
324
+ type UseRsTableShellOptions,
325
+ } from './composables/useRsTableShell'
326
+ export {
327
+ useRsTableEditLayer,
328
+ type RsTableApiEditSlice,
329
+ type RsTableEditLayerApi,
330
+ type UseRsTableEditLayerOptions,
331
+ } from './composables/useRsTableEditLayer'
332
+ export {
333
+ createRsTableApi,
334
+ type RsTableColumnChartMeta,
335
+ type RsTableColumnWithChartMeta,
336
+ } from './components/table/rs-table-api'
337
+ export {
338
+ createRsTableFeatureHost,
339
+ type RsTableContextMenuContributor,
340
+ type RsTableFeatureHost,
341
+ } from './components/table/rs-table-feature-host'
342
+ export { useRsTableColumns } from './composables/useRsTableColumns'
343
+ export { useRsTableEngine } from './composables/useRsTableEngine'
344
+ export { flattenVisibleCountRough, useRsTableVirtual } from './composables/useRsTableVirtual'
345
+ export { useRsTableScrollLayout } from './composables/useRsTableScrollLayout'
346
+ export {
347
+ measureRsTablePrefixWidth,
348
+ RS_TABLE_PREFIX_COL_WIDTH,
349
+ useRsTableColumnVirtual,
350
+ } from './composables/useRsTableColumnVirtual'
351
+ export { useRsTableColumnLayout } from './composables/useRsTableColumnLayout'
352
+ export { useRsTableColumnResize } from './composables/useRsTableColumnResize'
353
+ export { useRsTableContextMenu } from './composables/useRsTableContextMenu'
354
+ export { useRsTableEditActions } from './composables/useRsTableEditActions'
355
+ export { useRsTableInteraction } from './composables/useRsTableInteraction'
356
+ export { RS_TABLE_SUMMARY_FEATURE_ID, useRsTableSummary } from './composables/useRsTableSummary'
357
+ export {
358
+ useRsTableSelectionSource,
359
+ type RsTableAnalyticsSnapshot,
360
+ type RsTableAnalyticsSourceMode,
361
+ } from './composables/useRsTableSelectionSource'
362
+ export { useRsTableChartBridge } from './composables/useRsTableChartBridge'
363
+ export type {
364
+ RsTableChartKind,
365
+ RsTableChartPoint,
366
+ RsTableChartSeries,
367
+ RsTableChartSeriesDef,
368
+ RsTableChartValueAgg,
369
+ } from './components/table/table-chart-utils'
370
+ export {
371
+ buildTableChartSeries,
372
+ buildTableChartSeriesList,
373
+ } from './components/table/table-chart-utils'
374
+ export {
375
+ mapRsTableSeriesToEChartsOption,
376
+ type RsTableEChartsOption,
377
+ type MapRsTableSeriesToEChartsOptions,
378
+ } from './components/table/rs-table-echarts-adapter'
379
+ export type {
380
+ RsTableBuiltinFeatureId,
381
+ RsTableFeature,
382
+ RsTableFeatureContext,
383
+ } from './components/table/table-features'
384
+ export {
385
+ createAnalyticsTableFeature,
386
+ createBuiltinTableFeatures,
387
+ createChartSeriesTableFeature,
388
+ createContextMenuTableFeature,
389
+ createOverlayTableFeature,
390
+ createToolbarTableFeature,
391
+ resolveBuiltinTableFeatures,
392
+ RS_TABLE_ANALYTICS_SHELL,
393
+ RS_TABLE_FEATURE_COMPOSABLE_MAP,
394
+ setupTableFeatures,
395
+ } from './components/table/table-features'
396
+ export {
397
+ createRsTableViewContext,
398
+ provideRsTableView,
399
+ useRsTableView,
400
+ RS_TABLE_VIEW_KEY,
401
+ type RsTableViewContext,
402
+ } from './components/table/rs-table-view-context'
403
+ export type {
404
+ RsTableOverlayContribution,
405
+ RsTableToolbarItem,
406
+ } from './components/table/rs-table-feature-host'
407
+ export { useRsTableHeadless } from './composables/useRsTableHeadless'
408
+ export { useRsTableViewProvide } from './composables/useRsTableViewProvide'
409
+ export { useRsTableA11y } from './composables/useRsTableA11y'
410
+ export { useRsTableShellChrome } from './composables/useRsTableShellChrome'
411
+ export { useRsTableScrollHost } from './composables/useRsTableScrollHost'
412
+ export { createRsTableEditEmitBridge } from './composables/createRsTableEditEmitBridge'
413
+ export { assembleRsTableApi } from './composables/assembleRsTableApi'
414
+ export { bindRsTableViewContext } from './composables/bindRsTableViewContext'
415
+ export {
416
+ RS_TABLE_API_REQUIRED_METHODS,
417
+ RS_TABLE_API_OPTIONAL_METHODS,
418
+ RS_TABLE_STABLE_EMITS,
419
+ RS_TABLE_COMPAT_API_VERSION,
420
+ } from './components/table/rs-table-compat-matrix'
421
+ export type {
422
+ RsTableProps,
423
+ RsTableEmits,
424
+ } from './components/table/rs-table-props'
425
+ export { RS_TABLE_PROP_DEFAULTS } from './components/table/rs-table-props'
426
+ export { useRsTableGridKeyboard } from './composables/useRsTableGridKeyboard'
427
+ export {
428
+ navigateGridCell,
429
+ resolveGridNavDirection,
430
+ type RsTableGridNavDirection,
431
+ type RsTableGridCellRef,
432
+ } from './components/table/rs-table-grid-nav'
433
+ export type {
434
+ RsTableColumnSummary,
435
+ RsTableSummaryCell,
436
+ RsTableSummaryData,
437
+ RsTableSummaryMode,
438
+ RsTableSummaryType,
439
+ } from './components/table/table-summary-utils'
440
+ export {
441
+ aggregateColumnSummary,
442
+ buildTableSummaryCells,
443
+ hasTableSummaryConfig,
444
+ } from './components/table/table-summary-utils'
445
+ export { default as RsTableSummaryRow } from './components/table/RsTableSummaryRow.vue'
446
+ export { default as RsTableHeader } from './components/table/RsTableHeader.vue'
447
+ export { default as RsTableBody } from './components/table/RsTableBody.vue'
448
+ export { default as RsTableColGroup } from './components/table/RsTableColGroup.vue'
449
+ export type { RsTableHeaderProps } from './components/table/rs-table-header-types'
201
450
  export type { RsTableRowDragTrigger, RsTableRowDropMode } from './components/table-drag'
202
451
  export type {
203
452
  RsTableCellRenderResult,
@@ -219,18 +468,32 @@ export type {
219
468
  RsTableSize,
220
469
  RsTableSortOrder,
221
470
  RsTableSortState,
471
+ RsTableTreeCheckState,
472
+ RsTableTreeConfig,
473
+ RsTableTreeNodeIndex,
222
474
  } from './components/table-utils'
223
475
  export {
224
476
  buildTableEntries,
477
+ buildTableTreeEntries,
478
+ buildTableTreeNodeIndex,
225
479
  clampColumnWidth,
480
+ collectTableTreeDescendantKeys,
481
+ collectTableTreeExpandableKeys,
482
+ collectTableTreeHalfCheckedKeys,
226
483
  compareTableValues,
227
484
  createInitialColumnWidths,
228
485
  filterTableRows,
486
+ filterTableTreeRows,
229
487
  fixedCellStyle,
488
+ flattenVisibleTableTreeEntries,
230
489
  getCellValue,
231
490
  getSortOrderForKey,
232
491
  getSortPriorityForKey,
492
+ getTableTreeChildren,
493
+ getTableTreeIsLeaf,
233
494
  groupTableRows,
495
+ hasStableTableTreeRowKey,
496
+ hasTableTreeChildren,
234
497
  injectExpandRows,
235
498
  isNearScrollBottom,
236
499
  isTableRowDisabled,
@@ -245,17 +508,22 @@ export {
245
508
  resolveSelectableRowKeys,
246
509
  resolveSelectAllState,
247
510
  resolveTableSize,
511
+ resolveTableTreeCheckState,
512
+ resolveTableTreeIndent,
513
+ resolveTableTreeRowKey,
248
514
  resolveTableVirtualEnabled,
249
515
  selectRowKeys,
250
516
  selectRowKeysByClick,
251
517
  sliceVirtualTableEntries,
252
518
  sortTableRows,
253
519
  sortTableRowsMulti,
520
+ sortTableTreeRows,
254
521
  toggleExpandedRowKeys,
255
522
  toggleMultiSortState,
256
523
  toggleRowSelection,
257
524
  toggleSelectAll,
258
525
  toggleSortState,
526
+ toggleTableTreeCheck,
259
527
  } from './components/table-utils'
260
528
  export type {
261
529
  RsTreeCheckState,
@@ -296,10 +564,13 @@ export {
296
564
  } from './components/tree-utils'
297
565
  export type { RsUploadValidationError, RsUploadValidationRules } from './components/upload-utils'
298
566
  export {
567
+ createUploadFileFromContent,
568
+ downloadUploadFile,
299
569
  formatFileSize,
300
570
  isFileAccepted,
301
571
  mergeUploadFiles,
302
572
  removeUploadFileAt,
573
+ resolveUploadFileIcon,
303
574
  validateUploadFiles,
304
575
  } from './components/upload-utils'
305
576
  export type { RsVirtualListItemSize } from './components/virtual-list-utils'
@@ -321,7 +592,15 @@ export {
321
592
  resolveCodeEditorSize,
322
593
  resolveCodeEditorTheme,
323
594
  } from './components/code-editor-utils'
324
- export type { RsDateRangeValue, RsParsedDate, RsParsedDateTime } from './components/date-picker-utils'
595
+ export type {
596
+ RsDatePickerModelValue,
597
+ RsDatePickerShortcut,
598
+ RsDatePickerTimestampRange,
599
+ RsDatePickerValueFormat,
600
+ RsDateRangeValue,
601
+ RsParsedDate,
602
+ RsParsedDateTime,
603
+ } from './components/date-picker-utils'
325
604
  export {
326
605
  EMPTY_DATE_RANGE,
327
606
  formatDateDisplay,
@@ -347,17 +626,22 @@ export {
347
626
  looksLikeIsoDateTimeWithTz,
348
627
  parseLocalDateTimeToUtcIso,
349
628
  } from './lib/iso-local-datetime'
350
- export type { RsParsedTime, RsTimeRangeValue } from './components/time-picker-utils'
629
+ export type { RsParsedTime, RsTimeRangeValue, RsTimeUnit, RsTimeUnitOption } from './components/time-picker-utils'
351
630
  export {
352
631
  EMPTY_TIME_RANGE,
632
+ TIME_HOUR_OPTIONS,
633
+ TIME_SECOND_OPTIONS,
353
634
  formatTimeFromParts,
354
635
  formatTimeParts,
355
636
  formatTimeRangeDisplay,
637
+ formatTimeUnitLabel,
356
638
  formatTimeValue,
639
+ getTimeMinuteOptions,
357
640
  isTimeRangeEmpty,
358
641
  isTimeRangeOrdered,
359
642
  isTimeWithinBounds,
360
643
  parseTimeValue,
644
+ scrollTimeColumnToValue,
361
645
  } from './components/time-picker-utils'
362
646
  export type {
363
647
  RsDateTimeValidationError,
@@ -415,8 +699,24 @@ export {
415
699
  lucideIconCount,
416
700
  isRsIconName,
417
701
  } from './icons/registry'
418
- export type { RsThemeMode, RsThemeTokens, RsComponentSize, RsRadius } from './theme/types'
419
- export { RS_COMPONENT_SIZES, RS_COMPONENT_SIZE_ICON_PX, RS_RADII, RS_RADIUS_CSS } from './theme/types'
702
+ export type {
703
+ RsThemeMode,
704
+ RsThemeTokens,
705
+ RsComponentSize,
706
+ RsRadius,
707
+ RsFontSize,
708
+ RsFontWeight,
709
+ } from './theme/types'
710
+ export {
711
+ RS_COMPONENT_SIZES,
712
+ RS_COMPONENT_SIZE_ICON_PX,
713
+ RS_RADII,
714
+ RS_RADIUS_CSS,
715
+ RS_FONT_SIZES,
716
+ RS_FONT_SIZE_CSS,
717
+ RS_FONT_WEIGHTS,
718
+ RS_FONT_WEIGHT_CSS,
719
+ } from './theme/types'
420
720
  export type { RsLocale } from './locale/types'
421
721
  export { useRsConfig, useRsConfigOptional, createRsConfigState } from './composables/useRsConfig'
422
722
  export { useResolvedRsComponentSize, resolveRsComponentSize } from './components/resolve-size'
@@ -32,12 +32,24 @@ export const zhCN: RsLocaleMessages = {
32
32
  'dialog.close': '关闭',
33
33
  'dialog.fullscreen': '全屏',
34
34
  'dialog.restore': '还原',
35
+ 'tag.close': '关闭标签',
36
+ 'alert.close': '关闭提示',
37
+ 'dynamicTags.label': '标签编辑',
38
+ 'dynamicTags.placeholder': '输入后回车添加',
39
+ 'dynamicTags.add': '添加标签',
40
+ 'dynamicTags.duplicate': '标签已存在',
41
+ 'dynamicTags.maxReached': '已达数量上限',
35
42
  'confirm.title': '确认操作?',
36
43
  'confirm.description': '此操作可能无法撤销,请确认后继续。',
37
44
  'loading.label': '加载中',
38
45
  'tabs.label': '标签页',
39
46
  'tabs.add': '新建标签页',
40
47
  'tabs.close': '关闭 {label}',
48
+ 'tabs.closeTab': '关闭',
49
+ 'tabs.closeOthers': '关闭其他',
50
+ 'tabs.closeLeft': '关闭左侧',
51
+ 'tabs.closeRight': '关闭右侧',
52
+ 'tabs.closeAll': '关闭全部',
41
53
  'tabs.more': '更多',
42
54
  'tabs.rename': '重命名标签页',
43
55
  'tabs.renamePlaceholder': '输入标签名称',
@@ -55,6 +67,7 @@ export const zhCN: RsLocaleMessages = {
55
67
  'table.loading': '加载中…',
56
68
  'table.empty': '暂无数据',
57
69
  'table.loadingMore': '加载更多…',
70
+ 'table.a11yLabel': '数据表格',
58
71
  'table.selectAll': '全选',
59
72
  'table.selectRow': '选择行',
60
73
  'table.index': '#',
@@ -78,6 +91,8 @@ export const zhCN: RsLocaleMessages = {
78
91
  'table.editTextarea': '单元格多行文本',
79
92
  'upload.label': '点击或拖拽文件到此处上传',
80
93
  'upload.browse': '或点击浏览本地文件',
94
+ 'upload.download': '下载文件',
95
+ 'upload.dropActive': '松开以添加文件',
81
96
  'datePicker.placeholder': '选择日期',
82
97
  'datePicker.rangePlaceholder': '选择日期范围',
83
98
  'datePicker.clear': '清空日期',
@@ -210,12 +225,24 @@ export const enUS: RsLocaleMessages = {
210
225
  'dialog.close': 'Close',
211
226
  'dialog.fullscreen': 'Fullscreen',
212
227
  'dialog.restore': 'Restore',
228
+ 'tag.close': 'Close tag',
229
+ 'alert.close': 'Dismiss alert',
230
+ 'dynamicTags.label': 'Editable tags',
231
+ 'dynamicTags.placeholder': 'Type and press Enter',
232
+ 'dynamicTags.add': 'Add tag',
233
+ 'dynamicTags.duplicate': 'Tag already exists',
234
+ 'dynamicTags.maxReached': 'Maximum number of tags reached',
213
235
  'confirm.title': 'Confirm action?',
214
236
  'confirm.description': 'This action may not be reversible. Please confirm before continuing.',
215
237
  'loading.label': 'Loading',
216
238
  'tabs.label': 'Tabs',
217
239
  'tabs.add': 'Add tab',
218
240
  'tabs.close': 'Close {label}',
241
+ 'tabs.closeTab': 'Close',
242
+ 'tabs.closeOthers': 'Close others',
243
+ 'tabs.closeLeft': 'Close to the left',
244
+ 'tabs.closeRight': 'Close to the right',
245
+ 'tabs.closeAll': 'Close all',
219
246
  'tabs.more': 'More',
220
247
  'tabs.rename': 'Rename tab',
221
248
  'tabs.renamePlaceholder': 'Enter tab name',
@@ -233,6 +260,7 @@ export const enUS: RsLocaleMessages = {
233
260
  'table.loading': 'Loading…',
234
261
  'table.empty': 'No data',
235
262
  'table.loadingMore': 'Loading more…',
263
+ 'table.a11yLabel': 'Data table',
236
264
  'table.selectAll': 'Select all',
237
265
  'table.selectRow': 'Select row',
238
266
  'table.index': '#',
@@ -256,6 +284,8 @@ export const enUS: RsLocaleMessages = {
256
284
  'table.editTextarea': 'Cell multiline text',
257
285
  'upload.label': 'Click or drag files here to upload',
258
286
  'upload.browse': 'or click to browse files',
287
+ 'upload.download': 'Download file',
288
+ 'upload.dropActive': 'Drop files to upload',
259
289
  'datePicker.placeholder': 'Select date',
260
290
  'datePicker.rangePlaceholder': 'Select date range',
261
291
  'datePicker.clear': 'Clear date',