diff --git a/playbook-website/Gemfile.lock b/playbook-website/Gemfile.lock index b446997650..c62bd84f5b 100644 --- a/playbook-website/Gemfile.lock +++ b/playbook-website/Gemfile.lock @@ -2,10 +2,10 @@ PATH remote: ../playbook specs: playbook_ui (17.1.0) - actionpack (>= 5.2.4.5) - actionview (>= 5.2.4.5) - activesupport (>= 5.2.4.5) - view_component (= 2.83.0) + actionpack (>= 7.1.0) + actionview (>= 7.1.0) + activesupport (>= 7.1.0) + view_component (= 4.3.0) vite_rails GEM @@ -146,7 +146,6 @@ GEM net-pop net-smtp marcel (1.1.0) - method_source (1.1.0) mini_mime (1.1.5) mini_portile2 (2.8.9) minitest (5.25.1) @@ -302,10 +301,10 @@ GEM tzinfo (>= 1.0.0) unicode-display_width (2.5.0) useragent (0.16.11) - view_component (2.83.0) - activesupport (>= 5.2.0, < 8.0) - concurrent-ruby (~> 1.0) - method_source (~> 1.0) + view_component (4.3.0) + actionview (>= 7.1.0) + activesupport (>= 7.1.0) + concurrent-ruby (~> 1) vite_rails (3.0.17) railties (>= 5.1, < 8) vite_ruby (~> 3.0, >= 3.2.2) diff --git a/playbook/Gemfile.lock b/playbook/Gemfile.lock index 00d0cff6b6..b3962bb6c2 100644 --- a/playbook/Gemfile.lock +++ b/playbook/Gemfile.lock @@ -2,164 +2,211 @@ PATH remote: . specs: playbook_ui (17.1.0) - actionpack (>= 5.2.4.5) - actionview (>= 5.2.4.5) - activesupport (>= 5.2.4.5) - view_component (= 2.83.0) + actionpack (>= 7.1.0) + actionview (>= 7.1.0) + activesupport (>= 7.1.0) + view_component (= 4.3.0) vite_rails GEM remote: https://rubygems.org/ specs: - actioncable (7.0.8.1) - actionpack (= 7.0.8.1) - activesupport (= 7.0.8.1) + actioncable (7.2.3) + actionpack (= 7.2.3) + activesupport (= 7.2.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.8.1) - actionpack (= 7.0.8.1) - activejob (= 7.0.8.1) - activerecord (= 7.0.8.1) - activestorage (= 7.0.8.1) - activesupport (= 7.0.8.1) - mail (>= 2.7.1) - net-imap - net-pop - net-smtp - actionmailer (7.0.8.1) - actionpack (= 7.0.8.1) - actionview (= 7.0.8.1) - activejob (= 7.0.8.1) - activesupport (= 7.0.8.1) - mail (~> 2.5, >= 2.5.4) - net-imap - net-pop - net-smtp - rails-dom-testing (~> 2.0) - actionpack (7.0.8.1) - actionview (= 7.0.8.1) - activesupport (= 7.0.8.1) - rack (~> 2.0, >= 2.2.4) + zeitwerk (~> 2.6) + actionmailbox (7.2.3) + actionpack (= 7.2.3) + activejob (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) + mail (>= 2.8.0) + actionmailer (7.2.3) + actionpack (= 7.2.3) + actionview (= 7.2.3) + activejob (= 7.2.3) + activesupport (= 7.2.3) + mail (>= 2.8.0) + rails-dom-testing (~> 2.2) + actionpack (7.2.3) + actionview (= 7.2.3) + activesupport (= 7.2.3) + cgi + nokogiri (>= 1.8.5) + racc + rack (>= 2.2.4, < 3.3) + rack-session (>= 1.0.1) rack-test (>= 0.6.3) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.8.1) - actionpack (= 7.0.8.1) - activerecord (= 7.0.8.1) - activestorage (= 7.0.8.1) - activesupport (= 7.0.8.1) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + useragent (~> 0.16) + actiontext (7.2.3) + actionpack (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.8.1) - activesupport (= 7.0.8.1) + actionview (7.2.3) + activesupport (= 7.2.3) builder (~> 3.1) - erubi (~> 1.4) - rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (7.0.8.1) - activesupport (= 7.0.8.1) + cgi + erubi (~> 1.11) + rails-dom-testing (~> 2.2) + rails-html-sanitizer (~> 1.6) + activejob (7.2.3) + activesupport (= 7.2.3) globalid (>= 0.3.6) - activemodel (7.0.8.1) - activesupport (= 7.0.8.1) - activerecord (7.0.8.1) - activemodel (= 7.0.8.1) - activesupport (= 7.0.8.1) - activestorage (7.0.8.1) - actionpack (= 7.0.8.1) - activejob (= 7.0.8.1) - activerecord (= 7.0.8.1) - activesupport (= 7.0.8.1) + activemodel (7.2.3) + activesupport (= 7.2.3) + activerecord (7.2.3) + activemodel (= 7.2.3) + activesupport (= 7.2.3) + timeout (>= 0.4.0) + activestorage (7.2.3) + actionpack (= 7.2.3) + activejob (= 7.2.3) + activerecord (= 7.2.3) + activesupport (= 7.2.3) marcel (~> 1.0) - mini_mime (>= 1.1.0) - activesupport (7.0.8.1) - concurrent-ruby (~> 1.0, >= 1.0.2) + activesupport (7.2.3) + base64 + benchmark (>= 0.3) + bigdecimal + concurrent-ruby (~> 1.0, >= 1.3.1) + connection_pool (>= 2.2.5) + drb i18n (>= 1.6, < 2) + logger (>= 1.4.2) minitest (>= 5.1) - tzinfo (~> 2.0) + securerandom (>= 0.3) + tzinfo (~> 2.0, >= 2.0.5) ast (2.4.2) + base64 (0.3.0) + benchmark (0.5.0) + bigdecimal (4.1.2) brakeman (7.0.0) racc - builder (3.2.4) + builder (3.3.0) byebug (11.1.3) - concurrent-ruby (1.2.3) - crass (1.0.6) - date (3.3.4) + cgi (0.5.2) + concurrent-ruby (1.3.7) + connection_pool (3.0.2) + crass (1.0.7) + date (3.5.1) diff-lcs (1.4.4) - dry-cli (1.4.1) - erubi (1.12.0) - globalid (1.2.1) + drb (2.2.3) + dry-cli (1.0.0) + erb (6.0.4) + erubi (1.13.1) + globalid (1.4.0) activesupport (>= 6.1) - i18n (1.14.4) + i18n (1.15.2) concurrent-ruby (~> 1.0) + io-console (0.8.2) + irb (1.18.0) + pp (>= 0.6.0) + prism (>= 1.3.0) + rdoc (>= 4.0.0) + reline (>= 0.4.2) json (2.7.1) language_server-protocol (3.17.0.3) - loofah (2.22.0) + logger (1.7.0) + loofah (2.25.1) crass (~> 1.0.2) nokogiri (>= 1.12.0) - mail (2.8.1) + mail (2.9.1) + logger mini_mime (>= 0.1.1) net-imap net-pop net-smtp - marcel (1.0.4) - method_source (1.0.0) + marcel (1.2.1) mini_mime (1.1.5) mini_portile2 (2.8.9) - minitest (5.22.3) - net-imap (0.4.10) + minitest (6.0.6) + drb (~> 2.0) + prism (~> 1.5) + net-imap (0.6.4.1) date net-protocol net-pop (0.1.2) net-protocol net-protocol (0.2.2) timeout - net-smtp (0.5.0) + net-smtp (0.5.1) net-protocol - nio4r (2.7.1) - nokogiri (1.19.1) + nio4r (2.7.5) + nokogiri (1.19.4) mini_portile2 (~> 2.8.2) racc (~> 1.4) parallel (1.24.0) parser (3.3.0.5) ast (~> 2.4.1) racc + pp (0.6.4) + prettyprint + prettyprint (0.2.0) + prism (1.9.0) racc (1.8.1) - rack (2.2.23) - rack-proxy (0.8.3) + rack (3.2.6) + rack-proxy (0.7.7) rack - rack-test (2.1.0) + rack-session (2.1.2) + base64 (>= 0.1.0) + rack (>= 3.0.0) + rack-test (2.2.0) rack (>= 1.3) - rails (7.0.8.1) - actioncable (= 7.0.8.1) - actionmailbox (= 7.0.8.1) - actionmailer (= 7.0.8.1) - actionpack (= 7.0.8.1) - actiontext (= 7.0.8.1) - actionview (= 7.0.8.1) - activejob (= 7.0.8.1) - activemodel (= 7.0.8.1) - activerecord (= 7.0.8.1) - activestorage (= 7.0.8.1) - activesupport (= 7.0.8.1) + rackup (2.3.1) + rack (>= 3) + rails (7.2.3) + actioncable (= 7.2.3) + actionmailbox (= 7.2.3) + actionmailer (= 7.2.3) + actionpack (= 7.2.3) + actiontext (= 7.2.3) + actionview (= 7.2.3) + activejob (= 7.2.3) + activemodel (= 7.2.3) + activerecord (= 7.2.3) + activestorage (= 7.2.3) + activesupport (= 7.2.3) bundler (>= 1.15.0) - railties (= 7.0.8.1) - rails-dom-testing (2.2.0) + railties (= 7.2.3) + rails-dom-testing (2.3.0) activesupport (>= 5.0.0) minitest nokogiri (>= 1.6) - rails-html-sanitizer (1.6.0) - loofah (~> 2.21) - nokogiri (~> 1.14) - railties (7.0.8.1) - actionpack (= 7.0.8.1) - activesupport (= 7.0.8.1) - method_source + rails-html-sanitizer (1.7.0) + loofah (~> 2.25) + nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0) + railties (7.2.3) + actionpack (= 7.2.3) + activesupport (= 7.2.3) + cgi + irb (~> 1.13) + rackup (>= 1.0.0) rake (>= 12.2) - thor (~> 1.0) - zeitwerk (~> 2.5) + thor (~> 1.0, >= 1.2.2) + tsort (>= 0.2) + zeitwerk (~> 2.6) rainbow (3.1.1) - rake (13.1.0) + rake (13.4.2) + rbs (4.0.3) + logger + prism (>= 1.6.0) + tsort + rdoc (8.0.0) + erb + prism (>= 1.6.0) + rbs (>= 4.0.0) + tsort regexp_parser (2.9.0) + reline (0.6.3) + io-console (~> 0.5) rexml (3.2.6) rspec (3.9.0) rspec-core (~> 3.9.0) @@ -202,17 +249,20 @@ GEM rubocop (>= 1.7.0, < 2.0) rubocop-ast (>= 0.4.0) ruby-progressbar (1.13.0) - thor (1.3.1) - timeout (0.4.1) + securerandom (0.4.1) + thor (1.5.0) + timeout (0.6.1) + tsort (0.2.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) tzinfo-data (1.2018.9) tzinfo (>= 1.0.0) unicode-display_width (2.5.0) - view_component (2.83.0) - activesupport (>= 5.2.0, < 8.0) - concurrent-ruby (~> 1.0) - method_source (~> 1.0) + useragent (0.16.11) + view_component (4.3.0) + actionview (>= 7.1.0) + activesupport (>= 7.1.0) + concurrent-ruby (~> 1) vite_rails (3.0.17) railties (>= 5.1, < 8) vite_ruby (~> 3.0, >= 3.2.2) @@ -220,7 +270,8 @@ GEM dry-cli (>= 0.7, < 2) rack-proxy (~> 0.6, >= 0.6.1) zeitwerk (~> 2.2) - websocket-driver (0.7.6) + websocket-driver (0.8.2) + base64 websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) will_paginate (3.3.1) @@ -233,7 +284,7 @@ DEPENDENCIES brakeman (= 7.0.0) byebug (>= 11.0.0) playbook_ui! - rails (>= 5.2.4.5) + rails (>= 7.1.0) rspec-html-matchers (= 0.9.1) rspec-rails (~> 3.8, >= 3.8.0) rubocop diff --git a/playbook/app/pb_kits/playbook/pb_pagination/pagination.html.erb b/playbook/app/pb_kits/playbook/pb_pagination/pagination.html.erb index 89c48cc212..b95edad73e 100644 --- a/playbook/app/pb_kits/playbook/pb_pagination/pagination.html.erb +++ b/playbook/app/pb_kits/playbook/pb_pagination/pagination.html.erb @@ -1,3 +1,3 @@ <%= pb_content_tag do %> - <%= will_paginate object.model, renderer: Playbook::Pagination::Rails %> + <%= helpers.will_paginate object.model, renderer: Playbook::Pagination::Rails %> <% end %> diff --git a/playbook/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.html.erb b/playbook/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.html.erb index 585dd8d99b..8a6ca30feb 100644 --- a/playbook/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.html.erb +++ b/playbook/app/pb_kits/playbook/pb_rich_text_editor/rich_text_editor.html.erb @@ -158,5 +158,5 @@ <%# Module script: rich_text_editor_rails.js %> diff --git a/playbook/app/pb_kits/playbook/pb_user_badge/user_badge.rb b/playbook/app/pb_kits/playbook/pb_user_badge/user_badge.rb index a44b869ac3..a4b0ea737b 100644 --- a/playbook/app/pb_kits/playbook/pb_user_badge/user_badge.rb +++ b/playbook/app/pb_kits/playbook/pb_user_badge/user_badge.rb @@ -16,11 +16,7 @@ def classname def display_badge @display_badge ||= begin - badge_path = File.join( - File.dirname(self.class.source_location), - "badges", - "#{badge}.svg" - ) + badge_path = Playbook.kit_path("user_badge", "badges", "#{badge}.svg") File.read(badge_path).html_safe end end diff --git a/playbook/config/brakeman.ignore b/playbook/config/brakeman.ignore new file mode 100644 index 0000000000..ced0731699 --- /dev/null +++ b/playbook/config/brakeman.ignore @@ -0,0 +1,22 @@ +{ + "ignored_warnings": [ + { + "warning_type": "Unmaintained Dependency", + "warning_code": 120, + "fingerprint": "d84924377155b41e094acae7404ec2e521629d86f97b0ff628e3d1b263f8101c", + "check_name": "EOLRails", + "message": "Support for Rails 7.2.3 ended on 2026-08-09", + "file": "Gemfile.lock", + "line": 165, + "link": "https://brakemanscanner.org/docs/warning_types/unmaintained_dependency/", + "code": null, + "render_path": null, + "location": null, + "user_input": null, + "confidence": "High", + "note": "Dev lockfile Rails 7.2 for ViewComponent 4. Acknowledging post-EOL Brakeman warning; Rails upgrade tracked separately." + } + ], + "updated": "2026-08-12 00:00:00 -0400", + "brakeman_version": "7.0.0" +} diff --git a/playbook/lib/playbook/engine.rb b/playbook/lib/playbook/engine.rb index 7714755c0b..fa7c70c648 100644 --- a/playbook/lib/playbook/engine.rb +++ b/playbook/lib/playbook/engine.rb @@ -11,8 +11,6 @@ class Engine < ::Rails::Engine g.test_framework :rspec end - config.view_component.render_monkey_patch_enabled = false - if config.respond_to?(:assets) config.assets.paths ||= [] config.assets.paths << Playbook::Engine.root.join("fonts") diff --git a/playbook/playbook_ui.gemspec b/playbook/playbook_ui.gemspec index eaa453f4aa..950c635606 100644 --- a/playbook/playbook_ui.gemspec +++ b/playbook/playbook_ui.gemspec @@ -38,15 +38,15 @@ Gem::Specification.new do |s| s.files.reject! { |file| file == "dist/chunks/lib.js" } - s.add_dependency "actionpack", ">= 5.2.4.5" - s.add_dependency "actionview", ">= 5.2.4.5" - s.add_dependency "activesupport", ">= 5.2.4.5" - s.add_dependency "view_component", "2.83.0" + s.add_dependency "actionpack", ">= 7.1.0" + s.add_dependency "actionview", ">= 7.1.0" + s.add_dependency "activesupport", ">= 7.1.0" + s.add_dependency "view_component", "4.3.0" s.add_dependency "vite_rails" s.add_development_dependency "brakeman", "7.0.0" s.add_development_dependency "byebug", ">= 11.0.0" - s.add_development_dependency "rails", ">= 5.2.4.5" + s.add_development_dependency "rails", ">= 7.1.0" s.add_development_dependency "rspec-html-matchers", "0.9.1" s.add_development_dependency "rspec-rails", "~> 3.8", ">= 3.8.0" s.add_development_dependency "rubocop"