bits-ui 0.11.7 → 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 (226) 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/index.d.ts +3 -2
  105. package/dist/bits/index.js +3 -2
  106. package/dist/bits/label/_types.d.ts +2 -2
  107. package/dist/bits/label/components/label.svelte +7 -1
  108. package/dist/bits/label/types.d.ts +1 -1
  109. package/dist/bits/link-preview/_types.d.ts +2 -2
  110. package/dist/bits/link-preview/components/link-preview-arrow.svelte +2 -1
  111. package/dist/bits/link-preview/components/link-preview-content.svelte +6 -0
  112. package/dist/bits/link-preview/components/link-preview-trigger.svelte +2 -0
  113. package/dist/bits/menu/_types.d.ts +12 -12
  114. package/dist/bits/menu/components/menu-arrow.svelte +2 -1
  115. package/dist/bits/menu/components/menu-checkbox-indicator.svelte +2 -1
  116. package/dist/bits/menu/components/menu-checkbox-item.svelte +2 -0
  117. package/dist/bits/menu/components/menu-content.svelte +11 -1
  118. package/dist/bits/menu/components/menu-group.svelte +2 -1
  119. package/dist/bits/menu/components/menu-item.svelte +2 -0
  120. package/dist/bits/menu/components/menu-label.svelte +2 -1
  121. package/dist/bits/menu/components/menu-radio-group.svelte +2 -1
  122. package/dist/bits/menu/components/menu-radio-indicator.svelte +2 -1
  123. package/dist/bits/menu/components/menu-radio-item.svelte +2 -0
  124. package/dist/bits/menu/components/menu-separator.svelte +2 -1
  125. package/dist/bits/menu/components/menu-sub-content.svelte +6 -0
  126. package/dist/bits/menu/components/menu-sub-trigger.svelte +2 -0
  127. package/dist/bits/menu/components/menu-sub-trigger.svelte.d.ts +1 -0
  128. package/dist/bits/menu/components/menu-trigger.svelte +2 -0
  129. package/dist/bits/menu/types.d.ts +6 -6
  130. package/dist/bits/menubar/_types.d.ts +2 -2
  131. package/dist/bits/menubar/components/menubar-trigger.svelte +2 -0
  132. package/dist/bits/menubar/components/menubar.svelte +2 -1
  133. package/dist/bits/pagination/_types.d.ts +5 -5
  134. package/dist/bits/pagination/components/pagination-next-button.svelte +2 -0
  135. package/dist/bits/pagination/components/pagination-page.svelte +2 -0
  136. package/dist/bits/pagination/components/pagination-prev-button.svelte +2 -0
  137. package/dist/bits/pagination/components/pagination.svelte +2 -1
  138. package/dist/bits/pin-input/_export.types.d.ts +1 -0
  139. package/dist/bits/pin-input/_export.types.js +1 -0
  140. package/dist/bits/pin-input/_types.d.ts +22 -0
  141. package/dist/bits/pin-input/_types.js +1 -0
  142. package/dist/bits/pin-input/components/pin-input-hidden-input.svelte +24 -0
  143. package/dist/bits/pin-input/components/pin-input-hidden-input.svelte.d.ts +31 -0
  144. package/dist/bits/pin-input/components/pin-input-input.svelte +31 -0
  145. package/dist/bits/pin-input/components/pin-input-input.svelte.d.ts +27 -0
  146. package/dist/bits/pin-input/components/pin-input.svelte +67 -0
  147. package/dist/bits/pin-input/components/pin-input.svelte.d.ts +29 -0
  148. package/dist/bits/pin-input/ctx.d.ts +63 -0
  149. package/dist/bits/pin-input/ctx.js +17 -0
  150. package/dist/bits/pin-input/index.d.ts +4 -0
  151. package/dist/bits/pin-input/index.js +4 -0
  152. package/dist/bits/pin-input/types.d.ts +16 -0
  153. package/dist/bits/pin-input/types.js +1 -0
  154. package/dist/bits/popover/_types.d.ts +3 -3
  155. package/dist/bits/popover/components/popover-arrow.svelte +2 -1
  156. package/dist/bits/popover/components/popover-close.svelte +2 -0
  157. package/dist/bits/popover/components/popover-content.svelte +11 -2
  158. package/dist/bits/popover/components/popover-trigger.svelte +2 -0
  159. package/dist/bits/popover/types.d.ts +1 -1
  160. package/dist/bits/progress/_types.d.ts +2 -2
  161. package/dist/bits/progress/components/progress.svelte +2 -1
  162. package/dist/bits/radio-group/_types.d.ts +5 -5
  163. package/dist/bits/radio-group/components/radio-group-input.svelte +2 -1
  164. package/dist/bits/radio-group/components/radio-group-item-indicator.svelte +2 -1
  165. package/dist/bits/radio-group/components/radio-group-item.svelte +2 -0
  166. package/dist/bits/radio-group/components/radio-group.svelte +2 -1
  167. package/dist/bits/range-calendar/_types.d.ts +14 -14
  168. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -1
  169. package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -0
  170. package/dist/bits/range-calendar/components/range-calendar-grid-body.svelte +2 -1
  171. package/dist/bits/range-calendar/components/range-calendar-grid-head.svelte +2 -1
  172. package/dist/bits/range-calendar/components/range-calendar-grid-row.svelte +2 -1
  173. package/dist/bits/range-calendar/components/range-calendar-grid.svelte +2 -1
  174. package/dist/bits/range-calendar/components/range-calendar-head-cell.svelte +2 -1
  175. package/dist/bits/range-calendar/components/range-calendar-header.svelte +2 -1
  176. package/dist/bits/range-calendar/components/range-calendar-heading.svelte +2 -1
  177. package/dist/bits/range-calendar/components/range-calendar-next-button.svelte +2 -0
  178. package/dist/bits/range-calendar/components/range-calendar-prev-button.svelte +2 -0
  179. package/dist/bits/range-calendar/components/range-calendar.svelte +1 -1
  180. package/dist/bits/select/_types.d.ts +9 -9
  181. package/dist/bits/select/components/select-arrow.svelte +2 -1
  182. package/dist/bits/select/components/select-content.svelte +6 -0
  183. package/dist/bits/select/components/select-group.svelte +2 -1
  184. package/dist/bits/select/components/select-input.svelte +2 -1
  185. package/dist/bits/select/components/select-item-indicator.svelte +2 -1
  186. package/dist/bits/select/components/select-item.svelte +2 -0
  187. package/dist/bits/select/components/select-label.svelte +2 -1
  188. package/dist/bits/select/components/select-trigger.svelte +2 -0
  189. package/dist/bits/select/components/select-value.svelte +2 -1
  190. package/dist/bits/separator/_types.d.ts +2 -2
  191. package/dist/bits/separator/components/separator.svelte +2 -1
  192. package/dist/bits/slider/_types.d.ts +5 -5
  193. package/dist/bits/slider/components/slider-input.svelte +2 -1
  194. package/dist/bits/slider/components/slider-range.svelte +2 -1
  195. package/dist/bits/slider/components/slider-thumb.svelte +7 -1
  196. package/dist/bits/slider/components/slider-tick.svelte +2 -1
  197. package/dist/bits/slider/components/slider.svelte +2 -1
  198. package/dist/bits/slider/types.d.ts +2 -2
  199. package/dist/bits/switch/_types.d.ts +3 -3
  200. package/dist/bits/switch/components/switch-input.svelte +2 -0
  201. package/dist/bits/switch/components/switch-input.svelte.d.ts +2 -1
  202. package/dist/bits/switch/components/switch-thumb.svelte +2 -1
  203. package/dist/bits/switch/components/switch.svelte +2 -0
  204. package/dist/bits/switch/types.d.ts +2 -2
  205. package/dist/bits/tabs/_types.d.ts +5 -5
  206. package/dist/bits/tabs/components/tabs-content.svelte +2 -1
  207. package/dist/bits/tabs/components/tabs-list.svelte +2 -1
  208. package/dist/bits/tabs/components/tabs-trigger.svelte +2 -0
  209. package/dist/bits/tabs/components/tabs.svelte +2 -1
  210. package/dist/bits/toggle/_types.d.ts +2 -2
  211. package/dist/bits/toggle/components/toggle.svelte +2 -0
  212. package/dist/bits/toggle-group/_types.d.ts +3 -3
  213. package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -0
  214. package/dist/bits/toggle-group/components/toggle-group.svelte +2 -1
  215. package/dist/bits/toolbar/_types.d.ts +6 -6
  216. package/dist/bits/toolbar/components/toolbar-button.svelte +2 -0
  217. package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -0
  218. package/dist/bits/toolbar/components/toolbar-group.svelte +2 -1
  219. package/dist/bits/toolbar/components/toolbar-link.svelte +2 -0
  220. package/dist/bits/toolbar/components/toolbar.svelte +2 -1
  221. package/dist/bits/tooltip/_types.d.ts +2 -2
  222. package/dist/bits/tooltip/components/tooltip-arrow.svelte +2 -1
  223. package/dist/bits/tooltip/components/tooltip-content.svelte +6 -0
  224. package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -0
  225. package/dist/internal/types.d.ts +19 -0
  226. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import type { ObjectVariation, Transition, OmitValue, OmitForceVisible, Expand, OnChangeFn, AsChild, TransitionProps } from "../../internal/index.js";
