@pzerelles/headlessui-svelte 2.0.0-next.1 → 2.1.2-next.10

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 (284) hide show
  1. package/dist/button/Button.svelte +61 -0
  2. package/dist/button/Button.svelte.d.ts +47 -0
  3. package/dist/button/index.d.ts +1 -0
  4. package/dist/button/index.js +1 -0
  5. package/dist/checkbox/Checkbox.svelte +95 -63
  6. package/dist/checkbox/Checkbox.svelte.d.ts +43 -29
  7. package/dist/close-button/CloseButton.svelte +11 -0
  8. package/dist/close-button/CloseButton.svelte.d.ts +48 -0
  9. package/dist/close-button/index.d.ts +1 -0
  10. package/dist/close-button/index.js +1 -0
  11. package/dist/combobox/Combobox.svelte +6 -0
  12. package/dist/combobox/Combobox.svelte.d.ts +50 -0
  13. package/dist/data-interactive/DataInteractive.svelte +41 -0
  14. package/dist/data-interactive/DataInteractive.svelte.d.ts +39 -0
  15. package/dist/data-interactive/index.d.ts +1 -0
  16. package/dist/data-interactive/index.js +1 -0
  17. package/dist/description/Description.svelte +16 -41
  18. package/dist/description/Description.svelte.d.ts +15 -23
  19. package/dist/description/context.svelte.d.ts +17 -0
  20. package/dist/description/context.svelte.js +51 -0
  21. package/dist/dialog/Dialog.svelte +51 -0
  22. package/dist/dialog/Dialog.svelte.d.ts +60 -0
  23. package/dist/dialog/DialogBackdrop.svelte +39 -0
  24. package/dist/dialog/DialogBackdrop.svelte.d.ts +38 -0
  25. package/dist/dialog/DialogPanel.svelte +46 -0
  26. package/dist/dialog/DialogPanel.svelte.d.ts +40 -0
  27. package/dist/dialog/DialogTitle.svelte +29 -0
  28. package/dist/dialog/DialogTitle.svelte.d.ts +34 -0
  29. package/dist/dialog/InternalDialog.svelte +233 -0
  30. package/dist/dialog/InternalDialog.svelte.d.ts +42 -0
  31. package/dist/dialog/context.svelte.d.ts +15 -0
  32. package/dist/dialog/context.svelte.js +16 -0
  33. package/dist/dialog/index.d.ts +4 -0
  34. package/dist/dialog/index.js +4 -0
  35. package/dist/field/Field.svelte +14 -17
  36. package/dist/field/Field.svelte.d.ts +21 -17
  37. package/dist/fieldset/Fieldset.svelte +19 -17
  38. package/dist/fieldset/Fieldset.svelte.d.ts +21 -17
  39. package/dist/focus-trap/FocusTrap.svelte +325 -0
  40. package/dist/focus-trap/FocusTrap.svelte.d.ts +46 -0
  41. package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
  42. package/dist/focus-trap/FocusTrapFeatures.js +15 -0
  43. package/dist/hooks/document-overflow/adjust-scrollbar-padding.d.ts +2 -0
  44. package/dist/hooks/document-overflow/adjust-scrollbar-padding.js +18 -0
  45. package/dist/hooks/document-overflow/handle-ios-locking.d.ts +6 -0
  46. package/dist/hooks/document-overflow/handle-ios-locking.js +134 -0
  47. package/dist/hooks/document-overflow/overflow-store.d.ts +19 -0
  48. package/dist/hooks/document-overflow/overflow-store.js +76 -0
  49. package/dist/hooks/document-overflow/prevent-scroll.d.ts +2 -0
  50. package/dist/hooks/document-overflow/prevent-scroll.js +7 -0
  51. package/dist/hooks/document-overflow/use-document-overflow.svelte.d.ts +7 -0
  52. package/dist/hooks/document-overflow/use-document-overflow.svelte.js +27 -0
  53. package/dist/hooks/use-active-press.svelte.d.ts +14 -0
  54. package/dist/{actions/activePress.svelte.js → hooks/use-active-press.svelte.js} +33 -39
  55. package/dist/hooks/use-by-comparator.d.ts +2 -0
  56. package/dist/hooks/use-by-comparator.js +15 -0
  57. package/dist/hooks/use-controllable.svelte.d.ts +6 -0
  58. package/dist/hooks/use-controllable.svelte.js +34 -0
  59. package/dist/hooks/use-did-element-move.svelte.d.ts +6 -0
  60. package/dist/hooks/use-did-element-move.svelte.js +27 -0
  61. package/dist/hooks/use-disabled.d.ts +3 -0
  62. package/dist/hooks/use-disabled.js +9 -0
  63. package/dist/hooks/use-element-size.svelte.d.ts +7 -0
  64. package/dist/hooks/use-element-size.svelte.js +36 -0
  65. package/dist/hooks/use-escape.svelte.d.ts +5 -0
  66. package/dist/hooks/use-escape.svelte.js +26 -0
  67. package/dist/hooks/use-event-listener.svelte.d.ts +6 -0
  68. package/dist/hooks/use-event-listener.svelte.js +12 -0
  69. package/dist/hooks/use-flags.svelte.d.ts +8 -0
  70. package/dist/hooks/use-flags.svelte.js +18 -0
  71. package/dist/hooks/use-focus-ring.svelte.d.ts +10 -0
  72. package/dist/hooks/use-focus-ring.svelte.js +24 -0
  73. package/dist/hooks/use-hover.svelte.d.ts +26 -0
  74. package/dist/hooks/use-hover.svelte.js +124 -0
  75. package/dist/hooks/use-id.d.ts +1 -0
  76. package/dist/hooks/use-id.js +1 -0
  77. package/dist/hooks/use-inert-others.svelte.d.ts +32 -0
  78. package/dist/hooks/use-inert-others.svelte.js +114 -0
  79. package/dist/hooks/use-is-mounted.svelte.d.ts +3 -0
  80. package/dist/hooks/use-is-mounted.svelte.js +14 -0
  81. package/dist/hooks/use-is-top-layer.svelte.d.ts +29 -0
  82. package/dist/hooks/use-is-top-layer.svelte.js +82 -0
  83. package/dist/hooks/use-is-touch-device.svelte.d.ts +3 -0
  84. package/dist/hooks/use-is-touch-device.svelte.js +20 -0
  85. package/dist/hooks/use-on-disappear.svelte.d.ts +12 -0
  86. package/dist/hooks/use-on-disappear.svelte.js +38 -0
  87. package/dist/hooks/use-outside-click.svelte.d.ts +10 -0
  88. package/dist/hooks/use-outside-click.svelte.js +150 -0
  89. package/dist/hooks/use-reducer.d.ts +4 -0
  90. package/dist/hooks/use-reducer.js +11 -0
  91. package/dist/hooks/use-resolve-button-type.svelte.d.ts +10 -0
  92. package/dist/hooks/use-resolve-button-type.svelte.js +19 -0
  93. package/dist/hooks/use-root-containers.svelte.d.ts +9 -0
  94. package/dist/hooks/use-root-containers.svelte.js +50 -0
  95. package/dist/hooks/use-scroll-lock.svelte.d.ts +5 -0
  96. package/dist/hooks/use-scroll-lock.svelte.js +24 -0
  97. package/dist/hooks/use-sync-refs.d.ts +7 -0
  98. package/dist/hooks/use-sync-refs.js +22 -0
  99. package/dist/hooks/use-tab-direction.svelte.d.ts +7 -0
  100. package/dist/hooks/use-tab-direction.svelte.js +25 -0
  101. package/dist/hooks/use-text-value.svelte.d.ts +3 -0
  102. package/dist/hooks/use-text-value.svelte.js +20 -0
  103. package/dist/hooks/use-tracked-pointer.d.ts +4 -0
  104. package/dist/hooks/use-tracked-pointer.js +26 -0
  105. package/dist/hooks/use-transition.svelte.d.ts +20 -0
  106. package/dist/hooks/use-transition.svelte.js +253 -0
  107. package/dist/hooks/use-tree-walker.svelte.d.ts +8 -0
  108. package/dist/hooks/use-tree-walker.svelte.js +19 -0
  109. package/dist/hooks/use-watch.svelte.d.ts +4 -0
  110. package/dist/hooks/use-watch.svelte.js +16 -0
  111. package/dist/hooks/use-window-event.svelte.d.ts +6 -0
  112. package/dist/hooks/use-window-event.svelte.js +12 -0
  113. package/dist/index.d.ts +14 -0
  114. package/dist/index.js +14 -0
  115. package/dist/input/Input.svelte +59 -0
  116. package/dist/input/Input.svelte.d.ts +50 -0
  117. package/dist/input/index.d.ts +1 -0
  118. package/dist/input/index.js +1 -0
  119. package/dist/internal/FocusSentinel.svelte +45 -0
  120. package/dist/internal/FocusSentinel.svelte.d.ts +20 -0
  121. package/dist/internal/ForcePortalRoot.svelte +6 -0
  122. package/dist/internal/ForcePortalRoot.svelte.d.ts +22 -0
  123. package/dist/internal/FormFields.svelte +2 -4
  124. package/dist/internal/FormFields.svelte.d.ts +9 -7
  125. package/dist/internal/FormResolver.svelte +11 -16
  126. package/dist/internal/FormResolver.svelte.d.ts +6 -4
  127. package/dist/internal/Hidden.svelte +6 -14
  128. package/dist/internal/Hidden.svelte.d.ts +36 -23
  129. package/dist/internal/HiddenFeatures.d.ts +5 -0
  130. package/dist/internal/HiddenFeatures.js +9 -0
  131. package/dist/internal/HoistFormFields.svelte.d.ts +5 -2
  132. package/dist/internal/MainTreeProvider.svelte +45 -0
  133. package/dist/internal/MainTreeProvider.svelte.d.ts +31 -0
  134. package/dist/internal/Portal.svelte.d.ts +5 -2
  135. package/dist/internal/close-provider.d.ts +7 -0
  136. package/dist/internal/close-provider.js +7 -0
  137. package/dist/internal/floating.svelte.d.ts +62 -0
  138. package/dist/internal/floating.svelte.js +488 -0
  139. package/dist/internal/frozen.svelte.d.ts +6 -0
  140. package/dist/internal/frozen.svelte.js +18 -0
  141. package/dist/internal/open-closed.d.ts +14 -0
  142. package/dist/internal/open-closed.js +17 -0
  143. package/dist/internal/portal-force-root.svelte.d.ts +6 -0
  144. package/dist/internal/portal-force-root.svelte.js +11 -0
  145. package/dist/label/Label.svelte +22 -49
  146. package/dist/label/Label.svelte.d.ts +19 -23
  147. package/dist/label/context.svelte.d.ts +17 -0
  148. package/dist/label/context.svelte.js +56 -0
  149. package/dist/legend/Legend.svelte +4 -3
  150. package/dist/legend/Legend.svelte.d.ts +33 -16
  151. package/dist/listbox/Listbox.svelte +434 -0
  152. package/dist/listbox/Listbox.svelte.d.ts +116 -0
  153. package/dist/listbox/ListboxButton.svelte +138 -0
  154. package/dist/listbox/ListboxButton.svelte.d.ts +50 -0
  155. package/dist/listbox/ListboxOption.svelte +135 -0
  156. package/dist/listbox/ListboxOption.svelte.d.ts +50 -0
  157. package/dist/listbox/ListboxOptions.svelte +268 -0
  158. package/dist/listbox/ListboxOptions.svelte.d.ts +55 -0
  159. package/dist/listbox/ListboxSelectedOption.svelte +33 -0
  160. package/dist/listbox/ListboxSelectedOption.svelte.d.ts +40 -0
  161. package/dist/listbox/ListboxStates.d.ts +12 -0
  162. package/dist/listbox/ListboxStates.js +15 -0
  163. package/dist/listbox/index.d.ts +5 -0
  164. package/dist/listbox/index.js +5 -0
  165. package/dist/menu/Menu.svelte +235 -0
  166. package/dist/menu/Menu.svelte.d.ts +42 -0
  167. package/dist/menu/MenuButton.svelte +127 -0
  168. package/dist/menu/MenuButton.svelte.d.ts +52 -0
  169. package/dist/menu/MenuHeading.svelte +19 -0
  170. package/dist/menu/MenuHeading.svelte.d.ts +39 -0
  171. package/dist/menu/MenuItem.svelte +114 -0
  172. package/dist/menu/MenuItem.svelte.d.ts +49 -0
  173. package/dist/menu/MenuItems.svelte +244 -0
  174. package/dist/menu/MenuItems.svelte.d.ts +55 -0
  175. package/dist/menu/MenuSection.svelte +14 -0
  176. package/dist/menu/MenuSection.svelte.d.ts +35 -0
  177. package/dist/menu/MenuSeparator.svelte +9 -0
  178. package/dist/menu/MenuSeparator.svelte.d.ts +35 -0
  179. package/dist/menu/context.svelte.d.ts +47 -0
  180. package/dist/menu/context.svelte.js +21 -0
  181. package/dist/menu/index.d.ts +7 -0
  182. package/dist/menu/index.js +7 -0
  183. package/dist/portal/InternalPortal.svelte +97 -0
  184. package/dist/portal/InternalPortal.svelte.d.ts +43 -0
  185. package/dist/portal/Portal.svelte +7 -0
  186. package/dist/portal/Portal.svelte.d.ts +23 -0
  187. package/dist/portal/PortalGroup.svelte +14 -0
  188. package/dist/portal/PortalGroup.svelte.d.ts +40 -0
  189. package/dist/switch/Switch.svelte +153 -0
  190. package/dist/switch/Switch.svelte.d.ts +61 -0
  191. package/dist/switch/SwitchGroup.svelte +37 -0
  192. package/dist/switch/SwitchGroup.svelte.d.ts +34 -0
  193. package/dist/switch/index.d.ts +2 -0
  194. package/dist/switch/index.js +2 -0
  195. package/dist/tabs/Tab.svelte +156 -0
  196. package/dist/tabs/Tab.svelte.d.ts +48 -0
  197. package/dist/tabs/TabGroup.svelte +241 -0
  198. package/dist/tabs/TabGroup.svelte.d.ts +67 -0
  199. package/dist/tabs/TabList.svelte +16 -0
  200. package/dist/tabs/TabList.svelte.d.ts +35 -0
  201. package/dist/tabs/TabPanel.svelte +61 -0
  202. package/dist/tabs/TabPanel.svelte.d.ts +47 -0
  203. package/dist/tabs/TabPanels.svelte +12 -0
  204. package/dist/tabs/TabPanels.svelte.d.ts +34 -0
  205. package/dist/tabs/index.d.ts +5 -0
  206. package/dist/tabs/index.js +5 -0
  207. package/dist/test-utils/accessability-assertions.d.ts +271 -0
  208. package/dist/test-utils/accessability-assertions.js +1572 -0
  209. package/dist/test-utils/fake-pointer.d.ts +24 -0
  210. package/dist/test-utils/fake-pointer.js +48 -0
  211. package/dist/test-utils/interactions.d.ts +61 -0
  212. package/dist/test-utils/interactions.js +453 -0
  213. package/dist/test-utils/suppress-console-logs.d.ts +7 -0
  214. package/dist/test-utils/suppress-console-logs.js +17 -0
  215. package/dist/textarea/Textarea.svelte +67 -0
  216. package/dist/textarea/Textarea.svelte.d.ts +50 -0
  217. package/dist/textarea/index.d.ts +1 -0
  218. package/dist/textarea/index.js +1 -0
  219. package/dist/transition/InternalTransitionChild.svelte +178 -0
  220. package/dist/transition/InternalTransitionChild.svelte.d.ts +55 -0
  221. package/dist/transition/Transition.svelte +89 -0
  222. package/dist/transition/Transition.svelte.d.ts +42 -0
  223. package/dist/transition/TransitionChild.svelte +16 -0
  224. package/dist/transition/TransitionChild.svelte.d.ts +44 -0
  225. package/dist/transition/context.svelte.d.ts +64 -0
  226. package/dist/transition/context.svelte.js +120 -0
  227. package/dist/transition/index.d.ts +2 -0
  228. package/dist/transition/index.js +2 -0
  229. package/dist/utils/ElementOrComponent.svelte +26 -0
  230. package/dist/utils/ElementOrComponent.svelte.d.ts +56 -0
  231. package/dist/utils/Generic.svelte +44 -0
  232. package/dist/utils/Generic.svelte.d.ts +35 -0
  233. package/dist/utils/StableCollection.svelte +43 -0
  234. package/dist/utils/StableCollection.svelte.d.ts +22 -0
  235. package/dist/utils/active-element-history.d.ts +1 -0
  236. package/dist/utils/active-element-history.js +35 -0
  237. package/dist/utils/alternative-types.d.ts +21 -0
  238. package/dist/utils/alternative-types.js +1 -0
  239. package/dist/utils/calculate-active-index.d.ts +25 -0
  240. package/dist/utils/calculate-active-index.js +74 -0
  241. package/dist/utils/class-names.d.ts +1 -0
  242. package/dist/utils/class-names.js +10 -0
  243. package/dist/utils/default-map.d.ts +5 -0
  244. package/dist/utils/default-map.js +15 -0
  245. package/dist/utils/disposables.d.ts +14 -12
  246. package/dist/utils/disposables.js +13 -10
  247. package/dist/utils/dom.d.ts +0 -2
  248. package/dist/utils/dom.js +2 -4
  249. package/dist/utils/env.d.ts +17 -0
  250. package/dist/utils/env.js +39 -0
  251. package/dist/utils/focus-management.d.ts +45 -0
  252. package/dist/utils/focus-management.js +242 -0
  253. package/dist/utils/focusVisible.svelte.d.ts +3 -3
  254. package/dist/utils/focusVisible.svelte.js +52 -41
  255. package/dist/utils/get-text-value.d.ts +1 -0
  256. package/dist/utils/get-text-value.js +71 -0
  257. package/dist/utils/id.d.ts +2 -2
  258. package/dist/utils/id.js +1 -1
  259. package/dist/utils/match.d.ts +1 -0
  260. package/dist/utils/match.js +13 -0
  261. package/dist/utils/on-document-ready.d.ts +1 -0
  262. package/dist/utils/on-document-ready.js +12 -0
  263. package/dist/utils/once.d.ts +1 -0
  264. package/dist/utils/once.js +9 -0
  265. package/dist/utils/owner.d.ts +1 -0
  266. package/dist/utils/owner.js +8 -0
  267. package/dist/utils/platform.d.ts +2 -0
  268. package/dist/utils/platform.js +17 -0
  269. package/dist/utils/ref.svelte.d.ts +4 -0
  270. package/dist/utils/ref.svelte.js +4 -0
  271. package/dist/utils/render.d.ts +34 -0
  272. package/dist/utils/render.js +119 -0
  273. package/dist/utils/state.d.ts +7 -1
  274. package/dist/utils/state.js +10 -6
  275. package/dist/utils/store.d.ts +11 -0
  276. package/dist/utils/store.js +20 -0
  277. package/dist/utils/types.d.ts +24 -0
  278. package/dist/utils/types.js +1 -0
  279. package/package.json +37 -29
  280. package/dist/actions/activePress.svelte.d.ts +0 -8
  281. package/dist/actions/focusRing.svelte.d.ts +0 -9
  282. package/dist/actions/focusRing.svelte.js +0 -34
  283. package/dist/utils/disabled.d.ts +0 -3
  284. package/dist/utils/disabled.js +0 -2
