activeadmin 3.4.0 → 4.0.0.beta18
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/CHANGELOG.md +4 -102
- data/CONTRIBUTING.md +32 -117
- data/README.md +17 -30
- data/UPGRADING.md +241 -0
- data/app/assets/config/active_admin_manifest.js +2 -0
- data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +1 -1
- data/app/controllers/active_admin/base_controller/menu.rb +39 -0
- data/{lib → app/controllers}/active_admin/base_controller.rb +46 -18
- data/{lib → app/controllers}/active_admin/page_controller.rb +0 -4
- data/{lib → app/controllers}/active_admin/resource_controller/action_builder.rb +1 -1
- data/{lib → app/controllers}/active_admin/resource_controller/data_access.rb +11 -6
- data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
- data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +4 -4
- data/app/controllers/active_admin/resource_controller.rb +102 -0
- data/app/helpers/active_admin/auto_link_helper.rb +66 -0
- data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
- data/app/helpers/active_admin/display_helper.rb +117 -0
- data/app/helpers/active_admin/form_helper.rb +95 -0
- data/app/helpers/active_admin/index_helper.rb +40 -0
- data/app/helpers/active_admin/layout_helper.rb +63 -0
- data/app/javascript/active_admin/features/batch_actions.js +95 -0
- data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
- data/app/javascript/active_admin/features/filters.js +34 -0
- data/app/javascript/active_admin/features/has_many.js +28 -0
- data/app/javascript/active_admin/features/main_menu.js +12 -0
- data/app/javascript/active_admin/features/per_page.js +9 -0
- data/app/javascript/active_admin/utils/dom.js +17 -0
- data/app/javascript/active_admin.js +10 -0
- data/app/views/active_admin/_flash_messages.html.erb +22 -0
- data/app/views/active_admin/_html_head.html.erb +13 -0
- data/app/views/active_admin/_main_navigation.html.erb +28 -0
- data/app/views/active_admin/_page_header.html.erb +27 -0
- data/app/views/active_admin/_sidebar.html.erb +5 -0
- data/app/views/active_admin/_site_footer.html.erb +7 -0
- data/app/views/active_admin/_site_header.html.erb +30 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
- data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
- data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
- data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
- data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
- data/app/views/active_admin/devise/shared/_links.erb +3 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
- data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
- data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
- data/app/views/active_admin/kaminari/_page.html.erb +14 -0
- data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
- data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
- data/app/views/active_admin/page/index.html.arb +5 -2
- data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
- data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
- data/app/views/active_admin/resource/_form.html.arb +15 -0
- data/app/views/active_admin/resource/_form_default.html.arb +11 -0
- data/app/views/active_admin/resource/_index_as_table_default.html.arb +8 -0
- data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
- data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
- data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
- data/app/views/active_admin/resource/_show_default.html.arb +2 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -2
- data/app/views/active_admin/resource/index.html.arb +94 -2
- data/app/views/active_admin/resource/new.html.arb +1 -2
- data/app/views/active_admin/resource/show.html.arb +12 -2
- data/app/views/active_admin/shared/_action_items.html.erb +3 -0
- data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
- data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
- data/app/views/active_admin/shared/_sidebar_section.html.arb +6 -0
- data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
- data/app/views/layouts/active_admin.html.erb +20 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
- data/config/importmap.rb +5 -0
- data/config/locales/ar.yml +136 -116
- data/config/locales/az.yml +103 -118
- data/config/locales/bg.yml +91 -99
- data/config/locales/bs.yml +95 -101
- data/config/locales/ca.yml +131 -86
- data/config/locales/cs.yml +82 -90
- data/config/locales/da.yml +102 -117
- data/config/locales/de.yml +130 -141
- data/config/locales/el.yml +94 -106
- data/config/locales/en-CA.yml +104 -119
- data/config/locales/en-GB.yml +104 -119
- data/config/locales/en.yml +134 -140
- data/config/locales/eo.yml +107 -123
- data/config/locales/es-MX.yml +70 -78
- data/config/locales/es.yml +129 -138
- data/config/locales/fa.yml +91 -99
- data/config/locales/fi.yml +84 -92
- data/config/locales/fr.yml +135 -120
- data/config/locales/he.yml +103 -118
- data/config/locales/hr.yml +95 -103
- data/config/locales/hu.yml +76 -81
- data/config/locales/id.yml +97 -112
- data/config/locales/it.yml +134 -140
- data/config/locales/ja.yml +109 -120
- data/config/locales/ko.yml +136 -101
- data/config/locales/lt.yml +106 -121
- data/config/locales/lv.yml +70 -75
- data/config/locales/mk.yml +100 -114
- data/config/locales/nb.yml +98 -109
- data/config/locales/nl.yml +113 -122
- data/config/locales/pl.yml +137 -146
- data/config/locales/pt-BR.yml +134 -121
- data/config/locales/pt-PT.yml +71 -76
- data/config/locales/ro.yml +74 -79
- data/config/locales/ru.yml +142 -122
- data/config/locales/sk.yml +131 -146
- data/config/locales/sv-SE.yml +126 -141
- data/config/locales/tr.yml +105 -120
- data/config/locales/uk.yml +140 -119
- data/config/locales/vi.yml +125 -140
- data/config/locales/zh-CN.yml +135 -141
- data/config/locales/zh-TW.yml +136 -116
- data/lib/active_admin/application.rb +6 -14
- data/lib/active_admin/application_settings.rb +1 -1
- data/lib/active_admin/async_count.rb +23 -0
- data/lib/active_admin/batch_actions/controller.rb +1 -4
- data/lib/active_admin/batch_actions/resource_extension.rb +8 -15
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -7
- data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
- data/lib/active_admin/batch_actions.rb +4 -9
- data/lib/active_admin/callbacks.rb +6 -4
- data/lib/active_admin/collection_decorator.rb +1 -1
- data/lib/active_admin/component.rb +0 -1
- data/lib/active_admin/csv_builder.rb +2 -2
- data/lib/active_admin/devise.rb +3 -3
- data/lib/active_admin/dsl.rb +3 -3
- data/lib/active_admin/dynamic_settings_node.rb +6 -6
- data/lib/active_admin/engine.rb +23 -7
- data/lib/active_admin/filters/active.rb +8 -6
- data/lib/active_admin/filters/active_filter.rb +2 -10
- data/lib/active_admin/filters/forms.rb +1 -45
- data/lib/active_admin/filters/resource_extension.rb +18 -10
- data/lib/active_admin/filters.rb +5 -7
- data/lib/active_admin/form_builder.rb +14 -17
- data/lib/active_admin/helpers/optional_display.rb +1 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +10 -12
- data/lib/active_admin/inputs/filters/base.rb +1 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
- data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
- data/lib/active_admin/inputs.rb +0 -3
- data/lib/active_admin/localizers.rb +1 -1
- data/lib/active_admin/menu.rb +10 -7
- data/lib/active_admin/menu_collection.rb +1 -1
- data/lib/active_admin/menu_item.rb +24 -3
- data/lib/active_admin/namespace.rb +3 -45
- data/lib/active_admin/namespace_settings.rb +3 -36
- data/lib/active_admin/order_clause.rb +4 -1
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +4 -76
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
- data/lib/active_admin/orm/active_record/comments.rb +13 -8
- data/lib/active_admin/orm/active_record.rb +1 -1
- data/lib/active_admin/pundit_adapter.rb +3 -3
- data/lib/active_admin/resource/action_items.rb +18 -23
- data/lib/active_admin/resource/naming.rb +2 -3
- data/lib/active_admin/resource/page_presenters.rb +2 -2
- data/lib/active_admin/resource/sidebars.rb +1 -1
- data/lib/active_admin/resource.rb +17 -16
- data/lib/active_admin/resource_collection.rb +1 -1
- data/lib/active_admin/resource_dsl.rb +3 -3
- data/lib/active_admin/scope.rb +11 -1
- data/lib/active_admin/settings_node.rb +1 -1
- data/lib/active_admin/sidebar_section.rb +0 -5
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -1
- data/lib/active_admin/view_helpers.rb +0 -12
- data/lib/active_admin/views/components/active_admin_form.rb +21 -29
- data/lib/active_admin/views/components/attributes_table.rb +14 -16
- data/lib/active_admin/views/components/index_list.rb +10 -23
- data/lib/active_admin/views/components/paginated_collection.rb +34 -39
- data/lib/active_admin/views/components/panel.rb +3 -11
- data/lib/active_admin/views/components/scopes.rb +39 -26
- data/lib/active_admin/views/components/status_tag.rb +22 -19
- data/lib/active_admin/views/components/table_for.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +39 -101
- data/lib/active_admin.rb +16 -15
- data/lib/activeadmin.rb +1 -1
- data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
- data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
- data/lib/generators/active_admin/assets/templates/tailwind.config.js +21 -0
- data/lib/generators/active_admin/devise/devise_generator.rb +2 -2
- data/lib/generators/active_admin/install/install_generator.rb +2 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
- data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
- data/lib/generators/active_admin/page/page_generator.rb +0 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +50 -7
- data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
- data/lib/generators/active_admin/views_generator.rb +18 -0
- data/plugin.js +414 -0
- data/vendor/bundle/offense.rb +1 -0
- data/vendor/javascript/flowbite.js +1 -0
- data/vendor/javascript/rails_ujs_esm.js +1 -0
- metadata +80 -207
- data/app/assets/javascripts/active_admin/base.js +0 -517
- data/app/assets/stylesheets/active_admin/_base.scss +0 -57
- data/app/assets/stylesheets/active_admin/_forms.scss +0 -315
- data/app/assets/stylesheets/active_admin/_header.scss +0 -188
- data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
- data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
- data/app/assets/stylesheets/active_admin/_print.scss +0 -287
- data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
- data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
- data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
- data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
- data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -154
- data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
- data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
- data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
- data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -58
- data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
- data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -70
- data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -68
- data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
- data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
- data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
- data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
- data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
- data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
- data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
- data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -43
- data/app/javascript/active_admin/base.js +0 -28
- data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
- data/app/javascript/active_admin/ext/jquery.js +0 -9
- data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
- data/app/javascript/active_admin/initializers/datepicker.js +0 -16
- data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
- data/app/javascript/active_admin/initializers/filters.js +0 -10
- data/app/javascript/active_admin/initializers/has-many.js +0 -98
- data/app/javascript/active_admin/initializers/per-page.js +0 -13
- data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
- data/app/javascript/active_admin/initializers/tabs.js +0 -6
- data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
- data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
- data/app/javascript/active_admin/lib/filters.js +0 -39
- data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
- data/app/javascript/active_admin/lib/per-page.js +0 -38
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
- data/app/javascript/active_admin/lib/utils.js +0 -40
- data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
- data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
- data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
- data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
- data/app/views/kaminari/active_admin/_page.html.erb +0 -12
- data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
- data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
- data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
- data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
- data/app/views/layouts/active_admin.html.arb +0 -2
- data/config/locales/de-CH.yml +0 -94
- data/lib/active_admin/abstract_view_factory.rb +0 -48
- data/lib/active_admin/asset_registration.rb +0 -30
- data/lib/active_admin/base_controller/menu.rb +0 -35
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
- data/lib/active_admin/filters/active_sidebar.rb +0 -28
- data/lib/active_admin/generators/boilerplate.rb +0 -54
- data/lib/active_admin/helpers/collection.rb +0 -21
- data/lib/active_admin/helpers/i18n.rb +0 -8
- data/lib/active_admin/inputs/datepicker_input.rb +0 -28
- data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
- data/lib/active_admin/orm/mongoid.rb +0 -2
- data/lib/active_admin/resource_controller/sidebars.rb +0 -19
- data/lib/active_admin/resource_controller.rb +0 -68
- data/lib/active_admin/view_factory.rb +0 -28
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
- data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
- data/lib/active_admin/view_helpers/display_helper.rb +0 -119
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
- data/lib/active_admin/view_helpers/fields_for.rb +0 -51
- data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
- data/lib/active_admin/view_helpers/form_helper.rb +0 -21
- data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
- data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
- data/lib/active_admin/view_helpers/title_helper.rb +0 -12
- data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
- data/lib/active_admin/views/action_items.rb +0 -18
- data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
- data/lib/active_admin/views/components/blank_slate.rb +0 -18
- data/lib/active_admin/views/components/columns.rb +0 -162
- data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
- data/lib/active_admin/views/components/menu.rb +0 -33
- data/lib/active_admin/views/components/menu_item.rb +0 -59
- data/lib/active_admin/views/components/sidebar.rb +0 -14
- data/lib/active_admin/views/components/sidebar_section.rb +0 -35
- data/lib/active_admin/views/components/site_title.rb +0 -55
- data/lib/active_admin/views/components/tabs.rb +0 -41
- data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
- data/lib/active_admin/views/footer.rb +0 -32
- data/lib/active_admin/views/header.rb +0 -20
- data/lib/active_admin/views/index_as_block.rb +0 -37
- data/lib/active_admin/views/index_as_blog.rb +0 -156
- data/lib/active_admin/views/index_as_grid.rb +0 -81
- data/lib/active_admin/views/pages/base.rb +0 -134
- data/lib/active_admin/views/pages/form.rb +0 -65
- data/lib/active_admin/views/pages/index.rb +0 -166
- data/lib/active_admin/views/pages/layout.rb +0 -27
- data/lib/active_admin/views/pages/page.rb +0 -31
- data/lib/active_admin/views/pages/show.rb +0 -60
- data/lib/active_admin/views/tabbed_navigation.rb +0 -12
- data/lib/active_admin/views/title_bar.rb +0 -56
- data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
- data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
- data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
- data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
- data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
- data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
- data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -51
- data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -89
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -83
- data/vendor/assets/javascripts/jquery-ui/form.js +0 -25
- data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
- data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
- data/vendor/assets/javascripts/jquery-ui/labels.js +0 -71
- data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
- data/vendor/assets/javascripts/jquery-ui/position.js +0 -513
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -41
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
- data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
- data/vendor/assets/javascripts/jquery-ui/widget.js +0 -758
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -454
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -294
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -304
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2243
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -971
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1228
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1622
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
- /data/{lib → app/controllers}/active_admin/resource_controller/decorators.rb +0 -0
- /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
- /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
- /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
|
@@ -3,31 +3,14 @@ ActiveAdmin.register_page "Dashboard" do
|
|
|
3
3
|
menu priority: 1, label: proc { I18n.t("active_admin.dashboard") }
|
|
4
4
|
|
|
5
5
|
content title: proc { I18n.t("active_admin.dashboard") } do
|
|
6
|
-
div class: "
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
div class: "px-4 py-16 md:py-32 text-center m-auto max-w-3xl" do
|
|
7
|
+
h2 "Welcome to ActiveAdmin", class: "text-base font-semibold leading-7 text-indigo-600 dark:text-indigo-500"
|
|
8
|
+
para "This is the default page", class: "mt-2 text-3xl sm:text-4xl font-bold text-gray-900 dark:text-gray-200"
|
|
9
|
+
para class: "mt-6 text-xl leading-8 text-gray-700 dark:text-gray-400" do
|
|
10
|
+
text_node "To update the content, edit the"
|
|
11
|
+
strong "app/admin/dashboard.rb"
|
|
12
|
+
text_node "file to get started."
|
|
10
13
|
end
|
|
11
14
|
end
|
|
12
|
-
|
|
13
|
-
# Here is an example of a simple dashboard with columns and panels.
|
|
14
|
-
#
|
|
15
|
-
# columns do
|
|
16
|
-
# column do
|
|
17
|
-
# panel "Recent Posts" do
|
|
18
|
-
# ul do
|
|
19
|
-
# Post.recent(5).map do |post|
|
|
20
|
-
# li link_to(post.title, admin_post_path(post))
|
|
21
|
-
# end
|
|
22
|
-
# end
|
|
23
|
-
# end
|
|
24
|
-
# end
|
|
25
|
-
|
|
26
|
-
# column do
|
|
27
|
-
# panel "Info" do
|
|
28
|
-
# para "Welcome to ActiveAdmin."
|
|
29
|
-
# end
|
|
30
|
-
# end
|
|
31
|
-
# end
|
|
32
|
-
end # content
|
|
15
|
+
end
|
|
33
16
|
end
|
|
@@ -1,21 +1,64 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
require "active_admin/generators/boilerplate"
|
|
3
|
-
|
|
4
2
|
module ActiveAdmin
|
|
5
3
|
module Generators
|
|
6
4
|
class ResourceGenerator < Rails::Generators::NamedBase
|
|
7
5
|
desc "Registers resources with Active Admin"
|
|
8
6
|
|
|
9
|
-
class_option :include_boilerplate, type: :boolean, default: false,
|
|
10
|
-
desc: "Generate boilerplate code for your resource."
|
|
11
|
-
|
|
12
7
|
source_root File.expand_path("templates", __dir__)
|
|
13
8
|
|
|
14
9
|
def generate_config_file
|
|
15
|
-
|
|
16
|
-
|
|
10
|
+
template "resource.rb.erb", "app/admin/#{file_path.tr('/', '_').pluralize}.rb"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
protected
|
|
14
|
+
|
|
15
|
+
def attributes
|
|
16
|
+
@attributes ||= class_name.constantize.new.attributes.keys
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def primary_key
|
|
20
|
+
@primary_key ||= [class_name.constantize.primary_key].flatten
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def assignable_attributes
|
|
24
|
+
@assignable_attributes ||= attributes - primary_key - %w(created_at updated_at)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def permit_params
|
|
28
|
+
assignable_attributes.map { |a| a.to_sym.inspect }.join(", ")
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def rows
|
|
32
|
+
attributes.map { |a| row(a) }.join("\n ")
|
|
17
33
|
end
|
|
18
34
|
|
|
35
|
+
def row(name)
|
|
36
|
+
"row :#{name.gsub(/_id$/, '')}"
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def columns
|
|
40
|
+
(attributes - primary_key).map { |a| column(a) }.join("\n ")
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def column(name)
|
|
44
|
+
"column :#{name.gsub(/_id$/, '')}"
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def filters
|
|
48
|
+
attributes.map { |a| filter(a) }.join("\n ")
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def filter(name)
|
|
52
|
+
"filter :#{name.gsub(/_id$/, '')}"
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def form_inputs
|
|
56
|
+
assignable_attributes.map { |a| form_input(a) }.join("\n ")
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
def form_input(name)
|
|
60
|
+
"f.input :#{name.gsub(/_id$/, '')}"
|
|
61
|
+
end
|
|
19
62
|
end
|
|
20
63
|
end
|
|
21
64
|
end
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
ActiveAdmin.register <%= class_name %> do
|
|
2
|
+
# Specify parameters which should be permitted for assignment
|
|
3
|
+
permit_params <%= permit_params %>
|
|
4
|
+
|
|
5
|
+
# or consider:
|
|
6
|
+
#
|
|
7
|
+
# permit_params do
|
|
8
|
+
# permitted = [<%= permit_params %>]
|
|
9
|
+
# permitted << :other if params[:action] == 'create' && current_user.admin?
|
|
10
|
+
# permitted
|
|
11
|
+
# end
|
|
12
|
+
|
|
13
|
+
# For security, limit the actions that should be available
|
|
14
|
+
actions :all, except: []
|
|
15
|
+
|
|
16
|
+
# Add or remove filters to toggle their visibility
|
|
17
|
+
<%= filters %>
|
|
18
|
+
|
|
19
|
+
# Add or remove columns to toggle their visibility in the index action
|
|
20
|
+
index do
|
|
21
|
+
selectable_column
|
|
22
|
+
id_column
|
|
23
|
+
<%= columns %>
|
|
24
|
+
actions
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Add or remove rows to toggle their visibility in the show action
|
|
28
|
+
show do
|
|
29
|
+
attributes_table_for(resource) do
|
|
30
|
+
<%= rows %>
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Add or remove fields to toggle their visibility in the form
|
|
35
|
+
form do |f|
|
|
36
|
+
f.semantic_errors(*f.object.errors.attribute_names)
|
|
37
|
+
f.inputs do
|
|
38
|
+
<%= form_inputs %>
|
|
39
|
+
end
|
|
40
|
+
f.actions
|
|
41
|
+
end
|
|
42
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
module ActiveAdmin
|
|
3
|
+
module Generators
|
|
4
|
+
class ViewsGenerator < Rails::Generators::Base
|
|
5
|
+
source_root File.expand_path("../../../", __dir__)
|
|
6
|
+
|
|
7
|
+
def copy_views
|
|
8
|
+
directory "app/views/layouts"
|
|
9
|
+
directory "app/views/active_admin", recursive: false
|
|
10
|
+
directory "app/views/active_admin/devise"
|
|
11
|
+
directory "app/views/active_admin/kaminari"
|
|
12
|
+
copy_file "app/views/active_admin/shared/_resource_comments.html.erb"
|
|
13
|
+
copy_file "app/views/active_admin/resource/_index_blank_slate.html.erb"
|
|
14
|
+
copy_file "app/views/active_admin/resource/_index_empty_results.html.erb"
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
data/plugin.js
ADDED
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
import plugin from 'tailwindcss/plugin';
|
|
2
|
+
import defaultTheme from 'tailwindcss/defaultTheme';
|
|
3
|
+
import colors from 'tailwindcss/colors';
|
|
4
|
+
const { spacing, borderWidth, borderRadius } = defaultTheme;
|
|
5
|
+
|
|
6
|
+
// https://github.com/tailwindlabs/tailwindcss/discussions/9336
|
|
7
|
+
// https://github.com/tailwindlabs/tailwindcss/discussions/2049
|
|
8
|
+
// https://github.com/tailwindlabs/tailwindcss/discussions/2049#discussioncomment-45546
|
|
9
|
+
|
|
10
|
+
const svgToTinyDataUri = (() => {
|
|
11
|
+
// Source: https://github.com/tigt/mini-svg-data-uri
|
|
12
|
+
const reWhitespace = /\s+/g,
|
|
13
|
+
reUrlHexPairs = /%[\dA-F]{2}/g,
|
|
14
|
+
hexDecode = { '%20': ' ', '%3D': '=', '%3A': ':', '%2F': '/' },
|
|
15
|
+
specialHexDecode = match => hexDecode[match] || match.toLowerCase(),
|
|
16
|
+
svgToTinyDataUri = svg => {
|
|
17
|
+
svg = String(svg);
|
|
18
|
+
if (svg.charCodeAt(0) === 0xfeff) svg = svg.slice(1);
|
|
19
|
+
svg = svg
|
|
20
|
+
.trim()
|
|
21
|
+
.replace(reWhitespace, ' ')
|
|
22
|
+
.replaceAll('"', '\'');
|
|
23
|
+
svg = encodeURIComponent(svg);
|
|
24
|
+
svg = svg.replace(reUrlHexPairs, specialHexDecode);
|
|
25
|
+
return 'data:image/svg+xml,' + svg;
|
|
26
|
+
};
|
|
27
|
+
svgToTinyDataUri.toSrcset = svg => svgToTinyDataUri(svg).replace(/ /g, '%20');
|
|
28
|
+
return svgToTinyDataUri;
|
|
29
|
+
})();
|
|
30
|
+
|
|
31
|
+
export default plugin(
|
|
32
|
+
function({ addBase, addComponents, theme }) {
|
|
33
|
+
addBase({
|
|
34
|
+
[[
|
|
35
|
+
"[type='text']",
|
|
36
|
+
"[type='email']",
|
|
37
|
+
"[type='url']",
|
|
38
|
+
"[type='password']",
|
|
39
|
+
"[type='number']",
|
|
40
|
+
"[type='date']",
|
|
41
|
+
"[type='datetime-local']",
|
|
42
|
+
"[type='month']",
|
|
43
|
+
"[type='search']",
|
|
44
|
+
"[type='tel']",
|
|
45
|
+
"[type='time']",
|
|
46
|
+
"[type='week']",
|
|
47
|
+
'textarea',
|
|
48
|
+
'select',
|
|
49
|
+
]]: {
|
|
50
|
+
'appearance': 'none',
|
|
51
|
+
'padding': `${spacing[2]} ${spacing[3]}`,
|
|
52
|
+
'--tw-shadow': '0 0 #0000',
|
|
53
|
+
'&:focus': {
|
|
54
|
+
outline: '2px solid transparent',
|
|
55
|
+
'outline-offset': '2px',
|
|
56
|
+
'--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',
|
|
57
|
+
'--tw-ring-offset-width': '0px',
|
|
58
|
+
'--tw-ring-offset-color': '#fff',
|
|
59
|
+
'--tw-ring-color': theme(
|
|
60
|
+
'colors.blue.600',
|
|
61
|
+
colors.blue[600]
|
|
62
|
+
),
|
|
63
|
+
'--tw-ring-offset-shadow': `var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)`,
|
|
64
|
+
'--tw-ring-shadow': `var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)`,
|
|
65
|
+
'box-shadow': `var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)`,
|
|
66
|
+
'border-color': theme('colors.blue.600', colors.blue[600]),
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
['::-webkit-datetime-edit']: {
|
|
70
|
+
display: 'inline-flex',
|
|
71
|
+
},
|
|
72
|
+
[[
|
|
73
|
+
'::-webkit-datetime-edit',
|
|
74
|
+
'::-webkit-datetime-edit-year-field',
|
|
75
|
+
'::-webkit-datetime-edit-month-field',
|
|
76
|
+
'::-webkit-datetime-edit-day-field',
|
|
77
|
+
'::-webkit-datetime-edit-hour-field',
|
|
78
|
+
'::-webkit-datetime-edit-minute-field',
|
|
79
|
+
'::-webkit-datetime-edit-second-field',
|
|
80
|
+
'::-webkit-datetime-edit-millisecond-field',
|
|
81
|
+
'::-webkit-datetime-edit-meridiem-field',
|
|
82
|
+
]]: {
|
|
83
|
+
'padding-bottom': '0',
|
|
84
|
+
'padding-top': '0',
|
|
85
|
+
},
|
|
86
|
+
['::-webkit-date-and-time-value']: {
|
|
87
|
+
'min-height': '1.5em',
|
|
88
|
+
'text-align': 'inherit',
|
|
89
|
+
},
|
|
90
|
+
['select']: {
|
|
91
|
+
'background-image': `url("${svgToTinyDataUri(
|
|
92
|
+
`<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 10 6">
|
|
93
|
+
<path stroke="${theme('colors.gray.500', colors.gray[500])}" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 1 4 4 4-4"/>
|
|
94
|
+
</svg>`
|
|
95
|
+
)}")`,
|
|
96
|
+
'background-position': `right ${spacing[3]} center`,
|
|
97
|
+
'background-repeat': `no-repeat`,
|
|
98
|
+
'background-size': `0.75em 0.75em`,
|
|
99
|
+
'padding-inline-end': spacing[8],
|
|
100
|
+
'print-color-adjust': `exact`,
|
|
101
|
+
},
|
|
102
|
+
[':is(:where([dir=rtl]) select)']: {
|
|
103
|
+
'background-position': `left ${spacing[3]} center`,
|
|
104
|
+
},
|
|
105
|
+
['[multiple]']: {
|
|
106
|
+
'background-image': 'initial',
|
|
107
|
+
'background-position': 'initial',
|
|
108
|
+
'background-repeat': 'unset',
|
|
109
|
+
'background-size': 'initial',
|
|
110
|
+
'padding-inline-end': spacing[3],
|
|
111
|
+
'print-color-adjust': 'unset',
|
|
112
|
+
},
|
|
113
|
+
[[`[type='checkbox']`, `[type='radio']`]]: {
|
|
114
|
+
appearance: 'none',
|
|
115
|
+
'background-origin': 'border-box',
|
|
116
|
+
color: theme('colors.blue.600', colors.blue[600]),
|
|
117
|
+
display: 'inline-block',
|
|
118
|
+
'flex-shrink': '0',
|
|
119
|
+
'print-color-adjust': 'exact',
|
|
120
|
+
'user-select': 'none',
|
|
121
|
+
'vertical-align': 'middle',
|
|
122
|
+
'--tw-shadow': '0 0 #0000',
|
|
123
|
+
},
|
|
124
|
+
[[`[type='checkbox']:focus`, `[type='radio']:focus`]]: {
|
|
125
|
+
outline: '2px solid transparent',
|
|
126
|
+
'outline-offset': '2px',
|
|
127
|
+
'--tw-ring-inset': 'var(--tw-empty,/*!*/ /*!*/)',
|
|
128
|
+
'--tw-ring-offset-width': '2px',
|
|
129
|
+
'--tw-ring-offset-color': '#fff',
|
|
130
|
+
'--tw-ring-color': theme('colors.blue.600', colors.blue[600]),
|
|
131
|
+
'--tw-ring-offset-shadow': `var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)`,
|
|
132
|
+
'--tw-ring-shadow': `var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)`,
|
|
133
|
+
'box-shadow': `var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)`,
|
|
134
|
+
},
|
|
135
|
+
[[
|
|
136
|
+
`[type='checkbox']:checked`,
|
|
137
|
+
`[type='checkbox']:indeterminate`,
|
|
138
|
+
`[type='radio']:checked`,
|
|
139
|
+
]]: {
|
|
140
|
+
'background-color': `currentColor`,
|
|
141
|
+
'background-position': `center`,
|
|
142
|
+
'background-repeat': `no-repeat`,
|
|
143
|
+
'background-size': `100% 100%`,
|
|
144
|
+
'border-color': `transparent`,
|
|
145
|
+
},
|
|
146
|
+
[`[type='checkbox']:checked`]: {
|
|
147
|
+
'background-image': `url("${svgToTinyDataUri(
|
|
148
|
+
`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
149
|
+
<path d="M4 8 L7 11 L12 5" stroke="white" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" />
|
|
150
|
+
</svg>`
|
|
151
|
+
)}")`,
|
|
152
|
+
'print-color-adjust': `exact`,
|
|
153
|
+
},
|
|
154
|
+
[`[type='radio']:checked`]: {
|
|
155
|
+
'background-image': `url("${svgToTinyDataUri(
|
|
156
|
+
`<svg viewBox="0 0 16 16" fill="white" xmlns="http://www.w3.org/2000/svg"><circle cx="8" cy="8" r="3"/></svg>`
|
|
157
|
+
)}")`,
|
|
158
|
+
},
|
|
159
|
+
[`[type='checkbox']:indeterminate`]: {
|
|
160
|
+
'background-image': `url("${svgToTinyDataUri(
|
|
161
|
+
`<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
162
|
+
<path d="M4 8 L12 8" stroke="white" stroke-linecap="round" stroke-width="2.5" />
|
|
163
|
+
</svg>`
|
|
164
|
+
)}")`,
|
|
165
|
+
'print-color-adjust': `exact`,
|
|
166
|
+
},
|
|
167
|
+
[`[type='file']`]: {
|
|
168
|
+
cursor: 'pointer',
|
|
169
|
+
},
|
|
170
|
+
[`[type=file]::file-selector-button`]: {
|
|
171
|
+
'background-color': theme('colors.gray.100', colors.gray[100]),
|
|
172
|
+
'border': `${borderWidth['DEFAULT']} solid ${theme('colors.gray.200', colors.gray[200])}`,
|
|
173
|
+
'border-radius': borderRadius['DEFAULT'],
|
|
174
|
+
cursor: 'pointer',
|
|
175
|
+
'padding': `${spacing[2]} ${spacing[3]}`,
|
|
176
|
+
'&:hover': {
|
|
177
|
+
'background-color': theme('colors.gray.200', colors.gray[200]),
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
[`.dark [type=file]::file-selector-button`]: {
|
|
181
|
+
'@apply bg-white/5 border-white/5 text-white hover:bg-white/10': {}
|
|
182
|
+
},
|
|
183
|
+
'[type=checkbox]': {
|
|
184
|
+
'@apply w-4 h-4 bg-gray-100 border border-gray-300 rounded focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-white/5 dark:border-white/10': {}
|
|
185
|
+
},
|
|
186
|
+
'[type=radio]': {
|
|
187
|
+
'@apply w-4 h-4 bg-gray-100 border border-gray-300 rounded-full focus:ring-2 focus:ring-blue-300 dark:focus:ring-blue-600 dark:focus:bg-blue-600 dark:bg-white/5 dark:border-white/10': {}
|
|
188
|
+
},
|
|
189
|
+
[['[type=datetime-local]', '[type=month]', '[type=week]', '[type=search]', '[type=date]', '[type=email]', '[type=number]', '[type=password]', '[type=tel]', '[type=text]', '[type=time]', '[type=url]', 'select', 'textarea']]: {
|
|
190
|
+
'@apply bg-gray-50 border border-gray-300 text-gray-900 placeholder:text-gray-400 rounded-md focus:ring-blue-500 focus:border-blue-500 w-full dark:bg-white/5 dark:border-white/10 dark:text-white dark:placeholder:text-gray-500 dark:focus:ring-blue-500 dark:focus:border-blue-500': {}
|
|
191
|
+
},
|
|
192
|
+
'a': {
|
|
193
|
+
'@apply text-blue-600 dark:text-blue-500 underline underline-offset-[.2rem]': {}
|
|
194
|
+
},
|
|
195
|
+
});
|
|
196
|
+
addComponents({
|
|
197
|
+
'.action-item-button': {
|
|
198
|
+
'@apply py-2 px-3 text-sm font-medium no-underline text-gray-900 focus:outline-none bg-white rounded-md border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-700 dark:bg-gray-800 dark:text-gray-400 dark:border-gray-700 dark:hover:text-white dark:hover:bg-gray-700': {}
|
|
199
|
+
},
|
|
200
|
+
'.index-data-table-toolbar': {
|
|
201
|
+
'@apply flex flex-col lg:flex-row gap-4 mb-4': {}
|
|
202
|
+
},
|
|
203
|
+
'.scopes': {
|
|
204
|
+
'@apply flex flex-wrap gap-1.5': {}
|
|
205
|
+
},
|
|
206
|
+
'.index-button-group': {
|
|
207
|
+
'@apply inline-flex flex-wrap items-stretch rounded-md': {}
|
|
208
|
+
},
|
|
209
|
+
// Prevent double borders when buttons are next to each other
|
|
210
|
+
'.index-button-group > :where(*:not(:first-child))': {
|
|
211
|
+
'@apply -ms-px my-0': {}
|
|
212
|
+
},
|
|
213
|
+
'.index-button': {
|
|
214
|
+
'@apply inline-flex items-center justify-center px-3 py-2 text-sm font-medium no-underline text-gray-900 bg-white border border-gray-200 hover:bg-gray-100 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 first:rounded-s-md last:rounded-e-md dark:bg-gray-900 dark:border-gray-700 dark:text-gray-100 dark:hover:text-gray-200 dark:hover:bg-gray-800 dark:focus:ring-blue-500 dark:focus:text-white': {}
|
|
215
|
+
},
|
|
216
|
+
'.index-button-selected': {
|
|
217
|
+
'@apply bg-gray-100 hover:bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-800': {}
|
|
218
|
+
},
|
|
219
|
+
'.scopes-count': {
|
|
220
|
+
'@apply inline-flex items-center justify-center rounded-full bg-indigo-100 text-indigo-700 dark:bg-indigo-800/60 dark:text-indigo-400 px-1.5 py-1 text-xs font-normal ms-2 leading-none': {}
|
|
221
|
+
},
|
|
222
|
+
'.paginated-collection': {
|
|
223
|
+
'@apply border border-gray-200 dark:border-gray-800 rounded-md shadow-sm overflow-hidden': {}
|
|
224
|
+
},
|
|
225
|
+
'.paginated-collection-contents': {
|
|
226
|
+
'@apply overflow-x-auto': {}
|
|
227
|
+
},
|
|
228
|
+
'.paginated-collection-pagination': {
|
|
229
|
+
'@apply p-2 lg:p-3 flex flex-col-reverse lg:flex-row gap-4 items-center justify-between border-t border-gray-200 dark:border-gray-800': {}
|
|
230
|
+
},
|
|
231
|
+
'.paginated-collection-footer': {
|
|
232
|
+
'@apply p-3 flex gap-2 items-center justify-between text-sm border-t border-gray-200 dark:border-gray-800': {}
|
|
233
|
+
},
|
|
234
|
+
'.pagination-per-page': {
|
|
235
|
+
'@apply text-sm py-1 pe-7 w-auto w-min': {}
|
|
236
|
+
},
|
|
237
|
+
'.index-as-table': {
|
|
238
|
+
'@apply relative overflow-x-auto': {}
|
|
239
|
+
},
|
|
240
|
+
'.data-table': {
|
|
241
|
+
'@apply w-full text-sm text-gray-800 dark:text-gray-300': {}
|
|
242
|
+
},
|
|
243
|
+
'.data-table :where(thead > tr > th)': {
|
|
244
|
+
'@apply px-3 py-3.5 whitespace-nowrap font-semibold text-start text-xs uppercase border-b text-gray-700 bg-gray-50 dark:bg-gray-950/50 dark:border-gray-800 dark:text-white': {}
|
|
245
|
+
},
|
|
246
|
+
'.data-table :where(thead > tr > th > a)': {
|
|
247
|
+
'@apply text-inherit no-underline inline-flex items-center gap-2': {}
|
|
248
|
+
},
|
|
249
|
+
'.data-table-sorted-icon': {
|
|
250
|
+
'@apply invisible w-[8px] h-[5px]': {}
|
|
251
|
+
},
|
|
252
|
+
':where(th[data-sort-direction]) .data-table-sorted-icon': {
|
|
253
|
+
'@apply visible': {}
|
|
254
|
+
},
|
|
255
|
+
':where(th[data-sort-direction="asc"]) .data-table-sorted-icon': {
|
|
256
|
+
'@apply rotate-180': {}
|
|
257
|
+
},
|
|
258
|
+
'.data-table :where(tbody > tr)': {
|
|
259
|
+
'@apply border-b dark:border-gray-800 last:border-b-0': {}
|
|
260
|
+
},
|
|
261
|
+
'.data-table :where(td)': {
|
|
262
|
+
'@apply px-3 py-4': {}
|
|
263
|
+
},
|
|
264
|
+
'.data-table-resource-actions': {
|
|
265
|
+
'@apply flex gap-2': {}
|
|
266
|
+
},
|
|
267
|
+
'.filters-form': {
|
|
268
|
+
'@apply text-sm mb-6': {}
|
|
269
|
+
},
|
|
270
|
+
'.filters-form-title': {
|
|
271
|
+
'@apply text-gray-700 dark:text-gray-200 font-bold text-lg mb-4': {}
|
|
272
|
+
},
|
|
273
|
+
'.filters-form :where(.label)': {
|
|
274
|
+
'@apply block mb-1.5 text-sm': {}
|
|
275
|
+
},
|
|
276
|
+
'.filters-form-input-group': {
|
|
277
|
+
'@apply grid grid-cols-2 gap-2': {}
|
|
278
|
+
},
|
|
279
|
+
'.filters-form-field': {
|
|
280
|
+
'@apply mb-4': {}
|
|
281
|
+
},
|
|
282
|
+
'.filters-form-field :where(.choices > label)': {
|
|
283
|
+
'@apply flex gap-2 items-center mb-1': {}
|
|
284
|
+
},
|
|
285
|
+
'.filters-form-buttons': {
|
|
286
|
+
'@apply flex gap-2 items-center': {}
|
|
287
|
+
},
|
|
288
|
+
'.filters-form-submit': {
|
|
289
|
+
'@apply min-w-[6rem] font-bold text-white bg-blue-600 hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 rounded-md px-3 py-2 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800 cursor-pointer': {}
|
|
290
|
+
},
|
|
291
|
+
'.filters-form-clear': {
|
|
292
|
+
'@apply rounded-md px-3 py-2 font-semibold text-gray-700 hover:bg-gray-100 no-underline dark:text-gray-400 dark:hover:bg-inherit dark:hover:text-gray-100 dark:focus:ring-blue-800': {}
|
|
293
|
+
},
|
|
294
|
+
'.active-filters-title': {
|
|
295
|
+
'@apply text-gray-700 dark:text-gray-200 font-bold text-lg mb-4': {}
|
|
296
|
+
},
|
|
297
|
+
'.active-filters-list': {
|
|
298
|
+
'@apply ps-5 list-disc space-y-1 text-gray-700 dark:text-gray-200': {}
|
|
299
|
+
},
|
|
300
|
+
'.batch-actions-dropdown': {
|
|
301
|
+
'@apply relative': {}
|
|
302
|
+
},
|
|
303
|
+
'.batch-actions-dropdown-toggle': {
|
|
304
|
+
'@apply transition-opacity rounded-md inline-flex items-center justify-center gap-2 px-3 py-2 text-sm font-medium text-gray-900 bg-white border border-gray-200 hover:bg-gray-100 hover:text-blue-700 focus:z-10 focus:ring-2 focus:ring-blue-700 focus:text-blue-700 dark:bg-gray-800 dark:border-gray-700 dark:text-white dark:hover:text-white dark:hover:bg-gray-700 dark:focus:ring-blue-500 dark:focus:text-white disabled:text-gray-400 disabled:border-gray-200/70 dark:disabled:bg-gray-900 dark:disabled:text-gray-700 dark:disabled:border-gray-800 disabled:pointer-events-none': {}
|
|
305
|
+
},
|
|
306
|
+
'.batch-actions-dropdown-arrow': {
|
|
307
|
+
'@apply w-2.5 h-2.5': {}
|
|
308
|
+
},
|
|
309
|
+
'.batch-actions-dropdown-menu': {
|
|
310
|
+
'@apply z-10 hidden min-w-[7rem] bg-white rounded-md shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none dark:bg-gray-800 py-1 text-sm text-gray-700 dark:text-gray-200': {}
|
|
311
|
+
},
|
|
312
|
+
'.batch-actions-dropdown-menu :where(li > a)': {
|
|
313
|
+
'@apply block px-2.5 py-2 no-underline text-gray-700 hover:bg-gray-100 hover:text-gray-900 dark:text-white dark:hover:bg-gray-700 dark:hover:text-white': {}
|
|
314
|
+
},
|
|
315
|
+
'.panel': {
|
|
316
|
+
'@apply mb-6 border border-gray-200 rounded-md shadow-sm dark:border-gray-800': {}
|
|
317
|
+
},
|
|
318
|
+
'.panel-title': {
|
|
319
|
+
'@apply font-bold bg-gray-100 dark:bg-gray-950/50 rounded-t-md p-3': {}
|
|
320
|
+
},
|
|
321
|
+
'.panel-body': {
|
|
322
|
+
'@apply py-5 px-3': {}
|
|
323
|
+
},
|
|
324
|
+
'.attributes-table': {
|
|
325
|
+
'@apply overflow-hidden mb-6 border border-gray-200 rounded-md shadow-sm dark:border-gray-800': {}
|
|
326
|
+
},
|
|
327
|
+
'.attributes-table > :where(table)': {
|
|
328
|
+
'@apply w-full text-sm text-gray-800 dark:text-gray-300': {}
|
|
329
|
+
},
|
|
330
|
+
'.attributes-table :where(tbody > tr)': {
|
|
331
|
+
'@apply border-b dark:border-gray-800 last:border-b-0 align-baseline': {}
|
|
332
|
+
},
|
|
333
|
+
'.attributes-table :where(tbody > tr > th)': {
|
|
334
|
+
'@apply w-32 sm:w-40 text-start text-xs text-gray-700 uppercase bg-gray-50 dark:bg-gray-950/50 dark:text-gray-300': {}
|
|
335
|
+
},
|
|
336
|
+
'.attributes-table :where(tbody > tr > th, tbody > tr > td)': {
|
|
337
|
+
'@apply p-3': {}
|
|
338
|
+
},
|
|
339
|
+
'.attributes-table-empty-value': {
|
|
340
|
+
'@apply text-gray-400/50 dark:text-gray-600/50 text-xs uppercase font-semibold': {}
|
|
341
|
+
},
|
|
342
|
+
'.status-tag': {
|
|
343
|
+
'@apply bg-gray-200 text-gray-600 dark:bg-gray-400/20 dark:text-gray-400 inline-flex items-center rounded-full text-sm font-medium px-2.5 py-0.5 whitespace-nowrap': {}
|
|
344
|
+
},
|
|
345
|
+
'.status-tag:where([data-status=yes])': {
|
|
346
|
+
'@apply bg-green-100 text-green-700 dark:bg-green-400/20 dark:text-green-400': {}
|
|
347
|
+
},
|
|
348
|
+
// Forms
|
|
349
|
+
'.formtastic': {
|
|
350
|
+
'@apply text-sm': {}
|
|
351
|
+
},
|
|
352
|
+
'.formtastic :where(.fieldset-title, .has-many-fields-title)': {
|
|
353
|
+
'@apply block w-full mb-3 border-b font-bold text-lg': {}
|
|
354
|
+
},
|
|
355
|
+
'.formtastic :where(.label)': {
|
|
356
|
+
'@apply block mb-1.5': {}
|
|
357
|
+
},
|
|
358
|
+
'.formtastic :where(.label abbr)': {
|
|
359
|
+
'@apply ms-1 no-underline': {}
|
|
360
|
+
},
|
|
361
|
+
'.formtastic :where(.input)': {
|
|
362
|
+
'@apply py-3': {}
|
|
363
|
+
},
|
|
364
|
+
'.formtastic :where(.choice)': {
|
|
365
|
+
'@apply mb-1': {}
|
|
366
|
+
},
|
|
367
|
+
'.formtastic :where(.boolean label, .choice label)': {
|
|
368
|
+
'@apply flex gap-2 items-center': {}
|
|
369
|
+
},
|
|
370
|
+
'.formtastic :where(.fragments-group)': {
|
|
371
|
+
'@apply inline-flex flex-wrap gap-1': {}
|
|
372
|
+
},
|
|
373
|
+
'.formtastic :where(.fragment label)': {
|
|
374
|
+
'@apply sr-only': {}
|
|
375
|
+
},
|
|
376
|
+
'.formtastic :where(.inline-hints)': {
|
|
377
|
+
'@apply text-gray-500 dark:text-gray-400 mt-2': {}
|
|
378
|
+
},
|
|
379
|
+
'.formtastic :where(.errors)': {
|
|
380
|
+
'@apply p-4 mb-6 rounded-md space-y-2 bg-red-50 text-red-800 dark:bg-red-500/15 dark:text-red-200': {}
|
|
381
|
+
},
|
|
382
|
+
'.formtastic :where(.errors > li)': {
|
|
383
|
+
'@apply list-disc ms-4': {}
|
|
384
|
+
},
|
|
385
|
+
'.formtastic :where(.inline-errors)': {
|
|
386
|
+
'@apply font-bold mt-2 text-red-600 dark:text-red-400': {}
|
|
387
|
+
},
|
|
388
|
+
'.formtastic :where(.error [type=email], .error [type=number], .error [type=password], .error [type=tel], .error [type=text], .error [type=url], .error select, .error textarea)': {
|
|
389
|
+
'@apply border-red-500/50': {}
|
|
390
|
+
},
|
|
391
|
+
'.formtastic :where(.buttons, .actions)': {
|
|
392
|
+
'@apply mt-3': {}
|
|
393
|
+
},
|
|
394
|
+
'.formtastic :where(.actions > ol)': {
|
|
395
|
+
'@apply flex items-center gap-6': {}
|
|
396
|
+
},
|
|
397
|
+
'.formtastic :where([type=submit], [type=button], button)': {
|
|
398
|
+
'@apply font-bold text-white bg-blue-600 hover:bg-blue-700 focus:ring-4 focus:outline-none focus:ring-blue-300 rounded-lg px-4 py-2 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800 cursor-pointer': {}
|
|
399
|
+
},
|
|
400
|
+
'.formtastic :where(.actions .cancel-link)': {
|
|
401
|
+
'@apply font-semibold leading-6 text-gray-900 dark:text-white no-underline': {}
|
|
402
|
+
},
|
|
403
|
+
'.formtastic :where(.has-many-add)': {
|
|
404
|
+
'@apply inline-block py-3': {}
|
|
405
|
+
},
|
|
406
|
+
'.formtastic :where(.has-many-container)': {
|
|
407
|
+
'@apply space-y-8': {}
|
|
408
|
+
},
|
|
409
|
+
'.formtastic :where(.has-many-fields)': {
|
|
410
|
+
'@apply ps-3 border-s-4 border-s-gray-200 dark:border-s-gray-700': {}
|
|
411
|
+
}
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
puts "Ciao"
|