module Coco module App module Elements class Link < Coco::Link include Concerns::AcceptsOptions include Concerns::AcceptsTheme THEMES = %W[positive primary warning negative info neutral-dark neutral-light] << nil accepts_option :theme, from: THEMES accepts_option :underline, from: [true, false] before_initialize do |kwargs| if kwargs.key?(:modal) modal_name = (kwargs[:modal] == true) ? "default" : kwargs[:modal] kwargs[:data] = kwargs.fetch(:data, {}).merge(coco_modal_data_attributes(modal_name)) kwargs.delete(:modal) end if kwargs.key?(:frame) turbo_data = {turbo: true, turbo_frame: kwargs[:frame]} kwargs[:data] = kwargs.fetch(:data, {}).merge(turbo_data) kwargs.delete(:frame) end kwargs end class << self include Coco::SharedHelper end end end end end