openproject-primer_view_components 0.70.5 → 0.72.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 (142) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +20 -0
  3. data/app/assets/javascripts/components/primer/alpha/segmented_control.d.ts +2 -2
  4. data/app/assets/javascripts/components/primer/{open_project → alpha}/tree_view/tree_view.d.ts +11 -1
  5. data/app/assets/javascripts/components/primer/{open_project → alpha}/tree_view/tree_view_sub_tree_node_element.d.ts +5 -1
  6. data/app/assets/javascripts/components/primer/open_project/filterable_tree_view.d.ts +29 -0
  7. data/app/assets/javascripts/components/primer/primer.d.ts +5 -4
  8. data/app/assets/javascripts/primer_view_components.js +1 -1
  9. data/app/assets/javascripts/primer_view_components.js.map +1 -1
  10. data/app/assets/styles/primer_view_components.css +1 -1
  11. data/app/assets/styles/primer_view_components.css.map +1 -1
  12. data/app/components/primer/{open_project → alpha}/file_tree_view/directory_node.rb +1 -1
  13. data/app/components/primer/{open_project → alpha}/file_tree_view/file_node.rb +1 -1
  14. data/app/components/primer/{open_project → alpha}/file_tree_view.rb +1 -1
  15. data/app/components/primer/alpha/segmented_control.d.ts +2 -2
  16. data/app/components/primer/alpha/segmented_control.js +12 -0
  17. data/app/components/primer/alpha/segmented_control.ts +16 -1
  18. data/app/components/primer/{open_project → alpha}/skeleton_box.css.json +1 -1
  19. data/app/components/primer/{open_project → alpha}/skeleton_box.css.map +1 -1
  20. data/app/components/primer/{open_project → alpha}/skeleton_box.pcss +1 -1
  21. data/app/components/primer/{open_project → alpha}/skeleton_box.rb +3 -1
  22. data/app/components/primer/alpha/stack.css +1 -1
  23. data/app/components/primer/alpha/stack.css.json +5 -1
  24. data/app/components/primer/alpha/stack.css.map +1 -1
  25. data/app/components/primer/alpha/stack.pcss +13 -0
  26. data/app/components/primer/alpha/stack.rb +2 -1
  27. data/app/components/primer/{open_project → alpha}/tree_view/icon.rb +2 -2
  28. data/app/components/primer/{open_project → alpha}/tree_view/icon_pair.rb +4 -4
  29. data/app/components/primer/{open_project → alpha}/tree_view/leading_action.rb +2 -2
  30. data/app/components/primer/{open_project → alpha}/tree_view/leaf_node.rb +6 -6
  31. data/app/components/primer/{open_project → alpha}/tree_view/loading_failure_message.rb +2 -2
  32. data/app/components/primer/{open_project → alpha}/tree_view/node.rb +30 -14
  33. data/app/components/primer/{open_project → alpha}/tree_view/skeleton_loader.html.erb +3 -3
  34. data/app/components/primer/{open_project → alpha}/tree_view/skeleton_loader.rb +4 -4
  35. data/app/components/primer/{open_project → alpha}/tree_view/spinner_loader.html.erb +2 -2
  36. data/app/components/primer/{open_project → alpha}/tree_view/spinner_loader.rb +4 -4
  37. data/app/components/primer/{open_project → alpha}/tree_view/sub_tree.html.erb +1 -1
  38. data/app/components/primer/{open_project → alpha}/tree_view/sub_tree.rb +10 -10
  39. data/app/components/primer/{open_project → alpha}/tree_view/sub_tree_container.rb +2 -2
  40. data/app/components/primer/{open_project → alpha}/tree_view/sub_tree_node.rb +28 -18
  41. data/app/components/primer/{open_project → alpha}/tree_view/tree_view.d.ts +11 -1
  42. data/app/components/primer/{open_project → alpha}/tree_view/tree_view.js +120 -20
  43. data/app/components/primer/{open_project → alpha}/tree_view/tree_view.ts +137 -18
  44. data/app/components/primer/{open_project → alpha}/tree_view/tree_view_include_fragment_element.js +0 -1
  45. data/app/components/primer/{open_project → alpha}/tree_view/tree_view_include_fragment_element.ts +0 -1
  46. data/app/components/primer/{open_project → alpha}/tree_view/tree_view_sub_tree_node_element.d.ts +5 -1
  47. data/app/components/primer/{open_project → alpha}/tree_view/tree_view_sub_tree_node_element.js +27 -4
  48. data/app/components/primer/{open_project → alpha}/tree_view/tree_view_sub_tree_node_element.ts +36 -5
  49. data/app/components/primer/{open_project → alpha}/tree_view/visual.rb +2 -2
  50. data/app/components/primer/alpha/tree_view.css +1 -0
  51. data/app/components/primer/{open_project → alpha}/tree_view.css.json +8 -1
  52. data/app/components/primer/alpha/tree_view.css.map +1 -0
  53. data/app/components/primer/alpha/tree_view.html.erb +12 -0
  54. data/app/components/primer/{open_project → alpha}/tree_view.pcss +39 -0
  55. data/app/components/primer/{open_project → alpha}/tree_view.rb +20 -12
  56. data/app/components/primer/beta/breadcrumbs.css +1 -1
  57. data/app/components/primer/beta/breadcrumbs.css.json +0 -1
  58. data/app/components/primer/beta/breadcrumbs.css.map +1 -1
  59. data/app/components/primer/beta/breadcrumbs.pcss +2 -8
  60. data/app/components/primer/beta/progress_bar.css +1 -1
  61. data/app/components/primer/beta/progress_bar.css.map +1 -1
  62. data/app/components/primer/beta/progress_bar.pcss +3 -2
  63. data/app/components/primer/beta/relative_time.rb +3 -0
  64. data/app/components/primer/open_project/filterable_tree_view/sub_tree.rb +39 -0
  65. data/app/components/primer/open_project/filterable_tree_view.d.ts +29 -0
  66. data/app/components/primer/open_project/filterable_tree_view.html.erb +28 -0
  67. data/app/components/primer/open_project/filterable_tree_view.js +409 -0
  68. data/app/components/primer/open_project/filterable_tree_view.rb +254 -0
  69. data/app/components/primer/open_project/filterable_tree_view.ts +492 -0
  70. data/app/components/primer/primer.d.ts +5 -4
  71. data/app/components/primer/primer.js +5 -4
  72. data/app/components/primer/primer.pcss +2 -2
  73. data/app/components/primer/primer.ts +5 -4
  74. data/app/controllers/primer/view_components/tree_view_items_controller.rb +1 -1
  75. data/app/forms/check_box_with_nested_form.rb +10 -10
  76. data/app/forms/radio_button_with_nested_form.rb +16 -16
  77. data/app/lib/primer/experimental_slot_helpers.rb +2 -2
  78. data/app/lib/primer/forms/base_component.rb +1 -1
  79. data/app/lib/primer/forms/dsl/text_field_input.rb +2 -0
  80. data/app/views/primer/view_components/tree_view_items/async_alpha.html_fragment.erb +1 -1
  81. data/app/views/primer/view_components/tree_view_items/index.html_fragment.erb +1 -1
  82. data/config/locales/en.yml +20 -0
  83. data/lib/primer/view_components/version.rb +2 -2
  84. data/previews/primer/{open_project → alpha}/file_tree_view_preview/default.html.erb +1 -1
  85. data/previews/primer/{open_project → alpha}/file_tree_view_preview/playground.html.erb +1 -1
  86. data/previews/primer/{open_project → alpha}/file_tree_view_preview.rb +1 -1
  87. data/previews/primer/{open_project → alpha}/skeleton_box_preview.rb +3 -3
  88. data/previews/primer/{open_project → alpha}/tree_view_preview/async_alpha.html.erb +1 -1
  89. data/previews/primer/{open_project → alpha}/tree_view_preview/buttons.html.erb +5 -5
  90. data/previews/primer/{open_project → alpha}/tree_view_preview/default.html.erb +5 -5
  91. data/previews/primer/{open_project → alpha}/tree_view_preview/empty.html.erb +1 -1
  92. data/previews/primer/alpha/tree_view_preview/form_input.html.erb +14 -0
  93. data/previews/primer/{open_project → alpha}/tree_view_preview/leaf_node_playground.html.erb +2 -2
  94. data/previews/primer/{open_project → alpha}/tree_view_preview/links.html.erb +5 -5
  95. data/previews/primer/{open_project → alpha}/tree_view_preview/loading_failure.html.erb +1 -1
  96. data/previews/primer/{open_project → alpha}/tree_view_preview/loading_skeleton.html.erb +1 -1
  97. data/previews/primer/{open_project → alpha}/tree_view_preview/loading_spinner.html.erb +1 -1
  98. data/previews/primer/{open_project → alpha}/tree_view_preview/playground.html.erb +1 -1
  99. data/previews/primer/{open_project → alpha}/tree_view_preview.rb +34 -15
  100. data/previews/primer/open_project/filterable_tree_view_preview/_custom_select_js.html.erb +62 -0
  101. data/previews/primer/open_project/filterable_tree_view_preview/custom_checkbox_text.html.erb +26 -0
  102. data/previews/primer/open_project/filterable_tree_view_preview/custom_no_results_text.html.erb +28 -0
  103. data/previews/primer/open_project/filterable_tree_view_preview/custom_segmented_control.html.erb +31 -0
  104. data/previews/primer/open_project/filterable_tree_view_preview/default.html.erb +26 -0
  105. data/previews/primer/open_project/filterable_tree_view_preview/form_input.html.erb +32 -0
  106. data/previews/primer/open_project/filterable_tree_view_preview/playground.html.erb +26 -0
  107. data/previews/primer/open_project/filterable_tree_view_preview/stress_test.html.erb +28 -0
  108. data/previews/primer/open_project/filterable_tree_view_preview.rb +125 -0
  109. data/static/arguments.json +1685 -1581
  110. data/static/audited_at.json +19 -17
  111. data/static/classes.json +5 -5
  112. data/static/constants.json +137 -98
  113. data/static/info_arch.json +6396 -6146
  114. data/static/previews.json +120 -21
  115. data/static/statuses.json +19 -17
  116. metadata +102 -84
  117. data/app/components/primer/open_project/tree_view.css +0 -1
  118. data/app/components/primer/open_project/tree_view.css.map +0 -1
  119. data/app/components/primer/open_project/tree_view.html.erb +0 -7
  120. /data/app/assets/javascripts/components/primer/{open_project → alpha}/tree_view/tree_view_icon_pair_element.d.ts +0 -0
  121. /data/app/assets/javascripts/components/primer/{open_project → alpha}/tree_view/tree_view_include_fragment_element.d.ts +0 -0
  122. /data/app/assets/javascripts/components/primer/{open_project → alpha}/tree_view/tree_view_roving_tab_index.d.ts +0 -0
  123. /data/app/components/primer/{open_project → alpha}/file_tree_view/directory_node.html.erb +0 -0
  124. /data/app/components/primer/{open_project → alpha}/file_tree_view/file_node.html.erb +0 -0
  125. /data/app/components/primer/{open_project → alpha}/skeleton_box.css +0 -0
  126. /data/app/components/primer/{open_project → alpha}/skeleton_box.html.erb +0 -0
  127. /data/app/components/primer/{open_project → alpha}/tree_view/icon.html.erb +0 -0
  128. /data/app/components/primer/{open_project → alpha}/tree_view/icon_pair.html.erb +0 -0
  129. /data/app/components/primer/{open_project → alpha}/tree_view/leading_action.html.erb +0 -0
  130. /data/app/components/primer/{open_project → alpha}/tree_view/leaf_node.html.erb +0 -0
  131. /data/app/components/primer/{open_project → alpha}/tree_view/loading_failure_message.html.erb +0 -0
  132. /data/app/components/primer/{open_project → alpha}/tree_view/node.html.erb +0 -0
  133. /data/app/components/primer/{open_project → alpha}/tree_view/sub_tree_container.html.erb +0 -0
  134. /data/app/components/primer/{open_project → alpha}/tree_view/sub_tree_node.html.erb +0 -0
  135. /data/app/components/primer/{open_project → alpha}/tree_view/tree_view_icon_pair_element.d.ts +0 -0
  136. /data/app/components/primer/{open_project → alpha}/tree_view/tree_view_icon_pair_element.js +0 -0
  137. /data/app/components/primer/{open_project → alpha}/tree_view/tree_view_icon_pair_element.ts +0 -0
  138. /data/app/components/primer/{open_project → alpha}/tree_view/tree_view_include_fragment_element.d.ts +0 -0
  139. /data/app/components/primer/{open_project → alpha}/tree_view/tree_view_roving_tab_index.d.ts +0 -0
  140. /data/app/components/primer/{open_project → alpha}/tree_view/tree_view_roving_tab_index.js +0 -0
  141. /data/app/components/primer/{open_project → alpha}/tree_view/tree_view_roving_tab_index.ts +0 -0
  142. /data/app/components/primer/{open_project → alpha}/tree_view/visual.html.erb +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41b1b1ad2cf71ac187f62abfab9bb4672fd79a6226594f2f83cd54997ce6b6a8
