openproject-primer_view_components 0.64.1 → 0.65.0

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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +12 -0
  3. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view.d.ts +29 -0
  4. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_icon_pair_element.d.ts +15 -0
  5. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_include_fragment_element.d.ts +9 -0
  6. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_roving_tab_index.d.ts +3 -0
  7. data/app/assets/javascripts/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.d.ts +38 -0
  8. data/app/assets/javascripts/components/primer/primer.d.ts +4 -0
  9. data/app/assets/javascripts/components/primer/shared_events.d.ts +15 -0
  10. data/app/assets/javascripts/primer_view_components.js +1 -1
  11. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  12. data/app/assets/styles/primer_view_components.css +1 -1
  13. data/app/assets/styles/primer_view_components.css.map +1 -1
  14. data/app/components/primer/alpha/select_panel.css +1 -1
  15. data/app/components/primer/alpha/select_panel.css.json +2 -2
  16. data/app/components/primer/alpha/select_panel.css.map +1 -1
  17. data/app/components/primer/alpha/select_panel.html.erb +1 -1
  18. data/app/components/primer/alpha/select_panel.pcss +5 -2
  19. data/app/components/primer/beta/spinner.html.erb +1 -1
  20. data/app/components/primer/beta/spinner.rb +2 -0
  21. data/app/components/primer/open_project/file_tree_view/directory_node.html.erb +5 -0
  22. data/app/components/primer/open_project/file_tree_view/directory_node.rb +24 -0
  23. data/app/components/primer/open_project/file_tree_view/file_node.html.erb +2 -0
  24. data/app/components/primer/open_project/file_tree_view/file_node.rb +14 -0
  25. data/app/components/primer/open_project/file_tree_view.rb +15 -0
  26. data/app/components/primer/open_project/skeleton_box.css +1 -0
  27. data/app/components/primer/open_project/skeleton_box.css.json +6 -0
  28. data/app/components/primer/open_project/skeleton_box.css.map +1 -0
  29. data/app/components/primer/open_project/skeleton_box.html.erb +1 -0
  30. data/app/components/primer/open_project/skeleton_box.pcss +30 -0
  31. data/app/components/primer/open_project/skeleton_box.rb +27 -0
  32. data/app/components/primer/open_project/tree_view/icon.html.erb +1 -0
  33. data/app/components/primer/open_project/tree_view/icon.rb +22 -0
  34. data/app/components/primer/open_project/tree_view/icon_pair.html.erb +13 -0
  35. data/app/components/primer/open_project/tree_view/icon_pair.rb +42 -0
  36. data/app/components/primer/open_project/tree_view/leading_action.html.erb +3 -0
  37. data/app/components/primer/open_project/tree_view/leading_action.rb +18 -0
  38. data/app/components/primer/open_project/tree_view/leaf_node.html.erb +18 -0
  39. data/app/components/primer/open_project/tree_view/leaf_node.rb +96 -0
  40. data/app/components/primer/open_project/tree_view/loading_failure_message.html.erb +13 -0
  41. data/app/components/primer/open_project/tree_view/loading_failure_message.rb +31 -0
  42. data/app/components/primer/open_project/tree_view/node.html.erb +32 -0
  43. data/app/components/primer/open_project/tree_view/node.rb +155 -0
  44. data/app/components/primer/open_project/tree_view/skeleton_loader.html.erb +23 -0
  45. data/app/components/primer/open_project/tree_view/skeleton_loader.rb +36 -0
  46. data/app/components/primer/open_project/tree_view/spinner_loader.html.erb +20 -0
  47. data/app/components/primer/open_project/tree_view/spinner_loader.rb +33 -0
  48. data/app/components/primer/open_project/tree_view/sub_tree.html.erb +21 -0
  49. data/app/components/primer/open_project/tree_view/sub_tree.rb +106 -0
  50. data/app/components/primer/open_project/tree_view/sub_tree_container.html.erb +3 -0
  51. data/app/components/primer/open_project/tree_view/sub_tree_container.rb +39 -0
  52. data/app/components/primer/open_project/tree_view/sub_tree_node.html.erb +49 -0
  53. data/app/components/primer/open_project/tree_view/sub_tree_node.rb +172 -0
  54. data/app/components/primer/open_project/tree_view/tree_view.d.ts +29 -0
  55. data/app/components/primer/open_project/tree_view/tree_view.js +238 -0
  56. data/app/components/primer/open_project/tree_view/tree_view.ts +257 -0
  57. data/app/components/primer/open_project/tree_view/tree_view_icon_pair_element.d.ts +15 -0
  58. data/app/components/primer/open_project/tree_view/tree_view_icon_pair_element.js +62 -0
  59. data/app/components/primer/open_project/tree_view/tree_view_icon_pair_element.ts +56 -0
  60. data/app/components/primer/open_project/tree_view/tree_view_include_fragment_element.d.ts +9 -0
  61. data/app/components/primer/open_project/tree_view/tree_view_include_fragment_element.js +29 -0
  62. data/app/components/primer/open_project/tree_view/tree_view_include_fragment_element.ts +29 -0
  63. data/app/components/primer/open_project/tree_view/tree_view_roving_tab_index.d.ts +3 -0
  64. data/app/components/primer/open_project/tree_view/tree_view_roving_tab_index.js +126 -0
  65. data/app/components/primer/open_project/tree_view/tree_view_roving_tab_index.ts +156 -0
  66. data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.d.ts +38 -0
  67. data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.js +362 -0
  68. data/app/components/primer/open_project/tree_view/tree_view_sub_tree_node_element.ts +402 -0
  69. data/app/components/primer/open_project/tree_view/visual.html.erb +14 -0
  70. data/app/components/primer/open_project/tree_view/visual.rb +27 -0
  71. data/app/components/primer/open_project/tree_view.css +1 -0
  72. data/app/components/primer/open_project/tree_view.css.json +42 -0
  73. data/app/components/primer/open_project/tree_view.css.map +1 -0
  74. data/app/components/primer/open_project/tree_view.html.erb +7 -0
  75. data/app/components/primer/open_project/tree_view.pcss +319 -0
  76. data/app/components/primer/open_project/tree_view.rb +367 -0
  77. data/app/components/primer/primer.d.ts +4 -0
  78. data/app/components/primer/primer.js +4 -0
  79. data/app/components/primer/primer.pcss +2 -0
  80. data/app/components/primer/primer.ts +4 -0
  81. data/app/components/primer/shared_events.d.ts +15 -0
  82. data/app/components/primer/shared_events.ts +19 -0
  83. data/app/lib/primer/forms/acts_as_component.rb +1 -12
  84. data/lib/primer/view_components/version.rb +2 -2
  85. data/previews/primer/open_project/file_tree_view_preview/default.html.erb +16 -0
  86. data/previews/primer/open_project/file_tree_view_preview/playground.html.erb +4 -0
  87. data/previews/primer/open_project/file_tree_view_preview.rb +69 -0
  88. data/previews/primer/open_project/skeleton_box_preview.rb +20 -0
  89. data/previews/primer/open_project/tree_view_preview/default.html.erb +24 -0
  90. data/previews/primer/open_project/tree_view_preview/empty.html.erb +10 -0
  91. data/previews/primer/open_project/tree_view_preview/leaf_node_playground.html.erb +15 -0
  92. data/previews/primer/open_project/tree_view_preview/loading_failure.html.erb +36 -0
  93. data/previews/primer/open_project/tree_view_preview/loading_skeleton.html.erb +12 -0
  94. data/previews/primer/open_project/tree_view_preview/loading_spinner.html.erb +12 -0
  95. data/previews/primer/open_project/tree_view_preview/playground.html.erb +4 -0
  96. data/previews/primer/open_project/tree_view_preview.rb +139 -0
  97. data/static/arguments.json +388 -0
  98. data/static/audited_at.json +17 -0
  99. data/static/classes.json +15 -0
  100. data/static/constants.json +83 -0
  101. data/static/info_arch.json +1367 -0
  102. data/static/previews.json +167 -0
  103. data/static/statuses.json +17 -0
  104. metadata +75 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 51a6a08eec53232569265c20b028b64bd73575e61f69cafb649319b3f5fd6bed
