bits-ui 0.11.8 → 0.12.0

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 (213) hide show
  1. package/dist/bits/accordion/_types.d.ts +6 -6
  2. package/dist/bits/accordion/components/accordion-content.svelte +11 -2
  3. package/dist/bits/accordion/components/accordion-header.svelte +2 -1
  4. package/dist/bits/accordion/components/accordion-item.svelte +2 -1
  5. package/dist/bits/accordion/components/accordion-trigger.svelte +2 -0
  6. package/dist/bits/accordion/components/accordion.svelte +2 -1
  7. package/dist/bits/alert-dialog/_types.d.ts +6 -6
  8. package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +2 -0
  9. package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +2 -0
  10. package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +11 -2
  11. package/dist/bits/alert-dialog/components/alert-dialog-description.svelte +2 -1
  12. package/dist/bits/alert-dialog/components/alert-dialog-overlay.svelte +6 -1
  13. package/dist/bits/alert-dialog/components/alert-dialog-portal.svelte +2 -1
  14. package/dist/bits/alert-dialog/components/alert-dialog-title.svelte +7 -1
  15. package/dist/bits/alert-dialog/components/alert-dialog-trigger.svelte +2 -0
  16. package/dist/bits/aspect-ratio/_types.d.ts +2 -1
  17. package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +2 -0
  18. package/dist/bits/avatar/_types.d.ts +4 -4
  19. package/dist/bits/avatar/components/avatar-fallback.svelte +2 -1
  20. package/dist/bits/avatar/components/avatar-image.svelte +2 -1
  21. package/dist/bits/avatar/components/avatar.svelte +2 -1
  22. package/dist/bits/button/components/button.svelte +2 -0
  23. package/dist/bits/button/types.d.ts +3 -2
  24. package/dist/bits/calendar/_types.d.ts +14 -14
  25. package/dist/bits/calendar/components/calendar-cell.svelte +2 -1
  26. package/dist/bits/calendar/components/calendar-day.svelte +2 -1
  27. package/dist/bits/calendar/components/calendar-grid-body.svelte +2 -1
  28. package/dist/bits/calendar/components/calendar-grid-head.svelte +2 -1
  29. package/dist/bits/calendar/components/calendar-grid-row.svelte +2 -1
  30. package/dist/bits/calendar/components/calendar-grid.svelte +2 -1
  31. package/dist/bits/calendar/components/calendar-head-cell.svelte +2 -1
  32. package/dist/bits/calendar/components/calendar-header.svelte +2 -1
  33. package/dist/bits/calendar/components/calendar-heading.svelte +2 -1
  34. package/dist/bits/calendar/components/calendar-next-button.svelte +2 -0
  35. package/dist/bits/calendar/components/calendar-prev-button.svelte +2 -0
  36. package/dist/bits/calendar/components/calendar.svelte +1 -1
  37. package/dist/bits/calendar/types.d.ts +2 -2
  38. package/dist/bits/checkbox/_types.d.ts +3 -3
  39. package/dist/bits/checkbox/components/checkbox-indicator.svelte +2 -1
  40. package/dist/bits/checkbox/components/checkbox-input.svelte +7 -1
  41. package/dist/bits/checkbox/components/checkbox-input.svelte.d.ts +2 -3
  42. package/dist/bits/checkbox/components/checkbox.svelte +2 -0
  43. package/dist/bits/checkbox/types.d.ts +2 -2
  44. package/dist/bits/collapsible/_types.d.ts +4 -4
  45. package/dist/bits/collapsible/components/collapsible-content.svelte +11 -2
  46. package/dist/bits/collapsible/components/collapsible-trigger.svelte +2 -0
  47. package/dist/bits/collapsible/components/collapsible.svelte +2 -1
  48. package/dist/bits/context-menu/_types.d.ts +2 -2
  49. package/dist/bits/context-menu/components/context-menu-content.svelte +11 -1
  50. package/dist/bits/context-menu/components/context-menu-trigger.svelte +2 -0
  51. package/dist/bits/date-field/_types.d.ts +5 -5
  52. package/dist/bits/date-field/components/date-field-input.svelte +2 -1
  53. package/dist/bits/date-field/components/date-field-label.svelte +2 -1
  54. package/dist/bits/date-field/components/date-field-segment.svelte +2 -0
  55. package/dist/bits/date-picker/_types.d.ts +7 -7
  56. package/dist/bits/date-picker/components/date-picker-arrow.svelte +2 -1
  57. package/dist/bits/date-picker/components/date-picker-calendar.svelte +7 -1
  58. package/dist/bits/date-picker/components/date-picker-cell.svelte +2 -1
  59. package/dist/bits/date-picker/components/date-picker-close.svelte +2 -0
  60. package/dist/bits/date-picker/components/date-picker-content.svelte +11 -2
  61. package/dist/bits/date-picker/components/date-picker-day.svelte +2 -1
  62. package/dist/bits/date-picker/components/date-picker-field.svelte.d.ts +0 -1
  63. package/dist/bits/date-picker/components/date-picker-grid.svelte +2 -1
  64. package/dist/bits/date-picker/components/date-picker-heading.svelte +2 -1
  65. package/dist/bits/date-picker/components/date-picker-input.svelte +2 -1
  66. package/dist/bits/date-picker/components/date-picker-label.svelte +2 -1
  67. package/dist/bits/date-picker/components/date-picker-next-button.svelte +2 -0
  68. package/dist/bits/date-picker/components/date-picker-prev-button.svelte +2 -0
  69. package/dist/bits/date-picker/components/date-picker-segment.svelte +2 -0
  70. package/dist/bits/date-picker/components/date-picker-trigger.svelte +2 -0
  71. package/dist/bits/date-picker/components/date-picker.svelte.d.ts +0 -1
  72. package/dist/bits/date-picker/types.d.ts +1 -1
  73. package/dist/bits/date-range-field/_types.d.ts +4 -4
  74. package/dist/bits/date-range-field/components/date-range-field-input.svelte +2 -1
  75. package/dist/bits/date-range-field/components/date-range-field-label.svelte +2 -1
  76. package/dist/bits/date-range-field/components/date-range-field-segment.svelte +2 -0
  77. package/dist/bits/date-range-picker/_types.d.ts +7 -7
  78. package/dist/bits/date-range-picker/components/date-range-picker-arrow.svelte +2 -1
  79. package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +2 -1
  80. package/dist/bits/date-range-picker/components/date-range-picker-cell.svelte +2 -1
  81. package/dist/bits/date-range-picker/components/date-range-picker-close.svelte +2 -0
  82. package/dist/bits/date-range-picker/components/date-range-picker-content.svelte +11 -2
  83. package/dist/bits/date-range-picker/components/date-range-picker-day.svelte +2 -1
  84. package/dist/bits/date-range-picker/components/date-range-picker-field.svelte.d.ts +0 -1
  85. package/dist/bits/date-range-picker/components/date-range-picker-grid.svelte +2 -1
  86. package/dist/bits/date-range-picker/components/date-range-picker-heading.svelte +2 -1
  87. package/dist/bits/date-range-picker/components/date-range-picker-input.svelte +2 -1
  88. package/dist/bits/date-range-picker/components/date-range-picker-label.svelte +2 -1
  89. package/dist/bits/date-range-picker/components/date-range-picker-next-button.svelte +2 -1
  90. package/dist/bits/date-range-picker/components/date-range-picker-prev-button.svelte +2 -1
  91. package/dist/bits/date-range-picker/components/date-range-picker-segment.svelte +2 -1
  92. package/dist/bits/date-range-picker/components/date-range-picker-trigger.svelte +2 -0
  93. package/dist/bits/date-range-picker/components/date-range-picker.svelte.d.ts +0 -1
  94. package/dist/bits/date-range-picker/types.d.ts +1 -1
  95. package/dist/bits/dialog/_types.d.ts +7 -7
  96. package/dist/bits/dialog/components/dialog-close.svelte +2 -0
  97. package/dist/bits/dialog/components/dialog-content.svelte +11 -2
  98. package/dist/bits/dialog/components/dialog-description.svelte +2 -1
  99. package/dist/bits/dialog/components/dialog-overlay.svelte +6 -1
  100. package/dist/bits/dialog/components/dialog-portal.svelte +2 -1
  101. package/dist/bits/dialog/components/dialog-title.svelte +7 -1
  102. package/dist/bits/dialog/components/dialog-trigger.svelte +2 -0
  103. package/dist/bits/floating/_types.d.ts +3 -3
  104. package/dist/bits/label/_types.d.ts +2 -2
  105. package/dist/bits/label/components/label.svelte +7 -1
  106. package/dist/bits/label/types.d.ts +1 -1
  107. package/dist/bits/link-preview/_types.d.ts +2 -2
  108. package/dist/bits/link-preview/components/link-preview-arrow.svelte +2 -1
  109. package/dist/bits/link-preview/components/link-preview-content.svelte +6 -0
  110. package/dist/bits/link-preview/components/link-preview-trigger.svelte +2 -0
  111. package/dist/bits/menu/_types.d.ts +12 -12
  112. package/dist/bits/menu/components/menu-arrow.svelte +2 -1
  113. package/dist/bits/menu/components/menu-checkbox-indicator.svelte +2 -1
  114. package/dist/bits/menu/components/menu-checkbox-item.svelte +2 -0
  115. package/dist/bits/menu/components/menu-content.svelte +11 -1
  116. package/dist/bits/menu/components/menu-group.svelte +2 -1
  117. package/dist/bits/menu/components/menu-item.svelte +2 -0
  118. package/dist/bits/menu/components/menu-label.svelte +2 -1
  119. package/dist/bits/menu/components/menu-radio-group.svelte +2 -1
  120. package/dist/bits/menu/components/menu-radio-indicator.svelte +2 -1
  121. package/dist/bits/menu/components/menu-radio-item.svelte +2 -0
  122. package/dist/bits/menu/components/menu-separator.svelte +2 -1
  123. package/dist/bits/menu/components/menu-sub-content.svelte +6 -0
  124. package/dist/bits/menu/components/menu-sub-trigger.svelte +2 -0
  125. package/dist/bits/menu/components/menu-sub-trigger.svelte.d.ts +1 -0
  126. package/dist/bits/menu/components/menu-trigger.svelte +2 -0
  127. package/dist/bits/menu/types.d.ts +6 -6
  128. package/dist/bits/menubar/_types.d.ts +2 -2
  129. package/dist/bits/menubar/components/menubar-trigger.svelte +2 -0
  130. package/dist/bits/menubar/components/menubar.svelte +2 -1
  131. package/dist/bits/pagination/_types.d.ts +5 -5
  132. package/dist/bits/pagination/components/pagination-next-button.svelte +2 -0
  133. package/dist/bits/pagination/components/pagination-page.svelte +2 -0
  134. package/dist/bits/pagination/components/pagination-prev-button.svelte +2 -0
  135. package/dist/bits/pagination/components/pagination.svelte +2 -1
  136. package/dist/bits/pin-input/_types.d.ts +4 -4
  137. package/dist/bits/pin-input/components/pin-input-hidden-input.svelte +2 -1
  138. package/dist/bits/pin-input/components/pin-input-input.svelte +2 -0
  139. package/dist/bits/pin-input/components/pin-input.svelte +2 -1
  140. package/dist/bits/pin-input/types.d.ts +1 -1
  141. package/dist/bits/popover/_types.d.ts +3 -3
  142. package/dist/bits/popover/components/popover-arrow.svelte +2 -1
  143. package/dist/bits/popover/components/popover-close.svelte +2 -0
  144. package/dist/bits/popover/components/popover-content.svelte +11 -2
  145. package/dist/bits/popover/components/popover-trigger.svelte +2 -0
  146. package/dist/bits/popover/types.d.ts +1 -1
  147. package/dist/bits/progress/_types.d.ts +2 -2
  148. package/dist/bits/progress/components/progress.svelte +2 -1
  149. package/dist/bits/radio-group/_types.d.ts +5 -5
  150. package/dist/bits/radio-group/components/radio-group-input.svelte +2 -1
  151. package/dist/bits/radio-group/components/radio-group-item-indicator.svelte +2 -1
  152. package/dist/bits/radio-group/components/radio-group-item.svelte +2 -0
  153. package/dist/bits/radio-group/components/radio-group.svelte +2 -1
  154. package/dist/bits/range-calendar/_types.d.ts +14 -14
  155. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -1
  156. package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -0
  157. package/dist/bits/range-calendar/components/range-calendar-grid-body.svelte +2 -1
  158. package/dist/bits/range-calendar/components/range-calendar-grid-head.svelte +2 -1
  159. package/dist/bits/range-calendar/components/range-calendar-grid-row.svelte +2 -1
  160. package/dist/bits/range-calendar/components/range-calendar-grid.svelte +2 -1
  161. package/dist/bits/range-calendar/components/range-calendar-head-cell.svelte +2 -1
  162. package/dist/bits/range-calendar/components/range-calendar-header.svelte +2 -1
  163. package/dist/bits/range-calendar/components/range-calendar-heading.svelte +2 -1
  164. package/dist/bits/range-calendar/components/range-calendar-next-button.svelte +2 -0
  165. package/dist/bits/range-calendar/components/range-calendar-prev-button.svelte +2 -0
  166. package/dist/bits/range-calendar/components/range-calendar.svelte +1 -1
  167. package/dist/bits/select/_types.d.ts +9 -9
  168. package/dist/bits/select/components/select-arrow.svelte +2 -1
  169. package/dist/bits/select/components/select-content.svelte +6 -0
  170. package/dist/bits/select/components/select-group.svelte +2 -1
  171. package/dist/bits/select/components/select-input.svelte +2 -1
  172. package/dist/bits/select/components/select-item-indicator.svelte +2 -1
  173. package/dist/bits/select/components/select-item.svelte +2 -0
  174. package/dist/bits/select/components/select-label.svelte +2 -1
  175. package/dist/bits/select/components/select-trigger.svelte +2 -0
  176. package/dist/bits/select/components/select-value.svelte +2 -1
  177. package/dist/bits/separator/_types.d.ts +2 -2
  178. package/dist/bits/separator/components/separator.svelte +2 -1
  179. package/dist/bits/slider/_types.d.ts +5 -5
  180. package/dist/bits/slider/components/slider-input.svelte +2 -1
  181. package/dist/bits/slider/components/slider-range.svelte +2 -1
  182. package/dist/bits/slider/components/slider-thumb.svelte +7 -1
  183. package/dist/bits/slider/components/slider-tick.svelte +2 -1
  184. package/dist/bits/slider/components/slider.svelte +2 -1
  185. package/dist/bits/slider/types.d.ts +2 -2
  186. package/dist/bits/switch/_types.d.ts +3 -3
  187. package/dist/bits/switch/components/switch-input.svelte +2 -0
  188. package/dist/bits/switch/components/switch-input.svelte.d.ts +2 -1
  189. package/dist/bits/switch/components/switch-thumb.svelte +2 -1
  190. package/dist/bits/switch/components/switch.svelte +2 -0
  191. package/dist/bits/switch/types.d.ts +2 -2
  192. package/dist/bits/tabs/_types.d.ts +5 -5
  193. package/dist/bits/tabs/components/tabs-content.svelte +2 -1
  194. package/dist/bits/tabs/components/tabs-list.svelte +2 -1
  195. package/dist/bits/tabs/components/tabs-trigger.svelte +2 -0
  196. package/dist/bits/tabs/components/tabs.svelte +2 -1
  197. package/dist/bits/toggle/_types.d.ts +2 -2
  198. package/dist/bits/toggle/components/toggle.svelte +2 -0
  199. package/dist/bits/toggle-group/_types.d.ts +3 -3
  200. package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -0
  201. package/dist/bits/toggle-group/components/toggle-group.svelte +2 -1
  202. package/dist/bits/toolbar/_types.d.ts +6 -6
  203. package/dist/bits/toolbar/components/toolbar-button.svelte +2 -0
  204. package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -0
  205. package/dist/bits/toolbar/components/toolbar-group.svelte +2 -1
  206. package/dist/bits/toolbar/components/toolbar-link.svelte +2 -0
  207. package/dist/bits/toolbar/components/toolbar.svelte +2 -1
  208. package/dist/bits/tooltip/_types.d.ts +2 -2
  209. package/dist/bits/tooltip/components/tooltip-arrow.svelte +2 -1
  210. package/dist/bits/tooltip/components/tooltip-content.svelte +6 -0
  211. package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -0
  212. package/dist/internal/types.d.ts +19 -0
  213. package/package.json +1 -1