1
+ import type { ObjectVariation, Transition, OmitValue, OmitForceVisible, Expand, OnChangeFn, TransitionProps, DOMElement } from "../../internal/index.js";
2
2
  import type { CreateAccordionProps, AccordionItemProps, AccordionHeadingProps } from "@melt-ui/svelte";
3
3
  type Props<Multiple extends boolean> = Expand<OmitValue<OmitForceVisible<CreateAccordionProps<Multiple>>> & {
4
4
  /**
@@ -10,14 +10,14 @@ type Props<Multiple extends boolean> = Expand<OmitValue<OmitForceVisible<CreateA
10
10
  * A callback function called when the value changes.
11
11
  */
12
12
  onValueChange?: OnChangeFn<CreateAccordionProps<Multiple>["defaultValue"]>;
13
- } & AsChild>;
14
- type ItemProps = Expand<ObjectVariation<AccordionItemProps> & AsChild>;
13
+ } & DOMElement>;
14
+ type ItemProps = Expand<ObjectVariation<AccordionItemProps> & DOMElement>;
15
15
  type HeaderProps = Expand<{
16
16
  /**
17
17
  * The heading level of the accordion header.
18
18
  */
19
19
  level?: ObjectVariation<AccordionHeadingProps>["level"];
20
- } & AsChild>;
21
- type TriggerProps = AsChild;
22
- type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild>;
20
+ } & DOMElement>;
21
+ type TriggerProps = DOMElement<HTMLButtonElement>;
22
+ type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & DOMElement>;
23
23
  export type { Props, ItemProps, HeaderProps, TriggerProps, ContentProps };
