@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,36 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
import { HiddenFeatures } from "./HiddenFeatures.js";
|
|
3
3
|
export * from "./HiddenFeatures.js";
|
|
4
4
|
declare const DEFAULT_VISUALLY_HIDDEN_TAG: "span";
|
|
5
|
-
type HiddenRenderPropArg = {};
|
|
6
|
-
type
|
|
7
|
-
|
|
5
|
+
export type HiddenRenderPropArg = {};
|
|
6
|
+
export type HiddenProps = Props<typeof DEFAULT_VISUALLY_HIDDEN_TAG, HiddenRenderPropArg, {
|
|
7
|
+
element?: HTMLElement;
|
|
8
8
|
features?: HiddenFeatures;
|
|
9
9
|
}>;
|
|
10
|
-
declare
|
|
11
|
-
props(): {
|
|
12
|
-
as?: TTag | undefined;
|
|
13
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "features"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
14
|
-
children?: import("svelte").Snippet<[{
|
|
15
|
-
props?: Record<string, any>;
|
|
16
|
-
}]> | undefined;
|
|
17
|
-
class?: string | ((bag: HiddenRenderPropArg) => string) | null | undefined;
|
|
18
|
-
ref?: HTMLElement;
|
|
19
|
-
} & {
|
|
20
|
-
features?: HiddenFeatures;
|
|
21
|
-
};
|
|
22
|
-
events(): {};
|
|
23
|
-
slots(): {};
|
|
24
|
-
bindings(): "ref";
|
|
25
|
-
exports(): {};
|
|
26
|
-
}
|
|
27
|
-
interface $$IsomorphicComponent {
|
|
28
|
-
new <TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_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']>> & {
|
|
29
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
30
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
31
|
-
<TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
32
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
33
|
-
}
|
|
34
|
-
declare const Hidden: $$IsomorphicComponent;
|
|
35
|
-
type Hidden<TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG> = InstanceType<typeof Hidden<TTag>>;
|
|
10
|
+
declare const Hidden: import("svelte").Component<HiddenProps, {}, "element">;
|
|
36
11
|
export default Hidden;
|
package/dist/label/Label.svelte
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export type LabelProps
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
|
+
|
|
4
|
+
const DEFAULT_LABEL_TAG = "label" as const
|
|
5
|
+
|
|
6
|
+
export type LabelProps = Props<
|
|
7
|
+
typeof DEFAULT_LABEL_TAG,
|
|
8
|
+
{},
|
|
9
|
+
{
|
|
10
|
+
element?: HTMLElement
|
|
11
|
+
id?: string
|
|
12
|
+
passive?: boolean
|
|
13
|
+
htmlFor?: string
|
|
14
|
+
}
|
|
15
|
+
>
|
|
10
16
|
</script>
|
|
11
17
|
|
|
12
|
-
<script lang="ts"
|
|
18
|
+
<script lang="ts">
|
|
13
19
|
import { onMount } from "svelte"
|
|
14
20
|
import { useProvidedId, htmlid } from "../utils/id.js"
|
|
15
21
|
import { useDisabled } from "../hooks/use-disabled.js"
|
|
@@ -23,12 +29,12 @@
|
|
|
23
29
|
const providedDisabled = useDisabled()
|
|
24
30
|
|
|
25
31
|
let {
|
|
26
|
-
|
|
27
|
-
id = `headlessui-label-${internalId}
|
|
32
|
+
element = $bindable(),
|
|
33
|
+
id = `headlessui-label-${internalId}`,
|
|
28
34
|
htmlFor = providedHtmlFor,
|
|
29
35
|
passive = false,
|
|
30
36
|
...theirOriginalProps
|
|
31
|
-
}:
|
|
37
|
+
}: LabelProps = $props()
|
|
32
38
|
|
|
33
39
|
onMount(() => {
|
|
34
40
|
context.register(id)
|
|
@@ -103,5 +109,5 @@
|
|
|
103
109
|
{theirProps}
|
|
104
110
|
defaultTag={htmlFor ? DEFAULT_LABEL_TAG : "div"}
|
|
105
111
|
name={context.name || "Label"}
|
|
106
|
-
bind:
|
|
112
|
+
bind:element
|
|
107
113
|
/>
|
|
@@ -1,34 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare
|
|
3
|
-
export type LabelProps
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
|
+
declare const DEFAULT_LABEL_TAG: "label";
|
|
3
|
+
export type LabelProps = Props<typeof DEFAULT_LABEL_TAG, {}, {
|
|
4
|
+
element?: HTMLElement;
|
|
5
|
+
id?: string;
|
|
4
6
|
passive?: boolean;
|
|
5
7
|
htmlFor?: string;
|
|
6
|
-
}
|
|
7
|
-
declare
|
|
8
|
-
props(): {
|
|
9
|
-
as?: TTag | undefined;
|
|
10
|
-
} & (Exclude<keyof PropsOf<TTag>, "slot" | "as" | "children" | "class" | "ref"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
|
|
11
|
-
children?: import("svelte").Snippet<[{
|
|
12
|
-
props?: Record<string, any>;
|
|
13
|
-
}]> | undefined;
|
|
14
|
-
class?: string | ((bag: {}) => string) | null | undefined;
|
|
15
|
-
ref?: HTMLElement;
|
|
16
|
-
} & {
|
|
17
|
-
passive?: boolean;
|
|
18
|
-
htmlFor?: string;
|
|
19
|
-
};
|
|
20
|
-
events(): {};
|
|
21
|
-
slots(): {};
|
|
22
|
-
bindings(): "ref";
|
|
23
|
-
exports(): {};
|
|
24
|
-
}
|
|
25
|
-
interface $$IsomorphicComponent {
|
|
26
|
-
new <TTag extends ElementType = typeof DEFAULT_LABEL_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']>> & {
|
|
27
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
28
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
29
|
-
<TTag extends ElementType = typeof DEFAULT_LABEL_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
30
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
31
|
-
}
|
|
32
|
-
declare const Label: $$IsomorphicComponent;
|
|
33
|
-
type Label<TTag extends ElementType = typeof DEFAULT_LABEL_TAG> = InstanceType<typeof Label<TTag>>;
|
|
8
|
+
}>;
|
|
9
|
+
declare const Label: import("svelte").Component<LabelProps, {}, "element">;
|
|
34
10
|
export default Label;
|
|
@@ -4,14 +4,28 @@
|
|
|
4
4
|
|
|
5
5
|
const DEFAULT_LEGEND_TAG = "div" as const
|
|
6
6
|
|
|
7
|
-
type
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
export type LegendProps = Props<
|
|
8
|
+
typeof DEFAULT_LEGEND_TAG,
|
|
9
|
+
{},
|
|
10
|
+
{
|
|
11
|
+
element?: HTMLElement
|
|
12
|
+
class?: string
|
|
13
|
+
}
|
|
14
|
+
>
|
|
11
15
|
</script>
|
|
12
16
|
|
|
13
17
|
<script lang="ts">
|
|
14
|
-
let { ...props }: LegendProps = $props()
|
|
18
|
+
let { asChild, children: theirChildren, ...props }: LegendProps = $props()
|
|
15
19
|
</script>
|
|
16
20
|
|
|
17
|
-
<Label
|
|
21
|
+
<Label asChild>
|
|
22
|
+
{#snippet children({ props: childProps })}
|
|
23
|
+
{#if asChild}
|
|
24
|
+
{@render theirChildren?.({ props: { ...props, ...childProps } })}
|
|
25
|
+
{:else}
|
|
26
|
+
<div {...props} {...childProps}>
|
|
27
|
+
{@render theirChildren?.({ props: {} })}
|
|
28
|
+
</div>
|
|
29
|
+
{/if}
|
|
30
|
+
{/snippet}
|
|
31
|
+
</Label>
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare const DEFAULT_LEGEND_TAG: "div";
|
|
3
|
-
type
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export type LegendProps = Props<typeof DEFAULT_LEGEND_TAG, {}, {
|
|
4
|
+
element?: HTMLElement;
|
|
5
|
+
class?: string;
|
|
6
|
+
}>;
|
|
6
7
|
declare const Legend: import("svelte").Component<LegendProps, {}, "">;
|
|
7
8
|
export default Legend;
|
|
@@ -5,26 +5,19 @@
|
|
|
5
5
|
import { calculateActiveIndex, Focus } from "../utils/calculate-active-index.js"
|
|
6
6
|
import { FocusableMode, isFocusableElement, sortByDomNode } from "../utils/focus-management.js"
|
|
7
7
|
import { match } from "../utils/match.js"
|
|
8
|
-
import type {
|
|
9
|
-
import { setContext
|
|
8
|
+
import type { EnsureArray, PropsAsChild } from "../utils/types.js"
|
|
9
|
+
import { setContext } from "svelte"
|
|
10
10
|
import { ActivationTrigger, ListboxStates, ValueMode } from "./context.svelte.js"
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
type ListboxRenderPropArg<T> = {
|
|
12
|
+
export type ListboxRenderPropArg<T> = {
|
|
14
13
|
open: boolean
|
|
15
14
|
disabled: boolean
|
|
16
15
|
invalid: boolean
|
|
17
16
|
value: T
|
|
18
17
|
}
|
|
19
18
|
|
|
20
|
-
export type ListboxProps<
|
|
21
|
-
TTag extends ElementType = typeof DEFAULT_LISTBOX_TAG,
|
|
22
|
-
TType = string,
|
|
23
|
-
TActualType = TType extends (infer U)[] ? U : TType,
|
|
24
|
-
> = Props<
|
|
25
|
-
TTag,
|
|
19
|
+
export type ListboxProps<TType = string, TActualType = TType extends (infer U)[] ? U : TType> = PropsAsChild<
|
|
26
20
|
ListboxRenderPropArg<TType>,
|
|
27
|
-
"value" | "defaultValue" | "onchange" | "by" | "disabled" | "horizontal" | "name" | "multiple",
|
|
28
21
|
{
|
|
29
22
|
value?: TType
|
|
30
23
|
defaultValue?: TType
|
|
@@ -37,7 +30,6 @@
|
|
|
37
30
|
name?: string
|
|
38
31
|
multiple?: boolean
|
|
39
32
|
closeOnSelect?: boolean
|
|
40
|
-
|
|
41
33
|
__demoMode?: boolean
|
|
42
34
|
}
|
|
43
35
|
>
|
|
@@ -45,10 +37,7 @@
|
|
|
45
37
|
export * from "./context.svelte.js"
|
|
46
38
|
</script>
|
|
47
39
|
|
|
48
|
-
<script
|
|
49
|
-
lang="ts"
|
|
50
|
-
generics="TTag extends ElementType = typeof DEFAULT_LISTBOX_TAG, TType = string, TActualType = TType extends (infer U)[] ? U : TType"
|
|
51
|
-
>
|
|
40
|
+
<script lang="ts" generics="TType = string, TActualType = TType extends (infer U)[] ? U : TType">
|
|
52
41
|
import { disposables } from "../utils/disposables.js"
|
|
53
42
|
import FormFields from "../internal/FormFields.svelte"
|
|
54
43
|
import { useFloatingProvider } from "../internal/floating-provider.svelte.js"
|
|
@@ -304,7 +293,6 @@
|
|
|
304
293
|
}
|
|
305
294
|
|
|
306
295
|
let {
|
|
307
|
-
ref = $bindable(),
|
|
308
296
|
value: controlledValue = $bindable(),
|
|
309
297
|
defaultValue,
|
|
310
298
|
form,
|
|
@@ -318,7 +306,7 @@
|
|
|
318
306
|
closeOnSelect,
|
|
319
307
|
__demoMode = false,
|
|
320
308
|
...theirProps
|
|
321
|
-
}:
|
|
309
|
+
}: ListboxProps<TType, TActualType> = $props()
|
|
322
310
|
|
|
323
311
|
const providedDisabled = useDisabled()
|
|
324
312
|
const disabled = $derived(providedDisabled.current || ownDisabled)
|
|
@@ -562,4 +550,4 @@
|
|
|
562
550
|
{#if name && value}
|
|
563
551
|
<FormFields {disabled} data={{ [name]: value }} {form} onReset={reset} />
|
|
564
552
|
{/if}
|
|
565
|
-
<ElementOrComponent {theirProps} slots={slot}
|
|
553
|
+
<ElementOrComponent {theirProps} slots={slot} name="Listbox" />
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
import { type ByComparator } from "../hooks/use-by-comparator.js";
|
|
2
|
-
import type {
|
|
3
|
-
|
|
4
|
-
declare let DEFAULT_LISTBOX_TAG: string;
|
|
5
|
-
type ListboxRenderPropArg<T> = {
|
|
2
|
+
import type { PropsAsChild } from "../utils/types.js";
|
|
3
|
+
export type ListboxRenderPropArg<T> = {
|
|
6
4
|
open: boolean;
|
|
7
5
|
disabled: boolean;
|
|
8
6
|
invalid: boolean;
|
|
9
7
|
value: T;
|
|
10
8
|
};
|
|
11
|
-
export type ListboxProps<
|
|
9
|
+
export type ListboxProps<TType = string, TActualType = TType extends (infer U)[] ? U : TType> = PropsAsChild<ListboxRenderPropArg<TType>, {
|
|
12
10
|
value?: TType;
|
|
13
11
|
defaultValue?: TType;
|
|
14
12
|
onchange?: (value: TType) => void;
|
|
@@ -23,41 +21,20 @@ export type ListboxProps<TTag extends ElementType = typeof DEFAULT_LISTBOX_TAG,
|
|
|
23
21
|
__demoMode?: boolean;
|
|
24
22
|
}>;
|
|
25
23
|
export * from "./context.svelte.js";
|
|
26
|
-
declare class __sveltets_Render<
|
|
27
|
-
props():
|
|
28
|
-
as?: TTag | undefined;
|
|
29
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, "form" | ("slot" | "as" | "children" | "class" | "ref") | "invalid" | "disabled" | "value" | "name" | "onchange" | "multiple" | "__demoMode" | "horizontal" | "defaultValue" | "by" | "closeOnSelect"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
30
|
-
children?: Snippet<[ListboxRenderPropArg<TType> & {
|
|
31
|
-
props?: Record<string, any>;
|
|
32
|
-
}]> | undefined;
|
|
33
|
-
class?: string | ((bag: ListboxRenderPropArg<TType>) => string) | null | undefined;
|
|
34
|
-
ref?: HTMLElement;
|
|
35
|
-
} & {
|
|
36
|
-
value?: TType | undefined;
|
|
37
|
-
defaultValue?: TType | undefined;
|
|
38
|
-
onchange?: ((value: TType) => void) | undefined;
|
|
39
|
-
by?: ByComparator<TActualType> | undefined;
|
|
40
|
-
disabled?: boolean;
|
|
41
|
-
invalid?: boolean;
|
|
42
|
-
horizontal?: boolean;
|
|
43
|
-
form?: string;
|
|
44
|
-
name?: string;
|
|
45
|
-
multiple?: boolean;
|
|
46
|
-
closeOnSelect?: boolean;
|
|
47
|
-
__demoMode?: boolean;
|
|
48
|
-
};
|
|
24
|
+
declare class __sveltets_Render<TType = string, TActualType = TType extends (infer U)[] ? U : TType> {
|
|
25
|
+
props(): ListboxProps<TType, TActualType>;
|
|
49
26
|
events(): {};
|
|
50
27
|
slots(): {};
|
|
51
|
-
bindings(): "
|
|
28
|
+
bindings(): "value";
|
|
52
29
|
exports(): {};
|
|
53
30
|
}
|
|
54
31
|
interface $$IsomorphicComponent {
|
|
55
|
-
new <
|
|
56
|
-
$$bindings?: ReturnType<__sveltets_Render<
|
|
57
|
-
} & ReturnType<__sveltets_Render<
|
|
58
|
-
<
|
|
59
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any, any
|
|
32
|
+
new <TType = string, TActualType = TType extends (infer U)[] ? U : TType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TType, TActualType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TType, TActualType>['props']>, ReturnType<__sveltets_Render<TType, TActualType>['events']>, ReturnType<__sveltets_Render<TType, TActualType>['slots']>> & {
|
|
33
|
+
$$bindings?: ReturnType<__sveltets_Render<TType, TActualType>['bindings']>;
|
|
34
|
+
} & ReturnType<__sveltets_Render<TType, TActualType>['exports']>;
|
|
35
|
+
<TType = string, TActualType = TType extends (infer U)[] ? U : TType>(internal: unknown, props: ReturnType<__sveltets_Render<TType, TActualType>['props']> & {}): ReturnType<__sveltets_Render<TType, TActualType>['exports']>;
|
|
36
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
|
|
60
37
|
}
|
|
61
38
|
declare const Listbox: $$IsomorphicComponent;
|
|
62
|
-
type Listbox<
|
|
39
|
+
type Listbox<TType = string, TActualType = TType extends (infer U)[] ? U : TType> = InstanceType<typeof Listbox<TType, TActualType>>;
|
|
63
40
|
export default Listbox;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
2
|
import { useId } from "../hooks/use-id.js"
|
|
3
3
|
import { useProvidedId } from "../utils/id.js"
|
|
4
|
-
import type {
|
|
4
|
+
import type { Props } from "../utils/types.js"
|
|
5
5
|
import { ListboxStates, useActions, useData } from "./Listbox.svelte"
|
|
6
6
|
import { attemptSubmit } from "../utils/form.js"
|
|
7
7
|
import { Focus } from "../utils/calculate-active-index.js"
|
|
@@ -10,7 +10,6 @@
|
|
|
10
10
|
import { useResolveButtonType } from "../hooks/use-resolve-button-type.svelte.js"
|
|
11
11
|
import { useFloatingReference, useFloatingReferenceProps } from "../internal/floating.svelte.js"
|
|
12
12
|
import { stateFromSlot } from "../utils/state.js"
|
|
13
|
-
import type { Snippet } from "svelte"
|
|
14
13
|
import { useLabelledBy } from "../label/context.svelte.js"
|
|
15
14
|
import { useDescribedBy } from "../description/context.svelte.js"
|
|
16
15
|
import { useHover } from "../hooks/use-hover.svelte.js"
|
|
@@ -18,7 +17,7 @@
|
|
|
18
17
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
19
18
|
|
|
20
19
|
const DEFAULT_BUTTON_TAG = "button" as const
|
|
21
|
-
type ButtonRenderPropArg = {
|
|
20
|
+
export type ButtonRenderPropArg = {
|
|
22
21
|
disabled: boolean
|
|
23
22
|
invalid: boolean
|
|
24
23
|
hover: boolean
|
|
@@ -30,35 +29,36 @@
|
|
|
30
29
|
}
|
|
31
30
|
type ButtonPropsWeControl = "aria-controls" | "aria-expanded" | "aria-haspopup" | "aria-labelledby" | "disabled"
|
|
32
31
|
|
|
33
|
-
export type ListboxButtonProps
|
|
34
|
-
|
|
32
|
+
export type ListboxButtonProps = Props<
|
|
33
|
+
typeof DEFAULT_BUTTON_TAG,
|
|
35
34
|
ButtonRenderPropArg,
|
|
36
|
-
ButtonPropsWeControl,
|
|
37
35
|
{
|
|
36
|
+
element?: HTMLElement
|
|
37
|
+
id?: string
|
|
38
38
|
autofocus?: boolean
|
|
39
39
|
disabled?: boolean
|
|
40
40
|
}
|
|
41
41
|
>
|
|
42
42
|
</script>
|
|
43
43
|
|
|
44
|
-
<script lang="ts"
|
|
44
|
+
<script lang="ts">
|
|
45
45
|
const data = useData("ListboxButton")
|
|
46
46
|
const actions = useActions("ListboxButton")
|
|
47
47
|
|
|
48
48
|
const internalId = useId()
|
|
49
49
|
const providedId = useProvidedId()
|
|
50
50
|
let {
|
|
51
|
-
|
|
52
|
-
id =
|
|
51
|
+
element = $bindable(),
|
|
52
|
+
id = providedId || `headlessui-listbox-button-${internalId}`,
|
|
53
53
|
disabled: ownDisabled = false,
|
|
54
54
|
autofocus = false,
|
|
55
55
|
...theirProps
|
|
56
|
-
}:
|
|
56
|
+
}: ListboxButtonProps = $props()
|
|
57
57
|
const { setReference } = useFloatingReference()
|
|
58
58
|
const { getReferenceProps: getFloatingReferenceProps } = useFloatingReferenceProps()
|
|
59
59
|
$effect(() => {
|
|
60
|
-
data.buttonElement =
|
|
61
|
-
setReference(
|
|
60
|
+
data.buttonElement = element || null
|
|
61
|
+
setReference(element)
|
|
62
62
|
})
|
|
63
63
|
|
|
64
64
|
const disabled = $derived(data.disabled || ownDisabled)
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
|
|
150
150
|
const buttonType = useResolveButtonType({
|
|
151
151
|
get props() {
|
|
152
|
-
return { type: theirProps.type, as:
|
|
152
|
+
return { type: theirProps.type ?? undefined, as: DEFAULT_BUTTON_TAG }
|
|
153
153
|
},
|
|
154
154
|
get ref() {
|
|
155
155
|
return { current: data.buttonElement }
|
|
@@ -182,4 +182,4 @@
|
|
|
182
182
|
)
|
|
183
183
|
</script>
|
|
184
184
|
|
|
185
|
-
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_BUTTON_TAG} name="ListboxButton" bind:
|
|
185
|
+
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_BUTTON_TAG} name="ListboxButton" bind:element />
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Snippet } from "svelte";
|
|
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
|
disabled: boolean;
|
|
6
5
|
invalid: boolean;
|
|
7
6
|
hover: boolean;
|
|
@@ -11,36 +10,11 @@ type ButtonRenderPropArg = {
|
|
|
11
10
|
active: boolean;
|
|
12
11
|
value: any;
|
|
13
12
|
};
|
|
14
|
-
type
|
|
15
|
-
|
|
13
|
+
export type ListboxButtonProps = Props<typeof DEFAULT_BUTTON_TAG, ButtonRenderPropArg, {
|
|
14
|
+
element?: HTMLElement;
|
|
15
|
+
id?: string;
|
|
16
16
|
autofocus?: boolean;
|
|
17
17
|
disabled?: boolean;
|
|
18
18
|
}>;
|
|
19
|
-
declare
|
|
20
|
-
props(): {
|
|
21
|
-
as?: TTag | undefined;
|
|
22
|
-
} & (Exclude<keyof PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "autofocus" | ButtonPropsWeControl> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: 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
|
-
autofocus?: boolean;
|
|
30
|
-
disabled?: boolean;
|
|
31
|
-
};
|
|
32
|
-
events(): {};
|
|
33
|
-
slots(): {};
|
|
34
|
-
bindings(): "ref";
|
|
35
|
-
exports(): {};
|
|
36
|
-
}
|
|
37
|
-
interface $$IsomorphicComponent {
|
|
38
|
-
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']>> & {
|
|
39
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
40
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
41
|
-
<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
42
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
43
|
-
}
|
|
44
|
-
declare const ListboxButton: $$IsomorphicComponent;
|
|
45
|
-
type ListboxButton<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG> = InstanceType<typeof ListboxButton<TTag>>;
|
|
19
|
+
declare const ListboxButton: import("svelte").Component<ListboxButtonProps, {}, "element">;
|
|
46
20
|
export default ListboxButton;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
3
|
|
|
4
4
|
const DEFAULT_OPTION_TAG = "div" as const
|
|
5
|
-
type OptionRenderPropArg = {
|
|
5
|
+
export type OptionRenderPropArg = {
|
|
6
6
|
/** @deprecated use `focus` instead */
|
|
7
7
|
active: boolean
|
|
8
8
|
focus: boolean
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
}
|
|
14
14
|
type OptionPropsWeControl = "aria-disabled" | "aria-selected" | "role" | "tabIndex"
|
|
15
15
|
|
|
16
|
-
export type ListboxOptionProps<
|
|
17
|
-
|
|
16
|
+
export type ListboxOptionProps<TType = string> = Props<
|
|
17
|
+
typeof DEFAULT_OPTION_TAG,
|
|
18
18
|
OptionRenderPropArg,
|
|
19
|
-
OptionPropsWeControl,
|
|
20
19
|
{
|
|
20
|
+
element?: HTMLElement
|
|
21
21
|
id?: string
|
|
22
22
|
disabled?: boolean
|
|
23
23
|
value: TType
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
>
|
|
26
26
|
</script>
|
|
27
27
|
|
|
28
|
-
<script lang="ts" generics="TType
|
|
28
|
+
<script lang="ts" generics="TType">
|
|
29
29
|
import { useId } from "../hooks/use-id.js"
|
|
30
30
|
import {
|
|
31
31
|
ActivationTrigger,
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
} from "./Listbox.svelte"
|
|
38
38
|
import { disposables } from "../utils/disposables.js"
|
|
39
39
|
import { Focus } from "../utils/calculate-active-index.js"
|
|
40
|
-
import { getContext, onMount
|
|
40
|
+
import { getContext, onMount } from "svelte"
|
|
41
41
|
import { useTextValue } from "../hooks/use-text-value.svelte.js"
|
|
42
42
|
import { useTrackedPointer } from "../hooks/use-tracked-pointer.js"
|
|
43
43
|
import { stateFromSlot } from "../utils/state.js"
|
|
@@ -45,12 +45,12 @@
|
|
|
45
45
|
|
|
46
46
|
const internalId = useId()
|
|
47
47
|
let {
|
|
48
|
-
|
|
48
|
+
element = $bindable(),
|
|
49
49
|
id = `headlessui-listbox-option-${internalId}`,
|
|
50
50
|
disabled = false,
|
|
51
51
|
value,
|
|
52
52
|
...theirProps
|
|
53
|
-
}:
|
|
53
|
+
}: ListboxOptionProps<TType> = $props()
|
|
54
54
|
const usedInSelectedOption = getContext<boolean>("SelectedOptionContext") === true
|
|
55
55
|
const data = useData("ListboxOption")
|
|
56
56
|
const actions = useActions("ListboxOption")
|
|
@@ -62,13 +62,13 @@
|
|
|
62
62
|
const selected = $derived(data.isSelected(value))
|
|
63
63
|
const getTextValue = useTextValue({
|
|
64
64
|
get element() {
|
|
65
|
-
return
|
|
65
|
+
return element as HTMLElement
|
|
66
66
|
},
|
|
67
67
|
})
|
|
68
68
|
const bag: ListboxOptionDataRef<TType>["current"] = $derived({
|
|
69
69
|
disabled,
|
|
70
70
|
value,
|
|
71
|
-
domRef: { current:
|
|
71
|
+
domRef: { current: element || null },
|
|
72
72
|
get textValue() {
|
|
73
73
|
return getTextValue()
|
|
74
74
|
},
|
|
@@ -76,14 +76,14 @@
|
|
|
76
76
|
|
|
77
77
|
$effect(() => {
|
|
78
78
|
if (usedInSelectedOption) return
|
|
79
|
-
if (!
|
|
79
|
+
if (!element) {
|
|
80
80
|
data.listElements.delete(id)
|
|
81
81
|
} else {
|
|
82
|
-
data.listElements.set(id,
|
|
82
|
+
data.listElements.set(id, element)
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
return () => {
|
|
86
|
-
if (
|
|
86
|
+
if (element) data.listElements.delete(id)
|
|
87
87
|
}
|
|
88
88
|
})
|
|
89
89
|
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
if (!active) return
|
|
94
94
|
if (data.activationTrigger === ActivationTrigger.Pointer) return
|
|
95
95
|
return disposables().requestAnimationFrame(() => {
|
|
96
|
-
;(
|
|
96
|
+
;(element as HTMLElement)?.scrollIntoView?.({ block: "nearest" })
|
|
97
97
|
})
|
|
98
98
|
})
|
|
99
99
|
|
|
@@ -177,5 +177,5 @@
|
|
|
177
177
|
</script>
|
|
178
178
|
|
|
179
179
|
{#if selected || !usedInSelectedOption}
|
|
180
|
-
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_OPTION_TAG} name="Listbox" bind:
|
|
180
|
+
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_OPTION_TAG} name="Listbox" bind:element />
|
|
181
181
|
{/if}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare const DEFAULT_OPTION_TAG: "div";
|
|
3
|
-
type OptionRenderPropArg = {
|
|
3
|
+
export type OptionRenderPropArg = {
|
|
4
4
|
/** @deprecated use `focus` instead */
|
|
5
5
|
active: boolean;
|
|
6
6
|
focus: boolean;
|
|
@@ -8,39 +8,26 @@ type OptionRenderPropArg = {
|
|
|
8
8
|
disabled: boolean;
|
|
9
9
|
selectedOption: boolean;
|
|
10
10
|
};
|
|
11
|
-
type
|
|
12
|
-
|
|
11
|
+
export type ListboxOptionProps<TType = string> = Props<typeof DEFAULT_OPTION_TAG, OptionRenderPropArg, {
|
|
12
|
+
element?: HTMLElement;
|
|
13
13
|
id?: string;
|
|
14
14
|
disabled?: boolean;
|
|
15
15
|
value: TType;
|
|
16
16
|
}>;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
props(): {
|
|
20
|
-
as?: TTag | undefined;
|
|
21
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "disabled" | "value" | "id" | OptionPropsWeControl> 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<[OptionRenderPropArg & {
|
|
23
|
-
props?: Record<string, any>;
|
|
24
|
-
}]> | undefined;
|
|
25
|
-
class?: string | ((bag: OptionRenderPropArg) => string) | null | undefined;
|
|
26
|
-
ref?: HTMLElement;
|
|
27
|
-
} & {
|
|
28
|
-
id?: string;
|
|
29
|
-
disabled?: boolean;
|
|
30
|
-
value: TType;
|
|
31
|
-
};
|
|
17
|
+
declare class __sveltets_Render<TType> {
|
|
18
|
+
props(): ListboxOptionProps<TType>;
|
|
32
19
|
events(): {};
|
|
33
20
|
slots(): {};
|
|
34
|
-
bindings(): "
|
|
21
|
+
bindings(): "element";
|
|
35
22
|
exports(): {};
|
|
36
23
|
}
|
|
37
24
|
interface $$IsomorphicComponent {
|
|
38
|
-
new <TType
|
|
39
|
-
$$bindings?: ReturnType<__sveltets_Render<TType
|
|
40
|
-
} & ReturnType<__sveltets_Render<TType
|
|
41
|
-
<TType
|
|
42
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any
|
|
25
|
+
new <TType>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TType>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TType>['props']>, ReturnType<__sveltets_Render<TType>['events']>, ReturnType<__sveltets_Render<TType>['slots']>> & {
|
|
26
|
+
$$bindings?: ReturnType<__sveltets_Render<TType>['bindings']>;
|
|
27
|
+
} & ReturnType<__sveltets_Render<TType>['exports']>;
|
|
28
|
+
<TType>(internal: unknown, props: ReturnType<__sveltets_Render<TType>['props']> & {}): ReturnType<__sveltets_Render<TType>['exports']>;
|
|
29
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
43
30
|
}
|
|
44
31
|
declare const ListboxOption: $$IsomorphicComponent;
|
|
45
|
-
type ListboxOption<TType
|
|
32
|
+
type ListboxOption<TType> = InstanceType<typeof ListboxOption<TType>>;
|
|
46
33
|
export default ListboxOption;
|