niuma-ui 1.2.9 → 1.3.1

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 (58) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/components/RsButton.css +119 -61
  3. package/dist/components/RsButton.d.ts +3 -3
  4. package/dist/components/RsButton.impl.js +4 -12
  5. package/dist/components/RsButton.js +1 -1
  6. package/dist/components/RsDialog.css +1 -0
  7. package/dist/components/RsDialog.d.ts +5 -0
  8. package/dist/components/RsDialog.impl.js +4 -0
  9. package/dist/components/RsDrawer.css +1 -0
  10. package/dist/components/RsFieldset.css +92 -0
  11. package/dist/components/RsFieldset.d.ts +61 -0
  12. package/dist/components/RsFieldset.impl.js +78 -0
  13. package/dist/components/RsFieldset.js +8 -0
  14. package/dist/components/RsFormItem.css +19 -19
  15. package/dist/components/RsFormItem.d.ts +6 -4
  16. package/dist/components/RsFormItem.impl.js +12 -2
  17. package/dist/components/RsFormItem.js +1 -1
  18. package/dist/components/RsInput.css +78 -69
  19. package/dist/components/RsInput.js +1 -1
  20. package/dist/components/RsLog.css +198 -0
  21. package/dist/components/RsLog.d.ts +126 -0
  22. package/dist/components/RsLog.impl.js +619 -0
  23. package/dist/components/RsLog.js +8 -0
  24. package/dist/components/RsTable.impl.js +2 -1
  25. package/dist/components/RsTerminal.css +59 -18
  26. package/dist/components/RsTerminal.d.ts +17 -1
  27. package/dist/components/RsTerminal.impl.js +115 -8
  28. package/dist/components/RsTerminal.js +1 -1
  29. package/dist/components/RsTextarea.css +126 -0
  30. package/dist/components/RsTextarea.d.ts +114 -0
  31. package/dist/components/RsTextarea.impl.js +385 -0
  32. package/dist/components/RsTextarea.js +8 -0
  33. package/dist/components/RsTooltip.css +4 -3
  34. package/dist/components/RsTooltip.d.ts +2 -0
  35. package/dist/components/RsTooltip.impl.js +5 -2
  36. package/dist/components/RsVirtualList.css +6 -6
  37. package/dist/components/RsVirtualList.d.ts +1 -1
  38. package/dist/components/RsVirtualList.impl.js +9 -4
  39. package/dist/components/RsVirtualList.js +1 -1
  40. package/dist/components/button-utils.d.ts +19 -10
  41. package/dist/components/button-utils.js +22 -7
  42. package/dist/components/dialog-window.d.ts +2 -0
  43. package/dist/components/dialog-window.js +2 -1
  44. package/dist/components/fieldset-utils.d.ts +29 -0
  45. package/dist/components/fieldset-utils.js +12 -0
  46. package/dist/components/log-utils.d.ts +105 -0
  47. package/dist/components/log-utils.js +354 -0
  48. package/dist/components/table/rs-table-props.d.ts +8 -0
  49. package/dist/components/table/rs-table-props.js +1 -0
  50. package/dist/components/table/rs-table.css +7 -0
  51. package/dist/components/terminal-utils.d.ts +1 -1
  52. package/dist/dev/vite-xterm-deps.d.ts +1 -0
  53. package/dist/dev/vite-xterm-deps.js +1 -0
  54. package/dist/index.d.ts +10 -2
  55. package/dist/index.js +24 -0
  56. package/dist/locale/messages.js +52 -0
  57. package/dist/styles.css +37 -0
  58. package/package.json +2 -1
package/dist/index.js CHANGED
@@ -25,6 +25,8 @@ export { RS_FONT_WEIGHT_CSS } from './theme/types.js'
25
25
  export { RS_FORM_INJECTION_KEY } from './components/form-utils.js'
26
26
  export { RS_FORM_ITEM_INJECTION_KEY } from './components/form-utils.js'
27
27
  export { RS_FORM_LIST_INJECTION_KEY } from './components/form-utils.js'
28
+ export { RS_LOG_FILTER_LEVELS } from './components/log-utils.js'
29
+ export { RS_LOG_LEVELS } from './components/log-utils.js'
28
30
  export { RS_MONACO_DEBUG } from './monaco/debug-decorations2.js'
