mirror of
https://github.com/nunocoracao/blowfish.git
synced 2026-01-30 15:31:52 +00:00
config redirect
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
||||
<h3 align="center">
|
||||
@headlessui/react
|
||||
</h3>
|
||||
|
||||
<p align="center">
|
||||
A set of completely unstyled, fully accessible UI components for React, designed to integrate
|
||||
beautifully with Tailwind CSS.
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.npmjs.com/package/@headlessui/react"><img src="https://img.shields.io/npm/dt/@headlessui/react.svg" alt="Total Downloads"></a>
|
||||
<a href="https://github.com/tailwindlabs/headlessui/releases"><img src="https://img.shields.io/npm/v/@headlessui/react.svg" alt="Latest Release"></a>
|
||||
<a href="https://github.com/tailwindlabs/headlessui/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/@headlessui/react.svg" alt="License"></a>
|
||||
</p>
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
npm install @headlessui/react
|
||||
```
|
||||
|
||||
## Documentation
|
||||
|
||||
For full documentation, visit [headlessui.dev](https://headlessui.dev/react/menu).
|
||||
|
||||
## Community
|
||||
|
||||
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
|
||||
|
||||
[Discuss Headless UI on GitHub](https://github.com/tailwindlabs/headlessui/discussions)
|
||||
|
||||
For casual chit-chat with others using the library:
|
||||
|
||||
[Join the Tailwind CSS Discord Server](https://discord.gg/7NF8GNe)
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
import React, { ElementType, Ref } from 'react';
|
||||
import { ByComparator, EnsureArray, Expand, Props } from '../../types.js';
|
||||
import { PropsForFeatures } from '../../utils/render.js';
|
||||
declare let DEFAULT_COMBOBOX_TAG: React.ExoticComponent<{
|
||||
children?: React.ReactNode;
|
||||
}>;
|
||||
interface ComboboxRenderPropArg<T> {
|
||||
open: boolean;
|
||||
disabled: boolean;
|
||||
activeIndex: number | null;
|
||||
activeOption: T | null;
|
||||
value: T;
|
||||
}
|
||||
declare type O = 'value' | 'defaultValue' | 'nullable' | 'multiple' | 'onChange' | 'by';
|
||||
declare type ComboboxValueProps<TValue, TNullable extends boolean | undefined, TMultiple extends boolean | undefined, TTag extends ElementType> = Extract<({
|
||||
value?: EnsureArray<TValue>;
|
||||
defaultValue?: EnsureArray<TValue>;
|
||||
nullable: true;
|
||||
multiple: true;
|
||||
onChange?(value: EnsureArray<TValue>): void;
|
||||
by?: ByComparator<TValue>;
|
||||
} & Props<TTag, ComboboxRenderPropArg<EnsureArray<TValue>>, O>) | ({
|
||||
value?: TValue | null;
|
||||
defaultValue?: TValue | null;
|
||||
nullable: true;
|
||||
multiple?: false;
|
||||
onChange?(value: TValue | null): void;
|
||||
by?: ByComparator<TValue | null>;
|
||||
} & Expand<Props<TTag, ComboboxRenderPropArg<TValue | null>, O>>) | ({
|
||||
value?: EnsureArray<TValue>;
|
||||
defaultValue?: EnsureArray<TValue>;
|
||||
nullable?: false;
|
||||
multiple: true;
|
||||
onChange?(value: EnsureArray<TValue>): void;
|
||||
by?: ByComparator<TValue extends Array<infer U> ? U : TValue>;
|
||||
} & Expand<Props<TTag, ComboboxRenderPropArg<EnsureArray<TValue>>, O>>) | ({
|
||||
value?: TValue;
|
||||
nullable?: false;
|
||||
multiple?: false;
|
||||
defaultValue?: TValue;
|
||||
onChange?(value: TValue): void;
|
||||
by?: ByComparator<TValue>;
|
||||
} & Props<TTag, ComboboxRenderPropArg<TValue>, O>), {
|
||||
nullable?: TNullable;
|
||||
multiple?: TMultiple;
|
||||
}>;
|
||||
declare type ComboboxProps<TValue, TNullable extends boolean | undefined, TMultiple extends boolean | undefined, TTag extends ElementType> = ComboboxValueProps<TValue, TNullable, TMultiple, TTag> & {
|
||||
disabled?: boolean;
|
||||
__demoMode?: boolean;
|
||||
name?: string;
|
||||
};
|
||||
declare function ComboboxFn<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, true, true, TTag>, ref: Ref<TTag>): JSX.Element;
|
||||
declare function ComboboxFn<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, true, false, TTag>, ref: Ref<TTag>): JSX.Element;
|
||||
declare function ComboboxFn<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, false, false, TTag>, ref: Ref<TTag>): JSX.Element;
|
||||
declare function ComboboxFn<TValue, TTag extends ElementType = typeof DEFAULT_COMBOBOX_TAG>(props: ComboboxProps<TValue, false, true, TTag>, ref: Ref<TTag>): JSX.Element;
|
||||
interface InputRenderPropArg {
|
||||
open: boolean;
|
||||
disabled: boolean;
|
||||
}
|
||||
declare type InputPropsWeControl = 'role' | 'aria-labelledby' | 'aria-expanded' | 'aria-activedescendant' | 'onKeyDown' | 'onChange' | 'displayValue';
|
||||
interface ButtonRenderPropArg {
|
||||
open: boolean;
|
||||
disabled: boolean;
|
||||
value: any;
|
||||
}
|
||||
declare type ButtonPropsWeControl = 'type' | 'tabIndex' | 'aria-haspopup' | 'aria-controls' | 'aria-expanded' | 'aria-labelledby' | 'disabled' | 'onClick' | 'onKeyDown';
|
||||
interface LabelRenderPropArg {
|
||||
open: boolean;
|
||||
disabled: boolean;
|
||||
}
|
||||
declare type LabelPropsWeControl = 'ref' | 'onClick';
|
||||
interface OptionsRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type OptionsPropsWeControl = 'aria-activedescendant' | 'aria-labelledby' | 'hold' | 'onKeyDown' | 'role' | 'tabIndex';
|
||||
declare let OptionsRenderFeatures: number;
|
||||
interface OptionRenderPropArg {
|
||||
active: boolean;
|
||||
selected: boolean;
|
||||
disabled: boolean;
|
||||
}
|
||||
declare type ComboboxOptionPropsWeControl = 'role' | 'tabIndex' | 'aria-disabled' | 'aria-selected';
|
||||
export declare let Combobox: typeof ComboboxFn & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Input: (<TTag extends React.ElementType<any> = "input", TType = {}[] | undefined>(props: Props<TTag, InputRenderPropArg, InputPropsWeControl> & {
|
||||
displayValue?(item: TType): string;
|
||||
onChange(event: React.ChangeEvent<HTMLInputElement>): void;
|
||||
}, ref: Ref<HTMLInputElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Button: (<TTag_1 extends React.ElementType<any> = "button">(props: Props<TTag_1, ButtonRenderPropArg, ButtonPropsWeControl>, ref: Ref<HTMLButtonElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Label: (<TTag_2 extends React.ElementType<any> = "label">(props: Props<TTag_2, LabelRenderPropArg, LabelPropsWeControl>, ref: Ref<HTMLLabelElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Options: (<TTag_3 extends React.ElementType<any> = "ul">(props: Props<TTag_3, OptionsRenderPropArg, OptionsPropsWeControl> & (({
|
||||
static?: undefined;
|
||||
} & {
|
||||
unmount?: boolean | undefined;
|
||||
}) | ({
|
||||
unmount?: undefined;
|
||||
} & {
|
||||
static?: boolean | undefined;
|
||||
})) & {
|
||||
hold?: boolean | undefined;
|
||||
}, ref: Ref<HTMLUListElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Option: (<TTag_4 extends React.ElementType<any> = "li", TType_1 = {}[] | undefined>(props: Props<TTag_4, OptionRenderPropArg, "value" | ComboboxOptionPropsWeControl> & {
|
||||
disabled?: boolean | undefined;
|
||||
value: TType_1;
|
||||
}, ref: Ref<HTMLLIElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
File diff suppressed because one or more lines are too long
+18
@@ -0,0 +1,18 @@
|
||||
import React, { ReactNode, Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
interface SharedData {
|
||||
slot?: {};
|
||||
name?: string;
|
||||
props?: {};
|
||||
}
|
||||
interface DescriptionProviderProps extends SharedData {
|
||||
children: ReactNode;
|
||||
}
|
||||
export declare function useDescriptions(): [
|
||||
string | undefined,
|
||||
(props: DescriptionProviderProps) => JSX.Element
|
||||
];
|
||||
export declare let Description: (<TTag extends React.ElementType<any> = "p">(props: Props<TTag, {}, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: Ref<HTMLParagraphElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import f,{createContext as m,useContext as D,useMemo as l,useState as P}from"react";import{useId as T}from'../../hooks/use-id.js';import{forwardRefWithAs as g,render as x}from'../../utils/render.js';import{useIsoMorphicEffect as E}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as h}from'../../hooks/use-sync-refs.js';import{useEvent as v}from'../../hooks/use-event.js';let d=m(null);function u(){let n=D(d);if(n===null){let t=new Error("You used a <Description /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}return n}function k(){let[n,t]=P([]);return[n.length>0?n.join(" "):void 0,l(()=>function(e){let i=v(r=>(t(o=>[...o,r]),()=>t(o=>{let s=o.slice(),p=s.indexOf(r);return p!==-1&&s.splice(p,1),s}))),a=l(()=>({register:i,slot:e.slot,name:e.name,props:e.props}),[i,e.slot,e.name,e.props]);return f.createElement(d.Provider,{value:a},e.children)},[t])]}let S="p",F=g(function(t,c){let e=T(),{id:i=`headlessui-description-${e}`,...a}=t,r=u(),o=h(c);E(()=>r.register(i),[i,r.register]);let s={ref:o,...r.props,id:i};return x({ourProps:s,theirProps:a,slot:r.slot||{},defaultTag:S,name:r.name||"Description"})});export{F as Description,k as useDescriptions};
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
import React, { MutableRefObject, Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
import { PropsForFeatures } from '../../utils/render.js';
|
||||
interface DialogRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type DialogPropsWeControl = 'role' | 'aria-modal' | 'aria-describedby' | 'aria-labelledby';
|
||||
declare let DialogRenderFeatures: number;
|
||||
interface OverlayRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type OverlayPropsWeControl = 'aria-hidden' | 'onClick';
|
||||
interface BackdropRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type BackdropPropsWeControl = 'aria-hidden' | 'onClick';
|
||||
interface PanelRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
interface TitleRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
export declare let Dialog: (<TTag extends React.ElementType<any> = "div">(props: Props<TTag, DialogRenderPropArg, DialogPropsWeControl> & (({
|
||||
static?: undefined;
|
||||
} & {
|
||||
unmount?: boolean | undefined;
|
||||
}) | ({
|
||||
unmount?: undefined;
|
||||
} & {
|
||||
static?: boolean | undefined;
|
||||
})) & {
|
||||
open?: boolean | undefined;
|
||||
onClose(value: boolean): void;
|
||||
initialFocus?: React.MutableRefObject<HTMLElement | null> | undefined;
|
||||
__demoMode?: boolean | undefined;
|
||||
}, ref: Ref<HTMLDivElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Backdrop: (<TTag_1 extends React.ElementType<any> = "div">(props: Props<TTag_1, BackdropRenderPropArg, BackdropPropsWeControl>, ref: Ref<HTMLDivElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
Panel: (<TTag_2 extends React.ElementType<any> = "div">(props: Props<TTag_2, PanelRenderPropArg, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: Ref<HTMLDivElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Overlay: (<TTag_3 extends React.ElementType<any> = "div">(props: Props<TTag_3, OverlayRenderPropArg, OverlayPropsWeControl>, ref: Ref<HTMLDivElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Title: (<TTag_4 extends React.ElementType<any> = "h2">(props: Props<TTag_4, TitleRenderPropArg, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: Ref<HTMLHeadingElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Description: (<TTag_5 extends React.ElementType<any> = "p">(props: Props<TTag_5, {}, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: React.Ref<HTMLParagraphElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
File diff suppressed because one or more lines are too long
+51
@@ -0,0 +1,51 @@
|
||||
import React, { MutableRefObject, Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
import { PropsForFeatures } from '../../utils/render.js';
|
||||
interface DisclosureRenderPropArg {
|
||||
open: boolean;
|
||||
close(focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>): void;
|
||||
}
|
||||
interface ButtonRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type ButtonPropsWeControl = 'type' | 'aria-expanded' | 'aria-controls' | 'onKeyDown' | 'onClick';
|
||||
interface PanelRenderPropArg {
|
||||
open: boolean;
|
||||
close: (focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>) => void;
|
||||
}
|
||||
declare let PanelRenderFeatures: number;
|
||||
export declare let Disclosure: (<TTag extends React.ElementType<any> = React.ExoticComponent<{
|
||||
children?: React.ReactNode;
|
||||
}>>(props: Omit<import('../../types.js').PropsOf<TTag>, "as" | "children" | "refName" | "className"> & {
|
||||
as?: TTag | undefined;
|
||||
children?: React.ReactNode | ((bag: DisclosureRenderPropArg) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../../types.js').PropsOf<TTag> extends never ? never : "className" extends keyof import('../../types.js').PropsOf<TTag> ? true : never) ? {
|
||||
className?: import('../../types.js').PropsOf<TTag>["className"] | ((bag: DisclosureRenderPropArg) => string) | undefined;
|
||||
} : {}) & {
|
||||
defaultOpen?: boolean | undefined;
|
||||
}, ref: React.Ref<TTag>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Button: (<TTag_1 extends React.ElementType<any> = "button">(props: Props<TTag_1, ButtonRenderPropArg, ButtonPropsWeControl>, ref: Ref<HTMLButtonElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Panel: (<TTag_2 extends React.ElementType<any> = "div">(props: Omit<import('../../types.js').PropsOf<TTag_2>, "as" | "children" | "refName" | "className"> & {
|
||||
as?: TTag_2 | undefined;
|
||||
children?: React.ReactNode | ((bag: PanelRenderPropArg) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../../types.js').PropsOf<TTag_2> extends never ? never : "className" extends keyof import('../../types.js').PropsOf<TTag_2> ? true : never) ? {
|
||||
className?: import('../../types.js').PropsOf<TTag_2>["className"] | ((bag: PanelRenderPropArg) => string) | undefined;
|
||||
} : {}) & (({
|
||||
static?: undefined;
|
||||
} & {
|
||||
unmount?: boolean | undefined;
|
||||
}) | ({
|
||||
unmount?: undefined;
|
||||
} & {
|
||||
static?: boolean | undefined;
|
||||
})), ref: Ref<HTMLDivElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import g,{Fragment as U,createContext as I,useContext as C,useEffect as w,useMemo as E,useReducer as j,useRef as R}from"react";import{match as L}from'../../utils/match.js';import{forwardRefWithAs as O,render as k,Features as F}from'../../utils/render.js';import{optionalRef as N,useSyncRefs as M}from'../../hooks/use-sync-refs.js';import{useId as _}from'../../hooks/use-id.js';import{Keys as m}from'../keyboard.js';import{isDisabledReactIssue7711 as G}from'../../utils/bugs.js';import{OpenClosedProvider as W,State as x,useOpenClosed as $}from'../../internal/open-closed.js';import{useResolveButtonType as q}from'../../hooks/use-resolve-button-type.js';import{getOwnerDocument as z}from'../../utils/owner.js';import{useEvent as b}from'../../hooks/use-event.js';var J=(l=>(l[l.Open=0]="Open",l[l.Closed=1]="Closed",l))(J||{}),Q=(t=>(t[t.ToggleDisclosure=0]="ToggleDisclosure",t[t.CloseDisclosure=1]="CloseDisclosure",t[t.SetButtonId=2]="SetButtonId",t[t.SetPanelId=3]="SetPanelId",t[t.LinkPanel=4]="LinkPanel",t[t.UnlinkPanel=5]="UnlinkPanel",t))(Q||{});let V={[0]:e=>({...e,disclosureState:L(e.disclosureState,{[0]:1,[1]:0})}),[1]:e=>e.disclosureState===1?e:{...e,disclosureState:1},[4](e){return e.linkedPanel===!0?e:{...e,linkedPanel:!0}},[5](e){return e.linkedPanel===!1?e:{...e,linkedPanel:!1}},[2](e,n){return e.buttonId===n.buttonId?e:{...e,buttonId:n.buttonId}},[3](e,n){return e.panelId===n.panelId?e:{...e,panelId:n.panelId}}},B=I(null);B.displayName="DisclosureContext";function v(e){let n=C(B);if(n===null){let l=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(l,v),l}return n}let h=I(null);h.displayName="DisclosureAPIContext";function K(e){let n=C(h);if(n===null){let l=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(l,K),l}return n}let H=I(null);H.displayName="DisclosurePanelContext";function X(){return C(H)}function Y(e,n){return L(n.type,V,e,n)}let Z=U,ee=O(function(n,l){let{defaultOpen:y=!1,...u}=n,T=R(null),t=M(l,N(a=>{T.current=a},n.as===void 0||n.as===U)),o=R(null),f=R(null),s=j(Y,{disclosureState:y?0:1,linkedPanel:!1,buttonRef:f,panelRef:o,buttonId:null,panelId:null}),[{disclosureState:i,buttonId:p},D]=s,d=b(a=>{D({type:1});let r=z(T);if(!r||!p)return;let c=(()=>a?a instanceof HTMLElement?a:a.current instanceof HTMLElement?a.current:r.getElementById(p):r.getElementById(p))();c==null||c.focus()}),P=E(()=>({close:d}),[d]),A=E(()=>({open:i===0,close:d}),[i,d]),S={ref:t};return g.createElement(B.Provider,{value:s},g.createElement(h.Provider,{value:P},g.createElement(W,{value:L(i,{[0]:x.Open,[1]:x.Closed})},k({ourProps:S,theirProps:u,slot:A,defaultTag:Z,name:"Disclosure"}))))}),te="button",ne=O(function(n,l){let y=_(),{id:u=`headlessui-disclosure-button-${y}`,...T}=n,[t,o]=v("Disclosure.Button"),f=X(),s=f===null?!1:f===t.panelId,i=R(null),p=M(i,l,s?null:t.buttonRef);w(()=>{if(!s)return o({type:2,buttonId:u}),()=>{o({type:2,buttonId:null})}},[u,o,s]);let D=b(r=>{var c;if(s){if(t.disclosureState===1)return;switch(r.key){case m.Space:case m.Enter:r.preventDefault(),r.stopPropagation(),o({type:0}),(c=t.buttonRef.current)==null||c.focus();break}}else switch(r.key){case m.Space:case m.Enter:r.preventDefault(),r.stopPropagation(),o({type:0});break}}),d=b(r=>{switch(r.key){case m.Space:r.preventDefault();break}}),P=b(r=>{var c;G(r.currentTarget)||n.disabled||(s?(o({type:0}),(c=t.buttonRef.current)==null||c.focus()):o({type:0}))}),A=E(()=>({open:t.disclosureState===0}),[t]),S=q(n,i),a=s?{ref:p,type:S,onKeyDown:D,onClick:P}:{ref:p,id:u,type:S,"aria-expanded":n.disabled?void 0:t.disclosureState===0,"aria-controls":t.linkedPanel?t.panelId:void 0,onKeyDown:D,onKeyUp:d,onClick:P};return k({ourProps:a,theirProps:T,slot:A,defaultTag:te,name:"Disclosure.Button"})}),le="div",re=F.RenderStrategy|F.Static,oe=O(function(n,l){let y=_(),{id:u=`headlessui-disclosure-panel-${y}`,...T}=n,[t,o]=v("Disclosure.Panel"),{close:f}=K("Disclosure.Panel"),s=M(l,t.panelRef,P=>{o({type:P?4:5})});w(()=>(o({type:3,panelId:u}),()=>{o({type:3,panelId:null})}),[u,o]);let i=$(),p=(()=>i!==null?i===x.Open:t.disclosureState===0)(),D=E(()=>({open:t.disclosureState===0,close:f}),[t,f]),d={ref:s,id:u};return g.createElement(H.Provider,{value:t.panelId},k({ourProps:d,theirProps:T,slot:D,defaultTag:le,features:re,visible:p,name:"Disclosure.Panel"}))}),Le=Object.assign(ee,{Button:ne,Panel:oe});export{Le as Disclosure};
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
import React, { MutableRefObject, Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
declare enum Features {
|
||||
/** No features enabled for the focus trap. */
|
||||
None = 1,
|
||||
/** Ensure that we move focus initially into the container. */
|
||||
InitialFocus = 2,
|
||||
/** Ensure that pressing `Tab` and `Shift+Tab` is trapped within the container. */
|
||||
TabLock = 4,
|
||||
/** Ensure that programmatically moving focus outside of the container is disallowed. */
|
||||
FocusLock = 8,
|
||||
/** Ensure that we restore the focus when unmounting the focus trap. */
|
||||
RestoreFocus = 16,
|
||||
/** Enable all features. */
|
||||
All = 30
|
||||
}
|
||||
export declare let FocusTrap: (<TTag extends React.ElementType<any> = "div">(props: Omit<import('../../types.js').PropsOf<TTag>, "as" | "children" | "refName" | "className"> & {
|
||||
as?: TTag | undefined;
|
||||
children?: React.ReactNode | ((bag: {}) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../../types.js').PropsOf<TTag> extends never ? never : "className" extends keyof import('../../types.js').PropsOf<TTag> ? true : never) ? {
|
||||
className?: import('../../types.js').PropsOf<TTag>["className"] | ((bag: {}) => string) | undefined;
|
||||
} : {}) & {
|
||||
initialFocus?: React.MutableRefObject<HTMLElement | null> | undefined;
|
||||
features?: Features | undefined;
|
||||
containers?: React.MutableRefObject<Set<React.MutableRefObject<HTMLElement | null>>> | undefined;
|
||||
}, ref: Ref<HTMLDivElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
features: typeof Features;
|
||||
};
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import d,{useEffect as U,useRef as T}from"react";import{forwardRefWithAs as C,render as I}from'../../utils/render.js';import{useServerHandoffComplete as N}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as x}from'../../hooks/use-sync-refs.js';import{Features as F,Hidden as v}from'../../internal/hidden.js';import{focusElement as f,focusIn as b,Focus as i,FocusResult as G}from'../../utils/focus-management.js';import{match as g}from'../../utils/match.js';import{useEvent as K}from'../../hooks/use-event.js';import{useTabDirection as V,Direction as M}from'../../hooks/use-tab-direction.js';import{useIsMounted as O}from'../../hooks/use-is-mounted.js';import{useOwnerDocument as W}from'../../hooks/use-owner.js';import{useEventListener as k}from'../../hooks/use-event-listener.js';import{microTask as y}from'../../utils/micro-task.js';import{useWatch as j}from'../../hooks/use-watch.js';import{useDisposables as q}from'../../hooks/use-disposables.js';let z="div";var A=(t=>(t[t.None=1]="None",t[t.InitialFocus=2]="InitialFocus",t[t.TabLock=4]="TabLock",t[t.FocusLock=8]="FocusLock",t[t.RestoreFocus=16]="RestoreFocus",t[t.All=30]="All",t))(A||{});let de=Object.assign(C(function(u,e){let l=T(null),a=x(l,e),{initialFocus:m,containers:t,features:n=30,...E}=u;N()||(n=1);let s=W(l);J({ownerDocument:s},Boolean(n&16));let S=Q({ownerDocument:s,container:l,initialFocus:m},Boolean(n&2));X({ownerDocument:s,container:l,containers:t,previousActiveElement:S},Boolean(n&8));let H=V(),R=K(o=>{let c=l.current;if(!c)return;(_=>_())(()=>{g(H.current,{[M.Forwards]:()=>b(c,i.First,{skipElements:[o.relatedTarget]}),[M.Backwards]:()=>b(c,i.Last,{skipElements:[o.relatedTarget]})})})}),B=q(),L=T(!1),P={ref:a,onKeyDown(o){o.key=="Tab"&&(L.current=!0,B.requestAnimationFrame(()=>{L.current=!1}))},onBlur(o){let c=new Set(t==null?void 0:t.current);c.add(l);let p=o.relatedTarget;!p||p.dataset.headlessuiFocusGuard!=="true"&&(h(c,p)||(L.current?b(l.current,g(H.current,{[M.Forwards]:()=>i.Next,[M.Backwards]:()=>i.Previous})|i.WrapAround,{relativeTo:o.target}):o.target instanceof HTMLElement&&f(o.target)))}};return d.createElement(d.Fragment,null,Boolean(n&4)&&d.createElement(v,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:R,features:F.Focusable}),I({ourProps:P,theirProps:E,defaultTag:z,name:"FocusTrap"}),Boolean(n&4)&&d.createElement(v,{as:"button",type:"button","data-headlessui-focus-guard":!0,onFocus:R,features:F.Focusable}))}),{features:A});function J({ownerDocument:r},u){let e=T(null);k(r==null?void 0:r.defaultView,"focusout",a=>{!u||e.current||(e.current=a.target)},!0),j(()=>{u||((r==null?void 0:r.activeElement)===(r==null?void 0:r.body)&&f(e.current),e.current=null)},[u]);let l=T(!1);U(()=>(l.current=!1,()=>{l.current=!0,y(()=>{!l.current||(f(e.current),e.current=null)})}),[])}function Q({ownerDocument:r,container:u,initialFocus:e},l){let a=T(null),m=O();return j(()=>{if(!l)return;let t=u.current;!t||y(()=>{if(!m.current)return;let n=r==null?void 0:r.activeElement;if(e!=null&&e.current){if((e==null?void 0:e.current)===n){a.current=n;return}}else if(t.contains(n)){a.current=n;return}e!=null&&e.current?f(e.current):b(t,i.First)===G.Error&&console.warn("There are no focusable elements inside the <FocusTrap />"),a.current=r==null?void 0:r.activeElement})},[l]),a}function X({ownerDocument:r,container:u,containers:e,previousActiveElement:l},a){let m=O();k(r==null?void 0:r.defaultView,"focus",t=>{if(!a||!m.current)return;let n=new Set(e==null?void 0:e.current);n.add(u);let E=l.current;if(!E)return;let s=t.target;s&&s instanceof HTMLElement?h(n,s)?(l.current=s,f(s)):(t.preventDefault(),t.stopPropagation(),f(E)):f(l.current)},!0)}function h(r,u){var e;for(let l of r)if((e=l.current)!=null&&e.contains(u))return!0;return!1}export{de as FocusTrap};
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
export declare enum Keys {
|
||||
Space = " ",
|
||||
Enter = "Enter",
|
||||
Escape = "Escape",
|
||||
Backspace = "Backspace",
|
||||
Delete = "Delete",
|
||||
ArrowLeft = "ArrowLeft",
|
||||
ArrowUp = "ArrowUp",
|
||||
ArrowRight = "ArrowRight",
|
||||
ArrowDown = "ArrowDown",
|
||||
Home = "Home",
|
||||
End = "End",
|
||||
PageUp = "PageUp",
|
||||
PageDown = "PageDown",
|
||||
Tab = "Tab"
|
||||
}
|
||||
+1
@@ -0,0 +1 @@
|
||||
var o=(r=>(r.Space=" ",r.Enter="Enter",r.Escape="Escape",r.Backspace="Backspace",r.Delete="Delete",r.ArrowLeft="ArrowLeft",r.ArrowUp="ArrowUp",r.ArrowRight="ArrowRight",r.ArrowDown="ArrowDown",r.Home="Home",r.End="End",r.PageUp="PageUp",r.PageDown="PageDown",r.Tab="Tab",r))(o||{});export{o as Keys};
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
import React, { ReactNode, Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
interface SharedData {
|
||||
slot?: {};
|
||||
name?: string;
|
||||
props?: {};
|
||||
}
|
||||
interface LabelProviderProps extends SharedData {
|
||||
children: ReactNode;
|
||||
}
|
||||
export declare function useLabels(): [string | undefined, (props: LabelProviderProps) => JSX.Element];
|
||||
export declare let Label: (<TTag extends React.ElementType<any> = "label">(props: Omit<import('../../types.js').PropsOf<TTag>, "as" | "children" | "refName" | "className"> & {
|
||||
as?: TTag | undefined;
|
||||
children?: React.ReactNode | ((bag: {}) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../../types.js').PropsOf<TTag> extends never ? never : "className" extends keyof import('../../types.js').PropsOf<TTag> ? true : never) ? {
|
||||
className?: import('../../types.js').PropsOf<TTag>["className"] | ((bag: {}) => string) | undefined;
|
||||
} : {}) & {
|
||||
passive?: boolean | undefined;
|
||||
}, ref: Ref<HTMLLabelElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import p,{createContext as m,useContext as L,useMemo as f,useState as b}from"react";import{useId as g}from'../../hooks/use-id.js';import{forwardRefWithAs as x,render as T}from'../../utils/render.js';import{useIsoMorphicEffect as E}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as P}from'../../hooks/use-sync-refs.js';import{useEvent as v}from'../../hooks/use-event.js';let u=m(null);function c(){let n=L(u);if(n===null){let r=new Error("You used a <Label /> component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(r,c),r}return n}function M(){let[n,r]=b([]);return[n.length>0?n.join(" "):void 0,f(()=>function(e){let o=v(l=>(r(t=>[...t,l]),()=>r(t=>{let i=t.slice(),a=i.indexOf(l);return a!==-1&&i.splice(a,1),i}))),s=f(()=>({register:o,slot:e.slot,name:e.name,props:e.props}),[o,e.slot,e.name,e.props]);return p.createElement(u.Provider,{value:s},e.children)},[r])]}let h="label",F=x(function(r,d){let e=g(),{id:o=`headlessui-label-${e}`,passive:s=!1,...l}=r,t=c(),i=P(d);E(()=>t.register(o),[o,t.register]);let a={ref:i,...t.props,id:o};return s&&("onClick"in a&&delete a.onClick,"onClick"in l&&delete l.onClick),T({ourProps:a,theirProps:l,slot:t.slot||{},defaultTag:h,name:t.name||"Label"})});export{F as Label,M as useLabels};
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
import React, { Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
import { PropsForFeatures } from '../../utils/render.js';
|
||||
interface ListboxRenderPropArg<T> {
|
||||
open: boolean;
|
||||
disabled: boolean;
|
||||
value: T;
|
||||
}
|
||||
interface ButtonRenderPropArg {
|
||||
open: boolean;
|
||||
disabled: boolean;
|
||||
value: any;
|
||||
}
|
||||
declare type ButtonPropsWeControl = 'type' | 'aria-haspopup' | 'aria-controls' | 'aria-expanded' | 'aria-labelledby' | 'disabled' | 'onKeyDown' | 'onClick';
|
||||
interface LabelRenderPropArg {
|
||||
open: boolean;
|
||||
disabled: boolean;
|
||||
}
|
||||
declare type LabelPropsWeControl = 'ref' | 'onClick';
|
||||
interface OptionsRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type OptionsPropsWeControl = 'aria-activedescendant' | 'aria-labelledby' | 'aria-orientation' | 'onKeyDown' | 'role' | 'tabIndex';
|
||||
declare let OptionsRenderFeatures: number;
|
||||
interface OptionRenderPropArg {
|
||||
active: boolean;
|
||||
selected: boolean;
|
||||
disabled: boolean;
|
||||
}
|
||||
declare type ListboxOptionPropsWeControl = 'role' | 'tabIndex' | 'aria-disabled' | 'aria-selected' | 'onPointerLeave' | 'onMouseLeave' | 'onPointerMove' | 'onMouseMove' | 'onFocus';
|
||||
export declare let Listbox: (<TTag extends React.ElementType<any> = React.ExoticComponent<{
|
||||
children?: React.ReactNode;
|
||||
}>, TType = string, TActualType = TType extends (infer U)[] ? U : TType>(props: Props<TTag, ListboxRenderPropArg<TType>, "value" | "name" | "disabled" | "defaultValue" | "multiple" | "onChange" | "by" | "horizontal"> & {
|
||||
value?: TType | undefined;
|
||||
defaultValue?: TType | undefined;
|
||||
onChange?(value: TType): void;
|
||||
by?: (keyof TActualType & string) | ((a: TActualType, z: TActualType) => boolean) | undefined;
|
||||
disabled?: boolean | undefined;
|
||||
horizontal?: boolean | undefined;
|
||||
name?: string | undefined;
|
||||
multiple?: boolean | undefined;
|
||||
}, ref: React.Ref<TTag>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Button: (<TTag_1 extends React.ElementType<any> = "button">(props: Props<TTag_1, ButtonRenderPropArg, ButtonPropsWeControl>, ref: Ref<HTMLButtonElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Label: (<TTag_2 extends React.ElementType<any> = "label">(props: Props<TTag_2, LabelRenderPropArg, LabelPropsWeControl>, ref: Ref<HTMLElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Options: (<TTag_3 extends React.ElementType<any> = "ul">(props: Props<TTag_3, OptionsRenderPropArg, OptionsPropsWeControl> & (({
|
||||
static?: undefined;
|
||||
} & {
|
||||
unmount?: boolean | undefined;
|
||||
}) | ({
|
||||
unmount?: undefined;
|
||||
} & {
|
||||
static?: boolean | undefined;
|
||||
})), ref: Ref<HTMLElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Option: (<TTag_4 extends React.ElementType<any> = "li", TType_1 = unknown>(props: Props<TTag_4, OptionRenderPropArg, "value" | ListboxOptionPropsWeControl> & {
|
||||
disabled?: boolean | undefined;
|
||||
value: TType_1;
|
||||
}, ref: Ref<HTMLElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
File diff suppressed because one or more lines are too long
+50
@@ -0,0 +1,50 @@
|
||||
import React, { Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
import { PropsForFeatures } from '../../utils/render.js';
|
||||
interface MenuRenderPropArg {
|
||||
open: boolean;
|
||||
close: () => void;
|
||||
}
|
||||
interface ButtonRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type ButtonPropsWeControl = 'type' | 'aria-haspopup' | 'aria-controls' | 'aria-expanded' | 'onKeyDown' | 'onClick';
|
||||
interface ItemsRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type ItemsPropsWeControl = 'aria-activedescendant' | 'aria-labelledby' | 'onKeyDown' | 'role' | 'tabIndex';
|
||||
declare let ItemsRenderFeatures: number;
|
||||
interface ItemRenderPropArg {
|
||||
active: boolean;
|
||||
disabled: boolean;
|
||||
close: () => void;
|
||||
}
|
||||
declare type MenuItemPropsWeControl = 'role' | 'tabIndex' | 'aria-disabled' | 'onPointerLeave' | 'onPointerMove' | 'onMouseLeave' | 'onMouseMove' | 'onFocus';
|
||||
export declare let Menu: (<TTag extends React.ElementType<any> = React.ExoticComponent<{
|
||||
children?: React.ReactNode;
|
||||
}>>(props: Props<TTag, MenuRenderPropArg, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Button: (<TTag_1 extends React.ElementType<any> = "button">(props: Props<TTag_1, ButtonRenderPropArg, ButtonPropsWeControl>, ref: Ref<HTMLButtonElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Items: (<TTag_2 extends React.ElementType<any> = "div">(props: Props<TTag_2, ItemsRenderPropArg, ItemsPropsWeControl> & (({
|
||||
static?: undefined;
|
||||
} & {
|
||||
unmount?: boolean | undefined;
|
||||
}) | ({
|
||||
unmount?: undefined;
|
||||
} & {
|
||||
static?: boolean | undefined;
|
||||
})), ref: Ref<HTMLDivElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Item: (<TTag_3 extends React.ElementType<any> = React.ExoticComponent<{
|
||||
children?: React.ReactNode;
|
||||
}>>(props: Props<TTag_3, ItemRenderPropArg, MenuItemPropsWeControl> & {
|
||||
disabled?: boolean | undefined;
|
||||
}, ref: Ref<HTMLElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
File diff suppressed because one or more lines are too long
+66
@@ -0,0 +1,66 @@
|
||||
import React, { MutableRefObject, Ref, MouseEventHandler } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
import { PropsForFeatures } from '../../utils/render.js';
|
||||
declare type MouseEvent<T> = Parameters<MouseEventHandler<T>>[0];
|
||||
interface PopoverRenderPropArg {
|
||||
open: boolean;
|
||||
close(focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null> | MouseEvent<HTMLElement>): void;
|
||||
}
|
||||
interface ButtonRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type ButtonPropsWeControl = 'type' | 'aria-expanded' | 'aria-controls' | 'onKeyDown' | 'onClick';
|
||||
interface OverlayRenderPropArg {
|
||||
open: boolean;
|
||||
}
|
||||
declare type OverlayPropsWeControl = 'aria-hidden' | 'onClick';
|
||||
declare let OverlayRenderFeatures: number;
|
||||
interface PanelRenderPropArg {
|
||||
open: boolean;
|
||||
close: (focusableElement?: HTMLElement | MutableRefObject<HTMLElement | null>) => void;
|
||||
}
|
||||
declare type PanelPropsWeControl = 'onKeyDown';
|
||||
declare let PanelRenderFeatures: number;
|
||||
interface GroupRenderPropArg {
|
||||
}
|
||||
export declare let Popover: (<TTag extends React.ElementType<any> = "div">(props: Props<TTag, PopoverRenderPropArg, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Button: (<TTag_1 extends React.ElementType<any> = "button">(props: Props<TTag_1, ButtonRenderPropArg, ButtonPropsWeControl>, ref: Ref<HTMLButtonElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
Overlay: (<TTag_2 extends React.ElementType<any> = "div">(props: Props<TTag_2, OverlayRenderPropArg, OverlayPropsWeControl> & (({
|
||||
static?: undefined;
|
||||
} & {
|
||||
unmount?: boolean | undefined;
|
||||
}) | ({
|
||||
unmount?: undefined;
|
||||
} & {
|
||||
static?: boolean | undefined;
|
||||
})), ref: Ref<HTMLDivElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Panel: (<TTag_3 extends React.ElementType<any> = "div">(props: Omit<import('../../types.js').PropsOf<TTag_3>, ("as" | "children" | "refName" | "className") | "onKeyDown"> & {
|
||||
as?: TTag_3 | undefined;
|
||||
children?: React.ReactNode | ((bag: PanelRenderPropArg) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../../types.js').PropsOf<TTag_3> extends never ? never : "className" extends keyof import('../../types.js').PropsOf<TTag_3> ? true : never) ? {
|
||||
className?: import('../../types.js').PropsOf<TTag_3>["className"] | ((bag: PanelRenderPropArg) => string) | undefined;
|
||||
} : {}) & (({
|
||||
static?: undefined;
|
||||
} & {
|
||||
unmount?: boolean | undefined;
|
||||
}) | ({
|
||||
unmount?: undefined;
|
||||
} & {
|
||||
static?: boolean | undefined;
|
||||
})) & {
|
||||
focus?: boolean | undefined;
|
||||
}, ref: Ref<HTMLDivElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
Group: (<TTag_4 extends React.ElementType<any> = "div">(props: Props<TTag_4, GroupRenderPropArg, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
File diff suppressed because one or more lines are too long
+26
@@ -0,0 +1,26 @@
|
||||
import React, { MutableRefObject, Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
interface PortalRenderPropArg {
|
||||
}
|
||||
interface GroupRenderPropArg {
|
||||
}
|
||||
export declare let Portal: (<TTag extends React.ElementType<any> = React.ExoticComponent<{
|
||||
children?: React.ReactNode;
|
||||
}>>(props: Props<TTag, PortalRenderPropArg, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: Ref<HTMLElement>) => React.ReactPortal | null) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Group: (<TTag_1 extends React.ElementType<any> = React.ExoticComponent<{
|
||||
children?: React.ReactNode;
|
||||
}>>(props: Omit<import('../../types.js').PropsOf<TTag_1>, "as" | "children" | "refName" | "className"> & {
|
||||
as?: TTag_1 | undefined;
|
||||
children?: React.ReactNode | ((bag: GroupRenderPropArg) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../../types.js').PropsOf<TTag_1> extends never ? never : "className" extends keyof import('../../types.js').PropsOf<TTag_1> ? true : never) ? {
|
||||
className?: import('../../types.js').PropsOf<TTag_1>["className"] | ((bag: GroupRenderPropArg) => string) | undefined;
|
||||
} : {}) & {
|
||||
target: MutableRefObject<HTMLElement | null>;
|
||||
}, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import h,{Fragment as s,createContext as L,useContext as y,useEffect as m,useRef as d,useState as T}from"react";import{createPortal as G}from"react-dom";import{forwardRefWithAs as P,render as R}from'../../utils/render.js';import{useIsoMorphicEffect as M}from'../../hooks/use-iso-morphic-effect.js';import{usePortalRoot as v}from'../../internal/portal-force-root.js';import{useServerHandoffComplete as C}from'../../hooks/use-server-handoff-complete.js';import{optionalRef as O,useSyncRefs as g}from'../../hooks/use-sync-refs.js';import{useOwnerDocument as c}from'../../hooks/use-owner.js';import{microTask as H}from'../../utils/micro-task.js';import{isServer as E}from'../../utils/ssr.js';function x(i){let u=v(),o=y(A),e=c(i),[r,f]=T(()=>{if(!u&&o!==null||E)return null;let n=e==null?void 0:e.getElementById("headlessui-portal-root");if(n)return n;if(e===null)return null;let t=e.createElement("div");return t.setAttribute("id","headlessui-portal-root"),e.body.appendChild(t)});return m(()=>{r!==null&&(e!=null&&e.body.contains(r)||e==null||e.body.appendChild(r))},[r,e]),m(()=>{u||o!==null&&f(o.current)},[o,f,u]),r}let _=s,U=P(function(u,o){let e=u,r=d(null),f=g(O(a=>{r.current=a}),o),n=c(r),t=x(r),[l]=T(()=>{var a;return E?null:(a=n==null?void 0:n.createElement("div"))!=null?a:null}),b=C(),p=d(!1);return M(()=>{if(p.current=!1,!(!t||!l))return t.contains(l)||(l.setAttribute("data-headlessui-portal",""),t.appendChild(l)),()=>{p.current=!0,H(()=>{var a;!p.current||!t||!l||(t.removeChild(l),t.childNodes.length<=0&&((a=t.parentElement)==null||a.removeChild(t)))})}},[t,l]),b?!t||!l?null:G(R({ourProps:{ref:f},theirProps:e,defaultTag:_,name:"Portal"}),l):null}),j=s,A=L(null),F=P(function(u,o){let{target:e,...r}=u,n={ref:g(o)};return h.createElement(A.Provider,{value:e},R({ourProps:n,theirProps:r,defaultTag:j,name:"Popover.Group"}))}),$=Object.assign(U,{Group:F});export{$ as Portal};
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
import React, { Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
interface RadioGroupRenderPropArg<TType> {
|
||||
value: TType;
|
||||
}
|
||||
declare type RadioGroupPropsWeControl = 'role' | 'aria-labelledby' | 'aria-describedby';
|
||||
interface OptionRenderPropArg {
|
||||
checked: boolean;
|
||||
active: boolean;
|
||||
disabled: boolean;
|
||||
}
|
||||
declare type RadioPropsWeControl = 'aria-checked' | 'onBlur' | 'onClick' | 'onFocus' | 'ref' | 'role' | 'tabIndex';
|
||||
export declare let RadioGroup: (<TTag extends React.ElementType<any> = "div", TType = string>(props: Props<TTag, RadioGroupRenderPropArg<TType>, "value" | "name" | "disabled" | "defaultValue" | "onChange" | "by" | RadioGroupPropsWeControl> & {
|
||||
value?: TType | undefined;
|
||||
defaultValue?: TType | undefined;
|
||||
onChange?(value: TType): void;
|
||||
by?: (keyof TType & string) | ((a: TType, z: TType) => boolean) | undefined;
|
||||
disabled?: boolean | undefined;
|
||||
name?: string | undefined;
|
||||
}, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Option: (<TTag_1 extends React.ElementType<any> = "div", TType_1 = unknown>(props: Props<TTag_1, OptionRenderPropArg, "value" | "disabled" | RadioPropsWeControl> & {
|
||||
value: TType_1;
|
||||
disabled?: boolean | undefined;
|
||||
}, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
Label: (<TTag_2 extends React.ElementType<any> = "label">(props: Omit<import('../../types.js').PropsOf<TTag_2>, "as" | "children" | "refName" | "className"> & {
|
||||
as?: TTag_2 | undefined;
|
||||
children?: React.ReactNode | ((bag: {}) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../../types.js').PropsOf<TTag_2> extends never ? never : "className" extends keyof import('../../types.js').PropsOf<TTag_2> ? true : never) ? {
|
||||
className?: import('../../types.js').PropsOf<TTag_2>["className"] | ((bag: {}) => string) | undefined;
|
||||
} : {}) & {
|
||||
passive?: boolean | undefined;
|
||||
}, ref: React.Ref<HTMLLabelElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Description: (<TTag_3 extends React.ElementType<any> = "p">(props: Props<TTag_3, {}, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: React.Ref<HTMLParagraphElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
File diff suppressed because one or more lines are too long
+36
@@ -0,0 +1,36 @@
|
||||
import React, { ElementType, Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
declare let DEFAULT_GROUP_TAG: React.ExoticComponent<{
|
||||
children?: React.ReactNode;
|
||||
}>;
|
||||
declare function Group<TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(props: Props<TTag>): JSX.Element;
|
||||
interface SwitchRenderPropArg {
|
||||
checked: boolean;
|
||||
}
|
||||
declare type SwitchPropsWeControl = 'role' | 'tabIndex' | 'aria-checked' | 'aria-labelledby' | 'aria-describedby' | 'onClick' | 'onKeyUp' | 'onKeyPress';
|
||||
export declare let Switch: (<TTag extends React.ElementType<any> = "button">(props: Props<TTag, SwitchRenderPropArg, "value" | "name" | "onChange" | "checked" | "defaultChecked" | SwitchPropsWeControl> & {
|
||||
checked?: boolean | undefined;
|
||||
defaultChecked?: boolean | undefined;
|
||||
onChange?(checked: boolean): void;
|
||||
name?: string | undefined;
|
||||
value?: string | undefined;
|
||||
}, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Group: typeof Group;
|
||||
Label: (<TTag_1 extends React.ElementType<any> = "label">(props: Omit<import('../../types.js').PropsOf<TTag_1>, "as" | "children" | "refName" | "className"> & {
|
||||
as?: TTag_1 | undefined;
|
||||
children?: React.ReactNode | ((bag: {}) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../../types.js').PropsOf<TTag_1> extends never ? never : "className" extends keyof import('../../types.js').PropsOf<TTag_1> ? true : never) ? {
|
||||
className?: import('../../types.js').PropsOf<TTag_1>["className"] | ((bag: {}) => string) | undefined;
|
||||
} : {}) & {
|
||||
passive?: boolean | undefined;
|
||||
}, ref: React.Ref<HTMLLabelElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Description: (<TTag_2 extends React.ElementType<any> = "p">(props: Props<TTag_2, {}, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: React.Ref<HTMLParagraphElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import l,{Fragment as H,createContext as G,useContext as K,useMemo as S,useRef as M,useState as x,useEffect as U}from"react";import{forwardRefWithAs as _,render as w,compact as F}from'../../utils/render.js';import{useId as I}from'../../hooks/use-id.js';import{Keys as P}from'../keyboard.js';import{isDisabledReactIssue7711 as B}from'../../utils/bugs.js';import{Label as O,useLabels as W}from'../label/label.js';import{Description as j,useDescriptions as N}from'../description/description.js';import{useResolveButtonType as $}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as q}from'../../hooks/use-sync-refs.js';import{Hidden as z,Features as J}from'../../internal/hidden.js';import{attemptSubmit as Q}from'../../utils/form.js';import{useEvent as f}from'../../hooks/use-event.js';import{useControllable as V}from'../../hooks/use-controllable.js';import{useDisposables as X}from'../../hooks/use-disposables.js';let b=G(null);b.displayName="GroupContext";let Y=H;function Z(y){let[t,a]=x(null),[s,m]=W(),[c,o]=N(),p=S(()=>({switch:t,setSwitch:a,labelledby:s,describedby:c}),[t,a,s,c]),d={},h=y;return l.createElement(o,{name:"Switch.Description"},l.createElement(m,{name:"Switch.Label",props:{onClick(){!t||(t.click(),t.focus({preventScroll:!0}))}}},l.createElement(b.Provider,{value:p},w({ourProps:d,theirProps:h,defaultTag:Y,name:"Switch.Group"}))))}let ee="button",te=_(function(t,a){let s=I(),{id:m=`headlessui-switch-${s}`,checked:c,defaultChecked:o=!1,onChange:p,name:d,value:h,...v}=t,r=K(b),u=M(null),k=q(u,a,r===null?null:r.setSwitch),[n,i]=V(c,p,o),T=f(()=>i==null?void 0:i(!n)),g=f(e=>{if(B(e.currentTarget))return e.preventDefault();e.preventDefault(),T()}),C=f(e=>{e.key===P.Space?(e.preventDefault(),T()):e.key===P.Enter&&Q(e.currentTarget)}),D=f(e=>e.preventDefault()),L=S(()=>({checked:n}),[n]),R={id:m,ref:k,role:"switch",type:$(t,u),tabIndex:0,"aria-checked":n,"aria-labelledby":r==null?void 0:r.labelledby,"aria-describedby":r==null?void 0:r.describedby,onClick:g,onKeyUp:C,onKeyPress:D},A=X();return U(()=>{var E;let e=(E=u.current)==null?void 0:E.closest("form");!e||o!==void 0&&A.addEventListener(e,"reset",()=>{i(o)})},[u,i]),l.createElement(l.Fragment,null,d!=null&&n&&l.createElement(z,{features:J.Hidden,...F({as:"input",type:"checkbox",hidden:!0,readOnly:!0,checked:n,name:d,value:h})}),w({ourProps:R,theirProps:v,slot:L,defaultTag:ee,name:"Switch"}))}),Pe=Object.assign(te,{Group:Z,Label:O,Description:j});export{Pe as Switch};
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
import React, { Ref } from 'react';
|
||||
import { Props } from '../../types.js';
|
||||
import { PropsForFeatures } from '../../utils/render.js';
|
||||
interface TabsRenderPropArg {
|
||||
selectedIndex: number;
|
||||
}
|
||||
interface ListRenderPropArg {
|
||||
selectedIndex: number;
|
||||
}
|
||||
declare type ListPropsWeControl = 'role' | 'aria-orientation';
|
||||
interface TabRenderPropArg {
|
||||
selected: boolean;
|
||||
}
|
||||
declare type TabPropsWeControl = 'role' | 'type' | 'aria-controls' | 'aria-selected' | 'tabIndex';
|
||||
interface PanelsRenderPropArg {
|
||||
selectedIndex: number;
|
||||
}
|
||||
interface PanelRenderPropArg {
|
||||
selected: boolean;
|
||||
}
|
||||
declare type PanelPropsWeControl = 'role' | 'aria-labelledby' | 'tabIndex';
|
||||
declare let PanelRenderFeatures: number;
|
||||
export declare let Tab: (<TTag extends React.ElementType<any> = "button">(props: Props<TTag, TabRenderPropArg, TabPropsWeControl>, ref: Ref<HTMLElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Group: (<TTag_1 extends React.ElementType<any> = React.ExoticComponent<{
|
||||
children?: React.ReactNode;
|
||||
}>>(props: Omit<import('../../types.js').PropsOf<TTag_1>, "as" | "children" | "refName" | "className"> & {
|
||||
as?: TTag_1 | undefined;
|
||||
children?: React.ReactNode | ((bag: TabsRenderPropArg) => React.ReactElement<any, string | React.JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../../types.js').PropsOf<TTag_1> extends never ? never : "className" extends keyof import('../../types.js').PropsOf<TTag_1> ? true : never) ? {
|
||||
className?: import('../../types.js').PropsOf<TTag_1>["className"] | ((bag: TabsRenderPropArg) => string) | undefined;
|
||||
} : {}) & {
|
||||
defaultIndex?: number | undefined;
|
||||
onChange?: ((index: number) => void) | undefined;
|
||||
selectedIndex?: number | undefined;
|
||||
vertical?: boolean | undefined;
|
||||
manual?: boolean | undefined;
|
||||
}, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
List: (<TTag_2 extends React.ElementType<any> = "div">(props: Props<TTag_2, ListRenderPropArg, ListPropsWeControl> & {}, ref: Ref<HTMLElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Panels: (<TTag_3 extends React.ElementType<any> = "div">(props: Props<TTag_3, PanelsRenderPropArg, "1D45E01E-AF44-47C4-988A-19A94EBAF55C">, ref: Ref<HTMLElement>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
Panel: (<TTag_4 extends React.ElementType<any> = "div">(props: Props<TTag_4, PanelRenderPropArg, PanelPropsWeControl> & (({
|
||||
static?: undefined;
|
||||
} & {
|
||||
unmount?: boolean | undefined;
|
||||
}) | ({
|
||||
unmount?: undefined;
|
||||
} & {
|
||||
static?: boolean | undefined;
|
||||
})), ref: Ref<HTMLElement>) => JSX.Element | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
File diff suppressed because one or more lines are too long
+40
@@ -0,0 +1,40 @@
|
||||
import React, { MutableRefObject, Ref } from 'react';
|
||||
import { Props, ReactTag } from '../../types.js';
|
||||
import { Features, PropsForFeatures } from '../../utils/render.js';
|
||||
export interface TransitionClasses {
|
||||
enter?: string;
|
||||
enterFrom?: string;
|
||||
enterTo?: string;
|
||||
entered?: string;
|
||||
leave?: string;
|
||||
leaveFrom?: string;
|
||||
leaveTo?: string;
|
||||
}
|
||||
export interface TransitionEvents {
|
||||
beforeEnter?: () => void;
|
||||
afterEnter?: () => void;
|
||||
beforeLeave?: () => void;
|
||||
afterLeave?: () => void;
|
||||
}
|
||||
declare type TransitionChildProps<TTag extends ReactTag> = Props<TTag, TransitionChildRenderPropArg> & PropsForFeatures<typeof TransitionChildRenderFeatures> & TransitionClasses & TransitionEvents & {
|
||||
appear?: boolean;
|
||||
};
|
||||
declare type TransitionChildRenderPropArg = MutableRefObject<HTMLDivElement>;
|
||||
declare let TransitionChildRenderFeatures: Features;
|
||||
export declare let Transition: (<TTag extends React.ElementType<any> = "div">(props: TransitionChildProps<TTag> & {
|
||||
show?: boolean | undefined;
|
||||
appear?: boolean | undefined;
|
||||
}, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
} & {
|
||||
Child: (<TTag_1 extends React.ElementType<any> = "div">(props: TransitionChildProps<TTag_1>, ref: MutableRefObject<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
Root: (<TTag extends React.ElementType<any> = "div">(props: TransitionChildProps<TTag> & {
|
||||
show?: boolean | undefined;
|
||||
appear?: boolean | undefined;
|
||||
}, ref: Ref<HTMLElement>) => JSX.Element) & {
|
||||
displayName: string;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
+1
File diff suppressed because one or more lines are too long
+9
@@ -0,0 +1,9 @@
|
||||
export declare function transition(node: HTMLElement, classes: {
|
||||
enter: string[];
|
||||
enterFrom: string[];
|
||||
enterTo: string[];
|
||||
leave: string[];
|
||||
leaveFrom: string[];
|
||||
leaveTo: string[];
|
||||
entered: string[];
|
||||
}, show: boolean, done?: () => void): () => void;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{once as T}from'../../../utils/once.js';import{disposables as s}from'../../../utils/disposables.js';import{match as p}from'../../../utils/match.js';function v(t,...e){t&&e.length>0&&t.classList.add(...e)}function f(t,...e){t&&e.length>0&&t.classList.remove(...e)}function F(t,e){let n=s();if(!t)return n.dispose;let{transitionDuration:a,transitionDelay:i}=getComputedStyle(t),[m,d]=[a,i].map(o=>{let[r=0]=o.split(",").filter(Boolean).map(l=>l.includes("ms")?parseFloat(l):parseFloat(l)*1e3).sort((l,g)=>g-l);return r});if(m+d!==0){let o=n.addEventListener(t,"transitionend",r=>{r.target===r.currentTarget&&(e(),o())})}else e();return n.add(()=>e()),n.dispose}function M(t,e,n,a){let i=n?"enter":"leave",m=s(),d=a!==void 0?T(a):()=>{};i==="enter"&&(t.removeAttribute("hidden"),t.style.display="");let u=p(i,{enter:()=>e.enter,leave:()=>e.leave}),o=p(i,{enter:()=>e.enterTo,leave:()=>e.leaveTo}),r=p(i,{enter:()=>e.enterFrom,leave:()=>e.leaveFrom});return f(t,...e.enter,...e.enterTo,...e.enterFrom,...e.leave,...e.leaveFrom,...e.leaveTo,...e.entered),v(t,...u,...r),m.nextFrame(()=>{f(t,...r),v(t,...o),F(t,()=>(f(t,...u),v(t,...e.entered),d()))}),m.dispose}export{M as transition};
|
||||
+5822
File diff suppressed because it is too large
Load Diff
+1
@@ -0,0 +1 @@
|
||||
import"client-only";export*from'./components/combobox/combobox.js';export*from'./components/dialog/dialog.js';export*from'./components/disclosure/disclosure.js';export*from'./components/focus-trap/focus-trap.js';export*from'./components/listbox/listbox.js';export*from'./components/menu/menu.js';export*from'./components/popover/popover.js';export*from'./components/portal/portal.js';export*from'./components/radio-group/radio-group.js';export*from'./components/switch/switch.js';export*from'./components/tabs/tabs.js';export*from'./components/transitions/transition.js';
|
||||
+7
File diff suppressed because one or more lines are too long
+4
File diff suppressed because one or more lines are too long
+1
@@ -0,0 +1 @@
|
||||
export declare function useId(): number;
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
/// <reference types="react" />
|
||||
export declare function useComputed<T>(cb: () => T, dependencies: React.DependencyList): T;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useState as s}from"react";import{useIsoMorphicEffect as f}from'./use-iso-morphic-effect.js';import{useLatestValue as m}from'./use-latest-value.js';function i(e,o){let[u,t]=s(e),r=m(e);return f(()=>t(r.current),[r,t,...o]),u}export{i as useComputed};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export declare function useControllable<T>(controlledValue: T | undefined, onChange?: (value: T) => void, defaultValue?: T): readonly [NonNullable<T>, (value: any) => void | undefined];
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useRef as o,useState as f}from"react";import{useEvent as a}from'./use-event.js';function T(l,r,c){let[i,s]=f(c),e=l!==void 0,t=o(e),u=o(!1),d=o(!1);return e&&!t.current&&!u.current?(u.current=!0,t.current=e,console.error("A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.")):!e&&t.current&&!d.current&&(d.current=!0,t.current=e,console.error("A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.")),[e?l:i,a(n=>(e||s(n),r==null?void 0:r(n)))]}export{T as useControllable};
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
export declare function useDisposables(): {
|
||||
enqueue(fn: Function): void;
|
||||
addEventListener<TEventName extends keyof WindowEventMap>(element: HTMLElement | Window | Document, name: TEventName, listener: (event: WindowEventMap[TEventName]) => any, options?: boolean | AddEventListenerOptions | undefined): () => void;
|
||||
requestAnimationFrame(callback: FrameRequestCallback): () => void;
|
||||
nextFrame(callback: FrameRequestCallback): () => void;
|
||||
setTimeout(callback: (...args: any[]) => void, ms?: number | undefined, ...args: any[]): () => void;
|
||||
microTask(cb: () => void): () => void;
|
||||
add(cb: () => void): () => void;
|
||||
dispose(): void;
|
||||
workQueue(): Promise<void>;
|
||||
};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useState as s,useEffect as o}from"react";import{disposables as t}from'../utils/disposables.js';function p(){let[e]=s(t);return o(()=>()=>e.dispose(),[e]),e}export{p as useDisposables};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export declare function useDocumentEvent<TType extends keyof DocumentEventMap>(type: TType, listener: (ev: DocumentEventMap[TType]) => any, options?: boolean | AddEventListenerOptions): void;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useEffect as m}from"react";import{useLatestValue as c}from'./use-latest-value.js';function d(e,r,n){let o=c(r);m(()=>{function t(u){o.current(u)}return document.addEventListener(e,t,n),()=>document.removeEventListener(e,t,n)},[e,n])}export{d as useDocumentEvent};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export declare function useEventListener<TType extends keyof WindowEventMap>(element: HTMLElement | Document | Window | EventTarget | null | undefined, type: TType, listener: (event: WindowEventMap[TType]) => any, options?: boolean | AddEventListenerOptions): void;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useEffect as d}from"react";import{useLatestValue as s}from'./use-latest-value.js';function E(n,e,a,t){let i=s(a);d(()=>{n=n!=null?n:window;function r(o){i.current(o)}return n.addEventListener(e,r,t),()=>n.removeEventListener(e,r,t)},[n,e,t])}export{E as useEventListener};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export declare let useEvent: <F extends (...args: any[]) => any, P extends any[] = Parameters<F>, R = ReturnType<F>>(cb: (...args: P) => R) => (...args: P) => R;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import a from"react";import{useLatestValue as n}from'./use-latest-value.js';let o=function(t){let e=n(t);return a.useCallback((...r)=>e.current(...r),[e])};export{o as useEvent};
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
export declare function useFlags(initialFlags?: number): {
|
||||
addFlag: (flag: number) => void;
|
||||
hasFlag: (flag: number) => boolean;
|
||||
removeFlag: (flag: number) => void;
|
||||
toggleFlag: (flag: number) => void;
|
||||
};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useState as m,useCallback as t}from"react";function b(g=0){let[r,l]=m(g),u=t(e=>l(a=>a|e),[r]),n=t(e=>Boolean(r&e),[r]),o=t(e=>l(a=>a&~e),[l]),s=t(e=>l(a=>a^e),[l]);return{addFlag:u,hasFlag:n,removeFlag:o,toggleFlag:s}}export{b as useFlags};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export declare let useId: any;
|
||||
+1
@@ -0,0 +1 @@
|
||||
var u;import t from"react";import{useIsoMorphicEffect as d}from'./use-iso-morphic-effect.js';import{useServerHandoffComplete as f}from'./use-server-handoff-complete.js';let l=0;function r(){return++l}let I=(u=t.useId)!=null?u:function(){let n=f(),[e,o]=t.useState(n?r:null);return d(()=>{e===null&&o(r())},[e]),e!=null?""+e:void 0};export{I as useId};
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import { MutableRefObject } from 'react';
|
||||
export declare function useInertOthers<TElement extends HTMLElement>(container: MutableRefObject<TElement | null>, enabled?: boolean): void;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{getOwnerDocument as s}from'../utils/owner.js';import{useIsoMorphicEffect as d}from'./use-iso-morphic-effect.js';let i=new Set,r=new Map;function u(t){t.setAttribute("aria-hidden","true"),t.inert=!0}function l(t){let n=r.get(t);!n||(n["aria-hidden"]===null?t.removeAttribute("aria-hidden"):t.setAttribute("aria-hidden",n["aria-hidden"]),t.inert=n.inert)}function M(t,n=!0){d(()=>{if(!n||!t.current)return;let o=t.current,a=s(o);if(!!a){i.add(o);for(let e of r.keys())e.contains(o)&&(l(e),r.delete(e));return a.querySelectorAll("body > *").forEach(e=>{if(e instanceof HTMLElement){for(let f of i)if(e.contains(f))return;i.size===1&&(r.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),u(e))}}),()=>{if(i.delete(o),i.size>0)a.querySelectorAll("body > *").forEach(e=>{if(e instanceof HTMLElement&&!r.has(e)){for(let f of i)if(e.contains(f))return;r.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),u(e)}});else for(let e of r.keys())l(e),r.delete(e)}}},[n])}export{M as useInertOthers};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export declare function useIsInitialRender(): boolean;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useRef as r,useEffect as t}from"react";function n(){let e=r(!0);return t(()=>(e.current=!1,()=>{e.current=!0}),[]),e.current}export{n as useIsInitialRender};
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
/// <reference types="react" />
|
||||
export declare function useIsMounted(): import("react").MutableRefObject<boolean>;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useRef as r}from"react";import{useIsoMorphicEffect as t}from'./use-iso-morphic-effect.js';function f(){let e=r(!1);return t(()=>(e.current=!0,()=>{e.current=!1}),[]),e}export{f as useIsMounted};
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import { useEffect } from 'react';
|
||||
export declare let useIsoMorphicEffect: typeof useEffect;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useLayoutEffect as e,useEffect as f}from"react";import{isServer as o}from'../utils/ssr.js';let s=o?f:e;export{s as useIsoMorphicEffect};
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
/// <reference types="react" />
|
||||
export declare function useLatestValue<T>(value: T): import("react").MutableRefObject<T>;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useRef as t}from"react";import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';function s(e){let r=t(e);return o(()=>{r.current=e},[e]),r}export{s as useLatestValue};
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
import { MutableRefObject } from 'react';
|
||||
declare type Container = MutableRefObject<HTMLElement | null> | HTMLElement | null;
|
||||
declare type ContainerCollection = Container[] | Set<Container>;
|
||||
declare type ContainerInput = Container | ContainerCollection;
|
||||
export declare function useOutsideClick(containers: ContainerInput | (() => ContainerInput), cb: (event: MouseEvent | PointerEvent | FocusEvent, target: HTMLElement) => void, enabled?: boolean): void;
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useEffect as d,useRef as s}from"react";import{FocusableMode as p,isFocusableElement as C}from'../utils/focus-management.js';import{useDocumentEvent as a}from'./use-document-event.js';function L(m,E,c=!0){let i=s(!1);d(()=>{requestAnimationFrame(()=>{i.current=c})},[c]);function f(e,o){if(!i.current||e.defaultPrevented)return;let l=function r(t){return typeof t=="function"?r(t()):Array.isArray(t)||t instanceof Set?t:[t]}(m),n=o(e);if(n!==null&&!!n.getRootNode().contains(n)){for(let r of l){if(r===null)continue;let t=r instanceof HTMLElement?r:r.current;if(t!=null&&t.contains(n)||e.composed&&e.composedPath().includes(t))return}return!C(n,p.Loose)&&n.tabIndex!==-1&&e.preventDefault(),E(e,n)}}let u=s(null);a("mousedown",e=>{var o,l;i.current&&(u.current=((l=(o=e.composedPath)==null?void 0:o.call(e))==null?void 0:l[0])||e.target)},!0),a("click",e=>{!u.current||(f(e,()=>u.current),u.current=null)},!0),a("blur",e=>f(e,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{L as useOutsideClick};
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
import { getOwnerDocument } from '../utils/owner.js';
|
||||
export declare function useOwnerDocument(...args: Parameters<typeof getOwnerDocument>): Document | null;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useMemo as t}from"react";import{getOwnerDocument as o}from'../utils/owner.js';function n(...e){return t(()=>o(...e),[...e])}export{n as useOwnerDocument};
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
import { MutableRefObject } from 'react';
|
||||
export declare function useResolveButtonType<TTag>(props: {
|
||||
type?: string;
|
||||
as?: TTag;
|
||||
}, ref: MutableRefObject<HTMLElement | null>): string | undefined;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useState as o}from"react";import{useIsoMorphicEffect as r}from'./use-iso-morphic-effect.js';function i(t){var n;if(t.type)return t.type;let e=(n=t.as)!=null?n:"button";if(typeof e=="string"&&e.toLowerCase()==="button")return"button"}function s(t,e){let[n,u]=o(()=>i(t));return r(()=>{u(i(t))},[t.type,t.as]),r(()=>{n||!e.current||e.current instanceof HTMLButtonElement&&!e.current.hasAttribute("type")&&u("button")},[n,e]),n}export{s as useResolveButtonType};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export declare function useServerHandoffComplete(): boolean;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useState as o,useEffect as t}from"react";let r={serverHandoffComplete:!1};function a(){let[e,f]=o(r.serverHandoffComplete);return t(()=>{e!==!0&&f(!0)},[e]),t(()=>{r.serverHandoffComplete===!1&&(r.serverHandoffComplete=!0)},[]),e}export{a as useServerHandoffComplete};
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
/// <reference types="react" />
|
||||
export declare function optionalRef<T>(cb: (ref: T) => void, isOptional?: boolean): ((ref: T) => void) & {
|
||||
[x: symbol]: boolean;
|
||||
};
|
||||
export declare function useSyncRefs<TType>(...refs: (React.MutableRefObject<TType | null> | ((instance: TType) => void) | null)[]): ((value: TType) => void) | undefined;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useRef as l,useEffect as i}from"react";import{useEvent as r}from'./use-event.js';let u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function y(...t){let n=l(t);i(()=>{n.current=t},[t]);let c=r(e=>{for(let o of n.current)o!=null&&(typeof o=="function"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}export{T as optionalRef,y as useSyncRefs};
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
/// <reference types="react" />
|
||||
export declare enum Direction {
|
||||
Forwards = 0,
|
||||
Backwards = 1
|
||||
}
|
||||
export declare function useTabDirection(): import("react").MutableRefObject<Direction>;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useRef as t}from"react";import{useWindowEvent as a}from'./use-window-event.js';var s=(r=>(r[r.Forwards=0]="Forwards",r[r.Backwards=1]="Backwards",r))(s||{});function n(){let e=t(0);return a("keydown",o=>{o.key==="Tab"&&(e.current=o.shiftKey?1:0)},!0),e}export{s as Direction,n as useTabDirection};
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
export declare function useTrackedPointer(): {
|
||||
wasMoved(evt: PointerEvent): boolean;
|
||||
update(evt: PointerEvent): void;
|
||||
};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useRef as o}from"react";function t(e){return[e.screenX,e.screenY]}function u(){let e=o([-1,-1]);return{wasMoved(r){let n=t(r);return e.current[0]===n[0]&&e.current[1]===n[1]?!1:(e.current=n,!0)},update(r){e.current=t(r)}}}export{u as useTrackedPointer};
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import { MutableRefObject } from 'react';
|
||||
interface TransitionArgs {
|
||||
container: MutableRefObject<HTMLElement | null>;
|
||||
classes: MutableRefObject<{
|
||||
enter: string[];
|
||||
enterFrom: string[];
|
||||
enterTo: string[];
|
||||
leave: string[];
|
||||
leaveFrom: string[];
|
||||
leaveTo: string[];
|
||||
entered: string[];
|
||||
}>;
|
||||
direction: 'enter' | 'leave' | 'idle';
|
||||
onStart: MutableRefObject<(direction: TransitionArgs['direction']) => void>;
|
||||
onStop: MutableRefObject<(direction: TransitionArgs['direction']) => void>;
|
||||
}
|
||||
export declare function useTransition({ container, direction, classes, onStart, onStop }: TransitionArgs): void;
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{transition as d}from'../components/transitions/utils/transition.js';import{disposables as l}from'../utils/disposables.js';import{useDisposables as f}from'./use-disposables.js';import{useIsMounted as m}from'./use-is-mounted.js';import{useIsoMorphicEffect as p}from'./use-iso-morphic-effect.js';import{useLatestValue as b}from'./use-latest-value.js';function D({container:i,direction:t,classes:o,onStart:s,onStop:u}){let a=m(),c=f(),r=b(t);p(()=>{let e=l();c.add(e.dispose);let n=i.current;if(!!n&&r.current!=="idle"&&!!a.current)return e.dispose(),s.current(r.current),e.add(d(n,o.current,r.current==="enter",()=>{e.dispose(),u.current(r.current)})),e.dispose},[t])}export{D as useTransition};
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
declare type AcceptNode = (node: HTMLElement) => typeof NodeFilter.FILTER_ACCEPT | typeof NodeFilter.FILTER_SKIP | typeof NodeFilter.FILTER_REJECT;
|
||||
export declare function useTreeWalker({ container, accept, walk, enabled, }: {
|
||||
container: HTMLElement | null;
|
||||
accept: AcceptNode;
|
||||
walk(node: HTMLElement): void;
|
||||
enabled?: boolean;
|
||||
}): void;
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useRef as E,useEffect as m}from"react";import{useIsoMorphicEffect as T}from'./use-iso-morphic-effect.js';import{getOwnerDocument as N}from'../utils/owner.js';function F({container:e,accept:t,walk:r,enabled:c=!0}){let o=E(t),l=E(r);m(()=>{o.current=t,l.current=r},[t,r]),T(()=>{if(!e||!c)return;let n=N(e);if(!n)return;let f=o.current,p=l.current,d=Object.assign(i=>f(i),{acceptNode:f}),u=n.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,d,!1);for(;u.nextNode();)p(u.currentNode)},[e,c,o,l])}export{F as useTreeWalker};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export declare function useWatch<T extends any[]>(cb: (newValues: [...T], oldValues: [...T]) => void | (() => void), dependencies: [...T]): void;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useEffect as s,useRef as f}from"react";import{useEvent as i}from'./use-event.js';function m(u,t){let e=f([]),r=i(u);s(()=>{let o=[...e.current];for(let[n,a]of t.entries())if(e.current[n]!==a){let l=r(t,o);return e.current=t,l}},[r,...t])}export{m as useWatch};
|
||||
+1
@@ -0,0 +1 @@
|
||||
export declare function useWindowEvent<TType extends keyof WindowEventMap>(type: TType, listener: (ev: WindowEventMap[TType]) => any, options?: boolean | AddEventListenerOptions): void;
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{useEffect as d}from"react";import{useLatestValue as a}from'./use-latest-value.js';function s(e,r,n){let o=a(r);d(()=>{function t(i){o.current(i)}return window.addEventListener(e,t,n),()=>window.removeEventListener(e,t,n)},[e,n])}export{s as useWindowEvent};
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
'use strict'
|
||||
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
module.exports = require('./headlessui.prod.cjs')
|
||||
} else {
|
||||
module.exports = require('./headlessui.dev.cjs')
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import 'client-only';
|
||||
export * from './components/combobox/combobox.js';
|
||||
export * from './components/dialog/dialog.js';
|
||||
export * from './components/disclosure/disclosure.js';
|
||||
export * from './components/focus-trap/focus-trap.js';
|
||||
export * from './components/listbox/listbox.js';
|
||||
export * from './components/menu/menu.js';
|
||||
export * from './components/popover/popover.js';
|
||||
export * from './components/portal/portal.js';
|
||||
export * from './components/radio-group/radio-group.js';
|
||||
export * from './components/switch/switch.js';
|
||||
export * from './components/tabs/tabs.js';
|
||||
export * from './components/transitions/transition.js';
|
||||
+1
@@ -0,0 +1 @@
|
||||
import"client-only";export*from'./components/combobox/combobox.js';export*from'./components/dialog/dialog.js';export*from'./components/disclosure/disclosure.js';export*from'./components/focus-trap/focus-trap.js';export*from'./components/listbox/listbox.js';export*from'./components/menu/menu.js';export*from'./components/popover/popover.js';export*from'./components/portal/portal.js';export*from'./components/radio-group/radio-group.js';export*from'./components/switch/switch.js';export*from'./components/tabs/tabs.js';export*from'./components/transitions/transition.js';
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
/// <reference types="react" />
|
||||
interface FocusSentinelProps {
|
||||
onFocus(): boolean;
|
||||
}
|
||||
export declare function FocusSentinel({ onFocus }: FocusSentinelProps): JSX.Element | null;
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import i,{useState as s}from"react";import{Hidden as c,Features as l}from'./hidden.js';function p({onFocus:n}){let[r,o]=s(!0);return r?i.createElement(c,{as:"button",type:"button",features:l.Focusable,onFocus:a=>{a.preventDefault();let e,u=50;function t(){if(u--<=0){e&&cancelAnimationFrame(e);return}if(n()){o(!1),cancelAnimationFrame(e);return}e=requestAnimationFrame(t)}e=requestAnimationFrame(t)}}):null}export{p as FocusSentinel};
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
import { ElementType, Ref } from 'react';
|
||||
import { Props } from '../types.js';
|
||||
export declare enum Features {
|
||||
None = 1,
|
||||
Focusable = 2,
|
||||
Hidden = 4
|
||||
}
|
||||
export declare let Hidden: (<TTag extends ElementType<any> = "div">(props: Omit<import('../types.js').PropsOf<TTag>, "as" | "children" | "refName" | "className"> & {
|
||||
as?: TTag | undefined;
|
||||
children?: import("react").ReactNode | ((bag: {}) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>);
|
||||
refName?: string | undefined;
|
||||
} & (true extends (import('../types.js').PropsOf<TTag> extends never ? never : "className" extends keyof import('../types.js').PropsOf<TTag> ? true : never) ? {
|
||||
className?: import('../types.js').PropsOf<TTag>["className"] | ((bag: {}) => string) | undefined;
|
||||
} : {}) & {
|
||||
features?: Features | undefined;
|
||||
}, ref: Ref<HTMLElement>) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null) & {
|
||||
displayName: string;
|
||||
};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import{forwardRefWithAs as i,render as n}from'../utils/render.js';let a="div";var s=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(s||{});let h=i(function(t,o){let{features:e=1,...r}=t,d={ref:o,"aria-hidden":(e&2)===2?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(e&4)===4&&(e&2)!==2&&{display:"none"}}};return n({ourProps:d,theirProps:r,slot:{},defaultTag:a,name:"Hidden"})});export{s as Features,h as Hidden};
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
import { ReactNode, ReactElement } from 'react';
|
||||
export declare enum State {
|
||||
Open = 0,
|
||||
Closed = 1
|
||||
}
|
||||
export declare function useOpenClosed(): State | null;
|
||||
interface Props {
|
||||
value: State;
|
||||
children: ReactNode;
|
||||
}
|
||||
export declare function OpenClosedProvider({ value, children }: Props): ReactElement;
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import r,{createContext as l,useContext as d}from"react";let o=l(null);o.displayName="OpenClosedContext";var p=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(p||{});function s(){return d(o)}function C({value:t,children:n}){return r.createElement(o.Provider,{value:t},n)}export{C as OpenClosedProvider,p as State,s as useOpenClosed};
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
import { ReactNode } from 'react';
|
||||
export declare function usePortalRoot(): boolean;
|
||||
interface ForcePortalRootProps {
|
||||
force: boolean;
|
||||
children: ReactNode;
|
||||
}
|
||||
export declare function ForcePortalRoot(props: ForcePortalRootProps): JSX.Element;
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import t,{createContext as r,useContext as c}from"react";let e=r(!1);function l(){return c(e)}function P(o){return t.createElement(e.Provider,{value:o.force},o.children)}export{P as ForcePortalRoot,l as usePortalRoot};
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
import { MutableRefObject, ReactNode } from 'react';
|
||||
declare type OnUpdate = (message: StackMessage, type: string, element: MutableRefObject<HTMLElement | null>) => void;
|
||||
export declare enum StackMessage {
|
||||
Add = 0,
|
||||
Remove = 1
|
||||
}
|
||||
export declare function useStackContext(): OnUpdate;
|
||||
export declare function StackProvider({ children, onUpdate, type, element, enabled, }: {
|
||||
children: ReactNode;
|
||||
onUpdate?: OnUpdate;
|
||||
type: string;
|
||||
element: MutableRefObject<HTMLElement | null>;
|
||||
enabled?: boolean;
|
||||
}): JSX.Element;
|
||||
export {};
|
||||
+1
@@ -0,0 +1 @@
|
||||
import d,{createContext as c,useContext as m}from"react";import{useIsoMorphicEffect as f}from'../hooks/use-iso-morphic-effect.js';import{useEvent as p}from'../hooks/use-event.js';let a=c(()=>{});a.displayName="StackContext";var s=(e=>(e[e.Add=0]="Add",e[e.Remove=1]="Remove",e))(s||{});function x(){return m(a)}function M({children:i,onUpdate:r,type:e,element:n,enabled:u}){let l=x(),o=p((...t)=>{r==null||r(...t),l(...t)});return f(()=>{let t=u===void 0||u===!0;return t&&o(0,e,n),()=>{t&&o(1,e,n)}},[o,e,n,u]),d.createElement(a.Provider,{value:o},i)}export{s as StackMessage,M as StackProvider,x as useStackContext};
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
import { ReactNode, ReactElement, JSXElementConstructor } from 'react';
|
||||
export declare type ReactTag = keyof JSX.IntrinsicElements | JSXElementConstructor<any>;
|
||||
declare let __: "1D45E01E-AF44-47C4-988A-19A94EBAF55C";
|
||||
export declare type __ = typeof __;
|
||||
export declare type Expand<T> = T extends infer O ? {
|
||||
[K in keyof O]: O[K];
|
||||
} : never;
|
||||
export declare type PropsOf<TTag extends ReactTag> = TTag extends React.ElementType ? React.ComponentProps<TTag> : never;
|
||||
declare type PropsWeControl = 'as' | 'children' | 'refName' | 'className';
|
||||
declare type CleanProps<TTag extends ReactTag, TOmitableProps extends PropertyKey = __> = TOmitableProps extends __ ? Omit<PropsOf<TTag>, PropsWeControl> : Omit<PropsOf<TTag>, TOmitableProps | PropsWeControl>;
|
||||
declare type OurProps<TTag extends ReactTag, TSlot> = {
|
||||
as?: TTag;
|
||||
children?: ReactNode | ((bag: TSlot) => ReactElement);
|
||||
refName?: string;
|
||||
};
|
||||
declare type HasProperty<T extends object, K extends PropertyKey> = T extends never ? never : K extends keyof T ? true : never;
|
||||
declare type ClassNameOverride<TTag extends ReactTag, TSlot = {}> = true extends HasProperty<PropsOf<TTag>, 'className'> ? {
|
||||
className?: PropsOf<TTag>['className'] | ((bag: TSlot) => string);
|
||||
} : {};
|
||||
export declare type Props<TTag extends ReactTag, TSlot = {}, TOmitableProps extends PropertyKey = __> = CleanProps<TTag, TOmitableProps> & OurProps<TTag, TSlot> & ClassNameOverride<TTag, TSlot>;
|
||||
declare type Without<T, U> = {
|
||||
[P in Exclude<keyof T, keyof U>]?: never;
|
||||
};
|
||||
export declare type XOR<T, U> = T | U extends __ ? never : T extends __ ? U : U extends __ ? T : T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
|
||||
export declare type ByComparator<T> = (keyof T & string) | ((a: T, b: T) => boolean);
|
||||
export declare type EnsureArray<T> = T extends any[] ? T : Expand<T>[];
|
||||
export {};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user