@pzerelles/headlessui-svelte 2.1.1-next.1 → 2.1.2-next.10

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 (187) hide show
  1. package/dist/button/Button.svelte +6 -10
  2. package/dist/button/Button.svelte.d.ts +34 -26
  3. package/dist/checkbox/Checkbox.svelte +43 -25
  4. package/dist/checkbox/Checkbox.svelte.d.ts +42 -28
  5. package/dist/close-button/CloseButton.svelte +5 -4
  6. package/dist/close-button/CloseButton.svelte.d.ts +36 -13
  7. package/dist/combobox/Combobox.svelte +2 -2
  8. package/dist/combobox/Combobox.svelte.d.ts +9 -9
  9. package/dist/data-interactive/DataInteractive.svelte +41 -0
  10. package/dist/data-interactive/DataInteractive.svelte.d.ts +39 -0
  11. package/dist/data-interactive/index.d.ts +1 -0
  12. package/dist/data-interactive/index.js +1 -0
  13. package/dist/description/Description.svelte +10 -53
  14. package/dist/description/Description.svelte.d.ts +15 -32
  15. package/dist/description/context.svelte.d.ts +17 -0
  16. package/dist/description/context.svelte.js +51 -0
  17. package/dist/dialog/Dialog.svelte +51 -0
  18. package/dist/dialog/Dialog.svelte.d.ts +60 -0
  19. package/dist/dialog/DialogBackdrop.svelte +39 -0
  20. package/dist/dialog/DialogBackdrop.svelte.d.ts +38 -0
  21. package/dist/dialog/DialogPanel.svelte +46 -0
  22. package/dist/dialog/DialogPanel.svelte.d.ts +40 -0
  23. package/dist/dialog/DialogTitle.svelte +29 -0
  24. package/dist/dialog/DialogTitle.svelte.d.ts +34 -0
  25. package/dist/dialog/InternalDialog.svelte +233 -0
  26. package/dist/dialog/InternalDialog.svelte.d.ts +42 -0
  27. package/dist/dialog/context.svelte.d.ts +15 -0
  28. package/dist/dialog/context.svelte.js +16 -0
  29. package/dist/dialog/index.d.ts +4 -0
  30. package/dist/dialog/index.js +4 -0
  31. package/dist/field/Field.svelte +8 -11
  32. package/dist/field/Field.svelte.d.ts +21 -17
  33. package/dist/fieldset/Fieldset.svelte +11 -9
  34. package/dist/fieldset/Fieldset.svelte.d.ts +21 -17
  35. package/dist/focus-trap/FocusTrap.svelte +325 -0
  36. package/dist/focus-trap/FocusTrap.svelte.d.ts +46 -0
  37. package/dist/focus-trap/FocusTrapFeatures.d.ts +14 -0
  38. package/dist/focus-trap/FocusTrapFeatures.js +15 -0
  39. package/dist/hooks/use-controllable.svelte.d.ts +1 -1
  40. package/dist/hooks/use-controllable.svelte.js +3 -3
  41. package/dist/hooks/use-escape.svelte.d.ts +5 -0
  42. package/dist/hooks/use-escape.svelte.js +26 -0
  43. package/dist/hooks/use-event-listener.svelte.d.ts +6 -0
  44. package/dist/hooks/use-event-listener.svelte.js +12 -0
  45. package/dist/hooks/use-inert-others.svelte.d.ts +2 -2
  46. package/dist/hooks/use-inert-others.svelte.js +3 -3
  47. package/dist/hooks/use-is-mounted.svelte.d.ts +3 -0
  48. package/dist/hooks/use-is-mounted.svelte.js +14 -0
  49. package/dist/hooks/use-is-touch-device.svelte.d.ts +3 -0
  50. package/dist/hooks/use-is-touch-device.svelte.js +20 -0
  51. package/dist/hooks/use-root-containers.svelte.d.ts +9 -0
  52. package/dist/hooks/use-root-containers.svelte.js +50 -0
  53. package/dist/hooks/use-tab-direction.svelte.d.ts +7 -0
  54. package/dist/hooks/use-tab-direction.svelte.js +25 -0
  55. package/dist/hooks/use-transition.svelte.js +14 -13
  56. package/dist/hooks/use-tree-walker.svelte.d.ts +8 -0
  57. package/dist/hooks/use-tree-walker.svelte.js +19 -0
  58. package/dist/hooks/use-watch.svelte.d.ts +4 -0
  59. package/dist/hooks/use-watch.svelte.js +16 -0
  60. package/dist/hooks/use-window-event.svelte.d.ts +6 -0
  61. package/dist/hooks/use-window-event.svelte.js +12 -0
  62. package/dist/index.d.ts +10 -0
  63. package/dist/index.js +10 -0
  64. package/dist/input/Input.svelte +59 -0
  65. package/dist/input/Input.svelte.d.ts +50 -0
  66. package/dist/input/index.d.ts +1 -0
  67. package/dist/input/index.js +1 -0
  68. package/dist/internal/FocusSentinel.svelte.d.ts +4 -1
  69. package/dist/internal/ForcePortalRoot.svelte +6 -0
  70. package/dist/internal/ForcePortalRoot.svelte.d.ts +22 -0
  71. package/dist/internal/FormFields.svelte.d.ts +4 -1
  72. package/dist/internal/FormResolver.svelte.d.ts +4 -1
  73. package/dist/internal/Hidden.svelte +6 -14
  74. package/dist/internal/Hidden.svelte.d.ts +19 -15
  75. package/dist/internal/HiddenFeatures.d.ts +5 -0
  76. package/dist/internal/HiddenFeatures.js +9 -0
  77. package/dist/internal/HoistFormFields.svelte.d.ts +4 -1
  78. package/dist/internal/MainTreeProvider.svelte +45 -0
  79. package/dist/internal/MainTreeProvider.svelte.d.ts +31 -0
  80. package/dist/internal/Portal.svelte.d.ts +4 -1
  81. package/dist/internal/close-provider.d.ts +7 -0
  82. package/dist/internal/close-provider.js +7 -0
  83. package/dist/internal/floating.svelte.d.ts +13 -8
  84. package/dist/internal/floating.svelte.js +197 -186
  85. package/dist/internal/open-closed.d.ts +1 -1
  86. package/dist/internal/open-closed.js +1 -1
  87. package/dist/label/Label.svelte +17 -65
  88. package/dist/label/Label.svelte.d.ts +19 -32
  89. package/dist/label/context.svelte.d.ts +17 -0
  90. package/dist/label/context.svelte.js +56 -0
  91. package/dist/legend/Legend.svelte +4 -3
  92. package/dist/legend/Legend.svelte.d.ts +33 -15
  93. package/dist/listbox/Listbox.svelte +8 -25
  94. package/dist/listbox/Listbox.svelte.d.ts +31 -22
  95. package/dist/listbox/ListboxButton.svelte +9 -12
  96. package/dist/listbox/ListboxButton.svelte.d.ts +16 -7
  97. package/dist/listbox/ListboxOption.svelte +4 -7
  98. package/dist/listbox/ListboxOption.svelte.d.ts +22 -11
  99. package/dist/listbox/ListboxOptions.svelte +21 -20
  100. package/dist/listbox/ListboxOptions.svelte.d.ts +23 -7
  101. package/dist/listbox/ListboxSelectedOption.svelte +15 -7
  102. package/dist/listbox/ListboxSelectedOption.svelte.d.ts +24 -14
  103. package/dist/listbox/ListboxStates.d.ts +12 -0
  104. package/dist/listbox/ListboxStates.js +15 -0
  105. package/dist/menu/Menu.svelte +235 -0
  106. package/dist/menu/Menu.svelte.d.ts +42 -0
  107. package/dist/menu/MenuButton.svelte +127 -0
  108. package/dist/menu/MenuButton.svelte.d.ts +52 -0
  109. package/dist/menu/MenuHeading.svelte +19 -0
  110. package/dist/menu/MenuHeading.svelte.d.ts +39 -0
  111. package/dist/menu/MenuItem.svelte +114 -0
  112. package/dist/menu/MenuItem.svelte.d.ts +49 -0
  113. package/dist/menu/MenuItems.svelte +244 -0
  114. package/dist/menu/MenuItems.svelte.d.ts +55 -0
  115. package/dist/menu/MenuSection.svelte +14 -0
  116. package/dist/menu/MenuSection.svelte.d.ts +35 -0
  117. package/dist/menu/MenuSeparator.svelte +9 -0
  118. package/dist/menu/MenuSeparator.svelte.d.ts +35 -0
  119. package/dist/menu/context.svelte.d.ts +47 -0
  120. package/dist/menu/context.svelte.js +21 -0
  121. package/dist/menu/index.d.ts +7 -0
  122. package/dist/menu/index.js +7 -0
  123. package/dist/portal/InternalPortal.svelte +22 -33
  124. package/dist/portal/InternalPortal.svelte.d.ts +16 -7
  125. package/dist/portal/Portal.svelte +4 -8
  126. package/dist/portal/Portal.svelte.d.ts +6 -6
  127. package/dist/portal/PortalGroup.svelte +5 -6
  128. package/dist/portal/PortalGroup.svelte.d.ts +16 -7
  129. package/dist/switch/Switch.svelte +41 -37
  130. package/dist/switch/Switch.svelte.d.ts +24 -7
  131. package/dist/switch/SwitchGroup.svelte +7 -8
  132. package/dist/switch/SwitchGroup.svelte.d.ts +14 -7
  133. package/dist/tabs/Tab.svelte +9 -14
  134. package/dist/tabs/Tab.svelte.d.ts +18 -6
  135. package/dist/tabs/TabGroup.svelte +20 -23
  136. package/dist/tabs/TabGroup.svelte.d.ts +19 -6
  137. package/dist/tabs/TabList.svelte +5 -7
  138. package/dist/tabs/TabList.svelte.d.ts +13 -6
  139. package/dist/tabs/TabPanel.svelte +30 -32
  140. package/dist/tabs/TabPanel.svelte.d.ts +19 -6
  141. package/dist/tabs/TabPanels.svelte +5 -6
  142. package/dist/tabs/TabPanels.svelte.d.ts +13 -6
  143. package/dist/textarea/Textarea.svelte +67 -0
  144. package/dist/textarea/Textarea.svelte.d.ts +50 -0
  145. package/dist/textarea/index.d.ts +1 -0
  146. package/dist/textarea/index.js +1 -0
  147. package/dist/transition/InternalTransitionChild.svelte +178 -0
  148. package/dist/transition/InternalTransitionChild.svelte.d.ts +55 -0
  149. package/dist/transition/Transition.svelte +89 -0
  150. package/dist/transition/Transition.svelte.d.ts +42 -0
  151. package/dist/transition/TransitionChild.svelte +16 -0
  152. package/dist/transition/TransitionChild.svelte.d.ts +44 -0
  153. package/dist/transition/context.svelte.d.ts +64 -0
  154. package/dist/transition/context.svelte.js +120 -0
  155. package/dist/transition/index.d.ts +2 -0
  156. package/dist/transition/index.js +2 -0
  157. package/dist/utils/ElementOrComponent.svelte +26 -0
  158. package/dist/utils/ElementOrComponent.svelte.d.ts +56 -0
  159. package/dist/utils/Generic.svelte +44 -0
  160. package/dist/utils/Generic.svelte.d.ts +35 -0
  161. package/dist/utils/StableCollection.svelte +1 -1
  162. package/dist/utils/StableCollection.svelte.d.ts +4 -1
  163. package/dist/utils/active-element-history.d.ts +1 -0
  164. package/dist/utils/active-element-history.js +35 -0
  165. package/dist/utils/alternative-types.d.ts +21 -0
  166. package/dist/utils/alternative-types.js +1 -0
  167. package/dist/utils/class-names.d.ts +1 -0
  168. package/dist/utils/class-names.js +10 -0
  169. package/dist/utils/focus-management.d.ts +2 -1
  170. package/dist/utils/focus-management.js +13 -13
  171. package/dist/utils/id.d.ts +1 -1
  172. package/dist/utils/id.js +1 -1
  173. package/dist/utils/on-document-ready.d.ts +1 -0
  174. package/dist/utils/on-document-ready.js +12 -0
  175. package/dist/utils/render.d.ts +3 -0
  176. package/dist/utils/render.js +63 -0
  177. package/dist/utils/state.d.ts +7 -1
  178. package/dist/utils/state.js +10 -6
  179. package/dist/utils/types.d.ts +14 -17
  180. package/dist/utils/types.js +0 -5
  181. package/package.json +32 -31
  182. package/dist/internal/id.d.ts +0 -8
  183. package/dist/internal/id.js +0 -11
  184. package/dist/tabs/Button.svelte +0 -65
  185. package/dist/tabs/Button.svelte.d.ts +0 -39
  186. package/dist/utils/close.d.ts +0 -2
  187. package/dist/utils/close.js +0 -3
