plutonium 0.62.1 → 0.63.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.
Files changed (255) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/skills/plutonium/SKILL.md +44 -0
  3. data/.claude/skills/plutonium-app/SKILL.md +3 -3
  4. data/.claude/skills/plutonium-async-interactions/SKILL.md +191 -0
  5. data/.claude/skills/plutonium-auth/SKILL.md +36 -0
  6. data/.claude/skills/plutonium-behavior/SKILL.md +121 -24
  7. data/.claude/skills/plutonium-kanban/SKILL.md +17 -3
  8. data/.claude/skills/plutonium-resource/SKILL.md +259 -12
  9. data/.claude/skills/plutonium-tenancy/SKILL.md +32 -3
  10. data/.claude/skills/plutonium-ui/SKILL.md +115 -14
  11. data/.claude/skills/plutonium-wizard/SKILL.md +73 -4
  12. data/CHANGELOG.md +85 -10
  13. data/CLAUDE.md +87 -0
  14. data/Rakefile +34 -0
  15. data/SECURITY.md +1 -1
  16. data/app/assets/plutonium.css +1 -1
  17. data/app/assets/plutonium.js +685 -102
  18. data/app/assets/plutonium.js.map +4 -4
  19. data/app/assets/plutonium.min.js +53 -53
  20. data/app/assets/plutonium.min.js.map +4 -4
  21. data/app/views/rodauth/_login_form.html.erb +13 -0
  22. data/db/migrate/async_interactions/20260817000001_create_plutonium_async_runs.rb +170 -0
  23. data/docs/.vitepress/config.ts +81 -3
  24. data/docs/.vitepress/theme/blog.data.ts +44 -0
  25. data/docs/.vitepress/theme/components/BlogIndex.vue +87 -0
  26. data/docs/.vitepress/theme/components/BlogMeta.vue +47 -0
  27. data/docs/.vitepress/theme/components/HomeFeatureTour.vue +293 -0
  28. data/docs/.vitepress/theme/components/HomeHero.vue +3 -3
  29. data/docs/.vitepress/theme/components/HomeInTheBox.vue +8 -0
  30. data/docs/.vitepress/theme/components/HomeStopWriting.vue +1 -0
  31. data/docs/.vitepress/theme/components/HomeWhyPlutonium.vue +84 -0
  32. data/docs/.vitepress/theme/index.ts +8 -4
  33. data/docs/blog/association-inputs-post-signed-ids.md +70 -0
  34. data/docs/blog/fix-the-model-not-the-policy.md +122 -0
  35. data/docs/blog/fractional-ordering-runs-out-of-room.md +67 -0
  36. data/docs/blog/half-finished-forms-are-pii.md +76 -0
  37. data/docs/blog/index.md +13 -0
  38. data/docs/blog/interactions-are-presentation-objects.md +152 -0
  39. data/docs/blog/introducing-plutonium.md +253 -0
  40. data/docs/blog/jobs-are-not-permission-snapshots.md +100 -0
  41. data/docs/blog/plutonium-and-ai-agents.md +48 -0
  42. data/docs/blog/realtime-is-one-line-and-four-dependencies.md +70 -0
  43. data/docs/blog/two-forms-one-dom-id.md +69 -0
  44. data/docs/blog/whats-new-async-kanban-wizards.md +130 -0
  45. data/docs/getting-started/tutorial/04-authorization.md +12 -3
  46. data/docs/getting-started/tutorial/06-nested-resources.md +3 -1
  47. data/docs/getting-started/tutorial/07-author-portal.md +2 -2
  48. data/docs/guides/authentication.md +73 -0
  49. data/docs/guides/authorization.md +2 -0
  50. data/docs/guides/creating-packages.md +5 -3
  51. data/docs/guides/custom-actions.md +74 -12
  52. data/docs/guides/customizing-ui.md +9 -2
  53. data/docs/guides/index.md +1 -0
  54. data/docs/guides/kanban.md +7 -5
  55. data/docs/guides/nested-resources.md +11 -1
  56. data/docs/guides/performance.md +104 -0
  57. data/docs/guides/user-invites.md +1 -1
  58. data/docs/guides/wizards.md +9 -1
  59. data/docs/index.md +3 -3
  60. data/docs/public/images/home/tour-actions.png +0 -0
  61. data/docs/public/images/home/tour-async.png +0 -0
  62. data/docs/public/images/home/tour-kanban.png +0 -0
  63. data/docs/public/images/home/tour-tenancy.png +0 -0
  64. data/docs/public/images/home/tour-wizard.png +0 -0
  65. data/docs/public/images/reference/async-progress-page.png +0 -0
  66. data/docs/public/images/reference/async-running-banner.png +0 -0
  67. data/docs/public/templates/experimental.rb +34 -0
  68. data/docs/public/templates/pluton8.rb +14 -0
  69. data/docs/reference/app/portals.md +15 -3
  70. data/docs/reference/auth/accounts.md +19 -0
  71. data/docs/reference/behavior/async-interactions.md +295 -0
  72. data/docs/reference/behavior/controllers.md +17 -4
  73. data/docs/reference/behavior/index.md +7 -1
  74. data/docs/reference/behavior/interactions.md +152 -22
  75. data/docs/reference/configuration.md +5 -0
  76. data/docs/reference/index.md +1 -0
  77. data/docs/reference/kanban/dsl.md +7 -4
  78. data/docs/reference/kanban/index.md +1 -1
  79. data/docs/reference/kanban/positioning.md +26 -4
  80. data/docs/reference/positioning.md +568 -0
  81. data/docs/reference/resource/actions.md +97 -4
  82. data/docs/reference/resource/definition.md +181 -9
  83. data/docs/reference/tenancy/invites.md +1 -1
  84. data/docs/reference/tenancy/nested-resources.md +60 -2
  85. data/docs/reference/ui/assets.md +4 -0
  86. data/docs/reference/ui/components.md +57 -4
  87. data/docs/reference/ui/displays.md +20 -10
  88. data/docs/reference/ui/index.md +1 -1
  89. data/docs/reference/wizard/dsl.md +33 -0
  90. data/docs/reference/wizard/storage-config.md +1 -0
  91. data/docs/superpowers/plans/2026-07-16-homepage-depth-upgrade.md +624 -0
  92. data/docs/superpowers/plans/2026-07-16-homepage-depth-upgrade.md.tasks.json +32 -0
  93. data/docs/superpowers/plans/2026-07-31-positioned-drag-and-drop.md +1787 -0
  94. data/docs/superpowers/plans/2026-07-31-positioned-drag-and-drop.md.tasks.json +91 -0
  95. data/docs/superpowers/plans/2026-08-17-async-interactions.md +1414 -0
  96. data/docs/superpowers/plans/2026-08-17-async-interactions.md.tasks.json +66 -0
  97. data/docs/superpowers/specs/2026-07-16-homepage-depth-upgrade-design.md +111 -0
  98. data/docs/superpowers/specs/2026-07-17-action-html-attributes-design.md +124 -0
  99. data/docs/superpowers/specs/2026-07-31-positioned-drag-and-drop-design.md +506 -0
  100. data/docs/superpowers/specs/2026-08-17-async-interactions-design.md +185 -0
  101. data/gemfiles/postgres.gemfile.lock +85 -85
  102. data/gemfiles/rails_7.gemfile.lock +337 -142
  103. data/gemfiles/rails_8.0.gemfile.lock +139 -116
  104. data/gemfiles/rails_8.1.gemfile.lock +128 -118
  105. data/lib/generators/pu/async_interactions/install_generator.rb +111 -0
  106. data/lib/generators/pu/async_interactions/templates/app/controllers/async_runs_controller.rb.tt +15 -0
  107. data/lib/generators/pu/core/typespec/typespec_generator.rb +7 -4
  108. data/lib/generators/pu/invites/install_generator.rb +3 -3
  109. data/lib/generators/pu/invites/templates/packages/invites/app/views/layouts/invites/invitation.html.erb.tt +2 -2
  110. data/lib/generators/pu/lib/plutonium_generators/concerns/mounts_engines.rb +47 -2
  111. data/lib/generators/pu/lib/plutonium_generators/concerns/resource_registration.rb +41 -0
  112. data/lib/generators/pu/lite/litestream/litestream_generator.rb +1 -1
  113. data/lib/generators/pu/lite/solid_queue/solid_queue_generator.rb +1 -1
  114. data/lib/generators/pu/res/conn/conn_generator.rb +19 -39
  115. data/lib/generators/pu/res/conn/templates/app/controllers/resource_controller.rb.tt +4 -0
  116. data/lib/generators/pu/rodauth/templates/app/rodauth/account_rodauth_plugin.rb.tt +15 -6
  117. data/lib/generators/pu/rodauth/templates/app/rodauth/rodauth_plugin.rb.tt +7 -0
  118. data/lib/generators/pu/saas/welcome/templates/app/views/layouts/welcome.html.erb.tt +2 -2
  119. data/lib/generators/pu/wizards/install_generator.rb +78 -0
  120. data/lib/plutonium/action/base.rb +71 -9
  121. data/lib/plutonium/action/interactive.rb +9 -0
  122. data/lib/plutonium/attachments.rb +254 -0
  123. data/lib/plutonium/configuration.rb +82 -1
  124. data/lib/plutonium/core/controller.rb +50 -7
  125. data/lib/plutonium/core/controllers/authorizable.rb +16 -0
  126. data/lib/plutonium/core/controllers/entity_scoping.rb +12 -2
  127. data/lib/plutonium/definition/base.rb +51 -0
  128. data/lib/plutonium/definition/display_layout.rb +112 -0
  129. data/lib/plutonium/definition/index_views.rb +8 -7
  130. data/lib/plutonium/definition/input_aliases.rb +38 -0
  131. data/lib/plutonium/definition/page_widths.rb +65 -0
  132. data/lib/plutonium/definition/positioning.rb +126 -0
  133. data/lib/plutonium/definition/sorting.rb +17 -2
  134. data/lib/plutonium/helpers/turbo_helper.rb +7 -0
  135. data/lib/plutonium/interaction/README.md +61 -24
  136. data/lib/plutonium/interaction/async/configuration.rb +38 -0
  137. data/lib/plutonium/interaction/async/context.rb +419 -0
  138. data/lib/plutonium/interaction/async/executor.rb +422 -0
  139. data/lib/plutonium/interaction/async/job.rb +80 -0
  140. data/lib/plutonium/interaction/async/reap_job.rb +81 -0
  141. data/lib/plutonium/interaction/async/run.rb +394 -0
  142. data/lib/plutonium/interaction/async/run_definition.rb +155 -0
  143. data/lib/plutonium/interaction/async/run_policy.rb +86 -0
  144. data/lib/plutonium/interaction/base.rb +34 -7
  145. data/lib/plutonium/interaction/concerns/dispatchable.rb +518 -0
  146. data/lib/plutonium/interaction/concerns/scoping.rb +70 -9
  147. data/lib/plutonium/interaction/response/redirect.rb +11 -3
  148. data/lib/plutonium/kanban/board.rb +14 -0
  149. data/lib/plutonium/kanban/column.rb +4 -2
  150. data/lib/plutonium/kanban/dsl.rb +4 -1
  151. data/lib/plutonium/kanban/grouping.rb +9 -22
  152. data/lib/plutonium/kanban/positioning.rb +5 -65
  153. data/lib/plutonium/positioning/config.rb +94 -0
  154. data/lib/plutonium/positioning/model.rb +128 -0
  155. data/lib/plutonium/positioning.rb +25 -86
  156. data/lib/plutonium/railtie.rb +1 -0
  157. data/lib/plutonium/resource/controller.rb +118 -38
  158. data/lib/plutonium/resource/controllers/crud_actions/index_action.rb +32 -2
  159. data/lib/plutonium/resource/controllers/crud_actions.rb +42 -9
  160. data/lib/plutonium/resource/controllers/eager_loading.rb +87 -0
  161. data/lib/plutonium/resource/controllers/export_csv.rb +10 -1
  162. data/lib/plutonium/resource/controllers/kanban_actions.rb +53 -14
  163. data/lib/plutonium/resource/controllers/position_actions.rb +390 -0
  164. data/lib/plutonium/resource/controllers/presentable.rb +19 -13
  165. data/lib/plutonium/resource/controllers/queryable.rb +5 -1
  166. data/lib/plutonium/resource/controllers/wizard_actions.rb +21 -0
  167. data/lib/plutonium/resource/policy.rb +33 -0
  168. data/lib/plutonium/resource/query_object.rb +36 -0
  169. data/lib/plutonium/routing/mapper_extensions.rb +100 -8
  170. data/lib/plutonium/routing/route_set_extensions.rb +15 -1
  171. data/lib/plutonium/routing/wizard_registration.rb +4 -0
  172. data/lib/plutonium/testing/resource_policy.rb +6 -2
  173. data/lib/plutonium/ui/action_button.rb +12 -7
  174. data/lib/plutonium/ui/actions_dropdown.rb +1 -1
  175. data/lib/plutonium/ui/block.rb +21 -1
  176. data/lib/plutonium/ui/breadcrumbs.rb +187 -55
  177. data/lib/plutonium/ui/component/methods.rb +5 -0
  178. data/lib/plutonium/ui/component/positionable.rb +112 -0
  179. data/lib/plutonium/ui/component/resolves_tags.rb +57 -0
  180. data/lib/plutonium/ui/component/section.rb +185 -0
  181. data/lib/plutonium/ui/display/base.rb +13 -1
  182. data/lib/plutonium/ui/display/components/formatted_value.rb +26 -0
  183. data/lib/plutonium/ui/display/components/section.rb +18 -0
  184. data/lib/plutonium/ui/display/resource.rb +141 -22
  185. data/lib/plutonium/ui/display/theme.rb +20 -1
  186. data/lib/plutonium/ui/export_button.rb +1 -1
  187. data/lib/plutonium/ui/form/base.rb +8 -7
  188. data/lib/plutonium/ui/form/components/intl_tel_input.rb +1 -1
  189. data/lib/plutonium/ui/form/components/section.rb +7 -62
  190. data/lib/plutonium/ui/form/components/uppy.rb +12 -1
  191. data/lib/plutonium/ui/form/concerns/renders_nested_resource_fields.rb +16 -3
  192. data/lib/plutonium/ui/form/concerns/renders_structured_inputs.rb +5 -1
  193. data/lib/plutonium/ui/form/query.rb +2 -4
  194. data/lib/plutonium/ui/form/resource.rb +92 -15
  195. data/lib/plutonium/ui/form/theme.rb +17 -0
  196. data/lib/plutonium/ui/form/wizard.rb +25 -1
  197. data/lib/plutonium/ui/grid/card.rb +79 -11
  198. data/lib/plutonium/ui/grid/resource.rb +47 -5
  199. data/lib/plutonium/ui/interaction/async/run_progress.rb +227 -0
  200. data/lib/plutonium/ui/interaction/async/running_banner.rb +65 -0
  201. data/lib/plutonium/ui/kanban/card.rb +2 -1
  202. data/lib/plutonium/ui/kanban/column.rb +12 -6
  203. data/lib/plutonium/ui/kanban/resource.rb +6 -7
  204. data/lib/plutonium/ui/layout/base.rb +10 -3
  205. data/lib/plutonium/ui/nav_grid_menu.rb +1 -0
  206. data/lib/plutonium/ui/page/base.rb +19 -0
  207. data/lib/plutonium/ui/page/edit.rb +4 -1
  208. data/lib/plutonium/ui/page/index.rb +69 -18
  209. data/lib/plutonium/ui/page/interactive_action.rb +5 -1
  210. data/lib/plutonium/ui/page/new.rb +4 -1
  211. data/lib/plutonium/ui/page/show.rb +27 -10
  212. data/lib/plutonium/ui/page/wizard.rb +10 -1
  213. data/lib/plutonium/ui/page/wizard_chooser.rb +36 -11
  214. data/lib/plutonium/ui/page_width.rb +58 -0
  215. data/lib/plutonium/ui/table/base.rb +34 -1
  216. data/lib/plutonium/ui/table/components/attachment.rb +1 -1
  217. data/lib/plutonium/ui/table/components/bulk_actions_toolbar.rb +32 -8
  218. data/lib/plutonium/ui/table/components/drag_handle.rb +120 -0
  219. data/lib/plutonium/ui/table/components/filter_form.rb +1 -4
  220. data/lib/plutonium/ui/table/components/filter_pills.rb +1 -1
  221. data/lib/plutonium/ui/table/components/row_actions_dropdown.rb +1 -1
  222. data/lib/plutonium/ui/table/resource.rb +50 -5
  223. data/lib/plutonium/ui/table/theme.rb +59 -2
  224. data/lib/plutonium/ui/wizard/review.rb +4 -2
  225. data/lib/plutonium/ui/wizard/summary_display.rb +42 -14
  226. data/lib/plutonium/version.rb +1 -1
  227. data/lib/plutonium/wizard/attachments.rb +32 -197
  228. data/lib/plutonium/wizard/base.rb +6 -1
  229. data/lib/plutonium/wizard/configuration.rb +12 -0
  230. data/lib/plutonium/wizard/controller.rb +14 -0
  231. data/lib/plutonium/wizard/driving.rb +99 -15
  232. data/lib/plutonium/wizard/dsl.rb +23 -0
  233. data/lib/plutonium/wizard/resume.rb +127 -49
  234. data/lib/plutonium/wizard/runner.rb +46 -2
  235. data/lib/plutonium/wizard/step_adapter.rb +1 -1
  236. data/lib/plutonium/wizard/sweep_job.rb +16 -0
  237. data/lib/plutonium.rb +21 -0
  238. data/lib/rodauth/features/session_isolation.rb +92 -0
  239. data/lib/rodauth/plugins.rb +1 -0
  240. data/package.json +2 -1
  241. data/plutonium.gemspec +30 -12
  242. data/src/css/components.css +89 -1
  243. data/src/css/slim_select.css +20 -0
  244. data/src/js/controllers/breadcrumbs_controller.js +112 -0
  245. data/src/js/controllers/bulk_actions_controller.js +10 -2
  246. data/src/js/controllers/kanban_controller.js +30 -21
  247. data/src/js/controllers/positioned_controller.js +452 -0
  248. data/src/js/controllers/register_controllers.js +6 -0
  249. data/src/js/controllers/resource_drop_down_controller.js +5 -0
  250. data/src/js/controllers/run_progress_controller.js +73 -0
  251. data/src/js/drag/sortable.js +186 -0
  252. data/yarn.lock +108 -63
  253. metadata +105 -18
  254. data/docs/.vitepress/theme/components/HomeAudienceSplit.vue +0 -53
  255. data/docs/.vitepress/theme/components/HomePillars.vue +0 -42
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ..
3
3
  specs:
