# @salesforce-ux/c360-text-input

> A text input enable the user to interact with and input data.

Latest version **0.2.1** (published 2022-03-22) · SEE LICENSE IN README.md license · 0 weekly downloads

## Install

```sh
npm install @salesforce-ux/c360-text-input
pnpm add @salesforce-ux/c360-text-input
yarn add @salesforce-ux/c360-text-input
bun add @salesforce-ux/c360-text-input
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.2.1 |
| Published | 2022-03-22 |
| First published | 2021-12-15 |
| Weekly downloads | 0 |
| License | SEE LICENSE IN README.md |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 157.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Salesforce UX |
| Maintainers | salesforce-ux |

## Links

- npm: https://www.npmjs.com/package/@salesforce-ux/c360-text-input
- npm.io page: https://npm.io/package/@salesforce-ux/c360-text-input

## Dependencies (4)

- [nanoid](https://npm.io/package/nanoid.md) ^3.1.25
- [@salesforce-ux/c360-icon](https://npm.io/package/@salesforce-ux/c360-icon.md) ^0.1.5
- [@salesforce-ux/sds-utils](https://npm.io/package/@salesforce-ux/sds-utils.md) ^0.1.1
- [@salesforce-ux/sds-input-text](https://npm.io/package/@salesforce-ux/sds-input-text.md) ^0.1.2

## Recent versions

- 0.2.1 (latest) — 2022-03-22
- 0.2.0 — 2022-02-01
- 0.1.1 — 2022-01-05
- 0.1.0 — 2021-12-15

## README

# `@salesforce-ux/c360-text-input`

[![npm (custom registry)](https://img.shields.io/npm/v/@salesforce-ux/c360-text-input/latest?color=green&label=npm%20package)](https://www.npmjs.com/package/@salesforce-ux/c360-text-input)

## About

Inputs are the text boxes that allow users to input custom text entries with a keyboard.

## Getting Started

Let's start by installing c360-text-input as a dependency of your project with [npm](https://www.npmjs.com/package/@salesforce-ux/c360-text-input).

```
npm i @salesforce-ux/c360-text-input
```

## Distributable

After installation, all the distributables for the `c360-text-input` are found under `@salesforce-ux/c360-text-input/dist/` folder.

| File Name        | Description                                                                                                                                         |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| `text-input.css` | The CSS file for `c360-text-input` component.                                                                                                       |
| `text-input.js`  | The bundled JS file for `c360-text-input` component.This file is useful for **Non LWC** applications.([see below](#for-non-lwc-application) &rarr;) |

## Integration

For the sake of understanding, we will categorize the development environment into LWC and Non LWC application.  
This Guide will cover the integration approach for these two types of application.

### For `Lightning Web Component(LWC)` Application

> #### Dependency Inclusion

[`c360-styling-hooks`](https://www.npmjs.com/package/@salesforce-ux/c360-styling-hooks) is a styling dependency for `c360-text-input`. Hence, this needs to be embedded into your web app in order to make the `c360-text-input` render properly.

```css
/* myComponent.css */
@import '@salesforce-ux/c360-styling-hooks/dist/hooks.custom-props.css';
```

There are also other ways [`c360-styling-hooks`](https://www.npmjs.com/package/@salesforce-ux/c360-styling-hooks) can be embedded. Please checkout the [`c360-styling-hooks` Integration Guide](https://www.npmjs.com/package/@salesforce-ux/c360-styling-hooks) to learn more.

> #### Component CSS Import

```css
/* myComponent.css */
@import '@salesforce-ux/c360-styling-hooks/dist/hooks.custom-props.css';
@import '@salesforce-ux/c360-text-input/dist/text-input.css';
```

> #### HTML Decoration
>
> After that,the HTML of your LWC component template needs to be decorated to have all the named part attributes as per the [component's specification](./text-input.spec.md).
> Below is a reference to the component's structure.

```html
<div part="input-text">
  <label part="label">
    <slot></slot>
  </label>
  <div part="input-container">
    <slot name="start"></slot>
    <input part="input" />
    <slot name="end"></slot>
  </div>
</div>
<slot name="help-text"></slot>
```

### For `Non LWC` Application

> #### Dependency Inclusion [Read the section above](#dependency-inclusion)

> #### Component Import

```JS
/* myComponent.js */
import C360TextInput from '@salesforce-ux/c360-text-input/dist/text-input';
```

> #### Component Registration

```JS
/* myComponent.js */
customElements.define('c360-text-input', C360TextInput);
```

#### Example

Below is one approach to integrate your `c360-text-input` component.

##### Script

```Js
/* myComponent.js */
import '@salesforce-ux/c360-styling-hooks/dist/hooks.custom-props.css';
import C360TextInput from '@salesforce-ux/c360-text-input/dist/text-input';
window.customElements.define('c360-text-input', C360TextInput);

```

##### HTML

```html
<c360-text-input>
  Label
  <div slot="help-text">Help text goes here</div>
</c360-text-input>
```

## Interactive Demo

To see more examples with interactive demo, please visit `c360 Subsytem`'s [Storybook Environment](https://c360-subsystem-storybook.herokuapp.com/?path=/story/c360-subsystem-components-text-input--basic)

## Dependencies

This component imports the following dependencies.

- [c360-icon](https://www.npmjs.com/package/@salesforce-ux/c360-icon)

## Accessibility

- All [global `aria-*` attributes](https://www.w3.org/TR/wai-aria-1.1/#global_states) should follow all [interaction requirements](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input) per the W3C.

- When interacting with the associated label via click, it should focus the related input.

---
_Source: https://npm.io/package/@salesforce-ux/c360-text-input · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
