@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
@@ -0,0 +1,134 @@
1
+ import { sortByDomNode } from "../utils/focus-management.js";
2
+ import { match } from "../utils/match.js";
3
+ import { getContext, setContext } from "svelte";
4
+ export var Direction;
5
+ (function (Direction) {
6
+ Direction[Direction["Forwards"] = 0] = "Forwards";
7
+ Direction[Direction["Backwards"] = 1] = "Backwards";
8
+ })(Direction || (Direction = {}));
9
+ export var Ordering;
10
+ (function (Ordering) {
11
+ Ordering[Ordering["Less"] = -1] = "Less";
12
+ Ordering[Ordering["Equal"] = 0] = "Equal";
13
+ Ordering[Ordering["Greater"] = 1] = "Greater";
14
+ })(Ordering || (Ordering = {}));
15
+ export function useTabs(component) {
16
+ const context = getContext("TabsContext");
17
+ if (!context) {
18
+ const err = new Error(`<${component} /> is missing a parent <TabGroup /> component.`);
19
+ if (Error.captureStackTrace)
20
+ Error.captureStackTrace(err, useTabs);
21
+ throw err;
22
+ }
23
+ return context;
24
+ }
25
+ export const createTabContext = (props) => {
26
+ let _selectedIndex = $state($state.snapshot(props.selectedIndex ?? props.defaultIndex));
27
+ let tabs = $state.raw([]);
28
+ let panels = $state.raw([]);
29
+ const isControlled = $derived(props.selectedIndex !== undefined);
30
+ const context = {
31
+ info: {
32
+ get isControlled() {
33
+ return isControlled;
34
+ },
35
+ },
36
+ get orientation() {
37
+ return props.vertical ? "vertical" : "horizontal";
38
+ },
39
+ get activation() {
40
+ return props.manual ? "manual" : "auto";
41
+ },
42
+ get selectedIndex() {
43
+ return _selectedIndex;
44
+ },
45
+ set selectedIndex(index) {
46
+ if (index === _selectedIndex)
47
+ return;
48
+ tabs = sortByDomNode(tabs, (tab) => tab.current ?? null);
49
+ panels = sortByDomNode(panels, (panel) => panel.current ?? null);
50
+ const focusableTabs = tabs.filter((tab) => !tab?.current?.hasAttribute("disabled"));
51
+ if (
52
+ // Underflow
53
+ index < 0 ||
54
+ // Overflow
55
+ index > tabs.length - 1) {
56
+ const direction = match(Math.sign(index - _selectedIndex), {
57
+ [Ordering.Less]: () => Direction.Backwards,
58
+ [Ordering.Equal]: () => {
59
+ return match(Math.sign(index), {
60
+ [Ordering.Less]: () => Direction.Forwards,
61
+ [Ordering.Equal]: () => Direction.Forwards,
62
+ [Ordering.Greater]: () => Direction.Backwards,
63
+ });
64
+ },
65
+ [Ordering.Greater]: () => Direction.Forwards,
66
+ });
67
+ // If there are no focusable tabs then.
68
+ // We won't change the selected index
69
+ // because it's likely the user is
70
+ // lazy loading tabs and there's
71
+ // nothing to focus on yet
72
+ if (focusableTabs.length === 0)
73
+ return;
74
+ const nextSelectedIndex = match(direction, {
75
+ [Direction.Forwards]: () => tabs.findIndex((tab) => tab === focusableTabs[0]),
76
+ [Direction.Backwards]: () => tabs.findIndex((tab) => tab === focusableTabs[focusableTabs.length - 1]),
77
+ });
78
+ if (nextSelectedIndex !== -1)
79
+ _selectedIndex = nextSelectedIndex;
80
+ return;
81
+ }
82
+ // Middle
83
+ const before = tabs.slice(0, index);
84
+ const after = tabs.slice(index);
85
+ const next = [...after, ...before].find((tab) => focusableTabs.some((_tab) => _tab === tab));
86
+ if (!next)
87
+ return;
88
+ let selectedIndex = tabs.findIndex((tab) => tab === next) ?? _selectedIndex;
89
+ if (selectedIndex === -1)
90
+ selectedIndex = _selectedIndex;
91
+ if (selectedIndex !== _selectedIndex)
92
+ _selectedIndex = selectedIndex;
93
+ },
94
+ get tabs() {
95
+ return tabs;
96
+ },
97
+ get panels() {
98
+ return panels;
99
+ },
100
+ registerTab(tab) {
101
+ const unregisterTab = (tab) => {
102
+ tabs = tabs.filter((_tab) => _tab !== tab);
103
+ };
104
+ if (tabs.some((_tab) => _tab === tab))
105
+ return () => unregisterTab(tab);
106
+ tabs = sortByDomNode([...tabs, tab], (tab) => tab.current ?? null);
107
+ const activeTab = tabs[_selectedIndex];
108
+ // When the component is uncontrolled, then we want to maintain the actively
109
+ // selected tab even if new tabs are inserted or removed before the active
110
+ // tab.
111
+ //
112
+ // When the component is controlled, then we don't want to do this and
113
+ // instead we want to select the tab based on the `selectedIndex` prop.
114
+ if (isControlled) {
115
+ const selectedIndex = tabs.findIndex((tab) => tab === activeTab);
116
+ if (selectedIndex !== _selectedIndex)
117
+ _selectedIndex = selectedIndex;
118
+ }
119
+ return () => unregisterTab(tab);
120
+ },
121
+ registerPanel(panel) {
122
+ const unregisterPanel = (panel) => {
123
+ panels = panels.filter((_panel) => _panel !== panel);
124
+ };
125
+ if (!panels.some((_panel) => _panel === panel)) {
126
+ panels = sortByDomNode([...panels, panel], (panel) => panel.current ?? null);
127
+ }
128
+ return () => unregisterPanel(panel);
129
+ },
130
+ change: props.change,
131
+ };
132
+ setContext("TabsContext", context);
133
+ return context;
134
+ };
@@ -1,9 +1,9 @@
1
1
  <script lang="ts" module>const DEFAULT_TEXTAREA_TAG = "textarea";
