plutonium 0.33.1 → 0.34.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 (143) hide show
  1. checksums.yaml +4 -4
  2. data/# Plutonium: The pre-alpha demo.md +4 -2
  3. data/.claude/skills/assets/SKILL.md +416 -0
  4. data/.claude/skills/connect-resource/SKILL.md +112 -0
  5. data/.claude/skills/controller/SKILL.md +302 -0
  6. data/.claude/skills/create-resource/SKILL.md +240 -0
  7. data/.claude/skills/definition/SKILL.md +218 -0
  8. data/.claude/skills/definition-actions/SKILL.md +386 -0
  9. data/.claude/skills/definition-fields/SKILL.md +474 -0
  10. data/.claude/skills/definition-query/SKILL.md +334 -0
  11. data/.claude/skills/forms/SKILL.md +439 -0
  12. data/.claude/skills/installation/SKILL.md +300 -0
  13. data/.claude/skills/interaction/SKILL.md +382 -0
  14. data/.claude/skills/model/SKILL.md +267 -0
  15. data/.claude/skills/model-features/SKILL.md +286 -0
  16. data/.claude/skills/nested-resources/SKILL.md +274 -0
  17. data/.claude/skills/package/SKILL.md +191 -0
  18. data/.claude/skills/policy/SKILL.md +352 -0
  19. data/.claude/skills/portal/SKILL.md +400 -0
  20. data/.claude/skills/resource/SKILL.md +281 -0
  21. data/.claude/skills/rodauth/SKILL.md +452 -0
  22. data/.claude/skills/views/SKILL.md +563 -0
  23. data/Appraisals +46 -4
  24. data/CHANGELOG.md +32 -1
  25. data/app/assets/plutonium.css +2 -2
  26. data/config/brakeman.ignore +239 -0
  27. data/config/initializers/action_policy.rb +1 -1
  28. data/docs/.vitepress/config.ts +132 -47
  29. data/docs/concepts/architecture.md +226 -0
  30. data/docs/concepts/auto-detection.md +254 -0
  31. data/docs/concepts/index.md +61 -0
  32. data/docs/concepts/packages-portals.md +304 -0
  33. data/docs/concepts/resources.md +224 -0
  34. data/docs/cookbook/blog.md +412 -0
  35. data/docs/cookbook/index.md +289 -0
  36. data/docs/cookbook/saas.md +481 -0
  37. data/docs/getting-started/index.md +56 -0
  38. data/docs/getting-started/installation.md +146 -0
  39. data/docs/getting-started/tutorial/01-setup.md +118 -0
  40. data/docs/getting-started/tutorial/02-first-resource.md +180 -0
  41. data/docs/getting-started/tutorial/03-authentication.md +246 -0
  42. data/docs/getting-started/tutorial/04-authorization.md +170 -0
  43. data/docs/getting-started/tutorial/05-custom-actions.md +202 -0
  44. data/docs/getting-started/tutorial/06-nested-resources.md +147 -0
  45. data/docs/getting-started/tutorial/07-customizing-ui.md +254 -0
  46. data/docs/getting-started/tutorial/index.md +64 -0
  47. data/docs/guides/adding-resources.md +420 -0
  48. data/docs/guides/authentication.md +551 -0
  49. data/docs/guides/authorization.md +468 -0
  50. data/docs/guides/creating-packages.md +380 -0
  51. data/docs/guides/custom-actions.md +523 -0
  52. data/docs/guides/index.md +45 -0
  53. data/docs/guides/multi-tenancy.md +302 -0
  54. data/docs/guides/nested-resources.md +411 -0
  55. data/docs/guides/search-filtering.md +266 -0
  56. data/docs/guides/theming.md +321 -0
  57. data/docs/index.md +67 -26
  58. data/docs/public/CLAUDE.md +64 -21
  59. data/docs/reference/assets/index.md +496 -0
  60. data/docs/reference/controller/index.md +363 -0
  61. data/docs/reference/definition/actions.md +400 -0
  62. data/docs/reference/definition/fields.md +350 -0
  63. data/docs/reference/definition/index.md +252 -0
  64. data/docs/reference/definition/query.md +342 -0
  65. data/docs/reference/generators/index.md +469 -0
  66. data/docs/reference/index.md +49 -0
  67. data/docs/reference/interaction/index.md +445 -0
  68. data/docs/reference/model/features.md +248 -0
  69. data/docs/reference/model/index.md +219 -0
  70. data/docs/reference/policy/index.md +385 -0
  71. data/docs/reference/portal/index.md +382 -0
  72. data/docs/reference/views/forms.md +396 -0
  73. data/docs/reference/views/index.md +479 -0
  74. data/gemfiles/rails_7.gemfile +9 -2
  75. data/gemfiles/rails_7.gemfile.lock +146 -111
  76. data/gemfiles/rails_8.0.gemfile +20 -0
  77. data/gemfiles/rails_8.0.gemfile.lock +417 -0
  78. data/gemfiles/rails_8.1.gemfile +20 -0
  79. data/gemfiles/rails_8.1.gemfile.lock +419 -0
  80. data/lib/generators/pu/gem/dotenv/templates/.env +2 -0
  81. data/lib/generators/pu/gem/dotenv/templates/config/initializers/001_ensure_required_env.rb +3 -1
  82. data/lib/generators/pu/lib/plutonium_generators/model_generator_base.rb +13 -16
  83. data/lib/generators/pu/pkg/portal/USAGE +65 -0
  84. data/lib/generators/pu/pkg/portal/portal_generator.rb +22 -9
  85. data/lib/generators/pu/res/conn/USAGE +71 -0
  86. data/lib/generators/pu/res/model/USAGE +106 -110
  87. data/lib/generators/pu/res/model/templates/model.rb.tt +6 -2
  88. data/lib/generators/pu/res/scaffold/USAGE +85 -0
  89. data/lib/generators/pu/rodauth/install_generator.rb +2 -6
  90. data/lib/generators/pu/rodauth/templates/config/initializers/url_options.rb +17 -0
  91. data/lib/generators/pu/skills/sync/USAGE +14 -0
  92. data/lib/generators/pu/skills/sync/sync_generator.rb +66 -0
  93. data/lib/plutonium/action_policy/sti_policy_lookup.rb +1 -1
  94. data/lib/plutonium/core/controller.rb +2 -2
  95. data/lib/plutonium/interaction/base.rb +1 -0
  96. data/lib/plutonium/package/engine.rb +2 -2
  97. data/lib/plutonium/query/adhoc_block.rb +6 -2
  98. data/lib/plutonium/query/model_scope.rb +1 -1
  99. data/lib/plutonium/railtie.rb +4 -0
  100. data/lib/plutonium/resource/controllers/crud_actions/index_action.rb +1 -1
  101. data/lib/plutonium/resource/query_object.rb +38 -8
  102. data/lib/plutonium/ui/table/components/scopes_bar.rb +39 -34
  103. data/lib/plutonium/version.rb +1 -1
  104. data/lib/tasks/release.rake +19 -4
  105. data/package.json +1 -1
  106. metadata +76 -39
  107. data/brakeman.ignore +0 -28
  108. data/docs/api-examples.md +0 -49
  109. data/docs/guide/claude-code-guide.md +0 -74
  110. data/docs/guide/deep-dive/authorization.md +0 -189
  111. data/docs/guide/deep-dive/multitenancy.md +0 -256
  112. data/docs/guide/deep-dive/resources.md +0 -390
  113. data/docs/guide/getting-started/01-installation.md +0 -165
  114. data/docs/guide/index.md +0 -28
  115. data/docs/guide/introduction/01-what-is-plutonium.md +0 -211
  116. data/docs/guide/introduction/02-core-concepts.md +0 -440
  117. data/docs/guide/tutorial/01-project-setup.md +0 -75
  118. data/docs/guide/tutorial/02-creating-a-feature-package.md +0 -45
  119. data/docs/guide/tutorial/03-defining-resources.md +0 -90
  120. data/docs/guide/tutorial/04-creating-a-portal.md +0 -101
  121. data/docs/guide/tutorial/05-customizing-the-ui.md +0 -128
  122. data/docs/guide/tutorial/06-adding-custom-actions.md +0 -101
  123. data/docs/guide/tutorial/07-implementing-authorization.md +0 -90
  124. data/docs/markdown-examples.md +0 -85
  125. data/docs/modules/action.md +0 -244
  126. data/docs/modules/authentication.md +0 -236
  127. data/docs/modules/configuration.md +0 -599
  128. data/docs/modules/controller.md +0 -443
  129. data/docs/modules/core.md +0 -316
  130. data/docs/modules/definition.md +0 -1308
  131. data/docs/modules/display.md +0 -759
  132. data/docs/modules/form.md +0 -495
  133. data/docs/modules/generator.md +0 -400
  134. data/docs/modules/index.md +0 -167
  135. data/docs/modules/interaction.md +0 -642
  136. data/docs/modules/package.md +0 -151
  137. data/docs/modules/policy.md +0 -176
  138. data/docs/modules/portal.md +0 -710
  139. data/docs/modules/query.md +0 -297
  140. data/docs/modules/resource_record.md +0 -618
  141. data/docs/modules/routing.md +0 -690
  142. data/docs/modules/table.md +0 -301
  143. data/docs/modules/ui.md +0 -631
