InputGroup 输入组合

在统一边界内组合原生控件、前后元素与附加内容。

Beta

示例

直接操作示例,查看组件在具体任务中的状态与反馈。

组合边界只安排槽位和外观;原生控件继续拥有值、标签、事件与表单提交。
本地搜索条件
Monkeys
本地
当前本地条件:组件 / input
尾部元素把输入相关操作保持在同一控件边界内。
固定前缀和后缀表达协议、域名或单位,不混入可编辑值。
组合容器把 invalid 或 disabled 状态传递到内部控件边界。

使用建议

把它当作组合边界而不是 Field

InputGroup 只安排 start、content 与 end 槽位,不克隆子元素,也不接管 value、事件、标签、说明或表单提交。

把原生状态传给真实控件

invalid 与 disabled 只改变组合外观;宿主必须把 aria-invalid、disabled、readOnly 和描述关联分别传给内部 input、select 或 button。

通过公开样式边界调整外观

先全局加载编译后的 styles.css,再按需使用 Provider appearance、className、classNames 或 style;方向和主题状态仍由宿主传入 Provider。

引入方式

从已验证的公开子路径导入组件;全局样式接入方式见安装指南。

import { BaseInputGroup } from '@inf-monkeys-tech/monkeys-design/components/base';

当前限制

  • InputGroup 不生成 Field 语义、焦点策略或状态传播,也不判断多个子控件是否构成可访问分组;这些合同必须由宿主显式组合。
  • T17 尚缺 manual keyboard/focus、deterministic visual 与 packed React 18/19 证据;多控件溢出、RTL、focus-within 和移动端组合尚未完成最终人工闭环。
  • Deterministic visual evidence and packed React 18/19 checks are pending T17/T23.
export interface BaseInputGroupProps
  extends Omit<
    HTMLAttributes<HTMLDivElement>,
    'children' | 'className' | 'style'
  > {
  children?: ReactNode;
  startElement?: ReactNode;
  endElement?: ReactNode;
  startAddon?: ReactNode;
  endAddon?: ReactNode;
  /** Visual state only. Propagate aria-invalid to the actual controls. */
  invalid?: boolean;
  /** Visual state only. Propagate disabled to the actual controls. */
  disabled?: boolean;
  appearance?: BaseAppearance;
  className?: string;
  classNames?: BaseInputGroupClassNames;
  style?: CSSProperties;
}
属性说明类型默认值
children在 BaseInputGroup 内渲染的子内容;支持渲染函数时以对应的 Props 类型为准。ReactNode
startElement显示在输入控件内部起始端的元素。ReactNode
endElement显示在输入控件内部末端的元素。ReactNode
startAddon附着在输入组起始端、位于控件边界之外的内容。ReactNode
endAddon附着在输入组末端、位于控件边界之外的内容。ReactNode
invalid是否进入无效状态并应用相应的校验样式与语义。booleanfalse
disabled是否禁用该组件及其可交互行为。booleanfalse
appearance覆盖组件使用的外观令牌或局部样式配置。BaseAppearance
className追加到组件根元素的 CSS 类名。string
classNames按组件公开的结构插槽分别追加 CSS 类名。BaseInputGroupClassNames
style追加到组件根元素的内联样式。CSSProperties