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

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 (123) hide show
  1. package/dist/button/Button.svelte +84 -55
  2. package/dist/button/Button.svelte.d.ts +4 -32
  3. package/dist/checkbox/Checkbox.svelte +177 -121
  4. package/dist/checkbox/Checkbox.svelte.d.ts +14 -32
  5. package/dist/close-button/CloseButton.svelte +10 -7
  6. package/dist/close-button/CloseButton.svelte.d.ts +2 -44
  7. package/dist/data-interactive/DataInteractive.svelte +49 -37
  8. package/dist/data-interactive/DataInteractive.svelte.d.ts +7 -30
  9. package/dist/description/Description.svelte +35 -22
  10. package/dist/description/Description.svelte.d.ts +7 -28
  11. package/dist/dialog/Dialog.svelte +326 -232
  12. package/dist/dialog/Dialog.svelte.d.ts +4 -42
  13. package/dist/dialog/DialogBackdrop.svelte +33 -16
  14. package/dist/dialog/DialogBackdrop.svelte.d.ts +4 -29
  15. package/dist/dialog/DialogPanel.svelte +60 -29
  16. package/dist/dialog/DialogPanel.svelte.d.ts +4 -30
  17. package/dist/dialog/DialogTitle.svelte +51 -24
  18. package/dist/dialog/DialogTitle.svelte.d.ts +6 -27
  19. package/dist/field/Field.svelte +44 -28
  20. package/dist/field/Field.svelte.d.ts +4 -30
  21. package/dist/fieldset/Fieldset.svelte +48 -30
  22. package/dist/fieldset/Fieldset.svelte.d.ts +5 -31
  23. package/dist/focus-trap/FocusTrap.svelte +430 -298
  24. package/dist/focus-trap/FocusTrap.svelte.d.ts +5 -34
  25. package/dist/hooks/use-inert-others.svelte.js +10 -10
  26. package/dist/hooks/use-resolve-button-type.svelte.js +0 -1
  27. package/dist/input/Input.svelte +95 -54
  28. package/dist/input/Input.svelte.d.ts +13 -27
  29. package/dist/internal/FloatingProvider.svelte +14 -9
  30. package/dist/internal/FocusSentinel.svelte +49 -40
  31. package/dist/internal/ForcePortalRoot.svelte +7 -3
  32. package/dist/internal/FormFields.svelte +47 -34
  33. package/dist/internal/FormFieldsProvider.svelte +9 -5
  34. package/dist/internal/FormResolver.svelte +25 -16
  35. package/dist/internal/Hidden.svelte +45 -38
  36. package/dist/internal/Hidden.svelte.d.ts +4 -30
  37. package/dist/internal/MainTreeProvider.svelte +90 -37
  38. package/dist/internal/Portal.svelte +18 -14
  39. package/dist/label/Label.svelte +100 -59
  40. package/dist/label/Label.svelte.d.ts +7 -32
  41. package/dist/legend/Legend.svelte +27 -4
  42. package/dist/legend/Legend.svelte.d.ts +4 -3
  43. package/dist/listbox/Listbox.svelte +518 -391
  44. package/dist/listbox/Listbox.svelte.d.ts +11 -35
  45. package/dist/listbox/ListboxButton.svelte +175 -128
  46. package/dist/listbox/ListboxButton.svelte.d.ts +5 -32
  47. package/dist/listbox/ListboxOption.svelte +171 -130
  48. package/dist/listbox/ListboxOption.svelte.d.ts +12 -26
  49. package/dist/listbox/ListboxOptions.svelte +403 -305
  50. package/dist/listbox/ListboxOptions.svelte.d.ts +4 -38
  51. package/dist/listbox/ListboxSelectedOption.svelte +40 -19
  52. package/dist/listbox/ListboxSelectedOption.svelte.d.ts +8 -33
  53. package/dist/menu/Menu.svelte +76 -52
  54. package/dist/menu/Menu.svelte.d.ts +3 -31
  55. package/dist/menu/MenuButton.svelte +158 -118
  56. package/dist/menu/MenuButton.svelte.d.ts +4 -34
  57. package/dist/menu/MenuHeading.svelte +34 -15
  58. package/dist/menu/MenuHeading.svelte.d.ts +4 -31
  59. package/dist/menu/MenuItem.svelte +143 -108
  60. package/dist/menu/MenuItem.svelte.d.ts +5 -32
  61. package/dist/menu/MenuItems.svelte +301 -230
  62. package/dist/menu/MenuItems.svelte.d.ts +4 -38
  63. package/dist/menu/MenuSection.svelte +26 -10
  64. package/dist/menu/MenuSection.svelte.d.ts +5 -29
  65. package/dist/menu/MenuSeparator.svelte +20 -5
  66. package/dist/menu/MenuSeparator.svelte.d.ts +5 -28
  67. package/dist/popover/Popover.svelte +217 -151
  68. package/dist/popover/Popover.svelte.d.ts +4 -30
  69. package/dist/popover/PopoverBackdrop.svelte +71 -42
  70. package/dist/popover/PopoverBackdrop.svelte.d.ts +6 -34
  71. package/dist/popover/PopoverButton.svelte +302 -222
  72. package/dist/popover/PopoverButton.svelte.d.ts +6 -29
  73. package/dist/popover/PopoverGroup.svelte +64 -36
  74. package/dist/popover/PopoverGroup.svelte.d.ts +5 -28
  75. package/dist/popover/PopoverPanel.svelte +335 -248
  76. package/dist/popover/PopoverPanel.svelte.d.ts +5 -36
  77. package/dist/popover/index.d.ts +1 -1
  78. package/dist/portal/InternalPortal.svelte +143 -86
  79. package/dist/portal/InternalPortal.svelte.d.ts +4 -30
  80. package/dist/portal/Portal.svelte +8 -4
  81. package/dist/portal/Portal.svelte.d.ts +2 -18
  82. package/dist/portal/PortalGroup.svelte +23 -10
  83. package/dist/portal/PortalGroup.svelte.d.ts +3 -31
  84. package/dist/select/Select.svelte +100 -69
  85. package/dist/select/Select.svelte.d.ts +5 -32
  86. package/dist/switch/Switch.svelte +181 -133
  87. package/dist/switch/Switch.svelte.d.ts +5 -38
  88. package/dist/switch/SwitchGroup.svelte +45 -32
  89. package/dist/switch/SwitchGroup.svelte.d.ts +7 -28
  90. package/dist/tabs/Tab.svelte +195 -143
  91. package/dist/tabs/Tab.svelte.d.ts +4 -32
  92. package/dist/tabs/TabGroup.svelte +87 -57
  93. package/dist/tabs/TabGroup.svelte.d.ts +4 -34
  94. package/dist/tabs/TabList.svelte +31 -12
  95. package/dist/tabs/TabList.svelte.d.ts +5 -28
  96. package/dist/tabs/TabPanel.svelte +69 -44
  97. package/dist/tabs/TabPanel.svelte.d.ts +4 -34
  98. package/dist/tabs/TabPanels.svelte +19 -8
  99. package/dist/tabs/TabPanels.svelte.d.ts +5 -27
  100. package/dist/textarea/Textarea.svelte +87 -54
  101. package/dist/textarea/Textarea.svelte.d.ts +13 -27
  102. package/dist/transition/InternalTransitionChild.svelte +267 -171
  103. package/dist/transition/InternalTransitionChild.svelte.d.ts +3 -33
  104. package/dist/transition/Transition.svelte +88 -67
  105. package/dist/transition/Transition.svelte.d.ts +3 -36
  106. package/dist/transition/TransitionChild.svelte +31 -12
  107. package/dist/transition/TransitionChild.svelte.d.ts +8 -35
  108. package/dist/transition/context.svelte.js +7 -7
  109. package/dist/utils/DisabledProvider.svelte +7 -3
  110. package/dist/utils/ElementOrComponent.svelte +88 -24
  111. package/dist/utils/ElementOrComponent.svelte.d.ts +32 -27
  112. package/dist/utils/StableCollection.svelte +54 -36
  113. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +27 -12
  114. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +88 -44
  115. package/dist/utils/state.js +4 -4
  116. package/dist/utils/types.d.ts +14 -12
  117. package/package.json +12 -12
  118. package/dist/combobox/Combobox.svelte +0 -6
  119. package/dist/combobox/Combobox.svelte.d.ts +0 -50
  120. package/dist/utils/Generic.svelte +0 -46
  121. package/dist/utils/Generic.svelte.d.ts +0 -32
  122. package/dist/utils/alternative-types.d.ts +0 -20
  123. package/dist/utils/alternative-types.js +0 -1