@@ -1,12 +1,13 @@
1
1
  <script>import { getAttrs } from "../ctx.js";
2
2
  export let asChild = false;
3
+ export let el = void 0;
3
4
  const attrs = getAttrs("head-cell");
4
5
  </script>
5
6
 
6
7
  {#if asChild}
7
8
  <slot {attrs} />
8
9
  {:else}
9
- <th {...$$restProps} {...attrs}>
10
+ <th bind:this={el} {...$$restProps} {...attrs}>
10
11
  <slot {attrs} />
11
12
  </th>
12
13
  {/if}
@@ -1,12 +1,13 @@
1
1
  <script>import { getAttrs } from "../ctx.js";
2
2
  export let asChild = false;
3
+ export let el = void 0;
3
4
  const attrs = getAttrs("header");
4
5
  </script>
5
6
 
6
7
  {#if asChild}
7
8
  <slot {attrs} />
8
9
  {:else}
9
- <header {...$$restProps} {...attrs}>
10
+ <header bind:this={el} {...$$restProps} {...attrs}>
10
11
  <slot {attrs} />
11
12
  </header>
12
13
  {/if}
@@ -1,6 +1,7 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { getAttrs, getCtx } from "../ctx.js";
3
3
  export let asChild = false;
4
+ export let el = void 0;
4
5
  const {
5
6
  elements: { heading },
6
7
  states: { headingValue }
@@ -15,7 +16,7 @@ $:
15
16
  {#if asChild}
16
17
  <slot {builder} headingValue={$headingValue} />
17
18
  {:else}
18
- <div {...builder} use:builder.action {...$$restProps}>
19
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
19
20
  <slot {builder} headingValue={$headingValue}>
20
21
  {$headingValue}
21
22
  </slot>
@@ -2,6 +2,7 @@
2
2
  import { getAttrs, getCtx } from "../ctx.js";
3
3
  import { createDispatcher } from "../../../internal/events.js";
4
4
  export let asChild = false;
5
+ export let el = void 0;
5
6
  const {
6
7
  elements: { nextButton }
7
8
  } = getCtx();
@@ -17,6 +18,7 @@ const dispatch = createDispatcher();
17
18
  <slot {builder} />
18
19
  {:else}
19
20
  <button
21
+ bind:this={el}
20
22
  {...builder} use:builder.action
21
23
  type="button"
22
24
  {...$$restProps}
@@ -2,6 +2,7 @@
2
2
  import { getAttrs, getCtx } from "../ctx.js";
3
3
  import { createDispatcher } from "../../../internal/events.js";
4
4
  export let asChild = false;
5
+ export let el = void 0;
5
6
  const {
6
7
  elements: { prevButton }
7
8
  } = getCtx();
@@ -17,6 +18,7 @@ const dispatch = createDispatcher();
17
18
  <slot {builder} />
18
19
  {:else}
19
20
  <button
21
+ bind:this={el}
20
22
  {...builder} use:builder.action
21
23
  type="button"
22
24
  {...$$restProps}
@@ -25,7 +25,7 @@ export let asChild = false;
25
25
  export let id = void 0;
26
26
  export let numberOfMonths = void 0;
27
27
  export let initialFocus = false;
28
- let el = void 0;
28
+ export let el = void 0;
29
29
  onMount(() => {
30
30
  if (!initialFocus || !el)
31
31
  return;
@@ -1,7 +1,7 @@
1
- import type { HTMLDivAttributes } from "../../internal";
1
+ import type { HTMLDivAttributes } from "../../internal/index.js";
2
2
  import type { HTMLAttributes, HTMLButtonAttributes, HTMLTableAttributes, HTMLTdAttributes, HTMLThAttributes } from "svelte/elements";
3
3
  import type * as I from "./_types.js";
4
- import type { CustomEventHandler } from "../..";
4
+ import type { CustomEventHandler } from "../../index.js";
5
5
  type Props<Multiple extends boolean = false> = I.Props<Multiple> & Omit<HTMLDivAttributes, "placeholder">;
6
6
  type PrevButtonProps = I.PrevButtonProps & HTMLButtonAttributes;
7
7
  type NextButtonProps = I.NextButtonProps & HTMLButtonAttributes;
@@ -3,7 +3,7 @@
3
3
  * to type-check our API documentation, which requires we document each prop,
4
4
  * but we don't want to document the HTML attributes.
5
5
  */
6
- import type { Expand, OmitChecked, OnChangeFn, AsChild } from "../../internal/index.js";
6
+ import type { Expand, OmitChecked, OnChangeFn, DOMElement } from "../../internal/index.js";
7
7
  import type { CreateCheckboxProps } from "@melt-ui/svelte";
8
8
  type Props = Expand<OmitChecked<CreateCheckboxProps> & {
9
9
  /**
@@ -17,6 +17,6 @@ type Props = Expand<OmitChecked<CreateCheckboxProps> & {
17
17
  * A callback function called when the checked state changes.
18
18
  */
19
19
  onCheckedChange?: OnChangeFn<boolean | "indeterminate">;
20
- } & AsChild>;
21
- type IndicatorProps = AsChild;
20
+ } & DOMElement<HTMLButtonElement>>;
21
+ type IndicatorProps = DOMElement;
22
22
  export type { Props, IndicatorProps, Props as CheckboxProps, IndicatorProps as CheckboxIndicatorProps };
@@ -1,5 +1,6 @@
1
1
  <script>import { getCtx, getAttrs } from "../ctx.js";
2
2
  export let asChild = false;
3
+ export let el = void 0;
3
4
  const {
4
5
  helpers: { isChecked, isIndeterminate },
5
6
  states: { checked }
@@ -21,7 +22,7 @@ $:
21
22
  {#if asChild}
22
23
  <slot {attrs} isChecked={$isChecked} isIndeterminate={$isIndeterminate} />
23
24
  {:else}
24
- <div {...$$restProps} {...attrs}>
25
+ <div bind:this={el} {...$$restProps} {...attrs}>
25
26
  <slot {attrs} isChecked={$isChecked} isIndeterminate={$isIndeterminate} />
26
27
  </div>
27
28
  {/if}
@@ -1,9 +1,15 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { getCtx } from "../ctx.js";
3
+ export let el = void 0;
3
4
  const {
4
5
  elements: { input },
5
6
  options: { value }
6
7
  } = getCtx();
7
8
  </script>
8
9
 
9
- <input {...$input} use:$input.action value={$value ?? "on"} {...$$restProps} />
10
+ <input
11
+ bind:this={el}
12
+ {...$input} use:$input.action
13
+ value={$value ?? "on"}
14
+ {...$$restProps}
15
+ />
@@ -1,8 +1,7 @@
1
1
  import { SvelteComponent } from "svelte";
2
+ import type { InputProps } from "../types.js";
2
3
  declare const __propDef: {
3
- props: {
4
- [x: string]: any;
5
- };
4
+ props: InputProps;
6
5
  events: {
7
6
  [evt: string]: CustomEvent<any>;
8
7
  };
@@ -8,6 +8,7 @@ export let required = void 0;
8
8
  export let value = void 0;
9
9
  export let onCheckedChange = void 0;
10
10
  export let asChild = false;
11
+ export let el = void 0;
11
12
  const {
12
13
  elements: { root },
13
14
  states: { checked: localChecked },
@@ -49,6 +50,7 @@ $:
49
50
  <slot {builder} />
50
51
  {:else}
51
52
  <button
53
+ bind:this={el}
52
54
  {...builder} use:builder.action
53
55
  type="button"
54
56
  {...$$restProps}
@@ -1,10 +1,10 @@
1
- import type { HTMLDivAttributes } from "../../internal/index.js";
1
+ import type { DOMEl, HTMLDivAttributes } from "../../internal/index.js";
2
2
  import type { CustomEventHandler } from "../../index.js";
3
3
  import type { HTMLButtonAttributes, HTMLInputAttributes } from "svelte/elements";
4
4
  import type * as I from "./_types.js";
5
5
  type Props = I.Props & HTMLButtonAttributes;
6
6
  type IndicatorProps = I.IndicatorProps & HTMLDivAttributes;
7
- type InputProps = Omit<HTMLInputAttributes, "value">;
7
+ type InputProps = Omit<HTMLInputAttributes, "value"> & DOMEl<HTMLInputElement>;
8
8
  type Events = {
9
9
  click: CustomEventHandler<MouseEvent, HTMLButtonElement>;
10
10
  keydown: CustomEventHandler<KeyboardEvent, HTMLButtonElement>;
@@ -3,7 +3,7 @@
3
3
  * to type-check our API documentation, which requires we document each prop,
4
4
  * but we don't want to document the HTML attributes.
5
5
  */
6
- import type { Transition, OmitOpen, OmitForceVisible, Expand, OnChangeFn, AsChild, TransitionProps } from "../../internal/index.js";
6
+ import type { Transition, OmitOpen, OmitForceVisible, Expand, OnChangeFn, TransitionProps, DOMElement } from "../../internal/index.js";
7
7
  import type { CreateCollapsibleProps } from "@melt-ui/svelte";
8
8
  type Props = Expand<OmitOpen<OmitForceVisible<CreateCollapsibleProps>> & {
9
9
  /**
@@ -17,7 +17,7 @@ type Props = Expand<OmitOpen<OmitForceVisible<CreateCollapsibleProps>> & {
17
17
  * A callback function called when the open state changes.
18
18
  */
19
19
  onOpenChange?: OnChangeFn<boolean>;
20
- } & AsChild>;
21
- type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild>;
22
- type TriggerProps = AsChild;
20
+ } & DOMElement>;
21
+ type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & DOMElement>;
22
+ type TriggerProps = DOMElement<HTMLButtonElement>;
23
23
  export type { Props, ContentProps, TriggerProps };
@@ -7,6 +7,7 @@ export let inTransitionConfig = void 0;
7
7
  export let outTransition = void 0;
8
8
  export let outTransitionConfig = void 0;
9
9
  export let asChild = false;
10
+ export let el = void 0;
10
11
  const {
11
12
  elements: { content },
12
13
  states: { open }
@@ -22,6 +23,7 @@ $:
22
23
  <slot {builder} />
23
24
  {:else if transition && $open}
24
25
  <div
26
+ bind:this={el}
25
27
  transition:transition={transitionConfig}
26
28
  {...builder} use:builder.action
27
29
  {...$$restProps}
@@ -30,6 +32,7 @@ $:
30
32
  </div>
31
33
  {:else if inTransition && outTransition && $open}
32
34
  <div
35
+ bind:this={el}
33
36
  in:inTransition={inTransitionConfig}
34
37
  out:outTransition={outTransitionConfig}
35
38
  {...builder} use:builder.action
@@ -38,11 +41,17 @@ $:
38
41
  <slot {builder} />
39
42
  </div>
40
43
  {:else if inTransition && $open}
41
- <div in:inTransition={inTransitionConfig} {...builder} use:builder.action {...$$restProps}>
44
+ <div
45
+ bind:this={el}
46
+ in:inTransition={inTransitionConfig}
47
+ {...builder} use:builder.action
48
+ {...$$restProps}
49
+ >
42
50
  <slot {builder} />
43
51
  </div>
44
52
  {:else if outTransition && $open}
45
53
  <div
54
+ bind:this={el}
46
55
  out:outTransition={outTransitionConfig}
47
56
  {...builder} use:builder.action
48
57
  {...$$restProps}
@@ -50,7 +59,7 @@ $:
50
59
  <slot {builder} />
51
60
  </div>
52
61
  {:else if $open}
53
- <div {...builder} use:builder.action {...$$restProps}>
62
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
54
63
  <slot {builder} />
55
64
  </div>
56
65
  {/if}
@@ -2,6 +2,7 @@
2
2
  import { createDispatcher } from "../../../internal/events.js";
3
3
  import { getCtx, getAttrs } from "../ctx.js";
4
4
  export let asChild = false;
5
+ export let el = void 0;
5
6
  const {
6
7
  elements: { trigger }
7
8
  } = getCtx();
@@ -17,6 +18,7 @@ $:
17
18
  <slot {builder} />
18
19
  {:else}
19
20
  <button
21
+ bind:this={el}
20
22
  {...builder} use:builder.action
21
23
  type="button"
22
24
  {...$$restProps}
@@ -4,6 +4,7 @@ export let disabled = void 0;
4
4
  export let open = void 0;
5
5
  export let onOpenChange = void 0;
6
6
  export let asChild = false;
7
+ export let el = void 0;
7
8
  const {
8
9
  elements: { root },
9
10
  states: { open: localOpen },
@@ -34,7 +35,7 @@ $:
34
35
  {#if asChild}
35
36
  <slot {builder} />
36
37
  {:else}
37
- <div {...builder} use:builder.action {...$$restProps}>
38
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
38
39
  <slot {builder} />
39
40
  </div>
40
41
  {/if}
@@ -1,5 +1,5 @@
1
- import type { AsChild, Transition, TransitionProps } from "../../internal/index.js";
1
+ import type { DOMElement, Transition, TransitionProps } from "../../internal/index.js";
2
2
  import type { FloatingProps } from "../floating/_types.js";
3
3
  type ContextFloatingProps = Omit<FloatingProps, "sameWidth" | "side" | "sideOffset" | "align">;
4
- export type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<ContextFloatingProps & TransitionProps<T, In, Out> & AsChild>;
4
+ export type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<ContextFloatingProps & TransitionProps<T, In, Out> & DOMElement>;
5
5
  export {};
@@ -14,6 +14,7 @@ export let collisionPadding = 8;
14
14
  export let avoidCollisions = true;
15
15
  export let collisionBoundary = void 0;
16
16
  export let fitViewport = false;
17
+ export let el = void 0;
17
18
  const {
18
19
  elements: { menu },
19
20
  states: { open },
@@ -43,6 +44,7 @@ $:
43
44
  <slot {builder} />
44
45
  {:else if transition && $open}
45
46
  <div
47
+ bind:this={el}
46
48
  transition:transition={transitionConfig}
47
49
  {...builder} use:builder.action
48
50
  {...$$restProps}
@@ -52,6 +54,7 @@ $:
52
54
  </div>
53
55
  {:else if inTransition && outTransition && $open}
54
56
  <div
57
+ bind:this={el}
55
58
  in:inTransition={inTransitionConfig}
56
59
  out:outTransition={outTransitionConfig}
57
60
  {...builder} use:builder.action
@@ -62,6 +65,7 @@ $:
62
65
  </div>
63
66
  {:else if inTransition && $open}
64
67
  <div
68
+ bind:this={el}
65
69
  in:inTransition={inTransitionConfig}
66
70
  {...builder} use:builder.action
67
71
  {...$$restProps}
@@ -71,6 +75,7 @@ $:
71
75
  </div>
72
76
  {:else if outTransition && $open}
73
77
  <div
78
+ bind:this={el}
74
79
  out:outTransition={outTransitionConfig}
75
80
  {...builder} use:builder.action
76
81
  {...$$restProps}
@@ -79,7 +84,12 @@ $:
79
84
  <slot {builder} />
80
85
  </div>
81
86
  {:else if $open}
82
- <div {...builder} use:builder.action {...$$restProps} on:m-keydown={dispatch}>
87
+ <div
88
+ bind:this={el}
89
+ {...builder} use:builder.action
90
+ {...$$restProps}
91
+ on:m-keydown={dispatch}
92
+ >
83
93
  <slot {builder} />
84
94
  </div>
85
95
  {/if}
@@ -3,6 +3,7 @@ import { getCtx, getAttrs } from "../ctx.js";
3
3
  import { createDispatcher } from "../../../internal/events.js";
4
4
  export let asChild = false;
5
5
  export let id = void 0;
6
+ export let el = void 0;
6
7
  const {
7
8
  elements: { trigger },
8
9
  ids
@@ -23,6 +24,7 @@ $:
23
24
  <slot {builder} />
24
25
  {:else}
25
26
  <div
27
+ bind:this={el}
26
28
  {...builder} use:builder.action
27
29
  {...$$restProps}
28
30
  on:m-contextmenu={dispatch}
@@ -3,7 +3,7 @@
3
3
  * to type-check our API documentation, which requires we document each prop,
4
4
  * but we don't want to document the HTML attributes.
5
5
  */
6
- import type { Expand, OnChangeFn, AsChild, OmitDates } from "../../internal/index.js";
6
+ import type { Expand, OnChangeFn, OmitDates, DOMElement } from "../../internal/index.js";
7
7
  import type { SegmentPart } from "../../shared";
8
8
  import type { DateValue } from "@internationalized/date";
9
9
  import type { CreateDateFieldProps } from "@melt-ui/svelte";
@@ -36,10 +36,10 @@ type Props = Expand<Omit<OmitDates<CreateDateFieldProps>, "required" | "name"> &
36
36
  */
37
37
  descriptionId?: string;
38
38
  }>;
39
- type InputProps = AsChild;
40
- type DescriptionProps = AsChild;
41
- type LabelProps = AsChild;
39
+ type InputProps = DOMElement;
40
+ type DescriptionProps = DOMElement;
41
+ type LabelProps = DOMElement<HTMLSpanElement>;
42
42
  type SegmentProps = Expand<{
43
43
  part: SegmentPart;
44
- } & AsChild>;
44
+ } & DOMElement>;
45
45
  export type { Props, LabelProps, DescriptionProps, InputProps, SegmentProps };
@@ -2,6 +2,7 @@
2
2
  import { getCtx, getAttrs } from "../ctx.js";
3
3
  export let asChild = false;
4
4
  export let id = void 0;
5
+ export let el = void 0;
5
6
  const {
6
7
  elements: { field },
7
8
  states: { segmentContents },
@@ -21,7 +22,7 @@ $:
21
22
  {#if asChild}
22
23
  <slot {builder} segments={$segmentContents} />
23
24
  {:else}
24
- <div {...builder} use:builder.action {...$$restProps}>
25
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
25
26
  <slot {builder} segments={$segmentContents} />
26
27
  </div>
27
28
  {/if}
@@ -2,6 +2,7 @@
2
2
  import { getCtx, getAttrs } from "../ctx.js";
3
3
  export let asChild = false;
4
4
  export let id = void 0;
5
+ export let el = void 0;
5
6
  const {
6
7
  elements: { label },
7
8
  ids
@@ -19,7 +20,7 @@ $:
19
20
  {#if asChild}
20
21
  <slot {builder} />
21
22
  {:else}
22
- <span {...builder} use:builder.action {...$$restProps}>
23
+ <span bind:this={el} {...builder} use:builder.action {...$$restProps}>
23
24
  <slot {builder} />
24
25
  </span>
25
26
  {/if}
@@ -4,6 +4,7 @@ import { createDispatcher } from "../../../internal/events.js";
4
4
  export let asChild = false;
5
5
  export let id = void 0;
6
6
  export let part;
7
+ export let el = void 0;
7
8
  const {
8
9
  elements: { segment },
9
10
  ids
@@ -24,6 +25,7 @@ $:
24
25
  <slot {builder} />
25
26
  {:else}
26
27
  <div
28
+ bind:this={el}
27
29
  {...builder} use:builder.action
28
30
  {...$$restProps}
29
31
  on:m-click={dispatch}
@@ -3,7 +3,7 @@
3
3
  * to type-check our API documentation, which requires we document each prop,
4
4
  * but we don't want to document the HTML attributes.
5
5
  */
6
- import type { Expand, OnChangeFn, AsChild, OmitDates, OmitFloating } from "../../internal/index.js";
6
+ import type { Expand, OnChangeFn, OmitDates, OmitFloating, DOMElement } from "../../internal/index.js";
7
7
  import type { SegmentPart } from "../../shared";
8
8
  import type { DateValue } from "@internationalized/date";
9
9
  import type { CreateDatePickerProps } from "@melt-ui/svelte";
@@ -46,12 +46,12 @@ type Props = Expand<Omit<OmitFloating<OmitDates<CreateDatePickerProps>>, "requir
46
46
  * This is used to apply the appropriate `aria-describedby` attribute to the input.
47
47
  */
48
48
  descriptionId?: string;
49
- } & AsChild>;
50
- type InputProps = AsChild;
51
- type DescriptionProps = AsChild;
52
- type LabelProps = AsChild;
53
- type CalendarProps = AsChild;
49
+ }>;
50
+ type InputProps = DOMElement;
51
+ type DescriptionProps = DOMElement;
52
+ type LabelProps = DOMElement<HTMLSpanElement>;
53
+ type CalendarProps = DOMElement;
54
54
  type SegmentProps = Expand<{
55
55
  part: SegmentPart;
56
- } & AsChild>;
56
+ } & DOMElement>;
57
57
  export type { Props, CalendarProps, LabelProps, DescriptionProps, InputProps, SegmentProps };
@@ -1,6 +1,7 @@
1
1
  <script>import { getPopoverAttrs, getCtx } from "../ctx.js";
2
2
  import { melt } from "@melt-ui/svelte";
3
3
  export let asChild = false;
4
+ export let el = void 0;
4
5
  export let size = 8;
5
6
  const {
6
7
  elements: { arrow },
@@ -18,5 +19,5 @@ $:
18
19
  {#if asChild}
19
20
  <slot {builder} />
20
21
  {:else}
21
- <div {...builder} use:builder.action {...$$restProps} />
22
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps} />
22
23
  {/if}
@@ -3,6 +3,7 @@ import { getCtx, getCalendarAttrs } from "../ctx.js";
3
3
  import { createDispatcher } from "../../../internal/events.js";
4
4
  export let asChild = false;
5
5
  export let id = void 0;
6
+ export let el = void 0;
6
7
  const {
7
8
  elements: { calendar },
8
9
  states: { months: localMonths, weekdays },
@@ -26,7 +27,12 @@ $:
26
27
  {#if asChild}
27
28
  <slot {builder} {months} weekdays={$weekdays} />
28
29
  {:else}
29
- <div {...builder} use:builder.action {...$$restProps} on:m-keydown={dispatch}>
30
+ <div
31
+ bind:this={el}
32
+ {...builder} use:builder.action
33
+ {...$$restProps}
34
+ on:m-keydown={dispatch}
35
+ >
30
36
  <slot {builder} {months} weekdays={$weekdays} />
31
37
  </div>
32
38
  {/if}
@@ -1,6 +1,7 @@
1
1
  <script>import { getCtx, getCalendarAttrs } from "../ctx.js";
2
2
  export let date;
3
3
  export let asChild = false;
4
+ export let el = void 0;
4
5
  const {
5
6
  helpers: { isDateDisabled, isDateUnavailable }
6
7
  } = getCtx();
@@ -16,7 +17,7 @@ $:
16
17
  {#if asChild}
17
18
  <slot {attrs} />
18
19
  {:else}
19
- <td {...$$restProps} {...attrs}>
20
+ <td bind:this={el} {...$$restProps} {...attrs}>
20
21
  <slot {attrs} />
21
22
  </td>
22
23
  {/if}
@@ -2,6 +2,7 @@
2
2
  import { getCtx, getPopoverAttrs } from "../ctx.js";
3
3
  import { createDispatcher } from "../../../internal/events.js";
4
4
  export let asChild = false;
5
+ export let el = void 0;
5
6
  const {
6
7
  elements: { close }
7
8
  } = getCtx();
@@ -17,6 +18,7 @@ $:
17
18
  <slot {builder} />
18
19
  {:else}
19
20
  <button
21
+ bind:this={el}
20
22
  {...builder} use:builder.action
21
23
  type="button"
22
24
  {...$$restProps}
@@ -19,6 +19,7 @@ export let sameWidth = false;
19
19
  export let fitViewport = false;
20
20
  export let strategy = "absolute";
21
21
  export let overlap = false;
22
+ export let el = void 0;
22
23
  const {
23
24
  elements: { content },
24
25
  states: { open },
@@ -53,6 +54,7 @@ $:
53
54
  <slot {builder} />
54
55
  {:else if transition && $open}
55
56
  <div
57
+ bind:this={el}
56
58
  transition:transition={transitionConfig}
57
59
  {...builder} use:builder.action
58
60
  {...$$restProps}
@@ -61,6 +63,7 @@ $:
61
63
  </div>
62
64
  {:else if inTransition && outTransition && $open}
63
65
  <div
66
+ bind:this={el}
64
67
  in:inTransition={inTransitionConfig}
65
68
  out:outTransition={outTransitionConfig}
66
69
  {...builder} use:builder.action
@@ -69,11 +72,17 @@ $:
69
72
  <slot {builder} />
70
73
  </div>
71
74
  {:else if inTransition && $open}
72
- <div in:inTransition={inTransitionConfig} {...builder} use:builder.action {...$$restProps}>
75
+ <div
76
+ bind:this={el}
77
+ in:inTransition={inTransitionConfig}
78
+ {...builder} use:builder.action
79
+ {...$$restProps}
80
+ >
73
81
  <slot {builder} />
74
82
  </div>
75
83
  {:else if outTransition && $open}
76
84
  <div
85
+ bind:this={el}
77
86
  out:outTransition={outTransitionConfig}
78
87
  {...builder} use:builder.action
79
88
  {...$$restProps}
@@ -81,7 +90,7 @@ $:
81
90
  <slot {builder} />
82
91
  </div>
83
92
  {:else if $open}
84
- <div {...builder} use:builder.action {...$$restProps}>
93
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
85
94
  <slot {builder} />
86
95
  </div>
87
96
  {/if}
@@ -4,6 +4,7 @@ import { createDispatcher } from "../../../internal/events.js";
4
4
  export let date;
5
5
  export let month;
6
6
  export let asChild = false;
7
+ export let el = void 0;
7
8
  const {
8
9
  elements: { cell },
9
10
  helpers: { isDateDisabled, isDateUnavailable, isDateSelected }
@@ -25,7 +26,7 @@ $:
25
26
  {#if asChild}
26
27
  <slot {builder} {disabled} {unavailable} {selected} />
27
28
  {:else}
28
- <div {...builder} use:builder.action {...$$restProps} on:m-click={dispatch}>
29
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps} on:m-click={dispatch}>
29
30
  <slot {builder} {disabled} {unavailable} {selected}>
30
31
  {date.day}
31
32
  </slot>
@@ -34,7 +34,6 @@ declare const __propDef: {
34
34
  onPlaceholderChange?: import("../../../internal/types.js").OnChangeFn<import("@internationalized/date").DateValue> | undefined;
35
35
  validationId?: string | undefined;
36
36
  descriptionId?: string | undefined;
37
- asChild?: boolean | undefined;
38
37
  };
39
38
  events: {
40
39
  [evt: string]: CustomEvent<any>;
@@ -1,6 +1,7 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { getCalendarAttrs, getCtx } from "../ctx.js";
3
3
  export let asChild = false;
4
+ export let el = void 0;
4
5
  const {
5
6
  elements: { grid }
6
7
  } = getCtx();
@@ -14,7 +15,7 @@ $:
14
15
  {#if asChild}
15
16
  <slot {builder} />
16
17
  {:else}
17
- <table {...builder} use:builder.action {...$$restProps}>
18
+ <table bind:this={el} {...builder} use:builder.action {...$$restProps}>
18
19
  <slot {builder} />
19
20
  </table>
20
21
  {/if}