@pzerelles/headlessui-svelte 2.1.2-next.2 → 2.1.2-next.21

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.
Files changed (168) hide show
  1. package/dist/button/Button.svelte.d.ts +1 -1
  2. package/dist/checkbox/Checkbox.svelte +4 -4
  3. package/dist/checkbox/Checkbox.svelte.d.ts +5 -7
  4. package/dist/close-button/CloseButton.svelte.d.ts +2 -2
  5. package/dist/data-interactive/DataInteractive.svelte.d.ts +1 -1
  6. package/dist/description/Description.svelte.d.ts +1 -1
  7. package/dist/description/context.svelte.js +1 -1
  8. package/dist/dialog/Dialog.svelte.d.ts +1 -1
  9. package/dist/dialog/DialogBackdrop.svelte.d.ts +1 -1
  10. package/dist/dialog/DialogPanel.svelte +0 -1
  11. package/dist/dialog/DialogPanel.svelte.d.ts +1 -1
  12. package/dist/dialog/DialogTitle.svelte.d.ts +1 -1
  13. package/dist/dialog/InternalDialog.svelte.d.ts +1 -1
  14. package/dist/dialog/context.svelte.js +1 -1
  15. package/dist/field/Field.svelte +21 -3
  16. package/dist/field/Field.svelte.d.ts +1 -1
  17. package/dist/fieldset/Fieldset.svelte.d.ts +1 -1
  18. package/dist/focus-trap/FocusTrap.svelte +7 -14
  19. package/dist/focus-trap/FocusTrap.svelte.d.ts +3 -15
  20. package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
  21. package/dist/focus-trap/FocusTrapFeatures.js +15 -0
  22. package/dist/hooks/use-controllable.svelte.js +2 -1
  23. package/dist/hooks/use-did-element-move.svelte.js +5 -10
  24. package/dist/hooks/use-event-listener.svelte.d.ts +1 -1
  25. package/dist/hooks/use-event-listener.svelte.js +3 -1
  26. package/dist/hooks/use-root-containers.svelte.d.ts +2 -2
  27. package/dist/hooks/use-root-containers.svelte.js +5 -5
  28. package/dist/hooks/use-tab-direction.svelte.js +1 -1
  29. package/dist/index.d.ts +3 -0
  30. package/dist/index.js +3 -0
  31. package/dist/input/Input.svelte +2 -2
  32. package/dist/input/Input.svelte.d.ts +5 -7
  33. package/dist/internal/FloatingProvider.svelte +12 -0
  34. package/dist/internal/{HoistFormFields.svelte.d.ts → FloatingProvider.svelte.d.ts} +5 -4
  35. package/dist/internal/FormFields.svelte +22 -19
  36. package/dist/internal/FormFieldsProvider.svelte +13 -0
  37. package/dist/internal/FormFieldsProvider.svelte.d.ts +21 -0
  38. package/dist/internal/Hidden.svelte +18 -8
  39. package/dist/internal/Hidden.svelte.d.ts +3 -6
  40. package/dist/internal/HiddenFeatures.d.ts +5 -0
  41. package/dist/internal/HiddenFeatures.js +9 -0
  42. package/dist/internal/floating-provider.svelte.d.ts +3 -0
  43. package/dist/internal/floating-provider.svelte.js +206 -0
  44. package/dist/internal/floating.svelte.d.ts +48 -23
  45. package/dist/internal/floating.svelte.js +79 -260
  46. package/dist/internal/form-fields.svelte.d.ts +10 -0
  47. package/dist/internal/form-fields.svelte.js +23 -0
  48. package/dist/label/Label.svelte +5 -4
  49. package/dist/label/Label.svelte.d.ts +1 -1
  50. package/dist/label/context.svelte.js +1 -1
  51. package/dist/legend/Legend.svelte +2 -2
  52. package/dist/legend/Legend.svelte.d.ts +18 -30
  53. package/dist/listbox/Listbox.svelte +42 -66
  54. package/dist/listbox/Listbox.svelte.d.ts +6 -65
  55. package/dist/listbox/ListboxButton.svelte +10 -10
  56. package/dist/listbox/ListboxButton.svelte.d.ts +5 -7
  57. package/dist/listbox/ListboxOption.svelte +10 -6
  58. package/dist/listbox/ListboxOption.svelte.d.ts +1 -1
  59. package/dist/listbox/ListboxOptions.svelte +108 -54
  60. package/dist/listbox/ListboxOptions.svelte.d.ts +1 -1
  61. package/dist/listbox/ListboxSelectedOption.svelte +2 -4
  62. package/dist/listbox/ListboxSelectedOption.svelte.d.ts +6 -6
  63. package/dist/listbox/context.svelte.d.ts +76 -0
  64. package/dist/listbox/context.svelte.js +36 -0
  65. package/dist/menu/Menu.svelte +5 -177
  66. package/dist/menu/Menu.svelte.d.ts +1 -1
  67. package/dist/menu/MenuButton.svelte +4 -2
  68. package/dist/menu/MenuButton.svelte.d.ts +1 -1
  69. package/dist/menu/MenuHeading.svelte.d.ts +1 -1
  70. package/dist/menu/MenuItem.svelte.d.ts +6 -5
  71. package/dist/menu/MenuItems.svelte +15 -11
  72. package/dist/menu/MenuItems.svelte.d.ts +1 -1
  73. package/dist/menu/MenuSection.svelte.d.ts +1 -1
  74. package/dist/menu/MenuSeparator.svelte.d.ts +1 -1
  75. package/dist/menu/context.svelte.d.ts +30 -1
  76. package/dist/menu/context.svelte.js +208 -0
  77. package/dist/popover/Popover.svelte +161 -0
  78. package/dist/popover/Popover.svelte.d.ts +41 -0
  79. package/dist/popover/PopoverBackdrop.svelte +56 -0
  80. package/dist/popover/PopoverBackdrop.svelte.d.ts +45 -0
  81. package/dist/popover/PopoverButton.svelte +246 -0
  82. package/dist/popover/PopoverButton.svelte.d.ts +44 -0
  83. package/dist/popover/PopoverGroup.svelte +43 -0
  84. package/dist/popover/PopoverGroup.svelte.d.ts +33 -0
  85. package/dist/popover/PopoverPanel.svelte +274 -0
  86. package/dist/popover/PopoverPanel.svelte.d.ts +53 -0
  87. package/dist/popover/context.svelte.d.ts +51 -0
  88. package/dist/popover/context.svelte.js +108 -0
  89. package/dist/popover/index.d.ts +5 -0
  90. package/dist/popover/index.js +5 -0
  91. package/dist/portal/InternalPortal.svelte.d.ts +1 -1
  92. package/dist/portal/PortalGroup.svelte.d.ts +1 -1
  93. package/dist/select/Select.svelte +74 -0
  94. package/dist/select/Select.svelte.d.ts +48 -0
  95. package/dist/select/index.d.ts +1 -0
  96. package/dist/select/index.js +1 -0
  97. package/dist/switch/Switch.svelte +30 -20
  98. package/dist/switch/Switch.svelte.d.ts +5 -5
  99. package/dist/switch/SwitchGroup.svelte.d.ts +1 -1
  100. package/dist/tabs/Tab.svelte.d.ts +1 -1
  101. package/dist/tabs/TabGroup.svelte.d.ts +2 -2
  102. package/dist/tabs/TabList.svelte.d.ts +1 -1
  103. package/dist/tabs/TabPanel.svelte.d.ts +1 -1
  104. package/dist/tabs/TabPanels.svelte.d.ts +1 -1
  105. package/dist/textarea/Textarea.svelte +67 -0
  106. package/dist/textarea/Textarea.svelte.d.ts +50 -0
  107. package/dist/textarea/index.d.ts +1 -0
  108. package/dist/textarea/index.js +1 -0
  109. package/dist/transition/InternalTransitionChild.svelte.d.ts +1 -1
  110. package/dist/transition/Transition.svelte.d.ts +1 -1
  111. package/dist/transition/TransitionChild.svelte.d.ts +1 -1
  112. package/dist/transition/context.svelte.js +2 -2
  113. package/dist/utils/ElementOrComponent.svelte +2 -2
  114. package/dist/utils/ElementOrComponent.svelte.d.ts +2 -2
  115. package/dist/utils/Generic.svelte +0 -1
  116. package/dist/utils/Generic.svelte.d.ts +1 -2
  117. package/dist/utils/alternative-types.d.ts +1 -2
  118. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +17 -0
  119. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte.d.ts +23 -0
  120. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +50 -0
  121. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte.d.ts +41 -0
  122. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.d.ts +6 -0
  123. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.js +158 -0
  124. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.d.ts +11 -0
  125. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.js +53 -0
  126. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.d.ts +9 -0
  127. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.js +28 -0
  128. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.d.ts +23 -0
  129. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.js +72 -0
  130. package/dist/utils/floating-ui/svelte/index.d.ts +5 -0
  131. package/dist/utils/floating-ui/svelte/index.js +5 -0
  132. package/dist/utils/floating-ui/svelte/inner.svelte.d.ts +83 -0
  133. package/dist/utils/floating-ui/svelte/inner.svelte.js +178 -0
  134. package/dist/utils/floating-ui/svelte/types.d.ts +114 -0
  135. package/dist/utils/floating-ui/svelte/types.js +1 -0
  136. package/dist/utils/floating-ui/svelte/utils/createPubSub.d.ts +5 -0
  137. package/dist/utils/floating-ui/svelte/utils/createPubSub.js +14 -0
  138. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.d.ts +2 -0
  139. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.js +13 -0
  140. package/dist/utils/floating-ui/svelte/utils/log.d.ts +2 -0
  141. package/dist/utils/floating-ui/svelte/utils/log.js +19 -0
  142. package/dist/utils/floating-ui/svelte/utils.d.ts +19 -0
  143. package/dist/utils/floating-ui/svelte/utils.js +136 -0
  144. package/dist/utils/floating-ui/svelte-dom/arrow.d.ts +22 -0
  145. package/dist/utils/floating-ui/svelte-dom/arrow.js +29 -0
  146. package/dist/utils/floating-ui/svelte-dom/index.d.ts +2 -0
  147. package/dist/utils/floating-ui/svelte-dom/index.js +2 -0
  148. package/dist/utils/floating-ui/svelte-dom/types.d.ts +80 -0
  149. package/dist/utils/floating-ui/svelte-dom/types.js +3 -0
  150. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.d.ts +6 -0
  151. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.js +182 -0
  152. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.d.ts +1 -0
  153. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.js +50 -0
  154. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.d.ts +1 -0
  155. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.js +7 -0
  156. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.d.ts +1 -0
  157. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.js +5 -0
  158. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.d.ts +4 -0
  159. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.js +7 -0
  160. package/dist/utils/id.d.ts +1 -1
  161. package/dist/utils/id.js +1 -1
  162. package/dist/utils/style.d.ts +2 -0
  163. package/dist/utils/style.js +6 -0
  164. package/dist/utils/types.d.ts +1 -2
  165. package/package.json +25 -24
  166. package/dist/internal/HoistFormFields.svelte +0 -11
  167. package/dist/internal/id.d.ts +0 -8
  168. package/dist/internal/id.js +0 -11
