@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.
Files changed (197) hide show
  1. package/dist/button/Button.svelte +1 -1
  2. package/dist/button/Button.svelte.d.ts +9 -11
  3. package/dist/checkbox/Checkbox.svelte +4 -4
  4. package/dist/checkbox/Checkbox.svelte.d.ts +10 -14
  5. package/dist/close-button/CloseButton.svelte.d.ts +16 -18
  6. package/dist/data-interactive/DataInteractive.svelte.d.ts +8 -11
  7. package/dist/description/Description.svelte +19 -14
  8. package/dist/description/Description.svelte.d.ts +9 -11
  9. package/dist/description/context.svelte.js +14 -16
  10. package/dist/dialog/Dialog.svelte +245 -17
  11. package/dist/dialog/Dialog.svelte.d.ts +12 -14
  12. package/dist/dialog/DialogBackdrop.svelte +1 -1
  13. package/dist/dialog/DialogBackdrop.svelte.d.ts +9 -11
  14. package/dist/dialog/DialogPanel.svelte +1 -2
  15. package/dist/dialog/DialogPanel.svelte.d.ts +9 -11
  16. package/dist/dialog/DialogTitle.svelte.d.ts +8 -10
  17. package/dist/dialog/context.svelte.js +1 -1
  18. package/dist/field/Field.svelte +24 -12
  19. package/dist/field/Field.svelte.d.ts +9 -11
  20. package/dist/fieldset/Fieldset.svelte +1 -1
  21. package/dist/fieldset/Fieldset.svelte.d.ts +9 -11
  22. package/dist/focus-trap/FocusTrap.svelte +7 -14
  23. package/dist/focus-trap/FocusTrap.svelte.d.ts +11 -25
  24. package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
  25. package/dist/focus-trap/FocusTrapFeatures.js +15 -0
  26. package/dist/hooks/use-controllable.svelte.js +2 -1
  27. package/dist/hooks/use-did-element-move.svelte.js +5 -10
  28. package/dist/hooks/use-disabled.d.ts +6 -1
  29. package/dist/hooks/use-disabled.js +10 -5
  30. package/dist/hooks/use-event-listener.svelte.d.ts +1 -1
  31. package/dist/hooks/use-event-listener.svelte.js +3 -1
  32. package/dist/hooks/use-root-containers.svelte.d.ts +2 -2
  33. package/dist/hooks/use-root-containers.svelte.js +5 -5
  34. package/dist/hooks/use-tab-direction.svelte.js +1 -1
  35. package/dist/index.d.ts +4 -2
  36. package/dist/index.js +4 -2
  37. package/dist/input/Input.svelte +3 -3
  38. package/dist/input/Input.svelte.d.ts +10 -14
  39. package/dist/internal/FloatingProvider.svelte +12 -0
  40. package/dist/internal/FloatingProvider.svelte.d.ts +6 -0
  41. package/dist/internal/FocusSentinel.svelte.d.ts +2 -18
  42. package/dist/internal/ForcePortalRoot.svelte.d.ts +2 -18
  43. package/dist/internal/FormFields.svelte +22 -19
  44. package/dist/internal/FormFields.svelte.d.ts +2 -18
  45. package/dist/internal/FormFieldsProvider.svelte +13 -0
  46. package/dist/internal/FormFieldsProvider.svelte.d.ts +5 -0
  47. package/dist/internal/FormResolver.svelte.d.ts +2 -18
  48. package/dist/internal/Hidden.svelte +18 -8
  49. package/dist/internal/Hidden.svelte.d.ts +11 -16
  50. package/dist/internal/HiddenFeatures.d.ts +5 -0
  51. package/dist/internal/HiddenFeatures.js +9 -0
  52. package/dist/internal/MainTreeProvider.svelte.d.ts +2 -18
  53. package/dist/internal/Portal.svelte.d.ts +2 -18
  54. package/dist/internal/floating-provider.svelte.d.ts +3 -0
  55. package/dist/internal/floating-provider.svelte.js +206 -0
  56. package/dist/internal/floating.svelte.d.ts +48 -23
  57. package/dist/internal/floating.svelte.js +91 -272
  58. package/dist/internal/form-fields.svelte.d.ts +10 -0
  59. package/dist/internal/form-fields.svelte.js +23 -0
  60. package/dist/label/Label.svelte +6 -5
  61. package/dist/label/Label.svelte.d.ts +9 -11
  62. package/dist/label/context.svelte.js +1 -1
  63. package/dist/legend/Legend.svelte +2 -2
  64. package/dist/legend/Legend.svelte.d.ts +4 -32
  65. package/dist/listbox/Listbox.svelte +47 -68
  66. package/dist/listbox/Listbox.svelte.d.ts +18 -80
  67. package/dist/listbox/ListboxButton.svelte +10 -10
  68. package/dist/listbox/ListboxButton.svelte.d.ts +10 -15
  69. package/dist/listbox/ListboxOption.svelte +10 -6
  70. package/dist/listbox/ListboxOption.svelte.d.ts +9 -12
  71. package/dist/listbox/ListboxOptions.svelte +108 -54
  72. package/dist/listbox/ListboxOptions.svelte.d.ts +9 -12
  73. package/dist/listbox/ListboxSelectedOption.svelte +2 -4
  74. package/dist/listbox/ListboxSelectedOption.svelte.d.ts +14 -16
  75. package/dist/listbox/context.svelte.d.ts +76 -0
  76. package/dist/listbox/context.svelte.js +36 -0
  77. package/dist/listbox/index.d.ts +4 -4
  78. package/dist/listbox/index.js +1 -1
  79. package/dist/menu/Menu.svelte +9 -187
  80. package/dist/menu/Menu.svelte.d.ts +9 -12
  81. package/dist/menu/MenuButton.svelte +4 -2
  82. package/dist/menu/MenuButton.svelte.d.ts +9 -12
  83. package/dist/menu/MenuHeading.svelte.d.ts +9 -12
  84. package/dist/menu/MenuItem.svelte.d.ts +11 -16
  85. package/dist/menu/MenuItems.svelte +15 -11
  86. package/dist/menu/MenuItems.svelte.d.ts +9 -12
  87. package/dist/menu/MenuSection.svelte.d.ts +8 -11
  88. package/dist/menu/MenuSeparator.svelte.d.ts +8 -12
  89. package/dist/menu/context.svelte.d.ts +2 -1
  90. package/dist/menu/context.svelte.js +212 -2
  91. package/dist/menu/index.d.ts +7 -7
  92. package/dist/popover/Popover.svelte +161 -0
  93. package/dist/popover/Popover.svelte.d.ts +39 -0
  94. package/dist/popover/PopoverBackdrop.svelte +56 -0
  95. package/dist/popover/PopoverBackdrop.svelte.d.ts +43 -0
  96. package/dist/popover/PopoverButton.svelte +246 -0
  97. package/dist/popover/PopoverButton.svelte.d.ts +42 -0
  98. package/dist/popover/PopoverGroup.svelte +43 -0
  99. package/dist/popover/PopoverGroup.svelte.d.ts +31 -0
  100. package/dist/popover/PopoverPanel.svelte +274 -0
  101. package/dist/popover/PopoverPanel.svelte.d.ts +51 -0
  102. package/dist/popover/context.svelte.d.ts +51 -0
  103. package/dist/popover/context.svelte.js +108 -0
  104. package/dist/popover/index.d.ts +5 -0
  105. package/dist/popover/index.js +5 -0
  106. package/dist/portal/InternalPortal.svelte.d.ts +9 -11
  107. package/dist/portal/Portal.svelte.d.ts +2 -6
  108. package/dist/portal/PortalGroup.svelte.d.ts +9 -11
  109. package/dist/select/Select.svelte +74 -0
  110. package/dist/select/Select.svelte.d.ts +46 -0
  111. package/dist/select/index.d.ts +1 -0
  112. package/dist/select/index.js +1 -0
  113. package/dist/switch/Switch.svelte +30 -20
  114. package/dist/switch/Switch.svelte.d.ts +10 -12
  115. package/dist/switch/SwitchGroup.svelte.d.ts +8 -10
  116. package/dist/tabs/Tab.svelte +8 -9
  117. package/dist/tabs/Tab.svelte.d.ts +9 -11
  118. package/dist/tabs/TabGroup.svelte +27 -190
  119. package/dist/tabs/TabGroup.svelte.d.ts +9 -31
  120. package/dist/tabs/TabList.svelte +4 -4
  121. package/dist/tabs/TabList.svelte.d.ts +8 -10
  122. package/dist/tabs/TabPanel.svelte +4 -5
  123. package/dist/tabs/TabPanel.svelte.d.ts +9 -11
  124. package/dist/tabs/TabPanels.svelte +3 -3
  125. package/dist/tabs/TabPanels.svelte.d.ts +8 -10
  126. package/dist/tabs/context.svelte.d.ts +31 -0
  127. package/dist/tabs/context.svelte.js +134 -0
  128. package/dist/textarea/Textarea.svelte +4 -4
  129. package/dist/textarea/Textarea.svelte.d.ts +21 -20
  130. package/dist/transition/InternalTransitionChild.svelte.d.ts +9 -11
  131. package/dist/transition/Transition.svelte.d.ts +9 -11
  132. package/dist/transition/TransitionChild.svelte.d.ts +9 -11
  133. package/dist/transition/context.svelte.js +2 -2
  134. package/dist/utils/DisabledProvider.svelte +6 -0
  135. package/dist/utils/DisabledProvider.svelte.d.ts +6 -0
  136. package/dist/utils/ElementOrComponent.svelte +2 -2
  137. package/dist/utils/ElementOrComponent.svelte.d.ts +12 -11
  138. package/dist/utils/Generic.svelte +10 -8
  139. package/dist/utils/Generic.svelte.d.ts +12 -15
  140. package/dist/utils/StableCollection.svelte.d.ts +2 -18
  141. package/dist/utils/alternative-types.d.ts +1 -2
  142. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte +17 -0
  143. package/dist/utils/floating-ui/svelte/components/FloatingNode.svelte.d.ts +7 -0
  144. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte +50 -0
  145. package/dist/utils/floating-ui/svelte/components/FloatingTree.svelte.d.ts +25 -0
  146. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.d.ts +6 -0
  147. package/dist/utils/floating-ui/svelte/hooks/useFloating.svelte.js +158 -0
  148. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.d.ts +11 -0
  149. package/dist/utils/floating-ui/svelte/hooks/useFloatingRootContext.svelte.js +53 -0
  150. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.d.ts +9 -0
  151. package/dist/utils/floating-ui/svelte/hooks/useId.svelte.js +28 -0
  152. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.d.ts +23 -0
  153. package/dist/utils/floating-ui/svelte/hooks/useInteractions.svelte.js +72 -0
  154. package/dist/utils/floating-ui/svelte/index.d.ts +5 -0
  155. package/dist/utils/floating-ui/svelte/index.js +5 -0
  156. package/dist/utils/floating-ui/svelte/inner.svelte.d.ts +83 -0
  157. package/dist/utils/floating-ui/svelte/inner.svelte.js +178 -0
  158. package/dist/utils/floating-ui/svelte/types.d.ts +114 -0
  159. package/dist/utils/floating-ui/svelte/types.js +1 -0
  160. package/dist/utils/floating-ui/svelte/utils/createPubSub.d.ts +5 -0
  161. package/dist/utils/floating-ui/svelte/utils/createPubSub.js +14 -0
  162. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.d.ts +2 -0
  163. package/dist/utils/floating-ui/svelte/utils/getFloatingFocusElement.js +13 -0
  164. package/dist/utils/floating-ui/svelte/utils/log.d.ts +2 -0
  165. package/dist/utils/floating-ui/svelte/utils/log.js +19 -0
  166. package/dist/utils/floating-ui/svelte/utils.d.ts +19 -0
  167. package/dist/utils/floating-ui/svelte/utils.js +136 -0
  168. package/dist/utils/floating-ui/svelte-dom/arrow.d.ts +22 -0
  169. package/dist/utils/floating-ui/svelte-dom/arrow.js +29 -0
  170. package/dist/utils/floating-ui/svelte-dom/index.d.ts +2 -0
  171. package/dist/utils/floating-ui/svelte-dom/index.js +2 -0
  172. package/dist/utils/floating-ui/svelte-dom/types.d.ts +80 -0
  173. package/dist/utils/floating-ui/svelte-dom/types.js +3 -0
  174. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.d.ts +6 -0
  175. package/dist/utils/floating-ui/svelte-dom/useFloating.svelte.js +182 -0
  176. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.d.ts +1 -0
  177. package/dist/utils/floating-ui/svelte-dom/utils/deepEqual.js +50 -0
  178. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.d.ts +1 -0
  179. package/dist/utils/floating-ui/svelte-dom/utils/getDPR.js +7 -0
  180. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.d.ts +1 -0
  181. package/dist/utils/floating-ui/svelte-dom/utils/roundByDPR.js +5 -0
  182. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.d.ts +4 -0
  183. package/dist/utils/floating-ui/svelte-dom/utils/useLatestRef.js +7 -0
  184. package/dist/utils/id.d.ts +1 -1
  185. package/dist/utils/id.js +1 -1
  186. package/dist/utils/index.d.ts +3 -0
  187. package/dist/utils/index.js +3 -0
  188. package/dist/utils/style.d.ts +2 -0
  189. package/dist/utils/style.js +6 -0
  190. package/dist/utils/types.d.ts +9 -13
  191. package/package.json +27 -26
  192. package/dist/dialog/InternalDialog.svelte +0 -233
  193. package/dist/dialog/InternalDialog.svelte.d.ts +0 -42
  194. package/dist/internal/HoistFormFields.svelte +0 -11
  195. package/dist/internal/HoistFormFields.svelte.d.ts +0 -21
  196. package/dist/internal/id.d.ts +0 -8
  197. package/dist/internal/id.js +0 -11
