@pzerelles/headlessui-svelte 2.1.2-next.6 → 2.1.2-next.60
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 +16 -19
- package/dist/button/Button.svelte.d.ts +8 -36
- package/dist/button/index.d.ts +1 -1
- package/dist/button/index.js +1 -1
- package/dist/checkbox/Checkbox.svelte +31 -27
- package/dist/checkbox/Checkbox.svelte.d.ts +17 -38
- package/dist/checkbox/index.d.ts +1 -1
- package/dist/checkbox/index.js +1 -1
- package/dist/close-button/CloseButton.svelte +4 -7
- package/dist/close-button/CloseButton.svelte.d.ts +3 -46
- package/dist/close-button/index.d.ts +1 -0
- package/dist/close-button/index.js +1 -0
- package/dist/data-interactive/DataInteractive.svelte +6 -22
- package/dist/data-interactive/DataInteractive.svelte.d.ts +9 -34
- package/dist/data-interactive/index.d.ts +1 -1
- package/dist/data-interactive/index.js +1 -1
- package/dist/description/Description.svelte +29 -24
- package/dist/description/Description.svelte.d.ts +9 -30
- package/dist/description/context.svelte.js +14 -16
- package/dist/description/index.d.ts +1 -1
- package/dist/dialog/Dialog.svelte +25 -30
- package/dist/dialog/Dialog.svelte.d.ts +7 -45
- package/dist/dialog/DialogBackdrop.svelte +11 -14
- package/dist/dialog/DialogBackdrop.svelte.d.ts +8 -33
- package/dist/dialog/DialogPanel.svelte +30 -19
- package/dist/dialog/DialogPanel.svelte.d.ts +8 -34
- package/dist/dialog/DialogTitle.svelte +17 -8
- package/dist/dialog/DialogTitle.svelte.d.ts +9 -30
- package/dist/dialog/InternalDialog.svelte +38 -34
- package/dist/dialog/InternalDialog.svelte.d.ts +3 -41
- package/dist/dialog/context.svelte.js +2 -2
- package/dist/dialog/index.d.ts +4 -4
- package/dist/dialog/index.js +4 -4
- package/dist/disclosure/Disclosure.svelte +61 -0
- package/dist/disclosure/Disclosure.svelte.d.ts +14 -0
- package/dist/disclosure/DisclosureButton.svelte +191 -0
- package/dist/disclosure/DisclosureButton.svelte.d.ts +19 -0
- package/dist/disclosure/DisclosurePanel.svelte +99 -0
- package/dist/disclosure/DisclosurePanel.svelte.d.ts +16 -0
- package/dist/disclosure/context.svelte.d.ts +32 -0
- package/dist/disclosure/context.svelte.js +94 -0
- package/dist/disclosure/index.d.ts +3 -0
- package/dist/disclosure/index.js +3 -0
- package/dist/field/Field.svelte +27 -26
- package/dist/field/Field.svelte.d.ts +7 -34
- package/dist/field/index.d.ts +1 -1
- package/dist/fieldset/Fieldset.svelte +21 -20
- package/dist/fieldset/Fieldset.svelte.d.ts +8 -35
- package/dist/fieldset/index.d.ts +1 -1
- package/dist/focus-trap/FocusTrap.svelte +29 -36
- package/dist/focus-trap/FocusTrap.svelte.d.ts +8 -38
- package/dist/hooks/use-controllable.svelte.js +3 -2
- package/dist/hooks/use-did-element-move.svelte.js +5 -10
- package/dist/hooks/use-disabled.d.ts +6 -1
- package/dist/hooks/use-disabled.js +10 -5
- package/dist/hooks/use-element-size.svelte.js +1 -1
- package/dist/hooks/use-event-listener.svelte.d.ts +1 -1
- package/dist/hooks/use-event-listener.svelte.js +3 -1
- package/dist/hooks/use-focus-ring.svelte.js +1 -1
- package/dist/hooks/use-inert-others.svelte.js +10 -10
- package/dist/hooks/use-is-top-layer.svelte.js +2 -2
- package/dist/hooks/use-resolve-button-type.svelte.js +0 -1
- package/dist/hooks/use-root-containers.svelte.d.ts +2 -2
- package/dist/hooks/use-root-containers.svelte.js +7 -6
- package/dist/hooks/use-tab-direction.svelte.js +1 -1
- package/dist/hooks/use-transition.svelte.d.ts +1 -0
- package/dist/hooks/use-transition.svelte.js +32 -7
- package/dist/index.d.ts +11 -2
- package/dist/index.js +11 -2
- package/dist/input/Input.svelte +28 -21
- package/dist/input/Input.svelte.d.ts +16 -33
- package/dist/input/index.d.ts +1 -1
- package/dist/input/index.js +1 -1
- package/dist/internal/FloatingProvider.svelte +17 -0
- package/dist/internal/FloatingProvider.svelte.d.ts +8 -0
- package/dist/internal/FocusSentinel.svelte +33 -32
- package/dist/internal/FocusSentinel.svelte.d.ts +4 -18
- package/dist/internal/ForcePortalRoot.svelte.d.ts +4 -18
- package/dist/internal/FormFields.svelte +18 -13
- package/dist/internal/FormFields.svelte.d.ts +4 -18
- package/dist/internal/FormFieldsProvider.svelte +17 -0
- package/dist/internal/FormFieldsProvider.svelte.d.ts +7 -0
- package/dist/internal/FormResolver.svelte +6 -2
- package/dist/internal/FormResolver.svelte.d.ts +4 -18
- package/dist/internal/Hidden.svelte +10 -10
- package/dist/internal/Hidden.svelte.d.ts +6 -33
- package/dist/internal/MainTreeProvider.svelte +2 -2
- package/dist/internal/MainTreeProvider.svelte.d.ts +4 -18
- package/dist/internal/Portal.svelte.d.ts +4 -18
- package/dist/internal/floating-provider.svelte.d.ts +3 -0
- package/dist/internal/floating-provider.svelte.js +206 -0
- package/dist/internal/floating.svelte.d.ts +47 -23
- package/dist/internal/floating.svelte.js +90 -272
- package/dist/internal/form-fields.svelte.d.ts +10 -0
- package/dist/internal/form-fields.svelte.js +23 -0
- package/dist/internal/frozen.svelte.js +1 -1
- package/dist/label/Label.svelte +15 -11
- package/dist/label/Label.svelte.d.ts +8 -33
- package/dist/label/context.svelte.js +1 -1
- package/dist/label/index.d.ts +1 -1
- package/dist/legend/Legend.svelte +22 -15
- package/dist/legend/Legend.svelte.d.ts +10 -34
- package/dist/listbox/Listbox.svelte +79 -151
- package/dist/listbox/Listbox.svelte.d.ts +16 -91
- package/dist/listbox/ListboxButton.svelte +31 -29
- package/dist/listbox/ListboxButton.svelte.d.ts +8 -38
- package/dist/listbox/ListboxOption.svelte +40 -27
- package/dist/listbox/ListboxOption.svelte.d.ts +16 -32
- package/dist/listbox/ListboxOptions.svelte +126 -72
- package/dist/listbox/ListboxOptions.svelte.d.ts +8 -43
- package/dist/listbox/ListboxSelectedOption.svelte +24 -26
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +14 -39
- package/dist/listbox/context.svelte.d.ts +76 -0
- package/dist/listbox/context.svelte.js +36 -0
- package/dist/listbox/index.d.ts +5 -5
- package/dist/listbox/index.js +4 -4
- package/dist/menu/Menu.svelte +22 -266
- package/dist/menu/Menu.svelte.d.ts +7 -37
- package/dist/menu/MenuButton.svelte +29 -24
- package/dist/menu/MenuButton.svelte.d.ts +8 -39
- package/dist/menu/MenuHeading.svelte +12 -16
- package/dist/menu/MenuHeading.svelte.d.ts +7 -36
- package/dist/menu/MenuItem.svelte +18 -23
- package/dist/menu/MenuItem.svelte.d.ts +9 -39
- package/dist/menu/MenuItems.svelte +33 -34
- package/dist/menu/MenuItems.svelte.d.ts +8 -43
- package/dist/menu/MenuSection.svelte +9 -12
- package/dist/menu/MenuSection.svelte.d.ts +7 -33
- package/dist/menu/MenuSeparator.svelte +9 -12
- package/dist/menu/MenuSeparator.svelte.d.ts +7 -33
- package/dist/menu/context.svelte.d.ts +2 -1
- package/dist/menu/context.svelte.js +212 -2
- package/dist/menu/index.d.ts +7 -7
- package/dist/menu/index.js +3 -3
- package/dist/popover/Popover.svelte +231 -0
- package/dist/popover/Popover.svelte.d.ts +15 -0
- package/dist/popover/PopoverBackdrop.svelte +83 -0
- package/dist/popover/PopoverBackdrop.svelte.d.ts +17 -0
- package/dist/popover/PopoverButton.svelte +324 -0
- package/dist/popover/PopoverButton.svelte.d.ts +21 -0
- package/dist/popover/PopoverGroup.svelte +66 -0
- package/dist/popover/PopoverGroup.svelte.d.ts +9 -0
- package/dist/popover/PopoverPanel.svelte +359 -0
- package/dist/popover/PopoverPanel.svelte.d.ts +22 -0
- package/dist/popover/context.svelte.d.ts +51 -0
- package/dist/popover/context.svelte.js +108 -0
- package/dist/popover/index.d.ts +5 -0
- package/dist/popover/index.js +5 -0
- package/dist/portal/InternalPortal.svelte +18 -19
- package/dist/portal/InternalPortal.svelte.d.ts +7 -34
- package/dist/portal/Portal.svelte +7 -6
- package/dist/portal/Portal.svelte.d.ts +3 -22
- package/dist/portal/PortalGroup.svelte +6 -14
- package/dist/portal/PortalGroup.svelte.d.ts +5 -34
- package/dist/portal/PortalWrapper.svelte +10 -0
- package/dist/portal/PortalWrapper.svelte.d.ts +9 -0
- package/dist/radio-group/Radio.svelte +142 -0
- package/dist/radio-group/Radio.svelte.d.ts +35 -0
- package/dist/radio-group/RadioGroup.svelte +222 -0
- package/dist/radio-group/RadioGroup.svelte.d.ts +34 -0
- package/dist/radio-group/RadioOption.svelte +145 -0
- package/dist/radio-group/RadioOption.svelte.d.ts +37 -0
- package/dist/radio-group/contest.svelte.d.ts +30 -0
- package/dist/radio-group/contest.svelte.js +40 -0
- package/dist/radio-group/index.d.ts +3 -0
- package/dist/radio-group/index.js +3 -0
- package/dist/select/Select.svelte +112 -0
- package/dist/select/Select.svelte.d.ts +21 -0
- package/dist/select/index.d.ts +1 -0
- package/dist/select/index.js +1 -0
- package/dist/switch/Switch.svelte +27 -28
- package/dist/switch/Switch.svelte.d.ts +9 -42
- package/dist/switch/SwitchGroup.svelte +5 -5
- package/dist/switch/SwitchGroup.svelte.d.ts +8 -30
- package/dist/switch/index.d.ts +1 -1
- package/dist/switch/index.js +1 -1
- package/dist/tabs/Tab.svelte +28 -31
- package/dist/tabs/Tab.svelte.d.ts +8 -36
- package/dist/tabs/TabGroup.svelte +42 -264
- package/dist/tabs/TabGroup.svelte.d.ts +7 -57
- package/dist/tabs/TabList.svelte +13 -16
- package/dist/tabs/TabList.svelte.d.ts +8 -31
- package/dist/tabs/TabPanel.svelte +20 -20
- package/dist/tabs/TabPanel.svelte.d.ts +8 -38
- package/dist/tabs/TabPanels.svelte +11 -9
- package/dist/tabs/TabPanels.svelte.d.ts +8 -30
- package/dist/tabs/context.svelte.d.ts +31 -0
- package/dist/tabs/context.svelte.js +134 -0
- package/dist/tabs/index.d.ts +5 -5
- package/dist/tabs/index.js +4 -4
- package/dist/textarea/Textarea.svelte +24 -20
- package/dist/textarea/Textarea.svelte.d.ts +17 -29
- package/dist/textarea/index.d.ts +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/transition/InternalTransitionChild.svelte +36 -22
- package/dist/transition/InternalTransitionChild.svelte.d.ts +6 -37
- package/dist/transition/Transition.svelte +16 -17
- package/dist/transition/Transition.svelte.d.ts +8 -38
- package/dist/transition/TransitionChild.svelte +13 -12
- package/dist/transition/TransitionChild.svelte.d.ts +11 -38
- package/dist/transition/context.svelte.js +11 -11
- package/dist/transition/index.d.ts +2 -2
- package/dist/transition/index.js +2 -2
- package/dist/utils/DisabledProvider.svelte +10 -0
- package/dist/utils/DisabledProvider.svelte.d.ts +8 -0
- package/dist/utils/ElementOrComponent.svelte +58 -17
- package/dist/utils/ElementOrComponent.svelte.d.ts +19 -30
- package/dist/utils/StableCollection.svelte.d.ts +4 -18
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +32 -0
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte.d.ts +8 -0
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +94 -0
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte.d.ts +26 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.d.ts +6 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.js +158 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.d.ts +11 -0
- package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.js +53 -0
- package/dist/utils/floating-ui/svelte/hooks/useId.svelte.d.ts +9 -0
- package/dist/utils/floating-ui/svelte/hooks/useId.svelte.js +28 -0
- package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.d.ts +23 -0
- package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.js +72 -0
- package/dist/utils/floating-ui/svelte/index.d.ts +5 -0
- package/dist/utils/floating-ui/svelte/index.js +5 -0
- package/dist/utils/floating-ui/svelte/inner.svelte.d.ts +83 -0
- package/dist/utils/floating-ui/svelte/inner.svelte.js +178 -0
- package/dist/utils/floating-ui/svelte/types.d.ts +114 -0
- package/dist/utils/floating-ui/svelte/utils/createPubSub.d.ts +5 -0
- package/dist/utils/floating-ui/svelte/utils/createPubSub.js +14 -0
- package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.d.ts +2 -0
- package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.js +13 -0
- package/dist/utils/floating-ui/svelte/utils/log.d.ts +2 -0
- package/dist/utils/floating-ui/svelte/utils/log.js +19 -0
- package/dist/utils/floating-ui/svelte/utils.d.ts +19 -0
- package/dist/utils/floating-ui/svelte/utils.js +136 -0
- package/dist/utils/floating-ui/svelte-dom/arrow.d.ts +22 -0
- package/dist/utils/floating-ui/svelte-dom/arrow.js +29 -0
- package/dist/utils/floating-ui/svelte-dom/index.d.ts +2 -0
- package/dist/utils/floating-ui/svelte-dom/index.js +2 -0
- package/dist/utils/floating-ui/svelte-dom/types.d.ts +80 -0
- package/dist/utils/floating-ui/svelte-dom/types.js +3 -0
- package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.d.ts +6 -0
- package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.js +183 -0
- package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.d.ts +1 -0
- package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.js +50 -0
- package/dist/utils/floating-ui/svelte-dom/utils/getDPR.d.ts +1 -0
- package/dist/utils/floating-ui/svelte-dom/utils/getDPR.js +7 -0
- package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.d.ts +1 -0
- package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.js +5 -0
- package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.d.ts +4 -0
- package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.js +7 -0
- package/dist/utils/id.d.ts +1 -1
- package/dist/utils/id.js +1 -1
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.js +3 -0
- package/dist/utils/state.js +4 -4
- package/dist/utils/style.d.ts +2 -0
- package/dist/utils/style.js +6 -0
- package/dist/utils/types.d.ts +13 -19
- package/package.json +53 -53
- package/dist/combobox/Combobox.svelte +0 -53
- package/dist/combobox/Combobox.svelte.d.ts +0 -50
- package/dist/internal/HoistFormFields.svelte +0 -14
- package/dist/internal/HoistFormFields.svelte.d.ts +0 -21
- package/dist/internal/id.d.ts +0 -8
- package/dist/internal/id.js +0 -11
- package/dist/listbox/ListboxStates.d.ts +0 -12
- package/dist/listbox/ListboxStates.js +0 -15
- package/dist/utils/Generic.svelte +0 -56
- package/dist/utils/Generic.svelte.d.ts +0 -35
- package/dist/utils/alternative-types.d.ts +0 -21
- /package/dist/utils/{alternative-types.js → floating-ui/svelte/types.js} +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { disposables } from "../utils/disposables.js"
|
|
3
3
|
import { objectToFormEntries } from "../utils/form.js"
|
|
4
4
|
import FormResolver from "./FormResolver.svelte"
|
|
5
|
-
import
|
|
5
|
+
import { hoistFormFields } from "./form-fields.svelte.js"
|
|
6
6
|
import Hidden, { HiddenFeatures } from "./Hidden.svelte"
|
|
7
7
|
import { compact } from "../utils/object.js"
|
|
8
8
|
|
|
@@ -29,25 +29,30 @@
|
|
|
29
29
|
|
|
30
30
|
return d.addEventListener(form, "reset", onReset)
|
|
31
31
|
})
|
|
32
|
-
</script>
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<Hidden
|
|
38
|
-
features={HiddenFeatures.Hidden}
|
|
39
|
-
{...compact({
|
|
33
|
+
const fields = $derived(
|
|
34
|
+
objectToFormEntries(data).map(([name, value]) =>
|
|
35
|
+
compact({
|
|
40
36
|
key: name,
|
|
41
37
|
as: "input",
|
|
42
38
|
type: "hidden",
|
|
43
|
-
hidden: true,
|
|
44
|
-
readOnly: true,
|
|
45
39
|
form: formId,
|
|
46
40
|
disabled,
|
|
47
41
|
name,
|
|
48
42
|
value,
|
|
49
43
|
...overrides,
|
|
50
|
-
})
|
|
51
|
-
|
|
44
|
+
})
|
|
45
|
+
)
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
const hoisted = hoistFormFields(formFields)
|
|
49
|
+
</script>
|
|
50
|
+
|
|
51
|
+
{#snippet formFields()}
|
|
52
|
+
<FormResolver setForm={(value) => (form = value)} {formId} />
|
|
53
|
+
{#each fields as props}
|
|
54
|
+
<Hidden features={HiddenFeatures.Hidden} {...props} />
|
|
52
55
|
{/each}
|
|
53
|
-
|
|
56
|
+
{/snippet}
|
|
57
|
+
|
|
58
|
+
{#if !hoisted}{@render formFields()}{/if}
|
|
@@ -1,24 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
-
$$bindings?: Bindings;
|
|
4
|
-
} & Exports;
|
|
5
|
-
(internal: unknown, props: Props & {
|
|
6
|
-
$$events?: Events;
|
|
7
|
-
$$slots?: Slots;
|
|
8
|
-
}): Exports & {
|
|
9
|
-
$set?: any;
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
declare const FormFields: $$__sveltets_2_IsomorphicComponent<{
|
|
1
|
+
type $$ComponentProps = {
|
|
15
2
|
data: Record<string, any>;
|
|
16
3
|
overrides?: Record<string, any>;
|
|
17
4
|
form?: string;
|
|
18
5
|
disabled?: boolean;
|
|
19
6
|
onReset?: (e: Event) => void;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
type FormFields = InstanceType<typeof FormFields>;
|
|
7
|
+
};
|
|
8
|
+
declare const FormFields: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
9
|
+
type FormFields = ReturnType<typeof FormFields>;
|
|
24
10
|
export default FormFields;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from "svelte"
|
|
3
|
+
import Hidden, { HiddenFeatures } from "./Hidden.svelte"
|
|
4
|
+
import { createFormFieldsContext } from "./form-fields.svelte.js"
|
|
5
|
+
|
|
6
|
+
const { children }: { children?: Snippet } = $props()
|
|
7
|
+
|
|
8
|
+
const context = createFormFieldsContext()
|
|
9
|
+
const { fields } = $derived(context)
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
{#if children}{@render children()}{/if}
|
|
13
|
+
<Hidden features={HiddenFeatures.Hidden}>
|
|
14
|
+
{#each fields as field}
|
|
15
|
+
{@render field()}
|
|
16
|
+
{/each}
|
|
17
|
+
</Hidden>
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
type $$ComponentProps = {
|
|
3
|
+
children?: Snippet;
|
|
4
|
+
};
|
|
5
|
+
declare const FormFieldsProvider: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type FormFieldsProvider = ReturnType<typeof FormFieldsProvider>;
|
|
7
|
+
export default FormFieldsProvider;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
}
|
|
12
12
|
})
|
|
13
13
|
|
|
14
|
-
let element = $state<
|
|
14
|
+
let element = $state<HTMLElement>()
|
|
15
15
|
|
|
16
16
|
onMount(() => {
|
|
17
17
|
if (!element) return
|
|
@@ -21,5 +21,9 @@
|
|
|
21
21
|
</script>
|
|
22
22
|
|
|
23
23
|
{#if !formId}
|
|
24
|
-
<Hidden features={HiddenFeatures.Hidden}
|
|
24
|
+
<Hidden asChild features={HiddenFeatures.Hidden}>
|
|
25
|
+
{#snippet children({ props })}
|
|
26
|
+
<input {...props} type="hidden" hidden readonly bind:this={element} />
|
|
27
|
+
{/snippet}
|
|
28
|
+
</Hidden>
|
|
25
29
|
{/if}
|
|
@@ -1,21 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
|
|
3
|
-
$$bindings?: Bindings;
|
|
4
|
-
} & Exports;
|
|
5
|
-
(internal: unknown, props: Props & {
|
|
6
|
-
$$events?: Events;
|
|
7
|
-
$$slots?: Slots;
|
|
8
|
-
}): Exports & {
|
|
9
|
-
$set?: any;
|
|
10
|
-
$on?: any;
|
|
11
|
-
};
|
|
12
|
-
z_$$bindings?: Bindings;
|
|
13
|
-
}
|
|
14
|
-
declare const FormResolver: $$__sveltets_2_IsomorphicComponent<{
|
|
1
|
+
type $$ComponentProps = {
|
|
15
2
|
setForm: (form: HTMLFormElement) => void;
|
|
16
3
|
formId?: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
type FormResolver = InstanceType<typeof FormResolver>;
|
|
4
|
+
};
|
|
5
|
+
declare const FormResolver: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
6
|
+
type FormResolver = ReturnType<typeof FormResolver>;
|
|
21
7
|
export default FormResolver;
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
2
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
3
|
-
import type {
|
|
3
|
+
import type { Props } from "../utils/types.js"
|
|
4
4
|
import { HiddenFeatures } from "./HiddenFeatures.js"
|
|
5
|
+
import type { SvelteHTMLElements } from "svelte/elements"
|
|
5
6
|
|
|
6
7
|
export * from "./HiddenFeatures.js"
|
|
7
8
|
|
|
8
9
|
const DEFAULT_VISUALLY_HIDDEN_TAG = "span" as const
|
|
9
10
|
|
|
10
|
-
type HiddenRenderPropArg = {}
|
|
11
|
+
export type HiddenRenderPropArg = {}
|
|
11
12
|
type HiddenPropsWeControl = never
|
|
12
|
-
export type HiddenProps
|
|
13
|
-
|
|
13
|
+
export type HiddenProps = Props<
|
|
14
|
+
typeof DEFAULT_VISUALLY_HIDDEN_TAG,
|
|
14
15
|
HiddenRenderPropArg,
|
|
15
|
-
|
|
16
|
-
{ features?: HiddenFeatures }
|
|
16
|
+
{ element?: HTMLElement; features?: HiddenFeatures }
|
|
17
17
|
>
|
|
18
18
|
</script>
|
|
19
19
|
|
|
20
|
-
<script lang="ts"
|
|
21
|
-
let {
|
|
20
|
+
<script lang="ts">
|
|
21
|
+
let { element = $bindable(), features = HiddenFeatures.None, ...theirProps }: HiddenProps = $props()
|
|
22
22
|
|
|
23
23
|
let ourProps = {
|
|
24
24
|
"aria-hidden":
|
|
25
25
|
(features & HiddenFeatures.Focusable) === HiddenFeatures.Focusable
|
|
26
26
|
? true
|
|
27
|
-
: (theirProps["aria-hidden"
|
|
27
|
+
: (theirProps["aria-hidden"] ?? undefined),
|
|
28
28
|
hidden: (features & HiddenFeatures.Hidden) === HiddenFeatures.Hidden ? true : undefined,
|
|
29
29
|
style: [
|
|
30
30
|
"position: fixed",
|
|
@@ -46,4 +46,4 @@
|
|
|
46
46
|
}
|
|
47
47
|
</script>
|
|
48
48
|
|
|
49
|
-
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_VISUALLY_HIDDEN_TAG} name="Hidden" bind:
|
|
49
|
+
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_VISUALLY_HIDDEN_TAG} name="Hidden" bind:element />
|
|
@@ -1,39 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
import { HiddenFeatures } from "./HiddenFeatures.js";
|
|
3
3
|
export * from "./HiddenFeatures.js";
|
|
4
4
|
declare const DEFAULT_VISUALLY_HIDDEN_TAG: "span";
|
|
5
|
-
type HiddenRenderPropArg = {};
|
|
6
|
-
type
|
|
7
|
-
|
|
5
|
+
export type HiddenRenderPropArg = {};
|
|
6
|
+
export type HiddenProps = Props<typeof DEFAULT_VISUALLY_HIDDEN_TAG, HiddenRenderPropArg, {
|
|
7
|
+
element?: HTMLElement;
|
|
8
8
|
features?: HiddenFeatures;
|
|
9
9
|
}>;
|
|
10
|
-
declare
|
|
11
|
-
|
|
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(): {};
|
|
27
|
-
}
|
|
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']>;
|
|
36
|
-
}
|
|
37
|
-
declare const Hidden: $$IsomorphicComponent;
|
|
38
|
-
type Hidden<TTag extends ElementType = typeof DEFAULT_VISUALLY_HIDDEN_TAG> = InstanceType<typeof Hidden<TTag>>;
|
|
10
|
+
declare const Hidden: import("svelte").Component<HiddenProps, {}, "element">;
|
|
11
|
+
type Hidden = ReturnType<typeof Hidden>;
|
|
39
12
|
export default Hidden;
|
|
@@ -93,6 +93,6 @@
|
|
|
93
93
|
</script>
|
|
94
94
|
|
|
95
95
|
{#if children}{@render children()}{/if}
|
|
96
|
-
{#if resolvedMainTreeNode === null}
|
|
97
|
-
<Hidden features={HiddenFeatures.Hidden} bind:
|
|
96
|
+
{#if resolvedMainTreeNode.node === null}
|
|
97
|
+
<Hidden features={HiddenFeatures.Hidden} bind:element={el} />
|
|
98
98
|
{/if}
|
|
@@ -8,24 +8,10 @@ export declare function useMainTreeNode(options?: {
|
|
|
8
8
|
fallbackMainTreeNode?: HTMLElement | null;
|
|
9
9
|
}): MainTreeContext;
|
|
10
10
|
import { type Snippet } from "svelte";
|
|
11
|
-
|
|
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<{
|
|
11
|
+
type $$ComponentProps = {
|
|
25
12
|
children: Snippet;
|
|
26
13
|
node?: HTMLElement | null;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
type MainTreeProvider = InstanceType<typeof MainTreeProvider>;
|
|
14
|
+
};
|
|
15
|
+
declare const MainTreeProvider: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
16
|
+
type MainTreeProvider = ReturnType<typeof MainTreeProvider>;
|
|
31
17
|
export default MainTreeProvider;
|
|
@@ -1,22 +1,8 @@
|
|
|
1
1
|
import { type Snippet } from "svelte";
|
|
2
|
-
|
|
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 Portal: $$__sveltets_2_IsomorphicComponent<{
|
|
2
|
+
type $$ComponentProps = {
|
|
16
3
|
target: HTMLElement;
|
|
17
4
|
children: Snippet;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
type Portal = InstanceType<typeof Portal>;
|
|
5
|
+
};
|
|
6
|
+
declare const Portal: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
7
|
+
type Portal = ReturnType<typeof Portal>;
|
|
22
8
|
export default Portal;
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { setContext } from "svelte";
|
|
2
|
+
import { useFixScrollingPixel, useResolvedConfig, } from "./floating.svelte.js";
|
|
3
|
+
import { autoUpdate, flip as flipMiddleware, inner as innerMiddleware, offset as offsetMiddleware, shift as shiftMiddleware, size as sizeMiddleware, useFloating, useInnerOffset, useInteractions, } from "../utils/floating-ui/svelte/index.js";
|
|
4
|
+
export const useFloatingProvider = (options = { enabled: true }) => {
|
|
5
|
+
const { enabled } = $derived(options);
|
|
6
|
+
// TODO: Make this a config part of the `config`. Just need to decide on a name.
|
|
7
|
+
const MINIMUM_ITEMS_VISIBLE = 4;
|
|
8
|
+
let config = $state(null);
|
|
9
|
+
let innerOffset = $state(0);
|
|
10
|
+
const setInnerOffset = (offset) => (innerOffset = typeof offset === "function" ? offset(innerOffset) : offset);
|
|
11
|
+
const overflowRef = $state({ current: null });
|
|
12
|
+
let floatingEl = $state(null);
|
|
13
|
+
const setFloatingElement = (element) => (floatingEl = element ?? null);
|
|
14
|
+
useFixScrollingPixel({
|
|
15
|
+
get element() {
|
|
16
|
+
return floatingEl;
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
const isEnabled = $derived(enabled && config !== null && floatingEl !== null);
|
|
20
|
+
const resolvedConfig = useResolvedConfig({
|
|
21
|
+
get config() {
|
|
22
|
+
return config;
|
|
23
|
+
},
|
|
24
|
+
get element() {
|
|
25
|
+
return floatingEl;
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
const { to: placement = "bottom", gap = 0, offset = 0, padding = 0, inner } = $derived(resolvedConfig);
|
|
29
|
+
const [to, align = "center"] = $derived(placement.split(" "));
|
|
30
|
+
// Reset
|
|
31
|
+
$effect(() => {
|
|
32
|
+
if (!isEnabled)
|
|
33
|
+
return;
|
|
34
|
+
innerOffset = 0;
|
|
35
|
+
});
|
|
36
|
+
const middleware = $derived([
|
|
37
|
+
// - The `mainAxis` is set to `gap` which defines the gap between the panel and the
|
|
38
|
+
// trigger/reference.
|
|
39
|
+
// - The `crossAxis` is set to `offset` which nudges the panel from its original position.
|
|
40
|
+
//
|
|
41
|
+
// When we are showing the panel on top of the selected item, we don't want a gap between the
|
|
42
|
+
// reference and the panel, therefore setting the `mainAxis` to `0`.
|
|
43
|
+
offsetMiddleware({
|
|
44
|
+
mainAxis: to === "selection" ? 0 : gap,
|
|
45
|
+
crossAxis: offset,
|
|
46
|
+
}),
|
|
47
|
+
// When the panel overflows the viewport, we will try to nudge the panel to the other side to
|
|
48
|
+
// ensure it's not clipped. We use the `padding` to define the minimum space between the
|
|
49
|
+
// panel and the viewport.
|
|
50
|
+
shiftMiddleware({ padding }),
|
|
51
|
+
// The `flip` middleware will swap the `placement` of the panel if there is not enough room.
|
|
52
|
+
// This is not compatible with the `inner` middleware (which is only enabled when `to` is set
|
|
53
|
+
// to "selection").
|
|
54
|
+
to !== "selection" && flipMiddleware({ padding }),
|
|
55
|
+
// The `inner` middleware will ensure the panel is always fully visible on screen and
|
|
56
|
+
// positioned on top of the reference and moved to the currently selected item.
|
|
57
|
+
to === "selection" && inner
|
|
58
|
+
? innerMiddleware({
|
|
59
|
+
...inner,
|
|
60
|
+
padding, // For overflow detection
|
|
61
|
+
overflowRef,
|
|
62
|
+
offset: innerOffset,
|
|
63
|
+
minItemsVisible: MINIMUM_ITEMS_VISIBLE,
|
|
64
|
+
referenceOverflowThreshold: padding,
|
|
65
|
+
onFallbackChange(fallback) {
|
|
66
|
+
if (!fallback)
|
|
67
|
+
return;
|
|
68
|
+
const parent = context.elements.floating;
|
|
69
|
+
if (!parent)
|
|
70
|
+
return;
|
|
71
|
+
const scrollPaddingBottom = parseFloat(getComputedStyle(parent).scrollPaddingBottom) || 0;
|
|
72
|
+
// We want at least X visible items, but if there are less than X items in the list,
|
|
73
|
+
// we want to show as many as possible.
|
|
74
|
+
let missing = Math.min(MINIMUM_ITEMS_VISIBLE, parent.childElementCount);
|
|
75
|
+
let elementHeight = 0;
|
|
76
|
+
let elementAmountVisible = 0;
|
|
77
|
+
for (const child of context.elements.floating?.childNodes ?? []) {
|
|
78
|
+
if (child instanceof HTMLElement) {
|
|
79
|
+
const childTop = child.offsetTop;
|
|
80
|
+
// It can be that the child is fully visible, but we also want to keep the scroll
|
|
81
|
+
// padding into account to ensure the UI looks good. Therefore we fake that the
|
|
82
|
+
// bottom of the child is actually `scrollPaddingBottom` amount of pixels lower.
|
|
83
|
+
const childBottom = childTop + child.clientHeight + scrollPaddingBottom;
|
|
84
|
+
const parentTop = parent.scrollTop;
|
|
85
|
+
const parentBottom = parentTop + parent.clientHeight;
|
|
86
|
+
// Figure out if the child is fully visible in the scroll parent.
|
|
87
|
+
if (childTop >= parentTop && childBottom <= parentBottom) {
|
|
88
|
+
missing--;
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// Not fully visible, so we will use this child to calculate the height of
|
|
92
|
+
// each item. We will also use this to calculate how much of the item is
|
|
93
|
+
// already visible.
|
|
94
|
+
elementAmountVisible = Math.max(0, Math.min(childBottom, parentBottom) - Math.max(childTop, parentTop));
|
|
95
|
+
elementHeight = child.clientHeight;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// There are fewer visible items than we want, so we will try to nudge the offset
|
|
101
|
+
// to show more items.
|
|
102
|
+
if (missing >= 1) {
|
|
103
|
+
setInnerOffset((existingOffset) => {
|
|
104
|
+
const newInnerOffset = elementHeight * missing - // `missing` amount of `elementHeight`
|
|
105
|
+
elementAmountVisible + // The amount of the last item that is visible
|
|
106
|
+
scrollPaddingBottom; // The scroll padding to ensure the UI looks good
|
|
107
|
+
// Nudged enough already, no need to continue
|
|
108
|
+
if (existingOffset >= newInnerOffset) {
|
|
109
|
+
return existingOffset;
|
|
110
|
+
}
|
|
111
|
+
return newInnerOffset;
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
})
|
|
116
|
+
: null,
|
|
117
|
+
// The `size` middleware will ensure the panel is never bigger than the viewport minus the
|
|
118
|
+
// provided `padding` that we want.
|
|
119
|
+
sizeMiddleware({
|
|
120
|
+
padding,
|
|
121
|
+
apply({ availableWidth, availableHeight, elements }) {
|
|
122
|
+
Object.assign(elements.floating.style, {
|
|
123
|
+
overflow: "auto",
|
|
124
|
+
maxWidth: `${availableWidth}px`,
|
|
125
|
+
maxHeight: `min(var(--anchor-max-height, 100vh), ${availableHeight}px)`,
|
|
126
|
+
});
|
|
127
|
+
},
|
|
128
|
+
}),
|
|
129
|
+
].filter(Boolean));
|
|
130
|
+
const floating = useFloating({
|
|
131
|
+
get open() {
|
|
132
|
+
return isEnabled;
|
|
133
|
+
},
|
|
134
|
+
get placement() {
|
|
135
|
+
return (to === "selection"
|
|
136
|
+
? align === "center"
|
|
137
|
+
? "bottom"
|
|
138
|
+
: `bottom-${align}`
|
|
139
|
+
: align === "center"
|
|
140
|
+
? `${to}`
|
|
141
|
+
: `${to}-${align}`);
|
|
142
|
+
},
|
|
143
|
+
// This component will be used in combination with a `Portal`, which means the floating
|
|
144
|
+
// element will be rendered outside of the current DOM tree.
|
|
145
|
+
strategy: "absolute",
|
|
146
|
+
// We use the panel in a `Dialog` which is making the page inert, therefore no re-positioning is
|
|
147
|
+
// needed when scrolling changes.
|
|
148
|
+
transform: false,
|
|
149
|
+
get middleware() {
|
|
150
|
+
return middleware;
|
|
151
|
+
},
|
|
152
|
+
whileElementsMounted: autoUpdate,
|
|
153
|
+
});
|
|
154
|
+
const { refs, floatingStyles, context } = $derived(floating);
|
|
155
|
+
// Calculate placement information to expose as data attributes
|
|
156
|
+
const { exposedTo, exposedAlign } = $derived.by(() => {
|
|
157
|
+
const [exposedTo = to, exposedAlign = align] = context.placement.split("-");
|
|
158
|
+
return { exposedTo: to === "selection" ? "selection" : exposedTo, exposedAlign };
|
|
159
|
+
});
|
|
160
|
+
// If user-land code is using custom styles specifically for `bottom`, but
|
|
161
|
+
// they chose `selection`, then we want to make sure to map it to selection
|
|
162
|
+
// again otherwise styles could be wrong.
|
|
163
|
+
//if (to === "selection") exposedTo = "selection"
|
|
164
|
+
const data = $derived({
|
|
165
|
+
anchor: [exposedTo, exposedAlign].filter(Boolean).join(" "),
|
|
166
|
+
});
|
|
167
|
+
const innerOffsetConfig = useInnerOffset({
|
|
168
|
+
get context() {
|
|
169
|
+
return context;
|
|
170
|
+
},
|
|
171
|
+
get props() {
|
|
172
|
+
return {
|
|
173
|
+
overflowRef,
|
|
174
|
+
onChange: setInnerOffset,
|
|
175
|
+
};
|
|
176
|
+
},
|
|
177
|
+
});
|
|
178
|
+
const { getReferenceProps, getFloatingProps } = useInteractions({
|
|
179
|
+
get propsList() {
|
|
180
|
+
return [innerOffsetConfig];
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
const setFloatingRef = (el) => {
|
|
184
|
+
setFloatingElement(el);
|
|
185
|
+
refs.setFloating(el);
|
|
186
|
+
};
|
|
187
|
+
setContext("PlacementContext", {
|
|
188
|
+
updatePlacementConfig: (value) => {
|
|
189
|
+
config = value;
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
setContext("FloatingContext", {
|
|
193
|
+
setFloating: setFloatingRef,
|
|
194
|
+
get setReference() {
|
|
195
|
+
return refs.setReference;
|
|
196
|
+
},
|
|
197
|
+
get styles() {
|
|
198
|
+
return floatingStyles;
|
|
199
|
+
},
|
|
200
|
+
getReferenceProps,
|
|
201
|
+
getFloatingProps,
|
|
202
|
+
get slot() {
|
|
203
|
+
return data;
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
2
|
-
type Align = "start" | "end";
|
|
3
|
-
type Placement = "top" | "right" | "bottom" | "left";
|
|
4
|
-
type BaseAnchorProps = {
|
|
1
|
+
import { useInteractions, type InnerProps, type UseFloatingReturn } from "../utils/floating-ui/svelte/index.js";
|
|
2
|
+
export type Align = "start" | "end";
|
|
3
|
+
export type Placement = "top" | "right" | "bottom" | "left";
|
|
4
|
+
export type BaseAnchorProps = {
|
|
5
5
|
/**
|
|
6
6
|
* The `gap` is the space between the trigger and the panel.
|
|
7
7
|
*/
|
|
@@ -31,32 +31,56 @@ export type AnchorPropsWithSelection = false | (`${Placement | "selection"}` | `
|
|
|
31
31
|
}>;
|
|
32
32
|
export type InternalFloatingPanelProps = Partial<{
|
|
33
33
|
inner: {
|
|
34
|
-
listRef:
|
|
35
|
-
index:
|
|
34
|
+
listRef: InnerProps["listRef"];
|
|
35
|
+
index: InnerProps["index"];
|
|
36
36
|
};
|
|
37
37
|
}>;
|
|
38
|
-
type FloatingContext = {
|
|
39
|
-
styles?:
|
|
40
|
-
setReference:
|
|
41
|
-
setFloating:
|
|
42
|
-
getReferenceProps:
|
|
43
|
-
getFloatingProps:
|
|
38
|
+
export type FloatingContext = {
|
|
39
|
+
styles?: UseFloatingReturn["floatingStyles"];
|
|
40
|
+
setReference: UseFloatingReturn["refs"]["setReference"];
|
|
41
|
+
setFloating: UseFloatingReturn["refs"]["setFloating"];
|
|
42
|
+
getReferenceProps: ReturnType<typeof useInteractions>["getReferenceProps"];
|
|
43
|
+
getFloatingProps: ReturnType<typeof useInteractions>["getFloatingProps"];
|
|
44
44
|
slot: Partial<{
|
|
45
45
|
anchor: `${Placement | "selection"}` | `${Placement | "selection"} ${Align}`;
|
|
46
46
|
}>;
|
|
47
47
|
};
|
|
48
|
-
export
|
|
49
|
-
|
|
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;
|
|
48
|
+
export type PlacementContext = {
|
|
49
|
+
updatePlacementConfig: ((value: Exclude<AnchorPropsWithSelection, boolean> | null) => void) | null;
|
|
52
50
|
};
|
|
53
|
-
export declare function
|
|
51
|
+
export declare function useResolvedAnchor<T extends AnchorProps | AnchorPropsWithSelection>(options: {
|
|
52
|
+
anchor?: T;
|
|
53
|
+
}): {
|
|
54
|
+
anchor: Exclude<T, boolean | string> | null;
|
|
55
|
+
};
|
|
56
|
+
export declare function useFloatingReference(): {
|
|
57
|
+
readonly setReference: ((node: import("../utils/floating-ui/svelte-dom/types.js").ReferenceType | null | undefined) => void) & ((node: import("../utils/floating-ui/svelte/types.js").ReferenceType | null | undefined) => void);
|
|
58
|
+
};
|
|
59
|
+
export declare function useFloatingReferenceProps(): {
|
|
60
|
+
readonly getReferenceProps: (userProps?: import("svelte/elements.js").HTMLAttributes<Element>) => Record<string, unknown>;
|
|
61
|
+
};
|
|
62
|
+
export declare function useFloatingPanelProps(): (...args: Parameters<(userProps?: import("svelte/elements.js").HTMLAttributes<HTMLElement>) => Record<string, unknown>>) => Record<string, unknown> & {
|
|
63
|
+
"data-anchor": Placement | "top start" | "top end" | "right start" | "right end" | "bottom start" | "bottom end" | "left start" | "left end" | "selection" | "selection start" | "selection end" | undefined;
|
|
64
|
+
};
|
|
65
|
+
export declare function useFloatingPanel(options?: {
|
|
54
66
|
placement: (AnchorPropsWithSelection & InternalFloatingPanelProps) | null;
|
|
55
67
|
}): {
|
|
56
|
-
readonly setFloating: (
|
|
57
|
-
readonly
|
|
68
|
+
readonly setFloating: ((node: HTMLElement | null | undefined) => void) & ((node: HTMLElement | null | undefined) => void);
|
|
69
|
+
readonly styles: string | undefined;
|
|
70
|
+
};
|
|
71
|
+
export declare function useFixScrollingPixel(options: {
|
|
72
|
+
element: HTMLElement | null;
|
|
73
|
+
}): void;
|
|
74
|
+
export declare function useResolvedConfig(options: {
|
|
75
|
+
config: (Exclude<AnchorPropsWithSelection, boolean | string> & InternalFloatingPanelProps) | null;
|
|
76
|
+
element?: HTMLElement | null;
|
|
77
|
+
}): {
|
|
78
|
+
readonly to: Placement | "top start" | "top end" | "right start" | "right end" | "bottom start" | "bottom end" | "left start" | "left end" | "selection" | "selection start" | "selection end" | undefined;
|
|
79
|
+
readonly gap: number | undefined;
|
|
80
|
+
readonly offset: number | undefined;
|
|
81
|
+
readonly padding: number | undefined;
|
|
82
|
+
readonly inner: {
|
|
83
|
+
listRef: InnerProps["listRef"];
|
|
84
|
+
index: InnerProps["index"];
|
|
85
|
+
} | undefined;
|
|
58
86
|
};
|
|
59
|
-
export declare const createFloatingContext: ({ enabled }?: {
|
|
60
|
-
enabled?: boolean;
|
|
61
|
-
}) => FloatingContext;
|
|
62
|
-
export {};
|