@@ -0,0 +1,6 @@
1
+ <script lang="ts">import { createPortalRoot } from "./portal-force-root.svelte.js";
2
+ let { force, children } = $props();
3
+ createPortalRoot({ force });
4
+ </script>
5
+
6
+ {#if children}{@render children()}{/if}
@@ -0,0 +1,22 @@
1
+ import type { Snippet } from "svelte";
2
+ 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> {
3
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
+ $$bindings?: Bindings;
5
+ } & Exports;
6
+ (internal: unknown, props: Props & {
7
+ $$events?: Events;
8
+ $$slots?: Slots;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
13
+ z_$$bindings?: Bindings;
14
+ }
15
+ declare const ForcePortalRoot: $$__sveltets_2_IsomorphicComponent<{
16
+ force: boolean;
17
+ children: Snippet;
18
+ }, {
19
+ [evt: string]: CustomEvent<any>;
20
+ }, {}, {}, "">;
21
+ type ForcePortalRoot = InstanceType<typeof ForcePortalRoot>;
22
+ export default ForcePortalRoot;
@@ -14,10 +14,8 @@ let {
14
14
  let form = $state(null);
15
15
  const d = disposables();
16
16
  $effect(() => {
17
- if (!onReset)
18
- return;
19
- if (!form)
20
- return;
17
+ if (!onReset) return;
18
+ if (!form) return;
21
19
  return d.addEventListener(form, "reset", onReset);
22
20
  });
23
21
  </script>
@@ -1,4 +1,3 @@
1
- /// <reference types="svelte" />
2
1
  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> {
3
2
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
3
  $$bindings?: Bindings;
@@ -6,17 +5,20 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
6
5
  (internal: unknown, props: Props & {
7
6
  $$events?: Events;
8
7
  $$slots?: Slots;
9
- }): Exports;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
10
12
  z_$$bindings?: Bindings;
11
13
  }
12
14
  declare const FormFields: $$__sveltets_2_IsomorphicComponent<{
13
15
  data: Record<string, any>;
14
- overrides?: Record<string, any> | undefined;
15
- form?: string | undefined;
16
- disabled?: boolean | undefined;
17
- onReset?: ((e: Event) => void) | undefined;
16
+ overrides?: Record<string, any>;
17
+ form?: string;
18
+ disabled?: boolean;
19
+ onReset?: (e: Event) => void;
18
20
  }, {
19
21
  [evt: string]: CustomEvent<any>;
20
- }, {}, Record<string, any>, "">;
22
+ }, {}, {}, "">;
21
23
  type FormFields = InstanceType<typeof FormFields>;
22
24
  export default FormFields;
@@ -1,25 +1,20 @@
1
- <script lang="ts">import Hidden, { HiddenFeatures } from "./Hidden.svelte";
1
+ <script lang="ts">import { onMount } from "svelte";
2
+ import Hidden, { HiddenFeatures } from "./Hidden.svelte";
2
3
  let { setForm, formId } = $props();
3
4
  $effect(() => {
4
5
  if (formId) {
5
- let resolvedForm = document.getElementById(formId);
6
- if (resolvedForm)
7
- setForm(resolvedForm);
6
+ const resolvedForm = document.getElementById(formId);
7
+ if (resolvedForm) setForm(resolvedForm);
8
8
  }
9
9
  });
10
+ let element = $state();
11
+ onMount(() => {
12
+ if (!element) return;
13
+ const resolvedForm = element.closest("form");
14
+ if (resolvedForm) setForm(resolvedForm);
15
+ });
10
16
  </script>
11
17
 
12
18
  {#if !formId}
13
- <Hidden
14
- features={HiddenFeatures.Hidden}
15
- as="input"
16
- type="hidden"
17
- hidden
18
- readonly
19
- ref={(el) => {
20
- if (!el) return
21
- let resolvedForm = el.closest("form")
22
- if (resolvedForm) setForm(resolvedForm)
23
- }}
24
- />
19
+ <Hidden features={HiddenFeatures.Hidden} as="input" type="hidden" hidden readonly bind:ref={element} />
25
20
  {/if}
@@ -1,4 +1,3 @@
1
- /// <reference types="svelte" />
2
1
  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> {
3
2
  new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
4
3
  $$bindings?: Bindings;
@@ -6,14 +5,17 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
6
5
  (internal: unknown, props: Props & {
7
6
  $$events?: Events;
8
7
  $$slots?: Slots;
9
- }): Exports;
8
+ }): Exports & {
9
+ $set?: any;
10
+ $on?: any;
11
+ };
10
12
  z_$$bindings?: Bindings;
11
13
  }
12
14
  declare const FormResolver: $$__sveltets_2_IsomorphicComponent<{
13
15
  setForm: (form: HTMLFormElement) => void;
14
- formId?: string | undefined;
16
+ formId?: string;
15
17
  }, {
16
18
  [evt: string]: CustomEvent<any>;
17
- }, {}, Record<string, any>, "">;
19
+ }, {}, {}, "">;
18
20
  type FormResolver = InstanceType<typeof FormResolver>;