@@ -1,55 +1,62 @@
1
- <script lang="ts" context="module">const DEFAULT_SWITCH_TAG = "button";
1
+ <script lang="ts" module>const DEFAULT_SWITCH_TAG = "button";
2
2
  </script>
3
3
 
4
- <script lang="ts" generics="TTag extends ElementType">import { useId } from "../hooks/use-id.js";
4
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_SWITCH_TAG">import { useId } from "../hooks/use-id.js";
5
5
  import { useDisabled } from "../hooks/use-disabled.js";
6
- import { useProvidedId } from "../internal/id.js";
7
- import { getContext } from "svelte";
8
- import { useControllable } from "../hooks/use-controllable.svelte.js";
9
- import { useDisposables } from "../utils/disposables.js";
6
+ import { useProvidedId } from "../utils/id.js";
7
+ import { getContext, tick } from "svelte";
10
8
  import { attemptSubmit } from "../utils/form.js";
11
- import { useLabelledBy } from "../label/Label.svelte";
12
- import { useDescribedBy } from "../description/Description.svelte";
9
+ import { useLabelledBy } from "../label/context.svelte.js";
10
+ import { useDescribedBy } from "../description/context.svelte.js";
13
11
  import { mergeProps } from "../utils/render.js";
14
12
  import { useResolveButtonType } from "../hooks/use-resolve-button-type.svelte.js";
