You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/src/uix/terra/date-field/components/date-field-input.svelte

53 lines
1.3 KiB

<script lang="ts">
/**
* # DateField Input
*
* Contenedor de entrada para los segmentos del campo de fecha.
*
* ## Selectores CSS
* ```
* [data-date-field-input] → Contenedor de entrada
* [data-disabled] → Presente cuando disabled=true
* ```
*/
import { readableActive, writableActive, mergeProps } from '$terra/utils';
import { DateFieldInputState } from "../date-field.svelte.js";
import type { DateFieldInputProps } from "../types.js";
import DateFieldHiddenInput from "./date-field-hidden-input.svelte";
import { createId } from "../../utils/create-id.ts";
const uid = $props.id();
let {
id = createId(uid),
ref = $bindable(null),
name = "",
children,
child,
...restProps
}: DateFieldInputProps = $props();
const inputState = DateFieldInputState.create({
id: readableActive(() => id),
ref: writableActive(
() => ref,
(v) => (ref = v)
),
name: readableActive(() => name),
});
const mergedProps = $derived(mergeProps(restProps, inputState.props));
</script>
{#if child}
{@render child({ props: mergedProps, segments: inputState.root.segmentContents })}
{:else}
<div {...mergedProps}>
{@render children?.({ segments: inputState.root.segmentContents })}
</div>
{/if}
<DateFieldHiddenInput />

Powered by TurnKey Linux.