niuma-ui 2.0.2 → 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 (242) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +2 -0
  3. package/README.zh-CN.md +2 -0
  4. package/dist/components/_shared/src/reka.d.ts +1 -1
  5. package/dist/components/_shared/src/reka.js +2 -2
  6. package/dist/components/anchor/index.d.ts +1 -1
  7. package/dist/components/anchor/src/RsAnchor.css +63 -32
  8. package/dist/components/anchor/src/RsAnchor.d.ts +29 -2
  9. package/dist/components/anchor/src/RsAnchor.impl.js +199 -81
  10. package/dist/components/anchor/src/RsAnchor.js +1 -1
  11. package/dist/components/anchor/src/anchor-utils.d.ts +36 -4
  12. package/dist/components/anchor/src/anchor-utils.js +81 -19
  13. package/dist/components/auto-complete/index.d.ts +2 -0
  14. package/dist/components/auto-complete/src/RsAutoComplete.css +122 -0
  15. package/dist/components/auto-complete/src/RsAutoComplete.d.ts +47 -7
  16. package/dist/components/auto-complete/src/RsAutoComplete.impl.js +180 -72
  17. package/dist/components/auto-complete/src/RsAutoComplete.js +4 -1
  18. package/dist/components/auto-complete/src/auto-complete-utils.d.ts +7 -0
  19. package/dist/components/auto-complete/src/auto-complete-utils.js +17 -0
  20. package/dist/components/avatar/index.d.ts +1 -0
  21. package/dist/components/avatar/src/RsAvatar.css +36 -19
  22. package/dist/components/avatar/src/RsAvatar.d.ts +9 -3
  23. package/dist/components/avatar/src/RsAvatar.impl.js +57 -33
  24. package/dist/components/avatar/src/RsAvatar.js +2 -1
  25. package/dist/components/avatar/src/avatar-utils.d.ts +16 -7
  26. package/dist/components/avatar/src/avatar-utils.js +41 -3
  27. package/dist/components/badge/index.d.ts +1 -0
  28. package/dist/components/badge/src/RsBadge.css +61 -8
  29. package/dist/components/badge/src/RsBadge.d.ts +19 -3
  30. package/dist/components/badge/src/RsBadge.impl.js +46 -3
  31. package/dist/components/badge/src/RsBadge.js +1 -1
  32. package/dist/components/badge/src/badge-utils.d.ts +11 -0
  33. package/dist/components/badge/src/badge-utils.js +32 -0
  34. package/dist/components/breadcrumb/index.d.ts +1 -1
  35. package/dist/components/breadcrumb/src/RsBreadcrumb.css +50 -17
  36. package/dist/components/breadcrumb/src/RsBreadcrumb.d.ts +45 -6
  37. package/dist/components/breadcrumb/src/RsBreadcrumb.impl.js +111 -12
  38. package/dist/components/breadcrumb/src/RsBreadcrumb.js +2 -1
  39. package/dist/components/breadcrumb/src/breadcrumb-utils.d.ts +37 -5
  40. package/dist/components/breadcrumb/src/breadcrumb-utils.js +70 -9
  41. package/dist/components/button/src/RsButton.css +87 -71
  42. package/dist/components/button/src/RsButton.d.ts +7 -3
  43. package/dist/components/button/src/RsButton.impl.js +43 -31
  44. package/dist/components/button/src/RsButton.js +1 -1
  45. package/dist/components/button/src/button-utils.d.ts +17 -0
  46. package/dist/components/button/src/button-utils.js +14 -1
  47. package/dist/components/calendar-grid/index.d.ts +2 -0
  48. package/dist/components/calendar-grid/src/RsCalendarGrid.css +105 -45
  49. package/dist/components/calendar-grid/src/RsCalendarGrid.d.ts +62 -2
  50. package/dist/components/calendar-grid/src/RsCalendarGrid.impl.js +265 -94
  51. package/dist/components/calendar-grid/src/RsCalendarGrid.js +1 -1
  52. package/dist/components/calendar-grid/src/calendar-grid-utils.d.ts +72 -0
  53. package/dist/components/calendar-grid/src/calendar-grid-utils.js +122 -0
  54. package/dist/components/card/index.d.ts +1 -1
  55. package/dist/components/card/src/RsCard.css +108 -98
  56. package/dist/components/card/src/RsCard.d.ts +3 -12
  57. package/dist/components/card/src/RsCard.impl.js +29 -25
  58. package/dist/components/card/src/RsCard.js +2 -1
  59. package/dist/components/card/src/card-utils.d.ts +25 -0
  60. package/dist/components/card/src/card-utils.js +10 -0
  61. package/dist/components/cascader/index.d.ts +1 -0
  62. package/dist/components/cascader/src/RsCascader.css +175 -30
  63. package/dist/components/cascader/src/RsCascader.d.ts +14 -2
  64. package/dist/components/cascader/src/RsCascader.impl.js +277 -48
  65. package/dist/components/cascader/src/RsCascader.js +1 -1
  66. package/dist/components/cascader/src/cascader-utils.d.ts +2 -0
  67. package/dist/components/cascader/src/cascader-utils.js +8 -1
  68. package/dist/components/checkbox/index.d.ts +1 -0
  69. package/dist/components/checkbox/src/RsCheckbox.css +46 -23
  70. package/dist/components/checkbox/src/RsCheckbox.d.ts +11 -1
  71. package/dist/components/checkbox/src/RsCheckbox.impl.js +37 -9
  72. package/dist/components/checkbox/src/RsCheckbox.js +2 -1
  73. package/dist/components/checkbox/src/checkbox-utils.d.ts +4 -0
  74. package/dist/components/checkbox/src/checkbox-utils.js +12 -0
  75. package/dist/components/container/index.d.ts +1 -1
  76. package/dist/components/container/src/RsContainer.css +11 -11
  77. package/dist/components/container/src/RsContainer.d.ts +2 -12
  78. package/dist/components/container/src/RsContainer.impl.js +10 -57
  79. package/dist/components/container/src/RsContainer.js +1 -1
  80. package/dist/components/container/src/container-utils.d.ts +23 -0
  81. package/dist/components/container/src/container-utils.js +51 -0
  82. package/dist/components/date-picker/index.d.ts +4 -2
  83. package/dist/components/date-picker/src/RsDatePicker.css +42 -22
  84. package/dist/components/date-picker/src/RsDatePicker.d.ts +44 -20
  85. package/dist/components/date-picker/src/RsDatePicker.impl.js +484 -222
  86. package/dist/components/date-picker/src/RsDatePicker.js +1 -3
  87. package/dist/components/date-picker/src/RsDateTimePicker.d.ts +33 -6
  88. package/dist/components/date-picker/src/RsDateTimePicker.impl.js +47 -6
  89. package/dist/components/date-picker/src/date-picker-utils.d.ts +19 -0
  90. package/dist/components/date-picker/src/date-picker-utils.js +33 -10
  91. package/dist/components/divider/index.d.ts +1 -0
  92. package/dist/components/divider/src/RsDivider.css +37 -22
  93. package/dist/components/divider/src/RsDivider.d.ts +4 -2
  94. package/dist/components/divider/src/RsDivider.impl.js +26 -12
  95. package/dist/components/divider/src/RsDivider.js +1 -1
  96. package/dist/components/divider/src/divider-utils.d.ts +4 -0
  97. package/dist/components/dynamic-tags/index.d.ts +1 -1
  98. package/dist/components/dynamic-tags/src/RsDynamicTags.css +115 -38
  99. package/dist/components/dynamic-tags/src/RsDynamicTags.d.ts +59 -18
  100. package/dist/components/dynamic-tags/src/RsDynamicTags.impl.js +269 -106
  101. package/dist/components/dynamic-tags/src/RsDynamicTags.js +1 -1
  102. package/dist/components/dynamic-tags/src/dynamic-tags-utils.d.ts +19 -0
  103. package/dist/components/dynamic-tags/src/dynamic-tags-utils.js +60 -0
  104. package/dist/components/fieldset/src/RsFieldset.css +71 -41
  105. package/dist/components/fieldset/src/RsFieldset.d.ts +21 -2
  106. package/dist/components/fieldset/src/RsFieldset.impl.js +93 -26
  107. package/dist/components/fieldset/src/RsFieldset.js +1 -1
  108. package/dist/components/fieldset/src/fieldset-utils.d.ts +4 -0
  109. package/dist/components/fieldset/src/fieldset-utils.js +9 -1
  110. package/dist/components/form/index.d.ts +1 -0
  111. package/dist/components/form/src/RsForm.css +15 -12
  112. package/dist/components/form/src/RsForm.d.ts +20 -22
  113. package/dist/components/form/src/RsForm.impl.js +33 -20
  114. package/dist/components/form/src/RsForm.js +1 -1
  115. package/dist/components/form/src/form-utils.d.ts +7 -0
  116. package/dist/components/form/src/form-utils.js +28 -1
  117. package/dist/components/icon/src/RsIcon.css +9 -4
  118. package/dist/components/icon/src/RsIcon.d.ts +4 -3
  119. package/dist/components/icon/src/RsIcon.impl.js +9 -32
  120. package/dist/components/icon/src/RsIcon.js +1 -1
  121. package/dist/components/icon/src/icon-utils.d.ts +17 -0
  122. package/dist/components/icon/src/icon-utils.js +39 -0
  123. package/dist/components/input/index.d.ts +1 -1
  124. package/dist/components/input/src/RsInput.css +78 -260
  125. package/dist/components/input/src/RsInput.d.ts +5 -3
  126. package/dist/components/input/src/RsInput.impl.js +8 -16
  127. package/dist/components/input/src/RsInput.js +1 -1
  128. package/dist/components/input/src/input-utils.d.ts +11 -0
  129. package/dist/components/input/src/input-utils.js +22 -0
  130. package/dist/components/input-number/index.d.ts +1 -0
  131. package/dist/components/input-number/src/RsInputNumber.css +31 -31
  132. package/dist/components/input-number/src/RsInputNumber.d.ts +15 -13
  133. package/dist/components/input-number/src/RsInputNumber.impl.js +17 -4
  134. package/dist/components/input-number/src/RsInputNumber.js +1 -1
  135. package/dist/components/label/src/RsLabel.css +30 -11
  136. package/dist/components/label/src/RsLabel.d.ts +18 -1
  137. package/dist/components/label/src/RsLabel.impl.js +63 -10
  138. package/dist/components/label/src/RsLabel.js +1 -1
  139. package/dist/components/label/src/label-utils.d.ts +6 -0
  140. package/dist/components/label/src/label-utils.js +16 -0
  141. package/dist/components/link/index.d.ts +1 -0
  142. package/dist/components/link/src/RsLink.css +58 -17
  143. package/dist/components/link/src/RsLink.d.ts +12 -4
  144. package/dist/components/link/src/RsLink.impl.js +26 -25
  145. package/dist/components/link/src/RsLink.js +2 -1
  146. package/dist/components/link/src/link-utils.d.ts +9 -0
  147. package/dist/components/link/src/link-utils.js +15 -0
  148. package/dist/components/loading/src/RsLoading.d.ts +2 -2
  149. package/dist/components/mentions/index.d.ts +2 -1
  150. package/dist/components/mentions/src/RsMentions.css +119 -3
  151. package/dist/components/mentions/src/RsMentions.d.ts +56 -4
  152. package/dist/components/mentions/src/RsMentions.impl.js +298 -79
  153. package/dist/components/mentions/src/RsMentions.js +1 -3
  154. package/dist/components/mentions/src/mentions-utils.d.ts +5 -1
  155. package/dist/components/mentions/src/mentions-utils.js +28 -9
  156. package/dist/components/popover/src/RsPopover.d.ts +1 -1
  157. package/dist/components/radio/index.d.ts +1 -1
  158. package/dist/components/radio/src/RsRadio.css +7 -6
  159. package/dist/components/radio/src/RsRadio.d.ts +8 -5
  160. package/dist/components/radio/src/RsRadio.impl.js +34 -24
  161. package/dist/components/radio/src/RsRadio.js +2 -1
  162. package/dist/components/radio/src/RsRadioItem.css +61 -44
  163. package/dist/components/radio/src/RsRadioItem.d.ts +2 -2
  164. package/dist/components/radio/src/RsRadioItem.impl.js +53 -20
  165. package/dist/components/radio/src/RsRadioItem.js +2 -1
  166. package/dist/components/radio/src/radio-utils.d.ts +12 -1
  167. package/dist/components/radio/src/radio-utils.js +15 -1
  168. package/dist/components/scrollbar/src/RsScrollbar.css +71 -24
  169. package/dist/components/scrollbar/src/RsScrollbar.d.ts +9 -5
  170. package/dist/components/scrollbar/src/RsScrollbar.impl.js +372 -47
  171. package/dist/components/scrollbar/src/RsScrollbar.js +2 -1
  172. package/dist/components/scrollbar/src/scrollbar-utils.d.ts +34 -2
  173. package/dist/components/scrollbar/src/scrollbar-utils.js +64 -1
  174. package/dist/components/select/index.d.ts +1 -0
  175. package/dist/components/select/src/RsSelect.css +54 -42
  176. package/dist/components/select/src/RsSelect.d.ts +19 -2
  177. package/dist/components/select/src/RsSelect.impl.js +727 -312
  178. package/dist/components/select/src/RsSelect.js +1 -1
  179. package/dist/components/select/src/select-utils.d.ts +4 -2
  180. package/dist/components/select/src/select-utils.js +8 -3
  181. package/dist/components/select/src/use-rs-select.d.ts +1 -0
  182. package/dist/components/select/src/use-rs-select.js +23 -17
  183. package/dist/components/switch/index.d.ts +2 -1
  184. package/dist/components/switch/src/RsSwitch.css +36 -18
  185. package/dist/components/switch/src/RsSwitch.d.ts +18 -5
  186. package/dist/components/switch/src/RsSwitch.impl.js +61 -29
  187. package/dist/components/switch/src/RsSwitch.js +2 -1
  188. package/dist/components/switch/src/switch-utils.d.ts +4 -0
  189. package/dist/components/switch/src/switch-utils.js +9 -0
  190. package/dist/components/tag/index.d.ts +1 -1
  191. package/dist/components/tag/src/RsTag.css +42 -38
  192. package/dist/components/tag/src/RsTag.d.ts +3 -2
  193. package/dist/components/tag/src/RsTag.impl.js +18 -9
  194. package/dist/components/tag/src/RsTag.js +1 -1
  195. package/dist/components/tag/src/tag-utils.d.ts +8 -0
  196. package/dist/components/terminal/src/RsTerminal.d.ts +1 -1
  197. package/dist/components/textarea/src/RsTextarea.css +23 -23
  198. package/dist/components/textarea/src/RsTextarea.d.ts +6 -12
  199. package/dist/components/textarea/src/RsTextarea.impl.js +37 -46
  200. package/dist/components/textarea/src/RsTextarea.js +1 -1
  201. package/dist/components/textarea/src/textarea-utils.d.ts +27 -0
  202. package/dist/components/textarea/src/textarea-utils.js +61 -0
  203. package/dist/components/time-picker/index.d.ts +3 -2
  204. package/dist/components/time-picker/src/RsTimePicker.css +41 -24
  205. package/dist/components/time-picker/src/RsTimePicker.d.ts +52 -7
  206. package/dist/components/time-picker/src/RsTimePicker.impl.js +520 -156
  207. package/dist/components/time-picker/src/RsTimePicker.js +1 -3
  208. package/dist/components/time-picker/src/RsTimePickerColumns.css +26 -18
  209. package/dist/components/time-picker/src/RsTimePickerColumns.d.ts +3 -1
  210. package/dist/components/time-picker/src/RsTimePickerColumns.impl.js +62 -9
  211. package/dist/components/time-picker/src/RsTimePickerColumns.js +1 -1
  212. package/dist/components/time-picker/src/time-picker-utils.d.ts +38 -0
  213. package/dist/components/time-picker/src/time-picker-utils.js +97 -5
  214. package/dist/components/toaster/src/RsToaster.d.ts +1 -1
  215. package/dist/components/tooltip/src/RsTooltip.d.ts +1 -1
  216. package/dist/components/tree/src/RsTree.d.ts +3 -3
  217. package/dist/components/tree-select/index.d.ts +2 -0
  218. package/dist/components/tree-select/src/RsTreeSelect.css +100 -25
  219. package/dist/components/tree-select/src/RsTreeSelect.d.ts +91 -7
  220. package/dist/components/tree-select/src/RsTreeSelect.impl.js +464 -79
  221. package/dist/components/tree-select/src/RsTreeSelect.js +1 -1
  222. package/dist/components/tree-select/src/tree-select-utils.d.ts +20 -0
  223. package/dist/components/tree-select/src/tree-select-utils.js +60 -0
  224. package/dist/components/upload/index.d.ts +2 -1
  225. package/dist/components/upload/src/RsUpload.css +223 -75
  226. package/dist/components/upload/src/RsUpload.d.ts +77 -1
  227. package/dist/components/upload/src/RsUpload.impl.js +404 -90
  228. package/dist/components/upload/src/RsUpload.js +1 -1
  229. package/dist/components/upload/src/upload-utils.d.ts +21 -2
  230. package/dist/components/upload/src/upload-utils.js +139 -9
  231. package/dist/index.d.ts +24 -11
  232. package/dist/index.js +6 -0
  233. package/dist/locale/messages.js +46 -2
  234. package/dist/styles.css +518 -154
  235. package/dist/theme/brand.example.css +1 -1
  236. package/package.json +9 -8
  237. package/dist/components/breadcrumb/src/RsBreadcrumbItems.d.ts +0 -8
  238. package/dist/components/breadcrumb/src/RsBreadcrumbItems.impl.js +0 -40
  239. package/dist/components/breadcrumb/src/RsBreadcrumbItems.js +0 -5
  240. package/dist/components/date-picker/src/RsDatePicker-1.css +0 -157
  241. package/dist/components/mentions/src/RsMentions-1.css +0 -29
  242. package/dist/components/time-picker/src/RsTimePicker-1.css +0 -98
