plutonium 0.60.0 → 0.60.2
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/.claude/skills/plutonium-auth/SKILL.md +1 -1
- data/.claude/skills/plutonium-ui/SKILL.md +20 -0
- data/CHANGELOG.md +14 -0
- data/app/assets/plutonium.css +1 -1
- data/docs/reference/configuration.md +1 -1
- data/docs/reference/resource/definition.md +2 -2
- data/docs/reference/ui/layouts.md +61 -1
- data/docs/superpowers/plans/2026-06-14-form-sectioning.md +11 -2
- data/docs/superpowers/plans/2026-06-14-railless-portal.md +761 -0
- data/docs/superpowers/plans/2026-06-14-railless-portal.md.tasks.json +51 -0
- data/docs/superpowers/specs/2026-06-14-form-sectioning-design.md +15 -5
- data/docs/superpowers/specs/2026-06-14-railless-portal-design.md +275 -0
- data/lib/generators/pu/core/install/templates/config/initializers/plutonium.rb +1 -0
- data/lib/plutonium/auth/rodauth.rb +2 -1
- data/lib/plutonium/configuration.rb +2 -1
- data/lib/plutonium/core/controller.rb +38 -0
- data/lib/plutonium/definition/form_layout.rb +5 -6
- data/lib/plutonium/package/engine.rb +10 -0
- data/lib/plutonium/ui/form/components/sticky_footer.rb +1 -1
- data/lib/plutonium/ui/layout/base.rb +10 -0
- data/lib/plutonium/ui/layout/resource_layout.rb +28 -6
- data/lib/plutonium/ui/layout/topbar.rb +1 -1
- data/lib/plutonium/version.rb +1 -1
- data/package.json +1 -1
- data/src/css/components.css +9 -0
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bf3e52945d9a07683b9af721fd0c00f25d8850a63d7631a8a304135e13484232
|
|
4
|
+
data.tar.gz: 292591ab6eacc2f3565c9e959d62510e12b6e56d609ede2002372c2869b12cf5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0f69cf663aa031cc3073717587c589a74bad312d9a2dad5088cb0798b07d5c3adef879f82f9cf6a25fc0a64a7d0fc996feef5f49048b26c63c6fe6b1178ae23f
|
|
7
|
+
data.tar.gz: 57495b760f039d03363fab2035726e00f972c581610e1d36048f6610c0a83c6777eaf22a8630d91e8c0fd24c71e171d0604b62fe1bd773f76c66cdd2f0ea4dce
|
|
@@ -176,7 +176,7 @@ class AdminController < PlutoniumController
|
|
|
176
176
|
end
|
|
177
177
|
```
|
|
178
178
|
|
|
179
|
-
`Plutonium::Auth::Rodauth(:name)` exposes `current_user`, `logout_url`, and `rodauth` in the controller.
|
|
179
|
+
`Plutonium::Auth::Rodauth(:name)` exposes `current_user`, `logout_url`, and `rodauth` in the controller. It also adds a named accessor `current_<name>` aliased to `current_user` — e.g. `Rodauth(:admin)` gives `current_admin`. Read the signed-in account with `current_user` or its named alias (e.g. `current_admin`).
|
|
180
180
|
|
|
181
181
|
For portal wiring (`AdminPortal::Concerns::Controller`), see [[plutonium-app]] › Portal controller concern.
|
|
182
182
|
|
|
@@ -501,10 +501,30 @@ Show pages with `permitted_associations` (see [[plutonium-behavior]]) render a t
|
|
|
501
501
|
```ruby
|
|
502
502
|
Plutonium.configure do |config|
|
|
503
503
|
config.shell = :modern # default — topbar + icon rail
|
|
504
|
+
# config.shell = :plain # topbar, no icon rail (whole app rail-less)
|
|
504
505
|
# config.shell = :classic # legacy header + sidebar (only when upgrading)
|
|
505
506
|
end
|
|
506
507
|
```
|
|
507
508
|
|
|
509
|
+
`:plain` keeps the Topbar but drops the icon rail. **Shell resolves global → engine → controller**, each overriding the one above (`nil` falls through); read it with `controller.shell`:
|
|
510
|
+
|
|
511
|
+
```ruby
|
|
512
|
+
config.shell = :plain # 1. global default
|
|
513
|
+
class CustomerPortal::Engine; shell :plain; # 2. per-engine (lib/engine.rb)
|
|
514
|
+
class DashboardController; shell :modern; # 3. per-controller (overrides engine/global)
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
Alongside `shell`, the controller-only `rail` DSL flips just the rail (inherited `class_attribute`, so a portal opts in/out once in its concern) — `rail false` / `rail true`; `rail nil` (default) inherits the resolved shell, `rail?` reads the resolved value:
|
|
518
|
+
|
|
519
|
+
```ruby
|
|
520
|
+
module CustomerPortal::Concerns::Controller
|
|
521
|
+
extend ActiveSupport::Concern
|
|
522
|
+
included { rail false } # entire portal rail-less
|
|
523
|
+
end
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
Stable CSS hooks for rail-less overrides: `pu-topbar` (Topbar nav), `pu-sticky-footer` (form footer), and the `html.pu-no-rail` root class. A built-in rule cancels the desktop rail inset on the first two under `html.pu-no-rail`.
|
|
527
|
+
|
|
508
528
|
## Eject the chrome for per-portal customization
|
|
509
529
|
|
|
510
530
|
```bash
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [0.60.2] - 2026-06-15
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- *(layout)* Resolve shell across global, engine, and controller tiers
|
|
6
|
+
## [0.60.1] - 2026-06-15
|
|
7
|
+
|
|
8
|
+
### 🚀 Features
|
|
9
|
+
|
|
10
|
+
- *(layout)* First-class railless portal support
|
|
11
|
+
|
|
12
|
+
### 🐛 Bug Fixes
|
|
13
|
+
|
|
14
|
+
- *(forms)* Skip section fields not in the permitted set instead of raising
|
|
1
15
|
## [0.60.0] - 2026-06-14
|
|
2
16
|
|
|
3
17
|
### 🚀 Features
|