ep-craft 0.1.30 → 0.1.32

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 (154) hide show
  1. package/dist/components/aside/aside.d.ts +26 -0
  2. package/dist/components/aside/aside.js +29 -0
  3. package/dist/components/aside/index.d.ts +2 -2
  4. package/dist/components/aside/index.js +4 -4
  5. package/dist/components/autocomplete/EpAutocomplete.d.ts +494 -0
  6. package/dist/components/autocomplete/EpAutocomplete.js +465 -0
  7. package/dist/components/autocomplete/autocomplete.d.ts +322 -0
  8. package/dist/components/autocomplete/autocomplete.js +120 -0
  9. package/dist/components/autocomplete/index.d.ts +23 -2
  10. package/dist/components/autocomplete/index.js +9 -3
  11. package/dist/components/autocomplete/instance.d.ts +70 -0
  12. package/dist/components/backtop/EpBacktop.vue.d.ts +55 -0
  13. package/dist/components/backtop/EpBacktop.vue.js +59 -0
  14. package/dist/components/backtop/EpBacktop2.vue.js +4 -0
  15. package/dist/components/backtop/backtop.d.ts +43 -0
  16. package/dist/components/backtop/backtop.js +36 -0
  17. package/dist/components/backtop/index.d.ts +35 -2
  18. package/dist/components/backtop/index.js +6 -3
  19. package/dist/components/backtop/instance.d.ts +10 -0
  20. package/dist/components/backtop/use-backtop.d.ts +13 -0
  21. package/dist/components/backtop/use-backtop.js +23 -0
  22. package/dist/components/checkbox/EpCheckbox.vue.d.ts +147 -0
  23. package/dist/components/checkbox/EpCheckbox.vue.js +101 -0
  24. package/dist/components/checkbox/EpCheckbox2.vue.js +4 -0
  25. package/dist/components/checkbox/index.d.ts +34 -2
  26. package/dist/components/checkbox/index.js +10 -4
  27. package/dist/components/checkbox/instance.d.ts +10 -0
  28. package/dist/components/checkbox/src/checkbox.d.ts +208 -0
  29. package/dist/components/checkbox/src/checkbox.js +119 -0
  30. package/dist/components/checkbox/src/composables/use-checkbox-disabled.d.ts +7 -0
  31. package/dist/components/checkbox/src/composables/use-checkbox-disabled.js +31 -0
  32. package/dist/components/checkbox/src/composables/use-checkbox-event.d.ts +9 -0
  33. package/dist/components/checkbox/src/composables/use-checkbox-event.js +48 -0
  34. package/dist/components/checkbox/src/composables/use-checkbox-model.d.ts +7 -0
  35. package/dist/components/checkbox/src/composables/use-checkbox-model.js +31 -0
  36. package/dist/components/checkbox/src/composables/use-checkbox-status.d.ts +12 -0
  37. package/dist/components/checkbox/src/composables/use-checkbox-status.js +33 -0
  38. package/dist/components/checkbox/src/composables/use-checkbox.d.ts +16 -0
  39. package/dist/components/checkbox/src/composables/use-checkbox.js +81 -0
  40. package/dist/components/checkbox/src/constants.d.ts +8 -0
  41. package/dist/components/checkbox/src/constants.js +4 -0
  42. package/dist/components/checkbox-button/EpCheckboxButton.vue.d.ts +147 -0
  43. package/dist/components/checkbox-button/EpCheckboxButton.vue.js +84 -0
  44. package/dist/components/checkbox-button/EpCheckboxButton2.vue.js +4 -0
  45. package/dist/components/checkbox-button/index.d.ts +24 -2
  46. package/dist/components/checkbox-button/index.js +6 -3
  47. package/dist/components/checkbox-button/instance.d.ts +10 -0
  48. package/dist/components/checkbox-group/EpCheckboxGroup.vue.d.ts +74 -0
  49. package/dist/components/checkbox-group/EpCheckboxGroup.vue.js +92 -0
  50. package/dist/components/checkbox-group/EpCheckboxGroup2.vue.js +4 -0
  51. package/dist/components/checkbox-group/index.d.ts +27 -2
  52. package/dist/components/checkbox-group/index.js +10 -4
  53. package/dist/components/checkbox-group/instance.d.ts +10 -0
  54. package/dist/components/checkbox-group/src/checkbox-group.d.ts +102 -0
  55. package/dist/components/checkbox-group/src/checkbox-group.js +84 -0
  56. package/dist/components/container/container.d.ts +35 -0
  57. package/dist/components/container/container.js +26 -0
  58. package/dist/components/container/index.d.ts +23 -2
  59. package/dist/components/container/index.js +13 -4
  60. package/dist/components/date-picker/src/date-picker.d.ts +5 -5
  61. package/dist/components/footer/footer.d.ts +28 -0
  62. package/dist/components/footer/footer.js +29 -0
  63. package/dist/components/footer/index.d.ts +2 -2
  64. package/dist/components/footer/index.js +4 -4
  65. package/dist/components/header/header.d.ts +28 -0
  66. package/dist/components/header/header.js +29 -0
  67. package/dist/components/header/index.d.ts +2 -2
  68. package/dist/components/header/index.js +4 -4
  69. package/dist/components/input/index.d.ts +177 -0
  70. package/dist/components/input/index.js +8 -6
  71. package/dist/components/input/input.d.ts +2 -2
  72. package/dist/components/input/input.js +6 -6
  73. package/dist/components/input-number/EpInputNumber.vue.d.ts +5 -5
  74. package/dist/components/input-number/input-number.d.ts +2 -2
  75. package/dist/components/main/index.d.ts +2 -2
  76. package/dist/components/main/index.js +3 -3
  77. package/dist/components/main/main.d.ts +14 -0
  78. package/dist/components/main/main.js +14 -0
  79. package/dist/components/pagination/index.d.ts +4 -2
  80. package/dist/components/pagination/index.js +9 -3
  81. package/dist/components/pagination/src/components/jumper.d.ts +13 -0
  82. package/dist/components/pagination/src/components/jumper.js +16 -0
  83. package/dist/components/pagination/src/components/jumper.vue.d.ts +16 -0
  84. package/dist/components/pagination/src/components/jumper.vue.js +58 -0
  85. package/dist/components/pagination/src/components/jumper2.vue.js +4 -0
  86. package/dist/components/pagination/src/components/next.d.ts +22 -0
  87. package/dist/components/pagination/src/components/next.js +26 -0
  88. package/dist/components/pagination/src/components/next.vue.d.ts +42 -0
  89. package/dist/components/pagination/src/components/next.vue.js +44 -0
  90. package/dist/components/pagination/src/components/next2.vue.js +4 -0
  91. package/dist/components/pagination/src/components/pager.d.ts +16 -0
  92. package/dist/components/pagination/src/components/pager.js +24 -0
  93. package/dist/components/pagination/src/components/pager.vue.d.ts +30 -0
  94. package/dist/components/pagination/src/components/pager.vue.js +148 -0
  95. package/dist/components/pagination/src/components/pager2.vue.js +4 -0
  96. package/dist/components/pagination/src/components/prev.d.ts +24 -0
  97. package/dist/components/pagination/src/components/prev.js +25 -0
  98. package/dist/components/pagination/src/components/prev.vue.d.ts +39 -0
  99. package/dist/components/pagination/src/components/prev.vue.js +44 -0
  100. package/dist/components/pagination/src/components/prev2.vue.js +4 -0
  101. package/dist/components/pagination/src/components/sizes.d.ts +35 -0
  102. package/dist/components/pagination/src/components/sizes.js +34 -0
  103. package/dist/components/pagination/src/components/sizes.vue.d.ts +68 -0
  104. package/dist/components/pagination/src/components/sizes.vue.js +73 -0
  105. package/dist/components/pagination/src/components/sizes2.vue.js +4 -0
  106. package/dist/components/pagination/src/components/total.d.ts +8 -0
  107. package/dist/components/pagination/src/components/total.js +15 -0
  108. package/dist/components/pagination/src/components/total.vue.d.ts +8 -0
  109. package/dist/components/pagination/src/components/total.vue.js +33 -0
  110. package/dist/components/pagination/src/components/total2.vue.js +4 -0
  111. package/dist/components/pagination/src/constants.d.ts +9 -0
  112. package/dist/components/pagination/src/constants.js +4 -0
  113. package/dist/components/pagination/src/pagination.d.ts +147 -0
  114. package/dist/components/pagination/src/pagination.js +314 -0
  115. package/dist/components/pagination/src/usePagination.d.ts +1 -0
  116. package/dist/components/pagination/src/usePagination.js +6 -0
  117. package/dist/components/popper/src/content.vue.d.ts +6 -6
  118. package/dist/components/scrollbar/index.d.ts +217 -6
  119. package/dist/components/scrollbar/index.js +12 -5
  120. package/dist/components/scrollbar/src/bar.d.ts +23 -0
  121. package/dist/components/scrollbar/src/bar.js +19 -0
  122. package/dist/components/scrollbar/src/bar.vue.d.ts +23 -0
  123. package/dist/components/scrollbar/src/bar.vue.js +43 -0
  124. package/dist/components/scrollbar/src/bar2.vue.js +4 -0
  125. package/dist/components/scrollbar/src/constants.d.ts +6 -0
  126. package/dist/components/scrollbar/src/constants.js +4 -0
  127. package/dist/components/scrollbar/src/scrollbar.d.ts +111 -6
  128. package/dist/components/scrollbar/src/scrollbar.js +108 -7
  129. package/dist/components/scrollbar/src/scrollbar.vue.d.ts +101 -0
  130. package/dist/components/scrollbar/src/scrollbar.vue.js +178 -0
  131. package/dist/components/scrollbar/src/scrollbar2.vue.js +4 -0
  132. package/dist/components/scrollbar/src/thumb.d.ts +29 -0
  133. package/dist/components/scrollbar/src/thumb.js +19 -0
  134. package/dist/components/scrollbar/src/thumb.vue.d.ts +27 -0
  135. package/dist/components/scrollbar/src/thumb.vue.js +109 -0
  136. package/dist/components/scrollbar/src/thumb2.vue.js +4 -0
  137. package/dist/components/scrollbar/src/util.d.ts +2 -14
  138. package/dist/components/scrollbar/src/util.js +12 -3
  139. package/dist/components/select/index.d.ts +2214 -0
  140. package/dist/components/select/index.js +10 -7
  141. package/dist/components/select/select.vue.d.ts +148 -90
  142. package/dist/components/select-v2/src/select.vue.d.ts +30 -30
  143. package/dist/components/time-picker/src/common/picker.vue.d.ts +5 -5
  144. package/dist/components/time-picker/src/time-picker.d.ts +5 -5
  145. package/dist/components/tooltip/index.d.ts +24 -24
  146. package/dist/components/tooltip/src/content.vue.d.ts +6 -6
  147. package/dist/components/tooltip/src/tooltip.vue.d.ts +8 -8
  148. package/dist/ep-craft.js +187 -179
  149. package/dist/index.css +1 -1
  150. package/dist/index.d.ts +18 -0
  151. package/dist/vendored-components.d.ts +5 -2
  152. package/dist/vendored-components.js +22 -1
  153. package/package.json +5 -2
  154. package/theme-chalk/src/float-label.scss +51 -26
