vue-devui 1.5.12 → 1.5.13

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 (95) hide show
  1. package/auto-complete/index.es.js +139 -61
  2. package/auto-complete/index.umd.js +16 -16
  3. package/auto-complete/style.css +1 -1
  4. package/checkbox/index.es.js +115 -61
  5. package/checkbox/index.umd.js +15 -15
  6. package/checkbox/style.css +1 -1
  7. package/code-editor/index.es.js +5 -2
  8. package/code-editor/index.umd.js +6 -6
  9. package/code-review/index.es.js +12 -1
  10. package/code-review/index.umd.js +18 -18
  11. package/code-review/style.css +1 -1
  12. package/date-picker-pro/index.es.js +213 -109
  13. package/date-picker-pro/index.umd.js +19 -19
  14. package/date-picker-pro/style.css +1 -1
  15. package/editor-md/index.es.js +1 -1
  16. package/editor-md/index.umd.js +1 -1
  17. package/form/index.es.js +142 -64
  18. package/form/index.umd.js +14 -14
  19. package/form/style.css +1 -1
  20. package/image-preview/index.es.js +2 -6
  21. package/image-preview/index.umd.js +2 -2
  22. package/image-preview/style.css +1 -1
  23. package/input/index.es.js +207 -79
  24. package/input/index.umd.js +18 -18
  25. package/input/style.css +1 -1
  26. package/input-number/index.es.js +123 -46
  27. package/input-number/index.umd.js +20 -20
  28. package/input-number/style.css +1 -1
  29. package/mention/index.es.js +138 -60
  30. package/mention/index.umd.js +16 -16
  31. package/mention/style.css +1 -1
  32. package/nuxt/components/STYLE_TOKEN.js +3 -0
  33. package/nuxt/components/formControlProps.js +3 -0
  34. package/package.json +1 -1
  35. package/pagination/index.es.js +376 -161
  36. package/pagination/index.umd.js +19 -19
  37. package/pagination/style.css +1 -1
  38. package/progress/index.es.js +6 -6
  39. package/progress/index.umd.js +1 -1
  40. package/radio/index.es.js +115 -61
  41. package/radio/index.umd.js +16 -16
  42. package/radio/style.css +1 -1
  43. package/search/index.es.js +211 -83
  44. package/search/index.umd.js +19 -19
  45. package/search/style.css +1 -1
  46. package/select/index.es.js +358 -143
  47. package/select/index.umd.js +17 -17
  48. package/select/style.css +1 -1
  49. package/skeleton/index.es.js +1 -0
  50. package/skeleton/index.umd.js +2 -2
  51. package/steps/index.es.js +35 -11
  52. package/steps/index.umd.js +1 -1
  53. package/style.css +1 -1
  54. package/switch/index.es.js +115 -61
  55. package/switch/index.umd.js +14 -14
  56. package/switch/style.css +1 -1
  57. package/table/index.es.js +88 -34
  58. package/table/index.umd.js +15 -15
  59. package/table/style.css +1 -1
  60. package/textarea/index.es.js +141 -63
  61. package/textarea/index.umd.js +17 -17
  62. package/textarea/style.css +1 -1
  63. package/time-picker/index.es.js +159 -55
  64. package/time-picker/index.umd.js +11 -11
  65. package/time-picker/style.css +1 -1
  66. package/time-select/index.es.js +358 -143
  67. package/time-select/index.umd.js +22 -22
  68. package/time-select/style.css +1 -1
  69. package/tree/index.es.js +86 -32
  70. package/tree/index.umd.js +11 -11
  71. package/tree/style.css +1 -1
  72. package/types/auto-focus/index.d.ts +9 -0
  73. package/types/auto-focus/src/auto-focus-directive.d.ts +4 -0
  74. package/types/code-review/src/code-review-types.d.ts +6 -0
  75. package/types/code-review/src/code-review.d.ts +9 -0
  76. package/types/form/index.d.ts +1 -0
  77. package/types/form/src/components/form-control/use-form-control.d.ts +11 -2
  78. package/types/form/src/components/form-item/form-item-types.d.ts +10 -2
  79. package/types/form/src/components/form-item/form-item.d.ts +3 -3
  80. package/types/form/src/components/form-label/form-label.d.ts +1 -13
  81. package/types/form/src/components/form-label/use-form-label.d.ts +14 -2
  82. package/types/form/src/form-types.d.ts +11 -0
  83. package/types/form/src/form.d.ts +18 -0
  84. package/types/input/src/composables/use-input-event.d.ts +12 -2
  85. package/types/input/src/input-types.d.ts +8 -0
  86. package/types/input/src/input.d.ts +18 -0
  87. package/types/input-icon/src/input-icon.d.ts +18 -0
  88. package/types/list/index.d.ts +0 -1
  89. package/types/select/src/composables/use-select-menu-size.d.ts +5 -0
  90. package/types/select/src/select-types.d.ts +23 -4
  91. package/types/select/src/select.d.ts +19 -1
  92. package/types/select/src/use-select.d.ts +1 -1
  93. package/types/vue-devui.d.ts +2 -1
  94. package/vue-devui.es.js +415 -134
  95. package/vue-devui.umd.js +76 -76
@@ -33,10 +33,10 @@ var __publicField = (obj, key, value) => {
33
33
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
34
34
  return value;
35
35
  };
