bits-ui 1.8.0 → 2.2.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 (317) hide show
  1. package/dist/bits/accordion/accordion.svelte.d.ts +56 -53
  2. package/dist/bits/accordion/accordion.svelte.js +78 -89
  3. package/dist/bits/accordion/components/accordion-content.svelte +5 -3
  4. package/dist/bits/accordion/components/accordion-header.svelte +4 -2
  5. package/dist/bits/accordion/components/accordion-item.svelte +6 -3
  6. package/dist/bits/accordion/components/accordion-trigger.svelte +4 -2
  7. package/dist/bits/accordion/components/accordion.svelte +4 -2
  8. package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +4 -2
  9. package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +4 -2
  10. package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +8 -3
  11. package/dist/bits/aspect-ratio/aspect-ratio.svelte.js +2 -2
  12. package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +4 -2
  13. package/dist/bits/avatar/avatar.svelte.d.ts +2 -1
  14. package/dist/bits/avatar/avatar.svelte.js +8 -6
  15. package/dist/bits/avatar/components/avatar-fallback.svelte +4 -2
  16. package/dist/bits/avatar/components/avatar-image.svelte +4 -2
  17. package/dist/bits/avatar/components/avatar.svelte +4 -2
  18. package/dist/bits/button/components/button.svelte +1 -1
  19. package/dist/bits/calendar/calendar.svelte.d.ts +3 -9
  20. package/dist/bits/calendar/calendar.svelte.js +55 -41
  21. package/dist/bits/calendar/components/calendar-cell.svelte +4 -2
  22. package/dist/bits/calendar/components/calendar-day.svelte +4 -2
  23. package/dist/bits/calendar/components/calendar-grid-body.svelte +4 -2
  24. package/dist/bits/calendar/components/calendar-grid-head.svelte +4 -2
  25. package/dist/bits/calendar/components/calendar-grid-row.svelte +4 -2
  26. package/dist/bits/calendar/components/calendar-grid.svelte +4 -2
  27. package/dist/bits/calendar/components/calendar-head-cell.svelte +4 -2
  28. package/dist/bits/calendar/components/calendar-header.svelte +4 -2
  29. package/dist/bits/calendar/components/calendar-heading.svelte +4 -2
  30. package/dist/bits/calendar/components/calendar-next-button.svelte +4 -2
  31. package/dist/bits/calendar/components/calendar-prev-button.svelte +4 -2
  32. package/dist/bits/checkbox/checkbox.svelte.js +4 -14
  33. package/dist/bits/checkbox/components/checkbox-group-label.svelte +4 -2
  34. package/dist/bits/checkbox/components/checkbox-group.svelte +4 -2
  35. package/dist/bits/checkbox/components/checkbox.svelte +4 -2
  36. package/dist/bits/collapsible/collapsible.svelte.js +4 -10
  37. package/dist/bits/collapsible/components/collapsible-content.svelte +5 -3
  38. package/dist/bits/collapsible/components/collapsible-trigger.svelte +4 -2
  39. package/dist/bits/collapsible/components/collapsible.svelte +4 -2
  40. package/dist/bits/combobox/components/combobox-input.svelte +3 -3
  41. package/dist/bits/combobox/components/combobox.svelte +6 -1
  42. package/dist/bits/combobox/types.d.ts +18 -1
  43. package/dist/bits/command/command.svelte.js +13 -45
  44. package/dist/bits/command/components/_command-label.svelte +6 -7
  45. package/dist/bits/command/components/_command-label.svelte.d.ts +1 -1
  46. package/dist/bits/command/components/command-empty.svelte +4 -2
  47. package/dist/bits/command/components/command-group-heading.svelte +4 -2
  48. package/dist/bits/command/components/command-group-items.svelte +4 -2
  49. package/dist/bits/command/components/command-group.svelte +4 -2
  50. package/dist/bits/command/components/command-input.svelte +4 -2
  51. package/dist/bits/command/components/command-item.svelte +4 -2
  52. package/dist/bits/command/components/command-link-item.svelte +4 -2
  53. package/dist/bits/command/components/command-list.svelte +4 -2
  54. package/dist/bits/command/components/command-loading.svelte +4 -2
  55. package/dist/bits/command/components/command-separator.svelte +4 -2
  56. package/dist/bits/command/components/command-viewport.svelte +4 -2
  57. package/dist/bits/command/components/command.svelte +4 -2
  58. package/dist/bits/context-menu/components/context-menu-content-static.svelte +2 -3
  59. package/dist/bits/context-menu/components/context-menu-content.svelte +2 -3
  60. package/dist/bits/context-menu/components/context-menu-trigger.svelte +1 -1
  61. package/dist/bits/date-field/components/date-field-input.svelte +4 -2
  62. package/dist/bits/date-field/components/date-field-label.svelte +4 -2
  63. package/dist/bits/date-field/components/date-field-segment.svelte +4 -2
  64. package/dist/bits/date-field/date-field.svelte.d.ts +7 -5
  65. package/dist/bits/date-field/date-field.svelte.js +29 -38
  66. package/dist/bits/date-picker/components/date-picker-calendar.svelte +4 -2
  67. package/dist/bits/date-range-field/components/date-range-field-input.svelte +4 -2
  68. package/dist/bits/date-range-field/components/date-range-field-label.svelte +4 -2
  69. package/dist/bits/date-range-field/components/date-range-field.svelte +4 -2
  70. package/dist/bits/date-range-field/date-range-field.svelte.d.ts +2 -0
  71. package/dist/bits/date-range-field/date-range-field.svelte.js +6 -14
  72. package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +4 -2
  73. package/dist/bits/dialog/components/dialog-close.svelte +4 -2
  74. package/dist/bits/dialog/components/dialog-content.svelte +8 -2
  75. package/dist/bits/dialog/components/dialog-description.svelte +4 -2
  76. package/dist/bits/dialog/components/dialog-overlay.svelte +8 -3
  77. package/dist/bits/dialog/components/dialog-title.svelte +4 -2
  78. package/dist/bits/dialog/components/dialog-trigger.svelte +4 -2
  79. package/dist/bits/dialog/dialog.svelte.d.ts +1 -1
  80. package/dist/bits/dialog/dialog.svelte.js +19 -47
  81. package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +6 -5
  82. package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +6 -5
  83. package/dist/bits/index.d.ts +2 -0
  84. package/dist/bits/index.js +2 -0
  85. package/dist/bits/label/components/label.svelte +4 -2
  86. package/dist/bits/label/label.svelte.js +2 -2
  87. package/dist/bits/link-preview/components/link-preview-content-static.svelte +6 -2
  88. package/dist/bits/link-preview/components/link-preview-content.svelte +6 -2
  89. package/dist/bits/link-preview/components/link-preview-trigger.svelte +5 -3
  90. package/dist/bits/link-preview/link-preview.svelte.d.ts +2 -0
  91. package/dist/bits/link-preview/link-preview.svelte.js +13 -19
  92. package/dist/bits/menu/components/menu-checkbox-group.svelte +4 -2
  93. package/dist/bits/menu/components/menu-checkbox-item.svelte +6 -4
  94. package/dist/bits/menu/components/menu-content-static.svelte +6 -5
  95. package/dist/bits/menu/components/menu-content.svelte +6 -5
  96. package/dist/bits/menu/components/menu-group-heading.svelte +4 -2
  97. package/dist/bits/menu/components/menu-group.svelte +4 -2
  98. package/dist/bits/menu/components/menu-item.svelte +4 -2
  99. package/dist/bits/menu/components/menu-radio-group.svelte +4 -2
  100. package/dist/bits/menu/components/menu-radio-item.svelte +4 -2
  101. package/dist/bits/menu/components/menu-separator.svelte +4 -2
  102. package/dist/bits/menu/components/menu-sub-content-static.svelte +6 -5
  103. package/dist/bits/menu/components/menu-sub-content.svelte +6 -5
  104. package/dist/bits/menu/components/menu-sub-trigger.svelte +6 -3
  105. package/dist/bits/menu/components/menu-trigger.svelte +5 -3
  106. package/dist/bits/menu/menu.svelte.d.ts +9 -20
  107. package/dist/bits/menu/menu.svelte.js +40 -63
  108. package/dist/bits/menubar/components/menubar-content-static.svelte +4 -2
  109. package/dist/bits/menubar/components/menubar-content.svelte +4 -2
  110. package/dist/bits/menubar/components/menubar-menu.svelte +4 -2
  111. package/dist/bits/menubar/components/menubar-trigger.svelte +14 -6
  112. package/dist/bits/menubar/components/menubar.svelte +4 -2
  113. package/dist/bits/menubar/menubar.svelte.d.ts +24 -20
  114. package/dist/bits/menubar/menubar.svelte.js +40 -56
  115. package/dist/bits/meter/components/meter.svelte +4 -2
  116. package/dist/bits/meter/meter.svelte.js +2 -2
  117. package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +5 -2
  118. package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +8 -3
  119. package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +4 -2
  120. package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +6 -4
  121. package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +6 -3
  122. package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +4 -2
  123. package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +4 -2
  124. package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +4 -2
  125. package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +4 -2
  126. package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +5 -3
  127. package/dist/bits/navigation-menu/components/navigation-menu.svelte +4 -2
  128. package/dist/bits/navigation-menu/navigation-menu.svelte.d.ts +3 -1
  129. package/dist/bits/navigation-menu/navigation-menu.svelte.js +33 -60
  130. package/dist/bits/pagination/components/pagination-next-button.svelte +4 -2
  131. package/dist/bits/pagination/components/pagination-page.svelte +4 -2
  132. package/dist/bits/pagination/components/pagination-prev-button.svelte +4 -2
  133. package/dist/bits/pagination/components/pagination.svelte +4 -2
  134. package/dist/bits/pagination/pagination.svelte.js +4 -4
  135. package/dist/bits/pin-input/components/pin-input-cell.svelte +4 -2
  136. package/dist/bits/pin-input/components/pin-input.svelte +5 -3
  137. package/dist/bits/pin-input/pin-input.svelte.d.ts +4 -2
  138. package/dist/bits/pin-input/pin-input.svelte.js +20 -22
  139. package/dist/bits/pin-input/usePasswordManager.svelte.d.ts +3 -2
  140. package/dist/bits/pin-input/usePasswordManager.svelte.js +6 -5
  141. package/dist/bits/popover/components/popover-close.svelte +4 -2
  142. package/dist/bits/popover/components/popover-content-static.svelte +6 -2
  143. package/dist/bits/popover/components/popover-content.svelte +6 -2
  144. package/dist/bits/popover/components/popover-trigger.svelte +5 -3
  145. package/dist/bits/popover/popover.svelte.js +4 -18
  146. package/dist/bits/progress/components/progress.svelte +4 -2
  147. package/dist/bits/progress/progress.svelte.js +2 -2
  148. package/dist/bits/radio-group/components/radio-group-item.svelte +4 -2
  149. package/dist/bits/radio-group/components/radio-group.svelte +4 -2
  150. package/dist/bits/radio-group/radio-group.svelte.js +4 -7
  151. package/dist/bits/range-calendar/components/range-calendar-cell.svelte +4 -2
  152. package/dist/bits/range-calendar/components/range-calendar-day.svelte +4 -2
  153. package/dist/bits/range-calendar/components/range-calendar.svelte +4 -2
  154. package/dist/bits/range-calendar/range-calendar.svelte.d.ts +2 -0
  155. package/dist/bits/range-calendar/range-calendar.svelte.js +12 -6
  156. package/dist/bits/scroll-area/components/scroll-area-corner.svelte +8 -2
  157. package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +4 -1
  158. package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +1 -1
  159. package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +5 -1
  160. package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +4 -2
  161. package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +8 -3
  162. package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +4 -2
  163. package/dist/bits/scroll-area/components/scroll-area.svelte +4 -2
  164. package/dist/bits/scroll-area/scroll-area.svelte.d.ts +2 -0
  165. package/dist/bits/scroll-area/scroll-area.svelte.js +27 -58
  166. package/dist/bits/select/components/select-content-static.svelte +6 -2
  167. package/dist/bits/select/components/select-content.svelte +6 -2
  168. package/dist/bits/select/components/select-group-heading.svelte +3 -2
  169. package/dist/bits/select/components/select-group.svelte +4 -2
  170. package/dist/bits/select/components/select-item.svelte +4 -2
  171. package/dist/bits/select/components/select-scroll-down-button.svelte +4 -2
  172. package/dist/bits/select/components/select-scroll-up-button.svelte +4 -2
  173. package/dist/bits/select/components/select-trigger.svelte +5 -3
  174. package/dist/bits/select/components/select-viewport.svelte +4 -2
  175. package/dist/bits/select/components/select.svelte +7 -1
  176. package/dist/bits/select/select.svelte.d.ts +5 -19
  177. package/dist/bits/select/select.svelte.js +43 -60
  178. package/dist/bits/separator/components/separator.svelte +4 -2
  179. package/dist/bits/separator/separator.svelte.js +2 -2
  180. package/dist/bits/slider/components/slider-range.svelte +4 -2
  181. package/dist/bits/slider/components/slider-thumb-label.svelte +50 -0
  182. package/dist/bits/slider/components/slider-thumb-label.svelte.d.ts +4 -0
  183. package/dist/bits/slider/components/slider-thumb.svelte +4 -2
  184. package/dist/bits/slider/components/slider-tick-label.svelte +50 -0
  185. package/dist/bits/slider/components/slider-tick-label.svelte.d.ts +4 -0
  186. package/dist/bits/slider/components/slider-tick.svelte +4 -2
  187. package/dist/bits/slider/components/slider.svelte +24 -5
  188. package/dist/bits/slider/exports.d.ts +3 -1
  189. package/dist/bits/slider/exports.js +2 -0
  190. package/dist/bits/slider/helpers.d.ts +14 -0
  191. package/dist/bits/slider/helpers.js +122 -0
  192. package/dist/bits/slider/slider.svelte.d.ts +91 -5
  193. package/dist/bits/slider/slider.svelte.js +194 -101
  194. package/dist/bits/slider/types.d.ts +105 -11
  195. package/dist/bits/switch/components/switch-thumb.svelte +4 -2
  196. package/dist/bits/switch/components/switch.svelte +4 -2
  197. package/dist/bits/switch/switch.svelte.js +3 -3
  198. package/dist/bits/tabs/components/tabs-content.svelte +4 -2
  199. package/dist/bits/tabs/components/tabs-list.svelte +4 -2
  200. package/dist/bits/tabs/components/tabs-trigger.svelte +4 -2
  201. package/dist/bits/tabs/components/tabs.svelte +4 -2
  202. package/dist/bits/tabs/tabs.svelte.js +6 -6
  203. package/dist/bits/time-field/components/time-field-hidden-input.svelte +10 -0
  204. package/dist/bits/{date-field/components/date-field-error.svelte.d.ts → time-field/components/time-field-hidden-input.svelte.d.ts} +6 -14
  205. package/dist/bits/time-field/components/time-field-input.svelte +39 -0
  206. package/dist/bits/time-field/components/time-field-input.svelte.d.ts +4 -0
  207. package/dist/bits/time-field/components/time-field-label.svelte +34 -0
  208. package/dist/bits/time-field/components/time-field-label.svelte.d.ts +4 -0
  209. package/dist/bits/time-field/components/time-field-segment.svelte +37 -0
  210. package/dist/bits/time-field/components/time-field-segment.svelte.d.ts +4 -0
  211. package/dist/bits/time-field/components/time-field.svelte +94 -0
  212. package/dist/bits/time-field/components/time-field.svelte.d.ts +20 -0
  213. package/dist/bits/time-field/exports.d.ts +5 -0
  214. package/dist/bits/time-field/exports.js +4 -0
  215. package/dist/bits/time-field/index.d.ts +1 -0
  216. package/dist/bits/time-field/index.js +1 -0
  217. package/dist/bits/time-field/time-field.svelte.d.ts +417 -0
  218. package/dist/bits/time-field/time-field.svelte.js +980 -0
  219. package/dist/bits/time-field/types.d.ts +137 -0
  220. package/dist/bits/time-field/types.js +1 -0
  221. package/dist/bits/time-range-field/components/time-range-field-input.svelte +43 -0
  222. package/dist/bits/time-range-field/components/time-range-field-input.svelte.d.ts +4 -0
  223. package/dist/bits/time-range-field/components/time-range-field-label.svelte +34 -0
  224. package/dist/bits/time-range-field/components/time-range-field-label.svelte.d.ts +4 -0
  225. package/dist/bits/time-range-field/components/time-range-field.svelte +144 -0
  226. package/dist/bits/time-range-field/components/time-range-field.svelte.d.ts +20 -0
  227. package/dist/bits/time-range-field/exports.d.ts +5 -0
  228. package/dist/bits/time-range-field/exports.js +4 -0
  229. package/dist/bits/time-range-field/index.d.ts +1 -0
  230. package/dist/bits/time-range-field/index.js +1 -0
  231. package/dist/bits/time-range-field/time-range-field.svelte.d.ts +92 -0
  232. package/dist/bits/time-range-field/time-range-field.svelte.js +212 -0
  233. package/dist/bits/time-range-field/types.d.ts +150 -0
  234. package/dist/bits/time-range-field/types.js +1 -0
  235. package/dist/bits/toggle/components/toggle.svelte +4 -2
  236. package/dist/bits/toggle/toggle.svelte.js +2 -2
  237. package/dist/bits/toggle-group/components/toggle-group-item.svelte +4 -2
  238. package/dist/bits/toggle-group/components/toggle-group.svelte +4 -2
  239. package/dist/bits/toggle-group/toggle-group.svelte.js +4 -4
  240. package/dist/bits/toolbar/components/toolbar-button.svelte +4 -2
  241. package/dist/bits/toolbar/components/toolbar-group-item.svelte +4 -2
  242. package/dist/bits/toolbar/components/toolbar-group.svelte +4 -2
  243. package/dist/bits/toolbar/components/toolbar-link.svelte +4 -2
  244. package/dist/bits/toolbar/components/toolbar.svelte +4 -2
  245. package/dist/bits/toolbar/toolbar.svelte.js +7 -7
  246. package/dist/bits/tooltip/components/tooltip-content-static.svelte +6 -2
  247. package/dist/bits/tooltip/components/tooltip-content.svelte +6 -2
  248. package/dist/bits/tooltip/components/tooltip-trigger.svelte +5 -3
  249. package/dist/bits/tooltip/tooltip.svelte.d.ts +2 -0
  250. package/dist/bits/tooltip/tooltip.svelte.js +6 -15
  251. package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -0
  252. package/dist/bits/utilities/dismissible-layer/types.d.ts +2 -0
  253. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +3 -3
  254. package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +16 -25
  255. package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -1
  256. package/dist/bits/utilities/floating-layer/types.d.ts +1 -0
  257. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +3 -2
  258. package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +7 -27
  259. package/dist/bits/utilities/focus-scope/focus-scope.svelte +2 -0
  260. package/dist/bits/utilities/focus-scope/types.d.ts +2 -0
  261. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +2 -1
  262. package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +15 -16
  263. package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +4 -0
  264. package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -1
  265. package/dist/bits/utilities/portal/types.d.ts +1 -1
  266. package/dist/bits/utilities/presence-layer/presence-layer.svelte +2 -2
  267. package/dist/bits/utilities/presence-layer/types.d.ts +2 -1
  268. package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +1 -1
  269. package/dist/bits/utilities/presence-layer/use-presence.svelte.js +19 -36
  270. package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -0
  271. package/dist/bits/utilities/text-selection-layer/types.d.ts +2 -0
  272. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +5 -1
  273. package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +8 -14
  274. package/dist/index.d.ts +1 -1
  275. package/dist/index.js +1 -1
  276. package/dist/internal/box-auto-reset.svelte.d.ts +7 -1
  277. package/dist/internal/box-auto-reset.svelte.js +11 -6
  278. package/dist/internal/create-id.d.ts +8 -0
  279. package/dist/internal/create-id.js +5 -0
  280. package/dist/internal/date-time/announcer.d.ts +1 -1
  281. package/dist/internal/date-time/announcer.js +20 -20
  282. package/dist/internal/date-time/calendar-helpers.svelte.js +7 -5
  283. package/dist/internal/date-time/field/helpers.d.ts +9 -2
  284. package/dist/internal/date-time/field/helpers.js +16 -9
  285. package/dist/internal/date-time/field/parts.d.ts +3 -1
  286. package/dist/internal/date-time/field/parts.js +10 -2
  287. package/dist/internal/date-time/field/segments.d.ts +9 -0
  288. package/dist/internal/date-time/field/segments.js +65 -0
  289. package/dist/internal/date-time/field/time-helpers.d.ts +83 -0
  290. package/dist/internal/date-time/field/time-helpers.js +301 -0
  291. package/dist/internal/date-time/field/types.d.ts +2 -2
  292. package/dist/internal/date-time/formatter.d.ts +11 -1
  293. package/dist/internal/date-time/formatter.js +56 -0
  294. package/dist/internal/date-time/utils.d.ts +7 -2
  295. package/dist/internal/date-time/utils.js +15 -1
  296. package/dist/internal/dom.d.ts +0 -1
  297. package/dist/internal/dom.js +0 -3
  298. package/dist/internal/focus.d.ts +2 -2
  299. package/dist/internal/focus.js +14 -9
  300. package/dist/internal/math.d.ts +0 -4
  301. package/dist/internal/math.js +0 -28
  302. package/dist/internal/tabbable.d.ts +0 -2
  303. package/dist/internal/tabbable.js +10 -14
  304. package/dist/internal/use-data-typeahead.svelte.d.ts +1 -0
  305. package/dist/internal/use-data-typeahead.svelte.js +4 -1
  306. package/dist/internal/use-dom-typeahead.svelte.d.ts +3 -1
  307. package/dist/internal/use-dom-typeahead.svelte.js +5 -2
  308. package/dist/internal/use-grace-area.svelte.js +9 -5
  309. package/dist/internal/use-roving-focus.svelte.d.ts +3 -3
  310. package/dist/internal/use-roving-focus.svelte.js +10 -11
  311. package/dist/shared/date/types.d.ts +27 -4
  312. package/dist/shared/index.d.ts +2 -2
  313. package/dist/types.d.ts +2 -0
  314. package/package.json +18 -16
  315. package/dist/bits/date-field/components/date-field-error.svelte +0 -0
  316. package/dist/internal/use-size.svelte.d.ts +0 -7
  317. package/dist/internal/use-size.svelte.js +0 -54
