@pzerelles/headlessui-svelte 2.1.2-next.5 → 2.1.2-next.50

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 (267) hide show
  1. package/dist/button/Button.svelte +16 -19
  2. package/dist/button/Button.svelte.d.ts +8 -36
  3. package/dist/button/index.d.ts +1 -1
  4. package/dist/button/index.js +1 -1
  5. package/dist/checkbox/Checkbox.svelte +31 -27
  6. package/dist/checkbox/Checkbox.svelte.d.ts +17 -38
  7. package/dist/checkbox/index.d.ts +1 -1
  8. package/dist/checkbox/index.js +1 -1
  9. package/dist/close-button/CloseButton.svelte +4 -7
  10. package/dist/close-button/CloseButton.svelte.d.ts +3 -46
  11. package/dist/close-button/index.d.ts +1 -0
  12. package/dist/close-button/index.js +1 -0
  13. package/dist/data-interactive/DataInteractive.svelte +6 -22
  14. package/dist/data-interactive/DataInteractive.svelte.d.ts +9 -34
  15. package/dist/data-interactive/index.d.ts +1 -1
  16. package/dist/data-interactive/index.js +1 -1
  17. package/dist/description/Description.svelte +29 -24
  18. package/dist/description/Description.svelte.d.ts +9 -30
  19. package/dist/description/context.svelte.js +14 -16
  20. package/dist/description/index.d.ts +1 -1
  21. package/dist/dialog/Dialog.svelte +315 -31
  22. package/dist/dialog/Dialog.svelte.d.ts +7 -45
  23. package/dist/dialog/DialogBackdrop.svelte +11 -14
  24. package/dist/dialog/DialogBackdrop.svelte.d.ts +8 -33
  25. package/dist/dialog/DialogPanel.svelte +23 -19
  26. package/dist/dialog/DialogPanel.svelte.d.ts +8 -34
  27. package/dist/dialog/DialogTitle.svelte +17 -8
  28. package/dist/dialog/DialogTitle.svelte.d.ts +9 -30
  29. package/dist/dialog/context.svelte.js +2 -2
  30. package/dist/dialog/index.d.ts +4 -4
  31. package/dist/dialog/index.js +4 -4
  32. package/dist/disclosure/Disclosure.svelte +61 -0
  33. package/dist/disclosure/Disclosure.svelte.d.ts +14 -0
  34. package/dist/disclosure/DisclosureButton.svelte +191 -0
  35. package/dist/disclosure/DisclosureButton.svelte.d.ts +19 -0
  36. package/dist/disclosure/DisclosurePanel.svelte +98 -0
  37. package/dist/disclosure/DisclosurePanel.svelte.d.ts +16 -0
  38. package/dist/disclosure/context.svelte.d.ts +32 -0
  39. package/dist/disclosure/context.svelte.js +94 -0
  40. package/dist/disclosure/index.d.ts +3 -0
  41. package/dist/disclosure/index.js +3 -0
  42. package/dist/field/Field.svelte +27 -26
  43. package/dist/field/Field.svelte.d.ts +7 -34
  44. package/dist/field/index.d.ts +1 -1
  45. package/dist/fieldset/Fieldset.svelte +21 -20
  46. package/dist/fieldset/Fieldset.svelte.d.ts +8 -35
  47. package/dist/fieldset/index.d.ts +1 -1
  48. package/dist/focus-trap/FocusTrap.svelte +29 -36
  49. package/dist/focus-trap/FocusTrap.svelte.d.ts +8 -38
  50. package/dist/hooks/use-controllable.svelte.js +3 -2
  51. package/dist/hooks/use-did-element-move.svelte.js +5 -10
  52. package/dist/hooks/use-disabled.d.ts +6 -1
  53. package/dist/hooks/use-disabled.js +10 -5
  54. package/dist/hooks/use-element-size.svelte.js +1 -1
  55. package/dist/hooks/use-event-listener.svelte.d.ts +1 -1
  56. package/dist/hooks/use-event-listener.svelte.js +3 -1
  57. package/dist/hooks/use-focus-ring.svelte.js +1 -1
  58. package/dist/hooks/use-inert-others.svelte.js +10 -10
  59. package/dist/hooks/use-is-top-layer.svelte.js +2 -2
  60. package/dist/hooks/use-resolve-button-type.svelte.js +0 -1
  61. package/dist/hooks/use-root-containers.svelte.d.ts +2 -2
  62. package/dist/hooks/use-root-containers.svelte.js +5 -5
  63. package/dist/hooks/use-tab-direction.svelte.js +1 -1
  64. package/dist/hooks/use-transition.svelte.js +2 -2
  65. package/dist/index.d.ts +6 -2
  66. package/dist/index.js +6 -2
  67. package/dist/input/Input.svelte +28 -21
  68. package/dist/input/Input.svelte.d.ts +16 -33
  69. package/dist/input/index.d.ts +1 -1
  70. package/dist/input/index.js +1 -1
  71. package/dist/internal/FloatingProvider.svelte +17 -0
  72. package/dist/internal/FloatingProvider.svelte.d.ts +8 -0
  73. package/dist/internal/FocusSentinel.svelte +33 -32
  74. package/dist/internal/FocusSentinel.svelte.d.ts +4 -18
  75. package/dist/internal/ForcePortalRoot.svelte.d.ts +4 -18
  76. package/dist/internal/FormFields.svelte +18 -13
  77. package/dist/internal/FormFields.svelte.d.ts +4 -18
  78. package/dist/internal/FormFieldsProvider.svelte +17 -0
  79. package/dist/internal/FormFieldsProvider.svelte.d.ts +7 -0
  80. package/dist/internal/FormResolver.svelte +6 -2
  81. package/dist/internal/FormResolver.svelte.d.ts +4 -18
  82. package/dist/internal/Hidden.svelte +10 -10
  83. package/dist/internal/Hidden.svelte.d.ts +6 -33
  84. package/dist/internal/MainTreeProvider.svelte +1 -1
  85. package/dist/internal/MainTreeProvider.svelte.d.ts +4 -18
  86. package/dist/internal/Portal.svelte.d.ts +4 -18
  87. package/dist/internal/floating-provider.svelte.d.ts +3 -0
  88. package/dist/internal/floating-provider.svelte.js +206 -0
  89. package/dist/internal/floating.svelte.d.ts +46 -22
  90. package/dist/internal/floating.svelte.js +90 -272
  91. package/dist/internal/form-fields.svelte.d.ts +10 -0
  92. package/dist/internal/form-fields.svelte.js +23 -0
  93. package/dist/internal/frozen.svelte.js +1 -1
  94. package/dist/label/Label.svelte +17 -13
  95. package/dist/label/Label.svelte.d.ts +8 -33
  96. package/dist/label/context.svelte.js +1 -1
  97. package/dist/label/index.d.ts +1 -1
  98. package/dist/legend/Legend.svelte +22 -15
  99. package/dist/legend/Legend.svelte.d.ts +10 -34
  100. package/dist/listbox/Listbox.svelte +79 -151
  101. package/dist/listbox/Listbox.svelte.d.ts +16 -91
  102. package/dist/listbox/ListboxButton.svelte +31 -29
  103. package/dist/listbox/ListboxButton.svelte.d.ts +8 -38
  104. package/dist/listbox/ListboxOption.svelte +40 -27
  105. package/dist/listbox/ListboxOption.svelte.d.ts +16 -32
  106. package/dist/listbox/ListboxOptions.svelte +126 -72
  107. package/dist/listbox/ListboxOptions.svelte.d.ts +8 -43
  108. package/dist/listbox/ListboxSelectedOption.svelte +24 -26
  109. package/dist/listbox/ListboxSelectedOption.svelte.d.ts +14 -39
  110. package/dist/listbox/context.svelte.d.ts +76 -0
  111. package/dist/listbox/context.svelte.js +36 -0
  112. package/dist/listbox/index.d.ts +5 -5
  113. package/dist/listbox/index.js +4 -4
  114. package/dist/menu/Menu.svelte +22 -266
  115. package/dist/menu/Menu.svelte.d.ts +7 -37
  116. package/dist/menu/MenuButton.svelte +29 -24
  117. package/dist/menu/MenuButton.svelte.d.ts +8 -39
  118. package/dist/menu/MenuHeading.svelte +12 -16
  119. package/dist/menu/MenuHeading.svelte.d.ts +7 -36
  120. package/dist/menu/MenuItem.svelte +18 -23
  121. package/dist/menu/MenuItem.svelte.d.ts +9 -39
  122. package/dist/menu/MenuItems.svelte +33 -34
  123. package/dist/menu/MenuItems.svelte.d.ts +8 -43
  124. package/dist/menu/MenuSection.svelte +9 -12
  125. package/dist/menu/MenuSection.svelte.d.ts +7 -33
  126. package/dist/menu/MenuSeparator.svelte +9 -12
  127. package/dist/menu/MenuSeparator.svelte.d.ts +7 -33
  128. package/dist/menu/context.svelte.d.ts +2 -1
  129. package/dist/menu/context.svelte.js +212 -2
  130. package/dist/menu/index.d.ts +7 -7
  131. package/dist/menu/index.js +3 -3
  132. package/dist/popover/Popover.svelte +228 -0
  133. package/dist/popover/Popover.svelte.d.ts +15 -0
  134. package/dist/popover/PopoverBackdrop.svelte +83 -0
  135. package/dist/popover/PopoverBackdrop.svelte.d.ts +17 -0
  136. package/dist/popover/PopoverButton.svelte +324 -0
  137. package/dist/popover/PopoverButton.svelte.d.ts +21 -0
  138. package/dist/popover/PopoverGroup.svelte +66 -0
  139. package/dist/popover/PopoverGroup.svelte.d.ts +9 -0
  140. package/dist/popover/PopoverPanel.svelte +359 -0
  141. package/dist/popover/PopoverPanel.svelte.d.ts +22 -0
  142. package/dist/popover/context.svelte.d.ts +51 -0
  143. package/dist/popover/context.svelte.js +108 -0
  144. package/dist/popover/index.d.ts +5 -0
  145. package/dist/popover/index.js +5 -0
  146. package/dist/portal/InternalPortal.svelte +17 -17
  147. package/dist/portal/InternalPortal.svelte.d.ts +6 -33
  148. package/dist/portal/Portal.svelte +7 -6
  149. package/dist/portal/Portal.svelte.d.ts +3 -22
  150. package/dist/portal/PortalGroup.svelte +6 -14
  151. package/dist/portal/PortalGroup.svelte.d.ts +5 -34
  152. package/dist/radio-group/Radio.svelte +142 -0
  153. package/dist/radio-group/Radio.svelte.d.ts +35 -0
  154. package/dist/radio-group/RadioGroup.svelte +222 -0
  155. package/dist/radio-group/RadioGroup.svelte.d.ts +34 -0
  156. package/dist/radio-group/RadioOption.svelte +145 -0
  157. package/dist/radio-group/RadioOption.svelte.d.ts +37 -0
  158. package/dist/radio-group/contest.svelte.d.ts +30 -0
  159. package/dist/radio-group/contest.svelte.js +40 -0
  160. package/dist/radio-group/index.d.ts +3 -0
  161. package/dist/radio-group/index.js +3 -0
  162. package/dist/select/Select.svelte +112 -0
  163. package/dist/select/Select.svelte.d.ts +21 -0
  164. package/dist/select/index.d.ts +1 -0
  165. package/dist/select/index.js +1 -0
  166. package/dist/switch/Switch.svelte +27 -28
  167. package/dist/switch/Switch.svelte.d.ts +9 -42
  168. package/dist/switch/SwitchGroup.svelte +5 -5
  169. package/dist/switch/SwitchGroup.svelte.d.ts +8 -30
  170. package/dist/switch/index.d.ts +1 -1
  171. package/dist/switch/index.js +1 -1
  172. package/dist/tabs/Tab.svelte +28 -31
  173. package/dist/tabs/Tab.svelte.d.ts +8 -36
  174. package/dist/tabs/TabGroup.svelte +42 -264
  175. package/dist/tabs/TabGroup.svelte.d.ts +7 -57
  176. package/dist/tabs/TabList.svelte +13 -16
  177. package/dist/tabs/TabList.svelte.d.ts +8 -31
  178. package/dist/tabs/TabPanel.svelte +20 -20
  179. package/dist/tabs/TabPanel.svelte.d.ts +8 -38
  180. package/dist/tabs/TabPanels.svelte +11 -9
  181. package/dist/tabs/TabPanels.svelte.d.ts +8 -30
  182. package/dist/tabs/context.svelte.d.ts +31 -0
  183. package/dist/tabs/context.svelte.js +134 -0
  184. package/dist/tabs/index.d.ts +5 -5
  185. package/dist/tabs/index.js +4 -4
  186. package/dist/textarea/Textarea.svelte +24 -20
  187. package/dist/textarea/Textarea.svelte.d.ts +18 -30
  188. package/dist/textarea/index.d.ts +1 -1
  189. package/dist/textarea/index.js +1 -1
  190. package/dist/transition/InternalTransitionChild.svelte +36 -22
  191. package/dist/transition/InternalTransitionChild.svelte.d.ts +6 -37
  192. package/dist/transition/Transition.svelte +16 -17
  193. package/dist/transition/Transition.svelte.d.ts +8 -38
  194. package/dist/transition/TransitionChild.svelte +13 -12
  195. package/dist/transition/TransitionChild.svelte.d.ts +11 -38
  196. package/dist/transition/context.svelte.js +11 -11
  197. package/dist/transition/index.d.ts +2 -2
  198. package/dist/transition/index.js +2 -2
  199. package/dist/utils/DisabledProvider.svelte +10 -0
  200. package/dist/utils/DisabledProvider.svelte.d.ts +8 -0
  201. package/dist/utils/ElementOrComponent.svelte +58 -17
  202. package/dist/utils/ElementOrComponent.svelte.d.ts +19 -30
  203. package/dist/utils/StableCollection.svelte.d.ts +4 -18
  204. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +32 -0
  205. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte.d.ts +8 -0
  206. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +94 -0
  207. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte.d.ts +26 -0
  208. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.d.ts +6 -0
  209. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.js +158 -0
  210. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.d.ts +11 -0
  211. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.js +53 -0
  212. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.d.ts +9 -0
  213. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.js +28 -0
  214. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.d.ts +23 -0
  215. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.js +72 -0
  216. package/dist/utils/floating-ui/svelte/index.d.ts +5 -0
  217. package/dist/utils/floating-ui/svelte/index.js +5 -0
  218. package/dist/utils/floating-ui/svelte/inner.svelte.d.ts +83 -0
  219. package/dist/utils/floating-ui/svelte/inner.svelte.js +178 -0
  220. package/dist/utils/floating-ui/svelte/types.d.ts +114 -0
  221. package/dist/utils/floating-ui/svelte/utils/createPubSub.d.ts +5 -0
  222. package/dist/utils/floating-ui/svelte/utils/createPubSub.js +14 -0
  223. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.d.ts +2 -0
  224. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.js +13 -0
  225. package/dist/utils/floating-ui/svelte/utils/log.d.ts +2 -0
  226. package/dist/utils/floating-ui/svelte/utils/log.js +19 -0
  227. package/dist/utils/floating-ui/svelte/utils.d.ts +19 -0
  228. package/dist/utils/floating-ui/svelte/utils.js +136 -0
  229. package/dist/utils/floating-ui/svelte-dom/arrow.d.ts +22 -0
  230. package/dist/utils/floating-ui/svelte-dom/arrow.js +29 -0
  231. package/dist/utils/floating-ui/svelte-dom/index.d.ts +2 -0
  232. package/dist/utils/floating-ui/svelte-dom/index.js +2 -0
  233. package/dist/utils/floating-ui/svelte-dom/types.d.ts +80 -0
  234. package/dist/utils/floating-ui/svelte-dom/types.js +3 -0
  235. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.d.ts +6 -0
  236. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.js +183 -0
  237. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.d.ts +1 -0
  238. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.js +50 -0
  239. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.d.ts +1 -0
  240. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.js +7 -0
  241. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.d.ts +1 -0
  242. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.js +5 -0
  243. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.d.ts +4 -0
  244. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.js +7 -0
  245. package/dist/utils/id.d.ts +1 -1
  246. package/dist/utils/id.js +1 -1
  247. package/dist/utils/index.d.ts +3 -0
  248. package/dist/utils/index.js +3 -0
  249. package/dist/utils/state.js +4 -4
  250. package/dist/utils/style.d.ts +2 -0
  251. package/dist/utils/style.js +6 -0
  252. package/dist/utils/types.d.ts +13 -19
  253. package/package.json +54 -53
  254. package/dist/combobox/Combobox.svelte +0 -53
  255. package/dist/combobox/Combobox.svelte.d.ts +0 -50
  256. package/dist/dialog/InternalDialog.svelte +0 -294
  257. package/dist/dialog/InternalDialog.svelte.d.ts +0 -42
  258. package/dist/internal/HoistFormFields.svelte +0 -14
  259. package/dist/internal/HoistFormFields.svelte.d.ts +0 -21
  260. package/dist/internal/id.d.ts +0 -8
  261. package/dist/internal/id.js +0 -11
  262. package/dist/listbox/ListboxStates.d.ts +0 -12
  263. package/dist/listbox/ListboxStates.js +0 -15
  264. package/dist/utils/Generic.svelte +0 -56
  265. package/dist/utils/Generic.svelte.d.ts +0 -35
  266. package/dist/utils/alternative-types.d.ts +0 -21
  267. /package/dist/utils/{alternative-types.js → floating-ui/svelte/types.js} +0 -0
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" module>
2
- import type { Props, ElementType, Children } from "../utils/types.js"
3
- import { onMount, type Snippet } from "svelte"
2
+ import type { Props } from "../utils/types.js"
3
+ import { onMount } from "svelte"
4
4
 