29
31
  export { RS_RADII } from './theme/types.js'
30
32
  export { RS_RADIUS_CSS } from './theme/types.js'
@@ -72,6 +74,7 @@ export { default as RsDrawer } from './components/RsDrawer.js'
72
74
  export { default as RsDropdown } from './components/RsDropdown.js'
73
75
  export { default as RsDynamicTags } from './components/RsDynamicTags.js'
74
76
  export { default as RsEmpty } from './components/RsEmpty.js'
77
+ export { default as RsFieldset } from './components/RsFieldset.js'
75
78
  export { default as RsForm } from './components/RsForm.js'
76
79
  export { default as RsFormItem } from './components/RsFormItem.js'
77
80
  export { default as RsFormList } from './components/RsFormList.js'
@@ -82,6 +85,7 @@ export { default as RsLabel } from './components/RsLabel.js'
82
85
  export { default as RsLink } from './components/RsLink.js'
83
86
  export { default as RsLoading } from './components/RsLoading.js'
84
87
  export { default as RsLoadingBar } from './components/RsLoadingBar.js'
88
+ export { default as RsLog } from './components/RsLog.js'
85
89
  export { default as RsMarkdown } from './components/RsMarkdown.js'
86
90
  export { default as RsMentions } from './components/RsMentions.js'
87
91
  export { default as RsMenu } from './components/RsMenu.js'
@@ -110,6 +114,7 @@ export { default as RsTableSummaryRow } from './components/table/RsTableSummaryR
110
114
  export { default as RsTabs } from './components/RsTabs.js'
111
115
  export { default as RsTag } from './components/RsTag.js'
112
116
  export { default as RsTerminal } from './components/RsTerminal.js'
117
+ export { default as RsTextarea } from './components/RsTextarea.js'
113
118
  export { default as RsTimePicker } from './components/RsTimePicker.js'
114
119
  export { default as RsTimePickerColumns } from './components/RsTimePickerColumns.js'
115
120
  export { default as RsToaster } from './components/RsToaster.js'
@@ -126,6 +131,7 @@ export { aggregateColumnSummary } from './components/table/table-summary-utils.j
126
131
  export { applyMonacoDebugDecorations } from './monaco/debug-decorations2.js'
127
132
  export { applySplitResize } from './components/split-pane-utils.js'
128
133
  export { applyTheme } from './theme/apply.js'
134
+ export { asLogLineInputs } from './components/log-utils.js'
129
135
  export { assembleRsTableApi } from './composables/assembleRsTableApi.js'
130
136
  export { beginClipboardPrefetch } from './utils/rs-clipboard.js'
131
137
  export { bindRsTableViewContext } from './composables/bindRsTableViewContext.js'
@@ -141,6 +147,7 @@ export { buildTableTreeEntries } from './components/table-utils.js'
141
147
  export { buildTableTreeNodeIndex } from './components/table-utils.js'
142
148
  export { buildTreeNodeIndex } from './components/tree-utils.js'
143
149
  export { clampColumnWidth } from './components/table-utils.js'
150
+ export { clampLogCount } from './components/log-utils.js'
144
151
  export { clampNumber } from './components/input-number-utils.js'
145
152
  export { clampPage } from './components/pagination-utils.js'
146
153
  export { clampRsDrawerSize } from './components/drawer-utils.js'
@@ -158,6 +165,7 @@ export { concatNamePath } from './components/form-path.js'
158
165
  export { containsEscapeSequence } from './components/terminal-utils.js'
159
166
  export { copyTextToClipboard } from './utils/rs-clipboard.js'
160
167
  export { copyTextWithExecCommand } from './utils/rs-clipboard.js'
168
+ export { countDroppedLines } from './components/log-utils.js'
161
169
  export { createAnalyticsTableFeature } from './components/table/table-features.js'
162
170
  export { createBuiltinTableFeatures } from './components/table/table-features.js'
163
171
  export { createChartSeriesTableFeature } from './components/table/table-features.js'
