Sha256: f4ad895fd79898895f4d9337ce373c62546e97d7bbdf1bcf5d3d324b08983210
Contents?: true
Size: 1.62 KB
Versions: 10
Compression:
Stored size: 1.62 KB
Contents
# frozen_string_literal: true module Primer # Use `ClipboardCopy` to copy element text content or input values to the clipboard. # # @accessibility # Always set an accessible label to help the user interact with the component. class ClipboardCopy < Primer::Component status :beta # @example Default # <%= render(Primer::ClipboardCopy.new(value: "Text to copy", "aria-label": "Copy text to the system clipboard")) %> # # @example With text instead of icons # <%= render(Primer::ClipboardCopy.new(value: "Text to copy", "aria-label": "Copy text to the system clipboard")) do %> # Click to copy! # <% end %> # # @example Copying from an element # <%= render(Primer::ClipboardCopy.new(for: "blob-path", "aria-label": "Copy text to the system clipboard")) %> # <div id="blob-path">src/index.js</div> # # @param aria-label [String] String that will be read to screenreaders when the component is focused # @param value [String] Text to copy into the users clipboard when they click the component. # @param for [String] Element id from where to get the copied value. # @param system_arguments [Hash] <%= link_to_system_arguments_docs %> def initialize(value: nil, **system_arguments) @system_arguments = system_arguments @value = value validate! @system_arguments[:tag] = "clipboard-copy" @system_arguments[:value] = value if value.present? end private def validate! validate_aria_label raise ArgumentError, "Must provide either `value` or `for`" if @value.nil? && @system_arguments[:for].nil? end end end
Version data entries
10 entries across 10 versions & 1 rubygems