openproject-primer_view_components 0.89.1 → 0.90.1

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 (221) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +50 -0
  3. data/app/assets/javascripts/primer_view_components.js +1 -1
  4. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  5. data/app/assets/styles/primer_view_components.css +1 -1
  6. data/app/assets/styles/primer_view_components.css.map +1 -1
  7. data/app/components/primer/alpha/action_bar.css +1 -1
  8. data/app/components/primer/alpha/action_bar.css.map +1 -1
  9. data/app/components/primer/alpha/action_bar.pcss +0 -3
  10. data/app/components/primer/alpha/action_list.css +1 -1
  11. data/app/components/primer/alpha/action_list.css.json +4 -10
  12. data/app/components/primer/alpha/action_list.css.map +1 -1
  13. data/app/components/primer/alpha/action_list.pcss +0 -2
  14. data/app/components/primer/alpha/auto_complete.css +1 -1
  15. data/app/components/primer/alpha/auto_complete.css.json +2 -4
  16. data/app/components/primer/alpha/auto_complete.css.map +1 -1
  17. data/app/components/primer/alpha/auto_complete.pcss +3 -10
  18. data/app/components/primer/alpha/banner.css +1 -1
  19. data/app/components/primer/alpha/banner.css.map +1 -1
  20. data/app/components/primer/alpha/banner.pcss +0 -1
  21. data/app/components/primer/alpha/button_marketing.css +1 -1
  22. data/app/components/primer/alpha/button_marketing.css.map +1 -1
  23. data/app/components/primer/alpha/button_marketing.pcss +4 -4
  24. data/app/components/primer/alpha/dialog.css +1 -1
  25. data/app/components/primer/alpha/dialog.css.json +2 -1
  26. data/app/components/primer/alpha/dialog.css.map +1 -1
  27. data/app/components/primer/alpha/dialog.pcss +4 -1
  28. data/app/components/primer/alpha/dropdown.css +1 -1
  29. data/app/components/primer/alpha/dropdown.css.map +1 -1
  30. data/app/components/primer/alpha/layout.css +1 -1
  31. data/app/components/primer/alpha/layout.css.json +10 -14
  32. data/app/components/primer/alpha/layout.css.map +1 -1
  33. data/app/components/primer/alpha/layout.pcss +3 -1
  34. data/app/components/primer/alpha/menu.css +1 -1
  35. data/app/components/primer/alpha/menu.css.map +1 -1
  36. data/app/components/primer/alpha/menu.pcss +0 -6
  37. data/app/components/primer/alpha/overlay.css +1 -1
  38. data/app/components/primer/alpha/overlay.css.map +1 -1
  39. data/app/components/primer/alpha/segmented_control.css +1 -1
  40. data/app/components/primer/alpha/segmented_control.css.json +1 -2
  41. data/app/components/primer/alpha/segmented_control.css.map +1 -1
  42. data/app/components/primer/alpha/segmented_control.pcss +0 -2
  43. data/app/components/primer/alpha/select_panel.css +1 -1
  44. data/app/components/primer/alpha/select_panel.css.map +1 -1
  45. data/app/components/primer/alpha/select_panel_element.ts +1 -1
  46. data/app/components/primer/alpha/skeleton_box.css +1 -1
  47. data/app/components/primer/alpha/skeleton_box.css.map +1 -1
  48. data/app/components/primer/alpha/stack.css +1 -1
  49. data/app/components/primer/alpha/stack.css.map +1 -1
  50. data/app/components/primer/alpha/tab_nav.css +1 -1
  51. data/app/components/primer/alpha/tab_nav.css.map +1 -1
  52. data/app/components/primer/alpha/tab_nav.pcss +0 -5
  53. data/app/components/primer/alpha/text_field.css +1 -1
  54. data/app/components/primer/alpha/text_field.css.json +2 -2
  55. data/app/components/primer/alpha/text_field.css.map +1 -1
  56. data/app/components/primer/alpha/text_field.pcss +14 -7
  57. data/app/components/primer/alpha/toggle_switch.css +1 -1
  58. data/app/components/primer/alpha/toggle_switch.css.map +1 -1
  59. data/app/components/primer/alpha/toggle_switch.pcss +8 -6
  60. data/app/components/primer/alpha/tree_view/sub_tree_node.rb +1 -1
  61. data/app/components/primer/alpha/tree_view/tree_view_icon_pair_element.js +1 -1
  62. data/app/components/primer/alpha/tree_view/tree_view_icon_pair_element.ts +1 -1
  63. data/app/components/primer/alpha/tree_view/visual.rb +1 -1
  64. data/app/components/primer/alpha/tree_view.css +1 -1
  65. data/app/components/primer/alpha/tree_view.css.json +2 -2
  66. data/app/components/primer/alpha/tree_view.css.map +1 -1
  67. data/app/components/primer/alpha/tree_view.pcss +1 -0
  68. data/app/components/primer/alpha/underline_nav.css +1 -1
  69. data/app/components/primer/alpha/underline_nav.css.map +1 -1
  70. data/app/components/primer/alpha/underline_nav.pcss +0 -3
  71. data/app/components/primer/base_component.rb +1 -0
  72. data/app/components/primer/beta/avatar.css +1 -1
  73. data/app/components/primer/beta/avatar.css.map +1 -1
  74. data/app/components/primer/beta/avatar_stack.css +1 -1
  75. data/app/components/primer/beta/avatar_stack.css.map +1 -1
  76. data/app/components/primer/beta/blankslate.css +1 -1
  77. data/app/components/primer/beta/blankslate.css.map +1 -1
  78. data/app/components/primer/beta/blankslate.pcss +2 -53
  79. data/app/components/primer/beta/border_box.css +1 -1
  80. data/app/components/primer/beta/border_box.css.map +1 -1
  81. data/app/components/primer/beta/border_box.rb +18 -7
  82. data/app/components/primer/beta/breadcrumbs.css +1 -1
  83. data/app/components/primer/beta/breadcrumbs.css.json +2 -1
  84. data/app/components/primer/beta/breadcrumbs.css.map +1 -1
  85. data/app/components/primer/beta/breadcrumbs.pcss +6 -5
  86. data/app/components/primer/beta/button.css +1 -1
  87. data/app/components/primer/beta/button.css.map +1 -1
  88. data/app/components/primer/beta/button.pcss +0 -1
  89. data/app/components/primer/beta/button_group.css +1 -1
  90. data/app/components/primer/beta/button_group.css.map +1 -1
  91. data/app/components/primer/beta/button_group.rb +1 -1
  92. data/app/components/primer/beta/counter.css +1 -1
  93. data/app/components/primer/beta/counter.css.map +1 -1
  94. data/app/components/primer/beta/flash.css +1 -1
  95. data/app/components/primer/beta/flash.css.map +1 -1
  96. data/app/components/primer/beta/label.css +1 -1
  97. data/app/components/primer/beta/label.css.map +1 -1
  98. data/app/components/primer/beta/link.css +1 -1
  99. data/app/components/primer/beta/link.css.map +1 -1
  100. data/app/components/primer/beta/popover.css +1 -1
  101. data/app/components/primer/beta/popover.css.json +22 -16
  102. data/app/components/primer/beta/popover.css.map +1 -1
  103. data/app/components/primer/beta/popover.pcss +132 -101
  104. data/app/components/primer/beta/progress_bar.css +1 -1
  105. data/app/components/primer/beta/progress_bar.css.map +1 -1
  106. data/app/components/primer/beta/state.css +1 -1
  107. data/app/components/primer/beta/state.css.map +1 -1
  108. data/app/components/primer/beta/state.pcss +0 -1
  109. data/app/components/primer/beta/subhead.css +1 -1
  110. data/app/components/primer/beta/subhead.css.map +1 -1
  111. data/app/components/primer/beta/subhead.pcss +0 -2
  112. data/app/components/primer/beta/timeline_item.css +1 -1
  113. data/app/components/primer/beta/timeline_item.css.map +1 -1
  114. data/app/components/primer/beta/timeline_item.pcss +0 -5
  115. data/app/components/primer/beta/truncate.css +1 -1
  116. data/app/components/primer/beta/truncate.css.map +1 -1
  117. data/app/components/primer/beta/truncate.pcss +0 -1
  118. data/app/components/primer/component.rb +16 -0
  119. data/app/components/primer/dialog_helper.js +10 -1
  120. data/app/components/primer/dialog_helper.ts +16 -1
  121. data/app/components/primer/open_project/border_box/collapsible_header.css +1 -1
  122. data/app/components/primer/open_project/border_box/collapsible_header.css.json +1 -3
  123. data/app/components/primer/open_project/border_box/collapsible_header.css.map +1 -1
  124. data/app/components/primer/open_project/border_box/collapsible_header.html.erb +1 -1
  125. data/app/components/primer/open_project/border_box/collapsible_header.pcss +3 -1
  126. data/app/components/primer/open_project/border_box/collapsible_header.rb +10 -9
  127. data/app/components/primer/open_project/border_grid.css +1 -1
  128. data/app/components/primer/open_project/border_grid.css.map +1 -1
  129. data/app/components/primer/open_project/border_grid.pcss +11 -9
  130. data/app/components/primer/open_project/collapsible.d.ts +1 -1
  131. data/app/components/primer/open_project/collapsible.js +8 -4
  132. data/app/components/primer/open_project/collapsible.ts +10 -4
  133. data/app/components/primer/open_project/collapsible_section.html.erb +6 -10
  134. data/app/components/primer/open_project/collapsible_section.rb +8 -0
  135. data/app/components/primer/open_project/drag_handle.css +1 -1
  136. data/app/components/primer/open_project/drag_handle.css.map +1 -1
  137. data/app/components/primer/open_project/filterable_tree_view.css +1 -1
  138. data/app/components/primer/open_project/filterable_tree_view.css.map +1 -1
  139. data/app/components/primer/open_project/filterable_tree_view.html.erb +9 -5
  140. data/app/components/primer/open_project/filterable_tree_view.pcss +2 -0
  141. data/app/components/primer/open_project/filterable_tree_view.rb +9 -1
  142. data/app/components/primer/open_project/inline_message.css +1 -1
  143. data/app/components/primer/open_project/inline_message.css.map +1 -1
  144. data/app/components/primer/open_project/page_header/dialog.rb +1 -1
  145. data/app/components/primer/open_project/page_header/menu.rb +1 -1
  146. data/app/components/primer/open_project/page_header.css +1 -1
  147. data/app/components/primer/open_project/page_header.css.map +1 -1
  148. data/app/components/primer/open_project/page_header.pcss +2 -0
  149. data/app/components/primer/open_project/pagination.css +1 -1
  150. data/app/components/primer/open_project/pagination.css.map +1 -1
  151. data/app/components/primer/open_project/pagination.pcss +4 -1
  152. data/app/components/primer/open_project/side_panel/section.css +1 -1
  153. data/app/components/primer/open_project/side_panel/section.css.map +1 -1
  154. data/app/components/primer/open_project/side_panel/section.pcss +3 -3
  155. data/app/components/primer/open_project/sub_header.css +1 -1
  156. data/app/components/primer/open_project/sub_header.css.map +1 -1
  157. data/app/lib/primer/forms/acts_as_component.rb +1 -1
  158. data/app/lib/primer/forms/dsl/input.rb +5 -1
  159. data/app/lib/primer/forms/toggle_switch_form.rb +1 -1
  160. data/app/lib/primer/safe_href_helper.rb +36 -0
  161. data/lib/primer/form_components.rb +1 -1
  162. data/lib/primer/static/generate_previews.rb +1 -1
  163. data/lib/primer/view_components/version.rb +1 -1
  164. data/previews/primer/beta/border_box_preview.rb +3 -3
  165. data/previews/primer/open_project/collapsible_section_preview/with_link_in_title.html.erb +6 -0
  166. data/previews/primer/open_project/collapsible_section_preview.rb +9 -0
  167. data/previews/primer/open_project/filterable_tree_view_preview/async_custom_loading_indicator.html.erb +9 -0
  168. data/previews/primer/open_project/filterable_tree_view_preview.rb +7 -0
  169. data/static/arguments.json +12 -0
  170. data/static/classes.json +21 -0
  171. data/static/classnames.cjs +507 -0
  172. data/static/classnames.d.ts +2 -0
  173. data/static/classnames.js +509 -0
  174. data/static/info_arch.json +46 -2
  175. data/static/previews.json +2394 -2368
  176. metadata +9 -48
  177. data/app/assets/javascripts/components/primer/alpha/action_bar_element.d.ts +0 -17
  178. data/app/assets/javascripts/components/primer/alpha/action_list.d.ts +0 -16
  179. data/app/assets/javascripts/components/primer/alpha/action_menu/action_menu_element.d.ts +0 -49
  180. data/app/assets/javascripts/components/primer/alpha/action_menu/action_menu_focus_zone_stack.d.ts +0 -17
  181. data/app/assets/javascripts/components/primer/alpha/dropdown/menu.d.ts +0 -1
  182. data/app/assets/javascripts/components/primer/alpha/dropdown.d.ts +0 -1
  183. data/app/assets/javascripts/components/primer/alpha/modal_dialog.d.ts +0 -18
  184. data/app/assets/javascripts/components/primer/alpha/segmented_control.d.ts +0 -12
  185. data/app/assets/javascripts/components/primer/alpha/select_panel_element.d.ts +0 -65
  186. data/app/assets/javascripts/components/primer/alpha/tab_container.d.ts +0 -1
  187. data/app/assets/javascripts/components/primer/alpha/toggle_switch.d.ts +0 -34
  188. data/app/assets/javascripts/components/primer/alpha/tool_tip.d.ts +0 -27
  189. data/app/assets/javascripts/components/primer/alpha/tree_view/tree_view.d.ts +0 -47
  190. data/app/assets/javascripts/components/primer/alpha/tree_view/tree_view_icon_pair_element.d.ts +0 -15
  191. data/app/assets/javascripts/components/primer/alpha/tree_view/tree_view_include_fragment_element.d.ts +0 -9
  192. data/app/assets/javascripts/components/primer/alpha/tree_view/tree_view_roving_tab_index.d.ts +0 -3
  193. data/app/assets/javascripts/components/primer/alpha/tree_view/tree_view_sub_tree_node_element.d.ts +0 -47
  194. data/app/assets/javascripts/components/primer/alpha/x_banner.d.ts +0 -18
  195. data/app/assets/javascripts/components/primer/anchored_position.d.ts +0 -27
  196. data/app/assets/javascripts/components/primer/beta/auto_complete/auto_complete.d.ts +0 -1
  197. data/app/assets/javascripts/components/primer/beta/clipboard_copy.d.ts +0 -1
  198. data/app/assets/javascripts/components/primer/beta/details_toggle_element.d.ts +0 -40
  199. data/app/assets/javascripts/components/primer/beta/nav_list.d.ts +0 -20
  200. data/app/assets/javascripts/components/primer/beta/nav_list_group_element.d.ts +0 -19
  201. data/app/assets/javascripts/components/primer/beta/relative_time.d.ts +0 -1
  202. data/app/assets/javascripts/components/primer/dialog_helper.d.ts +0 -15
  203. data/app/assets/javascripts/components/primer/focus_group.d.ts +0 -19
  204. data/app/assets/javascripts/components/primer/open_project/avatar_fallback.d.ts +0 -28
  205. data/app/assets/javascripts/components/primer/open_project/border_box/collapsible_header.d.ts +0 -11
  206. data/app/assets/javascripts/components/primer/open_project/collapsible.d.ts +0 -13
  207. data/app/assets/javascripts/components/primer/open_project/collapsible_section.d.ts +0 -10
  208. data/app/assets/javascripts/components/primer/open_project/danger_dialog_form_helper.d.ts +0 -18
  209. data/app/assets/javascripts/components/primer/open_project/filterable_tree_view.d.ts +0 -29
  210. data/app/assets/javascripts/components/primer/open_project/page_header_element.d.ts +0 -9
  211. data/app/assets/javascripts/components/primer/open_project/sub_header_element.d.ts +0 -17
  212. data/app/assets/javascripts/components/primer/open_project/zen_mode_button.d.ts +0 -18
  213. data/app/assets/javascripts/components/primer/primer.d.ts +0 -42
  214. data/app/assets/javascripts/components/primer/scrollable_region.d.ts +0 -13
  215. data/app/assets/javascripts/components/primer/shared_events.d.ts +0 -26
  216. data/app/assets/javascripts/components/primer/utils.d.ts +0 -1
  217. data/app/assets/javascripts/lib/primer/forms/character_counter.d.ts +0 -41
  218. data/app/assets/javascripts/lib/primer/forms/primer_multi_input.d.ts +0 -10
  219. data/app/assets/javascripts/lib/primer/forms/primer_text_area.d.ts +0 -13
  220. data/app/assets/javascripts/lib/primer/forms/primer_text_field.d.ts +0 -30
  221. data/app/assets/javascripts/lib/primer/forms/toggle_switch_input.d.ts +0 -5
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Primer::SafeHrefHelper
4
+ #
5
+ # Detects unsafe URI schemes (e.g. `javascript:`) in `href` values so they can
6
+ # be neutralized before being rendered into HTML attributes. Without this check,
7
+ # a caller that forwards untrusted input into a component's `href:` argument can
8
+ # trigger XSS when the user clicks the rendered anchor.
9
+ module Primer
10
+ # :nodoc:
11
+ module SafeHrefHelper
12
+ # URI schemes that can execute script in the browser and are never valid
13
+ # destinations for a Primer-rendered link.
14
+ DISALLOWED_HREF_SCHEMES = %w[javascript vbscript].freeze
15
+
16
+ # Returns true when `href` starts with a disallowed URI scheme.
17
+ #
18
+ # Mirrors browser URL parsing by stripping ASCII whitespace and control
19
+ # characters (including tab/CR/LF) before extracting the scheme. This
20
+ # prevents bypasses such as `j\tavascript:...`, ` JaVaScRiPt:...`, or a
21
+ # leading null byte, all of which browsers happily execute.
22
+ def self.unsafe_href?(href)
23
+ return false if href.nil?
24
+
25
+ normalized = href.to_s.gsub(/[\u0000-\u0020]/, "")
26
+ scheme = normalized[/\A([a-z][a-z0-9+\-.]*):/i, 1]
27
+ return false unless scheme
28
+
29
+ DISALLOWED_HREF_SCHEMES.include?(scheme.downcase)
30
+ end
31
+
32
+ def unsafe_href?(href)
33
+ SafeHrefHelper.unsafe_href?(href)
34
+ end
35
+ end
36
+ end
@@ -16,7 +16,7 @@ module Primer
16
16
  @system_arguments = system_arguments