@@ -1,400 +0,0 @@
1
- ---
2
- title: Generator Module
3
- ---
4
-
5
- # Generator Module
6
-
7
- The Generator module provides comprehensive code generation and scaffolding capabilities for Plutonium applications. It offers a suite of Rails generators that automate the creation of packages, resources, authentication setups, and other common development patterns.
8
-
9
- ::: tip
10
- The Generator module is located in `lib/generators/pu/`.
11
- :::
12
-
13
- ## Overview
14
-
15
- - **Code Scaffolding**: Automated generation of models, controllers, policies, and definitions.
16
- - **Package Creation**: Portal and feature package generators with proper structure.
17
- - **Resource Management**: Complete resource scaffolding with CRUD operations.
18
- - **Authentication Setup**: Rodauth integration with multi-account support.
19
- - **Interactive CLI**: TTY-powered interactive prompts for generator options.
20
-
21
- ## Core Generators
22
-
23
- ### Installation Generator (`pu:core:install`)
24
-
25
- Sets up the base requirements for a Plutonium application.
26
-
27
- ::: code-group
28
-
29
- ```bash [Command]
30
- rails generate pu:core:install
31
- ```
32
-
33
- ```text [Generated Structure]
34
- config/
35
- ├── packages.rb # Package loading configuration
36
- └── initializers/
37
- └── plutonium.rb # Plutonium configuration
38
-
39
- packages/ # Package directory
40
- └── .keep
41
-
42
- app/
43
- ├── controllers/
44
- │ ├── application_controller.rb # Enhanced with Plutonium
45
- │ ├── plutonium_controller.rb # Base Plutonium controller
46
- │ └── resource_controller.rb # Resource CRUD controller
47
- └── models/
48
- └── application_record.rb # Enhanced with Plutonium::Resource::Record
49
-
50
- app/views/
51
- └── layouts/
52
- └── resource.html.erb # Ejected layout for customization
53
- ```
54
-
55
- :::
56
-
57
- ### Package Generators
58
-
59
- #### Portal Generator (`pu:pkg:portal`)
60
-
61
- Creates a complete portal package, which acts as a user-facing entry point to your application, often with its own authentication.
62
-
63
- ::: code-group
64
-
65
- ```bash [Command]
66
- # Creates an "admin" portal with authentication
67
- rails generate pu:pkg:portal admin
68
-
69
- # Creates a "customer" portal with public access
70
- rails generate pu:pkg:portal customer --public
71
- ```
72
-
73
- ```text [Generated Structure]
74
- packages/admin_portal/
75
- ├── lib/
76
- │ └── engine.rb # Portal engine with entity scoping
77
- ├── config/
78
- │ └── routes.rb # Portal-specific routes
79
- └── app/
80
- ├── controllers/
81
- │ └── admin_portal/
82
- │ ├── concerns/controller.rb # Portal controller concern
83
- │ ├── plutonium_controller.rb
84
- │ ├── resource_controller.rb
85
- │ └── dashboard_controller.rb
86
- ├── policies/
87
- │ └── admin_portal/
88
- └── definitions/
89
- └── admin_portal/
90
- ```
91
-
92
- ```ruby [Authentication Integration]
93
- # Automatic Rodauth integration is added to the controller concern
94
- # packages/admin_portal/app/controllers/admin_portal/concerns/controller.rb
95
-
96
- module AdminPortal
97
- module Concerns
98
- module Controller
99
- extend ActiveSupport::Concern
100
- include Plutonium::Portal::Controller
101
- # Generated based on generator selection (e.g., :admin)
102
- include Plutonium::Auth::Rodauth(:admin)
103
- end
104
- end
105
- end
106
- ```
107
-
108
- :::
109
-
110
- #### Package Generator (`pu:pkg:package`)
111
-
112
- Creates a standard feature package for encapsulating domain logic.
113
-
114
- ::: code-group
115
-
116
- ```bash [Command]
117
- rails generate pu:pkg:package blogging
118
- ```
119
-
120
- ```text [Generated Structure]
121
- packages/blogging/
122
- ├── lib/
123
- │ └── engine.rb # Package engine
124
- └── app/
125
- ├── models/
126
- │ └── blogging/
127
- ├── controllers/
128
- │ └── blogging/
129
- ├── policies/
130
- │ └── blogging/
131
- ├── definitions/
132
- │ └── blogging/
133
- └── interactions/
134
- └── blogging/
135
- ```
136
-
137
- :::
138
-
139
- ### Resource Generators
140
-
141
- #### Scaffold Generator (`pu:res:scaffold`)
142
-
143
- Creates a complete resource with a model, controller, policy, and definition, including full CRUD operations.
144
-
145
- ::: code-group
146
-
147
- ```bash [Command]
148
- # Generate a new resource with attributes, placing it in the 'blogging' package
149
- rails generate pu:res:scaffold Post title:string content:text author:references published:boolean --dest=blogging
150
- ```
151
-
152
- ```ruby [Generated Model]
153
- # packages/blogging/app/models/blogging/post.rb
154
- class Blogging::Post < Blogging::ResourceRecord
155
- belongs_to :author, class_name: 'UserManagement::User'
156
-
157
- validates :title, presence: true
158
- validates :content, presence: true
159
- end
160
- ```
161
-
162
- ```ruby [Generated Policy]
163
- # packages/blogging/app/policies/blogging/post_policy.rb
164
- class Blogging::PostPolicy < Blogging B::ResourcePolicy
165
- def create?
166
- user.present?
167
- end
168
-
169
- def update?
170
- user == record.author
171
- end
172
- end
173
- ```
174
-
175
- ```ruby [Generated Definition]
176
- # packages/blogging/app/definitions/blogging/post_definition.rb
177
- class Blogging::PostDefinition < Blogging::ResourceDefinition
178
- # Display configuration
179
- display :title, :author, :published, :created_at
180
-
181
- # Search configuration
182
- search :title, :content
183
-
184
- # Filter configuration
185
- filter :published, with: :boolean
186
- filter :author, with: :select
187
- end
188
- ```
189
-
190
- :::
191
-
192
- ### Authentication Generators
193
-
194
- #### Rodauth Customer Generator (`pu:rodauth:customer`)
195
-
196
- Easily add multitenancy and SaaS-ready authentication to your Plutonium app. This generator creates a customer-oriented Rodauth account, an entity model, and a membership join model, wiring up all necessary relationships for multi-tenant architectures.
197
-
198
- > **Note:** If you omit the `--entity` parameter, the entity name will default to `Entity` and the join relation will be `EntityCustomer`. **It is strongly recommended to always provide a meaningful entity name using `--entity=YourEntityName` to ensure clarity and proper model relationships in your application.**
199
-
200
- > **Option:** `--allow-signup` determines whether the customer user is allowed to sign up on the platform. If not allowed, new customer accounts will typically be created by platform admins and users notified. Use `--no-allow-signup` to restrict self-signup.
201
-
202
- ::: code-group
203
-
204
- ```bash [Command]
205
- rails generate pu:rodauth:customer Customer --entity=Organization
206
- ```
207
-
208
- ```text [Generated Structure]
209
- app/
210
- ├── models/
211
- │ ├── customer.rb
212
- │ ├── organization.rb
213
- │ └── organization_customer.rb
214
- └── rodauth/
215
- ├── customer_rodauth.rb
216
- └── customer_rodauth_plugin.rb
217
- db/
218
- └── migrate/
219
- ├── ..._create_customers.rb
220
- ├── ..._create_organizations.rb
221
- └── ..._create_organization_customers.rb
222
- ```
223
-
224
- ```ruby [Generated Models]
225
- # app/models/organization.rb
226
- class Organization < ::ResourceRecord
227
- has_many :organization_customers
228
- has_many :customers, through: :organization_customers
229
- end
230
-
231
- # app/models/customer.rb
232
- class Customer < ResourceRecord
233
- include Rodauth::Rails.model(:customer)
234
-
235
- has_many :organization_customers
236
- has_many :organizations, through: :organization_customers
237
- end
238
-
239
- # app/models/organization_customer.rb
240
- class OrganizationCustomer < ::ResourceRecord
241
- enum :role, member: 0, owner: 1
242
-
243
- belongs_to :organization
244
- belongs_to :customer
245
- end
246
- ```
247
-
248
- :::
249
-
250
- > **Note:** If you already have a customer user model and want to add an entity (for example, as your project evolves into a SaaS), use the Entity Resource Generator below to generate just the entity and membership join model.
251
-
252
- #### Rodauth Account Generator (`pu:rodauth:account`)
253
-
254
- Generates the necessary files for a Rodauth authentication setup for a given account type.
255
-
256
- ::: code-group
257
-
258
- ```bash [Command]
259
- # Generate a 'user' account with common features
260
- rails generate pu:rodauth:account user --features login logout create-account verify-account reset-password remember
261
- ```
262
-
263
- ```text [Generated Structure]
264
- app/
265
- ├── controllers/
266
- │ └── rodauth/
267
- │ └── user_controller.rb
268
- ├── mailers/
269
- │ └── user_mailer.rb
270
- ├── models/
271
- │ └── user.rb
272
- └── rodauth/
273
- ├── user_rodauth.rb
274
- └── user_rodauth_plugin.rb
275
- db/
276
- └── migrate/
277
- └── ..._create_users.rb
278
- ```
279
-
280
- :::
281
-
282
- #### Rodauth Admin Generator (`pu:rodauth:admin`)
283
-
284
- A specialized generator for creating a secure admin account with enhanced features like MFA and audit logging.
285
-
286
- ::: code-group
287
-
288
- ```bash [Command]
289
- rails generate pu:rodauth:admin admin
290
- ```
291
-
292
- ```ruby [Generated Plugin]
293
- # app/rodauth/admin_rodauth_plugin.rb
294
- class AdminRodauthPlugin < RodauthPlugin
295
- configure do
296
- enable :login, :logout, :remember,
297
- :otp, :recovery_codes, :lockout,
298
- :active_sessions, :audit_logging,
299
- :password_grace_period, :internal_request
300
-
301
- # ... and other secure defaults
302
- end
303
- end
304
- ```
305
-
306
- :::
307
-
308
- ### Entity Resource Generator (`pu:res:entity`)
309
-
310
- Creates an entity model and a membership join model for associating customers with entities. Use this if you already have a customer model and want to add multitenancy or evolve your project into a SaaS platform.
311
-
312
- ::: code-group
313
-
314
- ```bash [Command]
315
- rails generate pu:res:entity Organization --auth-account=Customer
316
- ```
317
-
318
- ```text [Generated Structure]
319
- app/
320
- ├── models/
321
- │ ├── organization.rb
322
- │ └── organization_customer.rb
323
- db/
324
- └── migrate/
325
- ├── ..._create_organizations.rb
326
- └── ..._create_organization_customers.rb
327
- ```
328
-
329
- ```ruby [Generated Membership Model]
330
- # app/models/organization_customer.rb
331
- class OrganizationCustomer < ResourceRecord
332
- belongs_to :organization
333
- belongs_to :customer
334
-
335
- enum role: { member: 0, admin: 1 } # not added by default
336
- end
337
- ```
338
-
339
- :::
340
-
341
- ### Ejection Generators
342
-
343
- #### Layout Ejection (`pu:eject:layout`)
344
-
345
- Ejects Plutonium layouts for customization:
346
-
347
- ```bash
348
- rails generate pu:eject:layout --dest=admin_portal
349
- ```
350
-
351
- #### Shell Ejection (`pu:eject:shell`)
352
-
353
- Ejects shell components and assets:
354
-
355
- ```bash
356
- rails generate pu:eject:shell --dest=admin_portal
357
- ```
358
-
359
- ## Generator Configuration
360
-
361
- ### Interactive Mode
362
-
363
- Many generators support interactive prompts:
364
-
365
- ```bash
366
- # Interactive package selection
367
- rails generate pu:res:scaffold Post title:string
368
- # Prompts: "Select destination feature: [blogging, user_management, main_app]"
369
-
370
- # Non-interactive mode
371
- rails generate pu:res:scaffold Post title:string --dest=blogging
372
- ```
373
-
374
- ## Development Workflow Integration
375
-
376
- ### IDE Integration
377
-
378
- Add generator shortcuts to your IDE:
379
-
380
- ```json
381
- // .vscode/tasks.json
382
- {
383
- "tasks": [
384
- {
385
- "label": "Generate Resource",
386
- "type": "shell",
387
- "command": "rails generate pu:res:scaffold ${input:resourceName}",
388
- "group": "build"
389
- },
390
- {
391
- "label": "Generate Portal",
392
- "type": "shell",
393
- "command": "rails generate pu:pkg:portal ${input:portalName}",
394
- "group": "build"
395
- }
396
- ]
397
- }
398
- ```
399
-
400
- The Generator module provides a comprehensive foundation for rapid application development with Plutonium, automating repetitive tasks while maintaining flexibility and customization options.
@@ -1,167 +0,0 @@
1
- ---
2
- title: Plutonium Modules
3
- ---
4
-
5
- # Plutonium Modules
6
-
7
- Plutonium is built as a collection of focused, interconnected modules that extend Rails with powerful conventions and capabilities. Each module tackles a specific aspect of application development—from managing data and business logic to creating beautiful user interfaces.
8
-
9
- This modular design means you can learn and use only what you need, while still benefiting from the seamless integration across the entire framework.
10
-
11
- ---
12
-
13
- ## Architecture Modules
14
- The foundational components that structure and organize your Plutonium application.
15
-
16
- <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
17
- <div class="card">
18
- <a href="./core" class="block p-4">
19
- <h3 class="font-bold">Core Module</h3>
20
- <p class="text-sm">The foundation that powers everything—base controllers, essential utilities, and framework integration points.</p>
21
- </a>
22
- </div>
23
- <div class="card">
24
- <a href="./controller" class="block p-4">
25
- <h3 class="font-bold">Controller Module</h3>
26
- <p class="text-sm">Smart HTTP request handling with built-in CRUD operations, authorization, and multi-tenancy support.</p>
27
- </a>
28
- </div>
29
- <div class="card">
30
- <a href="./routing" class="block p-4">
31
- <h3 class="font-bold">Routing Module</h3>
32
- <p class="text-sm">Intelligent resource routing that automatically creates nested routes, handles entity scoping, and manages interactive actions.</p>
33
- </a>
34
- </div>
35
- <div class="card">
36
- <a href="./package" class="block p-4">
37
- <h3 class="font-bold">Package Module</h3>
38
- <p class="text-sm">Organize your application into self-contained, reusable packages using enhanced Rails Engines.</p>
39
- </a>
40
- </div>
41
- <div class="card">
42
- <a href="./portal" class="block p-4">
43
- <h3 class="font-bold">Portal Module</h3>
44
- <p class="text-sm">Create distinct application interfaces for different user types while managing multi-tenancy and access control.</p>
45
- </a>
46
- </div>
47
- <div class="card">
48
- <a href="./authentication" class="block p-4">
49
- <h3 class="font-bold">Authentication Module</h3>
50
- <p class="text-sm">Secure, flexible authentication powered by Rodauth with support for multiple account types and strategies.</p>
51
- </a>
52
- </div>
53
- <div class="card">
54
- <a href="./configuration" class="block p-4">
55
- <h3 class="font-bold">Configuration Module</h3>
56
- <p class="text-sm">Centralized configuration management for customizing every aspect of your Plutonium application.</p>
57
- </a>
58
- </div>
59
- </div>
60
-
61
- ## Business Logic Modules
62
- The tools for defining your application's data structures, business rules, and operations.
63
-
64
- <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
65
- <div class="card">
66
- <a href="./resource_record" class="block p-4">
67
- <h3 class="font-bold">Resource Record Module</h3>
68
- <p class="text-sm">The heart of your application—define models, their behavior, and how they interact with the world.</p>
69
- </a>
70
- </div>
71
- <div class="card">
72
- <a href="./interaction" class="block p-4">
73
- <h3 class="font-bold">Interaction Module</h3>
74
- <p class="text-sm">Encapsulate complex business logic into clean, testable, and reusable service objects.</p>
75
- </a>
76
- </div>
77
- <div class="card">
78
- <a href="./action" class="block p-4">
79
- <h3 class="font-bold">Action Module</h3>
80
- <p class="text-sm">Define custom operations that users can perform on resources, with automatic UI generation and routing.</p>
81
- </a>
82
- </div>
83
- <div class="card">
84
- <a href="./query" class="block p-4">
85
- <h3 class="font-bold">Query Module</h3>
86
- <p class="text-sm">Powerful, declarative data querying with built-in filtering, searching, and sorting capabilities.</p>
87
- </a>
88
- </div>
89
- <div class="card">
90
- <a href="./policy" class="block p-4">
91
- <h3 class="font-bold">Policy Module</h3>
92
- <p class="text-sm">Comprehensive authorization and access control built on the robust Action Policy framework.</p>
93
- </a>
94
- </div>
95
- </div>
96
-
97
- ## User Interface Modules
98
- Everything you need to create beautiful, consistent, and functional user interfaces.
99
-
100
- <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
101
- <div class="card">
102
- <a href="./ui" class="block p-4">
103
- <h3 class="font-bold">UI Module</h3>
104
- <p class="text-sm">The foundation for all UI components, providing core rendering logic and display patterns.</p>
105
- </a>
106
- </div>
107
- <div class="card">
108
- <a href="./display" class="block p-4">
109
- <h3 class="font-bold">Display Module</h3>
110
- <p class="text-sm">Rich components for presenting data in various formats—from simple text to complex visualizations.</p>
111
- </a>
112
- </div>
113
- <div class="card">
114
- <a href="./form" class="block p-4">
115
- <h3 class="font-bold">Form Module</h3>
116
- <p class="text-sm">Powerful form builder with automatic field generation, validation handling, and complex input types.</p>
117
- </a>
118
- </div>
119
- <div class="card">
120
- <a href="./table" class="block p-4">
121
- <h3 class="font-bold">Table Module</h3>
122
- <p class="text-sm">Feature-rich data tables with sorting, filtering, pagination, and bulk operations out of the box.</p>
123
- </a>
124
- </div>
125
- </div>
126
-
127
- ## Development & Tooling Modules
128
- Accelerate your development workflow with powerful generators and utilities.
129
-
130
- <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
131
- <div class="card">
132
- <a href="./generator" class="block p-4">
133
- <h3 class="font-bold">Generator Module</h3>
134
- <p class="text-sm">Comprehensive code generators for scaffolding every component of your Plutonium application.</p>
135
- </a>
136
- </div>
137
- <div class="card">
138
- <a href="./helper" class="block p-4">
139
- <h3 class="font-bold">Helper Module</h3>
140
- <p class="text-sm">A rich collection of view helpers and utilities that simplify template development and UI creation.</p>
141
- </a>
142
- </div>
143
- </div>
144
-
145
- ## Coming Soon
146
- These modules are actively being developed and will be available in future releases.
147
-
148
- <div class="grid grid-cols-1 md:grid-cols-2 gap-4">
149
- <div class="card">
150
- <div class="p-4">
151
- <h3 class="font-bold">Testing Module <span class="text-xs font-mono text-gray-400">In Development</span></h3>
152
- <p class="text-sm">Comprehensive testing utilities and patterns specifically designed for Plutonium applications.</p>
153
- </div>
154
- </div>
155
- <div class="card">
156
- <div class="p-4">
157
- <h3 class="font-bold">Asset Module <span class="text-xs font-mono text-gray-400">In Development</span></h3>
158
- <p class="text-sm">Advanced tools for managing assets, dependencies, and the modern JavaScript/CSS pipeline.</p>
159
- </div>
160
- </div>
161
- <div class="card">
162
- <div class="p-4">
163
- <h3 class="font-bold">Theme Module <span class="text-xs font-mono text-gray-400">In Development</span></h3>
164
- <p class="text-sm">A comprehensive theming system for deep customization of your application's look and feel.</p>
165
- </div>
166
- </div>
167
- </div>