4
- plutonium (0.60.4)
4
+ plutonium (0.62.2)
5
5
  action_policy (~> 0.7.0)
6
6
  csv
7
7
  listen (~> 3.8)
@@ -12,11 +12,11 @@ PATH
12
12
  phlex-tabler_icons
13
13
  phlexi-display (>= 0.2.0)
14
14
  phlexi-field (>= 0.2.0)
15
- phlexi-form (>= 0.14.2)
15
+ phlexi-form (>= 0.14.3)
16
16
  phlexi-menu (>= 0.4.1)
17
17
  phlexi-table (>= 0.2.0)
18
18
  rabl (~> 0.17.0)
19
- rails (>= 7.2)
19
+ rails (>= 7.2.3.1)
20
20
  redcarpet
21
21
  semantic_range (~> 3.0)
22
22
  tailwind_merge
@@ -28,29 +28,29 @@ GEM
28
28
  specs:
29
29
  action_policy (0.7.6)
30
30
  ruby-next-core (>= 1.0)
31
- actioncable (8.0.3)
32
- actionpack (= 8.0.3)
33
- activesupport (= 8.0.3)
31
+ actioncable (8.0.5.1)
32
+ actionpack (= 8.0.5.1)
33
+ activesupport (= 8.0.5.1)
34
34
  nio4r (~> 2.0)