@@ -178,6 +186,7 @@ export { downloadUploadFile } from './components/upload-utils.js'
178
186
  export { ensureMongodbShellLanguage } from './monaco/languages/mongodb-shell.js'
179
187
  export { escapeHtml } from './components/markdown-utils.js'
180
188
  export { expandSplitPane } from './components/split-pane-utils.js'
189
+ export { filterLogLines } from './components/log-utils.js'
181
190
  export { filterTableRows } from './components/table-utils.js'
182
191
  export { filterTableTreeRows } from './components/table-utils.js'
183
192
  export { filterTreeNodes } from './components/tree-utils.js'
@@ -194,6 +203,7 @@ export { formatDateTimeValue } from './components/date-picker-utils.js'
194
203
  export { formatDateValue } from './components/date-picker-utils.js'
195
204
  export { formatFileSize } from './components/upload-utils.js'
196
205
  export { formatIsoUtcToLocal } from './lib/iso-local-datetime.js'
206
+ export { formatLogTime } from './components/log-utils.js'
197
207
  export { formatNumberValue } from './components/input-number-utils.js'
198
208
  export { formatTimeFromParts } from './components/time-picker-utils.js'
199
209
  export { formatTimeParts } from './components/time-picker-utils.js'
@@ -225,6 +235,7 @@ export { hasStableTableTreeRowKey } from './components/table-utils.js'
225
235
  export { hasTableSummaryConfig } from './components/table/table-summary-utils.js'
226
236
  export { hasTableTreeChildren } from './components/table-utils.js'
227
237
  export { hasTreeChildren } from './components/tree-utils.js'
238
+ export { inferLogLevel } from './components/log-utils.js'
228
239
  export { injectExpandRows } from './components/table-utils.js'
229
240
  export { inputRuleMessageKeys } from './components/input-rules.js'
230
241
  export { isCodeMirrorLightTheme } from './components/code-mirror-lang.js'
@@ -240,6 +251,7 @@ export { isRsButtonFilledVariant } from './components/button-utils.js'
240
251
  export { isRsDialogWidthPreset } from './components/dialog-utils.js'
241
252
  export { isRsFormItemBoundControl } from './components/form-utils.js'
242
253
  export { isRsIconName } from './icons/lucide.js'
254
+ export { isRsLogLevel } from './components/log-utils.js'
243
255
  export { isRsSplitPaneAutoSize } from './components/split-pane-utils.js'
244
256
  export { isRsTableApi } from './components/table/rs-table-api.js'
245
257
  export { isSafeHref } from './components/markdown-utils.js'
@@ -255,6 +267,7 @@ export { isTimeRangeEmpty } from './components/time-picker-utils.js'
255
267
  export { isTimeRangeOrdered } from './components/time-picker-utils.js'
256
268
  export { isTimeWithinBounds } from './components/time-picker-utils.js'
257
269
  export { isTreeAncestorKey } from './components/tree-utils.js'
270
+ export { joinLogLines } from './components/log-utils.js'
258
271
  export { listBatchColumnTargets } from './components/table/table-edit-utils.js'
259
272
  export { listEditableCells } from './components/table/table-edit-utils.js'
260
273
  export { looksLikeIsoDateTimeWithTz } from './lib/iso-local-datetime.js'
@@ -269,12 +282,14 @@ export { navigateEditableCell } from './components/table/table-edit-utils.js'
269
282
  export { navigateGridCell } from './components/table/rs-table-grid-nav.js'
270
283
  export { normalizeCommittedNumber } from './components/input-number-utils.js'
271
284
  export { normalizeFormRules } from './components/form-rules.js'
285
+ export { normalizeLogLines } from './components/log-utils.js'
272
286
  export { normalizeNamePath } from './components/form-path.js'
273
287
  export { normalizeSelectOptions } from './components/select-utils.js'
274
288
  export { normalizeSplitSizes } from './components/split-pane-utils.js'
275
289
  export { nullToEditText } from './components/table/table-edit-utils.js'
276
290
  export { openRsDialog } from './composables/createRsDialog.js'
277
291
  export { optionDisplayLabel } from './components/select-utils.js'
292
+ export { otelSeverityOf } from './components/log-utils.js'
278
293
  export { packSelectModel } from './components/select-utils.js'
