openproject-primer_view_components 0.58.0 → 0.59.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 (32) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/app/assets/javascripts/components/primer/open_project/border_box/collapsible_header.d.ts +17 -0
  4. data/app/assets/javascripts/components/primer/primer.d.ts +1 -0
  5. data/app/assets/javascripts/primer_view_components.js +1 -1
  6. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  7. data/app/assets/styles/primer_view_components.css +1 -1
  8. data/app/assets/styles/primer_view_components.css.map +1 -1
  9. data/app/components/primer/open_project/border_box/collapsible_header.css +1 -0
  10. data/app/components/primer/open_project/border_box/collapsible_header.css.json +10 -0
  11. data/app/components/primer/open_project/border_box/collapsible_header.css.map +1 -0
  12. data/app/components/primer/open_project/border_box/collapsible_header.d.ts +17 -0
  13. data/app/components/primer/open_project/border_box/collapsible_header.html.erb +17 -0
  14. data/app/components/primer/open_project/border_box/collapsible_header.js +66 -0
  15. data/app/components/primer/open_project/border_box/collapsible_header.pcss +19 -0
  16. data/app/components/primer/open_project/border_box/collapsible_header.rb +53 -0
  17. data/app/components/primer/open_project/border_box/collapsible_header.ts +67 -0
  18. data/app/components/primer/primer.d.ts +1 -0
  19. data/app/components/primer/primer.js +1 -0
  20. data/app/components/primer/primer.pcss +1 -0
  21. data/app/components/primer/primer.ts +1 -0
  22. data/lib/primer/view_components/version.rb +2 -2
  23. data/previews/primer/open_project/border_box/collapsible_header_preview/playground.html.erb +14 -0
  24. data/previews/primer/open_project/border_box/collapsible_header_preview.rb +88 -0
  25. data/static/arguments.json +16 -0
  26. data/static/audited_at.json +1 -0
  27. data/static/classes.json +5 -1
  28. data/static/constants.json +3 -0
  29. data/static/info_arch.json +98 -0
  30. data/static/previews.json +73 -0
  31. data/static/statuses.json +1 -0
  32. metadata +16 -4
