openproject-primer_view_components 0.37.1 → 0.38.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -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 +473 -0
  20. data/app/components/primer/alpha/select_panel_element.d.ts +64 -0
  21. data/app/components/primer/alpha/select_panel_element.js +924 -0
  22. data/app/components/primer/alpha/select_panel_element.ts +1045 -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 +19 -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 +118 -0
  62. data/static/audited_at.json +1 -0
  63. data/static/constants.json +16 -0
  64. data/static/info_arch.json +902 -112
  65. data/static/previews.json +294 -0
  66. data/static/statuses.json +1 -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: d808c91fdbab87e3f694b040e546269323b1b63eae7c0d13fd05186e15e2d1be
4
+ data.tar.gz: b64ba92147097a448553281e8500bb7f796a89ffbfd1493b9fbd08c2997a0cb9
5
5
  SHA512:
6
- metadata.gz: 37038930ea80e18b96441c6d7f6b5f6f5ac38e0923ed97df94b4dba43edf9d3e4bad9b165e0ebf339acde09872cbc7450fee5800abc7e6041ee1b963063271ad
7
- data.tar.gz: 6c0f9964547f6ceee6035b3fd122f3ff3d385e8407fd11e1d5350330bcf7574996d8fe2dfa90cedb0639cb2131de091e8aa74e3a7e62050aebcf4edd3b7945e9
6
+ metadata.gz: ea3a3fc8ba8d065093dbbcf2cf3ed33945f142e0dd0be80156d8e92cbaddf7a12f04dbccdfc0f4765a0fab518d36e87f60a3f02d397ae99e7bc5d557dc676cd4
7
+ data.tar.gz: f2570a6a3e64d978658a436a37807a2eecad5a29131bcb5387a1ec8e188660422855ed9ec6d2e26d4173afeac266633dd98900725e76d320fb3753ff39230e63
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 0.38.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#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
8
+
9
+ ### Patch Changes
10
+
11
+ - [#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.
12
+
13
+ - [#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
14
+
15
+ - [#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
16
+
17
+ - [#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.
18
+
3
19
  ## 0.37.1
4
20
 
5
21
  ### 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
+ }