@pzerelles/headlessui-svelte 2.1.1-next.1 → 2.1.2-next.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/button/Button.svelte +6 -10
- package/dist/button/Button.svelte.d.ts +34 -26
- package/dist/checkbox/Checkbox.svelte +43 -25
- package/dist/checkbox/Checkbox.svelte.d.ts +42 -28
- package/dist/close-button/CloseButton.svelte +5 -4
- package/dist/close-button/CloseButton.svelte.d.ts +36 -13
- package/dist/combobox/Combobox.svelte +2 -2
- package/dist/combobox/Combobox.svelte.d.ts +9 -9
- package/dist/data-interactive/DataInteractive.svelte +41 -0
- package/dist/data-interactive/DataInteractive.svelte.d.ts +39 -0
- package/dist/data-interactive/index.d.ts +1 -0
- package/dist/data-interactive/index.js +1 -0
- package/dist/description/Description.svelte +10 -53
- package/dist/description/Description.svelte.d.ts +15 -32
- package/dist/description/context.svelte.d.ts +17 -0
- package/dist/description/context.svelte.js +51 -0
- package/dist/dialog/Dialog.svelte +51 -0
- package/dist/dialog/Dialog.svelte.d.ts +60 -0
- package/dist/dialog/DialogBackdrop.svelte +39 -0
- package/dist/dialog/DialogBackdrop.svelte.d.ts +38 -0
- package/dist/dialog/DialogPanel.svelte +46 -0
- package/dist/dialog/DialogPanel.svelte.d.ts +40 -0
- package/dist/dialog/DialogTitle.svelte +29 -0
- package/dist/dialog/DialogTitle.svelte.d.ts +34 -0
- package/dist/dialog/InternalDialog.svelte +233 -0
- package/dist/dialog/InternalDialog.svelte.d.ts +42 -0
- package/dist/dialog/context.svelte.d.ts +15 -0
- package/dist/dialog/context.svelte.js +16 -0
- package/dist/dialog/index.d.ts +4 -0
- package/dist/dialog/index.js +4 -0
- package/dist/field/Field.svelte +8 -11
- package/dist/field/Field.svelte.d.ts +21 -17
- package/dist/fieldset/Fieldset.svelte +11 -9
- package/dist/fieldset/Fieldset.svelte.d.ts +21 -17
- package/dist/focus-trap/FocusTrap.svelte +325 -0
- package/dist/focus-trap/FocusTrap.svelte.d.ts +46 -0
- package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
- package/dist/focus-trap/FocusTrapFeatures.js +15 -0
- package/dist/hooks/use-controllable.svelte.d.ts +1 -1
- package/dist/hooks/use-controllable.svelte.js +3 -3
- package/dist/hooks/use-escape.svelte.d.ts +5 -0
- package/dist/hooks/use-escape.svelte.js +26 -0
- package/dist/hooks/use-event-listener.svelte.d.ts +6 -0
- package/dist/hooks/use-event-listener.svelte.js +12 -0
- package/dist/hooks/use-inert-others.svelte.d.ts +2 -2
- package/dist/hooks/use-inert-others.svelte.js +3 -3
- package/dist/hooks/use-is-mounted.svelte.d.ts +3 -0
- package/dist/hooks/use-is-mounted.svelte.js +14 -0
- package/dist/hooks/use-is-touch-device.svelte.d.ts +3 -0
- package/dist/hooks/use-is-touch-device.svelte.js +20 -0
- package/dist/hooks/use-root-containers.svelte.d.ts +9 -0
- package/dist/hooks/use-root-containers.svelte.js +50 -0
- package/dist/hooks/use-tab-direction.svelte.d.ts +7 -0
- package/dist/hooks/use-tab-direction.svelte.js +25 -0
- package/dist/hooks/use-transition.svelte.js +14 -13
- package/dist/hooks/use-tree-walker.svelte.d.ts +8 -0
- package/dist/hooks/use-tree-walker.svelte.js +19 -0
- package/dist/hooks/use-watch.svelte.d.ts +4 -0
- package/dist/hooks/use-watch.svelte.js +16 -0
- package/dist/hooks/use-window-event.svelte.d.ts +6 -0
- package/dist/hooks/use-window-event.svelte.js +12 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/input/Input.svelte +59 -0
- package/dist/input/Input.svelte.d.ts +50 -0
- package/dist/input/index.d.ts +1 -0
- package/dist/input/index.js +1 -0
- package/dist/internal/FocusSentinel.svelte.d.ts +4 -1
- package/dist/internal/ForcePortalRoot.svelte +6 -0
- package/dist/internal/ForcePortalRoot.svelte.d.ts +22 -0
- package/dist/internal/FormFields.svelte.d.ts +4 -1
- package/dist/internal/FormResolver.svelte.d.ts +4 -1
- package/dist/internal/Hidden.svelte +6 -14
- package/dist/internal/Hidden.svelte.d.ts +19 -15
- package/dist/internal/HiddenFeatures.d.ts +5 -0
- package/dist/internal/HiddenFeatures.js +9 -0
- package/dist/internal/HoistFormFields.svelte.d.ts +4 -1
- package/dist/internal/MainTreeProvider.svelte +45 -0
- package/dist/internal/MainTreeProvider.svelte.d.ts +31 -0
- package/dist/internal/Portal.svelte.d.ts +4 -1
- package/dist/internal/close-provider.d.ts +7 -0
- package/dist/internal/close-provider.js +7 -0
- package/dist/internal/floating.svelte.d.ts +13 -8
- package/dist/internal/floating.svelte.js +197 -186
- package/dist/internal/open-closed.d.ts +1 -1
- package/dist/internal/open-closed.js +1 -1
- package/dist/label/Label.svelte +17 -65
- package/dist/label/Label.svelte.d.ts +19 -32
- package/dist/label/context.svelte.d.ts +17 -0
- package/dist/label/context.svelte.js +56 -0
- package/dist/legend/Legend.svelte +4 -3
- package/dist/legend/Legend.svelte.d.ts +33 -15
- package/dist/listbox/Listbox.svelte +8 -25
- package/dist/listbox/Listbox.svelte.d.ts +31 -22
- package/dist/listbox/ListboxButton.svelte +9 -12
- package/dist/listbox/ListboxButton.svelte.d.ts +16 -7
- package/dist/listbox/ListboxOption.svelte +4 -7
- package/dist/listbox/ListboxOption.svelte.d.ts +22 -11
- package/dist/listbox/ListboxOptions.svelte +21 -20
- package/dist/listbox/ListboxOptions.svelte.d.ts +23 -7
- package/dist/listbox/ListboxSelectedOption.svelte +15 -7
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +24 -14
- package/dist/listbox/ListboxStates.d.ts +12 -0
- package/dist/listbox/ListboxStates.js +15 -0
- package/dist/menu/Menu.svelte +235 -0
- package/dist/menu/Menu.svelte.d.ts +42 -0
- package/dist/menu/MenuButton.svelte +127 -0
- package/dist/menu/MenuButton.svelte.d.ts +52 -0
- package/dist/menu/MenuHeading.svelte +19 -0
- package/dist/menu/MenuHeading.svelte.d.ts +39 -0
- package/dist/menu/MenuItem.svelte +114 -0
- package/dist/menu/MenuItem.svelte.d.ts +49 -0
- package/dist/menu/MenuItems.svelte +244 -0
- package/dist/menu/MenuItems.svelte.d.ts +55 -0
- package/dist/menu/MenuSection.svelte +14 -0
- package/dist/menu/MenuSection.svelte.d.ts +35 -0
- package/dist/menu/MenuSeparator.svelte +9 -0
- package/dist/menu/MenuSeparator.svelte.d.ts +35 -0
- package/dist/menu/context.svelte.d.ts +47 -0
- package/dist/menu/context.svelte.js +21 -0
- package/dist/menu/index.d.ts +7 -0
- package/dist/menu/index.js +7 -0
- package/dist/portal/InternalPortal.svelte +22 -33
- package/dist/portal/InternalPortal.svelte.d.ts +16 -7
- package/dist/portal/Portal.svelte +4 -8
- package/dist/portal/Portal.svelte.d.ts +6 -6
- package/dist/portal/PortalGroup.svelte +5 -6
- package/dist/portal/PortalGroup.svelte.d.ts +16 -7
- package/dist/switch/Switch.svelte +41 -37
- package/dist/switch/Switch.svelte.d.ts +24 -7
- package/dist/switch/SwitchGroup.svelte +7 -8
- package/dist/switch/SwitchGroup.svelte.d.ts +14 -7
- package/dist/tabs/Tab.svelte +9 -14
- package/dist/tabs/Tab.svelte.d.ts +18 -6
- package/dist/tabs/TabGroup.svelte +20 -23
- package/dist/tabs/TabGroup.svelte.d.ts +19 -6
- package/dist/tabs/TabList.svelte +5 -7
- package/dist/tabs/TabList.svelte.d.ts +13 -6
- package/dist/tabs/TabPanel.svelte +30 -32
- package/dist/tabs/TabPanel.svelte.d.ts +19 -6
- package/dist/tabs/TabPanels.svelte +5 -6
- package/dist/tabs/TabPanels.svelte.d.ts +13 -6
- package/dist/textarea/Textarea.svelte +67 -0
- package/dist/textarea/Textarea.svelte.d.ts +50 -0
- package/dist/textarea/index.d.ts +1 -0
- package/dist/textarea/index.js +1 -0
- package/dist/transition/InternalTransitionChild.svelte +178 -0
- package/dist/transition/InternalTransitionChild.svelte.d.ts +55 -0
- package/dist/transition/Transition.svelte +89 -0
- package/dist/transition/Transition.svelte.d.ts +42 -0
- package/dist/transition/TransitionChild.svelte +16 -0
- package/dist/transition/TransitionChild.svelte.d.ts +44 -0
- package/dist/transition/context.svelte.d.ts +64 -0
- package/dist/transition/context.svelte.js +120 -0
- package/dist/transition/index.d.ts +2 -0
- package/dist/transition/index.js +2 -0
- package/dist/utils/ElementOrComponent.svelte +26 -0
- package/dist/utils/ElementOrComponent.svelte.d.ts +56 -0
- package/dist/utils/Generic.svelte +44 -0
- package/dist/utils/Generic.svelte.d.ts +35 -0
- package/dist/utils/StableCollection.svelte +1 -1
- package/dist/utils/StableCollection.svelte.d.ts +4 -1
- package/dist/utils/active-element-history.d.ts +1 -0
- package/dist/utils/active-element-history.js +35 -0
- package/dist/utils/alternative-types.d.ts +21 -0
- package/dist/utils/alternative-types.js +1 -0
- package/dist/utils/class-names.d.ts +1 -0
- package/dist/utils/class-names.js +10 -0
- package/dist/utils/focus-management.d.ts +2 -1
- package/dist/utils/focus-management.js +13 -13
- package/dist/utils/id.d.ts +1 -1
- package/dist/utils/id.js +1 -1
- package/dist/utils/on-document-ready.d.ts +1 -0
- package/dist/utils/on-document-ready.js +12 -0
- package/dist/utils/render.d.ts +3 -0
- package/dist/utils/render.js +63 -0
- package/dist/utils/state.d.ts +7 -1
- package/dist/utils/state.js +10 -6
- package/dist/utils/types.d.ts +14 -17
- package/dist/utils/types.js +0 -5
- package/package.json +32 -31
- package/dist/internal/id.d.ts +0 -8
- package/dist/internal/id.js +0 -11
- package/dist/tabs/Button.svelte +0 -65
- package/dist/tabs/Button.svelte.d.ts +0 -39
- package/dist/utils/close.d.ts +0 -2
- package/dist/utils/close.js +0 -3
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ElementType } from "../utils/types.js";
|
|
2
|
+
import { type TransitionChildProps, DEFAULT_TRANSITION_CHILD_TAG } from "./TransitionChild.svelte";
|
|
3
|
+
export type TransitionRootProps<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> = TransitionChildProps<TTag> & {
|
|
4
|
+
show?: boolean;
|
|
5
|
+
appear?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> {
|
|
8
|
+
props(): {
|
|
9
|
+
as?: TTag | undefined;
|
|
10
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "unmount" | "transition" | keyof import("./context.svelte.js").TransitionClasses | keyof import("./context.svelte.js").TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
11
|
+
children?: import("../utils/types.js").Children<HTMLElement> | undefined;
|
|
12
|
+
ref?: HTMLElement;
|
|
13
|
+
} & (true extends (import("../utils/types.js").PropsOf<TTag> extends infer T_1 ? T_1 extends import("../utils/types.js").PropsOf<TTag> ? T_1 extends never ? never : "class" extends infer T_2 ? T_2 extends "class" ? T_2 extends keyof T_1 ? true : never : never : never : never : never) ? {
|
|
14
|
+
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
|
|
15
|
+
} : {}) & {
|
|
16
|
+
unmount?: boolean | undefined;
|
|
17
|
+
} & import("./context.svelte.js").TransitionClasses & import("./context.svelte.js").TransitionEvents & {
|
|
18
|
+
transition?: boolean;
|
|
19
|
+
appear?: boolean;
|
|
20
|
+
} & {
|
|
21
|
+
show?: boolean;
|
|
22
|
+
appear?: boolean;
|
|
23
|
+
};
|
|
24
|
+
events(): {} & {
|
|
25
|
+
[evt: string]: CustomEvent<any>;
|
|
26
|
+
};
|
|
27
|
+
slots(): {};
|
|
28
|
+
bindings(): "ref";
|
|
29
|
+
exports(): {};
|
|
30
|
+
}
|
|
31
|
+
interface $$IsomorphicComponent {
|
|
32
|
+
new <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag>['props']>, ReturnType<__sveltets_Render<TTag>['events']>, ReturnType<__sveltets_Render<TTag>['slots']>> & {
|
|
33
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
34
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
35
|
+
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
36
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
37
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
38
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
39
|
+
}
|
|
40
|
+
declare const Transition: $$IsomorphicComponent;
|
|
41
|
+
type Transition<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> = InstanceType<typeof Transition<TTag>>;
|
|
42
|
+
export default Transition;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script lang="ts" module>import { RenderFeatures } from "../utils/render.js";
|
|
2
|
+
export const DEFAULT_TRANSITION_CHILD_TAG = "svelte:fragment";
|
|
3
|
+
export const TransitionChildRenderFeatures = RenderFeatures.RenderStrategy;
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG">import { useOpenClosed } from "../internal/open-closed.js";
|
|
7
|
+
import { getContext } from "svelte";
|
|
8
|
+
import InternalTransitionChild from "./InternalTransitionChild.svelte";
|
|
9
|
+
import Transition from "./Transition.svelte";
|
|
10
|
+
const hasTransitionContext = !!getContext("TransitionContext");
|
|
11
|
+
const hasOpenClosedContext = useOpenClosed() !== null;
|
|
12
|
+
let { ref = $bindable(), as, ...props } = $props();
|
|
13
|
+
const TransitionRootOrChild = !hasTransitionContext && hasOpenClosedContext ? Transition : InternalTransitionChild;
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<TransitionRootOrChild bind:ref {...props} />
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ElementType, Props } from "../utils/types.js";
|
|
2
|
+
import { RenderFeatures, type PropsForFeatures } from "../utils/render.js";
|
|
3
|
+
import type { TransitionEvents, TransitionClasses } from "./context.svelte.js";
|
|
4
|
+
type TransitionChildPropsWeControl = never;
|
|
5
|
+
export type TransitionChildProps<TTag extends ElementType> = Props<TTag, TransitionChildRenderPropArg, TransitionChildPropsWeControl, PropsForFeatures<typeof TransitionChildRenderFeatures> & TransitionClasses & TransitionEvents & {
|
|
6
|
+
transition?: boolean;
|
|
7
|
+
appear?: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const DEFAULT_TRANSITION_CHILD_TAG = "svelte:fragment";
|
|
10
|
+
export type TransitionChildRenderPropArg = HTMLElement;
|
|
11
|
+
export declare const TransitionChildRenderFeatures = RenderFeatures.RenderStrategy;
|
|
12
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> {
|
|
13
|
+
props(): {
|
|
14
|
+
as?: TTag | undefined;
|
|
15
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "unmount" | "transition" | keyof TransitionClasses | keyof TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
16
|
+
children?: import("../utils/types.js").Children<HTMLElement> | undefined;
|
|
17
|
+
ref?: HTMLElement;
|
|
18
|
+
} & (true extends (import("../utils/types.js").PropsOf<TTag> extends infer T_1 ? T_1 extends import("../utils/types.js").PropsOf<TTag> ? T_1 extends never ? never : "class" extends infer T_2 ? T_2 extends "class" ? T_2 extends keyof T_1 ? true : never : never : never : never : never) ? {
|
|
19
|
+
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
|
|
20
|
+
} : {}) & {
|
|
21
|
+
unmount?: boolean | undefined;
|
|
22
|
+
} & TransitionClasses & TransitionEvents & {
|
|
23
|
+
transition?: boolean;
|
|
24
|
+
appear?: boolean;
|
|
25
|
+
};
|
|
26
|
+
events(): {} & {
|
|
27
|
+
[evt: string]: CustomEvent<any>;
|
|
28
|
+
};
|
|
29
|
+
slots(): {};
|
|
30
|
+
bindings(): "ref";
|
|
31
|
+
exports(): {};
|
|
32
|
+
}
|
|
33
|
+
interface $$IsomorphicComponent {
|
|
34
|
+
new <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag>['props']>, ReturnType<__sveltets_Render<TTag>['events']>, ReturnType<__sveltets_Render<TTag>['slots']>> & {
|
|
35
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
36
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
37
|
+
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
38
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
39
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
40
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
41
|
+
}
|
|
42
|
+
declare const TransitionChild: $$IsomorphicComponent;
|
|
43
|
+
type TransitionChild<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> = InstanceType<typeof TransitionChild<TTag>>;
|
|
44
|
+
export default TransitionChild;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { MutableRefObject } from "../utils/ref.svelte.js";
|
|
2
|
+
import { RenderStrategy } from "../utils/render.js";
|
|
3
|
+
type ContainerElement = MutableRefObject<HTMLElement | null>;
|
|
4
|
+
export type TransitionDirection = "enter" | "leave";
|
|
5
|
+
export interface TransitionContextValues {
|
|
6
|
+
show: boolean;
|
|
7
|
+
appear: boolean;
|
|
8
|
+
initial: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare enum TreeStates {
|
|
11
|
+
Visible = "visible",
|
|
12
|
+
Hidden = "hidden"
|
|
13
|
+
}
|
|
14
|
+
export interface TransitionClasses {
|
|
15
|
+
enter?: string;
|
|
16
|
+
enterFrom?: string;
|
|
17
|
+
enterTo?: string;
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated The `enterTo` and `leaveTo` classes stay applied after the transition has finished.
|
|
20
|
+
*/
|
|
21
|
+
entered?: string;
|
|
22
|
+
leave?: string;
|
|
23
|
+
leaveFrom?: string;
|
|
24
|
+
leaveTo?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface TransitionEvents {
|
|
27
|
+
beforeEnter?: () => void;
|
|
28
|
+
afterEnter?: () => void;
|
|
29
|
+
beforeLeave?: () => void;
|
|
30
|
+
afterLeave?: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare function useTransitionContext(): TransitionContextValues;
|
|
33
|
+
export declare function useParentNesting(): NestingContextValues;
|
|
34
|
+
export interface NestingContextValues {
|
|
35
|
+
children: {
|
|
36
|
+
el: ContainerElement;
|
|
37
|
+
state: TreeStates;
|
|
38
|
+
}[];
|
|
39
|
+
register: (el: ContainerElement) => () => void;
|
|
40
|
+
unregister: (el: ContainerElement, strategy?: RenderStrategy) => void;
|
|
41
|
+
onStart: (el: ContainerElement, direction: TransitionDirection, cb: () => void) => void;
|
|
42
|
+
onStop: (el: ContainerElement, direction: TransitionDirection, cb: () => void) => void;
|
|
43
|
+
chains: Record<TransitionDirection, [container: ContainerElement, promise: Promise<void>][]>;
|
|
44
|
+
wait: Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
export declare function hasChildren(bag: NestingContextValues["children"] | {
|
|
47
|
+
children: NestingContextValues["children"];
|
|
48
|
+
}): boolean;
|
|
49
|
+
export declare function useNesting(options: {
|
|
50
|
+
done?: () => void;
|
|
51
|
+
parent?: NestingContextValues;
|
|
52
|
+
}): {
|
|
53
|
+
readonly children: {
|
|
54
|
+
el: ContainerElement;
|
|
55
|
+
state: TreeStates;
|
|
56
|
+
}[];
|
|
57
|
+
register: (container: ContainerElement) => () => void;
|
|
58
|
+
unregister: (container: ContainerElement, strategy?: RenderStrategy) => void;
|
|
59
|
+
onStart: (container: ContainerElement, direction: TransitionDirection, cb: (direction: TransitionDirection) => void) => void;
|
|
60
|
+
onStop: (_container: ContainerElement, direction: TransitionDirection, cb: (direction: TransitionDirection) => void) => void;
|
|
61
|
+
readonly wait: Promise<void>;
|
|
62
|
+
readonly chains: Record<TransitionDirection, [identifier: ContainerElement, promise: Promise<void>][]>;
|
|
63
|
+
};
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { useIsMounted } from "../hooks/use-is-mounted.svelte.js";
|
|
2
|
+
import { useDisposables } from "../utils/disposables.js";
|
|
3
|
+
import { match } from "../utils/match.js";
|
|
4
|
+
import { RenderStrategy } from "../utils/render.js";
|
|
5
|
+
import { getContext } from "svelte";
|
|
6
|
+
export var TreeStates;
|
|
7
|
+
(function (TreeStates) {
|
|
8
|
+
TreeStates["Visible"] = "visible";
|
|
9
|
+
TreeStates["Hidden"] = "hidden";
|
|
10
|
+
})(TreeStates || (TreeStates = {}));
|
|
11
|
+
export function useTransitionContext() {
|
|
12
|
+
const context = getContext("TransitionContext");
|
|
13
|
+
if (context === null) {
|
|
14
|
+
throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
|
|
15
|
+
}
|
|
16
|
+
return context;
|
|
17
|
+
}
|
|
18
|
+
export function useParentNesting() {
|
|
19
|
+
let context = getContext("NestingContext");
|
|
20
|
+
if (context === null) {
|
|
21
|
+
throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
|
|
22
|
+
}
|
|
23
|
+
return context;
|
|
24
|
+
}
|
|
25
|
+
export function hasChildren(bag) {
|
|
26
|
+
if ("children" in bag)
|
|
27
|
+
return hasChildren(bag.children);
|
|
28
|
+
return bag.filter(({ state }) => state === TreeStates.Visible).length > 0;
|
|
29
|
+
}
|
|
30
|
+
export function useNesting(options) {
|
|
31
|
+
const { done, parent } = $derived(options);
|
|
32
|
+
let transitionableChildren = $state([]);
|
|
33
|
+
const mounted = useIsMounted();
|
|
34
|
+
const d = useDisposables();
|
|
35
|
+
const unregister = (container, strategy = RenderStrategy.Hidden) => {
|
|
36
|
+
const idx = transitionableChildren.findIndex(({ el }) => el === container);
|
|
37
|
+
if (idx === -1)
|
|
38
|
+
return;
|
|
39
|
+
match(strategy, {
|
|
40
|
+
[RenderStrategy.Unmount]() {
|
|
41
|
+
transitionableChildren.splice(idx, 1);
|
|
42
|
+
},
|
|
43
|
+
[RenderStrategy.Hidden]() {
|
|
44
|
+
transitionableChildren[idx].state = TreeStates.Hidden;
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
d.microTask(() => {
|
|
48
|
+
if (!hasChildren(transitionableChildren) && mounted.current) {
|
|
49
|
+
done?.();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
const register = (container) => {
|
|
54
|
+
const child = transitionableChildren.find(({ el }) => el === container);
|
|
55
|
+
if (!child) {
|
|
56
|
+
transitionableChildren.push({ el: container, state: TreeStates.Visible });
|
|
57
|
+
}
|
|
58
|
+
else if (child.state !== TreeStates.Visible) {
|
|
59
|
+
child.state = TreeStates.Visible;
|
|
60
|
+
}
|
|
61
|
+
return () => unregister(container, RenderStrategy.Unmount);
|
|
62
|
+
};
|
|
63
|
+
let todos = $state([]);
|
|
64
|
+
let wait = $state(Promise.resolve());
|
|
65
|
+
let chains = $state({
|
|
66
|
+
enter: [],
|
|
67
|
+
leave: [],
|
|
68
|
+
});
|
|
69
|
+
let onStart = (container, direction, cb) => {
|
|
70
|
+
// Clear out all existing todos
|
|
71
|
+
todos.splice(0);
|
|
72
|
+
// Remove all existing promises for the current container from the parent because we can
|
|
73
|
+
// ignore those and use only the new one.
|
|
74
|
+
if (parent) {
|
|
75
|
+
parent.chains[direction] = parent.chains[direction].filter(([containerInParent]) => containerInParent !== container);
|
|
76
|
+
}
|
|
77
|
+
// Wait until our own transition is done
|
|
78
|
+
parent?.chains[direction].push([
|
|
79
|
+
container,
|
|
80
|
+
new Promise((resolve) => {
|
|
81
|
+
todos.push(resolve);
|
|
82
|
+
}),
|
|
83
|
+
]);
|
|
84
|
+
// Wait until our children are done
|
|
85
|
+
parent?.chains[direction].push([
|
|
86
|
+
container,
|
|
87
|
+
new Promise((resolve) => {
|
|
88
|
+
Promise.all(chains[direction].map(([_container, promise]) => promise)).then(() => resolve());
|
|
89
|
+
}),
|
|
90
|
+
]);
|
|
91
|
+
if (direction === "enter") {
|
|
92
|
+
wait = wait.then(() => parent?.wait).then(() => cb(direction));
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
cb(direction);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const onStop = (_container, direction, cb) => {
|
|
99
|
+
Promise.all(chains[direction].splice(0).map(([_container, promise]) => promise)) // Wait for my children
|
|
100
|
+
.then(() => {
|
|
101
|
+
todos.shift()?.(); // I'm ready
|
|
102
|
+
})
|
|
103
|
+
.then(() => cb(direction));
|
|
104
|
+
};
|
|
105
|
+
return {
|
|
106
|
+
get children() {
|
|
107
|
+
return transitionableChildren;
|
|
108
|
+
},
|
|
109
|
+
register,
|
|
110
|
+
unregister,
|
|
111
|
+
onStart,
|
|
112
|
+
onStop,
|
|
113
|
+
get wait() {
|
|
114
|
+
return wait;
|
|
115
|
+
},
|
|
116
|
+
get chains() {
|
|
117
|
+
return chains;
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts" generics="TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue">import { mergePropsAdvanced, RenderFeatures, RenderStrategy } from "./render.js";
|
|
2
|
+
import Generic from "./Generic.svelte";
|
|
3
|
+
let {
|
|
4
|
+
ourProps,
|
|
5
|
+
theirProps,
|
|
6
|
+
slots,
|
|
7
|
+
slot = slots,
|
|
8
|
+
defaultTag,
|
|
9
|
+
features,
|
|
10
|
+
visible = true,
|
|
11
|
+
name,
|
|
12
|
+
ref = $bindable(),
|
|
13
|
+
value = $bindable(),
|
|
14
|
+
checked = $bindable()
|
|
15
|
+
} = $props();
|
|
16
|
+
const featureFlags = $derived(features ?? RenderFeatures.None);
|
|
17
|
+
const { static: isStatic = false, unmount = true, ...rest } = $derived(mergePropsAdvanced(theirProps, ourProps ?? {}));
|
|
18
|
+
const render = $derived(
|
|
19
|
+
visible || featureFlags & RenderFeatures.Static && isStatic || featureFlags & RenderFeatures.RenderStrategy && !unmount
|
|
20
|
+
);
|
|
21
|
+
const hiddenProps = $derived(
|
|
22
|
+
!visible && !(featureFlags & RenderFeatures.Static) && featureFlags & RenderFeatures.RenderStrategy && !unmount ? { hidden: true, style: "display: none;" } : {}
|
|
23
|
+
);
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
{#if render}<Generic {...rest} {...hiddenProps} {slot} tag={defaultTag} {name} bind:ref bind:value bind:checked />{/if}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ElementType } from "./types.js";
|
|
2
|
+
import { RenderFeatures } from "./render.js";
|
|
3
|
+
declare class __sveltets_Render<TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue> {
|
|
4
|
+
props(): {
|
|
5
|
+
ourProps?: Expand<{
|
|
6
|
+
[x: string]: any;
|
|
7
|
+
[x: number]: any;
|
|
8
|
+
} & {
|
|
9
|
+
children?: import("./types.js").Children<TSlot> | undefined;
|
|
10
|
+
ref?: HTMLElement;
|
|
11
|
+
} & {
|
|
12
|
+
class?: any;
|
|
13
|
+
} & Expand<((TFeature extends RenderFeatures.Static ? {
|
|
14
|
+
static?: boolean;
|
|
15
|
+
} : {}) extends infer T ? T extends (TFeature extends RenderFeatures.Static ? {
|
|
16
|
+
static?: boolean;
|
|
17
|
+
} : {}) ? T extends any ? (x: T) => any : never : never : never) | ((TFeature extends RenderFeatures.RenderStrategy ? {
|
|
18
|
+
unmount?: boolean;
|
|
19
|
+
} : {}) extends infer T_1 ? T_1 extends (TFeature extends RenderFeatures.RenderStrategy ? {
|
|
20
|
+
unmount?: boolean;
|
|
21
|
+
} : {}) ? T_1 extends any ? (x: T_1) => any : never : never : never) extends (x: infer R) => any ? R : never>> | undefined;
|
|
22
|
+
theirProps: {
|
|
23
|
+
as?: TTag | undefined;
|
|
24
|
+
children?: import("./types.js").Children<TSlot> | undefined;
|
|
25
|
+
ref?: HTMLElement | undefined;
|
|
26
|
+
class?: any;
|
|
27
|
+
};
|
|
28
|
+
slot?: TSlot | undefined;
|
|
29
|
+
slots?: TSlot | undefined;
|
|
30
|
+
defaultTag: ElementType;
|
|
31
|
+
features?: TFeature | undefined;
|
|
32
|
+
visible?: boolean;
|
|
33
|
+
name: string;
|
|
34
|
+
ref?: HTMLElement;
|
|
35
|
+
value?: TValue | undefined;
|
|
36
|
+
checked?: boolean;
|
|
37
|
+
};
|
|
38
|
+
events(): {} & {
|
|
39
|
+
[evt: string]: CustomEvent<any>;
|
|
40
|
+
};
|
|
41
|
+
slots(): {};
|
|
42
|
+
bindings(): "ref" | "value" | "checked";
|
|
43
|
+
exports(): {};
|
|
44
|
+
}
|
|
45
|
+
interface $$IsomorphicComponent {
|
|
46
|
+
new <TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']>, ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['events']>, ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['slots']>> & {
|
|
47
|
+
$$bindings?: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['bindings']>;
|
|
48
|
+
} & ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['exports']>;
|
|
49
|
+
<TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']> & {
|
|
50
|
+
$$events?: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['events']>;
|
|
51
|
+
}): ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['exports']>;
|
|
52
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any>['bindings']>;
|
|
53
|
+
}
|
|
54
|
+
declare const ElementOrComponent: $$IsomorphicComponent;
|
|
55
|
+
type ElementOrComponent<TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue> = InstanceType<typeof ElementOrComponent<TFeature, TTag, TSlot, TValue>>;
|
|
56
|
+
export default ElementOrComponent;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<script lang="ts" generics="TTag extends keyof SvelteHTMLProps, TSlot, TValue">import { stateFromSlot } from "./state.js";
|
|
2
|
+
let {
|
|
3
|
+
slot = {},
|
|
4
|
+
tag,
|
|
5
|
+
name,
|
|
6
|
+
ref = $bindable(),
|
|
7
|
+
value = $bindable(),
|
|
8
|
+
checked = $bindable(),
|
|
9
|
+
children,
|
|
10
|
+
as = tag,
|
|
11
|
+
unmount,
|
|
12
|
+
static: isStatic,
|
|
13
|
+
...props
|
|
14
|
+
} = $props();
|
|
15
|
+
const resolvedClass = $derived(
|
|
16
|
+
typeof props.class === "function" ? props.class(slot) : props.class
|
|
17
|
+
);
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
{#if as === "svelte:fragment"}
|
|
21
|
+
{#if children}{@render children(slot, {
|
|
22
|
+
...props,
|
|
23
|
+
...(resolvedClass ? { class: resolvedClass } : {}),
|
|
24
|
+
...stateFromSlot(slot),
|
|
25
|
+
})}{/if}
|
|
26
|
+
{:else if children}
|
|
27
|
+
{#if as === "select"}
|
|
28
|
+
<select bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value>
|
|
29
|
+
{@render children(slot, {})}
|
|
30
|
+
</select>
|
|
31
|
+
{:else}
|
|
32
|
+
<svelte:element this={as} bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)}>
|
|
33
|
+
{@render children(slot, {})}
|
|
34
|
+
</svelte:element>
|
|
35
|
+
{/if}
|
|
36
|
+
{:else if as === "input" && props.type === "checkbox"}
|
|
37
|
+
<input type="checkbox" bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:checked />
|
|
38
|
+
{:else if as === "input"}
|
|
39
|
+
<input bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value />
|
|
40
|
+
{:else if as === "textarea"}
|
|
41
|
+
<textarea bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value></textarea>
|
|
42
|
+
{:else}
|
|
43
|
+
<svelte:element this={as} bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} />
|
|
44
|
+
{/if}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ElementType, SvelteHTMLProps } from "./types.js";
|
|
2
|
+
declare class __sveltets_Render<TTag extends keyof SvelteHTMLProps, TSlot, TValue> {
|
|
3
|
+
props(): {
|
|
4
|
+
as?: TTag | undefined;
|
|
5
|
+
slot: TSlot;
|
|
6
|
+
tag: ElementType;
|
|
7
|
+
name: string;
|
|
8
|
+
ref?: HTMLElement;
|
|
9
|
+
value?: TValue | undefined;
|
|
10
|
+
checked?: boolean;
|
|
11
|
+
} & (Exclude<keyof import("./types.js").PropsOf<TTag>, "as" | "children" | "refName" | "class"> extends infer T extends keyof import("./types.js").PropsOf<TTag> ? { [P in T]: import("./types.js").PropsOf<TTag>[P]; } : never) & {
|
|
12
|
+
children?: import("./types.js").Children<TSlot> | undefined;
|
|
13
|
+
ref?: HTMLElement;
|
|
14
|
+
} & (true extends (import("./types.js").PropsOf<TTag> extends infer T_1 ? T_1 extends import("./types.js").PropsOf<TTag> ? T_1 extends never ? never : "class" extends infer T_2 ? T_2 extends "class" ? T_2 extends keyof T_1 ? true : never : never : never : never : never) ? {
|
|
15
|
+
class?: import("./types.js").PropsOf<TTag>["class"] | ((bag: TSlot) => string) | undefined;
|
|
16
|
+
} : {});
|
|
17
|
+
events(): {} & {
|
|
18
|
+
[evt: string]: CustomEvent<any>;
|
|
19
|
+
};
|
|
20
|
+
slots(): {};
|
|
21
|
+
bindings(): "ref" | "value" | "checked";
|
|
22
|
+
exports(): {};
|
|
23
|
+
}
|
|
24
|
+
interface $$IsomorphicComponent {
|
|
25
|
+
new <TTag extends keyof SvelteHTMLProps, TSlot, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['events']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['slots']>> & {
|
|
26
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['bindings']>;
|
|
27
|
+
} & ReturnType<__sveltets_Render<TTag, TSlot, TValue>['exports']>;
|
|
28
|
+
<TTag extends keyof SvelteHTMLProps, TSlot, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']> & {
|
|
29
|
+
$$events?: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['events']>;
|
|
30
|
+
}): ReturnType<__sveltets_Render<TTag, TSlot, TValue>['exports']>;
|
|
31
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
|
|
32
|
+
}
|
|
33
|
+
declare const Generic: $$IsomorphicComponent;
|
|
34
|
+
type Generic<TTag extends keyof SvelteHTMLProps, TSlot, TValue> = InstanceType<typeof Generic<TTag, TSlot, TValue>>;
|
|
35
|
+
export default Generic;
|
|
@@ -7,7 +7,10 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
|
|
|
7
7
|
(internal: unknown, props: Props & {
|
|
8
8
|
$$events?: Events;
|
|
9
9
|
$$slots?: Slots;
|
|
10
|
-
}): Exports
|
|
10
|
+
}): Exports & {
|
|
11
|
+
$set?: any;
|
|
12
|
+
$on?: any;
|
|
13
|
+
};
|
|
11
14
|
z_$$bindings?: Bindings;
|
|
12
15
|
}
|
|
13
16
|
declare const StableCollection: $$__sveltets_2_IsomorphicComponent<{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare let history: HTMLElement[];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { focusableSelector } from "./focus-management.js";
|
|
2
|
+
import { onDocumentReady } from "./on-document-ready.js";
|
|
3
|
+
export let history = [];
|
|
4
|
+
onDocumentReady(() => {
|
|
5
|
+
function handle(e) {
|
|
6
|
+
if (!(e.target instanceof HTMLElement))
|
|
7
|
+
return;
|
|
8
|
+
if (e.target === document.body)
|
|
9
|
+
return;
|
|
10
|
+
if (history[0] === e.target)
|
|
11
|
+
return;
|
|
12
|
+
let focusableElement = e.target;
|
|
13
|
+
// Figure out the closest focusable element, this is needed in a situation
|
|
14
|
+
// where you click on a non-focusable element inside a focusable element.
|
|
15
|
+
//
|
|
16
|
+
// E.g.:
|
|
17
|
+
//
|
|
18
|
+
// ```html
|
|
19
|
+
// <button>
|
|
20
|
+
// <span>Click me</span>
|
|
21
|
+
// </button>
|
|
22
|
+
// ```
|
|
23
|
+
focusableElement = focusableElement.closest(focusableSelector);
|
|
24
|
+
history.unshift(focusableElement ?? e.target);
|
|
25
|
+
// Filter out DOM Nodes that don't exist anymore
|
|
26
|
+
history = history.filter((x) => x != null && x.isConnected);
|
|
27
|
+
history.splice(10); // Only keep the 10 most recent items
|
|
28
|
+
}
|
|
29
|
+
window.addEventListener("click", handle, { capture: true });
|
|
30
|
+
window.addEventListener("mousedown", handle, { capture: true });
|
|
31
|
+
window.addEventListener("focus", handle, { capture: true });
|
|
32
|
+
document.body.addEventListener("click", handle, { capture: true });
|
|
33
|
+
document.body.addEventListener("mousedown", handle, { capture: true });
|
|
34
|
+
document.body.addEventListener("focus", handle, { capture: true });
|
|
35
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
import type { SvelteHTMLElements } from "svelte/elements";
|
|
3
|
+
export interface SvelteHTMLProps extends SvelteHTMLElements {
|
|
4
|
+
"svelte:fragment": {};
|
|
5
|
+
}
|
|
6
|
+
export type ElementType = keyof SvelteHTMLProps;
|
|
7
|
+
export type Expand<T> = T extends infer O ? {
|
|
8
|
+
[K in keyof O]: O[K];
|
|
9
|
+
} : never;
|
|
10
|
+
export type Children<TSlot> = Snippet | Snippet<[TSlot, Record<string, any>]>;
|
|
11
|
+
type OurProps<TSlot> = {
|
|
12
|
+
children?: Children<TSlot>;
|
|
13
|
+
ref?: HTMLElement;
|
|
14
|
+
class?: string | null | ((bag: TSlot) => string);
|
|
15
|
+
};
|
|
16
|
+
type MergeProps3<T, U, V> = {
|
|
17
|
+
[K in keyof T | keyof U | keyof V]?: K extends keyof V ? V[K] : K extends keyof U ? U[K] : K extends keyof T ? T[K] : never;
|
|
18
|
+
};
|
|
19
|
+
export type Props<TTag extends ElementType, TSlot = {}, TOmittableProps extends PropertyKey = never, Overrides = {}> = MergeProps3<SvelteHTMLProps[TTag], OurProps<TSlot>, Overrides>;
|
|
20
|
+
export type EnsureArray<T> = T extends any[] ? T : Expand<T>[];
|
|
21
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function classNames(...classes: (false | null | undefined | string)[]): string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export declare let focusableSelector: string;
|
|
1
2
|
export declare enum Focus {
|
|
2
3
|
/** Focus the first non-disabled element */
|
|
3
4
|
First = 1,
|
|
@@ -35,7 +36,7 @@ export declare enum FocusableMode {
|
|
|
35
36
|
export declare function isFocusableElement(element: HTMLElement, mode?: FocusableMode): boolean;
|
|
36
37
|
export declare function restoreFocusIfNecessary(element: HTMLElement | null): void;
|
|
37
38
|
export declare function focusElement(element: HTMLElement | null): void;
|
|
38
|
-
export declare function sortByDomNode<T>(nodes: T[], resolveKey?: (item: T) => HTMLElement | null
|
|
39
|
+
export declare function sortByDomNode<T>(nodes: T[], resolveKey?: (item: T) => HTMLElement | null): T[];
|
|
39
40
|
export declare function focusFrom(current: HTMLElement | null, focus: Focus): FocusResult;
|
|
40
41
|
export declare function focusIn(container: HTMLElement | HTMLElement[], focus: Focus, { sorted, relativeTo, skipElements, }?: Partial<{
|
|
41
42
|
sorted: boolean;
|