package/dist/index.d.ts CHANGED
@@ -22,6 +22,24 @@ export * from 'element-plus';
22
22
  * 使用方又会拿到 element-plus 版本,问题复现。
23
23
  */
24
24
  export { formContextKey, formItemContextKey, useDisabled, useFormDisabled, useFormItem, useFormItemInputId, useFormSize, useSize, } from './components/form';
25
+ /**
26
+ * checkbox 家族的契约常量、分组上下文键与公开类型(vendor-checkbox 产出)。
27
+ *
28
+ * 同上:必须写在 `export * from 'element-plus'` **之后**。这些名字在
29
+ * `./components`(本库实现)与 `element-plus`(同名成员)两侧都存在,若写在其前面,
30
+ * 同名导出会因 export * 的歧义消除规则被**静默丢弃**,使用方又会拿到 element-plus 版本。
31
+ * 其中 `checkboxGroupContextKey` 尤须注意——它是**本地 Symbol**,拿错版本会让
32
+ * `inject` 与 `<ep-checkbox-group>` 的 `provide` 对不上,分组上下文静默失效。
33
+ *
34
+ * 按 design.md 决策 5,此处**不导出** `checkboxPropsDefaults` / `checkboxDefaultProps`
35
+ * 两个内部默认值常量;按决策 3,也**不导出** `ElCheckbox` / `ElCheckboxButton` /
36
+ * `ElCheckboxGroup` 别名。
37
+ */
38
+ export { checkboxEmits, checkboxGroupContextKey, checkboxProps, } from './components/checkbox';
39
+ export { checkboxGroupEmits, checkboxGroupProps, } from './components/checkbox-group';
40
+ export type { CheckboxEmits, CheckboxInstance, CheckboxProps, CheckboxPropsPublic, CheckboxValueType, } from './components/checkbox';
41
+ export type { CheckboxButtonInstance } from './components/checkbox-button';
42
+ export type { CheckboxGroupEmits, CheckboxGroupInstance, CheckboxGroupProps, CheckboxGroupPropsPublic, CheckboxGroupValueType, CheckboxOption, CheckboxOptionProps, } from './components/checkbox-group';
25
43
  export { ElMessage as EpMessage, ElMessageBox as EpMessageBox, ElNotification as EpNotification, ElLoading as EpLoading, ElInfiniteScroll as EpInfiniteScroll, } from 'element-plus';
