ep-craft 0.1.24 → 0.1.26

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 (216) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +8 -0
  2. package/dist/_virtual/advancedFormat.js +4 -0
  3. package/dist/_virtual/customParseFormat.js +4 -0
  4. package/dist/_virtual/dayOfYear.js +4 -0
  5. package/dist/_virtual/isSameOrAfter.js +4 -0
  6. package/dist/_virtual/isSameOrBefore.js +4 -0
  7. package/dist/_virtual/localeData.js +4 -0
  8. package/dist/_virtual/weekOfYear.js +4 -0
  9. package/dist/_virtual/weekYear.js +4 -0
  10. package/dist/components/button/index.js +2 -1
  11. package/dist/components/date-picker/index.d.ts +4 -2
  12. package/dist/components/date-picker/index.js +9 -4
  13. package/dist/components/date-picker/src/date-picker.d.ts +435 -0
  14. package/dist/components/date-picker/src/date-picker.js +68 -0
  15. package/dist/components/date-picker/src/instance.d.ts +8 -0
  16. package/dist/components/date-picker/src/props.d.ts +205 -0
  17. package/dist/components/date-picker/src/props.js +21 -0
  18. package/dist/components/date-picker-panel/index.d.ts +8 -0
  19. package/dist/components/date-picker-panel/index.js +11 -0
  20. package/dist/components/date-picker-panel/src/composables/use-basic-date-table.d.ts +187 -0
  21. package/dist/components/date-picker-panel/src/composables/use-basic-date-table.js +195 -0
  22. package/dist/components/date-picker-panel/src/composables/use-month-range-header.d.ts +16 -0
  23. package/dist/components/date-picker-panel/src/composables/use-month-range-header.js +41 -0
  24. package/dist/components/date-picker-panel/src/composables/use-panel-date-range.d.ts +29 -0
  25. package/dist/components/date-picker-panel/src/composables/use-panel-date-range.js +86 -0
  26. package/dist/components/date-picker-panel/src/composables/use-range-picker.d.ts +209 -0
  27. package/dist/components/date-picker-panel/src/composables/use-range-picker.js +102 -0
  28. package/dist/components/date-picker-panel/src/composables/use-shortcut.d.ts +9 -0
  29. package/dist/components/date-picker-panel/src/composables/use-shortcut.js +27 -0
  30. package/dist/components/date-picker-panel/src/composables/use-year-range-header.d.ts +16 -0
  31. package/dist/components/date-picker-panel/src/composables/use-year-range-header.js +35 -0
  32. package/dist/components/date-picker-panel/src/constants.d.ts +9 -0
  33. package/dist/components/date-picker-panel/src/constants.js +5 -0
  34. package/dist/components/date-picker-panel/src/date-picker-com/basic-cell-render.d.ts +18 -0
  35. package/dist/components/date-picker-panel/src/date-picker-com/basic-cell-render.js +39 -0
  36. package/dist/components/date-picker-panel/src/date-picker-com/basic-date-table.vue.d.ts +100 -0
  37. package/dist/components/date-picker-panel/src/date-picker-com/basic-date-table.vue.js +92 -0
  38. package/dist/components/date-picker-panel/src/date-picker-com/basic-date-table2.vue.js +4 -0
  39. package/dist/components/date-picker-panel/src/date-picker-com/basic-month-table.vue.d.ts +106 -0
  40. package/dist/components/date-picker-panel/src/date-picker-com/basic-month-table.vue.js +164 -0
  41. package/dist/components/date-picker-panel/src/date-picker-com/basic-month-table2.vue.js +4 -0
  42. package/dist/components/date-picker-panel/src/date-picker-com/basic-year-table.vue.d.ts +106 -0
  43. package/dist/components/date-picker-panel/src/date-picker-com/basic-year-table.vue.js +153 -0
  44. package/dist/components/date-picker-panel/src/date-picker-com/basic-year-table2.vue.js +4 -0
  45. package/dist/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue.d.ts +89 -0
  46. package/dist/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue.js +550 -0
  47. package/dist/components/date-picker-panel/src/date-picker-com/panel-date-pick2.vue.js +4 -0
  48. package/dist/components/date-picker-panel/src/date-picker-com/panel-date-range.vue.d.ts +104 -0
  49. package/dist/components/date-picker-panel/src/date-picker-com/panel-date-range.vue.js +698 -0
  50. package/dist/components/date-picker-panel/src/date-picker-com/panel-date-range2.vue.js +4 -0
  51. package/dist/components/date-picker-panel/src/date-picker-com/panel-month-range.vue.d.ts +59 -0
  52. package/dist/components/date-picker-panel/src/date-picker-com/panel-month-range.vue.js +255 -0
  53. package/dist/components/date-picker-panel/src/date-picker-com/panel-month-range2.vue.js +4 -0
  54. package/dist/components/date-picker-panel/src/date-picker-com/panel-year-range.vue.d.ts +59 -0
  55. package/dist/components/date-picker-panel/src/date-picker-com/panel-year-range.vue.js +268 -0
  56. package/dist/components/date-picker-panel/src/date-picker-com/panel-year-range2.vue.js +4 -0
  57. package/dist/components/date-picker-panel/src/date-picker-panel.d.ts +143 -0
  58. package/dist/components/date-picker-panel/src/date-picker-panel.js +90 -0
  59. package/dist/components/date-picker-panel/src/instance.d.ts +2 -0
  60. package/dist/components/date-picker-panel/src/panel-utils.d.ts +414 -0
  61. package/dist/components/date-picker-panel/src/panel-utils.js +20 -0
  62. package/dist/components/date-picker-panel/src/props/basic-cell.d.ts +12 -0
  63. package/dist/components/date-picker-panel/src/props/basic-cell.js +14 -0
  64. package/dist/components/date-picker-panel/src/props/basic-date-table.d.ts +66 -0
  65. package/dist/components/date-picker-panel/src/props/basic-date-table.js +16 -0
  66. package/dist/components/date-picker-panel/src/props/basic-month-table.d.ts +47 -0
  67. package/dist/components/date-picker-panel/src/props/basic-month-table.js +14 -0
  68. package/dist/components/date-picker-panel/src/props/basic-year-table.d.ts +47 -0
  69. package/dist/components/date-picker-panel/src/props/basic-year-table.js +14 -0
  70. package/dist/components/date-picker-panel/src/props/date-picker-panel.d.ts +66 -0
  71. package/dist/components/date-picker-panel/src/props/date-picker-panel.js +129 -0
  72. package/dist/components/date-picker-panel/src/props/panel-date-pick.d.ts +29 -0
  73. package/dist/components/date-picker-panel/src/props/panel-date-pick.js +24 -0
  74. package/dist/components/date-picker-panel/src/props/panel-date-range.d.ts +29 -0
  75. package/dist/components/date-picker-panel/src/props/panel-date-range.js +14 -0
  76. package/dist/components/date-picker-panel/src/props/panel-month-range.d.ts +19 -0
  77. package/dist/components/date-picker-panel/src/props/panel-month-range.js +18 -0
  78. package/dist/components/date-picker-panel/src/props/panel-year-range.d.ts +19 -0
  79. package/dist/components/date-picker-panel/src/props/panel-year-range.js +18 -0
  80. package/dist/components/date-picker-panel/src/props/shared.d.ts +97 -0
  81. package/dist/components/date-picker-panel/src/props/shared.js +96 -0
  82. package/dist/components/date-picker-panel/src/types.d.ts +22 -0
  83. package/dist/components/date-picker-panel/src/utils.d.ts +38 -0
  84. package/dist/components/date-picker-panel/src/utils.js +84 -0
  85. package/dist/components/icon/index.js +6 -5
  86. package/dist/components/index.d.ts +1 -0
  87. package/dist/components/index.js +142 -140
  88. package/dist/components/input/EpInput.vue.d.ts +89 -0
  89. package/dist/components/input/EpInput.vue.js +553 -0
  90. package/dist/components/input/EpInput2.vue.js +4 -0
  91. package/dist/components/input/index.d.ts +5 -2
  92. package/dist/components/input/index.js +8 -4
  93. package/dist/components/input/input.d.ts +287 -0
  94. package/dist/components/input/input.js +249 -0
  95. package/dist/components/input/instance.d.ts +2 -0
  96. package/dist/components/input/utils.d.ts +7 -0
  97. package/dist/components/input/utils.js +74 -0
  98. package/dist/components/option/index.d.ts +3 -2
  99. package/dist/components/option/index.js +7 -4
  100. package/dist/components/option-group/index.d.ts +2 -2
  101. package/dist/components/option-group/index.js +3 -3
  102. package/dist/components/scrollbar/index.d.ts +2 -0
  103. package/dist/components/scrollbar/index.js +9 -3
  104. package/dist/components/scrollbar/src/scrollbar.d.ts +25 -0
  105. package/dist/components/scrollbar/src/scrollbar.js +16 -0
  106. package/dist/components/select/index.d.ts +4 -2
  107. package/dist/components/select/index.js +7 -4
  108. package/dist/components/select/select.d.ts +132 -0
  109. package/dist/components/select/select.js +316 -0
  110. package/dist/components/select/select.vue.d.ts +979 -0
  111. package/dist/components/select/select.vue.js +401 -0
  112. package/dist/components/select/select2.vue.js +155 -0
  113. package/dist/components/select/src/option-group.vue.d.ts +43 -0
  114. package/dist/components/select/src/option-group.vue.js +26 -0
  115. package/dist/components/select/src/option-group2.vue.js +65 -0
  116. package/dist/components/select/src/option.d.ts +17 -0
  117. package/dist/components/select/src/option.js +30 -0
  118. package/dist/components/select/src/option.vue.d.ts +73 -0
  119. package/dist/components/select/src/option.vue.js +28 -0
  120. package/dist/components/select/src/option2.vue.js +81 -0
  121. package/dist/components/select/src/options.d.ts +5 -0
  122. package/dist/components/select/src/options.js +30 -0
  123. package/dist/components/select/src/select-dropdown.vue.d.ts +25 -0
  124. package/dist/components/select/src/select-dropdown.vue.js +27 -0
  125. package/dist/components/select/src/select-dropdown2.vue.js +39 -0
  126. package/dist/components/select/src/token.d.ts +4 -0
  127. package/dist/components/select/src/token.js +5 -0
  128. package/dist/components/select/src/type.d.ts +67 -0
  129. package/dist/components/select/src/useOption.d.ts +10 -0
  130. package/dist/components/select/src/useOption.js +64 -0
  131. package/dist/components/select/src/useSelect.d.ts +159 -0
  132. package/dist/components/select/src/useSelect.js +483 -0
  133. package/dist/components/select-v2/src/select.types.d.ts +25 -0
  134. package/dist/components/select-v2/src/useProps.d.ts +32 -0
  135. package/dist/components/select-v2/src/useProps.js +29 -0
  136. package/dist/components/tabs/tabs.d.ts +1 -1
  137. package/dist/components/tag/index.d.ts +1 -0
  138. package/dist/components/tag/index.js +4 -3
  139. package/dist/components/time-picker/index.d.ts +15 -2
  140. package/dist/components/time-picker/index.js +32 -4
  141. package/dist/components/time-picker/src/common/picker-range-trigger.vue.d.ts +92 -0
  142. package/dist/components/time-picker/src/common/picker-range-trigger.vue.js +141 -0
  143. package/dist/components/time-picker/src/common/picker-range-trigger2.vue.js +4 -0
  144. package/dist/components/time-picker/src/common/picker.vue.d.ts +510 -0
  145. package/dist/components/time-picker/src/common/picker.vue.js +463 -0
  146. package/dist/components/time-picker/src/common/picker2.vue.js +4 -0
  147. package/dist/components/time-picker/src/common/props.d.ts +280 -0
  148. package/dist/components/time-picker/src/common/props.js +282 -0
  149. package/dist/components/time-picker/src/composables/use-common-picker.d.ts +42 -0
  150. package/dist/components/time-picker/src/composables/use-common-picker.js +62 -0
  151. package/dist/components/time-picker/src/composables/use-time-panel.d.ts +13 -0
  152. package/dist/components/time-picker/src/composables/use-time-panel.js +60 -0
  153. package/dist/components/time-picker/src/composables/use-time-picker.d.ts +300 -0
  154. package/dist/components/time-picker/src/composables/use-time-picker.js +45 -0
  155. package/dist/components/time-picker/src/constants.d.ts +23 -0
  156. package/dist/components/time-picker/src/constants.js +23 -0
  157. package/dist/components/time-picker/src/props/basic-time-spinner.d.ts +39 -0
  158. package/dist/components/time-picker/src/props/basic-time-spinner.js +31 -0
  159. package/dist/components/time-picker/src/props/panel-time-picker.d.ts +16 -0
  160. package/dist/components/time-picker/src/props/panel-time-picker.js +17 -0
  161. package/dist/components/time-picker/src/props/panel-time-range.d.ts +15 -0
  162. package/dist/components/time-picker/src/props/panel-time-range.js +16 -0
  163. package/dist/components/time-picker/src/props/shared.d.ts +31 -0
  164. package/dist/components/time-picker/src/props/shared.js +40 -0
  165. package/dist/components/time-picker/src/time-picker-com/basic-time-spinner.vue.d.ts +82 -0
  166. package/dist/components/time-picker/src/time-picker-com/basic-time-spinner.vue.js +253 -0
  167. package/dist/components/time-picker/src/time-picker-com/basic-time-spinner2.vue.js +4 -0
  168. package/dist/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +37 -0
  169. package/dist/components/time-picker/src/time-picker-com/panel-time-pick.vue.js +127 -0
  170. package/dist/components/time-picker/src/time-picker-com/panel-time-pick2.vue.js +4 -0
  171. package/dist/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +35 -0
  172. package/dist/components/time-picker/src/time-picker-com/panel-time-range.vue.js +206 -0
  173. package/dist/components/time-picker/src/time-picker-com/panel-time-range2.vue.js +4 -0
  174. package/dist/components/time-picker/src/time-picker.d.ts +440 -0
  175. package/dist/components/time-picker/src/time-picker.js +68 -0
  176. package/dist/components/time-picker/src/utils.d.ts +14 -0
  177. package/dist/components/time-picker/src/utils.js +40 -0
  178. package/dist/components/tooltip/index.js +8 -7
  179. package/dist/constants/date.js +17 -0
  180. package/dist/constants/event.js +3 -2
  181. package/dist/constants/form.js +5 -0
  182. package/dist/directives/repeat-click/index.js +33 -0
  183. package/dist/ep-craft.js +150 -148
  184. package/dist/hooks/index.d.ts +6 -0
  185. package/dist/hooks/use-attrs/index.d.ts +7 -0
  186. package/dist/hooks/use-attrs/index.js +25 -0
  187. package/dist/hooks/use-calc-input-width/index.d.ts +7 -0
  188. package/dist/hooks/use-calc-input-width/index.js +19 -0
  189. package/dist/hooks/use-composition/index.d.ts +12 -0
  190. package/dist/hooks/use-composition/index.js +25 -0
  191. package/dist/hooks/use-cursor/index.d.ts +2 -0
  192. package/dist/hooks/use-cursor/index.js +36 -0
  193. package/dist/hooks/use-empty-values/index.js +29 -8
  194. package/dist/hooks/use-float-label/index.d.ts +29 -0
  195. package/dist/hooks/use-float-label/index.js +19 -0
  196. package/dist/hooks/use-focus-controller/index.d.ts +26 -0
  197. package/dist/hooks/use-focus-controller/index.js +41 -0
  198. package/dist/index.css +1 -1
  199. package/dist/node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/advancedFormat.js +54 -0
  200. package/dist/node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/customParseFormat.js +127 -0
  201. package/dist/node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/dayOfYear.js +19 -0
  202. package/dist/node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/isSameOrAfter.js +18 -0
  203. package/dist/node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/isSameOrBefore.js +18 -0
  204. package/dist/node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/localeData.js +82 -0
  205. package/dist/node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/weekOfYear.js +29 -0
  206. package/dist/node_modules/.pnpm/dayjs@1.11.21/node_modules/dayjs/plugin/weekYear.js +19 -0
  207. package/dist/utils/arrays.js +5 -4
  208. package/dist/utils/dom/scroll.js +49 -35
  209. package/dist/utils/strings.js +7 -6
  210. package/dist/utils/types.js +19 -18
  211. package/dist/utils/vue/icon.js +15 -10
  212. package/dist/vendored-components.d.ts +1 -1
  213. package/dist/vendored-components.js +13 -5
  214. package/package.json +2 -1
  215. package/theme-chalk/src/float-label.scss +207 -0
  216. package/theme-chalk/src/index.scss +1 -0