@@ -1,5 +1,5 @@
1
1
  import { Context, Previous, watch } from "runed";
2
- import { afterSleep, afterTick, onDestroyEffect, useRefById } from "svelte-toolbelt";
2
+ import { afterSleep, afterTick, onDestroyEffect, attachRef, DOMContext } from "svelte-toolbelt";
3
3
  import { on } from "svelte/events";
4
4
  import { backward, forward, next, prev } from "../../internal/arrays.js";
5
5
  import { getAriaExpanded, getAriaHidden, getDataDisabled, getDataOpenClosed, getDisabled, getRequired, } from "../../internal/attrs.js";
@@ -18,7 +18,6 @@ export const CONTENT_MARGIN = 10;
18
18
  class SelectBaseRootState {
19
19
  opts;
20
20
  touchedInput = $state(false);
21
- inputValue = $state("");
22
21
  inputNode = $state(null);
23
22
  contentNode = $state(null);
24
23
  triggerNode = $state(null);
@@ -42,6 +41,7 @@ class SelectBaseRootState {
42
41
  isUsingKeyboard = false;
43
42
  isCombobox = false;
44
43
  bitsAttrs;
44
+ domContext = new DOMContext(() => null);
45
45
  constructor(opts) {
46
46
  this.opts = opts;
47
47
  this.isCombobox = opts.isCombobox;
@@ -134,11 +134,12 @@ class SelectSingleRootState extends SelectBaseRootState {
134
134
  }
135
135
  toggleItem(itemValue, itemLabel = itemValue) {
136
136
  this.opts.value.current = this.includesItem(itemValue) ? "" : itemValue;
137
- this.inputValue = itemLabel;
137
+ this.opts.inputValue.current = itemLabel;
138
138
  }
139
139
  setInitialHighlightedNode() {
140
140
  afterTick(() => {
141
- if (this.highlightedNode && document.contains(this.highlightedNode))
141
+ if (this.highlightedNode &&
142
+ this.domContext.getDocument().contains(this.highlightedNode))
142
143
  return;
143
144
  if (this.opts.value.current !== "") {
144
145
  const node = this.getNodeByValue(this.opts.value.current);
@@ -183,11 +184,14 @@ class SelectMultipleRootState extends SelectBaseRootState {
183
184
  else {
184
185
  this.opts.value.current = [...this.opts.value.current, itemValue];
185
186
  }
186
- this.inputValue = itemLabel;
187
+ this.opts.inputValue.current = itemLabel;
187
188
  }
188
189
  setInitialHighlightedNode() {
189
190
  afterTick(() => {
190
- if (this.highlightedNode && document.contains(this.highlightedNode))
191
+ if (!this.domContext)
192
+ return;
193
+ if (this.highlightedNode &&
194
+ this.domContext.getDocument().contains(this.highlightedNode))
191
195
  return;
192
196
  if (this.opts.value.current.length && this.opts.value.current[0] !== "") {
193
197
  const node = this.getNodeByValue(this.opts.value.current[0]);
@@ -210,12 +214,7 @@ class SelectInputState {
210
214
  constructor(opts, root) {
211
215
  this.opts = opts;
212
216
  this.root = root;
213
- useRefById({
214
- ...opts,
215
- onRefChange: (node) => {
216
- this.root.inputNode = node;
217
- },
218
- });
217
+ this.root.domContext = new DOMContext(opts.ref);
219
218
  this.onkeydown = this.onkeydown.bind(this);
220
219
  this.oninput = this.oninput.bind(this);
221
220
  watch([() => this.root.opts.value.current, () => this.opts.clearOnDeselect.current], ([value, clearOnDeselect], [prevValue]) => {
@@ -223,11 +222,11 @@ class SelectInputState {
223
222
  return;
224
223
  if (Array.isArray(value) && Array.isArray(prevValue)) {
225
224
  if (value.length === 0 && prevValue.length !== 0) {
226
- this.root.inputValue = "";
225
+ this.root.opts.inputValue.current = "";
227
226
  }
228
227
  }
229
228
  else if (value === "" && prevValue !== "") {
230
- this.root.inputValue = "";
229
+ this.root.opts.inputValue.current = "";
231
230
  }
232
231
  });
233
232
  }
@@ -243,7 +242,7 @@ class SelectInputState {
243
242
  return;
244
243
  if (e.key === kbd.TAB)
245
244
  return;
246
- if (e.key === kbd.BACKSPACE && this.root.inputValue === "")
245
+ if (e.key === kbd.BACKSPACE && this.root.opts.inputValue.current === "")
247
246
  return;
248
247
  this.root.handleOpen();
249
248
  // we need to wait for a tick after the menu opens to ensure the highlighted nodes are
@@ -325,7 +324,7 @@ class SelectInputState {
325
324
  }
326
325
  }
327
326
  oninput(e) {
328
- this.root.inputValue = e.currentTarget.value;
327
+ this.root.opts.inputValue.current = e.currentTarget.value;
329
328
  this.root.setHighlightedToFirstCandidate();
330
329
  }
331
330
  props = $derived.by(() => ({
@@ -340,6 +339,7 @@ class SelectInputState {
340
339
  onkeydown: this.onkeydown,
341
340
  oninput: this.oninput,
342
341
  [this.root.bitsAttrs.input]: "",
342
+ ...attachRef(this.opts.ref, (v) => (this.root.inputNode = v)),
343
343
  }));
344
344
  }
345
345
  class SelectComboTriggerState {
@@ -348,14 +348,15 @@ class SelectComboTriggerState {
348
348
  constructor(opts, root) {
349
349
  this.opts = opts;
350
350
  this.root = root;
351
- useRefById(opts);
352
351
  this.onkeydown = this.onkeydown.bind(this);
353
352
  this.onpointerdown = this.onpointerdown.bind(this);
354
353
  }
355
354
  onkeydown(e) {
355
+ if (!this.root.domContext)
356
+ return;
356
357
  if (e.key === kbd.ENTER || e.key === kbd.SPACE) {
357
358
  e.preventDefault();
358
- if (document.activeElement !== this.root.inputNode) {
359
+ if (this.root.domContext.getActiveElement() !== this.root.inputNode) {
359
360
  this.root.inputNode?.focus();
360
361
  }
361
362
  this.root.toggleMenu();
@@ -366,10 +367,10 @@ class SelectComboTriggerState {
366
367
  * behavior of focusing the button and keep focus on the input.
367
368
  */
368
369
  onpointerdown(e) {
369
- if (this.root.opts.disabled.current)
370
+ if (this.root.opts.disabled.current || !this.root.domContext)
370
371
  return;
371
372
  e.preventDefault();
372
- if (document.activeElement !== this.root.inputNode) {
373
+ if (this.root.domContext.getActiveElement() !== this.root.inputNode) {
373
374
  this.root.inputNode?.focus();
374
375
  }
375
376
  this.root.toggleMenu();
@@ -383,6 +384,7 @@ class SelectComboTriggerState {
383
384
  [this.root.bitsAttrs.trigger]: "",
384
385
  onpointerdown: this.onpointerdown,
385
386
  onkeydown: this.onkeydown,
387
+ ...attachRef(this.opts.ref),
386
388
  }));
387
389
  }
388
390
  class SelectTriggerState {
@@ -393,17 +395,14 @@ class SelectTriggerState {
393
395
  constructor(opts, root) {
394
396
  this.opts = opts;
395
397
  this.root = root;
396
- useRefById({
397
- ...opts,
398
- onRefChange: (node) => {
399
- this.root.triggerNode = node;
400
- },
401
- });
398
+ this.root.domContext = new DOMContext(opts.ref);
402
399
  this.#domTypeahead = useDOMTypeahead({
403
400
  getCurrentItem: () => this.root.highlightedNode,
404
401
  onMatch: (node) => {
405
402
  this.root.setHighlightedNode(node);
406
403
  },
404
+ getActiveElement: () => this.root.domContext.getActiveElement(),
405
+ getWindow: () => this.root.domContext.getWindow(),
407
406
  });
408
407
  this.#dataTypeahead = useDataTypeahead({
409
408
  getCurrentItem: () => {
@@ -423,6 +422,7 @@ class SelectTriggerState {
423
422
  },
424
423
  enabled: !this.root.isMulti && this.root.dataTypeaheadEnabled,
425
424
  candidateValues: () => (this.root.isMulti ? [] : this.root.candidateLabels),
425
+ getWindow: () => this.root.domContext.getWindow(),
426
426
  });
427
427
  this.onkeydown = this.onkeydown.bind(this);
428
428
  this.onpointerdown = this.onpointerdown.bind(this);
@@ -617,6 +617,7 @@ class SelectTriggerState {
617
617
  onkeydown: this.onkeydown,
618
618
  onclick: this.onclick,
619
619
  onpointerup: this.onpointerup,
620
+ ...attachRef(this.opts.ref, (v) => (this.root.triggerNode = v)),
620
621
  }));
621
622
  }
622
623
  class SelectContentState {
@@ -624,16 +625,14 @@ class SelectContentState {
624
625
  root;
625
626
  viewportNode = $state(null);
626
627
  isPositioned = $state(false);
628
+ domContext;
627
629
  constructor(opts, root) {
628
630
  this.opts = opts;
629
631
  this.root = root;
630
- useRefById({
631
- ...opts,
632
- onRefChange: (node) => {
633
- this.root.contentNode = node;
634
- },
635
- deps: () => this.root.opts.open.current,
636
- });
632
+ this.domContext = new DOMContext(this.opts.ref);
633
+ if (this.root.domContext === null) {
634
+ this.root.domContext = this.domContext;
635
+ }
637
636
  onDestroyEffect(() => {
638
637
  this.root.contentNode = null;
639
638
  this.isPositioned = false;
@@ -696,6 +695,7 @@ class SelectContentState {
696
695
  ...this.#styles,
697
696
  },
698
697
  onpointermove: this.onpointermove,
698
+ ...attachRef(this.opts.ref, (v) => (this.root.contentNode = v)),
699
699
  }));
700
700
  popperProps = {
701
701
  onInteractOutside: this.onInteractOutside,
@@ -723,10 +723,6 @@ class SelectItemState {
723
723
  constructor(opts, root) {
724
724
  this.opts = opts;
725
725
  this.root = root;
726
- useRefById({
727
- ...opts,
728
- deps: () => this.mounted,
729
- });
730
726
  watch([() => this.isHighlighted, () => this.prevHighlighted.current], () => {
731
727
  if (this.isHighlighted) {
732
728
  this.opts.onHighlight.current();
@@ -830,6 +826,7 @@ class SelectItemState {
830
826
  onpointermove: this.onpointermove,
831
827
  onpointerdown: this.onpointerdown,
832
828
  onpointerup: this.onpointerup,
829
+ ...attachRef(this.opts.ref),
833
830
  }));
834
831
  }
835
832
  class SelectGroupState {
@@ -839,13 +836,13 @@ class SelectGroupState {
839
836
  constructor(opts, root) {
840
837
  this.opts = opts;
841
838
  this.root = root;
842
- useRefById(opts);
843
839
  }
844
840
  props = $derived.by(() => ({
845
841
  id: this.opts.id.current,
846
842
  role: "group",
847
843
  [this.root.bitsAttrs.group]: "",
848
844
  "aria-labelledby": this.labelNode?.id ?? undefined,
845
+ ...attachRef(this.opts.ref),
849
846
  }));
850
847
  }
851
848
  class SelectGroupHeadingState {
@@ -854,16 +851,11 @@ class SelectGroupHeadingState {
854
851
  constructor(opts, group) {
855
852
  this.opts = opts;
856
853
  this.group = group;
857
- useRefById({
858
- ...opts,
859
- onRefChange: (node) => {
860
- group.labelNode = node;
861
- },
862
- });
863
854
  }
864
855
  props = $derived.by(() => ({
865
856
  id: this.opts.id.current,
866
857
  [this.group.root.bitsAttrs["group-label"]]: "",
858
+ ...attachRef(this.opts.ref, (v) => (this.group.labelNode = v)),
867
859
  }));
868
860
  }
869
861
  class SelectHiddenInputState {
@@ -901,13 +893,6 @@ class SelectViewportState {
901
893
  this.opts = opts;
902
894
  this.content = content;
903
895
  this.root = content.root;
904
- useRefById({
905
- ...opts,
906
- onRefChange: (node) => {
907
- this.content.viewportNode = node;
908
- },
909
- deps: () => this.root.opts.open.current,
910
- });
911
896
  }
912
897
  props = $derived.by(() => ({
913
898
  id: this.opts.id.current,
@@ -921,6 +906,7 @@ class SelectViewportState {
921
906
  flex: 1,
922
907
  overflow: "auto",
923
908
  },
909
+ ...attachRef(this.opts.ref, (v) => (this.content.viewportNode = v)),
924
910
  }));
925
911
  }
926
912
  class SelectScrollButtonImplState {
@@ -936,10 +922,6 @@ class SelectScrollButtonImplState {
936
922
  this.opts = opts;
937
923
  this.content = content;
938
924
  this.root = content.root;
939
- useRefById({
940
- ...opts,
941
- deps: () => this.mounted,
942
- });
943
925
  watch([() => this.mounted], () => {
944
926
  if (!this.mounted) {
945
927
  this.isUserScrolling = false;
@@ -958,16 +940,16 @@ class SelectScrollButtonImplState {
958
940
  this.onpointerleave = this.onpointerleave.bind(this);
959
941
  }
960
942
  handleUserScroll() {
961
- window.clearTimeout(this.userScrollTimer);
943
+ this.content.domContext.clearTimeout(this.userScrollTimer);
962
944
  this.isUserScrolling = true;
963
- this.userScrollTimer = window.setTimeout(() => {
945
+ this.userScrollTimer = this.content.domContext.setTimeout(() => {
964
946
  this.isUserScrolling = false;
965
947
  }, 200);
966
948
  }
967
949
  clearAutoScrollInterval() {
968
950
  if (this.autoScrollTimer === null)
969
951
  return;
970
- window.clearTimeout(this.autoScrollTimer);
952
+ this.content.domContext.clearTimeout(this.autoScrollTimer);
971
953
  this.autoScrollTimer = null;
972
954
  }
973
955
  onpointerdown(_) {
@@ -975,9 +957,9 @@ class SelectScrollButtonImplState {
975
957
  return;
976
958
  const autoScroll = (tick) => {
977
959
  this.onAutoScroll();
978
- this.autoScrollTimer = window.setTimeout(() => autoScroll(tick + 1), this.opts.delay.current(tick));
960
+ this.autoScrollTimer = this.content.domContext.setTimeout(() => autoScroll(tick + 1), this.opts.delay.current(tick));
979
961
  };
980
- this.autoScrollTimer = window.setTimeout(() => autoScroll(1), this.opts.delay.current(0));
962
+ this.autoScrollTimer = this.content.domContext.setTimeout(() => autoScroll(1), this.opts.delay.current(0));
981
963
  }
982
964
  onpointermove(e) {
983
965
  this.onpointerdown(e);
@@ -994,6 +976,7 @@ class SelectScrollButtonImplState {
994
976
  onpointerdown: this.onpointerdown,
995
977
  onpointermove: this.onpointermove,
996
978
  onpointerleave: this.onpointerleave,
979
+ ...attachRef(this.opts.ref),
997
980
  }));
998
981
  }
999
982
  class SelectScrollDownButtonState {
@@ -2,10 +2,12 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import { useSeparatorRoot } from "../separator.svelte.js";
4
4
  import type { SeparatorRootProps } from "../types.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
- id = useId(),
10
+ id = createId(uid),
9
11
  ref = $bindable(null),
10
12
  child,
11
13
  children,
@@ -1,11 +1,10 @@
1
- import { useRefById } from "svelte-toolbelt";
1
+ import { attachRef } from "svelte-toolbelt";
2
2
  import { getAriaHidden, getAriaOrientation, getDataOrientation } from "../../internal/attrs.js";
3
3
  const SEPARATOR_ROOT_ATTR = "data-separator-root";
4
4
  class SeparatorRootState {
5
5
  opts;
6
6
  constructor(opts) {
7
7
  this.opts = opts;
8
- useRefById(opts);
9
8
  }
10
9
  props = $derived.by(() => ({
11
10
  id: this.opts.id.current,
@@ -14,6 +13,7 @@ class SeparatorRootState {
14
13
  "aria-hidden": getAriaHidden(this.opts.decorative.current),
15
14
  "data-orientation": getDataOrientation(this.opts.orientation.current),
16
15
  [SEPARATOR_ROOT_ATTR]: "",
16
+ ...attachRef(this.opts.ref),
17
17
  }));
18
18
  }
19
19
  export function useSeparatorRoot(props) {
@@ -2,13 +2,15 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SliderRangeProps } from "../types.js";
4
4
  import { useSliderRange } from "../slider.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
10
  children,
9
11
  child,
10
12
  ref = $bindable(null),
11
- id = useId(),
13
+ id = createId(uid),
12
14
  ...restProps
13
15
  }: SliderRangeProps = $props();
14
16
 
@@ -0,0 +1,50 @@
1
+ <script lang="ts">
2
+ import { box, mergeProps } from "svelte-toolbelt";
3
+ import type { SliderThumbLabelProps } from "../types.js";
4
+ import { SliderRootContext, useSliderThumbLabel } from "../slider.svelte.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
8
+
9
+ let {
10
+ children,
11
+ child,
12
+ ref = $bindable(null),
13
+ id = createId(uid),
14
+ index,
15
+ position: positionProp,
16
+ ...restProps
17
+ }: SliderThumbLabelProps = $props();
18
+
19
+ const root = SliderRootContext.get();
20
+
21
+ const position = $derived.by(() => {
22
+ if (positionProp !== undefined) return positionProp;
23
+ switch (root.direction) {
24
+ case "lr":
25
+ case "rl":
26
+ return "top";
27
+ case "tb":
28
+ case "bt":
29
+ return "left";
30
+ }
31
+ });
32
+
33
+ const tickLabelState = useSliderThumbLabel({
34
+ id: box.with(() => id),
35
+ ref: box.with(
36
+ () => ref,
37
+ (v) => (ref = v)
38
+ ),
39
+ index: box.with(() => index),
40
+ position: box.with(() => position),
41
+ });
42
+
43
+ const mergedProps = $derived(mergeProps(restProps, tickLabelState.props));
44
+ </script>
45
+
46
+ {#if child}
47
+ {@render child({ props: mergedProps })}
48
+ {:else}
49
+ <span {...mergedProps}>{@render children?.()}</span>
50
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { SliderThumbLabelProps } from "../types.js";
2
+ declare const SliderThumbLabel: import("svelte").Component<SliderThumbLabelProps, {}, "ref">;
3
+ type SliderThumbLabel = ReturnType<typeof SliderThumbLabel>;
4
+ export default SliderThumbLabel;
@@ -2,13 +2,15 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SliderThumbProps } from "../types.js";
4
4
  import { useSliderThumb } from "../slider.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
10
  children,
9
11
  child,
10
12
  ref = $bindable(null),
11
- id = useId(),
13
+ id = createId(uid),
12
14
  index,
13
15
  disabled = false,
14
16
  ...restProps
@@ -0,0 +1,50 @@
1
+ <script lang="ts">
2
+ import { box, mergeProps } from "svelte-toolbelt";
3
+ import type { SliderTickLabelProps } from "../types.js";
4
+ import { SliderRootContext, useSliderTickLabel } from "../slider.svelte.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
8
+
9
+ let {
10
+ children,
11
+ child,
12
+ ref = $bindable(null),
13
+ id = createId(uid),
14
+ index,
15
+ position: positionProp,
16
+ ...restProps
17
+ }: SliderTickLabelProps = $props();
18
+
19
+ const root = SliderRootContext.get();
20
+
21
+ const position = $derived.by(() => {
22
+ if (positionProp !== undefined) return positionProp;
23
+ switch (root.direction) {
24
+ case "lr":
25
+ case "rl":
26
+ return "top";
27
+ case "tb":
28
+ case "bt":
29
+ return "left";
30
+ }
31
+ });
32
+
33
+ const tickLabelState = useSliderTickLabel({
34
+ id: box.with(() => id),
35
+ ref: box.with(
36
+ () => ref,
37
+ (v) => (ref = v)
38
+ ),
39
+ index: box.with(() => index),
40
+ position: box.with(() => position),
41
+ });
42
+
43
+ const mergedProps = $derived(mergeProps(restProps, tickLabelState.props));
44
+ </script>
45
+
46
+ {#if child}
47
+ {@render child({ props: mergedProps })}
48
+ {:else}
49
+ <span {...mergedProps}>{@render children?.()}</span>
50
+ {/if}
@@ -0,0 +1,4 @@
1
+ import type { SliderTickLabelProps } from "../types.js";
2
+ declare const SliderTickLabel: import("svelte").Component<SliderTickLabelProps, {}, "ref">;
3
+ type SliderTickLabel = ReturnType<typeof SliderTickLabel>;
4
+ export default SliderTickLabel;
@@ -2,13 +2,15 @@
2
2
  import { box, mergeProps } from "svelte-toolbelt";
3
3
  import type { SliderTickProps } from "../types.js";
4
4
  import { useSliderTick } from "../slider.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
+
7
+ const uid = $props.id();
6
8
 
7
9
  let {
8
10
  children,
9
11
  child,
10
12
  ref = $bindable(null),
11
- id = useId(),
13
+ id = createId(uid),
12
14
  index,
13
15
  ...restProps
14
16
  }: SliderTickProps = $props();
@@ -2,33 +2,51 @@
2
2
  import { box, mergeProps, type WritableBox } from "svelte-toolbelt";
3
3
  import type { SliderRootProps } from "../types.js";
4
4
  import { useSliderRoot } from "../slider.svelte.js";
5
- import { useId } from "../../../internal/use-id.js";
5
+ import { createId } from "../../../internal/create-id.js";
6
6
  import { noop } from "../../../internal/noop.js";
7
7
  import { watch } from "runed";
8
8
 
9
+ const uid = $props.id();
10
+
9
11
  let {
10
12
  children,
11
13
  child,
12
- id = useId(),
14
+ id = createId(uid),
13
15
  ref = $bindable(null),
14
16
  value = $bindable(),
15
17
  type,
16
18
  onValueChange = noop,
17
19
  onValueCommit = noop,
18
20
  disabled = false,
19
- min = 0,
20
- max = 100,
21
+ min: minProp,
22
+ max: maxProp,
21
23
  step = 1,
22
24
  dir = "ltr",
23
25
  autoSort = true,
24
26
  orientation = "horizontal",
25
27
  thumbPositioning = "contain",
28
+ trackPadding,
26
29
  ...restProps
27
30
  }: SliderRootProps = $props();
28
31
 
32
+ const min = $derived.by(() => {
33
+ if (minProp !== undefined) return minProp;
34
+ if (Array.isArray(step)) return Math.min(...step);
35
+ return 0;
36
+ });
37
+
38
+ const max = $derived.by(() => {
39
+ if (maxProp !== undefined) return maxProp;
40
+ if (Array.isArray(step)) return Math.max(...step);
41
+ return 100;
42
+ });
43
+
29
44
  function handleDefaultValue() {
30
45
  if (value !== undefined) return;
31
- value = type === "single" ? 0 : [];
46
+ if (type === "single") {
47
+ return min;
48
+ }
49
+ return [];
32
50
  }
33
51
 
34
52
  // SSR
@@ -66,6 +84,7 @@
66
84
  orientation: box.with(() => orientation),
67
85
  thumbPositioning: box.with(() => thumbPositioning),
68
86
  type,
87
+ trackPadding: box.with(() => trackPadding),
69
88
  });
70
89
 
71
90
  const mergedProps = $derived(mergeProps(restProps, rootState.props));
@@ -2,4 +2,6 @@ export { default as Root } from "./components/slider.svelte";
2
2
  export { default as Range } from "./components/slider-range.svelte";
3
3
  export { default as Thumb } from "./components/slider-thumb.svelte";
4
4
  export { default as Tick } from "./components/slider-tick.svelte";
5
- export type { SliderRootProps as RootProps, SliderRangeProps as RangeProps, SliderThumbProps as ThumbProps, SliderTickProps as TickProps, } from "./types.js";
5
+ export { default as TickLabel } from "./components/slider-tick-label.svelte";
6
+ export { default as ThumbLabel } from "./components/slider-thumb-label.svelte";
7
+ export type { SliderRootProps as RootProps, SliderRangeProps as RangeProps, SliderThumbProps as ThumbProps, SliderTickProps as TickProps, SliderTickLabelProps as TickLabelProps, SliderThumbLabelProps as ThumbLabelProps, } from "./types.js";
@@ -2,3 +2,5 @@ export { default as Root } from "./components/slider.svelte";
2
2
  export { default as Range } from "./components/slider-range.svelte";
3
3
  export { default as Thumb } from "./components/slider-thumb.svelte";
4
4
  export { default as Tick } from "./components/slider-tick.svelte";
5
+ export { default as TickLabel } from "./components/slider-tick-label.svelte";
6
+ export { default as ThumbLabel } from "./components/slider-thumb-label.svelte";
@@ -2,3 +2,17 @@ import type { StyleProperties } from "../../shared/index.js";
2
2
  export declare function getRangeStyles(direction: "lr" | "rl" | "tb" | "bt", min: number, max: number): StyleProperties;
3
3
  export declare function getThumbStyles(direction: "lr" | "rl" | "tb" | "bt", thumbPos: number): StyleProperties;
4
4
  export declare function getTickStyles(direction: "lr" | "rl" | "tb" | "bt", tickPosition: number, offsetPercentage: number): StyleProperties;
5
+ export declare function getTickLabelStyles(direction: "lr" | "rl" | "tb" | "bt", tickPosition: number, labelPosition?: "top" | "bottom" | "left" | "right"): StyleProperties;
6
+ export declare function getThumbLabelStyles(direction: "lr" | "rl" | "tb" | "bt", thumbPosition: number, labelPosition?: "top" | "bottom" | "left" | "right"): StyleProperties;
7
+ /**
8
+ * Normalizes step to always be a sorted array of valid values within min/max range
9
+ */
10
+ export declare function normalizeSteps(step: number | number[], min: number, max: number): number[];
11
+ /**
12
+ * Snaps a value to the nearest step in a custom steps array
13
+ */
14
+ export declare function snapValueToCustomSteps(value: number, steps: number[]): number;
15
+ /**
16
+ * Gets the next/previous step value for keyboard navigation
17
+ */
18
+ export declare function getAdjacentStepValue(currentValue: number, steps: number[], direction: "next" | "prev"): number;