@@ -3,9 +3,8 @@
3
3
 
4
4
  <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_SWITCH_TAG">import { useId } from "../hooks/use-id.js";
5
5
  import { useDisabled } from "../hooks/use-disabled.js";
6
- import { useProvidedId } from "../internal/id.js";
7
- import { getContext } from "svelte";
8
- import { useDisposables } from "../utils/disposables.js";
6
+ import { useProvidedId } from "../utils/id.js";
7
+ import { getContext, tick } from "svelte";
9
8
  import { attemptSubmit } from "../utils/form.js";
10
9
  import { useLabelledBy } from "../label/context.svelte.js";
11
10
  import { useDescribedBy } from "../description/context.svelte.js";
@@ -14,18 +13,19 @@ import { useResolveButtonType } from "../hooks/use-resolve-button-type.svelte.js
14
13
  import { useFocusRing } from "../hooks/use-focus-ring.svelte.js";
15
14
  import { useHover } from "../hooks/use-hover.svelte.js";
16
15
  import { useActivePress } from "../hooks/use-active-press.svelte.js";
16
+ import { useControllable } from "../hooks/use-controllable.svelte.js";
17
17
  import FormFields from "../internal/FormFields.svelte";
18
18
  import ElementOrComponent from "../utils/ElementOrComponent.svelte";