19
21
  export default FormResolver;
@@ -1,18 +1,10 @@
1
- <script lang="ts" context="module">export var HiddenFeatures = /* @__PURE__ */ ((HiddenFeatures2) => {
2
- HiddenFeatures2[HiddenFeatures2["None"] = 1] = "None";
3
- HiddenFeatures2[HiddenFeatures2["Focusable"] = 2] = "Focusable";
4
- HiddenFeatures2[HiddenFeatures2["Hidden"] = 4] = "Hidden";
5
- return HiddenFeatures2;
6
- })(HiddenFeatures || {});
1
+ <script lang="ts" module>import ElementOrComponent from "../utils/ElementOrComponent.svelte";
2
+ import { HiddenFeatures } from "./HiddenFeatures.js";
3
+ export * from "./HiddenFeatures.js";
4
+ const DEFAULT_VISUALLY_HIDDEN_TAG = "span";
7
5
  </script>
8
6
 
9
- <script lang="ts">import { onMount } from "svelte";
10
- const DEFAULT_VISUALLY_HIDDEN_TAG = "div";
11
- let { as = "div", features = HiddenFeatures.None, ref: applyRef, ...theirProps } = $props();
12
- let ref = $state();
13
- onMount(() => {
14
- applyRef?.(ref);
15
- });
7
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG">let { ref = $bindable(), features = HiddenFeatures.None, ...theirProps } = $props();
16
8
  let ourProps = {
17
9
  "aria-hidden": (features & HiddenFeatures.Focusable) === HiddenFeatures.Focusable ? true : theirProps["aria-hidden"] ?? void 0,
18
10
  hidden: (features & HiddenFeatures.Hidden) === HiddenFeatures.Hidden ? true : void 0,
@@ -33,4 +25,4 @@ let ourProps = {
33
25
  };
34
26
  </script>
35
27
 
36
- <svelte:element this={as} {...theirProps} {...ourProps} bind:this={ref} />
28
+ <ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_VISUALLY_HIDDEN_TAG} name="Hidden" bind:ref />
@@ -1,26 +1,39 @@
1
- /// <reference types="svelte" />
2
- export declare enum HiddenFeatures {
3
- None = 1,
4
- Focusable = 2,
5
- Hidden = 4
1
+ import type { ElementType, Props } from "../utils/types.js";
2
+ import { HiddenFeatures } from "./HiddenFeatures.js";
3
+ export * from "./HiddenFeatures.js";
4
+ declare const DEFAULT_VISUALLY_HIDDEN_TAG: "span";
5
+ type HiddenRenderPropArg = {};
6
+ type HiddenPropsWeControl = never;
7
+ export type HiddenProps<TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG> = Props<TTag, HiddenRenderPropArg, HiddenPropsWeControl, {
8
+ features?: HiddenFeatures;
9
+ }>;
10
+ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG> {
11
+ props(): {
12
+ as?: TTag | undefined;
13
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "features"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
14
+ children?: import("../utils/types.js").Children<HiddenRenderPropArg> | undefined;
15
+ ref?: HTMLElement;
16
+ } & (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) ? {
17
+ class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HiddenRenderPropArg) => string) | undefined;
18
+ } : {}) & {
19
+ features?: HiddenFeatures;
20
+ };
21
+ events(): {} & {
22
+ [evt: string]: CustomEvent<any>;
23
+ };
24
+ slots(): {};
25
+ bindings(): "ref";
26
+ exports(): {};
6
27
  }