5
- const DEFAULT_ITEM_TAG = "svelte:fragment" as const
6
- type ItemRenderPropArg = {
5
+ const DEFAULT_ITEM_TAG = "button" as const
6
+ export type ItemRenderPropArg = {
7
7
  /** @deprecated use `focus` instead */
8
8
  active: boolean
9
9
  focus: boolean
@@ -13,21 +13,16 @@
13
13
  }
14
14
  type ItemPropsWeControl = "aria-describedby" | "aria-disabled" | "aria-labelledby" | "role" | "tabIndex"
15
15
 
16
- export type MenuItemProps<TTag extends ElementType = typeof DEFAULT_ITEM_TAG> = Props<
17
- TTag,
18
- ItemRenderPropArg,
19
- ItemPropsWeControl | "children",
20
- {
21
- id?: string
22
- disabled?: boolean
23
- children: Children<ItemRenderPropArg>
24
- }
25
- >
26
-
27
- export type MenuItemChildren = Children<ItemRenderPropArg>
16
+ export type MenuItemOwnProps = {
17
+ element?: HTMLElement
18
+ id?: string
19
+ disabled?: boolean
20
+ }
21
+
22
+ export type MenuItemProps = Props<typeof DEFAULT_ITEM_TAG, ItemRenderPropArg, MenuItemOwnProps>
28
23
  </script>
29
24
 
30
- <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_ITEM_TAG">
25
+ <script lang="ts">
31
26
  import { useId } from "../hooks/use-id.js"
32
27
  import { ActivationTrigger, MenuStates, useMenuContext, type MenuItemDataRef } from "./context.svelte.js"
33
28
  import { disposables } from "../utils/disposables.js"
@@ -42,11 +37,11 @@
42
37
 
43
38
  const internalId = useId()
44
39
  let {
45
- ref = $bindable(),
40
+ element = $bindable(),
46
41
  id = `headlessui-menu-item-${internalId}`,
47
42
  disabled = false,
48
43
  ...theirProps
49
- }: { as?: TTag } & MenuItemProps<TTag> = $props()
44
+ }: MenuItemProps = $props()
50
45
  const _state = useMenuContext("MenuItem")
