clack 0.4.6 → 0.6.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: e27f6e6ab9835d2855570ebdcd9b74a581becaffad5ba6a814e54ec5d44097b2
4
- data.tar.gz: 8788e05802f917a1a6abe06697a4ca47ff451da0235d7336b560adf8558451a0
3
+ metadata.gz: b4723c11dc0a0944ea3a56337800aac60ec1ae3db29094f7f98e77f87b38caa2
4
+ data.tar.gz: 8b9bc87d58955147a0d000e94db0094832cb02dea4a92fd13d11618322fe5578
5
5
  SHA512:
6
- metadata.gz: 173ead18da184ea230092d263bb4e607eb623c788fcdfae7d4315afbebe140bbe5335e42fa7c7ee460481916e46a6fda464f9b13f8d011228648dcf13a799704
7
- data.tar.gz: 56fd6c8cbca6c610cb73941f565c84e62c6bcc38d5b48741c35c52b86c14e45ff858219e5973669d1db7beb4bb045259d11daa60d172d3e2603ad16c04e2e812
6
+ metadata.gz: 70f8abc4ace88dd272abb4022b29819acc7ce3be50b6d1fa0926a4e3e70cc46f48de71ec3840229b55ac7f4cf857d7551d5ff55d35063e96992e1d73e418d1ff
7
+ data.tar.gz: 82950f8271b8e672c95d4f05c77749566e54d01db88fe62635ff7dd45b75fb846076497e8d5d6fee41fbf45f3088939f1f4eab13020fcbcc482ad0e7d2366e66
data/CHANGELOG.md CHANGED
@@ -1,5 +1,43 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.0] - 2026-05-30
4
+
5
+ ### Added
6
+ - `Option`, `SelectKeyOption`, `GroupHeader`, and `GroupOption` value objects for normalized prompt options
7
+ - Hash-style `[]` access on option value objects for compatibility with existing custom autocomplete filters
8
+ - Display-width coverage for CJK, fullwidth forms, Hangul, emoji, ZWJ emoji sequences, flag emoji, combining marks, and ANSI-colored text
9
+
10
+ ### Changed
11
+ - Option-based prompts now normalize strings, symbols, and hashes into typed value objects instead of bare hashes
12
+ - Autocomplete and multiselect filtering now operate on normalized option objects while preserving `opt[:key]` access patterns
13
+ - Text wrapping, truncation, box titles, and note layout now measure terminal display columns instead of Ruby string length
14
+ - Progress rendering skips duplicate intermediate frames during rapid updates
15
+
16
+ ### Fixed
17
+ - CJK, emoji, combining characters, and ANSI sequences no longer throw off prompt alignment, wrapping, truncation, note padding, or box title width
18
+ - `Tasks#run` restores cursor visibility even when task execution raises
19
+ - `SelectKey` option normalization resolves the value object through the correct namespace
20
+
21
+ ## [0.5.0] - 2026-03-27
22
+
23
+ ### Breaking
24
+ - Renamed `@cursor` to `@option_index` in all option-based prompts (affects subclasses)
25
+ - Signal handlers and `at_exit` moved into `Clack.setup!` (called automatically on first prompt)
26
+
27
+ ### Changed
28
+ - Extracted `SelectionManager` module shared by Multiselect, AutocompleteMultiselect, GroupMultiselect
29
+ - SIGWINCH handler is now async-signal-safe (sets flag, flushed in render loop)
30
+ - `OptionsHelper` navigation generalized via `navigable_items`
31
+ - `Multiselect` raises `ArgumentError` on `initial_value:` (must use `initial_values:`)
32
+
33
+ ### Added
34
+ - `Clack.setup!` / `Clack.setup?` for explicit signal handler installation
35
+ - `KeyQueue` in `Clack::Testing` for deterministic key simulation in specs
36
+ - New specs for SelectionManager, OptionsHelper, Prompt internals, CI mode
37
+
38
+ ### Docs
39
+ - README rewritten with badges, before/after comparison, reorganized sections
40
+
3
41
  ## [0.4.6] - 2026-03-22
4
42
 
5
43
  ### Fixed