@@ -1,41 +1,53 @@
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 { PropsAsChild } 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 { useHover } from "../hooks/use-hover.svelte.js"
6
+ import { mergeProps } from "../utils/render.js"
7
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte"
8
+
9
+ const DEFAULT_DATA_INTERACTIVE_TAG = "svelte:fragment" as const
10
+
11
+ type DataInteractiveRenderPropArg = {
12
+ hover: boolean
13
+ focus: boolean
14
+ active: boolean
15
+ }
16
+
17
+ export type DataInteractiveProps = PropsAsChild<DataInteractiveRenderPropArg>
7
18
  </script>
8
19
 
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));
20
+ <script lang="ts">
21
+ let { ...theirProps }: DataInteractiveProps = $props()
22
+
23
+ // Ideally we can use a `disabled` prop, but that would depend on the props of the child element
24
+ // and we don't have access to that in this component.
25
+
26
+ const disabled = false
27
+
28
+ const { isHovered: hover, hoverProps } = $derived(
29
+ useHover({
30
+ get disabled() {
31
+ return disabled
32
+ },
33
+ })
34
+ )
35
+ const { pressed: active, pressProps } = $derived(
36
+ useActivePress({
37
+ get disabled() {
38
+ return disabled
39
+ },
40
+ })
41
+ )
42
+ const { isFocusVisible: focus, focusProps } = $derived(useFocusRing())
43
+
44
+ const slot = $derived({
45
+ hover,
46
+ focus,
47
+ active,
48
+ } satisfies DataInteractiveRenderPropArg)
49
+
50
+ const ourProps = $derived(mergeProps(focusProps, hoverProps, pressProps))
32
51
  </script>