@@ -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 { content, isSelected, props } = getContent();
11
12
  const attrs = getAttrs("content");
12
13
  $:
@@ -19,6 +20,7 @@ $:
19
20
  <slot {builder} />
20
21
  {:else if transition && $isSelected(props)}
21
22
  <div
23
+ bind:this={el}
22
24
  transition:transition={transitionConfig}
23
25
  {...builder} use:builder.action
24
26
  {...$$restProps}
@@ -27,6 +29,7 @@ $:
27
29
  </div>
28
30
  {:else if inTransition && outTransition && $isSelected(props)}
29
31
  <div
32
+ bind:this={el}
30
33
  in:inTransition={inTransitionConfig}
31
34
  out:outTransition={outTransitionConfig}
32
35
  {...builder} use:builder.action
@@ -35,11 +38,17 @@ $:
35
38
  <slot {builder} />
36
39
  </div>
37
40
  {:else if inTransition && $isSelected(props)}
38
- <div in:inTransition={inTransitionConfig} {...builder} use:builder.action {...$$restProps}>
41
+ <div
42
+ bind:this={el}
43
+ in:inTransition={inTransitionConfig}
44
+ {...builder} use:builder.action
45
+ {...$$restProps}
46
+ >
39
47
  <slot {builder} />
40
48
  </div>