51
46
  const active = $derived(_state.activeItemIndex !== null ? _state.items[_state.activeItemIndex].id === id : false)
52
47
 
@@ -58,19 +53,19 @@
58
53
  if (!active) return
59
54
  if (_state.activationTrigger === ActivationTrigger.Pointer) return
60
55
  return disposables().requestAnimationFrame(() => {
61
- ;(ref as HTMLElement)?.scrollIntoView?.({ block: "nearest" })
56
+ ;(element as HTMLElement)?.scrollIntoView?.({ block: "nearest" })
62
57
  })
63
58
  })
64
59
 
65
60
  const getTextValue = useTextValue({
66
61
  get element() {
67
- return ref || null
62
+ return element || null
68
63
  },
69
64
  })
70
65
 
71
66
  const bag: MenuItemDataRef["current"] = $derived({
72
67
  disabled,
73
- domRef: { current: ref || null },
68
+ domRef: { current: element || null },
74
69
  get textValue() {
75
70
  return getTextValue()
76
71
  },
@@ -149,4 +144,4 @@
149
144
  )
150
145
  </script>
151
146
 
152
- <ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_ITEM_TAG} name="MenuItem" bind:ref />
147
+ <ElementOrComponent {ourProps} {theirProps} slots={slot} defaultTag={DEFAULT_ITEM_TAG} name="MenuItem" bind:element />
@@ -1,6 +1,6 @@
1
- import type { Props, ElementType, Children } from "../utils/types.js";
2
- declare const DEFAULT_ITEM_TAG: "svelte:fragment";
3
- type ItemRenderPropArg = {
1
+ import type { Props } from "../utils/types.js";
2
+ declare const DEFAULT_ITEM_TAG: "button";
3
+ export type ItemRenderPropArg = {
4
4
  /** @deprecated use `focus` instead */
5
5
  active: boolean;
6
6
  focus: boolean;
@@ -8,42 +8,12 @@ type ItemRenderPropArg = {
8
8
  close: () => void;
9
9
  props?: Record<string, any>;
10
10
  };
11
- type ItemPropsWeControl = "aria-describedby" | "aria-disabled" | "aria-labelledby" | "role" | "tabIndex";
12
- export type MenuItemProps<TTag extends ElementType = typeof DEFAULT_ITEM_TAG> = Props<TTag, ItemRenderPropArg, ItemPropsWeControl | "children", {
11
+ export type MenuItemOwnProps = {
12
+ element?: HTMLElement;
13
13
  id?: string;
14
14
  disabled?: boolean;
15
- children: Children<ItemRenderPropArg>;
16
- }>;
17
- export type MenuItemChildren = Children<ItemRenderPropArg>;
18
- declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_ITEM_TAG> {
19
- props(): {
20
- as?: TTag | undefined;
21
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "disabled" | "id" | ItemPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
22
- children?: Children<ItemRenderPropArg> | undefined;
23
- ref?: HTMLElement;
24
- } & (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) ? {
25
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: ItemRenderPropArg) => string) | undefined;
26
- } : {}) & {
27
- id?: string;
28
- disabled?: boolean;
29
- children: Children<ItemRenderPropArg>;
30
- };
31
- events(): {} & {
32
- [evt: string]: CustomEvent<any>;
33
- };
34
- slots(): {};
35
- bindings(): "ref";
36
- exports(): {};
37
- }
38
- interface $$IsomorphicComponent {
39
- new <TTag extends ElementType = typeof DEFAULT_ITEM_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']>> & {
40
- $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
41
- } & ReturnType<__sveltets_Render<TTag>['exports']>;
42
- <TTag extends ElementType = typeof DEFAULT_ITEM_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
43
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
44
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
45
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
46
- }
47
- declare const MenuItem: $$IsomorphicComponent;
48
- type MenuItem<TTag extends ElementType = typeof DEFAULT_ITEM_TAG> = InstanceType<typeof MenuItem<TTag>>;
15
+ };
16
+ export type MenuItemProps = Props<typeof DEFAULT_ITEM_TAG, ItemRenderPropArg, MenuItemOwnProps>;
17
+ declare const MenuItem: import("svelte").Component<MenuItemProps, {}, "element">;
18
+ type MenuItem = ReturnType<typeof MenuItem>;
49
19
  export default MenuItem;
