component InputGroup { outputs { input(payload: { value?: string | number | boolean | null; values?: Array; sourceEvent?: Event; [key: string]: string | number | boolean | null | object } | string | number | boolean | null) change(payload: { value?: string | number | boolean | null; values?: Array; sourceEvent?: Event; [key: string]: string | number | boolean | null | object } | string | number | boolean | null) focus(payload: { sourceEvent?: Event; [key: string]: string | number | boolean | null | object }) blur(payload: { sourceEvent?: Event; [key: string]: string | number | boolean | null | object }) submit(payload: { value: string | number | boolean | null | object; name: string; sourceEvent: Event }) action(payload: { name: string; sourceEvent: Event }) } props { size: string = "default" color: string = "primary" id: string = "" name: string = "" label: string = "Input group" hiddenLabel: boolean = false value: string = "" placeholder: string = "" type: string = "text" startText: string = "" endText: string = "" icon: string = "" iconPosition: string = "start" actionLabel: string = "" helperText: string = "" cornerHint: string = "" error: string = "" inline: boolean = false variant: string = "normal" readonly: boolean = false disabled: boolean = false required: boolean = false class: string = "" } functions { client function emitField(nameEvent, sourceEvent) { sourceEvent.stopPropagation(); output[nameEvent]({ value: sourceEvent.currentTarget.value, name: name, sourceEvent: sourceEvent }) } client function handleKeydown(sourceEvent) { if (sourceEvent.key === "Enter") { sourceEvent.stopPropagation(); output.submit({ value: sourceEvent.currentTarget.value, name: name, sourceEvent: sourceEvent }) } } client function handleAction(sourceEvent) { output.action({ name: name, sourceEvent: sourceEvent }) } } view {
{#if cornerHint}{cornerHint}{/if}
{#if startText}{startText}{/if} {#if icon}{/if} {#if endText}{endText}{/if} {#if actionLabel}{/if}
{#if helperText}{helperText}{/if}{error}
} style { .wire-next__input-group-control { overflow: hidden; border: 1px solid var(--wire-color-border); border-radius: var(--wire-radius-sm); background: var(--wire-color-surface); } .wire-next__input-group-control input { flex: 1; min-width: 0; border: 0; box-shadow: none; } .wire-next__input-addon, .wire-next__input-group-control button { padding: 0.7rem 0.85rem; white-space: nowrap; } .wire-next__input-group-control button { align-self: stretch; border: 0; background: var(--wire-field-color); color: var(--wire-color-primary-contrast, #fff); font: inherit; font-weight: 700; cursor: pointer; } } }