@pzerelles/headlessui-svelte 2.1.2-next.32 → 2.1.2-next.33
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 +8 -9
- package/dist/button/Button.svelte.d.ts +4 -31
- package/dist/checkbox/Checkbox.svelte +14 -11
- package/dist/checkbox/Checkbox.svelte.d.ts +14 -31
- package/dist/close-button/CloseButton.svelte +4 -7
- package/dist/close-button/CloseButton.svelte.d.ts +2 -43
- package/dist/data-interactive/DataInteractive.svelte +5 -19
- package/dist/data-interactive/DataInteractive.svelte.d.ts +7 -29
- 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 -10
- package/dist/dialog/DialogBackdrop.svelte.d.ts +4 -28
- package/dist/dialog/DialogPanel.svelte +18 -10
- package/dist/dialog/DialogPanel.svelte.d.ts +4 -29
- package/dist/dialog/DialogTitle.svelte +19 -7
- package/dist/dialog/DialogTitle.svelte.d.ts +6 -26
- package/dist/field/Field.svelte +9 -15
- package/dist/field/Field.svelte.d.ts +4 -29
- package/dist/fieldset/Fieldset.svelte +10 -13
- package/dist/fieldset/Fieldset.svelte.d.ts +5 -30
- package/dist/focus-trap/FocusTrap.svelte +20 -24
- package/dist/focus-trap/FocusTrap.svelte.d.ts +5 -33
- 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 +19 -9
- package/dist/input/Input.svelte.d.ts +13 -26
- package/dist/internal/FocusSentinel.svelte +33 -32
- package/dist/internal/FormResolver.svelte +5 -1
- package/dist/internal/Hidden.svelte +9 -23
- package/dist/internal/Hidden.svelte.d.ts +4 -29
- 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 +6 -17
- package/dist/listbox/Listbox.svelte.d.ts +11 -34
- package/dist/listbox/ListboxButton.svelte +14 -13
- package/dist/listbox/ListboxButton.svelte.d.ts +5 -31
- package/dist/listbox/ListboxOption.svelte +15 -15
- package/dist/listbox/ListboxOption.svelte.d.ts +12 -25
- package/dist/listbox/ListboxOptions.svelte +13 -11
- package/dist/listbox/ListboxOptions.svelte.d.ts +4 -37
- package/dist/listbox/ListboxSelectedOption.svelte +15 -17
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +8 -32
- package/dist/menu/Menu.svelte +5 -7
- package/dist/menu/Menu.svelte.d.ts +3 -30
- package/dist/menu/MenuButton.svelte +12 -12
- package/dist/menu/MenuButton.svelte.d.ts +4 -33
- package/dist/menu/MenuHeading.svelte +10 -9
- package/dist/menu/MenuHeading.svelte.d.ts +4 -30
- package/dist/menu/MenuItem.svelte +12 -12
- package/dist/menu/MenuItem.svelte.d.ts +5 -31
- package/dist/menu/MenuItems.svelte +12 -13
- package/dist/menu/MenuItems.svelte.d.ts +4 -37
- package/dist/menu/MenuSection.svelte +9 -8
- package/dist/menu/MenuSection.svelte.d.ts +5 -28
- package/dist/menu/MenuSeparator.svelte +9 -7
- package/dist/menu/MenuSeparator.svelte.d.ts +5 -27
- package/dist/popover/Popover.svelte +8 -8
- package/dist/popover/Popover.svelte.d.ts +4 -29
- package/dist/popover/PopoverBackdrop.svelte +15 -12
- package/dist/popover/PopoverBackdrop.svelte.d.ts +6 -33
- package/dist/popover/PopoverButton.svelte +34 -34
- package/dist/popover/PopoverButton.svelte.d.ts +6 -28
- package/dist/popover/PopoverGroup.svelte +14 -13
- package/dist/popover/PopoverGroup.svelte.d.ts +5 -27
- package/dist/popover/PopoverPanel.svelte +46 -41
- package/dist/popover/PopoverPanel.svelte.d.ts +5 -35
- package/dist/popover/index.d.ts +1 -1
- package/dist/portal/InternalPortal.svelte +17 -16
- package/dist/portal/InternalPortal.svelte.d.ts +4 -29
- package/dist/portal/Portal.svelte +7 -6
- package/dist/portal/Portal.svelte.d.ts +2 -18
- package/dist/portal/PortalGroup.svelte +5 -13
- package/dist/portal/PortalGroup.svelte.d.ts +3 -30
- package/dist/select/Select.svelte +10 -9
- package/dist/select/Select.svelte.d.ts +5 -31
- package/dist/switch/Switch.svelte +13 -12
- package/dist/switch/Switch.svelte.d.ts +5 -37
- package/dist/switch/SwitchGroup.svelte +5 -5
- package/dist/switch/SwitchGroup.svelte.d.ts +7 -27
- package/dist/tabs/Tab.svelte +12 -12
- package/dist/tabs/Tab.svelte.d.ts +4 -31
- package/dist/tabs/TabGroup.svelte +8 -8
- package/dist/tabs/TabGroup.svelte.d.ts +4 -33
- package/dist/tabs/TabList.svelte +7 -8
- package/dist/tabs/TabList.svelte.d.ts +5 -27
- package/dist/tabs/TabPanel.svelte +11 -11
- package/dist/tabs/TabPanel.svelte.d.ts +4 -33
- package/dist/tabs/TabPanels.svelte +5 -5
- package/dist/tabs/TabPanels.svelte.d.ts +5 -26
- package/dist/textarea/Textarea.svelte +12 -10
- package/dist/textarea/Textarea.svelte.d.ts +13 -26
- 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/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,8 +1,10 @@
|
|
|
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
|
+
import type { SvelteHTMLElements } from "svelte/elements"
|
|
4
5
|
|
|
5
6
|
export const DEFAULT_DIALOG_TAG = "div" as const
|
|
7
|
+
|
|
6
8
|
export type DialogRenderPropArg = {
|
|
7
9
|
open: boolean
|
|
8
10
|
}
|
|
@@ -10,12 +12,11 @@
|
|
|
10
12
|
|
|
11
13
|
export const DialogRenderFeatures = RenderFeatures.RenderStrategy | RenderFeatures.Static
|
|
12
14
|
|
|
13
|
-
export type DialogProps
|
|
14
|
-
|
|
15
|
+
export type DialogProps = Props<
|
|
16
|
+
typeof DEFAULT_DIALOG_TAG,
|
|
15
17
|
DialogRenderPropArg,
|
|
16
|
-
DialogPropsWeControl,
|
|
17
18
|
PropsForFeatures<typeof DialogRenderFeatures> & {
|
|
18
|
-
|
|
19
|
+
element?: HTMLElement
|
|
19
20
|
id?: string
|
|
20
21
|
open?: boolean
|
|
21
22
|
onclose(value: boolean): void
|
|
@@ -28,7 +29,7 @@
|
|
|
28
29
|
>
|
|
29
30
|
</script>
|
|
30
31
|
|
|
31
|
-
<script lang="ts"
|
|
32
|
+
<script lang="ts">
|
|
32
33
|
import { useId } from "../hooks/use-id.js"
|
|
33
34
|
import { useMainTreeNode, useRootContainers } from "../hooks/use-root-containers.svelte.js"
|
|
34
35
|
import { clearOpenClosedContext, State, useOpenClosed } from "../internal/open-closed.js"
|
|
@@ -51,26 +52,14 @@
|
|
|
51
52
|
import { useDescriptions } from "../description/context.svelte.js"
|
|
52
53
|
import MainTreeProvider from "../internal/MainTreeProvider.svelte"
|
|
53
54
|
import Transition from "../transition/Transition.svelte"
|
|
55
|
+
import { BROWSER } from "esm-env"
|
|
54
56
|
|
|
55
|
-
|
|
56
|
-
let {
|
|
57
|
-
ref = $bindable(),
|
|
58
|
-
id = `headlessui-dialog-${internalId}`,
|
|
59
|
-
open: theirOpen,
|
|
60
|
-
onclose,
|
|
61
|
-
initialFocus,
|
|
62
|
-
role: theirRole = "dialog",
|
|
63
|
-
autofocus = true,
|
|
64
|
-
__demoMode = false,
|
|
65
|
-
unmount = false,
|
|
66
|
-
transition = false,
|
|
67
|
-
...theirProps
|
|
68
|
-
}: { as?: TTag } & DialogProps<TTag> = $props()
|
|
57
|
+
let { element = $bindable(), transition = false, open: theirOpen, ...rest }: DialogProps = $props()
|
|
69
58
|
|
|
70
59
|
// Validations
|
|
71
60
|
const usesOpenClosedState = useOpenClosed()
|
|
72
61
|
const hasOpen = $derived(theirOpen !== undefined || usesOpenClosedState)
|
|
73
|
-
const hasOnClose = $derived(
|
|
62
|
+
const hasOnClose = $derived(rest.hasOwnProperty("onclose"))
|
|
74
63
|
|
|
75
64
|
$effect(() => {
|
|
76
65
|
if (!hasOpen && !hasOnClose) {
|
|
@@ -91,13 +80,25 @@
|
|
|
91
80
|
)
|
|
92
81
|
}
|
|
93
82
|
|
|
94
|
-
if (typeof
|
|
83
|
+
if (typeof rest.onclose !== "function") {
|
|
95
84
|
throw new Error(
|
|
96
|
-
`You provided an \`onclose\` prop to the \`Dialog\`, but the value is not a function. Received: ${
|
|
85
|
+
`You provided an \`onclose\` prop to the \`Dialog\`, but the value is not a function. Received: ${rest.onclose}`
|
|
97
86
|
)
|
|
98
87
|
}
|
|
99
88
|
})
|
|
100
89
|
|
|
90
|
+
const internalId = useId()
|
|
91
|
+
let {
|
|
92
|
+
id = `headlessui-dialog-${internalId}`,
|
|
93
|
+
onclose,
|
|
94
|
+
initialFocus,
|
|
95
|
+
role: theirRole = "dialog",
|
|
96
|
+
autofocus = true,
|
|
97
|
+
__demoMode = false,
|
|
98
|
+
unmount = false,
|
|
99
|
+
...theirProps
|
|
100
|
+
} = $derived(rest)
|
|
101
|
+
|
|
101
102
|
let didWarnOnRole = $state(false)
|
|
102
103
|
|
|
103
104
|
const role = $derived.by(() => {
|
|
@@ -122,7 +123,7 @@
|
|
|
122
123
|
: theirOpen
|
|
123
124
|
)
|
|
124
125
|
|
|
125
|
-
const ownerDocument = $derived(getOwnerDocument(
|
|
126
|
+
const ownerDocument = $derived(getOwnerDocument(element))
|
|
126
127
|
|
|
127
128
|
const dialogState = $derived(open ? DialogStates.Open : DialogStates.Closed)
|
|
128
129
|
|
|
@@ -135,7 +136,8 @@
|
|
|
135
136
|
|
|
136
137
|
const setTitleId = (id: string | null) => (_state.titleId = id)
|
|
137
138
|
|
|
138
|
-
const
|
|
139
|
+
const ready = BROWSER
|
|
140
|
+
const enabled = $derived(ready ? dialogState === DialogStates.Open : false)
|
|
139
141
|
const nestedPortals = useNestedPortals()
|
|
140
142
|
const { portals } = $derived(nestedPortals)
|
|
141
143
|
|
|
@@ -145,7 +147,7 @@
|
|
|
145
147
|
// `<Dialog.Title>` because they cause the parent to re-render
|
|
146
148
|
const defaultContainer: { readonly current: HTMLElement | undefined } = {
|
|
147
149
|
get current() {
|
|
148
|
-
return _state.panelRef ??
|
|
150
|
+
return _state.panelRef ?? element
|
|
149
151
|
},
|
|
150
152
|
}
|
|
151
153
|
|
|
@@ -184,7 +186,7 @@
|
|
|
184
186
|
return [
|
|
185
187
|
// Allow the headlessui-portal of the Dialog to be interactive. This
|
|
186
188
|
// contains the current dialog and the necessary focus guard elements.
|
|
187
|
-
|
|
189
|
+
element?.closest<HTMLElement>("[data-headlessui-portal]") ?? null,
|
|
188
190
|
]
|
|
189
191
|
},
|
|
190
192
|
get disallowed() {
|
|
@@ -260,7 +262,7 @@
|
|
|
260
262
|
return enabled
|
|
261
263
|
},
|
|
262
264
|
get ref() {
|
|
263
|
-
return
|
|
265
|
+
return element
|
|
264
266
|
},
|
|
265
267
|
get ondisappear() {
|
|
266
268
|
return close
|
|
@@ -331,11 +333,11 @@
|
|
|
331
333
|
{#snippet internal(transitionProps?: Record<string, any>)}
|
|
332
334
|
<ForcePortalRoot force={true}>
|
|
333
335
|
<Portal>
|
|
334
|
-
<PortalGroup target={
|
|
336
|
+
<PortalGroup target={element ?? null}>
|
|
335
337
|
<ForcePortalRoot force={false}>
|
|
336
338
|
<FocusTrap
|
|
337
339
|
{initialFocus}
|
|
338
|
-
initialFocusFallback={
|
|
340
|
+
initialFocusFallback={element}
|
|
339
341
|
containers={resolvedRootContainers}
|
|
340
342
|
features={focusTrapFeatures}
|
|
341
343
|
>
|
|
@@ -347,7 +349,7 @@
|
|
|
347
349
|
features={DialogRenderFeatures}
|
|
348
350
|
visible={dialogState === DialogStates.Open}
|
|
349
351
|
name="Dialog"
|
|
350
|
-
bind:
|
|
352
|
+
bind:element
|
|
351
353
|
/>
|
|
352
354
|
</FocusTrap>
|
|
353
355
|
</ForcePortalRoot>
|
|
@@ -358,7 +360,7 @@
|
|
|
358
360
|
|
|
359
361
|
{#if (open !== undefined || transition) && !theirProps.static}
|
|
360
362
|
<MainTreeProvider>
|
|
361
|
-
<Transition show={open} {transition} unmount={
|
|
363
|
+
<Transition asChild show={open} {transition} unmount={rest.unmount} {element}>
|
|
362
364
|
{#snippet children({ props })}
|
|
363
365
|
{@render internal(props)}
|
|
364
366
|
{/snippet}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
import { type PropsForFeatures } from "../utils/render.js";
|
|
3
3
|
export declare const DEFAULT_DIALOG_TAG: "div";
|
|
4
4
|
export type DialogRenderPropArg = {
|
|
5
5
|
open: boolean;
|
|
6
6
|
};
|
|
7
|
-
type DialogPropsWeControl = "aria-describedby" | "aria-labelledby" | "aria-modal";
|
|
8
7
|
export declare const DialogRenderFeatures: number;
|
|
9
|
-
export type DialogProps
|
|
10
|
-
|
|
8
|
+
export type DialogProps = Props<typeof DEFAULT_DIALOG_TAG, DialogRenderPropArg, PropsForFeatures<typeof DialogRenderFeatures> & {
|
|
9
|
+
element?: HTMLElement;
|
|
11
10
|
id?: string;
|
|
12
11
|
open?: boolean;
|
|
13
12
|
onclose(value: boolean): void;
|
|
@@ -17,41 +16,5 @@ export type DialogProps<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG> =
|
|
|
17
16
|
transition?: boolean;
|
|
18
17
|
__demoMode?: boolean;
|
|
19
18
|
}>;
|
|
20
|
-
declare
|
|
21
|
-
props(): {
|
|
22
|
-
as?: TTag | undefined;
|
|
23
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "autofocus" | "unmount" | "static" | "id" | "role" | "onclose" | "initialFocus" | "transition" | DialogPropsWeControl | "open" | "__demoMode"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
24
|
-
children?: import("svelte").Snippet<[DialogRenderPropArg & {
|
|
25
|
-
props?: Record<string, any>;
|
|
26
|
-
}]> | undefined;
|
|
27
|
-
class?: string | ((bag: DialogRenderPropArg) => string) | null | undefined;
|
|
28
|
-
ref?: HTMLElement;
|
|
29
|
-
} & {
|
|
30
|
-
static?: boolean | undefined;
|
|
31
|
-
unmount?: boolean | undefined;
|
|
32
|
-
} & {
|
|
33
|
-
as?: TTag | undefined;
|
|
34
|
-
id?: string;
|
|
35
|
-
open?: boolean;
|
|
36
|
-
onclose(value: boolean): void;
|
|
37
|
-
initialFocus?: HTMLElement;
|
|
38
|
-
role?: "dialog" | "alertdialog";
|
|
39
|
-
autofocus?: boolean;
|
|
40
|
-
transition?: boolean;
|
|
41
|
-
__demoMode?: boolean;
|
|
42
|
-
};
|
|
43
|
-
events(): {};
|
|
44
|
-
slots(): {};
|
|
45
|
-
bindings(): "ref";
|
|
46
|
-
exports(): {};
|
|
47
|
-
}
|
|
48
|
-
interface $$IsomorphicComponent {
|
|
49
|
-
new <TTag extends ElementType = typeof DEFAULT_DIALOG_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']>> & {
|
|
50
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
51
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
52
|
-
<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
53
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
54
|
-
}
|
|
55
|
-
declare const Dialog: $$IsomorphicComponent;
|
|
56
|
-
type Dialog<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG> = InstanceType<typeof Dialog<TTag>>;
|
|
19
|
+
declare const Dialog: import("svelte").Component<DialogProps, {}, "element">;
|
|
57
20
|
export default Dialog;
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
|
+
import type { SvelteHTMLElements } from "svelte/elements"
|
|
3
4
|
|
|
4
5
|
let DEFAULT_BACKDROP_TAG = "div" as const
|
|
5
6
|
type BackdropRenderPropArg = {
|
|
6
7
|
open: boolean
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
export type DialogBackdropProps
|
|
10
|
-
|
|
10
|
+
export type DialogBackdropProps = Props<
|
|
11
|
+
typeof DEFAULT_BACKDROP_TAG,
|
|
11
12
|
BackdropRenderPropArg,
|
|
12
|
-
|
|
13
|
-
{ transition?: boolean }
|
|
13
|
+
{ transition?: boolean; element?: HTMLElement }
|
|
14
14
|
>
|
|
15
15
|
</script>
|
|
16
16
|
|
|
17
|
-
<script lang="ts"
|
|
17
|
+
<script lang="ts">
|
|
18
18
|
import { DialogStates, useDialogContext } from "./context.svelte.js"
|
|
19
19
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
20
20
|
import { mergeProps } from "../utils/render.js"
|
|
21
21
|
import TransitionChild from "../transition/TransitionChild.svelte"
|
|
22
22
|
|
|
23
|
-
let {
|
|
23
|
+
let { element = $bindable(), transition = false, ...theirProps }: DialogBackdropProps = $props()
|
|
24
24
|
const _state = useDialogContext("Dialog.Panel")
|
|
25
25
|
const { dialogState, unmount } = $derived(_state)
|
|
26
26
|
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
</script>
|
|
33
33
|
|
|
34
34
|
{#if transition}
|
|
35
|
-
<TransitionChild {unmount} {
|
|
35
|
+
<TransitionChild asChild {unmount} {element}>
|
|
36
36
|
{#snippet children({ props, ...slot })}
|
|
37
37
|
<ElementOrComponent
|
|
38
38
|
ourProps={{ ...ourProps, ...props }}
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
slots={slot}
|
|
41
41
|
defaultTag={DEFAULT_BACKDROP_TAG}
|
|
42
42
|
name="DialogBackdrop"
|
|
43
|
-
bind:
|
|
43
|
+
bind:element
|
|
44
44
|
/>
|
|
45
45
|
{/snippet}
|
|
46
46
|
</TransitionChild>
|
|
@@ -51,6 +51,6 @@
|
|
|
51
51
|
slots={slot}
|
|
52
52
|
defaultTag={DEFAULT_BACKDROP_TAG}
|
|
53
53
|
name="DialogBackdrop"
|
|
54
|
-
bind:
|
|
54
|
+
bind:element
|
|
55
55
|
/>
|
|
56
56
|
{/if}
|
|
@@ -1,35 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare let DEFAULT_BACKDROP_TAG: "div";
|
|
3
3
|
type BackdropRenderPropArg = {
|
|
4
4
|
open: boolean;
|
|
5
5
|
};
|
|
6
|
-
export type DialogBackdropProps
|
|
6
|
+
export type DialogBackdropProps = Props<typeof DEFAULT_BACKDROP_TAG, BackdropRenderPropArg, {
|
|
7
7
|
transition?: boolean;
|
|
8
|
+
element?: HTMLElement;
|
|
8
9
|
}>;
|
|
9
|
-
declare
|
|
10
|
-
props(): {
|
|
11
|
-
as?: TTag | undefined;
|
|
12
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "transition"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
13
|
-
children?: import("svelte").Snippet<[BackdropRenderPropArg & {
|
|
14
|
-
props?: Record<string, any>;
|
|
15
|
-
}]> | undefined;
|
|
16
|
-
class?: string | ((bag: BackdropRenderPropArg) => string) | null | undefined;
|
|
17
|
-
ref?: HTMLElement;
|
|
18
|
-
} & {
|
|
19
|
-
transition?: boolean;
|
|
20
|
-
};
|
|
21
|
-
events(): {};
|
|
22
|
-
slots(): {};
|
|
23
|
-
bindings(): "ref";
|
|
24
|
-
exports(): {};
|
|
25
|
-
}
|
|
26
|
-
interface $$IsomorphicComponent {
|
|
27
|
-
new <TTag extends ElementType = typeof DEFAULT_BACKDROP_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_BACKDROP_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 DialogBackdrop: $$IsomorphicComponent;
|
|
34
|
-
type DialogBackdrop<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> = InstanceType<typeof DialogBackdrop<TTag>>;
|
|
10
|
+
declare const DialogBackdrop: import("svelte").Component<DialogBackdropProps, {}, "element">;
|
|
35
11
|
export default DialogBackdrop;
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
|
+
import type { SvelteHTMLElements } from "svelte/elements"
|
|
3
4
|
|
|
4
5
|
let DEFAULT_PANEL_TAG = "div" as const
|
|
5
6
|
type PanelRenderPropArg = {
|
|
6
7
|
open: boolean
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
export type DialogPanelProps
|
|
10
|
-
|
|
10
|
+
export type DialogPanelProps = Props<
|
|
11
|
+
typeof DEFAULT_PANEL_TAG,
|
|
11
12
|
PanelRenderPropArg,
|
|
12
|
-
never,
|
|
13
13
|
{
|
|
14
|
+
element?: HTMLElement
|
|
14
15
|
id?: string
|
|
15
16
|
transition?: boolean
|
|
16
17
|
}
|
|
17
18
|
>
|
|
18
19
|
</script>
|
|
19
20
|
|
|
20
|
-
<script lang="ts"
|
|
21
|
+
<script lang="ts">
|
|
21
22
|
import { useId } from "../hooks/use-id.js"
|
|
22
23
|
import { DialogStates, useDialogContext } from "./context.svelte.js"
|
|
23
24
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
@@ -26,11 +27,11 @@
|
|
|
26
27
|
|
|
27
28
|
let internalId = useId()
|
|
28
29
|
let {
|
|
29
|
-
|
|
30
|
+
element = $bindable(),
|
|
30
31
|
id = `headlessui-dialog-panel-${internalId}`,
|
|
31
32
|
transition = false,
|
|
32
33
|
...theirProps
|
|
33
|
-
}:
|
|
34
|
+
}: DialogPanelProps = $props()
|
|
34
35
|
const _state = useDialogContext("Dialog.Panel")
|
|
35
36
|
const { dialogState, unmount } = $derived(_state)
|
|
36
37
|
|
|
@@ -51,7 +52,7 @@
|
|
|
51
52
|
</script>
|
|
52
53
|
|
|
53
54
|
{#if transition}
|
|
54
|
-
<TransitionChild {unmount} {
|
|
55
|
+
<TransitionChild asChild {unmount} {element}>
|
|
55
56
|
{#snippet children({ props, ...slot })}
|
|
56
57
|
<ElementOrComponent
|
|
57
58
|
ourProps={{ ...ourProps, ...props }}
|
|
@@ -59,10 +60,17 @@
|
|
|
59
60
|
slots={slot}
|
|
60
61
|
defaultTag={DEFAULT_PANEL_TAG}
|
|
61
62
|
name="DialogPanel"
|
|
62
|
-
bind:
|
|
63
|
+
bind:element
|
|
63
64
|
/>
|
|
64
65
|
{/snippet}
|
|
65
66
|
</TransitionChild>
|
|
66
67
|
{:else}
|
|
67
|
-
<ElementOrComponent
|
|
68
|
+
<ElementOrComponent
|
|
69
|
+
{ourProps}
|
|
70
|
+
{theirProps}
|
|
71
|
+
slots={slot}
|
|
72
|
+
defaultTag={DEFAULT_PANEL_TAG}
|
|
73
|
+
name="DialogPanel"
|
|
74
|
+
bind:element
|
|
75
|
+
/>
|
|
68
76
|
{/if}
|
|
@@ -1,37 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare let DEFAULT_PANEL_TAG: "div";
|
|
3
3
|
type PanelRenderPropArg = {
|
|
4
4
|
open: boolean;
|
|
5
5
|
};
|
|
6
|
-
export type DialogPanelProps
|
|
6
|
+
export type DialogPanelProps = Props<typeof DEFAULT_PANEL_TAG, PanelRenderPropArg, {
|
|
7
|
+
element?: HTMLElement;
|
|
7
8
|
id?: string;
|
|
8
9
|
transition?: boolean;
|
|
9
10
|
}>;
|
|
10
|
-
declare
|
|
11
|
-
props(): {
|
|
12
|
-
as?: TTag | undefined;
|
|
13
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "id" | "transition"> 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<[PanelRenderPropArg & {
|
|
15
|
-
props?: Record<string, any>;
|
|
16
|
-
}]> | undefined;
|
|
17
|
-
class?: string | ((bag: PanelRenderPropArg) => string) | null | undefined;
|
|
18
|
-
ref?: HTMLElement;
|
|
19
|
-
} & {
|
|
20
|
-
id?: string;
|
|
21
|
-
transition?: boolean;
|
|
22
|
-
};
|
|
23
|
-
events(): {};
|
|
24
|
-
slots(): {};
|
|
25
|
-
bindings(): "ref";
|
|
26
|
-
exports(): {};
|
|
27
|
-
}
|
|
28
|
-
interface $$IsomorphicComponent {
|
|
29
|
-
new <TTag extends ElementType = typeof DEFAULT_PANEL_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_PANEL_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 DialogPanel: $$IsomorphicComponent;
|
|
36
|
-
type DialogPanel<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = InstanceType<typeof DialogPanel<TTag>>;
|
|
11
|
+
declare const DialogPanel: import("svelte").Component<DialogPanelProps, {}, "element">;
|
|
37
12
|
export default DialogPanel;
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
|
+
import type { SvelteHTMLElements } from "svelte/elements"
|
|
3
4
|
|
|
4
5
|
let DEFAULT_TITLE_TAG = "h2" as const
|
|
5
6
|
type TitleRenderPropArg = {
|
|
6
7
|
open: boolean
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
export type DialogTitleProps
|
|
10
|
+
export type DialogTitleProps = Props<
|
|
11
|
+
typeof DEFAULT_TITLE_TAG,
|
|
12
|
+
TitleRenderPropArg,
|
|
13
|
+
{ id?: string; element?: HTMLElement }
|
|
14
|
+
>
|
|
10
15
|
|
|
11
16
|
//
|
|
12
17
|
</script>
|
|
13
18
|
|
|
14
|
-
<script lang="ts"
|
|
19
|
+
<script lang="ts">
|
|
15
20
|
import { useId } from "../hooks/use-id.js"
|
|
16
21
|
import { DialogStates, useDialogContext } from "./context.svelte.js"
|
|
17
22
|
import { onMount } from "svelte"
|
|
@@ -20,10 +25,10 @@
|
|
|
20
25
|
|
|
21
26
|
const internalId = useId()
|
|
22
27
|
let {
|
|
23
|
-
|
|
24
|
-
id = `headlessui-dialog-title-${internalId}
|
|
28
|
+
element = $bindable(),
|
|
29
|
+
id = `headlessui-dialog-title-${internalId}`,
|
|
25
30
|
...theirProps
|
|
26
|
-
}:
|
|
31
|
+
}: DialogTitleProps = $props()
|
|
27
32
|
const _state = useDialogContext("Dialog.Panel")
|
|
28
33
|
const { dialogState, setTitleId } = $derived(_state)
|
|
29
34
|
|
|
@@ -41,4 +46,11 @@
|
|
|
41
46
|
)
|
|
42
47
|
</script>
|
|
43
48
|
|
|
44
|
-
<ElementOrComponent
|
|
49
|
+
<ElementOrComponent
|
|
50
|
+
{ourProps}
|
|
51
|
+
{theirProps}
|
|
52
|
+
slots={slot}
|
|
53
|
+
defaultTag={DEFAULT_TITLE_TAG}
|
|
54
|
+
name="DialogTitle"
|
|
55
|
+
bind:element
|
|
56
|
+
/>
|
|
@@ -1,31 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare let DEFAULT_TITLE_TAG: "h2";
|
|
3
3
|
type TitleRenderPropArg = {
|
|
4
4
|
open: boolean;
|
|
5
5
|
};
|
|
6
|
-
export type DialogTitleProps
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
children?: import("svelte").Snippet<[TitleRenderPropArg & {
|
|
12
|
-
props?: Record<string, any>;
|
|
13
|
-
}]> | undefined;
|
|
14
|
-
class?: string | ((bag: TitleRenderPropArg) => 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_TITLE_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_TITLE_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 DialogTitle: $$IsomorphicComponent;
|
|
30
|
-
type DialogTitle<TTag extends ElementType = typeof DEFAULT_TITLE_TAG> = InstanceType<typeof DialogTitle<TTag>>;
|
|
6
|
+
export type DialogTitleProps = Props<typeof DEFAULT_TITLE_TAG, TitleRenderPropArg, {
|
|
7
|
+
id?: string;
|
|
8
|
+
element?: HTMLElement;
|
|
9
|
+
}>;
|
|
10
|
+
declare const DialogTitle: import("svelte").Component<DialogTitleProps, {}, "element">;
|
|
31
11
|
export default DialogTitle;
|
package/dist/field/Field.svelte
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
3
|
|
|
4
4
|
let DEFAULT_FIELD_TAG = "div" as const
|
|
5
5
|
|
|
6
6
|
type FieldRenderPropArg = {}
|
|
7
|
-
type FieldPropsWeControl = never
|
|
8
7
|
|
|
9
|
-
export type FieldProps
|
|
10
|
-
|
|
8
|
+
export type FieldProps = Props<
|
|
9
|
+
typeof DEFAULT_FIELD_TAG,
|
|
11
10
|
FieldRenderPropArg,
|
|
12
|
-
FieldPropsWeControl,
|
|
13
11
|
{
|
|
12
|
+
element?: HTMLElement
|
|
14
13
|
disabled?: boolean
|
|
15
14
|
}
|
|
16
15
|
>
|
|
17
16
|
</script>
|
|
18
17
|
|
|
19
|
-
<script lang="ts"
|
|
18
|
+
<script lang="ts">
|
|
20
19
|
import { provideDisabled } from "../hooks/use-disabled.js"
|
|
21
20
|
import { createIdContext } from "../utils/id.js"
|
|
22
21
|
import { nanoid } from "nanoid"
|
|
@@ -25,12 +24,7 @@
|
|
|
25
24
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
26
25
|
import FormFieldsProvider from "../internal/FormFieldsProvider.svelte"
|
|
27
26
|
|
|
28
|
-
let {
|
|
29
|
-
ref = $bindable(),
|
|
30
|
-
disabled: ownDisabled = false,
|
|
31
|
-
children,
|
|
32
|
-
...theirProps
|
|
33
|
-
}: { as?: TTag } & FieldProps<TTag> = $props()
|
|
27
|
+
let { element = $bindable(), disabled: ownDisabled = false, children, ...theirProps }: FieldProps = $props()
|
|
34
28
|
|
|
35
29
|
const inputId = `headlessui-control-${nanoid(8)}`
|
|
36
30
|
createIdContext(inputId)
|
|
@@ -49,9 +43,9 @@
|
|
|
49
43
|
})
|
|
50
44
|
</script>
|
|
51
45
|
|
|
52
|
-
{#snippet wrapper(args:
|
|
46
|
+
{#snippet wrapper(args: { props: Record<string, any> })}
|
|
53
47
|
<FormFieldsProvider>
|
|
54
|
-
{
|
|
48
|
+
{@render children?.(args)}
|
|
55
49
|
</FormFieldsProvider>
|
|
56
50
|
{/snippet}
|
|
57
51
|
|
|
@@ -61,5 +55,5 @@
|
|
|
61
55
|
{slot}
|
|
62
56
|
defaultTag={DEFAULT_FIELD_TAG}
|
|
63
57
|
name="Field"
|
|
64
|
-
bind:
|
|
58
|
+
bind:element
|
|
65
59
|
/>
|
|
@@ -1,34 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare let DEFAULT_FIELD_TAG: "div";
|
|
3
3
|
type FieldRenderPropArg = {};
|
|
4
|
-
type
|
|
5
|
-
|
|
4
|
+
export type FieldProps = Props<typeof DEFAULT_FIELD_TAG, FieldRenderPropArg, {
|
|
5
|
+
element?: HTMLElement;
|
|
6
6
|
disabled?: boolean;
|
|
7
7
|
}>;
|
|
8
|
-
declare
|
|
9
|
-
props(): {
|
|
10
|
-
as?: TTag | undefined;
|
|
11
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "disabled"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
12
|
-
children?: import("svelte").Snippet<[{
|
|
13
|
-
props?: Record<string, any>;
|
|
14
|
-
}]> | undefined;
|
|
15
|
-
class?: string | ((bag: FieldRenderPropArg) => string) | null | undefined;
|
|
16
|
-
ref?: HTMLElement;
|
|
17
|
-
} & {
|
|
18
|
-
disabled?: boolean;
|
|
19
|
-
};
|
|
20
|
-
events(): {};
|
|
21
|
-
slots(): {};
|
|
22
|
-
bindings(): "ref";
|
|
23
|
-
exports(): {};
|
|
24
|
-
}
|
|
25
|
-
interface $$IsomorphicComponent {
|
|
26
|
-
new <TTag extends ElementType = typeof DEFAULT_FIELD_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_FIELD_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 Field: $$IsomorphicComponent;
|
|
33
|
-
type Field<TTag extends ElementType = typeof DEFAULT_FIELD_TAG> = InstanceType<typeof Field<TTag>>;
|
|
8
|
+
declare const Field: import("svelte").Component<FieldProps, {}, "element">;
|
|
34
9
|
export default Field;
|