@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,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,7 +9,8 @@
|
|
|
9
9
|
} from "../internal/floating.svelte.js"
|
|
10
10
|
|
|
11
11
|
const DEFAULT_OPTIONS_TAG = "div" as const
|
|
12
|
-
|
|
12
|
+
|
|
13
|
+
export type OptionsRenderPropArg = {
|
|
13
14
|
open: boolean
|
|
14
15
|
}
|
|
15
16
|
type OptionsPropsWeControl =
|
|
@@ -22,11 +23,11 @@
|
|
|
22
23
|
|
|
23
24
|
let OptionsRenderFeatures = RenderFeatures.RenderStrategy | RenderFeatures.Static
|
|
24
25
|
|
|
25
|
-
export type ListboxOptionsProps
|
|
26
|
-
|
|
26
|
+
export type ListboxOptionsProps = Props<
|
|
27
|
+
typeof DEFAULT_OPTIONS_TAG,
|
|
27
28
|
OptionsRenderPropArg,
|
|
28
|
-
OptionsPropsWeControl,
|
|
29
29
|
{
|
|
30
|
+
element?: HTMLElement
|
|
30
31
|
id?: string
|
|
31
32
|
anchor?: AnchorPropsWithSelection
|
|
32
33
|
portal?: boolean
|
|
@@ -36,7 +37,7 @@
|
|
|
36
37
|
>
|
|
37
38
|
</script>
|
|
38
39
|
|
|
39
|
-
<script lang="ts"
|
|
40
|
+
<script lang="ts">
|
|
40
41
|
import { useId } from "../hooks/use-id.js"
|
|
41
42
|
import { ListboxStates, useActions, useData, ValueMode, type ListboxDataContext } from "./Listbox.svelte"
|
|
42
43
|
import { getOwnerDocument } from "../utils/owner.js"
|
|
@@ -58,14 +59,14 @@
|
|
|
58
59
|
|
|
59
60
|
const internalId = useId()
|
|
60
61
|
let {
|
|
61
|
-
|
|
62
|
+
element = $bindable(),
|
|
62
63
|
id = `headlessui-listbox-options-${internalId}`,
|
|
63
64
|
anchor: rawAnchor,
|
|
64
65
|
portal = false,
|
|
65
66
|
modal = true,
|
|
66
67
|
transition = false,
|
|
67
68
|
...theirProps
|
|
68
|
-
}:
|
|
69
|
+
}: ListboxOptionsProps = $props()
|
|
69
70
|
const resolvedAnchor = useResolvedAnchor({
|
|
70
71
|
get anchor() {
|
|
71
72
|
return rawAnchor
|
|
@@ -219,9 +220,9 @@
|
|
|
219
220
|
const getFloatingPanelProps = useFloatingPanelProps()
|
|
220
221
|
|
|
221
222
|
$effect(() => {
|
|
222
|
-
localOptionsElement =
|
|
223
|
-
data.optionsElement =
|
|
224
|
-
if (anchor) setFloating(
|
|
223
|
+
localOptionsElement = element
|
|
224
|
+
data.optionsElement = element ?? null
|
|
225
|
+
if (anchor) setFloating(element ?? null)
|
|
225
226
|
})
|
|
226
227
|
|
|
227
228
|
const searchDisposables = useDisposables()
|
|
@@ -414,6 +415,6 @@
|
|
|
414
415
|
features={OptionsRenderFeatures}
|
|
415
416
|
visible={panelEnabled}
|
|
416
417
|
name="ListboxOptions"
|
|
417
|
-
bind:
|
|
418
|
+
bind:element
|
|
418
419
|
/>
|
|
419
420
|
</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 AnchorPropsWithSelection } from "../internal/floating.svelte.js";
|
|
4
4
|
declare const DEFAULT_OPTIONS_TAG: "div";
|
|
5
|
-
type OptionsRenderPropArg = {
|
|
5
|
+
export type OptionsRenderPropArg = {
|
|
6
6
|
open: boolean;
|
|
7
7
|
};
|
|
8
|
-
type OptionsPropsWeControl = "aria-activedescendant" | "aria-labelledby" | "aria-multiselectable" | "aria-orientation" | "role" | "tabIndex";
|
|
9
8
|
declare let OptionsRenderFeatures: number;
|
|
10
|
-
export type ListboxOptionsProps
|
|
9
|
+
export type ListboxOptionsProps = Props<typeof DEFAULT_OPTIONS_TAG, OptionsRenderPropArg, {
|
|
10
|
+
element?: HTMLElement;
|
|
11
11
|
id?: string;
|
|
12
12
|
anchor?: AnchorPropsWithSelection;
|
|
13
13
|
portal?: boolean;
|
|
14
14
|
modal?: boolean;
|
|
15
15
|
transition?: boolean;
|
|
16
16
|
} & PropsForFeatures<typeof OptionsRenderFeatures>>;
|
|
17
|
-
|
|
18
|
-
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_OPTIONS_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" | OptionsPropsWeControl | "portal" | "modal"> 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<[OptionsRenderPropArg & {
|
|
23
|
-
props?: Record<string, any>;
|
|
24
|
-
}]> | undefined;
|
|
25
|
-
class?: string | ((bag: OptionsRenderPropArg) => string) | null | undefined;
|
|
26
|
-
ref?: HTMLElement;
|
|
27
|
-
} & {
|
|
28
|
-
id?: string;
|
|
29
|
-
anchor?: AnchorPropsWithSelection;
|
|
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_OPTIONS_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_OPTIONS_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 ListboxOptions: $$IsomorphicComponent;
|
|
50
|
-
type ListboxOptions<TTag extends ElementType = typeof DEFAULT_OPTIONS_TAG> = InstanceType<typeof ListboxOptions<TTag>>;
|
|
17
|
+
declare const ListboxOptions: import("svelte").Component<ListboxOptionsProps, {}, "element">;
|
|
51
18
|
export default ListboxOptions;
|
|
@@ -1,33 +1,30 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
3
|
import type { Snippet } from "svelte"
|
|
4
4
|
|
|
5
|
-
const DEFAULT_SELECTED_OPTION_TAG = "
|
|
6
|
-
type SelectedOptionRenderPropArg = {
|
|
5
|
+
const DEFAULT_SELECTED_OPTION_TAG = "span"
|
|
6
|
+
export type SelectedOptionRenderPropArg = {
|
|
7
|
+
option: Snippet
|
|
8
|
+
}
|
|
7
9
|
type SelectedOptionPropsWeControl = never
|
|
8
10
|
|
|
9
|
-
export type ListboxSelectedOptionProps
|
|
10
|
-
|
|
11
|
+
export type ListboxSelectedOptionProps = Props<
|
|
12
|
+
typeof DEFAULT_SELECTED_OPTION_TAG,
|
|
11
13
|
SelectedOptionRenderPropArg,
|
|
12
|
-
SelectedOptionPropsWeControl,
|
|
13
14
|
{
|
|
15
|
+
element?: HTMLElement
|
|
14
16
|
options: Snippet
|
|
15
17
|
placeholder?: Snippet
|
|
16
18
|
}
|
|
17
19
|
>
|
|
18
20
|
</script>
|
|
19
21
|
|
|
20
|
-
<script lang="ts"
|
|
22
|
+
<script lang="ts">
|
|
21
23
|
import { useData, ValueMode } from "./Listbox.svelte"
|
|
22
24
|
import { setContext } from "svelte"
|
|
23
25
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
24
26
|
|
|
25
|
-
let {
|
|
26
|
-
ref = $bindable(),
|
|
27
|
-
options,
|
|
28
|
-
placeholder,
|
|
29
|
-
...theirProps
|
|
30
|
-
}: { as?: TTag } & ListboxSelectedOptionProps<TTag> = $props()
|
|
27
|
+
let { element = $bindable(), options, placeholder, ...theirProps }: ListboxSelectedOptionProps = $props()
|
|
31
28
|
|
|
32
29
|
const data = useData("ListboxSelectedOption")
|
|
33
30
|
|
|
@@ -40,7 +37,7 @@
|
|
|
40
37
|
setContext("SelectedOptionContext", true)
|
|
41
38
|
</script>
|
|
42
39
|
|
|
43
|
-
{#snippet
|
|
40
|
+
{#snippet option()}
|
|
44
41
|
{#if placeholder && shouldShowPlaceholder}
|
|
45
42
|
{@render placeholder()}
|
|
46
43
|
{:else}
|
|
@@ -49,8 +46,9 @@
|
|
|
49
46
|
{/snippet}
|
|
50
47
|
|
|
51
48
|
<ElementOrComponent
|
|
52
|
-
theirProps={{ ...theirProps, children }}
|
|
49
|
+
theirProps={{ ...theirProps, ...(theirProps.asChild ? {} : { children: option }) }}
|
|
50
|
+
slot={{ option }}
|
|
53
51
|
defaultTag={DEFAULT_SELECTED_OPTION_TAG}
|
|
54
52
|
name="ListboxSelectedOption"
|
|
55
|
-
bind:
|
|
56
|
-
|
|
53
|
+
bind:element
|
|
54
|
+
/>
|
|
@@ -1,37 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
import type { Snippet } from "svelte";
|
|
3
|
-
declare const DEFAULT_SELECTED_OPTION_TAG = "
|
|
4
|
-
type SelectedOptionRenderPropArg = {
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
declare const DEFAULT_SELECTED_OPTION_TAG = "span";
|
|
4
|
+
export type SelectedOptionRenderPropArg = {
|
|
5
|
+
option: Snippet;
|
|
6
|
+
};
|
|
7
|
+
export type ListboxSelectedOptionProps = Props<typeof DEFAULT_SELECTED_OPTION_TAG, SelectedOptionRenderPropArg, {
|
|
8
|
+
element?: HTMLElement;
|
|
7
9
|
options: Snippet;
|
|
8
10
|
placeholder?: Snippet;
|
|
9
11
|
}>;
|
|
10
|
-
declare
|
|
11
|
-
props(): {
|
|
12
|
-
as?: TTag | undefined;
|
|
13
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "placeholder" | "options"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
14
|
-
children?: Snippet<[{
|
|
15
|
-
props?: Record<string, any>;
|
|
16
|
-
}]> | undefined;
|
|
17
|
-
class?: string | ((bag: SelectedOptionRenderPropArg) => string) | null | undefined;
|
|
18
|
-
ref?: HTMLElement;
|
|
19
|
-
} & {
|
|
20
|
-
options: Snippet;
|
|
21
|
-
placeholder?: Snippet;
|
|
22
|
-
};
|
|
23
|
-
events(): {};
|
|
24
|
-
slots(): {};
|
|
25
|
-
bindings(): "ref";
|
|
26
|
-
exports(): {};
|
|
27
|
-
}
|
|
28
|
-
interface $$IsomorphicComponent {
|
|
29
|
-
new <TTag extends ElementType = typeof DEFAULT_SELECTED_OPTION_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']>> & {
|
|
30
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
31
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
32
|
-
<TTag extends ElementType = typeof DEFAULT_SELECTED_OPTION_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
34
|
-
}
|
|
35
|
-
declare const ListboxSelectedOption: $$IsomorphicComponent;
|
|
36
|
-
type ListboxSelectedOption<TTag extends ElementType = typeof DEFAULT_SELECTED_OPTION_TAG> = InstanceType<typeof ListboxSelectedOption<TTag>>;
|
|
12
|
+
declare const ListboxSelectedOption: import("svelte").Component<ListboxSelectedOptionProps, {}, "element">;
|
|
37
13
|
export default ListboxSelectedOption;
|
package/dist/listbox/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { default as Listbox, type ListboxProps } from "./Listbox.svelte";
|
|
2
|
-
export { default as ListboxButton, type ListboxButtonProps } from "./ListboxButton.svelte";
|
|
3
|
-
export { default as ListboxOption, type ListboxOptionProps } from "./ListboxOption.svelte";
|
|
4
|
-
export { default as ListboxOptions, type ListboxOptionsProps } from "./ListboxOptions.svelte";
|
|
5
|
-
export { default as ListboxSelectedOption, type ListboxSelectedOptionProps } from "./ListboxSelectedOption.svelte";
|
|
1
|
+
export { default as Listbox, type ListboxProps, type ListboxRenderPropArg as ListboxSlot } from "./Listbox.svelte";
|
|
2
|
+
export { default as ListboxButton, type ListboxButtonProps, type ButtonRenderPropArg as ListboxButtonSlot, } from "./ListboxButton.svelte";
|
|
3
|
+
export { default as ListboxOption, type ListboxOptionProps, type OptionRenderPropArg as ListboxOptionSlot, } from "./ListboxOption.svelte";
|
|
4
|
+
export { default as ListboxOptions, type ListboxOptionsProps, type OptionsRenderPropArg as ListboxOptionsSlot, } from "./ListboxOptions.svelte";
|
|
5
|
+
export { default as ListboxSelectedOption, type ListboxSelectedOptionProps, type SelectedOptionRenderPropArg as ListboxSelectedOptionSlot, } from "./ListboxSelectedOption.svelte";
|
package/dist/listbox/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as Listbox } from "./Listbox.svelte";
|
|
2
|
-
export { default as ListboxButton } from "./ListboxButton.svelte";
|
|
3
|
-
export { default as ListboxOption } from "./ListboxOption.svelte";
|
|
4
|
-
export { default as ListboxOptions } from "./ListboxOptions.svelte";
|
|
5
|
-
export { default as ListboxSelectedOption } from "./ListboxSelectedOption.svelte";
|
|
2
|
+
export { default as ListboxButton, } from "./ListboxButton.svelte";
|
|
3
|
+
export { default as ListboxOption, } from "./ListboxOption.svelte";
|
|
4
|
+
export { default as ListboxOptions, } from "./ListboxOptions.svelte";
|
|
5
|
+
export { default as ListboxSelectedOption, } from "./ListboxSelectedOption.svelte";
|
package/dist/menu/Menu.svelte
CHANGED
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { PropsAsChild } from "../utils/types.js"
|
|
3
3
|
|
|
4
4
|
let DEFAULT_MENU_TAG = "svelte:fragment"
|
|
5
|
-
type MenuRenderPropArg = {
|
|
5
|
+
export type MenuRenderPropArg = {
|
|
6
6
|
open: boolean
|
|
7
7
|
close: () => void
|
|
8
8
|
}
|
|
9
9
|
type MenuPropsWeControl = never
|
|
10
10
|
|
|
11
|
-
export type MenuProps
|
|
12
|
-
TTag,
|
|
11
|
+
export type MenuProps = PropsAsChild<
|
|
13
12
|
MenuRenderPropArg,
|
|
14
|
-
MenuPropsWeControl,
|
|
15
13
|
{
|
|
16
14
|
__demoMode?: boolean
|
|
17
15
|
}
|
|
18
16
|
>
|
|
19
17
|
</script>
|
|
20
18
|
|
|
21
|
-
<script lang="ts"
|
|
19
|
+
<script lang="ts">
|
|
22
20
|
import { ActivationTrigger, createMenuContext, MenuStates, type StateDefinition } from "./context.svelte.js"
|
|
23
21
|
import { useOutsideClick } from "../hooks/use-outside-click.svelte.js"
|
|
24
22
|
import { useFloatingProvider } from "../internal/floating-provider.svelte.js"
|
|
@@ -27,7 +25,7 @@
|
|
|
27
25
|
import { FocusableMode, isFocusableElement } from "../utils/focus-management.js"
|
|
28
26
|
import { match } from "../utils/match.js"
|
|
29
27
|
|
|
30
|
-
let {
|
|
28
|
+
let { __demoMode = false, ...theirProps }: MenuProps = $props()
|
|
31
29
|
|
|
32
30
|
const context = createMenuContext({
|
|
33
31
|
__demoMode,
|
|
@@ -80,4 +78,4 @@
|
|
|
80
78
|
})
|
|
81
79
|
</script>
|
|
82
80
|
|
|
83
|
-
<ElementOrComponent {theirProps} {slot}
|
|
81
|
+
<ElementOrComponent {theirProps} {slot} name="Menu" />
|
|
@@ -1,37 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
type MenuRenderPropArg = {
|
|
1
|
+
import type { PropsAsChild } from "../utils/types.js";
|
|
2
|
+
export type MenuRenderPropArg = {
|
|
4
3
|
open: boolean;
|
|
5
4
|
close: () => void;
|
|
6
5
|
};
|
|
7
|
-
type
|
|
8
|
-
export type MenuProps<TTag extends ElementType = typeof DEFAULT_MENU_TAG> = Props<TTag, MenuRenderPropArg, MenuPropsWeControl, {
|
|
6
|
+
export type MenuProps = PropsAsChild<MenuRenderPropArg, {
|
|
9
7
|
__demoMode?: boolean;
|
|
10
8
|
}>;
|
|
11
|
-
declare
|
|
12
|
-
props(): {
|
|
13
|
-
as?: TTag | undefined;
|
|
14
|
-
} & (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) & {
|
|
15
|
-
children?: import("svelte").Snippet<[MenuRenderPropArg & {
|
|
16
|
-
props?: Record<string, any>;
|
|
17
|
-
}]> | undefined;
|
|
18
|
-
class?: string | ((bag: MenuRenderPropArg) => string) | null | undefined;
|
|
19
|
-
ref?: HTMLElement;
|
|
20
|
-
} & {
|
|
21
|
-
__demoMode?: boolean;
|
|
22
|
-
};
|
|
23
|
-
events(): {};
|
|
24
|
-
slots(): {};
|
|
25
|
-
bindings(): "ref";
|
|
26
|
-
exports(): {};
|
|
27
|
-
}
|
|
28
|
-
interface $$IsomorphicComponent {
|
|
29
|
-
new <TTag extends ElementType = typeof DEFAULT_MENU_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']>> & {
|
|
30
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
31
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
32
|
-
<TTag extends ElementType = typeof DEFAULT_MENU_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
34
|
-
}
|
|
35
|
-
declare const Menu: $$IsomorphicComponent;
|
|
36
|
-
type Menu<TTag extends ElementType = typeof DEFAULT_MENU_TAG> = InstanceType<typeof Menu<TTag>>;
|
|
9
|
+
declare const Menu: import("svelte").Component<MenuProps, {}, "">;
|
|
37
10
|
export default Menu;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import { tick
|
|
3
|
-
import type { Props
|
|
2
|
+
import { tick } from "svelte"
|
|
3
|
+
import type { Props } from "../utils/types.js"
|
|
4
4
|
|
|
5
5
|
const DEFAULT_BUTTON_TAG = "button" as const
|
|
6
|
-
type ButtonRenderPropArg = {
|
|
6
|
+
export type ButtonRenderPropArg = {
|
|
7
7
|
open: boolean
|
|
8
8
|
active: boolean
|
|
9
9
|
hover: boolean
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
}
|
|
14
14
|
type ButtonPropsWeControl = "aria-controls" | "aria-expanded" | "aria-haspopup"
|
|
15
15
|
|
|
16
|
-
export type MenuButtonProps
|
|
17
|
-
|
|
16
|
+
export type MenuButtonProps = Props<
|
|
17
|
+
typeof DEFAULT_BUTTON_TAG,
|
|
18
18
|
ButtonRenderPropArg,
|
|
19
|
-
ButtonPropsWeControl,
|
|
20
19
|
{
|
|
20
|
+
element?: HTMLElement
|
|
21
21
|
id?: string
|
|
22
22
|
disabled?: boolean
|
|
23
23
|
autofocus?: boolean
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
>
|
|
27
27
|
</script>
|
|
28
28
|
|
|
29
|
-
<script lang="ts"
|
|
29
|
+
<script lang="ts">
|
|
30
30
|
import { useId } from "../hooks/use-id.js"
|
|
31
31
|
import { Focus } from "../utils/calculate-active-index.js"
|
|
32
32
|
import { useFocusRing } from "../hooks/use-focus-ring.svelte.js"
|
|
@@ -41,19 +41,19 @@
|
|
|
41
41
|
|
|
42
42
|
const internalId = useId()
|
|
43
43
|
let {
|
|
44
|
-
|
|
44
|
+
element = $bindable(),
|
|
45
45
|
id = `headlessui-menu-button-${internalId}`,
|
|
46
46
|
disabled = false,
|
|
47
47
|
autofocus = false,
|
|
48
48
|
...theirProps
|
|
49
|
-
}:
|
|
49
|
+
}: MenuButtonProps = $props()
|
|
50
50
|
const _state = useMenuContext("MenuButton")
|
|
51
51
|
const floatingReference = useFloatingReference()
|
|
52
52
|
const { setReference } = $derived(floatingReference)
|
|
53
53
|
const { getReferenceProps: getFloatingReferenceProps } = useFloatingReferenceProps()
|
|
54
54
|
$effect(() => {
|
|
55
|
-
untrack(() => _state.setButtonElement(
|
|
56
|
-
setReference(
|
|
55
|
+
untrack(() => _state.setButtonElement(element ? (element as HTMLButtonElement) : null))
|
|
56
|
+
setReference(element)
|
|
57
57
|
})
|
|
58
58
|
|
|
59
59
|
const handleKeyDown = async (event: KeyboardEvent) => {
|
|
@@ -137,7 +137,7 @@
|
|
|
137
137
|
|
|
138
138
|
const buttonType = useResolveButtonType({
|
|
139
139
|
get props() {
|
|
140
|
-
return { type: theirProps.type, as:
|
|
140
|
+
return { type: theirProps.type, as: DEFAULT_BUTTON_TAG }
|
|
141
141
|
},
|
|
142
142
|
get ref() {
|
|
143
143
|
return { current: _state.buttonElement }
|
|
@@ -166,4 +166,4 @@
|
|
|
166
166
|
)
|
|
167
167
|
</script>
|
|
168
168
|
|
|
169
|
-
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_BUTTON_TAG} name="MenuButton" bind:
|
|
169
|
+
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_BUTTON_TAG} name="MenuButton" bind:element />
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { Props, ElementType } from "../utils/types.js";
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
3
2
|
declare const DEFAULT_BUTTON_TAG: "button";
|
|
4
|
-
type ButtonRenderPropArg = {
|
|
3
|
+
export type ButtonRenderPropArg = {
|
|
5
4
|
open: boolean;
|
|
6
5
|
active: boolean;
|
|
7
6
|
hover: boolean;
|
|
@@ -9,40 +8,12 @@ type ButtonRenderPropArg = {
|
|
|
9
8
|
disabled: boolean;
|
|
10
9
|
autofocus: boolean;
|
|
11
10
|
};
|
|
12
|
-
type
|
|
13
|
-
|
|
11
|
+
export type MenuButtonProps = Props<typeof DEFAULT_BUTTON_TAG, ButtonRenderPropArg, {
|
|
12
|
+
element?: HTMLElement;
|
|
14
13
|
id?: string;
|
|
15
14
|
disabled?: boolean;
|
|
16
15
|
autofocus?: boolean;
|
|
17
16
|
type?: string;
|
|
18
17
|
}>;
|
|
19
|
-
declare
|
|
20
|
-
props(): {
|
|
21
|
-
as?: TTag | undefined;
|
|
22
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "disabled" | "autofocus" | "type" | "id" | ButtonPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
23
|
-
children?: Snippet<[ButtonRenderPropArg & {
|
|
24
|
-
props?: Record<string, any>;
|
|
25
|
-
}]> | undefined;
|
|
26
|
-
class?: string | ((bag: ButtonRenderPropArg) => string) | null | undefined;
|
|
27
|
-
ref?: HTMLElement;
|
|
28
|
-
} & {
|
|
29
|
-
id?: string;
|
|
30
|
-
disabled?: boolean;
|
|
31
|
-
autofocus?: boolean;
|
|
32
|
-
type?: string;
|
|
33
|
-
};
|
|
34
|
-
events(): {};
|
|
35
|
-
slots(): {};
|
|
36
|
-
bindings(): "ref";
|
|
37
|
-
exports(): {};
|
|
38
|
-
}
|
|
39
|
-
interface $$IsomorphicComponent {
|
|
40
|
-
new <TTag extends ElementType = typeof DEFAULT_BUTTON_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']>> & {
|
|
41
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
42
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
43
|
-
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
44
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
45
|
-
}
|
|
46
|
-
declare const MenuButton: $$IsomorphicComponent;
|
|
47
|
-
type MenuButton<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG> = InstanceType<typeof MenuButton<TTag>>;
|
|
18
|
+
declare const MenuButton: import("svelte").Component<MenuButtonProps, {}, "element">;
|
|
48
19
|
export default MenuButton;
|
|
@@ -1,32 +1,33 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import { onMount
|
|
3
|
-
import type {
|
|
2
|
+
import { onMount } from "svelte"
|
|
3
|
+
import type { SvelteHTMLElements } from "svelte/elements"
|
|
4
|
+
import type { Props } from "../utils/types.js"
|
|
4
5
|
|
|
5
6
|
const DEFAULT_HEADING_TAG = "header" as const
|
|
6
|
-
|
|
7
|
+
|
|
7
8
|
type HeadingPropsWeControl = "role"
|
|
8
9
|
|
|
9
|
-
export type MenuHeadingProps
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
HeadingPropsWeControl,
|
|
10
|
+
export type MenuHeadingProps = Props<
|
|
11
|
+
typeof DEFAULT_HEADING_TAG,
|
|
12
|
+
{},
|
|
13
13
|
{
|
|
14
|
+
element?: HTMLElement
|
|
14
15
|
id?: string
|
|
15
16
|
}
|
|
16
17
|
>
|
|
17
18
|
</script>
|
|
18
19
|
|
|
19
|
-
<script lang="ts"
|
|
20
|
+
<script lang="ts">
|
|
20
21
|
import { useId } from "../hooks/use-id.js"
|
|
21
22
|
import { useLabelContext } from "../label/context.svelte.js"
|
|
22
23
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
23
24
|
|
|
24
25
|
const internalId = useId()
|
|
25
26
|
let {
|
|
26
|
-
|
|
27
|
+
element = $bindable(),
|
|
27
28
|
id = `headlessui-menu-heading-${internalId}`,
|
|
28
29
|
...theirProps
|
|
29
|
-
}:
|
|
30
|
+
}: MenuHeadingProps = $props()
|
|
30
31
|
|
|
31
32
|
const context = useLabelContext()
|
|
32
33
|
onMount(() => context.register(id))
|
|
@@ -34,4 +35,4 @@
|
|
|
34
35
|
const ourProps = $derived({ id, role: "presentation", ...context.props })
|
|
35
36
|
</script>
|
|
36
37
|
|
|
37
|
-
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_HEADING_TAG} name="MenuItem" bind:
|
|
38
|
+
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_HEADING_TAG} name="MenuItem" bind:element />
|
|
@@ -1,35 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { ElementType, Props } from "../utils/types.js";
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
3
2
|
declare const DEFAULT_HEADING_TAG: "header";
|
|
4
|
-
type
|
|
5
|
-
|
|
6
|
-
export type MenuHeadingProps<TTag extends ElementType = typeof DEFAULT_HEADING_TAG> = Props<TTag, HeadingRenderPropArg, HeadingPropsWeControl, {
|
|
3
|
+
export type MenuHeadingProps = Props<typeof DEFAULT_HEADING_TAG, {}, {
|
|
4
|
+
element?: HTMLElement;
|
|
7
5
|
id?: string;
|
|
8
6
|
}>;
|
|
9
|
-
declare
|
|
10
|
-
props(): {
|
|
11
|
-
as?: TTag | undefined;
|
|
12
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "id" | "role"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
13
|
-
children?: Snippet<[{
|
|
14
|
-
props?: Record<string, any>;
|
|
15
|
-
}]> | undefined;
|
|
16
|
-
class?: string | ((bag: HeadingRenderPropArg) => string) | null | undefined;
|
|
17
|
-
ref?: HTMLElement;
|
|
18
|
-
} & {
|
|
19
|
-
id?: string;
|
|
20
|
-
};
|
|
21
|
-
events(): {};
|
|
22
|
-
slots(): {};
|
|
23
|
-
bindings(): "ref";
|
|
24
|
-
exports(): {};
|
|
25
|
-
}
|
|
26
|
-
interface $$IsomorphicComponent {
|
|
27
|
-
new <TTag extends ElementType = typeof DEFAULT_HEADING_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']>> & {
|
|
28
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
29
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
30
|
-
<TTag extends ElementType = typeof DEFAULT_HEADING_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
31
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
32
|
-
}
|
|
33
|
-
declare const MenuHeading: $$IsomorphicComponent;
|
|
34
|
-
type MenuHeading<TTag extends ElementType = typeof DEFAULT_HEADING_TAG> = InstanceType<typeof MenuHeading<TTag>>;
|
|
7
|
+
declare const MenuHeading: import("svelte").Component<MenuHeadingProps, {}, "element">;
|
|
35
8
|
export default MenuHeading;
|