26
44
  export declare const EpCraft: Plugin;
27
45
  export default EpCraft;
@@ -5,12 +5,15 @@
5
5
  * - scripts/gen-components.ts:生成包装文件时跳过源码化组件。
6
6
  * - src/resolver.ts:按需导入解析器区分源码化 / 包装组件。
7
7
  *
8
- * 源码化原因(两类):
8
+ * 源码化原因(三类):
9
9
  * 1. element-plus 的菜单 / 标签页 / 单选框组件内部按 `type.name === 'ElXxx'`
10
10
  * 查找父级或子级,改名包装(ElXxx -> EpXxx)会破坏父子识别,必须 vendor 源码。
11
11
  * 2. 横切组件(icon/tooltip/collapse-transition/popper)由 vendor-cross-cutting
12
12
  * vendor 到本地,同样需跳过 gen 包装以免被覆盖为 wrapper。
13
+ * 3. 自持 barrel 保护:登记本意只是保护手写 barrel 不被 gen 脚本覆盖。**该保护本身
14
+ * 不等于本体已自持**——此限定只描述登记时的过渡态:对应 vendor 切片尚未把本体
15
+ * 落到本地时,登记只是止血;本体落地后(见下方「本体已自持」组)才名副其实。
13
16
  */
14
- export declare const vendoredComponents: readonly ["Affix", "Alert", "Anchor", "AnchorLink", "Button", "CheckTag", "Tag", "Menu", "MenuItem", "MenuItemGroup", "SubMenu", "Tabs", "TabPane", "Radio", "RadioButton", "RadioGroup", "Input", "InputNumber", "Option", "OptionGroup", "Select", "SelectV2", "DatePicker", "DatePickerPanel", "TimePicker", "CollapseTransition", "ConfigProvider", "Form", "Icon", "Popper", "Tooltip", "Scrollbar"];
17
+ export declare const vendoredComponents: readonly ["Affix", "Alert", "Anchor", "AnchorLink", "Button", "CheckTag", "Tag", "Menu", "MenuItem", "MenuItemGroup", "SubMenu", "Tabs", "TabPane", "Radio", "RadioButton", "RadioGroup", "Input", "InputNumber", "Option", "OptionGroup", "Pagination", "Select", "SelectV2", "DatePicker", "DatePickerPanel", "TimePicker", "Aside", "Container", "Footer", "Header", "Main", "CollapseTransition", "ConfigProvider", "Form", "Icon", "Popper", "Tooltip", "Autocomplete", "Scrollbar", "Backtop", "Checkbox", "CheckboxButton", "CheckboxGroup"];
15
18
  export type VendoredComponentName = (typeof vendoredComponents)[number];