2
2
  </script>
3
3
 
4
- <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG">import { htmlid } from "../utils/id.js";
4
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string">import { htmlid } from "../utils/id.js";
5
5
  import { useDisabled } from "../hooks/use-disabled.js";
6
- import { useProvidedId } from "../internal/id.js";
6
+ import { useProvidedId } from "../utils/id.js";
7
7
  import { useLabelledBy } from "../label/context.svelte.js";
8
8
  import { useDescribedBy } from "../description/context.svelte.js";
9
9
  import { useHover } from "../hooks/use-hover.svelte.js";
@@ -16,13 +16,13 @@ const providedDisabled = useDisabled();
16
16
  let {
17
17
  ref = $bindable(),
18
18
  value = $bindable(),
19
- id = providedId?.value || `headlessui-input-${internalId}`,
19
+ id = providedId || `headlessui-input-${internalId}`,
20
20
  disabled: theirDisabled = false,
21
21
  autofocus = false,
22
22
  invalid = false,
23
23
  ...theirProps
24
24
  } = $props();
25
- const disabled = $derived(providedDisabled?.value ?? theirDisabled);
25
+ const disabled = $derived(providedDisabled.current || theirDisabled);
26
26
  const labelledBy = useLabelledBy();
27
27
  const describedBy = useDescribedBy();
