@pzerelles/headlessui-svelte 2.1.2-next.3 → 2.1.2-next.30
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 +1 -1
- package/dist/button/Button.svelte.d.ts +9 -11
- package/dist/checkbox/Checkbox.svelte +4 -4
- package/dist/checkbox/Checkbox.svelte.d.ts +10 -14
- package/dist/close-button/CloseButton.svelte.d.ts +16 -18
- package/dist/data-interactive/DataInteractive.svelte.d.ts +8 -11
- package/dist/description/Description.svelte +19 -14
- package/dist/description/Description.svelte.d.ts +9 -11
- package/dist/description/context.svelte.js +14 -16
- package/dist/dialog/Dialog.svelte +245 -17
- package/dist/dialog/Dialog.svelte.d.ts +12 -14
- package/dist/dialog/DialogBackdrop.svelte +1 -1
- package/dist/dialog/DialogBackdrop.svelte.d.ts +9 -11
- package/dist/dialog/DialogPanel.svelte +1 -2
- package/dist/dialog/DialogPanel.svelte.d.ts +9 -11
- package/dist/dialog/DialogTitle.svelte.d.ts +8 -10
- package/dist/dialog/context.svelte.js +1 -1
- package/dist/field/Field.svelte +24 -12
- package/dist/field/Field.svelte.d.ts +9 -11
- package/dist/fieldset/Fieldset.svelte +1 -1
- package/dist/fieldset/Fieldset.svelte.d.ts +9 -11
- package/dist/focus-trap/FocusTrap.svelte +7 -14
- package/dist/focus-trap/FocusTrap.svelte.d.ts +11 -25
- package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
- package/dist/focus-trap/FocusTrapFeatures.js +15 -0
- package/dist/hooks/use-controllable.svelte.js +2 -1
- 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-event-listener.svelte.d.ts +1 -1
- package/dist/hooks/use-event-listener.svelte.js +3 -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/index.d.ts +4 -2
- package/dist/index.js +4 -2
- package/dist/input/Input.svelte +3 -3
- package/dist/input/Input.svelte.d.ts +10 -14
- package/dist/internal/FloatingProvider.svelte +12 -0
- package/dist/internal/FloatingProvider.svelte.d.ts +6 -0
- package/dist/internal/FocusSentinel.svelte.d.ts +2 -18
- package/dist/internal/ForcePortalRoot.svelte.d.ts +2 -18
- package/dist/internal/FormFields.svelte +22 -19
- package/dist/internal/FormFields.svelte.d.ts +2 -18
- package/dist/internal/FormFieldsProvider.svelte +13 -0
- package/dist/internal/FormFieldsProvider.svelte.d.ts +5 -0
- package/dist/internal/FormResolver.svelte.d.ts +2 -18
- package/dist/internal/Hidden.svelte +18 -8
- package/dist/internal/Hidden.svelte.d.ts +11 -16
- package/dist/internal/HiddenFeatures.d.ts +5 -0
- package/dist/internal/HiddenFeatures.js +9 -0
- package/dist/internal/MainTreeProvider.svelte.d.ts +2 -18
- package/dist/internal/Portal.svelte.d.ts +2 -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 +48 -23
- package/dist/internal/floating.svelte.js +91 -272
- package/dist/internal/form-fields.svelte.d.ts +10 -0
- package/dist/internal/form-fields.svelte.js +23 -0
- package/dist/label/Label.svelte +6 -5
- package/dist/label/Label.svelte.d.ts +9 -11
- package/dist/label/context.svelte.js +1 -1
- package/dist/legend/Legend.svelte +2 -2
- package/dist/legend/Legend.svelte.d.ts +4 -32
- package/dist/listbox/Listbox.svelte +47 -68
- package/dist/listbox/Listbox.svelte.d.ts +18 -80
- package/dist/listbox/ListboxButton.svelte +10 -10
- package/dist/listbox/ListboxButton.svelte.d.ts +10 -15
- package/dist/listbox/ListboxOption.svelte +10 -6
- package/dist/listbox/ListboxOption.svelte.d.ts +9 -12
- package/dist/listbox/ListboxOptions.svelte +108 -54
- package/dist/listbox/ListboxOptions.svelte.d.ts +9 -12
- package/dist/listbox/ListboxSelectedOption.svelte +2 -4
- package/dist/listbox/ListboxSelectedOption.svelte.d.ts +14 -16
- package/dist/listbox/context.svelte.d.ts +76 -0
- package/dist/listbox/context.svelte.js +36 -0
- package/dist/listbox/index.d.ts +4 -4
- package/dist/listbox/index.js +1 -1
- package/dist/menu/Menu.svelte +9 -187
- package/dist/menu/Menu.svelte.d.ts +9 -12
- package/dist/menu/MenuButton.svelte +4 -2
- package/dist/menu/MenuButton.svelte.d.ts +9 -12
- package/dist/menu/MenuHeading.svelte.d.ts +9 -12
- package/dist/menu/MenuItem.svelte.d.ts +11 -16
- package/dist/menu/MenuItems.svelte +15 -11
- package/dist/menu/MenuItems.svelte.d.ts +9 -12
- package/dist/menu/MenuSection.svelte.d.ts +8 -11
- package/dist/menu/MenuSeparator.svelte.d.ts +8 -12
- 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/popover/Popover.svelte +161 -0
- package/dist/popover/Popover.svelte.d.ts +39 -0
- package/dist/popover/PopoverBackdrop.svelte +56 -0
- package/dist/popover/PopoverBackdrop.svelte.d.ts +43 -0
- package/dist/popover/PopoverButton.svelte +246 -0
- package/dist/popover/PopoverButton.svelte.d.ts +42 -0
- package/dist/popover/PopoverGroup.svelte +43 -0
- package/dist/popover/PopoverGroup.svelte.d.ts +31 -0
- package/dist/popover/PopoverPanel.svelte +274 -0
- package/dist/popover/PopoverPanel.svelte.d.ts +51 -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.d.ts +9 -11
- package/dist/portal/Portal.svelte.d.ts +2 -6
- package/dist/portal/PortalGroup.svelte.d.ts +9 -11
- package/dist/select/Select.svelte +74 -0
- package/dist/select/Select.svelte.d.ts +46 -0
- package/dist/select/index.d.ts +1 -0
- package/dist/select/index.js +1 -0
- package/dist/switch/Switch.svelte +30 -20
- package/dist/switch/Switch.svelte.d.ts +10 -12
- package/dist/switch/SwitchGroup.svelte.d.ts +8 -10
- package/dist/tabs/Tab.svelte +8 -9
- package/dist/tabs/Tab.svelte.d.ts +9 -11
- package/dist/tabs/TabGroup.svelte +27 -190
- package/dist/tabs/TabGroup.svelte.d.ts +9 -31
- package/dist/tabs/TabList.svelte +4 -4
- package/dist/tabs/TabList.svelte.d.ts +8 -10
- package/dist/tabs/TabPanel.svelte +4 -5
- package/dist/tabs/TabPanel.svelte.d.ts +9 -11
- package/dist/tabs/TabPanels.svelte +3 -3
- package/dist/tabs/TabPanels.svelte.d.ts +8 -10
- package/dist/tabs/context.svelte.d.ts +31 -0
- package/dist/tabs/context.svelte.js +134 -0
- package/dist/textarea/Textarea.svelte +4 -4
- package/dist/textarea/Textarea.svelte.d.ts +21 -20
- package/dist/transition/InternalTransitionChild.svelte.d.ts +9 -11
- package/dist/transition/Transition.svelte.d.ts +9 -11
- package/dist/transition/TransitionChild.svelte.d.ts +9 -11
- package/dist/transition/context.svelte.js +2 -2
- package/dist/utils/DisabledProvider.svelte +6 -0
- package/dist/utils/DisabledProvider.svelte.d.ts +6 -0
- package/dist/utils/ElementOrComponent.svelte +2 -2
- package/dist/utils/ElementOrComponent.svelte.d.ts +12 -11
- package/dist/utils/Generic.svelte +10 -8
- package/dist/utils/Generic.svelte.d.ts +12 -15
- package/dist/utils/StableCollection.svelte.d.ts +2 -18
- package/dist/utils/alternative-types.d.ts +1 -2
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +17 -0
- package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte.d.ts +7 -0
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +50 -0
- package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte.d.ts +25 -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/types.js +1 -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 +182 -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/style.d.ts +2 -0
- package/dist/utils/style.js +6 -0
- package/dist/utils/types.d.ts +9 -13
- package/package.json +27 -26
- package/dist/dialog/InternalDialog.svelte +0 -233
- package/dist/dialog/InternalDialog.svelte.d.ts +0 -42
- package/dist/internal/HoistFormFields.svelte +0 -11
- package/dist/internal/HoistFormFields.svelte.d.ts +0 -21
- package/dist/internal/id.d.ts +0 -8
- package/dist/internal/id.js +0 -11
|
@@ -1,17 +1,47 @@
|
|
|
1
|
-
<script lang="ts" module>import {
|
|
2
|
-
import { useOpenClosed } from "../internal/open-closed.js";
|
|
3
|
-
import { RenderFeatures } from "../utils/render.js";
|
|
4
|
-
import { getContext } from "svelte";
|
|
5
|
-
import InternalDialog from "./InternalDialog.svelte";
|
|
6
|
-
import Transition from "../transition/Transition.svelte";
|
|
1
|
+
<script lang="ts" module>import { RenderFeatures } from "../utils/render.js";
|
|
7
2
|
export const DEFAULT_DIALOG_TAG = "div";
|
|
8
3
|
export const DialogRenderFeatures = RenderFeatures.RenderStrategy | RenderFeatures.Static;
|
|
9
4
|
</script>
|
|
10
5
|
|
|
11
|
-
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_DIALOG_TAG">
|
|
6
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_DIALOG_TAG">import { useId } from "../hooks/use-id.js";
|
|
7
|
+
import { useMainTreeNode, useRootContainers } from "../hooks/use-root-containers.svelte.js";
|
|
8
|
+
import { clearOpenClosedContext, State, useOpenClosed } from "../internal/open-closed.js";
|
|
9
|
+
import { useNestedPortals } from "../portal/InternalPortal.svelte";
|
|
10
|
+
import { getOwnerDocument } from "../utils/owner.js";
|
|
11
|
+
import { useInertOthers } from "../hooks/use-inert-others.svelte.js";
|
|
12
|
+
import { useOutsideClick } from "../hooks/use-outside-click.svelte.js";
|
|
13
|
+
import { useEscape } from "../hooks/use-escape.svelte.js";
|
|
14
|
+
import { useScrollLock } from "../hooks/use-scroll-lock.svelte.js";
|
|
15
|
+
import { useOnDisappear } from "../hooks/use-on-disappear.svelte.js";
|
|
16
|
+
import { setContext } from "svelte";
|
|
17
|
+
import { useIsTouchDevice } from "../hooks/use-is-touch-device.svelte.js";
|
|
18
|
+
import FocusTrap, { FocusTrapFeatures } from "../focus-trap/FocusTrap.svelte";
|
|
19
|
+
import Portal from "../portal/Portal.svelte";
|
|
20
|
+
import PortalGroup from "../portal/PortalGroup.svelte";
|
|
21
|
+
import ForcePortalRoot from "../internal/ForcePortalRoot.svelte";
|
|
22
|
+
import { createCloseContext } from "../internal/close-provider.js";
|
|
23
|
+
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
24
|
+
import { DialogStates } from "./context.svelte.js";
|
|
25
|
+
import { useDescriptions } from "../description/context.svelte.js";
|
|
26
|
+
import MainTreeProvider from "../internal/MainTreeProvider.svelte";
|
|
27
|
+
import Transition from "../transition/Transition.svelte";
|
|
28
|
+
const internalId = useId();
|
|
29
|
+
let {
|
|
30
|
+
ref = $bindable(),
|
|
31
|
+
id = `headlessui-dialog-${internalId}`,
|
|
32
|
+
open: theirOpen,
|
|
33
|
+
onclose,
|
|
34
|
+
initialFocus,
|
|
35
|
+
role: theirRole = "dialog",
|
|
36
|
+
autofocus = true,
|
|
37
|
+
__demoMode = false,
|
|
38
|
+
unmount = false,
|
|
39
|
+
transition = false,
|
|
40
|
+
...theirProps
|
|
41
|
+
} = $props();
|
|
12
42
|
const usesOpenClosedState = useOpenClosed();
|
|
13
|
-
const hasOpen = $derived(
|
|
14
|
-
const hasOnClose = $derived(
|
|
43
|
+
const hasOpen = $derived(theirOpen !== void 0 || usesOpenClosedState);
|
|
44
|
+
const hasOnClose = $derived(theirProps.hasOwnProperty("onclose"));
|
|
15
45
|
$effect(() => {
|
|
16
46
|
if (!hasOpen && !hasOnClose) {
|
|
17
47
|
throw new Error(`You have to provide an \`open\` and an \`onclose\` prop to the \`Dialog\` component.`);
|
|
@@ -27,25 +57,223 @@ $effect(() => {
|
|
|
27
57
|
`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${open}`
|
|
28
58
|
);
|
|
29
59
|
}
|
|
30
|
-
if (typeof
|
|
60
|
+
if (typeof theirProps.onclose !== "function") {
|
|
31
61
|
throw new Error(
|
|
32
|
-
`You provided an \`onclose\` prop to the \`Dialog\`, but the value is not a function. Received: ${
|
|
62
|
+
`You provided an \`onclose\` prop to the \`Dialog\`, but the value is not a function. Received: ${theirProps.onclose}`
|
|
33
63
|
);
|
|
34
64
|
}
|
|
35
65
|
});
|
|
36
|
-
|
|
66
|
+
let didWarnOnRole = $state(false);
|
|
67
|
+
const role = $derived.by(() => {
|
|
68
|
+
if (theirRole === "dialog" || theirRole === "alertdialog") {
|
|
69
|
+
return theirRole;
|
|
70
|
+
}
|
|
71
|
+
if (!didWarnOnRole) {
|
|
72
|
+
didWarnOnRole = true;
|
|
73
|
+
console.warn(
|
|
74
|
+
`Invalid role [${theirRole}] passed to <Dialog />. Only \`dialog\` and and \`alertdialog\` are supported. Using \`dialog\` instead.`
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
return "dialog";
|
|
78
|
+
});
|
|
79
|
+
const open = $derived(
|
|
80
|
+
theirOpen === void 0 && usesOpenClosedState !== null ? (usesOpenClosedState.value & State.Open) === State.Open : theirOpen
|
|
81
|
+
);
|
|
82
|
+
const ownerDocument = $derived(getOwnerDocument(ref));
|
|
83
|
+
const dialogState = $derived(open ? DialogStates.Open : DialogStates.Closed);
|
|
84
|
+
let _state = $state({
|
|
85
|
+
titleId: null,
|
|
86
|
+
panelRef: null
|
|
87
|
+
});
|
|
88
|
+
const close = $derived(() => onclose(false));
|
|
89
|
+
const setTitleId = (id2) => _state.titleId = id2;
|
|
90
|
+
const enabled = $derived(dialogState === DialogStates.Open);
|
|
91
|
+
const nestedPortals = useNestedPortals();
|
|
92
|
+
const { portals } = $derived(nestedPortals);
|
|
93
|
+
const defaultContainer = {
|
|
94
|
+
get current() {
|
|
95
|
+
return _state.panelRef ?? ref;
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
const mainTreeNode = useMainTreeNode();
|
|
99
|
+
let { resolvedContainers: resolvedRootContainers } = $derived(
|
|
100
|
+
useRootContainers({
|
|
101
|
+
get mainTreeNode() {
|
|
102
|
+
return mainTreeNode.node;
|
|
103
|
+
},
|
|
104
|
+
get portals() {
|
|
105
|
+
return portals;
|
|
106
|
+
},
|
|
107
|
+
get defaultContainers() {
|
|
108
|
+
return defaultContainer.current ? [defaultContainer.current] : [];
|
|
109
|
+
}
|
|
110
|
+
})
|
|
111
|
+
);
|
|
112
|
+
const isClosing = $derived(
|
|
113
|
+
usesOpenClosedState !== null ? (usesOpenClosedState.value & State.Closing) === State.Closing : false
|
|
114
|
+
);
|
|
115
|
+
const inertOthersEnabled = $derived(__demoMode ? false : isClosing ? false : enabled);
|
|
116
|
+
useInertOthers({
|
|
117
|
+
get enabled() {
|
|
118
|
+
return inertOthersEnabled;
|
|
119
|
+
},
|
|
120
|
+
elements: {
|
|
121
|
+
get allowed() {
|
|
122
|
+
return [
|
|
123
|
+
// Allow the headlessui-portal of the Dialog to be interactive. This
|
|
124
|
+
// contains the current dialog and the necessary focus guard elements.
|
|
125
|
+
ref?.closest("[data-headlessui-portal]") ?? null
|
|
126
|
+
];
|
|
127
|
+
},
|
|
128
|
+
get disallowed() {
|
|
129
|
+
return [
|
|
130
|
+
// Disallow the "main" tree root node
|
|
131
|
+
mainTreeNode.node?.closest("body > *:not(#headlessui-portal-root)") ?? null
|
|
132
|
+
];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
useOutsideClick({
|
|
137
|
+
get enabled() {
|
|
138
|
+
return enabled;
|
|
139
|
+
},
|
|
140
|
+
get containers() {
|
|
141
|
+
return resolvedRootContainers;
|
|
142
|
+
},
|
|
143
|
+
cb(event) {
|
|
144
|
+
event.preventDefault();
|
|
145
|
+
close();
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
useEscape({
|
|
149
|
+
get enabled() {
|
|
150
|
+
return enabled;
|
|
151
|
+
},
|
|
152
|
+
get view() {
|
|
153
|
+
return ownerDocument?.defaultView ?? null;
|
|
154
|
+
},
|
|
155
|
+
cb(event) {
|
|
156
|
+
event.preventDefault();
|
|
157
|
+
event.stopPropagation();
|
|
158
|
+
if (document.activeElement && "blur" in document.activeElement && typeof document.activeElement.blur === "function") {
|
|
159
|
+
document.activeElement.blur();
|
|
160
|
+
}
|
|
161
|
+
close();
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
const scrollLockEnabled = $derived(__demoMode ? false : isClosing ? false : enabled);
|
|
165
|
+
useScrollLock({
|
|
166
|
+
get enabled() {
|
|
167
|
+
return scrollLockEnabled;
|
|
168
|
+
},
|
|
169
|
+
get ownerDocument() {
|
|
170
|
+
return ownerDocument;
|
|
171
|
+
},
|
|
172
|
+
resolveAllowedContainers() {
|
|
173
|
+
return resolvedRootContainers;
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
useOnDisappear({
|
|
177
|
+
get enabled() {
|
|
178
|
+
return enabled;
|
|
179
|
+
},
|
|
180
|
+
get ref() {
|
|
181
|
+
return ref;
|
|
182
|
+
},
|
|
183
|
+
get ondisappear() {
|
|
184
|
+
return close;
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
const describedby = useDescriptions();
|
|
188
|
+
setContext("DialogContext", {
|
|
189
|
+
get titleId() {
|
|
190
|
+
return _state.titleId;
|
|
191
|
+
},
|
|
192
|
+
get panelRef() {
|
|
193
|
+
return _state.panelRef;
|
|
194
|
+
},
|
|
195
|
+
get dialogState() {
|
|
196
|
+
return dialogState;
|
|
197
|
+
},
|
|
198
|
+
get close() {
|
|
199
|
+
return close;
|
|
200
|
+
},
|
|
201
|
+
get unmount() {
|
|
202
|
+
return unmount;
|
|
203
|
+
},
|
|
204
|
+
setTitleId
|
|
205
|
+
});
|
|
206
|
+
const slot = $derived({ open: dialogState === DialogStates.Open });
|
|
207
|
+
const ourProps = $derived({
|
|
208
|
+
id,
|
|
209
|
+
role,
|
|
210
|
+
tabIndex: -1,
|
|
211
|
+
"aria-modal": __demoMode ? void 0 : dialogState === DialogStates.Open ? true : void 0,
|
|
212
|
+
"aria-labelledby": _state.titleId,
|
|
213
|
+
"aria-describedby": describedby.value,
|
|
214
|
+
unmount
|
|
215
|
+
});
|
|
216
|
+
const shouldMoveFocusInside = !useIsTouchDevice().value;
|
|
217
|
+
const focusTrapFeatures = $derived.by(() => {
|
|
218
|
+
let focusTrapFeatures2 = FocusTrapFeatures.None;
|
|
219
|
+
if (enabled && !__demoMode) {
|
|
220
|
+
focusTrapFeatures2 |= FocusTrapFeatures.RestoreFocus;
|
|
221
|
+
focusTrapFeatures2 |= FocusTrapFeatures.TabLock;
|
|
222
|
+
if (autofocus) {
|
|
223
|
+
focusTrapFeatures2 |= FocusTrapFeatures.AutoFocus;
|
|
224
|
+
}
|
|
225
|
+
if (shouldMoveFocusInside) {
|
|
226
|
+
focusTrapFeatures2 |= FocusTrapFeatures.InitialFocus;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return focusTrapFeatures2;
|
|
230
|
+
});
|
|
231
|
+
clearOpenClosedContext();
|
|
232
|
+
createCloseContext({
|
|
233
|
+
get close() {
|
|
234
|
+
return close;
|
|
235
|
+
}
|
|
236
|
+
});
|
|
37
237
|
</script>
|
|
38
238
|
|
|
39
|
-
{#
|
|
239
|
+
{#snippet internal(transitionProps?: Record<string, any>)}
|
|
240
|
+
<ForcePortalRoot force={true}>
|
|
241
|
+
<Portal>
|
|
242
|
+
<PortalGroup target={ref ?? null}>
|
|
243
|
+
<ForcePortalRoot force={false}>
|
|
244
|
+
<FocusTrap
|
|
245
|
+
{initialFocus}
|
|
246
|
+
initialFocusFallback={ref}
|
|
247
|
+
containers={resolvedRootContainers}
|
|
248
|
+
features={focusTrapFeatures}
|
|
249
|
+
>
|
|
250
|
+
<ElementOrComponent
|
|
251
|
+
{ourProps}
|
|
252
|
+
theirProps={{ ...theirProps, ...transitionProps }}
|
|
253
|
+
slots={slot}
|
|
254
|
+
defaultTag={DEFAULT_DIALOG_TAG}
|
|
255
|
+
features={DialogRenderFeatures}
|
|
256
|
+
visible={dialogState === DialogStates.Open}
|
|
257
|
+
name="Dialog"
|
|
258
|
+
bind:ref
|
|
259
|
+
/>
|
|
260
|
+
</FocusTrap>
|
|
261
|
+
</ForcePortalRoot>
|
|
262
|
+
</PortalGroup>
|
|
263
|
+
</Portal>
|
|
264
|
+
</ForcePortalRoot>
|
|
265
|
+
{/snippet}
|
|
266
|
+
|
|
267
|
+
{#if (open !== undefined || transition) && !theirProps.static}
|
|
40
268
|
<MainTreeProvider>
|
|
41
|
-
<Transition show={open} {transition} unmount={
|
|
42
|
-
{#snippet children(
|
|
43
|
-
|
|
269
|
+
<Transition show={open} {transition} unmount={theirProps.unmount} {ref}>
|
|
270
|
+
{#snippet children({ props })}
|
|
271
|
+
{@render internal(props)}
|
|
44
272
|
{/snippet}
|
|
45
273
|
</Transition>
|
|
46
274
|
</MainTreeProvider>
|
|
47
275
|
{:else}
|
|
48
276
|
<MainTreeProvider>
|
|
49
|
-
|
|
277
|
+
{@render internal()}
|
|
50
278
|
</MainTreeProvider>
|
|
51
279
|
{/if}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { type PropsForFeatures } from "../utils/render.js";
|
|
2
1
|
import type { ElementType, Props } from "../utils/types.js";
|
|
3
|
-
import { type
|
|
2
|
+
import { type PropsForFeatures } from "../utils/render.js";
|
|
4
3
|
export declare const DEFAULT_DIALOG_TAG: "div";
|
|
5
4
|
export type DialogRenderPropArg = {
|
|
6
5
|
open: boolean;
|
|
@@ -8,6 +7,7 @@ export type DialogRenderPropArg = {
|
|
|
8
7
|
type DialogPropsWeControl = "aria-describedby" | "aria-labelledby" | "aria-modal";
|
|
9
8
|
export declare const DialogRenderFeatures: number;
|
|
10
9
|
export type DialogProps<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG> = Props<TTag, DialogRenderPropArg, DialogPropsWeControl, PropsForFeatures<typeof DialogRenderFeatures> & {
|
|
10
|
+
as?: TTag;
|
|
11
11
|
id?: string;
|
|
12
12
|
open?: boolean;
|
|
13
13
|
onclose(value: boolean): void;
|
|
@@ -17,19 +17,21 @@ export type DialogProps<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG> =
|
|
|
17
17
|
transition?: boolean;
|
|
18
18
|
__demoMode?: boolean;
|
|
19
19
|
}>;
|
|
20
|
-
export type DialogChildren = Snippet<[DialogRenderPropArg]>;
|
|
21
20
|
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG> {
|
|
22
21
|
props(): {
|
|
23
22
|
as?: TTag | undefined;
|
|
24
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "
|
|
25
|
-
children?: import("
|
|
23
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "autofocus" | "unmount" | "static" | "id" | "role" | "onclose" | "initialFocus" | "transition" | DialogPropsWeControl | "open" | "__demoMode"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
24
|
+
children?: import("svelte").Snippet<[{
|
|
25
|
+
slot: DialogRenderPropArg;
|
|
26
|
+
props: Record<string, any>;
|
|
27
|
+
}]> | undefined;
|
|
28
|
+
class?: string | ((bag: DialogRenderPropArg) => string) | null | undefined;
|
|
26
29
|
ref?: HTMLElement;
|
|
27
|
-
} &
|
|
28
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: DialogRenderPropArg) => string) | undefined;
|
|
29
|
-
} : {}) & {
|
|
30
|
+
} & {
|
|
30
31
|
static?: boolean | undefined;
|
|
31
32
|
unmount?: boolean | undefined;
|
|
32
33
|
} & {
|
|
34
|
+
as?: TTag | undefined;
|
|
33
35
|
id?: string;
|
|
34
36
|
open?: boolean;
|
|
35
37
|
onclose(value: boolean): void;
|
|
@@ -39,9 +41,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_DIALOG
|
|
|
39
41
|
transition?: boolean;
|
|
40
42
|
__demoMode?: boolean;
|
|
41
43
|
};
|
|
42
|
-
events(): {}
|
|
43
|
-
[evt: string]: CustomEvent<any>;
|
|
44
|
-
};
|
|
44
|
+
events(): {};
|
|
45
45
|
slots(): {};
|
|
46
46
|
bindings(): "ref";
|
|
47
47
|
exports(): {};
|
|
@@ -50,9 +50,7 @@ interface $$IsomorphicComponent {
|
|
|
50
50
|
new <TTag extends ElementType = typeof DEFAULT_DIALOG_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']>> & {
|
|
51
51
|
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
52
52
|
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
53
|
-
<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
54
|
-
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
55
|
-
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
53
|
+
<TTag extends ElementType = typeof DEFAULT_DIALOG_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
56
54
|
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
57
55
|
}
|
|
58
56
|
declare const Dialog: $$IsomorphicComponent;
|
|
@@ -9,17 +9,17 @@ export type DialogBackdropProps<TTag extends ElementType = typeof DEFAULT_BACKDR
|
|
|
9
9
|
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG> {
|
|
10
10
|
props(): {
|
|
11
11
|
as?: TTag | undefined;
|
|
12
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "
|
|
13
|
-
children?: import("
|
|
12
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "transition"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
|
|
13
|
+
children?: import("svelte").Snippet<[{
|
|
14
|
+
slot: BackdropRenderPropArg;
|
|
15
|
+
props: Record<string, any>;
|
|
16
|
+
}]> | undefined;
|
|
17
|
+
class?: string | ((bag: BackdropRenderPropArg) => string) | null | undefined;
|
|
14
18
|
ref?: HTMLElement;
|
|
15
|
-
} &
|
|
16
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: BackdropRenderPropArg) => string) | undefined;
|
|
17
|
-
} : {}) & {
|
|
19
|
+
} & {
|
|
18
20
|
transition?: boolean;
|
|
19
21
|
};
|
|
20
|
-
events(): {}
|
|
21
|
-
[evt: string]: CustomEvent<any>;
|
|
22
|
-
};
|
|
22
|
+
events(): {};
|
|
23
23
|
slots(): {};
|
|
24
24
|
bindings(): "ref";
|
|
25
25
|
exports(): {};
|
|
@@ -28,9 +28,7 @@ interface $$IsomorphicComponent {
|
|
|
28
28
|
new <TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag>['props']>, ReturnType<__sveltets_Render<TTag>['events']>, ReturnType<__sveltets_Render<TTag>['slots']>> & {
|
|
29
29
|
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
30
30
|
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
31
|
-
<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
32
|
-
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
33
|
-
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
31
|
+
<TTag extends ElementType = typeof DEFAULT_BACKDROP_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
34
32
|
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
35
33
|
}
|
|
36
34
|
declare const DialogBackdrop: $$IsomorphicComponent;
|
|
@@ -6,7 +6,6 @@ import { DialogStates, useDialogContext } from "./context.svelte.js";
|
|
|
6
6
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
7
7
|
import { mergeProps } from "../utils/render.js";
|
|
8
8
|
import TransitionChild from "../transition/TransitionChild.svelte";
|
|
9
|
-
import { onMount } from "svelte";
|
|
10
9
|
let internalId = useId();
|
|
11
10
|
let {
|
|
12
11
|
ref = $bindable(),
|
|
@@ -30,7 +29,7 @@ const ourProps = $derived(
|
|
|
30
29
|
|
|
31
30
|
{#if transition}
|
|
32
31
|
<TransitionChild {unmount} {ref}>
|
|
33
|
-
{#snippet children(slot, props)}
|
|
32
|
+
{#snippet children({ slot, props })}
|
|
34
33
|
<ElementOrComponent
|
|
35
34
|
ourProps={{ ...ourProps, ...props }}
|
|
36
35
|
{theirProps}
|
|
@@ -10,18 +10,18 @@ export type DialogPanelProps<TTag extends ElementType = typeof DEFAULT_PANEL_TAG
|
|
|
10
10
|
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_PANEL_TAG> {
|
|
11
11
|
props(): {
|
|
12
12
|
as?: TTag | undefined;
|
|
13
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "
|
|
14
|
-
children?: import("
|
|
13
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "id" | "transition"> 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("svelte").Snippet<[{
|
|
15
|
+
slot: PanelRenderPropArg;
|
|
16
|
+
props: Record<string, any>;
|
|
17
|
+
}]> | undefined;
|
|
18
|
+
class?: string | ((bag: PanelRenderPropArg) => string) | null | undefined;
|
|
15
19
|
ref?: HTMLElement;
|
|
16
|
-
} &
|
|
17
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: PanelRenderPropArg) => string) | undefined;
|
|
18
|
-
} : {}) & {
|
|
20
|
+
} & {
|
|
19
21
|
id?: string;
|
|
20
22
|
transition?: boolean;
|
|
21
23
|
};
|
|
22
|
-
events(): {}
|
|
23
|
-
[evt: string]: CustomEvent<any>;
|
|
24
|
-
};
|
|
24
|
+
events(): {};
|
|
25
25
|
slots(): {};
|
|
26
26
|
bindings(): "ref";
|
|
27
27
|
exports(): {};
|
|
@@ -30,9 +30,7 @@ interface $$IsomorphicComponent {
|
|
|
30
30
|
new <TTag extends ElementType = typeof DEFAULT_PANEL_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']>> & {
|
|
31
31
|
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
32
32
|
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
|
-
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
34
|
-
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
35
|
-
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
|
+
<TTag extends ElementType = typeof DEFAULT_PANEL_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
36
34
|
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
37
35
|
}
|
|
38
36
|
declare const DialogPanel: $$IsomorphicComponent;
|
|
@@ -7,15 +7,15 @@ export type DialogTitleProps<TTag extends ElementType = typeof DEFAULT_TITLE_TAG
|
|
|
7
7
|
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TITLE_TAG> {
|
|
8
8
|
props(): {
|
|
9
9
|
as?: TTag | undefined;
|
|
10
|
-
} & (Exclude<keyof PropsOf<TTag>, "as" | "children" | "
|
|
11
|
-
children?: import("
|
|
10
|
+
} & (Exclude<keyof PropsOf<TTag>, "slot" | "as" | "children" | "class" | "ref"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
|
|
11
|
+
children?: import("svelte").Snippet<[{
|
|
12
|
+
slot: TitleRenderPropArg;
|
|
13
|
+
props: Record<string, any>;
|
|
14
|
+
}]> | undefined;
|
|
15
|
+
class?: string | ((bag: TitleRenderPropArg) => string) | null | undefined;
|
|
12
16
|
ref?: HTMLElement;
|
|
13
|
-
} & (true extends (PropsOf<TTag> extends infer T_1 ? T_1 extends 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) ? {
|
|
14
|
-
class?: PropsOf<TTag>["class"] | ((bag: TitleRenderPropArg) => string) | undefined;
|
|
15
|
-
} : {});
|
|
16
|
-
events(): {} & {
|
|
17
|
-
[evt: string]: CustomEvent<any>;
|
|
18
17
|
};
|
|
18
|
+
events(): {};
|
|
19
19
|
slots(): {};
|
|
20
20
|
bindings(): "ref";
|
|
21
21
|
exports(): {};
|
|
@@ -24,9 +24,7 @@ interface $$IsomorphicComponent {
|
|
|
24
24
|
new <TTag extends ElementType = typeof DEFAULT_TITLE_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']>> & {
|
|
25
25
|
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
26
26
|
} & ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
27
|
-
<TTag extends ElementType = typeof DEFAULT_TITLE_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
|
|
28
|
-
$$events?: ReturnType<__sveltets_Render<TTag>['events']>;
|
|
29
|
-
}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
27
|
+
<TTag extends ElementType = typeof DEFAULT_TITLE_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
30
28
|
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
31
29
|
}
|
|
32
30
|
declare const DialogTitle: $$IsomorphicComponent;
|
|
@@ -6,7 +6,7 @@ export var DialogStates;
|
|
|
6
6
|
})(DialogStates || (DialogStates = {}));
|
|
7
7
|
export function useDialogContext(component) {
|
|
8
8
|
const context = getContext("DialogContext");
|
|
9
|
-
if (context
|
|
9
|
+
if (!context) {
|
|
10
10
|
let err = new Error(`<${component} /> is missing a parent <Dialog /> component.`);
|
|
11
11
|
if (Error.captureStackTrace)
|
|
12
12
|
Error.captureStackTrace(err, useDialogContext);
|
package/dist/field/Field.svelte
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
<script lang="ts" module>let DEFAULT_FIELD_TAG = "div";
|
|
2
2
|
</script>
|
|
3
3
|
|
|
4
|
-
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_FIELD_TAG">import {
|
|
4
|
+
<script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_FIELD_TAG">import { provideDisabled } from "../hooks/use-disabled.js";
|
|
5
5
|
import { createIdContext } from "../utils/id.js";
|
|
6
|
-
import { stateFromSlot } from "../utils/state.js";
|
|
7
6
|
import { nanoid } from "nanoid";
|
|
8
|
-
import { setContext } from "svelte";
|
|
9
7
|
import { useLabels } from "../label/context.svelte.js";
|
|
10
8
|
import { useDescriptions } from "../description/context.svelte.js";
|
|
11
9
|
import ElementOrComponent from "../utils/ElementOrComponent.svelte";
|
|
12
|
-
|
|
10
|
+
import FormFieldsProvider from "../internal/FormFieldsProvider.svelte";
|
|
11
|
+
let {
|
|
12
|
+
ref = $bindable(),
|
|
13
|
+
disabled: ownDisabled = false,
|
|
14
|
+
children,
|
|
15
|
+
...theirProps
|
|
16
|
+
} = $props();
|
|
13
17
|
const inputId = `headlessui-control-${nanoid(8)}`;
|
|
14
18
|
createIdContext(inputId);
|
|
15
19
|
useLabels();
|
|
16
20
|
useDescriptions();
|
|
17
|
-
const
|
|
18
|
-
const disabled = $derived(
|
|
19
|
-
setContext("DisabledContext", {
|
|
20
|
-
get value() {
|
|
21
|
-
return disabled;
|
|
22
|
-
}
|
|
23
|
-
});
|
|
21
|
+
const disabledContext = provideDisabled(() => ownDisabled);
|
|
22
|
+
const { current: disabled } = $derived(disabledContext);
|
|
24
23
|
const slot = $derived({ disabled });
|
|
25
24
|
const ourProps = $derived({
|
|
26
25
|
disabled: disabled || void 0,
|
|
@@ -28,4 +27,17 @@ const ourProps = $derived({
|
|
|
28
27
|
});
|
|
29
28
|
</script>
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
{#snippet wrapper(args: Parameters<Exclude<typeof children, undefined>>[0])}
|
|
31
|
+
<FormFieldsProvider>
|
|
32
|
+
{#if children}{@render children(args)}{/if}
|
|
33
|
+
</FormFieldsProvider>
|
|
34
|
+
{/snippet}
|
|
35
|
+
|
|
36
|
+
<ElementOrComponent
|
|
37
|
+
{ourProps}
|
|
38
|
+
theirProps={{ ...theirProps, children: wrapper }}
|
|
39
|
+
{slot}
|
|
40
|
+
defaultTag={DEFAULT_FIELD_TAG}
|
|
41
|
+
name="Field"
|
|
42
|
+
bind:ref
|
|
43
|
+
/>
|
|
@@ -8,17 +8,17 @@ export type FieldProps<TTag extends ElementType = typeof DEFAULT_FIELD_TAG> = Pr
|
|
|
8
8
|
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_FIELD_TAG> {
|
|
9
9
|
props(): {
|
|
10
10
|
as?: TTag | undefined;
|
|
11
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "
|
|
12
|
-
children?: import("
|
|
11
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "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("svelte").Snippet<[{
|
|
13
|
+
slot: FieldRenderPropArg;
|
|
14
|
+
props: Record<string, any>;
|
|
15
|
+
}]> | undefined;
|
|
16
|
+
class?: string | ((bag: FieldRenderPropArg) => string) | null | undefined;
|
|
13
17
|
ref?: HTMLElement;
|
|
14
|
-
} &
|
|
15
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: FieldRenderPropArg) => string) | undefined;
|
|
16
|
-
} : {}) & {
|
|
18
|
+
} & {
|
|
17
19
|
disabled?: boolean;
|
|
18
20
|
};
|
|
19
|
-
events(): {}
|
|
20
|
-
[evt: string]: CustomEvent<any>;
|
|
21
|
-
};
|
|
21
|
+
events(): {};
|
|
22
22
|
slots(): {};
|
|
23
23
|
bindings(): "ref";
|
|
24
24
|
exports(): {};
|
|
@@ -27,9 +27,7 @@ interface $$IsomorphicComponent {
|
|
|
27
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
28
|
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
29
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']>;
|
|
30
|
+
<TTag extends ElementType = typeof DEFAULT_FIELD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
31
|
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
34
32
|
}
|
|
35
33
|
declare const Field: $$IsomorphicComponent;
|
|
@@ -11,7 +11,7 @@ let {
|
|
|
11
11
|
...theirProps
|
|
12
12
|
} = $props();
|
|
13
13
|
const providedDisabled = useDisabled();
|
|
14
|
-
const disabled = $derived(providedDisabled.
|
|
14
|
+
const disabled = $derived(providedDisabled.current || ownDisabled);
|
|
15
15
|
setContext("DisabledContext", {
|
|
16
16
|
get value() {
|
|
17
17
|
return disabled;
|
|
@@ -8,17 +8,17 @@ export type FieldsetProps<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG
|
|
|
8
8
|
declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG> {
|
|
9
9
|
props(): {
|
|
10
10
|
as?: TTag | undefined;
|
|
11
|
-
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "
|
|
12
|
-
children?: import("
|
|
11
|
+
} & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "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("svelte").Snippet<[{
|
|
13
|
+
slot: FieldsetRenderPropArg;
|
|
14
|
+
props: Record<string, any>;
|
|
15
|
+
}]> | undefined;
|
|
16
|
+
class?: string | ((bag: FieldsetRenderPropArg) => string) | null | undefined;
|
|
13
17
|
ref?: HTMLElement;
|
|
14
|
-
} &
|
|
15
|
-
class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: FieldsetRenderPropArg) => string) | undefined;
|
|
16
|
-
} : {}) & {
|
|
18
|
+
} & {
|
|
17
19
|
disabled?: boolean;
|
|
18
20
|
};
|
|
19
|
-
events(): {}
|
|
20
|
-
[evt: string]: CustomEvent<any>;
|
|
21
|
-
};
|
|
21
|
+
events(): {};
|
|
22
22
|
slots(): {};
|
|
23
23
|
bindings(): "ref";
|
|
24
24
|
exports(): {};
|
|
@@ -27,9 +27,7 @@ interface $$IsomorphicComponent {
|
|
|
27
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
28
|
$$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
|
|
29
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']>;
|
|
30
|
+
<TTag extends ElementType = typeof DEFAULT_FIELDSET_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
|
|
33
31
|
z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
|
|
34
32
|
}
|
|
35
33
|
declare const Fieldset: $$IsomorphicComponent;
|