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 +4 -4
- data/CHANGELOG.md +38 -0
- data/README.md +267 -197
- data/lib/clack/box.rb +6 -6
- data/lib/clack/core/fuzzy_matcher.rb +3 -3
- data/lib/clack/core/key_reader.rb +30 -20
- data/lib/clack/core/options_helper.rb +96 -29
- data/lib/clack/core/prompt.rb +45 -12
- data/lib/clack/core/scroll_helper.rb +10 -41
- data/lib/clack/core/selection_manager.rb +49 -0
- data/lib/clack/note.rb +4 -3
- data/lib/clack/prompts/autocomplete.rb +21 -15
- data/lib/clack/prompts/autocomplete_multiselect.rb +19 -26
- data/lib/clack/prompts/confirm.rb +8 -30
- data/lib/clack/prompts/date.rb +1 -14
- data/lib/clack/prompts/group_multiselect.rb +48 -67
- data/lib/clack/prompts/multiline_text.rb +33 -53
- data/lib/clack/prompts/multiselect.rb +27 -38
- data/lib/clack/prompts/password.rb +1 -14
- data/lib/clack/prompts/path.rb +9 -23
- data/lib/clack/prompts/progress.rb +6 -2
- data/lib/clack/prompts/range.rb +1 -14
- data/lib/clack/prompts/select.rb +18 -32
- data/lib/clack/prompts/select_key.rb +8 -8
- data/lib/clack/prompts/spinner.rb +15 -20
- data/lib/clack/prompts/tasks.rb +6 -1
- data/lib/clack/prompts/text.rb +1 -14
- data/lib/clack/testing.rb +31 -37
- data/lib/clack/utils.rb +106 -22
- data/lib/clack/version.rb +1 -1
- data/lib/clack.rb +71 -37
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b4723c11dc0a0944ea3a56337800aac60ec1ae3db29094f7f98e77f87b38caa2
|
|
4
|
+
data.tar.gz: 8b9bc87d58955147a0d000e94db0094832cb02dea4a92fd13d11618322fe5578
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|