4
- data.tar.gz: 5d8ebae319aeb125ae8739720c4c74c97b3f602fb178228422659680400ed41e
3
+ metadata.gz: 60815e1630ca2004a10e077be1bdc12ba6cc4a26e25e34764368eb197513aedf
4
+ data.tar.gz: 605cc966fa75c626a1e4b5553c950c0b5706eba07a57f633ca6899348dd2091f
5
5
  SHA512:
6
- metadata.gz: 8fcdeb436ee8bd0930c1b1dfc492fad5ef702abc5e6acc702a1922c278187dc0c548ee24e1f457c82f6b160ce244949484d747ee9f4579ab1b19d122eb9e4e9e
7
- data.tar.gz: 684850c98abce3482f387c4bca3ed5244bc2d3bae0cf76f62e3e3a2fa6bf5b3ae69f1e9de10ad2b541786fbd446b13d4afcce1568197e90d8d1468ab88cb56f6
6
+ metadata.gz: b8a5127192525a81115fe9bd3abdeda9e26e315cf0c97b0b8c57c1051e6f51f57e80c2bd87cbd46e668a65a09f793190cbd23f44f76131c794fe5b1ffc65f091
7
+ data.tar.gz: 3a8d64a39c5b4a264d1416d89a5066e50881c4e84d2e5094f1b9e93ad49e6666e1c64d498462706084fbd7add4395b330100202e23508575c60675211beda8af
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.65.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#295](https://github.com/opf/primer_view_components/pull/295) [`48d3acd`](https://github.com/opf/primer_view_components/commit/48d3acd10d460147539f7c0e1d5537d68535825c) Thanks [@HDinger](https://github.com/HDinger)! - Introduce the TreeView component
8
+
9
+ ### Patch Changes
10
+
11
+ - [#295](https://github.com/opf/primer_view_components/pull/295) [`48d3acd`](https://github.com/opf/primer_view_components/commit/48d3acd10d460147539f7c0e1d5537d68535825c) Thanks [@HDinger](https://github.com/HDinger)! - Remove overridden capture method in forms code.
12
+
13
+ - [#295](https://github.com/opf/primer_view_components/pull/295) [`48d3acd`](https://github.com/opf/primer_view_components/commit/48d3acd10d460147539f7c0e1d5537d68535825c) Thanks [@HDinger](https://github.com/HDinger)! - Update the SelectPanel no results pane to a smaller height
14
+
3
15
  ## 0.64.1
4
16
 
5
17
  ### Patch Changes
@@ -0,0 +1,29 @@
1
+ import { TreeViewSubTreeNodeElement } from './tree_view_sub_tree_node_element';
2
+ import type { TreeViewNodeType, TreeViewCheckedValue, TreeViewNodeInfo } from '../../shared_events';
3
+ export declare class TreeViewElement extends HTMLElement {
4
+ #private;
5
+ connectedCallback(): void;
6
+ disconnectedCallback(): void;
7
+ handleEvent(event: Event): void;
8
+ getNodePath(node: Element): string[];
9
+ getNodeType(node: Element): TreeViewNodeType | null;
10
+ markCurrentAtPath(path: string[]): void;
11
+ get currentNode(): HTMLLIElement | null;
12
+ expandAtPath(path: string[]): void;
13
+ collapseAtPath(path: string[]): void;
14
+ toggleAtPath(path: string[]): void;
15
+ checkAtPath(path: string[]): void;
16
+ uncheckAtPath(path: string[]): void;
17
+ toggleCheckedAtPath(path: string[]): void;
18
+ checkedValueAtPath(path: string[]): TreeViewCheckedValue;
19
+ nodeAtPath(path: string[], selector?: string): Element | null;
20
+ subTreeAtPath(path: string[]): TreeViewSubTreeNodeElement | null;
21
+ leafAtPath(path: string[]): HTMLLIElement | null;
22
+ getNodeCheckedValue(node: Element): TreeViewCheckedValue;
23
+ infoFromNode(node: Element, newCheckedValue?: TreeViewCheckedValue): TreeViewNodeInfo | null;
24
+ }
25
+ declare global {
26
+ interface Window {
27
+ TreeViewElement: typeof TreeViewElement;
28
+ }
29
+ }
@@ -0,0 +1,15 @@
1
+ export declare class TreeViewIconPairElement extends HTMLElement {
2
+ #private;
3
+ expandedIcon: HTMLElement;
4
+ collapsedIcon: HTMLElement;
5
+ expanded: boolean;
6
+ connectedCallback(): void;
7
+ showExpanded(): void;
8
+ showCollapsed(): void;
9
+ toggle(): void;
10
+ }
11
+ declare global {
12
+ interface Window {
13
+ TreeViewIconPairElement: typeof TreeViewIconPairElement;
14
+ }
15
+ }
@@ -0,0 +1,9 @@
1
+ import { IncludeFragmentElement } from '@github/include-fragment-element';
2
+ export declare class TreeViewIncludeFragmentElement extends IncludeFragmentElement {
3
+ request(): Request;
4
+ }
5
+ declare global {
6
+ interface Window {
7
+ TreeViewIncludeFragmentElement: typeof TreeViewIncludeFragmentElement;
8
+ }
9
+ }
@@ -0,0 +1,3 @@
1
+ import { TreeViewElement } from './tree_view';
2
+ export declare function useRovingTabIndex(containerEl: TreeViewElement): void;
3
+ export declare function getElementState(element: HTMLElement): 'open' | 'closed' | 'end';
@@ -0,0 +1,38 @@
1
+ import { TreeViewIconPairElement } from './tree_view_icon_pair_element';
2
+ import { TreeViewIncludeFragmentElement } from './tree_view_include_fragment_element';
3
+ import { TreeViewElement } from './tree_view';
4
+ type LoadingState = 'loading' | 'error' | 'success';
5
+ export declare class TreeViewSubTreeNodeElement extends HTMLElement {
6
+ #private;
7
+ node: HTMLElement;
8
+ subTree: HTMLElement;
9
+ iconPair: TreeViewIconPairElement;
10
+ toggleButton: HTMLElement;
11
+ expandedToggleIcon: HTMLElement;
12
+ collapsedToggleIcon: HTMLElement;
13
+ includeFragment: TreeViewIncludeFragmentElement;
14
+ loadingIndicator: HTMLElement;
15
+ loadingFailureMessage: HTMLElement;
16
+ retryButton: HTMLButtonElement;
17
+ expanded: boolean;
18
+ loadingState: LoadingState;
19
+ connectedCallback(): void;
20
+ get selectStrategy(): string;
21
+ disconnectedCallback(): void;
22
+ handleEvent(event: Event): void;
23
+ expand(): void;
24
+ collapse(): void;
25
+ toggle(): void;
26
+ get nodes(): NodeListOf<Element>;
27
+ eachDirectDescendantNode(): Generator<Element>;
28
+ eachDescendantNode(): Generator<Element>;
29
+ get isEmpty(): boolean;
30
+ get treeView(): TreeViewElement | null;
31
+ toggleChecked(): void;
32
+ }
33
+ declare global {
34
+ interface Window {
35
+ TreeViewSubTreeNodeElement: typeof TreeViewSubTreeNodeElement;
36
+ }
37
+ }
38
+ export {};
@@ -33,3 +33,7 @@ import './open_project/danger_dialog_form_helper';
33
33
  import './open_project/collapsible';
34
34
  import './open_project/border_box/collapsible_header';
35
35
  import './open_project/collapsible_section';
36
+ import './open_project/tree_view/tree_view';
37
+ import './open_project/tree_view/tree_view_icon_pair_element';
38
+ import './open_project/tree_view/tree_view_sub_tree_node_element';
39
+ import './open_project/tree_view/tree_view_include_fragment_element';
@@ -3,9 +3,24 @@ export type ItemActivatedEvent = {
3
3
  checked: boolean;
4
4
  value: string | null;
5
5
  };
6
+ export type TreeViewNodeType = 'leaf' | 'sub-tree';
7
+ export type TreeViewCheckedValue = 'true' | 'false' | 'mixed';
8
+ export type TreeViewNodeInfo = {
9
+ node: Element;
10
+ type: TreeViewNodeType;
11
+ path: string[];
12
+ checkedValue: TreeViewCheckedValue;
13
+ previousCheckedValue: TreeViewCheckedValue;
14
+ };
6
15
  declare global {
7
16
  interface HTMLElementEventMap {
8
17
  itemActivated: CustomEvent<ItemActivatedEvent>;
9
18
  beforeItemActivated: CustomEvent<ItemActivatedEvent>;
19
+ treeViewNodeActivated: CustomEvent<TreeViewNodeInfo>;
20
+ treeViewBeforeNodeActivated: CustomEvent<TreeViewNodeInfo>;
21
+ treeViewNodeExpanded: CustomEvent<TreeViewNodeInfo>;
22
+ treeViewNodeCollapsed: CustomEvent<TreeViewNodeInfo>;
23
+ treeViewNodeChecked: CustomEvent<TreeViewNodeInfo[]>;
24
+ treeViewBeforeNodeChecked: CustomEvent<TreeViewNodeInfo[]>;
10
25
  }
11
26
  }