@pzerelles/headlessui-svelte 2.1.2-next.2 → 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/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export * from "./listbox/index.js";
13
13
  export * from "./menu/index.js";
14
14
  export * from "./switch/index.js";
15
15
  export * from "./tabs/index.js";
16
+ export * from "./textarea/index.js";
16
17
  export * from "./transition/index.js";
17
18
  export * from "./hooks/use-id.js";
18
19
  export * from "./utils/types.js";
package/dist/index.js CHANGED
@@ -13,6 +13,7 @@ export * from "./listbox/index.js";
13
13
  export * from "./menu/index.js";
14
14
  export * from "./switch/index.js";
15
15
  export * from "./tabs/index.js";
16
+ export * from "./textarea/index.js";
16
17
  export * from "./transition/index.js";
17
18
  export * from "./hooks/use-id.js";
18
19
  export * from "./utils/types.js";
@@ -0,0 +1,67 @@
1
+ <script lang="ts" module>const DEFAULT_TEXTAREA_TAG = "textarea";
2
+ </script>
3
+
4
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG">import { htmlid } from "../utils/id.js";
5
+ import { useDisabled } from "../hooks/use-disabled.js";
6
+ import { useProvidedId } from "../internal/id.js";
7
+ import { useLabelledBy } from "../label/context.svelte.js";
8
+ import { useDescribedBy } from "../description/context.svelte.js";
9
+ import { useHover } from "../hooks/use-hover.svelte.js";
10
+ import { useFocusRing } from "../hooks/use-focus-ring.svelte.js";
11
+ import { mergeProps } from "../utils/render.js";
12
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte";
13
+ const internalId = htmlid();
14
+ const providedId = useProvidedId();
15
+ const providedDisabled = useDisabled();
16
+ let {
17
+ ref = $bindable(),
18
+ value = $bindable(),
19
+ id = providedId?.value || `headlessui-input-${internalId}`,
20
+ disabled: theirDisabled = false,
21
+ autofocus = false,
22
+ invalid = 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 ourProps = $derived(
43
+ mergeProps(
44
+ {
45
+ id,
46
+ "aria-labelledby": labelledBy?.value,
47
+ "aria-describedby": describedBy?.value,
48
+ "aria-invalid": invalid ? "" : void 0,
49
+ disabled: disabled || void 0,
50
+ autofocus
51
+ },
52
+ focusProps,
53
+ hoverProps
54
+ )
55
+ );
56
+ const slot = $derived({ disabled, invalid, hover, focus, autofocus });
57
+ </script>
58
+
59
+ <ElementOrComponent
60
+ {ourProps}
61
+ {theirProps}
62
+ {slot}
63
+ defaultTag={DEFAULT_TEXTAREA_TAG}
64
+ name="Textarea"
65
+ bind:ref
66
+ bind:value
67
+ />
@@ -0,0 +1,47 @@
1
+ import type { ElementType, Props, PropsOf } from "../utils/types.js";
2
+ declare const DEFAULT_TEXTAREA_TAG: "textarea";
3
+ type TextareaRenderPropArg = {
4
+ disabled: boolean;
5
+ hover: boolean;
6
+ focus: boolean;
7
+ autofocus: boolean;
8
+ invalid: boolean;
9
+ };
10
+ type TextareaPropsWeControl = "aria-labelledby" | "aria-describedby";
11
+ export type TextareaProps<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG> = Props<TTag, TextareaRenderPropArg, TextareaPropsWeControl, {
12
+ disabled?: boolean;
13
+ invalid?: boolean;
14
+ autoFocus?: boolean;
15
+ }>;
16
+ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG> {
17
+ props(): {
18
+ as?: TTag | undefined;
19
+ } & (Exclude<keyof PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "invalid" | "disabled" | TextareaPropsWeControl | "autoFocus"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
20
+ children?: import("../utils/types.js").Children<TextareaRenderPropArg> | undefined;
21
+ ref?: HTMLElement;
22
+ } & (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
+ class?: PropsOf<TTag>["class"] | ((bag: TextareaRenderPropArg) => string) | undefined;
24
+ } : {}) & {
25
+ disabled?: boolean;
26
+ invalid?: boolean;
27
+ autoFocus?: boolean;
28
+ };
29
+ events(): {} & {
30
+ [evt: string]: CustomEvent<any>;
31
+ };
32
+ slots(): {};
33
+ bindings(): "ref" | "value";
34
+ exports(): {};
35
+ }
36
+ interface $$IsomorphicComponent {
37
+ new <TTag extends ElementType = typeof DEFAULT_TEXTAREA_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']>> & {
38
+ $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
39
+ } & ReturnType<__sveltets_Render<TTag>['exports']>;
40
+ <TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
41
+ $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
42
+ }): ReturnType<__sveltets_Render<TTag>['exports']>;
43
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
44
+ }
45
+ declare const Textarea: $$IsomorphicComponent;
46
+ type Textarea<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG> = InstanceType<typeof Textarea<TTag>>;
47
+ export default Textarea;
@@ -0,0 +1 @@
1
+ export { default as Textarea, type TextareaProps } from "./Textarea.svelte";
@@ -0,0 +1 @@
1
+ export { default as Textarea } from "./Textarea.svelte";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pzerelles/headlessui-svelte",
3
- "version": "2.1.2-next.2",
3
+ "version": "2.1.2-next.3",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./dist/index.d.ts",