16
19
  export declare const isVendored: (name: string) => boolean;
@@ -19,11 +19,18 @@ const o = [
19
19
  "InputNumber",
20
20
  "Option",
21
21
  "OptionGroup",
22
+ "Pagination",
22
23
  "Select",
23
24
  "SelectV2",
24
25
  "DatePicker",
25
26
  "DatePickerPanel",
26
27
  "TimePicker",
28
+ // 布局家族(vendor-container 产出,跳过 gen 包装)
29
+ "Aside",
30
+ "Container",
31
+ "Footer",
32
+ "Header",
33
+ "Main",
27
34
  // 横切组件(vendor-cross-cutting 产出,跳过 gen 包装)
28
35
  "CollapseTransition",
29
36
  "ConfigProvider",
@@ -31,7 +38,21 @@ const o = [
31
38
  "Icon",
32
39
  "Popper",
33
40
  "Tooltip",
34
- "Scrollbar"
41
+ // 本体已自持(vendor-autocomplete / vendor-backtop 产出,跳过 gen 包装)
42
+ // 登记须先于 barrel 重写,否则 gen 会把入口模块覆盖回包装态。
43
+ // 'Scrollbar' 首次登记时本体尚未自持,仅意在保护手写 barrel 不被 gen 覆盖;
44
+ // 随 vendor-autocomplete 把本体落到本地,该条目才名副其实。
45
+ // 'Backtop' 由 vendor-backtop 同步完成登记与本体自持,不存在上述过渡期。
46
+ "Autocomplete",
47
+ "Scrollbar",
48
+ "Backtop",
49
+ // 本体已自持(vendor-checkbox 产出,跳过 gen 包装)
50
+ // 登记须先于 barrel 重写,否则 gen 会把入口模块覆盖回包装态。
51
+ // 本切片另修复一处既有缺陷:包装态 checkbox inject 的是 element-plus 的
52
+ // form 上下文 Symbol,与本地 EpForm / EpFormItem provide 的本地 Symbol 不匹配。
53
+ "Checkbox",
54
+ "CheckboxButton",
55
+ "CheckboxGroup"
35
56
  ], n = (e) => o.includes(e);
36
57
  export {
37
58
  n as isVendored,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ep-craft",
3
- "version": "0.1.30",
3
+ "version": "0.1.32",
4
4
  "description": "A Vue 3 component library based on element-plus with ep- prefix",
5
5
  "type": "module",
6
6
  "main": "./dist/ep-craft.js",
@@ -52,7 +52,10 @@
52
52
  "build": "vite build && vue-tsc --declaration --emitDeclarationOnly --outDir dist",
53
53
  "gen": "tsx scripts/gen-components.ts",
54
54
  "gen:docs": "tsx scripts/gen-docs.ts",
55
+ "verify:autocomplete": "node scripts/verify-autocomplete.mjs",
56
+ "verify:backtop": "node scripts/verify-backtop.mjs",
55
57
  "verify:config-provider": "node scripts/verify-config-provider.mjs",
58
+ "verify:container": "node scripts/verify-container.mjs",
56
59
  "docs:dev": "vitepress dev docs",
57
60
  "docs:build": "vitepress build docs",
58
61
  "docs:preview": "vitepress preview docs"
@@ -62,7 +65,7 @@
62
65
  },
63
66
  "dependencies": {
64
67
  "@ctrl/tinycolor": "^4.2.0",
65
- "@element-plus/icons-vue": "^2.3.0",
68
+ "@element-plus/icons-vue": "^2.3.0",
66
69
  "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.8",
67
70
  "@vue/shared": "^3.5.40",
68
71
  "@vueuse/core": "14.3.0",
@@ -8,12 +8,18 @@
8
8
  * 浮动标签(float-label)视觉
9
9
  * 说明:Material「浮动标签」惯例——input(含 textarea)/ select 在「聚焦或有值」时,
10
10
  * 占位文本上浮到控件上边框、缩小字号并着色;失焦且无值时回退原位。
11
- * Figma 节点 4760-8608 的精确色值 / 字号 / 位移 / 过渡取得成功后,在此精修下列参数。
11
+ * Figma 节点 4760-8608 的精确色值 / 位移 / 过渡取得成功后,在此精修下列参数(字号已定,见下)。
12
+ *
13
+ * 上浮态字号:恒为 $float-label-floating-font-size(12px),**不随尺寸档位变化**。
14
+ * 实现上用显式 font-size 而非 transform: scale()——scale 会把 14px 缩成 10.5px、
15
+ * 12px 缩成 9px,给不出「固定 12px」;且缩放后的文本由合成层光栅化,小字号下不如
16
+ * 原生 font-size 清晰。代价是上浮态字号不再等于「控件字号 × 固定比例」,small 档
17
+ * (控件字号本就是 12px)上浮前后字号相同、只剩位移与着色过渡。
12
18
  * -------------------------------------------------------------------------- */
13
19
 
14
20
  $float-label-transition-duration: 0.2s !default;
15
21
  $float-label-transition-easing: cubic-bezier(0.4, 0, 0.2, 1) !default;
16
- $float-label-scale: 0.75 !default;
22
+ $float-label-floating-font-size: 12px !default;
17
23
 
18
24
  .#{$namespace}-float-label {
19
25
  position: absolute;
@@ -32,18 +38,18 @@ $float-label-scale: 0.75 !default;
32
38
  color: getCssVar('text-color', 'placeholder');
33
39
  pointer-events: none;
34
40
  user-select: none;
35
- transform-origin: left center;
36
41
  transform: translateY(-50%);
37
42
  transition:
38
43
  top $float-label-transition-duration $float-label-transition-easing,
39
- transform $float-label-transition-duration $float-label-transition-easing,
44
+ font-size $float-label-transition-duration $float-label-transition-easing,
40
45
  color $float-label-transition-duration $float-label-transition-easing,
41
46
  opacity $float-label-transition-duration $float-label-transition-easing;
42
47
 
43
48
  &.is-floating {
44
49
  top: 0;
45
50
  z-index: 2;
46
- transform: translateY(-50%) scale($float-label-scale);
51
+ // 上浮态字号固定,与尺寸档位无关(见文件头说明)
52
+ font-size: $float-label-floating-font-size;
47
53
  color: #868a9c;
48
54
  // 以与控件一致的底色遮罩边框线,形成标准「缺口(notch)」浮标
49
55
  padding: 0 4px;
@@ -100,6 +106,11 @@ $float-label-scale: 0.75 !default;
100
106
  max-width: calc(
101
107
  100% - #{2 * (map.get($input-padding-horizontal, 'small') - $border-width)}
102
108
  );
109
+ }
110
+
111
+ // 字号只约束休息态:上浮态字号由 .is-floating 统一固定。若不加 :not(.is-floating),
112
+ // 本规则(0,2,0)会因源码顺序压过 .is-floating(0,2,0),使上浮态字号被档位绑架。
113
+ .#{$namespace}-float-label:not(.is-floating) {
103
114
  font-size: map.get($input-font-size, 'small');
104
115
  }
105
116
  }