36
- import { defineComponent, watch, provide, reactive, toRefs, createVNode, onUnmounted, Transition, mergeProps, ref, unref, nextTick, withModifiers, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, computed, onMounted, Teleport, createTextVNode, onBeforeUnmount, shallowRef, resolveDynamicComponent, getCurrentInstance, onBeforeMount, isVNode, onUpdated, toRaw, watchEffect, render, resolveComponent, vShow, toRef, renderSlot, useSlots } from "vue";
36
+ import { defineComponent, watch, provide, reactive, toRefs, createVNode, onUnmounted, Transition, mergeProps, ref, unref, nextTick, withModifiers, Comment, Text, h, Fragment, inject, withDirectives, cloneVNode, computed, onMounted, Teleport, createTextVNode, onBeforeUnmount, shallowRef, resolveDynamicComponent, getCurrentInstance, resolveDirective, onBeforeMount, isVNode, onUpdated, toRaw, watchEffect, render, resolveComponent, vShow, toRef, renderSlot, useSlots } from "vue";
37
37
  import { onClickOutside } from "@vueuse/core";
38
- import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
39
38
  import "clipboard";
39
+ import { offset, autoPlacement, arrow, shift, computePosition } from "@floating-ui/dom";
40
40
  const datePickerProCommonProps = {
41
41
  format: {
42
42
  type: String
@@ -393,9 +393,37 @@ const formProps = {
393
393
  hideRequiredMark: {
394
394
  type: Boolean,
395
395
  default: false
396
+ },
397
+ styleType: {
398
+ type: String,
399
+ default: "default"
400
+ },
401
+ appendToBodyScrollStrategy: {
402
+ type: String,
403
+ default: "reposition"
396
404
  }
397
405
  };
398
406
  const FORM_TOKEN = Symbol("dForm");
407
+ const STYLE_TOKEN = Symbol("dForm");
408
+ function lockScroll() {
409
+ if (document.documentElement.scrollHeight > document.documentElement.clientHeight) {
410
+ const scrollTop = document.documentElement.scrollTop;
411
+ const style = document.documentElement.getAttribute("style");
412
+ document.documentElement.style.position = "fixed";
413
+ document.documentElement.style.top = `-${scrollTop}px`;
414
+ document.documentElement.style.width = document.documentElement.style.width || "100%";
415
+ document.documentElement.style.overflowY = "scroll";
416
+ return () => {
417
+ if (style) {
418
+ document.documentElement.setAttribute("style", style);
419
+ } else {
420
+ document.documentElement.removeAttribute("style");
421
+ }
422
+ document.documentElement.scrollTop = scrollTop;
423
+ };
424
+ }
425
+ return;
426
+ }
399
427
  function createBem$1(namespace, element, modifier) {
400
428
  let cls = namespace;
401
429
  if (element) {
@@ -419,6 +447,9 @@ function useNamespace$1(block, needDot = false) {
419
447
  em
420
448
  };
421
449
  }
450
+ function isUrl(value) {
451
+ return /^((http|https):)?\/\//.test(value);
452
+ }
422
453
  function useFieldCollection() {
423
454
  const itemContexts = [];
424
455
  const addItemContext = (field) => {
@@ -5924,6 +5955,7 @@ defineComponent({
5924
5955
  addItemContext,
5925
5956
  removeItemContext
5926
5957
  })));
5958
+ provide(STYLE_TOKEN, props.styleType);
5927
5959
  ctx.expose({
5928
5960
  validate,
5929
5961
  validateFields,
@@ -5965,7 +5997,7 @@ const formItemProps = {
5965
5997
  default: void 0
5966
5998
  },
5967
5999
  helpTips: {
5968
- type: String,
6000
+ type: [String, Object],
5969
6001
  default: ""
5970
6002
  },
5971
6003
  feedbackStatus: {
@@ -5978,12 +6010,6 @@ const formItemProps = {
5978
6010
  };
5979
6011
  const FORM_ITEM_TOKEN = Symbol("dFormItem");
5980
6012
  const LABEL_DATA = Symbol("labelData");
5981
- const formLabelProps = {
5982
- helpTips: {
5983
- type: String,
5984
- default: ""
5985
- }
5986
- };
5987
6013
  const fixedOverlayProps = {
5988
6014
  modelValue: {
5989
6015
  type: Boolean,
@@ -5998,25 +6024,6 @@ const fixedOverlayProps = {
5998
6024
  default: true
5999
6025
  }
6000
6026
  };
6001
- function lockScroll() {
6002
- if (document.documentElement.scrollHeight > document.documentElement.clientHeight) {
6003
- const scrollTop = document.documentElement.scrollTop;
6004
- const style = document.documentElement.getAttribute("style");
6005
- document.documentElement.style.position = "fixed";
6006
- document.documentElement.style.top = `-${scrollTop}px`;
6007
- document.documentElement.style.width = document.documentElement.style.width || "100%";
6008
- document.documentElement.style.overflowY = "scroll";
6009
- return () => {
6010
- if (style) {
6011
- document.documentElement.setAttribute("style", style);
6012
- } else {
6013
- document.documentElement.removeAttribute("style");
6014
- }
6015
- document.documentElement.scrollTop = scrollTop;
6016
- };
6017
- }
6018
- return;
6019
- }
6020
6027
  function useFixedOverlay(props, ctx) {
6021
6028
  let lockScrollCb;
6022
6029
  const onClick = (event) => {
@@ -6039,6 +6046,29 @@ function useFixedOverlay(props, ctx) {
6039
6046
  onUnmounted(removeBodyAdditions);
6040
6047
  return { onClick };
6041
6048
  }
6049
+ function createBem(namespace, element, modifier) {
6050
+ let cls = namespace;
6051
+ if (element) {
6052
+ cls += `__${element}`;
6053
+ }
6054
+ if (modifier) {
6055
+ cls += `--${modifier}`;
6056
+ }
6057
+ return cls;
6058
+ }
6059
+ function useNamespace(block, needDot = false) {
6060
+ const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
6061
+ const b = () => createBem(namespace);
6062
+ const e = (element) => element ? createBem(namespace, element) : "";
6063
+ const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
6064
+ const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
6065
+ return {
6066
+ b,
6067
+ e,
6068
+ m,
6069
+ em
6070
+ };
6071
+ }
6042
6072
  var fixedOverlay = "";
6043
6073
  defineComponent({
6044
6074
  name: "DFixedOverlay",
@@ -6049,7 +6079,7 @@ defineComponent({
6049
6079
  const {
6050
6080
  modelValue
6051
6081
  } = toRefs(props);
6052
- const ns2 = useNamespace$1("fixed-overlay");
6082
+ const ns2 = useNamespace("fixed-overlay");
6053
6083
  const {
6054
6084
  onClick
6055
6085
  } = useFixedOverlay(props, ctx);
@@ -6215,7 +6245,7 @@ const FlexibleOverlay = defineComponent({
6215
6245
  emit,
6216
6246
  expose
6217
6247
  }) {
6218
- const ns2 = useNamespace$1("flexible-overlay");
6248
+ const ns2 = useNamespace("flexible-overlay");
6219
6249
  const {
6220
6250
  clickEventBubble
6221
6251
  } = toRefs(props);
@@ -6244,7 +6274,7 @@ const FlexibleOverlay = defineComponent({
6244
6274
  });
6245
6275
  const POPPER_TRIGGER_TOKEN = Symbol("popper-trigger");
6246
6276
  const isObject = (val) => val !== null && typeof val === "object";
6247
- const ns$1 = useNamespace$1("popper-trigger");
6277
+ const ns$1 = useNamespace("popper-trigger");
6248
6278
  function wrapContent(content) {
6249
6279
  return h("span", { class: ns$1.b() }, content);
6250
6280
  }
@@ -6431,7 +6461,7 @@ function usePopoverEvent(props, visible, origin) {
6431
6461
  });
6432
6462
  return { placement, handlePositionChange, onMouseenter, onMouseleave };
6433
6463
  }
6434
- const ns = useNamespace$1("popover");
6464
+ const ns = useNamespace("popover");
6435
6465
  function SuccessIcon$1() {
6436
6466
  return createVNode("svg", {
6437
6467
  "class": [ns.e("icon"), ns.em("icon", "success")],
@@ -6533,7 +6563,7 @@ var PopoverIcon = defineComponent({
6533
6563
  }
6534
6564
  },
6535
6565
  setup(props) {
6536
- const ns2 = useNamespace$1("popover");
6566
+ const ns2 = useNamespace("popover");
6537
6567
  return () => props.type && props.type !== "default" && createVNode("span", {
6538
6568
  "class": ns2.e("icon-wrap")
6539
6569
  }, [props.type === "success" && createVNode(SuccessIcon$1, null, null), props.type === "warning" && createVNode(WarningIcon, null, null), props.type === "info" && createVNode(InfoIcon, null, null), props.type === "error" && createVNode(ErrorIcon$1, null, null)]);
@@ -6570,7 +6600,7 @@ var Popover = defineComponent({
6570
6600
  const {
6571
6601
  overlayStyles
6572
6602
  } = usePopover(props, visible, placement, origin, popoverRef);
6573
- const ns2 = useNamespace$1("popover");
6603
+ const ns2 = useNamespace("popover");
6574
6604
  provide(POPPER_TRIGGER_TOKEN, origin);
6575
6605
  watch(visible, (newVal) => {
6576
6606
  if (newVal) {
@@ -6704,6 +6734,12 @@ function useFormLabel() {
6704
6734
  const formItemContext = inject(FORM_ITEM_TOKEN);
6705
6735
  const labelData = inject(LABEL_DATA);
6706
6736
  const ns2 = useNamespace$1("form");
6737
+ const defaultTipsPopover = {
6738
+ content: "",
6739
+ position: ["top"],
6740
+ trigger: "hover",
6741
+ popType: "info"
6742
+ };
6707
6743
  const labelClasses = computed(() => ({
6708
6744
  [`${ns2.e("label")}`]: true,
6709
6745
  [`${ns2.em("label", "vertical")}`]: labelData.value.layout === "vertical",
@@ -6715,17 +6751,24 @@ function useFormLabel() {
6715
6751
  [`${ns2.em("label", "required")}`]: formItemContext.isRequired,
6716
6752
  [`${ns2.em("label", "required-hide")}`]: formItemContext.isRequired && formContext.hideRequiredMark
6717
6753
  }));
6718
- return { labelClasses, labelInnerClasses };
6754
+ const tipsPopover = computed(() => {
6755
+ if (typeof labelData.value.helpTips === "string") {
6756
+ return __spreadProps(__spreadValues({}, defaultTipsPopover), { content: labelData.value.helpTips });
6757
+ } else {
6758
+ return __spreadValues(__spreadValues({}, defaultTipsPopover), labelData.value.helpTips);
6759
+ }
6760
+ });
6761
+ return { labelClasses, labelInnerClasses, tipsPopover };
6719
6762
  }
6720
6763
  var formLabel = "";
6721
6764
  var FormLabel = defineComponent({
6722
6765
  name: "DFormLabel",
6723
- props: formLabelProps,
6724
- setup(props, ctx) {
6766
+ setup(_, ctx) {
6725
6767
  const ns2 = useNamespace$1("form");
6726
6768
  const {
6727
6769
  labelClasses,
6728
- labelInnerClasses
6770
+ labelInnerClasses,
6771
+ tipsPopover
6729
6772
  } = useFormLabel();
6730
6773
  return () => {
6731
6774
  var _a, _b;
@@ -6733,12 +6776,9 @@ var FormLabel = defineComponent({
6733
6776
  "class": labelClasses.value
6734
6777
  }, [createVNode("span", {
6735
6778
  "class": labelInnerClasses.value
6736
- }, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)]), props.helpTips && createVNode(Popover, {
6737
- "content": props.helpTips,
6738
- "position": ["top"],
6739
- "trigger": "hover",
6740
- "pop-type": "info"
6741
- }, {
6779
+ }, [(_b = (_a = ctx.slots).default) == null ? void 0 : _b.call(_a)]), tipsPopover.value.content && createVNode(Popover, mergeProps({
6780
+ "class": ns2.e("label-tips-popover")
6781
+ }, tipsPopover.value), {
6742
6782
  default: () => [createVNode(HelpTipsIcon, {
6743
6783
  "class": ns2.e("label-help")
6744
6784
  }, null), createTextVNode(",")]
@@ -6769,7 +6809,7 @@ function useFormControl(props) {
6769
6809
  [ns2.em("control-container", "has-feedback")]: Boolean(feedbackStatus == null ? void 0 : feedbackStatus.value),
6770
6810
  [ns2.em("control-container", "feedback-error")]: Boolean((feedbackStatus == null ? void 0 : feedbackStatus.value) === "error")
6771
6811
  }));
6772
- return { controlClasses, controlContainerClasses };
6812
+ return { controlClasses, controlContainerClasses, labelData };
6773
6813
  }
6774
6814
  function useFormControlValidate() {
6775
6815
  const formItemContext = inject(FORM_ITEM_TOKEN);
@@ -6786,11 +6826,15 @@ var FormControl = defineComponent({
6786
6826
  name: "DFormControl",
6787
6827
  props: formControlProps,
6788
6828
  setup(props, ctx) {
6829
+ const formContext = inject(FORM_TOKEN);
6789
6830
  const formControl2 = ref();
6831
+ const popoverRef = ref();
6790
6832
  const ns2 = useNamespace$1("form");
6833
+ const showPopoverClick = ref(true);
6791
6834
  const {
6792
6835
  controlClasses,
6793
- controlContainerClasses
6836
+ controlContainerClasses,
6837
+ labelData
6794
6838
  } = useFormControl(props);
6795
6839
  const {
6796
6840
  feedbackStatus,
@@ -6800,17 +6844,52 @@ var FormControl = defineComponent({
6800
6844
  errorMessage,
6801
6845
  popPosition
6802
6846
  } = useFormControlValidate();
6847
+ const align = computed(() => {
6848
+ var _a, _b;
6849
+ if ((_a = popPosition.value) == null ? void 0 : _a.some((item) => item.includes("start"))) {
6850
+ return "start";
6851
+ }
6852
+ if ((_b = popPosition.value) == null ? void 0 : _b.some((item) => item.includes("end"))) {
6853
+ return "end";
6854
+ }
6855
+ return void 0;
6856
+ });
6857
+ const onDocumentClick = (e) => {
6858
+ const composedPath = e.composedPath();
6859
+ if (composedPath.includes(popoverRef.value.triggerEl)) {
6860
+ showPopoverClick.value = true;
6861
+ } else {
6862
+ showPopoverClick.value = false;
6863
+ }
6864
+ };
6865
+ watch(showPopover, (val) => {
6866
+ if (val) {
6867
+ setTimeout(() => {
6868
+ document.addEventListener("click", onDocumentClick);
6869
+ });
6870
+ } else {
6871
+ showPopoverClick.value = true;
6872
+ document.removeEventListener("click", onDocumentClick);
6873
+ }
6874
+ });
6875
+ onUnmounted(() => {
6876
+ document.removeEventListener("click", onDocumentClick);
6877
+ });
6803
6878
  return () => createVNode("div", {
6804
6879
  "class": controlClasses.value,
6805
6880
  "ref": formControl2
6806
6881
  }, [createVNode("div", {
6807
6882
  "class": controlContainerClasses.value
6808
6883
  }, [createVNode(Popover, {
6809
- "is-open": showPopover.value,
6884
+ "ref": popoverRef,
6885
+ "is-open": showPopover.value && showPopoverClick.value,
6810
6886
  "trigger": "manually",
6811
6887
  "content": errorMessage.value,
6812
6888
  "pop-type": "error",
6813
- "position": popPosition.value
6889
+ "position": popPosition.value,
6890
+ "align": align.value,
6891
+ "scroll-element": "auto",
6892
+ "append-to-body-scroll-strategy": formContext.appendToBodyScrollStrategy
6814
6893
  }, {
6815
6894
  default: () => {
6816
6895
  var _a, _b;
@@ -6822,7 +6901,7 @@ var FormControl = defineComponent({
6822
6901
  "class": ns2.e("control-info")
6823
6902
  }, [showMessage.value && createVNode("div", {
6824
6903
  "class": "error-message"
6825
- }, [errorMessage.value]), props.extraInfo && createVNode("div", {
6904
+ }, [errorMessage.value]), labelData.value.formItemCtx.slots.extraInfo ? labelData.value.formItemCtx.slots.extraInfo() : props.extraInfo && createVNode("div", {
6826
6905
  "class": ns2.e("control-extra")
6827
6906
  }, [props.extraInfo])])]);
6828
6907
  }
@@ -8005,7 +8084,9 @@ defineComponent({
8005
8084
  const labelData = computed(() => ({
8006
8085
  layout: formContext.layout,
8007
8086
  labelSize: formContext.labelSize,
8008
- labelAlign: formContext.labelAlign
8087
+ labelAlign: formContext.labelAlign,
8088
+ helpTips: helpTips.value,
8089
+ formItemCtx: ctx
8009
8090
  }));
8010
8091
  provide(LABEL_DATA, labelData);
8011
8092
  const context = reactive(__spreadProps(__spreadValues({}, otherProps), {
@@ -8021,6 +8102,7 @@ defineComponent({
8021
8102
  }));
8022
8103
  provide(FORM_ITEM_TOKEN, context);
8023
8104
  ctx.expose({
8105
+ validate,
8024
8106
  resetField,
8025
8107
  clearValidate
8026
8108
  });
@@ -8034,9 +8116,7 @@ defineComponent({
8034
8116
  });
8035
8117
  return () => createVNode("div", {
8036
8118
  "class": itemClasses.value
8037
- }, [createVNode(FormLabel, {
8038
- "help-tips": helpTips.value
8039
- }, {
8119
+ }, [createVNode(FormLabel, null, {
8040
8120
  default: () => [ctx.slots.label ? ctx.slots.label() : label == null ? void 0 : label.value]
8041
8121
  }), createVNode(FormControl, {
8042
8122
  "feedback-status": feedbackStatus == null ? void 0 : feedbackStatus.value,
@@ -8222,7 +8302,7 @@ var svgIcon = defineComponent({
8222
8302
  color,
8223
8303
  size
8224
8304
  } = toRefs(props);
8225
- const ns2 = useNamespace$1("svg-icon");
8305
+ const ns2 = useNamespace("svg-icon");
8226
8306
  const iconName = computed(() => `#icon-${name.value}`);
8227
8307
  const iconSize = computed(() => {
8228
8308
  return typeof size.value === "number" ? `${size.value}px` : size.value;
@@ -8242,9 +8322,6 @@ var svgIcon = defineComponent({
8242
8322
  };
8243
8323
  }
8244
8324
  });
8245
- function isUrl(value) {
8246
- return /^((http|https):)?\/\//.test(value);
8247
- }
8248
8325
  function useIconDom(props, ctx) {
8249
8326
  const {
8250
8327
  component,
@@ -8254,7 +8331,7 @@ function useIconDom(props, ctx) {
8254
8331
  classPrefix,
8255
8332
  rotate
8256
8333
  } = toRefs(props);
8257
- const ns2 = useNamespace$1("icon");
8334
+ const ns2 = useNamespace("icon");
8258
8335
  const iconSize = computed(() => {
8259
8336
  return typeof size.value === "number" ? `${size.value}px` : size.value;
8260
8337
  });
@@ -8312,7 +8389,7 @@ var Icon = defineComponent({
8312
8389
  const {
8313
8390
  iconDom
8314
8391
  } = useIconDom(props, ctx);
8315
- const ns2 = useNamespace$1("icon");
8392
+ const ns2 = useNamespace("icon");
8316
8393
  const wrapClassed = computed(() => ({
8317
8394
  [ns2.e("container")]: true,
8318
8395
  [ns2.m("disabled")]: disabled.value,
@@ -8334,6 +8411,13 @@ var Icon = defineComponent({
8334
8411
  };
8335
8412
  }
8336
8413
  });
8414
+ var AutoFocus = {
8415
+ mounted: (el, binding) => {
8416
+ if (binding.value) {
8417
+ el.focus();
8418
+ }
8419
+ }
8420
+ };
8337
8421
  const inputProps = {
8338
8422
  modelValue: {
8339
8423
  type: String,
@@ -8373,6 +8457,14 @@ const inputProps = {
8373
8457
  placeholder: {
8374
8458
  type: String,
8375
8459
  default: ""
8460
+ },
8461
+ title: {
8462
+ type: String,
8463
+ default: ""
8464
+ },
8465
+ autofocus: {
8466
+ type: Boolean,
8467
+ default: false
8376
8468
  }
8377
8469
  };
8378
8470
  function useInputRender(props, ctx) {
@@ -8386,6 +8478,7 @@ function useInputRender(props, ctx) {
8386
8478
  const slots = ctx.slots;
8387
8479
  const inputDisabled = computed(() => disabled.value || (formContext == null ? void 0 : formContext.disabled));
8388
8480
  const inputSize = computed(() => (size == null ? void 0 : size.value) || (formContext == null ? void 0 : formContext.size) || "");
8481
+ const styleType = inject(STYLE_TOKEN, void 0);
8389
8482
  const _a = ctx.attrs, { style, class: customClass } = _a, otherAttrs = __objRest(_a, ["style", "class"]);
8390
8483
  const customStyle = { style };
8391
8484
  const wrapClasses = computed(() => ({
@@ -8401,7 +8494,8 @@ function useInputRender(props, ctx) {
8401
8494
  [ns2.m(inputSize.value)]: Boolean(inputSize.value),
8402
8495
  [slotNs.b()]: slots.prepend || slots.append,
8403
8496
  [ns2.m("append")]: slots.append,
8404
- [ns2.m("prepend")]: slots.prepend
8497
+ [ns2.m("prepend")]: slots.prepend,
8498
+ [ns2.m("gray-style")]: styleType === "gray"
8405
8499
  },
8406
8500
  customClass
8407
8501
  ]);
@@ -8409,6 +8503,7 @@ function useInputRender(props, ctx) {
8409
8503
  }
8410
8504
  function useInputEvent(isFocus, props, ctx, focus) {
8411
8505
  const formItemContext = inject(FORM_ITEM_TOKEN, void 0);
8506
+ const isComposition = ref(false);
8412
8507
  const onFocus = (e) => {
8413
8508
  isFocus.value = true;
8414
8509
  ctx.emit("focus", e);
@@ -8422,6 +8517,9 @@ function useInputEvent(isFocus, props, ctx, focus) {
8422
8517
  };
8423
8518
  const onInput = (e) => {
8424
8519
  ctx.emit("input", e.target.value);
8520
+ if (isComposition.value) {
8521
+ return;
8522
+ }
8425
8523
  ctx.emit("update:modelValue", e.target.value);
8426
8524
  };
8427
8525
  const onChange = (e) => {
@@ -8435,7 +8533,22 @@ function useInputEvent(isFocus, props, ctx, focus) {
8435
8533
  ctx.emit("clear");
8436
8534
  focus();
8437
8535
  };
8438
- return { onFocus, onBlur, onInput, onChange, onKeydown, onClear };
8536
+ const onCompositionStart = () => {
8537
+ isComposition.value = true;
8538
+ };
8539
+ const onCompositionUpdate = (e) => {
8540
+ var _a;
8541
+ const text = (_a = e.target) == null ? void 0 : _a.value;
8542
+ const lastCharacter = text[text.length - 1] || "";
8543
+ isComposition.value = !/([(\uAC00-\uD7AF)|(\u3130-\u318F)])+/gi.test(lastCharacter);
8544
+ };
8545
+ const onCompositionEnd = (e) => {
8546
+ if (isComposition.value) {
8547
+ isComposition.value = false;
8548
+ onInput(e);
8549
+ }
8550
+ };
8551
+ return { onFocus, onBlur, onInput, onChange, onKeydown, onClear, onCompositionStart, onCompositionUpdate, onCompositionEnd };
8439
8552
  }
8440
8553
  function useInputFunction(input2) {
8441
8554
  const refInput = computed(() => input2.value);
@@ -8625,6 +8738,9 @@ function createI18nTranslate(name, app, newPrefix) {
8625
8738
  }
8626
8739
  var Input = defineComponent({
8627
8740
  name: "DInput",
8741
+ directives: {
8742
+ dAutoFocus: AutoFocus
8743
+ },
8628
8744
  inheritAttrs: false,
8629
8745
  props: inputProps,
8630
8746
  emits: ["update:modelValue", "focus", "blur", "input", "change", "keydown", "clear"],
@@ -8633,7 +8749,10 @@ var Input = defineComponent({
8633
8749
  const t = createI18nTranslate("DInput", app);
8634
8750
  const formItemContext = inject(FORM_ITEM_TOKEN, void 0);
8635
8751
  const {
8636
- modelValue
8752
+ modelValue,
8753
+ placeholder,
8754
+ title,
8755
+ autofocus
8637
8756
  } = toRefs(props);
8638
8757
  const ns2 = useNamespace$1("input");
8639
8758
  const slotNs = useNamespace$1("input-slot");
@@ -8658,7 +8777,10 @@ var Input = defineComponent({
8658
8777
  onInput,
8659
8778
  onChange,
8660
8779
  onKeydown,
8661
- onClear
8780
+ onClear,
8781
+ onCompositionStart,
8782
+ onCompositionUpdate,
8783
+ onCompositionEnd
8662
8784
  } = useInputEvent(isFocus, props, ctx, focus);
8663
8785
  const passwordVisible = ref(false);
8664
8786
  const clickPasswordIcon = () => {
@@ -8683,7 +8805,7 @@ var Input = defineComponent({
8683
8805
  blur
8684
8806
  });
8685
8807
  return () => {
8686
- var _a, _b, _c, _d, _e, _f, _g, _h;
8808
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
8687
8809
  return createVNode("div", mergeProps({
8688
8810
  "class": inputClasses.value
8689
8811
  }, customStyle), [ctx.slots.prepend && createVNode("div", {
@@ -8695,25 +8817,29 @@ var Input = defineComponent({
8695
8817
  }, [ctx.slots.prefix && ((_d = (_c = ctx.slots).prefix) == null ? void 0 : _d.call(_c)), props.prefix && createVNode(Icon, {
8696
8818
  "size": inputSize.value,
8697
8819
  "name": props.prefix
8698
- }, null)]), createVNode("input", mergeProps({
8820
+ }, null)]), withDirectives(createVNode("input", mergeProps({
8699
8821
  "ref": input2,
8700
8822
  "value": modelValue.value,
8701
8823
  "disabled": inputDisabled.value,
8702
8824
  "class": ns2.e("inner"),
8703
- "placeholder": props.placeholder || t("placeholder")
8825
+ "placeholder": (_e = placeholder.value) != null ? _e : t("placeholder")
8704
8826
  }, otherAttrs, {
8827
+ "title": title.value,
8705
8828
  "type": props.showPassword ? passwordVisible.value ? "text" : "password" : "text",
8706
8829
  "onInput": onInput,
8707
8830
  "onFocus": onFocus,
8708
8831
  "onBlur": onBlur,
8709
8832
  "onChange": onChange,
8710
- "onKeydown": onKeydown
8711
- }), null), suffixVisible && createVNode("span", {
8833
+ "onKeydown": onKeydown,
8834
+ "onCompositionstart": onCompositionStart,
8835
+ "onCompositionupdate": onCompositionUpdate,
8836
+ "onCompositionend": onCompositionEnd
8837
+ }), null), [[resolveDirective("dAutoFocus"), autofocus.value]]), suffixVisible && createVNode("span", {
8712
8838
  "class": slotNs.e("suffix")
8713
8839
  }, [props.suffix && createVNode(Icon, {
8714
8840
  "size": inputSize.value,
8715
8841
  "name": props.suffix
8716
- }, null), ctx.slots.suffix && ((_f = (_e = ctx.slots).suffix) == null ? void 0 : _f.call(_e)), showPwdVisible.value && createVNode(Icon, {
8842
+ }, null), ctx.slots.suffix && ((_g = (_f = ctx.slots).suffix) == null ? void 0 : _g.call(_f)), showPwdVisible.value && createVNode(Icon, {
8717
8843
  "size": inputSize.value,
8718
8844
  "class": ns2.em("password", "icon"),
8719
8845
  "name": passwordVisible.value ? "preview" : "preview-forbidden",
@@ -8721,11 +8847,12 @@ var Input = defineComponent({
8721
8847
  }, null), showClearable.value && createVNode(Icon, {
8722
8848
  "size": inputSize.value,
8723
8849
  "class": ns2.em("clear", "icon"),
8724
- "name": "close",
8850
+ "name": "error-o",
8851
+ "color": "#adb0b8",
8725
8852
  "onClick": onClear
8726
8853
  }, null)])]), ctx.slots.append && createVNode("div", {
8727
8854
  "class": slotNs.e("append")
8728
- }, [(_h = (_g = ctx.slots).append) == null ? void 0 : _h.call(_g)])]);
8855
+ }, [(_i = (_h = ctx.slots).append) == null ? void 0 : _i.call(_h)])]);
8729
8856
  };
8730
8857
  }
8731
8858
  });
@@ -10058,7 +10185,7 @@ var CalendarPanel = defineComponent({
10058
10185
  setup(props, ctx) {
10059
10186
  const app = getCurrentInstance();
10060
10187
  const t = createI18nTranslate("DDatePickerPro", app);
10061
- const ns2 = useNamespace$1("date-picker-pro");
10188
+ const ns2 = useNamespace("date-picker-pro");
10062
10189
  const {
10063
10190
  yearScrollRef,
10064
10191
  monthScrollRef,
@@ -10502,35 +10629,12 @@ function useTimeScroll() {
10502
10629
  getScrollWidth
10503
10630
  };
10504
10631
  }
10505
- function createBem(namespace, element, modifier) {
10506
- let cls = namespace;
10507
- if (element) {
10508
- cls += `__${element}`;
10509
- }
10510
- if (modifier) {
10511
- cls += `--${modifier}`;
10512
- }
10513
- return cls;
10514
- }
10515
- function useNamespace(block, needDot = false) {
10516
- const namespace = needDot ? `.devui-${block}` : `devui-${block}`;
10517
- const b = () => createBem(namespace);
10518
- const e = (element) => element ? createBem(namespace, element) : "";
10519
- const m = (modifier) => modifier ? createBem(namespace, "", modifier) : "";
10520
- const em = (element, modifier) => element && modifier ? createBem(namespace, element, modifier) : "";
10521
- return {
10522
- b,
10523
- e,
10524
- m,
10525
- em
10526
- };
10527
- }
10528
10632
  var index$2 = "";
10529
10633
  var TimeScroll = defineComponent({
10530
10634
  name: "DTimeScroll",
10531
10635
  props: timePickerProps,
10532
10636
  setup(props, ctx) {
10533
- const ns2 = useNamespace("scroll-box");
10637
+ const ns2 = useNamespace$1("scroll-box");
10534
10638
  const {
10535
10639
  scrollBoxDom,
10536
10640
  scrollThumbDom,
@@ -10594,7 +10698,7 @@ var DTimeList = defineComponent({
10594
10698
  props: popupLineProps,
10595
10699
  emits: ["change"],
10596
10700
  setup(props, ctx) {
10597
- const ns2 = useNamespace("popup-line");
10701
+ const ns2 = useNamespace$1("popup-line");
10598
10702
  const timeListDom = ref();
10599
10703
  const {
10600
10704
  getNewTime,
@@ -10707,7 +10811,7 @@ var TimerPickerPanel = defineComponent({
10707
10811
  setup(props, ctx) {
10708
10812
  const app = getCurrentInstance();
10709
10813
  const t = createI18nTranslate("DDatePickerPro", app);
10710
- const ns2 = useNamespace$1("date-picker-pro");
10814
+ const ns2 = useNamespace("date-picker-pro");
10711
10815
  const {
10712
10816
  timeListDom,
10713
10817
  hourList,
@@ -10739,7 +10843,7 @@ var iconGroup = "";
10739
10843
  defineComponent({
10740
10844
  name: "DIconGroup",
10741
10845
  setup(_, ctx) {
10742
- const ns2 = useNamespace$1("icon-group");
10846
+ const ns2 = useNamespace("icon-group");
10743
10847
  return () => {
10744
10848
  var _a, _b;
10745
10849
  return createVNode("div", {
@@ -10816,7 +10920,7 @@ var Loading = defineComponent({
10816
10920
  message,
10817
10921
  $slots
10818
10922
  } = this;
10819
- const ns2 = useNamespace$1("loading");
10923
+ const ns2 = useNamespace("loading");
10820
10924
  return isShow && createVNode("div", {
10821
10925
  "class": [ns2.b(), isFull ? ns2.m("full") : ""]
10822
10926
  }, [((_a = $slots.default) == null ? void 0 : _a.call($slots)) || createVNode("div", {
@@ -10989,7 +11093,7 @@ const buttonGroupProps = {
10989
11093
  };
10990
11094
  const buttonGroupInjectionKey = Symbol("d-button-group");
10991
11095
  function useButton(props, ctx) {
10992
- const ns2 = useNamespace$1("button");
11096
+ const ns2 = useNamespace("button");
10993
11097
  const hasContent = computed(() => ctx.slots.default);
10994
11098
  const colorMap = {
10995
11099
  solid: "primary",
@@ -11078,7 +11182,7 @@ defineComponent({
11078
11182
  setup(props, {
11079
11183
  slots
11080
11184
  }) {
11081
- const ns2 = useNamespace$1("button-group");
11185
+ const ns2 = useNamespace("button-group");
11082
11186
  provide(buttonGroupInjectionKey, {
11083
11187
  size: toRef(props, "size")
11084
11188
  });
@@ -11090,7 +11194,7 @@ defineComponent({
11090
11194
  }
11091
11195
  });
11092
11196
  function useYearCalendarPanel(props, ctx) {
11093
- const ns2 = useNamespace$1("date-picker-pro");
11197
+ const ns2 = useNamespace("date-picker-pro");
11094
11198
  const yarListScrollRef = ref();
11095
11199
  const yearList = ref([]);
11096
11200
  const { today, calendarRange, selectDate, rangeSelectDate, minDate, maxDate, fixRangeDate, getToDate, emitSelectedDate } = useCalendarSelected(props, ctx);
@@ -11217,7 +11321,7 @@ var YearCalendarPanel = defineComponent({
11217
11321
  props: datePickerProPanelProps,
11218
11322
  emits: ["selectedDate", "changeRangeFocusType"],
11219
11323
  setup(props, ctx) {
11220
- const ns2 = useNamespace$1("date-picker-pro");
11324
+ const ns2 = useNamespace("date-picker-pro");
11221
11325
  const {
11222
11326
  yarListScrollRef,
11223
11327
  yearList,
@@ -11253,7 +11357,7 @@ var YearCalendarPanel = defineComponent({
11253
11357
  }
11254
11358
  });
11255
11359
  function useMonthCalendarPanel(props, ctx) {
11256
- const ns2 = useNamespace$1("date-picker-pro");
11360
+ const ns2 = useNamespace("date-picker-pro");
11257
11361
  const yearScrollRef = ref();
11258
11362
  const monthScrollRef = ref();
11259
11363
  const yearList = ref([]);
@@ -11442,7 +11546,7 @@ var MonthCalendarPanel = defineComponent({
11442
11546
  setup(props, ctx) {
11443
11547
  const app = getCurrentInstance();
11444
11548
  const t = createI18nTranslate("DDatePickerPro", app);
11445
- const ns2 = useNamespace$1("date-picker-pro");
11549
+ const ns2 = useNamespace("date-picker-pro");
11446
11550
  const {
11447
11551
  yearScrollRef,
11448
11552
  monthScrollRef,
@@ -11656,7 +11760,7 @@ var DatePickerProPanel = defineComponent({
11656
11760
  setup(props, ctx) {
11657
11761
  const app = getCurrentInstance();
11658
11762
  const t = createI18nTranslate("DDatePickerPro", app);
11659
- const ns2 = useNamespace$1("date-picker-pro");
11763
+ const ns2 = useNamespace("date-picker-pro");
11660
11764
  const {
11661
11765
  calendarPanelRef,
11662
11766
  timeData,
@@ -11766,7 +11870,7 @@ var DatePickerPro = defineComponent({
11766
11870
  setup(props, ctx) {
11767
11871
  const app = getCurrentInstance();
11768
11872
  const t = createI18nTranslate("DDatePickerPro", app);
11769
- const ns2 = useNamespace$1("date-picker-pro");
11873
+ const ns2 = useNamespace("date-picker-pro");
11770
11874
  const {
11771
11875
  originRef,
11772
11876
  inputRef,
@@ -11992,7 +12096,7 @@ var DRangeDatePickerPro = defineComponent({
11992
12096
  setup(props, ctx) {
11993
12097
  const app = getCurrentInstance();
11994
12098
  const t = createI18nTranslate("DDatePickerPro", app);
11995
- const ns2 = useNamespace$1("range-date-picker-pro");
12099
+ const ns2 = useNamespace("range-date-picker-pro");
11996
12100
  const {
11997
12101
  originRef,
11998
12102
  startInputRef,