primer_view_components 0.0.7 → 0.0.8
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 +18 -0
- data/README.md +4 -0
- data/app/components/primer/base_component.rb +1 -3
- data/app/components/primer/blankslate_component.html.erb +8 -2
- data/app/components/primer/blankslate_component.rb +5 -8
- data/app/components/primer/flash_component.html.erb +14 -0
- data/app/components/primer/flash_component.rb +43 -0
- data/app/components/primer/octicon_component.rb +27 -0
- data/app/components/primer/view_components.rb +2 -0
- data/lib/primer/classify.rb +4 -0
- data/lib/primer/view_components/version.rb +1 -1
- metadata +9 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 25626f31190d4622e822db5eb8f435f103c0a77668cb78c1db16eec60ac4dfb9
         | 
| 4 | 
            +
              data.tar.gz: e551785879e69a0bd7c2ae62a97a39f311dc3dbc415bc5dade637d97fa297910
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6a77219748e0c7018f789df844cd6f6e83159b2fef82a5b81985c277d0427d85442e4e14c6f9934e387afc3f1d2291f31a3d88c9630c8f4910bae992d39a0188
         | 
| 7 | 
            +
              data.tar.gz: 15b0b2a9faa1603f57d263a2a6b18f2eb4e1aa325d8c261bfce9f803571ae9a5075b1d51f8a5f3bf31bc7f12662dbe914f7380f71518fe6896b947f2d000757b
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,3 +1,21 @@ | |
| 1 | 
            +
            # main
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            # 0.0.8
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            * Add support for border margins, such as: `border_top: 0`.
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                *Natasha Umer*
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            * Add FlashComponent and OcticonComponent.
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                *Joel Hawksley*
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            ## Breaking changes
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            * BlankslateComponent accepts `icon_size` instead of `icon_height`.
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                *Joel Hawksley*
         | 
| 18 | 
            +
             | 
| 1 19 | 
             
            # 0.0.7
         | 
| 2 20 |  | 
| 3 21 | 
             
            * Use `octicons_helper` v11.0.0.
         | 
    
        data/README.md
    CHANGED
    
    | @@ -77,6 +77,10 @@ Some components have their own specific arguments, but they can all be styled wi | |
| 77 77 | 
             
            | `font_weight`     | `text-<value>` | `font_weight: :bold` → `.text-bold` |
         | 
| 78 78 | 
             
            | `border`     | `border-<value>` | `border: :bottom` → `.border-bottom` |
         | 
| 79 79 | 
             
            | `border_color`     | `border-<value>` | `border: :green` → `.border-green` |
         | 
| 80 | 
            +
            | `border_top`     | `border-top-<value>` | `border_top: 0` → `.border-top-0` |
         | 
| 81 | 
            +
            | `border_bottom`     | `border-bottom-<value>` | `border_bottom: 0` → `.border-bottom-0` |
         | 
| 82 | 
            +
            | `border_left`     | `border-left-<value>` | `border_left: 0` → `.border-left-0` |
         | 
| 83 | 
            +
            | `border_right`     | `border-right-<value>` | `border_right: 0` → `.border-right-0` |
         | 
| 80 84 | 
             
            | `word_break`     | `wb-<value>` | `word_break: :break_all` → `.wb-break-all` |
         | 
| 81 85 | 
             
            | `direction`     | `flex-<value>` | `direction: :row` → `.flex-row` |
         | 
| 82 86 | 
             
            | `justify_content`    | `flex-justify-<value>` | `justify_content: :center` → `.flex-justify-center` |
         | 
| @@ -1,13 +1,19 @@ | |
| 1 1 | 
             
            <%= render Primer::BaseComponent.new(**@kwargs) do %>
         | 
| 2 2 | 
             
              <% if @icon.present? %>
         | 
| 3 | 
            -
                <%=  | 
| 3 | 
            +
                <%= render(Primer::OcticonComponent.new(
         | 
| 4 | 
            +
                  icon: @icon,
         | 
| 5 | 
            +
                  size: @icon_size,
         | 
| 6 | 
            +
                  class: "blankslate-icon"
         | 
| 7 | 
            +
                )) %>
         | 
| 4 8 | 
             
              <% end %>
         | 
| 5 9 |  | 
| 6 10 | 
             
              <% if @image_src.present? && @image_alt.present? %>
         | 
| 7 11 | 
             
                <%= image_tag "#{@image_src}", class: "mb-3", size: "56x56", alt: "#{@image_alt}" %>
         | 
| 8 12 | 
             
              <% end %>
         | 
| 9 13 |  | 
| 10 | 
            -
               | 
