wabi 0.21.2 → 0.22.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 +51 -0
  3. data/README.md +1 -1
  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: 76e2fc0eafaeb8b688e0863f20e37b592f18053e070ffc78fa37cb8d76641dc0
4
- data.tar.gz: b89605d55ac02263bb31580f771a5fb1f81ef24fe63527577ea9f315e57636a9
3
+ metadata.gz: aa63829705ff18ed6da1a4660d01d2792512970909a398e0f6149349edf653d7
4
+ data.tar.gz: 78fff47da0345750763544c33826377e50cdbbe3029cc4ffbb8221d6cae54448
5
5
  SHA512:
6
- metadata.gz: 9e9df2486187fd136829e802ad17a66a390c612ff4a352f09de94f41b912c1eef3317de0a9e9b41977a8f3505e8a712f2958c872de9ec7116f79e842e19523f6
7
- data.tar.gz: 493ec2990bc3bccf7622d67cdc5fdb5a1e073a61d20009774e3e36d89ba334f3706f1c2c77a6aac6203bff55f41fb45964cfa1d7197c4bad1d6980a298a71ba4
6
+ metadata.gz: 0173a3c1b910b76c02c3d12c9f9d2d1b72fc1f82df3e24d1758dfa07509660eee1a50b65c10e7ff6079e914c16e7f8bb37375cd73fc64f308b4b52eba28e4fd5
7
+ data.tar.gz: 9f0cbb4aeb4f0e79fff40c07dbe8cc2816a03a01ff6191d25c64ced171aa2fb7a5f5174d3b46fd0538cef1653636c3c86601ddd20f5f61df67af9f60868ddcda
data/CHANGELOG.md CHANGED
@@ -2,6 +2,57 @@
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.22.0 - 2026-06-05
6
+
7
+ Four new components (36 → 40), all backed by Zag.js 1.41 via `@zag-js/vanilla`.
8
+
9
+ ### Added
10
+
11
+ - **Date Picker + Calendar** (`date_picker`, `@zag-js/date-picker`). A localized date
12
+ field (input + popover calendar) and a standalone inline `Calendar`. Single and range
13
+ selection; the day grid is built from the machine at runtime; submits ISO `YYYY-MM-DD`
14
+ via hidden inputs (single → `name`; range → `name[start]` + `name[end]`). The range
15
+ shows a connecting band between the start/end days (plus a hover preview). The field
16
+ input has an accessible name (`aria-label`, default "Choose date", overridable).
17
+ - **Input OTP** (`input_otp`, `@zag-js/pin-input`). One-time-code / PIN input — N
18
+ single-character slots (default 6) that submit a single concatenated hidden value.
19
+ `length`, `type` (`:numeric` / `:alphanumeric`), `mask`, and `otp`
20
+ (`autocomplete="one-time-code"`) are configurable.
21
+ - **File Upload** (`file_upload`, `@zag-js/file-upload`). Drag-and-drop dropzone + browse
22
+ button + a file list (name, size, remove, image thumbnail) rendered from the accepted
23
+ files. Backed by a real `<input type="file">` so a standard Rails multipart submit posts
24
+ the files; `name` gains `[]` and `multiple` when `max_files > 1`. `accept` / `max_size`
25
+ constraints supported.
26
+ - **Context Menu** (`context_menu`, `@zag-js/menu`). Right-click menu opening at the
27
+ cursor, with full DropdownMenu parity — items, label, separator, shortcut, checkbox and
28
+ radio items, and N-level submenus.
29
+
30
+ ### Deferred
31
+
32
+ - Date Picker: multi-month side-by-side view (range still spans months via prev/next).
33
+ - Input OTP: groups + separator (e.g. 3-3).
34
+ - File Upload: ActiveStorage direct-upload, chunked/resumable uploads, progress bars.
35
+
36
+ ## 0.21.3 - 2026-06-05
37
+
38
+ ### Accessibility
39
+
40
+ - **`SidebarTrigger` now announces state.** It registers as a `wabi--sidebar`
41
+ controller target, and the controller reflects `aria-expanded` (expanded vs.
42
+ collapsed on desktop, off-canvas open vs. closed on mobile) and points
43
+ `aria-controls` at the sidebar panel (which is given a stable id).
44
+ - **Mobile panel is a proper modal.** When the sidebar opens off-canvas on mobile
45
+ it becomes `role="dialog"` with `aria-modal="true"` (cleared on close); the panel
46
+ also carries a default `aria-label` ("Sidebar"), overridable via `aria-label:`.
47
+ - **`⌘/Ctrl+B` is scoped.** The toggle shortcut is now ignored while focus is in an
48
+ `input`, `textarea`, `select`, or `contenteditable` element, so it no longer
49
+ collides with editors' bold shortcut.
50
+
51
+ ### Changed
52
+
53
+ - **Docs:** the sidebar page now shows the shell variants (floating / inset)
54
+ directly under the main example, matching the other component pages.
55
+
5
56
  ## 0.21.2 - 2026-06-04
6
57
 
7
58
  ### Added
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.21.2 alpha — [available on RubyGems](https://rubygems.org/gems/wabi). 36 components, 8 theme palettes, WCAG-AA targeted, live docs + registry at [wabi-docs.onrender.com](https://wabi-docs.onrender.com).
7
+ 🎉 **Status:** v0.22.0 alpha — [available on RubyGems](https://rubygems.org/gems/wabi). 40 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
 
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.21.2"
4
+ VERSION = "0.22.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.21.2
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Ortega