openproject-primer_view_components 0.37.1 → 0.39.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 (67) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/app/assets/javascripts/app/components/primer/alpha/action_menu/action_menu_element.d.ts +0 -9
  4. data/app/assets/javascripts/app/components/primer/alpha/select_panel_element.d.ts +64 -0
  5. data/app/assets/javascripts/app/components/primer/aria_live.d.ts +8 -0
  6. data/app/assets/javascripts/app/components/primer/primer.d.ts +4 -0
  7. data/app/assets/javascripts/app/components/primer/shared_events.d.ts +9 -0
  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/alpha/action_list.css +1 -1
  13. data/app/components/primer/alpha/action_list.css.map +1 -1
  14. data/app/components/primer/alpha/action_list.pcss +1 -0
  15. data/app/components/primer/alpha/action_menu/action_menu_element.d.ts +0 -9
  16. data/app/components/primer/alpha/action_menu/action_menu_element.ts +0 -11
  17. data/app/components/primer/alpha/action_menu.rb +13 -6
  18. data/app/components/primer/alpha/select_panel.html.erb +100 -0
  19. data/app/components/primer/alpha/select_panel.rb +486 -0
  20. data/app/components/primer/alpha/select_panel_element.d.ts +64 -0
  21. data/app/components/primer/alpha/select_panel_element.js +927 -0
  22. data/app/components/primer/alpha/select_panel_element.ts +1049 -0
  23. data/app/components/primer/aria_live.d.ts +8 -0
  24. data/app/components/primer/aria_live.js +38 -0
  25. data/app/components/primer/aria_live.ts +41 -0
  26. data/app/components/primer/base_component.rb +1 -1
  27. data/app/components/primer/primer.d.ts +4 -0
  28. data/app/components/primer/primer.js +4 -0
  29. data/app/components/primer/primer.ts +4 -0
  30. data/app/components/primer/shared_events.d.ts +9 -0
  31. data/app/components/primer/shared_events.js +1 -0
  32. data/app/components/primer/shared_events.ts +10 -0
  33. data/app/forms/example_toggle_switch_form/example_field_caption.html.erb +1 -1
  34. data/lib/primer/forms/toggle_switch.html.erb +1 -2
  35. data/lib/primer/static/generate_info_arch.rb +3 -2
  36. data/lib/primer/view_components/version.rb +2 -2
  37. data/lib/primer/yard/component_manifest.rb +2 -0
  38. data/previews/primer/alpha/select_panel_preview/_interaction_subject_js.html.erb +25 -0
  39. data/previews/primer/alpha/select_panel_preview/eventually_local_fetch.html.erb +16 -0
  40. data/previews/primer/alpha/select_panel_preview/eventually_local_fetch_initial_failure.html.erb +12 -0
  41. data/previews/primer/alpha/select_panel_preview/eventually_local_fetch_no_results.html.erb +16 -0
  42. data/previews/primer/alpha/select_panel_preview/footer_buttons.html.erb +23 -0
  43. data/previews/primer/alpha/select_panel_preview/local_fetch.html.erb +19 -0
  44. data/previews/primer/alpha/select_panel_preview/local_fetch_no_results.html.erb +15 -0
  45. data/previews/primer/alpha/select_panel_preview/multiselect.html.erb +17 -0
  46. data/previews/primer/alpha/select_panel_preview/multiselect_form.html.erb +31 -0
  47. data/previews/primer/alpha/select_panel_preview/playground.html.erb +23 -0
  48. data/previews/primer/alpha/select_panel_preview/remote_fetch.html.erb +16 -0
  49. data/previews/primer/alpha/select_panel_preview/remote_fetch_filter_failure.html.erb +13 -0
  50. data/previews/primer/alpha/select_panel_preview/remote_fetch_initial_failure.html.erb +12 -0
  51. data/previews/primer/alpha/select_panel_preview/remote_fetch_no_results.html.erb +16 -0
  52. data/previews/primer/alpha/select_panel_preview/single_select.html.erb +20 -0
  53. data/previews/primer/alpha/select_panel_preview/single_select_form.html.erb +33 -0
  54. data/previews/primer/alpha/select_panel_preview/with_avatar_items.html.erb +19 -0
  55. data/previews/primer/alpha/select_panel_preview/with_dynamic_label.html.erb +23 -0
  56. data/previews/primer/alpha/select_panel_preview/with_dynamic_label_and_aria_prefix.html.erb +24 -0
  57. data/previews/primer/alpha/select_panel_preview/with_leading_icons.html.erb +31 -0
  58. data/previews/primer/alpha/select_panel_preview/with_subtitle.html.erb +25 -0
  59. data/previews/primer/alpha/select_panel_preview/with_trailing_icons.html.erb +19 -0
  60. data/previews/primer/alpha/select_panel_preview.rb +239 -0
  61. data/static/arguments.json +140 -0
  62. data/static/audited_at.json +2 -0
  63. data/static/constants.json +18 -0
  64. data/static/info_arch.json +949 -96
  65. data/static/previews.json +294 -0
  66. data/static/statuses.json +2 -0
  67. metadata +41 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5c9878d1a36c8c59d1df4df44fc9ae1d5635c2405406a5ed834c3621f2e9b4a8
