wabi 0.9.0 → 0.11.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: 4427b2a777bf298e102d813c0a5ccb2b7919e2a76ed7bd3d20e56127671e5041
4
- data.tar.gz: ddd81feca27e709970b46be2704a58939d10a8a92405d27438cbf546bf30b878
3
+ metadata.gz: f82e3067909c8a7243ae537ec462acb209ec81b29cfbd71a2ccf0c12843e3194
4
+ data.tar.gz: c7df3c79e7200f2a8b564f3ee1282533d1644b96806e6028c777bf33589fca5a
5
5
  SHA512:
6
- metadata.gz: e462360e2f326b745027ff02f126ca10a30c3456dfb5aec439b4f41e64548a39698c48274c145eb19ec3089cd654fb5139c426af7a0ec5f98d92e7dd2ff2ebfe
7
- data.tar.gz: b2213c0ee4685e679df481349065e42a14c1112d9ea5be3866d7e2238e33c17cc35e310a7d76d44b0b7b49011b8a490316ded97ac4c8f921530e6d0a7de1f462
6
+ metadata.gz: 7504021346955e1412105b1a88cdf9bded4b9d4aec9660a5a68bf2e688c961fbfc663af465c533ffe61541ade2050ddd00a60c3a1881fa6dd183011d301d1e68
7
+ data.tar.gz: ed2a0797c11cc9b8caa4af7fe6d529d795c54978739755c7cccbac7db71d78f6e9c346b449de1803e4f77afe01f06f23f70aab767e7e5501396a68cbeb285ca8
data/CHANGELOG.md CHANGED
@@ -2,6 +2,49 @@
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.11.0 - 2026-06-01
6
+
7
+ New Table component (shadcn parity) plus a ClassMerge alignment fix.
8
+
9
+ ### Features
10
+
11
+ - **Table component.** Eight composable, semantic, static primitives mirroring
12
+ shadcn: `Table`, `TableHeader`, `TableBody`, `TableFooter`, `TableRow`,
13
+ `TableHead`, `TableCell`, `TableCaption`. Purely presentational — no JS;
14
+ sorting/pagination stay server-driven. Install with
15
+ `bin/rails g wabi:add table`.
16
+
17
+ ### Fixed
18
+
19
+ - **ClassMerge: `text-align` no longer collides with text color.** `text-left`,
20
+ `text-center`, `text-right`, `text-justify`, `text-start`, and `text-end` now
21
+ dedup in their own bucket instead of being dropped against a `text-{color}`
22
+ utility (e.g. `text-muted-foreground`). Surfaced by `TableHead`, which needs
23
+ both `text-left` and `text-muted-foreground` to survive.
24
+
25
+ ## 0.10.0 - 2026-06-01
26
+
27
+ Toast group coordination — the last long-deferred carryover.
28
+
29
+ ### Features
30
+
31
+ - **Toast Sonner-style stacking.** Toasts now collapse into a peek stack
32
+ (`visible_count`, default 3) and expand to a full spaced list on group
33
+ hover/focus. Overflow toasts are kept and surface as front toasts dismiss
34
+ (their timers hold until visible). Hovering the group pauses every timer.
35
+ `Toaster.new(visible_count:, gap:)` configure the stack. Built on a custom
36
+ two-controller coordinator (`wabi--toaster` + `wabi--toast` via Stimulus
37
+ outlets) — **not** `@zag-js/toast`, whose imperative DOM-creation model looped
38
+ against Wabi's SSR + Turbo Stream append in v0.5.
39
+ - **Swipe-to-dismiss.** Drag a toast horizontally past a threshold to dismiss it.
40
+
41
+ ### Breaking
42
+
43
+ - **Toast no longer bakes in a `translate-x` enter/exit transform.** The
44
+ slide/scale is now JS-driven inline styles; the Tailwind base fades via
45
+ opacity only. Apps that overrode the toast transform via `class:` should
46
+ remove `translate-x-*` overrides.
47
+
5
48
  ## 0.9.0 - 2026-05-31
6
49
 
7
50
  DX + polish, plus a full fix of the vertical Slider.
@@ -75,6 +75,11 @@ module Wabi
75
75
  auto full screen min max fit none px
76
76
  ].to_set.freeze
77
77
 
78
+ # Tail tokens that identify a text-alignment utility (`text-left`,
79
+ # `text-center`, etc.). These are distinct from both text-size and
80
+ # text-color so all three can coexist on the same element.
81
+ TEXT_ALIGN_TOKENS = %w[left center right justify start end].to_set.freeze
82
+
78
83
  def utility_group(utility)
79
84
  return "atom:#{utility}" if ATOM_UTILITIES.include?(utility)
80
85
 
@@ -94,6 +99,7 @@ module Wabi
94
99
  return "#{head}-#{tail}" if AXIS_FAMILIES.include?(head) && AXIS_SUFFIXES.include?(tail)
95
100
 
96
101
  if WIDTH_COLOR_FAMILIES.include?(head) && tail
102
+ return "#{head}:align" if head == "text" && TEXT_ALIGN_TOKENS.include?(tail)
97
103
  return "#{head}:size" if size_or_numeric?(tail)
98
104
  return "#{head}:color"
99
105
  end
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.9.0"
4
+ VERSION = "0.11.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.9.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Ortega