@@ -1,17 +1,47 @@
1
- <script lang="ts" module>import { MainTreeProvider } from "../hooks/use-root-containers.svelte.js";
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">let { ref = $bindable(), transition = false, open, ...rest } = $props();
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(open !== void 0 || usesOpenClosedState);
14
- const hasOnClose = $derived(rest.hasOwnProperty("onclose"));
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 rest.onclose !== "function") {
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: ${rest.onclose}`
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
- const DialogComponent = InternalDialog;
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
- {#if (open !== undefined || transition) && !rest.static}
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={rest.unmount} {ref}>
42
- {#snippet children(slot, props)}
43
- <DialogComponent bind:ref {...props} {...rest} />
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
- <DialogComponent bind:ref {open} {...rest} />
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 Snippet } from "svelte";
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" | "refName" | "class") | "autofocus" | "unmount" | "static" | "id" | "role" | "onclose" | "initialFocus" | DialogPropsWeControl | "open" | "transition" | "__demoMode"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
25
- children?: import("../utils/types.js").Children<DialogRenderPropArg> | undefined;
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
- } & (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) ? {
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;
@@ -16,7 +16,7 @@ const ourProps = mergeProps({
16
16
 
17
17
  {#if transition}
18
18
  <TransitionChild {unmount} {ref}>
19
- {#snippet children(slot, props)}
19
+ {#snippet children({ slot, props })}
20
20
  <ElementOrComponent
21
21
  ourProps={{ ...ourProps, ...props }}
22
22
  {theirProps}
@@ -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" | "refName" | "class") | "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("../utils/types.js").Children<BackdropRenderPropArg> | undefined;
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
- } & (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) ? {
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" | "refName" | "class") | "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("../utils/types.js").Children<PanelRenderPropArg> | undefined;
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
- } & (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: 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" | "refName" | "class"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
11
- children?: import("../utils/types.js").Children<TitleRenderPropArg> | undefined;
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 === null) {
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);
@@ -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 { useDisabled } from "../hooks/use-disabled.js";
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
- let { ref = $bindable(), disabled: ownDisabled = false, ...theirProps } = $props();
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 providedDisabled = useDisabled();
18
- const disabled = $derived(providedDisabled.value || ownDisabled);
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
- <ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_FIELD_TAG} name="Field" bind:ref />
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" | "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;
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
- } & (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
- } : {}) & {
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.value || ownDisabled);
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" | "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;
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
- } & (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
- } : {}) & {
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;