| 14 | 
            +
              <% if @title.present? %>
         | 
| 15 | 
            +
                <%= render Primer::BaseComponent.new(tag: @title_tag, mb: 1) do %><%= @title %><% end %>
         | 
| 16 | 
            +
              <% end %>
         | 
| 11 17 |  | 
| 12 18 | 
             
              <% if @description.present? %>
         | 
| 13 19 | 
             
                <p><%= @description %></p>
         | 
| @@ -7,7 +7,7 @@ module Primer | |
| 7 7 | 
             
              #
         | 
| 8 8 | 
             
              # The `Primer::BlankslateComponent` supports the following arguments to add a basic blankslate:
         | 
| 9 9 | 
             
              #
         | 
| 10 | 
            -
              # 1. `title` (`String`  | 
| 10 | 
            +
              # 1. `title` (`String` optional). Text that appears in a larger bold font.
         | 
| 11 11 | 
             
              # 2. `description` (`String` optional). Text that appears below the title. Typically a whole sentence.
         | 
| 12 12 | 
             
              #
         | 
| 13 13 | 
             
              # ```ruby
         | 
| @@ -114,13 +114,10 @@ module Primer | |
| 114 114 | 
             
              # ```
         | 
| 115 115 | 
             
              class BlankslateComponent < Primer::Component
         | 
| 116 116 | 
             
                def initialize(
         | 
| 117 | 
            -
                   | 
| 118 | 
            -
                  title:,
         | 
| 119 | 
            -
             | 
| 120 | 
            -
                  # optional
         | 
| 117 | 
            +
                  title: "",
         | 
| 121 118 | 
             
                  title_tag: :h3,
         | 
| 122 119 | 
             
                  icon: "",
         | 
| 123 | 
            -
                   | 
| 120 | 
            +
                  icon_size: :medium,
         | 
| 124 121 | 
             
                  image_src: "",
         | 
| 125 122 | 
             
                  image_alt: " ",
         | 
| 126 123 | 
             
                  description: "",
         | 
| @@ -138,7 +135,7 @@ module Primer | |
| 138 135 | 
             
                  **kwargs
         | 
| 139 136 | 
             
                )
         | 
| 140 137 | 
             
                  @kwargs = kwargs
         | 
| 141 | 
            -
                  @kwargs[:tag]  | 
| 138 | 
            +
                  @kwargs[:tag] ||= :div
         | 