35
35
  websocket-driver (>= 0.6.1)
36
36
  zeitwerk (~> 2.6)
37
- actionmailbox (8.0.3)
38
- actionpack (= 8.0.3)
39
- activejob (= 8.0.3)
40
- activerecord (= 8.0.3)
41
- activestorage (= 8.0.3)
42
- activesupport (= 8.0.3)
37
+ actionmailbox (8.0.5.1)
38
+ actionpack (= 8.0.5.1)
39
+ activejob (= 8.0.5.1)
40
+ activerecord (= 8.0.5.1)
41
+ activestorage (= 8.0.5.1)
42
+ activesupport (= 8.0.5.1)
43
43
  mail (>= 2.8.0)
44
- actionmailer (8.0.3)
45
- actionpack (= 8.0.3)
46
- actionview (= 8.0.3)
47
- activejob (= 8.0.3)
48
- activesupport (= 8.0.3)
44
+ actionmailer (8.0.5.1)
45
+ actionpack (= 8.0.5.1)
46
+ actionview (= 8.0.5.1)
47
+ activejob (= 8.0.5.1)
48
+ activesupport (= 8.0.5.1)
49
49
  mail (>= 2.8.0)
50
50
  rails-dom-testing (~> 2.2)
51
- actionpack (8.0.3)
52
- actionview (= 8.0.3)
53
- activesupport (= 8.0.3)
51
+ actionpack (8.0.5.1)
52
+ actionview (= 8.0.5.1)
53
+ activesupport (= 8.0.5.1)
54
54
  nokogiri (>= 1.8.5)