17
17
  end
18
18
 
19
- def render_in(view_context, &block)
19
+ def render_in(view_context, **_kwargs, &block)
20
20
  builder = Primer::Forms::Builder.new(
21
21
  nil, nil, view_context, {}
22
22
  )
@@ -10,7 +10,7 @@ module Primer
10
10
  module GeneratePreviews
11
11
  class << self
12
12
  def call
13
- Lookbook.previews.filter_map do |preview|
13
+ Lookbook.previews.sort_by(&:lookup_path).filter_map do |preview|
14
14
  next if preview.preview_class == Primer::FormsPreview
15
15
  next if Primer::Accessibility.ignore_preview?(preview.preview_class)
16
16
 
@@ -5,7 +5,7 @@ module Primer
5
5
  module ViewComponents
6
6
  module VERSION
7
7
  MAJOR = 0
8
- MINOR = 89
8
+ MINOR = 90
9
9
  PATCH = 1
10
10
 
11
11
  STRING = [MAJOR, MINOR, PATCH].join(".")
@@ -6,11 +6,11 @@ module Primer
6
6
  class BorderBoxPreview < ViewComponent::Preview
7
7
  # @label Playground
8
8
  #
9
+ # @param list_id text
9
10
  # @param padding [Symbol] select [default, condensed, spacious]
