@pzerelles/headlessui-svelte 2.1.2-next.3 → 2.1.2-next.31

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 (197) hide show
  1. package/dist/button/Button.svelte +1 -1
  2. package/dist/button/Button.svelte.d.ts +9 -11
  3. package/dist/checkbox/Checkbox.svelte +4 -4
  4. package/dist/checkbox/Checkbox.svelte.d.ts +10 -14
  5. package/dist/close-button/CloseButton.svelte.d.ts +16 -18
  6. package/dist/data-interactive/DataInteractive.svelte.d.ts +8 -11
  7. package/dist/description/Description.svelte +19 -14
  8. package/dist/description/Description.svelte.d.ts +9 -11
  9. package/dist/description/context.svelte.js +14 -16
  10. package/dist/dialog/Dialog.svelte +245 -17
  11. package/dist/dialog/Dialog.svelte.d.ts +12 -14
  12. package/dist/dialog/DialogBackdrop.svelte +1 -1
  13. package/dist/dialog/DialogBackdrop.svelte.d.ts +9 -11
  14. package/dist/dialog/DialogPanel.svelte +1 -2
  15. package/dist/dialog/DialogPanel.svelte.d.ts +9 -11
  16. package/dist/dialog/DialogTitle.svelte.d.ts +8 -10
  17. package/dist/dialog/context.svelte.js +1 -1
  18. package/dist/field/Field.svelte +24 -12
  19. package/dist/field/Field.svelte.d.ts +9 -11
  20. package/dist/fieldset/Fieldset.svelte +1 -1
  21. package/dist/fieldset/Fieldset.svelte.d.ts +9 -11
  22. package/dist/focus-trap/FocusTrap.svelte +7 -14
  23. package/dist/focus-trap/FocusTrap.svelte.d.ts +11 -25
  24. package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
  25. package/dist/focus-trap/FocusTrapFeatures.js +15 -0
  26. package/dist/hooks/use-controllable.svelte.js +2 -1
  27. package/dist/hooks/use-did-element-move.svelte.js +5 -10
  28. package/dist/hooks/use-disabled.d.ts +6 -1
  29. package/dist/hooks/use-disabled.js +10 -5
  30. package/dist/hooks/use-event-listener.svelte.d.ts +1 -1
  31. package/dist/hooks/use-event-listener.svelte.js +3 -1
  32. package/dist/hooks/use-root-containers.svelte.d.ts +2 -2
  33. package/dist/hooks/use-root-containers.svelte.js +5 -5
  34. package/dist/hooks/use-tab-direction.svelte.js +1 -1
  35. package/dist/index.d.ts +4 -2
  36. package/dist/index.js +4 -2
  37. package/dist/input/Input.svelte +3 -3
  38. package/dist/input/Input.svelte.d.ts +10 -14
  39. package/dist/internal/FloatingProvider.svelte +12 -0
  40. package/dist/internal/FloatingProvider.svelte.d.ts +6 -0
  41. package/dist/internal/FocusSentinel.svelte.d.ts +2 -18
  42. package/dist/internal/ForcePortalRoot.svelte.d.ts +2 -18
  43. package/dist/internal/FormFields.svelte +22 -19
  44. package/dist/internal/FormFields.svelte.d.ts +2 -18
  45. package/dist/internal/FormFieldsProvider.svelte +13 -0
  46. package/dist/internal/FormFieldsProvider.svelte.d.ts +5 -0
  47. package/dist/internal/FormResolver.svelte.d.ts +2 -18
  48. package/dist/internal/Hidden.svelte +18 -8
  49. package/dist/internal/Hidden.svelte.d.ts +11 -16
  50. package/dist/internal/HiddenFeatures.d.ts +5 -0
  51. package/dist/internal/HiddenFeatures.js +9 -0
  52. package/dist/internal/MainTreeProvider.svelte.d.ts +2 -18
  53. package/dist/internal/Portal.svelte.d.ts +2 -18
  54. package/dist/internal/floating-provider.svelte.d.ts +3 -0
  55. package/dist/internal/floating-provider.svelte.js +206 -0
  56. package/dist/internal/floating.svelte.d.ts +46 -22
  57. package/dist/internal/floating.svelte.js +90 -272
  58. package/dist/internal/form-fields.svelte.d.ts +10 -0
  59. package/dist/internal/form-fields.svelte.js +23 -0
  60. package/dist/label/Label.svelte +6 -5
  61. package/dist/label/Label.svelte.d.ts +9 -11
  62. package/dist/label/context.svelte.js +1 -1
  63. package/dist/legend/Legend.svelte +2 -2
  64. package/dist/legend/Legend.svelte.d.ts +4 -32
  65. package/dist/listbox/Listbox.svelte +47 -68
  66. package/dist/listbox/Listbox.svelte.d.ts +18 -80
  67. package/dist/listbox/ListboxButton.svelte +10 -10
  68. package/dist/listbox/ListboxButton.svelte.d.ts +10 -15
  69. package/dist/listbox/ListboxOption.svelte +10 -6
  70. package/dist/listbox/ListboxOption.svelte.d.ts +9 -12
  71. package/dist/listbox/ListboxOptions.svelte +108 -54
  72. package/dist/listbox/ListboxOptions.svelte.d.ts +9 -12
  73. package/dist/listbox/ListboxSelectedOption.svelte +2 -4
  74. package/dist/listbox/ListboxSelectedOption.svelte.d.ts +14 -16
  75. package/dist/listbox/context.svelte.d.ts +76 -0
  76. package/dist/listbox/context.svelte.js +36 -0
  77. package/dist/listbox/index.d.ts +4 -4
  78. package/dist/listbox/index.js +1 -1
  79. package/dist/menu/Menu.svelte +13 -191
  80. package/dist/menu/Menu.svelte.d.ts +9 -13
  81. package/dist/menu/MenuButton.svelte +4 -2
  82. package/dist/menu/MenuButton.svelte.d.ts +9 -12
  83. package/dist/menu/MenuHeading.svelte.d.ts +9 -12
  84. package/dist/menu/MenuItem.svelte.d.ts +11 -16
  85. package/dist/menu/MenuItems.svelte +15 -11
  86. package/dist/menu/MenuItems.svelte.d.ts +9 -12
  87. package/dist/menu/MenuSection.svelte.d.ts +8 -11
  88. package/dist/menu/MenuSeparator.svelte.d.ts +8 -12
  89. package/dist/menu/context.svelte.d.ts +2 -1
  90. package/dist/menu/context.svelte.js +212 -2
  91. package/dist/menu/index.d.ts +7 -7
  92. package/dist/popover/Popover.svelte +161 -0
  93. package/dist/popover/Popover.svelte.d.ts +39 -0
  94. package/dist/popover/PopoverBackdrop.svelte +56 -0
  95. package/dist/popover/PopoverBackdrop.svelte.d.ts +43 -0
  96. package/dist/popover/PopoverButton.svelte +246 -0
  97. package/dist/popover/PopoverButton.svelte.d.ts +42 -0
  98. package/dist/popover/PopoverGroup.svelte +43 -0
  99. package/dist/popover/PopoverGroup.svelte.d.ts +31 -0
  100. package/dist/popover/PopoverPanel.svelte +274 -0
  101. package/dist/popover/PopoverPanel.svelte.d.ts +51 -0
  102. package/dist/popover/context.svelte.d.ts +51 -0
  103. package/dist/popover/context.svelte.js +108 -0
  104. package/dist/popover/index.d.ts +5 -0
  105. package/dist/popover/index.js +5 -0
  106. package/dist/portal/InternalPortal.svelte.d.ts +9 -11
  107. package/dist/portal/Portal.svelte.d.ts +2 -6
  108. package/dist/portal/PortalGroup.svelte.d.ts +9 -11
  109. package/dist/select/Select.svelte +74 -0
  110. package/dist/select/Select.svelte.d.ts +46 -0
  111. package/dist/select/index.d.ts +1 -0
  112. package/dist/select/index.js +1 -0
  113. package/dist/switch/Switch.svelte +30 -20
  114. package/dist/switch/Switch.svelte.d.ts +10 -12
  115. package/dist/switch/SwitchGroup.svelte.d.ts +8 -10
  116. package/dist/tabs/Tab.svelte +8 -9
  117. package/dist/tabs/Tab.svelte.d.ts +9 -11
  118. package/dist/tabs/TabGroup.svelte +27 -190
  119. package/dist/tabs/TabGroup.svelte.d.ts +9 -31
  120. package/dist/tabs/TabList.svelte +4 -4
  121. package/dist/tabs/TabList.svelte.d.ts +8 -10
  122. package/dist/tabs/TabPanel.svelte +4 -5
  123. package/dist/tabs/TabPanel.svelte.d.ts +9 -11
  124. package/dist/tabs/TabPanels.svelte +3 -3
  125. package/dist/tabs/TabPanels.svelte.d.ts +8 -10
  126. package/dist/tabs/context.svelte.d.ts +31 -0
  127. package/dist/tabs/context.svelte.js +134 -0
  128. package/dist/textarea/Textarea.svelte +4 -4
  129. package/dist/textarea/Textarea.svelte.d.ts +21 -20
  130. package/dist/transition/InternalTransitionChild.svelte.d.ts +9 -11
  131. package/dist/transition/Transition.svelte.d.ts +9 -11
  132. package/dist/transition/TransitionChild.svelte.d.ts +9 -11
  133. package/dist/transition/context.svelte.js +2 -2
  134. package/dist/utils/DisabledProvider.svelte +6 -0
  135. package/dist/utils/DisabledProvider.svelte.d.ts +6 -0
  136. package/dist/utils/ElementOrComponent.svelte +2 -2
  137. package/dist/utils/ElementOrComponent.svelte.d.ts +12 -11
  138. package/dist/utils/Generic.svelte +10 -8
  139. package/dist/utils/Generic.svelte.d.ts +12 -15
  140. package/dist/utils/StableCollection.svelte.d.ts +2 -18
  141. package/dist/utils/alternative-types.d.ts +1 -2
  142. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +17 -0
  143. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte.d.ts +7 -0
  144. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +50 -0
  145. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte.d.ts +25 -0
  146. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.d.ts +6 -0
  147. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.js +158 -0
  148. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.d.ts +11 -0
  149. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.js +53 -0
  150. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.d.ts +9 -0
  151. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.js +28 -0
  152. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.d.ts +23 -0
  153. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.js +72 -0
  154. package/dist/utils/floating-ui/svelte/index.d.ts +5 -0
  155. package/dist/utils/floating-ui/svelte/index.js +5 -0
  156. package/dist/utils/floating-ui/svelte/inner.svelte.d.ts +83 -0
  157. package/dist/utils/floating-ui/svelte/inner.svelte.js +178 -0
  158. package/dist/utils/floating-ui/svelte/types.d.ts +114 -0
  159. package/dist/utils/floating-ui/svelte/types.js +1 -0
  160. package/dist/utils/floating-ui/svelte/utils/createPubSub.d.ts +5 -0
  161. package/dist/utils/floating-ui/svelte/utils/createPubSub.js +14 -0
  162. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.d.ts +2 -0
  163. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.js +13 -0
  164. package/dist/utils/floating-ui/svelte/utils/log.d.ts +2 -0
  165. package/dist/utils/floating-ui/svelte/utils/log.js +19 -0
  166. package/dist/utils/floating-ui/svelte/utils.d.ts +19 -0
  167. package/dist/utils/floating-ui/svelte/utils.js +136 -0
  168. package/dist/utils/floating-ui/svelte-dom/arrow.d.ts +22 -0
  169. package/dist/utils/floating-ui/svelte-dom/arrow.js +29 -0
  170. package/dist/utils/floating-ui/svelte-dom/index.d.ts +2 -0
  171. package/dist/utils/floating-ui/svelte-dom/index.js +2 -0
  172. package/dist/utils/floating-ui/svelte-dom/types.d.ts +80 -0
  173. package/dist/utils/floating-ui/svelte-dom/types.js +3 -0
  174. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.d.ts +6 -0
  175. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.js +182 -0
  176. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.d.ts +1 -0
  177. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.js +50 -0
  178. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.d.ts +1 -0
  179. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.js +7 -0
  180. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.d.ts +1 -0
  181. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.js +5 -0
  182. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.d.ts +4 -0
  183. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.js +7 -0
  184. package/dist/utils/id.d.ts +1 -1
  185. package/dist/utils/id.js +1 -1
  186. package/dist/utils/index.d.ts +3 -0
  187. package/dist/utils/index.js +3 -0
  188. package/dist/utils/style.d.ts +2 -0
  189. package/dist/utils/style.js +6 -0
  190. package/dist/utils/types.d.ts +9 -13
  191. package/package.json +27 -26
  192. package/dist/dialog/InternalDialog.svelte +0 -233
  193. package/dist/dialog/InternalDialog.svelte.d.ts +0 -42
  194. package/dist/internal/HoistFormFields.svelte +0 -11
  195. package/dist/internal/HoistFormFields.svelte.d.ts +0 -21
  196. package/dist/internal/id.d.ts +0 -8
  197. package/dist/internal/id.js +0 -11