7
- import type { HTMLInputAttributes } from "svelte/elements";
8
- 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> {
9
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
10
- $$bindings?: Bindings;
11
- } & Exports;
12
- (internal: unknown, props: Props & {
13
- $$events?: Events;
14
- $$slots?: Slots;
15
- }): Exports;
16
- z_$$bindings?: Bindings;
28
+ interface $$IsomorphicComponent {
29
+ new <TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_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
+ $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
31
+ } & ReturnType<__sveltets_Render<TTag>['exports']>;
32
+ <TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
33
+ $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
34
+ }): ReturnType<__sveltets_Render<TTag>['exports']>;
35
+ z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
17
36
  }
18
- declare const Hidden: $$__sveltets_2_IsomorphicComponent<Omit<HTMLInputAttributes, "style"> & {
19
- as?: string | undefined;
20
- features?: HiddenFeatures | undefined;
21
- ref?: ((el: HTMLElement) => void) | undefined;
22
- }, {
23
- [evt: string]: CustomEvent<any>;
24
- }, {}, Record<string, any>, "">;
25
- type Hidden = InstanceType<typeof Hidden>;
37
+ declare const Hidden: $$IsomorphicComponent;
38
+ type Hidden<TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG> = InstanceType<typeof Hidden<TTag>>;
26
39
  export default Hidden;
