From 0bf203f2d79dee6d33014074627d9bff7e875a28 Mon Sep 17 00:00:00 2001 From: Olebogeng Mbedzi Date: Sat, 11 Apr 2026 14:22:41 +0200 Subject: [PATCH 1/3] changelog - update changelog --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 460c510..dbba3c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.4.5] - 2026-04-11 + +### Changed + +- **Build: Automated Release Workflow**: Migrated from manual releases to Changesets for automated version management and publishing. + - Integrated `@changesets/cli` for semantic versioning and changelog generation. + - Configured GitHub Actions workflow to automatically create "Version Packages" PRs when changesets are merged to main. + - Automatic npm publishing when Version PR is merged, with support for all framework adapters. + - Added automatic `package-lock.json` synchronization during version bumps to prevent CI failures. + - Simplified release process: create changeset → merge to main → automated publish. + +- **Testing: Test Environment Migration**: Migrated test environment from jsdom to happy-dom for improved performance and standards compliance. + - Updated core package test setup to use `happy-dom` instead of `jsdom`. + - Modified ResizeObserver tests to be compatible with happy-dom's implementation. + - Faster test execution with better DOM API coverage. + ## [2.4.4] - 2026-04-08 ### Fixed From 981c5f3446549c8734ad2f4805edf0b74a1ee6d2 Mon Sep 17 00:00:00 2001 From: Olebogeng Mbedzi Date: Sat, 11 Apr 2026 18:19:01 +0200 Subject: [PATCH 2/3] chore - Lock main package dependencies --- .changeset/frank-camels-raise.md | 5 +++++ packages/shimmer-from-structure/package.json | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .changeset/frank-camels-raise.md diff --git a/.changeset/frank-camels-raise.md b/.changeset/frank-camels-raise.md new file mode 100644 index 0000000..0c8abff --- /dev/null +++ b/.changeset/frank-camels-raise.md @@ -0,0 +1,5 @@ +--- +'shimmer-from-structure': minor +--- + +Lock dependencies diff --git a/packages/shimmer-from-structure/package.json b/packages/shimmer-from-structure/package.json index dcfd891..f33e715 100644 --- a/packages/shimmer-from-structure/package.json +++ b/packages/shimmer-from-structure/package.json @@ -1,6 +1,6 @@ { "name": "shimmer-from-structure", - "version": "2.4.2", + "version": "2.4.5", "description": "Universal UI skeleton generator for React, Vue and Svelte. Auto-adapts to your component structure with zero maintenance and pixel-perfect accuracy.", "main": "index.js", "types": "index.d.ts", @@ -20,11 +20,11 @@ "prepublishOnly": "cp ../../README.md ." }, "dependencies": { - "@shimmer-from-structure/react": "*", - "@shimmer-from-structure/vue": "*", - "@shimmer-from-structure/svelte": "*", - "@shimmer-from-structure/angular": "*", - "@shimmer-from-structure/solid": "*" + "@shimmer-from-structure/react": "2.4.5", + "@shimmer-from-structure/vue": "2.4.5", + "@shimmer-from-structure/svelte": "2.4.5", + "@shimmer-from-structure/angular": "2.4.5", + "@shimmer-from-structure/solid": "2.4.5" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", From 03f55220d05dae172c7a0efcad0d60e96d876098 Mon Sep 17 00:00:00 2001 From: Olebogeng Mbedzi Date: Wed, 15 Apr 2026 00:51:01 +0200 Subject: [PATCH 3/3] docs - Add number formater --- docs/app/components/Header.tsx | 5 +++-- docs/lib/formatNumber.ts | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 docs/lib/formatNumber.ts diff --git a/docs/app/components/Header.tsx b/docs/app/components/Header.tsx index 13a1f0a..912c1cd 100644 --- a/docs/app/components/Header.tsx +++ b/docs/app/components/Header.tsx @@ -3,6 +3,7 @@ import Link from 'next/link'; import { useState, useEffect } from 'react'; import { ThemeToggle } from './ThemeToggle'; +import { formatCompactNumber } from '@/lib/formatNumber'; export function Header() { const [mobileMenuOpen, setMobileMenuOpen] = useState(false); @@ -78,7 +79,7 @@ export function Header() { - {stars.toLocaleString()} + {formatCompactNumber(stars)} )} @@ -162,7 +163,7 @@ export function Header() { - {stars.toLocaleString()} + {formatCompactNumber(stars)} )} diff --git a/docs/lib/formatNumber.ts b/docs/lib/formatNumber.ts new file mode 100644 index 0000000..69e043f --- /dev/null +++ b/docs/lib/formatNumber.ts @@ -0,0 +1,21 @@ +/** + * Formats a number into a compact string representation + * @param num - The number to format + * @returns Formatted string (e.g., 1000 -> "1k", 1234 -> "1.2k", 999 -> "999") + */ +export function formatCompactNumber(num: number): string { + if (num < 1000) { + return num.toString(); + } + + const thousands = num / 1000; + const rounded = Math.round(thousands * 10) / 10; + + // If the rounded value is a whole number, show without decimal + if (rounded % 1 === 0) { + return `${Math.round(rounded)}k`; + } + + // Otherwise show one decimal place + return `${rounded}k`; +}