wabi 0.23.0 → 0.24.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 +20 -0
  3. data/README.md +4 -4
  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: 70b095ae2929edf14e3fa20d3de0cbe998bda4727cc23dd3e11109889edfe180
4
- data.tar.gz: 1f99f7f34b8353bc1ac35b00ec4a330816da134249ff5adfbf0a34b39eab080c
3
+ metadata.gz: 75765e0675d366daed554a39f13e2d1c7d477755e89b0c12d166bc5f94236c24
4
+ data.tar.gz: b58622c10c1c4c8543275d363a1650568ef722b4a317eaae42f13e900347f4e7
5
5
  SHA512:
6
- metadata.gz: ef59f8d97343278ab03eca8f8ff5711dd24ef6af870e9bb308204bfbcf26daf115bd22724fc4a009a965adfe11f8c75968318ec6fe828d5dceab25c68cf56a25
7
- data.tar.gz: a0043697480bf0340cfb2a2e203b609f8630497cc902cdb34006402c6fcddea9a02d858186cef1f17c39de16a9b3671fac531f3dc64dbf0bb54a0402e19fa3fc
6
+ metadata.gz: eda7a8e1443b1e612a70cefb1ce741fe75be14b473dc3751e5a2de197f91515108416de1f5f977864d9467f12368db3cb2959b180b779325d639c17081b29f5b
7
+ data.tar.gz: ddb360636c4c5b484b4ff2b8ecfde429704f9e72a4c30060d7a64307525f14bc9c0e2eff96f5fa7203bef48d74ec2f8ae70f981d57c566299560929f793f86d7
data/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
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.24.0 - 2026-06-06
6
+
7
+ Four new components (43 → 47), all backed by Zag.js 1.41 via `@zag-js/vanilla`.
8
+
9
+ ### Added
10
+
11
+ - **Collapsible** (`collapsible`, `@zag-js/collapsible`). Toggle the visibility of a content
12
+ region with a smooth height animation (the `grid-rows-[0fr]→[1fr]` trick, no keyframes;
13
+ respects `prefers-reduced-motion`). `open` / `disabled`.
14
+ - **Splitter** (`splitter`, `@zag-js/splitter`). Resizable side-by-side panels with draggable
15
+ gutters, horizontal or vertical. Panels are configured via a `panels:` array
16
+ (`[{ id:, minSize?, maxSize? }]`); each gutter is a `role="separator"` keyboard-resizable
17
+ with arrow keys / Home / End. The Splitter fills its (sized) parent.
18
+ - **Carousel** (`carousel`, `@zag-js/carousel`). Slideshow with snap scrolling, prev/next
19
+ controls, indicators, and optional autoplay. `slide_count` (required), `slides_per_page`,
20
+ `slides_per_move`, `loop`, `orientation`, `autoplay`.
21
+ - **Navigation Menu** (`navigation_menu`, `@zag-js/navigation-menu`). Top-level site
22
+ navigation with per-item dropdown panels that open on hover and keyboard focus. Rendered
23
+ in-tree; closed panels are `inert` (removed from the tab order and a11y tree).
24
+
5
25
  ## 0.23.0 - 2026-06-06
6
26
 
7
27
  Three new components (40 → 43), all backed by Zag.js 1.41 via `@zag-js/vanilla`.
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.23.0 alpha — [available on RubyGems](https://rubygems.org/gems/wabi). 43 components, 8 theme palettes, WCAG-AA targeted, live docs + registry at [wabi-docs.onrender.com](https://wabi-docs.onrender.com).
7
+ 🎉 **Status:** v0.24.0 alpha — [available on RubyGems](https://rubygems.org/gems/wabi). 47 components, 8 theme palettes, WCAG-AA targeted, live docs + registry at [wabi-docs.onrender.com](https://wabi-docs.onrender.com).
8
8
 
9
9
  ---
10
10
 
@@ -31,15 +31,15 @@ Then add `@import "./wabi/tokens.css";` AFTER `@import "tailwindcss";` in your `
31
31
 
32
32
  ## What's in the box
33
33
 
34
- ### 43 components
34
+ ### 47 components
35
35
 
36
36
  | Group | Components |
37
37
  |---|---|
38
38
  | **Forms** (19) | Button, Input, NumberInput, Textarea, Label, Checkbox, Switch, Select, RadioGroup, Slider, Toggle, ToggleGroup, Combobox, Form, DatePicker, InputOTP, FileUpload, RatingGroup, TagsInput |
39
- | **Layout & Display** (9) | Card, Badge, Separator, Alert, Avatar, Table, DataTable, Skeleton, Sidebar |
39
+ | **Layout & Display** (11) | Card, Badge, Separator, Alert, Avatar, Table, DataTable, Skeleton, Sidebar, Carousel, Splitter |
40
40
  | **Overlays** (7) | Dialog, AlertDialog, Drawer (4 sides), Tooltip, Popover, Command, HoverCard |
41
41
  | **Menus** (2) | DropdownMenu (nested submenus, checkbox + radio items), ContextMenu |
42
- | **Navigation** (4) | Accordion, Tabs, Breadcrumb, Pagination |
42
+ | **Navigation** (6) | Accordion, Tabs, Breadcrumb, Pagination, Collapsible, NavigationMenu |
43
43
  | **Feedback** (2) | Toast + Toaster, Progress |
44
44
 
45
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.
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.23.0"
4
+ VERSION = "0.24.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.23.0
4
+ version: 0.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Ortega