55
55
  rack (>= 2.2.4)
56
56
  rack-session (>= 1.0.1)
@@ -58,35 +58,40 @@ GEM
58
58
  rails-dom-testing (~> 2.2)
59
59
  rails-html-sanitizer (~> 1.6)
60
60
  useragent (~> 0.16)
61
- actiontext (8.0.3)
62
- actionpack (= 8.0.3)
63
- activerecord (= 8.0.3)
64
- activestorage (= 8.0.3)
65
- activesupport (= 8.0.3)
61
+ actiontext (8.0.5.1)
62
+ actionpack (= 8.0.5.1)
63
+ activerecord (= 8.0.5.1)
64
+ activestorage (= 8.0.5.1)
65
+ activesupport (= 8.0.5.1)
66
66
  globalid (>= 0.6.0)
67
67
  nokogiri (>= 1.8.5)
68
- actionview (8.0.3)
69
- activesupport (= 8.0.3)
68
+ actionview (8.0.5.1)
69
+ activesupport (= 8.0.5.1)
70
70
  builder (~> 3.1)
71
71
  erubi (~> 1.11)
72
72
  rails-dom-testing (~> 2.2)
73
73
  rails-html-sanitizer (~> 1.6)
74
- activejob (8.0.3)
75
- activesupport (= 8.0.3)
74
+ active_shrine (0.7.1)
75
+ activestorage
76
+ activesupport
77
+ railties
78
+ shrine
79
+ activejob (8.0.5.1)
80
+ activesupport (= 8.0.5.1)
76
81
  globalid (>= 0.3.6)
