plutonium 0.59.0 → 0.60.1
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 +8 -2
- data/.claude/skills/plutonium-ui/SKILL.md +12 -0
- data/CHANGELOG.md +15 -0
- data/app/assets/plutonium.css +1 -1
- data/docs/reference/auth/accounts.md +7 -0
- data/docs/reference/configuration.md +1 -1
- data/docs/reference/resource/definition.md +129 -0
- data/docs/reference/ui/forms.md +51 -21
- data/docs/reference/ui/layouts.md +37 -1
- data/docs/superpowers/plans/2026-06-14-form-sectioning.md +926 -0
- data/docs/superpowers/plans/2026-06-14-form-sectioning.md.tasks.json +40 -0
- 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 +247 -0
- data/docs/superpowers/specs/2026-06-14-railless-portal-design.md +275 -0
- data/gemfiles/rails_7.gemfile.lock +1 -1
- data/gemfiles/rails_8.0.gemfile.lock +1 -1
- data/gemfiles/rails_8.1.gemfile.lock +1 -1
- data/lib/generators/pu/core/install/templates/config/initializers/plutonium.rb +1 -0
- data/lib/generators/pu/rodauth/admin_generator.rb +5 -2
- data/lib/generators/pu/rodauth/migration_generator.rb +1 -1
- data/lib/generators/pu/rodauth/templates/app/interactions/resend_admin_interaction.rb.tt +18 -0
- data/lib/generators/pu/rodauth/views_generator.rb +1 -1
- data/lib/plutonium/auth/rodauth.rb +2 -1
- data/lib/plutonium/configuration.rb +2 -1
- data/lib/plutonium/core/controller.rb +19 -0
- data/lib/plutonium/definition/base.rb +1 -0
- data/lib/plutonium/definition/form_layout.rb +143 -0
- data/lib/plutonium/interaction/base.rb +1 -0
- data/lib/plutonium/package/engine.rb +17 -7
- data/lib/plutonium/ui/form/components/section.rb +58 -0
- data/lib/plutonium/ui/form/components/sticky_footer.rb +1 -1
- data/lib/plutonium/ui/form/resource.rb +85 -7
- data/lib/plutonium/ui/layout/base.rb +5 -0
- data/lib/plutonium/ui/layout/resource_layout.rb +22 -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
- data/src/css/slim_select.css +11 -2
- metadata +11 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 371d9fea402116abc683c5a86c2a23ff54d6e093a5d5d64860a905cd2fb64b72
|
|
4
|
+
data.tar.gz: 6fc951e3e6ab822ee42c17ee843b0373b185e9e2d54b63c68906391bae04d07b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e3b2bbce710220fe7cdaab63cb0b35c5b271cf4c07fe246fbc6a5a96cc178b1b223947150e547bc763c5adb59454d685e50984e6978a7427813d2f8182f72fdc
|
|
7
|
+
data.tar.gz: c243e2aa38c0ca4942655791b6a9ed8efc1e037d90ec63c1f07e1051ef4fe7fc8abf1b12af5dcb916632c301eb3eb9bdb3c7d7f4818a347992fac3a5ecc142e2
|
|
@@ -70,7 +70,7 @@ rails generate pu:rodauth:account user [options]
|
|
|
70
70
|
|
|
71
71
|
### Admin account — `pu:rodauth:admin`
|
|
72
72
|
|
|
73
|
-
Pre-configured secure admin with multi-phase login, required TOTP, recovery codes, lockout, active session tracking, audit logging, role-based access, invite
|
|
73
|
+
Pre-configured secure admin with multi-phase login, required TOTP, recovery codes, lockout, active session tracking, audit logging, role-based access, invite + resend-invite interactions, and **no public signup**.
|
|
74
74
|
|
|
75
75
|
```bash
|
|
76
76
|
rails generate pu:rodauth:admin admin
|
|
@@ -89,6 +89,12 @@ rails generate pu:rodauth:admin admin --extra-attributes=name:string,department:
|
|
|
89
89
|
enum :role, super_admin: 0, admin: 1
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
+
**Invite + resend actions.** The admin resource gets two actions:
|
|
93
|
+
- **Invite** — invite a new admin by email; they set their password via the verification link.
|
|
94
|
+
- **Resend invitation** — re-send that verification email, shown only for admins who haven't verified yet.
|
|
95
|
+
|
|
96
|
+
This is Rodauth account verification — distinct from the tenancy invitation system (see [[plutonium-tenancy]]).
|
|
97
|
+
|
|
92
98
|
Rake task for direct admin creation (namespace is `rodauth`, task name is the account name):
|
|
93
99
|
|
|
94
100
|
```bash
|
|
@@ -170,7 +176,7 @@ class AdminController < PlutoniumController
|
|
|
170
176
|
end
|
|
171
177
|
```
|
|
172
178
|
|
|
173
|
-
`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`).
|
|
174
180
|
|
|
175
181
|
For portal wiring (`AdminPortal::Concerns::Controller`), see [[plutonium-app]] › Portal controller concern.
|
|
176
182
|
|
|
@@ -501,10 +501,22 @@ 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. Override per-controller (and so per-portal, since it's an inherited `class_attribute`) with the `rail` DSL — `rail false` / `rail true`; `rail nil` (default) inherits the shell default, `rail?` reads the resolved value:
|
|
510
|
+
|
|
511
|
+
```ruby
|
|
512
|
+
module CustomerPortal::Concerns::Controller
|
|
513
|
+
extend ActiveSupport::Concern
|
|
514
|
+
included { rail false } # entire portal rail-less
|
|
515
|
+
end
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
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`.
|
|
519
|
+
|
|
508
520
|
## Eject the chrome for per-portal customization
|
|
509
521
|
|
|
510
522
|
```bash
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
## [0.60.1] - 2026-06-15
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- *(layout)* First-class railless portal support
|
|
6
|
+
|
|
7
|
+
### 🐛 Bug Fixes
|
|
8
|
+
|
|
9
|
+
- *(forms)* Skip section fields not in the permitted set instead of raising
|
|
10
|
+
## [0.60.0] - 2026-06-14
|
|
11
|
+
|
|
12
|
+
### 🚀 Features
|
|
13
|
+
|
|
14
|
+
- *(generators)* Add resend-invite action to rodauth admin
|
|
15
|
+
- *(forms)* Form sectioning DSL (form_layout / section / ungrouped) (#61)
|
|
1
16
|
## [0.59.0] - 2026-06-13
|
|
2
17
|
|
|
3
18
|
### 🚀 Features
|