primer_view_components 0.0.27 → 0.0.32
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 +82 -0
- data/README.md +1 -1
- data/app/assets/javascripts/primer_view_components.js +1 -1
- data/app/assets/javascripts/primer_view_components.js.map +1 -1
- data/app/components/primer/auto_complete_component.d.ts +1 -0
- data/app/components/primer/auto_complete_component.html.erb +5 -0
- data/app/components/primer/auto_complete_component.rb +96 -0
- data/app/components/primer/auto_complete_component.ts +1 -0
- data/app/components/primer/auto_complete_item_component.rb +38 -0
- data/app/components/primer/avatar_component.rb +6 -5
- data/app/components/primer/avatar_stack_component.rb +0 -2
- data/app/components/primer/base_component.rb +2 -2
- data/app/components/primer/blankslate_component.html.erb +1 -5
- data/app/components/primer/blankslate_component.rb +0 -2
- data/app/components/primer/border_box_component.rb +29 -3
- data/app/components/primer/box_component.rb +1 -1
- data/app/components/primer/breadcrumb_component.rb +0 -1
- data/app/components/primer/button_group_component.rb +0 -2
- data/app/components/primer/component.rb +2 -1
- data/app/components/primer/counter_component.rb +15 -5
- data/app/components/primer/details_component.rb +1 -1
- data/app/components/primer/dropdown/menu_component.rb +0 -2
- data/app/components/primer/dropdown_component.rb +0 -2
- data/app/components/primer/flash_component.html.erb +2 -2
- data/app/components/primer/flash_component.rb +0 -2
- data/app/components/primer/flex_component.rb +16 -16
- data/app/components/primer/heading_component.rb +1 -1
- data/app/components/primer/label_component.rb +3 -7
- data/app/components/primer/layout_component.rb +0 -2
- data/app/components/primer/link_component.rb +37 -7
- data/app/components/primer/menu_component.rb +2 -4
- data/app/components/primer/navigation/tab_component.html.erb +9 -0
- data/app/components/primer/navigation/tab_component.rb +102 -0
- data/app/components/primer/octicon_component.rb +5 -5
- data/app/components/primer/popover_component.html.erb +3 -7
- data/app/components/primer/popover_component.rb +75 -63
- data/app/components/primer/primer.d.ts +3 -0
- data/app/components/primer/primer.js +1 -0
- data/app/components/primer/primer.ts +1 -0
- data/app/components/primer/progress_bar_component.rb +5 -6
- data/app/components/primer/spinner_component.html.erb +1 -3
- data/app/components/primer/spinner_component.rb +1 -0
- data/app/components/primer/subhead_component.rb +0 -2
- data/app/components/primer/tab_container_component.d.ts +1 -0
- data/app/components/primer/tab_nav_component.html.erb +9 -11
- data/app/components/primer/tab_nav_component.rb +46 -73
- data/app/components/primer/text_component.rb +3 -1
- data/app/components/primer/time_ago_component.d.ts +1 -0
- data/app/components/primer/time_ago_component.rb +2 -1
- data/app/components/primer/timeline_item_component.rb +3 -3
- data/app/components/primer/underline_nav_component.html.erb +19 -7
- data/app/components/primer/underline_nav_component.rb +80 -14
- data/app/lib/primer/classify.rb +15 -18
- data/app/lib/primer/classify/cache.rb +8 -3
- data/app/lib/primer/classify/functional_background_colors.rb +61 -0
- data/app/lib/primer/classify/functional_border_colors.rb +51 -0
- data/app/lib/primer/classify/functional_colors.rb +68 -0
- data/app/lib/primer/classify/functional_text_colors.rb +62 -0
- data/app/lib/primer/fetch_or_fallback_helper.rb +17 -4
- data/app/lib/primer/tabbed_component_helper.rb +37 -0
- data/app/lib/primer/view_helper.rb +10 -12
- data/lib/primer/view_components/engine.rb +4 -0
- data/lib/primer/view_components/version.rb +1 -1
- data/static/statuses.json +1 -1
- metadata +31 -5
- data/app/components/primer/slot.rb +0 -10
- data/app/lib/primer/classify/functional_colors.rb.orig +0 -124
- data/app/lib/primer/view_helper/dsl.rb +0 -34
@@ -1,22 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Primer
|
4
|
-
# Module to allow shorthand calls for
|
5
|
-
#
|
6
|
-
# Registered components can be called with
|
7
|
-
# `primer(:name, **kwargs) { block }` instead of
|
8
|
-
# `render Primer::NameComponent.new(**kwargs) { block }`
|
4
|
+
# Module to allow shorthand calls for Primer components
|
9
5
|
module ViewHelper
|
10
|
-
extend ActiveSupport::Concern
|
11
|
-
|
12
6
|
class ViewHelperNotFound < StandardError; end
|
13
7
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
8
|
+
HELPERS = {
|
9
|
+
octicon: "Primer::OcticonComponent",
|
10
|
+
heading: "Primer::HeadingComponent",
|
11
|
+
time_ago: "Primer::TimeAgoComponent"
|
12
|
+
}.freeze
|
18
13
|
|
19
|
-
|
14
|
+
HELPERS.each do |name, component|
|
15
|
+
define_method "primer_#{name}" do |*args, **kwargs, &block|
|
16
|
+
render component.constantize.new(*args, **kwargs), &block
|
17
|
+
end
|
20
18
|
end
|
21
19
|
end
|
22
20
|
end
|
@@ -12,6 +12,10 @@ module Primer
|
|
12
12
|
#{root}/app/lib
|
13
13
|
]
|
14
14
|
|
15
|
+
config.primer_view_components = ActiveSupport::OrderedOptions.new
|
16
|
+
config.primer_view_components.force_functional_colors = true
|
17
|
+
config.primer_view_components.silence_deprecations = false
|
18
|
+
|
15
19
|
initializer "primer_view_components.assets" do |app|
|
16
20
|
app.config.assets.precompile += %w[primer_view_components] if app.config.respond_to?(:assets)
|
17
21
|
end
|
data/static/statuses.json
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"Primer::AvatarComponent":"beta","Primer::AvatarStackComponent":"alpha","Primer::BaseComponent":"beta","Primer::BlankslateComponent":"beta","Primer::BorderBoxComponent":"beta","Primer::BoxComponent":"stable","Primer::BreadcrumbComponent":"beta","Primer::BreadcrumbComponent::ItemComponent":"alpha","Primer::ButtonComponent":"alpha","Primer::ButtonGroupComponent":"alpha","Primer::ButtonMarketingComponent":"alpha","Primer::CounterComponent":"beta","Primer::DetailsComponent":"
|
1
|
+
{"Primer::AutoCompleteComponent":"alpha","Primer::AutoCompleteItemComponent":"alpha","Primer::AvatarComponent":"beta","Primer::AvatarStackComponent":"alpha","Primer::BaseComponent":"beta","Primer::BlankslateComponent":"beta","Primer::BorderBoxComponent":"beta","Primer::BoxComponent":"stable","Primer::BreadcrumbComponent":"beta","Primer::BreadcrumbComponent::ItemComponent":"alpha","Primer::ButtonComponent":"alpha","Primer::ButtonGroupComponent":"alpha","Primer::ButtonMarketingComponent":"alpha","Primer::CounterComponent":"beta","Primer::DetailsComponent":"beta","Primer::Dropdown::MenuComponent":"alpha","Primer::DropdownComponent":"alpha","Primer::DropdownMenuComponent":"deprecated","Primer::FlashComponent":"beta","Primer::FlexComponent":"alpha","Primer::FlexItemComponent":"alpha","Primer::HeadingComponent":"beta","Primer::LabelComponent":"beta","Primer::LayoutComponent":"alpha","Primer::LinkComponent":"beta","Primer::MarkdownComponent":"alpha","Primer::MenuComponent":"alpha","Primer::Navigation::TabComponent":"alpha","Primer::OcticonComponent":"beta","Primer::PopoverComponent":"beta","Primer::ProgressBarComponent":"beta","Primer::SpinnerComponent":"beta","Primer::StateComponent":"beta","Primer::SubheadComponent":"beta","Primer::TabContainerComponent":"alpha","Primer::TabNavComponent":"alpha","Primer::TextComponent":"beta","Primer::TimeAgoComponent":"beta","Primer::TimelineItemComponent":"beta","Primer::TimelineItemComponent::BadgeComponent":"alpha","Primer::TooltipComponent":"alpha","Primer::TruncateComponent":"alpha","Primer::UnderlineNavComponent":"alpha"}
|
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.32
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GitHub Open Source
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-03-
|
11
|
+
date: 2021-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: octicons_helper
|
@@ -126,6 +126,20 @@ dependencies:
|
|
126
126
|
- - '='
|
127
127
|
- !ruby/object:Gem::Version
|
128
128
|
version: 5.6.0
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: mocha
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
type: :development
|
137
|
+
prerelease: false
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - ">="
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: '0'
|
129
143
|
- !ruby/object:Gem::Dependency
|
130
144
|
name: pry
|
131
145
|
requirement: !ruby/object:Gem::Requirement
|
@@ -238,7 +252,12 @@ files:
|
|
238
252
|
- app/assets/javascripts/primer_view_components.js.map
|
239
253
|
- app/assets/javascripts/primer_view_components.js.map.orig
|
240
254
|
- app/assets/javascripts/primer_view_components.js.orig
|
255
|
+
- app/components/primer/auto_complete_component.d.ts
|
256
|
+
- app/components/primer/auto_complete_component.html.erb
|
241
257
|
- app/components/primer/auto_complete_component.js
|
258
|
+
- app/components/primer/auto_complete_component.rb
|
259
|
+
- app/components/primer/auto_complete_component.ts
|
260
|
+
- app/components/primer/auto_complete_item_component.rb
|
242
261
|
- app/components/primer/avatar_component.rb
|
243
262
|
- app/components/primer/avatar_stack_component.html.erb
|
244
263
|
- app/components/primer/avatar_stack_component.rb
|
@@ -276,25 +295,29 @@ files:
|
|
276
295
|
- app/components/primer/markdown_component.rb
|
277
296
|
- app/components/primer/menu_component.html.erb
|
278
297
|
- app/components/primer/menu_component.rb
|
298
|
+
- app/components/primer/navigation/tab_component.html.erb
|
299
|
+
- app/components/primer/navigation/tab_component.rb
|
279
300
|
- app/components/primer/octicon_component.rb
|
280
301
|
- app/components/primer/popover_component.html.erb
|
281
302
|
- app/components/primer/popover_component.rb
|
303
|
+
- app/components/primer/primer.d.ts
|
282
304
|
- app/components/primer/primer.js
|
283
305
|
- app/components/primer/primer.ts
|
284
306
|
- app/components/primer/progress_bar_component.html.erb
|
285
307
|
- app/components/primer/progress_bar_component.rb
|
286
|
-
- app/components/primer/slot.rb
|
287
308
|
- app/components/primer/spinner_component.html.erb
|
288
309
|
- app/components/primer/spinner_component.rb
|
289
310
|
- app/components/primer/state_component.rb
|
290
311
|
- app/components/primer/subhead_component.html.erb
|
291
312
|
- app/components/primer/subhead_component.rb
|
313
|
+
- app/components/primer/tab_container_component.d.ts
|
292
314
|
- app/components/primer/tab_container_component.js
|
293
315
|
- app/components/primer/tab_container_component.rb
|
294
316
|
- app/components/primer/tab_container_component.ts
|
295
317
|
- app/components/primer/tab_nav_component.html.erb
|
296
318
|
- app/components/primer/tab_nav_component.rb
|
297
319
|
- app/components/primer/text_component.rb
|
320
|
+
- app/components/primer/time_ago_component.d.ts
|
298
321
|
- app/components/primer/time_ago_component.js
|
299
322
|
- app/components/primer/time_ago_component.rb
|
300
323
|
- app/components/primer/time_ago_component.ts
|
@@ -307,13 +330,16 @@ files:
|
|
307
330
|
- app/lib/primer/class_name_helper.rb
|
308
331
|
- app/lib/primer/classify.rb
|
309
332
|
- app/lib/primer/classify/cache.rb
|
310
|
-
- app/lib/primer/classify/
|
333
|
+
- app/lib/primer/classify/functional_background_colors.rb
|
334
|
+
- app/lib/primer/classify/functional_border_colors.rb
|
335
|
+
- app/lib/primer/classify/functional_colors.rb
|
336
|
+
- app/lib/primer/classify/functional_text_colors.rb
|
311
337
|
- app/lib/primer/fetch_or_fallback_helper.rb
|
312
338
|
- app/lib/primer/join_style_arguments_helper.rb
|
313
339
|
- app/lib/primer/status/dsl.rb
|
340
|
+
- app/lib/primer/tabbed_component_helper.rb
|
314
341
|
- app/lib/primer/test_selector_helper.rb
|
315
342
|
- app/lib/primer/view_helper.rb
|
316
|
-
- app/lib/primer/view_helper/dsl.rb
|
317
343
|
- lib/primer/view_components.rb
|
318
344
|
- lib/primer/view_components/engine.rb
|
319
345
|
- lib/primer/view_components/version.rb
|
@@ -1,124 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Primer
|
4
|
-
class Classify
|
5
|
-
# https://primer-css-git-mkt-color-modes-docs-primer.vercel.app/css/support/v16-migration
|
6
|
-
class FunctionalColors
|
7
|
-
FUNCTIONAL_COLOR_REGEX = /(primary|secondary|tertiary|link|success|warning|danger|info|inverse|text_white)/.freeze
|
8
|
-
|
9
|
-
FUNCTIONAL_TEXT_OPTIONS = {
|
10
|
-
primary: :text_primary,
|
11
|
-
secondary: :text_secondary,
|
12
|
-
tertiary: :text_tertiary,
|
13
|
-
link: :text_link,
|
14
|
-
success: :text_success,
|
15
|
-
warning: :text_warning,
|
16
|
-
danger: :text_danger,
|
17
|
-
white: :text_white,
|
18
|
-
inverse: :text_inverse,
|
19
|
-
}.freeze
|
20
|
-
|
21
|
-
TEXT_COLOR_MAPPINGS = {
|
22
|
-
gray_dark: FUNCTIONAL_TEXT_OPTIONS[:primary],
|
23
|
-
gray: FUNCTIONAL_TEXT_OPTIONS[:secondary],
|
24
|
-
gray_light: FUNCTIONAL_TEXT_OPTIONS[:tertiary],
|
25
|
-
blue: FUNCTIONAL_TEXT_OPTIONS[:link],
|
26
|
-
green: FUNCTIONAL_TEXT_OPTIONS[:success],
|
27
|
-
yellow: FUNCTIONAL_TEXT_OPTIONS[:warning],
|
28
|
-
red: FUNCTIONAL_TEXT_OPTIONS[:danger],
|
29
|
-
white: FUNCTIONAL_TEXT_OPTIONS[:white],
|
30
|
-
# still unsure what will happen with these colors
|
31
|
-
black: nil,
|
32
|
-
orange: nil,
|
33
|
-
orange_light: nil,
|
34
|
-
purple: nil,
|
35
|
-
pink: nil,
|
36
|
-
inherit: nil
|
37
|
-
}.freeze
|
38
|
-
|
39
|
-
<<<<<<< HEAD
|
40
|
-
TEXT_OPTIONS = [
|
41
|
-
:icon_primary,
|
42
|
-
:icon_secondary,
|
43
|
-
:icon_tertiary,
|
44
|
-
:icon_info,
|
45
|
-
:icon_success,
|
46
|
-
:icon_warning,
|
47
|
-
:icon_danger,
|
48
|
-
*FUNCTIONAL_TEXT_OPTIONS.values
|
49
|
-
].freeze
|
50
|
-
DEPRECATED_TEXT_OPTIONS = TEXT_COLOR_MAPPINGS.keys.freeze
|
51
|
-
=======
|
52
|
-
BORDER_COLOR_MAPPINGS = {
|
53
|
-
gray: :primary,
|
54
|
-
gray_light: :secondary,
|
55
|
-
gray_dark: :tertiary,
|
56
|
-
blue: :info,
|
57
|
-
green: :success,
|
58
|
-
yellow: :warning,
|
59
|
-
red: :danger,
|
60
|
-
white: :inverse,
|
61
|
-
# still unsure what will happen with these colors
|
62
|
-
gray_darker: nil,
|
63
|
-
blue_light: nil,
|
64
|
-
red_light: nil,
|
65
|
-
purple: nil,
|
66
|
-
black_fade: nil,
|
67
|
-
white_fade: nil
|
68
|
-
}.freeze
|
69
|
-
>>>>>>> extract functional color method and apply it to border
|
70
|
-
|
71
|
-
class << self
|
72
|
-
def text_color(val)
|
73
|
-
functional_color(
|
74
|
-
value: val,
|
75
|
-
functional_prefix: "color",
|
76
|
-
non_functional_prefix: "text",
|
77
|
-
mappings: TEXT_COLOR_MAPPINGS,
|
78
|
-
key: "color"
|
79
|
-
)
|
80
|
-
end
|
81
|
-
|
82
|
-
def border_color(val)
|
83
|
-
functional_color(
|
84
|
-
value: val,
|
85
|
-
functional_prefix: "color-border",
|
86
|
-
non_functional_prefix: "border",
|
87
|
-
mappings: BORDER_COLOR_MAPPINGS,
|
88
|
-
key: "border"
|
89
|
-
)
|
90
|
-
end
|
91
|
-
|
92
|
-
private
|
93
|
-
|
94
|
-
def functional_color(value:, functional_prefix:, non_functional_prefix:, mappings:, key:)
|
95
|
-
# the value is a functional color
|
96
|
-
return "#{functional_prefix}-#{value.to_s.dasherize}" if ends_with_number?(value) || FUNCTIONAL_COLOR_REGEX.match?(value)
|
97
|
-
# if the app still allows non functional colors
|
98
|
-
return "#{non_functional_prefix}-#{value.to_s.dasherize}" unless force_functional_colors?
|
99
|
-
|
100
|
-
if mappings.key?(value)
|
101
|
-
functional_color = mappings[value]
|
102
|
-
# colors without functional mapping stay the same
|
103
|
-
return "#{non_functional_prefix}-#{value.to_s.dasherize}" if functional_color.blank?
|
104
|
-
|
105
|
-
ActiveSupport::Deprecation.warn("#{key} #{value} is deprecated. Please use #{functional_color} instead.") unless Rails.env.production?
|
106
|
-
|
107
|
-
return "#{functional_prefix}-#{functional_color.to_s.dasherize}"
|
108
|
-
end
|
109
|
-
|
110
|
-
raise ArgumentError, "#{key} #{value} does not exist."
|
111
|
-
end
|
112
|
-
|
113
|
-
def ends_with_number?(val)
|
114
|
-
char_code = val[-1].ord
|
115
|
-
char_code >= 48 && char_code <= 57
|
116
|
-
end
|
117
|
-
|
118
|
-
def force_functional_colors?
|
119
|
-
Rails.application.config.primer_view_components.force_functional_colors
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "active_support/concern"
|
4
|
-
|
5
|
-
module Primer
|
6
|
-
# :nodoc:
|
7
|
-
module ViewHelper
|
8
|
-
# DSL to allow components to register a View Helper for shorthand calls.
|
9
|
-
#
|
10
|
-
# Example:
|
11
|
-
#
|
12
|
-
# class MyComponent < ViewComponent::Base
|
13
|
-
# include Primer::ViewHelper::Dsl
|
14
|
-
# view_helper :my_component
|
15
|
-
# end
|
16
|
-
module Dsl
|
17
|
-
extend ActiveSupport::Concern
|
18
|
-
|
19
|
-
class ViewHelperAlreadyDefined < StandardError; end
|
20
|
-
|
21
|
-
included do
|
22
|
-
class_attribute :primer_helpers, instance_writer: false, default: {}
|
23
|
-
end
|
24
|
-
|
25
|
-
class_methods do
|
26
|
-
def view_helper(name)
|
27
|
-
raise ViewHelperAlreadyDefined, "#{name} is already defined" if primer_helpers[name].present?
|
28
|
-
|
29
|
-
primer_helpers[name] = self
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|