plutonium 0.15.4 → 0.15.6
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/app/assets/plutonium.css +1 -1
- data/app/assets/plutonium.ico +0 -0
- data/app/assets/plutonium.png +0 -0
- data/app/views/components/table_search_input/table_search_input_component.html.erb +3 -3
- data/app/views/resource/_resource_table.html.erb +0 -321
- data/docs/.vitepress/config.ts +61 -0
- data/docs/.vitepress/theme/custom.css +61 -0
- data/docs/.vitepress/theme/index.ts +4 -0
- data/docs/api-examples.md +49 -0
- data/docs/guide/getting-started/authorization.md +296 -0
- data/docs/guide/getting-started/core-concepts.md +432 -0
- data/docs/guide/getting-started/index.md +18 -0
- data/docs/guide/getting-started/installation.md +269 -0
- data/docs/guide/getting-started/resources.md +254 -0
- data/docs/guide/what-is-plutonium.md +211 -0
- data/docs/index.md +43 -0
- data/docs/markdown-examples.md +85 -0
- data/docs/public/android-chrome-192x192.png +0 -0
- data/docs/public/android-chrome-512x512.png +0 -0
- data/docs/public/apple-touch-icon.png +0 -0
- data/docs/public/favicon-16x16.png +0 -0
- data/docs/public/favicon-32x32.png +0 -0
- data/docs/public/favicon.ico +0 -0
- data/docs/public/plutonium.png +0 -0
- data/docs/public/site.webmanifest +1 -0
- data/docs/public/templates/plutonium.rb +21 -0
- data/lib/generators/pu/core/assets/assets_generator.rb +2 -3
- data/lib/generators/pu/core/assets/templates/tailwind.config.js +2 -2
- data/lib/generators/pu/core/install/install_generator.rb +9 -1
- data/lib/generators/pu/core/install/templates/config/initializers/plutonium.rb +0 -1
- data/lib/plutonium/core/controllers/authorizable.rb +1 -1
- data/lib/plutonium/definition/base.rb +8 -0
- data/lib/plutonium/definition/defineable_props.rb +1 -1
- data/lib/plutonium/definition/presentable.rb +71 -0
- data/lib/plutonium/interaction/README.md +1 -1
- data/lib/plutonium/interaction/base.rb +6 -6
- data/lib/plutonium/lib/deep_freezer.rb +31 -0
- data/lib/plutonium/query/adhoc_block.rb +19 -0
- data/lib/plutonium/query/base.rb +29 -0
- data/lib/plutonium/query/filter.rb +12 -0
- data/lib/plutonium/query/filters/text.rb +77 -0
- data/lib/plutonium/query/model_scope.rb +19 -0
- data/lib/plutonium/railtie.rb +0 -10
- data/lib/plutonium/resource/controller.rb +0 -3
- data/lib/plutonium/resource/controllers/crud_actions/index_action.rb +26 -0
- data/lib/plutonium/resource/controllers/crud_actions.rb +3 -6
- data/lib/plutonium/resource/controllers/defineable.rb +0 -2
- data/lib/plutonium/resource/controllers/queryable.rb +36 -20
- data/lib/plutonium/resource/policy.rb +5 -6
- data/lib/plutonium/resource/query_object.rb +61 -147
- data/lib/plutonium/resource/register.rb +3 -0
- data/lib/plutonium/{refinements/parameter_refinements.rb → support/parameters.rb} +5 -7
- data/lib/plutonium/ui/action_button.rb +34 -19
- data/lib/plutonium/ui/component/methods.rb +1 -1
- data/lib/plutonium/ui/display/resource.rb +19 -15
- data/lib/plutonium/ui/form/query.rb +171 -0
- data/lib/plutonium/ui/form/resource.rb +22 -17
- data/lib/plutonium/ui/table/components/scopes_bar.rb +1 -1
- data/lib/plutonium/ui/table/components/search_bar.rb +6 -139
- data/lib/plutonium/ui/table/resource.rb +10 -9
- data/lib/plutonium/version.rb +1 -1
- data/package-lock.json +5769 -1853
- data/package.json +11 -5
- data/src/js/core.js +0 -1
- data/tailwind.options.js +89 -11
- metadata +37 -13
- data/app/assets/plutonium-original.png +0 -0
- data/app/assets/plutonium-white.png +0 -0
- data/lib/plutonium/interaction/concerns/presentable.rb +0 -73
- data/public/plutonium-assets/fonts/bootstrap-icons.woff +0 -0
- data/public/plutonium-assets/fonts/bootstrap-icons.woff2 +0 -0
- /data/{templates → docs/public/templates}/base.rb +0 -0
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@radioactive-labs/plutonium",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.5",
|
4
4
|
"description": "Core assets for the Plutonium gem",
|
5
5
|
"type": "module",
|
6
6
|
"main": "src/js/core.js",
|
@@ -16,7 +16,7 @@
|
|
16
16
|
"type": "git",
|
17
17
|
"url": "git+https://github.com/radioactive-labs/plutonium-core.git"
|
18
18
|
},
|
19
|
-
"homepage": "https://
|
19
|
+
"homepage": "https://radioactive-labs.github.io/plutonium-core/",
|
20
20
|
"dependencies": {
|
21
21
|
"@hotwired/stimulus": "^3.2.2",
|
22
22
|
"@hotwired/turbo": "^8.0.4",
|
@@ -30,18 +30,24 @@
|
|
30
30
|
"cssnano": "^7.0.2",
|
31
31
|
"esbuild": "^0.20.1",
|
32
32
|
"esbuild-plugin-manifest": "^1.0.3",
|
33
|
+
"mermaid": "^11.4.0",
|
33
34
|
"postcss": "^8.4.35",
|
34
35
|
"postcss-cli": "^11.0.0",
|
35
36
|
"postcss-hash": "^3.0.0",
|
36
|
-
"tailwindcss": "^3.4.1"
|
37
|
+
"tailwindcss": "^3.4.1",
|
38
|
+
"vitepress": "^1.4.1",
|
39
|
+
"vitepress-plugin-mermaid": "^2.0.17"
|
37
40
|
},
|
38
41
|
"scripts": {
|
39
|
-
"build": "npm run js:prod && npm run css:prod",
|
40
42
|
"dev": "concurrently \"npm run css:dev\" \"npm run js:dev\"",
|
43
|
+
"build": "npm run js:prod && npm run css:prod",
|
44
|
+
"prepare": "npm run build",
|
41
45
|
"css:dev": "postcss src/css/plutonium.css -o src/build/plutonium.css --watch --dev",
|
42
46
|
"js:dev": "node esbuild.config.js --dev",
|
43
47
|
"css:prod": "postcss src/css/plutonium.css -o app/assets/plutonium.css && postcss src/css/plutonium.css -o src/dist/css/plutonium.css",
|
44
48
|
"js:prod": "node esbuild.config.js",
|
45
|
-
"
|
49
|
+
"docs:dev": "vitepress dev docs",
|
50
|
+
"docs:build": "vitepress build docs",
|
51
|
+
"docs:preview": "vitepress preview docs"
|
46
52
|
}
|
47
53
|
}
|
data/src/js/core.js
CHANGED
data/tailwind.options.js
CHANGED
@@ -18,17 +18,95 @@ export const theme = {
|
|
18
18
|
extend: {
|
19
19
|
colors: {
|
20
20
|
primary: {
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
21
|
+
50: '#F0FDFD',
|
22
|
+
100: '#E0FAFA',
|
23
|
+
200: '#BAF3F5',
|
24
|
+
300: '#7DE8EC',
|
25
|
+
400: '#40D9DE',
|
26
|
+
500: '#17B8BE', // Turquoise
|
27
|
+
600: '#0E8F94',
|
28
|
+
700: '#0B6D71',
|
29
|
+
800: '#0A5558',
|
30
|
+
900: '#084547',
|
31
|
+
950: '#042F30',
|
32
|
+
},
|
33
|
+
secondary: {
|
34
|
+
50: '#F2F5F8',
|
35
|
+
100: '#E6ECF1',
|
36
|
+
200: '#C7D5E1',
|
37
|
+
300: '#9DB3C7',
|
38
|
+
400: '#678CAB',
|
39
|
+
500: '#1E3D59', // Navy
|
40
|
+
600: '#1A3549',
|
41
|
+
700: '#152C3D',
|
42
|
+
800: '#102231',
|
43
|
+
900: '#0C1B26',
|
44
|
+
950: '#080F15',
|
45
|
+
},
|
46
|
+
success: {
|
47
|
+
50: '#F0FDF4',
|
48
|
+
100: '#DCFCE7',
|
49
|
+
200: '#BBF7D0',
|
50
|
+
300: '#86EFAC',
|
51
|
+
400: '#4ADE80',
|
52
|
+
500: '#22C55E', // Base color
|
53
|
+
600: '#16A34A',
|
54
|
+
700: '#15803D',
|
55
|
+
800: '#166534',
|
56
|
+
900: '#14532D',
|
57
|
+
950: '#052E16',
|
58
|
+
},
|
59
|
+
info: {
|
60
|
+
50: '#F0F9FF',
|
61
|
+
100: '#E0F2FE',
|
62
|
+
200: '#BAE6FD',
|
63
|
+
300: '#7DD3FC',
|
64
|
+
400: '#38BDF8',
|
65
|
+
500: '#0EA5E9', // Base color
|
66
|
+
600: '#0284C7',
|
67
|
+
700: '#0369A1',
|
68
|
+
800: '#075985',
|
69
|
+
900: '#0C4A6E',
|
70
|
+
950: '#082F49',
|
71
|
+
},
|
72
|
+
warning: {
|
73
|
+
50: '#FFFBEB',
|
74
|
+
100: '#FEF3C7',
|
75
|
+
200: '#FDE68A',
|
76
|
+
300: '#FCD34D',
|
77
|
+
400: '#FBBF24',
|
78
|
+
500: '#F59E0B', // Base color
|
79
|
+
600: '#D97706',
|
80
|
+
700: '#B45309',
|
81
|
+
800: '#92400E',
|
82
|
+
900: '#78350F',
|
83
|
+
950: '#451A03',
|
84
|
+
},
|
85
|
+
danger: {
|
86
|
+
50: '#FEF2F2',
|
87
|
+
100: '#FEE2E2',
|
88
|
+
200: '#FECACA',
|
89
|
+
300: '#FCA5A5',
|
90
|
+
400: '#F87171',
|
91
|
+
500: '#EF4444', // Base color
|
92
|
+
600: '#DC2626',
|
93
|
+
700: '#B91C1C',
|
94
|
+
800: '#991B1B',
|
95
|
+
900: '#7F1D1D',
|
96
|
+
950: '#450A0A',
|
97
|
+
},
|
98
|
+
accent: {
|
99
|
+
50: '#FFF1F3',
|
100
|
+
100: '#FFE4E7',
|
101
|
+
200: '#FFCCD2',
|
102
|
+
300: '#FFB1BA',
|
103
|
+
400: '#FF9EAA',
|
104
|
+
500: '#FF8394', // Coral Pink
|
105
|
+
600: '#FF647A',
|
106
|
+
700: '#E73D55',
|
107
|
+
800: '#D12D44',
|
108
|
+
900: '#B02438',
|
109
|
+
950: '#8E1525',
|
32
110
|
},
|
33
111
|
},
|
34
112
|
screens: {
|
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.15.
|
4
|
+
version: 0.15.6
|
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-
|
11
|
+
date: 2024-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeitwerk
|
@@ -892,8 +892,6 @@ files:
|
|
892
892
|
- app/assets/icons/solid/youtube.svg
|
893
893
|
- app/assets/icons/solid/zoom-in.svg
|
894
894
|
- app/assets/icons/solid/zoom-out.svg
|
895
|
-
- app/assets/plutonium-original.png
|
896
|
-
- app/assets/plutonium-white.png
|
897
895
|
- app/assets/plutonium.css
|
898
896
|
- app/assets/plutonium.ico
|
899
897
|
- app/assets/plutonium.js
|
@@ -1032,6 +1030,28 @@ files:
|
|
1032
1030
|
- config/initializers/pagy.rb
|
1033
1031
|
- config/initializers/rabl.rb
|
1034
1032
|
- config/initializers/simple_form.rb
|
1033
|
+
- docs/.vitepress/config.ts
|
1034
|
+
- docs/.vitepress/theme/custom.css
|
1035
|
+
- docs/.vitepress/theme/index.ts
|
1036
|
+
- docs/api-examples.md
|
1037
|
+
- docs/guide/getting-started/authorization.md
|
1038
|
+
- docs/guide/getting-started/core-concepts.md
|
1039
|
+
- docs/guide/getting-started/index.md
|
1040
|
+
- docs/guide/getting-started/installation.md
|
1041
|
+
- docs/guide/getting-started/resources.md
|
1042
|
+
- docs/guide/what-is-plutonium.md
|
1043
|
+
- docs/index.md
|
1044
|
+
- docs/markdown-examples.md
|
1045
|
+
- docs/public/android-chrome-192x192.png
|
1046
|
+
- docs/public/android-chrome-512x512.png
|
1047
|
+
- docs/public/apple-touch-icon.png
|
1048
|
+
- docs/public/favicon-16x16.png
|
1049
|
+
- docs/public/favicon-32x32.png
|
1050
|
+
- docs/public/favicon.ico
|
1051
|
+
- docs/public/plutonium.png
|
1052
|
+
- docs/public/site.webmanifest
|
1053
|
+
- docs/public/templates/base.rb
|
1054
|
+
- docs/public/templates/plutonium.rb
|
1035
1055
|
- esbuild.config.js
|
1036
1056
|
- exe/pug
|
1037
1057
|
- gemfiles/rails_7.gemfile
|
@@ -1256,6 +1276,7 @@ files:
|
|
1256
1276
|
- lib/plutonium/definition/base.rb
|
1257
1277
|
- lib/plutonium/definition/config_attr.rb
|
1258
1278
|
- lib/plutonium/definition/defineable_props.rb
|
1279
|
+
- lib/plutonium/definition/presentable.rb
|
1259
1280
|
- lib/plutonium/definition/search.rb
|
1260
1281
|
- lib/plutonium/definition/sorting.rb
|
1261
1282
|
- lib/plutonium/engine.rb
|
@@ -1275,7 +1296,6 @@ files:
|
|
1275
1296
|
- lib/plutonium/icons.rb
|
1276
1297
|
- lib/plutonium/interaction/README.md
|
1277
1298
|
- lib/plutonium/interaction/base.rb
|
1278
|
-
- lib/plutonium/interaction/concerns/presentable.rb
|
1279
1299
|
- lib/plutonium/interaction/concerns/workflow_dsl.rb
|
1280
1300
|
- lib/plutonium/interaction/outcome.rb
|
1281
1301
|
- lib/plutonium/interaction/response/base.rb
|
@@ -1286,6 +1306,7 @@ files:
|
|
1286
1306
|
- lib/plutonium/interaction/response/render.rb
|
1287
1307
|
- lib/plutonium/lib/after_commit.rb
|
1288
1308
|
- lib/plutonium/lib/bit_flags.rb
|
1309
|
+
- lib/plutonium/lib/deep_freezer.rb
|
1289
1310
|
- lib/plutonium/lib/overlayed_hash.rb
|
1290
1311
|
- lib/plutonium/lib/smart_cache.rb
|
1291
1312
|
- lib/plutonium/models/has_cents.rb
|
@@ -1295,13 +1316,18 @@ files:
|
|
1295
1316
|
- lib/plutonium/portal/engine.rb
|
1296
1317
|
- lib/plutonium/preserved__/field.rb.bk
|
1297
1318
|
- lib/plutonium/preserved__/input.rb.bk
|
1319
|
+
- lib/plutonium/query/adhoc_block.rb
|
1320
|
+
- lib/plutonium/query/base.rb
|
1321
|
+
- lib/plutonium/query/filter.rb
|
1322
|
+
- lib/plutonium/query/filters/text.rb
|
1323
|
+
- lib/plutonium/query/model_scope.rb
|
1298
1324
|
- lib/plutonium/railtie.rb
|
1299
|
-
- lib/plutonium/refinements/parameter_refinements.rb
|
1300
1325
|
- lib/plutonium/reloader.rb
|
1301
1326
|
- lib/plutonium/resource/context.rb
|
1302
1327
|
- lib/plutonium/resource/controller.rb
|
1303
1328
|
- lib/plutonium/resource/controllers/authorizable.rb
|
1304
1329
|
- lib/plutonium/resource/controllers/crud_actions.rb
|
1330
|
+
- lib/plutonium/resource/controllers/crud_actions/index_action.rb
|
1305
1331
|
- lib/plutonium/resource/controllers/defineable.rb
|
1306
1332
|
- lib/plutonium/resource/controllers/interactive_actions.rb
|
1307
1333
|
- lib/plutonium/resource/controllers/presentable.rb
|
@@ -1319,6 +1345,7 @@ files:
|
|
1319
1345
|
- lib/plutonium/routing/route_set_extensions.rb
|
1320
1346
|
- lib/plutonium/simple_form/attachment_component.rb
|
1321
1347
|
- lib/plutonium/simple_form/input_group_component.rb
|
1348
|
+
- lib/plutonium/support/parameters.rb
|
1322
1349
|
- lib/plutonium/ui.rb
|
1323
1350
|
- lib/plutonium/ui/action_button.rb
|
1324
1351
|
- lib/plutonium/ui/breadcrumbs.rb
|
@@ -1334,6 +1361,7 @@ files:
|
|
1334
1361
|
- lib/plutonium/ui/empty_card.rb
|
1335
1362
|
- lib/plutonium/ui/form/base.rb
|
1336
1363
|
- lib/plutonium/ui/form/interaction.rb
|
1364
|
+
- lib/plutonium/ui/form/query.rb
|
1337
1365
|
- lib/plutonium/ui/form/resource.rb
|
1338
1366
|
- lib/plutonium/ui/form/theme.rb
|
1339
1367
|
- lib/plutonium/ui/page/base.rb
|
@@ -1359,8 +1387,6 @@ files:
|
|
1359
1387
|
- postcss.config.js
|
1360
1388
|
- public/.keep
|
1361
1389
|
- public/plutonium-assets/application.js
|
1362
|
-
- public/plutonium-assets/fonts/bootstrap-icons.woff
|
1363
|
-
- public/plutonium-assets/fonts/bootstrap-icons.woff2
|
1364
1390
|
- public/plutonium-assets/plutonium-logo-original.png
|
1365
1391
|
- public/plutonium-assets/plutonium-logo-white.png
|
1366
1392
|
- public/plutonium-assets/plutonium-logo.png
|
@@ -1399,13 +1425,12 @@ files:
|
|
1399
1425
|
- src/js/turbo/turbo_frame_monkey_patch.js
|
1400
1426
|
- tailwind.config.js
|
1401
1427
|
- tailwind.options.js
|
1402
|
-
-
|
1403
|
-
homepage: https://github.com/radioactive-labs/plutonium-core
|
1428
|
+
homepage: https://radioactive-labs.github.io/plutonium-core/
|
1404
1429
|
licenses:
|
1405
1430
|
- MIT
|
1406
1431
|
metadata:
|
1407
1432
|
allowed_push_host: https://rubygems.org
|
1408
|
-
homepage_uri: https://
|
1433
|
+
homepage_uri: https://radioactive-labs.github.io/plutonium-core/
|
1409
1434
|
source_code_uri: https://github.com/radioactive-labs/plutonium-core
|
1410
1435
|
post_install_message:
|
1411
1436
|
rdoc_options: []
|
@@ -1425,6 +1450,5 @@ requirements: []
|
|
1425
1450
|
rubygems_version: 3.4.10
|
1426
1451
|
signing_key:
|
1427
1452
|
specification_version: 4
|
1428
|
-
summary: The
|
1429
|
-
development
|
1453
|
+
summary: The Ultimate Rapid Application Development Toolkit (RADKit) for Rails
|
1430
1454
|
test_files: []
|
Binary file
|
Binary file
|
@@ -1,73 +0,0 @@
|
|
1
|
-
module Plutonium
|
2
|
-
module Interaction
|
3
|
-
module Concerns
|
4
|
-
# Provides presentation-related functionality for interactions.
|
5
|
-
#
|
6
|
-
# This module allows interactions to define metadata such as labels, icons,
|
7
|
-
# and descriptions, which can be used for UI generation or documentation.
|
8
|
-
#
|
9
|
-
# @example
|
10
|
-
# class MyInteraction < Plutonium::Interaction::Base
|
11
|
-
# include Plutonium::Interaction::Concerns::Presentable
|
12
|
-
#
|
13
|
-
# presents label: "My Interaction",
|
14
|
-
# icon: "star",
|
15
|
-
# description: "Does something awesome"
|
16
|
-
#
|
17
|
-
# # ... rest of the interaction
|
18
|
-
# end
|
19
|
-
module Presentable
|
20
|
-
extend ActiveSupport::Concern
|
21
|
-
|
22
|
-
included do
|
23
|
-
class_attribute :presentation_metadata, default: {}
|
24
|
-
end
|
25
|
-
|
26
|
-
class_methods do
|
27
|
-
# Defines presentation metadata for the interaction.
|
28
|
-
#
|
29
|
-
# @param options [Hash] The presentation options.
|
30
|
-
# @option options [String] :label The label for the interaction.
|
31
|
-
# @option options [String] :icon The icon for the interaction.
|
32
|
-
# @option options [String] :description The description of the interaction.
|
33
|
-
def presents(**options)
|
34
|
-
self.presentation_metadata = options
|
35
|
-
end
|
36
|
-
|
37
|
-
# Returns the label for the interaction.
|
38
|
-
#
|
39
|
-
# @return [String] The label defined in the presentation metadata or a default generated from the class name.
|
40
|
-
def label
|
41
|
-
presentation_metadata[:label] || name.demodulize.titleize
|
42
|
-
end
|
43
|
-
|
44
|
-
# Returns the icon for the interaction.
|
45
|
-
#
|
46
|
-
# @return [String, nil] The icon defined in the presentation metadata.
|
47
|
-
def icon
|
48
|
-
presentation_metadata[:icon]
|
49
|
-
end
|
50
|
-
|
51
|
-
# Returns the description for the interaction.
|
52
|
-
#
|
53
|
-
# @return [String, nil] The description defined in the presentation metadata.
|
54
|
-
def description
|
55
|
-
presentation_metadata[:description]
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def label
|
60
|
-
self.class.label
|
61
|
-
end
|
62
|
-
|
63
|
-
def icon
|
64
|
-
self.class.icon
|
65
|
-
end
|
66
|
-
|
67
|
-
def description
|
68
|
-
self.class.description
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
Binary file
|
Binary file
|
File without changes
|