@akashlimbani18/tail-admin-ui 1.0.4 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,7 +8,7 @@ This project is configured as a token-driven design system with:
8
8
 
9
9
  ## Component Structure
10
10
 
11
- - `src/components/atoms` - base UI elements (`Button`, `Input`, `Text`)
11
+ - `src/components/atoms` - base UI elements (`Button`, `Input`, `OtpInput`, `Text`)
12
12
  - `src/components/molecules` - composed controls (`FormField`, `Alert`)
13
13
  - `src/components/organisms` - larger UI blocks (`StatsCard`)
14
14
 
@@ -53,3 +53,41 @@ Open Foundations + Components stories:
53
53
  - `Components/Atoms/*`
54
54
  - `Components/Molecules/*`
55
55
  - `Components/Organisms/*`
56
+
57
+ ## Changelog
58
+
59
+ Release notes for published versions of `@akashlimbani18/tail-admin-ui`. Newest first.
60
+
61
+ ### `1.0.5`
62
+
63
+ **Added**
64
+
65
+ - **`OtpInput`** (`Components/Atoms/OtpInput`) — multi-cell one-time password input for email/SMS verification flows.
66
+ - Controlled `value` / `onChange` API (digits-only string)
67
+ - Configurable `length` (default **`6`**, exported as `OTP_LENGTH`)
68
+ - Sizes: `sm` | `md` | `lg` (aligned with `Input`)
69
+ - States: `default` | `error` | `success` (same border/focus tokens as `Input`)
70
+ - Keyboard UX: paste full code, backspace to previous cell, arrow keys
71
+ - Optional `autoFocus`, `disabled`, `onBlur`, and `aria-label`
72
+ - Storybook stories: Default, Email verification layout, With FormField, Sizes, Error, Disabled, 4-digit variant
73
+
74
+ **Upgrade**
75
+
76
+ ```bash
77
+ npm install @akashlimbani18/tail-admin-ui@latest
78
+ ```
79
+
80
+ ```tsx
81
+ import { OtpInput, OTP_LENGTH } from '@akashlimbani18/tail-admin-ui';
82
+
83
+ const [otp, setOtp] = useState('');
84
+
85
+ <OtpInput
86
+ value={otp}
87
+ onChange={setOtp}
88
+ length={OTP_LENGTH}
89
+ size="lg"
90
+ state="default"
91
+ autoFocus
92
+ />
93
+ ```