bits-ui 0.11.8 → 0.13.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 (298) 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-content.svelte.d.ts +2 -2
  4. package/dist/bits/accordion/components/accordion-header.svelte +2 -1
  5. package/dist/bits/accordion/components/accordion-header.svelte.d.ts +2 -2
  6. package/dist/bits/accordion/components/accordion-item.svelte +2 -1
  7. package/dist/bits/accordion/components/accordion-item.svelte.d.ts +2 -2
  8. package/dist/bits/accordion/components/accordion-trigger.svelte +2 -0
  9. package/dist/bits/accordion/components/accordion-trigger.svelte.d.ts +2 -2
  10. package/dist/bits/accordion/components/accordion.svelte +2 -1
  11. package/dist/bits/alert-dialog/_export.types.d.ts +1 -1
  12. package/dist/bits/alert-dialog/_types.d.ts +6 -6
  13. package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +2 -0
  14. package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +2 -0
  15. package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +30 -2
  16. package/dist/bits/alert-dialog/components/alert-dialog-content.svelte.d.ts +5 -1
  17. package/dist/bits/alert-dialog/components/alert-dialog-description.svelte +2 -1
  18. package/dist/bits/alert-dialog/components/alert-dialog-overlay.svelte +6 -1
  19. package/dist/bits/alert-dialog/components/alert-dialog-portal.svelte +2 -1
  20. package/dist/bits/alert-dialog/components/alert-dialog-title.svelte +7 -1
  21. package/dist/bits/alert-dialog/components/alert-dialog-trigger.svelte +2 -0
  22. package/dist/bits/alert-dialog/components/alert-dialog.svelte +4 -0
  23. package/dist/bits/alert-dialog/components/alert-dialog.svelte.d.ts +1 -0
  24. package/dist/bits/alert-dialog/ctx.d.ts +1 -0
  25. package/dist/bits/alert-dialog/types.d.ts +7 -2
  26. package/dist/bits/aspect-ratio/_types.d.ts +3 -2
  27. package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +3 -1
  28. package/dist/bits/avatar/_types.d.ts +4 -4
  29. package/dist/bits/avatar/components/avatar-fallback.svelte +2 -1
  30. package/dist/bits/avatar/components/avatar-image.svelte +2 -1
  31. package/dist/bits/avatar/components/avatar.svelte +2 -1
  32. package/dist/bits/button/components/button.svelte +2 -0
  33. package/dist/bits/button/types.d.ts +3 -2
  34. package/dist/bits/calendar/_types.d.ts +14 -14
  35. package/dist/bits/calendar/components/calendar-cell.svelte +2 -1
  36. package/dist/bits/calendar/components/calendar-day.svelte +2 -1
  37. package/dist/bits/calendar/components/calendar-day.svelte.d.ts +2 -2
  38. package/dist/bits/calendar/components/calendar-grid-body.svelte +2 -1
  39. package/dist/bits/calendar/components/calendar-grid-head.svelte +2 -1
  40. package/dist/bits/calendar/components/calendar-grid-row.svelte +2 -1
  41. package/dist/bits/calendar/components/calendar-grid.svelte +2 -1
  42. package/dist/bits/calendar/components/calendar-grid.svelte.d.ts +2 -2
  43. package/dist/bits/calendar/components/calendar-head-cell.svelte +2 -1
  44. package/dist/bits/calendar/components/calendar-header.svelte +2 -1
  45. package/dist/bits/calendar/components/calendar-heading.svelte +2 -1
  46. package/dist/bits/calendar/components/calendar-next-button.svelte +2 -0
  47. package/dist/bits/calendar/components/calendar-next-button.svelte.d.ts +1 -1
  48. package/dist/bits/calendar/components/calendar-prev-button.svelte +2 -0
  49. package/dist/bits/calendar/components/calendar-prev-button.svelte.d.ts +1 -1
  50. package/dist/bits/calendar/components/calendar.svelte +1 -1
  51. package/dist/bits/calendar/ctx.d.ts +8 -8
  52. package/dist/bits/calendar/types.d.ts +2 -2
  53. package/dist/bits/checkbox/_types.d.ts +3 -3
  54. package/dist/bits/checkbox/components/checkbox-indicator.svelte +2 -1
  55. package/dist/bits/checkbox/components/checkbox-input.svelte +7 -1
  56. package/dist/bits/checkbox/components/checkbox-input.svelte.d.ts +2 -3
  57. package/dist/bits/checkbox/components/checkbox.svelte +2 -0
  58. package/dist/bits/checkbox/components/checkbox.svelte.d.ts +1 -0
  59. package/dist/bits/checkbox/ctx.d.ts +1 -0
  60. package/dist/bits/checkbox/types.d.ts +2 -2
  61. package/dist/bits/collapsible/_types.d.ts +4 -4
  62. package/dist/bits/collapsible/components/collapsible-content.svelte +11 -2
  63. package/dist/bits/collapsible/components/collapsible-trigger.svelte +2 -0
  64. package/dist/bits/collapsible/components/collapsible.svelte +2 -1
  65. package/dist/bits/context-menu/_types.d.ts +2 -2
  66. package/dist/bits/context-menu/components/context-menu-content.svelte +11 -1
  67. package/dist/bits/context-menu/components/context-menu-trigger.svelte +2 -0
  68. package/dist/bits/context-menu/components/context-menu.svelte +4 -0
  69. package/dist/bits/context-menu/components/context-menu.svelte.d.ts +1 -0
  70. package/dist/bits/context-menu/ctx.d.ts +2 -0
  71. package/dist/bits/date-field/_types.d.ts +5 -5
  72. package/dist/bits/date-field/components/date-field-input.svelte +2 -1
  73. package/dist/bits/date-field/components/date-field-input.svelte.d.ts +3 -3
  74. package/dist/bits/date-field/components/date-field-label.svelte +2 -1
  75. package/dist/bits/date-field/components/date-field-segment.svelte +2 -0
  76. package/dist/bits/date-field/components/date-field-segment.svelte.d.ts +7 -7
  77. package/dist/bits/date-field/ctx.d.ts +20 -20
  78. package/dist/bits/date-picker/_types.d.ts +7 -7
  79. package/dist/bits/date-picker/components/date-picker-arrow.svelte +2 -1
  80. package/dist/bits/date-picker/components/date-picker-calendar.svelte +7 -1
  81. package/dist/bits/date-picker/components/date-picker-cell.svelte +2 -1
  82. package/dist/bits/date-picker/components/date-picker-close.svelte +2 -0
  83. package/dist/bits/date-picker/components/date-picker-content.svelte +11 -2
  84. package/dist/bits/date-picker/components/date-picker-day.svelte +2 -1
  85. package/dist/bits/date-picker/components/date-picker-day.svelte.d.ts +2 -2
  86. package/dist/bits/date-picker/components/date-picker-field.svelte.d.ts +1 -1
  87. package/dist/bits/date-picker/components/date-picker-grid.svelte +2 -1
  88. package/dist/bits/date-picker/components/date-picker-grid.svelte.d.ts +2 -2
  89. package/dist/bits/date-picker/components/date-picker-heading.svelte +2 -1
  90. package/dist/bits/date-picker/components/date-picker-input.svelte +2 -1
  91. package/dist/bits/date-picker/components/date-picker-label.svelte +2 -1
  92. package/dist/bits/date-picker/components/date-picker-next-button.svelte +2 -0
  93. package/dist/bits/date-picker/components/date-picker-next-button.svelte.d.ts +1 -1
  94. package/dist/bits/date-picker/components/date-picker-prev-button.svelte +2 -0
  95. package/dist/bits/date-picker/components/date-picker-prev-button.svelte.d.ts +1 -1
  96. package/dist/bits/date-picker/components/date-picker-segment.svelte +2 -0
  97. package/dist/bits/date-picker/components/date-picker-segment.svelte.d.ts +7 -7
  98. package/dist/bits/date-picker/components/date-picker-trigger.svelte +2 -0
  99. package/dist/bits/date-picker/components/date-picker.svelte +4 -0
  100. package/dist/bits/date-picker/components/date-picker.svelte.d.ts +1 -1
  101. package/dist/bits/date-picker/ctx.d.ts +30 -28
  102. package/dist/bits/date-picker/types.d.ts +1 -1
  103. package/dist/bits/date-range-field/_types.d.ts +4 -4
  104. package/dist/bits/date-range-field/components/date-range-field-input.svelte +2 -1
  105. package/dist/bits/date-range-field/components/date-range-field-label.svelte +2 -1
  106. package/dist/bits/date-range-field/components/date-range-field-segment.svelte +2 -0
  107. package/dist/bits/date-range-field/components/date-range-field-segment.svelte.d.ts +5 -17
  108. package/dist/bits/date-range-field/ctx.d.ts +28 -28
  109. package/dist/bits/date-range-picker/_types.d.ts +7 -7
  110. package/dist/bits/date-range-picker/components/date-range-picker-arrow.svelte +2 -1
  111. package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +2 -1
  112. package/dist/bits/date-range-picker/components/date-range-picker-cell.svelte +2 -1
  113. package/dist/bits/date-range-picker/components/date-range-picker-close.svelte +2 -0
  114. package/dist/bits/date-range-picker/components/date-range-picker-content.svelte +11 -2
  115. package/dist/bits/date-range-picker/components/date-range-picker-day.svelte +2 -1
  116. package/dist/bits/date-range-picker/components/date-range-picker-day.svelte.d.ts +2 -2
  117. package/dist/bits/date-range-picker/components/date-range-picker-field.svelte.d.ts +1 -1
  118. package/dist/bits/date-range-picker/components/date-range-picker-grid.svelte +2 -1
  119. package/dist/bits/date-range-picker/components/date-range-picker-grid.svelte.d.ts +2 -2
  120. package/dist/bits/date-range-picker/components/date-range-picker-heading.svelte +2 -1
  121. package/dist/bits/date-range-picker/components/date-range-picker-input.svelte +2 -1
  122. package/dist/bits/date-range-picker/components/date-range-picker-label.svelte +2 -1
  123. package/dist/bits/date-range-picker/components/date-range-picker-next-button.svelte +2 -1
  124. package/dist/bits/date-range-picker/components/date-range-picker-next-button.svelte.d.ts +1 -1
  125. package/dist/bits/date-range-picker/components/date-range-picker-prev-button.svelte +2 -1
  126. package/dist/bits/date-range-picker/components/date-range-picker-prev-button.svelte.d.ts +1 -1
  127. package/dist/bits/date-range-picker/components/date-range-picker-segment.svelte +2 -1
  128. package/dist/bits/date-range-picker/components/date-range-picker-segment.svelte.d.ts +5 -17
  129. package/dist/bits/date-range-picker/components/date-range-picker-trigger.svelte +2 -0
  130. package/dist/bits/date-range-picker/components/date-range-picker.svelte +4 -0
  131. package/dist/bits/date-range-picker/components/date-range-picker.svelte.d.ts +1 -1
  132. package/dist/bits/date-range-picker/ctx.d.ts +38 -36
  133. package/dist/bits/date-range-picker/types.d.ts +1 -1
  134. package/dist/bits/dialog/_export.types.d.ts +1 -1
  135. package/dist/bits/dialog/_types.d.ts +17 -8
  136. package/dist/bits/dialog/components/dialog-close.svelte +2 -0
  137. package/dist/bits/dialog/components/dialog-content.svelte +30 -2
  138. package/dist/bits/dialog/components/dialog-content.svelte.d.ts +2 -4
  139. package/dist/bits/dialog/components/dialog-description.svelte +2 -1
  140. package/dist/bits/dialog/components/dialog-overlay.svelte +15 -1
  141. package/dist/bits/dialog/components/dialog-overlay.svelte.d.ts +2 -4
  142. package/dist/bits/dialog/components/dialog-portal.svelte +2 -1
  143. package/dist/bits/dialog/components/dialog-title.svelte +7 -1
  144. package/dist/bits/dialog/components/dialog-trigger.svelte +2 -0
  145. package/dist/bits/dialog/components/dialog.svelte +4 -0
  146. package/dist/bits/dialog/components/dialog.svelte.d.ts +3 -2
  147. package/dist/bits/dialog/ctx.d.ts +1 -0
  148. package/dist/bits/dialog/types.d.ts +10 -2
  149. package/dist/bits/floating/_types.d.ts +3 -3
  150. package/dist/bits/label/_types.d.ts +2 -2
  151. package/dist/bits/label/components/label.svelte +7 -1
  152. package/dist/bits/label/types.d.ts +1 -1
  153. package/dist/bits/link-preview/_types.d.ts +2 -2
  154. package/dist/bits/link-preview/components/link-preview-arrow.svelte +2 -1
  155. package/dist/bits/link-preview/components/link-preview-content.svelte +6 -0
  156. package/dist/bits/link-preview/components/link-preview-trigger.svelte +2 -0
  157. package/dist/bits/link-preview/components/link-preview.svelte +4 -0
  158. package/dist/bits/link-preview/components/link-preview.svelte.d.ts +1 -0
  159. package/dist/bits/link-preview/ctx.d.ts +1 -0
  160. package/dist/bits/menu/_types.d.ts +12 -12
  161. package/dist/bits/menu/components/menu-arrow.svelte +2 -1
  162. package/dist/bits/menu/components/menu-checkbox-indicator.svelte +2 -1
  163. package/dist/bits/menu/components/menu-checkbox-item.svelte +2 -0
  164. package/dist/bits/menu/components/menu-content.svelte +11 -1
  165. package/dist/bits/menu/components/menu-group.svelte +2 -1
  166. package/dist/bits/menu/components/menu-group.svelte.d.ts +2 -2
  167. package/dist/bits/menu/components/menu-item.svelte +2 -0
  168. package/dist/bits/menu/components/menu-label.svelte +2 -1
  169. package/dist/bits/menu/components/menu-label.svelte.d.ts +2 -2
  170. package/dist/bits/menu/components/menu-radio-group.svelte +2 -1
  171. package/dist/bits/menu/components/menu-radio-indicator.svelte +2 -1
  172. package/dist/bits/menu/components/menu-radio-item.svelte +2 -0
  173. package/dist/bits/menu/components/menu-radio-item.svelte.d.ts +2 -2
  174. package/dist/bits/menu/components/menu-separator.svelte +2 -1
  175. package/dist/bits/menu/components/menu-sub-content.svelte +6 -0
  176. package/dist/bits/menu/components/menu-sub-trigger.svelte +2 -0
  177. package/dist/bits/menu/components/menu-sub-trigger.svelte.d.ts +1 -0
  178. package/dist/bits/menu/components/menu-trigger.svelte +2 -0
  179. package/dist/bits/menu/components/menu.svelte +4 -0
  180. package/dist/bits/menu/components/menu.svelte.d.ts +1 -0
  181. package/dist/bits/menu/ctx.d.ts +3 -0
  182. package/dist/bits/menu/types.d.ts +6 -6
  183. package/dist/bits/menubar/_types.d.ts +2 -2
  184. package/dist/bits/menubar/components/menubar-menu.svelte +4 -0
  185. package/dist/bits/menubar/components/menubar-menu.svelte.d.ts +1 -0
  186. package/dist/bits/menubar/components/menubar-trigger.svelte +2 -0
  187. package/dist/bits/menubar/components/menubar.svelte +2 -1
  188. package/dist/bits/menubar/ctx.d.ts +5 -0
  189. package/dist/bits/pagination/_types.d.ts +5 -5
  190. package/dist/bits/pagination/components/pagination-next-button.svelte +2 -0
  191. package/dist/bits/pagination/components/pagination-page.svelte +2 -0
  192. package/dist/bits/pagination/components/pagination-page.svelte.d.ts +2 -2
  193. package/dist/bits/pagination/components/pagination-prev-button.svelte +2 -0
  194. package/dist/bits/pagination/components/pagination.svelte +2 -1
  195. package/dist/bits/pin-input/_types.d.ts +4 -4
  196. package/dist/bits/pin-input/components/pin-input-hidden-input.svelte +2 -1
  197. package/dist/bits/pin-input/components/pin-input-input.svelte +2 -0
  198. package/dist/bits/pin-input/components/pin-input-input.svelte.d.ts +2 -2
  199. package/dist/bits/pin-input/components/pin-input.svelte +2 -1
  200. package/dist/bits/pin-input/types.d.ts +1 -1
  201. package/dist/bits/popover/_types.d.ts +3 -3
  202. package/dist/bits/popover/components/popover-arrow.svelte +2 -1
  203. package/dist/bits/popover/components/popover-close.svelte +2 -0
  204. package/dist/bits/popover/components/popover-content.svelte +11 -2
  205. package/dist/bits/popover/components/popover-trigger.svelte +2 -0
  206. package/dist/bits/popover/components/popover.svelte +4 -0
  207. package/dist/bits/popover/components/popover.svelte.d.ts +1 -0
  208. package/dist/bits/popover/ctx.d.ts +1 -0
  209. package/dist/bits/popover/types.d.ts +1 -1
  210. package/dist/bits/progress/_types.d.ts +2 -2
  211. package/dist/bits/progress/components/progress.svelte +2 -1
  212. package/dist/bits/radio-group/_types.d.ts +5 -5
  213. package/dist/bits/radio-group/components/radio-group-input.svelte +2 -1
  214. package/dist/bits/radio-group/components/radio-group-item-indicator.svelte +2 -1
  215. package/dist/bits/radio-group/components/radio-group-item.svelte +2 -0
  216. package/dist/bits/radio-group/components/radio-group-item.svelte.d.ts +2 -2
  217. package/dist/bits/radio-group/components/radio-group.svelte +2 -1
  218. package/dist/bits/range-calendar/_types.d.ts +14 -14
  219. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -1
  220. package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -0
  221. package/dist/bits/range-calendar/components/range-calendar-day.svelte.d.ts +2 -2
  222. package/dist/bits/range-calendar/components/range-calendar-grid-body.svelte +2 -1
  223. package/dist/bits/range-calendar/components/range-calendar-grid-head.svelte +2 -1
  224. package/dist/bits/range-calendar/components/range-calendar-grid-row.svelte +2 -1
  225. package/dist/bits/range-calendar/components/range-calendar-grid.svelte +2 -1
  226. package/dist/bits/range-calendar/components/range-calendar-grid.svelte.d.ts +2 -2
  227. package/dist/bits/range-calendar/components/range-calendar-head-cell.svelte +2 -1
  228. package/dist/bits/range-calendar/components/range-calendar-header.svelte +2 -1
  229. package/dist/bits/range-calendar/components/range-calendar-heading.svelte +2 -1
  230. package/dist/bits/range-calendar/components/range-calendar-next-button.svelte +2 -0
  231. package/dist/bits/range-calendar/components/range-calendar-next-button.svelte.d.ts +1 -1
  232. package/dist/bits/range-calendar/components/range-calendar-prev-button.svelte +2 -0
  233. package/dist/bits/range-calendar/components/range-calendar-prev-button.svelte.d.ts +1 -1
  234. package/dist/bits/range-calendar/components/range-calendar.svelte +1 -1
  235. package/dist/bits/range-calendar/ctx.d.ts +8 -8
  236. package/dist/bits/select/_types.d.ts +9 -9
  237. package/dist/bits/select/components/select-arrow.svelte +2 -1
  238. package/dist/bits/select/components/select-content.svelte +6 -0
  239. package/dist/bits/select/components/select-group.svelte +2 -1
  240. package/dist/bits/select/components/select-group.svelte.d.ts +2 -2
  241. package/dist/bits/select/components/select-input.svelte +2 -1
  242. package/dist/bits/select/components/select-item-indicator.svelte +2 -1
  243. package/dist/bits/select/components/select-item.svelte +2 -0
  244. package/dist/bits/select/components/select-item.svelte.d.ts +2 -2
  245. package/dist/bits/select/components/select-label.svelte +2 -1
  246. package/dist/bits/select/components/select-label.svelte.d.ts +2 -2
  247. package/dist/bits/select/components/select-trigger.svelte +2 -0
  248. package/dist/bits/select/components/select-value.svelte +2 -1
  249. package/dist/bits/select/components/select.svelte +4 -0
  250. package/dist/bits/select/components/select.svelte.d.ts +1 -0
  251. package/dist/bits/select/ctx.d.ts +1 -0
  252. package/dist/bits/separator/_types.d.ts +2 -2
  253. package/dist/bits/separator/components/separator.svelte +2 -1
  254. package/dist/bits/slider/_types.d.ts +5 -5
  255. package/dist/bits/slider/components/slider-input.svelte +2 -1
  256. package/dist/bits/slider/components/slider-range.svelte +2 -1
  257. package/dist/bits/slider/components/slider-thumb.svelte +7 -1
  258. package/dist/bits/slider/components/slider-thumb.svelte.d.ts +4 -2
  259. package/dist/bits/slider/components/slider-tick.svelte +2 -1
  260. package/dist/bits/slider/components/slider-tick.svelte.d.ts +2 -2
  261. package/dist/bits/slider/components/slider.svelte +2 -1
  262. package/dist/bits/slider/components/slider.svelte.d.ts +2 -1
  263. package/dist/bits/slider/ctx.d.ts +9 -5
  264. package/dist/bits/slider/types.d.ts +2 -2
  265. package/dist/bits/switch/_types.d.ts +3 -3
  266. package/dist/bits/switch/components/switch-input.svelte +2 -0
  267. package/dist/bits/switch/components/switch-input.svelte.d.ts +2 -1
  268. package/dist/bits/switch/components/switch-thumb.svelte +2 -1
  269. package/dist/bits/switch/components/switch.svelte +2 -0
  270. package/dist/bits/switch/types.d.ts +2 -2
  271. package/dist/bits/tabs/_types.d.ts +5 -5
  272. package/dist/bits/tabs/components/tabs-content.svelte +2 -1
  273. package/dist/bits/tabs/components/tabs-content.svelte.d.ts +2 -2
  274. package/dist/bits/tabs/components/tabs-list.svelte +2 -1
  275. package/dist/bits/tabs/components/tabs-trigger.svelte +2 -0
  276. package/dist/bits/tabs/components/tabs-trigger.svelte.d.ts +2 -2
  277. package/dist/bits/tabs/components/tabs.svelte +2 -1
  278. package/dist/bits/toggle/_types.d.ts +2 -2
  279. package/dist/bits/toggle/components/toggle.svelte +2 -0
  280. package/dist/bits/toggle-group/_types.d.ts +3 -3
  281. package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -0
  282. package/dist/bits/toggle-group/components/toggle-group-item.svelte.d.ts +2 -2
  283. package/dist/bits/toggle-group/components/toggle-group.svelte +2 -1
  284. package/dist/bits/toolbar/_types.d.ts +6 -6
  285. package/dist/bits/toolbar/components/toolbar-button.svelte +2 -0
  286. package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -0
  287. package/dist/bits/toolbar/components/toolbar-group-item.svelte.d.ts +2 -2
  288. package/dist/bits/toolbar/components/toolbar-group.svelte +2 -1
  289. package/dist/bits/toolbar/components/toolbar-link.svelte +2 -0
  290. package/dist/bits/toolbar/components/toolbar.svelte +2 -1
  291. package/dist/bits/tooltip/_types.d.ts +2 -2
  292. package/dist/bits/tooltip/components/tooltip-arrow.svelte +2 -1
  293. package/dist/bits/tooltip/components/tooltip-content.svelte +6 -0
  294. package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -0
  295. package/dist/internal/events.d.ts +3 -0
  296. package/dist/internal/types.d.ts +19 -0
  297. package/dist/shared/index.d.ts +2 -0
  298. package/package.json +3 -3
