@openproject/primer-view-components 0.58.0 → 0.59.0-rc.de17187ee

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.
@@ -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,18 @@
1
+ declare class CollapsibleHeaderElement extends HTMLElement {
2
+ arrowDown: HTMLElement;
3
+ arrowUp: HTMLElement;
4
+ description: HTMLElement;
5
+ collapsed: string;
6
+ private _collapsed;
7
+ constructor();
8
+ connectedCallback(): void;
9
+ toggle(): void;
10
+ private hideAll;
11
+ private expandAll;
12
+ }
13
+ declare global {
14
+ interface Window {
15
+ CollapsibleHeaderElement: typeof CollapsibleHeaderElement;
16
+ }
17
+ }
18
+ export {};
@@ -0,0 +1,70 @@
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
+ // eslint-disable-next-line custom-elements/no-constructor
10
+ constructor() {
11
+ super();
12
+ if (!this.closest('.Box')) {
13
+ throw new Error('No surrounding BorderBox found');
14
+ }
15
+ }
16
+ connectedCallback() {
17
+ if (this.collapsed === 'true') {
18
+ this._collapsed = true;
19
+ this.hideAll();
20
+ }
21
+ else {
22
+ this._collapsed = false;
23
+ }
24
+ }
25
+ toggle() {
26
+ if (this._collapsed) {
27
+ this._collapsed = false;
28
+ this.expandAll();
29
+ }
30
+ else {
31
+ this._collapsed = true;
32
+ this.hideAll();
33
+ }
34
+ }
35
+ hideAll() {
36
+ this.arrowDown.classList.remove('d-none');
37
+ this.arrowUp.classList.add('d-none');
38
+ if (this.description !== undefined) {
39
+ this.description.classList.add('d-none');
40
+ }
41
+ this.classList.add('CollapsibleHeader--collapsed');
42
+ }
43
+ expandAll() {
44
+ this.arrowDown.classList.add('d-none');
45
+ this.arrowUp.classList.remove('d-none');
46
+ if (this.description !== undefined) {
47
+ this.description.classList.remove('d-none');
48
+ }
49
+ this.classList.remove('CollapsibleHeader--collapsed');
50
+ }
51
+ };
52
+ __decorate([
53
+ target
54
+ ], CollapsibleHeaderElement.prototype, "arrowDown", void 0);
55
+ __decorate([
56
+ target
57
+ ], CollapsibleHeaderElement.prototype, "arrowUp", void 0);
58
+ __decorate([
59
+ target
60
+ ], CollapsibleHeaderElement.prototype, "description", void 0);
61
+ __decorate([
62
+ attr
63
+ ], CollapsibleHeaderElement.prototype, "collapsed", void 0);
64
+ CollapsibleHeaderElement = __decorate([
65
+ controller
66
+ ], CollapsibleHeaderElement);
67
+ if (!window.customElements.get('collapsible-header')) {
68
+ window.CollapsibleHeaderElement = CollapsibleHeaderElement;
69
+ window.customElements.define('collapsible-header', CollapsibleHeaderElement);
70
+ }
@@ -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';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openproject/primer-view-components",
3
- "version": "0.58.0",
3
+ "version": "0.59.0-rc.de17187ee",
4
4
  "description": "ViewComponents of the Primer Design System for OpenProject",
5
5
  "main": "app/assets/javascripts/primer_view_components.js",
6
6
  "module": "app/components/primer/primer.js",
@@ -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": "",
@@ -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",
@@ -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",
@@ -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",