33
52
 
34
- <ElementOrComponent
35
- {ourProps}
36
- {theirProps}
37
- {slot}
38
- defaultTag={DEFAULT_DATA_INTERACTIVE_TAG}
39
- name="DataInteractive"
40
- bind:ref
41
- />
53
+ <ElementOrComponent {ourProps} {theirProps} {slot} name="DataInteractive" />
@@ -1,36 +1,13 @@
1
- import type { Props, ElementType } from "../utils/types.js";
2
- import type { Snippet } from "svelte";
3
- declare const DEFAULT_DATA_INTERACTIVE_TAG: "svelte:fragment";
1
+ import type { PropsAsChild } from "../utils/types.js";
4
2
  type DataInteractiveRenderPropArg = {
5
3
  hover: boolean;
6
4
  focus: boolean;
7
5
  active: boolean;
8
6
  };
9
- type DataInteractivePropsWeControl = never;
10
- export type DataInteractiveProps<TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG> = Props<TTag, DataInteractiveRenderPropArg, DataInteractivePropsWeControl, {}>;
11
- declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG> {
12
- props(): {
13
- as?: TTag | 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;
20
- ref?: HTMLElement;
21
- };
22
- events(): {};
23
- slots(): {};
24
- bindings(): "ref";
25
- exports(): {};
26
- }
27
- interface $$IsomorphicComponent {
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']>> & {
29
- $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
30
- } & 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']>;
32
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
33
- }
34
- declare const DataInteractive: $$IsomorphicComponent;
35
- type DataInteractive<TTag extends ElementType = typeof DEFAULT_DATA_INTERACTIVE_TAG> = InstanceType<typeof DataInteractive<TTag>>;
7
+ export type DataInteractiveProps = PropsAsChild<DataInteractiveRenderPropArg>;
8
+ declare const DataInteractive: import("svelte").Component<{
9
+ children?: import("svelte").Snippet<[DataInteractiveRenderPropArg & {
10
+ props?: Record<string, any>;
11
+ }]> | undefined;
12
+ }, {}, "">;
36
13
  export default DataInteractive;