28
28
  const { isFocusVisible: focus, focusProps } = $derived(
@@ -8,40 +8,41 @@ type TextareaRenderPropArg = {
8
8
  invalid: boolean;
9
9
  };
10
10
  type TextareaPropsWeControl = "aria-labelledby" | "aria-describedby";
11
- export type TextareaProps<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG> = Props<TTag, TextareaRenderPropArg, TextareaPropsWeControl, {
11
+ export type TextareaProps<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string> = Props<TTag, TextareaRenderPropArg, TextareaPropsWeControl, {
12
+ value?: TValue;
12
13
  disabled?: boolean;
13
14
  invalid?: boolean;
14
- autoFocus?: boolean;
15
+ autofocus?: boolean;
15
16
  }>;
16
- declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG> {
17
+ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string> {
17
18
  props(): {
18
19
  as?: TTag | undefined;
19
- } & (Exclude<keyof PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "invalid" | "disabled" | TextareaPropsWeControl | "autoFocus"> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
20
- children?: import("../utils/types.js").Children<TextareaRenderPropArg> | undefined;
20
+ value?: TValue | undefined;
21
+ } & (Exclude<keyof PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "invalid" | "disabled" | "autofocus" | "value" | TextareaPropsWeControl> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
22
+ children?: import("svelte").Snippet<[{
23
+ slot: TextareaRenderPropArg;
24
+ props: Record<string, any>;
25
+ }]> | undefined;
26
+ class?: string | ((bag: TextareaRenderPropArg) => string) | null | undefined;
21
27
  ref?: HTMLElement;
22
- } & (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) ? {
23
- class?: PropsOf<TTag>["class"] | ((bag: TextareaRenderPropArg) => string) | undefined;
24
- } : {}) & {
28
+ } & {
29
+ value?: TValue | undefined;
25
30
  disabled?: boolean;
26
31
  invalid?: boolean;
27
- autoFocus?: boolean;
28
- };
29
- events(): {} & {
30
- [evt: string]: CustomEvent<any>;
32
+ autofocus?: boolean;
31
33
  };
34
+ events(): {};
32
35
  slots(): {};
33
36
  bindings(): "ref" | "value";
34
37
  exports(): {};
35
38
  }
36
39
  interface $$IsomorphicComponent {
37
- new <TTag extends ElementType = typeof DEFAULT_TEXTAREA_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']>> & {
38
- $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
39
- } & ReturnType<__sveltets_Render<TTag>['exports']>;
40
- <TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
41
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
42
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
43
- z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
40
+ new <TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag, TValue>['props']>, ReturnType<__sveltets_Render<TTag, TValue>['events']>, ReturnType<__sveltets_Render<TTag, TValue>['slots']>> & {
41
+ $$bindings?: ReturnType<__sveltets_Render<TTag, TValue>['bindings']>;
42
+ } & ReturnType<__sveltets_Render<TTag, TValue>['exports']>;
43
+ <TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string>(internal: unknown, props: ReturnType<__sveltets_Render<TTag, TValue>['props']> & {}): ReturnType<__sveltets_Render<TTag, TValue>['exports']>;
44
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
44
45
  }
45
46
  declare const Textarea: $$IsomorphicComponent;
46
- type Textarea<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG> = InstanceType<typeof Textarea<TTag>>;
47
+ type Textarea<TTag extends ElementType = typeof DEFAULT_TEXTAREA_TAG, TValue = string> = InstanceType<typeof Textarea<TTag, TValue>>;
47
48
  export default Textarea;
@@ -23,20 +23,20 @@ export declare function shouldForwardRef<TTag extends ElementType = typeof DEFAU
23
23
  declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> {
24
24
  props(): {
25
25
  as?: TTag | undefined;
26
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "unmount" | "transition" | keyof import("./context.svelte.js").TransitionClasses | keyof import("./context.svelte.js").TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
27
- children?: import("../utils/types.js").Children<HTMLElement> | undefined;
26
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "unmount" | "transition" | keyof import("./context.svelte.js").TransitionClasses | keyof import("./context.svelte.js").TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
27
+ children?: import("svelte").Snippet<[{
28
+ slot: HTMLElement;
29
+ props: Record<string, any>;
30
+ }]> | undefined;
31
+ class?: string | ((bag: HTMLElement) => string) | null | undefined;
28
32
  ref?: HTMLElement;
29
- } & (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) ? {
30
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
31
- } : {}) & {
33
+ } & {
32
34
  unmount?: boolean | undefined;
33
35
  } & import("./context.svelte.js").TransitionClasses & import("./context.svelte.js").TransitionEvents & {
34
36
  transition?: boolean;
35
37
  appear?: boolean;
36
38
  };
37
- events(): {} & {
38
- [evt: string]: CustomEvent<any>;
39
- };
39
+ events(): {};
40
40
  slots(): {};
41
41
  bindings(): "ref";
42
42
  exports(): {};
@@ -45,9 +45,7 @@ interface $$IsomorphicComponent {
45
45
  new <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_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']>> & {
46
46
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
47
47
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
48
- <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
49
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
50
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
48
+ <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
51
49
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
52
50
  }
53
51
  declare const InternalTransitionChild: $$IsomorphicComponent;
@@ -7,12 +7,14 @@ export type TransitionRootProps<TTag extends ElementType = typeof DEFAULT_TRANSI
7
7
  declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> {
8
8
  props(): {
9
9
  as?: TTag | undefined;
10
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "unmount" | "transition" | keyof import("./context.svelte.js").TransitionClasses | keyof import("./context.svelte.js").TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
11
- children?: import("../utils/types.js").Children<HTMLElement> | undefined;
10
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "unmount" | "transition" | keyof import("./context.svelte.js").TransitionClasses | keyof import("./context.svelte.js").TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
11
+ children?: import("svelte").Snippet<[{
12
+ slot: HTMLElement;
13
+ props: Record<string, any>;
14
+ }]> | undefined;
15
+ class?: string | ((bag: HTMLElement) => string) | null | undefined;
12
16
  ref?: HTMLElement;
13
- } & (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) ? {
14
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
15
- } : {}) & {
17
+ } & {
16
18
  unmount?: boolean | undefined;
17
19
  } & import("./context.svelte.js").TransitionClasses & import("./context.svelte.js").TransitionEvents & {
18
20
  transition?: boolean;
@@ -21,9 +23,7 @@ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSI
21
23
  show?: boolean;
22
24
  appear?: boolean;
23
25
  };
24
- events(): {} & {
25
- [evt: string]: CustomEvent<any>;
26
- };
26
+ events(): {};
27
27
  slots(): {};
28
28
  bindings(): "ref";
29
29
  exports(): {};
@@ -32,9 +32,7 @@ interface $$IsomorphicComponent {
32
32
  new <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_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']>> & {
33
33
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
34
34
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
35
- <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
36
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
37
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
35
+ <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
38
36
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
39
37
  }
40
38
  declare const Transition: $$IsomorphicComponent;
@@ -12,20 +12,20 @@ export declare const TransitionChildRenderFeatures = RenderFeatures.RenderStrate
12
12
  declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG> {
13
13
  props(): {
14
14
  as?: TTag | undefined;
15
- } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "unmount" | "transition" | keyof TransitionClasses | keyof TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
16
- children?: import("../utils/types.js").Children<HTMLElement> | undefined;
15
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("slot" | "as" | "children" | "class" | "ref") | "unmount" | "transition" | keyof TransitionClasses | keyof TransitionEvents | "appear"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
16
+ children?: import("svelte").Snippet<[{
17
+ slot: HTMLElement;
18
+ props: Record<string, any>;
19
+ }]> | undefined;
20
+ class?: string | ((bag: HTMLElement) => string) | null | undefined;
17
21
  ref?: HTMLElement;
18
- } & (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) ? {
19
- class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: HTMLElement) => string) | undefined;
20
- } : {}) & {
22
+ } & {
21
23
  unmount?: boolean | undefined;
22
24
  } & TransitionClasses & TransitionEvents & {
23
25
  transition?: boolean;
24
26
  appear?: boolean;
25
27
  };
