@pzerelles/headlessui-svelte 2.1.2-next.5 → 2.1.2-next.51
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 +315 -31
- 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 +23 -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/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 +96 -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 +5 -5
- package/dist/hooks/use-tab-direction.svelte.js +1 -1
- package/dist/hooks/use-transition.svelte.js +29 -4
- package/dist/index.d.ts +6 -2
- package/dist/index.js +6 -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 +1 -1
- 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 +46 -22
- 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 +17 -13
- 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 +228 -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 +17 -17
- package/dist/portal/InternalPortal.svelte.d.ts +6 -33
- 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/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 +18 -30
- 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 +54 -53
- package/dist/combobox/Combobox.svelte +0 -53
- package/dist/combobox/Combobox.svelte.d.ts +0 -50
- package/dist/dialog/InternalDialog.svelte +0 -294
- package/dist/dialog/InternalDialog.svelte.d.ts +0 -42
- 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
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare enum DisclosureStates {
|
|
2
|
+
Open = 0,
|
|
3
|
+
Closed = 1
|
|
4
|
+
}
|
|
5
|
+
export interface StateDefinition {
|
|
6
|
+
disclosureState: DisclosureStates;
|
|
7
|
+
buttonElement?: HTMLButtonElement;
|
|
8
|
+
panelElement?: HTMLElement;
|
|
9
|
+
buttonId?: string;
|
|
10
|
+
panelId?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface StateActions {
|
|
13
|
+
toggleDisclosure(): void;
|
|
14
|
+
closeDisclosure(): void;
|
|
15
|
+
setButtonId(buttonId: string | undefined): void;
|
|
16
|
+
setPanelId(panelId: string | undefined): void;
|
|
17
|
+
setButtonElement(element: HTMLButtonElement | undefined): void;
|
|
18
|
+
setPanelElement(element: HTMLElement | undefined): void;
|
|
19
|
+
}
|
|
20
|
+
export type DisclosureContext = StateDefinition & StateActions;
|
|
21
|
+
export declare function createDisclosureContext(defaultOpen: boolean): DisclosureContext;
|
|
22
|
+
export declare function useDisclosureContext(component: string): DisclosureContext;
|
|
23
|
+
export interface DisclosureAPIContext {
|
|
24
|
+
close: (focusableElement?: HTMLElement) => void;
|
|
25
|
+
}
|
|
26
|
+
export declare function createDisclosureAPIContext(close: (focusableElement?: HTMLElement) => void): DisclosureAPIContext;
|
|
27
|
+
export declare function useDisclosureAPIContext(component: string): DisclosureAPIContext;
|
|
28
|
+
export interface DisclosurePanelContext {
|
|
29
|
+
panelId: string | undefined;
|
|
30
|
+
}
|
|
31
|
+
export declare function createDisclosurePanelContext(panelId: () => string | undefined): DisclosurePanelContext;
|
|
32
|
+
export declare function useDisclosurePanelContext(): DisclosurePanelContext | undefined;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { getContext, setContext } from "svelte";
|
|
2
|
+
export var DisclosureStates;
|
|
3
|
+
(function (DisclosureStates) {
|
|
4
|
+
DisclosureStates[DisclosureStates["Open"] = 0] = "Open";
|
|
5
|
+
DisclosureStates[DisclosureStates["Closed"] = 1] = "Closed";
|
|
6
|
+
})(DisclosureStates || (DisclosureStates = {}));
|
|
7
|
+
export function createDisclosureContext(defaultOpen) {
|
|
8
|
+
let disclosureState = $state(defaultOpen ? DisclosureStates.Open : DisclosureStates.Closed);
|
|
9
|
+
let buttonElement = $state();
|
|
10
|
+
let panelElement = $state();
|
|
11
|
+
let buttonId = $state();
|
|
12
|
+
let panelId = $state();
|
|
13
|
+
const context = {
|
|
14
|
+
get disclosureState() {
|
|
15
|
+
return disclosureState;
|
|
16
|
+
},
|
|
17
|
+
get buttonElement() {
|
|
18
|
+
return buttonElement;
|
|
19
|
+
},
|
|
20
|
+
get panelElement() {
|
|
21
|
+
return panelElement;
|
|
22
|
+
},
|
|
23
|
+
get buttonId() {
|
|
24
|
+
return buttonId;
|
|
25
|
+
},
|
|
26
|
+
get panelId() {
|
|
27
|
+
return panelId;
|
|
28
|
+
},
|
|
29
|
+
toggleDisclosure() {
|
|
30
|
+
disclosureState = disclosureState === DisclosureStates.Open ? DisclosureStates.Closed : DisclosureStates.Open;
|
|
31
|
+
},
|
|
32
|
+
closeDisclosure() {
|
|
33
|
+
if (disclosureState !== DisclosureStates.Closed)
|
|
34
|
+
disclosureState = DisclosureStates.Closed;
|
|
35
|
+
},
|
|
36
|
+
setButtonId(id) {
|
|
37
|
+
if (id !== buttonId)
|
|
38
|
+
buttonId = id;
|
|
39
|
+
},
|
|
40
|
+
setPanelId(id) {
|
|
41
|
+
if (id !== panelId)
|
|
42
|
+
panelId = id;
|
|
43
|
+
},
|
|
44
|
+
setButtonElement(element) {
|
|
45
|
+
if (element !== buttonElement)
|
|
46
|
+
buttonElement = element;
|
|
47
|
+
},
|
|
48
|
+
setPanelElement(element) {
|
|
49
|
+
if (element !== panelElement)
|
|
50
|
+
panelElement = element;
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
setContext("DisclosureContext", context);
|
|
54
|
+
return context;
|
|
55
|
+
}
|
|
56
|
+
export function useDisclosureContext(component) {
|
|
57
|
+
const context = getContext("DisclosureContext");
|
|
58
|
+
if (!context) {
|
|
59
|
+
const err = new Error(`<${component} /> is missing a parent <Disclosure /> component.`);
|
|
60
|
+
if (Error.captureStackTrace)
|
|
61
|
+
Error.captureStackTrace(err, useDisclosureContext);
|
|
62
|
+
throw err;
|
|
63
|
+
}
|
|
64
|
+
return context;
|
|
65
|
+
}
|
|
66
|
+
export function createDisclosureAPIContext(close) {
|
|
67
|
+
const context = {
|
|
68
|
+
close,
|
|
69
|
+
};
|
|
70
|
+
setContext("DisclosureAPIContext", context);
|
|
71
|
+
return context;
|
|
72
|
+
}
|
|
73
|
+
export function useDisclosureAPIContext(component) {
|
|
74
|
+
const context = getContext("DisclosureAPIContext");
|
|
75
|
+
if (!context) {
|
|
76
|
+
const err = new Error(`<${component} /> is missing a parent <Disclosure /> component.`);
|
|
77
|
+
if (Error.captureStackTrace)
|
|
78
|
+
Error.captureStackTrace(err, useDisclosureAPIContext);
|
|
79
|
+
throw err;
|
|
80
|
+
}
|
|
81
|
+
return context;
|
|
82
|
+
}
|
|
83
|
+
export function createDisclosurePanelContext(panelId) {
|
|
84
|
+
const context = {
|
|
85
|
+
get panelId() {
|
|
86
|
+
return panelId();
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
setContext("DisclosurePanelContext", context);
|
|
90
|
+
return context;
|
|
91
|
+
}
|
|
92
|
+
export function useDisclosurePanelContext() {
|
|
93
|
+
return getContext("DisclosurePanelContext");
|
|
94
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { default as Disclosure, type DisclosureProps, type DisclosureRenderPropArg as DisclosureSlot, type DisclosureOwnProps, } from "./Disclosure.svelte";
|
|
2
|
+
export { default as DisclosureButton, type DisclosureButtonProps, type ButtonRenderPropArg as DisclosureButtonSlot, type DisclosureButtonOwnProps, } from "./DisclosureButton.svelte";
|
|
3
|
+
export { default as DisclosurePanel, type DisclosurePanelProps, type PanelRenderPropArg as DisclosurePanelSlot, type DisclosurePanelOwnProps, } from "./DisclosurePanel.svelte";
|
package/dist/field/Field.svelte
CHANGED
|
@@ -1,32 +1,26 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
3
|
|
|
4
4
|
let DEFAULT_FIELD_TAG = "div" as const
|
|
5
5
|
|
|
6
|
-
type
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
FieldPropsWeControl,
|
|
13
|
-
{
|
|
14
|
-
disabled?: boolean
|
|
15
|
-
}
|
|
16
|
-
>
|
|
6
|
+
export type FieldOwnProps = {
|
|
7
|
+
element?: HTMLElement
|
|
8
|
+
disabled?: boolean
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export type FieldProps = Props<typeof DEFAULT_FIELD_TAG, {}, FieldOwnProps>
|
|
17
12
|
</script>
|
|
18
13
|
|
|
19
|
-
<script lang="ts"
|
|
20
|
-
import {
|
|
14
|
+
<script lang="ts">
|
|
15
|
+
import { provideDisabled } from "../hooks/use-disabled.js"
|
|
21
16
|
import { createIdContext } from "../utils/id.js"
|
|
22
|
-
import { stateFromSlot } from "../utils/state.js"
|
|
23
17
|
import { nanoid } from "nanoid"
|
|
24
|
-
import { setContext, type Snippet } from "svelte"
|
|
25
18
|
import { useLabels } from "../label/context.svelte.js"
|
|
26
19
|
import { useDescriptions } from "../description/context.svelte.js"
|
|
27
20
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
21
|
+
import FormFieldsProvider from "../internal/FormFieldsProvider.svelte"
|
|
28
22
|
|
|
29
|
-
let {
|
|
23
|
+
let { element = $bindable(), disabled: ownDisabled = false, children, ...theirProps }: FieldProps = $props()
|
|
30
24
|
|
|
31
25
|
const inputId = `headlessui-control-${nanoid(8)}`
|
|
32
26
|
createIdContext(inputId)
|
|
@@ -34,14 +28,8 @@
|
|
|
34
28
|
useLabels()
|
|
35
29
|
useDescriptions()
|
|
36
30
|
|
|
37
|
-
const
|
|
38
|
-
const disabled = $derived(
|
|
39
|
-
|
|
40
|
-
setContext("DisabledContext", {
|
|
41
|
-
get value() {
|
|
42
|
-
return disabled
|
|
43
|
-
},
|
|
44
|
-
})
|
|
31
|
+
const disabledContext = provideDisabled(() => ownDisabled)
|
|
32
|
+
const { current: disabled } = $derived(disabledContext)
|
|
45
33
|
|
|
46
34
|
const slot = $derived({ disabled })
|
|
47
35
|
|
|
@@ -51,4 +39,17 @@
|
|
|
51
39
|
})
|
|
52
40
|
</script>
|
|
53
41
|
|
|
54
|
-
|
|
42
|
+
{#snippet wrapper(args: { props: Record<string, any> })}
|
|
43
|
+
<FormFieldsProvider>
|
|
44
|
+
{@render children?.(args)}
|
|
45
|
+
</FormFieldsProvider>
|
|
46
|
+
{/snippet}
|
|
47
|
+
|
|
48
|
+
<ElementOrComponent
|
|
49
|
+
{ourProps}
|
|
50
|
+
theirProps={{ ...theirProps, children: wrapper }}
|
|
51
|
+
slots={slot}
|
|
52
|
+
defaultTag={DEFAULT_FIELD_TAG}
|
|
53
|
+
name="Field"
|
|
54
|
+
bind:element
|
|
55
|
+
/>
|
|
@@ -1,37 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
declare let DEFAULT_FIELD_TAG: "div";
|
|
3
|
-
type
|
|
4
|
-
|
|
5
|
-
export type FieldProps<TTag extends ElementType = typeof DEFAULT_FIELD_TAG> = Props<TTag, FieldRenderPropArg, FieldPropsWeControl, {
|
|
3
|
+
export type FieldOwnProps = {
|
|
4
|
+
element?: HTMLElement;
|
|
6
5
|
disabled?: boolean;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "disabled"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
12
|
-
children?: import("../utils/types.js").Children<FieldRenderPropArg> | undefined;
|
|
13
|
-
ref?: HTMLElement;
|
|
14
|
-
} & (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) ? {
|
|
15
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: FieldRenderPropArg) => string) | undefined;
|
|
16
|
-
} : {}) & {
|
|
17
|
-
disabled?: boolean;
|
|
18
|
-
};
|
|
19
|
-
events(): {} & {
|
|
20
|
-
[evt: string]: CustomEvent<any>;
|
|
21
|
-
};
|
|
22
|
-
slots(): {};
|
|
23
|
-
bindings(): "ref";
|
|
24
|
-
exports(): {};
|
|
25
|
-
}
|
|
26
|
-
interface $$IsomorphicComponent {
|
|
27
|
-
new <TTag extends ElementType = typeof DEFAULT_FIELD_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']>> & {
|
|
28
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
29
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
30
|
-
<TTag extends ElementType = typeof DEFAULT_FIELD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
31
|
-
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
32
|
-
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
34
|
-
}
|
|
35
|
-
declare const Field: $$IsomorphicComponent;
|
|
36
|
-
type Field<TTag extends ElementType = typeof DEFAULT_FIELD_TAG> = InstanceType<typeof Field<TTag>>;
|
|
6
|
+
};
|
|
7
|
+
export type FieldProps = Props<typeof DEFAULT_FIELD_TAG, {}, FieldOwnProps>;
|
|
8
|
+
declare const Field: import("svelte").Component<FieldProps, {}, "element">;
|
|
9
|
+
type Field = ReturnType<typeof Field>;
|
|
37
10
|
export default Field;
|
package/dist/field/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as Field, type FieldProps } from "./Field.svelte";
|
|
1
|
+
export { default as Field, type FieldProps, type FieldOwnProps } from "./Field.svelte";
|
|
@@ -1,34 +1,28 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
|
-
import type {
|
|
3
|
-
|
|
2
|
+
import type { Props } from "../utils/types.js"
|
|
3
|
+
|
|
4
|
+
const DEFAULT_FIELDSET_TAG = "fieldset" as const
|
|
4
5
|
|
|
5
|
-
type FieldsetRenderPropArg = {}
|
|
6
6
|
type FieldsetPropsWeControl = "aria-labelledby" | "aria-disabled" | "role"
|
|
7
7
|
|
|
8
|
-
export type
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
>
|
|
8
|
+
export type FieldsetOwnProps = {
|
|
9
|
+
element?: HTMLElement
|
|
10
|
+
disabled?: boolean
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export type FieldsetProps = Props<typeof DEFAULT_FIELDSET_TAG, {}, FieldsetOwnProps>
|
|
16
14
|
</script>
|
|
17
15
|
|
|
18
|
-
<script lang="ts"
|
|
16
|
+
<script lang="ts">
|
|
19
17
|
import { setContext } from "svelte"
|
|
20
18
|
import { useDisabled } from "../hooks/use-disabled.js"
|
|
21
19
|
import { useLabels } from "../label/context.svelte.js"
|
|
22
20
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte"
|
|
23
21
|
|
|
24
|
-
let {
|
|
25
|
-
ref = $bindable(),
|
|
26
|
-
disabled: ownDisabled = false,
|
|
27
|
-
...theirProps
|
|
28
|
-
}: { as?: TTag } & FieldsetProps<TTag> = $props()
|
|
22
|
+
let { element = $bindable(), disabled: ownDisabled = false, ...theirProps }: FieldsetProps = $props()
|
|
29
23
|
|
|
30
24
|
const providedDisabled = useDisabled()
|
|
31
|
-
const disabled = $derived(providedDisabled.
|
|
25
|
+
const disabled = $derived(providedDisabled.current || ownDisabled)
|
|
32
26
|
|
|
33
27
|
setContext("DisabledContext", {
|
|
34
28
|
get value() {
|
|
@@ -39,7 +33,7 @@
|
|
|
39
33
|
const labelledBy = useLabels()
|
|
40
34
|
const slot = $derived({ disabled })
|
|
41
35
|
const ourProps = $derived(
|
|
42
|
-
|
|
36
|
+
!theirProps.asChild
|
|
43
37
|
? {
|
|
44
38
|
"aria-labelledby": labelledBy.value,
|
|
45
39
|
disabled: disabled || undefined,
|
|
@@ -52,4 +46,11 @@
|
|
|
52
46
|
)
|
|
53
47
|
</script>
|
|
54
48
|
|
|
55
|
-
<ElementOrComponent
|
|
49
|
+
<ElementOrComponent
|
|
50
|
+
{ourProps}
|
|
51
|
+
{theirProps}
|
|
52
|
+
slots={slot}
|
|
53
|
+
defaultTag={DEFAULT_FIELDSET_TAG}
|
|
54
|
+
name="Fieldset"
|
|
55
|
+
bind:element
|
|
56
|
+
/>
|
|
@@ -1,37 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare
|
|
3
|
-
type
|
|
4
|
-
|
|
5
|
-
export type FieldsetProps<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG> = Props<TTag, FieldsetRenderPropArg, FieldsetPropsWeControl, {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
|
+
declare const DEFAULT_FIELDSET_TAG: "fieldset";
|
|
3
|
+
export type FieldsetOwnProps = {
|
|
4
|
+
element?: HTMLElement;
|
|
6
5
|
disabled?: boolean;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "disabled" | FieldsetPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
12
|
-
children?: import("../utils/types.js").Children<FieldsetRenderPropArg> | undefined;
|
|
13
|
-
ref?: HTMLElement;
|
|
14
|
-
} & (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) ? {
|
|
15
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: FieldsetRenderPropArg) => string) | undefined;
|
|
16
|
-
} : {}) & {
|
|
17
|
-
disabled?: boolean;
|
|
18
|
-
};
|
|
19
|
-
events(): {} & {
|
|
20
|
-
[evt: string]: CustomEvent<any>;
|
|
21
|
-
};
|
|
22
|
-
slots(): {};
|
|
23
|
-
bindings(): "ref";
|
|
24
|
-
exports(): {};
|
|
25
|
-
}
|
|
26
|
-
interface $$IsomorphicComponent {
|
|
27
|
-
new <TTag extends ElementType = typeof DEFAULT_FIELDSET_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']>> & {
|
|
28
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
29
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
30
|
-
<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
31
|
-
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
32
|
-
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
34
|
-
}
|
|
35
|
-
declare const Fieldset: $$IsomorphicComponent;
|
|
36
|
-
type Fieldset<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG> = InstanceType<typeof Fieldset<TTag>>;
|
|
6
|
+
};
|
|
7
|
+
export type FieldsetProps = Props<typeof DEFAULT_FIELDSET_TAG, {}, FieldsetOwnProps>;
|
|
8
|
+
declare const Fieldset: import("svelte").Component<FieldsetProps, {}, "element">;
|
|
9
|
+
type Fieldset = ReturnType<typeof Fieldset>;
|
|
37
10
|
export default Fieldset;
|
package/dist/fieldset/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default as Fieldset, type FieldsetProps } from "./Fieldset.svelte";
|
|
1
|
+
export { default as Fieldset, type FieldsetProps, type FieldsetOwnProps } from "./Fieldset.svelte";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts" module>
|
|
2
2
|
import { getOwnerDocument } from "../utils/owner.js"
|
|
3
|
-
import type {
|
|
3
|
+
import type { Props } from "../utils/types.js"
|
|
4
4
|
import { history } from "../utils/active-element-history.js"
|
|
5
5
|
import { useWatch } from "../hooks/use-watch.svelte.js"
|
|
6
6
|
import { microTask } from "../utils/microTask.js"
|
|
@@ -35,27 +35,24 @@
|
|
|
35
35
|
return all
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
const DEFAULT_FOCUS_TRAP_TAG = "div" as const
|
|
39
39
|
|
|
40
40
|
export * from "./FocusTrapFeatures.js"
|
|
41
41
|
|
|
42
|
-
type FocusTrapRenderPropArg = {}
|
|
43
42
|
type FocusTrapPropsWeControl = never
|
|
44
43
|
|
|
45
|
-
export type
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
>
|
|
44
|
+
export type FocusTrapOwnProps = {
|
|
45
|
+
element?: HTMLElement
|
|
46
|
+
initialFocus?: HTMLElement
|
|
47
|
+
// A fallback element to focus, but this element will be skipped when tabbing around. This is
|
|
48
|
+
// only done for focusing a fallback parent container (e.g.: A `Dialog`, but you want to tab
|
|
49
|
+
// *inside* the dialog excluding the dialog itself).
|
|
50
|
+
initialFocusFallback?: HTMLElement
|
|
51
|
+
features?: FocusTrapFeatures
|
|
52
|
+
containers?: Containers
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export type FocusTrapProps = Props<typeof DEFAULT_FOCUS_TRAP_TAG, {}, FocusTrapOwnProps>
|
|
59
56
|
|
|
60
57
|
function useRestoreElement(options?: { enabled: boolean }) {
|
|
61
58
|
const { enabled } = $derived(options ?? { enabled: true })
|
|
@@ -293,10 +290,10 @@
|
|
|
293
290
|
}
|
|
294
291
|
</script>
|
|
295
292
|
|
|
296
|
-
<script lang="ts"
|
|
293
|
+
<script lang="ts">
|
|
297
294
|
let container = $state<HTMLElement | null>(null)
|
|
298
295
|
let {
|
|
299
|
-
|
|
296
|
+
element = $bindable(),
|
|
300
297
|
initialFocus,
|
|
301
298
|
initialFocusFallback,
|
|
302
299
|
containers,
|
|
@@ -305,13 +302,13 @@
|
|
|
305
302
|
FocusTrapFeatures.FocusLock |
|
|
306
303
|
FocusTrapFeatures.RestoreFocus,
|
|
307
304
|
...theirProps
|
|
308
|
-
}:
|
|
305
|
+
}: FocusTrapProps = $props()
|
|
309
306
|
|
|
310
307
|
/*if (!useServerHandoffComplete()) {
|
|
311
308
|
features = FocusTrapFeatures.None
|
|
312
309
|
}*/
|
|
313
310
|
|
|
314
|
-
const ownerDocument = $derived(getOwnerDocument(
|
|
311
|
+
const ownerDocument = $derived(getOwnerDocument(element))
|
|
315
312
|
|
|
316
313
|
useRestoreFocus({
|
|
317
314
|
get features() {
|
|
@@ -441,21 +438,17 @@
|
|
|
441
438
|
</script>
|
|
442
439
|
|
|
443
440
|
{#if tabLockEnabled}
|
|
444
|
-
<Hidden
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
features={HiddenFeatures.Focusable}
|
|
450
|
-
/>
|
|
441
|
+
<Hidden asChild features={HiddenFeatures.Focusable}>
|
|
442
|
+
{#snippet children({ props })}
|
|
443
|
+
<button {...props} type="button" data-headlessui-focus-guard onfocus={handleFocus}>‌</button>
|
|
444
|
+
{/snippet}
|
|
445
|
+
</Hidden>
|
|
451
446
|
{/if}
|
|
452
|
-
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_FOCUS_TRAP_TAG} name="FocusTrap" bind:
|
|
447
|
+
<ElementOrComponent {ourProps} {theirProps} defaultTag={DEFAULT_FOCUS_TRAP_TAG} name="FocusTrap" bind:element />
|
|
453
448
|
{#if tabLockEnabled}
|
|
454
|
-
<Hidden
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
features={HiddenFeatures.Focusable}
|
|
460
|
-
/>
|
|
449
|
+
<Hidden asChild features={HiddenFeatures.Focusable}>
|
|
450
|
+
{#snippet children({ props })}
|
|
451
|
+
<button {...props} type="button" data-headlessui-focus-guard onfocus={handleFocus}>‌</button>
|
|
452
|
+
{/snippet}
|
|
453
|
+
</Hidden>
|
|
461
454
|
{/if}
|
|
@@ -1,46 +1,16 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Props } from "../utils/types.js";
|
|
2
2
|
import { FocusTrapFeatures } from "./FocusTrapFeatures.js";
|
|
3
3
|
type Containers = (() => Iterable<HTMLElement>) | Iterable<HTMLElement>;
|
|
4
|
-
declare
|
|
4
|
+
declare const DEFAULT_FOCUS_TRAP_TAG: "div";
|
|
5
5
|
export * from "./FocusTrapFeatures.js";
|
|
6
|
-
type
|
|
7
|
-
|
|
8
|
-
export type FocusTrapProps<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG> = Props<TTag, FocusTrapRenderPropArg, FocusTrapPropsWeControl, {
|
|
6
|
+
export type FocusTrapOwnProps = {
|
|
7
|
+
element?: HTMLElement;
|
|
9
8
|
initialFocus?: HTMLElement;
|
|
10
9
|
initialFocusFallback?: HTMLElement;
|
|
11
10
|
features?: FocusTrapFeatures;
|
|
12
11
|
containers?: Containers;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "features" | "containers" | "initialFocus" | "initialFocusFallback"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
18
|
-
children?: import("../utils/types.js").Children<FocusTrapRenderPropArg> | undefined;
|
|
19
|
-
ref?: HTMLElement;
|
|
20
|
-
} & (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) ? {
|
|
21
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: FocusTrapRenderPropArg) => string) | undefined;
|
|
22
|
-
} : {}) & {
|
|
23
|
-
initialFocus?: HTMLElement;
|
|
24
|
-
initialFocusFallback?: HTMLElement;
|
|
25
|
-
features?: FocusTrapFeatures;
|
|
26
|
-
containers?: Containers;
|
|
27
|
-
};
|
|
28
|
-
events(): {} & {
|
|
29
|
-
[evt: string]: CustomEvent<any>;
|
|
30
|
-
};
|
|
31
|
-
slots(): {};
|
|
32
|
-
bindings(): "ref";
|
|
33
|
-
exports(): {};
|
|
34
|
-
}
|
|
35
|
-
interface $$IsomorphicComponent {
|
|
36
|
-
new <TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_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']>> & {
|
|
37
|
-
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
38
|
-
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
39
|
-
<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
40
|
-
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
41
|
-
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
42
|
-
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
43
|
-
}
|
|
44
|
-
declare const FocusTrap: $$IsomorphicComponent;
|
|
45
|
-
type FocusTrap<TTag extends ElementType = typeof DEFAULT_FOCUS_TRAP_TAG> = InstanceType<typeof FocusTrap<TTag>>;
|
|
12
|
+
};
|
|
13
|
+
export type FocusTrapProps = Props<typeof DEFAULT_FOCUS_TRAP_TAG, {}, FocusTrapOwnProps>;
|
|
14
|
+
declare const FocusTrap: import("svelte").Component<FocusTrapProps, {}, "element">;
|
|
15
|
+
type FocusTrap = ReturnType<typeof FocusTrap>;
|
|
46
16
|
export default FocusTrap;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export function useControllable(input, onchange, defaultValue) {
|
|
2
2
|
let internalValue = $state(defaultValue);
|
|
3
3
|
const isControlled = $derived(input.controlledValue !== undefined);
|
|
4
|
-
let wasControlled = isControlled;
|
|
4
|
+
let wasControlled = (() => isControlled)();
|
|
5
5
|
let didWarnOnUncontrolledToControlled = false;
|
|
6
6
|
let didWarnOnControlledToUncontrolled = false;
|
|
7
7
|
$effect(() => {
|
|
@@ -27,7 +27,8 @@ export function useControllable(input, onchange, defaultValue) {
|
|
|
27
27
|
}
|
|
28
28
|
else {
|
|
29
29
|
internalValue = value;
|
|
30
|
-
|
|
30
|
+
if (isControlled)
|
|
31
|
+
input.controlledValue = value;
|
|
31
32
|
}
|
|
32
33
|
},
|
|
33
34
|
};
|
|
@@ -1,23 +1,18 @@
|
|
|
1
1
|
export function useDidElementMove(options) {
|
|
2
2
|
const { enabled, element } = $derived(options);
|
|
3
|
-
let elementPosition = $state(
|
|
3
|
+
let elementPosition = $state();
|
|
4
4
|
$effect(() => {
|
|
5
5
|
if (!element)
|
|
6
6
|
return;
|
|
7
|
-
|
|
7
|
+
const DOMRect = element.getBoundingClientRect();
|
|
8
8
|
if (DOMRect)
|
|
9
9
|
elementPosition = DOMRect;
|
|
10
10
|
});
|
|
11
11
|
const value = $derived.by(() => {
|
|
12
|
-
if (element == null)
|
|
12
|
+
if (element == null || !enabled || element === document.activeElement || elementPosition === undefined)
|
|
13
13
|
return false;
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (element === document.activeElement)
|
|
17
|
-
return false;
|
|
18
|
-
let buttonRect = element.getBoundingClientRect();
|
|
19
|
-
let didElementMove = buttonRect.top !== elementPosition.top || buttonRect.left !== elementPosition.left;
|
|
20
|
-
return didElementMove;
|
|
14
|
+
const buttonRect = element.getBoundingClientRect();
|
|
15
|
+
return buttonRect.top !== elementPosition.top || buttonRect.left !== elementPosition.left;
|
|
21
16
|
});
|
|
22
17
|
return {
|
|
23
18
|
get value() {
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import { getContext } from "svelte";
|
|
1
|
+
import { getContext, setContext } from "svelte";
|
|
2
2
|
export const useDisabled = () => {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
return getContext("DisabledContext") ?? { current: false };
|
|
4
|
+
};
|
|
5
|
+
export const provideDisabled = (disabled, options) => {
|
|
6
|
+
const parentDisabled = options?.ignoreParent ? { current: false } : useDisabled();
|
|
7
|
+
const context = {
|
|
8
|
+
get current() {
|
|
9
|
+
return disabled() || parentDisabled.current;
|
|
7
10
|
},
|
|
8
11
|
};
|
|
12
|
+
setContext("DisabledContext", context);
|
|
13
|
+
return context;
|
|
9
14
|
};
|
|
@@ -10,7 +10,7 @@ export function useElementSize(options) {
|
|
|
10
10
|
// compute the correct size as soon as possible. However, once the element is
|
|
11
11
|
// stable, we also want to watch for changes to the element. The `identity`
|
|
12
12
|
// state can be used to recompute the size.
|
|
13
|
-
let size = $state(computeSize(element));
|
|
13
|
+
let size = $state((() => computeSize(element))());
|
|
14
14
|
const observeSize = (element) => {
|
|
15
15
|
if (!element)
|
|
16
16
|
return;
|