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

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 (113) hide show
  1. package/dist/button/Button.svelte +84 -54
  2. package/dist/button/Button.svelte.d.ts +2 -3
  3. package/dist/checkbox/Checkbox.svelte +173 -120
  4. package/dist/checkbox/Checkbox.svelte.d.ts +2 -3
  5. package/dist/close-button/CloseButton.svelte +12 -6
  6. package/dist/close-button/CloseButton.svelte.d.ts +7 -8
  7. package/dist/combobox/Combobox.svelte +50 -3
  8. package/dist/data-interactive/DataInteractive.svelte +55 -29
  9. package/dist/data-interactive/DataInteractive.svelte.d.ts +2 -3
  10. package/dist/description/Description.svelte +31 -21
  11. package/dist/description/Description.svelte.d.ts +1 -2
  12. package/dist/dialog/Dialog.svelte +320 -228
  13. package/dist/dialog/Dialog.svelte.d.ts +2 -3
  14. package/dist/dialog/DialogBackdrop.svelte +30 -13
  15. package/dist/dialog/DialogBackdrop.svelte.d.ts +2 -3
  16. package/dist/dialog/DialogPanel.svelte +49 -26
  17. package/dist/dialog/DialogPanel.svelte.d.ts +2 -3
  18. package/dist/dialog/DialogTitle.svelte +38 -23
  19. package/dist/dialog/DialogTitle.svelte.d.ts +2 -3
  20. package/dist/field/Field.svelte +47 -25
  21. package/dist/field/Field.svelte.d.ts +1 -2
  22. package/dist/fieldset/Fieldset.svelte +50 -29
  23. package/dist/fieldset/Fieldset.svelte.d.ts +1 -2
  24. package/dist/focus-trap/FocusTrap.svelte +419 -283
  25. package/dist/focus-trap/FocusTrap.svelte.d.ts +1 -2
  26. package/dist/input/Input.svelte +84 -53
  27. package/dist/input/Input.svelte.d.ts +2 -3
  28. package/dist/internal/FloatingProvider.svelte +14 -9
  29. package/dist/internal/FocusSentinel.svelte +16 -8
  30. package/dist/internal/ForcePortalRoot.svelte +7 -3
  31. package/dist/internal/FormFields.svelte +47 -34
  32. package/dist/internal/FormFieldsProvider.svelte +9 -5
  33. package/dist/internal/FormResolver.svelte +20 -15
  34. package/dist/internal/Hidden.svelte +50 -29
  35. package/dist/internal/Hidden.svelte.d.ts +1 -2
  36. package/dist/internal/MainTreeProvider.svelte +89 -36
  37. package/dist/internal/Portal.svelte +18 -14
  38. package/dist/label/Label.svelte +93 -58
  39. package/dist/label/Label.svelte.d.ts +1 -2
  40. package/dist/legend/Legend.svelte +12 -3
  41. package/dist/listbox/Listbox.svelte +525 -387
  42. package/dist/listbox/Listbox.svelte.d.ts +2 -3
  43. package/dist/listbox/ListboxButton.svelte +173 -127
  44. package/dist/listbox/ListboxButton.svelte.d.ts +2 -3
  45. package/dist/listbox/ListboxOption.svelte +170 -129
  46. package/dist/listbox/ListboxOption.svelte.d.ts +2 -3
  47. package/dist/listbox/ListboxOptions.svelte +400 -304
  48. package/dist/listbox/ListboxOptions.svelte.d.ts +2 -3
  49. package/dist/listbox/ListboxSelectedOption.svelte +38 -15
  50. package/dist/listbox/ListboxSelectedOption.svelte.d.ts +1 -2
  51. package/dist/menu/Menu.svelte +77 -51
  52. package/dist/menu/Menu.svelte.d.ts +2 -3
  53. package/dist/menu/MenuButton.svelte +157 -117
  54. package/dist/menu/MenuButton.svelte.d.ts +2 -3
  55. package/dist/menu/MenuHeading.svelte +32 -14
  56. package/dist/menu/MenuHeading.svelte.d.ts +1 -2
  57. package/dist/menu/MenuItem.svelte +142 -107
  58. package/dist/menu/MenuItem.svelte.d.ts +2 -3
  59. package/dist/menu/MenuItems.svelte +301 -229
  60. package/dist/menu/MenuItems.svelte.d.ts +2 -3
  61. package/dist/menu/MenuSection.svelte +24 -9
  62. package/dist/menu/MenuSection.svelte.d.ts +1 -2
  63. package/dist/menu/MenuSeparator.svelte +17 -4
  64. package/dist/menu/MenuSeparator.svelte.d.ts +1 -2
  65. package/dist/popover/Popover.svelte +216 -150
  66. package/dist/popover/Popover.svelte.d.ts +2 -3
  67. package/dist/popover/PopoverBackdrop.svelte +67 -41
  68. package/dist/popover/PopoverBackdrop.svelte.d.ts +2 -3
  69. package/dist/popover/PopoverButton.svelte +292 -212
  70. package/dist/popover/PopoverButton.svelte.d.ts +2 -3
  71. package/dist/popover/PopoverGroup.svelte +62 -35
  72. package/dist/popover/PopoverGroup.svelte.d.ts +1 -2
  73. package/dist/popover/PopoverPanel.svelte +311 -229
  74. package/dist/popover/PopoverPanel.svelte.d.ts +2 -3
  75. package/dist/portal/InternalPortal.svelte +141 -85
  76. package/dist/portal/InternalPortal.svelte.d.ts +1 -2
  77. package/dist/portal/Portal.svelte +5 -2
  78. package/dist/portal/PortalGroup.svelte +30 -9
  79. package/dist/portal/PortalGroup.svelte.d.ts +1 -2
  80. package/dist/select/Select.svelte +98 -68
  81. package/dist/select/Select.svelte.d.ts +2 -3
  82. package/dist/switch/Switch.svelte +179 -132
  83. package/dist/switch/Switch.svelte.d.ts +2 -3
  84. package/dist/switch/SwitchGroup.svelte +44 -31
  85. package/dist/switch/SwitchGroup.svelte.d.ts +1 -2
  86. package/dist/tabs/Tab.svelte +194 -142
  87. package/dist/tabs/Tab.svelte.d.ts +2 -3
  88. package/dist/tabs/TabGroup.svelte +86 -56
  89. package/dist/tabs/TabGroup.svelte.d.ts +2 -3
  90. package/dist/tabs/TabList.svelte +31 -11
  91. package/dist/tabs/TabList.svelte.d.ts +2 -3
  92. package/dist/tabs/TabPanel.svelte +67 -42
  93. package/dist/tabs/TabPanel.svelte.d.ts +2 -3
  94. package/dist/tabs/TabPanels.svelte +18 -7
  95. package/dist/tabs/TabPanels.svelte.d.ts +2 -3
  96. package/dist/textarea/Textarea.svelte +84 -53
  97. package/dist/textarea/Textarea.svelte.d.ts +2 -3
  98. package/dist/transition/InternalTransitionChild.svelte +259 -170
  99. package/dist/transition/InternalTransitionChild.svelte.d.ts +2 -3
  100. package/dist/transition/Transition.svelte +96 -66
  101. package/dist/transition/Transition.svelte.d.ts +2 -3
  102. package/dist/transition/TransitionChild.svelte +31 -11
  103. package/dist/transition/TransitionChild.svelte.d.ts +2 -3
  104. package/dist/utils/DisabledProvider.svelte +7 -3
  105. package/dist/utils/ElementOrComponent.svelte +46 -23
  106. package/dist/utils/ElementOrComponent.svelte.d.ts +8 -10
  107. package/dist/utils/Generic.svelte +30 -19
  108. package/dist/utils/Generic.svelte.d.ts +6 -7
  109. package/dist/utils/StableCollection.svelte +54 -36
  110. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +27 -12
  111. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +88 -44
  112. package/dist/utils/types.d.ts +4 -5
  113. package/package.json +1 -1