10
11
  # @param scheme [Symbol] select [default, neutral, info, warning]
11
- # @param list_id [String] text
12
- def playground(padding: :default, scheme: :default, list_id: nil)
13
- render(Primer::Beta::BorderBox.new(padding: padding, list_id: list_id)) do |component|
12
+ def playground(padding: :default, scheme: :default, list_id: "my-list")
13
+ render(Primer::Beta::BorderBox.new(padding: padding, list_arguments: { id: list_id })) do |component|
14
14
  component.with_header { "Header" }
15
15
  component.with_body { "Body" }
16
16
  component.with_row(scheme: scheme) { "#{scheme.to_s.capitalize} row one" }
@@ -0,0 +1,6 @@
1
+ <%= render(Primer::OpenProject::CollapsibleSection.new) do |section| %>
2
+ <% section.with_title { render(Primer::Beta::Link.new(href: "#")) { "Feedback" } } %>
3
+ <% section.with_collapsible_content do %>
4
+ <%= render(Primer::Alpha::Banner.new(mb: 3)) { "Please take one minute to answer this question" } %>
5
+ <% end %>
6
+ <% end %>
@@ -52,6 +52,15 @@ module Primer
52
52
  locals: { }
53
53
  )
54
54
  end
55
+
56
+ # @label With link in title
57
+ # @hidden
58
+ def with_link_in_title
59
+ render_with_template(
60
+ template: "primer/open_project/collapsible_section_preview/with_link_in_title",
61
+ locals: { }
62
+ )
63
+ end
55
64
  end
