@pzerelles/headlessui-svelte 2.1.2-next.4 → 2.1.2-next.40
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 +15 -18
- package/dist/button/Button.svelte.d.ts +8 -36
- package/dist/button/index.d.ts +1 -1
- package/dist/button/index.js +1 -1
- package/dist/checkbox/Checkbox.svelte +30 -26
- package/dist/checkbox/Checkbox.svelte.d.ts +17 -38
- package/dist/checkbox/index.d.ts +1 -1
- package/dist/checkbox/index.js +1 -1
- package/dist/close-button/CloseButton.svelte +4 -7
- package/dist/close-button/CloseButton.svelte.d.ts +3 -46
- package/dist/close-button/index.d.ts +1 -0
- package/dist/close-button/index.js +1 -0
- package/dist/data-interactive/DataInteractive.svelte +6 -22
- package/dist/data-interactive/DataInteractive.svelte.d.ts +9 -34
- package/dist/data-interactive/index.d.ts +1 -1
- package/dist/data-interactive/index.js +1 -1
- package/dist/description/Description.svelte +28 -23
- package/dist/description/Description.svelte.d.ts +9 -30
- package/dist/description/context.svelte.js +14 -16
- package/dist/description/index.d.ts +1 -1
- package/dist/dialog/Dialog.svelte +315 -31
- package/dist/dialog/Dialog.svelte.d.ts +7 -45
- package/dist/dialog/DialogBackdrop.svelte +11 -14
- package/dist/dialog/DialogBackdrop.svelte.d.ts +8 -33
- package/dist/dialog/DialogPanel.svelte +23 -19
- package/dist/dialog/DialogPanel.svelte.d.ts +8 -34
- package/dist/dialog/DialogTitle.svelte +17 -8
- package/dist/dialog/DialogTitle.svelte.d.ts +9 -30
- package/dist/dialog/context.svelte.js +2 -2
- package/dist/dialog/index.d.ts +4 -4
- package/dist/dialog/index.js +4 -4
- package/dist/field/Field.svelte +27 -26
- package/dist/field/Field.svelte.d.ts +7 -34
- package/dist/field/index.d.ts +1 -1
- package/dist/fieldset/Fieldset.svelte +14 -20
- package/dist/fieldset/Fieldset.svelte.d.ts +8 -35
- package/dist/fieldset/index.d.ts +1 -1
- package/dist/focus-trap/FocusTrap.svelte +30 -54
- package/dist/focus-trap/FocusTrap.svelte.d.ts +10 -52
- package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
- package/dist/focus-trap/FocusTrapFeatures.js +15 -0
- package/dist/hooks/use-controllable.svelte.js +2 -1
- package/dist/hooks/use-did-element-move.svelte.js +5 -10
- package/dist/hooks/use-disabled.d.ts +6 -1
- package/dist/hooks/use-disabled.js +10 -5
- package/dist/hooks/use-event-listener.svelte.d.ts +1 -1
- package/dist/hooks/use-event-listener.svelte.js +3 -1
- package/dist/hooks/use-inert-others.svelte.js +10 -10
- package/dist/hooks/use-resolve-button-type.svelte.js +0 -1
- package/dist/hooks/use-root-containers.svelte.d.ts +2 -2
- package/dist/hooks/use-root-containers.svelte.js +5 -5
- package/dist/hooks/use-tab-direction.svelte.js +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.js +5 -2
- package/dist/input/Input.svelte +28 -21
- package/dist/input/Input.svelte.d.ts +16 -33
- package/dist/input/index.d.ts +1 -1
- package/dist/input/index.js +1 -1
- package/dist/internal/FloatingProvider.svelte +17 -0
- package/dist/internal/FloatingProvider.svelte.d.ts +8 -0
- package/dist/internal/FocusSentinel.svelte +33 -32
- package/dist/internal/FocusSentinel.svelte.d.ts +4 -18
- package/dist/internal/ForcePortalRoot.svelte.d.ts +4 -18
- package/dist/internal/FormFields.svelte +18 -13
- package/dist/internal/FormFields.svelte.d.ts +4 -18
- package/dist/internal/FormFieldsProvider.svelte +17 -0
- package/dist/internal/FormFieldsProvider.svelte.d.ts +7 -0
- package/dist/internal/FormResolver.svelte +6 -2
- package/dist/internal/FormResolver.svelte.d.ts +4 -18
- package/dist/internal/Hidden.svelte +10 -10
- package/dist/internal/Hidden.svelte.d.ts +6 -33
- package/dist/internal/MainTreeProvider.svelte +1 -1
- package/dist/internal/MainTreeProvider.svelte.d.ts +4 -18
- package/dist/internal/Portal.svelte.d.ts +4 -18
- package/dist/internal/floating-provider.svelte.d.ts +3 -0
- package/dist/internal/floating-provider.svelte.js +206 -0
- package/dist/internal/floating.svelte.d.ts +46 -22
- package/dist/internal/floating.svelte.js +90 -272
- package/dist/internal/form-fields.svelte.d.ts +10 -0
- package/dist/internal/form-fields.svelte.js +23 -0
- package/dist/label/Label.svelte +17 -13
- package/dist/label/Label.svelte.d.ts +8 -33
- package/dist/label/context.svelte.js +1 -1
- package/dist/label/index.d.ts +1 -1
- package/dist/legend/Legend.svelte +21 -15
- package/dist/legend/Legend.svelte.d.ts +9 -34
- package/dist/listbox/Listbox.svelte +79 -163
- package/dist/listbox/Listbox.svelte.d.ts +16 -101
- package/dist/listbox/ListboxButton.svelte +24 -29
- package/dist/listbox/ListboxButton.svelte.d.ts +8 -38
- package/dist/listbox/ListboxOption.svelte +33 -27
- package/dist/listbox/ListboxOption.svelte.d.ts +16 -32
- package/dist/listbox/ListboxOptions.svelte +126 -73
- package/dist/listbox/ListboxOptions.svelte.d.ts +8 -43
- package/dist/listbox/ListboxSelectedOption.svelte +24 -26
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +14 -39
- package/dist/listbox/context.svelte.d.ts +76 -0
- package/dist/listbox/context.svelte.js +36 -0
- package/dist/listbox/index.d.ts +5 -5
- package/dist/listbox/index.js +4 -4
- package/dist/menu/Menu.svelte +22 -266
- package/dist/menu/Menu.svelte.d.ts +7 -37
- package/dist/menu/MenuButton.svelte +22 -24
- package/dist/menu/MenuButton.svelte.d.ts +8 -39
- package/dist/menu/MenuHeading.svelte +12 -16
- package/dist/menu/MenuHeading.svelte.d.ts +7 -36
- package/dist/menu/MenuItem.svelte +18 -23
- package/dist/menu/MenuItem.svelte.d.ts +9 -39
- package/dist/menu/MenuItems.svelte +33 -34
- package/dist/menu/MenuItems.svelte.d.ts +8 -43
- package/dist/menu/MenuSection.svelte +9 -12
- package/dist/menu/MenuSection.svelte.d.ts +7 -33
- package/dist/menu/MenuSeparator.svelte +9 -12
- package/dist/menu/MenuSeparator.svelte.d.ts +7 -33
- package/dist/menu/context.svelte.d.ts +2 -1
- package/dist/menu/context.svelte.js +212 -2
- package/dist/menu/index.d.ts +7 -7
- package/dist/menu/index.js +3 -3
- package/dist/popover/Popover.svelte +225 -0
- package/dist/popover/Popover.svelte.d.ts +15 -0
- package/dist/popover/PopoverBackdrop.svelte +83 -0
- package/dist/popover/PopoverBackdrop.svelte.d.ts +17 -0
- package/dist/popover/PopoverButton.svelte +324 -0
- package/dist/popover/PopoverButton.svelte.d.ts +21 -0
- package/dist/popover/PopoverGroup.svelte +66 -0
- package/dist/popover/PopoverGroup.svelte.d.ts +9 -0
- package/dist/popover/PopoverPanel.svelte +359 -0
- package/dist/popover/PopoverPanel.svelte.d.ts +22 -0
- package/dist/popover/context.svelte.d.ts +51 -0
- package/dist/popover/context.svelte.js +108 -0
- package/dist/popover/index.d.ts +5 -0
- package/dist/popover/index.js +5 -0
- package/dist/portal/InternalPortal.svelte +17 -17
- package/dist/portal/InternalPortal.svelte.d.ts +6 -33
- package/dist/portal/Portal.svelte +7 -6
- package/dist/portal/Portal.svelte.d.ts +3 -22
- package/dist/portal/PortalGroup.svelte +6 -14
- package/dist/portal/PortalGroup.svelte.d.ts +5 -34
- package/dist/radio-group/Radio.svelte +135 -0
- package/dist/radio-group/Radio.svelte.d.ts +35 -0
- package/dist/radio-group/RadioGroup.svelte +223 -0
- package/dist/radio-group/RadioGroup.svelte.d.ts +34 -0
- package/dist/radio-group/RadioOption.svelte +138 -0
- package/dist/radio-group/RadioOption.svelte.d.ts +37 -0
- package/dist/radio-group/contest.svelte.d.ts +30 -0
- package/dist/radio-group/contest.svelte.js +40 -0
- package/dist/radio-group/index.d.ts +3 -0
- package/dist/radio-group/index.js +3 -0
- package/dist/select/Select.svelte +103 -0
- package/dist/select/Select.svelte.d.ts +21 -0
- package/dist/select/index.d.ts +1 -0
- package/dist/select/index.js +1 -0
- package/dist/switch/Switch.svelte +27 -28
- package/dist/switch/Switch.svelte.d.ts +9 -42
- package/dist/switch/SwitchGroup.svelte +5 -5
- package/dist/switch/SwitchGroup.svelte.d.ts +8 -30
- package/dist/switch/index.d.ts +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/tabs/Tab.svelte +26 -29
- package/dist/tabs/Tab.svelte.d.ts +8 -36
- package/dist/tabs/TabGroup.svelte +42 -264
- package/dist/tabs/TabGroup.svelte.d.ts +7 -57
- package/dist/tabs/TabList.svelte +13 -16
- package/dist/tabs/TabList.svelte.d.ts +8 -31
- package/dist/tabs/TabPanel.svelte +19 -19
- package/dist/tabs/TabPanel.svelte.d.ts +8 -38
- package/dist/tabs/TabPanels.svelte +11 -9
- package/dist/tabs/TabPanels.svelte.d.ts +8 -30
- package/dist/tabs/context.svelte.d.ts +31 -0
- package/dist/tabs/context.svelte.js +134 -0
- package/dist/tabs/index.d.ts +5 -5
- package/dist/tabs/index.js +4 -4
- package/dist/textarea/Textarea.svelte +23 -19
- package/dist/textarea/Textarea.svelte.d.ts +18 -30
- package/dist/textarea/index.d.ts +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/transition/InternalTransitionChild.svelte +19 -12
- package/dist/transition/InternalTransitionChild.svelte.d.ts +4 -35
- package/dist/transition/Transition.svelte +16 -17
- package/dist/transition/Transition.svelte.d.ts +8 -38
- package/dist/transition/TransitionChild.svelte +13 -12
- package/dist/transition/TransitionChild.svelte.d.ts +11 -38
- package/dist/transition/context.svelte.js +9 -9
- package/dist/transition/index.d.ts +2 -2
- package/dist/transition/index.js +2 -2
- package/dist/utils/DisabledProvider.svelte +10 -0
- package/dist/utils/DisabledProvider.svelte.d.ts +8 -0
- package/dist/utils/ElementOrComponent.svelte +57 -14
- package/dist/utils/ElementOrComponent.svelte.d.ts +19 -29
- package/dist/utils/StableCollection.svelte.d.ts +4 -18
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +32 -0
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte.d.ts +8 -0
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +94 -0
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte.d.ts +26 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.d.ts +6 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.js +158 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.d.ts +11 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.js +53 -0
- package/dist/utils/floating-ui/svelte/hooks/useId.svelte.d.ts +9 -0
- package/dist/utils/floating-ui/svelte/hooks/useId.svelte.js +28 -0
- package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.d.ts +23 -0
- package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.js +72 -0
- package/dist/utils/floating-ui/svelte/index.d.ts +5 -0
- package/dist/utils/floating-ui/svelte/index.js +5 -0
- package/dist/utils/floating-ui/svelte/inner.svelte.d.ts +83 -0
- package/dist/utils/floating-ui/svelte/inner.svelte.js +178 -0
- package/dist/utils/floating-ui/svelte/types.d.ts +114 -0
- package/dist/utils/floating-ui/svelte/utils/createPubSub.d.ts +5 -0
- package/dist/utils/floating-ui/svelte/utils/createPubSub.js +14 -0
- package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.d.ts +2 -0
- package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.js +13 -0
- package/dist/utils/floating-ui/svelte/utils/log.d.ts +2 -0
- package/dist/utils/floating-ui/svelte/utils/log.js +19 -0
- package/dist/utils/floating-ui/svelte/utils.d.ts +19 -0
- package/dist/utils/floating-ui/svelte/utils.js +136 -0
- package/dist/utils/floating-ui/svelte-dom/arrow.d.ts +22 -0
- package/dist/utils/floating-ui/svelte-dom/arrow.js +29 -0
- package/dist/utils/floating-ui/svelte-dom/index.d.ts +2 -0
- package/dist/utils/floating-ui/svelte-dom/index.js +2 -0
- package/dist/utils/floating-ui/svelte-dom/types.d.ts +80 -0
- package/dist/utils/floating-ui/svelte-dom/types.js +3 -0
- package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.d.ts +6 -0
- package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.js +182 -0
- package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.d.ts +1 -0
- package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.js +50 -0
- package/dist/utils/floating-ui/svelte-dom/utils/getDPR.d.ts +1 -0
- package/dist/utils/floating-ui/svelte-dom/utils/getDPR.js +7 -0
- package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.d.ts +1 -0
- package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.js +5 -0
- package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.d.ts +4 -0
- package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.js +7 -0
- package/dist/utils/id.d.ts +1 -1
- package/dist/utils/id.js +1 -1
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/state.js +4 -4
- package/dist/utils/style.d.ts +2 -0
- package/dist/utils/style.js +6 -0
- package/dist/utils/types.d.ts +12 -18
- package/package.json +33 -32
- package/dist/combobox/Combobox.svelte +0 -53
- package/dist/combobox/Combobox.svelte.d.ts +0 -50
- package/dist/dialog/InternalDialog.svelte +0 -294
- package/dist/dialog/InternalDialog.svelte.d.ts +0 -42
- package/dist/internal/HoistFormFields.svelte +0 -14
- package/dist/internal/HoistFormFields.svelte.d.ts +0 -21
- package/dist/internal/id.d.ts +0 -8
- package/dist/internal/id.js +0 -11
- package/dist/utils/Generic.svelte +0 -56
- package/dist/utils/Generic.svelte.d.ts +0 -35
- package/dist/utils/alternative-types.d.ts +0 -21
- /package/dist/utils/{alternative-types.js → floating-ui/svelte/types.js} +0 -0
|
@@ -1,58 +1,16 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
|
+
import { FocusTrapFeatures } from "./FocusTrapFeatures.js";
|
|
2
3
|
type Containers = (() => Iterable<HTMLElement>) | Iterable<HTMLElement>;
|
|
3
|
-
declare
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
/** Ensure that we move focus initially into the container. */
|
|
8
|
-
InitialFocus = 1,
|
|
9
|
-
/** Ensure that pressing `Tab` and `Shift+Tab` is trapped within the container. */
|
|
10
|
-
TabLock = 2,
|
|
11
|
-
/** Ensure that programmatically moving focus outside of the container is disallowed. */
|
|
12
|
-
FocusLock = 4,
|
|
13
|
-
/** Ensure that we restore the focus when unmounting the focus trap. */
|
|
14
|
-
RestoreFocus = 8,
|
|
15
|
-
/** Initial focus should look for the `data-autofocus` */
|
|
16
|
-
AutoFocus = 16
|
|
17
|
-
}
|
|
18
|
-
type FocusTrapRenderPropArg = {};
|
|
19
|
-
type FocusTrapPropsWeControl = never;
|
|
20
|
-
export type FocusTrapProps<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG> = Props<TTag, FocusTrapRenderPropArg, FocusTrapPropsWeControl, {
|
|
4
|
+
declare const DEFAULT_FOCUS_TRAP_TAG: "div";
|
|
5
|
+
export * from "./FocusTrapFeatures.js";
|
|
6
|
+
export type FocusTrapOwnProps = {
|
|
7
|
+
element?: HTMLElement;
|
|
21
8
|
initialFocus?: HTMLElement;
|
|
22
9
|
initialFocusFallback?: HTMLElement;
|
|
23
10
|
features?: FocusTrapFeatures;
|
|
24
11
|
containers?: Containers;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "features" | "containers" | "initialFocus" | "initialFocusFallback"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
30
|
-
children?: import("../utils/types.js").Children<FocusTrapRenderPropArg> | undefined;
|
|
31
|
-
ref?: HTMLElement;
|
|
32
|
-
} & (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) ? {
|
|
33
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: FocusTrapRenderPropArg) => string) | undefined;
|
|
34
|
-
} : {}) & {
|
|
35
|
-
initialFocus?: HTMLElement;
|
|
36
|
-
initialFocusFallback?: HTMLElement;
|
|
37
|
-
features?: FocusTrapFeatures;
|
|
38
|
-
containers?: Containers;
|
|
39
|
-
};
|
|
40
|
-
events(): {} & {
|
|
41
|
-
[evt: string]: CustomEvent<any>;
|
|
42
|
-
};
|
|
43
|
-
slots(): {};
|
|
44
|
-
bindings(): "ref";
|
|
45
|
-
exports(): {};
|
|
46
|
-
}
|
|
47
|
-
interface $$IsomorphicComponent {
|
|
48
|
-
new <TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_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']>> & {
|
|
49
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
50
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
51
|
-
<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
52
|
-
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
53
|
-
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
54
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
55
|
-
}
|
|
56
|
-
declare const FocusTrap: $$IsomorphicComponent;
|
|
57
|
-
type FocusTrap<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG> = InstanceType<typeof FocusTrap<TTag>>;
|
|
12
|
+
};
|
|
13
|
+
export type FocusTrapProps = Props<typeof DEFAULT_FOCUS_TRAP_TAG, {}, FocusTrapOwnProps>;
|
|
14
|
+
declare const FocusTrap: import("svelte").Component<FocusTrapProps, {}, "element">;
|
|
15
|
+
type FocusTrap = ReturnType<typeof FocusTrap>;
|
|
58
16
|
export default FocusTrap;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum FocusTrapFeatures {
|
|
2
|
+
/** No features enabled for the focus trap. */
|
|
3
|
+
None = 0,
|
|
4
|
+
/** Ensure that we move focus initially into the container. */
|
|
5
|
+
InitialFocus = 1,
|
|
6
|
+
/** Ensure that pressing `Tab` and `Shift+Tab` is trapped within the container. */
|
|
7
|
+
TabLock = 2,
|
|
8
|
+
/** Ensure that programmatically moving focus outside of the container is disallowed. */
|
|
9
|
+
FocusLock = 4,
|
|
10
|
+
/** Ensure that we restore the focus when unmounting the focus trap. */
|
|
11
|
+
RestoreFocus = 8,
|
|
12
|
+
/** Initial focus should look for the `data-autofocus` */
|
|
13
|
+
AutoFocus = 16
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export var FocusTrapFeatures;
|
|
2
|
+
(function (FocusTrapFeatures) {
|
|
3
|
+
/** No features enabled for the focus trap. */
|
|
4
|
+
FocusTrapFeatures[FocusTrapFeatures["None"] = 0] = "None";
|
|
5
|
+
/** Ensure that we move focus initially into the container. */
|
|
6
|
+
FocusTrapFeatures[FocusTrapFeatures["InitialFocus"] = 1] = "InitialFocus";
|
|
7
|
+
/** Ensure that pressing `Tab` and `Shift+Tab` is trapped within the container. */
|
|
8
|
+
FocusTrapFeatures[FocusTrapFeatures["TabLock"] = 2] = "TabLock";
|
|
9
|
+
/** Ensure that programmatically moving focus outside of the container is disallowed. */
|
|
10
|
+
FocusTrapFeatures[FocusTrapFeatures["FocusLock"] = 4] = "FocusLock";
|
|
11
|
+
/** Ensure that we restore the focus when unmounting the focus trap. */
|
|
12
|
+
FocusTrapFeatures[FocusTrapFeatures["RestoreFocus"] = 8] = "RestoreFocus";
|
|
13
|
+
/** Initial focus should look for the `data-autofocus` */
|
|
14
|
+
FocusTrapFeatures[FocusTrapFeatures["AutoFocus"] = 16] = "AutoFocus";
|
|
15
|
+
})(FocusTrapFeatures || (FocusTrapFeatures = {}));
|
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
export function useDidElementMove(options) {
|
|
2
2
|
const { enabled, element } = $derived(options);
|
|
3
|
-
let elementPosition = $state(
|
|
3
|
+
let elementPosition = $state();
|
|
4
4
|
$effect(() => {
|
|
5
5
|
if (!element)
|
|
6
6
|
return;
|
|
7
|
-
|
|
7
|
+
const DOMRect = element.getBoundingClientRect();
|
|
8
8
|
if (DOMRect)
|
|
9
9
|
elementPosition = DOMRect;
|
|
10
10
|
});
|
|
11
11
|
const value = $derived.by(() => {
|
|
12
|
-
if (element == null)
|
|
12
|
+
if (element == null || !enabled || element === document.activeElement || elementPosition === undefined)
|
|
13
13
|
return false;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (element === document.activeElement)
|
|
17
|
-
return false;
|
|
18
|
-
let buttonRect = element.getBoundingClientRect();
|
|
19
|
-
let didElementMove = buttonRect.top !== elementPosition.top || buttonRect.left !== elementPosition.left;
|
|
20
|
-
return didElementMove;
|
|
14
|
+
const buttonRect = element.getBoundingClientRect();
|
|
15
|
+
return buttonRect.top !== elementPosition.top || buttonRect.left !== elementPosition.left;
|
|
21
16
|
});
|
|
22
17
|
return {
|
|
23
18
|
get value() {
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { getContext } from "svelte";
|
|
1
|
+
import { getContext, setContext } from "svelte";
|
|
2
2
|
export const useDisabled = () => {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
return getContext("DisabledContext") ?? { current: false };
|
|
4
|
+
};
|
|
5
|
+
export const provideDisabled = (disabled, options) => {
|
|
6
|
+
const parentDisabled = options?.ignoreParent ? { current: false } : useDisabled();
|
|
7
|
+
const context = {
|
|
8
|
+
get current() {
|
|
9
|
+
return disabled() || parentDisabled.current;
|
|
7
10
|
},
|
|
8
11
|
};
|
|
12
|
+
setContext("DisabledContext", context);
|
|
13
|
+
return context;
|
|
9
14
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare function useEventListener<TType extends keyof WindowEventMap>(params: {
|
|
2
2
|
element: HTMLElement | Document | Window | EventTarget | null | undefined;
|
|
3
3
|
type: TType;
|
|
4
|
-
listener: (event: WindowEventMap[TType]) =>
|
|
4
|
+
listener: (event: WindowEventMap[TType]) => unknown;
|
|
5
5
|
options?: boolean | AddEventListenerOptions;
|
|
6
6
|
}): void;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export function useEventListener(params) {
|
|
2
|
-
|
|
2
|
+
if (typeof window === "undefined")
|
|
3
|
+
return;
|
|
4
|
+
const { element = window, type, listener, options } = $derived(params);
|
|
3
5
|
$effect(() => {
|
|
4
6
|
if (!element)
|
|
5
7
|
return;
|
|
@@ -5,7 +5,7 @@ const originals = new Map();
|
|
|
5
5
|
const counts = new Map();
|
|
6
6
|
function markInert(element) {
|
|
7
7
|
// Increase count
|
|
8
|
-
|
|
8
|
+
const count = counts.get(element) ?? 0;
|
|
9
9
|
counts.set(element, count + 1);
|
|
10
10
|
// Already marked as inert, no need to do it again
|
|
11
11
|
if (count !== 0)
|
|
@@ -22,7 +22,7 @@ function markInert(element) {
|
|
|
22
22
|
}
|
|
23
23
|
function markNotInert(element) {
|
|
24
24
|
// Decrease counts
|
|
25
|
-
|
|
25
|
+
const count = counts.get(element) ?? 1; // Should always exist
|
|
26
26
|
if (count === 1)
|
|
27
27
|
counts.delete(element); // We are the last one, so we can delete the count
|
|
28
28
|
else
|
|
@@ -30,7 +30,7 @@ function markNotInert(element) {
|
|
|
30
30
|
// Not the last one, so we don't restore the original values (yet)
|
|
31
31
|
if (count !== 1)
|
|
32
32
|
return;
|
|
33
|
-
|
|
33
|
+
const original = originals.get(element);
|
|
34
34
|
if (!original)
|
|
35
35
|
return; // Should never happen
|
|
36
36
|
// Restore original values
|
|
@@ -70,7 +70,7 @@ function markNotInert(element) {
|
|
|
70
70
|
export function useInertOthers(options) {
|
|
71
71
|
const { enabled, elements } = $derived(options);
|
|
72
72
|
const { allowed, disallowed } = $derived(elements ?? {});
|
|
73
|
-
|
|
73
|
+
const isTopLayer = useIsTopLayer({
|
|
74
74
|
get enabled() {
|
|
75
75
|
return enabled;
|
|
76
76
|
},
|
|
@@ -79,25 +79,25 @@ export function useInertOthers(options) {
|
|
|
79
79
|
$effect(() => {
|
|
80
80
|
if (!isTopLayer.value)
|
|
81
81
|
return;
|
|
82
|
-
|
|
82
|
+
const d = disposables();
|
|
83
83
|
// Mark all disallowed elements as inert
|
|
84
|
-
for (
|
|
84
|
+
for (const element of disallowed ?? []) {
|
|
85
85
|
if (!element)
|
|
86
86
|
continue;
|
|
87
87
|
d.add(markInert(element));
|
|
88
88
|
}
|
|
89
89
|
// Mark all siblings of allowed elements (and parents) as inert
|
|
90
|
-
|
|
91
|
-
for (
|
|
90
|
+
const allowedElements = allowed ?? [];
|
|
91
|
+
for (const element of allowedElements) {
|
|
92
92
|
if (!element)
|
|
93
93
|
continue;
|
|
94
|
-
|
|
94
|
+
const ownerDocument = getOwnerDocument(element);
|
|
95
95
|
if (!ownerDocument)
|
|
96
96
|
continue;
|
|
97
97
|
let parent = element.parentElement;
|
|
98
98
|
while (parent && parent !== ownerDocument.body) {
|
|
99
99
|
// Mark all siblings as inert
|
|
100
|
-
for (
|
|
100
|
+
for (const node of parent.children) {
|
|
101
101
|
// If the node contains any of the elements we should not mark it as inert
|
|
102
102
|
// because it would make the elements unreachable.
|
|
103
103
|
if (node.tagName.toLowerCase() === "svelte:fragment" || allowedElements.some((el) => node.contains(el)))
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export { default as MainTreeProvider, useMainTreeNode } from "../internal/MainTreeProvider.svelte";
|
|
2
2
|
export declare function useRootContainers(options?: {
|
|
3
|
-
defaultContainers?: (HTMLElement | null)[];
|
|
3
|
+
defaultContainers?: (HTMLElement | undefined | null)[];
|
|
4
4
|
portals?: HTMLElement[];
|
|
5
|
-
mainTreeNode?: HTMLElement | null;
|
|
5
|
+
mainTreeNode?: HTMLElement | undefined | null;
|
|
6
6
|
}): {
|
|
7
7
|
readonly resolvedContainers: HTMLElement[];
|
|
8
8
|
contains: (element: HTMLElement) => boolean;
|
|
@@ -6,21 +6,21 @@ export function useRootContainers(options = {}) {
|
|
|
6
6
|
mainTreeNode, } = $derived(options);
|
|
7
7
|
const ownerDocument = $derived(getOwnerDocument(mainTreeNode));
|
|
8
8
|
const resolvedContainers = $derived.by(() => {
|
|
9
|
-
|
|
9
|
+
const containers = [];
|
|
10
10
|
// Resolve default containers
|
|
11
|
-
for (
|
|
12
|
-
if (container
|
|
11
|
+
for (const container of defaultContainers) {
|
|
12
|
+
if (!container)
|
|
13
13
|
continue;
|
|
14
14
|
containers.push(container);
|
|
15
15
|
}
|
|
16
16
|
// Resolve portal containers
|
|
17
17
|
if (portals) {
|
|
18
|
-
for (
|
|
18
|
+
for (const portal of portals) {
|
|
19
19
|
containers.push(portal);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
// Resolve third party (root) containers
|
|
23
|
-
for (
|
|
23
|
+
for (const container of ownerDocument?.querySelectorAll("html > *, body > *") ?? []) {
|
|
24
24
|
if (container === document.body)
|
|
25
25
|
continue; // Skip `<body>`
|
|
26
26
|
if (container === document.head)
|
package/dist/index.d.ts
CHANGED
|
@@ -11,10 +11,13 @@ export * from "./label/index.js";
|
|
|
11
11
|
export * from "./legend/index.js";
|
|
12
12
|
export * from "./listbox/index.js";
|
|
13
13
|
export * from "./menu/index.js";
|
|
14
|
+
export * from "./popover/index.js";
|
|
15
|
+
export * from "./radio-group/index.js";
|
|
16
|
+
export * from "./select/index.js";
|
|
14
17
|
export * from "./switch/index.js";
|
|
15
18
|
export * from "./tabs/index.js";
|
|
16
19
|
export * from "./textarea/index.js";
|
|
17
20
|
export * from "./transition/index.js";
|
|
21
|
+
export * from "./utils/index.js";
|
|
18
22
|
export * from "./hooks/use-id.js";
|
|
19
|
-
export * from "./
|
|
20
|
-
export { mergeProps } from "./utils/render.js";
|
|
23
|
+
export * from "./hooks/use-disabled.js";
|
package/dist/index.js
CHANGED
|
@@ -11,10 +11,13 @@ export * from "./label/index.js";
|
|
|
11
11
|
export * from "./legend/index.js";
|
|
12
12
|
export * from "./listbox/index.js";
|
|
13
13
|
export * from "./menu/index.js";
|
|
14
|
+
export * from "./popover/index.js";
|
|
15
|
+
export * from "./radio-group/index.js";
|
|
16
|
+
export * from "./select/index.js";
|
|
14
17
|
export * from "./switch/index.js";
|
|
15
18
|
export * from "./tabs/index.js";
|
|
16
19
|
export * from "./textarea/index.js";
|
|
17
20
|
export * from "./transition/index.js";
|
|
21
|
+
export * from "./utils/index.js";
|
|
18
22
|
export * from "./hooks/use-id.js";
|
|
19
|
-
export * from "./
|
|
20
|
-
export { mergeProps } from "./utils/render.js";
|
|
23
|
+
export * from "./hooks/use-disabled.js";
|
package/dist/input/Input.svelte
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
|
+
import type { SvelteHTMLElements } from "svelte/elements"
|
|
3
4
|
|
|
4
5
|
const DEFAULT_INPUT_TAG = "input" as const
|
|
5
6
|
|
|
6
|
-
type InputRenderPropArg = {
|
|
7
|
+
export type InputRenderPropArg = {
|
|
7
8
|
disabled: boolean
|
|
8
9
|
hover: boolean
|
|
9
10
|
focus: boolean
|
|
@@ -12,24 +13,22 @@
|
|
|
12
13
|
}
|
|
13
14
|
type InputPropsWeControl = "aria-labelledby" | "aria-describedby"
|
|
14
15
|
|
|
15
|
-
export type
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
>
|
|
16
|
+
export type InputOwnProps<TValue = string> = {
|
|
17
|
+
element?: HTMLElement
|
|
18
|
+
id?: string
|
|
19
|
+
value?: TValue
|
|
20
|
+
disabled?: boolean
|
|
21
|
+
invalid?: boolean
|
|
22
|
+
autofocus?: boolean
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type InputProps<TValue = string> = Props<typeof DEFAULT_INPUT_TAG, InputRenderPropArg, InputOwnProps<TValue>>
|
|
27
26
|
</script>
|
|
28
27
|
|
|
29
|
-
<script lang="ts" generics="
|
|
28
|
+
<script lang="ts" generics="TValue = string">
|
|
30
29
|
import { htmlid } from "../utils/id.js"
|
|
31
30
|
import { useDisabled } from "../hooks/use-disabled.js"
|
|
32
|
-
import { useProvidedId } from "../
|
|
31
|
+
import { useProvidedId } from "../utils/id.js"
|
|
33
32
|
import { useLabelledBy } from "../label/context.svelte.js"
|
|
34
33
|
import { useDescribedBy } from "../description/context.svelte.js"
|
|
35
34
|
import { useHover } from "../hooks/use-hover.svelte.js"
|
|
@@ -42,15 +41,15 @@
|
|
|
42
41
|
const providedDisabled = useDisabled()
|
|
43
42
|
|
|
44
43
|
let {
|
|
45
|
-
|
|
44
|
+
element = $bindable(),
|
|
46
45
|
value = $bindable(),
|
|
47
|
-
id = providedId
|
|
46
|
+
id = providedId || `headlessui-input-${internalId}`,
|
|
48
47
|
disabled: theirDisabled = false,
|
|
49
48
|
autofocus = false,
|
|
50
49
|
invalid = false,
|
|
51
50
|
...theirProps
|
|
52
|
-
}:
|
|
53
|
-
const disabled = $derived(providedDisabled
|
|
51
|
+
}: InputProps<TValue> = $props()
|
|
52
|
+
const disabled = $derived(providedDisabled.current || theirDisabled)
|
|
54
53
|
|
|
55
54
|
const labelledBy = useLabelledBy()
|
|
56
55
|
const describedBy = useDescribedBy()
|
|
@@ -88,4 +87,12 @@
|
|
|
88
87
|
const slot = $derived({ disabled, invalid, hover, focus, autofocus } satisfies InputRenderPropArg)
|
|
89
88
|
</script>
|
|
90
89
|
|
|
91
|
-
<ElementOrComponent
|
|
90
|
+
<ElementOrComponent
|
|
91
|
+
{ourProps}
|
|
92
|
+
{theirProps}
|
|
93
|
+
{slot}
|
|
94
|
+
defaultTag={DEFAULT_INPUT_TAG}
|
|
95
|
+
name="Input"
|
|
96
|
+
bind:element
|
|
97
|
+
bind:value
|
|
98
|
+
/>
|
|
@@ -1,52 +1,35 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare const DEFAULT_INPUT_TAG: "input";
|
|
3
|
-
type InputRenderPropArg = {
|
|
3
|
+
export type InputRenderPropArg = {
|
|
4
4
|
disabled: boolean;
|
|
5
5
|
hover: boolean;
|
|
6
6
|
focus: boolean;
|
|
7
7
|
autofocus: boolean;
|
|
8
8
|
invalid: boolean;
|
|
9
9
|
};
|
|
10
|
-
type
|
|
11
|
-
|
|
10
|
+
export type InputOwnProps<TValue = string> = {
|
|
11
|
+
element?: HTMLElement;
|
|
12
12
|
id?: string;
|
|
13
13
|
value?: TValue;
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
invalid?: boolean;
|
|
16
16
|
autofocus?: boolean;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "invalid" | "disabled" | "autofocus" | "value" | "id" | InputPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
23
|
-
children?: import("../utils/types.js").Children<InputRenderPropArg> | undefined;
|
|
24
|
-
ref?: HTMLElement;
|
|
25
|
-
} & (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) ? {
|
|
26
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: InputRenderPropArg) => string) | undefined;
|
|
27
|
-
} : {}) & {
|
|
28
|
-
id?: string;
|
|
29
|
-
value?: TValue | undefined;
|
|
30
|
-
disabled?: boolean;
|
|
31
|
-
invalid?: boolean;
|
|
32
|
-
autofocus?: boolean;
|
|
33
|
-
};
|
|
34
|
-
events(): {} & {
|
|
35
|
-
[evt: string]: CustomEvent<any>;
|
|
36
|
-
};
|
|
17
|
+
};
|
|
18
|
+
export type InputProps<TValue = string> = Props<typeof DEFAULT_INPUT_TAG, InputRenderPropArg, InputOwnProps<TValue>>;
|
|
19
|
+
declare class __sveltets_Render<TValue = string> {
|
|
20
|
+
props(): InputProps<TValue>;
|
|
21
|
+
events(): {};
|
|
37
22
|
slots(): {};
|
|
38
|
-
bindings(): "
|
|
23
|
+
bindings(): "element" | "value";
|
|
39
24
|
exports(): {};
|
|
40
25
|
}
|
|
41
26
|
interface $$IsomorphicComponent {
|
|
42
|
-
new <
|
|
43
|
-
$$bindings?: ReturnType<__sveltets_Render<
|
|
44
|
-
} & ReturnType<__sveltets_Render<
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
}): ReturnType<__sveltets_Render<TTag, TValue>['exports']>;
|
|
48
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
|
|
27
|
+
new <TValue = string>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TValue>['props']>, ReturnType<__sveltets_Render<TValue>['events']>, ReturnType<__sveltets_Render<TValue>['slots']>> & {
|
|
28
|
+
$$bindings?: ReturnType<__sveltets_Render<TValue>['bindings']>;
|
|
29
|
+
} & ReturnType<__sveltets_Render<TValue>['exports']>;
|
|
30
|
+
<TValue = string>(internal: unknown, props: ReturnType<__sveltets_Render<TValue>['props']> & {}): ReturnType<__sveltets_Render<TValue>['exports']>;
|
|
31
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
49
32
|
}
|
|
50
33
|
declare const Input: $$IsomorphicComponent;
|
|
51
|
-
type Input<
|
|
34
|
+
type Input<TValue = string> = InstanceType<typeof Input<TValue>>;
|
|
52
35
|
export default Input;
|
package/dist/input/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as Input, type InputProps } from "./Input.svelte";
|
|
1
|
+
export { default as Input, type InputProps, type InputRenderPropArg as InputSlot, type InputOwnProps, } from "./Input.svelte";
|
package/dist/input/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as Input } from "./Input.svelte";
|
|
1
|
+
export { default as Input, } from "./Input.svelte";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
</script>
|
|
3
|
+
|
|
4
|
+
<script lang="ts">
|
|
5
|
+
import type { Snippet } from "svelte"
|
|
6
|
+
import { useFloatingProvider } from "./floating-provider.svelte.js"
|
|
7
|
+
|
|
8
|
+
const { children, enabled = true }: { children: Snippet; enabled?: boolean } = $props()
|
|
9
|
+
|
|
10
|
+
useFloatingProvider({
|
|
11
|
+
get enabled() {
|
|
12
|
+
return enabled
|
|
13
|
+
},
|
|
14
|
+
})
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
{#if children}{@render children()}{/if}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
children: Snippet;
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
};
|
|
6
|
+
declare const FloatingProvider: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type FloatingProvider = ReturnType<typeof FloatingProvider>;
|
|
8
|
+
export default FloatingProvider;
|
|
@@ -14,40 +14,41 @@
|
|
|
14
14
|
onMount(() => {
|
|
15
15
|
mounted = true
|
|
16
16
|
})
|
|
17
|
-
</script>
|
|
18
17
|
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
cancelAnimationFrame(frame)
|
|
40
|
-
if (!mounted) return
|
|
41
|
-
|
|
42
|
-
enabled = false
|
|
43
|
-
return
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Retry
|
|
47
|
-
frame = requestAnimationFrame(forwardFocus)
|
|
18
|
+
const handleFocus = (event: FocusEvent) => {
|
|
19
|
+
event.preventDefault()
|
|
20
|
+
let frame: ReturnType<typeof requestAnimationFrame>
|
|
21
|
+
|
|
22
|
+
let tries = 50
|
|
23
|
+
function forwardFocus() {
|
|
24
|
+
// Prevent infinite loops
|
|
25
|
+
if (tries-- <= 0) {
|
|
26
|
+
if (frame) cancelAnimationFrame(frame)
|
|
27
|
+
return
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Try to move focus to the correct element. This depends on the implementation
|
|
31
|
+
// of `onFocus` of course since it would be different for each place we use it in.
|
|
32
|
+
if (onfocus?.()) {
|
|
33
|
+
cancelAnimationFrame(frame)
|
|
34
|
+
if (!mounted) return
|
|
35
|
+
|
|
36
|
+
enabled = false
|
|
37
|
+
return
|
|
48
38
|
}
|
|
49
39
|
|
|
40
|
+
// Retry
|
|
50
41
|
frame = requestAnimationFrame(forwardFocus)
|
|
51
|
-
}
|
|
52
|
-
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
frame = requestAnimationFrame(forwardFocus)
|
|
45
|
+
}
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
{#if enabled}
|
|
49
|
+
<Hidden asChild features={HiddenFeatures.Focusable}>
|
|
50
|
+
{#snippet children({ props })}
|
|
51
|
+
<button {...props} type="button" onfocus={handleFocus}>‌</button>
|
|
52
|
+
{/snippet}
|
|
53
|
+
</Hidden>
|
|
53
54
|
{/if}
|
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
interface
|
|
2
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
-
$$bindings?: Bindings;
|
|
4
|
-
} & Exports;
|
|
5
|
-
(internal: unknown, props: Props & {
|
|
6
|
-
$$events?: Events;
|
|
7
|
-
$$slots?: Slots;
|
|
8
|
-
}): Exports & {
|
|
9
|
-
$set?: any;
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
declare const FocusSentinel: $$__sveltets_2_IsomorphicComponent<{
|
|
1
|
+
interface FocusSentinelProps {
|
|
15
2
|
onfocus: () => boolean;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
type FocusSentinel = InstanceType<typeof FocusSentinel>;
|
|
3
|
+
}
|
|
4
|
+
declare const FocusSentinel: import("svelte").Component<FocusSentinelProps, {}, "">;
|
|
5
|
+
type FocusSentinel = ReturnType<typeof FocusSentinel>;
|
|
20
6
|
export default FocusSentinel;
|