组件
可编辑文本 Editable
Editable:行内编辑文本。阅读时只显示文字,编辑时显示完整字段样式。部件:Root、Area、Label、Preview、Input、EditTrigger、SubmitTrigger、CancelTrigger、Control。Preview 把状态机的值渲染为文本(asChild 逃生口仍归 Ark 基础组件)。
#基础用法
Hello World
<script setup lang="ts">
import { check, x } from "@bysages/icons";
import { Editable, Icon } from "@bysages/vue";
</script>
<template>
<Editable.Root placeholder="Enter text…" default-value="Hello World">
<Editable.Label>Label</Editable.Label>
<Editable.Area>
<Editable.Preview />
<Editable.Input />
</Editable.Area>
<Editable.Control>
<Editable.EditTrigger aria-label="Edit">
<svg
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
aria-hidden="true"
>
<path
d="M12 20h9M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</Editable.EditTrigger>
<Editable.SubmitTrigger aria-label="Submit">
<Icon :glyph="check" />
</Editable.SubmitTrigger>
<Editable.CancelTrigger aria-label="Cancel">
<Icon :glyph="x" />
</Editable.CancelTrigger>
</Editable.Control>
</Editable.Root>
</template>
#属性
#Area
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#CancelTrigger
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Control
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#EditTrigger
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Input
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Label
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Preview
纯造型的部件——自身没有属性,沿用部件结构的共享样式。
#Root
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
size | String as PropType<"sm" | "md" | "lg"> | "md" | 编辑字段使用的控件高度档位 |
activationMode | editable.ActivationMode | "focus" | 预览元素的激活模式:"focus" 表示聚焦预览时进入编辑模式,"dblclick" 表示双击预览时进入编辑模式,"click" 表示点击预览时进入编辑模式 |
autoResize | boolean | 可编辑组件是否随内容自动调整尺寸 | |
defaultEdit | boolean | 可编辑组件是否默认进入编辑模式 | |
defaultValue | string | 可编辑组件的初始值;适合不需要受控值的场景 | |
disabled | boolean | 是否禁用可编辑组件 | |
edit | boolean | 是否处于编辑模式 | |
finalFocusEl | () => HTMLElement | null | 可编辑组件关闭时接收焦点的元素 | |
form | string | 底层 input 关联的表单 | |
id | string | 组件内部状态机的唯一标识 | |
ids | Partial<{ root: string; area: string; label: string; preview: string; input: string; control: string; submitTrigger: string; cancelTrigger: string; editTrigger: string; }> | 可编辑组件各元素的 id,便于组合使用 | |
invalid | boolean | 输入值是否无效 | |
maxLength | number | 可编辑组件允许输入的最大字符数 | |
modelValue | string | 可编辑组件的 v-model 值 | |
name | string | 可编辑组件的 name 属性,用于表单提交 | |
placeholder | string | { edit: string; preview: string; } | 可编辑组件的占位文本 | |
readOnly | boolean | 是否只读 | |
required | boolean | 是否必填 | |
selectOnFocus | boolean | true | 输入框获得焦点时是否选中文本 |
submitMode | editable.SubmitMode | "both" | 编辑模式下的提交触发方式:"enter" 表示按 Enter 提交,"blur" 表示失焦提交,"none" 表示不自动提交、需使用提交按钮,"both" 表示按 Enter 或输入框失焦时提交 |
translations | editable.IntlTranslations | 可编辑组件的国际化文案 |
#SubmitTrigger
纯造型的部件——自身没有属性,沿用部件结构的共享样式。