@@ -1,34 +1,60 @@
1
- <script lang="ts" module>import { useFocusRing } from "../hooks/use-focus-ring.svelte.js";
2
- import { useActivePress } from "../hooks/use-active-press.svelte.js";
3
- import { useHover } from "../hooks/use-hover.svelte.js";
4
- import { mergeProps } from "../utils/render.js";
5
- import ElementOrComponent from "../utils/ElementOrComponent.svelte";
6
- const DEFAULT_DATA_INTERACTIVE_TAG = "svelte:fragment";
1
+ <script lang="ts" module>
2
+ import type { Props, ElementType } from "../utils/types.js"
3
+ import { useFocusRing } from "../hooks/use-focus-ring.svelte.js"
4
+ import { useActivePress } from "../hooks/use-active-press.svelte.js"
5
+ import type { Snippet } from "svelte"
6
+ import { useHover } from "../hooks/use-hover.svelte.js"
7
+ import { mergeProps } from "../utils/render.js"
8
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte"
9
+
10
+ const DEFAULT_DATA_INTERACTIVE_TAG = "svelte:fragment" as const
11
+
12
+ type DataInteractiveRenderPropArg = {
13
+ hover: boolean
14
+ focus: boolean
15
+ active: boolean
16
+ }
17
+ type DataInteractivePropsWeControl = never
18
+
19
+ export type DataInteractiveProps<TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG> = Props<
20
+ TTag,
21
+ DataInteractiveRenderPropArg,
22
+ DataInteractivePropsWeControl,
23
+ {}
24
+ >
7
25
  </script>
8
26
 