@@ -15,7 +15,7 @@ let {
15
15
  type = "button",
16
16
  ...theirProps
17
17
  } = $props();
18
- const disabled = $derived(providedDisabled.value || ownDisabled);
18
+ const disabled = $derived(providedDisabled.current || ownDisabled);
19
19
  const { isHovered: hover, hoverProps } = $derived(
20
20
  useHover({
21
21
  get disabled() {
@@ -16,19 +16,19 @@ export type ButtonProps<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG> =
16
16
  declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG> {
17
17
  props(): {
18
18
  as?: TTag | undefined;
19
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "type"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
20
- children?: import("../utils/types.js").Children<ButtonRenderPropArg> | undefined;
19
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "disabled" | "autofocus" | "type"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
20
+ children?: import("svelte").Snippet<[{
21
+ slot: ButtonRenderPropArg;
22
+ props: Record<string, any>;
23
+ }]> | undefined;
24
+ class?: string | ((bag: ButtonRenderPropArg) => string) | null | undefined;
21
25
  ref?: HTMLElement;
22
- } & (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) ? {
23
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: ButtonRenderPropArg) => string) | undefined;
24
- } : {}) & {
26
+ } & {
25
27
  disabled?: boolean;
26
28
  autofocus?: boolean;
27
29
  type?: "button" | "submit" | "reset";
28
30
  };
29
- events(): {} & {
30
- [evt: string]: CustomEvent<any>;
31
- };
31
+ events(): {};
32
32
  slots(): {};
33
33
  bindings(): "ref";
34
34
  exports(): {};
@@ -37,9 +37,7 @@ interface $$IsomorphicComponent {
37
37
  new <TTag extends ElementType = typeof DEFAULT_BUTTON_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
38
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
39
39
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
40
- <TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
41
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
42
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
40
+ <TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
43
41
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
44
42
  }
45
43
  declare const Button: $$IsomorphicComponent;
@@ -3,7 +3,7 @@
3
3
 
4
4
  <script lang="ts" generics="TType, TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG">import { tick } from "svelte";
5
5
  import { attemptSubmit } from "../utils/form.js";
6
- import { getIdContext, htmlid } from "../utils/id.js";
6
+ import { useProvidedId, htmlid } from "../utils/id.js";
7
7
  import { useActivePress } from "../hooks/use-active-press.svelte.js";
8
8
  import { useFocusRing } from "../hooks/use-focus-ring.svelte.js";
9
9
  import FormFields from "../internal/FormFields.svelte";
@@ -15,12 +15,12 @@ import { mergeProps } from "../utils/render.js";
15
15
  import ElementOrComponent from "../utils/ElementOrComponent.svelte";
16
16
  import { useControllable } from "../hooks/use-controllable.svelte.js";
17
17
  const internalId = htmlid();
18
- const providedId = getIdContext();
18
+ const providedId = useProvidedId();
19
19
  const providedDisabled = useDisabled();
20
20
  let {
21
21
  ref = $bindable(),
22
22
  id = providedId || `headlessui-checkbox-${internalId}`,
23
- disabled: ownDisabled = false,
23
+ disabled: theirDisabled = false,
24
24
  autofocus = false,
25
25
  checked: controlledChecked = $bindable(),
26
26
  defaultChecked: _defaultChecked,
@@ -45,7 +45,7 @@ const controllable = useControllable(
45
45
  defaultChecked ?? false
46
46
  );
47
47
  const { value: checked, onchange } = $derived(controllable);
48
- const disabled = $derived(providedDisabled.value || ownDisabled);
48
+ const disabled = $derived(providedDisabled.current || theirDisabled);
49
49
  const { isHovered: hover, hoverProps } = $derived(
50
50
  useHover({
51
51
  get disabled() {
@@ -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 let DEFAULT_CHECKBOX_TAG: "span";
3
3
  type CheckboxRenderPropArg = {
4
4
  checked: boolean;
@@ -12,7 +12,6 @@ type CheckboxRenderPropArg = {
12
12
  };
13
13
  type CheckboxPropsWeControl = "aria-checked" | "aria-describedby" | "aria-disabled" | "aria-labelledby" | "role" | "tabIndex";
14
14
  export type CheckboxProps<TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG, TType = string> = Props<TTag, CheckboxRenderPropArg, CheckboxPropsWeControl, {
15
- id?: string;
16
15
  value?: TType;
17
16
  disabled?: boolean;
18
17
  indeterminate?: boolean;
@@ -26,13 +25,14 @@ export type CheckboxProps<TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG
26
25
  declare class __sveltets_Render<TType, TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG> {
27
26
  props(): {
28
27
  as?: TTag | undefined;
29
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, "form" | ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "name" | "value" | "checked" | "id" | "onchange" | "indeterminate" | CheckboxPropsWeControl | "defaultChecked"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
30
- children?: import("../utils/types.js").Children<CheckboxRenderPropArg> | undefined;
28
+ } & (Exclude<keyof PropsOf<TTag>, "form" | ("slot" | "as" | "children" | "class" | "ref") | "disabled" | "autofocus" | "value" | "checked" | "name" | "onchange" | "indeterminate" | CheckboxPropsWeControl | "defaultChecked"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
29
+ children?: import("svelte").Snippet<[{
30
+ slot: CheckboxRenderPropArg;
31
+ props: Record<string, any>;
32
+ }]> | undefined;
33
+ class?: string | ((bag: CheckboxRenderPropArg) => string) | null | undefined;
31
34
  ref?: HTMLElement;
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) ? {
33
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: CheckboxRenderPropArg) => string) | undefined;
34
- } : {}) & {
35
- id?: string;
35
+ } & {
36
36
  value?: TType | undefined;
37
37
  disabled?: boolean;
38
38
  indeterminate?: boolean;
@@ -43,9 +43,7 @@ declare class __sveltets_Render<TType, TTag extends ElementType = typeof DEFAULT
43
43
  name?: string;
44
44
  onchange?: (checked: boolean) => void;
45
45
  };
46
- events(): {} & {
47
- [evt: string]: CustomEvent<any>;
48
- };
46
+ events(): {};
49
47
  slots(): {};
50
48
  bindings(): "ref" | "checked";
51
49
  exports(): {};
@@ -54,9 +52,7 @@ interface $$IsomorphicComponent {
54
52
  new <TType, TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TType, TTag>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TType, TTag>['props']>, ReturnType<__sveltets_Render<TType, TTag>['events']>, ReturnType<__sveltets_Render<TType, TTag>['slots']>> & {
55
53
  $$bindings?: ReturnType<__sveltets_Render<TType, TTag>['bindings']>;
56
54
  } & ReturnType<__sveltets_Render<TType, TTag>['exports']>;
57
- <TType, TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TType, TTag>['props']> & {
58
- $$events?: ReturnType<__sveltets_Render<TType, TTag>['events']>;
59
- }): ReturnType<__sveltets_Render<TType, TTag>['exports']>;
55
+ <TType, TTag extends ElementType = typeof DEFAULT_CHECKBOX_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TType, TTag>['props']> & {}): ReturnType<__sveltets_Render<TType, TTag>['exports']>;
60
56
  z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
61
57
  }
62
58
  declare const Checkbox: $$IsomorphicComponent;
@@ -5,31 +5,31 @@ export type CloseButtonProps<TTag extends ElementType = typeof DEFAULT_BUTTON_TA
5
5
  declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_BUTTON_TAG> {
6
6
  props(): {
7
7
  as?: TTag | undefined;
8
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "type"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
9
- children?: import("../utils/types.js").Children<{
8
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "disabled" | "autofocus" | "type"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
9
+ children?: import("svelte").Snippet<[{
10
+ slot: {
11
+ disabled: boolean;
12
+ hover: boolean;
13
+ focus: boolean;
14
+ active: boolean;
15
+ autofocus: boolean;
16
+ };
17
+ props: Record<string, any>;
18
+ }]> | undefined;
19
+ class?: string | ((bag: {
10
20
  disabled: boolean;
11
21
  hover: boolean;
12
22
  focus: boolean;
13
23
  active: boolean;
14
24
  autofocus: boolean;
15
- }> | undefined;
25
+ }) => string) | null | undefined;
16
26
  ref?: HTMLElement;
17
- } & (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) ? {
18
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: {
19
- disabled: boolean;
20
- hover: boolean;
21
- focus: boolean;
22
- active: boolean;
23
- autofocus: boolean;
24
- }) => string) | undefined;
25
- } : {}) & {
27
+ } & {
26
28
  disabled?: boolean;
27
29
  autofocus?: boolean;
28
30
  type?: "button" | "submit" | "reset";
29
31
  };
30
- events(): {} & {
31
- [evt: string]: CustomEvent<any>;
32
- };
32
+ events(): {};
33
33
  slots(): {};
34
34
  bindings(): "";
35
35
  exports(): {};
@@ -38,9 +38,7 @@ interface $$IsomorphicComponent {
38
38
  new <TTag extends ElementType = typeof DEFAULT_BUTTON_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
39
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
40
40
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
41
- <TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
42
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
43
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
41
+ <TTag extends ElementType = typeof DEFAULT_BUTTON_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
44
42
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
45
43
  }
46
44
  declare const CloseButton: $$IsomorphicComponent;
@@ -8,19 +8,18 @@ type DataInteractiveRenderPropArg = {
8
8
  };
9
9
  type DataInteractivePropsWeControl = never;
10
10
  export type DataInteractiveProps<TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG> = Props<TTag, DataInteractiveRenderPropArg, DataInteractivePropsWeControl, {}>;
11
- export type DataInteractiveChildren = Snippet<[DataInteractiveRenderPropArg]>;
12
11
  declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG> {
13
12
  props(): {
14
13
  as?: TTag | undefined;
15
- } & (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) & {
16
- children?: import("../utils/types.js").Children<DataInteractiveRenderPropArg> | undefined;
14
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, "slot" | "as" | "children" | "class" | "ref"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
15
+ children?: Snippet<[{
16
+ slot: DataInteractiveRenderPropArg;
17
+ props: Record<string, any>;
18
+ }]> | undefined;
19
+ class?: string | ((bag: DataInteractiveRenderPropArg) => string) | null | undefined;
17
20
  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: DataInteractiveRenderPropArg) => string) | undefined;
20
- } : {});
21
- events(): {} & {
22
- [evt: string]: CustomEvent<any>;
23
21
  };
22
+ events(): {};
24
23
  slots(): {};
25
24
  bindings(): "ref";
26
25
  exports(): {};
@@ -29,9 +28,7 @@ interface $$IsomorphicComponent {
29
28
  new <TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_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']>> & {
30
29
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
31
30
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
32
- <TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
33
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
34
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
31
+ <TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
35
32
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
36
33
  }
37
34
  declare const DataInteractive: $$IsomorphicComponent;
@@ -1,28 +1,33 @@
1
1
  <script lang="ts" module>let DEFAULT_DESCRIPTION_TAG = "p";
2
2
  </script>
3
3
 
4
- <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG">import { htmlid } from "../utils/id.js";
5
- import { stateFromSlot } from "../utils/state.js";
4
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG">import { useId } from "../hooks/use-id.js";
6
5
  import { useDisabled } from "../hooks/use-disabled.js";
7
- import { onMount } from "svelte";
8
6
  import { useDescriptionContext } from "./context.svelte.js";
9
- const internalId = htmlid();
7
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte";
8
+ import { untrack } from "svelte";
9
+ const internalId = useId();
10
10
  const providedDisabled = useDisabled();
11
11
  let {
12
- as,
12
+ ref = $bindable(),
13
13
  id = `headlessui-description-${internalId}`,
14
- children,
15
14
  ...theirProps
16
15
  } = $props();
17
- const context = useDescriptionContext();
18
- onMount(() => {
19
- context.register(id);
16
+ const { register } = useDescriptionContext();
17
+ $effect(() => {
18
+ id;
19
+ return untrack(() => register(id));
20
20
  });
21
- const disabled = $derived(providedDisabled.value || false);
21
+ const disabled = $derived(providedDisabled.current || false);
22
22
  const slot = $derived({ disabled });
23
- const ourProps = $derived({ id, ...stateFromSlot(slot) });
23
+ const ourProps = $derived({ id });
24
24
  </script>
25
25
 
26
- <svelte:element this={as ?? DEFAULT_DESCRIPTION_TAG} {...ourProps} {...theirProps}>
27
- {#if children}{@render children(slot, {})}{/if}
28
- </svelte:element>
26
+ <ElementOrComponent
27
+ {ourProps}
28
+ {theirProps}
29
+ slots={slot}
30
+ defaultTag={DEFAULT_DESCRIPTION_TAG}
31
+ name="Description"
32
+ bind:ref
33
+ />
@@ -4,26 +4,24 @@ export type DescriptionProps<TTag extends ElementType = typeof DEFAULT_DESCRIPTI
4
4
  declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> {
5
5
  props(): {
6
6
  as?: TTag | undefined;
7
- } & (Exclude<keyof PropsOf<TTag>, "as" | "children" | "refName" | "class"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
8
- children?: import("../utils/types.js").Children<{}> | undefined;
7
+ } & (Exclude<keyof PropsOf<TTag>, "slot" | "as" | "children" | "class" | "ref"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
8
+ children?: import("svelte").Snippet<[{
9
+ slot: {};
10
+ props: Record<string, any>;
11
+ }]> | undefined;
12
+ class?: string | ((bag: {}) => string) | null | undefined;
9
13
  ref?: HTMLElement;
10
- } & (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) ? {
11
- class?: PropsOf<TTag>["class"] | ((bag: {}) => string) | undefined;
12
- } : {});
13
- events(): {} & {
14
- [evt: string]: CustomEvent<any>;
15
14
  };
15
+ events(): {};
16
16
  slots(): {};
17
- bindings(): "";
17
+ bindings(): "ref";
18
18
  exports(): {};
19
19
  }
20
20
  interface $$IsomorphicComponent {
21
21
  new <TTag extends ElementType = typeof DEFAULT_DESCRIPTION_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']>> & {
22
22
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
23
23
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
24
- <TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
25
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
26
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
24
+ <TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
27
25
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
28
26
  }
29
27
  declare const Description: $$IsomorphicComponent;
@@ -1,8 +1,8 @@
1
1
  import { getContext, setContext } from "svelte";
2
2
  export function useDescriptionContext() {
3
- let context = getContext("DescriptionContext");
4
- if (context === null) {
5
- let err = new Error("You used a <Description /> component, but it is not inside a relevant parent.");
3
+ const context = getContext("DescriptionContext");
4
+ if (!context) {
5
+ const err = new Error("You used a <Description /> component, but it is not inside a relevant parent.");
6
6
  if (Error.captureStackTrace)
7
7
  Error.captureStackTrace(err, useDescriptionContext);
8
8
  throw err;
@@ -18,10 +18,19 @@ export function useDescribedBy() {
18
18
  };
19
19
  }
20
20
  export const useDescriptions = (options = {}) => {
21
- const { slot, name, props, inherit } = $derived(options);
22
- let descriptionIds = $state([]);
21
+ const { slot, name, props } = $derived(options);
22
+ const descriptionIds = $state([]);
23
+ const register = (value) => {
24
+ descriptionIds.push(value);
25
+ return () => {
26
+ const idx = descriptionIds.indexOf(value);
27
+ if (idx !== -1)
28
+ descriptionIds.splice(idx, 1);
29
+ };
30
+ };
23
31
  const value = $derived(descriptionIds.length > 0 ? descriptionIds.join(" ") : undefined);
24
32
  const context = {
33
+ register,
25
34
  get slot() {
26
35
  return slot;
27
36
  },
@@ -34,17 +43,6 @@ export const useDescriptions = (options = {}) => {
34
43
  get value() {
35
44
  return value;
36
45
  },
37
- register(value) {
38
- descriptionIds.push(value);
39
- return () => {
40
- const clone = descriptionIds.slice();
41
- const idx = clone.indexOf(value);
42
- if (idx !== -1)
43
- clone.splice(idx, 1);
44
- descriptionIds = clone;
45
- return descriptionIds;
46
- };
47
- },
48
46
  };
49
47
  setContext("DescriptionContext", context);
50
48
  return context;