@@ -1,12 +1,13 @@
1
+ import { RS_COMPONENT_SIZE_ICON_PX } from "../../../theme/types.js";
1
2
  import { useRsI18n } from "../../../composables/useRsI18n.js";
2
- import RsIcon_default from "../../icon/src/RsIcon.js";
3
3
  import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
4
4
  import { rsRadiusCss, useResolvedRsRadius } from "../../_shared/src/resolve-radius.js";
5
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, renderSlot, unref } from "vue";
5
+ import RsButton_default from "../../button/src/RsButton.js";
6
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, renderSlot, unref } from "vue";
6
7
  //#region src/components/tag/src/RsTag.vue?vue&type=script&setup=true&lang.ts
7
8
  var _hoisted_1 = { class: "rs-tag__content" };
8
- var _hoisted_2 = ["disabled", "aria-label"];
9
9
  var RsTag_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
10
+ name: "RsTag",
10
11
  __name: "RsTag",
11
12
  props: {
12
13
  variant: { default: "default" },
@@ -32,6 +33,7 @@ var RsTag_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
32
33
  const { t } = useRsI18n();
33
34
  const resolvedSize = useResolvedRsComponentSize(() => props.size);
34
35
  const resolvedRadius = useResolvedRsRadius(() => props.round ? "full" : props.radius, "sm");
36
+ const closeIconSize = RS_COMPONENT_SIZE_ICON_PX.ssm;
35
37
  const rootClass = computed(() => [
36
38
  "rs-tag",
37
39
  `rs-tag--${props.variant}`,
@@ -52,17 +54,24 @@ var RsTag_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComp
52
54
  return openBlock(), createElementBlock("span", {
53
55
  class: normalizeClass(rootClass.value),
54
56
  style: normalizeStyle(rootStyle.value)
55
- }, [createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]), __props.closable ? (openBlock(), createElementBlock("button", {
57
+ }, [createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]), __props.closable ? (openBlock(), createBlock(RsButton_default, {
56
58
  key: 0,
57
- type: "button",
58
59
  class: "rs-tag__close",
60
+ variant: "text",
61
+ bordered: false,
62
+ size: "ssm",
63
+ radius: "full",
64
+ icon: "x",
65
+ "icon-size": unref(closeIconSize),
66
+ "icon-only": "",
59
67
  disabled: __props.disabled,
60
68
  "aria-label": unref(t)("tag.close"),
61
69
  onClick: onClose
62
- }, [createVNode(RsIcon_default, {
63
- name: "x",
64
- size: 12
65
- })], 8, _hoisted_2)) : createCommentVNode("", true)], 6);
70
+ }, null, 8, [
71
+ "icon-size",
72
+ "disabled",
73
+ "aria-label"
74
+ ])) : createCommentVNode("", true)], 6);
66
75
  };
