primer_view_components 0.0.111 → 0.0.113
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +68 -0
- data/app/assets/javascripts/primer_view_components.js +1 -1
- data/app/assets/javascripts/primer_view_components.js.map +1 -1
- data/app/assets/styles/primer_view_components.css +3 -1
- data/app/assets/styles/primer_view_components.css.map +1 -1
- data/app/components/primer/alpha/action_list.css +1 -1
- data/app/components/primer/alpha/action_list.css.json +1 -1
- data/app/components/primer/alpha/action_list.css.map +1 -1
- data/app/components/primer/alpha/action_list.pcss +0 -15
- data/app/components/primer/alpha/auto_complete.css +1 -0
- data/app/components/primer/alpha/auto_complete.css.json +1 -0
- data/app/components/primer/alpha/auto_complete.css.map +1 -0
- data/app/components/primer/alpha/auto_complete.pcss +118 -0
- data/app/components/primer/alpha/banner.css +1 -1
- data/app/components/primer/alpha/banner.css.map +1 -1
- data/app/components/primer/alpha/banner.pcss +0 -1
- data/app/components/primer/alpha/button_marketing.css +1 -0
- data/app/components/primer/alpha/button_marketing.css.json +1 -0
- data/app/components/primer/alpha/button_marketing.css.map +1 -0
- data/app/components/primer/alpha/button_marketing.pcss +175 -0
- data/app/components/primer/alpha/dialog/body.rb +3 -0
- data/app/components/primer/alpha/dialog/footer.rb +3 -0
- data/app/components/primer/alpha/dialog/header.rb +3 -0
- data/app/components/primer/alpha/dialog.css +1 -0
- data/app/components/primer/alpha/dialog.css.json +1 -0
- data/app/components/primer/alpha/dialog.css.map +1 -0
- data/app/components/primer/alpha/dialog.pcss +484 -0
- data/app/components/primer/alpha/dialog.rb +3 -0
- data/app/components/primer/{dropdown → alpha/dropdown}/menu.d.ts +0 -0
- data/app/components/primer/{dropdown → alpha/dropdown}/menu.html.erb +0 -0
- data/app/components/primer/{dropdown → alpha/dropdown}/menu.js +0 -0
- data/app/components/primer/alpha/dropdown/menu.rb +105 -0
- data/app/components/primer/{dropdown → alpha/dropdown}/menu.ts +0 -0
- data/app/components/primer/alpha/dropdown.css +1 -0
- data/app/components/primer/alpha/dropdown.css.json +1 -0
- data/app/components/primer/{dropdown.css.map → alpha/dropdown.css.map} +1 -1
- data/app/components/primer/{dropdown.d.ts → alpha/dropdown.d.ts} +0 -0
- data/app/components/primer/{dropdown.html.erb → alpha/dropdown.html.erb} +0 -0
- data/app/components/primer/{dropdown.js → alpha/dropdown.js} +0 -0
- data/app/components/primer/{dropdown.pcss → alpha/dropdown.pcss} +1 -1
- data/app/components/primer/alpha/dropdown.rb +154 -0
- data/app/components/primer/{dropdown.ts → alpha/dropdown.ts} +0 -0
- data/app/components/primer/alpha/segmented_control.css +1 -1
- data/app/components/primer/alpha/segmented_control.css.map +1 -1
- data/app/components/primer/alpha/tab_nav.css +1 -0
- data/app/components/primer/alpha/tab_nav.css.json +1 -0
- data/app/components/primer/alpha/tab_nav.css.map +1 -0
- data/app/components/primer/alpha/tab_nav.pcss +100 -0
- data/app/components/primer/alpha/text_field.css +3 -0
- data/app/components/primer/alpha/text_field.css.json +1 -0
- data/app/components/primer/alpha/text_field.css.map +1 -0
- data/app/components/primer/alpha/text_field.pcss +683 -0
- data/app/components/primer/alpha/toggle_switch.d.ts +1 -1
- data/app/components/primer/alpha/toggle_switch.js +7 -4
- data/app/components/primer/alpha/toggle_switch.ts +7 -3
- data/app/components/primer/alpha/underline_nav.css +1 -0
- data/app/components/primer/alpha/underline_nav.css.json +1 -0
- data/app/components/primer/alpha/underline_nav.css.map +1 -0
- data/app/components/primer/alpha/underline_nav.pcss +133 -0
- data/app/components/primer/beta/border_box.css +1 -0
- data/app/components/primer/beta/border_box.css.json +1 -0
- data/app/components/primer/beta/border_box.css.map +1 -0
- data/app/components/primer/beta/border_box.pcss +284 -0
- data/app/components/primer/beta/button_group.css +1 -0
- data/app/components/primer/beta/button_group.css.json +1 -0
- data/app/components/primer/beta/button_group.css.map +1 -0
- data/app/components/primer/beta/button_group.pcss +92 -0
- data/app/components/primer/{clipboard_copy.d.ts → beta/clipboard_copy.d.ts} +0 -0
- data/app/components/primer/{clipboard_copy.html.erb → beta/clipboard_copy.html.erb} +0 -0
- data/app/components/primer/{clipboard_copy.js → beta/clipboard_copy.js} +0 -0
- data/app/components/primer/beta/clipboard_copy.rb +50 -0
- data/app/components/primer/{clipboard_copy.ts → beta/clipboard_copy.ts} +0 -0
- data/app/components/primer/beta/link.css +1 -0
- data/app/components/primer/beta/link.css.json +1 -0
- data/app/components/primer/beta/link.css.map +1 -0
- data/app/components/primer/beta/link.pcss +60 -0
- data/app/components/primer/{popover_component.css → beta/popover.css} +0 -0
- data/app/components/primer/beta/popover.css.json +1 -0
- data/app/components/primer/beta/popover.css.map +1 -0
- data/app/components/primer/{popover_component.html.erb → beta/popover.html.erb} +0 -0
- data/app/components/primer/{popover_component.pcss → beta/popover.pcss} +5 -5
- data/app/components/primer/beta/popover.rb +127 -0
- data/app/components/primer/beta/relative_time.rb +160 -0
- data/app/components/primer/button_component.css +1 -0
- data/app/components/primer/button_component.css.json +1 -0
- data/app/components/primer/button_component.css.map +1 -0
- data/app/components/primer/button_component.pcss +557 -0
- data/app/components/primer/button_component.rb +1 -1
- data/app/components/primer/clipboard_copy.rb +2 -43
- data/app/components/primer/component.rb +6 -2
- data/app/components/primer/dropdown/menu.rb +5 -90
- data/app/components/primer/dropdown.rb +2 -145
- data/app/components/primer/local_time.d.ts +1 -1
- data/app/components/primer/local_time.js +1 -1
- data/app/components/primer/local_time.rb +3 -1
- data/app/components/primer/local_time.ts +1 -1
- data/app/components/primer/menu_component.css +1 -0
- data/app/components/primer/menu_component.css.json +1 -0
- data/app/components/primer/menu_component.css.map +1 -0
- data/app/components/primer/menu_component.pcss +119 -0
- data/app/components/primer/popover_component.rb +3 -120
- data/app/components/primer/primer.d.ts +2 -2
- data/app/components/primer/primer.js +2 -2
- data/app/components/primer/primer.pcss +20 -3
- data/app/components/primer/primer.ts +2 -2
- data/app/components/primer/time_ago_component.d.ts +1 -1
- data/app/components/primer/time_ago_component.js +1 -1
- data/app/components/primer/time_ago_component.rb +2 -1
- data/app/components/primer/time_ago_component.ts +1 -1
- data/app/forms/submit_button_form.rb +8 -2
- data/app/helpers/primer/form_helper.rb +12 -0
- data/lib/postcss_mixins/clearfix.pcss +12 -0
- data/lib/primer/deprecations.rb +96 -24
- data/lib/primer/deprecations.yml +68 -0
- data/lib/primer/forms/base.rb +7 -20
- data/lib/primer/forms/base_component.rb +15 -1
- data/lib/primer/forms/button.html.erb +4 -0
- data/lib/primer/forms/button.rb +68 -0
- data/lib/primer/forms/check_box.html.erb +2 -2
- data/lib/primer/forms/check_box.rb +1 -1
- data/lib/primer/forms/check_box_group.html.erb +2 -2
- data/lib/primer/forms/dsl/button_input.rb +29 -0
- data/lib/primer/forms/dsl/input_methods.rb +7 -2
- data/lib/primer/forms/dsl/submit_button_input.rb +1 -0
- data/lib/primer/forms/dsl/text_field_input.rb +0 -7
- data/lib/primer/forms/radio_button.html.erb +2 -2
- data/lib/primer/forms/radio_button.rb +1 -1
- data/lib/primer/forms/radio_button_group.html.erb +2 -2
- data/lib/primer/forms/select_list.html.erb +1 -1
- data/lib/primer/forms/select_list.rb +4 -1
- data/lib/primer/forms/submit_button.html.erb +1 -4
- data/lib/primer/forms/submit_button.rb +1 -37
- data/lib/primer/forms/text_area.html.erb +1 -1
- data/lib/primer/forms/text_area.rb +5 -1
- data/lib/primer/forms/text_field.html.erb +1 -1
- data/lib/primer/forms/text_field.rb +11 -0
- data/lib/primer/forms/utils.rb +28 -0
- data/lib/primer/view_components/audited.rb +14 -0
- data/lib/primer/view_components/engine.rb +1 -0
- data/lib/primer/view_components/linters/clipboard_copy_component_migration_counter.rb +2 -2
- data/lib/primer/view_components/linters/deprecated_components_counter.rb +15 -4
- data/lib/primer/view_components/linters/helpers/deprecated_components_helpers.rb +3 -18
- data/lib/primer/view_components/linters/severity_schema.rb +14 -0
- data/lib/primer/view_components/version.rb +1 -1
- data/lib/rubocop/cop/primer/component_name_migration.rb +2 -2
- data/lib/tasks/docs.rake +6 -5
- data/previews/primer/alpha/auto_complete_preview.rb +12 -0
- data/previews/primer/alpha/button_marketing_preview.rb +36 -0
- data/previews/primer/alpha/dropdown_preview.rb +210 -0
- data/previews/primer/alpha/segmented_control_preview.rb +9 -6
- data/previews/primer/alpha/tab_nav_preview.rb +55 -0
- data/previews/primer/alpha/text_field_preview.rb +77 -52
- data/previews/primer/beta/border_box_preview.rb +65 -13
- data/previews/primer/beta/clipboard_copy_preview/element.html.erb +2 -0
- data/previews/primer/beta/clipboard_copy_preview.rb +39 -0
- data/previews/primer/beta/link_preview.rb +28 -0
- data/previews/primer/beta/popover_preview.rb +79 -0
- data/previews/primer/beta/relative_time_preview.rb +271 -0
- data/previews/primer/forms/forms_preview.rb +1 -0
- data/static/arguments.json +183 -73
- data/static/audited_at.json +10 -6
- data/static/constants.json +180 -50
- data/static/statuses.json +12 -8
- metadata +86 -29
- data/app/components/primer/dropdown.css +0 -1
- data/app/components/primer/dropdown.css.json +0 -1
- data/app/components/primer/image.rb +0 -7
- data/app/components/primer/popover_component.css.json +0 -1
- data/app/components/primer/popover_component.css.map +0 -1
- data/app/components/primer/progress_bar_component.rb +0 -7
- data/previews/primer/clipboard_copy_preview/element.html.erb +0 -2
- data/previews/primer/clipboard_copy_preview.rb +0 -37
- data/previews/primer/dropdown_preview.rb +0 -208
- data/previews/primer/popover_component_preview.rb +0 -34
@@ -2,97 +2,12 @@
|
|
2
2
|
|
3
3
|
module Primer
|
4
4
|
class Dropdown
|
5
|
-
#
|
6
|
-
|
7
|
-
|
8
|
-
AS_DEFAULT = :default
|
9
|
-
AS_OPTIONS = [AS_DEFAULT, :list].freeze
|
5
|
+
# :nodoc:
|
6
|
+
class Menu < Primer::Alpha::Dropdown::Menu
|
7
|
+
status :deprecated
|
10
8
|
|
11
|
-
|
12
|
-
|
13
|
-
SCHEME_DEFAULT => "",
|
14
|
-
:dark => "dropdown-menu-dark"
|
15
|
-
}.freeze
|
16
|
-
|
17
|
-
DIRECTION_DEFAULT = :se
|
18
|
-
DIRECTION_OPTIONS = [DIRECTION_DEFAULT, :sw, :w, :e, :ne, :s].freeze
|
19
|
-
|
20
|
-
# @param tag [Symbol] <%= one_of(Primer::Dropdown::Menu::Item::TAG_OPTIONS) %>.
|
21
|
-
# @param divider [Boolean] Whether the item is a divider without any function.
|
22
|
-
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
23
|
-
renders_many :items, lambda { |divider: false, **system_arguments|
|
24
|
-
Primer::Dropdown::Menu::Item.new(as: @as, divider: divider, **system_arguments)
|
25
|
-
}
|
26
|
-
|
27
|
-
# @param as [Symbol] When `as` is `:list`, wraps the menu in a `<ul>` with a `<li>` for each item.
|
28
|
-
# @param direction [Symbol] <%= one_of(Primer::Dropdown::Menu::DIRECTION_OPTIONS) %>.
|
29
|
-
# @param header [String] Header to be displayed above the menu.
|
30
|
-
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
31
|
-
def initialize(as: AS_DEFAULT, direction: DIRECTION_DEFAULT, scheme: SCHEME_DEFAULT, header: nil, **system_arguments)
|
32
|
-
@header = header
|
33
|
-
@direction = direction
|
34
|
-
@as = fetch_or_fallback(AS_OPTIONS, as, AS_DEFAULT)
|
35
|
-
|
36
|
-
@system_arguments = deny_tag_argument(**system_arguments)
|
37
|
-
@system_arguments[:tag] = "details-menu"
|
38
|
-
@system_arguments[:role] = "menu"
|
39
|
-
|
40
|
-
@system_arguments[:classes] = class_names(
|
41
|
-
@system_arguments[:classes],
|
42
|
-
"dropdown-menu",
|
43
|
-
"dropdown-menu-#{fetch_or_fallback(DIRECTION_OPTIONS, direction, DIRECTION_DEFAULT)}",
|
44
|
-
SCHEME_MAPPINGS[fetch_or_fallback(SCHEME_MAPPINGS.keys, scheme, SCHEME_DEFAULT)]
|
45
|
-
)
|
46
|
-
end
|
47
|
-
|
48
|
-
private
|
49
|
-
|
50
|
-
def list?
|
51
|
-
@as == :list
|
52
|
-
end
|
53
|
-
|
54
|
-
# Items to be rendered in the `Dropdown` menu.
|
55
|
-
class Item < Primer::Component
|
56
|
-
TAG_DEFAULT = :a
|
57
|
-
BUTTON_TAGS = [:button, :summary].freeze
|
58
|
-
TAG_OPTIONS = [TAG_DEFAULT, *BUTTON_TAGS].freeze
|
59
|
-
|
60
|
-
def initialize(as:, tag: TAG_DEFAULT, divider: false, **system_arguments)
|
61
|
-
@divider = divider
|
62
|
-
@as = as
|
63
|
-
|
64
|
-
@system_arguments = system_arguments
|
65
|
-
@system_arguments[:tag] = fetch_or_fallback(TAG_OPTIONS, tag, TAG_DEFAULT)
|
66
|
-
@system_arguments[:tag] = :li if list? && divider?
|
67
|
-
@system_arguments[:role] ||= :menuitem
|
68
|
-
@system_arguments[:role] = :separator if divider
|
69
|
-
@system_arguments[:classes] = class_names(
|
70
|
-
@system_arguments[:classes],
|
71
|
-
"dropdown-item" => !divider,
|
72
|
-
"dropdown-divider" => divider
|
73
|
-
)
|
74
|
-
end
|
75
|
-
|
76
|
-
def call
|
77
|
-
component = if BUTTON_TAGS.include?(@system_arguments[:tag])
|
78
|
-
Primer::ButtonComponent.new(scheme: :link, **@system_arguments)
|
79
|
-
else
|
80
|
-
Primer::BaseComponent.new(**@system_arguments)
|
81
|
-
end
|
82
|
-
|
83
|
-
# divider has no content
|
84
|
-
render(component) if divider?
|
85
|
-
|
86
|
-
render(component) { content }
|
87
|
-
end
|
88
|
-
|
89
|
-
def divider?
|
90
|
-
@divider
|
91
|
-
end
|
92
|
-
|
93
|
-
def list?
|
94
|
-
@as == :list
|
95
|
-
end
|
9
|
+
class Item < Primer::Alpha::Dropdown::Menu::Item
|
10
|
+
status :deprecated
|
96
11
|
end
|
97
12
|
end
|
98
13
|
end
|
@@ -1,150 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Primer
|
4
|
-
|
5
|
-
|
6
|
-
class Dropdown < Primer::Component
|
7
|
-
# Required trigger for the dropdown. Has the same arguments as <%= link_to_component(Primer::ButtonComponent) %>,
|
8
|
-
# but it is locked as a `summary` tag.
|
9
|
-
renders_one :button, lambda { |**system_arguments|
|
10
|
-
@button_arguments = system_arguments
|
11
|
-
@button_arguments[:button] = true
|
12
|
-
@button_arguments[:dropdown] = @with_caret
|
13
|
-
|
14
|
-
Primer::Content.new
|
15
|
-
}
|
16
|
-
|
17
|
-
# Required context menu for the dropdown.
|
18
|
-
#
|
19
|
-
# @param as [Symbol] When `as` is `:list`, wraps the menu in a `<ul>` with a `<li>` for each item.
|
20
|
-
# @param direction [Symbol] <%= one_of(Primer::Dropdown::Menu::DIRECTION_OPTIONS) %>
|
21
|
-
# @param scheme [Symbol] Pass `:dark` for dark mode theming
|
22
|
-
# @param header [String] Optional string to display as the header
|
23
|
-
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
24
|
-
renders_one :menu, "Primer::Dropdown::Menu"
|
25
|
-
|
26
|
-
# @example Default
|
27
|
-
# <%= render(Primer::Dropdown.new) do |c| %>
|
28
|
-
# <% c.with_button do %>
|
29
|
-
# Dropdown
|
30
|
-
# <% end %>
|
31
|
-
#
|
32
|
-
# <% c.with_menu(header: "Options") do |menu|
|
33
|
-
# menu.item { "Item 1" }
|
34
|
-
# menu.item { "Item 2" }
|
35
|
-
# menu.item { "Item 3" }
|
36
|
-
# end %>
|
37
|
-
# <% end %>
|
38
|
-
#
|
39
|
-
# @example With dividers
|
40
|
-
#
|
41
|
-
# @description
|
42
|
-
# Dividers can be used to separate a group of items. They don't have any content.
|
43
|
-
# @code
|
44
|
-
# <%= render(Primer::Dropdown.new) do |c| %>
|
45
|
-
# <% c.with_button do %>
|
46
|
-
# Dropdown
|
47
|
-
# <% end %>
|
48
|
-
#
|
49
|
-
# <% c.with_menu(header: "Options") do |menu|
|
50
|
-
# menu.item { "Item 1" }
|
51
|
-
# menu.item { "Item 2" }
|
52
|
-
# menu.item(divider: true)
|
53
|
-
# menu.item { "Item 3" }
|
54
|
-
# menu.item { "Item 4" }
|
55
|
-
# menu.item(divider: true)
|
56
|
-
# menu.item { "Item 5" }
|
57
|
-
# menu.item { "Item 6" }
|
58
|
-
# end %>
|
59
|
-
# <% end %>
|
60
|
-
#
|
61
|
-
# @example With direction
|
62
|
-
# <%= render(Primer::Dropdown.new(display: :inline_block)) do |c| %>
|
63
|
-
# <% c.with_button do %>
|
64
|
-
# Dropdown
|
65
|
-
# <% end %>
|
66
|
-
#
|
67
|
-
# <% c.with_menu(header: "Options", direction: :s) do |menu|
|
68
|
-
# menu.item { "Item 1" }
|
69
|
-
# menu.item { "Item 2" }
|
70
|
-
# menu.item { "Item 3" }
|
71
|
-
# menu.item { "Item 4" }
|
72
|
-
# end %>
|
73
|
-
# <% end %>
|
74
|
-
#
|
75
|
-
# @example With caret
|
76
|
-
# <%= render(Primer::Dropdown.new(with_caret: true)) do |c| %>
|
77
|
-
# <% c.with_button do %>
|
78
|
-
# Dropdown
|
79
|
-
# <% end %>
|
80
|
-
#
|
81
|
-
# <% c.with_menu(header: "Options") do |menu|
|
82
|
-
# menu.item { "Item 1" }
|
83
|
-
# menu.item { "Item 2" }
|
84
|
-
# menu.item { "Item 3" }
|
85
|
-
# menu.item { "Item 4" }
|
86
|
-
# end %>
|
87
|
-
# <% end %>
|
88
|
-
#
|
89
|
-
# @example Customizing the button
|
90
|
-
# <%= render(Primer::Dropdown.new) do |c| %>
|
91
|
-
# <% c.with_button(scheme: :primary, size: :small) do %>
|
92
|
-
# Dropdown
|
93
|
-
# <% end %>
|
94
|
-
#
|
95
|
-
# <% c.with_menu(header: "Options") do |menu|
|
96
|
-
# menu.item { "Item 1" }
|
97
|
-
# menu.item { "Item 2" }
|
98
|
-
# menu.item { "Item 3" }
|
99
|
-
# menu.item { "Item 4" }
|
100
|
-
# end %>
|
101
|
-
# <% end %>
|
102
|
-
#
|
103
|
-
# @example Menu as list
|
104
|
-
# <%= render(Primer::Dropdown.new) do |c| %>
|
105
|
-
# <% c.with_button do %>
|
106
|
-
# Dropdown
|
107
|
-
# <% end %>
|
108
|
-
#
|
109
|
-
# <% c.with_menu(as: :list, header: "Options") do |menu|
|
110
|
-
# menu.item { "Item 1" }
|
111
|
-
# menu.item { "Item 2" }
|
112
|
-
# menu.item(divider: true)
|
113
|
-
# menu.item { "Item 3" }
|
114
|
-
# menu.item { "Item 4" }
|
115
|
-
# end %>
|
116
|
-
# <% end %>
|
117
|
-
#
|
118
|
-
# @example Customizing menu items
|
119
|
-
# <%= render(Primer::Dropdown.new) do |c| %>
|
120
|
-
# <% c.with_button do %>
|
121
|
-
# Dropdown
|
122
|
-
# <% end %>
|
123
|
-
#
|
124
|
-
# <% c.with_menu(header: "Options") do |menu|
|
125
|
-
# menu.item(tag: :button) { "Item 1" }
|
126
|
-
# menu.item(classes: "custom-class") { "Item 2" }
|
127
|
-
# menu.item { "Item 3" }
|
128
|
-
# end %>
|
129
|
-
# <% end %>
|
130
|
-
#
|
131
|
-
# @param overlay [Symbol] <%= one_of(Primer::Beta::Details::OVERLAY_MAPPINGS.keys) %>
|
132
|
-
# @param with_caret [Boolean] Whether or not a caret should be rendered in the button.
|
133
|
-
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
134
|
-
def initialize(overlay: :default, with_caret: false, **system_arguments)
|
135
|
-
@with_caret = with_caret
|
136
|
-
|
137
|
-
@system_arguments = system_arguments
|
138
|
-
@system_arguments[:overlay] = overlay
|
139
|
-
@system_arguments[:reset] = true
|
140
|
-
@system_arguments[:classes] = class_names(
|
141
|
-
@system_arguments[:classes],
|
142
|
-
"dropdown"
|
143
|
-
)
|
144
|
-
end
|
145
|
-
|
146
|
-
def render?
|
147
|
-
button.present? && menu.present?
|
148
|
-
end
|
4
|
+
class Dropdown < Primer::Alpha::Dropdown
|
5
|
+
status :deprecated
|
149
6
|
end
|
150
7
|
end
|
@@ -1 +1 @@
|
|
1
|
-
import '@github/time-
|
1
|
+
import '@github/relative-time-element';
|
@@ -1 +1 @@
|
|
1
|
-
import '@github/time-
|
1
|
+
import '@github/relative-time-element';
|
@@ -37,7 +37,9 @@ module Primer
|
|
37
37
|
|
38
38
|
@datetime = datetime
|
39
39
|
|
40
|
-
@system_arguments[:tag] = "
|
40
|
+
@system_arguments[:tag] = "relative-time"
|
41
|
+
@system_arguments[:threshold] = "PT0S"
|
42
|
+
@system_arguments[:prefix] = ""
|
41
43
|
@system_arguments[:datetime] = datetime
|
42
44
|
|
43
45
|
@initial_text = initial_text
|
@@ -1 +1 @@
|
|
1
|
-
import '@github/time-
|
1
|
+
import '@github/relative-time-element'
|
@@ -0,0 +1 @@
|
|
1
|
+
.menu{background-color:var(--color-canvas-default);border:var(--primer-borderWidth-thin,1px) solid var(--color-border-default);border-radius:var(--primer-borderRadius-medium,6px);list-style:none;margin-bottom:var(--primer-stack-gap-normal,16px)}.menu-item{border-bottom:var(--primer-borderWidth-thin,1px) solid var(--color-border-muted);color:var(--color-fg-default);display:block;padding:var(--primer-control-medium-paddingInline-condensed,8px) var(--primer-control-medium-paddingInline-spacious,16px);position:relative}.menu-item:first-child{border-top:0;border-top-right-radius:var(--primer-borderRadius-medium,6px)}.menu-item:first-child,.menu-item:first-child:before{border-top-left-radius:var(--primer-borderRadius-medium,6px)}.menu-item:last-child{border-bottom:0;border-bottom-right-radius:var(--primer-borderRadius-medium,6px)}.menu-item:last-child,.menu-item:last-child:before{border-bottom-left-radius:var(--primer-borderRadius-medium,6px)}.menu-item:hover{background-color:var(--color-neutral-subtle);text-decoration:none}.menu-item:active{background-color:var(--color-canvas-subtle)}.menu-item.selected,.menu-item[aria-current]:not([aria-current=false]),.menu-item[aria-selected=true]{background-color:var(--color-menu-bg-active);cursor:default}:is(.menu-item.selected,.menu-item[aria-selected=true],.menu-item[aria-current]:not([aria-current=false])):before{background-color:var(--color-primer-border-active);bottom:0;content:"";left:0;position:absolute;top:0;width:2px}.menu-item .octicon{color:var(--color-fg-muted);margin-right:var(--primer-control-medium-gap,8px);text-align:center;width:16px}.menu-item .Counter{float:right;margin-left:var(--primer-control-small-gap,4px)}.menu-item .menu-warning{color:var(--color-attention-fg);float:right}.menu-item .avatar{float:left;margin-right:var(--primer-control-small-gap,4px)}.menu-item.alert .Counter{color:var(--color-danger-fg)}.menu-heading{border-bottom:var(--primer-borderWidth-thin,1px) solid var(--color-border-muted);color:var(--color-fg-default);display:block;font-size:inherit;font-weight:var(--base-text-weight-semibold,600);margin-bottom:0;margin-top:0;padding:var(--primer-control-medium-paddingInline-condensed,8px) var(--primer-control-medium-paddingInline-spacious,16px)}.menu-heading:hover{text-decoration:none}.menu-heading:first-child{border-top-left-radius:var(--primer-borderRadius-medium,6px);border-top-right-radius:var(--primer-borderRadius-medium,6px)}.menu-heading:last-child{border-bottom:0;border-bottom-left-radius:var(--primer-borderRadius-medium,6px);border-bottom-right-radius:var(--primer-borderRadius-medium,6px)}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"name":"menu_component","selectors":[".menu",".menu-item",".menu-item:first-child",".menu-item:first-child:before",".menu-item:last-child",".menu-item:last-child:before",".menu-item:hover",".menu-item:active",".menu-item.selected",".menu-item[aria-current]:not([aria-current=false])",".menu-item[aria-selected=true]",":is(.menu-item.selected",".menu-item[aria-current]:not([aria-current=false])):before",".menu-item .octicon",".menu-item .Counter",".menu-item .menu-warning",".menu-item .avatar",".menu-item.alert .Counter",".menu-heading",".menu-heading:hover",".menu-heading:first-child",".menu-heading:last-child"]}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["menu_component.pcss"],"names":[],"mappings":"AAIA,MAGE,4CAA6C,CAC7C,2EAA6E,CAC7E,mDAAqD,CAHrD,eAAgB,CADhB,iDAKF,CAEA,WAKE,gFAAkF,CADlF,6BAA8B,CAF9B,aAAc,CACd,yHAA4H,CAF5H,iBA+EF,CAzEE,uBACE,YAAa,CAEb,6DAKF,CAHE,qDAHA,4DAKA,CAGF,sBACE,eAAgB,CAChB,gEAMF,CAHE,mDAFA,+DAIA,CAGF,iBAEE,4CAA6C,CAD7C,oBAEF,CAEA,kBACE,2CACF,CAEA,sGAIE,4CAA6C,CAD7C,cAYF,CATE,kHAOE,kDAAmD,CAJnD,QAAS,CAGT,UAAW,CAFX,MAAO,CAHP,iBAAkB,CAClB,KAAM,CAGN,SAGF,CAGF,oBAGE,2BAA4B,CAD5B,iDAAmD,CAEnD,iBAAkB,CAHlB,UAIF,CAEA,oBACE,WAAY,CACZ,+CACF,CAEA,yBAEE,+BAAgC,CADhC,WAEF,CAEA,mBACE,UAAW,CACX,gDACF,CAGE,0BACE,4BACF,CAIJ,cAQE,gFAAkF,CADlF,6BAA8B,CAN9B,aAAc,CAId,iBAAkB,CAClB,gDAAkD,CAFlD,eAAgB,CADhB,YAAa,CADb,yHAsBF,CAdE,oBACE,oBACF,CAEA,0BACE,4DAA8D,CAC9D,6DACF,CAEA,yBACE,eAAgB,CAEhB,+DAAiE,CADjE,gEAEF","file":"menu_component.css","sourcesContent":["/* menu */\n\n/* A menu on the side of a page, defaults to left side. e.g. github.com/about */\n\n.menu {\n margin-bottom: var(--primer-stack-gap-normal, 16px);\n list-style: none;\n background-color: var(--color-canvas-default);\n border: var(--primer-borderWidth-thin, 1px) solid var(--color-border-default);\n border-radius: var(--primer-borderRadius-medium, 6px);\n}\n\n.menu-item {\n position: relative;\n display: block;\n padding: var(--primer-control-medium-paddingInline-condensed, 8px) var(--primer-control-medium-paddingInline-spacious, 16px);\n color: var(--color-fg-default);\n border-bottom: var(--primer-borderWidth-thin, 1px) solid var(--color-border-muted);\n\n &:first-child {\n border-top: 0;\n border-top-left-radius: var(--primer-borderRadius-medium, 6px);\n border-top-right-radius: var(--primer-borderRadius-medium, 6px);\n\n &::before {\n border-top-left-radius: var(--primer-borderRadius-medium, 6px);\n }\n }\n\n &:last-child {\n border-bottom: 0;\n border-bottom-right-radius: var(--primer-borderRadius-medium, 6px);\n border-bottom-left-radius: var(--primer-borderRadius-medium, 6px);\n\n &::before {\n border-bottom-left-radius: var(--primer-borderRadius-medium, 6px);\n }\n }\n\n &:hover {\n text-decoration: none;\n background-color: var(--color-neutral-subtle);\n }\n\n &:active {\n background-color: var(--color-canvas-subtle);\n }\n\n &.selected,\n &[aria-selected='true'],\n &[aria-current]:not([aria-current='false']) {\n cursor: default;\n background-color: var(--color-menu-bg-active);\n\n &::before {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 2px;\n content: '';\n background-color: var(--color-primer-border-active);\n }\n }\n\n & .octicon {\n width: 16px;\n margin-right: var(--primer-control-medium-gap, 8px);\n color: var(--color-fg-muted);\n text-align: center;\n }\n\n & .Counter {\n float: right;\n margin-left: var(--primer-control-small-gap, 4px);\n }\n\n & .menu-warning {\n float: right;\n color: var(--color-attention-fg);\n }\n\n & .avatar {\n float: left;\n margin-right: var(--primer-control-small-gap, 4px);\n }\n\n &.alert {\n & .Counter {\n color: var(--color-danger-fg);\n }\n }\n}\n\n.menu-heading {\n display: block;\n padding: var(--primer-control-medium-paddingInline-condensed, 8px) var(--primer-control-medium-paddingInline-spacious, 16px);\n margin-top: 0;\n margin-bottom: 0;\n font-size: inherit;\n font-weight: var(--base-text-weight-semibold, 600);\n color: var(--color-fg-default);\n border-bottom: var(--primer-borderWidth-thin, 1px) solid var(--color-border-muted);\n\n &:hover {\n text-decoration: none;\n }\n\n &:first-child {\n border-top-left-radius: var(--primer-borderRadius-medium, 6px);\n border-top-right-radius: var(--primer-borderRadius-medium, 6px);\n }\n\n &:last-child {\n border-bottom: 0;\n border-bottom-right-radius: var(--primer-borderRadius-medium, 6px);\n border-bottom-left-radius: var(--primer-borderRadius-medium, 6px);\n }\n}\n"]}
|
@@ -0,0 +1,119 @@
|
|
1
|
+
/* menu */
|
2
|
+
|
3
|
+
/* A menu on the side of a page, defaults to left side. e.g. github.com/about */
|
4
|
+
|
5
|
+
.menu {
|
6
|
+
margin-bottom: var(--primer-stack-gap-normal, 16px);
|
7
|
+
list-style: none;
|
8
|
+
background-color: var(--color-canvas-default);
|
9
|
+
border: var(--primer-borderWidth-thin, 1px) solid var(--color-border-default);
|
10
|
+
border-radius: var(--primer-borderRadius-medium, 6px);
|
11
|
+
}
|
12
|
+
|
13
|
+
.menu-item {
|
14
|
+
position: relative;
|
15
|
+
display: block;
|
16
|
+
padding: var(--primer-control-medium-paddingInline-condensed, 8px) var(--primer-control-medium-paddingInline-spacious, 16px);
|
17
|
+
color: var(--color-fg-default);
|
18
|
+
border-bottom: var(--primer-borderWidth-thin, 1px) solid var(--color-border-muted);
|
19
|
+
|
20
|
+
&:first-child {
|
21
|
+
border-top: 0;
|
22
|
+
border-top-left-radius: var(--primer-borderRadius-medium, 6px);
|
23
|
+
border-top-right-radius: var(--primer-borderRadius-medium, 6px);
|
24
|
+
|
25
|
+
&::before {
|
26
|
+
border-top-left-radius: var(--primer-borderRadius-medium, 6px);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
|
30
|
+
&:last-child {
|
31
|
+
border-bottom: 0;
|
32
|
+
border-bottom-right-radius: var(--primer-borderRadius-medium, 6px);
|
33
|
+
border-bottom-left-radius: var(--primer-borderRadius-medium, 6px);
|
34
|
+
|
35
|
+
&::before {
|
36
|
+
border-bottom-left-radius: var(--primer-borderRadius-medium, 6px);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
|
40
|
+
&:hover {
|
41
|
+
text-decoration: none;
|
42
|
+
background-color: var(--color-neutral-subtle);
|
43
|
+
}
|
44
|
+
|
45
|
+
&:active {
|
46
|
+
background-color: var(--color-canvas-subtle);
|
47
|
+
}
|
48
|
+
|
49
|
+
&.selected,
|
50
|
+
&[aria-selected='true'],
|
51
|
+
&[aria-current]:not([aria-current='false']) {
|
52
|
+
cursor: default;
|
53
|
+
background-color: var(--color-menu-bg-active);
|
54
|
+
|
55
|
+
&::before {
|
56
|
+
position: absolute;
|
57
|
+
top: 0;
|
58
|
+
bottom: 0;
|
59
|
+
left: 0;
|
60
|
+
width: 2px;
|
61
|
+
content: '';
|
62
|
+
background-color: var(--color-primer-border-active);
|
63
|
+
}
|
64
|
+
}
|
65
|
+
|
66
|
+
& .octicon {
|
67
|
+
width: 16px;
|
68
|
+
margin-right: var(--primer-control-medium-gap, 8px);
|
69
|
+
color: var(--color-fg-muted);
|
70
|
+
text-align: center;
|
71
|
+
}
|
72
|
+
|
73
|
+
& .Counter {
|
74
|
+
float: right;
|
75
|
+
margin-left: var(--primer-control-small-gap, 4px);
|
76
|
+
}
|
77
|
+
|
78
|
+
& .menu-warning {
|
79
|
+
float: right;
|
80
|
+
color: var(--color-attention-fg);
|
81
|
+
}
|
82
|
+
|
83
|
+
& .avatar {
|
84
|
+
float: left;
|
85
|
+
margin-right: var(--primer-control-small-gap, 4px);
|
86
|
+
}
|
87
|
+
|
88
|
+
&.alert {
|
89
|
+
& .Counter {
|
90
|
+
color: var(--color-danger-fg);
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
.menu-heading {
|
96
|
+
display: block;
|
97
|
+
padding: var(--primer-control-medium-paddingInline-condensed, 8px) var(--primer-control-medium-paddingInline-spacious, 16px);
|
98
|
+
margin-top: 0;
|
99
|
+
margin-bottom: 0;
|
100
|
+
font-size: inherit;
|
101
|
+
font-weight: var(--base-text-weight-semibold, 600);
|
102
|
+
color: var(--color-fg-default);
|
103
|
+
border-bottom: var(--primer-borderWidth-thin, 1px) solid var(--color-border-muted);
|
104
|
+
|
105
|
+
&:hover {
|
106
|
+
text-decoration: none;
|
107
|
+
}
|
108
|
+
|
109
|
+
&:first-child {
|
110
|
+
border-top-left-radius: var(--primer-borderRadius-medium, 6px);
|
111
|
+
border-top-right-radius: var(--primer-borderRadius-medium, 6px);
|
112
|
+
}
|
113
|
+
|
114
|
+
&:last-child {
|
115
|
+
border-bottom: 0;
|
116
|
+
border-bottom-right-radius: var(--primer-borderRadius-medium, 6px);
|
117
|
+
border-bottom-left-radius: var(--primer-borderRadius-medium, 6px);
|
118
|
+
}
|
119
|
+
}
|
@@ -1,125 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Primer
|
4
|
-
#
|
5
|
-
|
6
|
-
|
7
|
-
class PopoverComponent < Primer::Component
|
8
|
-
status :beta
|
9
|
-
|
10
|
-
CARET_DEFAULT = :top
|
11
|
-
CARET_MAPPINGS = {
|
12
|
-
CARET_DEFAULT => "",
|
13
|
-
:bottom => "Popover-message--bottom",
|
14
|
-
:bottom_right => "Popover-message--bottom-right",
|
15
|
-
:bottom_left => "Popover-message--bottom-left",
|
16
|
-
:left => "Popover-message--left",
|
17
|
-
:left_bottom => "Popover-message--left-bottom",
|
18
|
-
:left_top => "Popover-message--left-top",
|
19
|
-
:right => "Popover-message--right",
|
20
|
-
:right_bottom => "Popover-message--right-bottom",
|
21
|
-
:right_top => "Popover-message--right-top",
|
22
|
-
:top_left => "Popover-message--top-left",
|
23
|
-
:top_right => "Popover-message--top-right"
|
24
|
-
}.freeze
|
25
|
-
|
26
|
-
DEFAULT_HEADING_TAG = :h4
|
27
|
-
|
28
|
-
# The heading
|
29
|
-
#
|
30
|
-
# @param tag [Symbol] (Primer::PopoverComponent::DEFAULT_HEADING_TAG) <%= one_of(Primer::Beta::Heading::TAG_OPTIONS) %>
|
31
|
-
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
32
|
-
renders_one :heading, lambda { |tag: DEFAULT_HEADING_TAG, **system_arguments|
|
33
|
-
system_arguments[:tag] = tag
|
34
|
-
system_arguments[:mb] ||= 2
|
35
|
-
|
36
|
-
Primer::Beta::Heading.new(**system_arguments)
|
37
|
-
}
|
38
|
-
|
39
|
-
# The body
|
40
|
-
#
|
41
|
-
# @param caret [Symbol] <%= one_of(Primer::PopoverComponent::CARET_MAPPINGS.keys) %>
|
42
|
-
# @param large [Boolean] Whether to use the large version of the component.
|
43
|
-
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
44
|
-
renders_one :body, lambda { |caret: CARET_DEFAULT, large: false, **system_arguments|
|
45
|
-
@body_arguments = system_arguments
|
46
|
-
@body_arguments[:classes] = class_names(
|
47
|
-
@body_arguments[:classes],
|
48
|
-
"Popover-message Box",
|
49
|
-
CARET_MAPPINGS[fetch_or_fallback(CARET_MAPPINGS.keys, caret, CARET_DEFAULT)],
|
50
|
-
"Popover-message--large" => large
|
51
|
-
)
|
52
|
-
@body_arguments[:p] ||= 4
|
53
|
-
@body_arguments[:mt] ||= 2
|
54
|
-
@body_arguments[:mx] ||= :auto
|
55
|
-
@body_arguments[:text_align] ||= :left
|
56
|
-
@body_arguments[:box_shadow] ||= :large
|
57
|
-
|
58
|
-
Primer::Content.new
|
59
|
-
}
|
60
|
-
|
61
|
-
# @example Default
|
62
|
-
# <%= render Primer::PopoverComponent.new do |component| %>
|
63
|
-
# <% component.with_heading do %>
|
64
|
-
# Activity feed
|
65
|
-
# <% end %>
|
66
|
-
# <% component.with_body do %>
|
67
|
-
# This is the Popover body.
|
68
|
-
# <% end %>
|
69
|
-
# <% end %>
|
70
|
-
#
|
71
|
-
# @example Large
|
72
|
-
# <%= render Primer::PopoverComponent.new do |component| %>
|
73
|
-
# <% component.with_heading do %>
|
74
|
-
# Activity feed
|
75
|
-
# <% end %>
|
76
|
-
# <% component.with_body(large: true) do %>
|
77
|
-
# This is the large Popover body.
|
78
|
-
# <% end %>
|
79
|
-
# <% end %>
|
80
|
-
#
|
81
|
-
# @example Caret position
|
82
|
-
# <%= render Primer::PopoverComponent.new do |component| %>
|
83
|
-
# <% component.with_heading do %>
|
84
|
-
# Activity feed
|
85
|
-
# <% end %>
|
86
|
-
# <% component.with_body(caret: :left) do %>
|
87
|
-
# This is the Popover body.
|
88
|
-
# <% end %>
|
89
|
-
# <% end %>
|
90
|
-
#
|
91
|
-
# @example With multiple elements in the body
|
92
|
-
# <%= render Primer::PopoverComponent.new do |component| %>
|
93
|
-
# <% component.with_heading do %>
|
94
|
-
# Activity feed
|
95
|
-
# <% end %>
|
96
|
-
# <% component.with_body(caret: :left) do %>
|
97
|
-
# <p>This is the Popover body.</p>
|
98
|
-
# <%= render Primer::ButtonComponent.new(type: :submit) do %>
|
99
|
-
# Got it!
|
100
|
-
# <% end %>
|
101
|
-
# <% end %>
|
102
|
-
# <% end %>
|
103
|
-
#
|
104
|
-
# @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
|
105
|
-
def initialize(**system_arguments)
|
106
|
-
@system_arguments = deny_tag_argument(**system_arguments)
|
107
|
-
@system_arguments[:tag] = :div
|
108
|
-
@system_arguments[:classes] = class_names(
|
109
|
-
system_arguments[:classes],
|
110
|
-
"Popover"
|
111
|
-
)
|
112
|
-
@system_arguments[:position] ||= :relative
|
113
|
-
@system_arguments[:right] = false unless @system_arguments.delete(:right)
|
114
|
-
@system_arguments[:left] = false unless @system_arguments.delete(:left)
|
115
|
-
end
|
116
|
-
|
117
|
-
def render?
|
118
|
-
body.present?
|
119
|
-
end
|
120
|
-
|
121
|
-
def body_component
|
122
|
-
Primer::Box.new(**@body_arguments)
|
123
|
-
end
|
4
|
+
# :nodoc:
|
5
|
+
class PopoverComponent < Primer::Beta::Popover
|
6
|
+
status :deprecated
|
124
7
|
end
|
125
8
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import './alpha/dropdown';
|
1
2
|
import './alpha/image_crop';
|
2
3
|
import './alpha/modal_dialog';
|
3
4
|
import './alpha/nav_list';
|
@@ -6,8 +7,7 @@ import './alpha/toggle_switch';
|
|
6
7
|
import './alpha/tool_tip';
|
7
8
|
import './alpha/x_banner';
|
8
9
|
import './beta/auto_complete/auto_complete';
|
9
|
-
import './clipboard_copy';
|
10
|
-
import './dropdown';
|
10
|
+
import './beta/clipboard_copy';
|
11
11
|
import './local_time';
|
12
12
|
import './tab_container_component';
|
13
13
|
import './time_ago_component';
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import './alpha/dropdown';
|
1
2
|
import './alpha/image_crop';
|
2
3
|
import './alpha/modal_dialog';
|
3
4
|
import './alpha/nav_list';
|
@@ -6,8 +7,7 @@ import './alpha/toggle_switch';
|
|
6
7
|
import './alpha/tool_tip';
|
7
8
|
import './alpha/x_banner';
|
8
9
|
import './beta/auto_complete/auto_complete';
|
9
|
-
import './clipboard_copy';
|
10
|
-
import './dropdown';
|
10
|
+
import './beta/clipboard_copy';
|
11
11
|
import './local_time';
|
12
12
|
import './tab_container_component';
|
13
13
|
import './time_ago_component';
|
@@ -1,20 +1,37 @@
|
|
1
1
|
/* CSS component styles here */
|
2
|
+
|
3
|
+
/* alpha */
|
2
4
|
@import "./alpha/action_list.pcss";
|
5
|
+
@import "./alpha/auto_complete.pcss";
|
3
6
|
@import "./alpha/banner.pcss";
|
7
|
+
@import "./alpha/dialog.pcss";
|
8
|
+
@import "./alpha/dropdown.pcss";
|
9
|
+
@import "./alpha/tab_nav.pcss";
|
10
|
+
@import "./alpha/text_field.pcss";
|
11
|
+
@import "./alpha/button_marketing.pcss";
|
4
12
|
@import "./alpha/toggle_switch.pcss";
|
13
|
+
@import "./alpha/underline_nav.pcss";
|
5
14
|
@import "./alpha/segmented_control.pcss";
|
15
|
+
|
16
|
+
/* beta */
|
6
17
|
@import "./beta/avatar.pcss";
|
7
18
|
@import "./beta/avatar_stack.pcss";
|
19
|
+
@import "./beta/border_box.pcss";
|
20
|
+
@import "./beta/blankslate.pcss";
|
8
21
|
@import "./beta/breadcrumbs.pcss";
|
9
22
|
@import "./beta/button.pcss";
|
23
|
+
@import "./beta/button_group.pcss";
|
10
24
|
@import "./beta/counter.pcss";
|
11
25
|
@import "./beta/flash.pcss";
|
12
26
|
@import "./beta/label.pcss";
|
13
|
-
@import "./beta/
|
27
|
+
@import "./beta/link.pcss";
|
28
|
+
@import "./beta/popover.pcss";
|
14
29
|
@import "./beta/progress_bar.pcss";
|
15
30
|
@import "./beta/truncate.pcss";
|
16
|
-
|
17
|
-
|
31
|
+
|
32
|
+
/* to be renamed */
|
33
|
+
@import "./button_component.pcss";
|
34
|
+
@import "./menu_component.pcss";
|
18
35
|
@import "./state_component.pcss";
|
19
36
|
@import "./subhead_component.pcss";
|
20
37
|
@import "./timeline_item_component.pcss";
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import './alpha/dropdown'
|
1
2
|
import './alpha/image_crop'
|
2
3
|
import './alpha/modal_dialog'
|
3
4
|
import './alpha/nav_list'
|
@@ -6,8 +7,7 @@ import './alpha/toggle_switch'
|
|
6
7
|
import './alpha/tool_tip'
|
7
8
|
import './alpha/x_banner'
|
8
9
|
import './beta/auto_complete/auto_complete'
|
9
|
-
import './clipboard_copy'
|
10
|
-
import './dropdown'
|
10
|
+
import './beta/clipboard_copy'
|
11
11
|
import './local_time'
|
12
12
|
import './tab_container_component'
|
13
13
|
import './time_ago_component'
|
@@ -1 +1 @@
|
|
1
|
-
import '@github/time-
|
1
|
+
import '@github/relative-time-element';
|
@@ -1 +1 @@
|
|
1
|
-
import '@github/time-
|
1
|
+
import '@github/relative-time-element';
|
@@ -15,7 +15,8 @@ module Primer
|
|
15
15
|
@system_arguments = deny_tag_argument(**system_arguments)
|
16
16
|
@system_arguments[:datetime] = time.utc.iso8601
|
17
17
|
@system_arguments[:classes] = class_names("no-wrap", @system_arguments[:classes])
|
18
|
-
@system_arguments[:tag] = "time
|
18
|
+
@system_arguments[:tag] = "relative-time"
|
19
|
+
@system_arguments[:tense] = "past"
|
19
20
|
@system_arguments[:format] = "micro" if micro
|
20
21
|
@time = time
|
21
22
|
@micro = micro
|
@@ -1 +1 @@
|
|
1
|
-
import '@github/time-
|
1
|
+
import '@github/relative-time-element'
|