26
- events(): {} & {
27
- [evt: string]: CustomEvent<any>;
28
- };
28
+ events(): {};
29
29
  slots(): {};
30
30
  bindings(): "ref";
31
31
  exports(): {};
@@ -34,9 +34,7 @@ interface $$IsomorphicComponent {
34
34
  new <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_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']>> & {
35
35
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
36
36
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
37
- <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
38
- $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
39
- }): ReturnType<__sveltets_Render<TTag>['exports']>;
37
+ <TTag extends ElementType = typeof DEFAULT_TRANSITION_CHILD_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {}): ReturnType<__sveltets_Render<TTag>['exports']>;
40
38
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
41
39
  }
42
40
  declare const TransitionChild: $$IsomorphicComponent;
@@ -10,14 +10,14 @@ export var TreeStates;
10
10
  })(TreeStates || (TreeStates = {}));
11
11
  export function useTransitionContext() {
12
12
  const context = getContext("TransitionContext");
13
- if (context === null) {
13
+ if (!context) {
14
14
  throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
15
15
  }
16
16
  return context;
17
17
  }
18
18
  export function useParentNesting() {
19
19
  let context = getContext("NestingContext");
20
- if (context === null) {
20
+ if (!context) {
21
21
  throw new Error("A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.");
22
22
  }
23
23
  return context;
@@ -0,0 +1,6 @@
1
+ <script lang="ts">import { provideDisabled } from "../hooks/use-disabled.js";
2
+ const { disabled, children } = $props();
3
+ provideDisabled(() => disabled ?? false);
4
+ </script>
5
+
6
+ {@render children?.()}
@@ -0,0 +1,6 @@
1
+ import type { Snippet } from "svelte";
2
+ declare const DisabledProvider: import("svelte").Component<{
3
+ disabled?: boolean;
4
+ children?: Snippet;
5
+ }, {}, "">;
6
+ export default DisabledProvider;
@@ -1,4 +1,4 @@
1
- <script lang="ts" generics="TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue">import { mergePropsAdvanced, RenderFeatures, RenderStrategy } from "./render.js";
1
+ <script lang="ts" generics="TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue">import { mergePropsAdvanced, RenderFeatures } from "./render.js";
2
2
  import Generic from "./Generic.svelte";
3
3
  let {
4
4
  ourProps,
@@ -23,4 +23,4 @@ const hiddenProps = $derived(
23
23
  );
24
24
  </script>
25
25
 
26
- {#if render}<Generic {...rest} {...hiddenProps} {slot} tag={defaultTag} {name} bind:ref bind:value bind:checked />{/if}
26
+ {#if render}<Generic {...rest} {...hiddenProps} {slot} tag={defaultTag} bind:ref bind:value bind:checked />{/if}
@@ -6,10 +6,12 @@ declare class __sveltets_Render<TFeature extends RenderFeatures, TTag extends El
6
6
  [x: string]: any;
7
7
  [x: number]: any;
8
8
  } & {
9
- children?: import("./types.js").Children<TSlot> | undefined;
9
+ children?: import("svelte").Snippet<[{
10
+ slot: TSlot;
11
+ props: Record<string, any>;
12
+ }]> | undefined;
13
+ class?: string | ((bag: TSlot) => string) | null | undefined;
10
14
  ref?: HTMLElement;
11
- } & {
12
- class?: any;
13
15
  } & Expand<((TFeature extends RenderFeatures.Static ? {
14
16
  static?: boolean;
15
17
  } : {}) extends infer T ? T extends (TFeature extends RenderFeatures.Static ? {
@@ -21,9 +23,12 @@ declare class __sveltets_Render<TFeature extends RenderFeatures, TTag extends El
21
23
  } : {}) ? T_1 extends any ? (x: T_1) => any : never : never : never) extends (x: infer R) => any ? R : never>> | undefined;
22
24
  theirProps: {
23
25
  as?: TTag | undefined;
24
- children?: import("./types.js").Children<TSlot> | undefined;
26
+ children?: import("svelte").Snippet<[{
27
+ slot: TSlot;
28
+ props: Record<string, any>;
29
+ }]> | undefined;
30
+ class?: string | ((bag: TSlot) => string) | null | undefined;
25
31
  ref?: HTMLElement | undefined;
26
- class?: any;
27
32
  };
28
33
  slot?: TSlot | undefined;
29
34
  slots?: TSlot | undefined;
@@ -35,9 +40,7 @@ declare class __sveltets_Render<TFeature extends RenderFeatures, TTag extends El
35
40
  value?: TValue | undefined;
36
41
  checked?: boolean;
37
42
  };
38
- events(): {} & {
39
- [evt: string]: CustomEvent<any>;
40
- };
43
+ events(): {};
41
44
  slots(): {};
42
45
  bindings(): "ref" | "value" | "checked";
43
46
  exports(): {};
@@ -46,9 +49,7 @@ interface $$IsomorphicComponent {
46
49
  new <TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']>, ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['events']>, ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['slots']>> & {
47
50
  $$bindings?: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['bindings']>;
48
51
  } & ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['exports']>;
49
- <TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']> & {
50
- $$events?: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['events']>;
51
- }): ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['exports']>;
52
+ <TFeature extends RenderFeatures, TTag extends ElementType, TSlot, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['props']> & {}): ReturnType<__sveltets_Render<TFeature, TTag, TSlot, TValue>['exports']>;
52
53
  z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any>['bindings']>;
53
54
  }
