primer_view_components 0.0.61 → 0.0.65
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 +746 -613
- data/app/components/primer/alpha/border_box/header.rb +1 -2
- data/app/components/primer/alpha/button_marketing.rb +4 -4
- data/app/components/primer/alpha/tab_nav.rb +1 -1
- data/app/components/primer/alpha/tab_panels.rb +2 -2
- data/app/components/primer/alpha/underline_nav.rb +2 -1
- data/app/components/primer/alpha/underline_panels.rb +2 -2
- data/app/components/primer/base_component.rb +8 -36
- data/app/components/primer/beta/auto_complete/item.rb +1 -1
- data/app/components/primer/beta/auto_complete.rb +4 -2
- data/app/components/primer/beta/avatar.rb +1 -1
- data/app/components/primer/beta/blankslate.html.erb +2 -2
- data/app/components/primer/beta/blankslate.rb +7 -6
- data/app/components/primer/beta/breadcrumbs.rb +2 -2
- data/app/components/primer/beta/text.rb +1 -1
- data/app/components/primer/border_box_component.rb +1 -1
- data/app/components/primer/box_component.rb +3 -2
- data/app/components/primer/button_component.html.erb +3 -9
- data/app/components/primer/button_component.rb +61 -28
- data/app/components/primer/button_group.rb +9 -15
- data/app/components/primer/clipboard_copy.rb +1 -1
- data/app/components/primer/close_button.rb +1 -1
- data/app/components/primer/component.rb +77 -0
- data/app/components/primer/counter_component.rb +1 -1
- data/app/components/primer/details_component.rb +1 -1
- data/app/components/primer/dropdown/menu.rb +1 -1
- data/app/components/primer/dropdown.html.erb +0 -1
- data/app/components/primer/dropdown.rb +2 -1
- data/app/components/primer/dropdown_menu_component.rb +1 -1
- data/app/components/primer/flash_component.rb +3 -2
- data/app/components/primer/flex_component.rb +16 -16
- data/app/components/primer/flex_item_component.rb +1 -1
- data/app/components/primer/hellip_button.rb +1 -1
- data/app/components/primer/hidden_text_expander.rb +1 -1
- data/app/components/primer/image.rb +3 -3
- data/app/components/primer/image_crop.rb +2 -1
- data/app/components/primer/label_component.rb +23 -13
- data/app/components/primer/layout_component.rb +1 -0
- data/app/components/primer/local_time.rb +1 -1
- data/app/components/primer/markdown.rb +1 -1
- data/app/components/primer/menu_component.rb +2 -1
- data/app/components/primer/navigation/tab_component.rb +1 -0
- data/app/components/primer/octicon_component.rb +4 -2
- data/app/components/primer/octicon_symbols_component.rb +2 -2
- data/app/components/primer/popover_component.rb +3 -3
- data/app/components/primer/progress_bar_component.rb +7 -6
- data/app/components/primer/spinner_component.html.erb +4 -7
- data/app/components/primer/spinner_component.rb +1 -1
- data/app/components/primer/subhead_component.rb +3 -1
- data/app/components/primer/tab_container_component.rb +1 -1
- data/app/components/primer/time_ago_component.rb +1 -1
- data/app/components/primer/timeline_item_component.rb +4 -3
- data/app/components/primer/tooltip.rb +1 -0
- data/app/lib/primer/octicon/cache.rb +4 -10
- data/lib/primer/classify/utilities.rb +17 -44
- data/lib/primer/classify/utilities.yml +298 -68
- data/lib/primer/classify.rb +92 -178
- data/lib/primer/view_components/engine.rb +1 -0
- data/lib/primer/view_components/linters/argument_mappers/button.rb +4 -4
- data/lib/primer/view_components/linters/blankslate_api_migration.rb +11 -5
- data/lib/primer/view_components/version.rb +1 -1
- data/lib/rubocop/cop/primer/deprecated_arguments.rb +1 -1
- data/lib/rubocop/cop/primer/deprecated_button_arguments.rb +51 -0
- data/lib/rubocop/cop/primer/deprecated_label_schemes.rb +68 -0
- data/lib/rubocop/cop/primer/deprecated_layout_component.rb +30 -0
- data/lib/rubocop/cop/primer/primer_octicon.rb +1 -3
- data/lib/tasks/custom_utilities.yml +298 -0
- data/lib/tasks/docs.rake +1 -1
- data/lib/tasks/utilities.rake +21 -4
- data/static/arguments.yml +16 -7
- data/static/classes.yml +19 -18
- data/static/constants.json +25 -15
- metadata +10 -12
- data/app/components/primer/auto_complete/auto_complete.d.ts +0 -1
- data/app/components/primer/auto_complete/auto_complete.js +0 -1
- data/app/components/primer/auto_complete/auto_component.d.ts +0 -1
- data/app/components/primer/auto_complete/auto_component.js +0 -1
- data/lib/primer/classify/cache.rb +0 -109
- data/lib/primer/classify/flex.rb +0 -111
@@ -1,109 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative "flex"
|
4
|
-
|
5
|
-
module Primer
|
6
|
-
class Classify
|
7
|
-
# :nodoc:
|
8
|
-
class Cache
|
9
|
-
include Singleton
|
10
|
-
|
11
|
-
def initialize
|
12
|
-
@cache_enabled = true
|
13
|
-
@lookup = {}
|
14
|
-
end
|
15
|
-
|
16
|
-
private :initialize
|
17
|
-
|
18
|
-
def fetch(breakpoint, key, val)
|
19
|
-
found = @lookup.dig(breakpoint, key, val)
|
20
|
-
return found if found
|
21
|
-
|
22
|
-
yield.tap do |result|
|
23
|
-
set(result, breakpoint, key, val) if @cache_enabled
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def disable
|
28
|
-
@cache_enabled = false
|
29
|
-
yield
|
30
|
-
@cache_enabled = true
|
31
|
-
end
|
32
|
-
|
33
|
-
def clear!
|
34
|
-
@lookup.clear
|
35
|
-
end
|
36
|
-
|
37
|
-
def preload!
|
38
|
-
preload(
|
39
|
-
keys: Primer::Classify::Flex::DIRECTION_KEY,
|
40
|
-
values: Primer::Classify::Flex::DIRECTION_VALUES
|
41
|
-
)
|
42
|
-
|
43
|
-
preload(
|
44
|
-
keys: Primer::Classify::Flex::JUSTIFY_CONTENT_KEY,
|
45
|
-
values: Primer::Classify::Flex::JUSTIFY_CONTENT_VALUES
|
46
|
-
)
|
47
|
-
|
48
|
-
preload(
|
49
|
-
keys: Primer::Classify::Flex::ALIGN_ITEMS_KEY,
|
50
|
-
values: Primer::Classify::Flex::ALIGN_ITEMS_VALUES
|
51
|
-
)
|
52
|
-
|
53
|
-
preload(
|
54
|
-
keys: :text_align,
|
55
|
-
values: [:left, :center, :right]
|
56
|
-
)
|
57
|
-
|
58
|
-
preload(
|
59
|
-
keys: :font_weight,
|
60
|
-
values: [:bold, :light, :normal]
|
61
|
-
)
|
62
|
-
|
63
|
-
preload(
|
64
|
-
keys: Primer::Classify::Flex::FLEX_KEY,
|
65
|
-
values: Primer::Classify::Flex::FLEX_VALUES
|
66
|
-
)
|
67
|
-
|
68
|
-
preload(
|
69
|
-
keys: Primer::Classify::Flex::GROW_KEY,
|
70
|
-
values: Primer::Classify::Flex::GROW_VALUES
|
71
|
-
)
|
72
|
-
|
73
|
-
preload(
|
74
|
-
keys: Primer::Classify::Flex::SHRINK_KEY,
|
75
|
-
values: Primer::Classify::Flex::SHRINK_VALUES
|
76
|
-
)
|
77
|
-
|
78
|
-
preload(
|
79
|
-
keys: Primer::Classify::Flex::ALIGN_SELF_KEY,
|
80
|
-
values: Primer::Classify::Flex::ALIGN_SELF_VALUES
|
81
|
-
)
|
82
|
-
|
83
|
-
preload(
|
84
|
-
keys: Primer::Classify::BOX_SHADOW_KEY,
|
85
|
-
values: [true, :small, :medium, :large, :extra_large, :none]
|
86
|
-
)
|
87
|
-
end
|
88
|
-
|
89
|
-
private
|
90
|
-
|
91
|
-
def preload(keys:, values:)
|
92
|
-
BREAKPOINTS.each do |breakpoint|
|
93
|
-
Array(keys).each do |key|
|
94
|
-
values.each do |value|
|
95
|
-
classes = Primer::Classify.send(:classes_from, key, value, breakpoint)
|
96
|
-
set(classes, breakpoint, key, value)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
|
102
|
-
def set(item, breakpoint, key, val)
|
103
|
-
@lookup[breakpoint] ||= {}
|
104
|
-
@lookup[breakpoint][key] ||= {}
|
105
|
-
@lookup[breakpoint][key][val] = item
|
106
|
-
end
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
data/lib/primer/classify/flex.rb
DELETED
@@ -1,111 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Primer
|
4
|
-
class Classify
|
5
|
-
# Handler for PrimerCSS flex classes.
|
6
|
-
class Flex
|
7
|
-
extend Primer::FetchOrFallbackHelper
|
8
|
-
|
9
|
-
FLEX_KEY = :flex
|
10
|
-
FLEX_VALUES = [1, :auto].freeze
|
11
|
-
|
12
|
-
WRAP_KEY = :flex_wrap
|
13
|
-
WRAP_MAPPINGS = {
|
14
|
-
wrap: "flex-wrap",
|
15
|
-
nowrap: "flex-nowrap",
|
16
|
-
reverse: "flex-wrap-reverse"
|
17
|
-
}.freeze
|
18
|
-
|
19
|
-
SHRINK_KEY = :flex_shrink
|
20
|
-
SHRINK_VALUES = [0].freeze
|
21
|
-
|
22
|
-
GROW_KEY = :flex_grow
|
23
|
-
GROW_VALUES = [0].freeze
|
24
|
-
|
25
|
-
ALIGN_SELF_KEY = :align_self
|
26
|
-
ALIGN_SELF_VALUES = [:auto, :start, :end, :center, :baseline, :stretch].freeze
|
27
|
-
|
28
|
-
DIRECTION_KEY = :direction
|
29
|
-
DIRECTION_VALUES = [:column, :column_reverse, :row, :row_reverse].freeze
|
30
|
-
|
31
|
-
JUSTIFY_CONTENT_KEY = :justify_content
|
32
|
-
JUSTIFY_CONTENT_VALUES = [:flex_start, :flex_end, :center, :space_between, :space_around].freeze
|
33
|
-
|
34
|
-
ALIGN_ITEMS_KEY = :align_items
|
35
|
-
ALIGN_ITEMS_VALUES = [:flex_start, :flex_end, :center, :baseline, :stretch].freeze
|
36
|
-
|
37
|
-
KEYS = [FLEX_KEY, WRAP_KEY, SHRINK_KEY, GROW_KEY, ALIGN_SELF_KEY, DIRECTION_KEY, JUSTIFY_CONTENT_KEY, ALIGN_ITEMS_KEY].freeze
|
38
|
-
RESPONSIVE_KEYS = [DIRECTION_KEY, JUSTIFY_CONTENT_KEY, ALIGN_ITEMS_KEY].freeze
|
39
|
-
|
40
|
-
class << self
|
41
|
-
def classes(key, value, breakpoint)
|
42
|
-
send(key, value, breakpoint)
|
43
|
-
end
|
44
|
-
|
45
|
-
private
|
46
|
-
|
47
|
-
def flex(value, _breakpoint)
|
48
|
-
generate(
|
49
|
-
value: value,
|
50
|
-
allowed_values: FLEX_VALUES,
|
51
|
-
prefix: "flex"
|
52
|
-
)
|
53
|
-
end
|
54
|
-
|
55
|
-
def flex_shrink(value, _breakpoint)
|
56
|
-
generate(
|
57
|
-
value: value,
|
58
|
-
allowed_values: SHRINK_VALUES,
|
59
|
-
prefix: "flex-shrink"
|
60
|
-
)
|
61
|
-
end
|
62
|
-
|
63
|
-
def flex_grow(value, _breakpoint)
|
64
|
-
generate(
|
65
|
-
value: value,
|
66
|
-
allowed_values: GROW_VALUES,
|
67
|
-
prefix: "flex-grow"
|
68
|
-
)
|
69
|
-
end
|
70
|
-
|
71
|
-
def align_self(value, _breakpoint)
|
72
|
-
generate(
|
73
|
-
value: value,
|
74
|
-
allowed_values: ALIGN_SELF_VALUES,
|
75
|
-
prefix: "flex-self"
|
76
|
-
)
|
77
|
-
end
|
78
|
-
|
79
|
-
def flex_wrap(value, _breakpoint)
|
80
|
-
WRAP_MAPPINGS[fetch_or_fallback(WRAP_MAPPINGS.keys, value)]
|
81
|
-
end
|
82
|
-
|
83
|
-
def direction(value, breakpoint)
|
84
|
-
val = fetch_or_fallback(DIRECTION_VALUES, value)
|
85
|
-
|
86
|
-
"flex#{breakpoint}-#{val.to_s.dasherize}"
|
87
|
-
end
|
88
|
-
|
89
|
-
def justify_content(value, breakpoint)
|
90
|
-
val = fetch_or_fallback(JUSTIFY_CONTENT_VALUES, value)
|
91
|
-
|
92
|
-
formatted_value = val.to_s.gsub(/(flex_|space_)/, "")
|
93
|
-
"flex#{breakpoint}-justify-#{formatted_value}"
|
94
|
-
end
|
95
|
-
|
96
|
-
def align_items(value, breakpoint)
|
97
|
-
val = fetch_or_fallback(ALIGN_ITEMS_VALUES, value)
|
98
|
-
|
99
|
-
formatted_value = val.to_s.gsub("flex_", "")
|
100
|
-
"flex#{breakpoint}-items-#{formatted_value}"
|
101
|
-
end
|
102
|
-
|
103
|
-
def generate(value:, allowed_values:, prefix:)
|
104
|
-
val = fetch_or_fallback(allowed_values, value)
|
105
|
-
|
106
|
-
"#{prefix}-#{val}"
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
end
|
111
|
-
end
|