@pzerelles/headlessui-svelte 2.1.1-next.1 → 2.1.2-next.2
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 +9 -0
- package/dist/index.js +9 -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/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
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { ElementType } from "../utils/types.js";
|
|
2
|
+
import type { TransitionRootProps } from "./Transition.svelte";
|
|
3
|
+
import { DEFAULT_TRANSITION_CHILD_TAG } from "./TransitionChild.svelte";
|
|
4
|
+
/**
|
|
5
|
+
* Check if we should forward the ref to the child element or not. This is to
|
|
6
|
+
* prevent crashes when the `as` prop is a Fragment _and_ the component just acts
|
|
7
|
+
* as a state container (aka, there is no actual transition happening).
|
|
8
|
+
*
|
|
9
|
+
* E.g.:
|
|
10
|
+
*
|
|
11
|
+
* ```tsx
|
|
12
|
+
* <Transition show={true}>
|
|
13
|
+
* <Transition.Child enter="duration-100"><div>Child 1</div></Transition.Child>
|
|
14
|
+
* <Transition.Child enter="duration-200"><div>Child 2</div></Transition.Child>
|
|
15
|
+
* </Transition>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* In this scenario, the child components are transitioning, but the
|
|
19
|
+
* `Transition` parent, which is a `Fragment`, is not. So we should not forward
|
|
20
|
+
* the ref to the `Fragment`.
|
|
21
|
+
*/
|
|
22
|
+
export declare function shouldForwardRef<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(props: TransitionRootProps<TTag>): boolean;
|
|
23
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> {
|
|
24
|
+
props(): {
|
|
25
|
+
as?: TTag | undefined;
|
|
26
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "unmount" | "transition" | keyof import("./context.svelte.js").TransitionClasses | keyof import("./context.svelte.js").TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
27
|
+
children?: import("../utils/types.js").Children<HTMLElement> | undefined;
|
|
28
|
+
ref?: HTMLElement;
|
|
29
|
+
} & (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) ? {
|
|
30
|
+
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
|
|
31
|
+
} : {}) & {
|
|
32
|
+
unmount?: boolean | undefined;
|
|
33
|
+
} & import("./context.svelte.js").TransitionClasses & import("./context.svelte.js").TransitionEvents & {
|
|
34
|
+
transition?: boolean;
|
|
35
|
+
appear?: boolean;
|
|
36
|
+
};
|
|
37
|
+
events(): {} & {
|
|
38
|
+
[evt: string]: CustomEvent<any>;
|
|
39
|
+
};
|
|
40
|
+
slots(): {};
|
|
41
|
+
bindings(): "ref";
|
|
42
|
+
exports(): {};
|
|
43
|
+
}
|
|
44
|
+
interface $$IsomorphicComponent {
|
|
45
|
+
new <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_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']>> & {
|
|
46
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
47
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
48
|
+
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
49
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
50
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
51
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
52
|
+
}
|
|
53
|
+
declare const InternalTransitionChild: $$IsomorphicComponent;
|
|
54
|
+
type InternalTransitionChild<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> = InstanceType<typeof InternalTransitionChild<TTag>>;
|
|
55
|
+
export default InternalTransitionChild;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
<script lang="ts" module>import { State, useOpenClosed } from "../internal/open-closed.js";
|
|
2
|
+
import { setContext, untrack } from "svelte";
|
|
3
|
+
import {
|
|
4
|
+
DEFAULT_TRANSITION_CHILD_TAG,
|
|
5
|
+
TransitionChildRenderFeatures
|
|
6
|
+
} from "./TransitionChild.svelte";
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG">import InternalTransitionChild, { shouldForwardRef } from "./InternalTransitionChild.svelte";
|
|
10
|
+
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
11
|
+
import {
|
|
12
|
+
hasChildren,
|
|
13
|
+
TreeStates,
|
|
14
|
+
useNesting
|
|
15
|
+
} from "./context.svelte.js";
|
|
16
|
+
let { ref = $bindable(), show, ..._props } = $props();
|
|
17
|
+
const { appear = false, unmount = true, ...theirProps } = $derived(_props);
|
|
18
|
+
const requiresRef = shouldForwardRef(_props);
|
|
19
|
+
const usesOpenClosedState = useOpenClosed();
|
|
20
|
+
if (show === void 0 && usesOpenClosedState !== null) {
|
|
21
|
+
show = (usesOpenClosedState.value & State.Open) === State.Open;
|
|
22
|
+
}
|
|
23
|
+
if (show === void 0) {
|
|
24
|
+
throw new Error("A <Transition /> is used but it is missing a `show={true | false}` prop.");
|
|
25
|
+
}
|
|
26
|
+
let _state = $state(show ? TreeStates.Visible : TreeStates.Hidden);
|
|
27
|
+
const nestingBag = useNesting({
|
|
28
|
+
done: () => {
|
|
29
|
+
if (show) return;
|
|
30
|
+
_state = TreeStates.Hidden;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
let initial = $state(true);
|
|
34
|
+
let changes = $state([show]);
|
|
35
|
+
$effect(() => {
|
|
36
|
+
if (untrack(() => initial) === false) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (changes[changes.length - 1] !== show) {
|
|
40
|
+
changes.push(show);
|
|
41
|
+
initial = false;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
$effect(() => {
|
|
45
|
+
if (show) {
|
|
46
|
+
_state = TreeStates.Visible;
|
|
47
|
+
} else if (!hasChildren(nestingBag) && untrack(() => ref)) {
|
|
48
|
+
_state = TreeStates.Hidden;
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
const sharedProps = $derived({ unmount });
|
|
52
|
+
const beforeEnter = () => {
|
|
53
|
+
if (initial) initial = false;
|
|
54
|
+
_props.beforeEnter?.();
|
|
55
|
+
};
|
|
56
|
+
const beforeLeave = () => {
|
|
57
|
+
if (initial) initial = false;
|
|
58
|
+
_props.beforeLeave?.();
|
|
59
|
+
};
|
|
60
|
+
setContext("NestingContext", nestingBag);
|
|
61
|
+
setContext("TransitionContext", {
|
|
62
|
+
get show() {
|
|
63
|
+
return show;
|
|
64
|
+
},
|
|
65
|
+
get appear() {
|
|
66
|
+
return appear;
|
|
67
|
+
},
|
|
68
|
+
get initial() {
|
|
69
|
+
return initial;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
const InternalChild = InternalTransitionChild;
|
|
73
|
+
</script>
|
|
74
|
+
|
|
75
|
+
{#snippet children()}
|
|
76
|
+
<InternalChild bind:ref {...sharedProps} {...theirProps} {beforeEnter} {beforeLeave} />
|
|
77
|
+
{/snippet}
|
|
78
|
+
|
|
79
|
+
<ElementOrComponent
|
|
80
|
+
ourProps={{
|
|
81
|
+
...sharedProps,
|
|
82
|
+
children,
|
|
83
|
+
}}
|
|
84
|
+
theirProps={{}}
|
|
85
|
+
defaultTag={"svelte:fragment"}
|
|
86
|
+
features={TransitionChildRenderFeatures}
|
|
87
|
+
visible={_state === TreeStates.Visible}
|
|
88
|
+
name="Transition"
|
|
89
|
+
/>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { ElementType } from "../utils/types.js";
|
|
2
|
+
import { type TransitionChildProps, DEFAULT_TRANSITION_CHILD_TAG } from "./TransitionChild.svelte";
|
|
3
|
+
export type TransitionRootProps<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> = TransitionChildProps<TTag> & {
|
|
4
|
+
show?: boolean;
|
|
5
|
+
appear?: boolean;
|
|
6
|
+
};
|
|
7
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> {
|
|
8
|
+
props(): {
|
|
9
|
+
as?: TTag | undefined;
|
|
10
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "unmount" | "transition" | keyof import("./context.svelte.js").TransitionClasses | keyof import("./context.svelte.js").TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
11
|
+
children?: import("../utils/types.js").Children<HTMLElement> | undefined;
|
|
12
|
+
ref?: HTMLElement;
|
|
13
|
+
} & (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) ? {
|
|
14
|
+
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
|
|
15
|
+
} : {}) & {
|
|
16
|
+
unmount?: boolean | undefined;
|
|
17
|
+
} & import("./context.svelte.js").TransitionClasses & import("./context.svelte.js").TransitionEvents & {
|
|
18
|
+
transition?: boolean;
|
|
19
|
+
appear?: boolean;
|
|
20
|
+
} & {
|
|
21
|
+
show?: boolean;
|
|
22
|
+
appear?: boolean;
|
|
23
|
+
};
|
|
24
|
+
events(): {} & {
|
|
25
|
+
[evt: string]: CustomEvent<any>;
|
|
26
|
+
};
|
|
27
|
+
slots(): {};
|
|
28
|
+
bindings(): "ref";
|
|
29
|
+
exports(): {};
|
|
30
|
+
}
|
|
31
|
+
interface $$IsomorphicComponent {
|
|
32
|
+
new <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_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']>> & {
|
|
33
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
34
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
35
|
+
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
36
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
37
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
38
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
39
|
+
}
|
|
40
|
+
declare const Transition: $$IsomorphicComponent;
|
|
41
|
+
type Transition<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> = InstanceType<typeof Transition<TTag>>;
|
|
42
|
+
export default Transition;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<script lang="ts" module>import { RenderFeatures } from "../utils/render.js";
|
|
2
|
+
export const DEFAULT_TRANSITION_CHILD_TAG = "svelte:fragment";
|
|
3
|
+
export const TransitionChildRenderFeatures = RenderFeatures.RenderStrategy;
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG">import { useOpenClosed } from "../internal/open-closed.js";
|
|
7
|
+
import { getContext } from "svelte";
|
|
8
|
+
import InternalTransitionChild from "./InternalTransitionChild.svelte";
|
|
9
|
+
import Transition from "./Transition.svelte";
|
|
10
|
+
const hasTransitionContext = !!getContext("TransitionContext");
|
|
11
|
+
const hasOpenClosedContext = useOpenClosed() !== null;
|
|
12
|
+
let { ref = $bindable(), as, ...props } = $props();
|
|
13
|
+
const TransitionRootOrChild = !hasTransitionContext && hasOpenClosedContext ? Transition : InternalTransitionChild;
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<TransitionRootOrChild bind:ref {...props} />
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ElementType, Props } from "../utils/types.js";
|
|
2
|
+
import { RenderFeatures, type PropsForFeatures } from "../utils/render.js";
|
|
3
|
+
import type { TransitionEvents, TransitionClasses } from "./context.svelte.js";
|
|
4
|
+
type TransitionChildPropsWeControl = never;
|
|
5
|
+
export type TransitionChildProps<TTag extends ElementType> = Props<TTag, TransitionChildRenderPropArg, TransitionChildPropsWeControl, PropsForFeatures<typeof TransitionChildRenderFeatures> & TransitionClasses & TransitionEvents & {
|
|
6
|
+
transition?: boolean;
|
|
7
|
+
appear?: boolean;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const DEFAULT_TRANSITION_CHILD_TAG = "svelte:fragment";
|
|
10
|
+
export type TransitionChildRenderPropArg = HTMLElement;
|
|
11
|
+
export declare const TransitionChildRenderFeatures = RenderFeatures.RenderStrategy;
|
|
12
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> {
|
|
13
|
+
props(): {
|
|
14
|
+
as?: TTag | undefined;
|
|
15
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "unmount" | "transition" | keyof TransitionClasses | keyof TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
16
|
+
children?: import("../utils/types.js").Children<HTMLElement> | undefined;
|
|
17
|
+
ref?: HTMLElement;
|
|
18
|
+
} & (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) ? {
|
|
19
|
+
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
|
|
20
|
+
} : {}) & {
|
|
21
|
+
unmount?: boolean | undefined;
|
|
22
|
+
} & TransitionClasses & TransitionEvents & {
|
|
23
|
+
transition?: boolean;
|
|
24
|
+
appear?: boolean;
|
|
25
|
+
};
|
|
26
|
+
events(): {} & {
|
|
27
|
+
[evt: string]: CustomEvent<any>;
|
|
28
|
+
};
|
|
29
|
+
slots(): {};
|
|
30
|
+
bindings(): "ref";
|
|
31
|
+
exports(): {};
|
|
32
|
+
}
|
|
33
|
+
interface $$IsomorphicComponent {
|
|
34
|
+
new <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_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']>> & {
|
|
35
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
36
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
37
|
+
<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
38
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
39
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
40
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
41
|
+
}
|
|
42
|
+
declare const TransitionChild: $$IsomorphicComponent;
|
|
43
|
+
type TransitionChild<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> = InstanceType<typeof TransitionChild<TTag>>;
|
|
44
|
+
export default TransitionChild;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { MutableRefObject } from "../utils/ref.svelte.js";
|
|
2
|
+
import { RenderStrategy } from "../utils/render.js";
|
|
3
|
+
type ContainerElement = MutableRefObject<HTMLElement | null>;
|
|
4
|
+
export type TransitionDirection = "enter" | "leave";
|
|
5
|
+
export interface TransitionContextValues {
|
|
6
|
+
show: boolean;
|
|
7
|
+
appear: boolean;
|
|
8
|
+
initial: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare enum TreeStates {
|
|
11
|
+
Visible = "visible",
|
|
12
|
+
Hidden = "hidden"
|
|
13
|
+
}
|
|
14
|
+
export interface TransitionClasses {
|
|
15
|
+
enter?: string;
|
|
16
|
+
enterFrom?: string;
|
|
17
|
+
enterTo?: string;
|
|
18
|
+
/**
|
|
19
|
+
* @deprecated The `enterTo` and `leaveTo` classes stay applied after the transition has finished.
|
|
20
|
+
*/
|
|
21
|
+
entered?: string;
|
|
22
|
+
leave?: string;
|
|
23
|
+
leaveFrom?: string;
|
|
24
|
+
leaveTo?: string;
|
|
25
|
+
}
|
|
26
|
+
export interface TransitionEvents {
|
|
27
|
+
beforeEnter?: () => void;
|
|
28
|
+
afterEnter?: () => void;
|
|
29
|
+
beforeLeave?: () => void;
|
|
30
|
+
afterLeave?: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare function useTransitionContext(): TransitionContextValues;
|
|
33
|
+
export declare function useParentNesting(): NestingContextValues;
|
|
34
|
+
export interface NestingContextValues {
|
|
35
|
+
children: {
|
|
36
|
+
el: ContainerElement;
|
|
37
|
+
state: TreeStates;
|
|
38
|
+
}[];
|
|
39
|
+
register: (el: ContainerElement) => () => void;
|
|
40
|
+
unregister: (el: ContainerElement, strategy?: RenderStrategy) => void;
|
|
41
|
+
onStart: (el: ContainerElement, direction: TransitionDirection, cb: () => void) => void;
|
|
42
|
+
onStop: (el: ContainerElement, direction: TransitionDirection, cb: () => void) => void;
|
|
43
|
+
chains: Record<TransitionDirection, [container: ContainerElement, promise: Promise<void>][]>;
|
|
44
|
+
wait: Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
export declare function hasChildren(bag: NestingContextValues["children"] | {
|
|
47
|
+
children: NestingContextValues["children"];
|
|
48
|
+
}): boolean;
|
|
49
|
+
export declare function useNesting(options: {
|
|
50
|
+
done?: () => void;
|
|
51
|
+
parent?: NestingContextValues;
|
|
52
|
+
}): {
|
|
53
|
+
readonly children: {
|
|
54
|
+
el: ContainerElement;
|
|
55
|
+
state: TreeStates;
|
|
56
|
+
}[];
|
|
57
|
+
register: (container: ContainerElement) => () => void;
|
|
58
|
+
unregister: (container: ContainerElement, strategy?: RenderStrategy) => void;
|
|
59
|
+
onStart: (container: ContainerElement, direction: TransitionDirection, cb: (direction: TransitionDirection) => void) => void;
|
|
60
|
+
onStop: (_container: ContainerElement, direction: TransitionDirection, cb: (direction: TransitionDirection) => void) => void;
|
|
61
|
+
readonly wait: Promise<void>;
|
|
62
|
+
readonly chains: Record<TransitionDirection, [identifier: ContainerElement, promise: Promise<void>][]>;
|
|
63
|
+
};
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { useIsMounted } from "../hooks/use-is-mounted.svelte.js";
|
|
2
|
+
import { useDisposables } from "../utils/disposables.js";
|
|
3
|
+
import { match } from "../utils/match.js";
|
|
4
|
+
import { RenderStrategy } from "../utils/render.js";
|
|
5
|
+
import { getContext } from "svelte";
|
|
6
|
+
export var TreeStates;
|
|
7
|
+
(function (TreeStates) {
|
|
8
|
+
TreeStates["Visible"] = "visible";
|
|
9
|
+
TreeStates["Hidden"] = "hidden";
|
|
10
|
+
})(TreeStates || (TreeStates = {}));
|
|
11
|
+
export function useTransitionContext() {
|
|
12
|
+
const context = getContext("TransitionContext");
|
|
13
|
+
if (context === null) {
|
|
14
|
+
throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
|
|
15
|
+
}
|
|
16
|
+
return context;
|
|
17
|
+
}
|
|
18
|
+
export function useParentNesting() {
|
|
19
|
+
let context = getContext("NestingContext");
|
|
20
|
+
if (context === null) {
|
|
21
|
+
throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
|
|
22
|
+
}
|
|
23
|
+
return context;
|
|
24
|
+
}
|
|
25
|
+
export function hasChildren(bag) {
|
|
26
|
+
if ("children" in bag)
|
|
27
|
+
return hasChildren(bag.children);
|
|
28
|
+
return bag.filter(({ state }) => state === TreeStates.Visible).length > 0;
|
|
29
|
+
}
|
|
30
|
+
export function useNesting(options) {
|
|
31
|
+
const { done, parent } = $derived(options);
|
|
32
|
+
let transitionableChildren = $state([]);
|
|
33
|
+
const mounted = useIsMounted();
|
|
34
|
+
const d = useDisposables();
|
|
35
|
+
const unregister = (container, strategy = RenderStrategy.Hidden) => {
|
|
36
|
+
const idx = transitionableChildren.findIndex(({ el }) => el === container);
|
|
37
|
+
if (idx === -1)
|
|
38
|
+
return;
|
|
39
|
+
match(strategy, {
|
|
40
|
+
[RenderStrategy.Unmount]() {
|
|
41
|
+
transitionableChildren.splice(idx, 1);
|
|
42
|
+
},
|
|
43
|
+
[RenderStrategy.Hidden]() {
|
|
44
|
+
transitionableChildren[idx].state = TreeStates.Hidden;
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
d.microTask(() => {
|
|
48
|
+
if (!hasChildren(transitionableChildren) && mounted.current) {
|
|
49
|
+
done?.();
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
const register = (container) => {
|
|
54
|
+
const child = transitionableChildren.find(({ el }) => el === container);
|
|
55
|
+
if (!child) {
|
|
56
|
+
transitionableChildren.push({ el: container, state: TreeStates.Visible });
|
|
57
|
+
}
|
|
58
|
+
else if (child.state !== TreeStates.Visible) {
|
|
59
|
+
child.state = TreeStates.Visible;
|
|
60
|
+
}
|
|
61
|
+
return () => unregister(container, RenderStrategy.Unmount);
|
|
62
|
+
};
|
|
63
|
+
let todos = $state([]);
|
|
64
|
+
let wait = $state(Promise.resolve());
|
|
65
|
+
let chains = $state({
|
|
66
|
+
enter: [],
|
|
67
|
+
leave: [],
|
|
68
|
+
});
|
|
69
|
+
let onStart = (container, direction, cb) => {
|
|
70
|
+
// Clear out all existing todos
|
|
71
|
+
todos.splice(0);
|
|
72
|
+
// Remove all existing promises for the current container from the parent because we can
|
|
73
|
+
// ignore those and use only the new one.
|
|
74
|
+
if (parent) {
|
|
75
|
+
parent.chains[direction] = parent.chains[direction].filter(([containerInParent]) => containerInParent !== container);
|
|
76
|
+
}
|
|
77
|
+
// Wait until our own transition is done
|
|
78
|
+
parent?.chains[direction].push([
|
|
79
|
+
container,
|
|
80
|
+
new Promise((resolve) => {
|
|
81
|
+
todos.push(resolve);
|
|
82
|
+
}),
|
|
83
|
+
]);
|
|
84
|
+
// Wait until our children are done
|
|
85
|
+
parent?.chains[direction].push([
|
|
86
|
+
container,
|
|
87
|
+
new Promise((resolve) => {
|
|
88
|
+
Promise.all(chains[direction].map(([_container, promise]) => promise)).then(() => resolve());
|
|
89
|
+
}),
|
|
90
|
+
]);
|
|
91
|
+
if (direction === "enter") {
|
|
92
|
+
wait = wait.then(() => parent?.wait).then(() => cb(direction));
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
cb(direction);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const onStop = (_container, direction, cb) => {
|
|
99
|
+
Promise.all(chains[direction].splice(0).map(([_container, promise]) => promise)) // Wait for my children
|
|
100
|
+
.then(() => {
|
|
101
|
+
todos.shift()?.(); // I'm ready
|
|
102
|
+
})
|
|
103
|
+
.then(() => cb(direction));
|
|
104
|
+
};
|
|
105
|
+
return {
|
|
106
|
+
get children() {
|
|
107
|
+
return transitionableChildren;
|
|
108
|
+
},
|
|
109
|
+
register,
|
|
110
|
+
unregister,
|
|
111
|
+
onStart,
|
|
112
|
+
onStop,
|
|
113
|
+
get wait() {
|
|
114
|
+
return wait;
|
|
115
|
+
},
|
|
116
|
+
get chains() {
|
|
117
|
+
return chains;
|
|
118
|
+
},
|
|
119
|
+
};
|
|
120
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<script lang="ts" generics="TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue">import { mergePropsAdvanced, RenderFeatures, RenderStrategy } from "./render.js";
|
|
2
|
+
import Generic from "./Generic.svelte";
|
|
3
|
+
let {
|
|
4
|
+
ourProps,
|
|
5
|
+
theirProps,
|
|
6
|
+
slots,
|
|
7
|
+
slot = slots,
|
|
8
|
+
defaultTag,
|
|
9
|
+
features,
|
|
10
|
+
visible = true,
|
|
11
|
+
name,
|
|
12
|
+
ref = $bindable(),
|
|
13
|
+
value = $bindable(),
|
|
14
|
+
checked = $bindable()
|
|
15
|
+
} = $props();
|
|
16
|
+
const featureFlags = $derived(features ?? RenderFeatures.None);
|
|
17
|
+
const { static: isStatic = false, unmount = true, ...rest } = $derived(mergePropsAdvanced(theirProps, ourProps ?? {}));
|
|
18
|
+
const render = $derived(
|
|
19
|
+
visible || featureFlags & RenderFeatures.Static && isStatic || featureFlags & RenderFeatures.RenderStrategy && !unmount
|
|
20
|
+
);
|
|
21
|
+
const hiddenProps = $derived(
|
|
22
|
+
!visible && !(featureFlags & RenderFeatures.Static) && featureFlags & RenderFeatures.RenderStrategy && !unmount ? { hidden: true, style: "display: none;" } : {}
|
|
23
|
+
);
|
|
24
|
+
</script>
|
|
25
|
+
|
|
26
|
+
{#if render}<Generic {...rest} {...hiddenProps} {slot} tag={defaultTag} {name} bind:ref bind:value bind:checked />{/if}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { ElementType } from "./types.js";
|
|
2
|
+
import { RenderFeatures } from "./render.js";
|
|
3
|
+
declare class __sveltets_Render<TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue> {
|
|
4
|
+
props(): {
|
|
5
|
+
ourProps?: Expand<{
|
|
6
|
+
[x: string]: any;
|
|
7
|
+
[x: number]: any;
|
|
8
|
+
} & {
|
|
9
|
+
children?: import("./types.js").Children<TSlot> | undefined;
|
|
10
|
+
ref?: HTMLElement;
|
|
11
|
+
} & {
|
|
12
|
+
class?: any;
|
|
13
|
+
} & Expand<((TFeature extends RenderFeatures.Static ? {
|
|
14
|
+
static?: boolean;
|
|
15
|
+
} : {}) extends infer T ? T extends (TFeature extends RenderFeatures.Static ? {
|
|
16
|
+
static?: boolean;
|
|
17
|
+
} : {}) ? T extends any ? (x: T) => any : never : never : never) | ((TFeature extends RenderFeatures.RenderStrategy ? {
|
|
18
|
+
unmount?: boolean;
|
|
19
|
+
} : {}) extends infer T_1 ? T_1 extends (TFeature extends RenderFeatures.RenderStrategy ? {
|
|
20
|
+
unmount?: boolean;
|
|
21
|
+
} : {}) ? T_1 extends any ? (x: T_1) => any : never : never : never) extends (x: infer R) => any ? R : never>> | undefined;
|
|
22
|
+
theirProps: {
|
|
23
|
+
as?: TTag | undefined;
|
|
24
|
+
children?: import("./types.js").Children<TSlot> | undefined;
|
|
25
|
+
ref?: HTMLElement | undefined;
|
|
26
|
+
class?: any;
|
|
27
|
+
};
|
|
28
|
+
slot?: TSlot | undefined;
|
|
29
|
+
slots?: TSlot | undefined;
|
|
30
|
+
defaultTag: ElementType;
|
|
31
|
+
features?: TFeature | undefined;
|
|
32
|
+
visible?: boolean;
|
|
33
|
+
name: string;
|
|
34
|
+
ref?: HTMLElement;
|
|
35
|
+
value?: TValue | undefined;
|
|
36
|
+
checked?: boolean;
|
|
37
|
+
};
|
|
38
|
+
events(): {} & {
|
|
39
|
+
[evt: string]: CustomEvent<any>;
|
|
40
|
+
};
|
|
41
|
+
slots(): {};
|
|
42
|
+
bindings(): "ref" | "value" | "checked";
|
|
43
|
+
exports(): {};
|
|
44
|
+
}
|
|
45
|
+
interface $$IsomorphicComponent {
|
|
46
|
+
new <TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']>, ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['events']>, ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['slots']>> & {
|
|
47
|
+
$$bindings?: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['bindings']>;
|
|
48
|
+
} & ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['exports']>;
|
|
49
|
+
<TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']> & {
|
|
50
|
+
$$events?: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['events']>;
|
|
51
|
+
}): ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['exports']>;
|
|
52
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any>['bindings']>;
|
|
53
|
+
}
|
|
54
|
+
declare const ElementOrComponent: $$IsomorphicComponent;
|
|
55
|
+
type ElementOrComponent<TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue> = InstanceType<typeof ElementOrComponent<TFeature, TTag, TSlot, TValue>>;
|
|
56
|
+
export default ElementOrComponent;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<script lang="ts" generics="TTag extends keyof SvelteHTMLProps, TSlot, TValue">import { stateFromSlot } from "./state.js";
|
|
2
|
+
let {
|
|
3
|
+
slot = {},
|
|
4
|
+
tag,
|
|
5
|
+
name,
|
|
6
|
+
ref = $bindable(),
|
|
7
|
+
value = $bindable(),
|
|
8
|
+
checked = $bindable(),
|
|
9
|
+
children,
|
|
10
|
+
as = tag,
|
|
11
|
+
unmount,
|
|
12
|
+
static: isStatic,
|
|
13
|
+
...props
|
|
14
|
+
} = $props();
|
|
15
|
+
const resolvedClass = $derived(
|
|
16
|
+
typeof props.class === "function" ? props.class(slot) : props.class
|
|
17
|
+
);
|
|
18
|
+
</script>
|
|
19
|
+
|
|
20
|
+
{#if as === "svelte:fragment"}
|
|
21
|
+
{#if children}{@render children(slot, {
|
|
22
|
+
...props,
|
|
23
|
+
...(resolvedClass ? { class: resolvedClass } : {}),
|
|
24
|
+
...stateFromSlot(slot),
|
|
25
|
+
})}{/if}
|
|
26
|
+
{:else if children}
|
|
27
|
+
{#if as === "select"}
|
|
28
|
+
<select bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value>
|
|
29
|
+
{@render children(slot, {})}
|
|
30
|
+
</select>
|
|
31
|
+
{:else}
|
|
32
|
+
<svelte:element this={as} bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)}>
|
|
33
|
+
{@render children(slot, {})}
|
|
34
|
+
</svelte:element>
|
|
35
|
+
{/if}
|
|
36
|
+
{:else if as === "input" && props.type === "checkbox"}
|
|
37
|
+
<input type="checkbox" bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:checked />
|
|
38
|
+
{:else if as === "input"}
|
|
39
|
+
<input bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value />
|
|
40
|
+
{:else if as === "textarea"}
|
|
41
|
+
<textarea bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value></textarea>
|
|
42
|
+
{:else}
|
|
43
|
+
<svelte:element this={as} bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} />
|
|
44
|
+
{/if}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ElementType, SvelteHTMLProps } from "./types.js";
|
|
2
|
+
declare class __sveltets_Render<TTag extends keyof SvelteHTMLProps, TSlot, TValue> {
|
|
3
|
+
props(): {
|
|
4
|
+
as?: TTag | undefined;
|
|
5
|
+
slot: TSlot;
|
|
6
|
+
tag: ElementType;
|
|
7
|
+
name: string;
|
|
8
|
+
ref?: HTMLElement;
|
|
9
|
+
value?: TValue | undefined;
|
|
10
|
+
checked?: boolean;
|
|
11
|
+
} & (Exclude<keyof import("./types.js").PropsOf<TTag>, "as" | "children" | "refName" | "class"> extends infer T extends keyof import("./types.js").PropsOf<TTag> ? { [P in T]: import("./types.js").PropsOf<TTag>[P]; } : never) & {
|
|
12
|
+
children?: import("./types.js").Children<TSlot> | undefined;
|
|
13
|
+
ref?: HTMLElement;
|
|
14
|
+
} & (true extends (import("./types.js").PropsOf<TTag> extends infer T_1 ? T_1 extends import("./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) ? {
|
|
15
|
+
class?: import("./types.js").PropsOf<TTag>["class"] | ((bag: TSlot) => string) | undefined;
|
|
16
|
+
} : {});
|
|
17
|
+
events(): {} & {
|
|
18
|
+
[evt: string]: CustomEvent<any>;
|
|
19
|
+
};
|
|
20
|
+
slots(): {};
|
|
21
|
+
bindings(): "ref" | "value" | "checked";
|
|
22
|
+
exports(): {};
|
|
23
|
+
}
|
|
24
|
+
interface $$IsomorphicComponent {
|
|
25
|
+
new <TTag extends keyof SvelteHTMLProps, TSlot, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['events']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['slots']>> & {
|
|
26
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['bindings']>;
|
|
27
|
+
} & ReturnType<__sveltets_Render<TTag, TSlot, TValue>['exports']>;
|
|
28
|
+
<TTag extends keyof SvelteHTMLProps, TSlot, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']> & {
|
|
29
|
+
$$events?: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['events']>;
|
|
30
|
+
}): ReturnType<__sveltets_Render<TTag, TSlot, TValue>['exports']>;
|
|
31
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
|
|
32
|
+
}
|
|
33
|
+
declare const Generic: $$IsomorphicComponent;
|
|
34
|
+
type Generic<TTag extends keyof SvelteHTMLProps, TSlot, TValue> = InstanceType<typeof Generic<TTag, TSlot, TValue>>;
|
|
35
|
+
export default Generic;
|
|
@@ -7,7 +7,10 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
|
|
|
7
7
|
(internal: unknown, props: Props & {
|
|
8
8
|
$$events?: Events;
|
|
9
9
|
$$slots?: Slots;
|
|
10
|
-
}): Exports
|
|
10
|
+
}): Exports & {
|
|
11
|
+
$set?: any;
|
|
12
|
+
$on?: any;
|
|
13
|
+
};
|
|
11
14
|
z_$$bindings?: Bindings;
|
|
12
15
|
}
|
|
13
16
|
declare const StableCollection: $$__sveltets_2_IsomorphicComponent<{
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare let history: HTMLElement[];
|