56
65
  end
57
66
  end
@@ -0,0 +1,9 @@
1
+ <%= render(Primer::OpenProject::FilterableTreeView.new(
2
+ src: primer_view_components.filterable_tree_view_items_tree_path(select_variant: :single)
3
+ )) do |tree_view| %>
4
+ <% tree_view.with_loading_indicator do %>
5
+ <%= render(Primer::Alpha::Stack.new(align: :center, p: 3)) do %>
6
+ <%= render(Primer::Beta::Spinner.new) %>
7
+ <% end %>
8
+ <% end %>
9
+ <% end %>
@@ -123,6 +123,13 @@ module Primer
123
123
  })
124
124
  end
125
125
 
126
+ # @label Async (with custom loading indicator)
127
+ #
128
+ # Demonstrates replacing the default skeleton loader with arbitrary content.
129
+ def async_custom_loading_indicator
130
+ render_with_template
131
+ end
132
+
126
133
  # @label Async (with server-side highlighting)
127
134
  #
128
135
  # Demonstrates `show_search_highlighting: false`: the client skips its own highlight logic
@@ -4250,6 +4250,18 @@
4250
4250
  "default": "`:default`",
4251
4251
  "description": "One of `:condensed`, `:default`, or `:spacious`."
4252
4252
  },
