@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.
- package/dist/button/Button.svelte +84 -55
- package/dist/button/Button.svelte.d.ts +4 -32
- package/dist/checkbox/Checkbox.svelte +177 -121
- package/dist/checkbox/Checkbox.svelte.d.ts +14 -32
- package/dist/close-button/CloseButton.svelte +10 -7
- package/dist/close-button/CloseButton.svelte.d.ts +2 -44
- package/dist/data-interactive/DataInteractive.svelte +49 -37
- package/dist/data-interactive/DataInteractive.svelte.d.ts +7 -30
- package/dist/description/Description.svelte +35 -22
- package/dist/description/Description.svelte.d.ts +7 -28
- package/dist/dialog/Dialog.svelte +326 -232
- package/dist/dialog/Dialog.svelte.d.ts +4 -42
- package/dist/dialog/DialogBackdrop.svelte +33 -16
- package/dist/dialog/DialogBackdrop.svelte.d.ts +4 -29
- package/dist/dialog/DialogPanel.svelte +60 -29
- package/dist/dialog/DialogPanel.svelte.d.ts +4 -30
- package/dist/dialog/DialogTitle.svelte +51 -24
- package/dist/dialog/DialogTitle.svelte.d.ts +6 -27
- package/dist/field/Field.svelte +44 -28
- package/dist/field/Field.svelte.d.ts +4 -30
- package/dist/fieldset/Fieldset.svelte +48 -30
- package/dist/fieldset/Fieldset.svelte.d.ts +5 -31
- package/dist/focus-trap/FocusTrap.svelte +430 -298
- package/dist/focus-trap/FocusTrap.svelte.d.ts +5 -34
- package/dist/hooks/use-inert-others.svelte.js +10 -10
- package/dist/hooks/use-resolve-button-type.svelte.js +0 -1
- package/dist/input/Input.svelte +95 -54
- package/dist/input/Input.svelte.d.ts +13 -27
- package/dist/internal/FloatingProvider.svelte +14 -9
- package/dist/internal/FocusSentinel.svelte +49 -40
- package/dist/internal/ForcePortalRoot.svelte +7 -3
- package/dist/internal/FormFields.svelte +47 -34
- package/dist/internal/FormFieldsProvider.svelte +9 -5
- package/dist/internal/FormResolver.svelte +25 -16
- package/dist/internal/Hidden.svelte +45 -38
- package/dist/internal/Hidden.svelte.d.ts +4 -30
- package/dist/internal/MainTreeProvider.svelte +90 -37
- package/dist/internal/Portal.svelte +18 -14
- package/dist/label/Label.svelte +100 -59
- package/dist/label/Label.svelte.d.ts +7 -32
- package/dist/legend/Legend.svelte +27 -4
- package/dist/legend/Legend.svelte.d.ts +4 -3
- package/dist/listbox/Listbox.svelte +518 -391
- package/dist/listbox/Listbox.svelte.d.ts +11 -35
- package/dist/listbox/ListboxButton.svelte +175 -128
- package/dist/listbox/ListboxButton.svelte.d.ts +5 -32
- package/dist/listbox/ListboxOption.svelte +171 -130
- package/dist/listbox/ListboxOption.svelte.d.ts +12 -26
- package/dist/listbox/ListboxOptions.svelte +403 -305
- package/dist/listbox/ListboxOptions.svelte.d.ts +4 -38
- package/dist/listbox/ListboxSelectedOption.svelte +40 -19
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +8 -33
- package/dist/menu/Menu.svelte +76 -52
- package/dist/menu/Menu.svelte.d.ts +3 -31
- package/dist/menu/MenuButton.svelte +158 -118
- package/dist/menu/MenuButton.svelte.d.ts +4 -34
- package/dist/menu/MenuHeading.svelte +34 -15
- package/dist/menu/MenuHeading.svelte.d.ts +4 -31
- package/dist/menu/MenuItem.svelte +143 -108
- package/dist/menu/MenuItem.svelte.d.ts +5 -32
- package/dist/menu/MenuItems.svelte +301 -230
- package/dist/menu/MenuItems.svelte.d.ts +4 -38
- package/dist/menu/MenuSection.svelte +26 -10
- package/dist/menu/MenuSection.svelte.d.ts +5 -29
- package/dist/menu/MenuSeparator.svelte +20 -5
- package/dist/menu/MenuSeparator.svelte.d.ts +5 -28
- package/dist/popover/Popover.svelte +217 -151
- package/dist/popover/Popover.svelte.d.ts +4 -30
- package/dist/popover/PopoverBackdrop.svelte +71 -42
- package/dist/popover/PopoverBackdrop.svelte.d.ts +6 -34
- package/dist/popover/PopoverButton.svelte +302 -222
- package/dist/popover/PopoverButton.svelte.d.ts +6 -29
- package/dist/popover/PopoverGroup.svelte +64 -36
- package/dist/popover/PopoverGroup.svelte.d.ts +5 -28
- package/dist/popover/PopoverPanel.svelte +335 -248
- package/dist/popover/PopoverPanel.svelte.d.ts +5 -36
- package/dist/popover/index.d.ts +1 -1
- package/dist/portal/InternalPortal.svelte +143 -86
- package/dist/portal/InternalPortal.svelte.d.ts +4 -30
- package/dist/portal/Portal.svelte +8 -4
- package/dist/portal/Portal.svelte.d.ts +2 -18
- package/dist/portal/PortalGroup.svelte +23 -10
- package/dist/portal/PortalGroup.svelte.d.ts +3 -31
- package/dist/select/Select.svelte +100 -69
- package/dist/select/Select.svelte.d.ts +5 -32
- package/dist/switch/Switch.svelte +181 -133
- package/dist/switch/Switch.svelte.d.ts +5 -38
- package/dist/switch/SwitchGroup.svelte +45 -32
- package/dist/switch/SwitchGroup.svelte.d.ts +7 -28
- package/dist/tabs/Tab.svelte +195 -143
- package/dist/tabs/Tab.svelte.d.ts +4 -32
- package/dist/tabs/TabGroup.svelte +87 -57
- package/dist/tabs/TabGroup.svelte.d.ts +4 -34
- package/dist/tabs/TabList.svelte +31 -12
- package/dist/tabs/TabList.svelte.d.ts +5 -28
- package/dist/tabs/TabPanel.svelte +69 -44
- package/dist/tabs/TabPanel.svelte.d.ts +4 -34
- package/dist/tabs/TabPanels.svelte +19 -8
- package/dist/tabs/TabPanels.svelte.d.ts +5 -27
- package/dist/textarea/Textarea.svelte +87 -54
- package/dist/textarea/Textarea.svelte.d.ts +13 -27
- package/dist/transition/InternalTransitionChild.svelte +267 -171
- package/dist/transition/InternalTransitionChild.svelte.d.ts +3 -33
- package/dist/transition/Transition.svelte +88 -67
- package/dist/transition/Transition.svelte.d.ts +3 -36
- package/dist/transition/TransitionChild.svelte +31 -12
- package/dist/transition/TransitionChild.svelte.d.ts +8 -35
- package/dist/transition/context.svelte.js +7 -7
- package/dist/utils/DisabledProvider.svelte +7 -3
- package/dist/utils/ElementOrComponent.svelte +88 -24
- package/dist/utils/ElementOrComponent.svelte.d.ts +32 -27
- package/dist/utils/StableCollection.svelte +54 -36
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +27 -12
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +88 -44
- package/dist/utils/state.js +4 -4
- package/dist/utils/types.d.ts +14 -12
- package/package.json +12 -12
- package/dist/combobox/Combobox.svelte +0 -6
- package/dist/combobox/Combobox.svelte.d.ts +0 -50
- package/dist/utils/Generic.svelte +0 -46
- package/dist/utils/Generic.svelte.d.ts +0 -32
- package/dist/utils/alternative-types.d.ts +0 -20
- package/dist/utils/alternative-types.js +0 -1
|
@@ -1,43 +1,71 @@
|
|
|
1
|
-
<script lang="ts" module>
|
|
2
|
-
|
|
1
|
+
<script lang="ts" module>
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
|
+
import { setContext } from "svelte"
|
|
4
|
+
|
|
5
|
+
const DEFAULT_GROUP_TAG = "div" as const
|
|
6
|
+
type GroupRenderPropArg = {}
|
|
7
|
+
|
|
8
|
+
export type PopoverGroupProps = Props<
|
|
9
|
+
typeof DEFAULT_GROUP_TAG,
|
|
10
|
+
GroupRenderPropArg,
|
|
11
|
+
{
|
|
12
|
+
element?: HTMLElement
|
|
13
|
+
}
|
|
14
|
+
>
|
|
3
15
|
</script>
|
|
4
16
|
|
|
5
|
-
<script lang="ts"
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
return popovers.some((bag) => {
|
|
24
|
-
return ownerDocument.getElementById(bag.buttonId)?.contains(element) || ownerDocument.getElementById(bag.panelId)?.contains(element);
|
|
25
|
-
});
|
|
26
|
-
};
|
|
27
|
-
const closeOthers = (buttonId) => {
|
|
28
|
-
for (const popover of popovers) {
|
|
29
|
-
if (popover.buttonId !== buttonId) popover.close();
|
|
17
|
+
<script lang="ts">
|
|
18
|
+
import type { PopoverGroupContext, PopoverRegisterBag } from "./context.svelte"
|
|
19
|
+
import MainTreeProvider from "../internal/MainTreeProvider.svelte"
|
|
20
|
+
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
21
|
+
import { getOwnerDocument } from "../utils/owner.js"
|
|
22
|
+
|
|
23
|
+
let { element = $bindable(), ...theirProps }: PopoverGroupProps = $props()
|
|
24
|
+
|
|
25
|
+
const popovers = $state<PopoverRegisterBag[]>([])
|
|
26
|
+
|
|
27
|
+
const unregisterPopover = (registerBag: PopoverRegisterBag) => {
|
|
28
|
+
const idx = popovers.indexOf(registerBag)
|
|
29
|
+
if (idx !== -1) popovers.splice(idx, 1)
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
const registerPopover = (registerBag: PopoverRegisterBag) => {
|
|
33
|
+
popovers.push(registerBag)
|
|
34
|
+
return () => unregisterPopover(registerBag)
|
|
30
35
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
|
|
37
|
+
const isFocusWithinPopoverGroup = () => {
|
|
38
|
+
const ownerDocument = getOwnerDocument(element)
|
|
39
|
+
if (!ownerDocument) return false
|
|
40
|
+
const el = ownerDocument.activeElement
|
|
41
|
+
|
|
42
|
+
if (element?.contains(element)) return true
|
|
43
|
+
|
|
44
|
+
// Check if the focus is in one of the button or panel elements. This is important in case you are rendering inside a Portal.
|
|
45
|
+
return popovers.some((bag) => {
|
|
46
|
+
return (
|
|
47
|
+
ownerDocument!.getElementById(bag.buttonId!)?.contains(el) ||
|
|
48
|
+
ownerDocument!.getElementById(bag.panelId!)?.contains(el)
|
|
49
|
+
)
|
|
50
|
+
})
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const closeOthers = (buttonId: string) => {
|
|
54
|
+
for (const popover of popovers) {
|
|
55
|
+
if (popover.buttonId !== buttonId) popover.close()
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
setContext<PopoverGroupContext>("PopoverGroupContext", {
|
|
60
|
+
registerPopover,
|
|
61
|
+
unregisterPopover,
|
|
62
|
+
isFocusWithinPopoverGroup,
|
|
63
|
+
closeOthers,
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
const slot = {} satisfies GroupRenderPropArg
|
|
39
67
|
</script>
|
|
40
68
|
|
|
41
69
|
<MainTreeProvider>
|
|
42
|
-
<ElementOrComponent {theirProps} slots={slot} defaultTag={DEFAULT_GROUP_TAG} name="PopoverGroup" bind:
|
|
70
|
+
<ElementOrComponent {theirProps} slots={slot} defaultTag={DEFAULT_GROUP_TAG} name="PopoverGroup" bind:element />
|
|
43
71
|
</MainTreeProvider>
|
|
@@ -1,31 +1,8 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare const DEFAULT_GROUP_TAG: "div";
|
|
3
3
|
type GroupRenderPropArg = {};
|
|
4
|
-
type
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
as?: TTag | undefined;
|
|
9
|
-
} & (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) & {
|
|
10
|
-
children?: import("svelte").Snippet<[{
|
|
11
|
-
slot: GroupRenderPropArg;
|
|
12
|
-
props: Record<string, any>;
|
|
13
|
-
}]> | undefined;
|
|
14
|
-
class?: string | ((bag: GroupRenderPropArg) => string) | null | undefined;
|
|
15
|
-
ref?: HTMLElement;
|
|
16
|
-
};
|
|
17
|
-
events(): {};
|
|
18
|
-
slots(): {};
|
|
19
|
-
bindings(): "ref";
|
|
20
|
-
exports(): {};
|
|
21
|
-
}
|
|
22
|
-
interface $$IsomorphicComponent {
|
|
23
|
-
new <TTag extends ElementType = typeof DEFAULT_GROUP_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']>> & {
|
|
24
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
25
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
26
|
-
<TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
27
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
28
|
-
}
|
|
29
|
-
declare const PopoverGroup: $$IsomorphicComponent;
|
|
30
|
-
type PopoverGroup<TTag extends ElementType = typeof DEFAULT_GROUP_TAG> = InstanceType<typeof PopoverGroup<TTag>>;
|
|
4
|
+
export type PopoverGroupProps = Props<typeof DEFAULT_GROUP_TAG, GroupRenderPropArg, {
|
|
5
|
+
element?: HTMLElement;
|
|
6
|
+
}>;
|
|
7
|
+
declare const PopoverGroup: import("svelte").Component<PopoverGroupProps, {}, "element">;
|
|
31
8
|
export default PopoverGroup;
|