Form primitive
Icon selector
<DomIconSelector>A searchable select-style field for choosing SVG path icons, emoji, or app-defined symbol rows.
Playground
Try every prop live
Icon selector playground
Search the DOM Studio icon inventory and commit SVG path data through v-model.
- AddActions add m12 5v14m5 12h14 actions icon plus new create
- RemoveActions remove m5 12h14 actions icon minus delete
- CloseActions close m6 6l12 12m18 6 6 18 actions icon dismiss x
- CheckActions check m20 6 9 17l-5-5 actions icon done success
- EditActions edit m4 20h4l19 9a2.8 2.8 0 0 0-4-4l4 16v4zm11-13 2 2 actions icon pencil compose
- CopyActions copy m8 8h11v11h8v8zm-3 8h4v4h12v1 actions icon duplicate
- ShareActions share m8 12h8m15 7l5 5-5 5m4 5v14 actions icon send
- DownloadActions download m12 4v10m8 10l4 4 4-4m5 19h14 actions icon export
- UploadActions upload m12 16v4m8 8l4-4 4 4m5 20h14 actions icon import
- SearchNavigation search m10.5 18a7.5 7.5 0 1 1 5.3-2.2l21 21 navigation icon find
- FilterNavigation filter m5 6h14m8 12h8m10 18h4 navigation icon funnel
- SettingsNavigation settings m12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zm0-5v3m12 18v3m4.2 4.2l2.1 2.1m17.7 17.7l2.1 2.1m3 12h3m18 12h3m4.2 19.8l2.1-2.1m17.7 6.3l2.1-2.1 navigation icon gear
- MenuNavigation menu m6 7h12m6 12h12m6 17h12 navigation icon list
- More horizontalNavigation more horizontal m5 12h.01m12 12h.01m19 12h.01 navigation icon ellipsis
- More verticalNavigation more vertical m12 5h.01m12 12h.01m12 19h.01 navigation icon ellipsis
- Chevron downNavigation chevron down m7 10l5 5 5-5 navigation icon expand
- Chevron upNavigation chevron up m7 14l5-5 5 5 navigation icon collapse
- Chevron leftNavigation chevron left m14 7l-5 5 5 5 navigation icon previous
- Chevron rightNavigation chevron right m10 7l5 5-5 5 navigation icon next
- Arrow leftNavigation arrow left m19 12h5m12 5l-7 7 7 7 navigation icon back
- Arrow rightNavigation arrow right m5 12h14m12 5l7 7-7 7 navigation icon forward
- Arrow upNavigation arrow up m12 19v5m5 12l7-7 7 7 navigation icon top
- Arrow downNavigation arrow down m12 5v14m5 12l7 7 7-7 navigation icon bottom
- HomeNavigation home m4 11 12 4l8 7v9h-5v-6h9v6h4v-9z navigation icon house
- External linkNavigation external link m14 5h5v5m13 11l6-6m19 14v5h5v5h5 navigation icon open
- InfoStatus info m12 17v-5m12 8h.01m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0z status icon notice
- SuccessStatus success m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0zm8.5 12.5l2.5 2.5 4.5-5 status icon check complete
- WarningStatus warning m12 4l9 16h3l12 4zm12 9v4m12 17h.01 status icon alert risk
- ErrorStatus error m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0zm15 9l-6 6m9 9l6 6 status icon danger failed
- HelpStatus help m9.5 9a2.5 2.5 0 1 1 4.2 1.8c-.9.7-1.7 1.2-1.7 2.7m12 17h.01m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0z status icon question
- LockSecurity lock m7 11v8a5 5 0 0 1 10 0v3m6 11h12v9h6v-9zm6 3v2 security icon secure
- UnlockSecurity unlock m8 11v8a5 5 0 0 1 9.5-2.2m6 11h12v9h6v-9zm6 3v2 security icon open
- ShieldSecurity shield m12 3 5 6v5c0 4.5 3 8 7 10 4-2 7-5.5 7-10v6l-7-3zm9.5 12l1.75 1.75l15 10 security icon protect
- UserPeople user m12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm5 20a7 7 0 0 1 14 0 people icon profile
- UsersPeople users m9 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm8 1a3 3 0 1 0 0-6m4 20a5 5 0 0 1 10 0m13 20a5 5 0 0 1 7-4.5 people icon team
- MailCommunication mail m4 6h16v12h4v6zm0 0 8 7 8-7 communication icon email
- MessageCommunication message m5 6h14v9h9l-4 4v6z communication icon chat comment
- BellCommunication bell m15 17h9m9-2h6l2-3v9a4 4 0 0 1 8 0v3l2 3zm10 19a2 2 0 0 0 4 0 communication icon notification
- CalendarTime calendar m7 4v3m17 4v3m5 8h14m6 6h12v13h6v6zm3 6h2m13 12h2m9 16h2 time icon date
- ClockTime clock m12 6v6l4 2m12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z time icon time
- FileFiles file m6 4h8l4 4v12h6v4zm8 0v5h5m9 13h6m9 16h4 files icon document
- FolderFiles folder m4 6h6l2 2h8v10h4v6z files icon directory
- ImageFiles image m5 6h14v12h5v6zm3 9 3-3 2 2 2-3 3 4m8 9h.01 files icon media
- CodeFiles code m8 9l-4 3 4 3m16 9l4 3-4 3m14 5l-4 14 files icon developer
- DatabaseData database m5 7c0-2 14-2 14 0v10c0 2-14 2-14 0v7zm0 0c0 2 14 2 14 0m5 12c0 2 14 2 14 0 data icon storage
- TableData table m5 5h14v14h5v5zm0 5h14m5 14h14m10 5v14m15 5v14 data icon grid
- Chart barData chart bar m5 19v9m12 19v5m19 19v-7m4 19h16 data icon analytics
- Chart lineData chart line m4 17l5-5 4 4 7-9m4 20h16 data icon growth
- CardInterface card m5 7h14v10h5v7zm3 3h8m8 14h5 interface icon panel
- DashboardInterface dashboard m4 5h7v7h4v5zm9 0h7v5h-7v5zm4 14h7v5h4v-5zm9-2h7v7h-7v-7z interface icon layout
- MobileInterface mobile m8 3h8a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h8a2 2 0 0 1-2-2v5a2 2 0 0 1 2-2zm3 15h4 interface icon phone
- WindowInterface window m4 5h16v14h4v5zm0 4h16m8 7h.01m11 7h.01 interface icon browser
- GlobePlaces globe m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0zm3 12h18m12 3c2 2.5 3 5.5 3 9s-1 6.5-3 9m12 3c-2 2.5-3 5.5-3 9s1 6.5 3 9 places icon world web
- Map pinPlaces map pin m12 21s7-5.5 7-11a7 7 0 1 0-14 0c0 5.5 7 11 7 11zm0-8a3 3 0 1 0 0-6 3 3 0 0 0 0 6z places icon location
- StarObjects star m12 3l2.7 5.5 6.1.9-4.4 4.3 1 6-5.4-2.9-5.4 2.9 1-6-4.4-4.3 6.1-.9l12 3z objects icon favorite
- HeartObjects heart m12 20s-8-4.8-8-11a4.5 4.5 0 0 1 8-2.8a4.5 4.5 0 0 1 20 9c0 6.2-8 11-8 11z objects icon love
- SparklesObjects sparkles m12 3l1.8 5.2l19 10l-5.2 1.8l12 17l-1.8-5.2l5 10l5.2-1.8l12 3zm6 9 .9 2.6 2.6.9-2.6.9l18 20l-.9-2.6-2.6-.9 2.6-.9l18 12z objects icon magic ai
- RocketObjects rocket m5 19c1.5-4 4-6.5 8-8l2-6 4 4-6 2c-1.5 4-4 6.5-8 8zm4-4-4 4m14 6l4 4 objects icon launch
- TagCommerce tag m4 12 12 4h7v7l-8 8-7-7zm11-5h.01 commerce icon label
- Credit cardCommerce credit card m4 7h16v10h4v7zm0 3h16m7 14h4 commerce icon payment
- ReceiptCommerce receipt m7 4h10v16l-2-1-2 1-2-1-2 1-2-1-2 1v4zm3 5h4m10 13h4m10 17h2 commerce icon invoice
<script setup>
import { reactive } from 'vue';
import { DomIconSelector } from '@getdom/studio/vue';
const data = reactive({
"modelValue": "M12 5v14M5 12h14",
"id": "",
"name": "",
"label": "Icon",
"description": "",
"placeholder": "Search icons",
"required": false,
"disabled": false,
"readOnly": false,
"invalid": false,
"errors": [],
"visible": true,
"validators": [],
"validateOnBlur": true,
"chrome": "field",
"kind": "icons",
"items": [],
"includeBuiltIns": true,
"clearable": true,
"loading": false,
"placement": "bottom",
"floatingMode": "viewport",
"panelMinWidth": "20rem"
});
</script>
<template>
<DomIconSelector
v-bind="data"
@update:modelValue="data.modelValue = $event"
/>
</template>Demo
SVG path picker
Use the default icons collection when a component prop expects 24x24 SVG path data.
- AddActions add m12 5v14m5 12h14 actions icon plus new create
- RemoveActions remove m5 12h14 actions icon minus delete
- CloseActions close m6 6l12 12m18 6 6 18 actions icon dismiss x
- CheckActions check m20 6 9 17l-5-5 actions icon done success
- EditActions edit m4 20h4l19 9a2.8 2.8 0 0 0-4-4l4 16v4zm11-13 2 2 actions icon pencil compose
- CopyActions copy m8 8h11v11h8v8zm-3 8h4v4h12v1 actions icon duplicate
- ShareActions share m8 12h8m15 7l5 5-5 5m4 5v14 actions icon send
- DownloadActions download m12 4v10m8 10l4 4 4-4m5 19h14 actions icon export
- UploadActions upload m12 16v4m8 8l4-4 4 4m5 20h14 actions icon import
- SearchNavigation search m10.5 18a7.5 7.5 0 1 1 5.3-2.2l21 21 navigation icon find
- FilterNavigation filter m5 6h14m8 12h8m10 18h4 navigation icon funnel
- SettingsNavigation settings m12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zm0-5v3m12 18v3m4.2 4.2l2.1 2.1m17.7 17.7l2.1 2.1m3 12h3m18 12h3m4.2 19.8l2.1-2.1m17.7 6.3l2.1-2.1 navigation icon gear
- MenuNavigation menu m6 7h12m6 12h12m6 17h12 navigation icon list
- More horizontalNavigation more horizontal m5 12h.01m12 12h.01m19 12h.01 navigation icon ellipsis
- More verticalNavigation more vertical m12 5h.01m12 12h.01m12 19h.01 navigation icon ellipsis
- Chevron downNavigation chevron down m7 10l5 5 5-5 navigation icon expand
- Chevron upNavigation chevron up m7 14l5-5 5 5 navigation icon collapse
- Chevron leftNavigation chevron left m14 7l-5 5 5 5 navigation icon previous
- Chevron rightNavigation chevron right m10 7l5 5-5 5 navigation icon next
- Arrow leftNavigation arrow left m19 12h5m12 5l-7 7 7 7 navigation icon back
- Arrow rightNavigation arrow right m5 12h14m12 5l7 7-7 7 navigation icon forward
- Arrow upNavigation arrow up m12 19v5m5 12l7-7 7 7 navigation icon top
- Arrow downNavigation arrow down m12 5v14m5 12l7 7 7-7 navigation icon bottom
- HomeNavigation home m4 11 12 4l8 7v9h-5v-6h9v6h4v-9z navigation icon house
- External linkNavigation external link m14 5h5v5m13 11l6-6m19 14v5h5v5h5 navigation icon open
- InfoStatus info m12 17v-5m12 8h.01m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0z status icon notice
- SuccessStatus success m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0zm8.5 12.5l2.5 2.5 4.5-5 status icon check complete
- WarningStatus warning m12 4l9 16h3l12 4zm12 9v4m12 17h.01 status icon alert risk
- ErrorStatus error m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0zm15 9l-6 6m9 9l6 6 status icon danger failed
- HelpStatus help m9.5 9a2.5 2.5 0 1 1 4.2 1.8c-.9.7-1.7 1.2-1.7 2.7m12 17h.01m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0z status icon question
- LockSecurity lock m7 11v8a5 5 0 0 1 10 0v3m6 11h12v9h6v-9zm6 3v2 security icon secure
- UnlockSecurity unlock m8 11v8a5 5 0 0 1 9.5-2.2m6 11h12v9h6v-9zm6 3v2 security icon open
- ShieldSecurity shield m12 3 5 6v5c0 4.5 3 8 7 10 4-2 7-5.5 7-10v6l-7-3zm9.5 12l1.75 1.75l15 10 security icon protect
- UserPeople user m12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm5 20a7 7 0 0 1 14 0 people icon profile
- UsersPeople users m9 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm8 1a3 3 0 1 0 0-6m4 20a5 5 0 0 1 10 0m13 20a5 5 0 0 1 7-4.5 people icon team
- MailCommunication mail m4 6h16v12h4v6zm0 0 8 7 8-7 communication icon email
- MessageCommunication message m5 6h14v9h9l-4 4v6z communication icon chat comment
- BellCommunication bell m15 17h9m9-2h6l2-3v9a4 4 0 0 1 8 0v3l2 3zm10 19a2 2 0 0 0 4 0 communication icon notification
- CalendarTime calendar m7 4v3m17 4v3m5 8h14m6 6h12v13h6v6zm3 6h2m13 12h2m9 16h2 time icon date
- ClockTime clock m12 6v6l4 2m12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z time icon time
- FileFiles file m6 4h8l4 4v12h6v4zm8 0v5h5m9 13h6m9 16h4 files icon document
- FolderFiles folder m4 6h6l2 2h8v10h4v6z files icon directory
- ImageFiles image m5 6h14v12h5v6zm3 9 3-3 2 2 2-3 3 4m8 9h.01 files icon media
- CodeFiles code m8 9l-4 3 4 3m16 9l4 3-4 3m14 5l-4 14 files icon developer
- DatabaseData database m5 7c0-2 14-2 14 0v10c0 2-14 2-14 0v7zm0 0c0 2 14 2 14 0m5 12c0 2 14 2 14 0 data icon storage
- TableData table m5 5h14v14h5v5zm0 5h14m5 14h14m10 5v14m15 5v14 data icon grid
- Chart barData chart bar m5 19v9m12 19v5m19 19v-7m4 19h16 data icon analytics
- Chart lineData chart line m4 17l5-5 4 4 7-9m4 20h16 data icon growth
- CardInterface card m5 7h14v10h5v7zm3 3h8m8 14h5 interface icon panel
- DashboardInterface dashboard m4 5h7v7h4v5zm9 0h7v5h-7v5zm4 14h7v5h4v-5zm9-2h7v7h-7v-7z interface icon layout
- MobileInterface mobile m8 3h8a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h8a2 2 0 0 1-2-2v5a2 2 0 0 1 2-2zm3 15h4 interface icon phone
- WindowInterface window m4 5h16v14h4v5zm0 4h16m8 7h.01m11 7h.01 interface icon browser
- GlobePlaces globe m21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0zm3 12h18m12 3c2 2.5 3 5.5 3 9s-1 6.5-3 9m12 3c-2 2.5-3 5.5-3 9s1 6.5 3 9 places icon world web
- Map pinPlaces map pin m12 21s7-5.5 7-11a7 7 0 1 0-14 0c0 5.5 7 11 7 11zm0-8a3 3 0 1 0 0-6 3 3 0 0 0 0 6z places icon location
- StarObjects star m12 3l2.7 5.5 6.1.9-4.4 4.3 1 6-5.4-2.9-5.4 2.9 1-6-4.4-4.3 6.1-.9l12 3z objects icon favorite
- HeartObjects heart m12 20s-8-4.8-8-11a4.5 4.5 0 0 1 8-2.8a4.5 4.5 0 0 1 20 9c0 6.2-8 11-8 11z objects icon love
- SparklesObjects sparkles m12 3l1.8 5.2l19 10l-5.2 1.8l12 17l-1.8-5.2l5 10l5.2-1.8l12 3zm6 9 .9 2.6 2.6.9-2.6.9l18 20l-.9-2.6-2.6-.9 2.6-.9l18 12z objects icon magic ai
- RocketObjects rocket m5 19c1.5-4 4-6.5 8-8l2-6 4 4-6 2c-1.5 4-4 6.5-8 8zm4-4-4 4m14 6l4 4 objects icon launch
- TagCommerce tag m4 12 12 4h7v7l-8 8-7-7zm11-5h.01 commerce icon label
- Credit cardCommerce credit card m4 7h16v10h4v7zm0 3h16m7 14h4 commerce icon payment
- ReceiptCommerce receipt m7 4h10v16l-2-1-2 1-2-1-2 1-2-1-2 1v4zm3 5h4m10 13h4m10 17h2 commerce icon invoice
Search DOM Studio icon paths collected from the local source.
Selected path
M12 5v14M5 12h14<script setup>
import { ref } from 'vue';
import { DomIconSelector } from '../../../lib/vue';
const selectedIcon = ref('M12 5v14M5 12h14');
</script>
<template>
<div class="grid gap-4 sm:grid-cols-[minmax(0,22rem)_1fr] sm:items-start">
<DomIconSelector
v-model="selectedIcon"
label="Button icon"
description="Search DOM Studio icon paths collected from the local source."
placeholder="Search icons"
/>
<div class="rounded-xl border border-border bg-secondary/40 p-4">
<p class="text-xs font-medium uppercase tracking-wider text-muted-fg">Selected path</p>
<code class="mt-2 block break-all text-xs leading-5 text-canvas-fg">{{ selectedIcon }}</code>
</div>
</div>
</template>
Demo
Emoji picker
Switch kind to emoji for reaction pickers, labels, and other compact symbol fields.
- ๐Grinning faceSmileys grinning face ๐ smileys emoji happy smile
- ๐Slightly smiling faceSmileys slightly smiling face ๐ smileys emoji calm smile
- ๐Heart eyesSmileys heart eyes ๐ smileys emoji love delight
- ๐คThinking faceSmileys thinking face ๐ค smileys emoji question consider
- ๐Cool faceSmileys cool face ๐ smileys emoji confidence sun
- ๐Raised handsGestures raised hands ๐ gestures emoji celebrate success
- ๐Clapping handsGestures clapping hands ๐ gestures emoji applause approval
- ๐Thumbs upGestures thumbs up ๐ gestures emoji approve yes
- ๐Thumbs downGestures thumbs down ๐ gestures emoji reject no
- ๐Waving handGestures waving hand ๐ gestures emoji hello goodbye
- ๐RocketObjects rocket ๐ objects emoji launch ship
- โจSparklesObjects sparkles โจ objects emoji magic polish
- ๐ฅFireObjects fire ๐ฅ objects emoji hot urgent
- ๐กLight bulbObjects light bulb ๐ก objects emoji idea insight
- ๐PushpinObjects pushpin ๐ objects emoji pin important
- ๐PaperclipObjects paperclip ๐ objects emoji attach file
- ๐LockedObjects locked ๐ objects emoji security private
- ๐BellObjects bell ๐ objects emoji notification alert
- โ Check mark buttonStatus check mark button โ status emoji done complete
- โ ๏ธWarningStatus warning โ ๏ธ status emoji caution risk
- โCross markStatus cross mark โ status emoji error failed
- ๐ขGreen circleStatus green circle ๐ข status emoji online healthy
- ๐กYellow circleStatus yellow circle ๐ก status emoji pending warning
- ๐ดRed circleStatus red circle ๐ด status emoji offline blocked
- ๐Chart increasingWork chart increasing ๐ work emoji growth analytics
- ๐Chart decreasingWork chart decreasing ๐ work emoji decline metrics
- ๐งพReceiptWork receipt ๐งพ work emoji billing invoice
- ๐ CalendarWork calendar ๐ work emoji date schedule
- ๐ฌSpeech balloonWork speech balloon ๐ฌ work emoji comment message
- ๐งชTest tubeWork test tube ๐งช work emoji experiment lab
- ๐ฏDirect hitWork direct hit ๐ฏ work emoji target goal
- ๐ท๏ธLabelWork label ๐ท๏ธ work emoji tag price
Use the same searchable selector shape for emoji values.
<script setup>
import { ref } from 'vue';
import { DomIconSelector } from '../../../lib/vue';
const reaction = ref('๐');
</script>
<template>
<div class="grid gap-4 sm:grid-cols-[minmax(0,22rem)_1fr] sm:items-start">
<DomIconSelector
v-model="reaction"
kind="emoji"
label="Reaction"
description="Use the same searchable selector shape for emoji values."
placeholder="Search emoji"
/>
<div class="flex min-h-24 items-center justify-center rounded-xl border border-border bg-secondary/40 text-5xl">
{{ reaction }}
</div>
</div>
</template>
Demo
Custom symbols
Use kind custom with items when an app has its own symbol ids, status taxonomy, or third-party icon rows.
- ๐ฅHigh priorityStatus high priority priority-high status emoji urgent risk
- Ready to shipStatus ready to ship ready status icon done approved
- Needs reviewWorkflow needs review review workflow icon warning check
Custom rows can mix emoji, SVG path data, labels, groups, and keywords.
<script setup>
import { ref } from 'vue';
import { DomIconSelector } from '../../../lib/vue';
const selectedSymbol = ref('priority-high');
const symbols = [
{
label: 'High priority',
value: 'priority-high',
group: 'Status',
emoji: '๐ฅ',
keywords: 'urgent risk',
},
{
label: 'Ready to ship',
value: 'ready',
group: 'Status',
path: 'M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0ZM8.5 12.5l2.5 2.5 4.5-5',
keywords: 'done approved',
},
{
label: 'Needs review',
value: 'review',
group: 'Workflow',
path: 'M12 4l9 16H3L12 4ZM12 9v4M12 17h.01',
keywords: 'warning check',
},
];
</script>
<template>
<DomIconSelector
v-model="selectedSymbol"
kind="custom"
label="Workflow symbol"
description="Custom rows can mix emoji, SVG path data, labels, groups, and keywords."
:items="symbols"
/>
</template>
Reference
Props
Control props
| Name | Type | TS | Default | Description |
|---|---|---|---|---|
modelValue | string | number | boolean | object | function | string | number | boolean | Component | '' | Selected icon path, emoji, component, or custom item value. |
placeholder | string | string | 'Search icons' | Search input placeholder. |
kind | 'icons' | 'emoji' | 'mixed' | 'custom' | string | 'icons' | Built-in collection to show before custom items. |
items | array | Array< | [] | Custom icon, emoji, or symbol rows. |
includeBuiltIns | boolean | boolean | true | Include DOM Studio icon and emoji collections for the selected kind. |
clearable | boolean | boolean | true | Show a clear button when a value is selected. |
loading | boolean | string | string | false | Show an inline spinner while custom symbol rows are loading. |
placement | 'bottom' | 'top' | 'right' | 'left' | string | 'bottom' | Preferred side before collision handling. |
floatingMode | 'viewport' | 'anchor' | string | 'viewport' | viewport keeps the picker inside the browser; anchor keeps it attached while scrolling. |
panelMinWidth | string | string | '20rem' | Minimum floating panel width as a CSS length. |
Field props
| Name | Type | TS | Default | Description |
|---|---|---|---|---|
id | string | string | '' | Optional ID override. By default parent forms derive the input ID from the field path using underscores. |
name | string | string | '' | Local field name. Parent forms derive the full field path and native HTML name from the form hierarchy. |
label | string | string | '' | Visible field label. |
description | string | string | '' | Optional helper copy below the field. |
required | boolean | boolean | false | Mark the field as required. |
disabled | boolean | boolean | false | Disable field interaction. |
readOnly | boolean | boolean | false | Show the value but prevent editing. |
invalid | boolean | boolean | false | Mark the field invalid. |
errors | array | object | string | Array< | [] | Validation errors for this field. |
visible | boolean | boolean | true | Show or hide the field. |
validators | array | Array<unknown> | [] | Validators attached to this field. Use functions in Vue code, or serializable records such as { name: "minLength", props: { min: 2 } } in generated schemas. |
validateOnBlur | boolean | boolean | true | Run validators when the field loses focus. |
chrome | 'field' | 'none' | false | string | 'field' | Render default field chrome, or hide chrome while keeping form state wiring. |
Auto-generated from Icon selector.props and inline _edit hints.
Slots
| Name | Scope | Description |
|---|---|---|
| #preview | { item } | Replace the selected-value preview inside the input. |
| #item | { item, selected } | Replace each icon, emoji, or custom row in the picker panel. |
Events
| Name | Payload | Description |
|---|---|---|
| @update:modelValue | string | number | boolean | Component | Fired with the selected icon path, emoji, component, or custom item value. |
| @select | { item, value, label } | Fired when a picker item is selected. |
| @query | string | Fired as the user searches the picker. |
| @focus | โ | โ |
| @blur | โ | โ |
Names auto-detected from defineEmits and source emit() calls; payload and description from __doc.events when present.