279
294
  export { parseClipboardGrid } from './components/table/table-edit-utils.js'
280
295
  export { parseColumnWidth } from './components/table-utils.js'
@@ -283,6 +298,7 @@ export { parseDateTimeValue } from './components/date-picker-utils.js'
283
298
  export { parseDateValue } from './components/date-picker-utils.js'
284
299
  export { parseLocalDateTimeToUtcIso } from './lib/iso-local-datetime.js'
285
300
  export { parseNumberInput } from './components/input-number-utils.js'
301
+ export { parseRsLogLevel } from './components/log-utils.js'
286
302
  export { parseTimeValue } from './components/time-picker-utils.js'
287
303
  export { placeAnchoredPopup } from './components/overlay-utils.js'
288
304
  export { prefetchClipboardText } from './utils/rs-clipboard.js'
@@ -323,11 +339,15 @@ export { resolveFixedColumnStyles } from './components/table-utils.js'
323
339
  export { resolveGridNavDirection } from './components/table/rs-table-grid-nav.js'
324
340
  export { resolveInstanceFeatures } from './components/table/rs-table-module-registry.js'
325
341
  export { resolveItemSize } from './components/virtual-list-utils.js'
342
+ export { resolveLogCopyText } from './components/log-utils.js'
343
+ export { resolveLogLive } from './components/log-utils.js'
326
344
  export { resolveMarkdownHeight } from './components/markdown-utils.js'
327
345
  export { resolveMarkdownMode } from './components/markdown-utils.js'
328
346
  export { resolveNumberPrecision } from './components/input-number-utils.js'
329
347
  export { resolveOrderedColumns } from './components/table-utils.js'
330
348
  export { resolveRowKey } from './components/table-utils.js'
349
+ export { resolveRsButtonTone } from './components/button-utils.js'
350
+ export { resolveRsButtonVariant } from './components/button-utils.js'
331
351
  export { resolveRsComponentSize } from './components/resolve-size.js'
332
352
  export { resolveRsDialogCssWidth } from './components/dialog-utils.js'
333
353
  export { resolveRsDialogWidthPx } from './components/dialog-utils.js'
@@ -381,15 +401,19 @@ export { sliceVirtualTreeNodes } from './components/tree-utils.js'
381
401
  export { sortTableRows } from './components/table-utils.js'
382
402
  export { sortTableRowsMulti } from './components/table-utils.js'
383
403
  export { sortTableTreeRows } from './components/table-utils.js'
404
+ export { splitLogHighlight } from './components/log-utils.js'
405
+ export { splitLogText } from './components/log-utils.js'
384
406
  export { splitSizesEqual } from './components/split-pane-utils.js'
385
407
  export { splitTreeLabelHighlight } from './components/tree-utils.js'
386
408
  export { stepEnabledIndex } from './components/overlay-utils.js'
387
409
  export { stepNumberValue } from './components/input-number-utils.js'
388
410
  export { supportsRsButtonTone } from './components/button-utils.js'
411
+ export { syslogSeverityOf } from './components/log-utils.js'
389
412
  export { terminalShortcutLabel } from './components/terminal-utils.js'
390
413
  export { themePresets } from './theme/presets.js'
391
414
  export { toComboboxValue } from './components/select-utils.js'
392
415
  export { toInternalPickerValue } from './components/date-picker-utils.js'
416
+ export { toLogLineInput } from './components/log-utils.js'
393
417
  export { toModelValue } from './components/input-number-utils.js'
394
418
  export { toRangeEndpointString } from './components/date-picker-utils.js'
395
419
  export { toggleExpandedRowKeys } from './components/table-utils.js'
