stimulus_plumbers 0.4.14 → 0.4.16

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +3 -1
  4. data/app/assets/javascripts/stimulus-plumbers/controllers.manifest.json +63 -1
  5. data/app/assets/javascripts/stimulus-plumbers/index.es.js +345 -198
  6. data/app/assets/javascripts/stimulus-plumbers/index.es.js.map +1 -1
  7. data/app/assets/javascripts/stimulus-plumbers/index.umd.js +1 -1
  8. data/app/assets/javascripts/stimulus-plumbers/index.umd.js.map +1 -1
  9. data/config/locales/en.yml +12 -0
  10. data/docs/component/combobox.md +3 -2
  11. data/docs/component/form.md +85 -18
  12. data/docs/component/indicator.md +1 -1
  13. data/docs/component/plumber.md +40 -1
  14. data/docs/component/progress.md +51 -16
  15. data/docs/guide.md +63 -4
  16. data/lib/stimulus_plumbers/components/card/slots.rb +0 -2
  17. data/lib/stimulus_plumbers/components/combobox/{builder.rb → config.rb} +7 -11
  18. data/lib/stimulus_plumbers/components/combobox.rb +12 -12
  19. data/lib/stimulus_plumbers/components/password_strength.rb +103 -0
  20. data/lib/stimulus_plumbers/components/progress/shared.rb +74 -0
  21. data/lib/stimulus_plumbers/components/progress_bar.rb +127 -25
  22. data/lib/stimulus_plumbers/components/progress_meter.rb +16 -14
  23. data/lib/stimulus_plumbers/components/progress_ring.rb +9 -23
  24. data/lib/stimulus_plumbers/components/timeline/event/slots.rb +0 -1
  25. data/lib/stimulus_plumbers/form/builder.rb +35 -8
  26. data/lib/stimulus_plumbers/form/field.rb +34 -6
  27. data/lib/stimulus_plumbers/form/fields/inputs/password/revealable.rb +72 -0
  28. data/lib/stimulus_plumbers/form/fields/inputs/password/strength.rb +31 -0
  29. data/lib/stimulus_plumbers/form/fields/inputs/password.rb +34 -65
  30. data/lib/stimulus_plumbers/form/fields/inputs/progress.rb +30 -0
  31. data/lib/stimulus_plumbers/form/fields/inputs/range.rb +81 -0
  32. data/lib/stimulus_plumbers/form/fields/inputs/text.rb +1 -1
  33. data/lib/stimulus_plumbers/form/fields/renderer.rb +41 -0
  34. data/lib/stimulus_plumbers/helpers/progress_helper.rb +14 -4
  35. data/lib/stimulus_plumbers/password/requirements.rb +182 -0
  36. data/lib/stimulus_plumbers/password_strength_validator.rb +29 -0
  37. data/lib/stimulus_plumbers/plumber/config.rb +37 -0
  38. data/lib/stimulus_plumbers/plumber/dispatcher/callable_inspector.rb +4 -0
  39. data/lib/stimulus_plumbers/plumber/slots.rb +2 -2
  40. data/lib/stimulus_plumbers/themes/schema/progress/ranges.rb +13 -0
  41. data/lib/stimulus_plumbers/themes/schema.rb +23 -4
  42. data/lib/stimulus_plumbers/version.rb +1 -1
  43. data/lib/stimulus_plumbers.rb +7 -1
  44. data/vendor/ARIA.md +10 -0
  45. data/vendor/component/manifest.json +16 -2
  46. data/vendor/controller/docs/password-strength.md +38 -0
  47. data/vendor/controller/docs/progress.md +100 -23
  48. data/vendor/controller/guide.md +61 -7
  49. data/vendor/controller/manifest.json +63 -1
  50. metadata +13 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: edc3d0887794f514d0961ed38f6c9b7728cacb5a23da472b5414a23a2e146fe6
4
- data.tar.gz: e4c6c6fa5ffe8129bc54e9c671d57f6a9ac77ed2043594042c1ecf2f38291afa
3
+ metadata.gz: e56d5cefe210da0f686e7be54c08ff9e767697f0214d60824283625f7ff86d9f
4
+ data.tar.gz: 88aac6a4b5dba83e9e8761ab18e94e2b311fb53dd81f8f6e4ec9e89bf5f31b71
5
5
  SHA512:
6
- metadata.gz: d68f9379c8acc7c91c2d5102065f3372923e6052348885ac3ced4b07c7d8700edf21e0ddc63847f0b752fe0335530ac7eb97b590393363998f2ed05857b00016
7
- data.tar.gz: 690d8715f001e049b8a4cc1bacce7788ef0bc120da8120ec83ecd066acc33e01abaaafd5a92aba0f63f4250ddc42d8066e17d01d86dc73a42ab247ad01dc3e6c
6
+ metadata.gz: 043212af4e4d4b246be667e6e76df5769f08cdadf8fa27298f4ab28deb2a60a7fb11176c6768f1c43bca25f54574a5e3b9a86b4a27f6fccf8f7eadfb817d6f6d
7
+ data.tar.gz: 929c26badcaf32e3d2a3cb6e264b7f86d18487b3edc570b97589c4aaa40f54a45c4a0ae4800591a059e62f11e1718f88cd3818cff7aeeda003ee58116f3a2741
data/CHANGELOG.md CHANGED
@@ -2,6 +2,21 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
4
4
 