19
19
  const internalId = useId();
20
- let providedId = useProvidedId();
21
- let { value: providedDisabled } = $derived(useDisabled());
20
+ const providedId = useProvidedId();
21
+ const providedDisabled = useDisabled();
22
22
  let {
23
23
  ref = $bindable(),
24
- id: ownId,
25
- disabled: ownDisabled,
26
- defaultChecked,
27
- checked = $bindable(defaultChecked),
28
- onchange,
24
+ id = providedId || `headlessui-switch-${internalId}`,
25
+ disabled: theirDisabled = false,
26
+ checked: controlledChecked = $bindable(),
27
+ defaultChecked: _defaultChecked,
28
+ onchange: controlledOnChange,
29
29
  name,
30
30
  value,
31
31
  form,
@@ -33,19 +33,30 @@ let {
33
33
  tabIndex,
34
34
  ...theirProps
35
35
  } = $props();
36
- const id = $derived(ownId || providedId || `headlessui-switch-${internalId}`);
37
- const disabled = $derived(ownDisabled || providedDisabled || false);
36
+ const disabled = $derived(providedDisabled?.value ?? theirDisabled);
38
37
  const groupContext = getContext("GroupContext");
39
38
  $effect(() => {
40
39
  if (groupContext) groupContext.switchElement = ref ?? null;
41
40
  });
42
- const d = useDisposables();
41
+ const defaultChecked = _defaultChecked;
42
+ const controllable = useControllable(
43
+ {
44
+ get controlledValue() {
45
+ return controlledChecked;
46
+ },
47
+ set controlledValue(checked2) {
48
+ controlledChecked = checked2;
49
+ }
50
+ },
51
+ controlledOnChange,
52
+ defaultChecked ?? false
53
+ );
54
+ const { value: checked, onchange } = $derived(controllable);
43
55
  let changing = $state(false);
44
56
  const toggle = () => {
45
57
  changing = true;
46
- checked = !checked;
47
- onchange?.(checked);
48
- d.nextFrame(() => {
58
+ onchange?.(!checked);
59
+ tick().then(() => {
49
60
  changing = false;
50
61
  });
51
62
  };
@@ -123,11 +134,10 @@ const ourProps = $derived(
123
134
  pressProps
124
135
  )
125
136
  );
126
- const reset = () => {
137
+ const reset = $derived(() => {
127
138
  if (defaultChecked === void 0) return;
128
- checked = defaultChecked;
129
- return onchange?.(checked);
130
- };
139
+ return onchange?.(defaultChecked);
140
+ });
131
141
  </script>
132
142
 
133
143
  {#if name}
@@ -1,4 +1,4 @@
1
- import type { ElementType, Props } from "../utils/types.js";
1
+ import type { ElementType, Props, PropsOf } from "../utils/types.js";
2
2
  declare const DEFAULT_SWITCH_TAG: "button";
3
3
  type SwitchRenderPropArg = {
4
4
  checked: boolean;
@@ -24,11 +24,11 @@ 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 import("../utils/types.js").PropsOf<TTag>, "form" | ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "name" | "value" | "checked" | "onchange" | "tabIndex" | "defaultChecked" | SwitchPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
28
- children?: import("../utils/types.js").Children<SwitchRenderPropArg> | undefined;
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
+ children?: import("svelte").Snippet<[SwitchRenderPropArg, Record<string, any>]> | undefined;
29
29
  ref?: HTMLElement;
30
- } & (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) ? {
31
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: SwitchRenderPropArg) => string) | undefined;
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) ? {
31
+ class?: PropsOf<TTag>["class"] | ((bag: SwitchRenderPropArg) => string) | undefined;
32
32
  } : {}) & {
33
33
  checked?: boolean;
34
34
  defaultChecked?: boolean;
@@ -8,7 +8,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_GROUP_
8
8
  props(): {
9
9
  as?: TTag | undefined;
10
10
  } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, "as" | "children" | "refName" | "class"> 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<{}> | undefined;
11
+ children?: import("svelte").Snippet<[{}, Record<string, any>]> | undefined;
12
12
  ref?: HTMLElement;
13
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
14
  class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: {}) => string) | undefined;