77
- activemodel (8.0.3)
78
- activesupport (= 8.0.3)
79
- activerecord (8.0.3)
80
- activemodel (= 8.0.3)
81
- activesupport (= 8.0.3)
82
+ activemodel (8.0.5.1)
83
+ activesupport (= 8.0.5.1)
84
+ activerecord (8.0.5.1)
85
+ activemodel (= 8.0.5.1)
86
+ activesupport (= 8.0.5.1)
82
87
  timeout (>= 0.4.0)
83
- activestorage (8.0.3)
84
- actionpack (= 8.0.3)
85
- activejob (= 8.0.3)
86
- activerecord (= 8.0.3)
87
- activesupport (= 8.0.3)
88
+ activestorage (8.0.5.1)
89
+ actionpack (= 8.0.5.1)
90
+ activejob (= 8.0.5.1)
91
+ activerecord (= 8.0.5.1)
92
+ activesupport (= 8.0.5.1)
88
93
  marcel (~> 1.0)
89
- activesupport (8.0.3)
94
+ activesupport (8.0.5.1)
90
95
  base64
91
96
  benchmark (>= 0.3)
92
97
  bigdecimal
@@ -99,19 +104,22 @@ GEM
99
104
  securerandom (>= 0.3)
100
105
  tzinfo (~> 2.0, >= 2.0.5)
101
106
  uri (>= 0.13.1)
107
+ acts_as_list (1.2.6)
108
+ activerecord (>= 6.1)
109
+ activesupport (>= 6.1)
102
110
  addressable (2.9.0)