5
+ ---
6
+ ## [0.4.15](https://github.com/ryancyq/stimulus-plumbers/compare/stimulus-plumbers-rails/v0.4.14..stimulus-plumbers-rails/v0.4.15) - 2026-07-23
7
+
8
+ ### Features
9
+
10
+ - password strength ([#191](https://github.com/ryancyq/stimulus-plumbers/issues/191)) - ([2f7ad55](https://github.com/ryancyq/stimulus-plumbers/commit/2f7ad550ab882225fd886956c586c0011af021fc)) - Ryan Chang
11
+ - segmented progress bar ([#192](https://github.com/ryancyq/stimulus-plumbers/issues/192)) - ([9c43461](https://github.com/ryancyq/stimulus-plumbers/commit/9c43461a262dc19a7546aadadefaf2e4e75a4acb)) - Ryan Chang
12
+
13
+ ---
14
+ ## [0.4.14](https://github.com/ryancyq/stimulus-plumbers/compare/stimulus-plumbers-rails/v0.4.13..stimulus-plumbers-rails/v0.4.14) - 2026-07-20
15
+
16
+ ### Bug Fixes
17
+
18
+ - icon schema now returns aria/data attributes from svg files ([#189](https://github.com/ryancyq/stimulus-plumbers/issues/189)) - ([ea9d079](https://github.com/ryancyq/stimulus-plumbers/commit/ea9d079d10b3f802284f9fd963fda8e9cec5f02d)) - Ryan Chang
19
+
5
20
  ---
6
21
  ## [0.4.13](https://github.com/ryancyq/stimulus-plumbers/compare/stimulus-plumbers-rails/v0.4.12..stimulus-plumbers-rails/v0.4.13) - 2026-07-20
7
22
 
data/README.md CHANGED
@@ -72,13 +72,15 @@ The engine re-runs the installer before `assets:precompile` to restore a missing
72
72
  | Modal | — (JS only) | [docs/component/modal.md](docs/component/modal.md) |
73
73
  | OrderedList | `sp_ordered_list` | [docs/component/ordered_list.md](docs/component/ordered_list.md) |
74
74
  | Popover | `sp_popover` | [docs/component/popover.md](docs/component/popover.md) |
75
- | Progress | `sp_progress_bar`, `sp_progress_ring`, `sp_progress_meter` | [docs/component/progress.md](docs/component/progress.md) |
75
+ | Progress | `sp_progress_bar`, `sp_progress_segmented`, `sp_progress_ring`, `sp_progress_meter` | [docs/component/progress.md](docs/component/progress.md) |
76
76
  | Timeline | `sp_timeline`, `sp_timeline_group` | [docs/component/timeline.md](docs/component/timeline.md) |
77
77
 
78
78
  ## Form Builder
79
79
 
80
80
  `StimulusPlumbers::Form::Builder` wraps all components as model-aware form fields with automatic label, name/id, error, and ARIA wiring.
81
81
 
82
+ Password fields support strength rules that also enforce server-side via `validates :password, password_strength:`.
83
+
82
84
  → [docs/component/form.md](docs/component/form.md)
83
85
 
84
86
  ## Theming
@@ -558,6 +558,53 @@
558
558
  "actions": [],
559
559
  "dispatches": []
560
560
  },
561
+ "password-strength": {
562
+ "identifier": "password-strength",
563
+ "targets": [
564
+ "input",
565
+ "rule",
566
+ "level",
567
+ "checkIcon",
568
+ "closeIcon"
569
+ ],
570
+ "values": {
571
+ "scorer": {
572
+ "type": "String",
573
+ "default": "rules"
574
+ },
575
+ "rules": {
576
+ "type": "Array",
577
+ "default": []
578
+ },
579
+ "options": {
580
+ "type": "Object",
581
+ "default": {}
582
+ },
583
+ "labels": {
584
+ "type": "Object",
585
+ "default": {}
586
+ },
587
+ "announceDelay": {
588
+ "type": "Number",
589
+ "default": 700
590
+ }
591
+ },
592
+ "outlets": [
593
+ "progress"
594
+ ],
595
+ "classes": [],
596
+ "actions": [
597
+ "announce",
598
+ "constructor",
599
+ "drawIcons",
600
+ "drawRules",
601
+ "enhance",
602
+ "if",
603
+ "readValue",
604
+ "score"
605
+ ],
606
+ "dispatches": []
607
+ },
561
608
  "popover": {
562
609
  "identifier": "popover",
563
610
  "targets": [
@@ -616,7 +663,9 @@
616
663
  "identifier": "progress",
617
664
  "targets": [
618
665
  "fill",
619
- "meter"
666
+ "input",
667
+ "meter",
668
+ "value"
620
669
  ],
621
670
  "values": {
622
671
  "variant": {
@@ -643,6 +692,14 @@
643
692
  "type": "Number",
644
693
  "default": 0.25
645
694
  },
695
+ "segmentMode": {
696
+ "type": "String",
697
+ "default": "discrete"
698
+ },
699
+ "format": {
700
+ "type": "String",
701
+ "default": ""
702
+ },
646
703
  "optimum": {
647
704
  "type": "Number"
648
705
  },
@@ -657,11 +714,16 @@
657
714
  "classes": [],
658
715
  "actions": [
659
716
  "clamp",
717
+ "formattedValue",
660
718
  "percent",
719
+ "refresh",
661
720
  "render",
662
721
  "renderBar",
663
722
  "renderMeter",
723
+ "renderRange",
664
724
  "renderRing",
725
+ "renderSegmented",
726
+ "renderValueText",
665
727
  "setCircumference",
666
728
  "setValue"
667
729
  ],