app/components/maglev/uikit/badge_component.rb
# frozen_string_literal: true module Maglev module Uikit class BadgeComponent < Maglev::Uikit::BaseComponent erb_template <<~ERB <span class="<%= badge_classes(color: color) %>" data-controller="disappearance" data-disappearance-after-value="<%= disappear_after %>">#{' '} <% if icon_name.present? %> <%= render Maglev::Uikit::IconComponent.new(name: icon_name, size: '0.85rem', class_names: 'shrink-0') %> <% end %> <span class="truncate"> <%= content %>#{' '} </span> </span> ERB attr_reader :color, :icon_name, :disappear_after, :class_names def initialize(color:, icon_name: nil, disappear_after: nil, class_names: nil) @color = color @icon_name = icon_name @disappear_after = disappear_after.to_f @class_names = class_names end def badge_classes(**args) class_variants( base: 'inline-flex items-center rounded-full px-1.5 py-0.5 text-xs font-medium gap-1', variants: { color: { green: 'bg-green-100 text-green-700', red: 'bg-red-100 text-red-700', gray: 'bg-gray-100 text-gray-700' } } ).render(**args, class: class_names) end end end end
Source Files
- app/components/maglev/base_component.rb
- app/components/maglev/block_component.rb
- app/components/maglev/content/base.rb
- app/components/maglev/content/builder.rb
- app/components/maglev/content/checkbox.rb
- app/components/maglev/content/collection_item.rb
- app/components/maglev/content/color.rb
- app/components/maglev/content/icon.rb
- app/components/maglev/content/image.rb
- app/components/maglev/content/link.rb
- app/components/maglev/content/select.rb
- app/components/maglev/content/text.rb
- app/components/maglev/content/void.rb
- app/components/maglev/editor/setting_registry.rb
- app/components/maglev/editor/settings/base_component.rb
- app/components/maglev/editor/settings/checkbox/checkbox_component.rb
- app/components/maglev/editor/settings/collection_item/collection_item_component.rb
- app/components/maglev/editor/settings/color/color_component.rb
- app/components/maglev/editor/settings/divider/divider_component.rb
- app/components/maglev/editor/settings/hint/hint_component.rb
- app/components/maglev/editor/settings/icon/icon_component.rb
- app/components/maglev/editor/settings/image/image_component.rb
- app/components/maglev/editor/settings/link/link_component.rb
- app/components/maglev/editor/settings/select/select_component.rb
- app/components/maglev/editor/settings/text/richtext_component.rb
- app/components/maglev/editor/settings/text/text_component.rb
- app/components/maglev/editor/settings/text/textarea_component.rb
- app/components/maglev/editor/settings_group_component.rb
- app/components/maglev/inspector.rb
- app/components/maglev/page_component.rb
- app/components/maglev/section_component.rb
- app/components/maglev/tag_helper.rb
- app/components/maglev/uikit/app_layout/layout_component.rb
- app/components/maglev/uikit/app_layout/sidebar/link_component.rb
- app/components/maglev/uikit/app_layout/sidebar_component.rb
- app/components/maglev/uikit/app_layout/topbar/logo_component.rb
- app/components/maglev/uikit/app_layout/topbar/page_info_component.rb
- app/components/maglev/uikit/app_layout/topbar_component.rb
- app/components/maglev/uikit/badge_component.rb
- app/components/maglev/uikit/base_component.rb
- app/components/maglev/uikit/breadcrumbs/breadcrumbs_component.rb
- app/components/maglev/uikit/breadcrumbs/link_component.rb
- app/components/maglev/uikit/button_group_component.rb
- app/components/maglev/uikit/collapsible/collapsible_component.rb
- app/components/maglev/uikit/collapsible/item_component.rb
- app/components/maglev/uikit/device_toggler_component.rb
- app/components/maglev/uikit/dropdown_component.rb
- app/components/maglev/uikit/form/checkbox_component.rb
- app/components/maglev/uikit/form/color_field_component.rb
- app/components/maglev/uikit/form/combobox/list_component.rb
- app/components/maglev/uikit/form/combobox/option_component.rb
- app/components/maglev/uikit/form/combobox_component.rb
- app/components/maglev/uikit/form/icon_field_component.rb
- app/components/maglev/uikit/form/image_field_component.rb
- app/components/maglev/uikit/form/link/base_component.rb
- app/components/maglev/uikit/form/link/email_link_component.rb
- app/components/maglev/uikit/form/link/page_link_component.rb
- app/components/maglev/uikit/form/link/static_page_link_component.rb
- app/components/maglev/uikit/form/link/url_link_component.rb
- app/components/maglev/uikit/form/link_component.rb
- app/components/maglev/uikit/form/richtext/block_button_component.rb
- app/components/maglev/uikit/form/richtext/button_component.rb
- app/components/maglev/uikit/form/richtext/button_group_component.rb
- app/components/maglev/uikit/form/richtext/toolbar_component.rb
- app/components/maglev/uikit/form/richtext_component.rb
- app/components/maglev/uikit/form/search_form_component.rb
- app/components/maglev/uikit/form/select_component.rb
- app/components/maglev/uikit/form/text_field_component.rb
- app/components/maglev/uikit/form/textarea_component.rb
- app/components/maglev/uikit/icon_button_component.rb
- app/components/maglev/uikit/icon_component.rb
- app/components/maglev/uikit/image_library/card_component.rb
- app/components/maglev/uikit/image_library/list_component.rb
- app/components/maglev/uikit/image_library/uploader_component.rb
- app/components/maglev/uikit/list/insert_button_component.rb
- app/components/maglev/uikit/list/list_component.rb
- app/components/maglev/uikit/list/list_item_component.rb
- app/components/maglev/uikit/locale_switcher_component.rb
- app/components/maglev/uikit/menu_dropdown_component.rb
- app/components/maglev/uikit/modal_component.rb
- app/components/maglev/uikit/page_actions_dropdown_component.rb
- app/components/maglev/uikit/page_layout_component.rb
- app/components/maglev/uikit/pagination_component.rb
- app/components/maglev/uikit/section_toolbar/bottom_component.rb
- app/components/maglev/uikit/section_toolbar/section_toolbar_component.rb
- app/components/maglev/uikit/section_toolbar/top_left_corner_component.rb
- app/components/maglev/uikit/section_toolbar/top_right_corner_component.rb
- app/components/maglev/uikit/tabs_component.rb
- app/components/maglev/uikit/well/simple_well_component.rb
- app/controllers/concerns/maglev/authentication_concern.rb
- app/controllers/concerns/maglev/back_action_concern.rb
- app/controllers/concerns/maglev/content_locale_concern.rb
- app/controllers/concerns/maglev/editor/errors_concern.rb
- app/controllers/concerns/maglev/editor/preview_urls_concern.rb
- app/controllers/concerns/maglev/editor/turbo_concern.rb
- app/controllers/concerns/maglev/errors_concern.rb
- app/controllers/concerns/maglev/fetchers_concern.rb
- app/controllers/concerns/maglev/flash_i18n_concern.rb
- app/controllers/concerns/maglev/json_concern.rb
- app/controllers/concerns/maglev/rendering_concern.rb
- app/controllers/concerns/maglev/resource_id_concern.rb
- app/controllers/concerns/maglev/services_concern.rb
- app/controllers/concerns/maglev/standalone_sections_concern.rb
- app/controllers/concerns/maglev/user_interface_locale_concern.rb
- app/controllers/maglev/application_controller.rb
- app/controllers/maglev/assets/active_storage_proxy_controller.rb
- app/controllers/maglev/assets/proxy_controller.rb
- app/controllers/maglev/editor/assets_controller.rb
- app/controllers/maglev/editor/base_controller.rb
- app/controllers/maglev/editor/combobox/collection_items_controller.rb
- app/controllers/maglev/editor/combobox/pages_controller.rb
- app/controllers/maglev/editor/home_controller.rb
- app/controllers/maglev/editor/icons_controller.rb
- app/controllers/maglev/editor/links_controller.rb
- app/controllers/maglev/editor/pages/clone_controller.rb
- app/controllers/maglev/editor/pages/discard_draft_controller.rb
- app/controllers/maglev/editor/pages_controller.rb
- app/controllers/maglev/editor/publication_controller.rb
- app/controllers/maglev/editor/section_blocks_controller.rb
- app/controllers/maglev/editor/sections_controller.rb
- app/controllers/maglev/editor/style_controller.rb
- app/controllers/maglev/page_preview_controller.rb
- app/controllers/maglev/published_page_preview_controller.rb
- app/controllers/maglev/site_controller.rb
- app/controllers/maglev/sitemap_controller.rb
- app/controllers/maglev/studio/section_preview_controller.rb
- app/helpers/maglev/admin/sections/previews_helper.rb
- app/helpers/maglev/admin/themes_helper.rb
- app/helpers/maglev/application_helper.rb
- app/helpers/maglev/editor/pages_helper.rb
- app/helpers/maglev/editor/section_blocks_helper.rb
- app/helpers/maglev/editor/settings_helper.rb
- app/helpers/maglev/page_preview_helper.rb
- app/helpers/maglev/sitemap_helper.rb
- app/helpers/maglev/studio/section_preview_helper.rb
- app/jobs/maglev/application_job.rb
- app/lib/maglev/form/form_builder.rb
- app/lib/maglev/form/inputs/check_box.rb
- app/lib/maglev/form/inputs/combobox.rb
- app/lib/maglev/form/inputs/image_field.rb
- app/lib/maglev/form/inputs/richtext.rb
- app/lib/maglev/form/inputs/select.rb
- app/lib/maglev/form/inputs/text_field.rb
- app/lib/maglev/form/inputs/textarea.rb
- app/lib/maglev/turbo/streams/tag_builder.rb
- app/mailers/maglev/application_mailer.rb
- app/models/concerns/maglev/content/enhanced_value_concern.rb
- app/models/concerns/maglev/sections_concern.rb
- app/models/concerns/maglev/translatable.rb
- app/models/maglev/application_record.rb
- app/models/maglev/asset.rb
- app/models/maglev/content/block_content.rb
- app/models/maglev/content/editor_link.rb
- app/models/maglev/content/section_content.rb
- app/models/maglev/content/setting_content.rb
- app/models/maglev/page.rb
- app/models/maglev/page/path_concern.rb
- app/models/maglev/page/publishable_concern.rb
- app/models/maglev/page/search_concern.rb
- app/models/maglev/page_path.rb
- app/models/maglev/section.rb
- app/models/maglev/section/block.rb
- app/models/maglev/section/content_concern.rb
- app/models/maglev/section/setting.rb
- app/models/maglev/sections_content_store.rb
- app/models/maglev/setting_types/base.rb
- app/models/maglev/setting_types/checkbox.rb
- app/models/maglev/setting_types/collection_item.rb
- app/models/maglev/setting_types/color.rb
- app/models/maglev/setting_types/divider.rb
- app/models/maglev/setting_types/hint.rb
- app/models/maglev/setting_types/icon.rb
- app/models/maglev/setting_types/image.rb
- app/models/maglev/setting_types/link.rb
- app/models/maglev/setting_types/select.rb
- app/models/maglev/setting_types/text.rb
- app/models/maglev/site.rb
- app/models/maglev/site/locale.rb
- app/models/maglev/site/locales_concern.rb
- app/models/maglev/site/style_value.rb
- app/models/maglev/static_page.rb
- app/models/maglev/theme.rb
- app/models/maglev/theme/section_category.rb
- app/models/maglev/theme/style_setting.rb
- app/services/concerns/maglev/content/helpers_concern.rb
- app/services/concerns/maglev/get_page_sections/transform_collection_item_concern.rb
- app/services/concerns/maglev/get_page_sections/transform_link_concern.rb
- app/services/concerns/maglev/get_page_sections/transform_section_concern.rb
- app/services/concerns/maglev/get_page_sections/transform_text_concern.rb
- app/services/maglev/add_site_locale.rb
- app/services/maglev/app_container.rb
- app/services/maglev/change_site_locales.rb
- app/services/maglev/clone_page.rb
- app/services/maglev/content/add_section_block_service.rb
- app/services/maglev/content/add_section_service.rb
- app/services/maglev/content/delete_section_block_service.rb
- app/services/maglev/content/delete_section_service.rb
- app/services/maglev/content/sort_section_blocks_service.rb
- app/services/maglev/content/sort_sections_service.rb
- app/services/maglev/content/update_section_block_service.rb
- app/services/maglev/content/update_section_service.rb
- app/services/maglev/create_page_service.rb
- app/services/maglev/discard_page_draft_service.rb
- app/services/maglev/extract_locale.rb
- app/services/maglev/fetch_collection_items.rb
- app/services/maglev/fetch_page.rb
- app/services/maglev/fetch_section_screenshot_path.rb
- app/services/maglev/fetch_section_screenshot_url.rb
- app/services/maglev/fetch_sections_path.rb
- app/services/maglev/fetch_site.rb
- app/services/maglev/fetch_static_pages.rb
- app/services/maglev/fetch_style.rb
- app/services/maglev/fetch_theme.rb
- app/services/maglev/fetch_theme_layout.rb
- app/services/maglev/generate_site.rb
- app/services/maglev/get_base_url.rb
- app/services/maglev/get_page_fullpath.rb
- app/services/maglev/get_page_section_names.rb
- app/services/maglev/get_page_sections.rb
- app/services/maglev/get_published_page_sections_service.rb
- app/services/maglev/has_unpublished_changes.rb
- app/services/maglev/persist_section_screenshot.rb
- app/services/maglev/persist_style_service.rb
- app/services/maglev/publish_service.rb
- app/services/maglev/remove_section_type.rb
- app/services/maglev/rename_section_type.rb
- app/services/maglev/reset_section_content.rb
- app/services/maglev/search_pages.rb
- app/services/maglev/setup_pages.rb
- app/types/maglev/locales_type.rb
- app/validators/maglev/collection_validator.rb
- app/validators/maglev/presence_validator.rb
- lib/commands/maglev/change_site_locales_command.rb
- lib/commands/maglev/create_site_command.rb
- lib/commands/maglev/publish_site_command.rb
- lib/commands/maglev/sections/remove_command.rb
- lib/commands/maglev/sections/rename_command.rb
- lib/commands/maglev/sections/reset_command.rb
- lib/generators/maglev/install_generator.rb
- lib/generators/maglev/section_generator.rb
- lib/generators/maglev/templates/install/config/initializers/maglev.rb
- lib/generators/maglev/theme_generator.rb
- lib/maglev.rb
- lib/maglev/active_storage.rb
- lib/maglev/active_storage/serving_blob.rb
- lib/maglev/config.rb
- lib/maglev/engine.rb
- lib/maglev/errors.rb
- lib/maglev/i18n.rb
- lib/maglev/migration.rb
- lib/maglev/preview_constraint.rb
- lib/maglev/reserved_paths.rb
- lib/maglev/theme_filesystem_loader.rb
- lib/maglev/version.rb
- lib/maglevcms.rb