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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +746 -613
  3. data/app/components/primer/alpha/border_box/header.rb +1 -2
  4. data/app/components/primer/alpha/button_marketing.rb +4 -4
  5. data/app/components/primer/alpha/tab_nav.rb +1 -1
  6. data/app/components/primer/alpha/tab_panels.rb +2 -2
  7. data/app/components/primer/alpha/underline_nav.rb +2 -1
  8. data/app/components/primer/alpha/underline_panels.rb +2 -2
  9. data/app/components/primer/base_component.rb +8 -36
  10. data/app/components/primer/beta/auto_complete/item.rb +1 -1
  11. data/app/components/primer/beta/auto_complete.rb +4 -2
  12. data/app/components/primer/beta/avatar.rb +1 -1
  13. data/app/components/primer/beta/blankslate.html.erb +2 -2
  14. data/app/components/primer/beta/blankslate.rb +7 -6
  15. data/app/components/primer/beta/breadcrumbs.rb +2 -2
  16. data/app/components/primer/beta/text.rb +1 -1
  17. data/app/components/primer/border_box_component.rb +1 -1
  18. data/app/components/primer/box_component.rb +3 -2
  19. data/app/components/primer/button_component.html.erb +3 -9
  20. data/app/components/primer/button_component.rb +61 -28
  21. data/app/components/primer/button_group.rb +9 -15
  22. data/app/components/primer/clipboard_copy.rb +1 -1
  23. data/app/components/primer/close_button.rb +1 -1
  24. data/app/components/primer/component.rb +77 -0
  25. data/app/components/primer/counter_component.rb +1 -1
  26. data/app/components/primer/details_component.rb +1 -1
  27. data/app/components/primer/dropdown/menu.rb +1 -1
  28. data/app/components/primer/dropdown.html.erb +0 -1
  29. data/app/components/primer/dropdown.rb +2 -1
  30. data/app/components/primer/dropdown_menu_component.rb +1 -1
  31. data/app/components/primer/flash_component.rb +3 -2
  32. data/app/components/primer/flex_component.rb +16 -16
  33. data/app/components/primer/flex_item_component.rb +1 -1
  34. data/app/components/primer/hellip_button.rb +1 -1
  35. data/app/components/primer/hidden_text_expander.rb +1 -1
  36. data/app/components/primer/image.rb +3 -3
  37. data/app/components/primer/image_crop.rb +2 -1
  38. data/app/components/primer/label_component.rb +23 -13
  39. data/app/components/primer/layout_component.rb +1 -0
  40. data/app/components/primer/local_time.rb +1 -1
  41. data/app/components/primer/markdown.rb +1 -1
  42. data/app/components/primer/menu_component.rb +2 -1
  43. data/app/components/primer/navigation/tab_component.rb +1 -0
  44. data/app/components/primer/octicon_component.rb +4 -2
  45. data/app/components/primer/octicon_symbols_component.rb +2 -2
  46. data/app/components/primer/popover_component.rb +3 -3
  47. data/app/components/primer/progress_bar_component.rb +7 -6
  48. data/app/components/primer/spinner_component.html.erb +4 -7
  49. data/app/components/primer/spinner_component.rb +1 -1
  50. data/app/components/primer/subhead_component.rb +3 -1
  51. data/app/components/primer/tab_container_component.rb +1 -1
  52. data/app/components/primer/time_ago_component.rb +1 -1
  53. data/app/components/primer/timeline_item_component.rb +4 -3
  54. data/app/components/primer/tooltip.rb +1 -0
  55. data/app/lib/primer/octicon/cache.rb +4 -10
  56. data/lib/primer/classify/utilities.rb +17 -44
  57. data/lib/primer/classify/utilities.yml +298 -68
  58. data/lib/primer/classify.rb +92 -178
  59. data/lib/primer/view_components/engine.rb +1 -0
  60. data/lib/primer/view_components/linters/argument_mappers/button.rb +4 -4
  61. data/lib/primer/view_components/linters/blankslate_api_migration.rb +11 -5
  62. data/lib/primer/view_components/version.rb +1 -1
  63. data/lib/rubocop/cop/primer/deprecated_arguments.rb +1 -1
  64. data/lib/rubocop/cop/primer/deprecated_button_arguments.rb +51 -0
  65. data/lib/rubocop/cop/primer/deprecated_label_schemes.rb +68 -0
  66. data/lib/rubocop/cop/primer/deprecated_layout_component.rb +30 -0
  67. data/lib/rubocop/cop/primer/primer_octicon.rb +1 -3
  68. data/lib/tasks/custom_utilities.yml +298 -0
  69. data/lib/tasks/docs.rake +1 -1
  70. data/lib/tasks/utilities.rake +21 -4
  71. data/static/arguments.yml +16 -7
  72. data/static/classes.yml +19 -18
  73. data/static/constants.json +25 -15
  74. metadata +10 -12
  75. data/app/components/primer/auto_complete/auto_complete.d.ts +0 -1
  76. data/app/components/primer/auto_complete/auto_complete.js +0 -1
  77. data/app/components/primer/auto_complete/auto_component.d.ts +0 -1
  78. data/app/components/primer/auto_complete/auto_component.js +0 -1
  79. data/lib/primer/classify/cache.rb +0 -109
  80. 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
@@ -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