@pzerelles/headlessui-svelte 2.1.2-next.29 → 2.1.2-next.30
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 +54 -84
- package/dist/checkbox/Checkbox.svelte +120 -173
- package/dist/checkbox/Checkbox.svelte.d.ts +1 -1
- package/dist/close-button/CloseButton.svelte +6 -12
- package/dist/combobox/Combobox.svelte +3 -50
- package/dist/data-interactive/DataInteractive.svelte +29 -55
- package/dist/description/Description.svelte +21 -31
- package/dist/dialog/Dialog.svelte +228 -320
- package/dist/dialog/DialogBackdrop.svelte +12 -29
- package/dist/dialog/DialogPanel.svelte +25 -48
- package/dist/dialog/DialogTitle.svelte +23 -38
- package/dist/field/Field.svelte +25 -47
- package/dist/fieldset/Fieldset.svelte +29 -50
- package/dist/focus-trap/FocusTrap.svelte +283 -419
- package/dist/input/Input.svelte +53 -84
- package/dist/internal/FloatingProvider.svelte +9 -14
- package/dist/internal/FocusSentinel.svelte +8 -16
- package/dist/internal/ForcePortalRoot.svelte +3 -7
- package/dist/internal/FormFields.svelte +34 -47
- package/dist/internal/FormFieldsProvider.svelte +5 -9
- package/dist/internal/FormResolver.svelte +15 -20
- package/dist/internal/Hidden.svelte +29 -50
- package/dist/internal/MainTreeProvider.svelte +36 -89
- package/dist/internal/Portal.svelte +14 -18
- package/dist/label/Label.svelte +58 -93
- package/dist/legend/Legend.svelte +3 -12
- package/dist/listbox/Listbox.svelte +387 -525
- package/dist/listbox/Listbox.svelte.d.ts +1 -1
- package/dist/listbox/ListboxButton.svelte +127 -173
- package/dist/listbox/ListboxOption.svelte +129 -170
- package/dist/listbox/ListboxOptions.svelte +304 -400
- package/dist/listbox/ListboxSelectedOption.svelte +15 -38
- package/dist/menu/Menu.svelte +51 -78
- package/dist/menu/MenuButton.svelte +117 -157
- package/dist/menu/MenuHeading.svelte +14 -32
- package/dist/menu/MenuItem.svelte +107 -142
- package/dist/menu/MenuItems.svelte +229 -301
- package/dist/menu/MenuSection.svelte +9 -24
- package/dist/menu/MenuSeparator.svelte +4 -17
- package/dist/popover/Popover.svelte +150 -216
- package/dist/popover/PopoverBackdrop.svelte +41 -67
- package/dist/popover/PopoverButton.svelte +212 -292
- package/dist/popover/PopoverGroup.svelte +35 -62
- package/dist/popover/PopoverPanel.svelte +229 -311
- package/dist/portal/InternalPortal.svelte +85 -141
- package/dist/portal/Portal.svelte +2 -5
- package/dist/portal/PortalGroup.svelte +9 -30
- package/dist/select/Select.svelte +68 -98
- package/dist/switch/Switch.svelte +132 -179
- package/dist/switch/SwitchGroup.svelte +31 -44
- package/dist/tabs/Tab.svelte +142 -194
- package/dist/tabs/TabGroup.svelte +56 -86
- package/dist/tabs/TabGroup.svelte.d.ts +1 -1
- package/dist/tabs/TabList.svelte +11 -31
- package/dist/tabs/TabPanel.svelte +42 -67
- package/dist/tabs/TabPanels.svelte +7 -18
- package/dist/textarea/Textarea.svelte +53 -84
- package/dist/transition/InternalTransitionChild.svelte +170 -259
- package/dist/transition/Transition.svelte +66 -96
- package/dist/transition/TransitionChild.svelte +11 -31
- package/dist/utils/DisabledProvider.svelte +3 -7
- package/dist/utils/ElementOrComponent.svelte +23 -43
- package/dist/utils/Generic.svelte +16 -27
- package/dist/utils/StableCollection.svelte +36 -54
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +12 -27
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +44 -88
- package/package.json +4 -4
|
@@ -1,53 +1,30 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
import type { ElementType, Props } from "../utils/types.js"
|
|
3
|
-
|
|
4
|
-
let DEFAULT_PANEL_TAG = "div" as const
|
|
5
|
-
type PanelRenderPropArg = {
|
|
6
|
-
open: boolean
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export type DialogPanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<
|
|
10
|
-
TTag,
|
|
11
|
-
PanelRenderPropArg,
|
|
12
|
-
never,
|
|
13
|
-
{
|
|
14
|
-
id?: string
|
|
15
|
-
transition?: boolean
|
|
16
|
-
}
|
|
17
|
-
>
|
|
1
|
+
<script lang="ts" module>let DEFAULT_PANEL_TAG = "div";
|
|
18
2
|
</script>
|
|
19
3
|
|
|
20
|
-
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_PANEL_TAG">
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const ourProps = $derived(
|
|
46
|
-
mergeProps({
|
|
47
|
-
id,
|
|
48
|
-
onclick: handleClick,
|
|
49
|
-
})
|
|
50
|
-
)
|
|
4
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_PANEL_TAG">import { useId } from "../hooks/use-id.js";
|
|
5
|
+
import { DialogStates, useDialogContext } from "./context.svelte.js";
|
|
6
|
+
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
7
|
+
import { mergeProps } from "../utils/render.js";
|
|
8
|
+
import TransitionChild from "../transition/TransitionChild.svelte";
|
|
9
|
+
let internalId = useId();
|
|
10
|
+
let {
|
|
11
|
+
ref = $bindable(),
|
|
12
|
+
id = `headlessui-dialog-panel-${internalId}`,
|
|
13
|
+
transition = false,
|
|
14
|
+
...theirProps
|
|
15
|
+
} = $props();
|
|
16
|
+
const _state = useDialogContext("Dialog.Panel");
|
|
17
|
+
const { dialogState, unmount } = $derived(_state);
|
|
18
|
+
const slot = $derived({ open: dialogState === DialogStates.Open });
|
|
19
|
+
const handleClick = (event) => {
|
|
20
|
+
event.stopPropagation();
|
|
21
|
+
};
|
|
22
|
+
const ourProps = $derived(
|
|
23
|
+
mergeProps({
|
|
24
|
+
id,
|
|
25
|
+
onclick: handleClick
|
|
26
|
+
})
|
|
27
|
+
);
|
|
51
28
|
</script>
|
|
52
29
|
|
|
53
30
|
{#if transition}
|
|
@@ -1,44 +1,29 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
import type { ElementType, Props, PropsOf } from "../utils/types.js"
|
|
3
|
-
|
|
4
|
-
let DEFAULT_TITLE_TAG = "h2" as const
|
|
5
|
-
type TitleRenderPropArg = {
|
|
6
|
-
open: boolean
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export type DialogTitleProps<TTag extends ElementType = typeof DEFAULT_TITLE_TAG> = Props<TTag, TitleRenderPropArg>
|
|
10
|
-
|
|
11
|
-
//
|
|
1
|
+
<script lang="ts" module>let DEFAULT_TITLE_TAG = "h2";
|
|
12
2
|
</script>
|
|
13
3
|
|
|
14
|
-
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TITLE_TAG">
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
4
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TITLE_TAG">import { useId } from "../hooks/use-id.js";
|
|
5
|
+
import { DialogStates, useDialogContext } from "./context.svelte.js";
|
|
6
|
+
import { onMount } from "svelte";
|
|
7
|
+
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
8
|
+
import { mergeProps } from "../utils/render.js";
|
|
9
|
+
const internalId = useId();
|
|
10
|
+
let {
|
|
11
|
+
ref = $bindable(),
|
|
12
|
+
id = `headlessui-dialog-title-${internalId}`,
|
|
13
|
+
...theirProps
|
|
14
|
+
} = $props();
|
|
15
|
+
const _state = useDialogContext("Dialog.Panel");
|
|
16
|
+
const { dialogState, setTitleId } = $derived(_state);
|
|
17
|
+
onMount(() => {
|
|
18
|
+
setTitleId(id);
|
|
19
|
+
return () => setTitleId(null);
|
|
20
|
+
});
|
|
21
|
+
const slot = $derived({ open: dialogState === DialogStates.Open });
|
|
22
|
+
const ourProps = $derived(
|
|
23
|
+
mergeProps({
|
|
24
|
+
id
|
|
33
25
|
})
|
|
34
|
-
|
|
35
|
-
const slot = $derived({ open: dialogState === DialogStates.Open } satisfies TitleRenderPropArg)
|
|
36
|
-
|
|
37
|
-
const ourProps = $derived(
|
|
38
|
-
mergeProps({
|
|
39
|
-
id,
|
|
40
|
-
})
|
|
41
|
-
)
|
|
26
|
+
);
|
|
42
27
|
</script>
|
|
43
28
|
|
|
44
29
|
<ElementOrComponent {ourProps} {theirProps} slots={slot} defaultTag={DEFAULT_TITLE_TAG} name="DialogTitle" bind:ref />
|
package/dist/field/Field.svelte
CHANGED
|
@@ -1,52 +1,30 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
import type { ElementType, Props } from "../utils/types.js"
|
|
3
|
-
|
|
4
|
-
let DEFAULT_FIELD_TAG = "div" as const
|
|
5
|
-
|
|
6
|
-
type FieldRenderPropArg = {}
|
|
7
|
-
type FieldPropsWeControl = never
|
|
8
|
-
|
|
9
|
-
export type FieldProps<TTag extends ElementType = typeof DEFAULT_FIELD_TAG> = Props<
|
|
10
|
-
TTag,
|
|
11
|
-
FieldRenderPropArg,
|
|
12
|
-
FieldPropsWeControl,
|
|
13
|
-
{
|
|
14
|
-
disabled?: boolean
|
|
15
|
-
}
|
|
16
|
-
>
|
|
1
|
+
<script lang="ts" module>let DEFAULT_FIELD_TAG = "div";
|
|
17
2
|
</script>
|
|
18
3
|
|
|
19
|
-
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_FIELD_TAG">
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
const slot = $derived({ disabled })
|
|
45
|
-
|
|
46
|
-
const ourProps = $derived({
|
|
47
|
-
disabled: disabled || undefined,
|
|
48
|
-
"aria-disabled": disabled || undefined,
|
|
49
|
-
})
|
|
4
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_FIELD_TAG">import { provideDisabled } from "../hooks/use-disabled.js";
|
|
5
|
+
import { createIdContext } from "../utils/id.js";
|
|
6
|
+
import { nanoid } from "nanoid";
|
|
7
|
+
import { useLabels } from "../label/context.svelte.js";
|
|
8
|
+
import { useDescriptions } from "../description/context.svelte.js";
|
|
9
|
+
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
10
|
+
import FormFieldsProvider from "../internal/FormFieldsProvider.svelte";
|
|
11
|
+
let {
|
|
12
|
+
ref = $bindable(),
|
|
13
|
+
disabled: ownDisabled = false,
|
|
14
|
+
children,
|
|
15
|
+
...theirProps
|
|
16
|
+
} = $props();
|
|
17
|
+
const inputId = `headlessui-control-${nanoid(8)}`;
|
|
18
|
+
createIdContext(inputId);
|
|
19
|
+
useLabels();
|
|
20
|
+
useDescriptions();
|
|
21
|
+
const disabledContext = provideDisabled(() => ownDisabled);
|
|
22
|
+
const { current: disabled } = $derived(disabledContext);
|
|
23
|
+
const slot = $derived({ disabled });
|
|
24
|
+
const ourProps = $derived({
|
|
25
|
+
disabled: disabled || void 0,
|
|
26
|
+
"aria-disabled": disabled || void 0
|
|
27
|
+
});
|
|
50
28
|
</script>
|
|
51
29
|
|
|
52
30
|
{#snippet wrapper(args: Parameters<Exclude<typeof children, undefined>>[0])}
|
|
@@ -1,55 +1,34 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
import type { ElementType, Props } from "../utils/types.js"
|
|
3
|
-
let DEFAULT_FIELDSET_TAG = "fieldset" as const
|
|
4
|
-
|
|
5
|
-
type FieldsetRenderPropArg = {}
|
|
6
|
-
type FieldsetPropsWeControl = "aria-labelledby" | "aria-disabled" | "role"
|
|
7
|
-
|
|
8
|
-
export type FieldsetProps<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG> = Props<
|
|
9
|
-
TTag,
|
|
10
|
-
FieldsetRenderPropArg,
|
|
11
|
-
FieldsetPropsWeControl,
|
|
12
|
-
{
|
|
13
|
-
disabled?: boolean
|
|
14
|
-
}
|
|
15
|
-
>
|
|
1
|
+
<script lang="ts" module>let DEFAULT_FIELDSET_TAG = "fieldset";
|
|
16
2
|
</script>
|
|
17
3
|
|
|
18
|
-
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG">
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
: {
|
|
48
|
-
role: "group",
|
|
49
|
-
"aria-labelledby": labelledBy.value,
|
|
50
|
-
"aria-disabled": disabled || undefined,
|
|
51
|
-
}
|
|
52
|
-
)
|
|
4
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG">import { setContext } from "svelte";
|
|
5
|
+
import { useDisabled } from "../hooks/use-disabled.js";
|
|
6
|
+
import { useLabels } from "../label/context.svelte.js";
|
|
7
|
+
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
8
|
+
let {
|
|
9
|
+
ref = $bindable(),
|
|
10
|
+
disabled: ownDisabled = false,
|
|
11
|
+
...theirProps
|
|
12
|
+
} = $props();
|
|
13
|
+
const providedDisabled = useDisabled();
|
|
14
|
+
const disabled = $derived(providedDisabled.current || ownDisabled);
|
|
15
|
+
setContext("DisabledContext", {
|
|
16
|
+
get value() {
|
|
17
|
+
return disabled;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
const labelledBy = useLabels();
|
|
21
|
+
const slot = $derived({ disabled });
|
|
22
|
+
const ourProps = $derived(
|
|
23
|
+
(theirProps.as ?? DEFAULT_FIELDSET_TAG) === "fieldset" ? {
|
|
24
|
+
"aria-labelledby": labelledBy.value,
|
|
25
|
+
disabled: disabled || void 0
|
|
26
|
+
} : {
|
|
27
|
+
role: "group",
|
|
28
|
+
"aria-labelledby": labelledBy.value,
|
|
29
|
+
"aria-disabled": disabled || void 0
|
|
30
|
+
}
|
|
31
|
+
);
|
|
53
32
|
</script>
|
|
54
33
|
|
|
55
34
|
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_FIELDSET_TAG} name="Fieldset" bind:ref />
|