@@ -21,6 +21,8 @@ var zhCN = {
21
21
  "form.validate.required": "请填写{label}",
22
22
  "form.list.add": "添加",
23
23
  "form.list.remove": "删除",
24
+ "fieldset.help": "分组说明",
25
+ "tooltip.help": "说明",
24
26
  "input.formatInvalid": "格式不正确",
25
27
  "input.rule.email": "请输入有效的邮箱地址",
26
28
  "input.rule.number": "请输入有效数字",
@@ -148,6 +150,30 @@ var zhCN = {
148
150
  "terminal.selectAll": "全选",
149
151
  "terminal.clear": "清空终端",
150
152
  "terminal.askAi": "询问 AI",
153
+ "terminal.search": "搜索",
154
+ "terminal.searchPlaceholder": "在终端中查找",
155
+ "terminal.searchNext": "下一个",
156
+ "terminal.searchPrev": "上一个",
157
+ "terminal.searchClose": "关闭搜索",
158
+ "log.label": "日志",
159
+ "log.empty": "暂无日志",
160
+ "log.search": "搜索日志",
161
+ "log.searchPlaceholder": "过滤正文…",
162
+ "log.copy": "复制全文",
163
+ "log.copyMatches": "复制匹配行",
164
+ "log.copied": "已复制",
165
+ "log.filter": "按级别过滤",
166
+ "log.newLines": "新增 {count} 行",
167
+ "log.lineNo": "第 {n} 行",
168
+ "log.level.trace": "跟踪",
169
+ "log.level.debug": "调试",
170
+ "log.level.info": "信息",
171
+ "log.level.notice": "通知",
172
+ "log.level.success": "成功",
173
+ "log.level.warn": "警告",
174
+ "log.level.error": "错误",
175
+ "log.level.fatal": "致命",
176
+ "log.level.plain": "输出",
151
177
  "playground.brand": "Niuma UI",
152
178
  "playground.subtitle": "Vue 3 组件演示",
153
179
  "playground.nav.label": "组件导航",
@@ -224,6 +250,8 @@ var enUS = {
224
250
  "form.validate.required": "Please enter {label}",
225
251
  "form.list.add": "Add",
226
252
  "form.list.remove": "Remove",
253
+ "fieldset.help": "Group help",
254
+ "tooltip.help": "Help",
227
255
  "input.formatInvalid": "Invalid format",
228
256
  "input.rule.email": "Enter a valid email address",
229
257
  "input.rule.number": "Enter a valid number",
@@ -351,6 +379,30 @@ var enUS = {
351
379
  "terminal.selectAll": "Select All",
352
380
  "terminal.clear": "Clear Terminal",
353
381
  "terminal.askAi": "Ask AI",
382
+ "terminal.search": "Search",
383
+ "terminal.searchPlaceholder": "Find in terminal",
384
+ "terminal.searchNext": "Next",
385
+ "terminal.searchPrev": "Previous",
386
+ "terminal.searchClose": "Close search",
387
+ "log.label": "Log",
388
+ "log.empty": "No log output",
389
+ "log.search": "Search logs",
390
+ "log.searchPlaceholder": "Filter lines…",
391
+ "log.copy": "Copy all",
392
+ "log.copyMatches": "Copy matching lines",
393
+ "log.copied": "Copied",
394
+ "log.filter": "Filter levels",
395
+ "log.newLines": "{count} new lines",
396
+ "log.lineNo": "Line {n}",
397
+ "log.level.trace": "Trace",
398
+ "log.level.debug": "Debug",
399
+ "log.level.info": "Info",
400
+ "log.level.notice": "Notice",
401
+ "log.level.success": "Success",
402
+ "log.level.warn": "Warning",
403
+ "log.level.error": "Error",
404
+ "log.level.fatal": "Fatal",
405
+ "log.level.plain": "Output",
354
406
  "playground.brand": "Niuma UI",
355
407
  "playground.subtitle": "Vue 3 component demos",
356
408
  "playground.nav.label": "Component navigation",
package/dist/styles.css CHANGED
@@ -1090,6 +1090,23 @@ html {
1090
1090
  --rs-terminal-ansi-bright-cyan: #8ad4d4;
1091
1091
  --rs-terminal-ansi-bright-white: #ffffff;
1092
1092
 
1093
+ /* Log:级别色走 on-container,对照 WCAG AA(相对 --rs-log-bg) */
1094
+ --rs-log-bg: var(--rs-terminal-bg);
1095
+ --rs-log-fg: var(--rs-terminal-fg);
1096
+ --rs-log-border: var(--rs-terminal-border);
1097
+ --rs-log-stripe: var(--rs-terminal-row-stripe);
1098
+ --rs-log-muted: var(--rs-text-secondary);
1099
+ --rs-log-trace: var(--rs-text-tertiary);
1100
+ --rs-log-debug: var(--rs-text-secondary);
1101
+ --rs-log-info: var(--rs-on-info-container);
1102
+ --rs-log-notice: var(--rs-info);
1103
+ --rs-log-success: var(--rs-on-success-container);
1104
+ --rs-log-warn: var(--rs-on-warning-container);
1105
+ --rs-log-error: var(--rs-on-danger-container);
1106
+ --rs-log-fatal: var(--rs-danger);
1107
+ --rs-log-hit-bg: color-mix(in srgb, var(--rs-warning) 38%, var(--rs-log-bg));
1108
+ --rs-log-hit-fg: var(--rs-log-fg);
1109
+
1093
1110
  --rs-shadow-sm: 0 1px 3px rgb(0 0 0 / 0.4);
1094
1111
  --rs-shadow: 0 4px 16px rgb(0 0 0 / 0.45), 0 0 0 0.5px rgb(255 255 255 / 0.08);
1095
1112
  --rs-shadow-lg: 0 12px 32px rgb(0 0 0 / 0.5), 0 0 0 0.5px rgb(255 255 255 / 0.1);
@@ -1315,6 +1332,22 @@ html {
1315
1332
  --rs-terminal-ansi-bright-cyan: #0d7f8a;
1316
1333
  --rs-terminal-ansi-bright-white: #1d1d1f;
1317
1334
 
1335
+ --rs-log-bg: var(--rs-terminal-bg);
1336
+ --rs-log-fg: var(--rs-terminal-fg);
1337
+ --rs-log-border: var(--rs-terminal-border);
1338
+ --rs-log-stripe: var(--rs-terminal-row-stripe);
1339
+ --rs-log-muted: var(--rs-text-secondary);
1340
+ --rs-log-trace: var(--rs-text-tertiary);
1341
+ --rs-log-debug: var(--rs-text-secondary);
1342
+ --rs-log-info: var(--rs-on-info-container);
1343
+ --rs-log-notice: var(--rs-info);
1344
+ --rs-log-success: var(--rs-on-success-container);
1345
+ --rs-log-warn: var(--rs-on-warning-container);
1346
+ --rs-log-error: var(--rs-on-danger-container);
1347
+ --rs-log-fatal: var(--rs-danger);
1348
+ --rs-log-hit-bg: color-mix(in srgb, var(--rs-warning) 32%, var(--rs-log-bg));
1349
+ --rs-log-hit-fg: var(--rs-log-fg);
1350
+
1318
1351
  --rs-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.04), 0 0 0 0.5px rgb(0 0 0 / 0.04);
1319
1352
  --rs-shadow: 0 4px 16px rgb(0 0 0 / 0.08), 0 0 0 0.5px rgb(0 0 0 / 0.06);
1320
1353
  --rs-shadow-lg: 0 12px 32px rgb(0 0 0 / 0.12), 0 0 0 0.5px rgb(0 0 0 / 0.08);
@@ -1850,6 +1883,10 @@ code {
1850
1883
  }
1851
1884
 
1852
1885
  .rs-field__label {
1886
+ display: inline-flex;
1887
+ align-items: center;
1888
+ flex-wrap: nowrap;
1889
+ gap: 0.25rem;
1853
1890
  color: var(--rs-label-color);
1854
1891
  font-size: var(--rs-label-font-size);
1855
1892
  font-weight: var(--rs-label-font-weight);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "niuma-ui",
3
- "version": "1.2.9",
3
+ "version": "1.3.1",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "description": "Vue 3 工作台设计系统(Rs* 组件、--rs-* token;含可选编辑器 / 终端)",
@@ -105,6 +105,7 @@
105
105
  "@codemirror/view": "^6.43.1",
106
106
  "@lucide/vue": "^1.31.0",
107
107
  "@xterm/addon-fit": "^0.11.0",
108
+ "@xterm/addon-search": "^0.16.0",
108
109
  "@xterm/xterm": "^6.0.0",
109
110
  "codemirror": "^6.0.2",
110
111
  "dayjs": "^1.11.21",