@@ -18,7 +18,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TAB_TA
18
18
  props(): {
19
19
  as?: TTag | undefined;
20
20
  } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "id" | TabPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
21
- children?: import("../utils/types.js").Children<TabRenderPropArg> | undefined;
21
+ children?: import("svelte").Snippet<[TabRenderPropArg, Record<string, any>]> | undefined;
22
22
  ref?: HTMLElement;
23
23
  } & (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) ? {
24
24
  class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: TabRenderPropArg) => string) | undefined;
@@ -34,8 +34,8 @@ import type { MutableRefObject } from "../utils/ref.svelte.js";
34
34
  declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TABS_TAG> {
35
35
  props(): {
36
36
  as?: TTag | undefined;
37
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "onchange" | "vertical" | "defaultIndex" | "selectedIndex" | "manual"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
38
- children?: import("../utils/types.js").Children<TabsRenderPropArg> | undefined;
37
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "onchange" | "manual" | "vertical" | "defaultIndex" | "selectedIndex"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
38
+ children?: import("svelte").Snippet<[TabsRenderPropArg, Record<string, any>]> | undefined;
39
39
  ref?: HTMLElement;
40
40
  } & (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) ? {
41
41
  class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: TabsRenderPropArg) => string) | undefined;
@@ -9,7 +9,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_LIST_T
9
9
  props(): {
10
10
  as?: TTag | undefined;
11
11
  } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | ListPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