@@ -1,5 +1,5 @@
1
1
  <script lang="ts" module>
2
- import type { ElementType, Props } from "../utils/types.js"
2
+ import type { Props } from "../utils/types.js"
3
3
  import { mergeProps, RenderFeatures, type PropsForFeatures } from "../utils/render.js"
4
4
  import {
5
5
  useFloatingPanel,
@@ -9,30 +9,26 @@
9
9
  } from "../internal/floating.svelte.js"
10
10
 
11
11
  const DEFAULT_ITEMS_TAG = "div" as const
12
- type ItemsRenderPropArg = {
12
+ export type ItemsRenderPropArg = {
13
13
  open: boolean
14
14
  }
15
15
  type ItemsPropsWeControl = "aria-activedescendant" | "aria-labelledby" | "role" | "tabIndex"
16
16
 
17
17
  let ItemsRenderFeatures = RenderFeatures.RenderStrategy | RenderFeatures.Static
18
18
 
19
- export type MenuItemsProps<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG> = Props<
20
- TTag,
21
- ItemsRenderPropArg,
22
- ItemsPropsWeControl,
23
- {
24
- id?: string
25
- anchor?: AnchorProps
26
- portal?: boolean
27
- modal?: boolean
28
- transition?: boolean
29
- } & PropsForFeatures<typeof ItemsRenderFeatures>
30
- >
31
-
32
- export type MenuItemsChildren = Snippet<[ItemsRenderPropArg]>
19
+ export type MenuItemsOwnProps = {
20
+ element?: HTMLElement
21
+ id?: string
22
+ anchor?: AnchorProps
23
+ portal?: boolean
24
+ modal?: boolean
25
+ transition?: boolean
26
+ } & PropsForFeatures<typeof ItemsRenderFeatures>
27
+
28
+ export type MenuItemsProps = Props<typeof DEFAULT_ITEMS_TAG, ItemsRenderPropArg, MenuItemsOwnProps>
33
29
  </script>
34
30
 
35
- <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_ITEMS_TAG">
31
+ <script lang="ts">
36
32
  import { useId } from "../hooks/use-id.js"
37
33
  import { getOwnerDocument } from "../utils/owner.js"
38
34
  import { State, useOpenClosed } from "../internal/open-closed.js"
@@ -45,7 +41,7 @@
45
41
  import { Focus } from "../utils/calculate-active-index.js"
46
42
  import { focusFrom, Focus as FocusManagementFocus, restoreFocusIfNecessary } from "../utils/focus-management.js"
47
43
  import { useElementSize } from "../hooks/use-element-size.svelte.js"
48
- import { tick, untrack, type Snippet } from "svelte"
44
+ import { tick, untrack } from "svelte"
49
45
  import Portal from "../portal/Portal.svelte"
50
46
  import { MenuStates, useMenuContext } from "./context.svelte.js"
51
47
  import { useTreeWalker } from "../hooks/use-tree-walker.svelte.js"
@@ -53,28 +49,32 @@
53
49
 
54
50
  const internalId = useId()
55
51
  let {
56
- as = DEFAULT_ITEMS_TAG as TTag,
57
- ref = $bindable(),
52
+ element = $bindable(),
58
53
  id = `headlessui-menu-items-${internalId}`,
59
54
  anchor: rawAnchor,
60
55
  portal = false,
61
56
  modal = true,
62
57
  transition = false,
63
58
  ...theirProps
64
- }: { as?: TTag } & MenuItemsProps<TTag> = $props()
65
- const anchor = $derived(useResolvedAnchor(rawAnchor))
59
+ }: MenuItemsProps = $props()
60
+ const resolvedAnchor = useResolvedAnchor({
61
+ get anchor() {
62
+ return rawAnchor
63
+ },
64
+ })
65
+ const { anchor } = $derived(resolvedAnchor)
66
66
  const _state = useMenuContext("MenuOptions")