15
13
  import { useFocusRing } from "../hooks/use-focus-ring.svelte.js";
16
14
  import { useHover } from "../hooks/use-hover.svelte.js";
17
15
  import { useActivePress } from "../hooks/use-active-press.svelte.js";
18
- import { stateFromSlot } from "../utils/state.js";
16
+ import { useControllable } from "../hooks/use-controllable.svelte.js";
19
17
  import FormFields from "../internal/FormFields.svelte";
18
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte";
20
19
  const internalId = useId();
21
- let providedId = useProvidedId();
22
- let { value: providedDisabled } = $derived(useDisabled());
20
+ const providedId = useProvidedId();
21
+ const providedDisabled = useDisabled();
23
22
  let {
24
- as = DEFAULT_SWITCH_TAG,
25
- id: ownId,
26
- disabled: ownDisabled,
27
- defaultChecked,
28
- checked = $bindable(defaultChecked),
29
- onchange,
23
+ ref = $bindable(),
24
+ id = providedId || `headlessui-switch-${internalId}`,
25
+ disabled: theirDisabled = false,
26
+ checked: controlledChecked = $bindable(),
27
+ defaultChecked: _defaultChecked,
28
+ onchange: controlledOnChange,
30
29
  name,
31
30
  value,
32
31
  form,
33
32
  autofocus = false,
34
33
  tabIndex,
35
- children,
36
34
  ...theirProps
37
35
  } = $props();
38
- const id = $derived(ownId || providedId || `headlessui-switch-${internalId}`);
39
- const disabled = $derived(ownDisabled || providedDisabled || false);
36
+ const disabled = $derived(providedDisabled?.value ?? theirDisabled);
40
37
  const groupContext = getContext("GroupContext");
41
- let ref = $state(null);
42
38
  $effect(() => {
43
- if (groupContext) groupContext.switchElement = ref;
39
+ if (groupContext) groupContext.switchElement = ref ?? null;
44
40
  });
