plutonium 0.54.0 → 0.55.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 (38) hide show
  1. checksums.yaml +4 -4
  2. data/.claude/skills/plutonium-behavior/SKILL.md +22 -0
  3. data/.claude/skills/plutonium-resource/SKILL.md +55 -0
  4. data/.claude/skills/plutonium-ui/SKILL.md +2 -1
  5. data/CHANGELOG.md +14 -0
  6. data/app/assets/plutonium.css +1 -1
  7. data/app/assets/plutonium.js +18 -0
  8. data/app/assets/plutonium.js.map +4 -4
  9. data/app/assets/plutonium.min.js +30 -30
  10. data/app/assets/plutonium.min.js.map +4 -4
  11. data/docs/public/images/reference/structured-inputs-removed.png +0 -0
  12. data/docs/public/images/reference/structured-inputs.png +0 -0
  13. data/docs/reference/resource/definition.md +110 -0
  14. data/docs/superpowers/plans/2026-06-02-structured-inputs.md +1061 -0
  15. data/docs/superpowers/plans/2026-06-02-structured-inputs.md.tasks.json +60 -0
  16. data/docs/superpowers/specs/2026-06-01-structured-inputs-design.md +191 -0
  17. data/gemfiles/rails_8.1.gemfile.lock +1 -1
  18. data/lib/plutonium/definition/base.rb +1 -0
  19. data/lib/plutonium/definition/structured_inputs.rb +67 -0
  20. data/lib/plutonium/interaction/README.md +24 -78
  21. data/lib/plutonium/interaction/base.rb +10 -2
  22. data/lib/plutonium/resource/controller.rb +6 -1
  23. data/lib/plutonium/resource/controllers/interactive_actions.rb +10 -6
  24. data/lib/plutonium/structured_inputs/param_cleaner.rb +36 -0
  25. data/lib/plutonium/structured_inputs/params_concern.rb +36 -0
  26. data/lib/plutonium/ui/form/concerns/renders_nested_resource_fields.rb +3 -3
  27. data/lib/plutonium/ui/form/concerns/renders_structured_inputs.rb +178 -0
  28. data/lib/plutonium/ui/form/concerns/repeater_field_styles.rb +24 -0
  29. data/lib/plutonium/ui/form/resource.rb +4 -1
  30. data/lib/plutonium/ui/modal/slideover.rb +9 -3
  31. data/lib/plutonium/version.rb +1 -1
  32. data/package.json +1 -1
  33. data/src/css/components.css +10 -5
  34. data/src/js/controllers/register_controllers.js +2 -0
  35. data/src/js/controllers/structured_input_row_controller.js +26 -0
  36. metadata +14 -5
  37. data/docs/superpowers/specs/2026-06-01-interaction-repeater-inputs-design.md +0 -178
  38. data/lib/plutonium/interaction/nested_attributes.rb +0 -93
@@ -11510,6 +11510,23 @@
11510
11510
  }
11511
11511
  };
11512
11512
 
11513
+ // src/js/controllers/structured_input_row_controller.js
11514
+ var structured_input_row_controller_default = class extends Controller {
11515
+ static targets = ["content", "removed"];
11516
+ remove(e4) {
11517
+ e4.preventDefault();
11518
+ this.contentTarget.disabled = true;
11519
+ this.contentTarget.hidden = true;
11520
+ this.removedTarget.hidden = false;
11521
+ }
11522
+ restore(e4) {
11523
+ e4.preventDefault();
11524
+ this.contentTarget.disabled = false;
11525
+ this.contentTarget.hidden = false;
11526
+ this.removedTarget.hidden = true;
11527
+ }
11528
+ };
11529
+
11513
11530
  // src/js/controllers/form_controller.js
11514
11531
  var form_controller_default = class extends Controller {
11515
11532
  connect() {
@@ -28318,6 +28335,7 @@ this.ifd0Offset: ${this.ifd0Offset}, file.byteLength: ${e4.byteLength}`), e4.tif
28318
28335
  application2.register("sidebar", sidebar_controller_default);
28319
28336
  application2.register("resource-header", resource_header_controller_default);
28320
28337
  application2.register("nested-resource-form-fields", nested_resource_form_fields_controller_default);
28338
+ application2.register("structured-input-row", structured_input_row_controller_default);
28321
28339
  application2.register("form", form_controller_default);
28322
28340
  application2.register("resource-drop-down", resource_drop_down_controller_default);
28323
28341
  application2.register("resource-collapse", resource_collapse_controller_default);