12
- children?: import("../utils/types.js").Children<ListRenderPropArg> | undefined;
12
+ children?: import("svelte").Snippet<[ListRenderPropArg, Record<string, any>]> | undefined;
13
13
  ref?: HTMLElement;
14
14
  } & (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) ? {
15
15
  class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: ListRenderPropArg) => string) | undefined;
@@ -15,7 +15,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_PANEL_
15
15
  props(): {
16
16
  as?: TTag | undefined;
17
17
  } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "unmount" | "static" | "id" | "tabIndex" | PanelPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
18
- children?: import("../utils/types.js").Children<PanelRenderPropArg> | undefined;
18
+ children?: import("svelte").Snippet<[PanelRenderPropArg, Record<string, any>]> | undefined;
19
19
  ref?: HTMLElement;
20
20
  } & (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) ? {
21
21
  class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: PanelRenderPropArg) => string) | undefined;
@@ -8,7 +8,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_PANELS
8
8
  props(): {
9
9
  as?: TTag | undefined;
10
10
  } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, "as" | "children" | "refName" | "class"> 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<PanelsRenderPropArg> | undefined;
11
+ children?: import("svelte").Snippet<[PanelsRenderPropArg, Record<string, any>]> | undefined;
12
12
  ref?: HTMLElement;
13
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
14
  class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: PanelsRenderPropArg) => string) | undefined;