67
76
  }
68
77
  });
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
3
3
  import RsTag_vue_vue_type_script_setup_true_lang_default from "./RsTag.impl.js";
4
4
 
5
5
  //#region src/components/tag/src/RsTag.vue
6
- var RsTag_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsTag_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-0140d810"]]);
6
+ var RsTag_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsTag_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-d8327085"]]);
7
7
  //#endregion
8
8
  export { RsTag_default as default };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * RsTag 语义色。只有色相、没有形态轴,不另开 tone。
3
+ * 可增删的一组标签请用 RsDynamicTags。
4
+ */
5
+ export declare const RS_TAG_VARIANTS: readonly ["default", "primary", "success", "warning", "danger", "info"];
6
+ export type RsTagVariant = (typeof RS_TAG_VARIANTS)[number];
7
+ export declare function isRsTagVariant(value: unknown): value is RsTagVariant;
8
+ export declare function resolveRsTagVariant(variant?: RsTagVariant | null): RsTagVariant;
@@ -87,8 +87,8 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, RsTerminalE
87
87
  onExtraSelect?: ((key: string) => any) | undefined;
88
88
  }>, {
89
89
  theme: Partial<ITheme>;
90
- loading: boolean;
91
90
  overlay: string;
91
+ loading: boolean;
92
92
  contextMenu: boolean;
93
93
  shortcuts: boolean;
94
94
  inputEnabled: boolean;
@@ -1,8 +1,8 @@
1
1
 
2
- .rs-textarea[data-v-cba8d859] {
2
+ .rs-textarea[data-v-4aaa8fd4] {
3
3
  width: 100%;
4
4
  }
5
- .rs-textarea__shell[data-v-cba8d859] {
5
+ .rs-textarea__shell[data-v-4aaa8fd4] {
6
6
  position: relative;
7
7
  box-sizing: border-box;
8
8
  width: 100%;
@@ -14,32 +14,32 @@
14
14
  border-color var(--rs-transition-fast),
15
15
  box-shadow var(--rs-transition-fast);
16
16
  }
17
- .rs-textarea__shell[data-v-cba8d859]:hover:not(.is-disabled):not(.is-readonly):not(:focus-within) {
17
+ .rs-textarea__shell[data-v-4aaa8fd4]:hover:not(.is-disabled):not(.is-readonly):not(:focus-within) {
18
18
  border-color: var(--rs-input-border-hover, var(--rs-border));
19
19
  }
20
- .rs-textarea__shell[data-v-cba8d859]:focus-within {
20
+ .rs-textarea__shell[data-v-4aaa8fd4]:focus-within {
21
21
  border-color: var(--rs-focus-border, var(--rs-primary));
22
22
  box-shadow:
23
23
  var(--rs-input-shadow, none),
24
24
  0 0 0 var(--rs-focus-ring-width, 2px) var(--rs-focus-ring);
25
25
  }
26
- .rs-textarea__shell.is-invalid[data-v-cba8d859] {
26
+ .rs-textarea__shell.is-invalid[data-v-4aaa8fd4] {
27
27
  border-color: var(--rs-danger);
28
28
  }
29
- .rs-textarea__shell.is-invalid[data-v-cba8d859]:focus-within {
29
+ .rs-textarea__shell.is-invalid[data-v-4aaa8fd4]:focus-within {
30
30
  box-shadow:
31
31
  var(--rs-input-shadow, none),
32
32
  0 0 0 var(--rs-focus-ring-width, 2px) color-mix(in srgb, var(--rs-danger) 14%, transparent);
33
33
  }
34
- .rs-textarea__shell.is-disabled[data-v-cba8d859] {
34
+ .rs-textarea__shell.is-disabled[data-v-4aaa8fd4] {
35
35
  opacity: 0.38;
36
36
  cursor: not-allowed;
37
37
  background: var(--rs-surface-hover);
38
38
  }
39
- .rs-textarea__shell.is-readonly[data-v-cba8d859] {
39
+ .rs-textarea__shell.is-readonly[data-v-4aaa8fd4] {
40
40
  background: var(--rs-surface-hover);
41
41
  }
42
- .rs-textarea__control[data-v-cba8d859] {
42
+ .rs-textarea__control[data-v-4aaa8fd4] {
43
43
  display: block;
44
44
  box-sizing: border-box;
45
45
  width: 100%;
@@ -53,37 +53,37 @@
53
53
  font-size: var(--rs-font-size-sm);
54
54
  line-height: 1.5;
55
55
  }
56
- .rs-textarea__shell.is-autosize .rs-textarea__control[data-v-cba8d859] {
56
+ .rs-textarea__shell.is-autosize .rs-textarea__control[data-v-4aaa8fd4] {
57
57
  min-height: 0;
58
58
  }
59
- .rs-textarea__shell.has-count .rs-textarea__control[data-v-cba8d859] {
59
+ .rs-textarea__shell.has-count .rs-textarea__control[data-v-4aaa8fd4] {
60
60
  padding-bottom: 1.55rem;
61
61
  }
62
- .rs-textarea__shell.has-clear .rs-textarea__control[data-v-cba8d859] {
62
+ .rs-textarea__shell.has-clear .rs-textarea__control[data-v-4aaa8fd4] {
63
63
  padding-inline-end: 1.85rem;
64
64
  }
65
- .rs-input-field--sm .rs-textarea__control[data-v-cba8d859] {
65
+ .rs-input-field--sm .rs-textarea__control[data-v-4aaa8fd4] {
66
66
  min-height: 3.5rem;
67
67
  padding: 0.4rem 0.6rem;
68
68
  font-size: var(--rs-font-size-xs);
69
69
  }
70
- .rs-input-field--sm .rs-textarea__shell.has-count .rs-textarea__control[data-v-cba8d859] {
70
+ .rs-input-field--sm .rs-textarea__shell.has-count .rs-textarea__control[data-v-4aaa8fd4] {
71
71
  padding-bottom: 1.4rem;
72
72
  }
73
- .rs-input-field--lg .rs-textarea__control[data-v-cba8d859] {
73
+ .rs-input-field--lg .rs-textarea__control[data-v-4aaa8fd4] {
74
74
  min-height: 5.5rem;
75
75
  padding: 0.7rem 0.9rem;
76
76
  }
77
- .rs-textarea__control[data-v-cba8d859]::placeholder {
77
+ .rs-textarea__control[data-v-4aaa8fd4]::placeholder {
78
78
  color: var(--rs-placeholder);
79
79
  }
80
- .rs-textarea__control[data-v-cba8d859]:disabled {
80
+ .rs-textarea__control[data-v-4aaa8fd4]:disabled {
81
81
  cursor: not-allowed;
82
82
  }
83
- .rs-textarea__control[data-v-cba8d859]:read-only {
83
+ .rs-textarea__control[data-v-4aaa8fd4]:read-only {
84
84
  cursor: default;
85
85
  }
86
- .rs-textarea__clear[data-v-cba8d859] {
86
+ .rs-textarea__clear[data-v-4aaa8fd4] {
87
87
  position: absolute;
88
88
  top: 0.45rem;
89
89
  inset-inline-end: 0.45rem;
@@ -102,11 +102,11 @@
102
102
  color var(--rs-transition-fast),
103
103
  background var(--rs-transition-fast);
104
104
  }
105
- .rs-textarea__clear[data-v-cba8d859]:hover {
105
+ .rs-textarea__clear[data-v-4aaa8fd4]:hover {
106
106
  color: var(--rs-text);
107
107
  background: var(--rs-item-hover);
108
108
  }
109
- .rs-textarea__count[data-v-cba8d859] {
109
+ .rs-textarea__count[data-v-4aaa8fd4] {
110
110
  position: absolute;
111
111
  inset-inline-end: 0.65rem;
112
112
  bottom: 0.3rem;
@@ -117,10 +117,10 @@
117
117
  line-height: 1;
118
118
  color: var(--rs-muted);
119
119
  }
120
- .rs-textarea__count.is-limit[data-v-cba8d859] {
120
+ .rs-textarea__count.is-limit[data-v-4aaa8fd4] {
121
121
  color: var(--rs-danger);
122
122
  }
123
- .rs-field--label-left .rs-textarea[data-v-cba8d859] {
123
+ .rs-field--label-left .rs-textarea[data-v-4aaa8fd4] {
124
124
  grid-column: 2;
125
125
  min-width: 0;
126
126
  }
@@ -1,17 +1,8 @@
1
1
  import type { RsComponentSize, RsRadius } from '../../../theme/types';
2
+ import type { RsInputRule, RsInputValidateTrigger } from '../../input/src/input-rules';
2
3
  import { type RsFormLabelPosition } from '../../form/src/form-utils';
3
4
  import { type RsFormRuleTrigger } from '../../form/src/form-rules';
4
- import type { RsInputRule, RsInputValidateTrigger } from '../../input/src/input-rules';
5
- /** 原生 resize;autosize 开启时强制 none,与 Element Plus 一致。 */
6
- export type RsTextareaResize = 'none' | 'horizontal' | 'vertical' | 'both';
7
- /**
8
- * 自适应高度。true 从 rows 起往下长;对象可锁 minRows / maxRows。
9
- * 对齐 Ant Design autoSize、Element Plus autosize。
10
- */
11
- export type RsTextareaAutosize = boolean | {
12
- minRows?: number;
13
- maxRows?: number;
14
- };
5
+ import { type RsTextareaAutosize, type RsTextareaResize } from './textarea-utils';
15
6
  /**
16
7
  * RsTextarea 模板 ref 请用此类型。
17
8
  * 不要写 InstanceType<typeof RsTextarea>:组件实例类型过深,vue-tsc 会报 Excessive stack depth。
@@ -28,6 +19,7 @@ export interface RsTextareaExpose {
28
19
  export type RsTextareaInstance = RsTextareaExpose & {
29
20
  $el: HTMLElement;
30
21
  };
22
+ export type { RsTextareaAutosize, RsTextareaResize };
31
23
  type __VLS_Props = {
32
24
  id?: string;
33
25
  placeholder?: string;
@@ -64,7 +56,9 @@ declare var __VLS_6: {
64
56
  count: number;
65
57
  maxlength: number | undefined;
66
58
  }, __VLS_8: {
59
+ name: string | undefined;
67
60
  message: string;
61
+ value: string;
68
62
  };
69
63
  type __VLS_Slots = {} & {
70
64
  count?: (props: typeof __VLS_6) => any;
@@ -92,9 +86,9 @@ declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, RsTex
92
86
  }) => any) | undefined;
93
87
  onPressEnter?: ((event: KeyboardEvent) => any) | undefined;
94
88
  }>, {
89
+ required: boolean;
95
90
  invalid: boolean;
96
91
  resize: RsTextareaResize;
97
- required: boolean;
98
92
  disabled: boolean;
99
93
  readonly: boolean;
100
94
  validateTrigger: RsInputValidateTrigger;
@@ -4,7 +4,10 @@ import { buildLocalInputRules, runFormFieldRules } from "../../form/src/form-rul
4
4
  import { isRsFormItemBoundControl, useRsFormContext, useRsFormField, useRsFormItemContext } from "../../form/src/form-utils.js";
5
5
  import { useResolvedRsComponentSize } from "../../_shared/src/resolve-size.js";
6
6
  import { rsRadiusCss, useResolvedRsRadius } from "../../_shared/src/resolve-radius.js";
7
- import { computed, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, mergeProps, nextTick, normalizeClass, normalizeStyle, onMounted, openBlock, ref, renderSlot, toDisplayString, unref, useAttrs, useId, useModel, watch, withModifiers } from "vue";
7
+ import { normalizeRsInputValue } from "../../input/src/input-utils.js";
8
+ import RsVNodeHost_default from "../../vnode-host/src/RsVNodeHost.js";
9
+ import { applyTextareaAutosize, isRsTextareaAutosizeEnabled, resolveRsTextareaAutosizeSpec, resolveRsTextareaDisplayRows, resolveRsTextareaResize } from "./textarea-utils.js";
10
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, nextTick, normalizeClass, normalizeProps, normalizeStyle, onMounted, openBlock, ref, renderSlot, toDisplayString, unref, useAttrs, useId, useModel, watch, withModifiers } from "vue";
8
11
  //#region src/components/textarea/src/RsTextarea.vue?vue&type=script&setup=true&lang.ts
9
12
  var _hoisted_1 = {
10
13
  key: 0,
@@ -36,6 +39,7 @@ var _hoisted_8 = {
36
39
  class: "rs-field__hint"
37
40
  };
38
41
  var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
42
+ name: "RsTextarea",
39
43
  inheritAttrs: false,
40
44
  __name: "RsTextarea",
41
45
  props: /*@__PURE__*/ mergeModels({
@@ -102,10 +106,10 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
102
106
  const { t } = useRsI18n();
103
107
  const model = useModel(__props, "modelValue", {
104
108
  get(value) {
105
- return value == null ? "" : String(value);
109
+ return normalizeRsInputValue(value);
106
110
  },
107
111
  set(value) {
108
- return value == null ? "" : String(value);
112
+ return normalizeRsInputValue(value);
109
113
  }
110
114
  });
111
115
  const props = __props;
@@ -133,6 +137,15 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
133
137
  if (props.showValidateMessage && autoInvalid.value) return autoMessage.value;
134
138
  return "";
135
139
  });
140
+ const errorSlotProps = computed(() => ({
141
+ name: props.name,
142
+ message: displayMessage.value,
143
+ value: model.value
144
+ }));
145
+ const formErrorContent = computed(() => {
146
+ if (!displayMessage.value || !formContext?.renderError) return null;
147
+ return formContext.renderError(errorSlotProps.value);
148
+ });
136
149
  const isInvalid = computed(() => {
137
150
  if (boundToItem.value) return Boolean(formItem?.invalid.value || props.invalid);
138
151
  return props.invalid || autoInvalid.value;
@@ -151,54 +164,26 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
151
164
  if (!labelWidth) return void 0;
152
165
  return { "--rs-field-label-width": labelWidth };
153
166
  });
154
- const autosizeEnabled = computed(() => Boolean(props.autosize));
155
- const autosizeSpec = computed(() => typeof props.autosize === "object" && props.autosize ? props.autosize : {});
156
- const displayRows = computed(() => autosizeSpec.value.minRows ?? props.rows);
157
- const resolvedResize = computed(() => autosizeEnabled.value ? "none" : props.resize);
167
+ const autosizeEnabled = computed(() => isRsTextareaAutosizeEnabled(props.autosize));
168
+ const autosizeSpec = computed(() => resolveRsTextareaAutosizeSpec(props.autosize));
169
+ const displayRows = computed(() => resolveRsTextareaDisplayRows(props.autosize, props.rows));
170
+ const resolvedResize = computed(() => resolveRsTextareaResize(props.resize, props.autosize));
158
171
  const countText = computed(() => {
159
172
  const n = model.value.length;
160
173
  return props.maxlength != null ? `${n} / ${props.maxlength}` : String(n);
161
174
  });
162
175
  const countLimitReached = computed(() => props.maxlength != null && model.value.length >= props.maxlength);
163
176
  const showClearButton = computed(() => props.clearable && !resolvedDisabled.value && !props.readonly && model.value.length > 0);
164
- function parseLineHeight(el) {
165
- const style = getComputedStyle(el);
166
- const lh = Number.parseFloat(style.lineHeight);
167
- if (Number.isFinite(lh) && lh > 0) return lh;
168
- return (Number.parseFloat(style.fontSize) || 14) * 1.5;
169
- }
170
- function autosizePadding(el) {
171
- const style = getComputedStyle(el);
172
- const pad = Number.parseFloat(style.paddingTop) + Number.parseFloat(style.paddingBottom);
173
- if (style.boxSizing !== "border-box") return 0;
174
- const border = Number.parseFloat(style.borderTopWidth) + Number.parseFloat(style.borderBottomWidth);
175
- return (Number.isFinite(pad) ? pad : 0) + (Number.isFinite(border) ? border : 0);
176
- }
177
177
  function adjustHeight() {
178
- const el = textareaRef.value;
179
- if (!el) return;
180
- if (!autosizeEnabled.value) {
181
- el.style.height = "";
182
- el.style.overflowY = "";
183
- return;
184
- }
185
- el.style.height = "auto";
186
- el.style.overflowY = "hidden";
187
- const lineHeight = parseLineHeight(el);
188
- const extra = autosizePadding(el);
189
- const minRows = autosizeSpec.value.minRows ?? props.rows;
190
- const maxRows = autosizeSpec.value.maxRows;
191
- const min = lineHeight * minRows + extra;
192
- const max = maxRows != null ? lineHeight * maxRows + extra : void 0;
193
- let height = el.scrollHeight;
194
- if (height < min) height = min;
195
- if (max != null && height > max) {
196
- height = max;
197
- el.style.overflowY = "auto";
198
- }
199
- el.style.height = `${height}px`;
178
+ applyTextareaAutosize(textareaRef.value, {
179
+ enabled: autosizeEnabled.value,
180
+ minRows: autosizeSpec.value.minRows ?? props.rows,
181
+ maxRows: autosizeSpec.value.maxRows
182
+ });
200
183
  }
201
184
  function scheduleAdjustHeight() {
185
+ const el = textareaRef.value;
186
+ if (!autosizeEnabled.value && !el?.style.height) return;
202
187
  nextTick(adjustHeight);
203
188
  }
204
189
  async function runValidate(trigger = "submit") {
@@ -229,7 +214,7 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
229
214
  autoMessage.value = message;
230
215
  }
231
216
  function setValue(value) {
232
- model.value = String(value ?? "");
217
+ model.value = normalizeRsInputValue(value);
233
218
  scheduleAdjustHeight();
234
219
  }
235
220
  function clearValidation() {
@@ -262,6 +247,9 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
262
247
  if (props.validateTrigger === "blur" || props.validateTrigger === "both") runValidate("blur");
263
248
  emit("blur", event);
264
249
  }
250
+ function onFocus(event) {
251
+ emit("focus", event);
252
+ }
265
253
  function onKeydown(event) {
266
254
  if (event.key !== "Enter" || composing.value) return;
267
255
  emit("pressEnter", event);
@@ -346,7 +334,7 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
346
334
  onCompositionend: onCompositionEnd,
347
335
  onKeydown,
348
336
  onBlur,
349
- onFocus: _cache[0] || (_cache[0] = ($event) => emit("focus", $event))
337
+ onFocus
350
338
  }), null, 16, _hoisted_5),
351
339
  showClearButton.value ? (openBlock(), createElementBlock("button", {
352
340
  key: 0,
@@ -354,7 +342,7 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
354
342
  class: "rs-textarea__clear",
355
343
  tabindex: "-1",
356
344
  "aria-label": unref(t)("input.clear"),
357
- onPointerdown: _cache[1] || (_cache[1] = withModifiers(() => {}, ["prevent"])),
345
+ onPointerdown: _cache[0] || (_cache[0] = withModifiers(() => {}, ["prevent"])),
358
346
  onClick: onClear
359
347
  }, [createVNode(RsIcon_default, {
360
348
  name: "x",
@@ -375,7 +363,10 @@ var RsTextarea_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
375
363
  id: errorId.value,
376
364
  class: "rs-field__error",
377
365
  role: "alert"
378
- }, [renderSlot(_ctx.$slots, "error", { message: displayMessage.value }, () => [createTextVNode(toDisplayString(displayMessage.value), 1)], true)], 8, _hoisted_7)) : createCommentVNode("", true),
366
+ }, [renderSlot(_ctx.$slots, "error", normalizeProps(guardReactiveProps(errorSlotProps.value)), () => [formErrorContent.value !== null && formErrorContent.value !== void 0 ? (openBlock(), createBlock(RsVNodeHost_default, {
367
+ key: 0,
368
+ content: formErrorContent.value
369
+ }, null, 8, ["content"])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createTextVNode(toDisplayString(displayMessage.value), 1)], 64))], true)], 8, _hoisted_7)) : createCommentVNode("", true),
379
370
  __props.hint ? (openBlock(), createElementBlock("span", _hoisted_8, toDisplayString(__props.hint), 1)) : createCommentVNode("", true)
380
371
  ])], 6);
381
372
  };
@@ -3,6 +3,6 @@ import _plugin_vue_export_helper_default from "../../../_virtual/_plugin-vue_exp
3
3
  import RsTextarea_vue_vue_type_script_setup_true_lang_default from "./RsTextarea.impl.js";
4
4
 
5
5
  //#region src/components/textarea/src/RsTextarea.vue
6
- var RsTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsTextarea_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-cba8d859"]]);
6
+ var RsTextarea_default = /*#__PURE__*/ _plugin_vue_export_helper_default(RsTextarea_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-4aaa8fd4"]]);
7
7
  //#endregion
8
8
  export { RsTextarea_default as default };
@@ -0,0 +1,27 @@
1
+ export declare const RS_TEXTAREA_RESIZES: readonly ["none", "horizontal", "vertical", "both"];
2
+ export type RsTextareaResize = (typeof RS_TEXTAREA_RESIZES)[number];
3
+ /**
4
+ * 自适应高度。true 从 rows 起往下长;对象可锁 minRows / maxRows。
5
+ * 对齐 Ant Design autoSize、Element Plus autosize。
6
+ */
7
+ export type RsTextareaAutosize = boolean | {
8
+ minRows?: number;
9
+ maxRows?: number;
10
+ };
11
+ export declare function isRsTextareaResize(value: unknown): value is RsTextareaResize;
12
+ export declare function isRsTextareaAutosizeEnabled(autosize?: RsTextareaAutosize | null): boolean;
13
+ export declare function resolveRsTextareaAutosizeSpec(autosize?: RsTextareaAutosize | null): {
14
+ minRows?: number;
15
+ maxRows?: number;
16
+ };
17
+ export declare function resolveRsTextareaDisplayRows(autosize?: RsTextareaAutosize | null, rows?: number): number;
18
+ /** autosize 开启时强制 none,与 Element Plus 一致。 */
19
+ export declare function resolveRsTextareaResize(resize?: RsTextareaResize | null, autosize?: RsTextareaAutosize | null): RsTextareaResize;
20
+ export declare function parseTextareaLineHeight(el: HTMLTextAreaElement): number;
21
+ export declare function textareaAutosizePadding(el: HTMLTextAreaElement): number;
22
+ /** 写入或清掉 autosize 高度。el 已卸载时直接返回。 */
23
+ export declare function applyTextareaAutosize(el: HTMLTextAreaElement | null, options: {
24
+ enabled: boolean;
25
+ minRows: number;
26
+ maxRows?: number;
27
+ }): void;
@@ -0,0 +1,61 @@
1
+ //#region src/components/textarea/src/textarea-utils.ts
2
+ var RS_TEXTAREA_RESIZES = [
3
+ "none",
4
+ "horizontal",
5
+ "vertical",
6
+ "both"
7
+ ];
8
+ function isRsTextareaResize(value) {
9
+ return typeof value === "string" && RS_TEXTAREA_RESIZES.includes(value);
10
+ }
11
+ function isRsTextareaAutosizeEnabled(autosize) {
12
+ return autosize === true || typeof autosize === "object" && autosize != null;
13
+ }
14
+ function resolveRsTextareaAutosizeSpec(autosize) {
15
+ return typeof autosize === "object" && autosize ? autosize : {};
16
+ }
17
+ function resolveRsTextareaDisplayRows(autosize, rows = 3) {
18
+ return resolveRsTextareaAutosizeSpec(autosize).minRows ?? rows;
19
+ }
20
+ /** autosize 开启时强制 none,与 Element Plus 一致。 */
21
+ function resolveRsTextareaResize(resize, autosize) {
22
+ if (isRsTextareaAutosizeEnabled(autosize)) return "none";
23
+ return isRsTextareaResize(resize) ? resize : "vertical";
24
+ }
25
+ function parseTextareaLineHeight(el) {
26
+ const style = getComputedStyle(el);
27
+ const lh = Number.parseFloat(style.lineHeight);
28
+ if (Number.isFinite(lh) && lh > 0) return lh;
29
+ return (Number.parseFloat(style.fontSize) || 14) * 1.5;
30
+ }
31
+ function textareaAutosizePadding(el) {
32
+ const style = getComputedStyle(el);
33
+ const pad = Number.parseFloat(style.paddingTop) + Number.parseFloat(style.paddingBottom);
34
+ if (style.boxSizing !== "border-box") return 0;
35
+ const border = Number.parseFloat(style.borderTopWidth) + Number.parseFloat(style.borderBottomWidth);
36
+ return (Number.isFinite(pad) ? pad : 0) + (Number.isFinite(border) ? border : 0);
37
+ }
38
+ /** 写入或清掉 autosize 高度。el 已卸载时直接返回。 */
39
+ function applyTextareaAutosize(el, options) {
40
+ if (!el) return;
41
+ if (!options.enabled) {
42
+ el.style.height = "";
43
+ el.style.overflowY = "";
44
+ return;
45
+ }
46
+ el.style.height = "auto";
47
+ el.style.overflowY = "hidden";
48
+ const lineHeight = parseTextareaLineHeight(el);
49
+ const extra = textareaAutosizePadding(el);
50
+ const min = lineHeight * options.minRows + extra;
51
+ const max = options.maxRows != null ? lineHeight * options.maxRows + extra : void 0;
52
+ let height = el.scrollHeight;
53
+ if (height < min) height = min;
54
+ if (max != null && height > max) {
55
+ height = max;
56
+ el.style.overflowY = "auto";
57
+ }
58
+ el.style.height = `${height}px`;
59
+ }
60
+ //#endregion
61
+ export { RS_TEXTAREA_RESIZES, applyTextareaAutosize, isRsTextareaAutosizeEnabled, isRsTextareaResize, parseTextareaLineHeight, resolveRsTextareaAutosizeSpec, resolveRsTextareaDisplayRows, resolveRsTextareaResize, textareaAutosizePadding };
@@ -1,7 +1,8 @@
1
1
  export { default as RsTimePicker } from './src/RsTimePicker.js';
2
2
  export { default as RsTimePickerColumns } from './src/RsTimePickerColumns.js';
3
- export type { RsParsedTime, RsTimeRangeValue, RsTimeUnit, RsTimeUnitOption } from './src/time-picker-utils';
4
- export { EMPTY_TIME_RANGE, TIME_HOUR_OPTIONS, TIME_SECOND_OPTIONS, formatTimeFromParts, formatTimeParts, formatTimeRangeDisplay, formatTimeUnitLabel, formatTimeValue, getTimeMinuteOptions, isTimeRangeEmpty, isTimeRangeOrdered, isTimeWithinBounds, parseTimeValue, scrollTimeColumnToValue, } from './src/time-picker-utils';
3
+ export type { RsTimePickerExpose, RsTimePickerInstance, RsTimePickerLabelPosition, } from './src/RsTimePicker.js';
4
+ export type { RsParsedTime, RsTimePickerDisabledTime, RsTimePickerGetPopupContainer, RsTimePickerHourCycle, RsTimePickerModelValue, RsTimePickerShortcut, RsTimeRangeValue, RsTimeUnit, RsTimeUnitOption, } from './src/time-picker-utils';
5
+ 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 './src/time-picker-utils';
5
6
  export type { RsTimeValidationError, RsTimeValidationResult, RsTimeValidationRules } from './src/time-validation';
6
7
  export { validateTimeValue } from './src/time-validation';
7
8
  export type { RsTimeRangeValidationError, RsTimeRangeValidationResult, RsTimeRangeValidationRules, } from './src/time-range-validation';