panda-core 0.12.5 → 1.1.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.
- checksums.yaml +4 -4
- data/LICENSE +1 -1
- data/README.md +53 -0
- data/app/assets/builds/panda_core_admin.css +2 -0
- data/app/assets/tailwind/application.css +236 -36
- data/app/builders/panda/core/form_builder.rb +120 -18
- data/app/components/panda/core/UI/badge.html.erb +10 -0
- data/app/components/panda/core/UI/badge.rb +14 -30
- data/app/components/panda/core/UI/button.html.erb +5 -0
- data/app/components/panda/core/UI/button.rb +11 -15
- data/app/components/panda/core/UI/card.html.erb +3 -0
- data/app/components/panda/core/UI/card.rb +7 -6
- data/app/components/panda/core/admin/attribute_diff_component.html.erb +21 -0
- data/app/components/panda/core/admin/attribute_diff_component.rb +29 -0
- data/app/components/panda/core/admin/breadcrumb_component.html.erb +36 -0
- data/app/components/panda/core/admin/breadcrumb_component.rb +12 -64
- data/app/components/panda/core/admin/breadcrumbs_component.html.erb +16 -0
- data/app/components/panda/core/admin/breadcrumbs_component.rb +26 -0
- data/app/components/panda/core/admin/button_component.html.erb +9 -0
- data/app/components/panda/core/admin/button_component.rb +36 -31
- data/app/components/panda/core/admin/callout_component.html.erb +17 -0
- data/app/components/panda/core/admin/callout_component.rb +57 -0
- data/app/components/panda/core/admin/code_block_component.html.erb +9 -0
- data/app/components/panda/core/admin/code_block_component.rb +23 -0
- data/app/components/panda/core/admin/container_component.html.erb +27 -0
- data/app/components/panda/core/admin/container_component.rb +11 -77
- data/app/components/panda/core/admin/contributors_summary_component.html.erb +15 -0
- data/app/components/panda/core/admin/contributors_summary_component.rb +23 -0
- data/app/components/panda/core/admin/dashboard_default_content_component.html.erb +70 -0
- data/app/components/panda/core/admin/dashboard_default_content_component.rb +32 -0
- data/app/components/panda/core/admin/delete_button_component.html.erb +4 -0
- data/app/components/panda/core/admin/delete_button_component.rb +41 -0
- data/app/components/panda/core/admin/dropdown_button_component.html.erb +28 -0
- data/app/components/panda/core/admin/dropdown_button_component.rb +100 -0
- data/app/components/panda/core/admin/dropdown_component.html.erb +32 -0
- data/app/components/panda/core/admin/dropdown_component.rb +65 -0
- data/app/components/panda/core/admin/empty_state_component.html.erb +16 -0
- data/app/components/panda/core/admin/empty_state_component.rb +25 -0
- data/app/components/panda/core/admin/file_gallery_component.html.erb +58 -0
- data/app/components/panda/core/admin/file_gallery_component.rb +26 -98
- data/app/components/panda/core/admin/filter_pills_component.html.erb +6 -0
- data/app/components/panda/core/admin/filter_pills_component.rb +29 -0
- data/app/components/panda/core/admin/flash_message_component.html.erb +11 -0
- data/app/components/panda/core/admin/flash_message_component.rb +33 -60
- data/app/components/panda/core/admin/form_error_component.html.erb +7 -0
- data/app/components/panda/core/admin/form_error_component.rb +8 -16
- data/app/components/panda/core/admin/form_footer_component.html.erb +16 -0
- data/app/components/panda/core/admin/form_footer_component.rb +65 -0
- data/app/components/panda/core/admin/form_input_component.html.erb +1 -0
- data/app/components/panda/core/admin/form_input_component.rb +21 -13
- data/app/components/panda/core/admin/form_section_component.html.erb +16 -0
- data/app/components/panda/core/admin/form_section_component.rb +64 -0
- data/app/components/panda/core/admin/form_select_component.html.erb +5 -0
- data/app/components/panda/core/admin/form_select_component.rb +25 -26
- data/app/components/panda/core/admin/heading_component.html.erb +26 -0
- data/app/components/panda/core/admin/heading_component.rb +23 -60
- data/app/components/panda/core/admin/login_form_component.html.erb +38 -0
- data/app/components/panda/core/admin/login_form_component.rb +28 -0
- data/app/components/panda/core/admin/main_layout_component.html.erb +88 -0
- data/app/components/panda/core/admin/main_layout_component.rb +19 -0
- data/app/components/panda/core/admin/my_profile/connected_account_component.html.erb +41 -0
- data/app/components/panda/core/admin/my_profile/connected_account_component.rb +27 -0
- data/app/components/panda/core/admin/navigation/item_component.html.erb +34 -0
- data/app/components/panda/core/admin/navigation/item_component.rb +69 -0
- data/app/components/panda/core/admin/navigation/sub_item_component.html.erb +9 -0
- data/app/components/panda/core/admin/navigation/sub_item_component.rb +44 -0
- data/app/components/panda/core/admin/navigation/user_menu_component.html.erb +30 -0
- data/app/components/panda/core/admin/navigation/user_menu_component.rb +36 -0
- data/app/components/panda/core/admin/page_header_component.html.erb +28 -0
- data/app/components/panda/core/admin/page_header_component.rb +19 -35
- data/app/components/panda/core/admin/pagination_component.html.erb +33 -0
- data/app/components/panda/core/admin/pagination_component.rb +56 -0
- data/app/components/panda/core/admin/panel_component.html.erb +19 -0
- data/app/components/panda/core/admin/panel_component.rb +4 -29
- data/app/components/panda/core/admin/prose_panel_component.html.erb +6 -0
- data/app/components/panda/core/admin/prose_panel_component.rb +43 -0
- data/app/components/panda/core/admin/search_bar_component.html.erb +19 -0
- data/app/components/panda/core/admin/search_bar_component.rb +31 -0
- data/app/components/panda/core/admin/search_filter_bar_component.html.erb +22 -0
- data/app/components/panda/core/admin/search_filter_bar_component.rb +27 -0
- data/app/components/panda/core/admin/secret_field_component.html.erb +24 -0
- data/app/components/panda/core/admin/secret_field_component.rb +31 -0
- data/app/components/panda/core/admin/sidebar_component.html.erb +160 -0
- data/app/components/panda/core/admin/sidebar_component.rb +55 -0
- data/app/components/panda/core/admin/slideover_component.html.erb +67 -0
- data/app/components/panda/core/admin/slideover_component.rb +31 -70
- data/app/components/panda/core/admin/statistics_component.html.erb +4 -0
- data/app/components/panda/core/admin/statistics_component.rb +6 -8
- data/app/components/panda/core/admin/tab_bar_component.html.erb +48 -0
- data/app/components/panda/core/admin/tab_bar_component.rb +32 -67
- data/app/components/panda/core/admin/table_component.html.erb +82 -0
- data/app/components/panda/core/admin/table_component.rb +54 -87
- data/app/components/panda/core/admin/tag_badge_component.html.erb +7 -0
- data/app/components/panda/core/admin/tag_badge_component.rb +21 -0
- data/app/components/panda/core/admin/tag_component.html.erb +1 -0
- data/app/components/panda/core/admin/tag_component.rb +51 -20
- data/app/components/panda/core/admin/tag_input_component.html.erb +37 -0
- data/app/components/panda/core/admin/tag_input_component.rb +22 -0
- data/app/components/panda/core/admin/tags_panel_component.html.erb +8 -0
- data/app/components/panda/core/admin/tags_panel_component.rb +33 -0
- data/app/components/panda/core/admin/user_activity_component.html.erb +15 -0
- data/app/components/panda/core/admin/user_activity_component.rb +9 -22
- data/app/components/panda/core/admin/user_display_component.html.erb +8 -0
- data/app/components/panda/core/admin/user_display_component.rb +19 -22
- data/app/components/panda/core/base.rb +35 -42
- data/app/components/panda/core/shared/footer_component.html.erb +2 -0
- data/app/components/panda/core/shared/footer_component.rb +11 -0
- data/app/components/panda/core/shared/header_component.html.erb +32 -0
- data/app/components/panda/core/shared/header_component.rb +19 -0
- data/app/constraints/panda/core/admin_constraint.rb +2 -2
- data/app/controllers/concerns/panda/core/admin_authorization.rb +58 -0
- data/app/controllers/concerns/panda/core/authorizable.rb +107 -0
- data/app/controllers/panda/core/admin/base_controller.rb +62 -3
- data/app/controllers/panda/core/admin/editor/search_controller.rb +17 -0
- data/app/controllers/panda/core/admin/feature_flags_controller.rb +35 -0
- data/app/controllers/panda/core/admin/file_categories_controller.rb +84 -0
- data/app/controllers/panda/core/admin/files_controller.rb +230 -0
- data/app/controllers/panda/core/admin/import_sessions_controller.rb +120 -0
- data/app/controllers/panda/core/admin/my_profile/logins_controller.rb +24 -0
- data/app/controllers/panda/core/admin/my_profile_controller.rb +31 -0
- data/app/controllers/panda/core/admin/search_controller.rb +15 -0
- data/app/controllers/panda/core/admin/sessions_controller.rb +84 -10
- data/app/controllers/panda/core/admin/tags_controller.rb +77 -0
- data/app/controllers/panda/core/admin/test_sessions_controller.rb +5 -6
- data/app/controllers/panda/core/admin/users_controller.rb +184 -0
- data/app/controllers/panda/core/application_controller.rb +13 -1
- data/app/helpers/panda/core/active_storage_helper.rb +24 -0
- data/app/helpers/panda/core/feature_flag_helper.rb +11 -0
- data/app/helpers/panda/core/form_helper.rb +15 -0
- data/app/javascript/panda/core/controllers/avatar_upload_controller.js +73 -0
- data/app/javascript/panda/core/controllers/clipboard_controller.js +119 -0
- data/app/javascript/panda/core/controllers/collapsible_item_controller.js +45 -0
- data/app/javascript/panda/core/controllers/custom_select_controller.js +256 -0
- data/app/javascript/panda/core/controllers/datepicker_controller.js +121 -0
- data/app/javascript/panda/core/controllers/daterange_controller.js +193 -0
- data/app/javascript/panda/core/controllers/file_gallery_controller.js +134 -0
- data/app/javascript/panda/core/controllers/file_upload_controller.js +165 -0
- data/app/javascript/panda/core/controllers/global_search_controller.js +184 -0
- data/app/javascript/panda/core/controllers/index.js +36 -0
- data/app/javascript/panda/core/controllers/mobile_sidebar_controller.js +58 -0
- data/app/javascript/panda/core/controllers/navigation_toggle_controller.js +49 -24
- data/app/javascript/panda/core/controllers/row_link_controller.js +27 -0
- data/app/javascript/panda/core/controllers/tag_input_controller.js +183 -0
- data/app/javascript/panda/core/tailwindcss-stimulus-components.js +2 -3
- data/app/javascript/panda/core/vendor/@fortawesome--fontawesome-free@7.2.0.js +8129 -0
- data/app/javascript/panda/core/vendor/@hotwired--turbo.js +7197 -100
- data/app/javascript/panda/core/vendor/@rails--actioncable--src.js +511 -2
- data/app/javascript/panda/core/vendor/@tailwindplus--elements@1.0.22.js +65 -0
- data/app/javascript/panda/core/vendor/cropperjs@2.1.0.js +3 -0
- data/app/javascript/panda/core/vendor/vanilla-calendar-pro.js +2 -0
- data/app/models/concerns/panda/core/has_metadata.rb +164 -0
- data/app/models/concerns/panda/core/importable.rb +79 -0
- data/app/models/concerns/panda/core/searchable.rb +66 -0
- data/app/models/concerns/panda/core/taggable.rb +37 -0
- data/app/models/panda/core/feature_flag.rb +56 -0
- data/app/models/panda/core/file_categorization.rb +14 -0
- data/app/models/panda/core/file_category.rb +45 -0
- data/app/models/panda/core/import_session.rb +79 -0
- data/app/models/panda/core/presence.rb +24 -0
- data/app/models/panda/core/tag.rb +33 -0
- data/app/models/panda/core/tagging.rb +14 -0
- data/app/models/panda/core/user.rb +94 -16
- data/app/models/panda/core/user_activity.rb +42 -0
- data/app/models/panda/core/user_session.rb +35 -0
- data/app/services/panda/core/attach_avatar_service.rb +15 -3
- data/app/services/panda/core/csv_import_service.rb +65 -0
- data/app/services/panda/core/file_categorizer.rb +52 -0
- data/app/services/panda/core/file_parser.rb +76 -0
- data/app/services/panda/core/invite_user_service.rb +44 -0
- data/app/services/panda/core/presence_service.rb +49 -0
- data/app/views/layouts/panda/core/admin.html.erb +6 -76
- data/app/views/layouts/panda/core/admin_simple.html.erb +2 -2
- data/app/views/panda/core/admin/dashboard/_default_content.html.erb +1 -73
- data/app/views/panda/core/admin/dashboard/show.html.erb +12 -15
- data/app/views/panda/core/admin/feature_flags/index.html.erb +56 -0
- data/app/views/panda/core/admin/file_categories/_form.html.erb +20 -0
- data/app/views/panda/core/admin/file_categories/edit.html.erb +5 -0
- data/app/views/panda/core/admin/file_categories/index.html.erb +55 -0
- data/app/views/panda/core/admin/file_categories/new.html.erb +5 -0
- data/app/views/panda/core/admin/files/_file_details.html.erb +156 -0
- data/app/views/panda/core/admin/files/index.html.erb +61 -0
- data/app/views/panda/core/admin/import_sessions/column_map.html.erb +43 -0
- data/app/views/panda/core/admin/import_sessions/index.html.erb +48 -0
- data/app/views/panda/core/admin/import_sessions/new.html.erb +37 -0
- data/app/views/panda/core/admin/import_sessions/preview.html.erb +51 -0
- data/app/views/panda/core/admin/import_sessions/show.html.erb +87 -0
- data/app/views/panda/core/admin/my_profile/edit.html.erb +51 -39
- data/app/views/panda/core/admin/my_profile/logins/show.html.erb +72 -0
- data/app/views/panda/core/admin/sessions/new.html.erb +1 -37
- data/app/views/panda/core/admin/shared/_breadcrumbs.html.erb +1 -18
- data/app/views/panda/core/admin/shared/_sidebar.html.erb +1 -99
- data/app/views/panda/core/admin/shared/_slideover.html.erb +3 -3
- data/app/views/panda/core/admin/tags/_form.html.erb +21 -0
- data/app/views/panda/core/admin/tags/edit.html.erb +4 -0
- data/app/views/panda/core/admin/tags/index.html.erb +41 -0
- data/app/views/panda/core/admin/tags/new.html.erb +4 -0
- data/app/views/panda/core/admin/users/activity.html.erb +90 -0
- data/app/views/panda/core/admin/users/edit.html.erb +48 -0
- data/app/views/panda/core/admin/users/index.html.erb +161 -0
- data/app/views/panda/core/admin/users/sessions.html.erb +103 -0
- data/app/views/panda/core/admin/users/show.html.erb +224 -0
- data/app/views/panda/core/shared/_footer.html.erb +1 -2
- data/app/views/panda/core/shared/_header.html.erb +4 -22
- data/config/brakeman.ignore +68 -31
- data/config/importmap.rb +13 -11
- data/config/routes.rb +49 -2
- data/db/migrate/20260202171614_create_panda_core_file_categories.rb +30 -0
- data/db/migrate/20260203000001_add_user_management_fields_to_panda_core_users.rb +21 -0
- data/db/migrate/20260203000002_create_panda_core_user_activities.rb +24 -0
- data/db/migrate/20260203000003_create_panda_core_user_sessions.rb +25 -0
- data/db/migrate/20260207100000_create_panda_core_presences.rb +21 -0
- data/db/migrate/20260213000001_fix_active_storage_attachments_record_id_type.rb +44 -0
- data/db/migrate/20260217000001_create_panda_core_feature_flags.rb +14 -0
- data/db/migrate/20260303000001_add_metadata_to_panda_core_users.rb +11 -0
- data/db/migrate/20260310000001_create_panda_core_tags.rb +27 -0
- data/db/migrate/20260310000002_create_panda_core_import_sessions.rb +29 -0
- data/lib/generators/panda/core/install_generator.rb +32 -0
- data/lib/generators/panda/core/templates/panda.rb +63 -0
- data/lib/panda/core/asset_loader.rb +5 -2
- data/lib/panda/core/authentication.rb +3 -3
- data/lib/panda/core/configuration.rb +195 -1
- data/lib/panda/core/engine/admin_controller_config.rb +3 -6
- data/lib/panda/core/engine/autoload_config.rb +21 -9
- data/lib/panda/core/engine/omniauth_config.rb +108 -38
- data/lib/panda/core/engine/pending_migrations_check.rb +46 -0
- data/lib/panda/core/engine/sqlite_schema_compatibility.rb +36 -0
- data/lib/panda/core/engine/{phlex_config.rb → view_component_config.rb} +5 -7
- data/lib/panda/core/engine.rb +90 -25
- data/lib/panda/core/middleware.rb +35 -0
- data/lib/panda/core/navigation_registry.rb +455 -0
- data/lib/panda/core/oauth_providers.rb +27 -0
- data/lib/panda/core/permission_registry.rb +89 -0
- data/lib/panda/core/search_registry.rb +69 -0
- data/lib/panda/core/seeds/file_categories.rb +30 -0
- data/lib/panda/core/shared/inflections_config.rb +1 -5
- data/lib/panda/core/testing/rails_helper.rb +87 -0
- data/lib/panda/core/testing/support/authentication_test_helpers.rb +22 -18
- data/lib/panda/core/testing/support/system/cuprite_helpers.rb +4 -4
- data/lib/panda/core/testing/view_component_test_controller.rb +19 -0
- data/lib/panda/core/version.rb +1 -1
- data/lib/panda/core/widget_registry.rb +50 -0
- data/lib/panda/core.rb +17 -8
- data/lib/tasks/panda/core/file_categories.rake +41 -0
- data/public/panda-core-assets/panda-core-0.12.5.css +2 -0
- data/public/panda-core-assets/panda-core-0.13.0.css +2 -0
- data/public/panda-core-assets/panda-core-0.14.0.css +2 -0
- data/public/panda-core-assets/panda-core-0.14.4.css +2 -0
- data/public/panda-core-assets/panda-core.css +2 -2
- data/public/panda-core-assets/vanilla-calendar.css +47 -0
- metadata +203 -26
- data/lib/panda/core/engine/inflections_config.rb +0 -23
metadata
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: panda-core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
- Otaina Limited
|
|
8
7
|
- James Inman
|
|
8
|
+
- Otaina Limited
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2026-
|
|
12
|
+
date: 2026-07-17 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: image_processing
|
|
@@ -124,61 +124,61 @@ dependencies:
|
|
|
124
124
|
- !ruby/object:Gem::Version
|
|
125
125
|
version: '0'
|
|
126
126
|
- !ruby/object:Gem::Dependency
|
|
127
|
-
name:
|
|
127
|
+
name: view_component
|
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
|
129
129
|
requirements:
|
|
130
130
|
- - "~>"
|
|
131
131
|
- !ruby/object:Gem::Version
|
|
132
|
-
version: '
|
|
132
|
+
version: '4.0'
|
|
133
133
|
type: :runtime
|
|
134
134
|
prerelease: false
|
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
|
136
136
|
requirements:
|
|
137
137
|
- - "~>"
|
|
138
138
|
- !ruby/object:Gem::Version
|
|
139
|
-
version: '
|
|
139
|
+
version: '4.0'
|
|
140
140
|
- !ruby/object:Gem::Dependency
|
|
141
|
-
name:
|
|
141
|
+
name: tailwind_merge
|
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
|
143
143
|
requirements:
|
|
144
144
|
- - "~>"
|
|
145
145
|
- !ruby/object:Gem::Version
|
|
146
|
-
version: '
|
|
146
|
+
version: '1.3'
|
|
147
147
|
type: :runtime
|
|
148
148
|
prerelease: false
|
|
149
149
|
version_requirements: !ruby/object:Gem::Requirement
|
|
150
150
|
requirements:
|
|
151
151
|
- - "~>"
|
|
152
152
|
- !ruby/object:Gem::Version
|
|
153
|
-
version: '
|
|
153
|
+
version: '1.3'
|
|
154
154
|
- !ruby/object:Gem::Dependency
|
|
155
|
-
name:
|
|
155
|
+
name: csv
|
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
|
157
157
|
requirements:
|
|
158
|
-
- - "
|
|
158
|
+
- - ">="
|
|
159
159
|
- !ruby/object:Gem::Version
|
|
160
|
-
version: '
|
|
160
|
+
version: '0'
|
|
161
161
|
type: :runtime
|
|
162
162
|
prerelease: false
|
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
|
164
164
|
requirements:
|
|
165
|
-
- - "
|
|
165
|
+
- - ">="
|
|
166
166
|
- !ruby/object:Gem::Version
|
|
167
|
-
version: '
|
|
167
|
+
version: '0'
|
|
168
168
|
- !ruby/object:Gem::Dependency
|
|
169
|
-
name:
|
|
169
|
+
name: xsv
|
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
|
171
171
|
requirements:
|
|
172
172
|
- - "~>"
|
|
173
173
|
- !ruby/object:Gem::Version
|
|
174
|
-
version: '1.
|
|
174
|
+
version: '1.0'
|
|
175
175
|
type: :runtime
|
|
176
176
|
prerelease: false
|
|
177
177
|
version_requirements: !ruby/object:Gem::Requirement
|
|
178
178
|
requirements:
|
|
179
179
|
- - "~>"
|
|
180
180
|
- !ruby/object:Gem::Version
|
|
181
|
-
version: '1.
|
|
181
|
+
version: '1.0'
|
|
182
182
|
- !ruby/object:Gem::Dependency
|
|
183
183
|
name: pg
|
|
184
184
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -337,16 +337,16 @@ dependencies:
|
|
|
337
337
|
name: standard
|
|
338
338
|
requirement: !ruby/object:Gem::Requirement
|
|
339
339
|
requirements:
|
|
340
|
-
- - "
|
|
340
|
+
- - "~>"
|
|
341
341
|
- !ruby/object:Gem::Version
|
|
342
|
-
version: '
|
|
342
|
+
version: '1.43'
|
|
343
343
|
type: :development
|
|
344
344
|
prerelease: false
|
|
345
345
|
version_requirements: !ruby/object:Gem::Requirement
|
|
346
346
|
requirements:
|
|
347
|
-
- - "
|
|
347
|
+
- - "~>"
|
|
348
348
|
- !ruby/object:Gem::Version
|
|
349
|
-
version: '
|
|
349
|
+
version: '1.43'
|
|
350
350
|
- !ruby/object:Gem::Dependency
|
|
351
351
|
name: brakeman
|
|
352
352
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -403,8 +403,8 @@ dependencies:
|
|
|
403
403
|
- - ">="
|
|
404
404
|
- !ruby/object:Gem::Version
|
|
405
405
|
version: '0'
|
|
406
|
-
description:
|
|
407
|
-
|
|
406
|
+
description: Authentication, admin UI components, navigation, tags, imports, and extension
|
|
407
|
+
hooks for Rails apps built on the Panda ecosystem
|
|
408
408
|
email:
|
|
409
409
|
- james@otaina.co.uk
|
|
410
410
|
executables: []
|
|
@@ -414,69 +414,221 @@ files:
|
|
|
414
414
|
- LICENSE
|
|
415
415
|
- README.md
|
|
416
416
|
- Rakefile
|
|
417
|
+
- app/assets/builds/panda_core_admin.css
|
|
417
418
|
- app/assets/tailwind/application.css
|
|
418
419
|
- app/builders/panda/core/form_builder.rb
|
|
420
|
+
- app/components/panda/core/UI/badge.html.erb
|
|
419
421
|
- app/components/panda/core/UI/badge.rb
|
|
422
|
+
- app/components/panda/core/UI/button.html.erb
|
|
420
423
|
- app/components/panda/core/UI/button.rb
|
|
424
|
+
- app/components/panda/core/UI/card.html.erb
|
|
421
425
|
- app/components/panda/core/UI/card.rb
|
|
426
|
+
- app/components/panda/core/admin/attribute_diff_component.html.erb
|
|
427
|
+
- app/components/panda/core/admin/attribute_diff_component.rb
|
|
428
|
+
- app/components/panda/core/admin/breadcrumb_component.html.erb
|
|
422
429
|
- app/components/panda/core/admin/breadcrumb_component.rb
|
|
430
|
+
- app/components/panda/core/admin/breadcrumbs_component.html.erb
|
|
431
|
+
- app/components/panda/core/admin/breadcrumbs_component.rb
|
|
432
|
+
- app/components/panda/core/admin/button_component.html.erb
|
|
423
433
|
- app/components/panda/core/admin/button_component.rb
|
|
434
|
+
- app/components/panda/core/admin/callout_component.html.erb
|
|
435
|
+
- app/components/panda/core/admin/callout_component.rb
|
|
436
|
+
- app/components/panda/core/admin/code_block_component.html.erb
|
|
437
|
+
- app/components/panda/core/admin/code_block_component.rb
|
|
438
|
+
- app/components/panda/core/admin/container_component.html.erb
|
|
424
439
|
- app/components/panda/core/admin/container_component.rb
|
|
440
|
+
- app/components/panda/core/admin/contributors_summary_component.html.erb
|
|
441
|
+
- app/components/panda/core/admin/contributors_summary_component.rb
|
|
442
|
+
- app/components/panda/core/admin/dashboard_default_content_component.html.erb
|
|
443
|
+
- app/components/panda/core/admin/dashboard_default_content_component.rb
|
|
444
|
+
- app/components/panda/core/admin/delete_button_component.html.erb
|
|
445
|
+
- app/components/panda/core/admin/delete_button_component.rb
|
|
446
|
+
- app/components/panda/core/admin/dropdown_button_component.html.erb
|
|
447
|
+
- app/components/panda/core/admin/dropdown_button_component.rb
|
|
448
|
+
- app/components/panda/core/admin/dropdown_component.html.erb
|
|
449
|
+
- app/components/panda/core/admin/dropdown_component.rb
|
|
450
|
+
- app/components/panda/core/admin/empty_state_component.html.erb
|
|
451
|
+
- app/components/panda/core/admin/empty_state_component.rb
|
|
452
|
+
- app/components/panda/core/admin/file_gallery_component.html.erb
|
|
425
453
|
- app/components/panda/core/admin/file_gallery_component.rb
|
|
454
|
+
- app/components/panda/core/admin/filter_pills_component.html.erb
|
|
455
|
+
- app/components/panda/core/admin/filter_pills_component.rb
|
|
456
|
+
- app/components/panda/core/admin/flash_message_component.html.erb
|
|
426
457
|
- app/components/panda/core/admin/flash_message_component.rb
|
|
458
|
+
- app/components/panda/core/admin/form_error_component.html.erb
|
|
427
459
|
- app/components/panda/core/admin/form_error_component.rb
|
|
460
|
+
- app/components/panda/core/admin/form_footer_component.html.erb
|
|
461
|
+
- app/components/panda/core/admin/form_footer_component.rb
|
|
462
|
+
- app/components/panda/core/admin/form_input_component.html.erb
|
|
428
463
|
- app/components/panda/core/admin/form_input_component.rb
|
|
464
|
+
- app/components/panda/core/admin/form_section_component.html.erb
|
|
465
|
+
- app/components/panda/core/admin/form_section_component.rb
|
|
466
|
+
- app/components/panda/core/admin/form_select_component.html.erb
|
|
429
467
|
- app/components/panda/core/admin/form_select_component.rb
|
|
468
|
+
- app/components/panda/core/admin/heading_component.html.erb
|
|
430
469
|
- app/components/panda/core/admin/heading_component.rb
|
|
470
|
+
- app/components/panda/core/admin/login_form_component.html.erb
|
|
471
|
+
- app/components/panda/core/admin/login_form_component.rb
|
|
472
|
+
- app/components/panda/core/admin/main_layout_component.html.erb
|
|
473
|
+
- app/components/panda/core/admin/main_layout_component.rb
|
|
474
|
+
- app/components/panda/core/admin/my_profile/connected_account_component.html.erb
|
|
475
|
+
- app/components/panda/core/admin/my_profile/connected_account_component.rb
|
|
476
|
+
- app/components/panda/core/admin/navigation/item_component.html.erb
|
|
477
|
+
- app/components/panda/core/admin/navigation/item_component.rb
|
|
478
|
+
- app/components/panda/core/admin/navigation/sub_item_component.html.erb
|
|
479
|
+
- app/components/panda/core/admin/navigation/sub_item_component.rb
|
|
480
|
+
- app/components/panda/core/admin/navigation/user_menu_component.html.erb
|
|
481
|
+
- app/components/panda/core/admin/navigation/user_menu_component.rb
|
|
482
|
+
- app/components/panda/core/admin/page_header_component.html.erb
|
|
431
483
|
- app/components/panda/core/admin/page_header_component.rb
|
|
484
|
+
- app/components/panda/core/admin/pagination_component.html.erb
|
|
485
|
+
- app/components/panda/core/admin/pagination_component.rb
|
|
486
|
+
- app/components/panda/core/admin/panel_component.html.erb
|
|
432
487
|
- app/components/panda/core/admin/panel_component.rb
|
|
488
|
+
- app/components/panda/core/admin/prose_panel_component.html.erb
|
|
489
|
+
- app/components/panda/core/admin/prose_panel_component.rb
|
|
490
|
+
- app/components/panda/core/admin/search_bar_component.html.erb
|
|
491
|
+
- app/components/panda/core/admin/search_bar_component.rb
|
|
492
|
+
- app/components/panda/core/admin/search_filter_bar_component.html.erb
|
|
493
|
+
- app/components/panda/core/admin/search_filter_bar_component.rb
|
|
494
|
+
- app/components/panda/core/admin/secret_field_component.html.erb
|
|
495
|
+
- app/components/panda/core/admin/secret_field_component.rb
|
|
496
|
+
- app/components/panda/core/admin/sidebar_component.html.erb
|
|
497
|
+
- app/components/panda/core/admin/sidebar_component.rb
|
|
498
|
+
- app/components/panda/core/admin/slideover_component.html.erb
|
|
433
499
|
- app/components/panda/core/admin/slideover_component.rb
|
|
500
|
+
- app/components/panda/core/admin/statistics_component.html.erb
|
|
434
501
|
- app/components/panda/core/admin/statistics_component.rb
|
|
502
|
+
- app/components/panda/core/admin/tab_bar_component.html.erb
|
|
435
503
|
- app/components/panda/core/admin/tab_bar_component.rb
|
|
504
|
+
- app/components/panda/core/admin/table_component.html.erb
|
|
436
505
|
- app/components/panda/core/admin/table_component.rb
|
|
506
|
+
- app/components/panda/core/admin/tag_badge_component.html.erb
|
|
507
|
+
- app/components/panda/core/admin/tag_badge_component.rb
|
|
508
|
+
- app/components/panda/core/admin/tag_component.html.erb
|
|
437
509
|
- app/components/panda/core/admin/tag_component.rb
|
|
510
|
+
- app/components/panda/core/admin/tag_input_component.html.erb
|
|
511
|
+
- app/components/panda/core/admin/tag_input_component.rb
|
|
512
|
+
- app/components/panda/core/admin/tags_panel_component.html.erb
|
|
513
|
+
- app/components/panda/core/admin/tags_panel_component.rb
|
|
514
|
+
- app/components/panda/core/admin/user_activity_component.html.erb
|
|
438
515
|
- app/components/panda/core/admin/user_activity_component.rb
|
|
516
|
+
- app/components/panda/core/admin/user_display_component.html.erb
|
|
439
517
|
- app/components/panda/core/admin/user_display_component.rb
|
|
440
518
|
- app/components/panda/core/base.rb
|
|
519
|
+
- app/components/panda/core/shared/footer_component.html.erb
|
|
520
|
+
- app/components/panda/core/shared/footer_component.rb
|
|
521
|
+
- app/components/panda/core/shared/header_component.html.erb
|
|
522
|
+
- app/components/panda/core/shared/header_component.rb
|
|
441
523
|
- app/constraints/panda/core/admin_constraint.rb
|
|
524
|
+
- app/controllers/concerns/panda/core/admin_authorization.rb
|
|
525
|
+
- app/controllers/concerns/panda/core/authorizable.rb
|
|
442
526
|
- app/controllers/panda/core/admin/base_controller.rb
|
|
443
527
|
- app/controllers/panda/core/admin/dashboard_controller.rb
|
|
528
|
+
- app/controllers/panda/core/admin/editor/search_controller.rb
|
|
529
|
+
- app/controllers/panda/core/admin/feature_flags_controller.rb
|
|
530
|
+
- app/controllers/panda/core/admin/file_categories_controller.rb
|
|
531
|
+
- app/controllers/panda/core/admin/files_controller.rb
|
|
532
|
+
- app/controllers/panda/core/admin/import_sessions_controller.rb
|
|
533
|
+
- app/controllers/panda/core/admin/my_profile/logins_controller.rb
|
|
444
534
|
- app/controllers/panda/core/admin/my_profile_controller.rb
|
|
535
|
+
- app/controllers/panda/core/admin/search_controller.rb
|
|
445
536
|
- app/controllers/panda/core/admin/sessions_controller.rb
|
|
446
537
|
- app/controllers/panda/core/admin/settings_controller.rb
|
|
538
|
+
- app/controllers/panda/core/admin/tags_controller.rb
|
|
447
539
|
- app/controllers/panda/core/admin/test_sessions_controller.rb
|
|
540
|
+
- app/controllers/panda/core/admin/users_controller.rb
|
|
448
541
|
- app/controllers/panda/core/application_controller.rb
|
|
542
|
+
- app/helpers/panda/core/active_storage_helper.rb
|
|
449
543
|
- app/helpers/panda/core/asset_helper.rb
|
|
544
|
+
- app/helpers/panda/core/feature_flag_helper.rb
|
|
545
|
+
- app/helpers/panda/core/form_helper.rb
|
|
450
546
|
- app/helpers/panda/core/sessions_helper.rb
|
|
451
547
|
- app/javascript/panda/core/application.js
|
|
452
548
|
- app/javascript/panda/core/controllers/alert_controller.js
|
|
549
|
+
- app/javascript/panda/core/controllers/avatar_upload_controller.js
|
|
550
|
+
- app/javascript/panda/core/controllers/clipboard_controller.js
|
|
551
|
+
- app/javascript/panda/core/controllers/collapsible_item_controller.js
|
|
552
|
+
- app/javascript/panda/core/controllers/custom_select_controller.js
|
|
553
|
+
- app/javascript/panda/core/controllers/datepicker_controller.js
|
|
554
|
+
- app/javascript/panda/core/controllers/daterange_controller.js
|
|
555
|
+
- app/javascript/panda/core/controllers/file_gallery_controller.js
|
|
556
|
+
- app/javascript/panda/core/controllers/file_upload_controller.js
|
|
557
|
+
- app/javascript/panda/core/controllers/global_search_controller.js
|
|
453
558
|
- app/javascript/panda/core/controllers/image_cropper_controller.js
|
|
454
559
|
- app/javascript/panda/core/controllers/index.js
|
|
560
|
+
- app/javascript/panda/core/controllers/mobile_sidebar_controller.js
|
|
455
561
|
- app/javascript/panda/core/controllers/navigation_toggle_controller.js
|
|
562
|
+
- app/javascript/panda/core/controllers/row_link_controller.js
|
|
563
|
+
- app/javascript/panda/core/controllers/tag_input_controller.js
|
|
456
564
|
- app/javascript/panda/core/controllers/theme_form_controller.js
|
|
457
565
|
- app/javascript/panda/core/controllers/toggle_controller.js
|
|
458
566
|
- app/javascript/panda/core/tailwindcss-stimulus-components.js
|
|
459
567
|
- app/javascript/panda/core/tailwindplus-elements.js
|
|
568
|
+
- app/javascript/panda/core/vendor/@fortawesome--fontawesome-free@7.2.0.js
|
|
460
569
|
- app/javascript/panda/core/vendor/@hotwired--stimulus.js
|
|
461
570
|
- app/javascript/panda/core/vendor/@hotwired--turbo.js
|
|
462
571
|
- app/javascript/panda/core/vendor/@rails--actioncable--src.js
|
|
572
|
+
- app/javascript/panda/core/vendor/@tailwindplus--elements@1.0.22.js
|
|
573
|
+
- app/javascript/panda/core/vendor/cropperjs@2.1.0.js
|
|
574
|
+
- app/javascript/panda/core/vendor/vanilla-calendar-pro.js
|
|
575
|
+
- app/models/concerns/panda/core/has_metadata.rb
|
|
463
576
|
- app/models/concerns/panda/core/has_uuid.rb
|
|
577
|
+
- app/models/concerns/panda/core/importable.rb
|
|
578
|
+
- app/models/concerns/panda/core/searchable.rb
|
|
579
|
+
- app/models/concerns/panda/core/taggable.rb
|
|
464
580
|
- app/models/panda/core/application_record.rb
|
|
465
581
|
- app/models/panda/core/breadcrumb.rb
|
|
466
582
|
- app/models/panda/core/current.rb
|
|
583
|
+
- app/models/panda/core/feature_flag.rb
|
|
584
|
+
- app/models/panda/core/file_categorization.rb
|
|
585
|
+
- app/models/panda/core/file_category.rb
|
|
586
|
+
- app/models/panda/core/import_session.rb
|
|
587
|
+
- app/models/panda/core/presence.rb
|
|
588
|
+
- app/models/panda/core/tag.rb
|
|
589
|
+
- app/models/panda/core/tagging.rb
|
|
467
590
|
- app/models/panda/core/user.rb
|
|
591
|
+
- app/models/panda/core/user_activity.rb
|
|
592
|
+
- app/models/panda/core/user_session.rb
|
|
468
593
|
- app/services/panda/core/attach_avatar_service.rb
|
|
594
|
+
- app/services/panda/core/csv_import_service.rb
|
|
595
|
+
- app/services/panda/core/file_categorizer.rb
|
|
596
|
+
- app/services/panda/core/file_parser.rb
|
|
597
|
+
- app/services/panda/core/invite_user_service.rb
|
|
598
|
+
- app/services/panda/core/presence_service.rb
|
|
469
599
|
- app/views/layouts/panda/core/admin.html.erb
|
|
470
600
|
- app/views/layouts/panda/core/admin_simple.html.erb
|
|
471
601
|
- app/views/panda/core/admin/dashboard/_default_content.html.erb
|
|
472
602
|
- app/views/panda/core/admin/dashboard/show.html.erb
|
|
603
|
+
- app/views/panda/core/admin/feature_flags/index.html.erb
|
|
604
|
+
- app/views/panda/core/admin/file_categories/_form.html.erb
|
|
605
|
+
- app/views/panda/core/admin/file_categories/edit.html.erb
|
|
606
|
+
- app/views/panda/core/admin/file_categories/index.html.erb
|
|
607
|
+
- app/views/panda/core/admin/file_categories/new.html.erb
|
|
608
|
+
- app/views/panda/core/admin/files/_file_details.html.erb
|
|
609
|
+
- app/views/panda/core/admin/files/index.html.erb
|
|
610
|
+
- app/views/panda/core/admin/import_sessions/column_map.html.erb
|
|
611
|
+
- app/views/panda/core/admin/import_sessions/index.html.erb
|
|
612
|
+
- app/views/panda/core/admin/import_sessions/new.html.erb
|
|
613
|
+
- app/views/panda/core/admin/import_sessions/preview.html.erb
|
|
614
|
+
- app/views/panda/core/admin/import_sessions/show.html.erb
|
|
473
615
|
- app/views/panda/core/admin/my_profile/edit.html.erb
|
|
616
|
+
- app/views/panda/core/admin/my_profile/logins/show.html.erb
|
|
474
617
|
- app/views/panda/core/admin/sessions/new.html.erb
|
|
475
618
|
- app/views/panda/core/admin/settings/show.html.erb
|
|
476
619
|
- app/views/panda/core/admin/shared/_breadcrumbs.html.erb
|
|
477
620
|
- app/views/panda/core/admin/shared/_flash.html.erb
|
|
478
621
|
- app/views/panda/core/admin/shared/_sidebar.html.erb
|
|
479
622
|
- app/views/panda/core/admin/shared/_slideover.html.erb
|
|
623
|
+
- app/views/panda/core/admin/tags/_form.html.erb
|
|
624
|
+
- app/views/panda/core/admin/tags/edit.html.erb
|
|
625
|
+
- app/views/panda/core/admin/tags/index.html.erb
|
|
626
|
+
- app/views/panda/core/admin/tags/new.html.erb
|
|
627
|
+
- app/views/panda/core/admin/users/activity.html.erb
|
|
628
|
+
- app/views/panda/core/admin/users/edit.html.erb
|
|
629
|
+
- app/views/panda/core/admin/users/index.html.erb
|
|
630
|
+
- app/views/panda/core/admin/users/sessions.html.erb
|
|
631
|
+
- app/views/panda/core/admin/users/show.html.erb
|
|
480
632
|
- app/views/panda/core/shared/_footer.html.erb
|
|
481
633
|
- app/views/panda/core/shared/_header.html.erb
|
|
482
634
|
- config/brakeman.ignore
|
|
@@ -485,6 +637,18 @@ files:
|
|
|
485
637
|
- config/routes.rb
|
|
486
638
|
- db/migrate/20250809000001_create_panda_core_users.rb
|
|
487
639
|
- db/migrate/20251203100000_rename_is_admin_to_admin_in_panda_core_users.rb
|
|
640
|
+
- db/migrate/20260202171614_create_panda_core_file_categories.rb
|
|
641
|
+
- db/migrate/20260203000001_add_user_management_fields_to_panda_core_users.rb
|
|
642
|
+
- db/migrate/20260203000002_create_panda_core_user_activities.rb
|
|
643
|
+
- db/migrate/20260203000003_create_panda_core_user_sessions.rb
|
|
644
|
+
- db/migrate/20260207100000_create_panda_core_presences.rb
|
|
645
|
+
- db/migrate/20260213000001_fix_active_storage_attachments_record_id_type.rb
|
|
646
|
+
- db/migrate/20260217000001_create_panda_core_feature_flags.rb
|
|
647
|
+
- db/migrate/20260303000001_add_metadata_to_panda_core_users.rb
|
|
648
|
+
- db/migrate/20260310000001_create_panda_core_tags.rb
|
|
649
|
+
- db/migrate/20260310000002_create_panda_core_import_sessions.rb
|
|
650
|
+
- lib/generators/panda/core/install_generator.rb
|
|
651
|
+
- lib/generators/panda/core/templates/panda.rb
|
|
488
652
|
- lib/panda/core.rb
|
|
489
653
|
- lib/panda/core/asset_loader.rb
|
|
490
654
|
- lib/panda/core/authentication.rb
|
|
@@ -496,17 +660,22 @@ files:
|
|
|
496
660
|
- lib/panda/core/engine/autoload_config.rb
|
|
497
661
|
- lib/panda/core/engine/generator_config.rb
|
|
498
662
|
- lib/panda/core/engine/importmap_config.rb
|
|
499
|
-
- lib/panda/core/engine/inflections_config.rb
|
|
500
663
|
- lib/panda/core/engine/omniauth_config.rb
|
|
501
|
-
- lib/panda/core/engine/
|
|
664
|
+
- lib/panda/core/engine/pending_migrations_check.rb
|
|
502
665
|
- lib/panda/core/engine/route_config.rb
|
|
666
|
+
- lib/panda/core/engine/sqlite_schema_compatibility.rb
|
|
667
|
+
- lib/panda/core/engine/view_component_config.rb
|
|
503
668
|
- lib/panda/core/media.rb
|
|
504
669
|
- lib/panda/core/middleware.rb
|
|
505
670
|
- lib/panda/core/module_registry.rb
|
|
671
|
+
- lib/panda/core/navigation_registry.rb
|
|
506
672
|
- lib/panda/core/notifications.rb
|
|
507
673
|
- lib/panda/core/oauth_providers.rb
|
|
674
|
+
- lib/panda/core/permission_registry.rb
|
|
508
675
|
- lib/panda/core/railtie.rb
|
|
509
676
|
- lib/panda/core/rake_tasks.rb
|
|
677
|
+
- lib/panda/core/search_registry.rb
|
|
678
|
+
- lib/panda/core/seeds/file_categories.rb
|
|
510
679
|
- lib/panda/core/seo.rb
|
|
511
680
|
- lib/panda/core/services/base_service.rb
|
|
512
681
|
- lib/panda/core/shared/generator_config.rb
|
|
@@ -527,8 +696,11 @@ files:
|
|
|
527
696
|
- lib/panda/core/testing/support/system/database_connection_helpers.rb
|
|
528
697
|
- lib/panda/core/testing/support/system/ferrum_console_logger.rb
|
|
529
698
|
- lib/panda/core/testing/support/system/system_test_helpers.rb
|
|
699
|
+
- lib/panda/core/testing/view_component_test_controller.rb
|
|
530
700
|
- lib/panda/core/version.rb
|
|
701
|
+
- lib/panda/core/widget_registry.rb
|
|
531
702
|
- lib/tasks/panda/core/ci_tasks.rake
|
|
703
|
+
- lib/tasks/panda/core/file_categories.rake
|
|
532
704
|
- lib/tasks/panda/core/migrations.rake
|
|
533
705
|
- lib/tasks/panda/core/users.rake
|
|
534
706
|
- lib/tasks/panda/shared.rake
|
|
@@ -545,9 +717,14 @@ files:
|
|
|
545
717
|
- public/panda-core-assets/panda-core-0.11.0.css
|
|
546
718
|
- public/panda-core-assets/panda-core-0.12.2.css
|
|
547
719
|
- public/panda-core-assets/panda-core-0.12.3.css
|
|
720
|
+
- public/panda-core-assets/panda-core-0.12.5.css
|
|
721
|
+
- public/panda-core-assets/panda-core-0.13.0.css
|
|
722
|
+
- public/panda-core-assets/panda-core-0.14.0.css
|
|
723
|
+
- public/panda-core-assets/panda-core-0.14.4.css
|
|
548
724
|
- public/panda-core-assets/panda-core.css
|
|
549
725
|
- public/panda-core-assets/panda-logo-screenprint.png
|
|
550
726
|
- public/panda-core-assets/panda-nav.png
|
|
727
|
+
- public/panda-core-assets/vanilla-calendar.css
|
|
551
728
|
homepage: https://github.com/tastybamboo/panda-core
|
|
552
729
|
licenses:
|
|
553
730
|
- BSD-3-Clause
|
|
@@ -573,5 +750,5 @@ requirements: []
|
|
|
573
750
|
rubygems_version: 3.5.22
|
|
574
751
|
signing_key:
|
|
575
752
|
specification_version: 4
|
|
576
|
-
summary: Core
|
|
753
|
+
summary: Core framework for Panda-powered Rails applications
|
|
577
754
|
test_files: []
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Panda
|
|
4
|
-
module Core
|
|
5
|
-
class Engine < ::Rails::Engine
|
|
6
|
-
# Inflections configuration
|
|
7
|
-
module InflectionsConfig
|
|
8
|
-
extend ActiveSupport::Concern
|
|
9
|
-
|
|
10
|
-
included do
|
|
11
|
-
# Load inflections early to ensure proper constant resolution
|
|
12
|
-
initializer "panda_core.inflections", before: :load_config_initializers do
|
|
13
|
-
ActiveSupport::Inflector.inflections(:en) do |inflect|
|
|
14
|
-
inflect.acronym "CMS"
|
|
15
|
-
inflect.acronym "SEO"
|
|
16
|
-
inflect.acronym "AI"
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|