41
49
  {:else if outTransition && $isSelected(props)}
42
50
  <div
51
+ bind:this={el}
43
52
  out:outTransition={outTransitionConfig}
44
53
  {...builder} use:builder.action
45
54
  {...$$restProps}
@@ -47,7 +56,7 @@ $:
47
56
  <slot {builder} />
48
57
  </div>
49
58
  {:else if $isSelected(props)}
50
- <div {...builder} use:builder.action {...$$restProps}>
59
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
51
60
  <slot {builder} />
52
61
  </div>
53
62
  {/if}
@@ -2,6 +2,7 @@
2
2
  import { getAttrs, getCtx } from "../ctx.js";
3
3
  export let level = 3;
4
4
  export let asChild = false;
5
+ export let el = void 0;
5
6
  const {
6
7
  elements: { heading: header }
7
8
  } = getCtx();
@@ -15,7 +16,7 @@ $:
15
16
  {#if asChild}
16
17
  <slot {builder} />
17
18
  {:else}
18
- <div {...builder} use:builder.action {...$$restProps}>
19
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
19
20
  <slot {builder} />
20
21
  </div>
21
22
  {/if}
@@ -3,6 +3,7 @@ import { setItem, getAttrs } from "../ctx.js";
3
3
  export let value;
4
4
  export let disabled = void 0;
5
5
  export let asChild = false;
6
+ export let el = void 0;
6
7
  const { item, props } = setItem({ value, disabled });
7
8
  const attrs = getAttrs("item");
8
9
  $:
@@ -14,7 +15,7 @@ $:
14
15
  {#if asChild}
15
16
  <slot {builder} />
16
17
  {:else}
17
- <div {...builder} use:builder.action {...$$restProps}>
18
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
18
19
  <slot {builder} />
19
20
  </div>
20
21
  {/if}
@@ -2,6 +2,7 @@
2
2
  import { getTrigger, getAttrs } 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 { trigger, props } = getTrigger();
6
7
  const dispatch = createDispatcher();
7
8
  const attrs = getAttrs("trigger");
@@ -15,6 +16,7 @@ $:
15
16
  <slot {builder} />
16
17
  {:else}
17
18
  <button
19
+ bind:this={el}
18
20
  {...builder} use:builder.action
19
21
  type="button"
20
22
  {...$$restProps}
@@ -5,6 +5,7 @@ export let value = void 0;
5
5
  export let onValueChange = void 0;
6
6
  export let disabled = false;
7
7
  export let asChild = false;
8
+ export let el = void 0;
8
9
  const {
9
10
  elements: { root },
10
11
  states: { value: localValue },
@@ -45,7 +46,7 @@ $:
45
46
  {#if asChild}
46
47
  <slot {builder} />
47
48
  {:else}
48
- <div {...builder} use:builder.action {...$$restProps}>
49
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
49
50
  <slot {builder} />
50
51
  </div>
51
52
  {/if}
@@ -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 { OmitOpen, Expand, OnChangeFn, Transition, AsChild, TransitionProps } from "../../internal/index.js";
6
+ import type { OmitOpen, Expand, OnChangeFn, Transition, TransitionProps, DOMElement } from "../../internal/index.js";
7
7
  import type { CreateDialogProps } from "@melt-ui/svelte";
8
8
  type Props = Expand<OmitOpen<Omit<CreateDialogProps, "role" | "forceVisible" | "ids">> & {
9
9
  /**
@@ -18,13 +18,13 @@ type Props = Expand<OmitOpen<Omit<CreateDialogProps, "role" | "forceVisible" | "
18
18
  */
19
19
  onOpenChange?: OnChangeFn<boolean>;
20
20
  }>;
21
- type TriggerProps = AsChild;
21
+ type TriggerProps = DOMElement<HTMLButtonElement>;
22
22
  type ActionProps = TriggerProps;
23
23
  type CancelProps = TriggerProps;
24
- type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & AsChild>;
25
- type DescriptionProps = AsChild;
26
- type PortalProps = AsChild;
24
+ type ContentProps<T extends Transition = Transition, In extends Transition = Transition, Out extends Transition = Transition> = Expand<TransitionProps<T, In, Out> & DOMElement>;
25
+ type DescriptionProps = DOMElement;
26
+ type PortalProps = DOMElement;
27
27
  type TitleProps = Expand<{
28
28
  level?: "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
29
- } & AsChild>;
29
+ } & DOMElement<HTMLHeadingElement>>;
30
30
  export type { Props, TriggerProps, ActionProps, CancelProps, ContentProps, DescriptionProps, ContentProps as OverlayProps, PortalProps, TitleProps };
@@ -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: { 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}
@@ -2,6 +2,7 @@
2
2
  import { getCtx, getAttrs } 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}
@@ -8,6 +8,7 @@ export let outTransition = void 0;
8
8
  export let outTransitionConfig = void 0;
9
9
  export let id = void 0;
10
10
  export let asChild = false;
11
+ export let el = void 0;
11
12
  const {
12
13
  elements: { content },
13
14
  states: { open },
@@ -28,6 +29,7 @@ $:
28
29
  <slot {builder} />
29
30
  {:else if transition && $open}
30
31
  <div
32
+ bind:this={el}
31
33
  transition:transition={transitionConfig}
32
34
  {...builder} use:builder.action
33
35
  {...$$restProps}
@@ -36,6 +38,7 @@ $:
36
38
  </div>
37
39
  {:else if inTransition && outTransition && $open}
38
40
  <div
41
+ bind:this={el}
39
42
  in:inTransition={inTransitionConfig}
40
43
  out:outTransition={outTransitionConfig}
41
44
  {...builder} use:builder.action
@@ -44,11 +47,17 @@ $:
44
47
  <slot {builder} />
45
48
  </div>
46
49
  {:else if inTransition && $open}
47
- <div in:inTransition={inTransitionConfig} {...builder} use:builder.action {...$$restProps}>
50
+ <div
51
+ bind:this={el}
52
+ in:inTransition={inTransitionConfig}
53
+ {...builder} use:builder.action
54
+ {...$$restProps}
55
+ >
48
56
  <slot {builder} />
49
57
  </div>
50
58
  {:else if outTransition && $open}
51
59
  <div
60
+ bind:this={el}
52
61
  out:outTransition={outTransitionConfig}
53
62
  {...builder} use:builder.action
54
63
  {...$$restProps}
@@ -56,7 +65,7 @@ $:
56
65
  <slot {builder} />
57
66
  </div>
58
67
  {:else if $open}
59
- <div {...builder} use:builder.action {...$$restProps}>
68
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
60
69
  <slot {builder} />
61
70
  </div>
62
71
  {/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: { description },
7
8
  ids
@@ -20,7 +21,7 @@ $:
20
21
  {#if asChild}
21
22
  <slot {builder} />
22
23
  {:else}
23
- <div {...builder} use:builder.action {...$$restProps}>
24
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
24
25
  <slot {builder} />
25
26
  </div>
26
27
  {/if}
@@ -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: { overlay },
12
13
  states: { open }
@@ -22,12 +23,14 @@ $:
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}
28
30
  />
29
31
  {:else if inTransition && outTransition && $open}
30
32
  <div
33
+ bind:this={el}
31
34
  in:inTransition={inTransitionConfig}
32
35
  out:outTransition={outTransitionConfig}
33
36
  {...builder} use:builder.action
@@ -35,16 +38,18 @@ $:
35
38
  />
36
39
  {:else if inTransition && $open}
37
40
  <div
41
+ bind:this={el}
38
42
  in:inTransition={inTransitionConfig}
39
43
  {...builder} use:builder.action
40
44
  {...$$restProps}
41
45
  />
42
46
  {:else if outTransition && $open}
43
47
  <div
48
+ bind:this={el}
44
49
  out:outTransition={outTransitionConfig}
45
50
  {...builder} use:builder.action
46
51
  {...$$restProps}
47
52
  />
48
53
  {:else if $open}
49
- <div {...builder} use:builder.action {...$$restProps} />
54
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps} />
50
55
  {/if}
@@ -1,6 +1,7 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { getCtx, getAttrs } from "../ctx.js";
3
3
  export let asChild = false;
4
+ export let el = void 0;
4
5
  const {
5
6
  elements: { portalled }
6
7
  } = getCtx();
@@ -14,7 +15,7 @@ $:
14
15
  {#if asChild}
15
16
  <slot {builder} />
16
17
  {:else}
17
- <div {...builder} use:builder.action {...$$restProps}>
18
+ <div bind:this={el} {...builder} use:builder.action {...$$restProps}>
18
19
  <slot {builder} />
19
20
  </div>
20
21
  {/if}
@@ -3,6 +3,7 @@ import { getCtx, getAttrs } from "../ctx.js";
3
3
  export let level = "h2";
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: { title },
8
9
  ids
@@ -21,7 +22,12 @@ $:
21
22
  {#if asChild}
22
23
  <slot {builder} />
23
24
  {:else}
24
- <svelte:element this={level} {...builder} use:builder.action {...$$restProps}>
25
+ <svelte:element
26
+ this={level}
27
+ bind:this={el}
28
+ {...builder} use:builder.action
29
+ {...$$restProps}
30
+ >
25
31
  <slot {builder} />
26
32
  </svelte:element>
27
33
  {/if}
@@ -2,6 +2,7 @@
2
2
  import { getCtx, getAttrs } 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: { 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
  on:m-click={dispatch}
@@ -3,7 +3,8 @@
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 { DOMEl } from "../../internal/index.js";
6
7
  type Props = Expand<{
7
8
  ratio: number;
8
- }>;
9
+ } & DOMEl>;
9
10
  export type { Props };
@@ -1,4 +1,5 @@
1
1
  <script>export let ratio = 1 / 1;
2
+ export let el = void 0;
2
3
  const attrs = {
3
4
  "data-aspect-ratio-root": ""
4
5
  };
@@ -10,6 +11,7 @@ const attrs = {
10
11
  style:padding-bottom="{100 / ratio}%"
11
12
  >
12
13
  <div
14
+ bind:this={el}
13
15
  style:position="absolute"
14
16
  style:top="0"
15
17
  style:right="0"
@@ -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, AsChild, OnChangeFn } from "../../internal/index.js";
6
+ import type { Expand, OnChangeFn, DOMElement } from "../../internal/index.js";
7
7
  import type { CreateAvatarProps } from "@melt-ui/svelte";
8
8
  type Props = Expand<Omit<CreateAvatarProps, "onLoadingStatusChange" | "loadingStatus" | "src"> & {
9
9
  /**
@@ -15,7 +15,7 @@ type Props = Expand<Omit<CreateAvatarProps, "onLoadingStatusChange" | "loadingSt
15
15
  * A callback function called when the loading state changes.
16
16
  */
17
17
  onLoadingStatusChange?: OnChangeFn<"loading" | "loaded" | "error">;
18
- } & AsChild>;
19
- type ImageProps = Expand<AsChild>;
20
- type FallbackProps = AsChild;
18
+ } & DOMElement>;
19
+ type ImageProps = DOMElement<HTMLImageElement>;
20
+ type FallbackProps = DOMElement<HTMLSpanElement>;
21
21
  export type { Props, ImageProps, FallbackProps };
@@ -1,6 +1,7 @@
1
1
  <script>import { melt } from "@melt-ui/svelte";
2
2
  import { getCtx, getAttrs } from "../ctx.js";
3
3
  export let asChild = false;
4
+ export let el = void 0;
4
5
  const {
5
6
  elements: { fallback }
6
7
  } = getCtx();
@@ -14,7 +15,7 @@ $:
14
15
  {#if asChild}
15
16
  <slot {builder} />
16
17
  {:else}
17
- <span {...builder} use:builder.action {...$$restProps}>
18
+ <span bind:this={el} {...builder} use:builder.action {...$$restProps}>
18
19
  <slot {builder} />
19
20
  </span>
20
21
  {/if}
@@ -3,6 +3,7 @@ import { getImage, getAttrs } from "../ctx.js";
3
3
  export let src = void 0;
4
4
  export let alt = void 0;
5
5
  export let asChild = false;
6
+ export let el = void 0;
6
7
  const attrs = getAttrs("image");
7
8
  $:
8
9
  image = getImage(src).elements.image;
@@ -15,5 +16,5 @@ $:
15
16
  {#if asChild}
16
17
  <slot {builder} />
17
18
  {:else}
18
- <img {...builder} use:builder.action {alt} {...$$restProps} />
19
+ <img bind:this={el} {...builder} use:builder.action {alt} {...$$restProps} />
19
20
  {/if}
@@ -3,6 +3,7 @@ export let delayMs = void 0;
3
3
  export let loadingStatus = void 0;
4
4
  export let onLoadingStatusChange = void 0;
5
5
  export let asChild = false;
6
+ export let el = void 0;
6
7
  const {
7
8
  states: { loadingStatus: localLoadingStatus },
8
9
  updateOption
@@ -25,7 +26,7 @@ $:
25
26
  {#if asChild}
26
27
  <slot {attrs} />
27
28
  {:else}
28
- <div {...$$restProps} {...attrs}>
29
+ <div bind:this={el} {...$$restProps} {...attrs}>
29
30
  <slot {attrs} />
30
31
  </div>
31
32
  {/if}
@@ -2,6 +2,7 @@
2
2
  export let href = void 0;
3
3
  export let type = void 0;
4
4
  export let builders = [];
5
+ export let el = void 0;
5
6
  const attrs = {
6
7
  "data-button-root": ""
7
8
  };
@@ -11,6 +12,7 @@ const attrs = {
11
12
  <!-- svelte-ignore a11y-no-static-element-interactions -->
12
13
  <svelte:element
13
14
  this={href ? "a" : "button"}
15
+ bind:this={el}
14
16
  type={href ? undefined : type}
15
17
  {href}
16
18
  on:click
@@ -1,13 +1,14 @@
1
1
  import type { HTMLAnchorAttributes, HTMLButtonAttributes } from "svelte/elements";
2
2
  import type * as I from "./_types.js";
3
+ import type { DOMEl } from "../../internal/types.js";
3
4
  type AnchorElement = I.Props & HTMLAnchorAttributes & {
4
5
  href?: HTMLAnchorAttributes["href"];
5
6
  type?: never;
6
- };
7
+ } & DOMEl<HTMLAnchorElement>;
7
8
  type ButtonElement = I.Props & HTMLButtonAttributes & {
8
9
  type?: HTMLButtonAttributes["type"];
9
10
  href?: never;
10
- };
11
+ } & DOMEl<HTMLButtonElement>;
11
12
  type Props = AnchorElement | ButtonElement;
12
13
  type ButtonEventHandler<T extends Event = Event> = T & {
13
14
  currentTarget: EventTarget & 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 { AsChild, OnChangeFn } from "../../internal";
6
+ import type { DOMElement, OnChangeFn } from "../../internal/index.js";
7
7
  import type { DateValue } from "@internationalized/date";
8
8
  import type { CreateCalendarProps } from "@melt-ui/svelte";
9
9
  type OmitCalendarProps<T> = Omit<T, "placeholder" | "defaultPlaceholder" | "value" | "defaultValue" | "onPlaceholderChange" | "onValueChange" | "ids">;
@@ -41,16 +41,16 @@ type Props<Multiple extends boolean = false> = Expand<OmitCalendarProps<CreateCa
41
41
  * @default false
42
42
  */
43
43
  initialFocus?: boolean;
44
- } & AsChild>;
45
- type PrevButtonProps = AsChild;
46
- type NextButtonProps = AsChild;
47
- type HeadingProps = AsChild;
48
- type HeaderProps = AsChild;
49
- type GridHeadProps = AsChild;
50
- type HeadCellProps = AsChild;
51
- type GridProps = AsChild;
52
- type GridBodyProps = AsChild;
53
- type GridRowProps = AsChild;
44
+ } & DOMElement>;
45
+ type PrevButtonProps = DOMElement<HTMLButtonElement>;
46
+ type NextButtonProps = DOMElement<HTMLButtonElement>;
47
+ type HeadingProps = DOMElement;
48
+ type HeaderProps = DOMElement<HTMLElement>;
49
+ type GridHeadProps = DOMElement<HTMLTableSectionElement>;
50
+ type HeadCellProps = DOMElement<HTMLTableCellElement>;
51
+ type GridProps = DOMElement<HTMLTableElement>;
52
+ type GridBodyProps = DOMElement<HTMLTableSectionElement>;
53
+ type GridRowProps = DOMElement<HTMLTableRowElement>;
54
54
  type BaseDayProps = Expand<{
55
55
  /**
56
56
  * The date value of the cell.
@@ -60,7 +60,7 @@ type BaseDayProps = Expand<{
60
60
  * The month value that the cell belongs to.
61
61
  */
62
62
  month: DateValue;
63
- } & AsChild>;
64
- type CellProps = Expand<Omit<BaseDayProps, "month">>;
65
- type DayProps = Expand<BaseDayProps>;
63
+ }>;
64
+ type CellProps = Expand<Omit<BaseDayProps, "month">> & DOMElement<HTMLTableCellElement>;
65
+ type DayProps = Expand<BaseDayProps & DOMElement>;
66
66
  export type { Props, PrevButtonProps, NextButtonProps, HeadingProps, HeaderProps, GridProps, GridHeadProps, HeadCellProps, GridBodyProps, GridRowProps, CellProps, DayProps };
@@ -1,6 +1,7 @@
1
1
  <script>import { getCtx, getAttrs } 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}
@@ -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>
@@ -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("grid-body");
4
5
  </script>
5
6
 
6
7
  {#if asChild}
7
8
  <slot {attrs} />
8
9
  {:else}
9
- <tbody {...$$restProps} {...attrs}>
10
+ <tbody bind:this={el} {...$$restProps} {...attrs}>
10
11
  <slot {attrs} />
11
12
  </tbody>
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("grid-head"), "aria-hidden": true };
4
5
  </script>
5
6
 
6
7
  {#if asChild}
7
8
  <slot {attrs} />
8
9
  {:else}
9
- <thead {...$$restProps} {...attrs}>
10
+ <thead bind:this={el} {...$$restProps} {...attrs}>
10
11
  <slot {attrs} />
11
12
  </thead>
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("grid-row");
4
5
  </script>
5
6
 
6
7
  {#if asChild}
7
8
  <slot {attrs} />
8
9
  {:else}
9
- <tr {...$$restProps} {...attrs}>
10
+ <tr bind:this={el} {...$$restProps} {...attrs}>
10
11
  <slot {attrs} />
11
12
  </tr>
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: { 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}