9
- <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG">let { ref = $bindable(), ...theirProps } = $props();
10
- const disabled = false;
11
- const { isHovered: hover, hoverProps } = $derived(
12
- useHover({
13
- get disabled() {
14
- return disabled;
15
- }
16
- })
17
- );
18
- const { pressed: active, pressProps } = $derived(
19
- useActivePress({
20
- get disabled() {
21
- return disabled;
22
- }
23
- })
24
- );
25
- const { isFocusVisible: focus, focusProps } = $derived(useFocusRing());
26
- const slot = $derived({
27
- hover,
28
- focus,
29
- active
30
- });
31
- const ourProps = $derived(mergeProps(focusProps, hoverProps, pressProps));
27
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG">
28
+ let { ref = $bindable(), ...theirProps }: { as?: TTag } & DataInteractiveProps<TTag> = $props()
29
+
30
+ // Ideally we can use a `disabled` prop, but that would depend on the props of the child element
31
+ // and we don't have access to that in this component.
32
+
33
+ const disabled = false
34
+
35
+ const { isHovered: hover, hoverProps } = $derived(
36
+ useHover({
37
+ get disabled() {
38
+ return disabled
39
+ },
40
+ })
41
+ )
42
+ const { pressed: active, pressProps } = $derived(
43
+ useActivePress({
44
+ get disabled() {
45
+ return disabled
46
+ },
47
+ })
48
+ )
49
+ const { isFocusVisible: focus, focusProps } = $derived(useFocusRing())
50
+
51
+ const slot = $derived({
52
+ hover,
53
+ focus,
54
+ active,
55
+ } satisfies DataInteractiveRenderPropArg)
56
+
57
+ const ourProps = $derived(mergeProps(focusProps, hoverProps, pressProps))
32
58
  </script>
33
59
 
34
60
  <ElementOrComponent
@@ -12,9 +12,8 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DATA_I
12
12
  props(): {
13
13
  as?: TTag | undefined;
14
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>;
15
+ children?: Snippet<[DataInteractiveRenderPropArg & {
16
+ props?: Record<string, any>;
18
17
  }]> | undefined;
19
18
  class?: string | ((bag: DataInteractiveRenderPropArg) => string) | null | undefined;
20
19
  ref?: HTMLElement;
@@ -1,26 +1,36 @@
1
- <script lang="ts" module>let DEFAULT_DESCRIPTION_TAG = "p";
1
+ <script lang="ts" module>
2
+ import type { ElementType, Props, PropsOf } from "../utils/types.js"
3
+
4
+ let DEFAULT_DESCRIPTION_TAG = "p" as const
5
+
6
+ export type DescriptionProps<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> = Props<TTag>
2
7
  </script>
3
8
 
4
- <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG">import { useId } from "../hooks/use-id.js";
5
- import { useDisabled } from "../hooks/use-disabled.js";
6
- import { useDescriptionContext } from "./context.svelte.js";
7
- import ElementOrComponent from "../utils/ElementOrComponent.svelte";
8
- import { untrack } from "svelte";
9
- const internalId = useId();
10
- const providedDisabled = useDisabled();
11
- let {
12
- ref = $bindable(),
13
- id = `headlessui-description-${internalId}`,
14
- ...theirProps
15
- } = $props();
16
- const { register } = useDescriptionContext();
17
- $effect(() => {
18
- id;
19
- return untrack(() => register(id));
20
- });
21
- const disabled = $derived(providedDisabled.current || false);
22
- const slot = $derived({ disabled });
23
- const ourProps = $derived({ id });
9
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG">
10
+ import { useId } from "../hooks/use-id.js"
11
+ import { useDisabled } from "../hooks/use-disabled.js"
12
+ import { useDescriptionContext } from "./context.svelte.js"
13
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte"
14
+ import { untrack } from "svelte"
15
+
16
+ const internalId = useId()
17
+ const providedDisabled = useDisabled()
18
+
19
+ let {
20
+ ref = $bindable(),
21
+ id = `headlessui-description-${internalId}` as PropsOf<TTag>["id"],
22
+ ...theirProps
23
+ }: { as?: TTag } & DescriptionProps<TTag> = $props()
24
+
25
+ const { register } = useDescriptionContext()
26
+ $effect(() => {
27
+ id
28
+ return untrack(() => register(id))
29
+ })
30
+
31
+ const disabled = $derived(providedDisabled.current || false)
32
+ const slot = $derived({ disabled })
33
+ const ourProps = $derived({ id })
24
34
  </script>
25
35
 
26
36
  <ElementOrComponent
@@ -6,8 +6,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DESCRI
6
6
  as?: TTag | undefined;
7
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
8
  children?: import("svelte").Snippet<[{
9
- slot: {};
10
- props: Record<string, any>;
9
+ props?: Record<string, any>;
11
10
  }]> | undefined;
12
11
  class?: string | ((bag: {}) => string) | null | undefined;
13
12
  ref?: HTMLElement;