4253
+ {
4254
+ "name": "list_arguments",
4255
+ "type": "Hash",
4256
+ "default": "`{}`",
4257
+ "description": "[System arguments](/system-arguments)"
4258
+ },
4259
+ {
4260
+ "name": "list_id",
4261
+ "type": "String",
4262
+ "default": "N/A",
4263
+ "description": "Deprecated. Use <code>list_arguments: { id: ... }</code> instead."
4264
+ },
4253
4265
  {
4254
4266
  "name": "system_arguments",
4255
4267
  "type": "Hash",
data/static/classes.json CHANGED
@@ -560,6 +560,9 @@
560
560
  "Popover-message": [
561
561
  "Primer::Beta::Popover"
562
562
  ],
563
+ "Popover-message--bottom": [
564
+ "Primer::Beta::Popover"
565
+ ],
563
566
  "Popover-message--bottom-left": [
564
567
  "Primer::Beta::Popover"
565
568
  ],
@@ -569,9 +572,27 @@
569
572
  "Popover-message--large": [
570
573
  "Primer::Beta::Popover"
571
574
  ],
575
+ "Popover-message--left": [
576
+ "Primer::Beta::Popover"
577
+ ],
578
+ "Popover-message--left-bottom": [
579
+ "Primer::Beta::Popover"
580
+ ],
581
+ "Popover-message--left-top": [
582
+ "Primer::Beta::Popover"
583
+ ],
572
584
  "Popover-message--no-caret": [
573
585
  "Primer::Beta::Popover"
574
586
  ],
587
+ "Popover-message--right": [
588
+ "Primer::Beta::Popover"
589
+ ],
590
+ "Popover-message--right-bottom": [
591
+ "Primer::Beta::Popover"
592
+ ],
593
+ "Popover-message--right-top": [
594
+ "Primer::Beta::Popover"
595
+ ],
575
596
  "Popover-message--top-left": [
576
597
  "Primer::Beta::Popover"
577
598
  ],
@@ -0,0 +1,507 @@
1
+ module.exports = new Set([
2
+ 'ActionBar',
3
+ 'ActionBar--large',
4
+ 'ActionBar--small',
5
+ 'ActionBar-divider',
6
+ 'ActionBar-item',
7
+ 'ActionBar-item-container',
8
+ 'ActionBar-more-menu',
9
+ 'ActionList--subGroup',
10
+ 'ActionList-sectionDivider',
11
+ 'ActionList-sectionDivider--filled',
12
+ 'ActionList-sectionDivider-title',
13
+ 'ActionListContent',
14
+ 'ActionListContent--blockDescription',
15
+ 'ActionListContent--hasActiveSubItem',
16
+ 'ActionListContent--sizeLarge',
17
+ 'ActionListContent--sizeXLarge',
18
+ 'ActionListHeader',
19
+ 'ActionListItem',
20
+ 'ActionListItem--danger',
21
+ 'ActionListItem--hasSubItem',
22
+ 'ActionListItem--navActive',
23
+ 'ActionListItem--subItem',
24
+ 'ActionListItem--trailingActionHover',
25
+ 'ActionListItem--withActions',
26
+ 'ActionListItem-action',
27
+ 'ActionListItem-action--leading',
28
+ 'ActionListItem-action--trailing',
29
+ 'ActionListItem-collapseIcon',
30
+ 'ActionListItem-description',
31
+ 'ActionListItem-descriptionWrap',
32
+ 'ActionListItem-descriptionWrap--inline',
33
+ 'ActionListItem-label',
34
+ 'ActionListItem-label--truncate',
35
+ 'ActionListItem-singleSelectCheckmark',
36
+ 'ActionListItem-trailingAction',
37
+ 'ActionListItem-visual',
38
+ 'ActionListItem-visual--leading',
39
+ 'ActionListItem-visual--trailing',
40
+ 'ActionListWrap',
41
+ 'ActionListWrap--divided',
42
+ 'ActionListWrap--inset',
43
+ 'AvatarStack',
44
+ 'AvatarStack--right',
45
+ 'AvatarStack--three-plus',
46
+ 'AvatarStack--two',
47
+ 'AvatarStack-body',
48
+ 'Banner',
49
+ 'Banner--error',
50
+ 'Banner--full',
51
+ 'Banner--full-whenNarrow',
52
+ 'Banner--success',
53
+ 'Banner--upsell',
54
+ 'Banner--warning',
55
+ 'Banner-actions',
56
+ 'Banner-close',
57
+ 'Banner-message',
58
+ 'Banner-title',
59
+ 'Banner-visual',
60
+ 'BorderGrid',
61
+ 'BorderGrid--spacious',
62
+ 'BorderGrid-cell',
63
+ 'BorderGrid-row',
64
+ 'Box',
65
+ 'Box--blue',
66
+ 'Box--condensed',
67
+ 'Box--danger',
68
+ 'Box--scrollable',
69
+ 'Box--spacious',
70
+ 'Box-body',
71
+ 'Box-btn-octicon',
72
+ 'Box-footer',
73
+ 'Box-header',
74
+ 'Box-header--blue',
75
+ 'Box-row',
76
+ 'Box-row--blue',
77
+ 'Box-row--drag-button',
78
+ 'Box-row--drag-hide',
79
+ 'Box-row--focus-blue',
80
+ 'Box-row--focus-gray',
81
+ 'Box-row--gray',
82
+ 'Box-row--hover-blue',
83
+ 'Box-row--hover-gray',
84
+ 'Box-row--unread',
85
+ 'Box-row--yellow',
86
+ 'Box-row-link',
87
+ 'Box-title',
88
+ 'Button',
89
+ 'Button--danger',
90
+ 'Button--fullWidth',
91
+ 'Button--iconOnly',
92
+ 'Button--inactive',
93
+ 'Button--invisible',
94
+ 'Button--invisible-noVisuals',
95
+ 'Button--labelWrap',
96
+ 'Button--large',
97
+ 'Button--link',
98
+ 'Button--primary',
99
+ 'Button--secondary',
100
+ 'Button--small',
101
+ 'Button-content',
102
+ 'Button-content--alignStart',
103
+ 'Button-label',
104
+ 'Button-leadingVisual',
105
+ 'Button-trailingAction',
106
+ 'Button-trailingVisual',
107
+ 'Button-visual',
108
+ 'ButtonGroup',
109
+ 'CollapsibleHeader',
110
+ 'CollapsibleHeader--multi-line',
111
+ 'CollapsibleHeader-description',
112
+ 'CollapsibleHeader-title-line',
113
+ 'CollapsibleHeader-triggerArea',
114
+ 'CollapsibleSection--triggerArea',
115
+ 'Counter',
116
+ 'Counter--primary',
117
+ 'Counter--secondary',
118
+ 'DragHandle',
119
+ 'FilterableTreeViewLayout',
120
+ 'FilterableTreeViewLoadingSkeleton',
121
+ 'FilterableTreeViewTreeContainer',
122
+ 'FormControl',
123
+ 'FormControl--fullWidth',
124
+ 'FormControl-caption',
125
+ 'FormControl-check-group-wrap',
126
+ 'FormControl-checkbox',
127
+ 'FormControl-checkbox-labelWrap',
128
+ 'FormControl-checkbox-wrap',
129
+ 'FormControl-error',
130
+ 'FormControl-horizontalGroup',
131
+ 'FormControl-inlineValidation',
132
+ 'FormControl-inlineValidation--success',
133
+ 'FormControl-inlineValidation--visual',
134
+ 'FormControl-input',
135
+ 'FormControl-input-leadingVisual',
136
+ 'FormControl-input-leadingVisualWrap',
137
+ 'FormControl-input-trailingAction',
138
+ 'FormControl-input-trailingAction--divider',
139
+ 'FormControl-input-trailingVisualLabel',
140
+ 'FormControl-input-trailingVisualWrap',
141
+ 'FormControl-input-width--auto',
142
+ 'FormControl-input-width--large',
143
+ 'FormControl-input-width--medium',
144
+ 'FormControl-input-width--small',
145
+ 'FormControl-input-width--xlarge',
146
+ 'FormControl-input-width--xsmall',
147
+ 'FormControl-input-width--xxlarge',
148
+ 'FormControl-input-wrap',
149
+ 'FormControl-input-wrap--large',
150
+ 'FormControl-input-wrap--leadingVisual',
151
+ 'FormControl-input-wrap--small',
152
+ 'FormControl-input-wrap--trailingAction',
153
+ 'FormControl-input-wrap--trailingLabel',
154
+ 'FormControl-input-wrap--trailingText',
155
+ 'FormControl-input-wrap--trailingVisual',
156
+ 'FormControl-input-wrap-trailingAction--divider',
157
+ 'FormControl-inset',
158
+ 'FormControl-label',
159
+ 'FormControl-large',
160
+ 'FormControl-medium',
161
+ 'FormControl-monospace',
162
+ 'FormControl-radio',
163
+ 'FormControl-radio-group-wrap',
164
+ 'FormControl-radio-labelWrap',
165
+ 'FormControl-radio-wrap',
166
+ 'FormControl-select',
167
+ 'FormControl-select-wrap',
168
+ 'FormControl-small',
169
+ 'FormControl-spacingWrapper',
170
+ 'FormControl-success',
171
+ 'FormControl-textarea',
172
+ 'FormControl-toggleSwitchInput',
173
+ 'FormControl-warning',
174
+ 'InlineMessage',
175
+ 'InlineMessageIcon',
176
+ 'InputGroup',
177
+ 'InputGroup-input-width--auto',
178
+ 'InputGroup-input-width--large',
179
+ 'InputGroup-input-width--medium',
180
+ 'InputGroup-input-width--small',
181
+ 'InputGroup-input-width--xlarge',
182
+ 'InputGroup-input-width--xsmall',
183
+ 'InputGroup-input-width--xxlarge',
184
+ 'Label',
185
+ 'Label--accent',
186
+ 'Label--attention',
187
+ 'Label--closed',
188
+ 'Label--danger',
189
+ 'Label--done',
190
+ 'Label--info',
191
+ 'Label--inline',
192
+ 'Label--large',
193
+ 'Label--open',
194
+ 'Label--primary',
195
+ 'Label--secondary',
196
+ 'Label--severe',
197
+ 'Label--sponsors',
198
+ 'Label--success',
199
+ 'Label--warning',
200
+ 'Layout',
201
+ 'Layout--divided',
202
+ 'Layout--flowRow-until-lg',
203
+ 'Layout--flowRow-until-md',
204
+ 'Layout--gutter-condensed',
205
+ 'Layout--gutter-none',
206
+ 'Layout--gutter-spacious',
207
+ 'Layout--sidebar-narrow',
208
+ 'Layout--sidebar-wide',
209
+ 'Layout--sidebarPosition-end',
210
+ 'Layout--sidebarPosition-flowRow-end',
211
+ 'Layout--sidebarPosition-flowRow-none',
212
+ 'Layout--sidebarPosition-flowRow-start',
213
+ 'Layout--sidebarPosition-start',
214
+ 'Layout-divider',
215
+ 'Layout-divider--flowRow-hidden',
216
+ 'Layout-divider--flowRow-shallow',
217
+ 'Layout-main',
218
+ 'Layout-main-centered-lg',
219
+ 'Layout-main-centered-md',
220
+ 'Layout-main-centered-xl',
221
+ 'Layout-sidebar',
222
+ 'Link',
223
+ 'Link--muted',
224
+ 'Link--onHover',
225
+ 'Link--primary',
226
+ 'Link--secondary',
227
+ 'Link--underline',
228
+ 'Link-content',
229
+ 'Overlay',
230
+ 'Overlay--full',
231
+ 'Overlay--full-whenNarrow',
232
+ 'Overlay--fullscreen-whenNarrow',
233
+ 'Overlay--height-auto',
234
+ 'Overlay--height-large',
235
+ 'Overlay--height-medium',
236
+ 'Overlay--height-small',
237
+ 'Overlay--height-xlarge',
238
+ 'Overlay--height-xsmall',
239
+ 'Overlay--hidden',
240
+ 'Overlay--motion-scaleFade',
241
+ 'Overlay--placement-bottom-whenNarrow',
242
+ 'Overlay--placement-left',
243
+ 'Overlay--placement-left-whenNarrow',
244
+ 'Overlay--placement-right',
245
+ 'Overlay--placement-right-whenNarrow',
246
+ 'Overlay--size-auto',
247
+ 'Overlay--size-full',
248
+ 'Overlay--size-large',
249
+ 'Overlay--size-medium',
250
+ 'Overlay--size-medium-portrait',
251
+ 'Overlay--size-small',
252
+ 'Overlay--size-small-portrait',
253
+ 'Overlay--size-xlarge',
254
+ 'Overlay--size-xsmall',
255
+ 'Overlay--visibilityHidden',
256
+ 'Overlay--width-auto',
257
+ 'Overlay--width-large',
258
+ 'Overlay--width-medium',
259
+ 'Overlay--width-small',
260
+ 'Overlay--width-xlarge',
261
+ 'Overlay--width-xxlarge',
262
+ 'Overlay-actionWrap',
263
+ 'Overlay-body',
264
+ 'Overlay-body--paddingCondensed',
265
+ 'Overlay-body--paddingNone',
266
+ 'Overlay-closeButton',
267
+ 'Overlay-description',
268
+ 'Overlay-footer',
269
+ 'Overlay-footer--alignCenter',
270
+ 'Overlay-footer--alignEnd',
271
+ 'Overlay-footer--alignStart',
272
+ 'Overlay-footer--divided',
273
+ 'Overlay-form',
274
+ 'Overlay-header',
275
+ 'Overlay-header--divided',
276
+ 'Overlay-headerContentWrap',
277
+ 'Overlay-headerFilter',
278
+ 'Overlay-title',
279
+ 'Overlay-titleWrap',
280
+ 'Page',
281
+ 'PageHeader',
282
+ 'PageHeader--noBreadcrumb',
283
+ 'PageHeader--withTabNav',
284
+ 'PageHeader-actions',
285
+ 'PageHeader-breadcrumbs',
286
+ 'PageHeader-contextBar',
287
+ 'PageHeader-description',
288
+ 'PageHeader-description--underlined-links',
289
+ 'PageHeader-leadingAction',
290
+ 'PageHeader-parentLink',
291
+ 'PageHeader-tabNav',
292
+ 'PageHeader-tabNavBar',
293
+ 'PageHeader-title',
294
+ 'PageHeader-title--large',
295
+ 'PageHeader-titleBar',
296
+ 'PaginationContainer',
297
+ 'Popover',
298
+ 'Popover-message',
299
+ 'Popover-message--bottom',
300
+ 'Popover-message--bottom-left',
301
+ 'Popover-message--bottom-right',
302
+ 'Popover-message--large',
303
+ 'Popover-message--left',
304
+ 'Popover-message--left-bottom',
305
+ 'Popover-message--left-top',
306
+ 'Popover-message--no-caret',
307
+ 'Popover-message--right',
308
+ 'Popover-message--right-bottom',
309
+ 'Popover-message--right-top',
310
+ 'Popover-message--top-left',
311
+ 'Popover-message--top-right',
312
+ 'Progress',
313
+ 'Progress--large',
314
+ 'Progress--small',
315
+ 'Progress-item',
316
+ 'SegmentedControl',
317
+ 'SegmentedControl--fullWidth',
318
+ 'SegmentedControl--iconOnly',
319
+ 'SegmentedControl--medium',
320
+ 'SegmentedControl--small',
321
+ 'SegmentedControl-item',
322
+ 'SegmentedControl-item--selected',
323
+ 'SelectPanel-emptyPanel',
324
+ 'SelectPanel-loadingPanel',
325
+ 'SidePanel-sectionAction',
326
+ 'SidePanel-sectionContent',
327
+ 'SidePanel-sectionCounter',
328
+ 'SidePanel-sectionDescription',
329
+ 'SidePanel-sectionHeader',
330
+ 'SkeletonBox',
331
+ 'Stack',
332
+ 'StackItem',
333
+ 'State',
334
+ 'State--closed',
335
+ 'State--draft',
336
+ 'State--merged',
337
+ 'State--open',
338
+ 'State--small',
339
+ 'SubHeader',
340
+ 'SubHeader--emptyLeftPane',
341
+ 'SubHeader--expandedSearch',
342
+ 'SubHeader-bottomPane',
343
+ 'SubHeader-filterContainer',
344
+ 'SubHeader-filterInput_hiddenClearButton',
345
+ 'SubHeader-hiddenOnExpand',
346
+ 'SubHeader-leftPane',
347
+ 'SubHeader-middlePane',
348
+ 'SubHeader-rightPane',
349
+ 'Subhead',
350
+ 'Subhead--spacious',
351
+ 'Subhead-actions',
352
+ 'Subhead-description',
353
+ 'Subhead-heading',
354
+ 'Subhead-heading--danger',
355
+ 'Subhead-heading--large',
356
+ 'Subhead-heading--medium',
357
+ 'TimelineItem',
358
+ 'TimelineItem--condensed',
359
+ 'TimelineItem-avatar',
360
+ 'TimelineItem-badge',
361
+ 'TimelineItem-badge--success',
362
+ 'TimelineItem-body',
363
+ 'TimelineItem-break',
364
+ 'ToggleSwitch',
365
+ 'ToggleSwitch--checked',
366
+ 'ToggleSwitch--disabled',
367
+ 'ToggleSwitch--small',
368
+ 'ToggleSwitch--statusAtEnd',
369
+ 'ToggleSwitch-circleIcon',
370
+ 'ToggleSwitch-icons',
371
+ 'ToggleSwitch-knob',
372
+ 'ToggleSwitch-lineIcon',
373
+ 'ToggleSwitch-status',
374
+ 'ToggleSwitch-statusIcon',
375
+ 'ToggleSwitch-statusOff',
376
+ 'ToggleSwitch-statusOn',
377
+ 'ToggleSwitch-track',
378
+ 'TreeItemSkeletonTextStyles',
379
+ 'TreeViewFailureMessage',
380
+ 'TreeViewItem',
381
+ 'TreeViewItem-singleSelectCheckmark',
382
+ 'TreeViewItemCheckbox',
383
+ 'TreeViewItemContainer',
384
+ 'TreeViewItemContent',
385
+ 'TreeViewItemContentText',
386
+ 'TreeViewItemLeadingAction',
387
+ 'TreeViewItemLevelLine',
388
+ 'TreeViewItemToggle',
389
+ 'TreeViewItemToggleEnd',
390
+ 'TreeViewItemToggleHover',
391
+ 'TreeViewItemTrailingAction',
392
+ 'TreeViewItemVisual',
393
+ 'TreeViewRootUlStyles',
394
+ 'TreeViewSkeletonItemContainerStyle',
395
+ 'TreeViewVisuallyHidden',
396
+ 'Truncate',
397
+ 'Truncate-text',
398
+ 'Truncate-text--expandable',
399
+ 'Truncate-text--primary',
400
+ 'UnderlineNav',
401
+ 'UnderlineNav--full',
402
+ 'UnderlineNav--right',
403
+ 'UnderlineNav-actions',
404
+ 'UnderlineNav-body',
405
+ 'UnderlineNav-container',
406
+ 'UnderlineNav-item',
407
+ 'UnderlineNav-octicon',
408
+ 'alert',
409
+ 'autocomplete-body',
410
+ 'autocomplete-embedded-icon-wrap',
411
+ 'autocomplete-item',
412
+ 'autocomplete-label-inline',
413
+ 'autocomplete-label-stacked',
414
+ 'autocomplete-results',
415
+ 'avatar',
416
+ 'avatar-1',
417
+ 'avatar-2',
418
+ 'avatar-3',
419
+ 'avatar-4',
420
+ 'avatar-5',
421
+ 'avatar-6',
422
+ 'avatar-7',
423
+ 'avatar-8',
424
+ 'avatar-group-item',
425
+ 'avatar-link',
426
+ 'avatar-more',
427
+ 'avatar-small',
428
+ 'blankslate',
429
+ 'blankslate-action',
430
+ 'blankslate-capped',
431
+ 'blankslate-clean-background',
432
+ 'blankslate-container',
433
+ 'blankslate-description',
434
+ 'blankslate-heading',
435
+ 'blankslate-icon',
436
+ 'blankslate-image',
437
+ 'blankslate-large',
438
+ 'blankslate-narrow',
439
+ 'blankslate-spacious',
440
+ 'breadcrumb-item',
441
+ 'breadcrumb-item-selected',
442
+ 'btn',
443
+ 'btn-large-mktg',
444
+ 'btn-link',
445
+ 'btn-mktg',
446
+ 'btn-muted-mktg',
447
+ 'btn-octicon',
448
+ 'btn-primary',
449
+ 'btn-signup-mktg',
450
+ 'btn-small-mktg',
451
+ 'btn-subtle-mktg',
452
+ 'close-button',
453
+ 'css-truncate',
454
+ 'css-truncate-overflow',
455
+ 'css-truncate-target',
456
+ 'disabled',
457
+ 'dropdown',
458
+ 'dropdown-caret',
459
+ 'dropdown-divider',
460
+ 'dropdown-header',
461
+ 'dropdown-item',
462
+ 'dropdown-menu',
463
+ 'dropdown-menu-e',
464
+ 'dropdown-menu-ne',
465
+ 'dropdown-menu-no-overflow',
466
+ 'dropdown-menu-s',
467
+ 'dropdown-menu-se',
468
+ 'dropdown-menu-sw',
469
+ 'dropdown-menu-w',
470
+ 'dropdown-signout',
471
+ 'expandable',
472
+ 'flash',
473
+ 'flash-action',
474
+ 'flash-banner',
475
+ 'flash-close',
476
+ 'flash-error',
477
+ 'flash-full',
478
+ 'flash-messages',
479
+ 'flash-success',
480
+ 'flash-warn',
481
+ 'form-control',
482
+ 'has-modal',
483
+ 'has-modal-disable-scroll',
484
+ 'is-dragging',
485
+ 'label',
486
+ 'labels',
487
+ 'menu',
488
+ 'menu-heading',
489
+ 'menu-item',
490
+ 'menu-warning',
491
+ 'navigation-focus',
492
+ 'not-anchored',
493
+ 'octicon',
494
+ 'octicon-check',
495
+ 'selected',
496
+ 'sortable-chosen',
497
+ 'sortable-ghost',
498
+ 'state',
499
+ 'tabnav',
500
+ 'tabnav-btn',
501
+ 'tabnav-extra',
502
+ 'tabnav-tab',
503
+ 'tabnav-tabs',
504
+ 'unread',
505
+ 'warning',
506
+ 'zeroclipboard-is-hover',
507
+ ])