@@ -0,0 +1 @@
1
+ .CollapsibleHeader{align-items:center;cursor:pointer;display:flex}.Box:has(.CollapsibleHeader--collapsed){border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-width:var(--borderWidth-thicker)}.Box:has(.CollapsibleHeader--collapsed) .Box-body,.Box:has(.CollapsibleHeader--collapsed) .Box-footer,.Box:has(.CollapsibleHeader--collapsed) .Box-row{display:none}
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "open_project/border_box/collapsible_header",
3
+ "selectors": [
4
+ ".CollapsibleHeader",
5
+ ".Box:has(.CollapsibleHeader--collapsed)",
6
+ ".Box:has(.CollapsibleHeader--collapsed) .Box-body",
7
+ ".Box:has(.CollapsibleHeader--collapsed) .Box-footer",
8
+ ".Box:has(.CollapsibleHeader--collapsed) .Box-row"
9
+ ]
10
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["collapsible_header.pcss"],"names":[],"mappings":"AAEA,mBAGI,kBAAmB,CAFnB,cAAe,CACf,YAEJ,CAEA,wCACI,2BAA4B,CAC5B,4BAA6B,CAC7B,8CAOJ,CALI,uJAGI,YACJ","file":"collapsible_header.css","sourcesContent":["/* CSS for BorderBox::CollapsibleHeader */\n\n.CollapsibleHeader {\n cursor: pointer;\n display: flex;\n align-items: center;\n}\n\n.Box:has(.CollapsibleHeader--collapsed) {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n border-bottom-width: var(--borderWidth-thicker);\n\n & .Box-row,\n & .Box-body,\n & .Box-footer {\n display: none;\n }\n}\n"]}
@@ -0,0 +1,17 @@
1
+ declare class CollapsibleHeaderElement extends HTMLElement {
2
+ arrowDown: HTMLElement;
3
+ arrowUp: HTMLElement;
4
+ description: HTMLElement;
5
+ collapsed: string;
6
+ private _collapsed;
7
+ connectedCallback(): void;
8
+ toggle(): void;
9
+ private hideAll;
10
+ private expandAll;
11
+ }
12
+ declare global {
13
+ interface Window {
14
+ CollapsibleHeaderElement: typeof CollapsibleHeaderElement;
15
+ }
16
+ }
17
+ export {};
@@ -0,0 +1,17 @@
1
+ <%= render(Primer::BaseComponent.new(**@system_arguments)) do %>
2
+ <%= render(Primer::OpenProject::FlexLayout.new) do |flex| %>
3
+ <%= flex.with_row do %>
4
+ <%= render(Primer::Beta::Text.new(mr: 2) ) { @title } %>
5
+ <% if @count.present? %>
6
+ <%= render(Primer::Beta::Counter.new(count: @count, mr: 2, scheme: :primary)) %>
7
+ <% end %>
8
+ <%= render(Primer::Beta::Octicon.new(icon: "chevron-up", data: { target: "collapsible-header.arrowUp" })) %>
9
+ <%= render(Primer::Beta::Octicon.new(icon: "chevron-down", display: :none, data: { target: "collapsible-header.arrowDown" })) %>
10
+ <% end %>
11
+ <%= flex.with_row do %>
12
+ <% if @description.present? %>
13
+ <%= render(Primer::Beta::Text.new(color: :subtle, data: { target: "collapsible-header.description" }) ) { @description } %>
14
+ <% end %>
15
+ <% end %>
16
+ <% end %>
17
+ <% end %>
@@ -0,0 +1,66 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { attr, controller, target } from '@github/catalyst';
8
+ let CollapsibleHeaderElement = class CollapsibleHeaderElement extends HTMLElement {
9
+ connectedCallback() {
10
+ if (!this.closest('.Box')) {
11
+ throw new Error('No surrounding BorderBox found');
12
+ }
13
+ if (this.collapsed === 'true') {
14
+ this._collapsed = true;
15
+ this.hideAll();
16
+ }
17
+ else {
18
+ this._collapsed = false;
19
+ }
20
+ }
21
+ toggle() {
22
+ if (this._collapsed) {
23
+ this._collapsed = false;
24
+ this.expandAll();
25
+ }
26
+ else {
27
+ this._collapsed = true;
28
+ this.hideAll();
29
+ }
30
+ }
31
+ hideAll() {
32
+ this.arrowDown.classList.remove('d-none');
33
+ this.arrowUp.classList.add('d-none');
34
+ if (this.description !== undefined) {
35
+ this.description.classList.add('d-none');
36
+ }
37
+ this.classList.add('CollapsibleHeader--collapsed');
38
+ }
39
+ expandAll() {
40
+ this.arrowDown.classList.add('d-none');
41
+ this.arrowUp.classList.remove('d-none');
42
+ if (this.description !== undefined) {
43
+ this.description.classList.remove('d-none');
44
+ }
45
+ this.classList.remove('CollapsibleHeader--collapsed');
46
+ }
47
+ };
48
+ __decorate([
49
+ target
50
+ ], CollapsibleHeaderElement.prototype, "arrowDown", void 0);
51
+ __decorate([
52
+ target
53
+ ], CollapsibleHeaderElement.prototype, "arrowUp", void 0);
54
+ __decorate([
55
+ target
56
+ ], CollapsibleHeaderElement.prototype, "description", void 0);
57
+ __decorate([
58
+ attr
59
+ ], CollapsibleHeaderElement.prototype, "collapsed", void 0);
60
+ CollapsibleHeaderElement = __decorate([
61
+ controller
62
+ ], CollapsibleHeaderElement);
63
+ if (!window.customElements.get('collapsible-header')) {
64
+ window.CollapsibleHeaderElement = CollapsibleHeaderElement;
65
+ window.customElements.define('collapsible-header', CollapsibleHeaderElement);
66
+ }
@@ -0,0 +1,19 @@
1
+ /* CSS for BorderBox::CollapsibleHeader */
2
+
3
+ .CollapsibleHeader {
4
+ cursor: pointer;
5
+ display: flex;
6
+ align-items: center;
7
+ }
8
+
9
+ .Box:has(.CollapsibleHeader--collapsed) {
10
+ border-bottom-left-radius: 0;
11
+ border-bottom-right-radius: 0;
12
+ border-bottom-width: var(--borderWidth-thicker);
13
+
14
+ & .Box-row,
15
+ & .Box-body,
16
+ & .Box-footer {
17
+ display: none;
18
+ }
19
+ }
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Primer
4
+ module OpenProject
5
+ module BorderBox
6
+ # Add a general description of component here
7
+ # Add additional usage considerations or best practices that may aid the user to use the component correctly.
8
+ # @accessibility Add any accessibility considerations
9
+ class CollapsibleHeader < Primer::Component
10
+ status :open_project
11
+
12
+ # @param system_arguments [Hash] <%= link_to_system_arguments_docs %>
13
+ def initialize(title:, count: nil, description: nil, collapsed: false, box:, **system_arguments)
14
+ @title = title
15
+ @count = count
16
+ @description = description
17
+ @collapsed = collapsed
18
+ @box = box
19
+ @system_arguments = system_arguments
20
+
21
+ @system_arguments[:tag] = "collapsible-header"
22
+ @system_arguments[:classes] = class_names(
23
+ system_arguments[:classes],
24
+ "CollapsibleHeader",
25
+ "CollapsibleHeader--collapsed" => @collapsed
26
+ )
27
+ @system_arguments[:data] = merge_data(
28
+ @system_arguments, {
29
+ data: {
30
+ action: "click:collapsible-header#toggle",
31
+ collapsed: @collapsed
32
+ } }
33
+ )
34
+ end
35
+
36
+ private
37
+
38
+ def before_render
39
+ content
40
+ end
41
+
42
+ def render?
43
+ raise ArgumentError, "Title must be present" unless @title.present?
44
+ raise ArgumentError, "Description cannot be a blank string" unless @description.present? || @description.nil?
45
+ raise ArgumentError, "Count cannot be a blank string" unless @count.present? || @count.nil?
46
+ raise ArgumentError, "This component must be called inside the header of a `Primer::Beta::BorderBox`" unless @box.present? && @box.is_a?(Primer::Beta::BorderBox)
47
+
48
+ true
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,67 @@
1
+ import {attr, controller, target} from '@github/catalyst'
2
+
3
+ @controller
4
+ class CollapsibleHeaderElement extends HTMLElement {
5
+ @target arrowDown: HTMLElement
6
+ @target arrowUp: HTMLElement
7
+ @target description: HTMLElement
8
+
9
+ @attr collapsed: string
10
+ private _collapsed: boolean
11
+
12
+ connectedCallback() {
13
+ if (!this.closest('.Box')) {
14
+ throw new Error('No surrounding BorderBox found')
15
+ }
16
+
17
+ if (this.collapsed === 'true') {
18
+ this._collapsed = true
19
+ this.hideAll()
20
+ } else {
21
+ this._collapsed = false
22
+ }
23
+ }
24
+
25
+ public toggle() {
26
+ if (this._collapsed) {
27
+ this._collapsed = false
28
+ this.expandAll()
29
+ } else {
30
+ this._collapsed = true
31
+ this.hideAll()
32
+ }
33
+ }
34
+
35
+ private hideAll() {
36
+ this.arrowDown.classList.remove('d-none')
37
+ this.arrowUp.classList.add('d-none')
38
+
39
+ if (this.description !== undefined) {
40
+ this.description.classList.add('d-none')
41
+ }
42
+
43
+ this.classList.add('CollapsibleHeader--collapsed')
44
+ }
45
+
46
+ private expandAll() {
47
+ this.arrowDown.classList.add('d-none')
48
+ this.arrowUp.classList.remove('d-none')
49
+
50
+ if (this.description !== undefined) {
51
+ this.description.classList.remove('d-none')
52
+ }
53
+
54
+ this.classList.remove('CollapsibleHeader--collapsed')
55
+ }
56
+ }
57
+
58
+ declare global {
59
+ interface Window {
60
+ CollapsibleHeaderElement: typeof CollapsibleHeaderElement
61
+ }
62
+ }
63
+
64
+ if (!window.customElements.get('collapsible-header')) {
65
+ window.CollapsibleHeaderElement = CollapsibleHeaderElement
66
+ window.customElements.define('collapsible-header', CollapsibleHeaderElement)
67
+ }
@@ -30,3 +30,4 @@ import './open_project/page_header_element';
30
30
  import './open_project/zen_mode_button';
