@kelvininc/ui-components
Version:
Kelvin UI Components
191 lines (150 loc) • 32.4 kB
Markdown
<!-- Auto Generated Below -->
## Usage
### React
```tsx
import React from 'react';
import { KvTextField } from '@kelvininc/react-ui-components';
export const TextFieldExample: React.FC = () => (
<>
{/*-- Default --*/}
<KvTextField />
{/*-- Labeled --*/}
<KvTextField label="Text Field" />
{/*-- Disabled --*/}
<KvTextField inputDisabled />
</>
);
```
## Properties
| Property | Attribute | Description | Type | Default |
| ---------------- | ------------------ | --------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- |
| `actionIcon` | `action-icon` | (optional) Icon that is added on the right of the input. Its clickable. | `EIconName` | `undefined` |
| `badge` | `badge` | (optional) Text to display inside a badge on the right side of the displayed value | `string` | `undefined` |
| `customStyle` | `custom-style` | (optional) Additional style to apply for custom CSS. | `{ [key: string]: string; }` | `undefined` |
| `examples` | `examples` | (optional) Text field example values | `string[]` | `undefined` |
| `fitContent` | `fit-content` | (optional) Enable/disable the resize of input (default: true) | `boolean` | `true` |
| `forcedFocus` | `forced-focus` | (optional) Text field focus state | `boolean` | `false` |
| `helpText` | `help-text` | (optional) Text field help text | `string \| string[]` | `[]` |
| `icon` | `icon` | (optional) Text field's icon symbol name | `EIconName` | `undefined` |
| `inputDisabled` | `input-disabled` | (optional) Text field disabled | `boolean` | `false` |
| `inputMaskRegex` | `input-mask-regex` | (optional) Input mask regex | `string` | `''` |
| `inputName` | `input-name` | (optional) Text field input name | `string` | `undefined` |
| `inputReadonly` | `input-readonly` | (optional) Text field is readonly | `boolean` | `false` |
| `inputRequired` | `input-required` | (optional) Text field required | `boolean` | `false` |
| `isDirty` | `is-dirty` | (optional) If true, a dirty dot indicator will be added to right side of the displayed value. | `boolean` | `false` |
| `label` | `label` | (optional) Text field label | `string` | `undefined` |
| `loading` | `loading` | (optional) Text field loading state | `boolean` | `false` |
| `max` | `max` | (optional) Text field maximum value | `number \| string` | `undefined` |
| `maxLength` | `max-length` | (optional) Text field maximum number of characters required | `number` | `undefined` |
| `min` | `min` | (optional) Text field minimum value | `number \| string` | `undefined` |
| `minLength` | `min-length` | (optional) Text field minimum number of characters required | `number` | `undefined` |
| `placeholder` | `placeholder` | (optional) Text field place holder | `string` | `''` |
| `size` | `size` | (optional) Sets this tab item to a different styling configuration | `EComponentSize.Large \| EComponentSize.Small` | `EComponentSize.Large` |
| `state` | `state` | (optional) Text field state | `EValidationState.Invalid \| EValidationState.None \| EValidationState.Valid` | `EValidationState.None` |
| `step` | `step` | (optional) Text field interval between legal numbers | `number \| string` | `undefined` |
| `tooltipConfig` | `tooltip-config` | (optional) Text field tooltip configuration | `{ text?: string; position?: ETooltipPosition; allowedPositions?: ETooltipPosition[]; options?: Partial<{ strategy?: Strategy; placement?: Placement; middleware?: (false \| { name: string; options?: any; fn: (state: { x: number; y: number; initialPlacement: Placement; strategy: Strategy; platform: Platform; placement: Placement; middlewareData: MiddlewareData; rects: ElementRects; elements: Elements; }) => Promisable<MiddlewareReturn>; })[]; platform?: Platform; }>; disabled?: boolean; contentElement?: HTMLElement; truncate?: boolean; delay?: number; withArrow?: boolean; customStyle?: { [key: string]: string; }; customClass?: CustomCssClass; }` | `undefined` |
| `type` | `type` | (optional) Text field type | `EInputFieldType.Date \| EInputFieldType.DateTime \| EInputFieldType.Email \| EInputFieldType.Number \| EInputFieldType.Password \| EInputFieldType.Radio \| EInputFieldType.Text` | `EInputFieldType.Text` |
| `useInputMask` | `use-input-mask` | (optional) Use a input mask when the text field type is number (default true) | `boolean` | `undefined` |
| `value` | `value` | (optional) Text field value | `number \| string` | `''` |
| `valuePrefix` | `value-prefix` | (optional) Defines the prefix that adds context to displayed values | `string` | `undefined` |
## Events
| Event | Description | Type |
| ------------------ | -------------------------------------------- | ------------------------- |
| `fieldClick` | Emmited when there's a click on this element | `CustomEvent<MouseEvent>` |
| `rightActionClick` | Emitted when the right icon is clicked | `CustomEvent<MouseEvent>` |
| `textChange` | Emitted when a keyboard input occurred | `CustomEvent<string>` |
| `textFieldBlur` | Emitted when text field lost focus | `CustomEvent<string>` |
## Methods
### `focusInput() => Promise<void>`
Focuses the input
#### Returns
Type: `Promise<void>`
## Shadow Parts
| Part | Description |
| ------------------- | ------------------------------------------------------ |
| `"badge"` | badge rendered at the right of the text field |
| `"input-container"` | container that includes the input, right and left slot |
## CSS Custom Properties
| Name | Description |
| ----------------------------------- | ---------------------------------------------- |
| `--background-color-default` | Background color when state is default. |
| `--background-color-default` | Background color when state is default. |
| `--background-color-disabled` | Background color when state is disabled. |
| `--background-color-disabled` | Background color when state is disabled. |
| `--border-color-default` | Border color when state is default. |
| `--border-color-default` | Border color when state is default. |
| `--border-color-error` | Border color when state is invalid. |
| `--border-color-error` | Border color when state is invalid. |
| `--border-color-focused` | Border color when state is focused. |
| `--border-color-focused` | Border color when state is focused. |
| `--input-height-large` | Text Field's large height. |
| `--input-height-large` | Text Field's large height. |
| `--input-height-small` | Text Field's small height. |
| `--input-height-small` | Text Field's small height. |
| `--input-max-width` | Text Field's max width. |
| `--input-max-width` | Text Field's max width. |
| `--input-min-width` | Text Field's min width. |
| `--input-min-width` | Text Field's min width. |
| `--input-width` | Text Field's width. |
| `--input-width` | Text Field's width. |
| `--text-color-action-icon-default` | Action icon color when state is default. |
| `--text-color-action-icon-default` | Action icon color when state is default. |
| `--text-color-action-icon-disabled` | Action icon color when state is disabled. |
| `--text-color-action-icon-disabled` | Action icon color when state is disabled. |
| `--text-color-action-icon-focused` | Action icon color when state is focused. |
| `--text-color-action-icon-focused` | Action icon color when state is focused. |
| `--text-color-help-text-default` | Help Text color when state is default. |
| `--text-color-help-text-default` | Help Text color when state is default. |
| `--text-color-help-text-error` | Help Text color when state is invalid. |
| `--text-color-help-text-error` | Help Text color when state is invalid. |
| `--text-color-icon-default` | Icon color when state is default. |
| `--text-color-icon-default` | Icon color when state is default. |
| `--text-color-icon-disabled` | Icon color when state is disabled. |
| `--text-color-icon-disabled` | Icon color when state is disabled. |
| `--text-color-icon-focused` | Icon color when state is focused. |
| `--text-color-icon-focused` | Icon color when state is focused. |
| `--text-color-input-default` | Input text color when state is default. |
| `--text-color-input-default` | Input text color when state is default. |
| `--text-color-input-disabled` | Input text color when state is disabled. |
| `--text-color-input-disabled` | Input text color when state is disabled. |
| `--text-color-input-focused` | Input Text color when state is focused. |
| `--text-color-input-focused` | Input Text color when state is focused. |
| `--text-color-label` | Label Text color. |
| `--text-color-label` | Label Text color. |
| `--text-color-placeholder-default` | Placeholder text color when state is default. |
| `--text-color-placeholder-default` | Placeholder text color when state is default. |
| `--text-color-placeholder-disabled` | Placeholder text color when state is disabled. |
| `--text-color-placeholder-disabled` | Placeholder text color when state is disabled. |
| `--text-color-placeholder-focused` | Placeholder text color when state is focused. |
| `--text-color-placeholder-focused` | Placeholder text color when state is focused. |
## Dependencies
### Used by
- [kv-dropdown](../dropdown)
- [kv-search](../search)
- [kv-select-create-option](../select-create-option)
### Depends on
- [kv-tooltip](../tooltip)
- [kv-form-label](../form-label)
- [kv-icon](../icon)
- [kv-dirty-dot](../dirty-dot)
- [kv-badge](../badge)
- [kv-form-help-text](../form-help-text)
### Graph
```mermaid
graph TD;
kv-text-field --> kv-tooltip
kv-text-field --> kv-form-label
kv-text-field --> kv-icon
kv-text-field --> kv-dirty-dot
kv-text-field --> kv-badge
kv-text-field --> kv-form-help-text
kv-tooltip --> kv-portal
kv-tooltip --> kv-tooltip-text
kv-dirty-dot --> kv-icon
kv-form-help-text --> kv-icon
kv-dropdown --> kv-text-field
kv-search --> kv-text-field
kv-select-create-option --> kv-text-field
style kv-text-field fill:#f9f,stroke:#333,stroke-width:4px
```
----------------------------------------------