67
67
  const floatingPanel = useFloatingPanel({
68
68
  get placement() {
69
69
  return anchor
70
70
  },
71
71
  })
72
- const { setFloating, style } = $derived(floatingPanel)
72
+ const { setFloating, styles } = $derived(floatingPanel)
73
73
  const getFloatingPanelProps = useFloatingPanelProps()
74
74
 
75
75
  $effect(() => {
76
- untrack(() => _state.setItemsElement(ref || null))
77
- if (anchor) setFloating(ref)
76
+ untrack(() => _state.setItemsElement(element ?? null))
77
+ if (anchor) setFloating(element ?? null)
78
78
  })
79
79
  const ownerDocument = $derived(getOwnerDocument(_state.itemsElement))
80
80
 
@@ -96,7 +96,7 @@
96
96
  return transition
97
97
  },
98
98
  get element() {
99
- return ref
99
+ return element
100
100
  },
101
101
  get show() {
102
102
  return show
@@ -285,8 +285,8 @@
285
285
  unit: true,
286
286
  })
287
287
 
288
- const ourProps = $derived(
289
- mergeProps(anchor ? getFloatingPanelProps() : {}, {
288
+ const ourProps = $derived({
289
+ ...mergeProps(anchor ? getFloatingPanelProps() : {}, {
290
290
  "aria-activedescendant": _state.activeItemIndex === null ? undefined : _state.items[_state.activeItemIndex]?.id,
291
291
  "aria-labelledby": _state.buttonElement?.id,
292
292
  id,
@@ -297,11 +297,10 @@
297
297
  // to skip focusing the `MenuItems` when pressing the tab key on an
298
298
  // open `Menu`, and go to the next focusable element.
299
299
  tabindex: _state.menuState === MenuStates.Open ? 0 : undefined,
300
- ref,
301
- style: [theirProps.style, style, `--button-width: ${buttonSize.width}`].filter(Boolean).join("; "),
302
- ...transitionDataAttributes(transitionData),
303
- })
304
- )
300
+ style: [theirProps.style, styles, `--button-width: ${buttonSize.width}`].filter(Boolean).join("; "),
301
+ }),
302
+ ...transitionDataAttributes(transitionData),
303
+ })
305
304
  </script>
