niuma-ui 2.0.3 → 2.0.4

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 (202) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/components/_shared/src/reka.d.ts +1 -1
  3. package/dist/components/_shared/src/reka.js +2 -2
  4. package/dist/components/anchor/index.d.ts +1 -1
  5. package/dist/components/anchor/src/RsAnchor.css +63 -32
  6. package/dist/components/anchor/src/RsAnchor.d.ts +29 -2
  7. package/dist/components/anchor/src/RsAnchor.impl.js +199 -81
  8. package/dist/components/anchor/src/RsAnchor.js +1 -1
  9. package/dist/components/anchor/src/anchor-utils.d.ts +36 -4
  10. package/dist/components/anchor/src/anchor-utils.js +81 -19
  11. package/dist/components/auto-complete/index.d.ts +2 -0
  12. package/dist/components/auto-complete/src/RsAutoComplete.css +122 -0
  13. package/dist/components/auto-complete/src/RsAutoComplete.d.ts +47 -7
  14. package/dist/components/auto-complete/src/RsAutoComplete.impl.js +180 -72
  15. package/dist/components/auto-complete/src/RsAutoComplete.js +4 -1
  16. package/dist/components/auto-complete/src/auto-complete-utils.d.ts +7 -0
  17. package/dist/components/auto-complete/src/auto-complete-utils.js +17 -0
  18. package/dist/components/avatar/index.d.ts +1 -0
  19. package/dist/components/avatar/src/RsAvatar.css +36 -19
  20. package/dist/components/avatar/src/RsAvatar.d.ts +9 -3
  21. package/dist/components/avatar/src/RsAvatar.impl.js +57 -33
  22. package/dist/components/avatar/src/RsAvatar.js +2 -1
  23. package/dist/components/avatar/src/avatar-utils.d.ts +16 -7
  24. package/dist/components/avatar/src/avatar-utils.js +41 -3
  25. package/dist/components/breadcrumb/index.d.ts +1 -1
  26. package/dist/components/breadcrumb/src/RsBreadcrumb.css +50 -17
  27. package/dist/components/breadcrumb/src/RsBreadcrumb.d.ts +45 -6
  28. package/dist/components/breadcrumb/src/RsBreadcrumb.impl.js +111 -12
  29. package/dist/components/breadcrumb/src/RsBreadcrumb.js +2 -1
  30. package/dist/components/breadcrumb/src/breadcrumb-utils.d.ts +37 -5
  31. package/dist/components/breadcrumb/src/breadcrumb-utils.js +70 -9
  32. package/dist/components/calendar-grid/index.d.ts +2 -0
  33. package/dist/components/calendar-grid/src/RsCalendarGrid.css +105 -45
  34. package/dist/components/calendar-grid/src/RsCalendarGrid.d.ts +62 -2
  35. package/dist/components/calendar-grid/src/RsCalendarGrid.impl.js +265 -94
  36. package/dist/components/calendar-grid/src/RsCalendarGrid.js +1 -1
  37. package/dist/components/calendar-grid/src/calendar-grid-utils.d.ts +72 -0
  38. package/dist/components/calendar-grid/src/calendar-grid-utils.js +122 -0
  39. package/dist/components/card/index.d.ts +1 -1
  40. package/dist/components/card/src/RsCard.css +108 -98
  41. package/dist/components/card/src/RsCard.d.ts +3 -12
  42. package/dist/components/card/src/RsCard.impl.js +29 -25
  43. package/dist/components/card/src/RsCard.js +2 -1
  44. package/dist/components/card/src/card-utils.d.ts +25 -0
  45. package/dist/components/card/src/card-utils.js +10 -0
  46. package/dist/components/cascader/index.d.ts +1 -0
  47. package/dist/components/cascader/src/RsCascader.css +175 -30
  48. package/dist/components/cascader/src/RsCascader.d.ts +15 -3
  49. package/dist/components/cascader/src/RsCascader.impl.js +277 -48
  50. package/dist/components/cascader/src/RsCascader.js +1 -1
  51. package/dist/components/cascader/src/cascader-utils.d.ts +2 -0
  52. package/dist/components/cascader/src/cascader-utils.js +8 -1
  53. package/dist/components/checkbox/index.d.ts +1 -0
  54. package/dist/components/checkbox/src/RsCheckbox.css +46 -23
  55. package/dist/components/checkbox/src/RsCheckbox.d.ts +11 -1
  56. package/dist/components/checkbox/src/RsCheckbox.impl.js +37 -9
  57. package/dist/components/checkbox/src/RsCheckbox.js +2 -1
  58. package/dist/components/checkbox/src/checkbox-utils.d.ts +4 -0
  59. package/dist/components/checkbox/src/checkbox-utils.js +12 -0
  60. package/dist/components/container/index.d.ts +1 -1
  61. package/dist/components/container/src/RsContainer.css +11 -11
  62. package/dist/components/container/src/RsContainer.d.ts +2 -12
  63. package/dist/components/container/src/RsContainer.impl.js +10 -57
  64. package/dist/components/container/src/RsContainer.js +1 -1
  65. package/dist/components/container/src/container-utils.d.ts +23 -0
  66. package/dist/components/container/src/container-utils.js +51 -0
  67. package/dist/components/date-picker/index.d.ts +4 -2
  68. package/dist/components/date-picker/src/RsDatePicker.css +42 -22
  69. package/dist/components/date-picker/src/RsDatePicker.d.ts +44 -20
  70. package/dist/components/date-picker/src/RsDatePicker.impl.js +484 -222
  71. package/dist/components/date-picker/src/RsDatePicker.js +1 -3
  72. package/dist/components/date-picker/src/RsDateTimePicker.d.ts +33 -6
  73. package/dist/components/date-picker/src/RsDateTimePicker.impl.js +47 -6
  74. package/dist/components/date-picker/src/date-picker-utils.d.ts +19 -0
  75. package/dist/components/date-picker/src/date-picker-utils.js +33 -10
  76. package/dist/components/dynamic-tags/index.d.ts +1 -1
  77. package/dist/components/dynamic-tags/src/RsDynamicTags.css +115 -38
  78. package/dist/components/dynamic-tags/src/RsDynamicTags.d.ts +58 -17
  79. package/dist/components/dynamic-tags/src/RsDynamicTags.impl.js +269 -106
  80. package/dist/components/dynamic-tags/src/RsDynamicTags.js +1 -1
  81. package/dist/components/dynamic-tags/src/dynamic-tags-utils.d.ts +19 -0
  82. package/dist/components/dynamic-tags/src/dynamic-tags-utils.js +60 -0
  83. package/dist/components/fieldset/src/RsFieldset.css +71 -41
  84. package/dist/components/fieldset/src/RsFieldset.d.ts +21 -2
  85. package/dist/components/fieldset/src/RsFieldset.impl.js +93 -26
  86. package/dist/components/fieldset/src/RsFieldset.js +1 -1
  87. package/dist/components/fieldset/src/fieldset-utils.d.ts +4 -0
  88. package/dist/components/fieldset/src/fieldset-utils.js +9 -1
  89. package/dist/components/form/index.d.ts +1 -0
  90. package/dist/components/form/src/RsForm.css +15 -12
  91. package/dist/components/form/src/RsForm.d.ts +20 -22
  92. package/dist/components/form/src/RsForm.impl.js +33 -20
  93. package/dist/components/form/src/RsForm.js +1 -1
  94. package/dist/components/form/src/form-utils.d.ts +7 -0
  95. package/dist/components/form/src/form-utils.js +28 -1
  96. package/dist/components/input/index.d.ts +1 -1
  97. package/dist/components/input/src/RsInput.css +78 -260
  98. package/dist/components/input/src/RsInput.d.ts +5 -3
  99. package/dist/components/input/src/RsInput.impl.js +8 -16
  100. package/dist/components/input/src/RsInput.js +1 -1
  101. package/dist/components/input/src/input-utils.d.ts +11 -0
  102. package/dist/components/input/src/input-utils.js +22 -0
  103. package/dist/components/input-number/index.d.ts +1 -0
  104. package/dist/components/input-number/src/RsInputNumber.css +31 -31
  105. package/dist/components/input-number/src/RsInputNumber.d.ts +15 -13
  106. package/dist/components/input-number/src/RsInputNumber.impl.js +17 -4
  107. package/dist/components/input-number/src/RsInputNumber.js +1 -1
  108. package/dist/components/label/src/RsLabel.css +30 -11
  109. package/dist/components/label/src/RsLabel.d.ts +18 -1
  110. package/dist/components/label/src/RsLabel.impl.js +63 -10
  111. package/dist/components/label/src/RsLabel.js +1 -1
  112. package/dist/components/label/src/label-utils.d.ts +6 -0
  113. package/dist/components/label/src/label-utils.js +16 -0
  114. package/dist/components/link/src/RsLink.d.ts +2 -2
  115. package/dist/components/loading/src/RsLoading.d.ts +1 -1
  116. package/dist/components/mentions/index.d.ts +2 -1
  117. package/dist/components/mentions/src/RsMentions.css +119 -3
  118. package/dist/components/mentions/src/RsMentions.d.ts +56 -4
  119. package/dist/components/mentions/src/RsMentions.impl.js +298 -79
  120. package/dist/components/mentions/src/RsMentions.js +1 -3
  121. package/dist/components/mentions/src/mentions-utils.d.ts +5 -1
  122. package/dist/components/mentions/src/mentions-utils.js +28 -9
  123. package/dist/components/popover/src/RsPopover.d.ts +1 -1
  124. package/dist/components/radio/index.d.ts +1 -1
  125. package/dist/components/radio/src/RsRadio.css +7 -6
  126. package/dist/components/radio/src/RsRadio.d.ts +8 -5
  127. package/dist/components/radio/src/RsRadio.impl.js +34 -24
  128. package/dist/components/radio/src/RsRadio.js +2 -1
  129. package/dist/components/radio/src/RsRadioItem.css +61 -44
  130. package/dist/components/radio/src/RsRadioItem.d.ts +2 -2
  131. package/dist/components/radio/src/RsRadioItem.impl.js +53 -20
  132. package/dist/components/radio/src/RsRadioItem.js +2 -1
  133. package/dist/components/radio/src/radio-utils.d.ts +12 -1
  134. package/dist/components/radio/src/radio-utils.js +15 -1
  135. package/dist/components/scrollbar/src/RsScrollbar.css +71 -24
  136. package/dist/components/scrollbar/src/RsScrollbar.d.ts +9 -5
  137. package/dist/components/scrollbar/src/RsScrollbar.impl.js +372 -47
  138. package/dist/components/scrollbar/src/RsScrollbar.js +2 -1
  139. package/dist/components/scrollbar/src/scrollbar-utils.d.ts +34 -2
  140. package/dist/components/scrollbar/src/scrollbar-utils.js +64 -1
  141. package/dist/components/select/index.d.ts +1 -0
  142. package/dist/components/select/src/RsSelect.css +54 -42
  143. package/dist/components/select/src/RsSelect.d.ts +19 -2
  144. package/dist/components/select/src/RsSelect.impl.js +727 -312
  145. package/dist/components/select/src/RsSelect.js +1 -1
  146. package/dist/components/select/src/select-utils.d.ts +4 -2
  147. package/dist/components/select/src/select-utils.js +8 -3
  148. package/dist/components/select/src/use-rs-select.d.ts +1 -0
  149. package/dist/components/select/src/use-rs-select.js +23 -17
  150. package/dist/components/switch/index.d.ts +2 -1
  151. package/dist/components/switch/src/RsSwitch.css +36 -18
  152. package/dist/components/switch/src/RsSwitch.d.ts +18 -5
  153. package/dist/components/switch/src/RsSwitch.impl.js +61 -29
  154. package/dist/components/switch/src/RsSwitch.js +2 -1
  155. package/dist/components/switch/src/switch-utils.d.ts +4 -0
  156. package/dist/components/switch/src/switch-utils.js +9 -0
  157. package/dist/components/textarea/src/RsTextarea.css +23 -23
  158. package/dist/components/textarea/src/RsTextarea.d.ts +6 -12
  159. package/dist/components/textarea/src/RsTextarea.impl.js +37 -46
  160. package/dist/components/textarea/src/RsTextarea.js +1 -1
  161. package/dist/components/textarea/src/textarea-utils.d.ts +27 -0
  162. package/dist/components/textarea/src/textarea-utils.js +61 -0
  163. package/dist/components/time-picker/index.d.ts +3 -2
  164. package/dist/components/time-picker/src/RsTimePicker.css +41 -24
  165. package/dist/components/time-picker/src/RsTimePicker.d.ts +52 -7
  166. package/dist/components/time-picker/src/RsTimePicker.impl.js +520 -156
  167. package/dist/components/time-picker/src/RsTimePicker.js +1 -3
  168. package/dist/components/time-picker/src/RsTimePickerColumns.css +26 -18
  169. package/dist/components/time-picker/src/RsTimePickerColumns.d.ts +3 -1
  170. package/dist/components/time-picker/src/RsTimePickerColumns.impl.js +62 -9
  171. package/dist/components/time-picker/src/RsTimePickerColumns.js +1 -1
  172. package/dist/components/time-picker/src/time-picker-utils.d.ts +38 -0
  173. package/dist/components/time-picker/src/time-picker-utils.js +97 -5
  174. package/dist/components/toaster/src/RsToaster.d.ts +1 -1
  175. package/dist/components/tooltip/src/RsTooltip.d.ts +1 -1
  176. package/dist/components/tree/src/RsTree.d.ts +3 -3
  177. package/dist/components/tree-select/index.d.ts +2 -0
  178. package/dist/components/tree-select/src/RsTreeSelect.css +100 -25
  179. package/dist/components/tree-select/src/RsTreeSelect.d.ts +91 -7
  180. package/dist/components/tree-select/src/RsTreeSelect.impl.js +464 -79
  181. package/dist/components/tree-select/src/RsTreeSelect.js +1 -1
  182. package/dist/components/tree-select/src/tree-select-utils.d.ts +20 -0
  183. package/dist/components/tree-select/src/tree-select-utils.js +60 -0
  184. package/dist/components/upload/index.d.ts +2 -1
  185. package/dist/components/upload/src/RsUpload.css +223 -75
  186. package/dist/components/upload/src/RsUpload.d.ts +77 -1
  187. package/dist/components/upload/src/RsUpload.impl.js +404 -90
  188. package/dist/components/upload/src/RsUpload.js +1 -1
  189. package/dist/components/upload/src/upload-utils.d.ts +21 -2
  190. package/dist/components/upload/src/upload-utils.js +139 -9
  191. package/dist/index.d.ts +21 -11
  192. package/dist/index.js +6 -0
  193. package/dist/locale/messages.js +46 -2
  194. package/dist/styles.css +518 -154
  195. package/dist/theme/brand.example.css +1 -1
  196. package/package.json +1 -1
  197. package/dist/components/breadcrumb/src/RsBreadcrumbItems.d.ts +0 -8
  198. package/dist/components/breadcrumb/src/RsBreadcrumbItems.impl.js +0 -40
  199. package/dist/components/breadcrumb/src/RsBreadcrumbItems.js +0 -5
  200. package/dist/components/date-picker/src/RsDatePicker-1.css +0 -157
  201. package/dist/components/mentions/src/RsMentions-1.css +0 -29
  202. package/dist/components/time-picker/src/RsTimePicker-1.css +0 -98