54
55
  declare const ElementOrComponent: $$IsomorphicComponent;
@@ -1,8 +1,7 @@
1
- <script lang="ts" generics="TTag extends keyof SvelteHTMLProps, TSlot, TValue">import { stateFromSlot } from "./state.js";
1
+ <script lang="ts" generics="TTag extends ElementType, TSlot, TValue">import { stateFromSlot } from "./state.js";
2
2
  let {
3
3
  slot = {},
4
4
  tag,
5
- name,
6
5
  ref = $bindable(),
7
6
  value = $bindable(),
8
7
  checked = $bindable(),
@@ -18,19 +17,22 @@ const resolvedClass = $derived(
18
17
  </script>
19
18
 
20
19
  {#if as === "svelte:fragment"}
21
- {#if children}{@render children(slot, {
22
- ...props,
23
- ...(resolvedClass ? { class: resolvedClass } : {}),
24
- ...stateFromSlot(slot),
20
+ {#if children}{@render children({
21
+ slot,
22
+ props: {
23
+ ...props,
24
+ ...(resolvedClass ? { class: resolvedClass } : {}),
25
+ ...stateFromSlot(slot),
26
+ },
25
27
  })}{/if}
26
28
  {:else if children}
27
29
  {#if as === "select"}
28
30
  <select bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)} bind:value>
29
- {@render children(slot, {})}
31
+ {@render children({ slot, props: {} })}
30
32
  </select>
31
33
  {:else}
32
34
  <svelte:element this={as} bind:this={ref} {...props} class={resolvedClass} {...stateFromSlot(slot)}>
33
- {@render children(slot, {})}
35
+ {@render children({ slot, props: {} })}
34
36
  </svelte:element>
35
37
  {/if}
36
38
  {:else if as === "input" && props.type === "checkbox"}
@@ -1,35 +1,32 @@
1
- import type { ElementType, SvelteHTMLProps } from "./types.js";
2
- declare class __sveltets_Render<TTag extends keyof SvelteHTMLProps, TSlot, TValue> {
1
+ import type { ElementType } from "./types.js";
2
+ declare class __sveltets_Render<TTag extends ElementType, TSlot, TValue> {
3
3
  props(): {
4
4
  as?: TTag | undefined;
5
5
  slot: TSlot;
6
6
  tag: ElementType;
7
- name: string;
8
7
  ref?: HTMLElement;
9
8
  value?: TValue | undefined;
10
9
  checked?: boolean;
11
- } & (Exclude<keyof import("./types.js").PropsOf<TTag>, "as" | "children" | "refName" | "class"> extends infer T extends keyof import("./types.js").PropsOf<TTag> ? { [P in T]: import("./types.js").PropsOf<TTag>[P]; } : never) & {
12
- children?: import("./types.js").Children<TSlot> | undefined;
10
+ } & (Exclude<keyof import("./types.js").PropsOf<TTag>, "slot" | "as" | "children" | "class" | "ref"> extends infer T extends keyof import("./types.js").PropsOf<TTag> ? { [P in T]: import("./types.js").PropsOf<TTag>[P]; } : never) & {
11
+ children?: import("svelte").Snippet<[{
12
+ slot: TSlot;
13
+ props: Record<string, any>;
14
+ }]> | undefined;
15
+ class?: string | ((bag: TSlot) => string) | null | undefined;
13
16
  ref?: HTMLElement;
14
- } & (true extends (import("./types.js").PropsOf<TTag> extends infer T_1 ? T_1 extends import("./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("./types.js").PropsOf<TTag>["class"] | ((bag: TSlot) => string) | undefined;
16
- } : {});
17
- events(): {} & {
18
- [evt: string]: CustomEvent<any>;
19
17
  };
18
+ events(): {};
20
19
  slots(): {};
21
20
  bindings(): "ref" | "value" | "checked";
22
21
  exports(): {};
23
22
  }
24
23
  interface $$IsomorphicComponent {
25
- new <TTag extends keyof SvelteHTMLProps, TSlot, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['events']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['slots']>> & {
24
+ new <TTag extends ElementType, TSlot, TValue>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['events']>, ReturnType<__sveltets_Render<TTag, TSlot, TValue>['slots']>> & {
26
25
  $$bindings?: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['bindings']>;
27
26
  } & ReturnType<__sveltets_Render<TTag, TSlot, TValue>['exports']>;
28
- <TTag extends keyof SvelteHTMLProps, TSlot, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']> & {
29
- $$events?: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['events']>;
30
- }): ReturnType<__sveltets_Render<TTag, TSlot, TValue>['exports']>;
27
+ <TTag extends ElementType, TSlot, TValue>(internal: unknown, props: ReturnType<__sveltets_Render<TTag, TSlot, TValue>['props']> & {}): ReturnType<__sveltets_Render<TTag, TSlot, TValue>['exports']>;
31
28
  z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
32
29
  }
33
30
  declare const Generic: $$IsomorphicComponent;
34
- type Generic<TTag extends keyof SvelteHTMLProps, TSlot, TValue> = InstanceType<typeof Generic<TTag, TSlot, TValue>>;
31
+ type Generic<TTag extends ElementType, TSlot, TValue> = InstanceType<typeof Generic<TTag, TSlot, TValue>>;
35
32
  export default Generic;
@@ -1,22 +1,6 @@
1
1
  import { type Snippet } from "svelte";
2
2
  export declare function useStableCollectionIndex(group: string): number;
3
- interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> = any, Events extends Record<string, any> = any, Slots extends Record<string, any> = any, Exports = {}, Bindings = string> {
4
- new (options: import('svelte').ComponentConstructorOptions<Props>): import('svelte').SvelteComponent<Props, Events, Slots> & {
5
- $$bindings?: Bindings;
6
- } & Exports;
7
- (internal: unknown, props: Props & {
8
- $$events?: Events;
9
- $$slots?: Slots;
10
- }): Exports & {
11
- $set?: any;
12
- $on?: any;
13
- };
14
- z_$$bindings?: Bindings;
15
- }
16
- declare const StableCollection: $$__sveltets_2_IsomorphicComponent<{
3
+ declare const StableCollection: import("svelte").Component<{
17
4
  children: Snippet;
18
- }, {
19
- [evt: string]: CustomEvent<any>;
20
- }, {}, {}, "">;
21
- type StableCollection = InstanceType<typeof StableCollection>;
5
+ }, {}, "">;
22
6
  export default StableCollection;
@@ -7,9 +7,8 @@ export type ElementType = keyof SvelteHTMLProps;
7
7
  export type Expand<T> = T extends infer O ? {
8
8
  [K in keyof O]: O[K];
9
9
  } : never;
10
- export type Children<TSlot> = Snippet | Snippet<[TSlot, Record<string, any>]>;
11
10
  type OurProps<TSlot> = {
12
- children?: Children<TSlot>;
11
+ children?: Snippet<[TSlot, Record<string, any>]>;
13
12
  ref?: HTMLElement;
14
13
  class?: string | null | ((bag: TSlot) => string);
15
14
  };
@@ -0,0 +1,17 @@
1
+ <script lang="ts" module></script>
2
+
3
+ <script lang="ts">import { setContext } from "svelte";
4
+ import { useFloatingParentNodeId } from "./FloatingTree.svelte";
5
+ const { children, id } = $props();
6
+ const parentId = useFloatingParentNodeId();
7
+ setContext("FloatingNodeContext", {
8
+ get id() {
9
+ return id;
10
+ },
11
+ get parentId() {
12
+ return parentId.value;
13
+ }
14
+ });
15
+ </script>
16
+
17
+ {#if children}{@render children()}{/if}
@@ -0,0 +1,7 @@
1
+ import type { Snippet } from "svelte";
2
+ export interface FloatingNodeProps {
3
+ children?: Snippet;
4
+ id: string;
5
+ }
6
+ declare const FloatingNode: import("svelte").Component<FloatingNodeProps, {}, "">;
7
+ export default FloatingNode;