45
- $inspect(providedDisabled);
46
- const d = useDisposables();
41
+ const defaultChecked = _defaultChecked;
42
+ const controllable = useControllable(
43
+ {
44
+ get controlledValue() {
45
+ return controlledChecked;
46
+ },
47
+ set controlledValue(checked2) {
48
+ controlledChecked = checked2;
49
+ }
50
+ },
51
+ controlledOnChange,
52
+ defaultChecked ?? false
53
+ );
54
+ const { value: checked, onchange } = $derived(controllable);
47
55
  let changing = $state(false);
48
56
  const toggle = () => {
49
57
  changing = true;
50
- checked = !checked;
51
- onchange?.(checked);
52
- d.nextFrame(() => {
58
+ onchange?.(!checked);
59
+ tick().then(() => {
53
60
  changing = false;
54
61
  });
55
62
  };
@@ -100,7 +107,7 @@ const slot = $derived({
100
107
  });
101
108
  const buttonType = useResolveButtonType({
102
109
  get props() {
103
- return { type: theirProps.type, as };
110
+ return { type: theirProps.type, as: theirProps.as };
104
111
  },
105
112
  get ref() {
106
113
  return { current: ref };
@@ -124,15 +131,13 @@ const ourProps = $derived(
124
131
  },
125
132
  focusProps,
126
133
  hoverProps,
127
- pressProps,
128
- stateFromSlot(slot)
134
+ pressProps
129
135
  )
130
136
  );
131
- const reset = () => {
137
+ const reset = $derived(() => {
132
138
  if (defaultChecked === void 0) return;
133
- checked = defaultChecked;
134
- return onchange?.(checked);
135
- };
139
+ return onchange?.(defaultChecked);
140
+ });
136
141
  </script>
137
142
 
138
143
  {#if name}
@@ -144,6 +149,5 @@ const reset = () => {
144
149
  onReset={reset}
145
150
  />
146
151
  {/if}
147
- <svelte:element this={as} {...ourProps} {...theirProps}>
148
- {#if children}{@render children(slot)}{/if}
149
- </svelte:element>
152
+
153
+ <ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_SWITCH_TAG} name="Switch" bind:ref />
@@ -1,4 +1,4 @@
1
- import type { ElementType, Props } from "../utils/types.js";
1
+ import type { ElementType, Props, PropsOf } from "../utils/types.js";
2
2
  declare const DEFAULT_SWITCH_TAG: "button";
3
3
  type SwitchRenderPropArg = {
4
4
  checked: boolean;
@@ -21,24 +21,41 @@ export type SwitchProps<TTag extends ElementType = typeof DEFAULT_SWITCH_TAG> =
21
21
  disabled?: boolean;
22
22
  tabIndex?: number;
23
23
  }>;
24
- declare class __sveltets_Render<TTag extends ElementType> {
25
- props(): SwitchProps<TTag>;
24
+ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_SWITCH_TAG> {
25
+ props(): {
26
+ as?: TTag | undefined;
27
+ } & (Exclude<keyof PropsOf<TTag>, "form" | ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "name" | "value" | "checked" | "onchange" | "tabIndex" | "defaultChecked" | SwitchPropsWeControl> extends infer T extends keyof PropsOf<TTag> ? { [P in T]: PropsOf<TTag>[P]; } : never) & {
28
+ children?: import("../utils/types.js").Children<SwitchRenderPropArg> | undefined;
29
+ ref?: HTMLElement;
30
+ } & (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) ? {
31
+ class?: PropsOf<TTag>["class"] | ((bag: SwitchRenderPropArg) => string) | undefined;
32
+ } : {}) & {
33
+ checked?: boolean;
34
+ defaultChecked?: boolean;
35
+ onchange?(checked: boolean): void;
36
+ name?: string;
37
+ value?: string;
38
+ form?: string;
39
+ autofocus?: boolean;
40
+ disabled?: boolean;
41
+ tabIndex?: number;
42
+ };
26
43
  events(): {} & {
27
44
  [evt: string]: CustomEvent<any>;
28
45
  };
29
46
  slots(): {};
30
- bindings(): "checked";
47
+ bindings(): "ref" | "checked";
31
48
  exports(): {};
32
49
  }
33
50
  interface $$IsomorphicComponent {
34
- new <TTag extends ElementType>(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
+ new <TTag extends ElementType = typeof DEFAULT_SWITCH_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
52
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
36
53
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
37
- <TTag extends ElementType>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
54
+ <TTag extends ElementType = typeof DEFAULT_SWITCH_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
38
55
  $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
39
56
  }): ReturnType<__sveltets_Render<TTag>['exports']>;
40
57
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
41
58
  }
42
59
  declare const Switch: $$IsomorphicComponent;
43
- type Switch<TTag extends ElementType> = InstanceType<typeof Switch<TTag>>;
60
+ type Switch<TTag extends ElementType = typeof DEFAULT_SWITCH_TAG> = InstanceType<typeof Switch<TTag>>;
44
61
  export default Switch;
@@ -1,9 +1,10 @@
1
- <script lang="ts" context="module">const DEFAULT_GROUP_TAG = "svelte:fragment";
1
+ <script lang="ts" module>const DEFAULT_GROUP_TAG = "svelte:fragment";
2
2
  </script>
3
3
 
4
- <script lang="ts" generics="TTag extends ElementType">import { setContext } from "svelte";
5
- import { useLabels } from "../label/Label.svelte";
6
- import { useDescriptions } from "../description/Description.svelte";
4
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_GROUP_TAG">import { setContext } from "svelte";
5
+ import { useLabels } from "../label/context.svelte.js";
6
+ import { useDescriptions } from "../description/context.svelte.js";
7
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte";
7
8
  let switchElement = $state(null);
8
9
  useLabels({
9
10
  name: "SwitchGroup",
@@ -30,9 +31,7 @@ setContext("GroupContext", {
30
31
  switchElement = element;
31
32
  }
32
33
  });
33
- const { as = DEFAULT_GROUP_TAG, children, ...theirProps } = $props();
34
+ let { ref = $bindable(), ...theirProps } = $props();
34
35
  </script>
35
36
 
36
- <svelte:element this={as} {...theirProps}>
37
- {#if children}{@render children({})}{/if}
38
- </svelte:element>
37
+ <ElementOrComponent {theirProps} defaultTag={DEFAULT_GROUP_TAG} name="SwitchGroup" bind:ref />
@@ -2,26 +2,33 @@ import type { ElementType, Props } from "../utils/types.js";
2
2
  declare const DEFAULT_GROUP_TAG = "svelte:fragment";
3
3
  export type SwitchGroupProps<TTag extends ElementType = typeof DEFAULT_GROUP_TAG> = Props<TTag>;
4
4
  export type GroupContext = {
5
- switchElement: HTMLButtonElement | null;
5
+ switchElement: HTMLElement | null;
6
6
  };
7
- declare class __sveltets_Render<TTag extends ElementType> {
8
- props(): SwitchGroupProps<TTag>;
7
+ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_GROUP_TAG> {
8
+ props(): {
9
+ as?: TTag | undefined;
10
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, "as" | "children" | "refName" | "class"> 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<{}> | undefined;
12
+ 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: {}) => string) | undefined;
15
+ } : {});
9
16
  events(): {} & {
10
17
  [evt: string]: CustomEvent<any>;
11
18
  };
12
19
  slots(): {};
13
- bindings(): "";
20
+ bindings(): "ref";
14
21
  exports(): {};
15
22
  }
16
23
  interface $$IsomorphicComponent {
17
- new <TTag extends ElementType>(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']>> & {
24
+ new <TTag extends ElementType = typeof DEFAULT_GROUP_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']>> & {
18
25
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
19
26
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
20
- <TTag extends ElementType>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
27
+ <TTag extends ElementType = typeof DEFAULT_GROUP_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
21
28
  $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
22
29
  }): ReturnType<__sveltets_Render<TTag>['exports']>;
23
30
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
24
31
  }
25
32
  declare const SwitchGroup: $$IsomorphicComponent;
26
- type SwitchGroup<TTag extends ElementType> = InstanceType<typeof SwitchGroup<TTag>>;
33
+ type SwitchGroup<TTag extends ElementType = typeof DEFAULT_GROUP_TAG> = InstanceType<typeof SwitchGroup<TTag>>;
27
34
  export default SwitchGroup;
@@ -1,7 +1,7 @@
1
- <script lang="ts" context="module">const DEFAULT_TAB_TAG = "button";
1
+ <script lang="ts" module>const DEFAULT_TAB_TAG = "button";
2
2
  </script>
3
3
 
4
- <script lang="ts" generics="TTag extends ElementType">import { useId } from "../hooks/use-id.js";
4
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TAB_TAG">import { useId } from "../hooks/use-id.js";
5
5
  import { useActions, useData } from "./TabGroup.svelte";
6
6
  import { useStableCollectionIndex } from "../utils/StableCollection.svelte";
7
7
  import { Focus, focusIn, FocusResult } from "../utils/focus-management.js";
@@ -11,28 +11,26 @@ import { microTask } from "../utils/microTask.js";
11
11
  import { useActivePress } from "../hooks/use-active-press.svelte.js";
12
12
  import { useFocusRing } from "../hooks/use-focus-ring.svelte.js";
13
13
  import { useResolveButtonType } from "../hooks/use-resolve-button-type.svelte.js";
14
- import { stateFromSlot } from "../utils/state.js";
15
14
  import { onMount } from "svelte";
16
15
  import { useHover } from "../hooks/use-hover.svelte.js";
17
16
  import { mergeProps } from "../utils/render.js";
17
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte";
18
18
  const internalId = useId();
19
- const {
20
- as,
19
+ let {
20
+ ref = $bindable(),
21
21
  id = `headlessui-tabs-tab-${internalId}`,
22
22
  disabled = false,
23
23
  autofocus = false,
24
- children,
25
24
  ...theirProps
26
25
  } = $props();
27
26
  const data = useData("Tab");
28
27
  const { orientation, activation, selectedIndex, tabs, panels } = $derived(data);
29
28
  const actions = useActions("Tab");
30
- let ref = $state();
31
29
  const tabRef = $derived({ current: ref });
32
30
  onMount(() => actions.registerTab(tabRef));
33
31
  const mySSRIndex = useStableCollectionIndex("tabs");
34
32
  const myIndex = $derived.by(() => {
35
- const index = tabs.findIndex((tab) => $state.is(tab, tabRef));
33
+ const index = tabs.findIndex((tab) => tab === tabRef);
36
34
  return index === -1 ? mySSRIndex : index;
37
35
  });
38
36
  const selected = $derived(myIndex === selectedIndex);
@@ -127,7 +125,7 @@ const slot = $derived({
127
125
  });
128
126
  const resolvedType = useResolveButtonType({
129
127
  get props() {
130
- return { type: theirProps.type, as };
128
+ return { type: theirProps.type, as: theirProps.as };
131
129
  },
132
130
  get ref() {
133
131
  return tabRef;
@@ -150,12 +148,9 @@ const ourProps = $derived(
150
148
  },
151
149
  focusProps,
152
150
  hoverProps,
153
- pressProps,
154
- stateFromSlot(slot)
151
+ pressProps
155
152
  )
156
153
  );
157
154
  </script>
158
155
 
159
- <svelte:element this={as ?? DEFAULT_TAB_TAG} bind:this={ref} {...ourProps} {...theirProps}>
160
- {#if children}{@render children(slot)}{/if}
161
- </svelte:element>
156
+ <ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_TAB_TAG} name="Tab" bind:ref />
@@ -10,27 +10,39 @@ type TabRenderPropArg = {
10
10
  };
11
11
  type TabPropsWeControl = "aria-controls" | "aria-selected" | "role" | "tabIndex";
12
12
  export type TabProps<TTag extends ElementType = typeof DEFAULT_TAB_TAG> = Props<TTag, TabRenderPropArg, TabPropsWeControl, {
13
+ id?: string;
13
14
  autofocus?: boolean;
14
15
  disabled?: boolean;
15
16
  }>;
16
- declare class __sveltets_Render<TTag extends ElementType> {
17
- props(): TabProps<TTag>;
17
+ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TAB_TAG> {
18
+ props(): {
19
+ as?: TTag | undefined;
20
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "disabled" | "autofocus" | "id" | TabPropsWeControl> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
21
+ children?: import("../utils/types.js").Children<TabRenderPropArg> | undefined;
22
+ ref?: HTMLElement;
23
+ } & (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) ? {
24
+ class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: TabRenderPropArg) => string) | undefined;
25
+ } : {}) & {
26
+ id?: string;
27
+ autofocus?: boolean;
28
+ disabled?: boolean;
29
+ };
18
30
  events(): {} & {
19
31
  [evt: string]: CustomEvent<any>;
20
32
  };
21
33
  slots(): {};
22
- bindings(): "";
34
+ bindings(): "ref";
23
35
  exports(): {};
24
36
  }
25
37
  interface $$IsomorphicComponent {
26
- new <TTag extends ElementType>(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
+ new <TTag extends ElementType = typeof DEFAULT_TAB_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']>> & {
27
39
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
28
40
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
29
- <TTag extends ElementType>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
41
+ <TTag extends ElementType = typeof DEFAULT_TAB_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
30
42
  $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
31
43
  }): ReturnType<__sveltets_Render<TTag>['exports']>;
32
44
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
33
45
  }
34
46
  declare const Tab: $$IsomorphicComponent;
35
- type Tab<TTag extends ElementType> = InstanceType<typeof Tab<TTag>>;
47
+ type Tab<TTag extends ElementType = typeof DEFAULT_TAB_TAG> = InstanceType<typeof Tab<TTag>>;
36
48
  export default Tab;
@@ -1,4 +1,4 @@
1
- <script lang="ts" context="module">import { sortByDomNode } from "../utils/focus-management.js";
1
+ <script lang="ts" module>import { sortByDomNode } from "../utils/focus-management.js";
2
2
  import { match } from "../utils/match.js";
3
3
  import FocusSentinel from "../internal/FocusSentinel.svelte";
4
4
  import { setContext, getContext, untrack } from "svelte";
@@ -23,7 +23,8 @@ export function useActions(component) {
23
23
  }
24
24
  </script>
25
25
 
26
- <script lang="ts" generics="TTag extends ElementType">import StableCollection from "../utils/StableCollection.svelte";
26
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_TABS_TAG">import StableCollection from "../utils/StableCollection.svelte";
27
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte";
27
28
  var Direction = /* @__PURE__ */ ((Direction2) => {
28
29
  Direction2[Direction2["Forwards"] = 0] = "Forwards";
29
30
  Direction2[Direction2["Backwards"] = 1] = "Backwards";
@@ -52,8 +53,8 @@ const stateReducer = (initialState) => {
52
53
  },
53
54
  setSelectedIndex(index) {
54
55
  if (index === _state2.selectedIndex) return _state2;
55
- let tabs = sortByDomNode(_state2.tabs, (tab) => tab.current);
56
- let panels = sortByDomNode(_state2.panels, (panel) => panel.current);
56
+ let tabs = sortByDomNode(_state2.tabs, (tab) => tab.current ?? null);
57
+ let panels = sortByDomNode(_state2.panels, (panel) => panel.current ?? null);
57
58
  let focusableTabs = tabs.filter((tab) => !tab?.current?.hasAttribute("disabled"));
58
59
  let nextState = { ..._state2, tabs, panels };
59
60
  if (
@@ -77,8 +78,8 @@ const stateReducer = (initialState) => {
77
78
  return _state2;
78
79
  }
79
80
  let nextSelectedIndex = match(direction, {
80
- [0 /* Forwards */]: () => tabs.findIndex((tab) => $state.is(tab, focusableTabs[0])),
81
- [1 /* Backwards */]: () => tabs.findIndex((tab) => $state.is(tab, focusableTabs[focusableTabs.length - 1]))
81
+ [0 /* Forwards */]: () => tabs.findIndex((tab) => tab === focusableTabs[0]),
82
+ [1 /* Backwards */]: () => tabs.findIndex((tab) => tab === focusableTabs[focusableTabs.length - 1])
82
83
  });
83
84
  _state2 = {
84
85
  ...nextState,
@@ -88,50 +89,48 @@ const stateReducer = (initialState) => {
88
89
  }
89
90
  let before = tabs.slice(0, index);
90
91
  let after = tabs.slice(index);
91
- let next = [...after, ...before].find((tab) => focusableTabs.some((_tab) => $state.is(_tab, tab)));
92
+ let next = [...after, ...before].find((tab) => focusableTabs.some((_tab) => _tab === tab));
92
93
  if (!next) {
93
94
  _state2 = nextState;
94
95
  return _state2;
95
96
  }
96
- let selectedIndex2 = tabs.findIndex((tab) => $state.is(tab, next)) ?? _state2.selectedIndex;
97
+ let selectedIndex2 = tabs.findIndex((tab) => tab === next) ?? _state2.selectedIndex;
97
98
  if (selectedIndex2 === -1) selectedIndex2 = _state2.selectedIndex;
98
99
  _state2 = { ...nextState, selectedIndex: selectedIndex2 };
99
100
  return _state2;
100
101
  },
101
102
  registerTab(tab) {
102
- if (_state2.tabs.some((_tab) => $state.is(_tab, tab))) return _state2;
103
- _state2.tabs = sortByDomNode([..._state2.tabs, tab], (tab2) => tab2.current);
103
+ if (_state2.tabs.some((_tab) => _tab === tab)) return _state2;
104
+ _state2.tabs = sortByDomNode([..._state2.tabs, tab], (tab2) => tab2.current ?? null);
104
105
  let activeTab = _state2.tabs[_state2.selectedIndex];
105
106
  if (!_state2.info.isControlled) {
106
- const selectedIndex2 = _state2.tabs.findIndex((tab2) => $state.is(tab2, activeTab));
107
+ const selectedIndex2 = _state2.tabs.findIndex((tab2) => tab2 === activeTab);
107
108
  if (selectedIndex2 !== _state2.selectedIndex) _state2.selectedIndex = selectedIndex2;
108
109
  }
109
110
  return _state2;
110
111
  },
111
112
  unregisterTab(tab) {
112
- _state2.tabs = _state2.tabs.filter((_tab) => !$state.is(_tab, tab));
113
+ _state2.tabs = _state2.tabs.filter((_tab) => _tab !== tab);
113
114
  return _state2;
114
115
  },
115
116
  registerPanel(panel) {
116
- if (_state2.panels.some((_panel) => $state.is(_panel, panel))) return _state2;
117
- _state2.panels = sortByDomNode([..._state2.panels, panel], (panel2) => panel2.current);
117
+ if (_state2.panels.some((_panel) => _panel === panel)) return _state2;
118
+ _state2.panels = sortByDomNode([..._state2.panels, panel], (panel2) => panel2.current ?? null);
118
119
  return _state2;
119
120
  },
120
121
  unregisterPanel(panel) {
121
- console.log("unregisterPanel", panel);
122
- _state2.panels = _state2.panels.filter((_panel) => !$state.is(_panel, panel));
122
+ _state2.panels = _state2.panels.filter((_panel) => _panel !== panel);
123
123
  return _state2;
124
124
  }
125
125
  };
126
126
  };
127
127
  let {
128
- as,
128
+ ref = $bindable(),
129
129
  defaultIndex = 0,
130
130
  vertical = false,
131
131
  manual = false,
132
132
  onchange,
133
133
  selectedIndex = void 0,
134
- children,
135
134
  ...theirProps
136
135
  } = $props();
137
136
  const orientation = $derived(vertical ? "vertical" : "horizontal");
@@ -215,10 +214,10 @@ $effect(() => {
215
214
  $effect(() => {
216
215
  if (realSelectedIndex === void 0) return;
217
216
  if (_state.tabs.length <= 0) return;
218
- let sorted = sortByDomNode(_state.tabs, (tab) => tab.current);
217
+ let sorted = sortByDomNode(_state.tabs, (tab) => tab.current ?? null);
219
218
  let didOrderChange = sorted.some((tab, i) => _state.tabs[i] !== tab);
220
219
  if (didOrderChange) {
221
- change(sorted.findIndex((tab) => $state.is(tab, _state.tabs[realSelectedIndex])));
220
+ change(sorted.findIndex((tab) => tab === _state.tabs[realSelectedIndex]));
222
221
  }
223
222
  });
224
223
  </script>
@@ -238,7 +237,5 @@ $effect(() => {
238
237
  }}
239
238
  />
240
239
  {/if}
241
- <svelte:element this={as ?? DEFAULT_TABS_TAG} {...theirProps}>
242
- {#if children}{@render children(slot)}{/if}
243
- </svelte:element>
240
+ <ElementOrComponent {theirProps} defaultTag={DEFAULT_TABS_TAG} name="TabGroup" bind:ref />
244
241
  </StableCollection>
@@ -31,24 +31,37 @@ type TabsActionsContext = {
31
31
  };
32
32
  export declare function useActions(component: string): TabsActionsContext;
33
33
  import type { MutableRefObject } from "../utils/ref.svelte.js";
34
- declare class __sveltets_Render<TTag extends ElementType> {
35
- props(): TabGroupProps<TTag>;
34
+ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_TABS_TAG> {
35
+ props(): {
36
+ as?: TTag | undefined;
37
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | "onchange" | "vertical" | "defaultIndex" | "selectedIndex" | "manual"> extends infer T extends keyof import("../utils/types.js").PropsOf<TTag> ? { [P in T]: import("../utils/types.js").PropsOf<TTag>[P]; } : never) & {
38
+ children?: import("../utils/types.js").Children<TabsRenderPropArg> | undefined;
39
+ ref?: HTMLElement;
40
+ } & (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) ? {
41
+ class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: TabsRenderPropArg) => string) | undefined;
42
+ } : {}) & {
43
+ defaultIndex?: number;
44
+ onchange?: (index: number) => void;
45
+ selectedIndex?: number;
46
+ vertical?: boolean;
47
+ manual?: boolean;
48
+ };
36
49
  events(): {} & {
37
50
  [evt: string]: CustomEvent<any>;
38
51
  };
39
52
  slots(): {};
40
- bindings(): "";
53
+ bindings(): "ref";
41
54
  exports(): {};
42
55
  }
43
56
  interface $$IsomorphicComponent {
44
- new <TTag extends ElementType>(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']>> & {
57
+ new <TTag extends ElementType = typeof DEFAULT_TABS_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']>> & {
45
58
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
46
59
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
47
- <TTag extends ElementType>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
60
+ <TTag extends ElementType = typeof DEFAULT_TABS_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
48
61
  $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
49
62
  }): ReturnType<__sveltets_Render<TTag>['exports']>;
50
63
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
51
64
  }
52
65
  declare const TabGroup: $$IsomorphicComponent;
53
- type TabGroup<TTag extends ElementType> = InstanceType<typeof TabGroup<TTag>>;
66
+ type TabGroup<TTag extends ElementType = typeof DEFAULT_TABS_TAG> = InstanceType<typeof TabGroup<TTag>>;
54
67
  export default TabGroup;
@@ -1,18 +1,16 @@
1
- <script lang="ts" context="module">import { stateFromSlot } from "../utils/state.js";
2
- const DEFAULT_LIST_TAG = "div";
1
+ <script lang="ts" module>const DEFAULT_LIST_TAG = "div";
3
2
  </script>
4
3
 
5
- <script lang="ts" generics="TTag extends ElementType">import { useData } from "./TabGroup.svelte";
4
+ <script lang="ts" generics="TTag extends ElementType = typeof DEFAULT_LIST_TAG">import { useData } from "./TabGroup.svelte";
5
+ import ElementOrComponent from "../utils/ElementOrComponent.svelte";
6
6
  const data = useData("Tab.List");
7
7
  const { orientation, selectedIndex } = $derived(data);
8
8
  const slot = $derived({ selectedIndex });
9
- const { as, children, ...theirProps } = $props();
9
+ let { ref = $bindable(), ...theirProps } = $props();
10
10
  const ourProps = $derived({
11
11
  role: "tablist",
12
12
  "aria-orientation": orientation
13
13
  });
14
14
  </script>
15
15
 
16
- <svelte:element this={as ?? DEFAULT_LIST_TAG} {...ourProps} {...theirProps}>
17
- {#if children}{@render children(slot)}{/if}
18
- </svelte:element>
16
+ <ElementOrComponent {ourProps} {theirProps} {slot} defaultTag={DEFAULT_LIST_TAG} name="TabList" bind:ref />
@@ -5,24 +5,31 @@ type ListRenderPropArg = {
5
5
  };
6
6
  type ListPropsWeControl = "aria-orientation" | "role";
7
7
  export type TabListProps<TTag extends ElementType = typeof DEFAULT_LIST_TAG> = Props<TTag, ListRenderPropArg, ListPropsWeControl, {}>;
8
- declare class __sveltets_Render<TTag extends ElementType> {
9
- props(): TabListProps<TTag>;
8
+ declare class __sveltets_Render<TTag extends ElementType = typeof DEFAULT_LIST_TAG> {
9
+ props(): {
10
+ as?: TTag | undefined;
11
+ } & (Exclude<keyof import("../utils/types.js").PropsOf<TTag>, ("as" | "children" | "refName" | "class") | ListPropsWeControl> 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<ListRenderPropArg> | undefined;
13
+ ref?: HTMLElement;
14
+ } & (true extends (import("../utils/types.js").PropsOf<TTag> extends infer T_1 ? T_1 extends import("../utils/types.js").PropsOf<TTag> ? T_1 extends never ? never : "class" extends infer T_2 ? T_2 extends "class" ? T_2 extends keyof T_1 ? true : never : never : never : never : never) ? {
15
+ class?: import("../utils/types.js").PropsOf<TTag>["class"] | ((bag: ListRenderPropArg) => string) | undefined;
16
+ } : {});
10
17
  events(): {} & {
11
18
  [evt: string]: CustomEvent<any>;
12
19
  };
13
20
  slots(): {};
14
- bindings(): "";
21
+ bindings(): "ref";
15
22
  exports(): {};
16
23
  }
17
24
  interface $$IsomorphicComponent {
18
- new <TTag extends ElementType>(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
+ new <TTag extends ElementType = typeof DEFAULT_LIST_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']>> & {
19
26
  $$bindings?: ReturnType<__sveltets_Render<TTag>['bindings']>;
20
27
  } & ReturnType<__sveltets_Render<TTag>['exports']>;
21
- <TTag extends ElementType>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
28
+ <TTag extends ElementType = typeof DEFAULT_LIST_TAG>(internal: unknown, props: ReturnType<__sveltets_Render<TTag>['props']> & {
22
29
  $$events?: ReturnType<__sveltets_Render<TTag>['events']>;
23
30
  }): ReturnType<__sveltets_Render<TTag>['exports']>;
24
31
  z_$$bindings?: ReturnType<__sveltets_Render<any>['bindings']>;
25
32
  }
26
33
  declare const TabList: $$IsomorphicComponent;
27
- type TabList<TTag extends ElementType> = InstanceType<typeof TabList<TTag>>;
34
+ type TabList<TTag extends ElementType = typeof DEFAULT_LIST_TAG> = InstanceType<typeof TabList<TTag>>;
28
35
  export default TabList;