@@ -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, TValue = string">import { htmlid } from "../utils/id.js";
5
+ import { useDisabled } from "../hooks/use-disabled.js";
6
+ import { useProvidedId } from "../utils/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 || `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,50 @@
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, TValue = string> = Props<TTag, TextareaRenderPropArg, TextareaPropsWeControl, {
12
+ value?: TValue;
13
+ disabled?: boolean;
14
+ invalid?: boolean;
15
+ autofocus?: boolean;
16
+ }>;
17
+ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string> {
18
+ props(): {
19
+ as?: TTag | undefined;
20
+ value?: TValue | undefined;
21
+ } & (Exclude<keyof PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "invalid" | "disabled" | "autofocus" | "value" | TextareaPropsWeControl> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
22
+ children?: import("svelte").Snippet<[TextareaRenderPropArg, Record<string, any>]> | undefined;
23
+ ref?: HTMLElement;
24
+ } & (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) ? {
25
+ class?: PropsOf<TTag>["class"] | ((bag: TextareaRenderPropArg) => string) | undefined;
26
+ } : {}) & {
27
+ value?: TValue | undefined;
28
+ disabled?: boolean;
29
+ invalid?: boolean;
30
+ autofocus?: boolean;
31
+ };
32
+ events(): {} & {
33
+ [evt: string]: CustomEvent<any>;
34
+ };
35
+ slots(): {};
36
+ bindings(): "ref" | "value";
37
+ exports(): {};
38
+ }
39
+ interface $$IsomorphicComponent {
40
+ new <TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag, TValue>['props']>, ReturnType<__sveltets_Render<TTag, TValue>['events']>, ReturnType<__sveltets_Render<TTag, TValue>['slots']>> & {
41
+ $$bindings?: ReturnType<__sveltets_Render<TTag, TValue>['bindings']>;
42
+ } & ReturnType<__sveltets_Render<TTag, TValue>['exports']>;
43
+ <TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string>(internal: unknown, props: ReturnType<__sveltets_Render<TTag, TValue>['props']> & {
44
+ $$events?: ReturnType<__sveltets_Render<TTag, TValue>['events']>;
45
+ }): ReturnType<__sveltets_Render<TTag, TValue>['exports']>;
46
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
47
+ }
48
+ declare const Textarea: $$IsomorphicComponent;
49
+ type Textarea<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string> = InstanceType<typeof Textarea<TTag, TValue>>;
50
+ 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";
@@ -24,7 +24,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSI
24
24
  props(): {
25
25
  as?: TTag | undefined;
26
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;
27
+ children?: import("svelte").Snippet<[HTMLElement, Record<string, any>]> | undefined;
28
28
  ref?: HTMLElement;
29
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
30
  class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
@@ -8,7 +8,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSI
8
8
  props(): {
9
9
  as?: TTag | undefined;
10
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;
11
+ children?: import("svelte").Snippet<[HTMLElement, Record<string, any>]> | undefined;
12
12
  ref?: HTMLElement;
13
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
14
  class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
@@ -13,7 +13,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSI
13
13
  props(): {
14
14
  as?: TTag | undefined;
15
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;
16
+ children?: import("svelte").Snippet<[HTMLElement, Record<string, any>]> | undefined;
17
17
  ref?: HTMLElement;
18
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
19
  class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
@@ -10,14 +10,14 @@ export var TreeStates;
10
10
  })(TreeStates || (TreeStates = {}));
11
11
  export function useTransitionContext() {
12
12
  const context = getContext("TransitionContext");
13
- if (context === null) {
13
+ if (!context) {
14
14
  throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
15
15
  }
16
16
  return context;
17
17
  }
18
18
  export function useParentNesting() {
19
19
  let context = getContext("NestingContext");
20
- if (context === null) {
20
+ if (!context) {
21
21
  throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
22
22
  }
23
23
  return context;
@@ -1,4 +1,4 @@
1
- <script lang="ts" generics="TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue">import { mergePropsAdvanced, RenderFeatures, RenderStrategy } from "./render.js";
1
+ <script lang="ts" generics="TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue">import { mergePropsAdvanced, RenderFeatures } from "./render.js";
2
2
  import Generic from "./Generic.svelte";
3
3
  let {
4
4
  ourProps,
@@ -23,4 +23,4 @@ const hiddenProps = $derived(
23
23
  );
24
24
  </script>
25
25
 
26
- {#if render}<Generic {...rest} {...hiddenProps} {slot} tag={defaultTag} {name} bind:ref bind:value bind:checked />{/if}
26
+ {#if render}<Generic {...rest} {...hiddenProps} {slot} tag={defaultTag} bind:ref bind:value bind:checked />{/if}
@@ -6,7 +6,7 @@ declare class __sveltets_Render<TFeature extends RenderFeatures, TTag extends El
6
6
  [x: string]: any;
7
7
  [x: number]: any;
8
8
  } & {
9
- children?: import("./types.js").Children<TSlot> | undefined;
9
+ children?: import("svelte").Snippet<[TSlot, Record<string, any>]> | undefined;
10
10
  ref?: HTMLElement;
11
11
  } & {
12
12
  class?: any;
@@ -21,7 +21,7 @@ declare class __sveltets_Render<TFeature extends RenderFeatures, TTag extends El
21
21
  } : {}) ? T_1 extends any ? (x: T_1) => any : never : never : never) extends (x: infer R) => any ? R : never>> | undefined;
22
22
  theirProps: {
23
23
  as?: TTag | undefined;
24
- children?: import("./types.js").Children<TSlot> | undefined;
24
+ children?: import("svelte").Snippet<[TSlot, Record<string, any>]> | undefined;
25
25
  ref?: HTMLElement | undefined;
26
26
  class?: any;
27
27
  };
@@ -2,7 +2,6 @@
2
2
  let {
3
3
  slot = {},
4
4
  tag,
5
- name,
6
5
  ref = $bindable(),
7
6
  value = $bindable(),
8
7
  checked = $bindable(),
@@ -4,12 +4,11 @@ declare class __sveltets_Render<TTag extends keyof SvelteHTMLProps, TSlot, TValu
4
4
  as?: TTag | undefined;
5
5
  slot: TSlot;
6
6
  tag: ElementType;
7
- name: string;
8
7
  ref?: HTMLElement;
9
8
  value?: TValue | undefined;
10
9
  checked?: boolean;
11
10
  } & (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;
11
+ children?: import("svelte").Snippet<[TSlot, Record<string, any>]> | undefined;
13
12
  ref?: HTMLElement;
14
13
  } & (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
14
  class?: import("./types.js").PropsOf<TTag>["class"] | ((bag: TSlot) => string) | undefined;
@@ -7,9 +7,8 @@ export type ElementType = keyof SvelteHTMLProps;
7
7
  export type Expand<T> = T extends infer O ? {
8
8
  [K in keyof O]: O[K];
9
9
  } : never;
10
- export type Children<TSlot> = Snippet | Snippet<[TSlot, Record<string, any>]>;
11
10
  type OurProps<TSlot> = {
12
- children?: Children<TSlot>;
11
+ children?: Snippet<[TSlot, Record<string, any>]>;
13
12
  ref?: HTMLElement;
14
13
  class?: string | null | ((bag: TSlot) => string);
15
14
  };
@@ -0,0 +1,17 @@
1
+ <script lang="ts" module></script>
2
+
3
+ <script lang="ts">import { setContext } from "svelte";
4
+ import { useFloatingParentNodeId } from "./FloatingTree.svelte";
5
+ const { children, id } = $props();
6
+ const parentId = useFloatingParentNodeId();
7
+ setContext("FloatingNodeContext", {
8
+ get id() {
9
+ return id;
10
+ },
11
+ get parentId() {
12
+ return parentId.value;
13
+ }
14
+ });
15
+ </script>
16
+
17
+ {#if children}{@render children()}{/if}
@@ -0,0 +1,23 @@
1
+ import type { Snippet } from "svelte";
2
+ export interface FloatingNodeProps {
3
+ children?: Snippet;
4
+ id: string;
5
+ }
6
+ 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> {
7
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
8
+ $$bindings?: Bindings;
9
+ } & Exports;
10
+ (internal: unknown, props: Props & {
11
+ $$events?: Events;
12
+ $$slots?: Slots;
13
+ }): Exports & {
14
+ $set?: any;
15
+ $on?: any;
16
+ };
17
+ z_$$bindings?: Bindings;
18
+ }
19
+ declare const FloatingNode: $$__sveltets_2_IsomorphicComponent<FloatingNodeProps, {
20
+ [evt: string]: CustomEvent<any>;
21
+ }, {}, {}, "">;
22
+ type FloatingNode = InstanceType<typeof FloatingNode>;
23
+ export default FloatingNode;
@@ -0,0 +1,50 @@
1
+ <script lang="ts" module>import { getContext } from "svelte";
2
+ import { useId } from "../hooks/useId.svelte.js";
3
+ import { createPubSub } from "../utils/createPubSub.js";
4
+ export const useFloatingParentNodeId = () => {
5
+ const context = getContext("FloatingNodeContext");
6
+ return {
7
+ get value() {
8
+ return context?.id ?? null;
9
+ }
10
+ };
11
+ };
12
+ export const useFloatingTree = () => getContext("FloatingTreeContext") ?? null;
13
+ export function useFloatingNodeId(options) {
14
+ const { customParentId } = $derived(options);
15
+ const id = useId();
16
+ const tree = useFloatingTree();
17
+ const reactParentId = useFloatingParentNodeId();
18
+ const parentId = $derived(customParentId || reactParentId.value);
19
+ $effect(() => {
20
+ const node = { id, parentId };
21
+ tree?.addNode(node);
22
+ return () => {
23
+ tree?.removeNode(node);
24
+ };
25
+ });
26
+ return id;
27
+ }
28
+ </script>
29
+
30
+ <script lang="ts">import { setContext } from "svelte";
31
+ const { children } = $props();
32
+ const nodesRef = $state({ current: [] });
33
+ const addNode = (node) => {
34
+ nodesRef.current = [...nodesRef.current, node];
35
+ };
36
+ const removeNode = (node) => {
37
+ nodesRef.current = nodesRef.current.filter((n) => n !== node);
38
+ };
39
+ const events = createPubSub();
40
+ setContext("FloatingTreeContext", {
41
+ get nodesRef() {
42
+ return nodesRef;
43
+ },
44
+ addNode,
45
+ removeNode,
46
+ events
47
+ });
48
+ </script>
49
+
50
+ {#if children}{@render children()}{/if}
@@ -0,0 +1,41 @@
1
+ import { type Snippet } from "svelte";
2
+ import type { FloatingTreeType, ReferenceType } from "../types.js";
3
+ /**
4
+ * Returns the parent node id for nested floating elements, if available.
5
+ * Returns `null` for top-level floating elements.
6
+ */
7
+ export declare const useFloatingParentNodeId: () => {
8
+ readonly value: string | null;
9
+ };
10
+ /**
11
+ * Returns the nearest floating tree context, if available.
12
+ */
13
+ export declare const useFloatingTree: <RT extends ReferenceType = ReferenceType>() => FloatingTreeType<RT> | null;
14
+ /**
15
+ * Registers a node into the `FloatingTree`, returning its id.
16
+ * @see https://floating-ui.com/docs/FloatingTree
17
+ */
18
+ export declare function useFloatingNodeId(options: {
19
+ customParentId?: string;
20
+ }): string;
21
+ export interface FloatingTreeProps {
22
+ children?: Snippet;
23
+ }
24
+ 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> {
25
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
26
+ $$bindings?: Bindings;
27
+ } & Exports;
28
+ (internal: unknown, props: Props & {
29
+ $$events?: Events;
30
+ $$slots?: Slots;
31
+ }): Exports & {
32
+ $set?: any;
33
+ $on?: any;
34
+ };
35
+ z_$$bindings?: Bindings;
36
+ }
37
+ declare const FloatingTree: $$__sveltets_2_IsomorphicComponent<FloatingTreeProps, {
38
+ [evt: string]: CustomEvent<any>;
39
+ }, {}, {}, "">;
40
+ type FloatingTree = InstanceType<typeof FloatingTree>;
41
+ export default FloatingTree;
@@ -0,0 +1,6 @@
1
+ import type { ReferenceType, UseFloatingOptions, UseFloatingReturn } from "../types.js";
2
+ /**
3
+ * Provides data to position a floating element and context to add interactions.
4
+ * @see https://floating-ui.com/docs/useFloating
5
+ */
6
+ export declare function useFloating<RT extends ReferenceType = ReferenceType>(options?: UseFloatingOptions): UseFloatingReturn<RT>;