31
31
  import './open_project/sub_header_element';
32
32
  import './open_project/danger_dialog_form_helper';
33
+ import './open_project/border_box/collapsible_header';
@@ -30,3 +30,4 @@ import './open_project/page_header_element';
30
30
  import './open_project/zen_mode_button';
31
31
  import './open_project/sub_header_element';
32
32
  import './open_project/danger_dialog_form_helper';
33
+ import './open_project/border_box/collapsible_header';
@@ -49,3 +49,4 @@
49
49
  @import "./open_project/input_group.pcss";
50
50
  @import "./open_project/sub_header.pcss";
51
51
  @import "./open_project/side_panel/section.pcss";
52
+ @import "./open_project/border_box/collapsible_header.pcss";
@@ -30,3 +30,4 @@ import './open_project/page_header_element'
30
30
  import './open_project/zen_mode_button'
31
31
  import './open_project/sub_header_element'
32
32
  import './open_project/danger_dialog_form_helper'
33
+ import './open_project/border_box/collapsible_header'
@@ -5,8 +5,8 @@ module Primer
5
5
  module ViewComponents
6
6
  module VERSION
7
7
  MAJOR = 0
8
- MINOR = 58
9
- PATCH = 0
8
+ MINOR = 59
9
+ PATCH = 1
10
10
 
