Versions and changelog
Versioning policy, release history and how to upgrade.
The packages follow Semantic Versioning (SemVer) and are released with
Changesets. Each package has its own version and its
own CHANGELOG.md.
| Package | Current version | npm |
|---|---|---|
@akhatmirzo/ui | 0.2.0 | npmjs.com/package/@akhatmirzo/ui |
@akhatmirzo/tokens | 0.1.3 | npmjs.com/package/@akhatmirzo/tokens |
@akhatmirzo/core | 0.1.3 | npmjs.com/package/@akhatmirzo/core |
@akhatmirzo/hooks | 0.1.3 | npmjs.com/package/@akhatmirzo/hooks |
What a version number means
A version has three parts: MAJOR.MINOR.PATCH.
| Part | Example | From 1.0 on | During 0.x |
|---|---|---|---|
MAJOR | 1.4.2 → 2.0.0 | Breaking change | — |
MINOR | 0.1.3 → 0.2.0 | New feature, nothing breaks | May contain breaking changes |
PATCH | 0.1.0 → 0.1.1 | Bug fix | Bug fixes and small additions |
What 0.x means
The library is in its 0.x phase: the API is mostly settled, but it is still being polished in
real projects. During this phase:
- Patch releases (
0.1.0→0.1.1) are safe: bug fixes and additions that don't break anything. - Minor releases (
0.1→0.2) may break things: a renamed prop, a new default, a component split in two. Every such change is listed in the changelog. - 1.0.0 comes once the API is stable. After that, breaking changes only land in major releases.
How ^0.1.0 behaves
pnpm add writes "^0.1.0" to your package.json. In 0.x, the caret only accepts patch
updates: you get 0.1.5, but not 0.2.0. Moving to a minor release that might break things is
always your call.
How the packages depend on each other
@akhatmirzo/ui takes core and hooks as regular dependencies and tokens as a
peer dependency — you install the tokens yourself and import them in your CSS. Upgrade ui
and tokens together: a new component may rely on a new token.
Documentation versions
This site keeps one set of docs per minor version: v0.1, v0.2 and so on. Patch releases
update the current set. Switch versions with the picker in the sidebar. Pages of an older version
show a banner with a link to the latest one.
Release history
0.2.0
@akhatmirzo/ui 0.2.0 · tokens, core, hooks 0.1.3
8 new components — no existing API changed, upgrading is safe.
- Display:
Alert,ProgressandProgressCircle,EmptyState - Selection:
Slider(single value and range),SegmentedControl - Navigation:
PaginationandPaginationInfo,Breadcrumb,Stepper - Fix: the
Tabsindicator now moves without animation underprefers-reduced-motion. - npm: descriptions and keywords updated for all packages.
0.1.0
All packages — first releaseThe first public release, published on npm under the MIT license.
@akhatmirzo/tokens— colors (light and dark), typography, radii, shadows, motion and z-index layers; a Tailwind v4@themeplus thefocus-ringandfocus-ring-withinutilities.@akhatmirzo/ui— 32 component families built on Radix and Tailwind v4:- Basics:
Button,IconButton,Kbd,Spinner - Forms:
Field,Input,Textarea,Select,Combobox,DatePicker,DateRangePicker,Calendar,MaskedInput,PhoneInput,MoneyInput,CardInput,OtpInput,FileUpload - Selection:
Checkbox,RadioGroup,Switch - Display:
Badge,Avatar,Card,Skeleton,Divider - Overlays:
Dialog(+confirm()),Drawer,Popover,Tooltip,toast(),DropdownMenu,CommandPalette - Navigation and data:
Tabs,Accordion,DataTable,VirtualList
- Basics:
@akhatmirzo/core— Uzbek-aware formatting (money, phones, cards, dates, file sizes), validation (phones, emails, cards, passwords), text (Cyrillic ↔ Latin, search, slugify), storage and an API client.@akhatmirzo/hooks— 12 hooks:useDebounce,useLocalStorage,useHotkeys,usePagination,useAsyncand more.
The full history lives in each package's CHANGELOG.md:
ui ·
tokens ·
core ·
hooks.
Upgrading
Read the changelog
Go through every entry between your version and the new one. When moving to a new minor release
in 0.x, read the Minor Changes section closely — that's where breaking changes are listed.
Upgrade the packages together
Bump every @akhatmirzo/* package you use in one command:
pnpm up "@akhatmirzo/*" --latestWith npm: npm install @akhatmirzo/ui@latest @akhatmirzo/tokens@latest (and the same for the
others).
Check
tsc --noEmit points out removed or renamed props. Then open the app and look through the main
screens in both light and dark mode.
Stick to one version
Don't end up with two versions of @akhatmirzo/ui in one project (for example, across apps in a
monorepo). Check with pnpm why @akhatmirzo/ui.