Sha256: 0c98c1262250f7cd5855bc1a85e1f48a7953395f694fe81b58facb594e0afd87

Contents?: true

Size: 1.21 KB

Versions: 3

Compression:

Stored size: 1.21 KB

Contents

module Coco
  module App
    module Elements
      class ColorPicker < Coco::Component
        include Concerns::AcceptsOptions
        include Coco::AppHelper

        DEFAULT_SWATCHES = [
          {color: "#111827"},
          {color: "#FFFFFF"},
          {color: "#E78188"},
          {color: "#D50201"},
          {color: "#FC5C0E"},
          {color: "#FEC878"},
          {color: "#F5EEE6"},
          {color: "#C1DAA9"},
          {color: "#1A8871"},
          {color: "#91C7E1"},
          {color: "#0164FF"},
          {color: "#3A2D86"}
        ]

        accepts_option :size, from: [:sm, :md, nil], default: :sm

        before_render do
          content unless content_evaluated?

          if @swatches.empty?
            @swatches = DEFAULT_SWATCHES
          end

          args[:resize]&.each { set_tag_data_attr("size-#{_1}", _2) }
        end

        renders_many :swatches,
          ->(color, name = nil) do
            @swatches << {name: name, color: color}
          end

        attr_reader :selected

        def initialize(selected: "FFFFFF", **kwargs)
          @selected = selected
          @swatches = []
        end

        def color_swatches
          @swatches
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
coveragebook_components-0.5.2 app/components/coco/app/elements/color_picker/color_picker.rb
coveragebook_components-0.5.1 app/components/coco/app/elements/color_picker/color_picker.rb
coveragebook_components-0.5.0 app/components/coco/app/elements/color_picker/color_picker.rb