wabi 0.25.0 → 0.26.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8a384f4302bd3a32241bef8c7a5a5629716bf49962db16c602fce4ce915c35e3
4
- data.tar.gz: 6363df2bdf330cdbf8b181a45a42b4cd1ce41b08be7a59948c0b638a9c2abfe7
3
+ metadata.gz: 6cf18805afd72016ed1b47913331d8e4ff775a6c499416b1617855c4a64f1554
4
+ data.tar.gz: d968d9032f9cecc8f1ccfd1c0bc363ae24dbae7729e17cf11eb5d07d50ee3fe7
5
5
  SHA512:
6
- metadata.gz: 84718c3185eb5d9ed47798abf8ba892c11f0062429f85491729a39c362c14f6b762b169e2451ae01e90a36f0c3a425765b8b0fd3224783c11e6fa89d90353e52
7
- data.tar.gz: 98eb1aff33f581c80bca3ddef63773c023e03a63cd9c456c791e9089a5297ea8ca4047785ae6e7d16f08d087f8894f79e89e19b3fbb7c98d7d93dff4f6421005
6
+ metadata.gz: ad11feda811392ae825a58badd493167c65388461c0bfc05e872e93c74bff4db7b04d33411ca24027958cd1daff56af8ead5cae1c4669aa4ed562b655cc25a68
7
+ data.tar.gz: fabc543b2d794b2360c3c9811fdc9d26976846e7e44c2b8b87d97dd002ffef48fd4e29a8735892c8cf9ce5968fdbc6da8ddbf92541115781340ee7ede4dd11a2
data/CHANGELOG.md CHANGED
@@ -2,6 +2,33 @@
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.26.0 - 2026-06-09
6
+
7
+ An API-standardization pass ahead of 1.0, a documentation consistency sweep across all 49 component pages, and automated gem releases. **This release contains breaking API changes** (allowed pre-1.0 per SemVer) — they close the last naming/typing inconsistencies before the public API freezes at 1.0.
8
+
9
+ ### Breaking changes
10
+ - **accordion** — `AccordionTrigger`'s `heading_level:` (symbol, e.g. `:h3`) is now `level:` (Integer 1-6, default `3`), mirroring `CardTitle`. Pass `level: nil` to opt out of heading semantics (renders a `<div>` wrapper).
11
+ - **`aria_label:` rename** — the keyword that maps to the HTML `aria-label` attribute is now `aria_label:` (was `label:`) in: `progress`, `radio_group`, `number_input`, `input_otp`, `splitter` (resize trigger), and `context_menu` (radio group). Components that render a real `<label>` element keep `label:` (`checkbox`, `command`, `tree_view`).
12
+
13
+ ### Added
14
+ - `invalid:` on **textarea** (parity with `input`) → emits `aria-invalid="true"`.
15
+ - `aria_label:` on **dropdown_menu** radio group (parity with `context_menu`).
16
+
17
+ ### Changed (non-breaking)
18
+ - Relaxed the required `name:` keyword to optional across form inputs (`combobox`, `radio_group`, `rating_group`, `slider`, `tags_input`, `input_otp`, `number_input`, `file_upload`, `date_picker` incl. `Calendar`); **toggle_group** `type:` now defaults to `:single`. Callers that already pass these are unaffected.
19
+ - Enum defaults are now symbols: `tree_view` `selection_mode: :single`, `color_picker` `format: :rgba` (strings are still accepted — output is unchanged).
20
+ - User `class:` routes uniformly through `merge_class` in the breadcrumb/popover/alert_dialog/tooltip triggers.
21
+
22
+ ### Fixed
23
+ - `Wabi::ClassMerge.call` returns `nil` (not `""`) for an empty result, so components never emit a spurious empty `class=""` attribute.
24
+ - **date_picker** range mode no longer emits malformed `name="[start]"`/`name="[end]"` hidden inputs when `name:` is omitted.
25
+
26
+ ### Docs
27
+ - Consistency sweep across all 49 component pages: descriptions sourced from the component manifests, complete `SOURCE_PATHS` (the Source section now shows every file you install), copy-pasteable example code (no placeholders), richer variant coverage, and a missing accessibility section added to `skeleton`.
28
+
29
+ ### Tooling
30
+ - Automated gem publishing via **RubyGems Trusted Publishing (OIDC)** on `vX.Y.Z` tags — see `.github/workflows/gem-release.yml` and `RELEASING.md`. No stored credentials.
31
+
5
32
  ## 0.25.0 - 2026-06-08
6
33
 
7
34
  Component count 47 → **49**. Two new components, a project-wide WCAG-AA accessibility audit, and the first `CONTRIBUTING.md`.
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.25.0 alpha — [available on RubyGems](https://rubygems.org/gems/wabi). 49 components, 8 theme palettes, WCAG-AA audited, live docs + registry at [wabi-docs.onrender.com](https://wabi-docs.onrender.com).
7
+ 🎉 **Status:** v0.26.0 alpha — [available on RubyGems](https://rubygems.org/gems/wabi). 49 components, 8 theme palettes, WCAG-AA audited, live docs + registry at [wabi-docs.onrender.com](https://wabi-docs.onrender.com).
8
8
 
9
9
  ---
10
10
 
@@ -25,7 +25,13 @@ module Wabi
25
25
  tokens.each do |token|
26
26
  seen[group_key(token)] = token
27
27
  end
28
- seen.values.join(" ")
28
+ merged = seen.values.join(" ")
29
+ # Return nil (not "") for an all-empty merge so Phlex omits the attribute
30
+ # entirely instead of emitting a spurious `class=""`. Base-class-less
31
+ # components (e.g. breadcrumb root, popover/alert_dialog/tooltip triggers)
32
+ # call merge_class(user_class) with no class, and would otherwise render
33
+ # `class=""`. Non-empty results are unaffected.
34
+ merged.empty? ? nil : merged
29
35
  end
30
36
 
31
37
  def group_key(token)
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.25.0"
4
+ VERSION = "0.26.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.25.0
4
+ version: 0.26.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Ortega