plutonium 0.8.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +7 -0
- data/Rakefile +10 -0
- data/app/assets/build/plutonium.js +5122 -0
- data/app/assets/javascripts/controllers/index.js +34 -0
- data/app/assets/javascripts/controllers/resource_dismiss_controller.js +37 -0
- data/app/assets/javascripts/controllers/resource_drop_down_controller.js +29 -0
- data/app/assets/javascripts/plutonium-app.js +7 -0
- data/app/assets/javascripts/plutonium.js +1 -0
- data/app/assets/{js → javascripts}/turbo/index.js +1 -1
- data/app/views/application/_flash.html.erb +1 -1
- data/app/views/application/_flash_alerts.html.erb +51 -7
- data/app/views/application/_flash_toasts.html.erb +53 -23
- data/app/views/application/_resource_header.html.erb +563 -561
- data/app/views/components/form/form_builder.rb +2 -2
- data/app/views/components/form/form_component.html.erb +5 -6
- data/app/views/components/interactive_action_form/interactive_action_form_component.html.erb +1 -1
- data/app/views/components/nested_resource_form_fields/nested_resource_form_fields_component.html.erb +66 -0
- data/app/views/components/nested_resource_form_fields/nested_resource_form_fields_component.rb +23 -0
- data/app/views/components/nested_resource_form_fields/nested_resource_form_fields_controller.js +64 -0
- data/app/views/components/sidebar/sidebar_component.html.erb +61 -63
- data/app/views/components/table_search_input/table_search_input_component.html.erb +1 -1
- data/app/views/layouts/resource.html copy.erb +0 -2
- data/app/views/layouts/resource.html.erb +1 -3
- data/app/views/layouts/rodauth.html.erb +0 -1
- data/app/views/resource/_interactive_resource_action_form.html.erb +1 -1
- data/css.manifest +3 -0
- data/esbuild.config.js +44 -0
- data/exe/pug +6 -0
- data/lib/generators/pu/gen/component/component_generator.rb +14 -5
- data/lib/generators/pu/gen/pug/pug_generator.rb +1 -1
- data/lib/generators/pu/lib/plutonium_generators/cli.rb +42 -0
- data/lib/generators/pu/lib/plutonium_generators/concerns/actions.rb +86 -72
- data/lib/generators/pu/lib/plutonium_generators/generator.rb +1 -5
- data/lib/generators/pu/lib/plutonium_generators.rb +8 -0
- data/lib/generators/pu/rodauth/install_generator.rb +1 -2
- data/lib/plutonium/core/actions/collection.rb +1 -1
- data/lib/plutonium/core/controllers/authorizable.rb +4 -4
- data/lib/plutonium/core/fields/inputs/base.rb +1 -1
- data/lib/plutonium/core/fields/inputs/nested_input.rb +57 -0
- data/lib/plutonium/core/fields/inputs/noop_input.rb +1 -1
- data/lib/plutonium/core/fields/inputs/phone_input.rb +1 -1
- data/lib/plutonium/core/fields/inputs/polymorphic_belongs_to_association_input.rb +1 -1
- data/lib/plutonium/core/fields/inputs/simple_form_association_input.rb +1 -1
- data/lib/plutonium/core/fields/inputs/simple_form_input.rb +1 -1
- data/lib/plutonium/pkg/base.rb +0 -4
- data/lib/plutonium/railtie.rb +10 -2
- data/lib/plutonium/resource/policy.rb +6 -0
- data/lib/plutonium/resource/presenter.rb +35 -0
- data/lib/plutonium/resource/record.rb +40 -7
- data/lib/plutonium/version.rb +1 -1
- data/lib/plutonium.rb +17 -14
- data/package.json +4 -3
- data/postcss.config.js +1 -1
- data/public/plutonium-assets/plutonium-app-36KN5FVJ.js +6 -0
- data/public/plutonium-assets/plutonium-app-36KN5FVJ.js.map +7 -0
- data/public/plutonium-assets/plutonium.50232e35b5495f5ad90d.css +3415 -0
- data/tailwind.config.js +11 -12
- data/templates/base.rb +8 -0
- metadata +28 -21
- data/app/assets/js/controllers/application.js +0 -6
- data/app/assets/js/controllers/dropdown_controller.js +0 -12
- data/app/assets/js/controllers/index.js +0 -21
- data/app/assets/js/plutonium.js +0 -2
- data/build.js +0 -12
- data/lib/generators/pu/gem/pagy/pagy_generator.rb +0 -25
- data/lib/generators/pu/gem/pagy/templates/config/initializers/pagy.rb +0 -4
- data/lib/generators/pu/gem/rabl/rabl_generator.rb +0 -25
- data/lib/generators/pu/gem/rabl/templates/.keep +0 -0
- data/lib/generators/pu/gem/rabl/templates/config/initializers/rabl.rb +0 -60
- data/lib/generators/pu/gem/simple_form/simple_form_generator.rb +0 -25
- data/lib/generators/pu/gem/simple_form/templates/.keep +0 -0
- /data/{lib/generators/pu/gem/pagy/templates → app/assets/build}/.keep +0 -0
- /data/app/assets/{js → javascripts}/turbo/turbo_actions.js +0 -0
- /data/app/assets/{js → javascripts}/turbo/turbo_debug.js +0 -0
- /data/app/assets/{js → javascripts}/turbo/turbo_frame_monkey_patch.js +0 -0
- /data/app/assets/{css → stylesheets}/plutonium.css +0 -0
data/tailwind.config.js
CHANGED
@@ -1,17 +1,16 @@
|
|
1
|
-
/** @type {import('tailwindcss').Config} */
|
2
1
|
|
3
|
-
|
2
|
+
/** @type {import('tailwindcss').Config} */
|
4
3
|
|
5
4
|
let safelist = [];
|
6
|
-
Object.keys(colors).forEach((color) => {
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
});
|
5
|
+
// Object.keys(colors).forEach((color) => {
|
6
|
+
// if (typeof colors[color] === 'object') {
|
7
|
+
// Object.keys(colors[color]).forEach((shade) => {
|
8
|
+
// safelist.push(`bg-${color}-${shade}`);
|
9
|
+
// safelist.push(`text-${color}-${shade}`);
|
10
|
+
// // Add other utilities as needed
|
11
|
+
// });
|
12
|
+
// }
|
13
|
+
// });
|
15
14
|
|
16
15
|
module.exports = {
|
17
16
|
content: [
|
@@ -22,7 +21,7 @@ module.exports = {
|
|
22
21
|
`${__dirname}/config/initializers/simple_form.rb`,
|
23
22
|
// TODO: temporary workaround for buttons flex basis hack.
|
24
23
|
// To be removed after moving buttons_helper to components.
|
25
|
-
`${__dirname}/lib/plutonium/**/*.{rb,erb}`
|
24
|
+
// `${__dirname}/lib/plutonium/**/*.{rb,erb}`
|
26
25
|
],
|
27
26
|
darkMode: "selector",
|
28
27
|
plugins: [
|
data/templates/base.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plutonium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Froelich
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-05-
|
11
|
+
date: 2024-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeitwerk
|
@@ -203,7 +203,8 @@ description: Plutonium extends Rails' capabilities with a powerful, generator-dr
|
|
203
203
|
you build applications with Rails, optimizing for rapid application development.
|
204
204
|
email:
|
205
205
|
- sfroelich01@gmail.com
|
206
|
-
executables:
|
206
|
+
executables:
|
207
|
+
- pug
|
207
208
|
extensions: []
|
208
209
|
extra_rdoc_files: []
|
209
210
|
files:
|
@@ -219,7 +220,8 @@ files:
|
|
219
220
|
- README copy.md
|
220
221
|
- README.md
|
221
222
|
- Rakefile
|
222
|
-
- app/assets/
|
223
|
+
- app/assets/build/.keep
|
224
|
+
- app/assets/build/plutonium.js
|
223
225
|
- app/assets/icons/flags/ghana.svg
|
224
226
|
- app/assets/icons/outline/address-book.svg
|
225
227
|
- app/assets/icons/outline/adjustments-horizontal.svg
|
@@ -707,14 +709,16 @@ files:
|
|
707
709
|
- app/assets/icons/solid/youtube.svg
|
708
710
|
- app/assets/icons/solid/zoom-in.svg
|
709
711
|
- app/assets/icons/solid/zoom-out.svg
|
710
|
-
- app/assets/
|
711
|
-
- app/assets/
|
712
|
-
- app/assets/
|
713
|
-
- app/assets/
|
714
|
-
- app/assets/
|
715
|
-
- app/assets/
|
716
|
-
- app/assets/
|
717
|
-
- app/assets/
|
712
|
+
- app/assets/javascripts/controllers/index.js
|
713
|
+
- app/assets/javascripts/controllers/resource_dismiss_controller.js
|
714
|
+
- app/assets/javascripts/controllers/resource_drop_down_controller.js
|
715
|
+
- app/assets/javascripts/plutonium-app.js
|
716
|
+
- app/assets/javascripts/plutonium.js
|
717
|
+
- app/assets/javascripts/turbo/index.js
|
718
|
+
- app/assets/javascripts/turbo/turbo_actions.js
|
719
|
+
- app/assets/javascripts/turbo/turbo_debug.js
|
720
|
+
- app/assets/javascripts/turbo/turbo_frame_monkey_patch.js
|
721
|
+
- app/assets/stylesheets/plutonium.css
|
718
722
|
- app/views/application/_color_modes.html.erb
|
719
723
|
- app/views/application/_flash.html.erb
|
720
724
|
- app/views/application/_flash_alerts.html.erb
|
@@ -745,6 +749,9 @@ files:
|
|
745
749
|
- app/views/components/interactive_action_form/interactive_action_form_component.html.erb
|
746
750
|
- app/views/components/interactive_action_form/interactive_action_form_component.rb
|
747
751
|
- app/views/components/interactive_action_form/interactive_action_form_controller.js
|
752
|
+
- app/views/components/nested_resource_form_fields/nested_resource_form_fields_component.html.erb
|
753
|
+
- app/views/components/nested_resource_form_fields/nested_resource_form_fields_component.rb
|
754
|
+
- app/views/components/nested_resource_form_fields/nested_resource_form_fields_controller.js
|
748
755
|
- app/views/components/pagination/pagination_component.html.erb
|
749
756
|
- app/views/components/pagination/pagination_component.rb
|
750
757
|
- app/views/components/panel/panel_component.html.erb
|
@@ -833,11 +840,13 @@ files:
|
|
833
840
|
- app/views/rodauth/webauthn_remove.html.erb
|
834
841
|
- app/views/rodauth/webauthn_setup.html.erb
|
835
842
|
- brakeman.ignore
|
836
|
-
- build.js
|
837
843
|
- config/initializers/hotwire_turbo_monkey_patches.rb
|
838
844
|
- config/initializers/pagy.rb
|
839
845
|
- config/initializers/rabl.rb
|
840
846
|
- config/initializers/simple_form.rb
|
847
|
+
- css.manifest
|
848
|
+
- esbuild.config.js
|
849
|
+
- exe/pug
|
841
850
|
- lib/active_model/validations/array_validator.rb
|
842
851
|
- lib/active_model/validations/attached_validator.rb
|
843
852
|
- lib/active_model/validations/url_validator.rb
|
@@ -851,14 +860,6 @@ files:
|
|
851
860
|
- lib/generators/pu/core/install/templates/app/query_objects/resource_query_object.rb.tt
|
852
861
|
- lib/generators/pu/core/install/templates/config/initializers/plutonium.rb
|
853
862
|
- lib/generators/pu/core/install/templates/config/packages.rb
|
854
|
-
- lib/generators/pu/gem/pagy/pagy_generator.rb
|
855
|
-
- lib/generators/pu/gem/pagy/templates/.keep
|
856
|
-
- lib/generators/pu/gem/pagy/templates/config/initializers/pagy.rb
|
857
|
-
- lib/generators/pu/gem/rabl/rabl_generator.rb
|
858
|
-
- lib/generators/pu/gem/rabl/templates/.keep
|
859
|
-
- lib/generators/pu/gem/rabl/templates/config/initializers/rabl.rb
|
860
|
-
- lib/generators/pu/gem/simple_form/simple_form_generator.rb
|
861
|
-
- lib/generators/pu/gem/simple_form/templates/.keep
|
862
863
|
- lib/generators/pu/gen/component/component_generator.rb
|
863
864
|
- lib/generators/pu/gen/component/templates/component.html.erb.tt
|
864
865
|
- lib/generators/pu/gen/component/templates/component.rb.tt
|
@@ -866,6 +867,7 @@ files:
|
|
866
867
|
- lib/generators/pu/gen/pug/pug_generator.rb
|
867
868
|
- lib/generators/pu/gen/pug/templates/pug.rb.tt
|
868
869
|
- lib/generators/pu/lib/plutonium_generators.rb
|
870
|
+
- lib/generators/pu/lib/plutonium_generators/cli.rb
|
869
871
|
- lib/generators/pu/lib/plutonium_generators/concerns/actions.rb
|
870
872
|
- lib/generators/pu/lib/plutonium_generators/concerns/config.rb
|
871
873
|
- lib/generators/pu/lib/plutonium_generators/concerns/logger.rb
|
@@ -1012,6 +1014,7 @@ files:
|
|
1012
1014
|
- lib/plutonium/core/fields/inputs/date_time_input.rb
|
1013
1015
|
- lib/plutonium/core/fields/inputs/factory.rb
|
1014
1016
|
- lib/plutonium/core/fields/inputs/has_many_association_input.rb
|
1017
|
+
- lib/plutonium/core/fields/inputs/nested_input.rb
|
1015
1018
|
- lib/plutonium/core/fields/inputs/noop_input.rb
|
1016
1019
|
- lib/plutonium/core/fields/inputs/phone_input.rb
|
1017
1020
|
- lib/plutonium/core/fields/inputs/polymorphic_belongs_to_association_input.rb
|
@@ -1069,8 +1072,12 @@ files:
|
|
1069
1072
|
- public/plutonium-assets/fonts/bootstrap-icons.woff
|
1070
1073
|
- public/plutonium-assets/fonts/bootstrap-icons.woff2
|
1071
1074
|
- public/plutonium-assets/logo.png
|
1075
|
+
- public/plutonium-assets/plutonium-app-36KN5FVJ.js
|
1076
|
+
- public/plutonium-assets/plutonium-app-36KN5FVJ.js.map
|
1077
|
+
- public/plutonium-assets/plutonium.50232e35b5495f5ad90d.css
|
1072
1078
|
- sig/plutonium.rbs
|
1073
1079
|
- tailwind.config.js
|
1080
|
+
- templates/base.rb
|
1074
1081
|
homepage: https://github.com/radioactive-labs/plutonium-core
|
1075
1082
|
licenses:
|
1076
1083
|
- MIT
|
@@ -1,12 +0,0 @@
|
|
1
|
-
import { Controller } from "@hotwired/stimulus"
|
2
|
-
|
3
|
-
// Connects to data-controller="dropdown"
|
4
|
-
export default class extends Controller {
|
5
|
-
connect() {
|
6
|
-
console.log(`form connected: ${this.element}`)
|
7
|
-
}
|
8
|
-
|
9
|
-
submit() {
|
10
|
-
this.element.requestSubmit()
|
11
|
-
}
|
12
|
-
}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
import { application } from "./application"
|
2
|
-
|
3
|
-
// Register controllers here
|
4
|
-
|
5
|
-
import TabBarController from "../../../../app/views/components/tab_bar/tab_bar_controller.js"
|
6
|
-
application.register("tab-bar", TabBarController)
|
7
|
-
|
8
|
-
import ToolbarController from "../../../../app/views/components/toolbar/toolbar_controller.js"
|
9
|
-
application.register("toolbar", ToolbarController)
|
10
|
-
|
11
|
-
import TableSearchInputController from "../../../../app/views/components/table_search_input/table_search_input_controller.js"
|
12
|
-
application.register("table-search-input", TableSearchInputController)
|
13
|
-
|
14
|
-
import TableToolbarController from "../../../../app/views/components/table_toolbar/table_toolbar_controller.js"
|
15
|
-
application.register("table-toolbar", TableToolbarController)
|
16
|
-
|
17
|
-
import TableController from "../../../../app/views/components/table/table_controller.js"
|
18
|
-
application.register("table", TableController)
|
19
|
-
|
20
|
-
import FormController from "../../../../app/views/components/form/form_controller.js"
|
21
|
-
application.register("form", FormController)
|
data/app/assets/js/plutonium.js
DELETED
data/build.js
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
const esbuild = require('esbuild');
|
2
|
-
const manifestPlugin = require('esbuild-plugin-manifest')
|
3
|
-
|
4
|
-
esbuild.context({
|
5
|
-
entryPoints: ["app/assets/js/plutonium.js"],
|
6
|
-
bundle: true,
|
7
|
-
outdir: "public/plutonium-assets/build/",
|
8
|
-
plugins: [manifestPlugin({
|
9
|
-
filename: `${__dirname}/js.manifest`,
|
10
|
-
shortNames: true,
|
11
|
-
})],
|
12
|
-
}).then((context) => context.watch().catch((e) => console.error(e.message)))
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../../lib/plutonium_generators"
|
4
|
-
|
5
|
-
module Pu
|
6
|
-
module Gem
|
7
|
-
class PagyGenerator < Rails::Generators::Base
|
8
|
-
include PlutoniumGenerators::Generator
|
9
|
-
|
10
|
-
source_root File.expand_path("templates", __dir__)
|
11
|
-
|
12
|
-
desc "Install Pagy"
|
13
|
-
|
14
|
-
def start
|
15
|
-
Bundler.with_unbundled_env do
|
16
|
-
run "bundle add pagy"
|
17
|
-
end
|
18
|
-
|
19
|
-
directory "config"
|
20
|
-
rescue => e
|
21
|
-
exception "#{self.class} failed:", e
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../../lib/plutonium_generators"
|
4
|
-
|
5
|
-
module Pu
|
6
|
-
module Gem
|
7
|
-
class RablGenerator < Rails::Generators::Base
|
8
|
-
include PlutoniumGenerators::Generator
|
9
|
-
|
10
|
-
source_root File.expand_path("templates", __dir__)
|
11
|
-
|
12
|
-
desc "Install Rabl"
|
13
|
-
|
14
|
-
def start
|
15
|
-
Bundler.with_unbundled_env do
|
16
|
-
run "bundle add rabl"
|
17
|
-
end
|
18
|
-
|
19
|
-
directory "config"
|
20
|
-
rescue => e
|
21
|
-
exception "#{self.class} failed:", e
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
File without changes
|
@@ -1,60 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# https://github.com/nesquena/rabl#configuration
|
4
|
-
|
5
|
-
Rabl.configure do |config|
|
6
|
-
config.cache_sources = !Rails.env.development? # Defaults to false
|
7
|
-
config.raise_on_missing_attribute = !Rails.env.production? # Defaults to false
|
8
|
-
|
9
|
-
# config.cache_all_output = false
|
10
|
-
# config.cache_engine = Rabl::CacheEngine.new # Defaults to Rails cache
|
11
|
-
# config.perform_caching = false
|
12
|
-
# config.escape_all_output = false
|
13
|
-
# config.json_engine = nil # Class with #dump class method (defaults JSON)
|
14
|
-
# config.msgpack_engine = nil # Defaults to ::MessagePack
|
15
|
-
# config.bson_engine = nil # Defaults to ::BSON
|
16
|
-
# config.plist_engine = nil # Defaults to ::Plist::Emit
|
17
|
-
# config.include_json_root = true
|
18
|
-
# config.include_msgpack_root = true
|
19
|
-
# config.include_bson_root = true
|
20
|
-
# config.include_plist_root = true
|
21
|
-
# config.include_xml_root = false
|
22
|
-
# config.include_child_root = true
|
23
|
-
# config.enable_json_callbacks = false
|
24
|
-
# config.xml_options = { :dasherize => true, :skip_types => false }
|
25
|
-
# config.view_paths = []
|
26
|
-
# config.replace_nil_values_with_empty_strings = true # Defaults to false
|
27
|
-
# config.replace_empty_string_values_with_nil_values = true # Defaults to false
|
28
|
-
# config.exclude_nil_values = true # Defaults to false
|
29
|
-
# config.exclude_empty_values_in_collections = true # Defaults to false
|
30
|
-
# config.camelize_keys = :upper # Defaults to false
|
31
|
-
end
|
32
|
-
|
33
|
-
# Monkey Patch Rabl source lookup to make it compatible with Rails view lookup
|
34
|
-
module Rabl
|
35
|
-
module Sources
|
36
|
-
private
|
37
|
-
|
38
|
-
# Returns the rabl template path for Rails
|
39
|
-
def fetch_rails_source(file, _options = {})
|
40
|
-
# use Rails template resolution mechanism if possible (find_template)
|
41
|
-
source_format = request_format if defined?(request_format)
|
42
|
-
|
43
|
-
lookup_proc = lambda do |partial|
|
44
|
-
context_scope.lookup_context.find(file, context_scope.lookup_context.prefixes, partial, [],
|
45
|
-
{formats: [source_format]})
|
46
|
-
end
|
47
|
-
template = begin
|
48
|
-
lookup_proc.call(false)
|
49
|
-
rescue
|
50
|
-
nil
|
51
|
-
end
|
52
|
-
template ||= begin
|
53
|
-
lookup_proc.call(true)
|
54
|
-
rescue
|
55
|
-
nil
|
56
|
-
end
|
57
|
-
template&.identifier
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "../../lib/plutonium_generators"
|
4
|
-
|
5
|
-
module Pu
|
6
|
-
module Gem
|
7
|
-
class SimpleFormGenerator < Rails::Generators::Base
|
8
|
-
include PlutoniumGenerators::Generator
|
9
|
-
|
10
|
-
source_root File.expand_path("templates", __dir__)
|
11
|
-
|
12
|
-
desc "Install SimpleForm"
|
13
|
-
|
14
|
-
def start
|
15
|
-
Bundler.with_unbundled_env do
|
16
|
-
run "bundle add simple_form"
|
17
|
-
end
|
18
|
-
|
19
|
-
directory "config"
|
20
|
-
rescue => e
|
21
|
-
exception "#{self.class} failed:", e
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|