@@ -107,10 +118,13 @@ $float-label-scale: 0.75 !default;
107
118
  // input 有 prefix(图标或自定义前缀)时,输入文本起点被右移,label 必须同步右移,否则会压在图标上。
108
119
  // 文本起点 = wrapper 水平内边距 + 图标宽 + 图标右间距:
109
120
  // - wrapper 水平内边距:$input-padding-horizontal - $border-width(12-1 / 16-1 / 8-1)
110
- // - 图标宽:1em(.el-icon { width: 1em; font-size: inherit }),随尺寸档位为 14px / 12px
121
+ // - 图标宽:1em(.el-icon { width: 1em; font-size: inherit })——继承控件根字号,故随尺寸
122
+ // 档位为 14px / 14px / 12px,即 $input-font-size 的 default / large / small
111
123
  // - 图标右间距:8px(.el-input__prefix-inner > :last-child { margin-right: 8px })
112
- // label 自身 font-size 与 .el-input 根一致(default/large 14px、small 12px),故 1em 自动跟随
113
- // 图标宽度与尺寸档位;三档尺寸仅需替换内边距基数。
124
+ // 图标宽在此按档位取 $input-font-size 显式书写,**不可写作 label 自身的 1em**:浮标上浮后
125
+ // 字号被固定为 $float-label-floating-font-size(12px),1em 随之变小,会让上浮态锚点左移
126
+ // (default/large 档左移 2px,且与休息态不一致产生跳变)。休息态 label 字号与控件根本就一致,
127
+ // 故显式值与原先的 1em 逐像素等价,三档尺寸仅需替换内边距基数。
114
128
  //