@@ -1,8 +1,24 @@
1
1
  //#region src/components/upload/src/upload-utils.ts
2
- function formatFileSize(size) {
3
- if (size < 1024) return `${size} B`;
4
- if (size < 1024 * 1024) return `${(size / 1024).toFixed(1)} KB`;
5
- return `${(size / 1024 / 1024).toFixed(1)} MB`;
2
+ function formatFileSize(size, locale) {
3
+ const abs = Number.isFinite(size) ? Math.max(0, size) : 0;
4
+ const units = [
5
+ "B",
6
+ "KB",
7
+ "MB",
8
+ "GB",
9
+ "TB"
10
+ ];
11
+ let value = abs;
12
+ let unit = 0;
13
+ while (value >= 1024 && unit < units.length - 1) {
14
+ value /= 1024;
15
+ unit += 1;
16
+ }
17
+ if (unit === 0) return `${Math.round(value)} B`;
18
+ return `${locale ? new Intl.NumberFormat(locale, {
19
+ minimumFractionDigits: 1,
20
+ maximumFractionDigits: 1
21
+ }).format(value) : value.toFixed(1)} ${units[unit]}`;
6
22
  }
7
23
  function isFileAccepted(file, accept) {
8
24
  if (!accept) return true;
@@ -40,17 +56,131 @@ function mergeUploadFiles(current, next, maxCount) {
40
56
  function removeUploadFileAt(files, index) {
41
57
  return files.filter((_, currentIndex) => currentIndex !== index);
42
58
  }
43
- /** 触发浏览器下载指定 File / Blob */
59
+ function isSameUploadFile(left, right) {
60
+ return left.name === right.name && left.size === right.size && left.lastModified === right.lastModified && left.type === right.type;
61
+ }
62
+ function skipDuplicateUploadFiles(current, incoming) {
63
+ return incoming.filter((file) => !current.some((item) => isSameUploadFile(item, file)));
64
+ }
65
+ function resolveUploadCapture(capture) {
66
+ if (capture === true) return "environment";
67
+ if (capture === "user" || capture === "environment") return capture;
68
+ }
69
+ function isImageUploadFile(file) {
70
+ if (file.type.startsWith("image/")) return true;
71
+ return resolveUploadFileIcon(file) === "file-image";
72
+ }
73
+ function asFileSystemEntry(item) {
74
+ const getter = item.webkitGetAsEntry;
75
+ if (typeof getter !== "function") return null;
76
+ return getter.call(item);
77
+ }
78
+ function droppedDataHasDirectory(data) {
79
+ const items = data?.items;
80
+ if (!items?.length) return false;
81
+ return Array.from(items).some((item) => asFileSystemEntry(item)?.isDirectory);
82
+ }
83
+ function readFileEntry(entry) {
84
+ return new Promise((resolve) => {
85
+ if (!entry.file) {
86
+ resolve(null);
87
+ return;
88
+ }
89
+ entry.file((file) => resolve(file), () => resolve(null));
90
+ });
91
+ }
92
+ function readDirectoryEntries(entry) {
93
+ const reader = entry.createReader?.();
94
+ if (!reader) return Promise.resolve([]);
95
+ const collected = [];
96
+ return new Promise((resolve) => {
97
+ const pump = () => {
98
+ reader.readEntries((batch) => {
99
+ if (!batch.length) {
100
+ resolve(collected);
101
+ return;
102
+ }
103
+ collected.push(...batch);
104
+ pump();
105
+ }, () => resolve(collected));
106
+ };
107
+ pump();
108
+ });
109
+ }
110
+ async function collectEntryFiles(entry, output) {
111
+ if (entry.isFile) {
112
+ const file = await readFileEntry(entry);
113
+ if (file) output.push(file);
114
+ return;
115
+ }
116
+ if (!entry.isDirectory) return;
117
+ const children = await readDirectoryEntries(entry);
118
+ for (const child of children) await collectEntryFiles(child, output);
119
+ }
120
+ /** 读取拖入的 File。文件夹走 webkitGetAsEntry;否则回退 dataTransfer.files。 */
121
+ async function collectDroppedFiles(data) {
122
+ if (!data) return [];
123
+ const fromList = Array.from(data.files ?? []);
124
+ const items = data.items;
125
+ if (!items?.length) return fromList;
126
+ const entries = Array.from(items).map((item) => asFileSystemEntry(item)).filter((entry) => Boolean(entry));
127
+ if (!entries.length) return fromList;
128
+ const files = [];
129
+ for (const entry of entries) await collectEntryFiles(entry, files);
130
+ return files.length ? files : fromList;
131
+ }
132
+ function nextUploadPreviewUrls(current, files, enabled, createUrl) {
133
+ const live = new Set(files);
134
+ const next = /* @__PURE__ */ new Map();
135
+ const revoked = [];
136
+ if (!enabled) {
137
+ revoked.push(...current.values());
138
+ return {
139
+ next,
140
+ revoked
141
+ };
142
+ }
143
+ for (const [file, url] of current) if (live.has(file)) next.set(file, url);
144
+ else revoked.push(url);
145
+ for (const file of files) {
146
+ if (!isImageUploadFile(file) || next.has(file)) continue;
147
+ const url = createUrl(file);
148
+ if (url) next.set(file, url);
149
+ }
150
+ return {
151
+ next,
152
+ revoked
153
+ };
154
+ }
155
+ function pruneBrokenUploadPreview(broken, files) {
156
+ const live = new Set(files);
157
+ return new Set([...broken].filter((file) => live.has(file)));
158
+ }
159
+ function createUploadObjectUrl(file) {
160
+ if (typeof URL === "undefined" || typeof URL.createObjectURL !== "function") return "";
161
+ return URL.createObjectURL(file);
162
+ }
163
+ function revokeUploadObjectUrl(url) {
164
+ if (!url || typeof URL === "undefined" || typeof URL.revokeObjectURL !== "function") return;
165
+ URL.revokeObjectURL(url);
166
+ }
167
+ /** 触发浏览器下载指定 File / Blob。无 document 时空操作。延迟 revoke,避免下载被中断。 */
44
168
  function downloadUploadFile(file, filename) {
169
+ if (typeof document === "undefined" || typeof URL === "undefined") return;
45
170
  const name = filename || (file instanceof File ? file.name : "download");
46
- const url = URL.createObjectURL(file);
171
+ const url = createUploadObjectUrl(file);
172
+ if (!url) return;
47
173
  const link = document.createElement("a");
48
174
  link.href = url;
49
175
  link.download = name;
50
176
  document.body.appendChild(link);
51
177
  link.click();
52
- document.body.removeChild(link);
53
- URL.revokeObjectURL(url);
178
+ link.remove();
179
+ if (typeof window === "undefined") {
180
+ revokeUploadObjectUrl(url);
181
+ return;
182
+ }
183
+ window.setTimeout(() => revokeUploadObjectUrl(url), 1500);
54
184
  }
55
185
  /** 将文本等内容还原为可回显的 File(编辑态回填) */
56
186
  function createUploadFileFromContent(name, content, type = "application/octet-stream") {
@@ -174,4 +304,4 @@ function resolveUploadFileIcon(file) {
174
304
  return "file";
175
305
  }
176
306
  //#endregion
177
- export { createUploadFileFromContent, downloadUploadFile, formatFileSize, isFileAccepted, mergeUploadFiles, removeUploadFileAt, resolveUploadFileIcon, validateUploadFiles };
307
+ export { collectDroppedFiles, createUploadFileFromContent, createUploadObjectUrl, downloadUploadFile, droppedDataHasDirectory, formatFileSize, isFileAccepted, isImageUploadFile, isSameUploadFile, mergeUploadFiles, nextUploadPreviewUrls, pruneBrokenUploadPreview, removeUploadFileAt, resolveUploadCapture, resolveUploadFileIcon, revokeUploadObjectUrl, skipDuplicateUploadFiles, validateUploadFiles };
package/dist/index.d.ts CHANGED
@@ -4,22 +4,23 @@ export type { RsBadgeVariant } from './components/badge';
4
4
  export { RsContainer } from './components/container';
5
5
  export { RsBreadcrumb } from './components/breadcrumb';
6
6
  export { RsAnchor } from './components/anchor';
7
- export type { RsAnchorFlatItem, RsAnchorItem } from './components/anchor';
7
+ export type { RsAnchorDirection, RsAnchorExpose, RsAnchorFlatItem, RsAnchorInstance, RsAnchorItem, RsAnchorScrollBehavior, } from './components/anchor';
8
8
  export { flattenAnchorItems, hrefToAnchorId, pickActiveAnchorHref, } from './components/anchor';
9
9
  export { RsToolbar } from './components/toolbar';
10
10
  export { RsButton } from './components/button';
11
11
  export type { RsButtonTone, RsButtonVariant } from './components/button';
12
12
  export { isRsButtonFilledVariant, resolveRsButtonTone, resolveRsButtonVariant, supportsRsButtonTone, } from './components/button';
13
13
  export { RsCheckbox } from './components/checkbox';
14
+ export type { RsCheckboxExpose, RsCheckboxInstance } from './components/checkbox';
14
15
  export { RsSwitch } from './components/switch';
15
- export type { RsSwitchValue } from './components/switch';
16
+ export type { RsSwitchExpose, RsSwitchInstance, RsSwitchValue } from './components/switch';
16
17
  export { RsRadio } from './components/radio';
17
18
  export { RsRadioItem } from './components/radio';
18
- export type { RsRadioValue } from './components/radio';
19
+ export type { RsRadioOrientation, RsRadioValue } from './components/radio';
19
20
  export { RsTag } from './components/tag';
20
21
  export type { RsTagVariant } from './components/tag';
21
22
  export { RsDynamicTags } from './components/dynamic-tags';
22
- export type { RsDynamicTagsInputMode, RsDynamicTagsRejectReason, } from './components/dynamic-tags';
23
+ export type { RsDynamicTagsExpose, RsDynamicTagsInputMode, RsDynamicTagsInstance, RsDynamicTagsParse, RsDynamicTagsRejectReason, } from './components/dynamic-tags';
23
24
  export { RsAlert } from './components/alert';
24
25
  export { RsDivider } from './components/divider';
25
26
  export type { RsDividerOrientation } from './components/divider';
@@ -32,23 +33,29 @@ export type { RsLoadingBarApi } from './composables/useRsLoadingBar';
32
33
  export { RsDropdown } from './components/dropdown';
33
34
  export { RsIcon } from './components/icon';
34
35
  export { RsInput } from './components/input';
35
- export type { RsInputExpose, RsInputInstance } from './components/input';
36
+ export type { RsInputExpose, RsInputInstance, RsInputType } from './components/input';
36
37
  export { RsTextarea } from './components/textarea';
37
38
  export type { RsTextareaAutosize, RsTextareaExpose, RsTextareaInstance, RsTextareaResize, } from './components/textarea';
38
39
  export { RsInputNumber } from './components/input-number';
39
- export type { RsInputNumberValue } from './components/input-number';
40
+ export type { RsInputNumberExpose, RsInputNumberInstance, RsInputNumberValue, } from './components/input-number';
40
41
  export { clampNumber, formatNumberValue, fromModelValue, isNumberInputInterim, normalizeCommittedNumber, parseNumberInput, resolveNumberPrecision, roundToPrecision, stepNumberValue, toModelValue, } from './components/input-number';
41
42
  export { RsLabel } from './components/label';
42
43
  export { RsLink } from './components/link';
43
44
  export type { RsLinkTone, RsLinkUnderline } from './components/link';
44
45
  export { RsMenu } from './components/menu';
45
46
  export { RsSelect } from './components/select';
47
+ export type { RsSelectExpose, RsSelectInstance } from './components/select';
46
48
  export { RsAutoComplete } from './components/auto-complete';
49
+ export type { RsAutoCompleteExpose, RsAutoCompleteInstance, RsAutoCompleteFilterOption, RsAutoCompleteOption, RsAutoCompleteOptionInput, } from './components/auto-complete';
47
50
  export { RsCascader } from './components/cascader';
51
+ export type { RsCascaderExpose, RsCascaderInstance } from './components/cascader';
48
52
  export { RsTreeSelect } from './components/tree-select';
53
+ export type { RsTreeSelectExpose, RsTreeSelectGetPopupContainer, RsTreeSelectInstance, RsTreeSelectModelValue, RsTreeSelectShowCheckedStrategy, } from './components/tree-select';
49
54
  export { RsMentions } from './components/mentions';
55
+ export type { RsMentionsExpose, RsMentionsInstance } from './components/mentions';
50
56
  export { RsScrollbar } from './components/scrollbar';
51
57
  export { RsAvatar } from './components/avatar';
58
+ export type { RsAvatarShape, RsAvatarSize, RsAvatarTone } from './components/avatar';
52
59
  export { RsCard } from './components/card';
53
60
  export type { RsCardSize, RsCardVariant } from './components/card';
54
61
  export { RsEmpty } from './components/empty';
@@ -77,6 +84,7 @@ export { RsDatePicker } from './components/date-picker';
77
84
  export { RsDateTimePicker } from './components/date-picker';
78
85
  export { RsTimePicker } from './components/time-picker';
79
86
  export { RsCalendarGrid } from './components/calendar-grid';
87
+ export type { RsCalendarCell, RsCalendarGridCellSlot, RsCalendarGridExpose, RsCalendarGridInstance, } from './components/calendar-grid';
80
88
  export { RsTimePickerColumns } from './components/time-picker';
81
89
  export { RsSidebar } from './components/sidebar';
82
90
  export { RsSidebarGroup } from './components/sidebar';
@@ -90,6 +98,7 @@ export { RsPagination } from './components/pagination';
90
98
  export type { RsPaginationSize } from './components/pagination';
91
99
  export { RsTree } from './components/tree';
92
100
  export { RsUpload } from './components/upload';
101
+ export type { RsUploadBeforeRemove, RsUploadBeforeSelect, RsUploadCapture, RsUploadExpose, RsUploadInstance, RsUploadListType, RsUploadVariant, } from './components/upload';
93
102
  export { RsVirtualList } from './components/virtual-list';
94
103
  export { RsCodeEditor } from './components/code-editor';
95
104
  export { RsMonacoEditor } from './components/monaco-editor';
@@ -120,11 +129,12 @@ export type { RsMenuItem, RsMenuItemGroup, RsMenuItems } from './components/menu
120
129
  export type { RsScrollbarOrientation, RsScrollbarType } from './components/scrollbar';
121
130
  export type { RsSelectFieldNames, RsSelectFilterOption, RsSelectFilterSort, RsSelectGetPopupContainer, RsSelectLabeledValue, RsSelectModelValue, RsSelectResolvedModel, RsSelectOption, RsSelectOptionFilterProp, RsSelectOptionGroup, RsSelectOptionInput, RsSelectOptions, RsSelectOptionsInput, RsSelectPlacement, RsSelectStatus, RsSelectMaxTagCount, RsSelectVariant, RsSelectValue, } from './components/select';
122
131
  export type { RsCascaderExpandTrigger, RsCascaderOption, RsCascaderPath, } from './components/cascader';
123
- export type { RsMentionActive, RsMentionCaretBox, RsMentionOption, RsMentionPopupBox, } from './components/mentions';
132
+ export type { RsMentionActive, RsMentionCaretBox, RsMentionFilterOption, RsMentionOption, RsMentionOptionInput, RsMentionPopupBox, } from './components/mentions';
124
133
  export { RS_SELECT_EMPTY_VALUE, fromComboboxValue, isSelectLabeledValue, normalizeSelectOptions, optionDisplayLabel, packSelectModel, restoreSelectValue, toComboboxValue, unwrapSelectEntry, } from './components/select';
125
134
  export type { RsFeedbackTone, RsToastPosition, RsToastType, RsOverlayAnchorBox, RsOverlayBox } from './components/_shared';
126
135
  export { RS_TOAST_DEFAULT_GAP, RS_TOAST_DEFAULT_POSITION, rsToastPositions, rsFeedbackIconClass, placeAnchoredPopup, stepEnabledIndex } from './components/_shared';
127
136
  export type { RsFormContext, RsFormErrorRender, RsFormErrorRenderContext, RsFormFieldExpose, RsFormItemContext, RsFormListContext, RsFormListField, RsFormListOperations, RsFormFieldValidationResult, RsFormGap, RsFormLabelAlign, RsFormLabelPosition, RsFormMaxWidth, RsFormSize, RsFormValidateStatus, RsFormValidationResult, } from './components/form';
137
+ export type { RsFormExpose, RsFormInstance } from './components/form';
128
138
  export { cloneFormFieldValue, isRsFormItemBoundControl, provideRsFormItemContext, provideRsFormListContext, RS_FORM_INJECTION_KEY, RS_FORM_ITEM_INJECTION_KEY, RS_FORM_LIST_INJECTION_KEY, resolveFieldRules, useRsFormContext, useRsFormField, useRsFormItemContext, useRsFormListContext, } from './components/form';
129
139
  export type { RsFormNamePath } from './components/form';
130
140
  export { concatNamePath, getByNamePath, hasByNamePath, isIndexSegment, namePathKey, normalizeNamePath, setByNamePath, } from './components/form';
@@ -196,12 +206,12 @@ export type { RsVirtualListItemSize } from './components/virtual-list';
196
206
  export { resolveItemSize, resolveVirtualListHeight } from './components/virtual-list';
197
207
  export type { RsCodeEditorDiagnostic, RsCodeEditorLanguage, RsCodeEditorSqlColumn, RsCodeEditorSqlConfig, RsCodeEditorSqlDialect, RsCodeEditorSqlNamespace, RsCodeEditorTheme, RsResolvedCodeEditorTheme, } from './components/code-editor';
198
208
  export { codeEditorLanguageLabel, readDocumentTheme, resolveCodeEditorLanguage, resolveCodeEditorSize, resolveCodeEditorTheme, } from './components/code-editor';
199
- export type { RsDatePickerModelValue, RsDatePickerShortcut, RsDatePickerTimestampRange, RsDatePickerValueConvertOptions, RsDatePickerValueFormat, RsDatePickerValueFormatPreset, RsDateRangeValue, RsParsedDate, RsParsedDateTime, } from './components/date-picker';
200
- export { EMPTY_DATE_RANGE, formatDateDisplay, formatDateParts, formatDateRangeDisplay, formatDateTimeDisplay, formatDateTimeValue, formatDateValue, fromInternalPickerValue, isDateRangeEmpty, isDateRangeOrdered, isDateTimeRangeOrdered, parseDateTimeValue, parseDateValue, RS_DATE_PICKER_VALUE_FORMAT_PRESETS, toInternalPickerValue, toRangeEndpointString, } from './components/date-picker';
209
+ export type { RsDatePickerDisabledDate, RsDatePickerExpose, RsDatePickerGetPopupContainer, RsDatePickerInstance, RsDatePickerLabelPosition, RsDatePickerModelValue, RsDatePickerShortcut, RsDatePickerTimestampRange, RsDatePickerValueConvertOptions, RsDatePickerValueFormat, RsDatePickerValueFormatPreset, RsDateRangeValue, RsDateTimePickerExpose, RsDateTimePickerInstance, RsDateTimePickerLabelPosition, RsDateTimeRangeValue, RsParsedDate, RsParsedDateTime, RsWeekStartsOn, } from './components/date-picker';
210
+ export { EMPTY_DATE_RANGE, formatDateDisplay, formatDateParts, formatDateRangeDisplay, formatDateTimeDisplay, formatDateTimeValue, formatDateValue, formatPickerDisplay, fromInternalPickerValue, isDateRangeEmpty, isDateRangeOrdered, isDateTimeRangeOrdered, parseDateTimeValue, parseDateValue, resolveWeekStartsOn, RS_DATE_PICKER_VALUE_FORMAT_PRESETS, toInternalPickerValue, toRangeEndpointString, } from './components/date-picker';
201
211
  export { RS_DATE_FORMAT, RS_DATETIME_FORMAT, RS_TIME_MINUTE_FORMAT, RS_TIME_SECONDS_FORMAT, } from './utils/rs-dayjs';
202
212
  export { formatIsoUtcToLocal, looksLikeIsoDateTimeWithTz, parseLocalDateTimeToUtcIso, } from './utils/iso-local-datetime';
203
- export type { RsParsedTime, RsTimeRangeValue, RsTimeUnit, RsTimeUnitOption } from './components/time-picker';
204
- export { EMPTY_TIME_RANGE, TIME_HOUR_OPTIONS, TIME_SECOND_OPTIONS, formatTimeFromParts, formatTimeParts, formatTimeRangeDisplay, formatTimeUnitLabel, formatTimeValue, getTimeMinuteOptions, isTimeRangeEmpty, isTimeRangeOrdered, isTimeWithinBounds, parseTimeValue, scrollTimeColumnToValue, } from './components/time-picker';
213
+ export type { RsParsedTime, RsTimePickerDisabledTime, RsTimePickerExpose, RsTimePickerGetPopupContainer, RsTimePickerHourCycle, RsTimePickerInstance, RsTimePickerLabelPosition, RsTimePickerModelValue, RsTimePickerShortcut, RsTimeRangeValue, RsTimeUnit, RsTimeUnitOption, } from './components/time-picker';
214
+ export { EMPTY_TIME_RANGE, TIME_HOUR12_OPTIONS, TIME_HOUR_OPTIONS, TIME_SECOND_OPTIONS, formatTimeDisplay, formatTimeFromParts, formatTimeParts, formatTimeRangeDisplay, formatTimeUnitLabel, formatTimeValue, getTimeMinuteOptions, isTimeRangeEmpty, isTimeRangeOrdered, isTimeWithinBounds, parseTimeValue, scrollTimeColumnToValue, toHour12, toHour24, } from './components/time-picker';
205
215
  export type { RsDateTimeValidationError, RsDateTimeValidationResult, RsDateTimeValidationRules, RsDateValidationError, RsDateValidationResult, RsDateValidationRules, } from './components/date-picker';
206
216
  export { validateDateTimeValue, validateDateValue } from './components/date-picker';
207
217
  export type { RsTimeValidationError, RsTimeValidationResult, RsTimeValidationRules } from './components/time-picker';
package/dist/index.js CHANGED
@@ -126,6 +126,7 @@ export { default as RsTree } from './components/tree/src/RsTree.js'
126
126
  export { default as RsTreeSelect } from './components/tree-select/src/RsTreeSelect.js'
127
127
  export { default as RsUpload } from './components/upload/src/RsUpload.js'
128
128
  export { default as RsVirtualList } from './components/virtual-list/src/RsVirtualList.js'
129
+ export { TIME_HOUR12_OPTIONS } from './components/time-picker/src/time-picker-utils.js'
129
130
  export { TIME_HOUR_OPTIONS } from './components/time-picker/src/time-picker-utils.js'
130
131
  export { TIME_SECOND_OPTIONS } from './components/time-picker/src/time-picker-utils.js'
131
132
  export { aggregateColumnSummary } from './components/table/src/utils/table-summary-utils.js'
@@ -210,6 +211,8 @@ export { formatFileSize } from './components/upload/src/upload-utils.js'
210
211
  export { formatIsoUtcToLocal } from './utils/iso-local-datetime.js'
211
212
  export { formatLogTime } from './components/log/src/log-utils.js'
212
213
  export { formatNumberValue } from './components/input-number/src/input-number-utils.js'
214
+ export { formatPickerDisplay } from './components/date-picker/src/date-picker-utils.js'
215
+ export { formatTimeDisplay } from './components/time-picker/src/time-picker-utils.js'
213
216
  export { formatTimeFromParts } from './components/time-picker/src/time-picker-utils.js'
214
217
  export { formatTimeParts } from './components/time-picker/src/time-picker-utils.js'
215
218
  export { formatTimeRangeDisplay } from './components/time-picker/src/time-picker-utils.js'
@@ -395,6 +398,7 @@ export { resolveTreeVirtualEnabled } from './components/tree/src/tree-utils.js'
395
398
  export { resolveUploadFileIcon } from './components/upload/src/upload-utils.js'
396
399
  export { resolveVirtualListHeight } from './components/virtual-list/src/virtual-list-utils.js'
397
400
  export { resolveVisibleTabValues } from './components/tabs/src/tabs-utils.js'
401
+ export { resolveWeekStartsOn } from './components/date-picker/src/date-picker-utils.js'
398
402
  export { restoreSelectValue } from './components/select/src/select-utils.js'
399
403
  export { roundToPrecision } from './components/input-number/src/input-number-utils.js'
400
404
  export { rsBrandIconAccentVar } from './icons/brand.js'
@@ -435,6 +439,8 @@ export { syslogSeverityOf } from './components/log/src/log-utils.js'
435
439
  export { terminalShortcutLabel } from './components/terminal/src/terminal-utils.js'
436
440
  export { themePresets } from './theme/presets.js'
437
441
  export { toComboboxValue } from './components/select/src/select-utils.js'
442
+ export { toHour12 } from './components/time-picker/src/time-picker-utils.js'
443
+ export { toHour24 } from './components/time-picker/src/time-picker-utils.js'
438
444
  export { toInternalPickerValue } from './components/date-picker/src/date-picker-utils.js'
439
445
  export { toLogLineInput } from './components/log/src/log-utils.js'
440
446
  export { toModelValue } from './components/input-number/src/input-number-utils.js'
@@ -7,17 +7,23 @@ var zhCN = {
7
7
  "select.clear": "清空",
8
8
  "select.createOption": "使用 “{query}”",
9
9
  "select.maxTagPlaceholder": "+{count}",
10
+ "select.listbox": "选项列表",
10
11
  "mentions.placeholder": "输入 @ 提及",
11
12
  "mentions.suggestions": "提及建议",
13
+ "autocomplete.placeholder": "输入以搜索",
12
14
  "autocomplete.suggestions": "自动完成建议",
13
15
  "dropdown.placeholder": "请选择",
14
16
  "breadcrumb.label": "面包屑",
15
- "anchor.label": "本页目录",
16
17
  "breadcrumb.separator": "分隔符",
18
+ "breadcrumb.more": "显示更多层级",
19
+ "anchor.label": "本页目录",
17
20
  "menu.label": "导航菜单",
18
21
  "menu.expandSubmenu": "展开子菜单",
19
22
  "menu.collapseSubmenu": "收起子菜单",
20
23
  "input.required": "此项为必填",
24
+ "label.required": "必填",
25
+ "label.optional": "(选填)",
26
+ "label.colon": ":",
21
27
  "form.field": "此项",
22
28
  "form.validate.required": "请填写{label}",
23
29
  "form.list.add": "添加",
@@ -43,12 +49,15 @@ var zhCN = {
43
49
  "dialog.fullscreen": "全屏",
44
50
  "dialog.restore": "还原",
45
51
  "tag.close": "关闭标签",
52
+ "scrollbar.viewport": "滚动区域",
46
53
  "alert.close": "关闭提示",
47
54
  "dynamicTags.label": "标签编辑",
48
55
  "dynamicTags.placeholder": "输入后回车添加",
49
56
  "dynamicTags.add": "添加标签",
57
+ "dynamicTags.clear": "清空标签",
50
58
  "dynamicTags.duplicate": "标签已存在",
51
59
  "dynamicTags.maxReached": "已达数量上限",
60
+ "dynamicTags.invalid": "标签无效",
52
61
  "confirm.title": "确认操作?",
53
62
  "confirm.description": "此操作可能无法撤销,请确认后继续。",
54
63
  "loading.label": "加载中",
@@ -103,6 +112,16 @@ var zhCN = {
103
112
  "upload.browse": "或点击浏览本地文件",
104
113
  "upload.download": "下载文件",
105
114
  "upload.dropActive": "松开以添加文件",
115
+ "upload.button": "选择文件",
116
+ "upload.add": "添加文件",
117
+ "upload.preview": "预览文件",
118
+ "upload.fileList": "已选文件",
119
+ "calendarGrid.label": "月历",
120
+ "calendarGrid.prevYear": "上一年",
121
+ "calendarGrid.nextYear": "下一年",
122
+ "calendarGrid.prevMonth": "上个月",
123
+ "calendarGrid.nextMonth": "下个月",
124
+ "calendarGrid.week": "周",
106
125
  "datePicker.placeholder": "选择日期",
107
126
  "datePicker.rangePlaceholder": "选择日期范围",
108
127
  "datePicker.clear": "清空日期",
@@ -137,6 +156,9 @@ var zhCN = {
137
156
  "timePicker.separator": " ~ ",
138
157
  "timePicker.rangeStart": "开始时间",
139
158
  "timePicker.rangeEnd": "结束时间",
159
+ "timePicker.am": "上午",
160
+ "timePicker.pm": "下午",
161
+ "timePicker.period": "上午/下午",
140
162
  "tree.label": "树形控件",
141
163
  "tree.expand": "展开节点",
142
164
  "tree.collapse": "收起节点",
@@ -240,17 +262,23 @@ var enUS = {
240
262
  "select.clear": "Clear",
241
263
  "select.createOption": "Use “{query}”",
242
264
  "select.maxTagPlaceholder": "+{count}",
265
+ "select.listbox": "Options",
243
266
  "mentions.placeholder": "Type @ to mention",
244
267
  "mentions.suggestions": "Mention suggestions",
268
+ "autocomplete.placeholder": "Type to search",
245
269
  "autocomplete.suggestions": "Autocomplete suggestions",
246
270
  "dropdown.placeholder": "Select",
247
271
  "breadcrumb.label": "Breadcrumb",
248
- "anchor.label": "On this page",
249
272
  "breadcrumb.separator": "Separator",
273
+ "breadcrumb.more": "Show more levels",
274
+ "anchor.label": "On this page",
250
275
  "menu.label": "Navigation menu",
251
276
  "menu.expandSubmenu": "Expand submenu",
252
277
  "menu.collapseSubmenu": "Collapse submenu",
253
278
  "input.required": "This field is required",
279
+ "label.required": "required",
280
+ "label.optional": "(optional)",
281
+ "label.colon": ":",
254
282
  "form.field": "This field",
255
283
  "form.validate.required": "Please enter {label}",
256
284
  "form.list.add": "Add",
@@ -276,12 +304,15 @@ var enUS = {
276
304
  "dialog.fullscreen": "Fullscreen",
277
305
  "dialog.restore": "Restore",
278
306
  "tag.close": "Close tag",
307
+ "scrollbar.viewport": "Scrollable area",
279
308
  "alert.close": "Dismiss alert",
280
309
  "dynamicTags.label": "Editable tags",
281
310
  "dynamicTags.placeholder": "Type and press Enter",
282
311
  "dynamicTags.add": "Add tag",
312
+ "dynamicTags.clear": "Clear tags",
283
313
  "dynamicTags.duplicate": "Tag already exists",
284
314
  "dynamicTags.maxReached": "Maximum number of tags reached",
315
+ "dynamicTags.invalid": "Invalid tag",
285
316
  "confirm.title": "Confirm action?",
286
317
  "confirm.description": "This action may not be reversible. Please confirm before continuing.",
287
318
  "loading.label": "Loading",
@@ -336,6 +367,16 @@ var enUS = {
336
367
  "upload.browse": "or click to browse files",
337
368
  "upload.download": "Download file",
338
369
  "upload.dropActive": "Drop files to upload",
370
+ "upload.button": "Choose files",
371
+ "upload.add": "Add files",
372
+ "upload.preview": "Preview file",
373
+ "upload.fileList": "Selected files",
374
+ "calendarGrid.label": "Calendar",
375
+ "calendarGrid.prevYear": "Previous year",
376
+ "calendarGrid.nextYear": "Next year",
377
+ "calendarGrid.prevMonth": "Previous month",
378
+ "calendarGrid.nextMonth": "Next month",
379
+ "calendarGrid.week": "Wk",
339
380
  "datePicker.placeholder": "Select date",
340
381
  "datePicker.rangePlaceholder": "Select date range",
341
382
  "datePicker.clear": "Clear date",
@@ -370,6 +411,9 @@ var enUS = {
370
411
  "timePicker.separator": " – ",
371
412
  "timePicker.rangeStart": "Start time",
372
413
  "timePicker.rangeEnd": "End time",
414
+ "timePicker.am": "AM",
415
+ "timePicker.pm": "PM",
416
+ "timePicker.period": "AM/PM",
373
417
  "tree.label": "Tree",
374
418
  "tree.expand": "Expand node",
375
419
  "tree.collapse": "Collapse node",