11
11
  STRING = [MAJOR, MINOR, PATCH].join(".")
12
12
  end
@@ -0,0 +1,14 @@
1
+ <%= render(Primer::Beta::BorderBox.new) do |component| %>
2
+ <% component.with_header do %>
3
+ <%= render(Primer::OpenProject::BorderBox::CollapsibleHeader.new(box: component,
4
+ title: title,
5
+ description: description,
6
+ count: count,
7
+ collapsed: collapsed)) %>
8
+ <% end %>
9
+ <% component.with_body { "Body" } %>
10
+ <% component.with_row { "Row 1" } %>
11
+ <% component.with_row { "Row 2" } %>
12
+ <% component.with_row { "Row 3" } %>
13
+ <% component.with_footer { "Footer" } %>
14
+ <% end %>
@@ -0,0 +1,88 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Setup Playground to use all available component props
4
+ # Setup Features to use individual component props and combinations
5
+
6
+ module Primer
7
+ module OpenProject
8
+ module BorderBox
9
+ # @label CollapsibleHeader
10
+ class CollapsibleHeaderPreview < ViewComponent::Preview
11
+ # @label Playground
12
+ # @param title [String]
13
+ # @param description [String]
14
+ # @param collapsed toggle
15
+ # @param count [Integer]
16
+ def playground(
17
+ title: "Backlog",
18
+ description: "This backlog is unique to this one-time meeting. You can drag items in and out to add or remove them from the meeting agenda.",
19
+ count: 42,
20
+ collapsed: false
21
+ )
22
+ render_with_template(locals: {
23
+ title: title,
24
+ description: description,
25
+ count: count,
26
+ collapsed: collapsed
27
+ })
28
+ end
29
+
30
+ # @label Default
31
+ # @snapshot
32
+ def default
33
+ render_with_template(
34
+ template: "primer/open_project/border_box/collapsible_header_preview/playground",
35
+ locals: {
36
+ title: "Backlog",
37
+ description: nil,
38
+ count: nil,
39
+ collapsed: false
40
+ }
41
+ )
42
+ end
43
+
44
+ # @label With counter
45
+ # @snapshot
46
+ def with_count
47
+ render_with_template(
48
+ template: "primer/open_project/border_box/collapsible_header_preview/playground",
49
+ locals: {
50
+ title: "Backlog",
51
+ description: nil,
52
+ count: 42,
53
+ collapsed: false
54
+ }
55
+ )
56
+ end
57
+
58
+ # @label With description text
59
+ # @snapshot
60
+ def with_description
61
+ render_with_template(
62
+ template: "primer/open_project/border_box/collapsible_header_preview/playground",
63
+ locals: {
64
+ title: "Backlog",
65
+ description: "This backlog is unique to this one-time meeting. You can drag items in and out to add or remove them from the meeting agenda.",
66
+ count: nil,
67
+ collapsed: false
68
+ }
69
+ )
70
+ end
71
+
72
+ # @label Collapsed initially
73
+ # @snapshot
74
+ def collapsed
75
+ render_with_template(
76
+ template: "primer/open_project/border_box/collapsible_header_preview/playground",
77
+ locals: {
78
+ title: "Backlog",
79
+ description: "This backlog is unique to this one-time meeting. You can drag items in and out to add or remove them from the meeting agenda.",
80
+ count: nil,
81
+ collapsed: true
82
+ }
83
+ )
84
+ end
85
+ end
86
+ end
87
+ end
88
+ end
@@ -5018,6 +5018,22 @@
5018
5018
  }
