lion/docs/components/input-stepper/use-cases.md
gerjanvangeest 5dc2205d7d
feat(input-stepper): add aria-valuemin, aria-valuemax and an option t… (#2423)
* feat(input-stepper): add aria-valuemin, aria-valuemax and an option to set aria-valuetext

* chore: change valueText into an Object

* chore: remove reflect of valueText

* Update packages/ui/components/input-stepper/src/LionInputStepper.js

Co-authored-by: Oleksii Kadurin <ovkadurin@gmail.com>

* Update packages/ui/components/input-stepper/src/LionInputStepper.js

Co-authored-by: Oleksii Kadurin <ovkadurin@gmail.com>

* chore: rename valueText to valueTextMapping

---------

Co-authored-by: Oleksii Kadurin <ovkadurin@gmail.com>
2024-12-04 11:59:09 +01:00

2.1 KiB

Input Stepper >> Use Cases ||20

import { html } from '@mdjs/mdjs-preview';
import { loadDefaultFeedbackMessages } from '@lion/ui/validate-messages.js';
import '@lion/ui/define/lion-input-stepper.js';
loadDefaultFeedbackMessages();

Default

When no range or step is defined, it can go infinite with default step value as 1. You can also specify prefix content using after slot.

<lion-input-stepper name="year">
  <label slot="label">How old is the existence?</label>
  <div slot="after" data-description>In Billion Years</div>
</lion-input-stepper>

Attributes & Properties

Step and Value

Use step attribute to specify the incrementor or decrementor difference and value to set the default value.

<lion-input-stepper
  label="Amount of oranges"
  min="100"
  step="100"
  name="value"
  value="200"
></lion-input-stepper>

Range

Use min and max attribute to specify a range.

<lion-input-stepper
  label="Amount of oranges"
  min="200"
  max="500"
  name="value"
  step="100"
  value="200"
></lion-input-stepper>

Value text

Use the .valueTextMapping property to override the value with a text.

export const valueTextMapping = () => {
  const values = {
    1: 'first',
    2: 'second',
    3: 'third',
    4: 'fourth',
    5: 'fifth',
    6: 'sixth',
    7: 'seventh',
    8: 'eighth',
    9: 'ninth',
    10: 'tenth',
  };
  return html`
    <lion-input-stepper
      label="Order"
      min="1"
      max="10"
      name="value"
      .valueTextMapping="${values}"
    ></lion-input-stepper>
  `;
};

Formatting

Just like with the input-amount you can add the formatOptions to format the numbers to your preferences, to a different locale or adjust the amount of fractions.

export const formatting = () => {
  const format = { locale: 'nl-NL' };
  return html`
    <lion-input-stepper
      label="Amount of oranges"
      min="0"
      max="5000"
      step="100"
      name="value"
      .formatOptions="${format}"
      .modelValue="${1200}"
    ></lion-input-stepper>
  `;
};