103
111
  public_suffix (>= 2.0.2, < 8.0)
104
- ansi (1.5.0)
112
+ ansi (1.6.0)
105
113
  appraisal (2.5.0)
106
114
  bundler
107
115
  rake
108
116
  thor (>= 0.14.0)
109
117
  ast (2.4.3)
110
118
  base64 (0.3.0)
111
- bcrypt (3.1.21)
119
+ bcrypt (3.1.22)
112
120
  benchmark (0.5.0)
113
- bigdecimal (4.0.1)
114
- brakeman (8.0.4)
121
+ bigdecimal (4.1.2)
122
+ brakeman (8.0.5)
115
123
  racc
116
124
  builder (3.3.0)
117
125
  bundle-audit (0.2.0)
@@ -133,61 +141,66 @@ GEM
133
141
  activesupport (>= 3.0.0)
134
142
  railties (>= 3.0.0)
135
143
  thor (>= 0.14.6)
136
- concurrent-ruby (1.3.6)
144
+ concurrent-ruby (1.3.8)
137
145
  connection_pool (3.0.2)
138
- crass (1.0.6)
139
- csv (3.3.5)
146
+ content_disposition (1.0.0)
147
+ crass (1.0.7)
148
+ csv (3.3.6)
140
149
  date (3.5.1)
150
+ down (5.6.0)
151
+ addressable (~> 2.8)
152
+ base64 (~> 0.3)
141
153
  drb (2.2.3)
142
- erb (6.0.2)
154
+ erb (6.0.6)
143
155
  erubi (1.13.1)
144
- ffi (1.17.3-arm64-darwin)
156
+ ffi (1.17.4-arm64-darwin)
157
+ ffi (1.17.4-x86_64-linux-gnu)
145
158
  fiber-local (1.1.0)
146
159
  fiber-storage
147
160
  fiber-storage (1.0.1)
148
- globalid (1.3.0)
161
+ globalid (1.4.0)
149
162
  activesupport (>= 6.1)
150
- i18n (1.14.8)
163
+ i18n (1.15.2)
151
164
  concurrent-ruby (~> 1.0)
152
165
  importmap-rails (2.2.3)
153
166
  actionpack (>= 6.0.0)
154
167
  activesupport (>= 6.0.0)
155
168
  railties (>= 6.0.0)
156
169
  io-console (0.8.2)
157
- irb (1.17.0)
170
+ irb (1.18.0)
158
171
  pp (>= 0.6.0)
159
172
  prism (>= 1.3.0)
160
173
  rdoc (>= 4.0.0)
161
174
  reline (>= 0.4.2)
162
- json (2.19.1)
163
- language_server-protocol (3.17.0.5)
175
+ json (2.21.2)
176
+ language_server-protocol (3.17.0.6)
164
177
  lint_roller (1.1.0)
165
178
  listen (3.10.0)
166
179
  logger
167
180
  rb-fsevent (~> 0.10, >= 0.10.3)
168
181
  rb-inotify (~> 0.9, >= 0.9.10)
169
182
  logger (1.7.0)
170
- loofah (2.25.0)
183
+ loofah (2.25.2)
171
184
  crass (~> 1.0.2)
172
185
  nokogiri (>= 1.12.0)
173
- mail (2.9.0)
186
+ mail (2.9.1)
174
187
  logger
175
188
  mini_mime (>= 0.1.1)
176
189
  net-imap
177
190
  net-pop
178
191
  net-smtp
179
- marcel (1.1.0)
192
+ marcel (1.2.1)
180
193
  matrix (0.4.3)
181
194
  mini_mime (1.1.5)
182
- minitest (6.0.2)
195
+ minitest (6.0.6)
183
196
  drb (~> 2.0)
184
197
  prism (~> 1.5)
185
- minitest-reporters (1.7.1)
198
+ minitest-reporters (1.8.0)
186
199
  ansi
187
200
  builder
188
- minitest (>= 5.0)
201
+ minitest (>= 5.0, < 7)
189
202
  ruby-progressbar
190
- net-imap (0.6.3)
203
+ net-imap (0.6.6)
191
204
  date
192
205
  net-protocol
193
206
  net-pop (0.1.2)
@@ -197,14 +210,16 @@ GEM
197
210
  net-smtp (0.5.1)
198
211
  net-protocol
199
212
  nio4r (2.7.5)
200
- nokogiri (1.19.1-arm64-darwin)
213
+ nokogiri (1.19.4-arm64-darwin)
214
+ racc (~> 1.4)
215
+ nokogiri (1.19.4-x86_64-linux-gnu)
201
216
  racc (~> 1.4)
202
- pagy (43.3.3)
217
+ pagy (43.6.1)
203
218
  json
204
219
  uri
205
220
  yaml
206
- parallel (1.27.0)
207
- parser (3.3.10.2)
221
+ parallel (2.1.0)
222
+ parser (3.3.12.0)
208
223
  ast (~> 2.4.1)
209
224
  racc
210
225
  pastel (0.8.0)
