@pzerelles/headlessui-svelte 2.1.2-next.14 → 2.1.2-next.15
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/checkbox/Checkbox.svelte.d.ts +1 -1
- package/dist/dialog/DialogPanel.svelte +0 -1
- package/dist/field/Field.svelte +21 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/internal/FormFields.svelte +22 -19
- package/dist/internal/FormFieldsProvider.svelte +13 -0
- package/dist/internal/{HoistFormFields.svelte.d.ts → FormFieldsProvider.svelte.d.ts} +5 -5
- package/dist/internal/Hidden.svelte +16 -2
- package/dist/internal/form-fields.svelte.d.ts +10 -0
- package/dist/internal/form-fields.svelte.js +22 -0
- package/dist/listbox/Listbox.svelte.d.ts +1 -1
- package/dist/select/Select.svelte +74 -0
- package/dist/select/Select.svelte.d.ts +48 -0
- package/dist/select/index.d.ts +1 -0
- package/dist/select/index.js +1 -0
- package/dist/switch/Switch.svelte.d.ts +1 -1
- package/dist/utils/ElementOrComponent.svelte +1 -1
- package/dist/utils/Generic.svelte +0 -1
- package/dist/utils/Generic.svelte.d.ts +0 -1
- package/package.json +1 -1
- package/dist/internal/HoistFormFields.svelte +0 -11
|
@@ -25,7 +25,7 @@ export type CheckboxProps<TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG
|
|
|
25
25
|
declare class __sveltets_Render<TType, TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG> {
|
|
26
26
|
props(): {
|
|
27
27
|
as?: TTag | undefined;
|
|
28
|
-
} & (Exclude<keyof PropsOf<TTag>, "form" | ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "
|
|
28
|
+
} & (Exclude<keyof PropsOf<TTag>, "form" | ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "value" | "checked" | "name" | "onchange" | "indeterminate" | CheckboxPropsWeControl | "defaultChecked"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
|
|
29
29
|
children?: import("../utils/types.js").Children<CheckboxRenderPropArg> | undefined;
|
|
30
30
|
ref?: HTMLElement;
|
|
31
31
|
} & (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) ? {
|
|
@@ -6,7 +6,6 @@ import { DialogStates, useDialogContext } from "./context.svelte.js";
|
|
|
6
6
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
7
7
|
import { mergeProps } from "../utils/render.js";
|
|
8
8
|
import TransitionChild from "../transition/TransitionChild.svelte";
|
|
9
|
-
import { onMount } from "svelte";
|
|
10
9
|
let internalId = useId();
|
|
11
10
|
let {
|
|
12
11
|
ref = $bindable(),
|
package/dist/field/Field.svelte
CHANGED
|
@@ -8,7 +8,13 @@ import { setContext } from "svelte";
|
|
|
8
8
|
import { useLabels } from "../label/context.svelte.js";
|
|
9
9
|
import { useDescriptions } from "../description/context.svelte.js";
|
|
10
10
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
11
|
-
|
|
11
|
+
import FormFieldsProvider from "../internal/FormFieldsProvider.svelte";
|
|
12
|
+
let {
|
|
13
|
+
ref = $bindable(),
|
|
14
|
+
disabled: ownDisabled = false,
|
|
15
|
+
children: theirChildren,
|
|
16
|
+
...theirProps
|
|
17
|
+
} = $props();
|
|
12
18
|
const inputId = `headlessui-control-${nanoid(8)}`;
|
|
13
19
|
createIdContext(inputId);
|
|
14
20
|
useLabels();
|
|
@@ -27,4 +33,17 @@ const ourProps = $derived({
|
|
|
27
33
|
});
|
|
28
34
|
</script>
|
|
29
35
|
|
|
30
|
-
|
|
36
|
+
{#snippet children(slot: FieldRenderPropArg, props: Record<string, any>)}
|
|
37
|
+
<FormFieldsProvider>
|
|
38
|
+
{#if theirChildren}{@render theirChildren(slot, props)}{/if}
|
|
39
|
+
</FormFieldsProvider>
|
|
40
|
+
{/snippet}
|
|
41
|
+
|
|
42
|
+
<ElementOrComponent
|
|
43
|
+
{ourProps}
|
|
44
|
+
theirProps={{ ...theirProps, children }}
|
|
45
|
+
{slot}
|
|
46
|
+
defaultTag={DEFAULT_FIELD_TAG}
|
|
47
|
+
name="Field"
|
|
48
|
+
bind:ref
|
|
49
|
+
/>
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export * from "./label/index.js";
|
|
|
11
11
|
export * from "./legend/index.js";
|
|
12
12
|
export * from "./listbox/index.js";
|
|
13
13
|
export * from "./menu/index.js";
|
|
14
|
+
export * from "./select/index.js";
|
|
14
15
|
export * from "./switch/index.js";
|
|
15
16
|
export * from "./tabs/index.js";
|
|
16
17
|
export * from "./textarea/index.js";
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ export * from "./label/index.js";
|
|
|
11
11
|
export * from "./legend/index.js";
|
|
12
12
|
export * from "./listbox/index.js";
|
|
13
13
|
export * from "./menu/index.js";
|
|
14
|
+
export * from "./select/index.js";
|
|
14
15
|
export * from "./switch/index.js";
|
|
15
16
|
export * from "./tabs/index.js";
|
|
16
17
|
export * from "./textarea/index.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">import { disposables } from "../utils/disposables.js";
|
|
2
2
|
import { objectToFormEntries } from "../utils/form.js";
|
|
3
3
|
import FormResolver from "./FormResolver.svelte";
|
|
4
|
-
import
|
|
4
|
+
import { hoistFormFields } from "./form-fields.svelte.js";
|
|
5
5
|
import Hidden, { HiddenFeatures } from "./Hidden.svelte";
|
|
6
6
|
import { compact } from "../utils/object.js";
|
|
7
7
|
let {
|
|
@@ -18,25 +18,28 @@ $effect(() => {
|
|
|
18
18
|
if (!form) return;
|
|
19
19
|
return d.addEventListener(form, "reset", onReset);
|
|
20
20
|
});
|
|
21
|
+
const fields = $derived(
|
|
22
|
+
objectToFormEntries(data).map(
|
|
23
|
+
([name, value]) => compact({
|
|
24
|
+
key: name,
|
|
25
|
+
as: "input",
|
|
26
|
+
type: "hidden",
|
|
27
|
+
form: formId,
|
|
28
|
+
disabled,
|
|
29
|
+
name,
|
|
30
|
+
value,
|
|
31
|
+
...overrides
|
|
32
|
+
})
|
|
33
|
+
)
|
|
34
|
+
);
|
|
35
|
+
const hoisted = hoistFormFields(formFields);
|
|
21
36
|
</script>
|
|
22
37
|
|
|
23
|
-
|
|
38
|
+
{#snippet formFields()}
|
|
24
39
|
<FormResolver setForm={(value) => (form = value)} {formId} />
|
|
25
|
-
{#each
|
|
26
|
-
<Hidden
|
|
27
|
-
features={HiddenFeatures.Hidden}
|
|
28
|
-
{...compact({
|
|
29
|
-
key: name,
|
|
30
|
-
as: "input",
|
|
31
|
-
type: "hidden",
|
|
32
|
-
hidden: true,
|
|
33
|
-
readOnly: true,
|
|
34
|
-
form: formId,
|
|
35
|
-
disabled,
|
|
36
|
-
name,
|
|
37
|
-
value,
|
|
38
|
-
...overrides,
|
|
39
|
-
})}
|
|
40
|
-
/>
|
|
40
|
+
{#each fields as props}
|
|
41
|
+
<Hidden features={HiddenFeatures.Hidden} {...props} />
|
|
41
42
|
{/each}
|
|
42
|
-
|
|
43
|
+
{/snippet}
|
|
44
|
+
|
|
45
|
+
{#if !hoisted}{@render formFields()}{/if}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<script lang="ts">import Hidden, { HiddenFeatures } from "./Hidden.svelte";
|
|
2
|
+
import { createFormFieldsContext } from "./form-fields.svelte.js";
|
|
3
|
+
const { children } = $props();
|
|
4
|
+
const context = createFormFieldsContext();
|
|
5
|
+
const { fields } = $derived(context);
|
|
6
|
+
</script>
|
|
7
|
+
|
|
8
|
+
{#if children}{@render children()}{/if}
|
|
9
|
+
<Hidden features={HiddenFeatures.Hidden}>
|
|
10
|
+
{#each fields as field}
|
|
11
|
+
{@render field()}
|
|
12
|
+
{/each}
|
|
13
|
+
</Hidden>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
2
|
interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
|
|
3
3
|
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
4
4
|
$$bindings?: Bindings;
|
|
@@ -12,10 +12,10 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
|
|
|
12
12
|
};
|
|
13
13
|
z_$$bindings?: Bindings;
|
|
14
14
|
}
|
|
15
|
-
declare const
|
|
16
|
-
children
|
|
15
|
+
declare const FormFieldsProvider: $$__sveltets_2_IsomorphicComponent<{
|
|
16
|
+
children?: Snippet;
|
|
17
17
|
}, {
|
|
18
18
|
[evt: string]: CustomEvent<any>;
|
|
19
19
|
}, {}, {}, "">;
|
|
20
|
-
type
|
|
21
|
-
export default
|
|
20
|
+
type FormFieldsProvider = InstanceType<typeof FormFieldsProvider>;
|
|
21
|
+
export default FormFieldsProvider;
|
|
@@ -4,7 +4,13 @@ export * from "./HiddenFeatures.js";
|
|
|
4
4
|
const DEFAULT_VISUALLY_HIDDEN_TAG = "span";
|
|
5
5
|
</script>
|
|
6
6
|
|
|
7
|
-
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG">let {
|
|
7
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG">let {
|
|
8
|
+
ref = $bindable(),
|
|
9
|
+
value,
|
|
10
|
+
checked,
|
|
11
|
+
features = HiddenFeatures.None,
|
|
12
|
+
...theirProps
|
|
13
|
+
} = $props();
|
|
8
14
|
let ourProps = {
|
|
9
15
|
"aria-hidden": (features & HiddenFeatures.Focusable) === HiddenFeatures.Focusable ? true : theirProps["aria-hidden"] ?? void 0,
|
|
10
16
|
hidden: (features & HiddenFeatures.Hidden) === HiddenFeatures.Hidden ? true : void 0,
|
|
@@ -25,4 +31,12 @@ let ourProps = {
|
|
|
25
31
|
};
|
|
26
32
|
</script>
|
|
27
33
|
|
|
28
|
-
<ElementOrComponent
|
|
34
|
+
<ElementOrComponent
|
|
35
|
+
{ourProps}
|
|
36
|
+
{theirProps}
|
|
37
|
+
defaultTag={DEFAULT_VISUALLY_HIDDEN_TAG}
|
|
38
|
+
name="Hidden"
|
|
39
|
+
bind:ref
|
|
40
|
+
{value}
|
|
41
|
+
{checked}
|
|
42
|
+
/>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type Snippet } from "svelte";
|
|
2
|
+
import { SvelteSet } from "svelte/reactivity";
|
|
3
|
+
export type FormFieldsContext = {
|
|
4
|
+
registerField: (field: Snippet) => () => void;
|
|
5
|
+
};
|
|
6
|
+
export declare const createFormFieldsContext: () => {
|
|
7
|
+
registerField: (field: Snippet) => () => boolean;
|
|
8
|
+
readonly fields: SvelteSet<Snippet<[]>>;
|
|
9
|
+
};
|
|
10
|
+
export declare const hoistFormFields: (fields: Snippet) => false | undefined;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { getContext, setContext } from "svelte";
|
|
2
|
+
import { SvelteSet } from "svelte/reactivity";
|
|
3
|
+
export const createFormFieldsContext = () => {
|
|
4
|
+
const fields = new SvelteSet();
|
|
5
|
+
const context = {
|
|
6
|
+
registerField: (field) => {
|
|
7
|
+
fields.add(field);
|
|
8
|
+
return () => fields.delete(field);
|
|
9
|
+
},
|
|
10
|
+
get fields() {
|
|
11
|
+
return fields;
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
setContext("FormFieldsContext", context);
|
|
15
|
+
return context;
|
|
16
|
+
};
|
|
17
|
+
export const hoistFormFields = (fields) => {
|
|
18
|
+
const context = getContext("FormFieldsContext");
|
|
19
|
+
if (!context)
|
|
20
|
+
return false;
|
|
21
|
+
$effect(() => context.registerField(fields));
|
|
22
|
+
};
|
|
@@ -26,7 +26,7 @@ export * from "./context.svelte.js";
|
|
|
26
26
|
declare class __sveltets_Render<TType, TActualType, TTag extends ElementType = typeof DEFAULT_LISTBOX_TAG> {
|
|
27
27
|
props(): {
|
|
28
28
|
as?: TTag | undefined;
|
|
29
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, "form" | ("as" | "children" | "refName" | "class") | "invalid" | "disabled" | "
|
|
29
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, "form" | ("as" | "children" | "refName" | "class") | "invalid" | "disabled" | "value" | "name" | "onchange" | "multiple" | "__demoMode" | "horizontal" | "defaultValue" | "by"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
30
30
|
children?: import("../utils/types.js").Children<ListboxRenderPropArg<TType>> | undefined;
|
|
31
31
|
ref?: HTMLElement;
|
|
32
32
|
} & (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) ? {
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<script lang="ts" module>let DEFAULT_SELECT_TAG = "select";
|
|
2
|
+
</script>
|
|
3
|
+
|
|
4
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_SELECT_TAG">import { useId } from "../hooks/use-id.js";
|
|
5
|
+
import { useProvidedId } from "../utils/id.js";
|
|
6
|
+
import { useDisabled } from "../hooks/use-disabled.js";
|
|
7
|
+
import { useFocusRing } from "../hooks/use-focus-ring.svelte.js";
|
|
8
|
+
import { useHover } from "../hooks/use-hover.svelte.js";
|
|
9
|
+
import { useActivePress } from "../hooks/use-active-press.svelte.js";
|
|
10
|
+
import { useLabelledBy } from "../label/context.svelte.js";
|
|
11
|
+
import { useDescribedBy } from "../description/context.svelte.js";
|
|
12
|
+
import { mergeProps } from "../utils/render.js";
|
|
13
|
+
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
14
|
+
const internalId = useId();
|
|
15
|
+
const providedId = useProvidedId();
|
|
16
|
+
const providedDisabled = useDisabled();
|
|
17
|
+
let {
|
|
18
|
+
ref = $bindable(),
|
|
19
|
+
id = providedId || `headlessui-select-${internalId}`,
|
|
20
|
+
disabled: theirDisabled = false,
|
|
21
|
+
invalid = false,
|
|
22
|
+
autofocus = false,
|
|
23
|
+
...theirProps
|
|
24
|
+
} = $props();
|
|
25
|
+
const disabled = $derived(providedDisabled?.value ?? theirDisabled);
|
|
26
|
+
const labelledBy = useLabelledBy();
|
|
27
|
+
const describedBy = useDescribedBy();
|
|
28
|
+
const { isFocusVisible: focus, focusProps } = $derived(
|
|
29
|
+
useFocusRing({
|
|
30
|
+
get autofocus() {
|
|
31
|
+
return autofocus;
|
|
32
|
+
}
|
|
33
|
+
})
|
|
34
|
+
);
|
|
35
|
+
const { isHovered: hover, hoverProps } = $derived(
|
|
36
|
+
useHover({
|
|
37
|
+
get disabled() {
|
|
38
|
+
return disabled;
|
|
39
|
+
}
|
|
40
|
+
})
|
|
41
|
+
);
|
|
42
|
+
const { pressed: active, pressProps } = $derived(
|
|
43
|
+
useActivePress({
|
|
44
|
+
get disabled() {
|
|
45
|
+
return disabled;
|
|
46
|
+
}
|
|
47
|
+
})
|
|
48
|
+
);
|
|
49
|
+
const ourProps = $derived(
|
|
50
|
+
mergeProps(
|
|
51
|
+
{
|
|
52
|
+
id,
|
|
53
|
+
"aria-labelledby": labelledBy.value,
|
|
54
|
+
"aria-describedby": describedBy.value,
|
|
55
|
+
"aria-invalid": invalid ? "" : void 0,
|
|
56
|
+
disabled: disabled || void 0,
|
|
57
|
+
autofocus
|
|
58
|
+
},
|
|
59
|
+
focusProps,
|
|
60
|
+
hoverProps,
|
|
61
|
+
pressProps
|
|
62
|
+
)
|
|
63
|
+
);
|
|
64
|
+
const slot = $derived({
|
|
65
|
+
disabled,
|
|
66
|
+
invalid,
|
|
67
|
+
hover,
|
|
68
|
+
focus,
|
|
69
|
+
active,
|
|
70
|
+
autofocus
|
|
71
|
+
});
|
|
72
|
+
</script>
|
|
73
|
+
|
|
74
|
+
<ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_SELECT_TAG} name="Select" bind:ref />
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { ElementType, Props, PropsOf } from "../utils/types.js";
|
|
2
|
+
declare let DEFAULT_SELECT_TAG: "select";
|
|
3
|
+
type SelectRenderPropArg = {
|
|
4
|
+
disabled: boolean;
|
|
5
|
+
hover: boolean;
|
|
6
|
+
focus: boolean;
|
|
7
|
+
active: boolean;
|
|
8
|
+
autofocus: boolean;
|
|
9
|
+
invalid: boolean;
|
|
10
|
+
};
|
|
11
|
+
type SelectPropsWeControl = "aria-labelledby" | "aria-describedby";
|
|
12
|
+
export type SelectProps<TTag extends ElementType = typeof DEFAULT_SELECT_TAG> = Props<TTag, SelectRenderPropArg, SelectPropsWeControl, {
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
invalid?: boolean;
|
|
15
|
+
autofocus?: boolean;
|
|
16
|
+
}>;
|
|
17
|
+
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_SELECT_TAG> {
|
|
18
|
+
props(): {
|
|
19
|
+
as?: TTag | undefined;
|
|
20
|
+
} & (Exclude<keyof PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "invalid" | "disabled" | "autofocus" | SelectPropsWeControl> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
|
|
21
|
+
children?: import("../utils/types.js").Children<SelectRenderPropArg> | undefined;
|
|
22
|
+
ref?: HTMLElement;
|
|
23
|
+
} & (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) ? {
|
|
24
|
+
class?: PropsOf<TTag>["class"] | ((bag: SelectRenderPropArg) => string) | undefined;
|
|
25
|
+
} : {}) & {
|
|
26
|
+
disabled?: boolean;
|
|
27
|
+
invalid?: boolean;
|
|
28
|
+
autofocus?: boolean;
|
|
29
|
+
};
|
|
30
|
+
events(): {} & {
|
|
31
|
+
[evt: string]: CustomEvent<any>;
|
|
32
|
+
};
|
|
33
|
+
slots(): {};
|
|
34
|
+
bindings(): "ref";
|
|
35
|
+
exports(): {};
|
|
36
|
+
}
|
|
37
|
+
interface $$IsomorphicComponent {
|
|
38
|
+
new <TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag>['props']>, ReturnType<__sveltets_Render<TTag>['events']>, ReturnType<__sveltets_Render<TTag>['slots']>> & {
|
|
39
|
+
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
40
|
+
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
41
|
+
<TTag extends ElementType = typeof DEFAULT_SELECT_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
42
|
+
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
43
|
+
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
44
|
+
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
45
|
+
}
|
|
46
|
+
declare const Select: $$IsomorphicComponent;
|
|
47
|
+
type Select<TTag extends ElementType = typeof DEFAULT_SELECT_TAG> = InstanceType<typeof Select<TTag>>;
|
|
48
|
+
export default Select;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Select, type SelectProps } from "./Select.svelte";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as Select } from "./Select.svelte";
|
|
@@ -24,7 +24,7 @@ export type SwitchProps<TTag extends ElementType = typeof DEFAULT_SWITCH_TAG> =
|
|
|
24
24
|
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_SWITCH_TAG> {
|
|
25
25
|
props(): {
|
|
26
26
|
as?: TTag | undefined;
|
|
27
|
-
} & (Exclude<keyof PropsOf<TTag>, "form" | ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "
|
|
27
|
+
} & (Exclude<keyof PropsOf<TTag>, "form" | ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "value" | "checked" | "name" | "onchange" | "tabIndex" | "defaultChecked" | SwitchPropsWeControl> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
|
|
28
28
|
children?: import("../utils/types.js").Children<SwitchRenderPropArg> | undefined;
|
|
29
29
|
ref?: HTMLElement;
|
|
30
30
|
} & (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) ? {
|
|
@@ -23,4 +23,4 @@ const hiddenProps = $derived(
|
|
|
23
23
|
);
|
|
24
24
|
</script>
|
|
25
25
|
|
|
26
|
-
{#if render}<Generic {...rest} {...hiddenProps} {slot} tag={defaultTag}
|
|
26
|
+
{#if render}<Generic {...rest} {...hiddenProps} {slot} tag={defaultTag} bind:ref bind:value bind:checked />{/if}
|
package/package.json
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
<script lang="ts">import { getContext } from "svelte";
|
|
2
|
-
import Portal from "./Portal.svelte";
|
|
3
|
-
let { children } = $props();
|
|
4
|
-
const formFieldsContext = getContext("FormFieldsContext");
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
{#if !formFieldsContext}
|
|
8
|
-
{@render children()}
|
|
9
|
-
{:else if formFieldsContext.target}
|
|
10
|
-
<Portal target={formFieldsContext.target}>{@render children()}</Portal>
|
|
11
|
-
{/if}
|