niuma-ui 2.0.0 → 2.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 (119) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.en.md +1 -118
  3. package/README.md +58 -62
  4. package/README.zh-CN.md +128 -0
  5. package/dist/brand-icons.css +40 -0
  6. package/dist/components/_shared/src/reka.d.ts +1 -1
  7. package/dist/components/_shared/src/reka.js +2 -2
  8. package/dist/components/_shared/src/resolve-radius.js +1 -1
  9. package/dist/components/avatar/src/RsAvatar.impl.js +1 -1
  10. package/dist/components/button/src/RsButton.impl.js +1 -1
  11. package/dist/components/card/src/RsCard.impl.js +1 -1
  12. package/dist/components/cascader/src/RsCascader.css +20 -20
  13. package/dist/components/cascader/src/RsCascader.js +1 -1
  14. package/dist/components/code-block/src/RsCodeBlock.d.ts +1 -1
  15. package/dist/components/code-editor/src/code-editor-utils.js +2 -2
  16. package/dist/components/code-editor/src/code-mirror-lang.js +1 -1
  17. package/dist/components/config-provider/src/RsConfigProvider.css +2 -2
  18. package/dist/components/config-provider/src/RsConfigProvider.d.ts +8 -6
  19. package/dist/components/config-provider/src/RsConfigProvider.impl.js +64 -15
  20. package/dist/components/config-provider/src/RsConfigProvider.js +1 -1
  21. package/dist/components/context-menu/src/RsContextMenu.css +2 -2
  22. package/dist/components/context-menu/src/RsContextMenuItems.impl.js +1 -1
  23. package/dist/components/date-picker/src/RsDatePicker.css +17 -17
  24. package/dist/components/date-picker/src/RsDatePicker.impl.js +2 -2
  25. package/dist/components/date-picker/src/RsDatePicker.js +1 -1
  26. package/dist/components/dialog/src/RsConfirmDialog.impl.js +1 -1
  27. package/dist/components/dialog/src/RsDialog.css +1 -2
  28. package/dist/components/dialog/src/RsDialog.impl.js +1 -1
  29. package/dist/components/divider/src/RsDivider.css +13 -13
  30. package/dist/components/divider/src/RsDivider.js +1 -1
  31. package/dist/components/drawer/src/RsDrawer.css +2 -4
  32. package/dist/components/drawer/src/RsDrawer.impl.js +1 -1
  33. package/dist/components/dropdown/src/RsDropdown.css +2 -2
  34. package/dist/components/dropdown/src/RsDropdown.impl.js +1 -1
  35. package/dist/components/dropdown/src/RsDropdownItemView.impl.js +1 -1
  36. package/dist/components/form/src/form-rules.js +2 -2
  37. package/dist/components/icon/src/RsIcon.css +4 -4
  38. package/dist/components/icon/src/RsIcon.impl.js +6 -1
  39. package/dist/components/icon/src/RsIcon.js +1 -1
  40. package/dist/components/input/src/RsInput.css +86 -86
  41. package/dist/components/input/src/RsInput.js +1 -1
  42. package/dist/components/input/src/input-rules.js +3 -3
  43. package/dist/components/input-number/src/RsInputNumber.css +32 -32
  44. package/dist/components/input-number/src/RsInputNumber.js +1 -1
  45. package/dist/components/label/src/RsLabel.css +7 -7
  46. package/dist/components/label/src/RsLabel.js +1 -1
  47. package/dist/components/loading-bar/src/RsLoadingBar.css +4 -5
  48. package/dist/components/loading-bar/src/RsLoadingBar.js +1 -1
  49. package/dist/components/log/src/RsLog.css +39 -39
  50. package/dist/components/log/src/RsLog.d.ts +1 -1
  51. package/dist/components/log/src/RsLog.impl.js +1 -1
  52. package/dist/components/log/src/RsLog.js +1 -1
  53. package/dist/components/markdown/src/RsMarkdown.css +9 -7
  54. package/dist/components/menu/src/RsMenu.css +5 -5
  55. package/dist/components/menu/src/RsMenuItems.impl.js +1 -1
  56. package/dist/components/pagination/src/RsPagination.css +18 -18
  57. package/dist/components/pagination/src/RsPagination.impl.js +1 -1
  58. package/dist/components/pagination/src/RsPagination.js +1 -1
  59. package/dist/components/radio/src/RsRadio.impl.js +1 -1
  60. package/dist/components/radio/src/RsRadioItem.impl.js +1 -1
  61. package/dist/components/select/src/RsSelect.css +42 -42
  62. package/dist/components/select/src/RsSelect.impl.js +2 -2
  63. package/dist/components/select/src/RsSelect.js +1 -1
  64. package/dist/components/steps/src/RsSteps.css +18 -18
  65. package/dist/components/steps/src/RsSteps.js +1 -1
  66. package/dist/components/switch/src/RsSwitch.css +4 -6
  67. package/dist/components/switch/src/RsSwitch.impl.js +1 -1
  68. package/dist/components/table/style/rs-table.css +15 -15
  69. package/dist/components/tabs/src/RsTabs.impl.js +1 -1
  70. package/dist/components/terminal/src/RsTerminal.css +24 -24
  71. package/dist/components/terminal/src/RsTerminal.js +1 -1
  72. package/dist/components/textarea/src/RsTextarea.css +26 -26
  73. package/dist/components/textarea/src/RsTextarea.js +1 -1
  74. package/dist/components/time-picker/src/RsTimePicker.css +20 -20
  75. package/dist/components/time-picker/src/RsTimePicker.impl.js +2 -2
  76. package/dist/components/time-picker/src/RsTimePicker.js +1 -1
  77. package/dist/components/toaster/src/RsToaster.css +6 -6
  78. package/dist/components/toaster/src/RsToaster.impl.js +3 -6
  79. package/dist/components/tooltip/src/RsTooltip.impl.js +1 -1
  80. package/dist/components/tree/src/RsTree.css +72 -73
  81. package/dist/components/tree/src/RsTree.js +1 -1
  82. package/dist/components/tree-select/src/RsTreeSelect.css +11 -11
  83. package/dist/components/tree-select/src/RsTreeSelect.js +1 -1
  84. package/dist/components/virtual-list/src/RsVirtualList.css +7 -8
  85. package/dist/components/virtual-list/src/RsVirtualList.js +1 -1
  86. package/dist/composables/createRsDialog.js +6 -5
  87. package/dist/composables/useRsConfig.d.ts +11 -3
  88. package/dist/composables/useRsConfig.js +18 -6
  89. package/dist/composables/useRsI18n.d.ts +1 -1
  90. package/dist/composables/useRsI18n.js +5 -5
  91. package/dist/icons/brand.d.ts +6 -0
  92. package/dist/icons/brand.js +26 -0
  93. package/dist/icons/registry.d.ts +2 -0
  94. package/dist/icons/registry.js +2 -1
  95. package/dist/index.d.ts +8 -4
  96. package/dist/index.js +19 -0
  97. package/dist/locale/apply.d.ts +8 -0
  98. package/dist/locale/apply.js +20 -0
  99. package/dist/locale/interpolate.d.ts +4 -3
  100. package/dist/locale/interpolate.js +108 -5
  101. package/dist/locale/messages.d.ts +2 -4
  102. package/dist/locale/messages.js +7 -9
  103. package/dist/locale/registry-public.d.ts +3 -0
  104. package/dist/locale/registry.d.ts +19 -0
  105. package/dist/locale/registry.js +50 -0
  106. package/dist/locale/resolve-host.d.ts +7 -0
  107. package/dist/locale/resolve-host.js +46 -0
  108. package/dist/locale/types.d.ts +13 -2
  109. package/dist/locale/types.js +6 -1
  110. package/dist/styles.css +245 -250
  111. package/dist/theme/apply.d.ts +15 -3
  112. package/dist/theme/apply.js +41 -4
  113. package/dist/theme/brand.example.css +5 -1
  114. package/dist/theme/presets.d.ts +6 -5
  115. package/dist/theme/presets.js +4 -3
  116. package/dist/theme/types.d.ts +15 -7
  117. package/dist/theme/types.js +4 -1
  118. package/dist/vite-plugins/niuma-ui-host.js +7 -0
  119. package/package.json +3 -1