@@ -0,0 +1,5 @@
1
+ export declare enum HiddenFeatures {
2
+ None = 1,
3
+ Focusable = 2,
4
+ Hidden = 4
5
+ }
@@ -0,0 +1,9 @@
1
+ export var HiddenFeatures;
2
+ (function (HiddenFeatures) {
3
+ // The default, no features.
4
+ HiddenFeatures[HiddenFeatures["None"] = 1] = "None";
5
+ // Whether the element should be focusable or not.
6
+ HiddenFeatures[HiddenFeatures["Focusable"] = 2] = "Focusable";
7
+ // Whether it should be completely hidden, even to assistive technologies.
8
+ HiddenFeatures[HiddenFeatures["Hidden"] = 4] = "Hidden";
9
+ })(HiddenFeatures || (HiddenFeatures = {}));
@@ -6,13 +6,16 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
6
6
  (internal: unknown, props: Props & {
7
7
  $$events?: Events;
8
8
  $$slots?: Slots;
9
- }): Exports;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
10
13
  z_$$bindings?: Bindings;
11
14
  }
12
15
  declare const HoistFormFields: $$__sveltets_2_IsomorphicComponent<{
13
16
  children: Snippet;
14
17
  }, {
15
18
  [evt: string]: CustomEvent<any>;
16
- }, {}, Record<string, any>, "">;
19
+ }, {}, {}, "">;
17
20
  type HoistFormFields = InstanceType<typeof HoistFormFields>;
