iter(g222): 时间选择支持高度档位

This commit is contained in:
HIsheR
2026-10-26 20:03:10 +08:00
parent 467de41d4e
commit 3067c6380a
6 changed files with 20 additions and 8 deletions
+1 -1
View File
@@ -80,7 +80,7 @@ export function timePicker(props: TimePickerProps): HTMLElement {
'button',
{
type: 'button',
class: 'ua-timepicker-trigger',
class: `ua-timepicker-trigger${props.size && props.size !== 'md' ? ` is-${props.size}` : ''}`,
'aria-haspopup': 'dialog',
'aria-expanded': () => String(open()),
disabled: props.disabled, // 布尔或信号禁用,h() 直接透传
+1
View File
@@ -671,6 +671,7 @@ export interface TimePickerProps {
minuteStep?: number; // 分钟步长;缺省 5,超过 30 按 30 处理
placeholder?: string; // 未选时占位文案;缺省「请选择时间」
clearable?: boolean; // 显示清空按钮 ×(有值时才出现);缺省 false,键盘 Delete / Backspace 等价
size?: 'sm' | 'md' | 'lg'; // 触发器高度档位,与 textField / select 同口径;缺省 md
disabled?: boolean | Signal<boolean>; // 禁用触发器
onChange?: (time: string) => void; // 写回回调(选时也会触发,分默认落到首个步长值)
}
+7 -1
View File
@@ -3674,6 +3674,11 @@
"t": "boolean",
"d": "显示清空按钮 ×(仅在有值时出现);缺省 false,键盘 Delete / Backspace 等价"
},
{
"n": "size",
"t": "'sm' | 'md' | 'lg'",
"d": "触发器高度档位,与 textField / select 同口径;缺省 md"
},
{
"n": "placeholder",
"t": "string",
@@ -3697,7 +3702,8 @@
"先点时列定小时(分默认落到首个步长值,值立刻可用),再点分列即完成并收起,焦点回到触发器",
"列内可用 ↑↓ 环形移动、Home/End 直达首末;Tab、Esc、点击外部都能正常进出与收起",
"需要 15 分钟一档就传 minuteStep: 15,步长只影响分列的可选值,时列始终 24 档",
"需要允许回到「未选」态就传 clearable: true:有值时触发器右侧出现 ×(不进 Tab 序),聚焦触发器按 Delete / Backspace 也能清空,回调收到空串"
"需要允许回到「未选」态就传 clearable: true:有值时触发器右侧出现 ×(不进 Tab 序),聚焦触发器按 Delete / Backspace 也能清空,回调收到空串",
"要和输入框并排对齐就传 size(sm / md / lg):高度走 --ua-control-h-* 三档,与 textField、select 的档位完全同源,不会出现「旁边的输入框矮 6px」"
]
}
]
+7 -5
View File
@@ -10,20 +10,23 @@
.ua-btn,
.ua-input,
.ua-select-trigger,
.ua-input-number-field {
.ua-input-number-field,
.ua-timepicker-trigger {
box-sizing: border-box;
height: var(--ua-control-h-md);
}
.ua-btn.is-sm,
.ua-input.is-sm,
.ua-select-trigger.is-sm,
.ua-input-number-field.is-sm {
.ua-input-number-field.is-sm,
.ua-timepicker-trigger.is-sm {
height: var(--ua-control-h-sm);
}
.ua-btn.is-lg,
.ua-input.is-lg,
.ua-select-trigger.is-lg,
.ua-input-number-field.is-lg {
.ua-input-number-field.is-lg,
.ua-timepicker-trigger.is-lg {
height: var(--ua-control-h-lg);
}
@@ -5024,8 +5027,7 @@ h5.ua-type-title { font-size: var(--ua-font-size-md); }
gap: var(--ua-space-2);
min-width: 116px;
padding: 0 var(--ua-space-3);
height: var(--ua-control-h-md);
border: 1px solid var(--ua-color-border);
border: 1px solid var(--ua-color-border); /* 高度由文件顶部三档统一给,组件段不再重复声明 */
border-radius: var(--ua-radius-md);
background: var(--ua-color-bg);
color: var(--ua-color-text);