@@ -1,5 +1,5 @@
1
1
  import { interpolateRsMessage } from "../../../locale/interpolate.js";
2
- import "../../../locale/types.js";
2
+ import { resolveHostLocale } from "../../../locale/resolve-host.js";
3
3
  import { createTranslator } from "../../../composables/useRsI18n.js";
4
4
  import { getInputRuleMessage, validateInputRule } from "../../input/src/input-rules.js";
5
5
  //#region src/components/form/src/form-rules.ts
@@ -106,7 +106,7 @@ async function evaluateFormRule(value, rule, tr, options) {
106
106
  * 按顺序执行字段规则,首条失败即返回。
107
107
  */
108
108
  async function runFormFieldRules(value, rules, options) {
109
- const tr = options?.t ?? createTranslator("zh-CN");
109
+ const tr = options?.t ?? createTranslator(resolveHostLocale());
110
110
  const trigger = options?.trigger;
111
111
  for (const rule of rules) {
112
112
  if (!matchFormRuleTrigger(rule, trigger)) continue;
@@ -1,13 +1,13 @@
1
1
 
2
- .rs-icon[data-v-b609f5dc] {
2
+ .rs-icon[data-v-ba79ea00] {
3
3
  display: inline-block;
4
4
  flex-shrink: 0;
5
5
  vertical-align: middle;
6
6
  }
7
- .rs-icon--spin[data-v-b609f5dc] {
8
- animation: rs-icon-spin-b609f5dc 0.8s linear infinite;
7
+ .rs-icon--spin[data-v-ba79ea00] {
8
+ animation: rs-icon-spin-ba79ea00 0.8s linear infinite;
9
9
  }
10
- @keyframes rs-icon-spin-b609f5dc {
10
+ @keyframes rs-icon-spin-ba79ea00 {
11
11
  to {
12
12
  transform: rotate(360deg);
13
13
  }
@@ -1,4 +1,5 @@
1
1
  import { resolveLucideIcon } from "../../../icons/lucide.js";
2
+ import { isRsBrandIconName } from "../../../icons/brand.js";
2
3
  import { computed, createBlock, createCommentVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, resolveDynamicComponent } from "vue";
3
4
  //#region src/components/icon/src/RsIcon.vue?vue&type=script&setup=true&lang.ts
4
5
  var RsIcon_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
@@ -33,6 +34,7 @@ var RsIcon_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
33
34
  if (size in SIZE_PRESET) return SIZE_PRESET[size];
34
35
  return Number.parseInt(String(size), 10) || SIZE_PRESET.md;
35
36
  });
37
+ const isBrand = computed(() => isRsBrandIconName(props.name));
36
38
  const iconStyle = computed(() => {
37
39
  const style = {};
38
40
  if (props.color) style.color = props.color;
@@ -52,7 +54,10 @@ var RsIcon_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
52
54
  return (_ctx, _cache) => {
53
55
  return iconComponent.value ? (openBlock(), createBlock(resolveDynamicComponent(iconComponent.value), {
54
56
  key: 0,
55
- class: normalizeClass(["rs-icon", { "rs-icon--spin": __props.spin }]),
57
+ class: normalizeClass(["rs-icon", {
58
+ "rs-icon--spin": __props.spin,
59
+ "rs-icon--brand": isBrand.value
60
+ }]),
56
61
  style: normalizeStyle(iconStyle.value),
57
62
  size: lucideSize.value,
58
63
  "stroke-width": __props.strokeWidth,
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
3
3
  import RsIcon_vue_vue_type_script_setup_true_lang_default from "./RsIcon.impl.js";
4
4
 
5
5
  //#region src/components/icon/src/RsIcon.vue
6
- var RsIcon_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsIcon_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-b609f5dc"]]);
6
+ var RsIcon_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsIcon_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-ba79ea00"]]);
7
7
  //#endregion
8
8
  export { RsIcon_default as default };
@@ -1,15 +1,15 @@
1
1
 
2
- .rs-input-field[data-v-bd4a508f] {
2
+ .rs-input-field[data-v-a3292d1e] {
3
3
 
4
4
  width: 100%;
5
5
  }
6
- .rs-input-shell[data-v-bd4a508f] {
6
+ .rs-input-shell[data-v-a3292d1e] {
7
7
 
8
8
  width: 100%;
9
9
  }
10
10
 
11
11
  /* 连体外壳统一外边框,避免 input/addon 各自圆角造成拼缝 */
12
- .rs-input-shell--combined[data-v-bd4a508f] {
12
+ .rs-input-shell--combined[data-v-a3292d1e] {
13
13
 
14
14
  display: flex;
15
15
 
@@ -37,13 +37,13 @@
37
37
 
38
38
  background var(--rs-transition-fast);
39
39
  }
40
- .rs-input-shell--combined[data-v-bd4a508f]:hover:not(:focus-within):not(:has(.rs-input-group--disabled)):not(
40
+ .rs-input-shell--combined[data-v-a3292d1e]:hover:not(:focus-within):not(:has(.rs-input-group--disabled)):not(
41
41
  :has(.rs-input-group--readonly)
42
42
  ) {
43
43
 
44
44
  border-color: var(--rs-input-border-hover, var(--rs-border));
45
45
  }
46
- .rs-input-shell--combined[data-v-bd4a508f]:focus-within {
46
+ .rs-input-shell--combined[data-v-a3292d1e]:focus-within {
47
47
 
48
48
  border-color: var(--rs-focus-border, var(--rs-primary));
49
49
 
@@ -53,11 +53,11 @@
53
53
 
54
54
  0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
55
55
  }
56
- .rs-input-shell--combined[data-v-bd4a508f]:has(.rs-input-group--invalid) {
56
+ .rs-input-shell--combined[data-v-a3292d1e]:has(.rs-input-group--invalid) {
57
57
 
58
58
  border-color: var(--rs-danger);
59
59
  }
60
- .rs-input-shell--combined[data-v-bd4a508f]:has(.rs-input-group--invalid):focus-within {
60
+ .rs-input-shell--combined[data-v-a3292d1e]:has(.rs-input-group--invalid):focus-within {
61
61
 
62
62
  border-color: var(--rs-danger);
63
63
 
@@ -69,7 +69,7 @@
69
69
 
70
70
  color-mix(in srgb, var(--rs-danger) 14%, transparent);
71
71
  }
72
- .rs-input-shell--combined .rs-input-group[data-v-bd4a508f] {
72
+ .rs-input-shell--combined .rs-input-group[data-v-a3292d1e] {
73
73
 
74
74
  flex: 1;
75
75
 
@@ -85,18 +85,18 @@
85
85
 
86
86
  background: transparent;
87
87
  }
88
- .rs-input-shell--combined .rs-input-group[data-v-bd4a508f]:hover:not(.rs-input-group--disabled):not(
88
+ .rs-input-shell--combined .rs-input-group[data-v-a3292d1e]:hover:not(.rs-input-group--disabled):not(
89
89
  .rs-input-group--readonly
90
90
  ):not(:focus-within),
91
- .rs-input-shell--combined .rs-input-group[data-v-bd4a508f]:focus-within,
92
- .rs-input-shell--combined .rs-input-group--invalid[data-v-bd4a508f],
93
- .rs-input-shell--combined .rs-input-group--invalid[data-v-bd4a508f]:focus-within {
91
+ .rs-input-shell--combined .rs-input-group[data-v-a3292d1e]:focus-within,
92
+ .rs-input-shell--combined .rs-input-group--invalid[data-v-a3292d1e],
93
+ .rs-input-shell--combined .rs-input-group--invalid[data-v-a3292d1e]:focus-within {
94
94
 
95
95
  border-color: transparent;
96
96
 
97
97
  box-shadow: none;
98
98
  }
99
- .rs-input-addon[data-v-bd4a508f] {
99
+ .rs-input-addon[data-v-a3292d1e] {
100
100
 
101
101
  display: inline-flex;
102
102
 
@@ -114,7 +114,7 @@
114
114
 
115
115
  border: none;
116
116
 
117
- border-left: 1px solid var(--rs-input-border, var(--rs-border));
117
+ border-inline-start: 1px solid var(--rs-input-border, var(--rs-border));
118
118
 
119
119
  border-radius: 0;
120
120
 
@@ -126,42 +126,42 @@
126
126
 
127
127
  white-space: nowrap;
128
128
  }
129
- .rs-input-addon--before[data-v-bd4a508f] {
129
+ .rs-input-addon--before[data-v-a3292d1e] {
130
130
 
131
- border-left: none;
131
+ border-inline-start: none;
132
132
 
133
- border-right: 1px solid var(--rs-input-border, var(--rs-border));
133
+ border-inline-end: 1px solid var(--rs-input-border, var(--rs-border));
134
134
  }
135
- .rs-input-shell--ssm .rs-input-addon[data-v-bd4a508f] {
135
+ .rs-input-shell--ssm .rs-input-addon[data-v-a3292d1e] {
136
136
 
137
137
  min-width: var(--rs-control-height-ssm);
138
138
 
139
139
  padding: 0 var(--rs-space-xs);
140
140
  }
141
- .rs-input-shell--sm .rs-input-addon[data-v-bd4a508f] {
141
+ .rs-input-shell--sm .rs-input-addon[data-v-a3292d1e] {
142
142
 
143
143
  min-width: var(--rs-control-height-sm);
144
144
 
145
145
  padding: 0 var(--rs-space-xs);
146
146
  }
147
- .rs-input-shell--lg .rs-input-addon[data-v-bd4a508f] {
147
+ .rs-input-shell--lg .rs-input-addon[data-v-a3292d1e] {
148
148
 
149
149
  min-width: var(--rs-control-height-lg);
150
150
 
151
151
  padding: 0 var(--rs-space-md);
152
152
  }
153
- .rs-input-addon--icon[data-v-bd4a508f] {
153
+ .rs-input-addon--icon[data-v-a3292d1e] {
154
154
  padding: 0;
155
155
  /* 图标选择器与输入区同底,整块一致,避免灰底 + 按钮再叠一层 hover */
156
156
  background: transparent;
157
157
  color: var(--rs-muted);
158
158
  transition: color var(--rs-transition-fast), background var(--rs-transition-fast);
159
159
  }
160
- .rs-input-addon--icon[data-v-bd4a508f]:hover {
160
+ .rs-input-addon--icon[data-v-a3292d1e]:hover {
161
161
  color: var(--rs-primary);
162
162
  background: color-mix(in srgb, var(--rs-primary) 8%, transparent);
163
163
  }
164
- .rs-input-addon__button[data-v-bd4a508f] {
164
+ .rs-input-addon__button[data-v-a3292d1e] {
165
165
  display: inline-flex;
166
166
  align-items: center;
167
167
  justify-content: center;
@@ -176,28 +176,28 @@
176
176
  color: inherit;
177
177
  cursor: pointer;
178
178
  }
179
- .rs-input-addon__button[data-v-bd4a508f]:hover:not(:disabled) {
179
+ .rs-input-addon__button[data-v-a3292d1e]:hover:not(:disabled) {
180
180
  /* 悬浮样式交给整块 .rs-input-addon--icon,按钮不再单独变色/铺底 */
181
181
  color: inherit;
182
182
  background: transparent;
183
183
  }
184
- .rs-input-addon__button[data-v-bd4a508f]:focus-visible {
184
+ .rs-input-addon__button[data-v-a3292d1e]:focus-visible {
185
185
  outline: none;
186
186
  color: var(--rs-primary);
187
187
  box-shadow: inset 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
188
188
  }
189
- .rs-input-addon__button[data-v-bd4a508f]:disabled {
189
+ .rs-input-addon__button[data-v-a3292d1e]:disabled {
190
190
  cursor: not-allowed;
191
191
  opacity: 0.38;
192
192
  }
193
- .rs-input-shell--disabled .rs-input-addon[data-v-bd4a508f],
194
- .rs-input-shell--combined:has(.rs-input-group--disabled) .rs-input-addon[data-v-bd4a508f] {
193
+ .rs-input-shell--disabled .rs-input-addon[data-v-a3292d1e],
194
+ .rs-input-shell--combined:has(.rs-input-group--disabled) .rs-input-addon[data-v-a3292d1e] {
195
195
 
196
196
  opacity: 0.38;
197
197
 
198
198
  cursor: not-allowed;
199
199
  }
200
- .rs-input-group__custom-suffix[data-v-bd4a508f] {
200
+ .rs-input-group__custom-suffix[data-v-a3292d1e] {
201
201
 
202
202
  display: inline-flex;
203
203
 
@@ -205,17 +205,17 @@
205
205
 
206
206
  gap: var(--rs-space-xs);
207
207
  }
208
- .rs-field--label-left .rs-input-field[data-v-bd4a508f] {
208
+ .rs-field--label-left .rs-input-field[data-v-a3292d1e] {
209
209
 
210
210
  grid-column: 2;
211
211
 
212
212
  min-width: 0;
213
213
  }
214
- .rs-field--label-left .rs-input-field__error[data-v-bd4a508f] {
214
+ .rs-field--label-left .rs-input-field__error[data-v-a3292d1e] {
215
215
 
216
216
  grid-column: 2;
217
217
  }
218
- .rs-field--label-left .rs-field__label[data-v-bd4a508f] {
218
+ .rs-field--label-left .rs-field__label[data-v-a3292d1e] {
219
219
 
220
220
  display: flex;
221
221
 
@@ -223,19 +223,19 @@
223
223
 
224
224
  min-height: var(--rs-control-height-md);
225
225
  }
226
- .rs-input-field--ssm.rs-field--label-left .rs-field__label[data-v-bd4a508f] {
226
+ .rs-input-field--ssm.rs-field--label-left .rs-field__label[data-v-a3292d1e] {
227
227
 
228
228
  min-height: var(--rs-control-height-ssm);
229
229
  }
230
- .rs-input-field--sm.rs-field--label-left .rs-field__label[data-v-bd4a508f] {
230
+ .rs-input-field--sm.rs-field--label-left .rs-field__label[data-v-a3292d1e] {
231
231
 
232
232
  min-height: var(--rs-control-height-sm);
233
233
  }
234
- .rs-input-field--lg.rs-field--label-left .rs-field__label[data-v-bd4a508f] {
234
+ .rs-input-field--lg.rs-field--label-left .rs-field__label[data-v-a3292d1e] {
235
235
 
236
236
  min-height: var(--rs-control-height-lg);
237
237
  }
238
- .rs-input-group[data-v-bd4a508f] {
238
+ .rs-input-group[data-v-a3292d1e] {
239
239
 
240
240
  display: flex;
241
241
 
@@ -269,29 +269,29 @@
269
269
 
270
270
  background var(--rs-transition-fast);
271
271
  }
272
- .rs-input-group--ssm[data-v-bd4a508f] {
272
+ .rs-input-group--ssm[data-v-a3292d1e] {
273
273
 
274
274
  height: var(--rs-control-height-ssm);
275
275
 
276
276
  min-height: var(--rs-control-height-ssm);
277
277
  }
278
- .rs-input-group--sm[data-v-bd4a508f] {
278
+ .rs-input-group--sm[data-v-a3292d1e] {
279
279
 
280
280
  height: var(--rs-control-height-sm);
281
281
 
282
282
  min-height: var(--rs-control-height-sm);
283
283
  }
284
- .rs-input-group--lg[data-v-bd4a508f] {
284
+ .rs-input-group--lg[data-v-a3292d1e] {
285
285
 
286
286
  height: var(--rs-control-height-lg);
287
287
 
288
288
  min-height: var(--rs-control-height-lg);
289
289
  }
290
- .rs-input-group[data-v-bd4a508f]:hover:not(.rs-input-group--disabled):not(.rs-input-group--readonly):not(:focus-within) {
290
+ .rs-input-group[data-v-a3292d1e]:hover:not(.rs-input-group--disabled):not(.rs-input-group--readonly):not(:focus-within) {
291
291
 
292
292
  border-color: var(--rs-input-border-hover, var(--rs-border));
293
293
  }
294
- .rs-input-group[data-v-bd4a508f]:focus-within {
294
+ .rs-input-group[data-v-a3292d1e]:focus-within {
295
295
 
296
296
  border-color: var(--rs-focus-border, var(--rs-primary));
297
297
 
@@ -303,11 +303,11 @@
303
303
 
304
304
  0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
305
305
  }
306
- .rs-input-group--invalid[data-v-bd4a508f] {
306
+ .rs-input-group--invalid[data-v-a3292d1e] {
307
307
 
308
308
  border-color: var(--rs-danger);
309
309
  }
310
- .rs-input-group--invalid[data-v-bd4a508f]:focus-within {
310
+ .rs-input-group--invalid[data-v-a3292d1e]:focus-within {
311
311
 
312
312
  border-color: var(--rs-danger);
313
313
 
@@ -319,7 +319,7 @@
319
319
 
320
320
  color-mix(in srgb, var(--rs-danger) 14%, transparent);
321
321
  }
322
- .rs-input-group--disabled[data-v-bd4a508f] {
322
+ .rs-input-group--disabled[data-v-a3292d1e] {
323
323
 
324
324
  opacity: 0.38;
325
325
 
@@ -327,13 +327,13 @@
327
327
 
328
328
  background: var(--rs-surface-hover);
329
329
  }
330
- .rs-input-group--readonly[data-v-bd4a508f] {
330
+ .rs-input-group--readonly[data-v-a3292d1e] {
331
331
 
332
332
  background: var(--rs-surface-hover);
333
333
 
334
334
  cursor: default;
335
335
  }
336
- .rs-input-group__affix[data-v-bd4a508f] {
336
+ .rs-input-group__affix[data-v-a3292d1e] {
337
337
 
338
338
  display: inline-flex;
339
339
 
@@ -349,41 +349,41 @@
349
349
 
350
350
  user-select: none;
351
351
  }
352
- .rs-input-group__affix--prefix[data-v-bd4a508f] {
352
+ .rs-input-group__affix--prefix[data-v-a3292d1e] {
353
353
 
354
- padding-left: var(--rs-space-md);
354
+ padding-inline-start: var(--rs-space-md);
355
355
  }
356
- .rs-input-group__affix--suffix[data-v-bd4a508f] {
356
+ .rs-input-group__affix--suffix[data-v-a3292d1e] {
357
357
 
358
358
  gap: var(--rs-space-xs);
359
359
 
360
- padding-right: var(--rs-space-sm);
360
+ padding-inline-end: var(--rs-space-sm);
361
361
  }
362
- .rs-input-group--ssm .rs-input-group__affix--prefix[data-v-bd4a508f] {
362
+ .rs-input-group--ssm .rs-input-group__affix--prefix[data-v-a3292d1e] {
363
363
 
364
- padding-left: var(--rs-space-xs);
364
+ padding-inline-start: var(--rs-space-xs);
365
365
  }
366
- .rs-input-group--ssm .rs-input-group__affix--suffix[data-v-bd4a508f] {
366
+ .rs-input-group--ssm .rs-input-group__affix--suffix[data-v-a3292d1e] {
367
367
 
368
- padding-right: var(--rs-space-xs);
368
+ padding-inline-end: var(--rs-space-xs);
369
369
  }
370
- .rs-input-group--sm .rs-input-group__affix--prefix[data-v-bd4a508f] {
370
+ .rs-input-group--sm .rs-input-group__affix--prefix[data-v-a3292d1e] {
371
371
 
372
- padding-left: var(--rs-space-sm);
372
+ padding-inline-start: var(--rs-space-sm);
373
373
  }
374
- .rs-input-group--sm .rs-input-group__affix--suffix[data-v-bd4a508f] {
374
+ .rs-input-group--sm .rs-input-group__affix--suffix[data-v-a3292d1e] {
375
375
 
376
- padding-right: var(--rs-space-xs);
376
+ padding-inline-end: var(--rs-space-xs);
377
377
  }
378
- .rs-input-group--lg .rs-input-group__affix--prefix[data-v-bd4a508f] {
378
+ .rs-input-group--lg .rs-input-group__affix--prefix[data-v-a3292d1e] {
379
379
 
380
- padding-left: var(--rs-space-lg);
380
+ padding-inline-start: var(--rs-space-lg);
381
381
  }
382
- .rs-input-group--lg .rs-input-group__affix--suffix[data-v-bd4a508f] {
382
+ .rs-input-group--lg .rs-input-group__affix--suffix[data-v-a3292d1e] {
383
383
 
384
- padding-right: var(--rs-space-md);
384
+ padding-inline-end: var(--rs-space-md);
385
385
  }
386
- .rs-input-group__count[data-v-bd4a508f] {
386
+ .rs-input-group__count[data-v-a3292d1e] {
387
387
 
388
388
  font-size: var(--rs-font-size-xs);
389
389
 
@@ -391,7 +391,7 @@
391
391
 
392
392
  font-variant-numeric: tabular-nums;
393
393
  }
394
- .rs-input-group__action[data-v-bd4a508f] {
394
+ .rs-input-group__action[data-v-a3292d1e] {
395
395
 
396
396
  display: inline-flex;
397
397
 
@@ -421,19 +421,19 @@
421
421
 
422
422
  background var(--rs-transition-fast);
423
423
  }
424
- .rs-input-group__action[data-v-bd4a508f]:hover {
424
+ .rs-input-group__action[data-v-a3292d1e]:hover {
425
425
 
426
426
  color: var(--rs-text);
427
427
 
428
428
  background: var(--rs-item-hover);
429
429
  }
430
- .rs-input-group__action[data-v-bd4a508f]:focus-visible {
430
+ .rs-input-group__action[data-v-a3292d1e]:focus-visible {
431
431
 
432
432
  outline: none;
433
433
 
434
434
  box-shadow: 0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
435
435
  }
436
- .rs-input-group__control[data-v-bd4a508f] {
436
+ .rs-input-group__control[data-v-a3292d1e] {
437
437
 
438
438
  flex: 1;
439
439
 
@@ -459,60 +459,60 @@
459
459
  }
460
460
 
461
461
  /* type=search 自带取消钮,与 clearable 的 x 叠成两个 */
462
- .rs-input-group__control[type='search'][data-v-bd4a508f]::-webkit-search-decoration,
463
- .rs-input-group__control[type='search'][data-v-bd4a508f]::-webkit-search-cancel-button,
464
- .rs-input-group__control[type='search'][data-v-bd4a508f]::-webkit-search-results-button,
465
- .rs-input-group__control[type='search'][data-v-bd4a508f]::-webkit-search-results-decoration {
462
+ .rs-input-group__control[type='search'][data-v-a3292d1e]::-webkit-search-decoration,
463
+ .rs-input-group__control[type='search'][data-v-a3292d1e]::-webkit-search-cancel-button,
464
+ .rs-input-group__control[type='search'][data-v-a3292d1e]::-webkit-search-results-button,
465
+ .rs-input-group__control[type='search'][data-v-a3292d1e]::-webkit-search-results-decoration {
466
466
  -webkit-appearance: none;
467
467
  appearance: none;
468
468
  }
469
- .rs-input-group__control--ssm[data-v-bd4a508f] {
469
+ .rs-input-group__control--ssm[data-v-a3292d1e] {
470
470
 
471
471
  padding: 0 var(--rs-space-xs);
472
472
 
473
473
  font-size: var(--rs-font-size-xs);
474
474
  }
475
- .rs-input-group__control--sm[data-v-bd4a508f] {
475
+ .rs-input-group__control--sm[data-v-a3292d1e] {
476
476
 
477
477
  padding: 0 var(--rs-space-sm);
478
478
 
479
479
  font-size: var(--rs-font-size-xs);
480
480
  }
481
- .rs-input-group__control--lg[data-v-bd4a508f] {
481
+ .rs-input-group__control--lg[data-v-a3292d1e] {
482
482
 
483
483
  padding: 0 var(--rs-space-lg);
484
484
 
485
485
  font-size: var(--rs-font-size-base);
486
486
  }
487
- .rs-input-group--has-prefix .rs-input-group__control[data-v-bd4a508f] {
487
+ .rs-input-group--has-prefix .rs-input-group__control[data-v-a3292d1e] {
488
488
 
489
- padding-left: var(--rs-space-sm);
489
+ padding-inline-start: var(--rs-space-sm);
490
490
  }
491
- .rs-input-group--has-suffix .rs-input-group__control[data-v-bd4a508f] {
491
+ .rs-input-group--has-suffix .rs-input-group__control[data-v-a3292d1e] {
492
492
 
493
- padding-right: var(--rs-space-xs);
493
+ padding-inline-end: var(--rs-space-xs);
494
494
  }
495
- .rs-input-group__control[data-v-bd4a508f]::placeholder {
495
+ .rs-input-group__control[data-v-a3292d1e]::placeholder {
496
496
 
497
497
  color: var(--rs-placeholder);
498
498
  }
499
- .rs-input-group__control[data-v-bd4a508f]:disabled {
499
+ .rs-input-group__control[data-v-a3292d1e]:disabled {
500
500
 
501
501
  cursor: not-allowed;
502
502
  }
503
- .rs-input-group__control[data-v-bd4a508f]:read-only {
503
+ .rs-input-group__control[data-v-a3292d1e]:read-only {
504
504
 
505
505
  cursor: default;
506
506
  }
507
507
 
508
508
  /* 浏览器 autofill 会给 input 注入独立背景色,与外层圆角容器不一致 */
509
- .rs-input-group__control[data-v-bd4a508f]:-webkit-autofill,
509
+ .rs-input-group__control[data-v-a3292d1e]:-webkit-autofill,
510
510
 
511
- .rs-input-group__control[data-v-bd4a508f]:-webkit-autofill:hover,
511
+ .rs-input-group__control[data-v-a3292d1e]:-webkit-autofill:hover,
512
512
 
513
- .rs-input-group__control[data-v-bd4a508f]:-webkit-autofill:focus,
513
+ .rs-input-group__control[data-v-a3292d1e]:-webkit-autofill:focus,
514
514
 
515
- .rs-input-group__control[data-v-bd4a508f]:-webkit-autofill:active {
515
+ .rs-input-group__control[data-v-a3292d1e]:-webkit-autofill:active {
516
516
 
517
517
  -webkit-box-shadow: 0 0 0 1000px var(--rs-input-bg) inset;
518
518
 
@@ -524,7 +524,7 @@
524
524
 
525
525
  transition: background-color 99999s ease-out 0s;
526
526
  }
527
- .rs-input-field__error[data-v-bd4a508f] {
527
+ .rs-input-field__error[data-v-a3292d1e] {
528
528
 
529
529
  margin: 0.25rem 0 0;
530
530
 
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
3
3
  import RsInput_vue_vue_type_script_setup_true_lang_default from "./RsInput.impl.js";
4
4
 
5
5
  //#region src/components/input/src/RsInput.vue
6
- var RsInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsInput_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-bd4a508f"]]);
6
+ var RsInput_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsInput_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-a3292d1e"]]);
7
7
  //#endregion
8
8
  export { RsInput_default as default };
@@ -1,4 +1,4 @@
1
- import "../../../locale/types.js";
1
+ import { resolveHostLocale } from "../../../locale/resolve-host.js";
2
2
  import { createTranslator } from "../../../composables/useRsI18n.js";
3
3
  //#region src/components/input/src/input-rules.ts
4
4
  var inputRuleMessageKeys = {
@@ -29,10 +29,10 @@ function validateInputRule(value, rule) {
29
29
  }
30
30
  function getInputRuleMessage(rule, t) {
31
31
  const key = inputRuleMessageKeys[rule];
32
- return (t ?? createTranslator("zh-CN"))(key);
32
+ return (t ?? createTranslator(resolveHostLocale()))(key);
33
33
  }
34
34
  function runInputValidation(value, options, t) {
35
- const tr = t ?? createTranslator("zh-CN");
35
+ const tr = t ?? createTranslator(resolveHostLocale());
36
36
  if (options.required && value.trim() === "") return {
37
37
  valid: false,
38
38
  message: tr("input.required")