| 142 139 | 
             
                  @kwargs[:classes] = class_names(
         | 
| 143 140 | 
             
                    @kwargs[:classes],
         | 
| 144 141 | 
             
                    "blankslate",
         | 
| @@ -149,7 +146,7 @@ module Primer | |
| 149 146 |  | 
| 150 147 | 
             
                  @title_tag = title_tag
         | 
| 151 148 | 
             
                  @icon = icon
         | 
| 152 | 
            -
                  @ | 
| 149 | 
            +
                  @icon_size = icon_size
         | 
| 153 150 | 
             
                  @image_src = image_src
         | 
| 154 151 | 
             
                  @image_alt = image_alt
         | 
| 155 152 | 
             
                  @title = title
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            <%= render Primer::BaseComponent.new(**@kwargs) do %>
         | 
| 2 | 
            +
              <%= render(Primer::OcticonComponent.new(icon: @icon)) if @icon %>
         | 
| 3 | 
            +
              <%= content %>
         | 
| 4 | 
            +
              <% if @dismissible %>
         | 
| 5 | 
            +
                <button class="flash-close js-flash-close" type="button" aria-label="Close">
         | 
| 6 | 
            +
                  <%= render(Primer::OcticonComponent.new(icon: "x")) %>
         | 
| 7 | 
            +
                </button>
         | 
| 8 | 
            +
              <% end %>
         | 
| 9 | 
            +
              <% if actions.present? %>
         | 
| 10 | 
            +
                <%= render Primer::BaseComponent.new(**actions.kwargs) do %>
         | 
| 11 | 
            +
                  <%= actions.content %>
         | 
| 12 | 
            +
                <% end %>
         | 
| 13 | 
            +
              <% end %>
         | 
| 14 | 
            +
            <% end %>
         | 
| @@ -0,0 +1,43 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Primer
         | 
| 4 | 
            +
              class FlashComponent < Primer::Component
         | 
| 5 | 
            +
                include ViewComponent::Slotable
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                with_slot :actions, class_name: "Actions"
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                DEFAULT_VARIANT = :default
         | 
| 10 | 
            +
                VARIANT_MAPPINGS = {
         | 
| 11 | 
            +
                  DEFAULT_VARIANT => "",
         | 
| 12 | 
            +
                  :warning => "flash-warn",
         | 
| 13 | 
            +
                  :danger => "flash-error",
         | 
| 14 | 
            +
                  :success => "flash-success"
         | 
| 15 | 
            +
                }.freeze
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                def initialize(full: false, spacious: false, dismissible: false, icon: nil, variant: DEFAULT_VARIANT, **kwargs)
         | 
| 18 | 
            +
                  @icon = icon
         | 
| 19 | 
            +
                  @dismissible = dismissible
         | 
| 20 | 
            +
                  @kwargs = kwargs
         | 
| 21 | 
            +
                  @kwargs[:tag] = :div
         | 
| 22 | 
            +
                  @kwargs[:classes] = class_names(
         | 
| 23 | 
            +
                    @kwargs[:classes],
         | 
| 24 | 
            +
                    "flash",
         | 
| 25 | 
            +
                    VARIANT_MAPPINGS[fetch_or_fallback(VARIANT_MAPPINGS.keys, variant.to_sym, DEFAULT_VARIANT)],
         | 
| 26 | 
            +
                    "flash-full": full
         | 
| 27 | 
            +
                  )
         | 
| 28 | 
            +
                  @kwargs[:mb] ||= spacious ? 4 : nil
         | 
| 29 | 
            +
                end
         | 
| 30 | 
            +
             | 
| 31 | 
            +
                class Actions < ViewComponent::Slot
         | 
| 32 | 
            +
                  include ClassNameHelper
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  attr_reader :kwargs
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  def initialize(**kwargs)
         | 
| 37 | 
            +
                    @kwargs = kwargs
         | 
| 38 | 
            +
                    @kwargs[:tag] = :div
         | 
| 39 | 
            +
                    @kwargs[:classes] = class_names(@kwargs[:classes], "flash-action")
         | 
| 40 | 
            +
                  end
         | 
| 41 | 
            +
                end
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
            end
         | 
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            module Primer
         | 
| 4 | 
            +
              class OcticonComponent < Primer::Component
         | 
| 5 | 
            +
                include Primer::ClassNameHelper
         | 
| 6 | 
            +
                include OcticonsHelper
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                SIZE_DEFAULT = :small
         | 
| 9 | 
            +
                SIZE_MAPPINGS = {
         | 
| 10 | 
            +
                  SIZE_DEFAULT => 16,
         | 
| 11 | 
            +
                  :medium => 32,
         | 
| 12 | 
            +
                  :large => 64,
         | 
| 13 | 
            +
                }.freeze
         | 
| 14 | 
            +
                SIZE_OPTIONS = SIZE_MAPPINGS.keys
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                def initialize(icon:, size: SIZE_DEFAULT, **kwargs)
         | 
| 17 | 
            +
                  @icon, @kwargs = icon, kwargs
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  @kwargs[:height] = SIZE_MAPPINGS[size.to_sym]
         | 
| 20 | 
            +
                  @kwargs[:class] = class_names(@kwargs[:class], Primer::Classify.call(**@kwargs)[:class])
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                def call
         | 
| 24 | 
            +
                  octicon(@icon, **@kwargs)
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
            end
         | 
| @@ -33,12 +33,14 @@ require_relative "button_component" | |
| 33 33 | 
             
            require_relative "counter_component"
         | 
| 34 34 | 
             
            require_relative "details_component"
         | 
| 35 35 | 
             
            require_relative "dropdown_menu_component"
         | 
| 36 | 
            +
            require_relative "flash_component"
         | 
| 36 37 | 
             
            require_relative "flex_component"
         | 
| 37 38 | 
             
            require_relative "flex_item_component"
         | 
| 38 39 | 
             
            require_relative "heading_component"
         | 
| 39 40 | 
             
            require_relative "label_component"
         | 
| 40 41 | 
             
            require_relative "layout_component"
         | 
| 41 42 | 
             
            require_relative "link_component"
         | 
| 43 | 
            +
            require_relative "octicon_component"
         | 
| 42 44 | 
             
            require_relative "popover_component"
         | 
| 43 45 | 
             
            require_relative "progress_bar_component"
         | 
| 44 46 | 
             
            require_relative "state_component"
         | 
    
        data/lib/primer/classify.rb
    CHANGED
    
    | @@ -78,11 +78,13 @@ module Primer | |
| 78 78 | 
             
                  }
         | 
| 79 79 | 
             
                }.freeze
         | 
| 80 80 | 
             
                BORDER_KEYS = [:border, :border_color].freeze
         | 
| 81 | 
            +
                BORDER_MARGIN_KEYS = [:border_top, :border_bottom, :border_left, :border_right].freeze
         | 