115
129
  // 作用域限定为「.el-input__wrapper 内的 label」,即 EpInput 自绘的浮标。date-picker 单值形态的
116
130
  // 浮标是经 EpInput 默认插槽注入到 .el-input 根的直接子节点(不在 wrapper 内),由下文
@@ -125,11 +139,12 @@ $float-label-scale: 0.75 !default;
125
139
  > .#{$namespace}-input__wrapper
126
140
  > .#{$namespace}-float-label {
127
141
  left: calc(
128
- #{map.get($input-padding-horizontal, 'default') - $border-width} + 1em + 8px
142
+ #{map.get($input-padding-horizontal, 'default') - $border-width} +
143
+ #{map.get($input-font-size, 'default')} + 8px
129
144
  );
130
145
  max-width: calc(
131
- 100% - #{2 * (map.get($input-padding-horizontal, 'default') - $border-width)} - 1em -
132
- 8px
146
+ 100% - #{2 * (map.get($input-padding-horizontal, 'default') - $border-width)} -
147
+ #{map.get($input-font-size, 'default')} - 8px
133
148
  );
134
149
  }
135
150
 
@@ -137,10 +152,12 @@ $float-label-scale: 0.75 !default;
137
152
  > .#{$namespace}-input__wrapper
138
153
  > .#{$namespace}-float-label {
