From 334be9ea888531a09dd5c8564a09d5885ead4cb9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 14 Oct 2024 18:25:27 +0000 Subject: [PATCH] Version Packages --- .changeset/bright-eggs-return.md | 5 -- .changeset/chatty-apples-hope.md | 6 -- .changeset/cuddly-games-prove.md | 5 -- .changeset/curvy-apes-judge.md | 5 -- .changeset/hip-deers-rhyme.md | 5 -- .changeset/lemon-kiwis-learn.md | 5 -- .changeset/many-readers-own.md | 5 -- .changeset/shy-schools-grow.md | 5 -- .changeset/sweet-donkeys-allow.md | 5 -- .changeset/three-readers-switch.md | 5 -- .changeset/wicked-bananas-tie.md | 5 -- CHANGELOG.md | 29 +++++++++ Gemfile.lock | 2 +- .../primer/alpha/action_bar_element.d.ts | 17 +++++ components/primer/alpha/action_list.d.ts | 16 +++++ .../action_menu/action_menu_element.d.ts | 42 +++++++++++++ components/primer/alpha/dropdown.d.ts | 1 + components/primer/alpha/dropdown/menu.d.ts | 1 + components/primer/alpha/image_crop.d.ts | 1 + components/primer/alpha/modal_dialog.d.ts | 18 ++++++ .../primer/alpha/segmented_control.d.ts | 12 ++++ .../primer/alpha/select_panel_element.d.ts | 63 +++++++++++++++++++ components/primer/alpha/tab_container.d.ts | 1 + components/primer/alpha/toggle_switch.d.ts | 34 ++++++++++ components/primer/alpha/tool_tip.d.ts | 27 ++++++++ components/primer/alpha/x_banner.d.ts | 18 ++++++ components/primer/anchored_position.d.ts | 27 ++++++++ components/primer/aria_live.d.ts | 8 +++ .../beta/auto_complete/auto_complete.d.ts | 1 + components/primer/beta/clipboard_copy.d.ts | 1 + components/primer/beta/nav_list.d.ts | 20 ++++++ .../primer/beta/nav_list_group_element.d.ts | 19 ++++++ components/primer/beta/relative_time.d.ts | 1 + components/primer/dialog_helper.d.ts | 15 +++++ components/primer/focus_group.d.ts | 19 ++++++ components/primer/primer.d.ts | 28 +++++++++ components/primer/scrollable_region.d.ts | 13 ++++ components/primer/shared_events.d.ts | 11 ++++ demo/Gemfile.lock | 2 +- lib/primer/forms/primer_multi_input.d.ts | 10 +++ lib/primer/forms/primer_text_field.d.ts | 28 +++++++++ lib/primer/forms/toggle_switch_input.d.ts | 5 ++ lib/primer/view_components/version.rb | 2 +- package-lock.json | 4 +- package.json | 2 +- 45 files changed, 492 insertions(+), 62 deletions(-) delete mode 100644 .changeset/bright-eggs-return.md delete mode 100644 .changeset/chatty-apples-hope.md delete mode 100644 .changeset/cuddly-games-prove.md delete mode 100644 .changeset/curvy-apes-judge.md delete mode 100644 .changeset/hip-deers-rhyme.md delete mode 100644 .changeset/lemon-kiwis-learn.md delete mode 100644 .changeset/many-readers-own.md delete mode 100644 .changeset/shy-schools-grow.md delete mode 100644 .changeset/sweet-donkeys-allow.md delete mode 100644 .changeset/three-readers-switch.md delete mode 100644 .changeset/wicked-bananas-tie.md create mode 100644 components/primer/alpha/action_bar_element.d.ts create mode 100644 components/primer/alpha/action_list.d.ts create mode 100644 components/primer/alpha/action_menu/action_menu_element.d.ts create mode 100644 components/primer/alpha/dropdown.d.ts create mode 100644 components/primer/alpha/dropdown/menu.d.ts create mode 100644 components/primer/alpha/image_crop.d.ts create mode 100644 components/primer/alpha/modal_dialog.d.ts create mode 100644 components/primer/alpha/segmented_control.d.ts create mode 100644 components/primer/alpha/select_panel_element.d.ts create mode 100644 components/primer/alpha/tab_container.d.ts create mode 100644 components/primer/alpha/toggle_switch.d.ts create mode 100644 components/primer/alpha/tool_tip.d.ts create mode 100644 components/primer/alpha/x_banner.d.ts create mode 100644 components/primer/anchored_position.d.ts create mode 100644 components/primer/aria_live.d.ts create mode 100644 components/primer/beta/auto_complete/auto_complete.d.ts create mode 100644 components/primer/beta/clipboard_copy.d.ts create mode 100644 components/primer/beta/nav_list.d.ts create mode 100644 components/primer/beta/nav_list_group_element.d.ts create mode 100644 components/primer/beta/relative_time.d.ts create mode 100644 components/primer/dialog_helper.d.ts create mode 100644 components/primer/focus_group.d.ts create mode 100644 components/primer/primer.d.ts create mode 100644 components/primer/scrollable_region.d.ts create mode 100644 components/primer/shared_events.d.ts create mode 100644 lib/primer/forms/primer_multi_input.d.ts create mode 100644 lib/primer/forms/primer_text_field.d.ts create mode 100644 lib/primer/forms/toggle_switch_input.d.ts diff --git a/.changeset/bright-eggs-return.md b/.changeset/bright-eggs-return.md deleted file mode 100644 index 2e5d17cf0b..0000000000 --- a/.changeset/bright-eggs-return.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@primer/view-components': patch ---- - -Moves the loading and "no results" messages on the SelectPanel to the top of the container. diff --git a/.changeset/chatty-apples-hope.md b/.changeset/chatty-apples-hope.md deleted file mode 100644 index ddb3a5d396..0000000000 --- a/.changeset/chatty-apples-hope.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -'@primer/view-components': minor ---- - -[SelectPanel] replace loading label using parameter loading_label -[SelectPanel] show additional loading content with loading_description diff --git a/.changeset/cuddly-games-prove.md b/.changeset/cuddly-games-prove.md deleted file mode 100644 index 376c13dd6a..0000000000 --- a/.changeset/cuddly-games-prove.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@primer/view-components': patch ---- - -Allow setting custom values on submit buttons. diff --git a/.changeset/curvy-apes-judge.md b/.changeset/curvy-apes-judge.md deleted file mode 100644 index 649f7fd5b2..0000000000 --- a/.changeset/curvy-apes-judge.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@primer/view-components': minor ---- - -[Forms] Fix position of caption for checkbox and radio groups diff --git a/.changeset/hip-deers-rhyme.md b/.changeset/hip-deers-rhyme.md deleted file mode 100644 index 58401478a6..0000000000 --- a/.changeset/hip-deers-rhyme.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@primer/view-components': minor ---- - -Allow form groups to accept system arguments diff --git a/.changeset/lemon-kiwis-learn.md b/.changeset/lemon-kiwis-learn.md deleted file mode 100644 index 41851e6c4d..0000000000 --- a/.changeset/lemon-kiwis-learn.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@primer/view-components": patch ---- - -Add "action" to the list of data attributes that accept multiple values in the `merge_data` helper diff --git a/.changeset/many-readers-own.md b/.changeset/many-readers-own.md deleted file mode 100644 index 03b1c4e6d4..0000000000 --- a/.changeset/many-readers-own.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@primer/view-components': minor ---- - -[SelectPanel] Use checkboxes for multi-select diff --git a/.changeset/shy-schools-grow.md b/.changeset/shy-schools-grow.md deleted file mode 100644 index 91029199fe..0000000000 --- a/.changeset/shy-schools-grow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@primer/view-components': minor ---- - -Introduce the Stack and StackItem components. diff --git a/.changeset/sweet-donkeys-allow.md b/.changeset/sweet-donkeys-allow.md deleted file mode 100644 index 620624117a..0000000000 --- a/.changeset/sweet-donkeys-allow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@primer/view-components': patch ---- - -Clear input on SelectPanel when dialog closed diff --git a/.changeset/three-readers-switch.md b/.changeset/three-readers-switch.md deleted file mode 100644 index f3df2f7ce9..0000000000 --- a/.changeset/three-readers-switch.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@primer/view-components': minor ---- - -[SelectPanel] Adds banner scheme as param. diff --git a/.changeset/wicked-bananas-tie.md b/.changeset/wicked-bananas-tie.md deleted file mode 100644 index 1809931d7d..0000000000 --- a/.changeset/wicked-bananas-tie.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@primer/view-components': patch ---- - -Remove dialog-scrollgutter setting from hot-path, for improved performance diff --git a/CHANGELOG.md b/CHANGELOG.md index a962a6e618..0c84a82cb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,34 @@ # CHANGELOG +## 0.35.0 + +### Minor Changes + +- [#3074](https://github.com/primer/view_components/pull/3074) [`25109d0`](https://github.com/primer/view_components/commit/25109d0a9686e8dcc8b81a08ba11cd648178aa57) Thanks [@owenniblock](https://github.com/owenniblock)! - [SelectPanel] replace loading label using parameter loading_label + [SelectPanel] show additional loading content with loading_description + +- [#3072](https://github.com/primer/view_components/pull/3072) [`18b2074`](https://github.com/primer/view_components/commit/18b2074e4a6e77ea47bd0e78c93358aaeefce842) Thanks [@camertron](https://github.com/camertron)! - [Forms] Fix position of caption for checkbox and radio groups + +- [#3149](https://github.com/primer/view_components/pull/3149) [`b9cce66`](https://github.com/primer/view_components/commit/b9cce66038a01ffa50a8f771f0b7d7312e567f88) Thanks [@camertron](https://github.com/camertron)! - Allow form groups to accept system arguments + +- [#3071](https://github.com/primer/view_components/pull/3071) [`e043069`](https://github.com/primer/view_components/commit/e043069782f1a88970c09feb0fe05566e21b18ce) Thanks [@camertron](https://github.com/camertron)! - [SelectPanel] Use checkboxes for multi-select + +- [#3126](https://github.com/primer/view_components/pull/3126) [`89052ca`](https://github.com/primer/view_components/commit/89052ca71fd7f54ffe4cda87393475428c196ded) Thanks [@francinelucca](https://github.com/francinelucca)! - Introduce the Stack and StackItem components. + +- [#3083](https://github.com/primer/view_components/pull/3083) [`5907105`](https://github.com/primer/view_components/commit/590710582e7c29b3d6bc8b142c1e9b8f95709c68) Thanks [@jamieshark](https://github.com/jamieshark)! - [SelectPanel] Adds banner scheme as param. + +### Patch Changes + +- [#3103](https://github.com/primer/view_components/pull/3103) [`6033c86`](https://github.com/primer/view_components/commit/6033c865d5448c31f0698bcdc9422a0a9581dda0) Thanks [@owenniblock](https://github.com/owenniblock)! - Moves the loading and "no results" messages on the SelectPanel to the top of the container. + +- [#3141](https://github.com/primer/view_components/pull/3141) [`37e78c0`](https://github.com/primer/view_components/commit/37e78c05e5e4ac1c8d482468b77a94b495aef6b3) Thanks [@camertron](https://github.com/camertron)! - Allow setting custom values on submit buttons. + +- [#3076](https://github.com/primer/view_components/pull/3076) [`7e7a60f`](https://github.com/primer/view_components/commit/7e7a60f4ba36b835b774c640e64d5de19f68fd61) Thanks [@HDinger](https://github.com/HDinger)! - Add "action" to the list of data attributes that accept multiple values in the `merge_data` helper + +- [#3095](https://github.com/primer/view_components/pull/3095) [`26f1fbc`](https://github.com/primer/view_components/commit/26f1fbcacade2c05fabb42d8231ac22fbc1e3b52) Thanks [@owenniblock](https://github.com/owenniblock)! - Clear input on SelectPanel when dialog closed + +- [#3144](https://github.com/primer/view_components/pull/3144) [`978e867`](https://github.com/primer/view_components/commit/978e8678301907dbaf8a61fcc966179c0736493f) Thanks [@keithamus](https://github.com/keithamus)! - Remove dialog-scrollgutter setting from hot-path, for improved performance + ## 0.34.0 ### Minor Changes diff --git a/Gemfile.lock b/Gemfile.lock index 98a95b8224..1ed5444ad8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - primer_view_components (0.34.0) + primer_view_components (0.35.0) actionview (>= 5.0.0) activesupport (>= 5.0.0) octicons (>= 18.0.0) diff --git a/components/primer/alpha/action_bar_element.d.ts b/components/primer/alpha/action_bar_element.d.ts new file mode 100644 index 0000000000..2d6536a9f0 --- /dev/null +++ b/components/primer/alpha/action_bar_element.d.ts @@ -0,0 +1,17 @@ +import { ActionMenuElement } from './action_menu/action_menu_element'; +declare class ActionBarElement extends HTMLElement { + #private; + items: HTMLElement[]; + itemContainer: HTMLElement; + moreMenu: ActionMenuElement; + connectedCallback(): void; + disconnectedCallback(): void; + menuItemClick(event: Event): void; + update(): void; +} +declare global { + interface Window { + ActionBarElement: typeof ActionBarElement; + } +} +export {}; diff --git a/components/primer/alpha/action_list.d.ts b/components/primer/alpha/action_list.d.ts new file mode 100644 index 0000000000..79bd1c8851 --- /dev/null +++ b/components/primer/alpha/action_list.d.ts @@ -0,0 +1,16 @@ +export declare class ActionListTruncationObserver { + resizeObserver: ResizeObserver; + constructor(el: HTMLElement); + unobserve(el: HTMLElement): void; + update(el: HTMLElement): void; +} +export declare class ActionListElement extends HTMLElement { + #private; + connectedCallback(): void; + disconnectedCallback(): void; +} +declare global { + interface Window { + ActionListElement: typeof ActionListElement; + } +} diff --git a/components/primer/alpha/action_menu/action_menu_element.d.ts b/components/primer/alpha/action_menu/action_menu_element.d.ts new file mode 100644 index 0000000000..8ca870a4c6 --- /dev/null +++ b/components/primer/alpha/action_menu/action_menu_element.d.ts @@ -0,0 +1,42 @@ +import '@oddbird/popover-polyfill'; +import type { IncludeFragmentElement } from '@github/include-fragment-element'; +type SelectVariant = 'none' | 'single' | 'multiple' | null; +type SelectedItem = { + label: string | null | undefined; + value: string | null | undefined; + element: Element; +}; +export declare class ActionMenuElement extends HTMLElement { + #private; + includeFragment: IncludeFragmentElement; + get selectVariant(): SelectVariant; + set selectVariant(variant: SelectVariant); + get dynamicLabelPrefix(): string; + set dynamicLabelPrefix(value: string); + get dynamicLabel(): boolean; + set dynamicLabel(value: boolean); + get popoverElement(): HTMLElement | null; + get invokerElement(): HTMLButtonElement | null; + get invokerLabel(): HTMLElement | null; + get selectedItems(): SelectedItem[]; + connectedCallback(): void; + disconnectedCallback(): void; + handleEvent(event: Event): void; + get items(): HTMLElement[]; + getItemById(itemId: string): HTMLElement | null; + isItemDisabled(item: Element | null): boolean; + disableItem(item: Element | null): void; + enableItem(item: Element | null): void; + isItemHidden(item: Element | null): boolean; + hideItem(item: Element | null): void; + showItem(item: Element | null): void; + isItemChecked(item: Element | null): boolean; + checkItem(item: Element | null): void; + uncheckItem(item: Element | null): void; +} +declare global { + interface Window { + ActionMenuElement: typeof ActionMenuElement; + } +} +export {}; diff --git a/components/primer/alpha/dropdown.d.ts b/components/primer/alpha/dropdown.d.ts new file mode 100644 index 0000000000..34e8a2fd6e --- /dev/null +++ b/components/primer/alpha/dropdown.d.ts @@ -0,0 +1 @@ +import './dropdown/menu'; diff --git a/components/primer/alpha/dropdown/menu.d.ts b/components/primer/alpha/dropdown/menu.d.ts new file mode 100644 index 0000000000..5353374f35 --- /dev/null +++ b/components/primer/alpha/dropdown/menu.d.ts @@ -0,0 +1 @@ +import '@github/details-menu-element'; diff --git a/components/primer/alpha/image_crop.d.ts b/components/primer/alpha/image_crop.d.ts new file mode 100644 index 0000000000..9181200bae --- /dev/null +++ b/components/primer/alpha/image_crop.d.ts @@ -0,0 +1 @@ +import '@github/image-crop-element'; diff --git a/components/primer/alpha/modal_dialog.d.ts b/components/primer/alpha/modal_dialog.d.ts new file mode 100644 index 0000000000..30ed62b625 --- /dev/null +++ b/components/primer/alpha/modal_dialog.d.ts @@ -0,0 +1,18 @@ +export declare class ModalDialogElement extends HTMLElement { + #private; + openButton: HTMLButtonElement | null; + get open(): boolean; + set open(value: boolean); + get showButtons(): NodeList; + connectedCallback(): void; + show(): void; + close(closedNotCancelled?: boolean): void; +} +declare global { + interface Window { + ModalDialogElement: typeof ModalDialogElement; + } + interface HTMLElementTagNameMap { + 'modal-dialog': ModalDialogElement; + } +} diff --git a/components/primer/alpha/segmented_control.d.ts b/components/primer/alpha/segmented_control.d.ts new file mode 100644 index 0000000000..bfda02ffe4 --- /dev/null +++ b/components/primer/alpha/segmented_control.d.ts @@ -0,0 +1,12 @@ +declare class SegmentedControlElement extends HTMLElement { + #private; + items: HTMLElement[]; + connectedCallback(): void; + select(event: Event): void; +} +declare global { + interface Window { + SegmentedControlElement: typeof SegmentedControlElement; + } +} +export {}; diff --git a/components/primer/alpha/select_panel_element.d.ts b/components/primer/alpha/select_panel_element.d.ts new file mode 100644 index 0000000000..119269d4af --- /dev/null +++ b/components/primer/alpha/select_panel_element.d.ts @@ -0,0 +1,63 @@ +import { IncludeFragmentElement } from '@github/include-fragment-element'; +import type { AnchorAlignment, AnchorSide } from '@primer/behaviors'; +import '@oddbird/popover-polyfill'; +type SelectVariant = 'none' | 'single' | 'multiple' | null; +type SelectedItem = { + label: string | null | undefined; + value: string | null | undefined; + inputName: string | null | undefined; +}; +export type SelectPanelItem = HTMLLIElement; +export type FilterFn = (item: SelectPanelItem, query: string) => boolean; +export declare class SelectPanelElement extends HTMLElement { + #private; + includeFragment: IncludeFragmentElement; + dialog: HTMLDialogElement; + filterInputTextField: HTMLInputElement; + remoteInput: HTMLElement; + list: HTMLElement; + ariaLiveContainer: HTMLElement; + noResults: HTMLElement; + fragmentErrorElement: HTMLElement; + bannerErrorElement: HTMLElement; + bodySpinner: HTMLElement; + filterFn?: FilterFn; + get open(): boolean; + get selectVariant(): SelectVariant; + get ariaSelectionType(): string; + set selectVariant(variant: SelectVariant); + get dynamicLabelPrefix(): string; + get dynamicAriaLabelPrefix(): string; + set dynamicLabelPrefix(value: string); + get dynamicLabel(): boolean; + set dynamicLabel(value: boolean); + get invokerElement(): HTMLButtonElement | null; + get closeButton(): HTMLButtonElement | null; + get invokerLabel(): HTMLElement | null; + get selectedItems(): SelectedItem[]; + get align(): AnchorAlignment; + get side(): AnchorSide; + updateAnchorPosition(): void; + connectedCallback(): void; + disconnectedCallback(): void; + handleEvent(event: Event): void; + show(): void; + hide(): void; + get visibleItems(): SelectPanelItem[]; + get items(): SelectPanelItem[]; + get focusableItem(): HTMLElement | undefined; + getItemById(itemId: string): SelectPanelItem | null; + isItemDisabled(item: SelectPanelItem | null): boolean; + disableItem(item: SelectPanelItem | null): void; + enableItem(item: SelectPanelItem | null): void; + isItemHidden(item: SelectPanelItem | null): boolean; + isItemChecked(item: SelectPanelItem | null): boolean; + checkItem(item: SelectPanelItem | null): void; + uncheckItem(item: SelectPanelItem | null): void; +} +declare global { + interface Window { + SelectPanelElement: typeof SelectPanelElement; + } +} +export {}; diff --git a/components/primer/alpha/tab_container.d.ts b/components/primer/alpha/tab_container.d.ts new file mode 100644 index 0000000000..b299f85814 --- /dev/null +++ b/components/primer/alpha/tab_container.d.ts @@ -0,0 +1 @@ +import '@github/tab-container-element'; diff --git a/components/primer/alpha/toggle_switch.d.ts b/components/primer/alpha/toggle_switch.d.ts new file mode 100644 index 0000000000..8b7e5e4611 --- /dev/null +++ b/components/primer/alpha/toggle_switch.d.ts @@ -0,0 +1,34 @@ +declare class ToggleSwitchElement extends HTMLElement { + switch: HTMLElement; + loadingSpinner: HTMLElement; + errorIcon: HTMLElement; + turbo: boolean; + private toggling; + get src(): string | null; + get csrf(): string | null; + get csrfField(): string; + isRemote(): boolean; + toggle(): Promise; + turnOn(): void; + turnOff(): void; + isOn(): boolean; + isOff(): boolean; + isDisabled(): boolean; + disable(): void; + enable(): void; + private performToggle; + private setLoadingState; + private setSuccessState; + private setErrorState; + private setFinishedState; + private submitForm; +} +declare global { + interface Window { + ToggleSwitchElement: typeof ToggleSwitchElement; + Turbo: { + renderStreamMessage: (message: string) => void; + }; + } +} +export {}; diff --git a/components/primer/alpha/tool_tip.d.ts b/components/primer/alpha/tool_tip.d.ts new file mode 100644 index 0000000000..f91a337a68 --- /dev/null +++ b/components/primer/alpha/tool_tip.d.ts @@ -0,0 +1,27 @@ +import '@oddbird/popover-polyfill'; +type Direction = 'n' | 's' | 'e' | 'w' | 'ne' | 'se' | 'nw' | 'sw'; +declare class ToolTipElement extends HTMLElement { + #private; + styles(): string; + get showReason(): "focus" | "mouse"; + get htmlFor(): string; + set htmlFor(value: string); + get type(): 'description' | 'label'; + set type(value: 'description' | 'label'); + get direction(): Direction; + set direction(value: Direction); + get control(): HTMLElement | null; + set hiddenFromView(value: true | false); + get hiddenFromView(): true | false; + connectedCallback(): void; + disconnectedCallback(): void; + handleEvent(event: Event): Promise; + static observedAttributes: string[]; + attributeChangedCallback(name: string): void; +} +declare global { + interface Window { + ToolTipElement: typeof ToolTipElement; + } +} +export {}; diff --git a/components/primer/alpha/x_banner.d.ts b/components/primer/alpha/x_banner.d.ts new file mode 100644 index 0000000000..d1a308af2e --- /dev/null +++ b/components/primer/alpha/x_banner.d.ts @@ -0,0 +1,18 @@ +declare global { + interface HTMLElementEventMap { + 'banner:dismiss': CustomEvent; + } +} +declare class XBannerElement extends HTMLElement { + #private; + titleText: HTMLElement; + dismiss(): void; + show(): void; + hide(): void; +} +declare global { + interface Window { + XBannerElement: typeof XBannerElement; + } +} +export {}; diff --git a/components/primer/anchored_position.d.ts b/components/primer/anchored_position.d.ts new file mode 100644 index 0000000000..9777d0c681 --- /dev/null +++ b/components/primer/anchored_position.d.ts @@ -0,0 +1,27 @@ +import type { AnchorAlignment, AnchorSide, PositionSettings } from '@primer/behaviors'; +export default class AnchoredPositionElement extends HTMLElement implements PositionSettings { + #private; + get align(): AnchorAlignment; + set align(value: AnchorAlignment); + get side(): AnchorSide; + set side(value: AnchorSide); + get anchorOffset(): number; + set anchorOffset(value: number | 'normal' | 'spacious'); + get anchor(): string; + set anchor(value: string); + get anchorElement(): HTMLElement | null; + set anchorElement(value: HTMLElement | null); + get alignmentOffset(): number; + set alignmentOffset(value: number); + get allowOutOfBounds(): boolean; + set allowOutOfBounds(value: boolean); + connectedCallback(): void; + static observedAttributes: string[]; + attributeChangedCallback(): void; + update(): void; +} +declare global { + interface Window { + AnchoredPositionElement: typeof AnchoredPositionElement; + } +} diff --git a/components/primer/aria_live.d.ts b/components/primer/aria_live.d.ts new file mode 100644 index 0000000000..c46454b8eb --- /dev/null +++ b/components/primer/aria_live.d.ts @@ -0,0 +1,8 @@ +export declare function announceFromElement(el: HTMLElement, options?: { + assertive?: boolean; + element?: HTMLElement; +}): void; +export declare function announce(message: string, options?: { + assertive?: boolean; + element?: HTMLElement; +}): void; diff --git a/components/primer/beta/auto_complete/auto_complete.d.ts b/components/primer/beta/auto_complete/auto_complete.d.ts new file mode 100644 index 0000000000..bffbf30963 --- /dev/null +++ b/components/primer/beta/auto_complete/auto_complete.d.ts @@ -0,0 +1 @@ +import '@github/auto-complete-element'; diff --git a/components/primer/beta/clipboard_copy.d.ts b/components/primer/beta/clipboard_copy.d.ts new file mode 100644 index 0000000000..7c6a4ddd47 --- /dev/null +++ b/components/primer/beta/clipboard_copy.d.ts @@ -0,0 +1 @@ +import '@github/clipboard-copy-element'; diff --git a/components/primer/beta/nav_list.d.ts b/components/primer/beta/nav_list.d.ts new file mode 100644 index 0000000000..93cd2fb3e1 --- /dev/null +++ b/components/primer/beta/nav_list.d.ts @@ -0,0 +1,20 @@ +export declare class NavListElement extends HTMLElement { + #private; + items: HTMLElement[]; + topLevelList: HTMLElement; + connectedCallback(): void; + disconnectedCallback(): void; + selectItemById(itemId: string | null): boolean; + selectItemByHref(href: string | null): boolean; + selectItemByCurrentLocation(): boolean; + expandItem(item: HTMLElement): void; + collapseItem(item: HTMLElement): void; + itemIsExpanded(item: HTMLElement | null): boolean; + handleItemWithSubItemClick(e: Event): void; + handleItemWithSubItemKeydown(e: KeyboardEvent): void; +} +declare global { + interface Window { + NavListElement: typeof NavListElement; + } +} diff --git a/components/primer/beta/nav_list_group_element.d.ts b/components/primer/beta/nav_list_group_element.d.ts new file mode 100644 index 0000000000..dfc5c8d897 --- /dev/null +++ b/components/primer/beta/nav_list_group_element.d.ts @@ -0,0 +1,19 @@ +export declare class NavListGroupElement extends HTMLElement { + #private; + showMoreItem: HTMLElement; + focusMarkers: HTMLElement[]; + connectedCallback(): void; + get showMoreDisabled(): boolean; + set showMoreDisabled(value: boolean); + set currentPage(value: number); + get currentPage(): number; + get totalPages(): number; + get paginationSrc(): string; + private showMore; + private setShowMoreItemState; +} +declare global { + interface Window { + NavListGroupElement: typeof NavListGroupElement; + } +} diff --git a/components/primer/beta/relative_time.d.ts b/components/primer/beta/relative_time.d.ts new file mode 100644 index 0000000000..a0896b9a4b --- /dev/null +++ b/components/primer/beta/relative_time.d.ts @@ -0,0 +1 @@ +import '@github/relative-time-element'; diff --git a/components/primer/dialog_helper.d.ts b/components/primer/dialog_helper.d.ts new file mode 100644 index 0000000000..580c806ef6 --- /dev/null +++ b/components/primer/dialog_helper.d.ts @@ -0,0 +1,15 @@ +export declare class DialogHelperElement extends HTMLElement { + #private; + get dialog(): HTMLDialogElement | null; + connectedCallback(): void; + disconnectedCallback(): void; + handleEvent(event: MouseEvent): void; +} +declare global { + interface Window { + DialogHelperElement: typeof DialogHelperElement; + } + interface HTMLElementTagNameMap { + 'dialog-helper': DialogHelperElement; + } +} diff --git a/components/primer/focus_group.d.ts b/components/primer/focus_group.d.ts new file mode 100644 index 0000000000..a30c8e027c --- /dev/null +++ b/components/primer/focus_group.d.ts @@ -0,0 +1,19 @@ +import '@oddbird/popover-polyfill'; +export default class FocusGroupElement extends HTMLElement { + #private; + get nowrap(): boolean; + set nowrap(value: boolean); + get direction(): 'horizontal' | 'vertical' | 'both'; + set direction(value: 'horizontal' | 'vertical' | 'both'); + get retain(): boolean; + set retain(value: boolean); + get mnemonics(): boolean; + connectedCallback(): void; + disconnectedCallback(): void; + handleEvent(event: Event): void; +} +declare global { + interface Window { + FocusGroupElement: typeof FocusGroupElement; + } +} diff --git a/components/primer/primer.d.ts b/components/primer/primer.d.ts new file mode 100644 index 0000000000..469b912208 --- /dev/null +++ b/components/primer/primer.d.ts @@ -0,0 +1,28 @@ +import '@github/include-fragment-element'; +import '@github/remote-input-element'; +import './alpha/action_list'; +import './alpha/action_bar_element'; +import './alpha/dropdown'; +import './anchored_position'; +import './dialog_helper'; +import './focus_group'; +import './scrollable_region'; +import './aria_live'; +import './shared_events'; +import './alpha/image_crop'; +import './alpha/modal_dialog'; +import './beta/nav_list'; +import './beta/nav_list_group_element'; +import './alpha/segmented_control'; +import './alpha/toggle_switch'; +import './alpha/tool_tip'; +import './alpha/x_banner'; +import './beta/auto_complete/auto_complete'; +import './beta/clipboard_copy'; +import './beta/relative_time'; +import './alpha/tab_container'; +import '../../lib/primer/forms/primer_multi_input'; +import '../../lib/primer/forms/primer_text_field'; +import '../../lib/primer/forms/toggle_switch_input'; +import './alpha/action_menu/action_menu_element'; +import './alpha/select_panel_element'; diff --git a/components/primer/scrollable_region.d.ts b/components/primer/scrollable_region.d.ts new file mode 100644 index 0000000000..f328da1a49 --- /dev/null +++ b/components/primer/scrollable_region.d.ts @@ -0,0 +1,13 @@ +export declare class ScrollableRegionElement extends HTMLElement { + hasOverflow: boolean; + labelledBy: string; + observer: ResizeObserver; + connectedCallback(): void; + disconnectedCallback(): void; + attributeChangedCallback(name: string): void; +} +declare global { + interface Window { + ScrollableRegionElement: typeof ScrollableRegionElement; + } +} diff --git a/components/primer/shared_events.d.ts b/components/primer/shared_events.d.ts new file mode 100644 index 0000000000..bf1c42d3da --- /dev/null +++ b/components/primer/shared_events.d.ts @@ -0,0 +1,11 @@ +export type ItemActivatedEvent = { + item: Element; + checked: boolean; + value: string | null; +}; +declare global { + interface HTMLElementEventMap { + itemActivated: CustomEvent; + beforeItemActivated: CustomEvent; + } +} diff --git a/demo/Gemfile.lock b/demo/Gemfile.lock index 469b27f535..5adf85d68a 100644 --- a/demo/Gemfile.lock +++ b/demo/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: .. specs: - primer_view_components (0.34.0) + primer_view_components (0.35.0) actionview (>= 5.0.0) activesupport (>= 5.0.0) octicons (>= 18.0.0) diff --git a/lib/primer/forms/primer_multi_input.d.ts b/lib/primer/forms/primer_multi_input.d.ts new file mode 100644 index 0000000000..7554a1091b --- /dev/null +++ b/lib/primer/forms/primer_multi_input.d.ts @@ -0,0 +1,10 @@ +export declare class PrimerMultiInputElement extends HTMLElement { + fields: HTMLInputElement[]; + activateField(name: string): void; + private findField; +} +declare global { + interface Window { + PrimerMultiInputElement: typeof PrimerMultiInputElement; + } +} diff --git a/lib/primer/forms/primer_text_field.d.ts b/lib/primer/forms/primer_text_field.d.ts new file mode 100644 index 0000000000..3e81f1e4c9 --- /dev/null +++ b/lib/primer/forms/primer_text_field.d.ts @@ -0,0 +1,28 @@ +import '@github/auto-check-element'; +import type { AutoCheckErrorEvent, AutoCheckSuccessEvent } from '@github/auto-check-element'; +declare global { + interface HTMLElementEventMap { + 'auto-check-success': AutoCheckSuccessEvent; + 'auto-check-error': AutoCheckErrorEvent; + } +} +export declare class PrimerTextFieldElement extends HTMLElement { + #private; + inputElement: HTMLInputElement; + validationElement: HTMLElement; + validationMessageElement: HTMLElement; + validationSuccessIcon: HTMLElement; + validationErrorIcon: HTMLElement; + leadingVisual: HTMLElement; + leadingSpinner: HTMLElement; + connectedCallback(): void; + disconnectedCallback(): void; + clearContents(): void; + clearError(): void; + setValidationMessage(message: string): void; + toggleValidationStyling(isError: boolean): void; + setSuccess(message: string): void; + setError(message: string): void; + showLeadingSpinner(): void; + hideLeadingSpinner(): void; +} diff --git a/lib/primer/forms/toggle_switch_input.d.ts b/lib/primer/forms/toggle_switch_input.d.ts new file mode 100644 index 0000000000..5dea4b0213 --- /dev/null +++ b/lib/primer/forms/toggle_switch_input.d.ts @@ -0,0 +1,5 @@ +export declare class ToggleSwitchInputElement extends HTMLElement { + validationElement: HTMLElement; + validationMessageElement: HTMLElement; + connectedCallback(): void; +} diff --git a/lib/primer/view_components/version.rb b/lib/primer/view_components/version.rb index 3728269766..0882be0258 100644 --- a/lib/primer/view_components/version.rb +++ b/lib/primer/view_components/version.rb @@ -5,7 +5,7 @@ module Primer module ViewComponents module VERSION MAJOR = 0 - MINOR = 34 + MINOR = 35 PATCH = 0 STRING = [MAJOR, MINOR, PATCH].join(".") diff --git a/package-lock.json b/package-lock.json index 496c0877ed..357724f4d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@primer/view-components", - "version": "0.34.0", + "version": "0.35.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@primer/view-components", - "version": "0.34.0", + "version": "0.35.0", "license": "MIT", "dependencies": { "@github/auto-check-element": "^5.2.0", diff --git a/package.json b/package.json index dd444c1d2b..81d8bb8f59 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@primer/view-components", - "version": "0.34.0", + "version": "0.35.0", "description": "ViewComponents for the Primer Design System", "main": "app/assets/javascripts/primer_view_components.js", "module": "app/components/primer/primer.js",