pixelplay 1.0.13 → 1.1.1
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/CHANGELOG.md +146 -61
- package/README.md +91 -91
- package/dist/index.js +107 -63
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +129 -85
- package/dist/index.mjs.map +1 -1
- package/dist/server.js.map +1 -1
- package/dist/server.mjs.map +1 -1
- package/package.json +75 -80
package/CHANGELOG.md
CHANGED
|
@@ -1,61 +1,146 @@
|
|
|
1
|
-
# Changelog
|
|
2
|
-
|
|
3
|
-
All notable changes to **PixelPlay UI** are documented here.
|
|
4
|
-
|
|
5
|
-
This project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## [1.
|
|
10
|
-
|
|
11
|
-
### Added
|
|
12
|
-
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
###
|
|
27
|
-
|
|
28
|
-
- **
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
- **
|
|
42
|
-
- **
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- **
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
-
|
|
61
|
-
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to **PixelPlay UI** are documented here.
|
|
4
|
+
|
|
5
|
+
This project adheres to [Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## [1.1.1] — 2026-04-04
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **Calendar example pages**: Three new full-page calendar layouts — `calendar-01` (monthly view with collapsible sidebar and colour-coded event chips), `calendar-02` (weekly time-grid with rich event detail slideout), and `calendar-03` (daily time-grid for focused day planning)
|
|
14
|
+
- **Calendar examples docs page**: `/ui-kit/examples/calendar/` — docs page listing and previewing all three calendar examples with descriptions
|
|
15
|
+
- **Calendar nav entry**: "Calendar" link added to the Examples section in the docs sidebar (`DocsLayoutShell`)
|
|
16
|
+
- **Calendar examples index**: Calendar added to the examples overview page alongside Dashboards, Settings, and Auth
|
|
17
|
+
- **Rich event detail slideout** (calendar-02): Clicking any event opens a `SlideoutMenu` with colour-gradient header, tags, organiser avatar, time/location/reminder/description rows, guest list with RSVP counts and `Badge` status per guest, file attachments with type-coloured icons, and Edit/Join footer actions
|
|
18
|
+
- **Dynamic event dates** (calendar-02): Events always appear in the current week (Mon–Fri) using `getMondayOfWeek()` and `weekDay(offset)` helpers — no stale hardcoded dates
|
|
19
|
+
- **Compact event cards**: Week/day view renders short events (≤30 min) in a single-line compact layout (`py-0.5`, title · time) to prevent content overflow at small card heights
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- **Calendar event colors — dark mode**: Replaced all hardcoded `--utility-*` color tokens in `colorMap` and `cardColorMap` with theme-adaptive graphic tokens (`--graphic-N-container`, `--on-graphic-N-container`, `--graphic-N`). Event colors now correctly adapt to dark mode and custom brand themes
|
|
24
|
+
- **ViewDropdown positioning**: Changed from `absolute` to `position: fixed` with `getBoundingClientRect()` on open — escapes `overflow: hidden` on the calendar root so the dropdown is never clipped by sticky headers
|
|
25
|
+
|
|
26
|
+
### Fixed
|
|
27
|
+
|
|
28
|
+
- **Breadcrumb whitespace**: Removed extra space in `<div >` opening tag on docs page
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## [1.1.0] — 2026-04-03
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
|
|
36
|
+
- **Theme generator**: Full-featured live theme generator page with accent picker, harmony selector, font selector, roundness presets, and surface tint controls — changes apply site-wide in real time
|
|
37
|
+
- **Color harmony engine** (`color-harmony.ts`): Six standard color harmonies — monochromatic, complementary, split-complementary, analogous, triadic, and tetradic — with gap-bisection algorithm for 10-slot graphic palette distribution
|
|
38
|
+
- **Custom theme builder** (`build-custom-theme.ts`): Generates full token sets (primary, secondary, tertiary, surfaces, graphics) from accent + harmony + options; shade-level differentiation for triadic vs other harmonies
|
|
39
|
+
- **Toolbar component**: Reusable `Toolbar` with `floating`/`fixed` variants, `showLabels` prop (`"above"` | `"side"`), `ToolbarDivider`, and `useToolbarLabels()` context hook
|
|
40
|
+
- **Toolbar docs page**: Component documentation with interactive demos for variant, size, and label placement
|
|
41
|
+
- **Export panel**: TypeScript and CSS export formats for generated themes with one-click copy
|
|
42
|
+
- **Split-complementary harmony**: ±30° from complement (150° and 210° from primary hue)
|
|
43
|
+
- **Getting started page**: Expanded documentation with setup instructions
|
|
44
|
+
|
|
45
|
+
### Changed
|
|
46
|
+
|
|
47
|
+
- **Harmony naming**: Renamed to standard color theory terms — single-tone → monochromatic, contrast → complementary, neighbors → analogous, balanced → triadic, vibrant → tetradic
|
|
48
|
+
- **Default theme**: Changed from Inkwell to Rosewood
|
|
49
|
+
- **Graphic palette algorithm**: Replaced fixed 30° hue stepping with gap-bisection algorithm so chart colors adapt to each harmony's unique hue distribution
|
|
50
|
+
- **Triadic shade differentiation**: Triadic harmony uses softer shades (500 vs 600 light, 300 vs 400 dark) to visually distinguish from tetradic
|
|
51
|
+
- **Toolbar positioning**: Removed built-in `fixed` positioning from Toolbar component — positioning is now consumer-controlled via `className`, making the component composable in any layout context
|
|
52
|
+
- **Select dropdown positioning**: Replaced `useEffect` + `setState` with `useCallback`-based toggle to fix React `setState` in effect warning
|
|
53
|
+
- **DocsLayoutShell padding**: Reduced mobile padding (`px-3 py-6 sm:px-6 sm:py-10`) to prevent compounding with page-level padding
|
|
54
|
+
- **npm package**: Restructured with `tsup` bundler, added license validation, server utilities, and CSS generation script
|
|
55
|
+
|
|
56
|
+
### Fixed
|
|
57
|
+
|
|
58
|
+
- **Build error**: Added missing `"use client"` directive to Toolbar component
|
|
59
|
+
- **Select dropdown clipping**: Added `pb-72` to dropdown preview containers for overflow room
|
|
60
|
+
- **Toolbar swatch clipping**: Added `overflow-visible` to prevent border-radius from clipping ring/scale effects on accent swatches
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## [1.0.5–1.0.15] — 2026-04-01 to 2026-04-03
|
|
65
|
+
|
|
66
|
+
> These versions were published directly to npm and are not individually documented in the changelog. No git tags exist for this range.
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## [1.0.4] — 2026-04-01
|
|
71
|
+
|
|
72
|
+
### Added
|
|
73
|
+
|
|
74
|
+
- **Settings examples**: Added `settings-02` (Password & Sessions), `settings-03` (Appearance), and `settings-04` (Billing) to the examples index
|
|
75
|
+
- **Settings — Billing (`settings-04`)**: Plan selector radio cards (Basic/Business/Enterprise) and invoice history DataTable with selectable rows, status badges, and per-row download actions
|
|
76
|
+
- **Auth examples**: Added `auth-05` (Verification — check your email), `auth-06` (Verification — enter OTP code), `auth-07` (Verification — email verified), `auth-08` (Forgot password — email entry), `auth-09` (Forgot password — set new password), and `auth-10` (Forgot password — password reset)
|
|
77
|
+
- **Avatar**: New `3xl` size (96 px) added to `AvatarSize` type and `SIZE_MAP`
|
|
78
|
+
- **OptionCard widget**: New widget and docs page added to component library navigation
|
|
79
|
+
|
|
80
|
+
### Changed
|
|
81
|
+
|
|
82
|
+
- **Avatar**: `AvatarSize` type expanded with `3xl`; docs updated from 7 to 8 sizes
|
|
83
|
+
- **PageHeader** (cover + left avatar variant): Removed bottom border, upgraded avatar from `2xl` to `3xl`, tightened overlap offset, and added responsive horizontal padding to the info row
|
|
84
|
+
- **SidebarNavFeatureCard**: Removed `flex-col` from container so children control their own layout independently of the close button; action buttons updated from `ghost` to `bordered` variant
|
|
85
|
+
|
|
86
|
+
### Fixed
|
|
87
|
+
|
|
88
|
+
- **SidebarNavFeatureCard**: Close button is now absolutely positioned so it never overlaps child content
|
|
89
|
+
- **SidebarNavFeatureCard**: Replaced hand-drawn SVG close icon with `X` from `react-feather`
|
|
90
|
+
- **SidebarNavFooter**: Removed stale `padding-right` workaround that was shifting all content rightward
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## [1.0.3] — 2026-04-01
|
|
95
|
+
|
|
96
|
+
### Added
|
|
97
|
+
|
|
98
|
+
- **Auth examples**: `auth-03` (split-screen sign-in with testimonial carousel) and `auth-04` (split-screen sign-in with image only)
|
|
99
|
+
- **Sign-up examples**: `signup-01` (centered email + social), `signup-02` (header + tabs), `signup-03` (split-screen + testimonial carousel), `signup-04` (split-screen + image only)
|
|
100
|
+
- **`SplitImagePanel` widget**: New generic widget accepting any overlay content as `children`. Replaces the testimonial-specific panel. Supports image-only mode or any custom JSX overlay
|
|
101
|
+
- **`SplitImagePanel` docs page**: Component documentation with three demo sections — image only, with overlay content, and with navigation carousel
|
|
102
|
+
|
|
103
|
+
### Changed
|
|
104
|
+
|
|
105
|
+
- **Sidebar nav**: Renamed "Auth testimonial panel" entry to "Split image panel" with updated href
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## [1.0.2] — 2026-04-01
|
|
110
|
+
|
|
111
|
+
### Changed
|
|
112
|
+
|
|
113
|
+
- **Feature section grid**: Updated to 4-column layout on large screens
|
|
114
|
+
- **Feature section images**: Full-width responsive images replacing aspect-ratio crop — no content is clipped
|
|
115
|
+
- **Feature section images**: Added primary-colored overlay with `mix-blend-color` tint for grayscale thumbnails
|
|
116
|
+
- **Dark mode image previews**: Boosted brightness and reduced overlay opacity for better visibility in dark mode
|
|
117
|
+
- **Example preview containers**: Replaced raw Tailwind color scales with theme tokens for dark mode consistency
|
|
118
|
+
- **Dark mode scrim token**: Changed from opaque black to subtle white tint across all themes (default, Rosewood, Botanica, Inkwell)
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## [1.0.1] — 2026-04-01
|
|
123
|
+
|
|
124
|
+
### Added
|
|
125
|
+
|
|
126
|
+
- **Dashboard examples**: New dashboard variants (`dashboards-05`, `dashboards-06`) — analytics/map dashboard and personal finance dashboard
|
|
127
|
+
- **Country icon set**: Added `CountryFlag` component for displaying country flag icons
|
|
128
|
+
|
|
129
|
+
### Fixed
|
|
130
|
+
|
|
131
|
+
- **Button `isIconOnly`**: Icon-only buttons now correctly render `children` — previously only `startContent`/`endContent` were visible, leaving icon-only buttons empty
|
|
132
|
+
- **Button hover visibility**: Improved hover background tokens for `ghost`, `bordered`, and `light` variants (default color) — hover state is now clearly visible against surface backgrounds
|
|
133
|
+
- Removed stale `import { start } from "repl"` in Button component
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
## [1.0.0] — 2026-03-30
|
|
138
|
+
|
|
139
|
+
### Added
|
|
140
|
+
|
|
141
|
+
- Initial public release of PixelPlay UI
|
|
142
|
+
- Base components: `Button`, `ButtonGroup`, `Input`, `Textarea`, `Badge`, `BadgeGroup`, `Tag`, `Card`, `Spinner`, `Avatar`, `SocialButton`, `StoreButton`, `DropdownMenu`, `Select`, `Toggle`, `Checkbox`, `CheckboxGroup`, `Progress`, `CircularProgress`, `Slider`, `Tooltip`
|
|
143
|
+
- Application components: `Modal`, `Chart`, `Pagination`, `Messaging`, `DataTable`, `Tabs`, `Breadcrumb`, `Alert`, `Toast`, `DatePicker`, `Calendar`, `FileTypeIcon`, `FileUpload`
|
|
144
|
+
- Full TypeScript type definitions
|
|
145
|
+
- Tailwind CSS 4 theme token system with light/dark mode support
|
|
146
|
+
- Three built-in themes: Rosewood, Botanica, Inkwell
|
package/README.md
CHANGED
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
# PixelPlay UI
|
|
2
|
-
|
|
3
|
-
> A scalable React component library with production-ready components, layouts, and themes for SaaS products.
|
|
4
|
-
|
|
5
|
-
Built by [Dennis Isaac](https://dennisisaac.com) · [Live Docs](https://dennisisaac.com/ui-kit)
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Installation
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install pixelplay
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
yarn add pixelplay
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
pnpm add pixelplay
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Requirements
|
|
24
|
-
|
|
25
|
-
- React 18+
|
|
26
|
-
- Tailwind CSS 4+
|
|
27
|
-
- TypeScript 5+ (recommended)
|
|
28
|
-
|
|
29
|
-
## Quick Start
|
|
30
|
-
|
|
31
|
-
```tsx
|
|
32
|
-
import { Button, Badge, Avatar, Input } from "pixelplay";
|
|
33
|
-
|
|
34
|
-
export function MyComponent() {
|
|
35
|
-
return (
|
|
36
|
-
<div>
|
|
37
|
-
<Avatar name="Dennis Isaac" size="md" />
|
|
38
|
-
<Badge color="purple">New</Badge>
|
|
39
|
-
<Button color="primary" variant="solid">Get Started</Button>
|
|
40
|
-
</div>
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
## Theme Setup
|
|
46
|
-
|
|
47
|
-
Add the PixelPlay theme tokens to your global CSS:
|
|
48
|
-
|
|
49
|
-
```css
|
|
50
|
-
@import "pixelplay/styles";
|
|
51
|
-
|
|
52
|
-
:root {
|
|
53
|
-
/* Override theme tokens as needed */
|
|
54
|
-
--primary: oklch(55% 0.22 264);
|
|
55
|
-
}
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
## Components
|
|
59
|
-
|
|
60
|
-
| Component | Description |
|
|
61
|
-
|-----------|-------------|
|
|
62
|
-
| `Button` | Versatile button with variants, sizes, and states |
|
|
63
|
-
| `Input` | Text input with labels, validation, and add-ons |
|
|
64
|
-
| `Badge` | Status and label badges with colors |
|
|
65
|
-
| `Avatar` | User avatars with initials, images, and status |
|
|
66
|
-
| `Card` | Content container with header, body, and footer |
|
|
67
|
-
| `Toggle` | Boolean toggle switch |
|
|
68
|
-
| `Checkbox` | Checkbox with variants and groups |
|
|
69
|
-
| `Select` | Dropdown select with search |
|
|
70
|
-
| `Slider` | Range slider with dual handles |
|
|
71
|
-
| `Tooltip` | Contextual tooltips |
|
|
72
|
-
| `Modal` | Dialog modals |
|
|
73
|
-
| `Spinner` | Loading indicators |
|
|
74
|
-
| `Tag` | Dismissable tags |
|
|
75
|
-
| `Progress` | Progress bars and circular indicators |
|
|
76
|
-
|
|
77
|
-
[View all components →](https://dennisisaac.com/ui-kit)
|
|
78
|
-
|
|
79
|
-
## Versioning
|
|
80
|
-
|
|
81
|
-
PixelPlay UI follows [Semantic Versioning](https://semver.org/):
|
|
82
|
-
|
|
83
|
-
- **Patch** (`x.x.1`) — bug fixes and minor adjustments
|
|
84
|
-
- **Minor** (`x.1.0`) — new components, non-breaking additions
|
|
85
|
-
- **Major** (`1.0.0`) — breaking API changes
|
|
86
|
-
|
|
87
|
-
See [CHANGELOG.md](./CHANGELOG.md) for the full release history.
|
|
88
|
-
|
|
89
|
-
## License
|
|
90
|
-
|
|
91
|
-
MIT © [Dennis Isaac](https://dennisisaac.com)
|
|
1
|
+
# PixelPlay UI
|
|
2
|
+
|
|
3
|
+
> A scalable React component library with production-ready components, layouts, and themes for SaaS products.
|
|
4
|
+
|
|
5
|
+
Built by [Dennis Isaac](https://dennisisaac.com) · [Live Docs](https://dennisisaac.com/ui-kit)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install pixelplay
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
yarn add pixelplay
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
pnpm add pixelplay
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Requirements
|
|
24
|
+
|
|
25
|
+
- React 18+
|
|
26
|
+
- Tailwind CSS 4+
|
|
27
|
+
- TypeScript 5+ (recommended)
|
|
28
|
+
|
|
29
|
+
## Quick Start
|
|
30
|
+
|
|
31
|
+
```tsx
|
|
32
|
+
import { Button, Badge, Avatar, Input } from "pixelplay";
|
|
33
|
+
|
|
34
|
+
export function MyComponent() {
|
|
35
|
+
return (
|
|
36
|
+
<div>
|
|
37
|
+
<Avatar name="Dennis Isaac" size="md" />
|
|
38
|
+
<Badge color="purple">New</Badge>
|
|
39
|
+
<Button color="primary" variant="solid">Get Started</Button>
|
|
40
|
+
</div>
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Theme Setup
|
|
46
|
+
|
|
47
|
+
Add the PixelPlay theme tokens to your global CSS:
|
|
48
|
+
|
|
49
|
+
```css
|
|
50
|
+
@import "pixelplay/styles";
|
|
51
|
+
|
|
52
|
+
:root {
|
|
53
|
+
/* Override theme tokens as needed */
|
|
54
|
+
--primary: oklch(55% 0.22 264);
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Components
|
|
59
|
+
|
|
60
|
+
| Component | Description |
|
|
61
|
+
|-----------|-------------|
|
|
62
|
+
| `Button` | Versatile button with variants, sizes, and states |
|
|
63
|
+
| `Input` | Text input with labels, validation, and add-ons |
|
|
64
|
+
| `Badge` | Status and label badges with colors |
|
|
65
|
+
| `Avatar` | User avatars with initials, images, and status |
|
|
66
|
+
| `Card` | Content container with header, body, and footer |
|
|
67
|
+
| `Toggle` | Boolean toggle switch |
|
|
68
|
+
| `Checkbox` | Checkbox with variants and groups |
|
|
69
|
+
| `Select` | Dropdown select with search |
|
|
70
|
+
| `Slider` | Range slider with dual handles |
|
|
71
|
+
| `Tooltip` | Contextual tooltips |
|
|
72
|
+
| `Modal` | Dialog modals |
|
|
73
|
+
| `Spinner` | Loading indicators |
|
|
74
|
+
| `Tag` | Dismissable tags |
|
|
75
|
+
| `Progress` | Progress bars and circular indicators |
|
|
76
|
+
|
|
77
|
+
[View all components →](https://dennisisaac.com/ui-kit)
|
|
78
|
+
|
|
79
|
+
## Versioning
|
|
80
|
+
|
|
81
|
+
PixelPlay UI follows [Semantic Versioning](https://semver.org/):
|
|
82
|
+
|
|
83
|
+
- **Patch** (`x.x.1`) — bug fixes and minor adjustments
|
|
84
|
+
- **Minor** (`x.1.0`) — new components, non-breaking additions
|
|
85
|
+
- **Major** (`1.0.0`) — breaking API changes
|
|
86
|
+
|
|
87
|
+
See [CHANGELOG.md](./CHANGELOG.md) for the full release history.
|
|
88
|
+
|
|
89
|
+
## License
|
|
90
|
+
|
|
91
|
+
MIT © [Dennis Isaac](https://dennisisaac.com)
|