Some checks are pending
Deploy Volleyball CMS / deploy (push) Waiting to run
60 lines
3.2 KiB
TypeScript
60 lines
3.2 KiB
TypeScript
import React, { type ElementType, type MutableRefObject, type Ref } from 'react';
|
|
import type { Props } from '../../types.js';
|
|
import { type HasDisplayName, type PropsForFeatures, type RefProp } from '../../utils/render.js';
|
|
declare let DEFAULT_DISCLOSURE_TAG: React.ExoticComponent<{
|
|
children?: React.ReactNode;
|
|
}>;
|
|
type DisclosureRenderPropArg = {
|
|
open: boolean;
|
|
close: (focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>) => void;
|
|
};
|
|
type DisclosurePropsWeControl = never;
|
|
export type DisclosureProps<TTag extends ElementType = typeof DEFAULT_DISCLOSURE_TAG> = Props<TTag, DisclosureRenderPropArg, DisclosurePropsWeControl, {
|
|
defaultOpen?: boolean;
|
|
}>;
|
|
declare function DisclosureFn<TTag extends ElementType = typeof DEFAULT_DISCLOSURE_TAG>(props: DisclosureProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
|
|
declare let DEFAULT_BUTTON_TAG: "button";
|
|
type ButtonRenderPropArg = {
|
|
open: boolean;
|
|
hover: boolean;
|
|
active: boolean;
|
|
disabled: boolean;
|
|
focus: boolean;
|
|
autofocus: boolean;
|
|
};
|
|
type ButtonPropsWeControl = 'aria-controls' | 'aria-expanded';
|
|
export type DisclosureButtonProps<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG> = Props<TTag, ButtonRenderPropArg, ButtonPropsWeControl, {
|
|
disabled?: boolean;
|
|
autoFocus?: boolean;
|
|
}>;
|
|
declare function ButtonFn<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: DisclosureButtonProps<TTag>, ref: Ref<HTMLButtonElement>): React.ReactElement<any, string | React.JSXElementConstructor<any>> | null;
|
|
declare let DEFAULT_PANEL_TAG: "div";
|
|
type PanelRenderPropArg = {
|
|
open: boolean;
|
|
close: (focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>) => void;
|
|
};
|
|
type DisclosurePanelPropsWeControl = never;
|
|
declare let PanelRenderFeatures: number;
|
|
export type DisclosurePanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, DisclosurePanelPropsWeControl, {
|
|
transition?: boolean;
|
|
} & PropsForFeatures<typeof PanelRenderFeatures>>;
|
|
declare function PanelFn<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag>, ref: Ref<HTMLElement>): React.JSX.Element;
|
|
export interface _internal_ComponentDisclosure extends HasDisplayName {
|
|
<TTag extends ElementType = typeof DEFAULT_DISCLOSURE_TAG>(props: DisclosureProps<TTag> & RefProp<typeof DisclosureFn>): React.JSX.Element;
|
|
}
|
|
export interface _internal_ComponentDisclosureButton extends HasDisplayName {
|
|
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(props: DisclosureButtonProps<TTag> & RefProp<typeof ButtonFn>): React.JSX.Element;
|
|
}
|
|
export interface _internal_ComponentDisclosurePanel extends HasDisplayName {
|
|
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(props: DisclosurePanelProps<TTag> & RefProp<typeof PanelFn>): React.JSX.Element;
|
|
}
|
|
export declare let DisclosureButton: _internal_ComponentDisclosureButton;
|
|
export declare let DisclosurePanel: _internal_ComponentDisclosurePanel;
|
|
export declare let Disclosure: _internal_ComponentDisclosure & {
|
|
/** @deprecated use `<DisclosureButton>` instead of `<Disclosure.Button>` */
|
|
Button: _internal_ComponentDisclosureButton;
|
|
/** @deprecated use `<DisclosurePanel>` instead of `<Disclosure.Panel>` */
|
|
Panel: _internal_ComponentDisclosurePanel;
|
|
};
|
|
export {};
|