@@ -229,7 +244,7 @@ GEM
229
244
  fiber-local
230
245
  phlex (~> 2.0)
231
246
  zeitwerk
232
- phlexi-form (0.14.2)
247
+ phlexi-form (0.14.3)
233
248
  activesupport
234
249
  phlex (~> 2.0)
235
250
  phlexi-field (~> 0.2.0)
@@ -244,55 +259,52 @@ GEM
244
259
  phlexi-display
245
260
  phlexi-field (~> 0.2.0)
246
261
  zeitwerk
247
- pp (0.6.3)
262
+ pp (0.6.4)
248
263
  prettyprint
249
264
  prettyprint (0.2.0)
250
265
  prism (1.9.0)
251
- propshaft (1.3.1)
266
+ propshaft (1.3.2)
252
267
  actionpack (>= 7.0.0)
253
268
  activesupport (>= 7.0.0)
254
269
  rack
255
- psych (5.3.1)
256
- date
257
- stringio
258
270
  public_suffix (7.0.5)
259
- puma (7.2.0)
271
+ puma (8.0.2)
260
272
  nio4r (~> 2.0)
261
273
  rabl (0.17.0)
262
274
  activesupport (>= 2.3.14)
263
275
  racc (1.8.1)
264
- rack (3.2.5)
265
- rack-session (2.1.1)
276
+ rack (3.2.6)
277
+ rack-session (2.1.2)
266
278
  base64 (>= 0.1.0)
267
279
  rack (>= 3.0.0)
268
280
  rack-test (2.2.0)
269
281
  rack (>= 1.3)
270
282
  rackup (2.3.1)
271
283
  rack (>= 3)
272
- rails (8.0.3)
273
- actioncable (= 8.0.3)
274
- actionmailbox (= 8.0.3)
275
- actionmailer (= 8.0.3)
276
- actionpack (= 8.0.3)
277
- actiontext (= 8.0.3)
278
- actionview (= 8.0.3)
279
- activejob (= 8.0.3)
280
- activemodel (= 8.0.3)
281
- activerecord (= 8.0.3)
282
- activestorage (= 8.0.3)
283
- activesupport (= 8.0.3)
284
+ rails (8.0.5.1)
285
+ actioncable (= 8.0.5.1)
286
+ actionmailbox (= 8.0.5.1)
287
+ actionmailer (= 8.0.5.1)
288
+ actionpack (= 8.0.5.1)
289
+ actiontext (= 8.0.5.1)
290
+ actionview (= 8.0.5.1)
291
+ activejob (= 8.0.5.1)
292
+ activemodel (= 8.0.5.1)
293
+ activerecord (= 8.0.5.1)
294
+ activestorage (= 8.0.5.1)
295
+ activesupport (= 8.0.5.1)
284
296
  bundler (>= 1.15.0)
285
- railties (= 8.0.3)
297
+ railties (= 8.0.5.1)
286
298
  rails-dom-testing (2.3.0)
287
299
  activesupport (>= 5.0.0)
288
300
  minitest
289
301
  nokogiri (>= 1.6)
290
- rails-html-sanitizer (1.7.0)
291
- loofah (~> 2.25)
302
+ rails-html-sanitizer (1.7.1)
303
+ loofah (~> 2.25, >= 2.25.2)
292
304
  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)
293
- railties (8.0.3)
294
- actionpack (= 8.0.3)
295
- activesupport (= 8.0.3)
305
+ railties (8.0.5.1)
306
+ actionpack (= 8.0.5.1)
307
+ activesupport (= 8.0.5.1)
296
308
  irb (~> 1.13)
297
309
  rackup (>= 1.0.0)
298
310
  rake (>= 12.2)
@@ -300,31 +312,36 @@ GEM
300
312
  tsort (>= 0.2)
301
313
  zeitwerk (~> 2.6)
302
314
  rainbow (3.1.1)
303
- rake (13.3.1)
315
+ rake (13.4.2)
304
316
  rb-fsevent (0.11.2)
305
317
  rb-inotify (0.11.1)
306
318
  ffi (~> 1.0)
307
- rdoc (7.2.0)
319
+ rbs (4.1.1)
320
+ logger
321
+ prism (>= 1.6.0)
322
+ tsort
323
+ rdoc (8.0.0)
308
324
  erb
309
- psych (>= 4.0.0)
325
+ prism (>= 1.6.0)
326
+ rbs (>= 4.0.0)
310
327
  tsort
311
328
  redcarpet (3.6.1)
312
329
  refract (1.1.0)
313
330
  prism
314
331
  zeitwerk
315
- regexp_parser (2.11.3)
332
+ regexp_parser (2.12.0)
316
333
  reline (0.6.3)
317
334
  io-console (~> 0.5)
318
335
  rexml (3.4.4)
319
- roda (3.102.0)
336
+ roda (3.106.0)
320
337
  rack
321
- rodauth (2.42.0)
338
+ rodauth (2.45.0)
322
339
  roda (>= 2.6.0)
323
340
  sequel (>= 4)