139
154
  left: calc(
140
- #{map.get($input-padding-horizontal, 'large') - $border-width} + 1em + 8px
155
+ #{map.get($input-padding-horizontal, 'large') - $border-width} +
156
+ #{map.get($input-font-size, 'large')} + 8px
141
157
  );
142
158
  max-width: calc(
143
- 100% - #{2 * (map.get($input-padding-horizontal, 'large') - $border-width)} - 1em - 8px
159
+ 100% - #{2 * (map.get($input-padding-horizontal, 'large') - $border-width)} -
160
+ #{map.get($input-font-size, 'large')} - 8px
144
161
  );
145
162
  }
146
163
 
@@ -148,10 +165,12 @@ $float-label-scale: 0.75 !default;
148
165
  > .#{$namespace}-input__wrapper
149
166
  > .#{$namespace}-float-label {
150
167
  left: calc(
151
- #{map.get($input-padding-horizontal, 'small') - $border-width} + 1em + 8px
168
+ #{map.get($input-padding-horizontal, 'small') - $border-width} +
169
+ #{map.get($input-font-size, 'small')} + 8px
152
170
  );
153
171
  max-width: calc(
154
- 100% - #{2 * (map.get($input-padding-horizontal, 'small') - $border-width)} - 1em - 8px
172
+ 100% - #{2 * (map.get($input-padding-horizontal, 'small') - $border-width)} -
173
+ #{map.get($input-font-size, 'small')} - 8px
155
174
  );
156
175
  }
157
176
 
@@ -177,10 +196,11 @@ $float-label-scale: 0.75 !default;
177
196
  // 水平对齐:date-picker 单值形态恒有 prefix 日历/时钟图标,输入文本起点被右移,label 必须
178
197
  // 同步右移,否则会压在图标上。文本起点 = wrapper 水平内边距 + 图标宽 + 图标右间距:
179
198
  // - wrapper 水平内边距:$input-padding-horizontal - $border-width(12-1 / 16-1 / 8-1)
180
- // - 图标宽:1em(.el-icon { width: 1em; font-size: inherit }),随尺寸档位为 14px / 12px
199
+ // - 图标宽:1em(.el-icon { width: 1em; font-size: inherit })——继承控件根字号,故随尺寸
200
+ // 档位为 14px / 14px / 12px,即 $input-font-size 的 default / large / small
181
201
  // - 图标右间距:8px(.el-input__prefix-inner > :last-child { margin-right: 8px })
