wabi 0.11.0 → 0.12.0

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.
Files changed (5) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +19 -0
  3. data/README.md +24 -25
  4. data/lib/wabi/version.rb +1 -1
  5. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f82e3067909c8a7243ae537ec462acb209ec81b29cfbd71a2ccf0c12843e3194
4
- data.tar.gz: c7df3c79e7200f2a8b564f3ee1282533d1644b96806e6028c777bf33589fca5a
3
+ metadata.gz: a35b338300b4049fce7d6d604a749a03f2362d5347927ecaedfb22150b160698
4
+ data.tar.gz: f99b546787aeaa2e4279f94c9cf740c3087d33fee12fbf36664488bc51d2cb66
5
5
  SHA512:
6
- metadata.gz: 7504021346955e1412105b1a88cdf9bded4b9d4aec9660a5a68bf2e688c961fbfc663af465c533ffe61541ade2050ddd00a60c3a1881fa6dd183011d301d1e68
7
- data.tar.gz: ed2a0797c11cc9b8caa4af7fe6d529d795c54978739755c7cccbac7db71d78f6e9c346b449de1803e4f77afe01f06f23f70aab767e7e5501396a68cbeb285ca8
6
+ metadata.gz: eb578f5bf136083cd0c13f8762ee105ec91d5ad493883b4ed732025604e23cced1386d9a7460df988fdd3d27da08610d1bf0400bf24f0cf92a0226b50c97fc73
7
+ data.tar.gz: '09082d0e8ab2437761afc45af0e0fe1a030911086892c8e732ba4f513ebb43fd7c268a46f9502e47a9995a523883ab8e4be47fe762a251257cfa232d5d00ef72'
data/CHANGELOG.md CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  All notable changes to Wabi land here. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); versions follow [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4
4
 
5
+ ## 0.12.0 - 2026-06-01
6
+
7
+ Five new components filling common shadcn gaps. No breaking changes.
8
+
9
+ ### Features
10
+
11
+ - **Skeleton** — pulsing loading placeholder you size with utility classes.
12
+ - **Breadcrumb** — composable trail (`Breadcrumb`/`BreadcrumbList`/`BreadcrumbItem`/
13
+ `BreadcrumbLink`/`BreadcrumbPage`/`BreadcrumbSeparator`/`BreadcrumbEllipsis`),
14
+ static, no JS.
15
+ - **Pagination** — composable, link-based, server-driven
16
+ (`Pagination`/`Content`/`Item`/`Link`/`Previous`/`Next`/`Ellipsis`); active
17
+ link styling + `aria-current="page"`.
18
+ - **Progress** — value-driven progress bar with `role="progressbar"` semantics
19
+ (`value:`/`max:`), static, no JS.
20
+ - **AlertDialog** — modal confirmation built on the same `@zag-js/dialog`
21
+ machinery as Dialog, but `role="alertdialog"`, does NOT dismiss on
22
+ click-outside, and puts initial focus on the Cancel button.
23
+
5
24
  ## 0.11.0 - 2026-06-01
6
25
 
7
26
  New Table component (shadcn parity) plus a ClassMerge alignment fix.
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Wabi is an open-source UI component library for **Ruby on Rails 8**, built on **Phlex + Tailwind 4 + Stimulus + Hotwire**. Inspired by shadcn/ui, components are *copied* into your app — you own the code, customize freely, no upstream API to drift away from.
6
6
 
7
- 🎉 **Status:** v0.4.0 alpha — [available on RubyGems](https://rubygems.org/gems/wabi). 20 components, 8 theme palettes, WCAG-AA targeted, full docs site at the GitHub repo's `docs/` Rails app.
7
+ 🎉 **Status:** v0.12.0 alpha — [available on RubyGems](https://rubygems.org/gems/wabi). 33 components, 8 theme palettes, WCAG-AA targeted, full docs site at the GitHub repo's `docs/` Rails app.
8
8
 
9
9
  ---
10
10
 
@@ -31,25 +31,22 @@ Then add `@import "./wabi/tokens.css";` AFTER `@import "tailwindcss";` in your `
31
31
 
32
32
  ## What's in the box
33
33
 
34
- ### 20 components
34
+ ### 33 components
35
35
 
36
- | Static (9) | Forms (3) | Overlays (4) | Menus + Feedback (2) | Navigation (2) |
37
- |---|---|---|---|---|
38
- | Button | Checkbox | Dialog | DropdownMenu | Tabs |
39
- | Input | Switch | Drawer (4 sides) | Toast + Toaster | Accordion |
40
- | Textarea | Select | Tooltip | | |
41
- | Label | | Popover | | |
42
- | Card (compound) | | | | |
43
- | Badge | | | | |
44
- | Separator | | | | |
45
- | Alert (compound) | | | | |
46
- | Avatar (compound) | | | | |
36
+ | Group | Components |
37
+ |---|---|
38
+ | **Forms** (13) | Button, Input, Textarea, Label, Checkbox, Switch, Select, RadioGroup, Slider, Toggle, ToggleGroup, Combobox, Form |
39
+ | **Layout & Display** (7) | Card, Badge, Separator, Alert, Avatar, Table, Skeleton |
40
+ | **Overlays** (6) | Dialog, AlertDialog, Drawer (4 sides), Tooltip, Popover, Command |
41
+ | **Menus** (1) | DropdownMenu (nested submenus, checkbox + radio items) |
42
+ | **Navigation** (4) | Accordion, Tabs, Breadcrumb, Pagination |
43
+ | **Feedback** (2) | Toast + Toaster, Progress |
47
44
 
48
- All interactive components wire through **Zag.js 1.x** state machines for WAI-ARIA roles, keyboard semantics, and focus management. Toast uses a custom vanilla controller (cross-toast coordination is a v0.4 task).
45
+ Compound components (Card, Alert, Avatar, Dialog, Drawer, Table, Form, Combobox, …) ship as composable sub-component sets. All interactive components wire through **Zag.js 1.x** state machines for WAI-ARIA roles, keyboard semantics, and focus management. Toast is the one exception: it uses a custom Stimulus coordinator for Sonner-style stacking, group pause-on-hover, and swipe-to-dismiss — `@zag-js/toast`'s imperative DOM-creation model conflicts with Wabi's SSR + Turbo Stream append.
49
46
 
50
47
  ### 8 theme palettes
51
48
 
52
- `default`, `slate`, `stone`, `zinc`, `rose`, `blue`, `green`, `violet`. Light + dark variants per theme. Switch with:
49
+ `default`, `blue`, `green`, `orange`, `rose`, `stone`, `violet`, `yellow`. Light + dark variants per theme. Switch with:
53
50
 
54
51
  ```bash
55
52
  bin/rails g wabi:theme rose
@@ -137,7 +134,7 @@ bin/dev # starts registry watcher + tailwind watcher + docs server on :3000
137
134
 
138
135
  Then visit:
139
136
  - `/` — marketing landing
140
- - `/docs/components` — index of all 20 components
137
+ - `/docs/components` — index of all 33 components
141
138
  - `/docs/components/{button,dropdown_menu,dialog,tabs}` — detailed pages with live preview + source
142
139
  - `/docs/themes` — all 8 palettes side-by-side
143
140
  - `/docs/getting-started`, `/docs/theming`, `/docs/philosophy` — prose docs
@@ -174,14 +171,16 @@ Requires Node 20+ in PATH (Pagefind is fetched via `npx` on demand).
174
171
 
175
172
  | Version | Target | Status |
176
173
  |---|---|---|
177
- | v0.1 | 20 components | ✅ shipped 2026-05-26 |
178
- | v0.2 | 8 themes + theme picker | ✅ shipped 2026-05-26 |
179
- | v0.3 | Real docs site + RubyGems publish | ✅ shipped 2026-05-26 |
180
- | v0.4 | Detailed pages for all 20 components; Pagefind search; sidebar nav; theme polish | ✅ shipped 2026-05-27 |
181
- | v0.5 | `@zag-js/toast` group machine; real portal pattern; `wabi:update` generator | planned |
182
- | v0.6 | Forms expansion: RadioGroup, Toggle, ToggleGroup, Slider, Combobox, Command, Form | planned |
183
- | v0.7 | Navigation & layout: Sheet, ContextMenu, Pagination, NavigationMenu | planned |
184
- | v0.8 | Data + dates + ecosystem: Calendar, DatePicker, DataTable, Blocks, community registry | planned |
174
+ | v0.1–0.3 | 20 components, 8 themes + picker, docs site + RubyGems publish | ✅ shipped 2026-05-26 |
175
+ | v0.4 | Detailed pages for all components; Pagefind search; sidebar nav | ✅ shipped 2026-05-27 |
176
+ | v0.5 | Overlays portal to `document.body`; overlay enter/exit animations | ✅ shipped 2026-05-27 |
177
+ | v0.6 | Forms expansion: RadioGroup, Toggle, ToggleGroup, Slider, Combobox, Command, Form | ✅ shipped 2026-05-28 |
178
+ | v0.7 | Quality + finish: closing v0.5/v0.6 deferrals; one breaking change | shipped 2026-05-30 |
179
+ | v0.8 | Combobox async items; a11y win + overlay-controller hardening | shipped 2026-05-31 |
180
+ | v0.9 | `wabi:update` 3-way merge; Combobox async error state; vertical Slider | shipped 2026-05-31 |
181
+ | v0.10 | Toast group coordination (Sonner-style stacking, swipe, group pause) | shipped 2026-06-01 |
182
+ | v0.11 | Table component (shadcn parity); ClassMerge text-align fix | ✅ shipped 2026-06-01 |
183
+ | v0.12 | Skeleton, Breadcrumb, Pagination, Progress, AlertDialog | ✅ shipped 2026-06-01 |
185
184
  | v1.0 | API stability; external a11y audit | 2027-04 target |
186
185
 
187
186
  See [ROADMAP.md](./ROADMAP.md) for the long-term view and [CHANGELOG.md](./CHANGELOG.md) for the per-release detail.
@@ -190,7 +189,7 @@ See [ROADMAP.md](./ROADMAP.md) for the long-term view and [CHANGELOG.md](./CHANG
190
189
 
191
190
  ## Contributing
192
191
 
193
- Wabi is in alpha and the API is still moving. Filing issues with concrete repros, suggestions for components, or theme palette ideas is the most useful kind of contribution right now. See [CONTRIBUTING.md](./CONTRIBUTING.md) (TODO — will land before v0.4) for the per-component anatomy and the Zag.js wiring conventions used throughout.
192
+ Wabi is in alpha and the API is still moving. Filing issues with concrete repros, suggestions for components, or theme palette ideas is the most useful kind of contribution right now. A `CONTRIBUTING.md` documenting the per-component anatomy and the Zag.js wiring conventions is still on the to-do list.
194
193
 
195
194
  ---
196
195
 
data/lib/wabi/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Wabi
4
- VERSION = "0.11.0"
4
+ VERSION = "0.12.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wabi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.0
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Ortega