306
305
 
307
306
  <Portal enabled={portal ? theirProps.static || visible : false}>
@@ -313,6 +312,6 @@
313
312
  features={ItemsRenderFeatures}
314
313
  visible={panelEnabled}
315
314
  name="MenuItems"
316
- bind:ref
315
+ bind:element
317
316
  />
318
317
  </Portal>
@@ -1,55 +1,20 @@
1
- import type { ElementType, Props } from "../utils/types.js";
1
+ import type { Props } from "../utils/types.js";
2
2
  import { type PropsForFeatures } from "../utils/render.js";
3
3
  import { type AnchorProps } from "../internal/floating.svelte.js";
4
4
  declare const DEFAULT_ITEMS_TAG: "div";
5
- type ItemsRenderPropArg = {
5
+ export type ItemsRenderPropArg = {
6
6
  open: boolean;
7
7
  };
8
- type ItemsPropsWeControl = "aria-activedescendant" | "aria-labelledby" | "role" | "tabIndex";
9
8
  declare let ItemsRenderFeatures: number;
10
- export type MenuItemsProps<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG> = Props<TTag, ItemsRenderPropArg, ItemsPropsWeControl, {
9
+ export type MenuItemsOwnProps = {
10
+ element?: HTMLElement;
11
11
  id?: string;
12
12
  anchor?: AnchorProps;
13
13
  portal?: boolean;
14
14
  modal?: boolean;
15
15
  transition?: boolean;
16
- } & PropsForFeatures<typeof ItemsRenderFeatures>>;
17
- export type MenuItemsChildren = Snippet<[ItemsRenderPropArg]>;
18
- import { type Snippet } from "svelte";
19
- declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG> {
20
- props(): {
21
- as?: TTag | undefined;
22
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "anchor" | "unmount" | "static" | "id" | "transition" | "portal" | "modal" | ItemsPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
23
- children?: import("../utils/types.js").Children<ItemsRenderPropArg> | undefined;
24
- ref?: HTMLElement;
25
- } & (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) ? {
26
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: ItemsRenderPropArg) => string) | undefined;
27
- } : {}) & {
28
- id?: string;
29
- anchor?: AnchorProps;
30
- portal?: boolean;
31
- modal?: boolean;
32
- transition?: boolean;
33
- } & {
34
- static?: boolean | undefined;
35
- unmount?: boolean | undefined;
36
- };
37
- events(): {} & {
38
- [evt: string]: CustomEvent<any>;
39
- };
40
- slots(): {};
41
- bindings(): "ref";
42
- exports(): {};
43
- }
44
- interface $$IsomorphicComponent {
45
- new <TTag extends ElementType = typeof DEFAULT_ITEMS_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']>> & {
46
- $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
47
- } & ReturnType<__sveltets_Render<TTag>['exports']>;
48
- <TTag extends ElementType = typeof DEFAULT_ITEMS_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
49
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
50
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
51
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
52
- }
53
- declare const MenuItems: $$IsomorphicComponent;
54
- type MenuItems<TTag extends ElementType = typeof DEFAULT_ITEMS_TAG> = InstanceType<typeof MenuItems<TTag>>;
16
+ } & PropsForFeatures<typeof ItemsRenderFeatures>;
17
+ export type MenuItemsProps = Props<typeof DEFAULT_ITEMS_TAG, ItemsRenderPropArg, MenuItemsOwnProps>;
18
+ declare const MenuItems: import("svelte").Component<MenuItemsProps, {}, "element">;
19
+ type MenuItems = ReturnType<typeof MenuItems>;
55
20
  export default MenuItems;
