@pzerelles/headlessui-svelte 2.1.2-next.32 → 2.1.2-next.34
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 +9 -10
- package/dist/button/Button.svelte.d.ts +5 -32
- package/dist/button/index.d.ts +1 -1
- package/dist/checkbox/Checkbox.svelte +15 -12
- package/dist/checkbox/Checkbox.svelte.d.ts +15 -32
- package/dist/checkbox/index.d.ts +1 -1
- package/dist/close-button/CloseButton.svelte +4 -7
- package/dist/close-button/CloseButton.svelte.d.ts +2 -43
- package/dist/close-button/index.d.ts +1 -0
- package/dist/close-button/index.js +1 -0
- package/dist/data-interactive/DataInteractive.svelte +6 -20
- package/dist/data-interactive/DataInteractive.svelte.d.ts +8 -30
- package/dist/data-interactive/index.d.ts +1 -1
- package/dist/data-interactive/index.js +1 -1
- package/dist/description/Description.svelte +15 -12
- package/dist/description/Description.svelte.d.ts +7 -27
- package/dist/dialog/Dialog.svelte +34 -32
- package/dist/dialog/Dialog.svelte.d.ts +4 -41
- package/dist/dialog/DialogBackdrop.svelte +10 -11
- package/dist/dialog/DialogBackdrop.svelte.d.ts +5 -29
- package/dist/dialog/DialogPanel.svelte +18 -11
- package/dist/dialog/DialogPanel.svelte.d.ts +5 -30
- package/dist/dialog/DialogTitle.svelte +19 -8
- package/dist/dialog/DialogTitle.svelte.d.ts +7 -27
- package/dist/dialog/context.svelte.js +1 -1
- package/dist/dialog/index.d.ts +4 -4
- package/dist/dialog/index.js +3 -3
- package/dist/field/Field.svelte +10 -18
- package/dist/field/Field.svelte.d.ts +4 -30
- package/dist/fieldset/Fieldset.svelte +11 -15
- package/dist/fieldset/Fieldset.svelte.d.ts +5 -31
- package/dist/focus-trap/FocusTrap.svelte +21 -26
- package/dist/focus-trap/FocusTrap.svelte.d.ts +5 -34
- package/dist/hooks/use-inert-others.svelte.js +10 -10
- package/dist/hooks/use-resolve-button-type.svelte.js +0 -1
- package/dist/input/Input.svelte +20 -10
- package/dist/input/Input.svelte.d.ts +14 -27
- package/dist/input/index.d.ts +1 -1
- package/dist/internal/FocusSentinel.svelte +33 -32
- package/dist/internal/FormResolver.svelte +5 -1
- package/dist/internal/Hidden.svelte +10 -24
- package/dist/internal/Hidden.svelte.d.ts +5 -30
- package/dist/internal/MainTreeProvider.svelte +1 -1
- package/dist/label/Label.svelte +19 -13
- package/dist/label/Label.svelte.d.ts +7 -31
- package/dist/legend/Legend.svelte +20 -6
- package/dist/legend/Legend.svelte.d.ts +4 -3
- package/dist/listbox/Listbox.svelte +7 -19
- package/dist/listbox/Listbox.svelte.d.ts +12 -35
- package/dist/listbox/ListboxButton.svelte +14 -14
- package/dist/listbox/ListboxButton.svelte.d.ts +6 -32
- package/dist/listbox/ListboxOption.svelte +16 -16
- package/dist/listbox/ListboxOption.svelte.d.ts +13 -26
- package/dist/listbox/ListboxOptions.svelte +13 -12
- package/dist/listbox/ListboxOptions.svelte.d.ts +5 -38
- package/dist/listbox/ListboxSelectedOption.svelte +15 -17
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +8 -32
- package/dist/listbox/index.d.ts +5 -5
- package/dist/listbox/index.js +4 -4
- package/dist/menu/Menu.svelte +6 -8
- package/dist/menu/Menu.svelte.d.ts +4 -31
- package/dist/menu/MenuButton.svelte +13 -13
- package/dist/menu/MenuButton.svelte.d.ts +5 -34
- package/dist/menu/MenuHeading.svelte +12 -11
- package/dist/menu/MenuHeading.svelte.d.ts +4 -31
- package/dist/menu/MenuItem.svelte +13 -13
- package/dist/menu/MenuItem.svelte.d.ts +6 -32
- package/dist/menu/MenuItems.svelte +13 -14
- package/dist/menu/MenuItems.svelte.d.ts +5 -38
- package/dist/menu/MenuSection.svelte +11 -10
- package/dist/menu/MenuSection.svelte.d.ts +5 -29
- package/dist/menu/MenuSeparator.svelte +11 -9
- package/dist/menu/MenuSeparator.svelte.d.ts +5 -28
- package/dist/menu/index.d.ts +4 -4
- package/dist/menu/index.js +1 -1
- package/dist/popover/Popover.svelte +9 -9
- package/dist/popover/Popover.svelte.d.ts +5 -30
- package/dist/popover/PopoverBackdrop.svelte +16 -13
- package/dist/popover/PopoverBackdrop.svelte.d.ts +7 -34
- package/dist/popover/PopoverButton.svelte +34 -34
- package/dist/popover/PopoverButton.svelte.d.ts +6 -28
- package/dist/popover/PopoverGroup.svelte +15 -17
- package/dist/popover/PopoverGroup.svelte.d.ts +5 -28
- package/dist/popover/PopoverPanel.svelte +47 -42
- package/dist/popover/PopoverPanel.svelte.d.ts +6 -36
- package/dist/popover/index.d.ts +4 -4
- package/dist/popover/index.js +3 -3
- package/dist/portal/InternalPortal.svelte +17 -17
- package/dist/portal/InternalPortal.svelte.d.ts +5 -30
- package/dist/portal/Portal.svelte +7 -6
- package/dist/portal/Portal.svelte.d.ts +2 -18
- package/dist/portal/PortalGroup.svelte +6 -14
- package/dist/portal/PortalGroup.svelte.d.ts +4 -31
- package/dist/select/Select.svelte +11 -10
- package/dist/select/Select.svelte.d.ts +6 -32
- package/dist/select/index.d.ts +1 -1
- package/dist/switch/Switch.svelte +14 -13
- package/dist/switch/Switch.svelte.d.ts +6 -38
- package/dist/switch/SwitchGroup.svelte +5 -5
- package/dist/switch/SwitchGroup.svelte.d.ts +7 -27
- package/dist/switch/index.d.ts +1 -1
- package/dist/tabs/Tab.svelte +13 -13
- package/dist/tabs/Tab.svelte.d.ts +5 -32
- package/dist/tabs/TabGroup.svelte +9 -9
- package/dist/tabs/TabGroup.svelte.d.ts +5 -34
- package/dist/tabs/TabList.svelte +8 -9
- package/dist/tabs/TabList.svelte.d.ts +6 -28
- package/dist/tabs/TabPanel.svelte +12 -12
- package/dist/tabs/TabPanel.svelte.d.ts +5 -34
- package/dist/tabs/TabPanels.svelte +6 -6
- package/dist/tabs/TabPanels.svelte.d.ts +6 -27
- package/dist/tabs/index.d.ts +5 -5
- package/dist/tabs/index.js +1 -1
- package/dist/textarea/Textarea.svelte +13 -11
- package/dist/textarea/Textarea.svelte.d.ts +14 -27
- package/dist/textarea/index.d.ts +1 -1
- package/dist/transition/InternalTransitionChild.svelte +19 -12
- package/dist/transition/InternalTransitionChild.svelte.d.ts +3 -32
- package/dist/transition/Transition.svelte +12 -21
- package/dist/transition/Transition.svelte.d.ts +3 -35
- package/dist/transition/TransitionChild.svelte +9 -10
- package/dist/transition/TransitionChild.svelte.d.ts +8 -34
- package/dist/transition/context.svelte.js +7 -7
- package/dist/transition/index.d.ts +2 -2
- package/dist/transition/index.js +1 -1
- package/dist/utils/ElementOrComponent.svelte +56 -15
- package/dist/utils/ElementOrComponent.svelte.d.ts +30 -23
- package/dist/utils/state.js +4 -4
- package/dist/utils/types.d.ts +12 -9
- package/package.json +12 -12
- package/dist/combobox/Combobox.svelte +0 -53
- package/dist/combobox/Combobox.svelte.d.ts +0 -50
- package/dist/utils/Generic.svelte +0 -57
- package/dist/utils/Generic.svelte.d.ts +0 -31
- package/dist/utils/alternative-types.d.ts +0 -20
- package/dist/utils/alternative-types.js +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type { Props
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
3
|
import { onMount } from "svelte"
|
|
4
4
|
|
|
5
|
-
const DEFAULT_ITEM_TAG = "
|
|
6
|
-
type ItemRenderPropArg = {
|
|
5
|
+
const DEFAULT_ITEM_TAG = "button" as const
|
|
6
|
+
export type ItemRenderPropArg = {
|
|
7
7
|
/** @deprecated use `focus` instead */
|
|
8
8
|
active: boolean
|
|
9
9
|
focus: boolean
|
|
@@ -13,18 +13,18 @@
|
|
|
13
13
|
}
|
|
14
14
|
type ItemPropsWeControl = "aria-describedby" | "aria-disabled" | "aria-labelledby" | "role" | "tabIndex"
|
|
15
15
|
|
|
16
|
-
export type MenuItemProps
|
|
17
|
-
|
|
16
|
+
export type MenuItemProps = Props<
|
|
17
|
+
typeof DEFAULT_ITEM_TAG,
|
|
18
18
|
ItemRenderPropArg,
|
|
19
|
-
ItemPropsWeControl,
|
|
20
19
|
{
|
|
20
|
+
element?: HTMLElement
|
|
21
21
|
id?: string
|
|
22
22
|
disabled?: boolean
|
|
23
23
|
}
|
|
24
24
|
>
|
|
25
25
|
</script>
|
|
26
26
|
|
|
27
|
-
<script lang="ts"
|
|
27
|
+
<script lang="ts">
|
|
28
28
|
import { useId } from "../hooks/use-id.js"
|
|
29
29
|
import { ActivationTrigger, MenuStates, useMenuContext, type MenuItemDataRef } from "./context.svelte.js"
|
|
30
30
|
import { disposables } from "../utils/disposables.js"
|
|
@@ -39,11 +39,11 @@
|
|
|
39
39
|
|
|
40
40
|
const internalId = useId()
|
|
41
41
|
let {
|
|
42
|
-
|
|
42
|
+
element = $bindable(),
|
|
43
43
|
id = `headlessui-menu-item-${internalId}`,
|
|
44
44
|
disabled = false,
|
|
45
45
|
...theirProps
|
|
46
|
-
}:
|
|
46
|
+
}: MenuItemProps = $props()
|
|
47
47
|
const _state = useMenuContext("MenuItem")
|
|
48
48
|
const active = $derived(_state.activeItemIndex !== null ? _state.items[_state.activeItemIndex].id === id : false)
|
|
49
49
|
|
|
@@ -55,19 +55,19 @@
|
|
|
55
55
|
if (!active) return
|
|
56
56
|
if (_state.activationTrigger === ActivationTrigger.Pointer) return
|
|
57
57
|
return disposables().requestAnimationFrame(() => {
|
|
58
|
-
;(
|
|
58
|
+
;(element as HTMLElement)?.scrollIntoView?.({ block: "nearest" })
|
|
59
59
|
})
|
|
60
60
|
})
|
|
61
61
|
|
|
62
62
|
const getTextValue = useTextValue({
|
|
63
63
|
get element() {
|
|
64
|
-
return
|
|
64
|
+
return element || null
|
|
65
65
|
},
|
|
66
66
|
})
|
|
67
67
|
|
|
68
68
|
const bag: MenuItemDataRef["current"] = $derived({
|
|
69
69
|
disabled,
|
|
70
|
-
domRef: { current:
|
|
70
|
+
domRef: { current: element || null },
|
|
71
71
|
get textValue() {
|
|
72
72
|
return getTextValue()
|
|
73
73
|
},
|
|
@@ -146,4 +146,4 @@
|
|
|
146
146
|
)
|
|
147
147
|
</script>
|
|
148
148
|
|
|
149
|
-
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_ITEM_TAG} name="MenuItem" bind:
|
|
149
|
+
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_ITEM_TAG} name="MenuItem" bind:element />
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { Props
|
|
2
|
-
declare const DEFAULT_ITEM_TAG: "
|
|
3
|
-
type ItemRenderPropArg = {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
|
+
declare const DEFAULT_ITEM_TAG: "button";
|
|
3
|
+
export type ItemRenderPropArg = {
|
|
4
4
|
/** @deprecated use `focus` instead */
|
|
5
5
|
active: boolean;
|
|
6
6
|
focus: boolean;
|
|
@@ -8,36 +8,10 @@ type ItemRenderPropArg = {
|
|
|
8
8
|
close: () => void;
|
|
9
9
|
props?: Record<string, any>;
|
|
10
10
|
};
|
|
11
|
-
type
|
|
12
|
-
|
|
11
|
+
export type MenuItemProps = Props<typeof DEFAULT_ITEM_TAG, ItemRenderPropArg, {
|
|
12
|
+
element?: HTMLElement;
|
|
13
13
|
id?: string;
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
}>;
|
|
16
|
-
declare
|
|
17
|
-
props(): {
|
|
18
|
-
as?: TTag | undefined;
|
|
19
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "disabled" | "id" | ItemPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
20
|
-
children?: import("svelte").Snippet<[ItemRenderPropArg & {
|
|
21
|
-
props?: Record<string, any>;
|
|
22
|
-
}]> | undefined;
|
|
23
|
-
class?: string | ((bag: ItemRenderPropArg) => string) | null | undefined;
|
|
24
|
-
ref?: HTMLElement;
|
|
25
|
-
} & {
|
|
26
|
-
id?: string;
|
|
27
|
-
disabled?: boolean;
|
|
28
|
-
};
|
|
29
|
-
events(): {};
|
|
30
|
-
slots(): {};
|
|
31
|
-
bindings(): "ref";
|
|
32
|
-
exports(): {};
|
|
33
|
-
}
|
|
34
|
-
interface $$IsomorphicComponent {
|
|
35
|
-
new <TTag extends ElementType = typeof DEFAULT_ITEM_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']>> & {
|
|
36
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
37
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
38
|
-
<TTag extends ElementType = typeof DEFAULT_ITEM_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
39
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
40
|
-
}
|
|
41
|
-
declare const MenuItem: $$IsomorphicComponent;
|
|
42
|
-
type MenuItem<TTag extends ElementType = typeof DEFAULT_ITEM_TAG> = InstanceType<typeof MenuItem<TTag>>;
|
|
16
|
+
declare const MenuItem: import("svelte").Component<MenuItemProps, {}, "element">;
|
|
43
17
|
export default MenuItem;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
3
|
import { mergeProps, RenderFeatures, type PropsForFeatures } from "../utils/render.js"
|
|
4
4
|
import {
|
|
5
5
|
useFloatingPanel,
|
|
@@ -9,18 +9,18 @@
|
|
|
9
9
|
} from "../internal/floating.svelte.js"
|
|
10
10
|
|
|
11
11
|
const DEFAULT_ITEMS_TAG = "div" as const
|
|
12
|
-
type ItemsRenderPropArg = {
|
|
12
|
+
export type ItemsRenderPropArg = {
|
|
13
13
|
open: boolean
|
|
14
14
|
}
|
|
15
15
|
type ItemsPropsWeControl = "aria-activedescendant" | "aria-labelledby" | "role" | "tabIndex"
|
|
16
16
|
|
|
17
17
|
let ItemsRenderFeatures = RenderFeatures.RenderStrategy | RenderFeatures.Static
|
|
18
18
|
|
|
19
|
-
export type MenuItemsProps
|
|
20
|
-
|
|
19
|
+
export type MenuItemsProps = Props<
|
|
20
|
+
typeof DEFAULT_ITEMS_TAG,
|
|
21
21
|
ItemsRenderPropArg,
|
|
22
|
-
ItemsPropsWeControl,
|
|
23
22
|
{
|
|
23
|
+
element?: HTMLElement
|
|
24
24
|
id?: string
|
|
25
25
|
anchor?: AnchorProps
|
|
26
26
|
portal?: boolean
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
>
|
|
31
31
|
</script>
|
|
32
32
|
|
|
33
|
-
<script lang="ts"
|
|
33
|
+
<script lang="ts">
|
|
34
34
|
import { useId } from "../hooks/use-id.js"
|
|
35
35
|
import { getOwnerDocument } from "../utils/owner.js"
|
|
36
36
|
import { State, useOpenClosed } from "../internal/open-closed.js"
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
import { Focus } from "../utils/calculate-active-index.js"
|
|
44
44
|
import { focusFrom, Focus as FocusManagementFocus, restoreFocusIfNecessary } from "../utils/focus-management.js"
|
|
45
45
|
import { useElementSize } from "../hooks/use-element-size.svelte.js"
|
|
46
|
-
import { tick, untrack
|
|
46
|
+
import { tick, untrack } from "svelte"
|
|
47
47
|
import Portal from "../portal/Portal.svelte"
|
|
48
48
|
import { MenuStates, useMenuContext } from "./context.svelte.js"
|
|
49
49
|
import { useTreeWalker } from "../hooks/use-tree-walker.svelte.js"
|
|
@@ -51,15 +51,14 @@
|
|
|
51
51
|
|
|
52
52
|
const internalId = useId()
|
|
53
53
|
let {
|
|
54
|
-
|
|
55
|
-
ref = $bindable(),
|
|
54
|
+
element = $bindable(),
|
|
56
55
|
id = `headlessui-menu-items-${internalId}`,
|
|
57
56
|
anchor: rawAnchor,
|
|
58
57
|
portal = false,
|
|
59
58
|
modal = true,
|
|
60
59
|
transition = false,
|
|
61
60
|
...theirProps
|
|
62
|
-
}:
|
|
61
|
+
}: MenuItemsProps = $props()
|
|
63
62
|
const resolvedAnchor = useResolvedAnchor({
|
|
64
63
|
get anchor() {
|
|
65
64
|
return rawAnchor
|
|
@@ -76,8 +75,8 @@
|
|
|
76
75
|
const getFloatingPanelProps = useFloatingPanelProps()
|
|
77
76
|
|
|
78
77
|
$effect(() => {
|
|
79
|
-
untrack(() => _state.setItemsElement(
|
|
80
|
-
if (anchor) setFloating(
|
|
78
|
+
untrack(() => _state.setItemsElement(element ?? null))
|
|
79
|
+
if (anchor) setFloating(element ?? null)
|
|
81
80
|
})
|
|
82
81
|
const ownerDocument = $derived(getOwnerDocument(_state.itemsElement))
|
|
83
82
|
|
|
@@ -99,7 +98,7 @@
|
|
|
99
98
|
return transition
|
|
100
99
|
},
|
|
101
100
|
get element() {
|
|
102
|
-
return
|
|
101
|
+
return element
|
|
103
102
|
},
|
|
104
103
|
get show() {
|
|
105
104
|
return show
|
|
@@ -315,6 +314,6 @@
|
|
|
315
314
|
features={ItemsRenderFeatures}
|
|
316
315
|
visible={panelEnabled}
|
|
317
316
|
name="MenuItems"
|
|
318
|
-
bind:
|
|
317
|
+
bind:element
|
|
319
318
|
/>
|
|
320
319
|
</Portal>
|
|
@@ -1,51 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
import { type PropsForFeatures } from "../utils/render.js";
|
|
3
3
|
import { type AnchorProps } from "../internal/floating.svelte.js";
|
|
4
4
|
declare const DEFAULT_ITEMS_TAG: "div";
|
|
5
|
-
type ItemsRenderPropArg = {
|
|
5
|
+
export type ItemsRenderPropArg = {
|
|
6
6
|
open: boolean;
|
|
7
7
|
};
|
|
8
|
-
type ItemsPropsWeControl = "aria-activedescendant" | "aria-labelledby" | "role" | "tabIndex";
|
|
9
8
|
declare let ItemsRenderFeatures: number;
|
|
10
|
-
export type MenuItemsProps
|
|
9
|
+
export type MenuItemsProps = Props<typeof DEFAULT_ITEMS_TAG, ItemsRenderPropArg, {
|
|
10
|
+
element?: HTMLElement;
|
|
11
11
|
id?: string;
|
|
12
12
|
anchor?: AnchorProps;
|
|
13
13
|
portal?: boolean;
|
|
14
14
|
modal?: boolean;
|
|
15
15
|
transition?: boolean;
|
|
16
16
|
} & PropsForFeatures<typeof ItemsRenderFeatures>>;
|
|
17
|
-
|
|
18
|
-
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG> {
|
|
19
|
-
props(): {
|
|
20
|
-
as?: TTag | undefined;
|
|
21
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "anchor" | "unmount" | "static" | "id" | "transition" | "portal" | "modal" | ItemsPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
22
|
-
children?: Snippet<[ItemsRenderPropArg & {
|
|
23
|
-
props?: Record<string, any>;
|
|
24
|
-
}]> | undefined;
|
|
25
|
-
class?: string | ((bag: ItemsRenderPropArg) => string) | null | undefined;
|
|
26
|
-
ref?: HTMLElement;
|
|
27
|
-
} & {
|
|
28
|
-
id?: string;
|
|
29
|
-
anchor?: AnchorProps;
|
|
30
|
-
portal?: boolean;
|
|
31
|
-
modal?: boolean;
|
|
32
|
-
transition?: boolean;
|
|
33
|
-
} & {
|
|
34
|
-
static?: boolean | undefined;
|
|
35
|
-
unmount?: boolean | undefined;
|
|
36
|
-
};
|
|
37
|
-
events(): {};
|
|
38
|
-
slots(): {};
|
|
39
|
-
bindings(): "ref";
|
|
40
|
-
exports(): {};
|
|
41
|
-
}
|
|
42
|
-
interface $$IsomorphicComponent {
|
|
43
|
-
new <TTag extends ElementType = typeof DEFAULT_ITEMS_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']>> & {
|
|
44
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
45
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
46
|
-
<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
47
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
48
|
-
}
|
|
49
|
-
declare const MenuItems: $$IsomorphicComponent;
|
|
50
|
-
type MenuItems<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG> = InstanceType<typeof MenuItems<TTag>>;
|
|
17
|
+
declare const MenuItems: import("svelte").Component<MenuItemsProps, {}, "element">;
|
|
51
18
|
export default MenuItems;
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
3
|
-
import type { ElementType, Props } from "../utils/types.js"
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
4
3
|
|
|
5
4
|
const DEFAULT_SECTION_TAG = "div" as const
|
|
6
|
-
|
|
5
|
+
|
|
7
6
|
type SectionPropsWeControl = "role" | "aria-labelledby"
|
|
8
7
|
|
|
9
|
-
export type MenuSectionProps
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
export type MenuSectionProps = Props<
|
|
9
|
+
typeof DEFAULT_SECTION_TAG,
|
|
10
|
+
{},
|
|
11
|
+
{
|
|
12
|
+
element?: HTMLElement
|
|
13
|
+
}
|
|
13
14
|
>
|
|
14
15
|
</script>
|
|
15
16
|
|
|
16
|
-
<script lang="ts"
|
|
17
|
+
<script lang="ts">
|
|
17
18
|
import { useLabels } from "../label/context.svelte.js"
|
|
18
19
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
19
20
|
|
|
20
21
|
const labelledby = useLabels()
|
|
21
22
|
|
|
22
|
-
let {
|
|
23
|
+
let { element = $bindable(), ...theirProps }: MenuSectionProps = $props()
|
|
23
24
|
const ourProps = $derived({
|
|
24
25
|
"aria-labelledby": labelledby,
|
|
25
26
|
role: "group",
|
|
26
27
|
})
|
|
27
28
|
</script>
|
|
28
29
|
|
|
29
|
-
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_SECTION_TAG} name="MenuSection" bind:
|
|
30
|
+
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_SECTION_TAG} name="MenuSection" bind:element />
|
|
@@ -1,31 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { ElementType, Props } from "../utils/types.js";
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
3
2
|
declare const DEFAULT_SECTION_TAG: "div";
|
|
4
|
-
type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
declare
|
|
8
|
-
props(): {
|
|
9
|
-
as?: TTag | undefined;
|
|
10
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | SectionPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
11
|
-
children?: Snippet<[{
|
|
12
|
-
props?: Record<string, any>;
|
|
13
|
-
}]> | undefined;
|
|
14
|
-
class?: string | ((bag: SectionRenderPropArg) => string) | null | undefined;
|
|
15
|
-
ref?: HTMLElement;
|
|
16
|
-
};
|
|
17
|
-
events(): {};
|
|
18
|
-
slots(): {};
|
|
19
|
-
bindings(): "ref";
|
|
20
|
-
exports(): {};
|
|
21
|
-
}
|
|
22
|
-
interface $$IsomorphicComponent {
|
|
23
|
-
new <TTag extends ElementType = typeof DEFAULT_SECTION_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']>> & {
|
|
24
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
25
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
26
|
-
<TTag extends ElementType = typeof DEFAULT_SECTION_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
27
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
28
|
-
}
|
|
29
|
-
declare const MenuSection: $$IsomorphicComponent;
|
|
30
|
-
type MenuSection<TTag extends ElementType = typeof DEFAULT_SECTION_TAG> = InstanceType<typeof MenuSection<TTag>>;
|
|
3
|
+
export type MenuSectionProps = Props<typeof DEFAULT_SECTION_TAG, {}, {
|
|
4
|
+
element?: HTMLElement;
|
|
5
|
+
}>;
|
|
6
|
+
declare const MenuSection: import("svelte").Component<MenuSectionProps, {}, "element">;
|
|
31
7
|
export default MenuSection;
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
3
|
|
|
4
4
|
const DEFAULT_SEPARATOR_TAG = "div" as const
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
type SeparatorPropsWeControl = "role"
|
|
7
7
|
|
|
8
|
-
export type MenuSeparatorProps
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
export type MenuSeparatorProps = Props<
|
|
9
|
+
typeof DEFAULT_SEPARATOR_TAG,
|
|
10
|
+
{},
|
|
11
|
+
{
|
|
12
|
+
element?: HTMLElement
|
|
13
|
+
}
|
|
12
14
|
>
|
|
13
15
|
</script>
|
|
14
16
|
|
|
15
|
-
<script lang="ts"
|
|
17
|
+
<script lang="ts">
|
|
16
18
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
17
19
|
|
|
18
|
-
let {
|
|
20
|
+
let { element = $bindable(), ...theirProps }: MenuSeparatorProps = $props()
|
|
19
21
|
const ourProps = { role: "separator" }
|
|
20
22
|
</script>
|
|
21
23
|
|
|
22
|
-
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_SEPARATOR_TAG} name="MenuSeparator" bind:
|
|
24
|
+
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_SEPARATOR_TAG} name="MenuSeparator" bind:element />
|
|
@@ -1,30 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare const DEFAULT_SEPARATOR_TAG: "div";
|
|
3
|
-
type
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
declare
|
|
7
|
-
props(): {
|
|
8
|
-
as?: TTag | undefined;
|
|
9
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "role"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
10
|
-
children?: import("svelte").Snippet<[{
|
|
11
|
-
props?: Record<string, any>;
|
|
12
|
-
}]> | undefined;
|
|
13
|
-
class?: string | ((bag: SeparatorRenderPropArg) => string) | null | undefined;
|
|
14
|
-
ref?: HTMLElement;
|
|
15
|
-
};
|
|
16
|
-
events(): {};
|
|
17
|
-
slots(): {};
|
|
18
|
-
bindings(): "ref";
|
|
19
|
-
exports(): {};
|
|
20
|
-
}
|
|
21
|
-
interface $$IsomorphicComponent {
|
|
22
|
-
new <TTag extends ElementType = typeof DEFAULT_SEPARATOR_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']>> & {
|
|
23
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
24
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
25
|
-
<TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
26
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
27
|
-
}
|
|
28
|
-
declare const MenuSeparator: $$IsomorphicComponent;
|
|
29
|
-
type MenuSeparator<TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG> = InstanceType<typeof MenuSeparator<TTag>>;
|
|
3
|
+
export type MenuSeparatorProps = Props<typeof DEFAULT_SEPARATOR_TAG, {}, {
|
|
4
|
+
element?: HTMLElement;
|
|
5
|
+
}>;
|
|
6
|
+
declare const MenuSeparator: import("svelte").Component<MenuSeparatorProps, {}, "element">;
|
|
30
7
|
export default MenuSeparator;
|
package/dist/menu/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { default as Menu, type MenuProps } from "./Menu.svelte";
|
|
2
|
-
export { default as MenuButton, type MenuButtonProps } from "./MenuButton.svelte";
|
|
1
|
+
export { default as Menu, type MenuProps, type MenuRenderPropArg as MenuSlot } from "./Menu.svelte";
|
|
2
|
+
export { default as MenuButton, type MenuButtonProps, type ButtonRenderPropArg as MenuButtonSlot, } from "./MenuButton.svelte";
|
|
3
3
|
export { default as MenuHeading, type MenuHeadingProps } from "./MenuHeading.svelte";
|
|
4
|
-
export { default as MenuItem, type MenuItemProps } from "./MenuItem.svelte";
|
|
5
|
-
export { default as MenuItems, type MenuItemsProps } from "./MenuItems.svelte";
|
|
4
|
+
export { default as MenuItem, type MenuItemProps, type ItemRenderPropArg as MenuItemSlot } from "./MenuItem.svelte";
|
|
5
|
+
export { default as MenuItems, type MenuItemsProps, type ItemsRenderPropArg as MenuItemsSlot } from "./MenuItems.svelte";
|
|
6
6
|
export { default as MenuSection, type MenuSectionProps } from "./MenuSection.svelte";
|
|
7
7
|
export { default as MenuSeparator, type MenuSeparatorProps } from "./MenuSeparator.svelte";
|
package/dist/menu/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as Menu } from "./Menu.svelte";
|
|
2
|
-
export { default as MenuButton } from "./MenuButton.svelte";
|
|
2
|
+
export { default as MenuButton, } from "./MenuButton.svelte";
|
|
3
3
|
export { default as MenuHeading } from "./MenuHeading.svelte";
|
|
4
4
|
export { default as MenuItem } from "./MenuItem.svelte";
|
|
5
5
|
export { default as MenuItems } from "./MenuItems.svelte";
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
3
|
|
|
4
4
|
export const DEFAULT_POPOVER_TAG = "div" as const
|
|
5
|
-
type PopoverRenderPropArg = {
|
|
5
|
+
export type PopoverRenderPropArg = {
|
|
6
6
|
open: boolean
|
|
7
7
|
close(focusableElement?: HTMLElement | MouseEvent<HTMLElement>): void
|
|
8
8
|
}
|
|
9
9
|
type PopoverPropsWeControl = never
|
|
10
10
|
|
|
11
|
-
export type PopoverProps
|
|
12
|
-
|
|
11
|
+
export type PopoverProps = Props<
|
|
12
|
+
typeof DEFAULT_POPOVER_TAG,
|
|
13
13
|
PopoverRenderPropArg,
|
|
14
|
-
PopoverPropsWeControl,
|
|
15
14
|
{
|
|
15
|
+
element?: HTMLElement
|
|
16
16
|
__demoMode?: boolean
|
|
17
17
|
}
|
|
18
18
|
>
|
|
19
19
|
</script>
|
|
20
20
|
|
|
21
|
-
<script lang="ts"
|
|
21
|
+
<script lang="ts">
|
|
22
22
|
import { getOwnerDocument } from "../utils/owner.js"
|
|
23
23
|
|
|
24
24
|
import { setContext, untrack } from "svelte"
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
import { createOpenClosedContext, State } from "../internal/open-closed.js"
|
|
42
42
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
43
43
|
|
|
44
|
-
let {
|
|
44
|
+
let { element = $bindable(), __demoMode = false, ...theirProps }: PopoverProps = $props()
|
|
45
45
|
|
|
46
46
|
let buttons = $state([])
|
|
47
47
|
const context = createPopoverContext({
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
afterButtonSentinel,
|
|
61
61
|
} = $derived(context)
|
|
62
62
|
|
|
63
|
-
const ownerDocument = $derived(getOwnerDocument(
|
|
63
|
+
const ownerDocument = $derived(getOwnerDocument(element ?? button))
|
|
64
64
|
|
|
65
65
|
const isPortalled = $derived.by(() => {
|
|
66
66
|
if (!button) return false
|
|
@@ -223,5 +223,5 @@
|
|
|
223
223
|
</script>
|
|
224
224
|
|
|
225
225
|
<MainTreeProvider node={mainTreeNode.node}>
|
|
226
|
-
<ElementOrComponent {theirProps} slots={slot} defaultTag={DEFAULT_POPOVER_TAG} name="Popover" bind:
|
|
226
|
+
<ElementOrComponent {theirProps} slots={slot} defaultTag={DEFAULT_POPOVER_TAG} name="Popover" bind:element />
|
|
227
227
|
</MainTreeProvider>
|
|
@@ -1,38 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
export declare const DEFAULT_POPOVER_TAG: "div";
|
|
3
|
-
type PopoverRenderPropArg = {
|
|
3
|
+
export type PopoverRenderPropArg = {
|
|
4
4
|
open: boolean;
|
|
5
5
|
close(focusableElement?: HTMLElement | MouseEvent<HTMLElement>): void;
|
|
6
6
|
};
|
|
7
|
-
type
|
|
8
|
-
|
|
7
|
+
export type PopoverProps = Props<typeof DEFAULT_POPOVER_TAG, PopoverRenderPropArg, {
|
|
8
|
+
element?: HTMLElement;
|
|
9
9
|
__demoMode?: boolean;
|
|
10
10
|
}>;
|
|
11
11
|
import { type MouseEvent } from "./context.svelte.js";
|
|
12
|
-
declare
|
|
13
|
-
props(): {
|
|
14
|
-
as?: TTag | undefined;
|
|
15
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "__demoMode"> 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("svelte").Snippet<[PopoverRenderPropArg & {
|
|
17
|
-
props?: Record<string, any>;
|
|
18
|
-
}]> | undefined;
|
|
19
|
-
class?: string | ((bag: PopoverRenderPropArg) => string) | null | undefined;
|
|
20
|
-
ref?: HTMLElement;
|
|
21
|
-
} & {
|
|
22
|
-
__demoMode?: boolean;
|
|
23
|
-
};
|
|
24
|
-
events(): {};
|
|
25
|
-
slots(): {};
|
|
26
|
-
bindings(): "ref";
|
|
27
|
-
exports(): {};
|
|
28
|
-
}
|
|
29
|
-
interface $$IsomorphicComponent {
|
|
30
|
-
new <TTag extends ElementType = typeof DEFAULT_POPOVER_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']>> & {
|
|
31
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
32
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
|
-
<TTag extends ElementType = typeof DEFAULT_POPOVER_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
34
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
35
|
-
}
|
|
36
|
-
declare const Popover: $$IsomorphicComponent;
|
|
37
|
-
type Popover<TTag extends ElementType = typeof DEFAULT_POPOVER_TAG> = InstanceType<typeof Popover<TTag>>;
|
|
12
|
+
declare const Popover: import("svelte").Component<PopoverProps, {}, "element">;
|
|
38
13
|
export default Popover;
|
|
@@ -1,26 +1,29 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
3
|
import { RenderFeatures, type PropsForFeatures } from "../utils/render.js"
|
|
4
4
|
|
|
5
5
|
let DEFAULT_BACKDROP_TAG = "div" as const
|
|
6
|
-
type BackdropRenderPropArg = {
|
|
6
|
+
export type BackdropRenderPropArg = {
|
|
7
7
|
open: boolean
|
|
8
8
|
}
|
|
9
9
|
type BackdropPropsWeControl = "aria-hidden"
|
|
10
10
|
|
|
11
11
|
const BackdropRenderFeatures = RenderFeatures.RenderStrategy | RenderFeatures.Static
|
|
12
12
|
|
|
13
|
-
export type PopoverBackdropProps
|
|
14
|
-
|
|
13
|
+
export type PopoverBackdropProps = Props<
|
|
14
|
+
typeof DEFAULT_BACKDROP_TAG,
|
|
15
15
|
BackdropRenderPropArg,
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
{
|
|
17
|
+
element?: HTMLElement
|
|
18
|
+
id?: string
|
|
19
|
+
transition?: boolean
|
|
20
|
+
} & PropsForFeatures<typeof BackdropRenderFeatures>
|
|
18
21
|
>
|
|
19
22
|
|
|
20
|
-
export type PopoverOverlayProps
|
|
23
|
+
export type PopoverOverlayProps = PopoverBackdropProps
|
|
21
24
|
</script>
|
|
22
25
|
|
|
23
|
-
<script lang="ts"
|
|
26
|
+
<script lang="ts">
|
|
24
27
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
25
28
|
import { useId } from "../hooks/use-id.js"
|
|
26
29
|
import { PopoverStates, usePopoverContext } from "./context.svelte.js"
|
|
@@ -29,11 +32,11 @@
|
|
|
29
32
|
|
|
30
33
|
const internalId = useId()
|
|
31
34
|
let {
|
|
32
|
-
|
|
33
|
-
id = `headlessui-popover-backdrop-${internalId}
|
|
35
|
+
element = $bindable(),
|
|
36
|
+
id = `headlessui-popover-backdrop-${internalId}`,
|
|
34
37
|
transition = false,
|
|
35
38
|
...theirProps
|
|
36
|
-
}:
|
|
39
|
+
}: PopoverBackdropProps = $props()
|
|
37
40
|
const context = usePopoverContext("PopoverBackdrop")
|
|
38
41
|
const { popoverState } = $derived(context)
|
|
39
42
|
|
|
@@ -43,7 +46,7 @@
|
|
|
43
46
|
return transition
|
|
44
47
|
},
|
|
45
48
|
get element() {
|
|
46
|
-
return
|
|
49
|
+
return element
|
|
47
50
|
},
|
|
48
51
|
get show() {
|
|
49
52
|
return usesOpenClosedState !== null
|
|
@@ -78,5 +81,5 @@
|
|
|
78
81
|
features={BackdropRenderFeatures}
|
|
79
82
|
name="PopoverBackdrop"
|
|
80
83
|
{visible}
|
|
81
|
-
bind:
|
|
84
|
+
bind:element
|
|
82
85
|
/>
|