18
21
  export default HoistFormFields;
@@ -0,0 +1,45 @@
1
+ <script lang="ts" module>import { getContext, onMount } from "svelte";
2
+ export function useMainTreeNode(options = {}) {
3
+ const { fallbackMainTreeNode = null } = $derived(options);
4
+ return getContext("MainTreeContext") ?? {
5
+ get node() {
6
+ return fallbackMainTreeNode;
7
+ }
8
+ };
9
+ }
10
+ </script>
11
+
12
+ <script lang="ts">import { setContext } from "svelte";
13
+ import Hidden, { HiddenFeatures } from "./Hidden.svelte";
14
+ import { getOwnerDocument } from "../utils/owner.js";
15
+ let { node, children } = $props();
16
+ let mainTreeNode = $state(null);
17
+ const resolvedMainTreeNode = useMainTreeNode({
18
+ get fallbackMainTreeNode() {
19
+ return node ?? mainTreeNode;
20
+ }
21
+ });
22
+ setContext("MainTreeContext", {
23
+ get node() {
24
+ return resolvedMainTreeNode.node;
25
+ }
26
+ });
27
+ let el = $state();
28
+ onMount(() => {
29
+ if (!el) return;
30
+ for (let container of getOwnerDocument(el)?.querySelectorAll("html > *, body > *") ?? []) {
31
+ if (container === document.body) continue;
32
+ if (container === document.head) continue;
33
+ if (!(container instanceof HTMLElement)) continue;
34
+ if (container?.contains(el)) {
35
+ mainTreeNode = container;
36
+ break;
37
+ }
38
+ }
39
+ });
40
+ </script>
41
+
42
+ {#if children}{@render children()}{/if}
43
+ {#if resolvedMainTreeNode === null}
44
+ <Hidden features={HiddenFeatures.Hidden} bind:ref={el} />
45
+ {/if}
@@ -0,0 +1,31 @@
1
+ type MainTreeContext = {
2
+ node: HTMLElement | null;
3
+ };
4
+ /**
5
+ * Get the main tree node from context or fallback to the optionally provided node.
6
+ */
7
+ export declare function useMainTreeNode(options?: {
8
+ fallbackMainTreeNode?: HTMLElement | null;
9
+ }): MainTreeContext;
10
+ import { type Snippet } from "svelte";
11
+ 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> {
12
+ new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
13
+ $$bindings?: Bindings;
14
+ } & Exports;
15
+ (internal: unknown, props: Props & {
16
+ $$events?: Events;
17
+ $$slots?: Slots;
18
+ }): Exports & {
19
+ $set?: any;
20
+ $on?: any;
21
+ };
22
+ z_$$bindings?: Bindings;
23
+ }
24
+ declare const MainTreeProvider: $$__sveltets_2_IsomorphicComponent<{
25
+ children: Snippet;
26
+ node?: HTMLElement | null;
27
+ }, {
28
+ [evt: string]: CustomEvent<any>;
29
+ }, {}, {}, "">;
30
+ type MainTreeProvider = InstanceType<typeof MainTreeProvider>;
31
+ export default MainTreeProvider;
@@ -6,7 +6,10 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
6
6
  (internal: unknown, props: Props & {
7
7
  $$events?: Events;
8
8
  $$slots?: Slots;
9
- }): Exports;
9
+ }): Exports & {
10
+ $set?: any;
11
+ $on?: any;
12
+ };
10
13
  z_$$bindings?: Bindings;