5019
5019
  ]
5020
5020
  },
5021
+ {
5022
+ "component": "OpenProject::BorderBox::CollapsibleHeader",
5023
+ "status": "open_project",
5024
+ "a11y_reviewed": false,
5025
+ "short_name": "OpenProjectBorderBoxCollapsibleHeader",
5026
+ "source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/border_box/collapsible_header.rb",
5027
+ "lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/border_box/collapsible_header/default/",
5028
+ "parameters": [
5029
+ {
5030
+ "name": "system_arguments",
5031
+ "type": "Hash",
5032
+ "default": "N/A",
5033
+ "description": "[System arguments](/system-arguments)"
5034
+ }
5035
+ ]
5036
+ },
5021
5037
  {
5022
5038
  "component": "OpenProject::BorderGrid",
5023
5039
  "status": "open_project",
@@ -117,6 +117,7 @@
117
117
  "Primer::IconButton": "",
118
118
  "Primer::LayoutComponent": "",
119
119
  "Primer::Navigation::TabComponent": "",
120
+ "Primer::OpenProject::BorderBox::CollapsibleHeader": "",
120
121
  "Primer::OpenProject::BorderGrid": "",
121
122
  "Primer::OpenProject::BorderGrid::Cell": "",
122
123
  "Primer::OpenProject::DangerDialog": "",
data/static/classes.json CHANGED
@@ -114,7 +114,8 @@
114
114
  "Primer::OpenProject::BorderGrid"
115
115
  ],
116
116
  "Box": [
117
- "Primer::Beta::BorderBox"
117
+ "Primer::Beta::BorderBox",
118
+ "Primer::OpenProject::BorderBox::CollapsibleHeader"
118
119
  ],