324
- rodauth-model (0.4.0)
341
+ rodauth-model (0.5.0)
325
342
  rodauth (~> 2.28)
326
- rodauth-rails (2.1.2)
327
- railties (>= 5.1)
343
+ rodauth-rails (2.2.0)
344
+ railties (>= 5.2)
328
345
  roda (~> 3.76)
329
346
  rodauth (~> 2.36)
330
347
  rodauth-model (~> 0.2)
@@ -333,46 +350,50 @@ GEM
333
350
  chunky_png (~> 1.0)
334
351
  rqrcode_core (~> 2.0)
335
352
  rqrcode_core (2.1.0)
336
- rubocop (1.84.2)
353
+ rubocop (1.88.2)
337
354
  json (~> 2.3)
338
355
  language_server-protocol (~> 3.17.0.2)
339
356
  lint_roller (~> 1.1.0)
340
- parallel (~> 1.10)
357
+ parallel (>= 1.10)
341
358
  parser (>= 3.3.0.2)
342
359
  rainbow (>= 2.2.2, < 4.0)
343
360
  regexp_parser (>= 2.9.3, < 3.0)
344
361
  rubocop-ast (>= 1.49.0, < 2.0)
345
362
  ruby-progressbar (~> 1.7)
346
363
  unicode-display_width (>= 2.4.0, < 4.0)
347
- rubocop-ast (1.49.1)
364
+ rubocop-ast (1.50.0)
348
365
  parser (>= 3.3.7.2)
349
366
  prism (~> 1.7)
350
367
  rubocop-performance (1.26.1)
351
368
  lint_roller (~> 1.1)
352
369
  rubocop (>= 1.75.0, < 2.0)
353
370
  rubocop-ast (>= 1.47.1, < 2.0)
354
- ruby-next-core (1.2.0)
371
+ ruby-next-core (1.2.1)
355
372
  ruby-progressbar (1.13.0)
356
- rubyzip (3.2.2)
373
+ rubyzip (3.4.1)
357
374
  securerandom (0.4.1)
358
- selenium-webdriver (4.43.0)
375
+ selenium-webdriver (4.46.0)
359
376
  base64 (~> 0.2)
360
377
  logger (~> 1.4)
361
378
  rexml (~> 3.2, >= 3.2.5)
362
379
  rubyzip (>= 1.2.2, < 4.0)
363
380
  websocket (~> 1.0)
364
381
  semantic_range (3.1.1)
365
- sequel (5.102.0)
382
+ sequel (5.107.0)
366
383
  bigdecimal
367
384
  sequel-activerecord_connection (2.0.1)
368
385
  activerecord (>= 5.1)
369
386
  sequel (~> 5.38)
387
+ shrine (3.9.0)
388
+ content_disposition (~> 1.0)
389
+ down (~> 5.1)
370
390
  sin_lru_redux (2.5.2)
371
- sqlite3 (2.9.1-arm64-darwin)
372
- standard (1.54.0)
391
+ sqlite3 (2.9.5-arm64-darwin)
392
+ sqlite3 (2.9.5-x86_64-linux-gnu)
393
+ standard (1.56.0)
373
394
  language_server-protocol (~> 3.17.0.2)
374
395
  lint_roller (~> 1.0)
375
- rubocop (~> 1.84.0)
396
+ rubocop (~> 1.88.0)
376
397
  standard-custom (~> 1.0.0)
377
398
  standard-performance (~> 1.8)
378
399
  standard-custom (1.0.2)
@@ -383,11 +404,10 @@ GEM
383
404
  rubocop-performance (~> 1.26.0)
384
405
  stimulus-rails (1.3.4)
385
406
  railties (>= 6.0.0)
386
- stringio (3.2.0)
387
- tailwind_merge (1.4.0)
407
+ tailwind_merge (1.5.2)
388
408
  sin_lru_redux (~> 2.5)
389
409
  thor (1.5.0)
390
- tilt (2.7.0)
410
+ tilt (2.8.0)
391
411
  timeout (0.6.1)
392
412
  tsort (0.2.0)
393
413
  tty-color (0.6.0)
@@ -411,7 +431,7 @@ GEM
411
431
  uri (1.1.1)
412
432
  useragent (0.16.11)
413
433
  websocket (1.2.11)
414
- websocket-driver (0.8.0)
434
+ websocket-driver (0.8.2)
415
435
  base64
416
436
  websocket-extensions (>= 0.1.0)
417
437
  websocket-extensions (0.1.5)
@@ -419,12 +439,15 @@ GEM
419
439
  xpath (3.2.0)
420
440
  nokogiri (~> 1.8)
421
441
  yaml (0.4.0)
422
- zeitwerk (2.7.5)
442
+ zeitwerk (2.8.3)
423
443
 
424
444
  PLATFORMS
425
445
  arm64-darwin
446
+ x86_64-linux
426
447
 
427
448
  DEPENDENCIES
449
+ active_shrine
450
+ acts_as_list
428
451
  appraisal
429
452
  bcrypt
430
453
  brakeman