4
- data.tar.gz: ac203e7e4d911a35004c23f4e12e7b007e1c1771a698782df893d872feb7dfd5
3
+ metadata.gz: e666e1394f004b6a5924de0eaefd8384539a04c03ce09031d991b26dc26df163
4
+ data.tar.gz: 839c41112e056262087e21adfaacecb8ffa2600958daab267ddc280b78c66cef
5
5
  SHA512:
6
- metadata.gz: '0979214c8f67f34bc996bf57fe59e1a9ad951f4520e993076e8e8686f9ac60cfe373c0fee205221e4ad0c58e6f0a2cbadb91a40f329ac4a481783b46984ef868'
7
- data.tar.gz: bedd3be0a15e2343189c2a9a0a4c585b82a4fce4f5a1021a0a7f83f3bce3a93d9b521765dd12d665b92e0afdfeb2199474809df3f9ab35ef6a70a6467a7308e2
6
+ metadata.gz: 4e020740dc79749c21ad7fe12b4292ebde4b26cefc28a471fca91bd4a177fcc7e99e9c53e20d8f8b8a13193c582538216d74c7403ba2a93e3c6009eccd3c29e8
7
+ data.tar.gz: bb45b2c1991f58c09127e2b88f2bea06595558698cc7c0dfef785d09962ee456875855d665b75fc0cb7b76974a21ceb6a974f1f2077af27ef6cd69ac5f104286
data/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.72.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#3563](https://github.com/primer/view_components/pull/3563) [`cf9ce00`](https://github.com/opf/primer_view_components/commit/cf9ce00849b200482e2a799a279acb645929ab57) Thanks [@camertron](https://github.com/camertron)! - Introduce Primer::Alpha::TreeView, Primer::Alpha::FileTreeView and Primer::Alpha::SkeletonBox
8
+
9
+ ### Patch Changes
10
+
11
+ - [#3636](https://github.com/primer/view_components/pull/3636) [`fd25aaf`](https://github.com/opf/primer_view_components/commit/fd25aafe80d97251f7522a2c5a9bdf2e3c3b58fc) Thanks [@langermank](https://github.com/langermank)! - Support high contrast themes in `ProgressBar`
12
+
13
+ - [#3613](https://github.com/primer/view_components/pull/3613) [`0ddc1a4`](https://github.com/opf/primer_view_components/commit/0ddc1a41be5dce9f4042e6d4138432554d2419a1) Thanks [@jonrohan](https://github.com/jonrohan)! - Updating snapshots
14
+
15
+ - [#3614](https://github.com/primer/view_components/pull/3614) [`41b64d6`](https://github.com/opf/primer_view_components/commit/41b64d638f0c0805acafb4e17de2935116b63d70) Thanks [@bsatarnejad](https://github.com/bsatarnejad)! - Breadcrumb is not properly left-aligned when it has long items
16
+
17
+ ## 0.71.0
18
+
19
+ ### Minor Changes
20
+
21
+ - [#321](https://github.com/opf/primer_view_components/pull/321) [`9219647`](https://github.com/opf/primer_view_components/commit/9219647e3f6368bdb3d3d1aa45380a63838c8c11) Thanks [@camertron](https://github.com/camertron)! - Add the FilterableTreeView component
22
+
3
23
  ## 0.70.5
4
24
 
5
25
  ### Patch Changes
@@ -1,12 +1,12 @@
1
- declare class SegmentedControlElement extends HTMLElement {
1
+ export declare class SegmentedControlElement extends HTMLElement {
2
2
  #private;
3
3
  items: HTMLElement[];
4
4
  connectedCallback(): void;
5
5
  select(event: Event): void;
6
+ get current(): HTMLElement | null;
6
7
  }
7
8
  declare global {
8
9
  interface Window {
9
10
  SegmentedControlElement: typeof SegmentedControlElement;
10
11
  }
11
12
  }
12
- export {};
@@ -1,10 +1,15 @@
1
- import { TreeViewSubTreeNodeElement } from './tree_view_sub_tree_node_element';
1
+ import { SelectStrategy, TreeViewSubTreeNodeElement } from './tree_view_sub_tree_node_element';
2
2
  import type { TreeViewNodeType, TreeViewCheckedValue, TreeViewNodeInfo } from '../../shared_events';
3
3
  export declare class TreeViewElement extends HTMLElement {
4
4
  #private;
5
+ formInputContainer: HTMLElement;
6
+ formInputPrototype: HTMLInputElement;
5
7
  connectedCallback(): void;
8
+ rootLeafNodes(): NodeListOf<HTMLElement>;
9
+ rootSubTreeNodes(): NodeListOf<TreeViewSubTreeNodeElement>;
6
10
  disconnectedCallback(): void;
7
11
  handleEvent(event: Event): void;
12
+ getFormInputValueForNode(node: Element): string | null;
8
13
  getNodePath(node: Element): string[];
9
14
  getNodeType(node: Element): TreeViewNodeType | null;
10
15
  markCurrentAtPath(path: string[]): void;
@@ -16,13 +21,18 @@ export declare class TreeViewElement extends HTMLElement {
16
21
  uncheckAtPath(path: string[]): void;
17
22
  toggleCheckedAtPath(path: string[]): void;
18
23
  checkedValueAtPath(path: string[]): TreeViewCheckedValue;
24
+ disabledValueAtPath(path: string[]): boolean;
19
25
  nodeAtPath(path: string[], selector?: string): Element | null;
20
26
  subTreeAtPath(path: string[]): TreeViewSubTreeNodeElement | null;
21
27
  leafAtPath(path: string[]): HTMLLIElement | null;
28
+ setNodeCheckedValue(node: Element, value: TreeViewCheckedValue): void;
22
29
  getNodeCheckedValue(node: Element): TreeViewCheckedValue;
30
+ getNodeDisabledValue(node: Element): boolean;
31
+ setNodeDisabledValue(node: Element, disabled: boolean): void;
23
32
  nodeHasCheckBox(node: Element): boolean;
24
33
  nodeHasNativeAction(node: Element): boolean;
25
34
  expandAncestorsForNode(node: HTMLElement): void;
35
+ changeSelectStrategy(newStrategy: SelectStrategy): void;
26
36
  infoFromNode(node: Element, newCheckedValue?: TreeViewCheckedValue): TreeViewNodeInfo | null;
27
37
  }
28
38
  declare global {
@@ -2,6 +2,7 @@ import { TreeViewIconPairElement } from './tree_view_icon_pair_element';
2
2
  import { TreeViewIncludeFragmentElement } from './tree_view_include_fragment_element';
3
3
  import { TreeViewElement } from './tree_view';
4
4
  type LoadingState = 'loading' | 'error' | 'success';
5
+ export type SelectStrategy = 'self' | 'descendants' | 'mixed_descendants';
5
6
  export declare class TreeViewSubTreeNodeElement extends HTMLElement {
6
7
  #private;
7
8
  node: HTMLElement;
@@ -19,7 +20,8 @@ export declare class TreeViewSubTreeNodeElement extends HTMLElement {
19
20
  set expanded(newValue: boolean);
20
21
  get loadingState(): LoadingState;
21
22
  set loadingState(newState: LoadingState);
22
- get selectStrategy(): string;
23
+ get selectStrategy(): SelectStrategy;
24
+ get level(): number;
23
25
  disconnectedCallback(): void;
24
26
  handleEvent(event: Event): void;
25
27
  expand(): void;
@@ -27,11 +29,13 @@ export declare class TreeViewSubTreeNodeElement extends HTMLElement {
27
29
  toggle(): void;
28
30
  get nodes(): NodeListOf<Element>;
29
31
  eachDirectDescendantNode(): Generator<Element>;
32
+ eachDirectDescendantSubTreeNode(): Generator<TreeViewSubTreeNodeElement>;
30
33
  eachDescendantNode(): Generator<Element>;
31
34
  eachAncestorSubTreeNode(): Generator<TreeViewSubTreeNodeElement>;
32
35
  get isEmpty(): boolean;
33
36
  get treeView(): TreeViewElement | null;
34
37
  toggleChecked(): void;
38
+ changeSelectStrategy(newStrategy: SelectStrategy): void;
35
39
  }
36
40
  declare global {
37
41
  interface Window {
@@ -0,0 +1,29 @@
1
+ import { SegmentedControlElement } from '../alpha/segmented_control';
2
+ import { TreeViewElement } from '../alpha/tree_view/tree_view';
3
+ import { TreeViewSubTreeNodeElement } from '../alpha/tree_view/tree_view_sub_tree_node_element';
4
+ export type FilterFn = (node: HTMLElement, query: string, filterMode?: string) => Range[] | null;
5
+ export declare class FilterableTreeViewElement extends HTMLElement {
6
+ #private;
7
+ filterInput: HTMLInputElement;
8
+ filterModeControlList: HTMLElement;
9
+ treeViewList: HTMLElement;
10
+ noResultsMessage: HTMLElement;
11
+ includeSubItemsCheckBox: HTMLInputElement;
12
+ connectedCallback(): void;
13
+ disconnectedCallback(): void;
14
+ handleEvent(event: Event): void;
15
+ get filterModeControl(): SegmentedControlElement | null;
16
+ get treeView(): TreeViewElement | null;
17
+ set filterFn(newFn: FilterFn);
18
+ get filterFn(): FilterFn;
19
+ defaultFilterFn(node: HTMLElement, query: string, filterMode?: string): Range[] | null;
20
+ get filterMode(): string | null;
21
+ get queryString(): string;
22
+ eachDescendantDepthFirst(node: HTMLElement, level: number, ancestry: TreeViewSubTreeNodeElement[]): Generator<[NodeListOf<HTMLElement>, TreeViewSubTreeNodeElement[]]>;
23
+ eachShallowestCheckedSubTree(root: TreeViewSubTreeNodeElement): Generator<TreeViewSubTreeNodeElement>;
24
+ }
25
+ declare global {
26
+ interface Window {
27
+ FilterableTreeViewElement: typeof FilterableTreeViewElement;
28
+ }
29
+ }
@@ -26,6 +26,10 @@ import '../../lib/primer/forms/toggle_switch_input';
26
26
  import './alpha/action_menu/action_menu_element';
27
27
  import './alpha/select_panel_element';
28
28
  import './beta/details_toggle_element';
29
+ import './alpha/tree_view/tree_view';
30
+ import './alpha/tree_view/tree_view_icon_pair_element';
31
+ import './alpha/tree_view/tree_view_sub_tree_node_element';
32
+ import './alpha/tree_view/tree_view_include_fragment_element';
29
33
  import './open_project/page_header_element';
30
34
  import './open_project/zen_mode_button';
31
35
  import './open_project/sub_header_element';
@@ -33,7 +37,4 @@ import './open_project/danger_dialog_form_helper';
33
37
  import './open_project/collapsible';
34
38
  import './open_project/border_box/collapsible_header';
35
39
  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';
40
+ import './open_project/filterable_tree_view';