4
- data.tar.gz: fb72ad613b4e3fc1a6c4c7cce13e77082b35e9f6b329a509ea4fa02cc7eb0e04
3
+ metadata.gz: b3ebb419d4e20f0975a1f77b6c75b135d9852a2604f876e2585f096065284faf
4
+ data.tar.gz: 4912b1756dfd9729abac0940fce6916f330fb26e673bf29b17da7a584e5be51f
5
5
  SHA512:
6
- metadata.gz: 37038930ea80e18b96441c6d7f6b5f6f5ac38e0923ed97df94b4dba43edf9d3e4bad9b165e0ebf339acde09872cbc7450fee5800abc7e6041ee1b963063271ad
7
- data.tar.gz: 6c0f9964547f6ceee6035b3fd122f3ff3d385e8407fd11e1d5350330bcf7574996d8fe2dfa90cedb0639cb2131de091e8aa74e3a7e62050aebcf4edd3b7945e9
6
+ metadata.gz: 86be7a5639c3f53d1c3ecd54f1b948446c82d0a5a6fb8503809bb9197faf1943d9786ee9ea18545897be45e76cbb44ba0f44f3760401fee16de8d25d9e32edb4
7
+ data.tar.gz: bf4421a4f6ed01236c31fbf0c64371eff19032ed63fd88505324109328b0388b17be2ae4b09924d65b0b7559829ee2179381e0cbe5f346967d56920552b8f5ab
data/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.39.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#2963](https://github.com/primer/view_components/pull/2963) [`37ee0f7`](https://github.com/opf/primer_view_components/commit/37ee0f7b0ef2d0de95ac337e43c1382a7f19e103) Thanks [@camertron](https://github.com/camertron)! - Add defaults to SelectPanel::ItemLists; fix issue showing no results label for local fetch strategy
8
+
9
+ ## 0.38.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#2941](https://github.com/primer/view_components/pull/2941) [`f3b640e`](https://github.com/opf/primer_view_components/commit/f3b640e3ce13979aa187c4fa6ff4e31f5717d720) Thanks [@camertron](https://github.com/camertron)! - Upstream the SelectPanel component from dotcom
14
+
15
+ ### Patch Changes
16
+
17
+ - [#2954](https://github.com/primer/view_components/pull/2954) [`15fb8c4`](https://github.com/opf/primer_view_components/commit/15fb8c4e214142a6bc09a98b7fc70a5f917e68f9) Thanks [@camertron](https://github.com/camertron)! - Small SelectPanel fixes; lots of SelectPanel tests.
18
+
19
+ - [#2951](https://github.com/primer/view_components/pull/2951) [`ac15e65`](https://github.com/opf/primer_view_components/commit/ac15e654ae185541ab7924c98bef67c6917f4d21) Thanks [@HDinger](https://github.com/HDinger)! - Always align group headers of a `Primer::Alpha::ActionMenu` at the beginning of the line
20
+
21
+ - [#2952](https://github.com/primer/view_components/pull/2952) [`98900f3`](https://github.com/opf/primer_view_components/commit/98900f3a8afb9fe45cfb4a850c7be13d1061feba) Thanks [@camertron](https://github.com/camertron)! - Fix wrapping behavior of toggle switch label
22
+
23
+ - [#2961](https://github.com/primer/view_components/pull/2961) [`b662625`](https://github.com/opf/primer_view_components/commit/b662625bab5e48102c0fad8fff4e2eb0523c1fad) Thanks [@camertron](https://github.com/camertron)! - Ensure condition is checked when mutations occur in SelectPanelElement.
24
+
3
25
  ## 0.37.1
4
26
 
5
27
  ### Patch Changes
@@ -6,15 +6,6 @@ type SelectedItem = {
6
6
  value: string | null | undefined;
7
7
  element: Element;
8
8
  };
9
- export type ItemActivatedEvent = {
10
- item: Element;
11
- checked: boolean;
12
- };
13
- declare global {
14
- interface HTMLElementEventMap {
15
- itemActivated: CustomEvent<ItemActivatedEvent>;
16
- }
17
- }
18
9
  export declare class ActionMenuElement extends HTMLElement {
19
10
  #private;
20
11
  includeFragment: IncludeFragmentElement;
@@ -0,0 +1,64 @@
1
+ import { IncludeFragmentElement } from '@github/include-fragment-element';
2
+ import type { AnchorAlignment, AnchorSide } from '@primer/behaviors';
3
+ import '@oddbird/popover-polyfill';
4
+ type SelectVariant = 'none' | 'single' | 'multiple' | null;
5
+ type SelectedItem = {
6
+ label: string | null | undefined;
7
+ value: string | null | undefined;
8
+ inputName: string | null | undefined;
9
+ element: SelectPanelItem;
10
+ };
11
+ export type SelectPanelItem = HTMLLIElement;
12
+ export type FilterFn = (item: SelectPanelItem, query: string) => boolean;
13
+ export declare class SelectPanelElement extends HTMLElement {
14
+ #private;
15
+ includeFragment: IncludeFragmentElement;
16
+ dialog: HTMLDialogElement;
17
+ filterInputTextField: HTMLInputElement;
18
+ remoteInput: HTMLElement;
19
+ list: HTMLElement;
20
+ ariaLiveContainer: HTMLElement;
21
+ noResults: HTMLElement;
22
+ fragmentErrorElement: HTMLElement;
23
+ bannerErrorElement: HTMLElement;
24
+ bodySpinner: HTMLElement;
25
+ filterFn?: FilterFn;
26
+ get open(): boolean;
27
+ get selectVariant(): SelectVariant;
28
+ get ariaSelectionType(): string;
29
+ set selectVariant(variant: SelectVariant);
30
+ get dynamicLabelPrefix(): string;
31
+ get dynamicAriaLabelPrefix(): string;
32
+ set dynamicLabelPrefix(value: string);
33
+ get dynamicLabel(): boolean;
34
+ set dynamicLabel(value: boolean);
35
+ get invokerElement(): HTMLButtonElement | null;
36
+ get closeButton(): HTMLButtonElement | null;
37
+ get invokerLabel(): HTMLElement | null;
38
+ get selectedItems(): SelectedItem[];
39
+ get align(): AnchorAlignment;
40
+ get side(): AnchorSide;
41
+ updateAnchorPosition(): void;
42
+ connectedCallback(): void;
43
+ disconnectedCallback(): void;
44
+ handleEvent(event: Event): void;
45
+ show(): void;
46
+ hide(): void;
47
+ get visibleItems(): SelectPanelItem[];
48
+ get items(): SelectPanelItem[];
49
+ get focusableItem(): HTMLElement | undefined;
50
+ getItemById(itemId: string): SelectPanelItem | null;
51
+ isItemDisabled(item: SelectPanelItem | null): boolean;
52
+ disableItem(item: SelectPanelItem | null): void;
53
+ enableItem(item: SelectPanelItem | null): void;
54
+ isItemHidden(item: SelectPanelItem | null): boolean;
55
+ isItemChecked(item: SelectPanelItem | null): boolean;
56
+ checkItem(item: SelectPanelItem | null): void;
57
+ uncheckItem(item: SelectPanelItem | null): void;
58
+ }
59
+ declare global {
60
+ interface Window {
61
+ SelectPanelElement: typeof SelectPanelElement;
62
+ }
63
+ }
64
+ export {};
@@ -0,0 +1,8 @@
1
+ export declare function announceFromElement(el: HTMLElement, options?: {
2
+ assertive?: boolean;
3
+ element?: HTMLElement;
4
+ }): void;
5
+ export declare function announce(message: string, options?: {
6
+ assertive?: boolean;
7
+ element?: HTMLElement;
8
+ }): void;
@@ -1,4 +1,5 @@
1
1
  import '@github/include-fragment-element';
2
+ import '@github/remote-input-element';
2
3
  import './alpha/action_list';
3
4
  import './alpha/action_bar_element';
4
5
  import './alpha/dropdown';
@@ -6,6 +7,8 @@ import './anchored_position';
6
7
  import './dialog_helper';
7
8
  import './focus_group';
8
9
  import './scrollable_region';
10
+ import './aria_live';
11
+ import './shared_events';
9
12
  import './alpha/image_crop';
10
13
  import './alpha/modal_dialog';
11
14
  import './beta/nav_list';
@@ -22,6 +25,7 @@ import '../../../lib/primer/forms/primer_multi_input';
22
25
  import '../../../lib/primer/forms/primer_text_field';
23
26
  import '../../../lib/primer/forms/toggle_switch_input';
24
27
  import './alpha/action_menu/action_menu_element';
28
+ import './alpha/select_panel_element';
25
29
  import './open_project/page_header_element';
26
30
  import './open_project/zen_mode_button';
27
31
  import './open_project/sub_header_element';
@@ -0,0 +1,9 @@
1
+ export type ItemActivatedEvent = {
2
+ item: Element;
3
+ checked: boolean;
4
+ };
5
+ declare global {
6
+ interface HTMLElementEventMap {
7
+ itemActivated: CustomEvent<ItemActivatedEvent>;
8
+ }
9
+ }