@@ -1,26 +1,39 @@
1
- <script lang="ts" module>let DEFAULT_DESCRIPTION_TAG = "p";
1
+ <script lang="ts" module>
2
+ import type { Props } from "../utils/types.js"
3
+
4
+ const DEFAULT_DESCRIPTION_TAG = "p" as const
5
+
6
+ export type DescriptionProps = Props<
7
+ typeof DEFAULT_DESCRIPTION_TAG,
8
+ {},
9
+ {
10
+ id?: string
11
+ element?: HTMLElement
12
+ }
13
+ >
2
14
  </script>
3
15
 
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 });
16
+ <script lang="ts">
17
+ import { useId } from "../hooks/use-id.js"
18
+ import { useDisabled } from "../hooks/use-disabled.js"
19
+ import { useDescriptionContext } from "./context.svelte.js"
20
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte"
21
+ import { untrack } from "svelte"
22
+
23
+ const internalId = useId()
24
+ const providedDisabled = useDisabled()
25
+
26
+ let { element = $bindable(), id = `headlessui-description-${internalId}`, ...theirProps }: DescriptionProps = $props()
27
+
28
+ const { register } = useDescriptionContext()
29
+ $effect(() => {
30
+ id
31
+ return untrack(() => register(id))
32
+ })
33
+
34
+ const disabled = $derived(providedDisabled.current || false)
35
+ const slot = $derived({ disabled })
36
+ const ourProps = $derived({ id })
24
37
  </script>
25
38
 
26
39
  <ElementOrComponent
@@ -29,5 +42,5 @@ const ourProps = $derived({ id });
29
42
  slots={slot}
30
43
  defaultTag={DEFAULT_DESCRIPTION_TAG}
31
44
  name="Description"
32
- bind:ref
45
+ bind:element
33
46
  />
@@ -1,29 +1,8 @@
1
- import type { ElementType, Props, PropsOf } from "../utils/types.js";
2
- declare let DEFAULT_DESCRIPTION_TAG: "p";
3
- export type DescriptionProps<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> = Props<TTag>;
4
- declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> {
5
- props(): {
6
- as?: TTag | 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;
13
- ref?: HTMLElement;
14
- };
15
- events(): {};
16
- slots(): {};
17
- bindings(): "ref";
18
- exports(): {};
19
- }
20
- interface $$IsomorphicComponent {
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
- $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
23
- } & 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']>;
25
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
26
- }
27
- declare const Description: $$IsomorphicComponent;
28
- type Description<TTag extends ElementType = typeof DEFAULT_DESCRIPTION_TAG> = InstanceType<typeof Description<TTag>>;
1
+ import type { Props } from "../utils/types.js";
2
+ declare const DEFAULT_DESCRIPTION_TAG: "p";
3
+ export type DescriptionProps = Props<typeof DEFAULT_DESCRIPTION_TAG, {}, {
4
+ id?: string;
5
+ element?: HTMLElement;
6
+ }>;
7
+ declare const Description: import("svelte").Component<DescriptionProps, {}, "element">;
29
8
  export default Description;