@@ -1,31 +1,28 @@
1
1
  <script lang="ts" module>
2
- import type { Snippet } from "svelte"
3
- import type { ElementType, Props } from "../utils/types.js"
2
+ import type { Props } from "../utils/types.js"
4
3
 
5
4
  const DEFAULT_SECTION_TAG = "div" as const
6
- type SectionRenderPropArg = {}
5
+
7
6
  type SectionPropsWeControl = "role" | "aria-labelledby"
8
7
 
9
- export type MenuSectionProps<TTag extends ElementType = typeof DEFAULT_SECTION_TAG> = Props<
10
- TTag,
11
- SectionRenderPropArg,
12
- SectionPropsWeControl
13
- >
8
+ export type MenuSectionOwnProps = {
9
+ element?: HTMLElement
10
+ }
14
11
 
15
- export type MenuSectionChildren = Snippet<[SectionRenderPropArg]>
12
+ export type MenuSectionProps = Props<typeof DEFAULT_SECTION_TAG, {}, MenuSectionOwnProps>
16
13
  </script>
17
14
 
18
- <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_SECTION_TAG">
15
+ <script lang="ts">
19
16
  import { useLabels } from "../label/context.svelte.js"
20
17
  import ElementOrComponent from "../utils/ElementOrComponent.svelte"
21
18
 
22
19
  const labelledby = useLabels()
23
20
 
24
- let { ref = $bindable(), ...theirProps }: { as?: TTag } & MenuSectionProps<TTag> = $props()
21
+ let { element = $bindable(), ...theirProps }: MenuSectionProps = $props()
25
22
  const ourProps = $derived({
26
23
  "aria-labelledby": labelledby,
27
24
  role: "group",
28
25
  })
29
26
  </script>
30
27
 
31
- <ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_SECTION_TAG} name="MenuSection" bind:ref />
28
+ <ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_SECTION_TAG} name="MenuSection" bind:element />
@@ -1,35 +1,9 @@
1
- import type { Snippet } from "svelte";
2
- import type { ElementType, Props } from "../utils/types.js";
1
+ import type { Props } from "../utils/types.js";
3
2
  declare const DEFAULT_SECTION_TAG: "div";
4
- type SectionRenderPropArg = {};
5
- type SectionPropsWeControl = "role" | "aria-labelledby";
6
- export type MenuSectionProps<TTag extends ElementType = typeof DEFAULT_SECTION_TAG> = Props<TTag, SectionRenderPropArg, SectionPropsWeControl>;
7
- export type MenuSectionChildren = Snippet<[SectionRenderPropArg]>;
8
- declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_SECTION_TAG> {
9
- props(): {
10
- as?: TTag | undefined;
11
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | SectionPropsWeControl> 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<SectionRenderPropArg> | undefined;
13
- ref?: HTMLElement;
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
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: SectionRenderPropArg) => string) | undefined;
16
- } : {});
17
- events(): {} & {
18
- [evt: string]: CustomEvent<any>;
19
- };
20
- slots(): {};
21
- bindings(): "ref";
22
- exports(): {};
23
- }
24
- interface $$IsomorphicComponent {
25
- new <TTag extends ElementType = typeof DEFAULT_SECTION_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']>> & {
26
- $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
27
- } & ReturnType<__sveltets_Render<TTag>['exports']>;
28
- <TTag extends ElementType = typeof DEFAULT_SECTION_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
29
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
30
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
31
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
32
- }
33
- declare const MenuSection: $$IsomorphicComponent;
34
- type MenuSection<TTag extends ElementType = typeof DEFAULT_SECTION_TAG> = InstanceType<typeof MenuSection<TTag>>;
3
+ export type MenuSectionOwnProps = {
4
+ element?: HTMLElement;
5
+ };
6
+ export type MenuSectionProps = Props<typeof DEFAULT_SECTION_TAG, {}, MenuSectionOwnProps>;
7
+ declare const MenuSection: import("svelte").Component<MenuSectionProps, {}, "element">;
8
+ type MenuSection = ReturnType<typeof MenuSection>;
35
9
  export default MenuSection;