@@ -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}
@@ -8,13 +8,13 @@ declare class __sveltets_Render<T extends Transition, In extends Transition, Out
8
8
  };
9
9
  slots(): {
10
10
  default: {
11
- builder: ((props: import("@melt-ui/svelte/index.js").AccordionItemProps) => {
11
+ builder: {
12
12
  'data-state': string;
13
13
  'data-disabled': boolean | undefined;
14
14
  'data-value': string;
15
15
  hidden: boolean | undefined;
16
16
  style: string;
17
- }) & {
17
+ } & {
18
18
  [x: `data-melt-${string}`]: "";
19
19
  } & {
20
20
  action: (node: HTMLElement) => void;
@@ -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}
@@ -7,11 +7,11 @@ declare const __propDef: {
7
7
  };
8
8
  slots: {
9
9
  default: {
10
- builder: ((props: import("@melt-ui/svelte/index.js").AccordionHeadingProps) => {
10
+ builder: {
11
11
  role: string;
12
12
  'aria-level': number;
13
13
  'data-heading-level': number;
14
- }) & {
14
+ } & {
15
15
  [x: `data-melt-${string}`]: "";
16
16
  } & {
17
17
  action: import("svelte/action").Action<any, any, Record<never, any>>;
@@ -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}
@@ -7,10 +7,10 @@ declare const __propDef: {
7
7
  };
8
8
  slots: {
9
9
  default: {
10
- builder: ((props: import("@melt-ui/svelte/index.js").AccordionItemProps) => {
10
+ builder: {
11
11
  'data-state': string;
12
12
  'data-disabled': boolean | undefined;
13
- }) & {
13
+ } & {
14
14
  [x: `data-melt-${string}`]: "";
15
15
  } & {
16
16
  action: import("svelte/action").Action<any, any, Record<never, any>>;
@@ -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}
@@ -4,14 +4,14 @@ declare const __propDef: {
4
4
  props: TriggerProps;
5
5
  slots: {
6
6
  default: {
7
- builder: ((props: import("@melt-ui/svelte/index.js").AccordionItemProps) => {
7
+ builder: {
8
8
  disabled: boolean | undefined;
9
9
  'aria-expanded': boolean;
10
10
  'aria-disabled': boolean;
11
11
  'data-disabled': boolean | undefined;
12
12
  'data-value': string;
13
13
  'data-state': string;
14
- }) & {
14
+ } & {
15
15
  [x: `data-melt-${string}`]: "";
16
16
  } & {
17
17
  action: (node: HTMLElement) => import("@melt-ui/svelte/internal/types").MeltActionReturn<"keydown" | "click">;
@@ -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}
@@ -1 +1 @@
1
- export type { Props as AlertDialogProps, TriggerProps as AlertDialogTriggerProps, ActionProps as AlertDialogActionProps, CancelProps as AlertDialogCancelProps, ContentProps as AlertDialogContentProps, DescriptionProps as AlertDialogDescriptionProps, PortalProps as AlertDialogPortalProps, OverlayProps as AlertDialogOverlayProps, TitleProps as AlertDialogTitleProps, TriggerEvents as AlertDialogTriggerEvents, CancelEvents as AlertDialogCancelEvents, ActionEvents as AlertDialogActionEvents } from "./types.js";
1
+ export type { Props as AlertDialogProps, TriggerProps as AlertDialogTriggerProps, ActionProps as AlertDialogActionProps, CancelProps as AlertDialogCancelProps, ContentProps as AlertDialogContentProps, DescriptionProps as AlertDialogDescriptionProps, PortalProps as AlertDialogPortalProps, OverlayProps as AlertDialogOverlayProps, TitleProps as AlertDialogTitleProps, TriggerEvents as AlertDialogTriggerEvents, CancelEvents as AlertDialogCancelEvents, ActionEvents as AlertDialogActionEvents, ContentEvents as AlertDialogContentEvents } from "./types.js";
@@ -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,35 +29,62 @@ $:
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
35
+ on:pointerdown
36
+ on:pointermove
37
+ on:pointerup
33
38
  {...$$restProps}
34
39
  >
35
40
  <slot {builder} />
36
41
  </div>
37
42
  {:else if inTransition && outTransition && $open}
38
43
  <div
44
+ bind:this={el}
39
45
  in:inTransition={inTransitionConfig}
40
46
  out:outTransition={outTransitionConfig}
41
47
  {...builder} use:builder.action
48
+ on:pointerdown
49
+ on:pointermove
50
+ on:pointerup
42
51
  {...$$restProps}
43
52
  >
44
53
  <slot {builder} />
45
54
  </div>
46
55
  {:else if inTransition && $open}
47
- <div in:inTransition={inTransitionConfig} {...builder} use:builder.action {...$$restProps}>
56
+ <div
57
+ bind:this={el}
58
+ in:inTransition={inTransitionConfig}
59
+ {...builder} use:builder.action
60
+ on:pointerdown
61
+ on:pointermove
62
+ on:pointerup
63
+ {...$$restProps}
64
+ >
48
65
  <slot {builder} />
49
66
  </div>
50
67
  {:else if outTransition && $open}
51
68
  <div
69
+ bind:this={el}
52
70
  out:outTransition={outTransitionConfig}
53
71
  {...builder} use:builder.action
72
+ on:pointerdown
73
+ on:pointermove
74
+ on:pointerup
54
75
  {...$$restProps}
55
76
  >
56
77
  <slot {builder} />
57
78
  </div>
58
79
  {:else if $open}
59
- <div {...builder} use:builder.action {...$$restProps}>
80
+ <div
81
+ bind:this={el}
82
+ {...builder} use:builder.action
83
+ on:pointerdown
84
+ on:pointermove
85
+ on:pointerup
86
+ {...$$restProps}
87
+ >
60
88
  <slot {builder} />
61
89
  </div>
62
90
  {/if}
@@ -3,7 +3,11 @@ import type { Transition } from "../../../internal/index.js";
3
3
  import type { ContentProps } from "../types.js";
4
4
  declare class __sveltets_Render<T extends Transition, In extends Transition, Out extends Transition> {
5
5
  props(): ContentProps<T, In, Out>;
6
- events(): {} & {
6
+ events(): {
7
+ pointerdown: PointerEvent;
8
+ pointermove: PointerEvent;
9
+ pointerup: PointerEvent;
10
+ } & {
7
11
  [evt: string]: CustomEvent<any>;
8
12
  };
9
13
  slots(): {
@@ -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}
@@ -8,6 +8,7 @@ export let open = void 0;
8
8
  export let onOpenChange = void 0;
9
9
  export let openFocus = void 0;
10
10
  export let closeFocus = void 0;
11
+ export let onOutsideClick = void 0;
11
12
  const {
12
13
  states: { open: localOpen },
13
14
  updateOption,
@@ -21,6 +22,7 @@ const {
21
22
  defaultOpen: open,
22
23
  openFocus,
23
24
  closeFocus,
25
+ onOutsideClick,
24
26
  onOpenChange: ({ next }) => {
25
27
  if (open !== next) {
26
28
  onOpenChange?.(next);
@@ -51,6 +53,8 @@ $:
51
53
  updateOption("openFocus", openFocus);
52
54
  $:
53
55
  updateOption("closeFocus", closeFocus);
56
+ $:
57
+ updateOption("onOutsideClick", onOutsideClick);
54
58
  </script>
55
59
 
56
60
  <slot ids={$idValues} />
@@ -4,6 +4,7 @@ declare const __propDef: {
4
4
  preventScroll?: boolean | undefined;
5
5
  closeOnEscape?: boolean | undefined;
6
6
  closeOnOutsideClick?: boolean | undefined;
7
+ onOutsideClick?: ((event: PointerEvent) => void) | undefined;
7
8
  portal?: string | HTMLElement | null | undefined;
8
9
  openFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
9
10
  closeFocus?: import("@melt-ui/svelte/index.js").FocusProp | undefined;
@@ -67,6 +67,7 @@ export declare function setCtx(props: SetProps): {
67
67
  preventScroll: boolean;
68
68
  closeOnEscape: boolean;
69
69
  closeOnOutsideClick: boolean;
70
+ onOutsideClick: ((event: PointerEvent) => void) | undefined;
70
71
  role: "dialog" | "alertdialog";
71
72
  defaultOpen: boolean;
72
73
  open?: import("svelte/store").Writable<boolean> | undefined;
@@ -1,4 +1,4 @@
1
- import type { HTMLDivAttributes, HTMLHeadingAttributes, Transition } from "../../internal/index.js";
1
+ import type { HTMLDivAttributes, HTMLHeadingAttributes, SvelteEvent, Transition } from "../../internal/index.js";
2
2
  import type { HTMLButtonAttributes } from "svelte/elements";
3
3
  import type { CustomEventHandler } from "../../index.js";
4
4
  import type * as I from "./_types.js";
@@ -14,6 +14,11 @@ type TriggerEvents<T extends Element = HTMLButtonElement> = {
14
14
  click: CustomEventHandler<MouseEvent, T>;
15
15
  keydown: CustomEventHandler<KeyboardEvent, T>;
16
16
  };
17
+ type ContentEvents<T extends Element = HTMLElement> = {
18
+ pointerdown: SvelteEvent<PointerEvent, T>;
19
+ pointerup: SvelteEvent<PointerEvent, T>;
20
+ pointermove: SvelteEvent<PointerEvent, T>;
21
+ };
17
22
  type ActionEvents = TriggerEvents;
18
23
  type CancelEvents = TriggerEvents;
19
- export type { Props, TriggerProps, ActionProps, CancelProps, ContentProps, DescriptionProps, ContentProps as OverlayProps, PortalProps, TitleProps, TriggerEvents, CancelEvents, ActionEvents };
24
+ export type { Props, TriggerProps, ActionProps, CancelProps, ContentProps, DescriptionProps, ContentProps as OverlayProps, PortalProps, TitleProps, TriggerEvents, CancelEvents, ActionEvents, ContentEvents };
@@ -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
- ratio: number;
8
- }>;
8
+ ratio?: number;
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
  };
@@ -7,9 +8,10 @@ const attrs = {
7
8
  <div
8
9
  style:position="relative"
9
10
  style:width="100%"
10
- style:padding-bottom="{100 / ratio}%"
11
+ style:padding-bottom="{ratio ? 100 / ratio : 0}%"
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}