@pzerelles/headlessui-svelte 2.1.1-next.1 → 2.1.2-next.3
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 +6 -10
- package/dist/button/Button.svelte.d.ts +34 -26
- package/dist/checkbox/Checkbox.svelte +40 -22
- package/dist/checkbox/Checkbox.svelte.d.ts +44 -28
- package/dist/close-button/CloseButton.svelte +5 -4
- package/dist/close-button/CloseButton.svelte.d.ts +36 -13
- package/dist/combobox/Combobox.svelte +2 -2
- package/dist/combobox/Combobox.svelte.d.ts +9 -9
- package/dist/data-interactive/DataInteractive.svelte +41 -0
- package/dist/data-interactive/DataInteractive.svelte.d.ts +39 -0
- package/dist/data-interactive/index.d.ts +1 -0
- package/dist/data-interactive/index.js +1 -0
- package/dist/description/Description.svelte +10 -53
- package/dist/description/Description.svelte.d.ts +15 -32
- package/dist/description/context.svelte.d.ts +17 -0
- package/dist/description/context.svelte.js +51 -0
- package/dist/dialog/Dialog.svelte +51 -0
- package/dist/dialog/Dialog.svelte.d.ts +60 -0
- package/dist/dialog/DialogBackdrop.svelte +39 -0
- package/dist/dialog/DialogBackdrop.svelte.d.ts +38 -0
- package/dist/dialog/DialogPanel.svelte +46 -0
- package/dist/dialog/DialogPanel.svelte.d.ts +40 -0
- package/dist/dialog/DialogTitle.svelte +29 -0
- package/dist/dialog/DialogTitle.svelte.d.ts +34 -0
- package/dist/dialog/InternalDialog.svelte +233 -0
- package/dist/dialog/InternalDialog.svelte.d.ts +42 -0
- package/dist/dialog/context.svelte.d.ts +15 -0
- package/dist/dialog/context.svelte.js +16 -0
- package/dist/dialog/index.d.ts +4 -0
- package/dist/dialog/index.js +4 -0
- package/dist/field/Field.svelte +8 -10
- package/dist/field/Field.svelte.d.ts +21 -17
- package/dist/fieldset/Fieldset.svelte +11 -9
- package/dist/fieldset/Fieldset.svelte.d.ts +21 -17
- package/dist/focus-trap/FocusTrap.svelte +332 -0
- package/dist/focus-trap/FocusTrap.svelte.d.ts +58 -0
- package/dist/hooks/use-controllable.svelte.d.ts +1 -1
- package/dist/hooks/use-controllable.svelte.js +3 -3
- package/dist/hooks/use-escape.svelte.d.ts +5 -0
- package/dist/hooks/use-escape.svelte.js +26 -0
- package/dist/hooks/use-event-listener.svelte.d.ts +6 -0
- package/dist/hooks/use-event-listener.svelte.js +12 -0
- package/dist/hooks/use-inert-others.svelte.d.ts +2 -2
- package/dist/hooks/use-inert-others.svelte.js +3 -3
- package/dist/hooks/use-is-mounted.svelte.d.ts +3 -0
- package/dist/hooks/use-is-mounted.svelte.js +14 -0
- package/dist/hooks/use-is-touch-device.svelte.d.ts +3 -0
- package/dist/hooks/use-is-touch-device.svelte.js +20 -0
- package/dist/hooks/use-root-containers.svelte.d.ts +9 -0
- package/dist/hooks/use-root-containers.svelte.js +50 -0
- package/dist/hooks/use-tab-direction.svelte.d.ts +7 -0
- package/dist/hooks/use-tab-direction.svelte.js +25 -0
- package/dist/hooks/use-transition.svelte.js +14 -13
- package/dist/hooks/use-tree-walker.svelte.d.ts +8 -0
- package/dist/hooks/use-tree-walker.svelte.js +19 -0
- package/dist/hooks/use-watch.svelte.d.ts +4 -0
- package/dist/hooks/use-watch.svelte.js +16 -0
- package/dist/hooks/use-window-event.svelte.d.ts +6 -0
- package/dist/hooks/use-window-event.svelte.js +12 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +10 -0
- package/dist/input/Input.svelte +59 -0
- package/dist/input/Input.svelte.d.ts +52 -0
- package/dist/input/index.d.ts +1 -0
- package/dist/input/index.js +1 -0
- package/dist/internal/FocusSentinel.svelte.d.ts +4 -1
- package/dist/internal/ForcePortalRoot.svelte +6 -0
- package/dist/internal/ForcePortalRoot.svelte.d.ts +22 -0
- package/dist/internal/FormFields.svelte.d.ts +4 -1
- package/dist/internal/FormResolver.svelte.d.ts +4 -1
- package/dist/internal/Hidden.svelte +5 -9
- package/dist/internal/Hidden.svelte.d.ts +17 -10
- package/dist/internal/HoistFormFields.svelte.d.ts +4 -1
- package/dist/internal/MainTreeProvider.svelte +45 -0
- package/dist/internal/MainTreeProvider.svelte.d.ts +31 -0
- package/dist/internal/Portal.svelte.d.ts +4 -1
- package/dist/internal/close-provider.d.ts +7 -0
- package/dist/internal/close-provider.js +7 -0
- package/dist/internal/floating.svelte.d.ts +13 -8
- package/dist/internal/floating.svelte.js +197 -186
- package/dist/internal/id.d.ts +1 -1
- package/dist/internal/open-closed.d.ts +1 -1
- package/dist/internal/open-closed.js +1 -1
- package/dist/label/Label.svelte +12 -61
- package/dist/label/Label.svelte.d.ts +19 -32
- package/dist/label/context.svelte.d.ts +17 -0
- package/dist/label/context.svelte.js +56 -0
- package/dist/legend/Legend.svelte +4 -3
- package/dist/legend/Legend.svelte.d.ts +33 -15
- package/dist/listbox/Listbox.svelte +6 -9
- package/dist/listbox/Listbox.svelte.d.ts +29 -10
- package/dist/listbox/ListboxButton.svelte +6 -8
- package/dist/listbox/ListboxButton.svelte.d.ts +18 -7
- package/dist/listbox/ListboxOption.svelte +4 -6
- package/dist/listbox/ListboxOption.svelte.d.ts +22 -11
- package/dist/listbox/ListboxOptions.svelte +21 -19
- package/dist/listbox/ListboxOptions.svelte.d.ts +23 -7
- package/dist/listbox/ListboxSelectedOption.svelte +17 -7
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +23 -13
- package/dist/menu/Menu.svelte +235 -0
- package/dist/menu/Menu.svelte.d.ts +42 -0
- package/dist/menu/MenuButton.svelte +127 -0
- package/dist/menu/MenuButton.svelte.d.ts +52 -0
- package/dist/menu/MenuHeading.svelte +19 -0
- package/dist/menu/MenuHeading.svelte.d.ts +39 -0
- package/dist/menu/MenuItem.svelte +114 -0
- package/dist/menu/MenuItem.svelte.d.ts +49 -0
- package/dist/menu/MenuItems.svelte +244 -0
- package/dist/menu/MenuItems.svelte.d.ts +55 -0
- package/dist/menu/MenuSection.svelte +14 -0
- package/dist/menu/MenuSection.svelte.d.ts +35 -0
- package/dist/menu/MenuSeparator.svelte +9 -0
- package/dist/menu/MenuSeparator.svelte.d.ts +35 -0
- package/dist/menu/context.svelte.d.ts +47 -0
- package/dist/menu/context.svelte.js +21 -0
- package/dist/menu/index.d.ts +7 -0
- package/dist/menu/index.js +7 -0
- package/dist/portal/InternalPortal.svelte +22 -33
- package/dist/portal/InternalPortal.svelte.d.ts +16 -7
- package/dist/portal/Portal.svelte +4 -8
- package/dist/portal/Portal.svelte.d.ts +6 -6
- package/dist/portal/PortalGroup.svelte +5 -6
- package/dist/portal/PortalGroup.svelte.d.ts +16 -7
- package/dist/switch/Switch.svelte +11 -17
- package/dist/switch/Switch.svelte.d.ts +23 -6
- package/dist/switch/SwitchGroup.svelte +7 -8
- package/dist/switch/SwitchGroup.svelte.d.ts +14 -7
- package/dist/tabs/Tab.svelte +9 -14
- package/dist/tabs/Tab.svelte.d.ts +18 -6
- package/dist/tabs/TabGroup.svelte +20 -23
- package/dist/tabs/TabGroup.svelte.d.ts +19 -6
- package/dist/tabs/TabList.svelte +5 -7
- package/dist/tabs/TabList.svelte.d.ts +13 -6
- package/dist/tabs/TabPanel.svelte +30 -32
- package/dist/tabs/TabPanel.svelte.d.ts +19 -6
- package/dist/tabs/TabPanels.svelte +5 -6
- package/dist/tabs/TabPanels.svelte.d.ts +13 -6
- package/dist/textarea/Textarea.svelte +67 -0
- package/dist/textarea/Textarea.svelte.d.ts +47 -0
- package/dist/textarea/index.d.ts +1 -0
- package/dist/textarea/index.js +1 -0
- package/dist/transition/InternalTransitionChild.svelte +178 -0
- package/dist/transition/InternalTransitionChild.svelte.d.ts +55 -0
- package/dist/transition/Transition.svelte +89 -0
- package/dist/transition/Transition.svelte.d.ts +42 -0
- package/dist/transition/TransitionChild.svelte +16 -0
- package/dist/transition/TransitionChild.svelte.d.ts +44 -0
- package/dist/transition/context.svelte.d.ts +64 -0
- package/dist/transition/context.svelte.js +120 -0
- package/dist/transition/index.d.ts +2 -0
- package/dist/transition/index.js +2 -0
- package/dist/utils/ElementOrComponent.svelte +26 -0
- package/dist/utils/ElementOrComponent.svelte.d.ts +56 -0
- package/dist/utils/Generic.svelte +44 -0
- package/dist/utils/Generic.svelte.d.ts +35 -0
- package/dist/utils/StableCollection.svelte +1 -1
- package/dist/utils/StableCollection.svelte.d.ts +4 -1
- package/dist/utils/active-element-history.d.ts +1 -0
- package/dist/utils/active-element-history.js +35 -0
- package/dist/utils/alternative-types.d.ts +21 -0
- package/dist/utils/alternative-types.js +1 -0
- package/dist/utils/class-names.d.ts +1 -0
- package/dist/utils/class-names.js +10 -0
- package/dist/utils/focus-management.d.ts +2 -1
- package/dist/utils/focus-management.js +13 -13
- package/dist/utils/on-document-ready.d.ts +1 -0
- package/dist/utils/on-document-ready.js +12 -0
- package/dist/utils/render.d.ts +3 -0
- package/dist/utils/render.js +63 -0
- package/dist/utils/state.d.ts +7 -1
- package/dist/utils/state.js +10 -6
- package/dist/utils/types.d.ts +14 -17
- package/dist/utils/types.js +0 -5
- package/package.json +26 -25
- package/dist/tabs/Button.svelte +0 -65
- package/dist/tabs/Button.svelte.d.ts +0 -39
- package/dist/utils/close.d.ts +0 -2
- package/dist/utils/close.js +0 -3
|
@@ -1,32 +1,15 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
3
|
-
export type DescriptionProps<TTag extends
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
slot?: {};
|
|
14
|
-
name?: string;
|
|
15
|
-
props?: Record<string, any>;
|
|
16
|
-
}
|
|
17
|
-
export type DescriptionContext = {
|
|
18
|
-
value: string | undefined;
|
|
19
|
-
register(value: string): () => void;
|
|
20
|
-
} & SharedData;
|
|
21
|
-
export declare function useDescriptionContext(): DescriptionContext;
|
|
22
|
-
export declare function useDescribedBy(): {
|
|
23
|
-
readonly value: string | undefined;
|
|
24
|
-
};
|
|
25
|
-
export declare const useDescriptions: (options?: SharedData & {
|
|
26
|
-
inherit?: boolean;
|
|
27
|
-
}) => DescriptionContext;
|
|
28
|
-
declare class __sveltets_Render<TTag extends keyof SvelteHTMLElements> {
|
|
29
|
-
props(): DescriptionProps<TTag>;
|
|
1
|
+
import type { ElementType, Props, PropsOf } from "../utils/types.js";
|
|
2
|
+
declare let DEFAULT_DESCRIPTION_TAG: "p";
|
|
3
|
+
export type DescriptionProps<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> = Props<TTag>;
|
|
4
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> {
|
|
5
|
+
props(): {
|
|
6
|
+
as?: TTag | undefined;
|
|
7
|
+
} & (Exclude<keyof PropsOf<TTag>, "as" | "children" | "refName" | "class"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
|
|
8
|
+
children?: import("../utils/types.js").Children<{}> | undefined;
|
|
9
|
+
ref?: HTMLElement;
|
|
10
|
+
} & (true extends (PropsOf<TTag> extends infer T_1 ? T_1 extends PropsOf<TTag> ? T_1 extends never ? never : "class" extends infer T_2 ? T_2 extends "class" ? T_2 extends keyof T_1 ? true : never : never : never : never : never) ? {
|
|
11
|
+
class?: PropsOf<TTag>["class"] | ((bag: {}) => string) | undefined;
|
|
12
|
+
} : {});
|
|
30
13
|
events(): {} & {
|
|
31
14
|
[evt: string]: CustomEvent<any>;
|
|
32
15
|
};
|
|
@@ -35,14 +18,14 @@ declare class __sveltets_Render<TTag extends keyof SvelteHTMLElements> {
|
|
|
35
18
|
exports(): {};
|
|
36
19
|
}
|
|
37
20
|
interface $$IsomorphicComponent {
|
|
38
|
-
new <TTag extends
|
|
21
|
+
new <TTag extends ElementType = typeof DEFAULT_DESCRIPTION_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
22
|
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
40
23
|
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
41
|
-
<TTag extends
|
|
24
|
+
<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
42
25
|
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
43
26
|
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
44
27
|
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
45
28
|
}
|
|
46
29
|
declare const Description: $$IsomorphicComponent;
|
|
47
|
-
type Description<TTag extends
|
|
30
|
+
type Description<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> = InstanceType<typeof Description<TTag>>;
|
|
48
31
|
export default Description;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface SharedData {
|
|
2
|
+
slot?: {};
|
|
3
|
+
name?: string;
|
|
4
|
+
props?: Record<string, any>;
|
|
5
|
+
}
|
|
6
|
+
export type DescriptionContext = {
|
|
7
|
+
value: string | undefined;
|
|
8
|
+
register(value: string): () => void;
|
|
9
|
+
} & SharedData;
|
|
10
|
+
export declare function useDescriptionContext(): DescriptionContext;
|
|
11
|
+
export declare function useDescribedBy(): {
|
|
12
|
+
readonly value: string | undefined;
|
|
13
|
+
};
|
|
14
|
+
export declare const useDescriptions: (options?: SharedData & {
|
|
15
|
+
inherit?: boolean;
|
|
16
|
+
}) => DescriptionContext;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { getContext, setContext } from "svelte";
|
|
2
|
+
export function useDescriptionContext() {
|
|
3
|
+
let context = getContext("DescriptionContext");
|
|
4
|
+
if (context === null) {
|
|
5
|
+
let err = new Error("You used a <Description /> component, but it is not inside a relevant parent.");
|
|
6
|
+
if (Error.captureStackTrace)
|
|
7
|
+
Error.captureStackTrace(err, useDescriptionContext);
|
|
8
|
+
throw err;
|
|
9
|
+
}
|
|
10
|
+
return context;
|
|
11
|
+
}
|
|
12
|
+
export function useDescribedBy() {
|
|
13
|
+
const context = getContext("DescriptionContext");
|
|
14
|
+
return {
|
|
15
|
+
get value() {
|
|
16
|
+
return context?.value;
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export const useDescriptions = (options = {}) => {
|
|
21
|
+
const { slot, name, props, inherit } = $derived(options);
|
|
22
|
+
let descriptionIds = $state([]);
|
|
23
|
+
const value = $derived(descriptionIds.length > 0 ? descriptionIds.join(" ") : undefined);
|
|
24
|
+
const context = {
|
|
25
|
+
get slot() {
|
|
26
|
+
return slot;
|
|
27
|
+
},
|
|
28
|
+
get name() {
|
|
29
|
+
return name;
|
|
30
|
+
},
|
|
31
|
+
get props() {
|
|
32
|
+
return props;
|
|
33
|
+
},
|
|
34
|
+
get value() {
|
|
35
|
+
return value;
|
|
36
|
+
},
|
|
37
|
+
register(value) {
|
|
38
|
+
descriptionIds.push(value);
|
|
39
|
+
return () => {
|
|
40
|
+
const clone = descriptionIds.slice();
|
|
41
|
+
const idx = clone.indexOf(value);
|
|
42
|
+
if (idx !== -1)
|
|
43
|
+
clone.splice(idx, 1);
|
|
44
|
+
descriptionIds = clone;
|
|
45
|
+
return descriptionIds;
|
|
46
|
+
};
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
setContext("DescriptionContext", context);
|
|
50
|
+
return context;
|
|
51
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<script lang="ts" module>import { MainTreeProvider } from "../hooks/use-root-containers.svelte.js";
|
|
2
|
+
import { useOpenClosed } from "../internal/open-closed.js";
|
|
3
|
+
import { RenderFeatures } from "../utils/render.js";
|
|
4
|
+
import { getContext } from "svelte";
|
|
5
|
+
import InternalDialog from "./InternalDialog.svelte";
|
|
6
|
+
import Transition from "../transition/Transition.svelte";
|
|
7
|
+
export const DEFAULT_DIALOG_TAG = "div";
|
|
8
|
+
export const DialogRenderFeatures = RenderFeatures.RenderStrategy | RenderFeatures.Static;
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_DIALOG_TAG">let { ref = $bindable(), transition = false, open, ...rest } = $props();
|
|
12
|
+
const usesOpenClosedState = useOpenClosed();
|
|
13
|
+
const hasOpen = $derived(open !== void 0 || usesOpenClosedState);
|
|
14
|
+
const hasOnClose = $derived(rest.hasOwnProperty("onclose"));
|
|
15
|
+
$effect(() => {
|
|
16
|
+
if (!hasOpen && !hasOnClose) {
|
|
17
|
+
throw new Error(`You have to provide an \`open\` and an \`onclose\` prop to the \`Dialog\` component.`);
|
|
18
|
+
}
|
|
19
|
+
if (!hasOpen) {
|
|
20
|
+
throw new Error(`You provided an \`onclose\` prop to the \`Dialog\`, but forgot an \`open\` prop.`);
|
|
21
|
+
}
|
|
22
|
+
if (!hasOnClose) {
|
|
23
|
+
throw new Error(`You provided an \`open\` prop to the \`Dialog\`, but forgot an \`onclose\` prop.`);
|
|
24
|
+
}
|
|
25
|
+
if (!usesOpenClosedState && typeof open !== "boolean") {
|
|
26
|
+
throw new Error(
|
|
27
|
+
`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${open}`
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
if (typeof rest.onclose !== "function") {
|
|
31
|
+
throw new Error(
|
|
32
|
+
`You provided an \`onclose\` prop to the \`Dialog\`, but the value is not a function. Received: ${rest.onclose}`
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
const DialogComponent = InternalDialog;
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
{#if (open !== undefined || transition) && !rest.static}
|
|
40
|
+
<MainTreeProvider>
|
|
41
|
+
<Transition show={open} {transition} unmount={rest.unmount} {ref}>
|
|
42
|
+
{#snippet children(slot, props)}
|
|
43
|
+
<DialogComponent bind:ref {...props} {...rest} />
|
|
44
|
+
{/snippet}
|
|
45
|
+
</Transition>
|
|
46
|
+
</MainTreeProvider>
|
|
47
|
+
{:else}
|
|
48
|
+
<MainTreeProvider>
|
|
49
|
+
<DialogComponent bind:ref {open} {...rest} />
|
|
50
|
+
</MainTreeProvider>
|
|
51
|
+
{/if}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type PropsForFeatures } from "../utils/render.js";
|
|
2
|
+
import type { ElementType, Props } from "../utils/types.js";
|
|
3
|
+
import { type Snippet } from "svelte";
|
|
4
|
+
export declare const DEFAULT_DIALOG_TAG: "div";
|
|
5
|
+
export type DialogRenderPropArg = {
|
|
6
|
+
open: boolean;
|
|
7
|
+
};
|
|
8
|
+
type DialogPropsWeControl = "aria-describedby" | "aria-labelledby" | "aria-modal";
|
|
9
|
+
export declare const DialogRenderFeatures: number;
|
|
10
|
+
export type DialogProps<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG> = Props<TTag, DialogRenderPropArg, DialogPropsWeControl, PropsForFeatures<typeof DialogRenderFeatures> & {
|
|
11
|
+
id?: string;
|
|
12
|
+
open?: boolean;
|
|
13
|
+
onclose(value: boolean): void;
|
|
14
|
+
initialFocus?: HTMLElement;
|
|
15
|
+
role?: "dialog" | "alertdialog";
|
|
16
|
+
autofocus?: boolean;
|
|
17
|
+
transition?: boolean;
|
|
18
|
+
__demoMode?: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
export type DialogChildren = Snippet<[DialogRenderPropArg]>;
|
|
21
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG> {
|
|
22
|
+
props(): {
|
|
23
|
+
as?: TTag | undefined;
|
|
24
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "autofocus" | "unmount" | "static" | "id" | "role" | "onclose" | "initialFocus" | DialogPropsWeControl | "open" | "transition" | "__demoMode"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
25
|
+
children?: import("../utils/types.js").Children<DialogRenderPropArg> | undefined;
|
|
26
|
+
ref?: HTMLElement;
|
|
27
|
+
} & (true extends (import("../utils/types.js").PropsOf<TTag> extends infer T_1 ? T_1 extends import("../utils/types.js").PropsOf<TTag> ? T_1 extends never ? never : "class" extends infer T_2 ? T_2 extends "class" ? T_2 extends keyof T_1 ? true : never : never : never : never : never) ? {
|
|
28
|
+
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: DialogRenderPropArg) => string) | undefined;
|
|
29
|
+
} : {}) & {
|
|
30
|
+
static?: boolean | undefined;
|
|
31
|
+
unmount?: boolean | undefined;
|
|
32
|
+
} & {
|
|
33
|
+
id?: string;
|
|
34
|
+
open?: boolean;
|
|
35
|
+
onclose(value: boolean): void;
|
|
36
|
+
initialFocus?: HTMLElement;
|
|
37
|
+
role?: "dialog" | "alertdialog";
|
|
38
|
+
autofocus?: boolean;
|
|
39
|
+
transition?: boolean;
|
|
40
|
+
__demoMode?: boolean;
|
|
41
|
+
};
|
|
42
|
+
events(): {} & {
|
|
43
|
+
[evt: string]: CustomEvent<any>;
|
|
44
|
+
};
|
|
45
|
+
slots(): {};
|
|
46
|
+
bindings(): "ref";
|
|
47
|
+
exports(): {};
|
|
48
|
+
}
|
|
49
|
+
interface $$IsomorphicComponent {
|
|
50
|
+
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']>> & {
|
|
51
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
52
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
53
|
+
<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
54
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
55
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
56
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
57
|
+
}
|
|
58
|
+
declare const Dialog: $$IsomorphicComponent;
|
|
59
|
+
type Dialog<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG> = InstanceType<typeof Dialog<TTag>>;
|
|
60
|
+
export default Dialog;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<script lang="ts" module>let DEFAULT_BACKDROP_TAG = "div";
|
|
2
|
+
</script>
|
|
3
|
+
|
|
4
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG">import { DialogStates, useDialogContext } from "./context.svelte.js";
|
|
5
|
+
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
6
|
+
import { mergeProps } from "../utils/render.js";
|
|
7
|
+
import TransitionChild from "../transition/TransitionChild.svelte";
|
|
8
|
+
let { ref = $bindable(), transition = false, ...theirProps } = $props();
|
|
9
|
+
const _state = useDialogContext("Dialog.Panel");
|
|
10
|
+
const { dialogState, unmount } = $derived(_state);
|
|
11
|
+
const slot = $derived({ open: dialogState === DialogStates.Open });
|
|
12
|
+
const ourProps = mergeProps({
|
|
13
|
+
"aria-hidden": true
|
|
14
|
+
});
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
{#if transition}
|
|
18
|
+
<TransitionChild {unmount} {ref}>
|
|
19
|
+
{#snippet children(slot, props)}
|
|
20
|
+
<ElementOrComponent
|
|
21
|
+
ourProps={{ ...ourProps, ...props }}
|
|
22
|
+
{theirProps}
|
|
23
|
+
slots={slot}
|
|
24
|
+
defaultTag={DEFAULT_BACKDROP_TAG}
|
|
25
|
+
name="DialogBackdrop"
|
|
26
|
+
bind:ref
|
|
27
|
+
/>
|
|
28
|
+
{/snippet}
|
|
29
|
+
</TransitionChild>
|
|
30
|
+
{:else}
|
|
31
|
+
<ElementOrComponent
|
|
32
|
+
{ourProps}
|
|
33
|
+
{theirProps}
|
|
34
|
+
slots={slot}
|
|
35
|
+
defaultTag={DEFAULT_BACKDROP_TAG}
|
|
36
|
+
name="DialogBackdrop"
|
|
37
|
+
bind:ref
|
|
38
|
+
/>
|
|
39
|
+
{/if}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { ElementType, Props } from "../utils/types.js";
|
|
2
|
+
declare let DEFAULT_BACKDROP_TAG: "div";
|
|
3
|
+
type BackdropRenderPropArg = {
|
|
4
|
+
open: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type DialogBackdropProps<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> = Props<TTag, BackdropRenderPropArg, never, {
|
|
7
|
+
transition?: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> {
|
|
10
|
+
props(): {
|
|
11
|
+
as?: TTag | undefined;
|
|
12
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "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("../utils/types.js").Children<BackdropRenderPropArg> | undefined;
|
|
14
|
+
ref?: HTMLElement;
|
|
15
|
+
} & (true extends (import("../utils/types.js").PropsOf<TTag> extends infer T_1 ? T_1 extends import("../utils/types.js").PropsOf<TTag> ? T_1 extends never ? never : "class" extends infer T_2 ? T_2 extends "class" ? T_2 extends keyof T_1 ? true : never : never : never : never : never) ? {
|
|
16
|
+
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: BackdropRenderPropArg) => string) | undefined;
|
|
17
|
+
} : {}) & {
|
|
18
|
+
transition?: boolean;
|
|
19
|
+
};
|
|
20
|
+
events(): {} & {
|
|
21
|
+
[evt: string]: CustomEvent<any>;
|
|
22
|
+
};
|
|
23
|
+
slots(): {};
|
|
24
|
+
bindings(): "ref";
|
|
25
|
+
exports(): {};
|
|
26
|
+
}
|
|
27
|
+
interface $$IsomorphicComponent {
|
|
28
|
+
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']>> & {
|
|
29
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
30
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
31
|
+
<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
32
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
33
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
34
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
35
|
+
}
|
|
36
|
+
declare const DialogBackdrop: $$IsomorphicComponent;
|
|
37
|
+
type DialogBackdrop<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> = InstanceType<typeof DialogBackdrop<TTag>>;
|
|
38
|
+
export default DialogBackdrop;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
<script lang="ts" module>let DEFAULT_PANEL_TAG = "div";
|
|
2
|
+
</script>
|
|
3
|
+
|
|
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
|
+
import { onMount } from "svelte";
|
|
10
|
+
let internalId = useId();
|
|
11
|
+
let {
|
|
12
|
+
ref = $bindable(),
|
|
13
|
+
id = `headlessui-dialog-panel-${internalId}`,
|
|
14
|
+
transition = false,
|
|
15
|
+
...theirProps
|
|
16
|
+
} = $props();
|
|
17
|
+
const _state = useDialogContext("Dialog.Panel");
|
|
18
|
+
const { dialogState, unmount } = $derived(_state);
|
|
19
|
+
const slot = $derived({ open: dialogState === DialogStates.Open });
|
|
20
|
+
const handleClick = (event) => {
|
|
21
|
+
event.stopPropagation();
|
|
22
|
+
};
|
|
23
|
+
const ourProps = $derived(
|
|
24
|
+
mergeProps({
|
|
25
|
+
id,
|
|
26
|
+
onclick: handleClick
|
|
27
|
+
})
|
|
28
|
+
);
|
|
29
|
+
</script>
|
|
30
|
+
|
|
31
|
+
{#if transition}
|
|
32
|
+
<TransitionChild {unmount} {ref}>
|
|
33
|
+
{#snippet children(slot, props)}
|
|
34
|
+
<ElementOrComponent
|
|
35
|
+
ourProps={{ ...ourProps, ...props }}
|
|
36
|
+
{theirProps}
|
|
37
|
+
slots={slot}
|
|
38
|
+
defaultTag={DEFAULT_PANEL_TAG}
|
|
39
|
+
name="DialogPanel"
|
|
40
|
+
bind:ref
|
|
41
|
+
/>
|
|
42
|
+
{/snippet}
|
|
43
|
+
</TransitionChild>
|
|
44
|
+
{:else}
|
|
45
|
+
<ElementOrComponent {ourProps} {theirProps} slots={slot} defaultTag={DEFAULT_PANEL_TAG} name="DialogPanel" bind:ref />
|
|
46
|
+
{/if}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { ElementType, Props } from "../utils/types.js";
|
|
2
|
+
declare let DEFAULT_PANEL_TAG: "div";
|
|
3
|
+
type PanelRenderPropArg = {
|
|
4
|
+
open: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type DialogPanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = Props<TTag, PanelRenderPropArg, never, {
|
|
7
|
+
id?: string;
|
|
8
|
+
transition?: boolean;
|
|
9
|
+
}>;
|
|
10
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> {
|
|
11
|
+
props(): {
|
|
12
|
+
as?: TTag | undefined;
|
|
13
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "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("../utils/types.js").Children<PanelRenderPropArg> | undefined;
|
|
15
|
+
ref?: HTMLElement;
|
|
16
|
+
} & (true extends (import("../utils/types.js").PropsOf<TTag> extends infer T_1 ? T_1 extends import("../utils/types.js").PropsOf<TTag> ? T_1 extends never ? never : "class" extends infer T_2 ? T_2 extends "class" ? T_2 extends keyof T_1 ? true : never : never : never : never : never) ? {
|
|
17
|
+
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: PanelRenderPropArg) => string) | undefined;
|
|
18
|
+
} : {}) & {
|
|
19
|
+
id?: string;
|
|
20
|
+
transition?: boolean;
|
|
21
|
+
};
|
|
22
|
+
events(): {} & {
|
|
23
|
+
[evt: string]: CustomEvent<any>;
|
|
24
|
+
};
|
|
25
|
+
slots(): {};
|
|
26
|
+
bindings(): "ref";
|
|
27
|
+
exports(): {};
|
|
28
|
+
}
|
|
29
|
+
interface $$IsomorphicComponent {
|
|
30
|
+
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']>> & {
|
|
31
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
32
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
|
+
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
34
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
35
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
36
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
37
|
+
}
|
|
38
|
+
declare const DialogPanel: $$IsomorphicComponent;
|
|
39
|
+
type DialogPanel<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> = InstanceType<typeof DialogPanel<TTag>>;
|
|
40
|
+
export default DialogPanel;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<script lang="ts" module>let DEFAULT_TITLE_TAG = "h2";
|
|
2
|
+
</script>
|
|
3
|
+
|
|
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
|
|
25
|
+
})
|
|
26
|
+
);
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<ElementOrComponent {ourProps} {theirProps} slots={slot} defaultTag={DEFAULT_TITLE_TAG} name="DialogTitle" bind:ref />
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { ElementType, Props, PropsOf } from "../utils/types.js";
|
|
2
|
+
declare let DEFAULT_TITLE_TAG: "h2";
|
|
3
|
+
type TitleRenderPropArg = {
|
|
4
|
+
open: boolean;
|
|
5
|
+
};
|
|
6
|
+
export type DialogTitleProps<TTag extends ElementType = typeof DEFAULT_TITLE_TAG> = Props<TTag, TitleRenderPropArg>;
|
|
7
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TITLE_TAG> {
|
|
8
|
+
props(): {
|
|
9
|
+
as?: TTag | undefined;
|
|
10
|
+
} & (Exclude<keyof PropsOf<TTag>, "as" | "children" | "refName" | "class"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
|
|
11
|
+
children?: import("../utils/types.js").Children<TitleRenderPropArg> | undefined;
|
|
12
|
+
ref?: HTMLElement;
|
|
13
|
+
} & (true extends (PropsOf<TTag> extends infer T_1 ? T_1 extends PropsOf<TTag> ? T_1 extends never ? never : "class" extends infer T_2 ? T_2 extends "class" ? T_2 extends keyof T_1 ? true : never : never : never : never : never) ? {
|
|
14
|
+
class?: PropsOf<TTag>["class"] | ((bag: TitleRenderPropArg) => string) | undefined;
|
|
15
|
+
} : {});
|
|
16
|
+
events(): {} & {
|
|
17
|
+
[evt: string]: CustomEvent<any>;
|
|
18
|
+
};
|
|
19
|
+
slots(): {};
|
|
20
|
+
bindings(): "ref";
|
|
21
|
+
exports(): {};
|
|
22
|
+
}
|
|
23
|
+
interface $$IsomorphicComponent {
|
|
24
|
+
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']>> & {
|
|
25
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
26
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
27
|
+
<TTag extends ElementType = typeof DEFAULT_TITLE_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
28
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
29
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
30
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
31
|
+
}
|
|
32
|
+
declare const DialogTitle: $$IsomorphicComponent;
|
|
33
|
+
type DialogTitle<TTag extends ElementType = typeof DEFAULT_TITLE_TAG> = InstanceType<typeof DialogTitle<TTag>>;
|
|
34
|
+
export default DialogTitle;
|