@@ -1,25 +1,22 @@
1
1
  <script lang="ts" module>
2
- import type { Snippet } from "svelte"
3
- import type { ElementType, Props } from "../utils/types.js"
2
+ import type { Props } from "../utils/types.js"
4
3
 
5
4
  const DEFAULT_SEPARATOR_TAG = "div" as const
6
- type SeparatorRenderPropArg = {}
5
+
7
6
  type SeparatorPropsWeControl = "role"
8
7
 
9
- export type MenuSeparatorProps<TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG> = Props<
10
- TTag,
11
- SeparatorRenderPropArg,
12
- SeparatorPropsWeControl
13
- >
8
+ export type MenuSeparatorOwnProps = {
9
+ element?: HTMLElement
10
+ }
14
11
 
15
- export type MenuSeparatorChildren = Snippet<[SeparatorRenderPropArg]>
12
+ export type MenuSeparatorProps = Props<typeof DEFAULT_SEPARATOR_TAG, {}, MenuSeparatorOwnProps>
16
13
  </script>
17
14
 
18
- <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG">
15
+ <script lang="ts">
19
16
  import ElementOrComponent from "../utils/ElementOrComponent.svelte"
20
17
 
21
- let { ref = $bindable(), ...theirProps }: { as?: TTag } & MenuSeparatorProps<TTag> = $props()
18
+ let { element = $bindable(), ...theirProps }: MenuSeparatorProps = $props()
22
19
  const ourProps = { role: "separator" }
23
20
  </script>
24
21
 
25
- <ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_SEPARATOR_TAG} name="MenuSeparator" bind:ref />
22
+ <ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_SEPARATOR_TAG} name="MenuSeparator" bind:element />
@@ -1,35 +1,9 @@
1
- import type { Snippet } from "svelte";
2
- import type { ElementType, Props } from "../utils/types.js";
1
+ import type { Props } from "../utils/types.js";
3
2
  declare const DEFAULT_SEPARATOR_TAG: "div";
4
- type SeparatorRenderPropArg = {};
5
- type SeparatorPropsWeControl = "role";
6
- export type MenuSeparatorProps<TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG> = Props<TTag, SeparatorRenderPropArg, SeparatorPropsWeControl>;
7
- export type MenuSeparatorChildren = Snippet<[SeparatorRenderPropArg]>;
8
- declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG> {
9
- props(): {
10
- as?: TTag | undefined;
11
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "role"> 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<SeparatorRenderPropArg> | undefined;
13
- ref?: HTMLElement;
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
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: SeparatorRenderPropArg) => string) | undefined;
16
- } : {});
17
- events(): {} & {
18
- [evt: string]: CustomEvent<any>;
19
- };
20
- slots(): {};
21
- bindings(): "ref";
22
- exports(): {};
23
- }
24
- interface $$IsomorphicComponent {
25
- new <TTag extends ElementType = typeof DEFAULT_SEPARATOR_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']>> & {
26
- $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
27
- } & ReturnType<__sveltets_Render<TTag>['exports']>;
28
- <TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
29
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
30
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
31
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
32
- }
33
- declare const MenuSeparator: $$IsomorphicComponent;
34
- type MenuSeparator<TTag extends ElementType = typeof DEFAULT_SEPARATOR_TAG> = InstanceType<typeof MenuSeparator<TTag>>;
3
+ export type MenuSeparatorOwnProps = {
4
+ element?: HTMLElement;
5
+ };
6
+ export type MenuSeparatorProps = Props<typeof DEFAULT_SEPARATOR_TAG, {}, MenuSeparatorOwnProps>;
7
+ declare const MenuSeparator: import("svelte").Component<MenuSeparatorProps, {}, "element">;
8
+ type MenuSeparator = ReturnType<typeof MenuSeparator>;
35
9
  export default MenuSeparator;
@@ -1,4 +1,4 @@
1
- import type { Focus } from "../utils/calculate-active-index.js";
1
+ import { Focus } from "../utils/calculate-active-index.js";
2
2
  import type { MutableRefObject } from "../utils/ref.svelte.js";
3
3
  export declare enum MenuStates {
4
4
  Open = 0,
@@ -45,3 +45,4 @@ export type MenuContext = StateDefinition & {
45
45
  setItemsElement(element: HTMLElement | null): void;
46
46
  };
47
47
  export declare function useMenuContext(component: string): MenuContext;
48
+ export declare const createMenuContext: (initialState: StateDefinition) => MenuContext;