119
120
  "Box--blue": [
120
121
  "Primer::Beta::BorderBox"
@@ -239,6 +240,9 @@
239
240
  "ButtonGroup": [
240
241
  "Primer::Beta::ButtonGroup"
241
242
  ],
243
+ "CollapsibleHeader": [
244
+ "Primer::OpenProject::BorderBox::CollapsibleHeader"
245
+ ],
242
246
  "Counter": [
243
247
  "Primer::Beta::Counter"
244
248
  ],
@@ -1562,6 +1562,9 @@
1562
1562
  "Primer::Navigation::TabComponent": {
1563
1563
  "GeneratedSlotMethods": "Primer::Navigation::TabComponent::GeneratedSlotMethods"
1564
1564
  },
1565
+ "Primer::OpenProject::BorderBox::CollapsibleHeader": {
1566
+ "GeneratedSlotMethods": "Primer::OpenProject::BorderBox::CollapsibleHeader::GeneratedSlotMethods"
1567
+ },
1565
1568
  "Primer::OpenProject::BorderGrid": {
1566
1569
  "Cell": "Primer::OpenProject::BorderGrid::Cell",
1567
1570
  "GeneratedSlotMethods": "Primer::OpenProject::BorderGrid::GeneratedSlotMethods"
@@ -17446,6 +17446,104 @@
17446
17446
 
17447
17447
  ]
17448
17448
  },
17449
+ {
17450
+ "fully_qualified_name": "Primer::OpenProject::BorderBox::CollapsibleHeader",
17451
+ "description": "Add a general description of component here\nAdd additional usage considerations or best practices that may aid the user to use the component correctly.",
17452
+ "accessibility_docs": "Add any accessibility considerations",
17453
+ "is_form_component": false,
17454
+ "is_published": true,
17455
+ "requires_js": false,
17456
+ "component": "OpenProject::BorderBox::CollapsibleHeader",
17457
+ "status": "open_project",
17458
+ "a11y_reviewed": false,
17459
+ "short_name": "OpenProjectBorderBoxCollapsibleHeader",
17460
+ "source": "https://github.com/primer/view_components/tree/main/app/components/primer/open_project/border_box/collapsible_header.rb",
17461
+ "lookbook": "https://primer.style/view-components/lookbook/inspect/primer/open_project/border_box/collapsible_header/default/",
17462
+ "parameters": [
17463
+ {
17464
+ "name": "system_arguments",
17465
+ "type": "Hash",
17466
+ "default": "N/A",
17467
+ "description": "{{link_to_system_arguments_docs}}"
17468
+ }
17469
+ ],
17470
+ "slots": [
17471
+
17472
+ ],
17473
+ "methods": [
17474
+
17475
+ ],
17476
+ "previews": [
17477
+ {
17478
+ "preview_path": "primer/open_project/border_box/collapsible_header/playground",
17479
+ "name": "playground",
17480
+ "snapshot": "false",
17481
+ "skip_rules": {
17482
+ "wont_fix": [
17483
+ "region"
17484
+ ],
17485
+ "will_fix": [
17486
+ "color-contrast"
17487
+ ]
17488
+ }
17489
+ },
17490
+ {
17491
+ "preview_path": "primer/open_project/border_box/collapsible_header/default",
17492
+ "name": "default",
17493
+ "snapshot": "true",
17494
+ "skip_rules": {
17495
+ "wont_fix": [
17496
+ "region"
17497
+ ],
17498
+ "will_fix": [
17499
+ "color-contrast"
17500
+ ]
17501
+ }
17502
+ },
17503
+ {
17504
+ "preview_path": "primer/open_project/border_box/collapsible_header/with_count",
17505
+ "name": "with_count",
17506
+ "snapshot": "true",
17507
+ "skip_rules": {
17508
+ "wont_fix": [
17509
+ "region"
17510
+ ],
17511
+ "will_fix": [
17512
+ "color-contrast"
17513
+ ]
17514
+ }
17515
+ },
17516
+ {
17517
+ "preview_path": "primer/open_project/border_box/collapsible_header/with_description",
17518
+ "name": "with_description",
17519
+ "snapshot": "true",
17520
+ "skip_rules": {
17521
+ "wont_fix": [
17522
+ "region"
17523
+ ],
17524
+ "will_fix": [
17525
+ "color-contrast"
17526
+ ]
17527
+ }
17528
+ },
17529
+ {
17530
+ "preview_path": "primer/open_project/border_box/collapsible_header/collapsed",
17531
+ "name": "collapsed",
17532
+ "snapshot": "true",
17533
+ "skip_rules": {
17534
+ "wont_fix": [
17535
+ "region"
17536
+ ],
17537
+ "will_fix": [
17538
+ "color-contrast"
17539
+ ]
17540
+ }
17541
+ }
17542
+ ],
17543
+ "subcomponents": [
17544
+
17545
+ ]
17546
+ },
17449
17547
  {
17450
17548
  "fully_qualified_name": "Primer::OpenProject::BorderGrid",
17451
17549
  "description": "A set of blocks that are shown below each other with separator lines in between",
data/static/previews.json CHANGED
@@ -2957,6 +2957,79 @@
2957
2957
  }