@@ -0,0 +1,207 @@
1
+ @use 'sass:map';
2
+
3
+ @use 'mixins/mixins' as *;
4
+ @use 'mixins/var' as *;
5
+ @use 'common/var' as *;
6
+
7
+ /* ----------------------------------------------------------------------------
8
+ * 浮动标签(float-label)视觉
9
+ * 说明:Material「浮动标签」惯例——input(含 textarea)/ select 在「聚焦或有值」时,
10
+ * 占位文本上浮到控件上边框、缩小字号并着色;失焦且无值时回退原位。
11
+ * Figma 节点 4760-8608 的精确色值 / 字号 / 位移 / 过渡取得成功后,在此精修下列参数。
12
+ * -------------------------------------------------------------------------- */
13
+
14
+ $float-label-transition-duration: 0.2s !default;
15
+ $float-label-transition-easing: cubic-bezier(0.4, 0, 0.2, 1) !default;
16
+ $float-label-scale: 0.75 !default;
17
+
18
+ .#{$namespace}-float-label {
19
+ position: absolute;
20
+ left: map.get($input-padding-horizontal, 'default') - $border-width;
21
+ top: 50%;
22
+ z-index: 1;
23
+ max-width: calc(
24
+ 100% - #{2 *
25
+ (map.get($input-padding-horizontal, 'default') - $border-width)}
26
+ );
27
+ overflow: hidden;
28
+ white-space: nowrap;
29
+ text-overflow: ellipsis;
30
+ line-height: 1;
31
+ font-size: map.get($input-font-size, 'default');
32
+ color: getCssVar('text-color', 'placeholder');
33
+ pointer-events: none;
34
+ user-select: none;
35
+ transform-origin: left center;
36
+ transform: translateY(-50%);
37
+ transition:
38
+ top $float-label-transition-duration $float-label-transition-easing,
39
+ transform $float-label-transition-duration $float-label-transition-easing,
40
+ color $float-label-transition-duration $float-label-transition-easing,
41
+ opacity $float-label-transition-duration $float-label-transition-easing;
42
+
43
+ &.is-floating {
44
+ top: 0;
45
+ z-index: 2;
46
+ transform: translateY(-50%) scale($float-label-scale);
47
+ color: #868a9c;
48
+ // 以与控件一致的底色遮罩边框线,形成标准「缺口(notch)」浮标
49
+ padding: 0 4px;
50
+ margin-left: -4px;
51
+ background-color: getCssVar('fill-color', 'blank');
52
+ }
53
+ }
54
+
55
+ // input(非 textarea):label 位于 wrapper 内,需将 wrapper 设为定位上下文
56
+ .#{$namespace}-input.is-float-label {
57
+ .#{$namespace}-input__wrapper {
58
+ position: relative;
59
+ }
60
+ }
61
+
62
+ // textarea:label 是容器直接子节点,休息态对齐首行(而非垂直居中)
63
+ .#{$namespace}-textarea.is-float-label {
64
+ > .#{$namespace}-float-label {
65
+ top: 9px; // 顶部 padding 5px + 首行半高,随 Figma 精修
66
+
67
+ &.is-floating {
68
+ top: 0;
69
+ }
70
+ }
71
+ }
72
+
73
+ // select:label 沿用 .el-float-label,定位上下文为 .el-select__wrapper
74
+ .#{$namespace}-select__wrapper.is-float-label {
75
+ > .#{$namespace}-float-label {
76
+ left: 12px; // $select-wrapper-padding(default) 水平值
77
+ max-width: calc(100% - 24px);
78
+ }
79
+ }
80
+
81
+ // 尺寸适配:input / textarea 的水平对齐与字号
82
+ .#{$namespace}-input--large {
83
+ .#{$namespace}-float-label {
84
+ left: map.get($input-padding-horizontal, 'large') - $border-width;
85
+ max-width: calc(
86
+ 100% - #{2 * (map.get($input-padding-horizontal, 'large') - $border-width)}
87
+ );
88
+ }
89
+ }
90
+
91
+ .#{$namespace}-input--small {
92
+ .#{$namespace}-float-label {
93
+ left: map.get($input-padding-horizontal, 'small') - $border-width;
94
+ max-width: calc(
95
+ 100% - #{2 * (map.get($input-padding-horizontal, 'small') - $border-width)}
96
+ );
97
+ font-size: map.get($input-font-size, 'small');
98
+ }
99
+ }
100
+
101
+ // 尺寸适配:select 的水平对齐
102
+ .#{$namespace}-select--large {
103
+ .#{$namespace}-float-label {
104
+ left: 16px; // $select-wrapper-padding(large) 水平值
105
+ max-width: calc(100% - 32px);
106
+ }
107
+ }
108
+
109
+ .#{$namespace}-select--small {
110
+ .#{$namespace}-float-label {
111
+ left: 8px; // $select-wrapper-padding(small) 水平值
112
+ max-width: calc(100% - 16px);
113
+ }
114
+ }
115
+
116
+ // date-picker 单值形态:label 是 .el-input 根(.el-date-editor)的直接子节点(经 EpInput 根末尾
117
+ // <slot/> 注入),与 .el-input__wrapper 并列;.el-input 与 .el-date-editor 本就 position:relative,
118
+ // 此处显式声明作文档化与防回归。
119
+ //
120
+ // 水平对齐:date-picker 单值形态恒有 prefix 日历/时钟图标,输入文本起点被右移,label 必须
121
+ // 同步右移,否则会压在图标上。文本起点 = wrapper 水平内边距 + 图标宽 + 图标右间距:
122
+ // - wrapper 水平内边距:$input-padding-horizontal - $border-width(12-1 / 16-1 / 8-1)
123
+ // - 图标宽:1em(.el-icon { width: 1em; font-size: inherit }),随尺寸档位为 14px / 12px
124
+ // - 图标右间距:8px(.el-input__prefix-inner > :last-child { margin-right: 8px })
125
+ // label 自身 font-size 与 .el-input 根一致(default/large 14px、small 12px),故 1em 自动跟随
126
+ // 图标宽度与尺寸档位,一条 calc 覆盖三档尺寸;大/小尺寸仅需替换内边距基数。
127
+ //
128
+ // 注意:范围形态根节点同时带 .el-date-editor 与 .el-range-editor,也会命中本规则,
129
+ // 依赖下方 .el-range-editor 规则(同为 0,3,0)按源码顺序覆盖——请勿把范围规则移到本规则之前。
130
+ .#{$namespace}-date-editor.is-float-label {
131
+ position: relative;
132
+
133
+ > .#{$namespace}-float-label {
134
+ left: calc(
135
+ #{map.get($input-padding-horizontal, 'default') - $border-width} + 1em + 8px
136
+ );
137
+ max-width: calc(
138
+ 100% - #{2 * (map.get($input-padding-horizontal, 'default') - $border-width)} - 1em -
139
+ 8px
140
+ );
141
+ }
142
+ }
143
+
144
+ .#{$namespace}-input--large.#{$namespace}-date-editor.is-float-label {
145
+ > .#{$namespace}-float-label {
146
+ left: calc(
147
+ #{map.get($input-padding-horizontal, 'large') - $border-width} + 1em + 8px
148
+ );
149
+ max-width: calc(
150
+ 100% - #{2 * (map.get($input-padding-horizontal, 'large') - $border-width)} - 1em - 8px
151
+ );
152
+ }
153
+ }
154
+
155
+ .#{$namespace}-input--small.#{$namespace}-date-editor.is-float-label {
156
+ > .#{$namespace}-float-label {
157
+ left: calc(
158
+ #{map.get($input-padding-horizontal, 'small') - $border-width} + 1em + 8px
159
+ );
160
+ max-width: calc(
161
+ 100% - #{2 * (map.get($input-padding-horizontal, 'small') - $border-width)} - 1em - 8px
162
+ );
163
+ }
164
+ }
165
+
166
+ // date-picker 范围形态:单一整体 label 是 .el-range-editor(.el-date-editor.el-input__wrapper)
167
+ // 的直接子节点,位于 prefix icon 之后、两个原生 input 之前;.el-input__wrapper 自身无定位,
168
+ // 在此显式建立定位上下文。
169
+ //
170
+ // 水平对齐:同单值形态,label 须避开 prefix 日历图标,否则会压在图标上。文本起点 = 内边距 +
171
+ // 图标宽 + 图标右间距:
172
+ // - .el-range-editor.el-input__wrapper 水平内边距 0 10px(见 date-picker/picker.scss)
173
+ // - .el-range__icon 固定 font-size:14px(不随尺寸档位变化),width:1em => 14px;
174
+ // 根节点无 .el-input 祖先,故 .el-input .el-input__icon { margin-left: 8px } 不生效,
175
+ // 图标无左右间距
176
+ // - 右间距 8px:与单值形态的 .el-input__prefix-inner > :last-child { margin-right: 8px }
177
+ // 取齐,保证两种形态的图标-文案间距一致(范围图标自身无 margin,需在此显式补足)
178
+ // 内边距、图标宽与间距均不随尺寸档位变化,故 left/max-width 尺寸无关(仅 small 字号需适配,见下)。
179
+ // 另注:范围形态根节点带 .el-date-editor 但不带 .el-input/.el-input--*,故不会被上文
180
+ // .el-input--large/.el-input--small 规则命中;本规则(0,3,0)按源码顺序覆盖上文
181
+ // .el-date-editor.is-float-label 规则(同为 0,3,0)。
182
+ //
183
+ // 休息态隐藏:范围形态的占位由两个原生 input 各自的 start/end placeholder 承担(见
184
+ // picker-range-trigger.vue),整体浮标只负责「上浮后的统称」。若休息态仍显示,会与开始
185
+ // 占位符重叠。故用 opacity 而非 display 隐藏——保留元素参与布局,使上浮过渡(位置/透明度)
186
+ // 能连续播放,不产生跳变;`visibility` 会因继承与延迟问题更易出错,不采用。
187
+ .#{$namespace}-range-editor.is-float-label {
188
+ position: relative;
189
+
190
+ > .#{$namespace}-float-label {
191
+ left: 10px + 14px + 8px; // 内边距 10px + 日历图标 14px + 间距 8px
192
+ max-width: calc(100% - 10px - 14px - 8px - 10px); // 右侧仍留 10px 内边距
193
+ opacity: 0;
194
+
195
+ &.is-floating {
196
+ opacity: 1;
197
+ }
198
+ }
199
+ }
200
+
201
+ // 范围形态 small 仅字号/行高/高度变化(水平内边距恒 10px、图标恒 14px),label 字号对齐
202
+ // .el-range-input
203
+ .#{$namespace}-range-editor--small {
204
+ > .#{$namespace}-float-label {
205
+ font-size: map.get($input-font-size, 'small');
206
+ }
207
+ }
@@ -40,6 +40,7 @@
40
40
  @use './dropdown-menu.scss';
41
41
  @use './dropdown.scss';
42
42
  @use './empty.scss';
43
+ @use './float-label.scss';
43
44
  @use './footer.scss';
44
45
  @use './form-item.scss';
45
46
  @use './form.scss';