| 81 82 | 
             
                TYPOGRAPHY_KEYS = [:font_size].freeze
         | 
| 82 83 | 
             
                VALID_KEYS = (
         | 
| 83 84 | 
             
                  CONCAT_KEYS +
         | 
| 84 85 | 
             
                  BOOLEAN_MAPPINGS.keys +
         | 
| 85 86 | 
             
                  BORDER_KEYS +
         | 
| 87 | 
            +
                  BORDER_MARGIN_KEYS +
         | 
| 86 88 | 
             
                  TYPOGRAPHY_KEYS +
         | 
| 87 89 | 
             
                  TEXT_KEYS +
         | 
| 88 90 | 
             
                  [
         | 
| @@ -196,6 +198,8 @@ module Primer | |
| 196 198 | 
             
                          memo[:classes] << "wb-#{dasherized_val}"
         | 
| 197 199 | 
             
                        elsif BORDER_KEYS.include?(key)
         | 
| 198 200 | 
             
                          memo[:classes] << "border-#{dasherized_val}"
         | 
| 201 | 
            +
                        elsif BORDER_MARGIN_KEYS.include?(key)
         | 
| 202 | 
            +
                          memo[:classes] << "#{key.to_s.dasherize}-#{val}"
         | 
| 199 203 | 
             
                        elsif key == DIRECTION_KEY
         | 
| 200 204 | 
             
                          memo[:classes] << "flex#{breakpoint}-#{dasherized_val}"
         | 
| 201 205 | 
             
                        elsif key == JUSTIFY_CONTENT_KEY
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: primer_view_components
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - GitHub Open Source
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020-09- | 
| 11 | 
            +
            date: 2020-09-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: rails
         | 
| @@ -168,7 +168,7 @@ dependencies: | |
| 168 168 | 
             
                - - "~>"
         | 
| 169 169 | 
             
                  - !ruby/object:Gem::Version
         | 
| 170 170 | 
             
                    version: 0.9.25
         | 
| 171 | 
            -
            description: | 
| 171 | 
            +
            description:
         | 
| 172 172 | 
             
            email:
         | 
| 173 173 | 
             
            - opensource+primer_view_components@github.com
         | 
| 174 174 | 
             
            executables: []
         | 
| @@ -194,6 +194,8 @@ files: | |
| 194 194 | 
             
            - app/components/primer/details_component.rb
         | 
| 195 195 | 
             
            - app/components/primer/dropdown_menu_component.html.erb
         | 
| 196 196 | 
             
            - app/components/primer/dropdown_menu_component.rb
         | 
| 197 | 
            +
            - app/components/primer/flash_component.html.erb
         | 
| 198 | 
            +
            - app/components/primer/flash_component.rb
         | 
| 197 199 | 
             
            - app/components/primer/flex_component.rb
         | 
| 198 200 | 
             
            - app/components/primer/flex_item_component.rb
         | 
| 199 201 | 
             
            - app/components/primer/heading_component.rb
         | 
| @@ -201,6 +203,7 @@ files: | |
| 201 203 | 
             
            - app/components/primer/layout_component.html.erb
         | 
| 202 204 | 
             
            - app/components/primer/layout_component.rb
         | 
| 203 205 | 
             
            - app/components/primer/link_component.rb
         | 
| 206 | 
            +
            - app/components/primer/octicon_component.rb
         | 
| 204 207 | 
             
            - app/components/primer/popover_component.html.erb
         | 
| 205 208 | 
             
            - app/components/primer/popover_component.rb
         | 
| 206 209 | 
             
            - app/components/primer/progress_bar_component.html.erb
         | 
| @@ -226,7 +229,7 @@ licenses: | |
| 226 229 | 
             
            - MIT
         | 
| 227 230 | 
             
            metadata:
         | 
| 228 231 | 
             
              allowed_push_host: https://rubygems.org
         | 
| 229 | 
            -
            post_install_message: | 
| 232 | 
            +
            post_install_message:
         | 
| 230 233 | 
             
            rdoc_options: []
         | 
| 231 234 | 
             
            require_paths:
         | 
| 232 235 | 
             
            - lib
         | 
| @@ -242,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 242 245 | 
             
                  version: '0'
         | 
| 243 246 | 
             
            requirements: []
         | 
| 244 247 | 
             
            rubygems_version: 3.1.2
         | 
| 245 | 
            -
            signing_key: | 
| 248 | 
            +
            signing_key:
         | 
| 246 249 | 
             
            specification_version: 4
         | 
| 247 250 | 
             
            summary: ViewComponents for the Primer Design System
         | 
| 248 251 | 
             
            test_files: []
         |