2958
2958
  ]
2959
2959
  },
2960
+ {
2961
+ "name": "collapsible_header",
2962
+ "component": "OpenProject::BorderBox::CollapsibleHeader",
2963
+ "status": "open_project",
2964
+ "lookup_path": "primer/open_project/border_box/collapsible_header",
2965
+ "examples": [
2966
+ {
2967
+ "preview_path": "primer/open_project/border_box/collapsible_header/playground",
2968
+ "name": "playground",
2969
+ "snapshot": "false",
2970
+ "skip_rules": {
2971
+ "wont_fix": [
2972
+ "region"
2973
+ ],
2974
+ "will_fix": [
2975
+ "color-contrast"
2976
+ ]
2977
+ }
2978
+ },
2979
+ {
2980
+ "preview_path": "primer/open_project/border_box/collapsible_header/default",
2981
+ "name": "default",
2982
+ "snapshot": "true",
2983
+ "skip_rules": {
2984
+ "wont_fix": [
2985
+ "region"
2986
+ ],
2987
+ "will_fix": [
2988
+ "color-contrast"
2989
+ ]
2990
+ }
2991
+ },
2992
+ {
2993
+ "preview_path": "primer/open_project/border_box/collapsible_header/with_count",
2994
+ "name": "with_count",
2995
+ "snapshot": "true",
2996
+ "skip_rules": {
2997
+ "wont_fix": [
2998
+ "region"
2999
+ ],
3000
+ "will_fix": [
3001
+ "color-contrast"
3002
+ ]
3003
+ }
3004
+ },
3005
+ {
3006
+ "preview_path": "primer/open_project/border_box/collapsible_header/with_description",
3007
+ "name": "with_description",
3008
+ "snapshot": "true",
3009
+ "skip_rules": {
3010
+ "wont_fix": [
3011
+ "region"
3012
+ ],
3013
+ "will_fix": [
3014
+ "color-contrast"
3015
+ ]
3016
+ }
3017
+ },
3018
+ {
3019
+ "preview_path": "primer/open_project/border_box/collapsible_header/collapsed",
3020
+ "name": "collapsed",
3021
+ "snapshot": "true",
3022
+ "skip_rules": {
3023
+ "wont_fix": [
3024
+ "region"
3025
+ ],
3026
+ "will_fix": [
3027
+ "color-contrast"
3028
+ ]
3029
+ }
3030
+ }
3031
+ ]
3032
+ },
2960
3033
  {
2961
3034
  "name": "counter",
2962
3035
  "component": "Counter",
data/static/statuses.json CHANGED
@@ -117,6 +117,7 @@
117
117
  "Primer::IconButton": "deprecated",
118
118
  "Primer::LayoutComponent": "deprecated",
119
119
  "Primer::Navigation::TabComponent": "deprecated",
120
+ "Primer::OpenProject::BorderBox::CollapsibleHeader": "open_project",
120
121
  "Primer::OpenProject::BorderGrid": "open_project",
121
122
  "Primer::OpenProject::BorderGrid::Cell": "open_project",
122
123
  "Primer::OpenProject::DangerDialog": "open_project",