11
14
  }
12
15
  declare const Portal: $$__sveltets_2_IsomorphicComponent<{
@@ -14,6 +17,6 @@ declare const Portal: $$__sveltets_2_IsomorphicComponent<{
14
17
  children: Snippet;
15
18
  }, {
16
19
  [evt: string]: CustomEvent<any>;
17
- }, {}, Record<string, any>, "">;
20
+ }, {}, {}, "">;
18
21
  type Portal = InstanceType<typeof Portal>;
19
22
  export default Portal;
@@ -0,0 +1,7 @@
1
+ export type CloseContext = {
2
+ close: () => void;
3
+ };
4
+ export declare function useClose(): CloseContext;
5
+ export declare function createCloseContext(options: {
6
+ readonly close: () => void;
7
+ }): void;
@@ -0,0 +1,7 @@
1
+ import { getContext, setContext } from "svelte";
2
+ export function useClose() {
3
+ return getContext("CloseContext");
4
+ }
5
+ export function createCloseContext(options) {
6
+ setContext("CloseContext", options);
7
+ }
@@ -0,0 +1,62 @@
1
+ import type { MutableRefObject } from "../utils/ref.svelte.js";
2
+ type Align = "start" | "end";
3
+ type Placement = "top" | "right" | "bottom" | "left";
4
+ type BaseAnchorProps = {
5
+ /**
6
+ * The `gap` is the space between the trigger and the panel.
7
+ */
8
+ gap: number | string;
9
+ /**
10
+ * The `offset` is the amount the panel should be nudged from its original position.
11
+ */
12
+ offset: number | string;
13
+ /**
14
+ * The `padding` is the minimum space between the panel and the viewport.
15
+ */
16
+ padding: number | string;
17
+ };
18
+ export type AnchorProps = false | (`${Placement}` | `${Placement} ${Align}`) | Partial<BaseAnchorProps & {
19
+ /**
20
+ * The `to` value defines which side of the trigger the panel should be placed on and its
21
+ * alignment.
22
+ */
23
+ to: `${Placement}` | `${Placement} ${Align}`;
24
+ }>;
25
+ export type AnchorPropsWithSelection = false | (`${Placement | "selection"}` | `${Placement | "selection"} ${Align}`) | Partial<BaseAnchorProps & {
26
+ /**
27
+ * The `to` value defines which side of the trigger the panel should be placed on and its
28
+ * alignment.
29
+ */
30
+ to: `${Placement | "selection"}` | `${Placement | "selection"} ${Align}`;
31
+ }>;
32
+ export type InternalFloatingPanelProps = Partial<{
33
+ inner: {
34
+ listRef: MutableRefObject<(HTMLElement | null)[]>;
35
+ index: () => number | null;
36
+ };
37
+ }>;
38
+ type FloatingContext = {
39
+ styles?: string;
40
+ setReference: (reference: HTMLElement | null | undefined) => void;
41
+ setFloating: (floating: HTMLElement | null | undefined) => void;
42
+ getReferenceProps: () => Record<string, any>;
43
+ getFloatingProps: () => Record<string, any>;
44
+ slot: Partial<{
45
+ anchor: `${Placement | "selection"}` | `${Placement | "selection"} ${Align}`;
46
+ }>;
47
+ };
48
+ export declare function useResolvedAnchor<T extends AnchorProps | AnchorPropsWithSelection>(anchor?: T): Exclude<T, boolean | string> | null;
49
+ export declare function useFloating(): FloatingContext;
50
+ export declare function useFloatingPanelProps(): () => Record<string, any> & {
51
+ "data-anchor": Placement | "top end" | "top start" | "right end" | "right start" | "bottom end" | "bottom start" | "left end" | "left start" | "selection" | "selection end" | "selection start" | undefined;
52
+ };
53
+ export declare function useFloatingPanel(options: {
54
+ placement: (AnchorPropsWithSelection & InternalFloatingPanelProps) | null;
55
+ }): {
56
+ readonly setFloating: (floating: HTMLElement | null | undefined) => void;
57
+ readonly style: string | undefined;
58
+ };
59
+ export declare const createFloatingContext: ({ enabled }?: {
60
+ enabled?: boolean;
61
+ }) => FloatingContext;
62
+ export {};