1.0.1 • Published 10 months ago

input-on-drugs v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

input-on-drugs

An input field that lets you style the text by inserting HTML into it as you wish. All of this happens as you type in real time.

Installation

npm install input-on-drugs

Example #1 - JavaScript syntax highlighting

gif ce

Example #2 - Email Validation

validation gif

Usage

import { InputOD, highlightWords } from 'input-on-drugs';

const styles = {
  input: {
    border: '1px solid #1e90ff',
    borderRadius: '5px',
    padding: '5px 15px',
    fontSize: '16px',
    color: '#333',
    backgroundColor: '#f0f8ff',
    transition: 'all 0.3s ease-in-out',
    boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
  },
};

<InputOD
  onChangeOD={text => {
    let html = highlightWords(text, ['_', '|'], {
      style: 'color: red; font-weight: bold;',
      onlyHighlightIndependentWord: false,
    });
    return html;
  }}
  inputStyle={styles.input}
/>

InputOD props

Prop NameTypeDescription
onChangeODfunctionProvides the current text in the input. Return upgraded HTML to style the text
inputStyle?objectThe styles for the input's outer container
textStyle?objectThe styles for the input's text
initialText?stringText that is initialy present in the input field
onFocus?functionTriggered when the input is focused
onBlur?functionTriggered when the input is blurred

Note: Currently the onChangeOD only accepts and span nodes. If you pass any other nodes in the HTML then it will be converted to a span node.

Helper Methods

This package also provides some helper functions to help in the text processing stage some common situations:

highlightText(
  text: string,
  wordsToHighlight: string[],
  options?: HighlightOptions
): 

Takes in plain text and returns styled HTML based on the cofiguration provided.

HighlightOptions

Param nameTypeDescription
stylestringThe styles for the text that is being highlighted
onlyHighlightIndependentWord?booleanif you want to only highlight the word in isolation

Notes from author

This package is currently a work in progress. If you have any suggestions or ideas to expand it, then ping me at - sarthak.bakre@gmail.com

Thank You 😄

1.0.1

10 months ago

1.0.0

10 months ago