liqkit_ui
Inputs

OTP Input

LiqOtpInput is a fixed-length numeric code entry field. It renders N separate boxes that auto-advance focus as the user types — backspace on an empty box moves focus back, and pasting a string of digits fills all boxes at once.

Default

import 'package:docs_snippets/src/demo.dart';import 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget otpDefaultBuilder(BuildContext context) {  return SnippetFrame(    maxWidth: 360,    child: LiqDemo<String>(      initial: '',      builder:          (v, set) =>          LiqOtpInput(value: v, onChanged: set),    ),  );}

Four Digit

// ignore_for_file: file_names // hyphenated name required by snippet manifest conventionimport 'package:docs_snippets/src/demo.dart';import 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget otpFourDigitBuilder(BuildContext context) {  return SnippetFrame(    maxWidth: 360,    child: LiqDemo<String>(      initial: '',      builder:          (v, set) =>          LiqOtpInput(value: v, onChanged: set, length: 4),    ),  );}

Obscure

import 'package:docs_snippets/src/demo.dart';import 'package:docs_snippets/src/snippet_frame.dart';import 'package:flutter/widgets.dart';import 'package:liqkit_ui/liqkit_ui.dart';/// Snippet builder consumed by `apps/docs_snippets/lib/src/routes.g.dart`.Widget otpObscureBuilder(BuildContext context) {  return SnippetFrame(    maxWidth: 360,    child: LiqDemo<String>(      initial: '',      builder:          (v, set) =>          LiqOtpInput(value: v, onChanged: set, obscure: true),    ),  );}