182
- // label 自身 font-size 与 .el-input 根一致(default/large 14px、small 12px),故 1em 自动跟随
183
- // 图标宽度与尺寸档位,一条 calc 覆盖三档尺寸;大/小尺寸仅需替换内边距基数。
202
+ // 图标宽按档位取 $input-font-size 显式书写(理由同上文 input--prefix 段:上浮态 label 字号
203
+ // 固定为 12px,用自身的 1em 会让锚点上浮时左移);三档尺寸仅需替换内边距基数。
184
204
  //
185
205
  // 注意:范围形态根节点同时带 .el-date-editor 与 .el-range-editor,也会命中本规则,
186
206
  // 依赖下方 .el-range-editor 规则(同为 0,3,0)按源码顺序覆盖——请勿把范围规则移到本规则之前。
@@ -189,11 +209,12 @@ $float-label-scale: 0.75 !default;
189
209
 
190
210
  > .#{$namespace}-float-label {
191
211
  left: calc(
192
- #{map.get($input-padding-horizontal, 'default') - $border-width} + 1em + 8px
212
+ #{map.get($input-padding-horizontal, 'default') - $border-width} +
213
+ #{map.get($input-font-size, 'default')} + 8px
193
214
  );
194
215
  max-width: calc(
195
- 100% - #{2 * (map.get($input-padding-horizontal, 'default') - $border-width)} - 1em -
196
- 8px
216
+ 100% - #{2 * (map.get($input-padding-horizontal, 'default') - $border-width)} -
217
+ #{map.get($input-font-size, 'default')} - 8px
197
218
  );
198
219
  }
199
220
  }
@@ -201,10 +222,12 @@ $float-label-scale: 0.75 !default;
201
222
  .#{$namespace}-input--large.#{$namespace}-date-editor.is-float-label {
202
223
  > .#{$namespace}-float-label {
203
224
  left: calc(
204
- #{map.get($input-padding-horizontal, 'large') - $border-width} + 1em + 8px
225
+ #{map.get($input-padding-horizontal, 'large') - $border-width} +
226
+ #{map.get($input-font-size, 'large')} + 8px
205
227
  );
206
228
  max-width: calc(
207
- 100% - #{2 * (map.get($input-padding-horizontal, 'large') - $border-width)} - 1em - 8px
229
+ 100% - #{2 * (map.get($input-padding-horizontal, 'large') - $border-width)} -
230
+ #{map.get($input-font-size, 'large')} - 8px
208
231
  );
209
232
  }
210
233
  }
@@ -212,10 +235,12 @@ $float-label-scale: 0.75 !default;
212
235
  .#{$namespace}-input--small.#{$namespace}-date-editor.is-float-label {
213
236
  > .#{$namespace}-float-label {
214
237
  left: calc(
215
- #{map.get($input-padding-horizontal, 'small') - $border-width} + 1em + 8px
238
+ #{map.get($input-padding-horizontal, 'small') - $border-width} +
239
+ #{map.get($input-font-size, 'small')} + 8px
216
240
  );
217
241
  max-width: calc(
218
- 100% - #{2 * (map.get($input-padding-horizontal, 'small') - $border-width)} - 1em - 8px
242
+ 100% - #{2 * (map.get($input-padding-horizontal, 'small') - $border-width)} -
243
+ #{map.get($input-font-size, 'small')} - 8px
219
244
  );
220
245
  }
221
246
  }
@@ -258,7 +283,7 @@ $float-label-scale: 0.75 !default;
258
283
  // 范围形态 small 仅字号/行高/高度变化(水平内边距恒 10px、图标恒 14px),label 字号对齐
259
284
  // .el-range-input
260
285
  .#{$namespace}-range-editor--small {
261
- > .#{$namespace}-float-label {
286
+ > .#{$namespace}-float-label:not(.is-floating) {
262
287
  font-size: map.get($input-font-size, 'small');
263
288
  }
264
289
  }