• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

coreui / coreui-pro / 37858285712
96%
main: 94%

Build:
Build:
LAST BUILD BRANCH: refactor/validation-aliases-v6
DEFAULT BRANCH: main
Ran 08 Oct 2026 11:15PM UTC
Jobs 1
Files 82
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

08 Oct 2026 11:14PM UTC coverage: 95.938% (+0.001%) from 95.937%
37858285712

push

github

web-flow
feat(OTPInput): take a validation state and stop watching the DOM for one (#1595)

OTPInput had no option for its state. A page could show one only by writing
.is-invalid or aria-invalid on the group, or .is-invalid on a slot, and a
MutationObserver followed those writes for the life of the component.

- validationState ('valid', 'invalid' or a state of $form-validation-states),
  from the option, data-coreui-validation-state or setConfig, sets the state.
  An .is-invalid/.is-valid class on the .form-otp element or on a slot in the
  markup is read once at start and moves to the group, since the code is one
  value; dispose gives it back where it was. The group shows the state as
  .is-{state}; while it is 'invalid' every slot carries aria-invalid="true"
  with the message in aria-describedby, and the code blocks the submit with
  the message text unless it is disabled or read-only.
- The user's next change of the code (typing, a deletion, a paste, an
  autofill) drops a given state before the change events. A change from code
  keeps it, and so does a keystroke that leaves the code as it was. A
  setConfig with only validationState updates the state without repainting
  the slots.
- aria-invalid on the group or a slot is not read, a class written after start
  changes nothing, and the observer is gone. Reports come from the value field
  through followUserValidity, and the form plugin and the stepper leave the
  value field and the slots, also slots added after start, to the component.
- A native form reset puts back the code the field started with: the value
  option when it was given, otherwise the slots' own markup. Slots seeded from
  value were left empty before. The reset also recomputes the linear tab
  order and the length of the first slot.
- A paste into a read-only code is ignored; it used to change the code.
- The value field is built with createValueField and configureValueField and
  sends input and change on every change of the code.

... (continued)

7610 of 8191 branches covered (92.91%)

Branch coverage included in aggregate %.

82 of 82 new or added lines in 1 file covered. (100.0%)

1 existing line in 1 file now uncovered.

13150 of 13448 relevant lines covered (97.78%)

1627.33 hits per line

Coverage Regressions

Lines Coverage ∆ File
1
93.82
0.18% js/src/otp-input.ts
Jobs
ID Job ID Ran Files Coverage
1 37858285712.1 08 Oct 2026 11:15PM UTC 82
95.94
GitHub Action Run
Source Files on build 37858285712
  • Tree
  • List 82
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37858285712
  • ed7246c9 on github
  • Prev Build on v6-dev (#37853764964)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc