mtrl 0.3.7 → 0.3.9

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 (691) hide show
  1. package/dist/LICENSE +21 -0
  2. package/dist/README.md +324 -0
  3. package/dist/components/badge/api.d.ts +48 -0
  4. package/{src/components/badge/badge.ts → dist/components/badge/badge.d.ts} +14 -57
  5. package/dist/components/badge/config.d.ts +79 -0
  6. package/dist/components/badge/constants.d.ts +35 -0
  7. package/dist/components/badge/features.d.ts +36 -0
  8. package/dist/components/badge/index.d.ts +8 -0
  9. package/dist/components/badge/types.d.ts +256 -0
  10. package/dist/components/bottom-app-bar/bottom-app-bar.d.ts +12 -0
  11. package/dist/components/bottom-app-bar/config.d.ts +16 -0
  12. package/dist/components/bottom-app-bar/constants.d.ts +22 -0
  13. package/{src/components/bottom-app-bar/index.ts → dist/components/bottom-app-bar/index.d.ts} +0 -9
  14. package/dist/components/bottom-app-bar/types.d.ts +96 -0
  15. package/dist/components/button/api.d.ts +47 -0
  16. package/dist/components/button/button.d.ts +25 -0
  17. package/dist/components/button/config.d.ts +59 -0
  18. package/dist/components/button/constants.d.ts +43 -0
  19. package/dist/components/button/index.d.ts +6 -0
  20. package/dist/components/button/types.d.ts +265 -0
  21. package/dist/components/card/api.d.ts +11 -0
  22. package/{src/components/card/card.ts → dist/components/card/card.d.ts} +10 -58
  23. package/dist/components/card/config.d.ts +105 -0
  24. package/dist/components/card/constants.d.ts +85 -0
  25. package/dist/components/card/content.d.ts +92 -0
  26. package/dist/components/card/features.d.ts +131 -0
  27. package/{src/components/card/index.ts → dist/components/card/index.d.ts} +13 -74
  28. package/dist/components/card/types.d.ts +471 -0
  29. package/dist/components/carousel/api.d.ts +33 -0
  30. package/dist/components/carousel/carousel.d.ts +75 -0
  31. package/dist/components/carousel/config.d.ts +45 -0
  32. package/dist/components/carousel/constants.d.ts +165 -0
  33. package/dist/components/carousel/features/drag.d.ts +8 -0
  34. package/{src/components/carousel/features/index.ts → dist/components/carousel/features/index.d.ts} +1 -4
  35. package/dist/components/carousel/features/slides.d.ts +8 -0
  36. package/{src/components/carousel/index.ts → dist/components/carousel/index.d.ts} +10 -29
  37. package/dist/components/carousel/types.d.ts +276 -0
  38. package/dist/components/checkbox/api.d.ts +7 -0
  39. package/dist/components/checkbox/checkbox.d.ts +65 -0
  40. package/dist/components/checkbox/config.d.ts +44 -0
  41. package/dist/components/checkbox/constants.d.ts +63 -0
  42. package/{src/components/checkbox/index.ts → dist/components/checkbox/index.d.ts} +8 -25
  43. package/dist/components/checkbox/types.d.ts +242 -0
  44. package/dist/components/chips/api.d.ts +49 -0
  45. package/dist/components/chips/chip/api.d.ts +23 -0
  46. package/dist/components/chips/chip/chip.d.ts +8 -0
  47. package/dist/components/chips/chip/config.d.ts +57 -0
  48. package/dist/components/chips/chip/constants.d.ts +38 -0
  49. package/dist/components/chips/chip/index.d.ts +2 -0
  50. package/dist/components/chips/chip/types.d.ts +11 -0
  51. package/dist/components/chips/chips.d.ts +17 -0
  52. package/dist/components/chips/config.d.ts +67 -0
  53. package/dist/components/chips/constants.d.ts +46 -0
  54. package/dist/components/chips/features/chip-items.d.ts +8 -0
  55. package/dist/components/chips/features/container.d.ts +8 -0
  56. package/dist/components/chips/features/controller.d.ts +9 -0
  57. package/{src/components/chips/features/index.ts → dist/components/chips/features/index.d.ts} +1 -2
  58. package/dist/components/chips/features/label.d.ts +8 -0
  59. package/dist/components/chips/index.d.ts +4 -0
  60. package/dist/components/chips/schema.d.ts +34 -0
  61. package/dist/components/chips/types.d.ts +398 -0
  62. package/dist/components/datepicker/api.d.ts +9 -0
  63. package/dist/components/datepicker/config.d.ts +79 -0
  64. package/dist/components/datepicker/constants.d.ts +97 -0
  65. package/dist/components/datepicker/datepicker.d.ts +8 -0
  66. package/dist/components/datepicker/index.d.ts +3 -0
  67. package/dist/components/datepicker/render.d.ts +43 -0
  68. package/dist/components/datepicker/types.d.ts +321 -0
  69. package/dist/components/datepicker/utils.d.ts +84 -0
  70. package/dist/components/dialog/api.d.ts +59 -0
  71. package/dist/components/dialog/config.d.ts +91 -0
  72. package/dist/components/dialog/constants.d.ts +116 -0
  73. package/{src/components/dialog/dialog.ts → dist/components/dialog/dialog.d.ts} +16 -69
  74. package/dist/components/dialog/features.d.ts +37 -0
  75. package/dist/components/dialog/index.d.ts +14 -0
  76. package/dist/components/dialog/types.d.ts +483 -0
  77. package/dist/components/divider/config.d.ts +143 -0
  78. package/dist/components/divider/constants.d.ts +45 -0
  79. package/{src/components/divider/divider.ts → dist/components/divider/divider.d.ts} +9 -37
  80. package/dist/components/divider/features.d.ts +50 -0
  81. package/{src/components/divider/index.ts → dist/components/divider/index.d.ts} +6 -12
  82. package/dist/components/divider/types.d.ts +124 -0
  83. package/dist/components/extended-fab/api.d.ts +83 -0
  84. package/dist/components/extended-fab/config.d.ts +75 -0
  85. package/dist/components/extended-fab/constants.d.ts +82 -0
  86. package/dist/components/extended-fab/extended-fab.d.ts +61 -0
  87. package/{src/components/extended-fab/index.ts → dist/components/extended-fab/index.d.ts} +6 -15
  88. package/dist/components/extended-fab/types.d.ts +703 -0
  89. package/dist/components/fab/api.d.ts +64 -0
  90. package/dist/components/fab/config.d.ts +71 -0
  91. package/dist/components/fab/constants.d.ts +75 -0
  92. package/{src/components/fab/fab.ts → dist/components/fab/fab.d.ts} +10 -46
  93. package/{src/components/fab/index.ts → dist/components/fab/index.d.ts} +6 -15
  94. package/dist/components/fab/types.d.ts +577 -0
  95. package/dist/components/index.d.ts +76 -0
  96. package/dist/components/list/api.d.ts +106 -0
  97. package/dist/components/list/config.d.ts +61 -0
  98. package/dist/components/list/constants.d.ts +76 -0
  99. package/dist/components/list/features/index.d.ts +2 -0
  100. package/dist/components/list/features/listmanager.d.ts +9 -0
  101. package/dist/components/list/features/selection.d.ts +9 -0
  102. package/dist/components/list/index.d.ts +12 -0
  103. package/dist/components/list/list.d.ts +11 -0
  104. package/dist/components/list/types.d.ts +294 -0
  105. package/dist/components/menu/api.d.ts +58 -0
  106. package/dist/components/menu/config.d.ts +78 -0
  107. package/dist/components/menu/constants.d.ts +106 -0
  108. package/dist/components/menu/features/controller.d.ts +10 -0
  109. package/dist/components/menu/features/index.d.ts +6 -0
  110. package/dist/components/menu/features/keyboard.d.ts +26 -0
  111. package/dist/components/menu/features/opener.d.ts +10 -0
  112. package/dist/components/menu/features/position.d.ts +18 -0
  113. package/dist/components/menu/features/submenu.d.ts +10 -0
  114. package/{src/components/menu/index.ts → dist/components/menu/index.d.ts} +11 -27
  115. package/dist/components/menu/menu.d.ts +29 -0
  116. package/dist/components/menu/types.d.ts +338 -0
  117. package/dist/components/navigation/api.d.ts +8 -0
  118. package/dist/components/navigation/config.d.ts +34 -0
  119. package/dist/components/navigation/constants.d.ts +137 -0
  120. package/dist/components/navigation/features/controller.d.ts +30 -0
  121. package/dist/components/navigation/features/items.d.ts +32 -0
  122. package/dist/components/navigation/index.d.ts +3 -0
  123. package/dist/components/navigation/nav-item.d.ts +30 -0
  124. package/dist/components/navigation/navigation.d.ts +8 -0
  125. package/dist/components/navigation/system/core.d.ts +72 -0
  126. package/dist/components/navigation/system/events.d.ts +35 -0
  127. package/dist/components/navigation/system/index.d.ts +10 -0
  128. package/dist/components/navigation/system/mobile.d.ts +52 -0
  129. package/dist/components/navigation/system/state.d.ts +22 -0
  130. package/dist/components/navigation/system/types.d.ts +305 -0
  131. package/dist/components/navigation/types.d.ts +216 -0
  132. package/dist/components/progress/api.d.ts +46 -0
  133. package/dist/components/progress/config.d.ts +63 -0
  134. package/dist/components/progress/constants.d.ts +58 -0
  135. package/dist/components/progress/index.d.ts +3 -0
  136. package/dist/components/progress/progress.d.ts +24 -0
  137. package/dist/components/progress/types.d.ts +199 -0
  138. package/dist/components/radios/api.d.ts +37 -0
  139. package/dist/components/radios/config.d.ts +42 -0
  140. package/dist/components/radios/constants.d.ts +114 -0
  141. package/dist/components/radios/index.d.ts +3 -0
  142. package/dist/components/radios/radio.d.ts +8 -0
  143. package/dist/components/radios/radios.d.ts +8 -0
  144. package/dist/components/radios/types.d.ts +189 -0
  145. package/dist/components/search/api.d.ts +55 -0
  146. package/dist/components/search/config.d.ts +73 -0
  147. package/dist/components/search/constants.d.ts +128 -0
  148. package/{src/components/search/features/index.ts → dist/components/search/features/index.d.ts} +1 -2
  149. package/dist/components/search/features/search.d.ts +7 -0
  150. package/dist/components/search/features/states.d.ts +8 -0
  151. package/dist/components/search/features/structure.d.ts +7 -0
  152. package/dist/components/search/index.d.ts +3 -0
  153. package/dist/components/search/search.d.ts +8 -0
  154. package/dist/components/search/types.d.ts +132 -0
  155. package/dist/components/segmented-button/config.d.ts +65 -0
  156. package/dist/components/segmented-button/constants.d.ts +85 -0
  157. package/dist/components/segmented-button/index.d.ts +4 -0
  158. package/dist/components/segmented-button/segment.d.ts +15 -0
  159. package/dist/components/segmented-button/segmented-button.d.ts +49 -0
  160. package/dist/components/segmented-button/types.d.ts +257 -0
  161. package/dist/components/select/api.d.ts +8 -0
  162. package/dist/components/select/config.d.ts +18 -0
  163. package/dist/components/select/constants.d.ts +113 -0
  164. package/dist/components/select/features.d.ts +13 -0
  165. package/{src/components/select/index.ts → dist/components/select/index.d.ts} +7 -20
  166. package/dist/components/select/select.d.ts +36 -0
  167. package/dist/components/select/types.d.ts +302 -0
  168. package/dist/components/sheet/api.d.ts +37 -0
  169. package/dist/components/sheet/config.d.ts +42 -0
  170. package/dist/components/sheet/constants.d.ts +136 -0
  171. package/dist/components/sheet/features/content.d.ts +6 -0
  172. package/dist/components/sheet/features/gestures.d.ts +6 -0
  173. package/{src/components/sheet/features/index.ts → dist/components/sheet/features/index.d.ts} +1 -2
  174. package/dist/components/sheet/features/position.d.ts +7 -0
  175. package/dist/components/sheet/features/state.d.ts +6 -0
  176. package/dist/components/sheet/features/title.d.ts +6 -0
  177. package/dist/components/sheet/index.d.ts +3 -0
  178. package/dist/components/sheet/sheet.d.ts +8 -0
  179. package/dist/components/sheet/types.d.ts +250 -0
  180. package/dist/components/slider/api.d.ts +57 -0
  181. package/dist/components/slider/config.d.ts +75 -0
  182. package/dist/components/slider/constants.d.ts +138 -0
  183. package/dist/components/slider/features/controller.d.ts +9 -0
  184. package/dist/components/slider/features/handlers.d.ts +25 -0
  185. package/dist/components/slider/features/index.d.ts +3 -0
  186. package/dist/components/slider/features/range.d.ts +8 -0
  187. package/dist/components/slider/features/states.d.ts +9 -0
  188. package/dist/components/slider/index.d.ts +3 -0
  189. package/dist/components/slider/schema.d.ts +108 -0
  190. package/dist/components/slider/slider.d.ts +18 -0
  191. package/dist/components/slider/types.d.ts +170 -0
  192. package/dist/components/snackbar/api.d.ts +7 -0
  193. package/dist/components/snackbar/config.d.ts +55 -0
  194. package/dist/components/snackbar/constants.d.ts +88 -0
  195. package/dist/components/snackbar/features.d.ts +13 -0
  196. package/dist/components/snackbar/index.d.ts +3 -0
  197. package/dist/components/snackbar/position.d.ts +15 -0
  198. package/dist/components/snackbar/queue.d.ts +7 -0
  199. package/dist/components/snackbar/snackbar.d.ts +8 -0
  200. package/dist/components/snackbar/types.d.ts +172 -0
  201. package/dist/components/switch/api.d.ts +7 -0
  202. package/dist/components/switch/config.d.ts +34 -0
  203. package/dist/components/switch/constants.d.ts +88 -0
  204. package/dist/components/switch/features.d.ts +59 -0
  205. package/dist/components/switch/index.d.ts +4 -0
  206. package/dist/components/switch/switch.d.ts +8 -0
  207. package/dist/components/switch/types.d.ts +131 -0
  208. package/dist/components/tabs/api.d.ts +52 -0
  209. package/dist/components/tabs/config.d.ts +39 -0
  210. package/dist/components/tabs/constants.d.ts +142 -0
  211. package/dist/components/tabs/features.d.ts +133 -0
  212. package/dist/components/tabs/index.d.ts +11 -0
  213. package/dist/components/tabs/indicator.d.ts +49 -0
  214. package/dist/components/tabs/responsive.d.ts +38 -0
  215. package/dist/components/tabs/scroll-indicators.d.ts +18 -0
  216. package/dist/components/tabs/state.d.ts +53 -0
  217. package/dist/components/tabs/tab-api.d.ts +43 -0
  218. package/dist/components/tabs/tab.d.ts +7 -0
  219. package/dist/components/tabs/tabs.d.ts +27 -0
  220. package/dist/components/tabs/types.d.ts +390 -0
  221. package/dist/components/tabs/utils.d.ts +17 -0
  222. package/dist/components/textfield/api.d.ts +8 -0
  223. package/dist/components/textfield/config.d.ts +34 -0
  224. package/dist/components/textfield/constants.d.ts +148 -0
  225. package/{src/components/textfield/features/index.ts → dist/components/textfield/features/index.d.ts} +1 -6
  226. package/dist/components/textfield/features/leading-icon.d.ts +55 -0
  227. package/dist/components/textfield/features/placement.d.ts +28 -0
  228. package/dist/components/textfield/features/prefix-text.d.ts +54 -0
  229. package/dist/components/textfield/features/suffix-text.d.ts +54 -0
  230. package/dist/components/textfield/features/supporting-text.d.ts +59 -0
  231. package/dist/components/textfield/features/trailing-icon.d.ts +55 -0
  232. package/dist/components/textfield/index.d.ts +3 -0
  233. package/dist/components/textfield/textfield.d.ts +36 -0
  234. package/dist/components/textfield/types.d.ts +217 -0
  235. package/dist/components/timepicker/api.d.ts +24 -0
  236. package/dist/components/timepicker/clockdial.d.ts +34 -0
  237. package/dist/components/timepicker/config.d.ts +75 -0
  238. package/dist/components/timepicker/constants.d.ts +266 -0
  239. package/dist/components/timepicker/index.d.ts +4 -0
  240. package/dist/components/timepicker/render.d.ts +9 -0
  241. package/dist/components/timepicker/timepicker.d.ts +8 -0
  242. package/dist/components/timepicker/types.d.ts +284 -0
  243. package/dist/components/timepicker/utils.d.ts +74 -0
  244. package/dist/components/tooltip/api.d.ts +18 -0
  245. package/dist/components/tooltip/config.d.ts +38 -0
  246. package/dist/components/tooltip/constants.d.ts +108 -0
  247. package/dist/components/tooltip/index.d.ts +3 -0
  248. package/dist/components/tooltip/tooltip.d.ts +8 -0
  249. package/dist/components/tooltip/types.d.ts +188 -0
  250. package/dist/components/top-app-bar/config.d.ts +16 -0
  251. package/dist/components/top-app-bar/constants.d.ts +74 -0
  252. package/{src/components/top-app-bar/index.ts → dist/components/top-app-bar/index.d.ts} +2 -4
  253. package/dist/components/top-app-bar/top-app-bar.d.ts +68 -0
  254. package/dist/components/top-app-bar/types.d.ts +118 -0
  255. package/dist/constants.d.ts +30 -0
  256. package/dist/core/collection/adapters/base.d.ts +47 -0
  257. package/dist/core/collection/adapters/route.d.ts +149 -0
  258. package/dist/core/collection/collection.d.ts +131 -0
  259. package/dist/core/collection/index.d.ts +10 -0
  260. package/dist/core/collection/list-manager/config.d.ts +29 -0
  261. package/dist/core/collection/list-manager/dom-elements.d.ts +30 -0
  262. package/dist/core/collection/list-manager/index.d.ts +61 -0
  263. package/dist/core/collection/list-manager/item-measurement.d.ts +91 -0
  264. package/dist/core/collection/list-manager/renderer.d.ts +31 -0
  265. package/dist/core/collection/list-manager/scroll-tracker.d.ts +20 -0
  266. package/dist/core/collection/list-manager/state.d.ts +60 -0
  267. package/dist/core/collection/list-manager/types.d.ts +361 -0
  268. package/dist/core/collection/list-manager/utils/recycling.d.ts +34 -0
  269. package/dist/core/collection/list-manager/utils/visibility.d.ts +45 -0
  270. package/dist/core/compose/base.d.ts +31 -0
  271. package/dist/core/compose/component.d.ts +61 -0
  272. package/dist/core/compose/features/badge.d.ts +43 -0
  273. package/dist/core/compose/features/checkable.d.ts +59 -0
  274. package/dist/core/compose/features/constants.d.ts +45 -0
  275. package/dist/core/compose/features/debounce.d.ts +84 -0
  276. package/dist/core/compose/features/disabled.d.ts +47 -0
  277. package/dist/core/compose/features/events.d.ts +37 -0
  278. package/dist/core/compose/features/gestures/longpress.d.ts +85 -0
  279. package/dist/core/compose/features/gestures/pan.d.ts +108 -0
  280. package/dist/core/compose/features/gestures/pinch.d.ts +111 -0
  281. package/dist/core/compose/features/gestures/rotate.d.ts +111 -0
  282. package/dist/core/compose/features/gestures/swipe.d.ts +149 -0
  283. package/dist/core/compose/features/gestures/tap.d.ts +79 -0
  284. package/dist/core/compose/features/gestures.d.ts +86 -0
  285. package/dist/core/compose/features/icon.d.ts +71 -0
  286. package/{src/core/compose/features/index.ts → dist/core/compose/features/index.d.ts} +7 -8
  287. package/dist/core/compose/features/input.d.ts +71 -0
  288. package/dist/core/compose/features/lifecycle.d.ts +61 -0
  289. package/dist/core/compose/features/position.d.ts +51 -0
  290. package/dist/core/compose/features/ripple.d.ts +61 -0
  291. package/dist/core/compose/features/size.d.ts +17 -0
  292. package/dist/core/compose/features/style.d.ts +16 -0
  293. package/dist/core/compose/features/text.d.ts +63 -0
  294. package/dist/core/compose/features/textinput.d.ts +93 -0
  295. package/dist/core/compose/features/textlabel.d.ts +57 -0
  296. package/dist/core/compose/features/throttle.d.ts +75 -0
  297. package/dist/core/compose/features/track.d.ts +42 -0
  298. package/dist/core/compose/features/variant.d.ts +17 -0
  299. package/dist/core/compose/features/withEvents.d.ts +45 -0
  300. package/dist/core/compose/index.d.ts +17 -0
  301. package/{src/core/compose/pipe.ts → dist/core/compose/pipe.d.ts} +4 -20
  302. package/dist/core/compose/utils/type-guards.d.ts +27 -0
  303. package/dist/core/composition/features/dom.d.ts +19 -0
  304. package/dist/core/composition/features/icon.d.ts +45 -0
  305. package/{src/core/composition/features/index.ts → dist/core/composition/features/index.d.ts} +1 -6
  306. package/dist/core/composition/features/label.d.ts +49 -0
  307. package/{src/core/composition/features/layout.ts → dist/core/composition/features/layout.d.ts} +8 -24
  308. package/{src/core/composition/index.ts → dist/core/composition/index.d.ts} +4 -14
  309. package/{src/core/config/component-config.ts → dist/core/config/component.d.ts} +34 -82
  310. package/dist/core/config.d.ts +130 -0
  311. package/{src/core/dom/attributes.ts → dist/core/dom/attributes.d.ts} +2 -13
  312. package/dist/core/dom/classes.d.ts +42 -0
  313. package/dist/core/dom/create.d.ts +124 -0
  314. package/dist/core/dom/events.d.ts +69 -0
  315. package/{src/core/dom/index.ts → dist/core/dom/index.d.ts} +1 -5
  316. package/dist/core/dom/utils.d.ts +42 -0
  317. package/dist/core/gestures/index.d.ts +12 -0
  318. package/dist/core/gestures/longpress.d.ts +23 -0
  319. package/dist/core/gestures/manager.d.ts +14 -0
  320. package/dist/core/gestures/pan.d.ts +12 -0
  321. package/dist/core/gestures/pinch.d.ts +14 -0
  322. package/dist/core/gestures/rotate.d.ts +14 -0
  323. package/dist/core/gestures/swipe.d.ts +20 -0
  324. package/dist/core/gestures/tap.d.ts +12 -0
  325. package/dist/core/gestures/types.d.ts +320 -0
  326. package/dist/core/gestures/utils.d.ts +57 -0
  327. package/dist/core/index.d.ts +29 -0
  328. package/dist/core/layout/array.d.ts +15 -0
  329. package/dist/core/layout/config.d.ts +32 -0
  330. package/dist/core/layout/create.d.ts +14 -0
  331. package/dist/core/layout/index.d.ts +13 -0
  332. package/dist/core/layout/jsx.d.ts +13 -0
  333. package/dist/core/layout/object.d.ts +14 -0
  334. package/dist/core/layout/processor.d.ts +28 -0
  335. package/dist/core/layout/result.d.ts +12 -0
  336. package/dist/core/layout/template.d.ts +12 -0
  337. package/dist/core/layout/types.d.ts +137 -0
  338. package/dist/core/layout/utils.d.ts +38 -0
  339. package/dist/core/state/disabled.d.ts +32 -0
  340. package/dist/core/state/emitter.d.ts +40 -0
  341. package/dist/core/state/events.d.ts +36 -0
  342. package/{src/core/state/index.ts → dist/core/state/index.d.ts} +1 -7
  343. package/dist/core/state/lifecycle.d.ts +57 -0
  344. package/dist/core/state/store.d.ts +82 -0
  345. package/dist/core/utils/background.d.ts +40 -0
  346. package/dist/core/utils/index.d.ts +23 -0
  347. package/dist/core/utils/mobile.d.ts +54 -0
  348. package/dist/core/utils/object.d.ts +13 -0
  349. package/dist/core/utils/performance.d.ts +79 -0
  350. package/dist/core/utils/validate.d.ts +73 -0
  351. package/dist/index.cjs +64 -0
  352. package/dist/index.cjs.map +285 -0
  353. package/dist/index.d.ts +15 -0
  354. package/dist/index.js +53 -14854
  355. package/dist/index.js.map +285 -0
  356. package/dist/package.json +39 -0
  357. package/dist/styles.css +7 -0
  358. package/package.json +24 -5
  359. package/.env +0 -15
  360. package/.typedocignore +0 -11
  361. package/CONTRIBUTING.md +0 -218
  362. package/DOCS.md +0 -153
  363. package/TESTING.md +0 -214
  364. package/git-user-stats.js +0 -545
  365. package/index.ts +0 -10
  366. package/src/components/badge/api.ts +0 -313
  367. package/src/components/badge/config.ts +0 -153
  368. package/src/components/badge/features.ts +0 -194
  369. package/src/components/badge/index.ts +0 -90
  370. package/src/components/badge/types.ts +0 -279
  371. package/src/components/bottom-app-bar/bottom-app-bar.ts +0 -154
  372. package/src/components/bottom-app-bar/config.ts +0 -29
  373. package/src/components/bottom-app-bar/types.ts +0 -114
  374. package/src/components/button/api.ts +0 -172
  375. package/src/components/button/button.ts +0 -112
  376. package/src/components/button/config.ts +0 -96
  377. package/src/components/button/index.ts +0 -37
  378. package/src/components/button/types.ts +0 -290
  379. package/src/components/card/api.ts +0 -222
  380. package/src/components/card/config.ts +0 -304
  381. package/src/components/card/content.ts +0 -343
  382. package/src/components/card/features.ts +0 -407
  383. package/src/components/card/types.ts +0 -497
  384. package/src/components/carousel/api.ts +0 -147
  385. package/src/components/carousel/carousel.ts +0 -242
  386. package/src/components/carousel/config.ts +0 -91
  387. package/src/components/carousel/constants.ts +0 -181
  388. package/src/components/carousel/features/drag.ts +0 -388
  389. package/src/components/carousel/features/slides.ts +0 -682
  390. package/src/components/carousel/types.ts +0 -327
  391. package/src/components/checkbox/api.ts +0 -82
  392. package/src/components/checkbox/checkbox.ts +0 -142
  393. package/src/components/checkbox/config.ts +0 -89
  394. package/src/components/checkbox/types.ts +0 -342
  395. package/src/components/chips/api.ts +0 -194
  396. package/src/components/chips/chip/api.ts +0 -233
  397. package/src/components/chips/chip/chip.ts +0 -131
  398. package/src/components/chips/chip/config.ts +0 -91
  399. package/src/components/chips/chip/index.ts +0 -3
  400. package/src/components/chips/chips.md +0 -481
  401. package/src/components/chips/chips.ts +0 -75
  402. package/src/components/chips/config.ts +0 -109
  403. package/src/components/chips/constants.ts +0 -61
  404. package/src/components/chips/features/chip-items.ts +0 -33
  405. package/src/components/chips/features/container.ts +0 -77
  406. package/src/components/chips/features/controller.ts +0 -448
  407. package/src/components/chips/features/label.ts +0 -108
  408. package/src/components/chips/index.ts +0 -11
  409. package/src/components/chips/schema.ts +0 -61
  410. package/src/components/chips/types.ts +0 -469
  411. package/src/components/datepicker/api.ts +0 -265
  412. package/src/components/datepicker/config.ts +0 -141
  413. package/src/components/datepicker/datepicker.ts +0 -341
  414. package/src/components/datepicker/index.ts +0 -12
  415. package/src/components/datepicker/render.ts +0 -450
  416. package/src/components/datepicker/types.ts +0 -397
  417. package/src/components/datepicker/utils.ts +0 -289
  418. package/src/components/dialog/api.ts +0 -317
  419. package/src/components/dialog/config.ts +0 -116
  420. package/src/components/dialog/features.ts +0 -907
  421. package/src/components/dialog/index.ts +0 -141
  422. package/src/components/dialog/types.ts +0 -553
  423. package/src/components/divider/config.ts +0 -165
  424. package/src/components/divider/features.ts +0 -233
  425. package/src/components/divider/types.ts +0 -132
  426. package/src/components/extended-fab/api.ts +0 -193
  427. package/src/components/extended-fab/config.ts +0 -140
  428. package/src/components/extended-fab/extended-fab.ts +0 -153
  429. package/src/components/extended-fab/types.ts +0 -749
  430. package/src/components/fab/api.ts +0 -137
  431. package/src/components/fab/config.ts +0 -121
  432. package/src/components/fab/types.ts +0 -615
  433. package/src/components/list/api.ts +0 -82
  434. package/src/components/list/config.ts +0 -63
  435. package/src/components/list/features.ts +0 -229
  436. package/src/components/list/index.ts +0 -67
  437. package/src/components/list/list-item.ts +0 -163
  438. package/src/components/list/list.ts +0 -108
  439. package/src/components/list/types.ts +0 -396
  440. package/src/components/list/utils.ts +0 -98
  441. package/src/components/menu/api.ts +0 -193
  442. package/src/components/menu/config.ts +0 -125
  443. package/src/components/menu/features/anchor.ts +0 -243
  444. package/src/components/menu/features/controller.ts +0 -1167
  445. package/src/components/menu/features/index.ts +0 -5
  446. package/src/components/menu/features/position.ts +0 -353
  447. package/src/components/menu/menu.ts +0 -119
  448. package/src/components/menu/types.ts +0 -379
  449. package/src/components/navigation/api.ts +0 -142
  450. package/src/components/navigation/config.ts +0 -73
  451. package/src/components/navigation/features/controller.ts +0 -273
  452. package/src/components/navigation/features/items.ts +0 -353
  453. package/src/components/navigation/index.ts +0 -11
  454. package/src/components/navigation/nav-item.ts +0 -196
  455. package/src/components/navigation/navigation.ts +0 -115
  456. package/src/components/navigation/system/core.ts +0 -302
  457. package/src/components/navigation/system/events.ts +0 -240
  458. package/src/components/navigation/system/index.ts +0 -184
  459. package/src/components/navigation/system/mobile.ts +0 -278
  460. package/src/components/navigation/system/state.ts +0 -77
  461. package/src/components/navigation/system/types.ts +0 -364
  462. package/src/components/navigation/types.ts +0 -292
  463. package/src/components/progress/api.ts +0 -178
  464. package/src/components/progress/config.ts +0 -122
  465. package/src/components/progress/index.ts +0 -4
  466. package/src/components/progress/progress.ts +0 -159
  467. package/src/components/progress/types.ts +0 -255
  468. package/src/components/radios/api.ts +0 -125
  469. package/src/components/radios/config.ts +0 -59
  470. package/src/components/radios/constants.ts +0 -19
  471. package/src/components/radios/index.ts +0 -3
  472. package/src/components/radios/radio.ts +0 -292
  473. package/src/components/radios/radios.ts +0 -43
  474. package/src/components/radios/types.ts +0 -219
  475. package/src/components/search/api.ts +0 -203
  476. package/src/components/search/config.ts +0 -86
  477. package/src/components/search/features/search.ts +0 -717
  478. package/src/components/search/features/states.ts +0 -169
  479. package/src/components/search/features/structure.ts +0 -197
  480. package/src/components/search/index.ts +0 -7
  481. package/src/components/search/search.ts +0 -52
  482. package/src/components/search/types.ts +0 -175
  483. package/src/components/segmented-button/config.ts +0 -119
  484. package/src/components/segmented-button/index.ts +0 -4
  485. package/src/components/segmented-button/segment.ts +0 -108
  486. package/src/components/segmented-button/segmented-button.ts +0 -361
  487. package/src/components/segmented-button/types.ts +0 -306
  488. package/src/components/select/api.ts +0 -78
  489. package/src/components/select/config.ts +0 -76
  490. package/src/components/select/features.ts +0 -317
  491. package/src/components/select/select.ts +0 -73
  492. package/src/components/select/types.ts +0 -355
  493. package/src/components/sheet/api.ts +0 -96
  494. package/src/components/sheet/config.ts +0 -65
  495. package/src/components/sheet/features/content.ts +0 -51
  496. package/src/components/sheet/features/gestures.ts +0 -177
  497. package/src/components/sheet/features/position.ts +0 -41
  498. package/src/components/sheet/features/state.ts +0 -116
  499. package/src/components/sheet/features/title.ts +0 -86
  500. package/src/components/sheet/index.ts +0 -12
  501. package/src/components/sheet/sheet.ts +0 -56
  502. package/src/components/sheet/types.ts +0 -294
  503. package/src/components/slider/accessibility.md +0 -59
  504. package/src/components/slider/api.ts +0 -192
  505. package/src/components/slider/config.ts +0 -118
  506. package/src/components/slider/features/controller.ts +0 -737
  507. package/src/components/slider/features/handlers.ts +0 -497
  508. package/src/components/slider/features/index.ts +0 -5
  509. package/src/components/slider/features/range.ts +0 -104
  510. package/src/components/slider/features/states.ts +0 -195
  511. package/src/components/slider/index.ts +0 -17
  512. package/src/components/slider/schema.ts +0 -141
  513. package/src/components/slider/slider.ts +0 -76
  514. package/src/components/slider/types.ts +0 -223
  515. package/src/components/snackbar/api.ts +0 -162
  516. package/src/components/snackbar/config.ts +0 -61
  517. package/src/components/snackbar/features.ts +0 -76
  518. package/src/components/snackbar/index.ts +0 -9
  519. package/src/components/snackbar/position.ts +0 -79
  520. package/src/components/snackbar/queue.ts +0 -76
  521. package/src/components/snackbar/snackbar.ts +0 -60
  522. package/src/components/snackbar/types.ts +0 -159
  523. package/src/components/switch/api.ts +0 -93
  524. package/src/components/switch/config.ts +0 -56
  525. package/src/components/switch/features.ts +0 -198
  526. package/src/components/switch/index.ts +0 -8
  527. package/src/components/switch/switch.ts +0 -52
  528. package/src/components/switch/types.ts +0 -168
  529. package/src/components/tabs/api.ts +0 -221
  530. package/src/components/tabs/config.ts +0 -73
  531. package/src/components/tabs/features.ts +0 -403
  532. package/src/components/tabs/index.ts +0 -46
  533. package/src/components/tabs/indicator.ts +0 -285
  534. package/src/components/tabs/responsive.ts +0 -144
  535. package/src/components/tabs/scroll-indicators.ts +0 -149
  536. package/src/components/tabs/state.ts +0 -186
  537. package/src/components/tabs/tab-api.ts +0 -266
  538. package/src/components/tabs/tab.ts +0 -267
  539. package/src/components/tabs/tabs.ts +0 -71
  540. package/src/components/tabs/types.ts +0 -461
  541. package/src/components/tabs/utils.ts +0 -107
  542. package/src/components/textfield/api.ts +0 -197
  543. package/src/components/textfield/config.ts +0 -52
  544. package/src/components/textfield/features/leading-icon.ts +0 -127
  545. package/src/components/textfield/features/placement.ts +0 -149
  546. package/src/components/textfield/features/prefix-text.ts +0 -107
  547. package/src/components/textfield/features/suffix-text.ts +0 -100
  548. package/src/components/textfield/features/supporting-text.ts +0 -113
  549. package/src/components/textfield/features/trailing-icon.ts +0 -108
  550. package/src/components/textfield/index.ts +0 -9
  551. package/src/components/textfield/textfield.ts +0 -92
  552. package/src/components/textfield/types.ts +0 -265
  553. package/src/components/timepicker/README.md +0 -277
  554. package/src/components/timepicker/api.ts +0 -632
  555. package/src/components/timepicker/clockdial.ts +0 -479
  556. package/src/components/timepicker/config.ts +0 -228
  557. package/src/components/timepicker/index.ts +0 -3
  558. package/src/components/timepicker/render.ts +0 -613
  559. package/src/components/timepicker/timepicker.ts +0 -117
  560. package/src/components/timepicker/types.ts +0 -336
  561. package/src/components/timepicker/utils.ts +0 -241
  562. package/src/components/tooltip/api.ts +0 -415
  563. package/src/components/tooltip/config.ts +0 -80
  564. package/src/components/tooltip/index.ts +0 -12
  565. package/src/components/tooltip/tooltip.ts +0 -60
  566. package/src/components/tooltip/types.ts +0 -223
  567. package/src/components/top-app-bar/config.ts +0 -83
  568. package/src/components/top-app-bar/top-app-bar.ts +0 -316
  569. package/src/components/top-app-bar/types.ts +0 -140
  570. package/src/core/build/constants.ts +0 -48
  571. package/src/core/build/icon.ts +0 -137
  572. package/src/core/build/ripple.ts +0 -193
  573. package/src/core/build/text.ts +0 -91
  574. package/src/core/collection/adapters/base.ts +0 -62
  575. package/src/core/collection/adapters/route.ts +0 -201
  576. package/src/core/collection/collection.ts +0 -300
  577. package/src/core/collection/index.ts +0 -57
  578. package/src/core/collection/list-manager.ts +0 -333
  579. package/src/core/compose/base.ts +0 -43
  580. package/src/core/compose/component.ts +0 -255
  581. package/src/core/compose/features/badge.ts +0 -79
  582. package/src/core/compose/features/checkable.ts +0 -155
  583. package/src/core/compose/features/disabled.ts +0 -116
  584. package/src/core/compose/features/events.ts +0 -65
  585. package/src/core/compose/features/icon.ts +0 -71
  586. package/src/core/compose/features/input.ts +0 -174
  587. package/src/core/compose/features/lifecycle.ts +0 -139
  588. package/src/core/compose/features/position.ts +0 -94
  589. package/src/core/compose/features/ripple.ts +0 -58
  590. package/src/core/compose/features/size.ts +0 -29
  591. package/src/core/compose/features/style.ts +0 -31
  592. package/src/core/compose/features/text.ts +0 -44
  593. package/src/core/compose/features/textinput.ts +0 -238
  594. package/src/core/compose/features/textlabel.ts +0 -113
  595. package/src/core/compose/features/track.ts +0 -84
  596. package/src/core/compose/features/variant.ts +0 -29
  597. package/src/core/compose/features/withEvents.ts +0 -137
  598. package/src/core/compose/index.ts +0 -54
  599. package/src/core/composition/features/dom.ts +0 -45
  600. package/src/core/composition/features/icon.ts +0 -131
  601. package/src/core/composition/features/label.ts +0 -155
  602. package/src/core/config.ts +0 -211
  603. package/src/core/dom/classes.ts +0 -132
  604. package/src/core/dom/create.ts +0 -273
  605. package/src/core/dom/events.ts +0 -209
  606. package/src/core/dom/utils.ts +0 -97
  607. package/src/core/index.ts +0 -111
  608. package/src/core/layout/README.md +0 -715
  609. package/src/core/layout/array.ts +0 -180
  610. package/src/core/layout/config.ts +0 -193
  611. package/src/core/layout/create.ts +0 -54
  612. package/src/core/layout/index.ts +0 -36
  613. package/src/core/layout/object.ts +0 -123
  614. package/src/core/layout/processor.ts +0 -106
  615. package/src/core/layout/result.ts +0 -84
  616. package/src/core/layout/types.ts +0 -180
  617. package/src/core/layout/utils.ts +0 -144
  618. package/src/core/state/disabled.ts +0 -81
  619. package/src/core/state/emitter.ts +0 -94
  620. package/src/core/state/events.ts +0 -88
  621. package/src/core/state/lifecycle.ts +0 -131
  622. package/src/core/state/store.ts +0 -197
  623. package/src/core/utils/index.ts +0 -45
  624. package/src/core/utils/mobile.ts +0 -98
  625. package/src/core/utils/object.ts +0 -41
  626. package/src/core/utils/validate.ts +0 -234
  627. package/src/index.ts +0 -134
  628. package/src/styles/abstract/_base.scss +0 -2
  629. package/src/styles/abstract/_config.scss +0 -28
  630. package/src/styles/abstract/_functions.scss +0 -124
  631. package/src/styles/abstract/_mixins.scss +0 -352
  632. package/src/styles/abstract/_theme.scss +0 -269
  633. package/src/styles/abstract/_variables.scss +0 -305
  634. package/src/styles/base/_reset.scss +0 -86
  635. package/src/styles/base/_typography.scss +0 -155
  636. package/src/styles/components/_badge.scss +0 -182
  637. package/src/styles/components/_bottom-app-bar.scss +0 -103
  638. package/src/styles/components/_button.scss +0 -224
  639. package/src/styles/components/_card.scss +0 -401
  640. package/src/styles/components/_carousel.scss +0 -645
  641. package/src/styles/components/_checkbox.scss +0 -231
  642. package/src/styles/components/_chips.scss +0 -638
  643. package/src/styles/components/_datepicker.scss +0 -358
  644. package/src/styles/components/_dialog.scss +0 -259
  645. package/src/styles/components/_divider.scss +0 -57
  646. package/src/styles/components/_extended-fab.scss +0 -267
  647. package/src/styles/components/_fab.scss +0 -225
  648. package/src/styles/components/_list.scss +0 -248
  649. package/src/styles/components/_menu.scss +0 -248
  650. package/src/styles/components/_navigation-mobile.scss +0 -244
  651. package/src/styles/components/_navigation-system.scss +0 -151
  652. package/src/styles/components/_navigation.scss +0 -407
  653. package/src/styles/components/_progress.scss +0 -151
  654. package/src/styles/components/_radios.scss +0 -187
  655. package/src/styles/components/_search.scss +0 -306
  656. package/src/styles/components/_segmented-button.scss +0 -227
  657. package/src/styles/components/_select.scss +0 -265
  658. package/src/styles/components/_sheet.scss +0 -236
  659. package/src/styles/components/_slider.scss +0 -489
  660. package/src/styles/components/_snackbar.scss +0 -211
  661. package/src/styles/components/_switch.scss +0 -298
  662. package/src/styles/components/_tabs.scss +0 -416
  663. package/src/styles/components/_textfield.scss +0 -773
  664. package/src/styles/components/_timepicker.scss +0 -451
  665. package/src/styles/components/_tooltip.scss +0 -241
  666. package/src/styles/components/_top-app-bar.scss +0 -225
  667. package/src/styles/main.scss +0 -175
  668. package/src/styles/themes/_autumn.scss +0 -105
  669. package/src/styles/themes/_base-theme.scss +0 -85
  670. package/src/styles/themes/_baseline.scss +0 -173
  671. package/src/styles/themes/_bluekhaki.scss +0 -125
  672. package/src/styles/themes/_brownbeige.scss +0 -125
  673. package/src/styles/themes/_browngreen.scss +0 -125
  674. package/src/styles/themes/_forest.scss +0 -77
  675. package/src/styles/themes/_greenbeige.scss +0 -125
  676. package/src/styles/themes/_index.scss +0 -6
  677. package/src/styles/themes/_material.scss +0 -125
  678. package/src/styles/themes/_ocean.scss +0 -77
  679. package/src/styles/themes/_sageivory.scss +0 -125
  680. package/src/styles/themes/_spring.scss +0 -77
  681. package/src/styles/themes/_summer.scss +0 -87
  682. package/src/styles/themes/_sunset.scss +0 -60
  683. package/src/styles/themes/_tealcaramel.scss +0 -125
  684. package/src/styles/themes/_winter.scss +0 -77
  685. package/src/styles/utilities/_colors.scss +0 -154
  686. package/src/styles/utilities/_flexbox.scss +0 -194
  687. package/src/styles/utilities/_layout.scss +0 -665
  688. package/src/styles/utilities/_ripple.scss +0 -79
  689. package/src/styles/utilities/_spacing.scss +0 -139
  690. package/src/styles/utilities/_typography.scss +0 -178
  691. package/src/styles/utilities/_visibility.scss +0 -142
@@ -1,737 +0,0 @@
1
- // src/components/slider/features/controller.ts
2
- import { SLIDER_EVENTS } from '../types';
3
- import { SliderConfig } from '../types';
4
- import { createHandlers } from './handlers';
5
-
6
- /**
7
- * Add controller functionality to slider component
8
- * Manages state, events, user interactions, and UI rendering
9
- *
10
- * @param config Slider configuration
11
- * @returns Component enhancer with slider controller functionality
12
- */
13
- export const withController = (config: SliderConfig) => component => {
14
- // Ensure component has required properties
15
- if (!component.element || !component.components) {
16
- console.warn('Cannot initialize slider controller: missing element or components');
17
- return component;
18
- }
19
-
20
- // Initialize state
21
- const state = {
22
- value: config.value !== undefined ? config.value : 0,
23
- secondValue: config.secondValue !== undefined ? config.secondValue : null,
24
- min: config.min !== undefined ? config.min : 0,
25
- max: config.max !== undefined ? config.max : 100,
26
- step: config.step !== undefined ? config.step : 1,
27
- dragging: false,
28
- activeBubble: null,
29
- activeHandle: null,
30
- ticks: [],
31
- valueHideTimer: null,
32
- component
33
- };
34
-
35
- // Create event helpers
36
- const eventHelpers = {
37
- triggerEvent(eventName, originalEvent = null) {
38
- const eventData = {
39
- slider: state.component,
40
- value: state.value,
41
- secondValue: state.secondValue,
42
- originalEvent,
43
- preventDefault: () => { eventData.defaultPrevented = true; },
44
- defaultPrevented: false
45
- };
46
-
47
- state.component.emit(eventName, eventData);
48
- return eventData;
49
- }
50
- };
51
-
52
- //=============================================================================
53
- // UI RENDERING FUNCTIONS
54
- //=============================================================================
55
-
56
- /**
57
- * Gets required components from state, safely handling missing components
58
- */
59
- const getComponents = () => {
60
- // Return empty object if component or components are missing
61
- if (!state.component?.components) {
62
- return {};
63
- }
64
-
65
- // Get flattened components
66
- return state.component.components;
67
- };
68
-
69
- /**
70
- * Calculates percentage position for a value
71
- * Maps from value space (min-max) to percentage space (0-100)
72
- */
73
- const getPercentage = (value) => {
74
- const range = state.max - state.min;
75
- return range === 0 ? 0 : ((value - state.min) / range) * 100;
76
- };
77
-
78
- /**
79
- * Gets track dimensions and constraints for positioning calculations
80
- * Handles edge constraints and padding for proper handle positioning
81
- */
82
- const getTrackDimensions = () => {
83
- const components = getComponents();
84
- const { handle, container, track } = components;
85
-
86
- if (!handle || !container || !track) return null;
87
-
88
- try {
89
- const handleRect = handle.getBoundingClientRect();
90
- const trackRect = container.getBoundingClientRect();
91
- const handleSize = handleRect.width || 20;
92
- const trackSize = trackRect.width;
93
-
94
- const edgeConstraint = (handleSize / 2) / trackSize * 100;
95
- const paddingPixels = state.activeHandle ? 6 : 8;
96
- const paddingPercent = (paddingPixels / trackSize) * 100;
97
-
98
- return { handleSize, trackSize, edgeConstraint, paddingPercent };
99
- } catch (error) {
100
- console.warn('Error calculating track dimensions:', error);
101
- return {
102
- handleSize: 20,
103
- trackSize: 200,
104
- edgeConstraint: 5,
105
- paddingPercent: 4
106
- };
107
- }
108
- };
109
-
110
- /**
111
- * Maps value percentage to visual position with edge constraints
112
- * Ensures handles stay within the visible track area
113
- */
114
- const mapValueToVisualPercent = (valuePercent, edgeConstraint) => {
115
- const minEdge = edgeConstraint;
116
- const maxEdge = 100 - edgeConstraint;
117
- const visualRange = maxEdge - minEdge;
118
-
119
- if (valuePercent <= 0) return minEdge;
120
- if (valuePercent >= 100) return maxEdge;
121
- return minEdge + (valuePercent / 100) * visualRange;
122
- };
123
-
124
- /**
125
- * Gets slider value from a position on the track
126
- * Maps from pixel position to slider value
127
- */
128
- const getValueFromPosition = (position) => {
129
- const components = getComponents();
130
- const { handle, container } = components;
131
-
132
- if (!handle || !container) return state.min;
133
-
134
- try {
135
- const containerRect = container.getBoundingClientRect();
136
- const range = state.max - state.min;
137
- const handleWidth = handle.getBoundingClientRect().width || 20;
138
-
139
- const leftEdge = containerRect.left + (handleWidth / 2);
140
- const rightEdge = containerRect.right - (handleWidth / 2);
141
- const effectiveWidth = rightEdge - leftEdge;
142
-
143
- const adjustedPosition = Math.max(leftEdge, Math.min(rightEdge, position));
144
- const percentageFromLeft = (adjustedPosition - leftEdge) / effectiveWidth;
145
-
146
- return state.min + percentageFromLeft * range;
147
- } catch (error) {
148
- console.warn('Error calculating value from position:', error);
149
- return state.min;
150
- }
151
- };
152
-
153
- /**
154
- * Rounds a value to the nearest step
155
- * Used for discrete sliders
156
- */
157
- const roundToStep = (value) => {
158
- const step = state.step;
159
- if (!step || step <= 0) return value;
160
-
161
- const steps = Math.round((value - state.min) / step);
162
- return state.min + (steps * step);
163
- };
164
-
165
- /**
166
- * Clamps a value between min and max
167
- * Ensures values stay within valid range
168
- */
169
- const clamp = (value, min, max) => Math.min(Math.max(value, min), max);
170
-
171
- /**
172
- * Updates handle and bubble positions
173
- * Positions elements according to current state values
174
- */
175
- const updateHandlePositions = () => {
176
- const components = getComponents();
177
- const { handle, container, valueBubble, secondHandle, secondValueBubble } = components;
178
-
179
- if (!handle || !container) return;
180
-
181
- const dims = getTrackDimensions();
182
- if (!dims) return;
183
-
184
- const { edgeConstraint } = dims;
185
-
186
- // Update main handle position
187
- const percent = getPercentage(state.value);
188
- const adjustedPercent = mapValueToVisualPercent(percent, edgeConstraint);
189
-
190
- handle.style.left = `${adjustedPercent}%`;
191
- handle.style.transform = 'translate(-50%, -50%)';
192
-
193
- if (valueBubble) {
194
- valueBubble.style.left = `${adjustedPercent}%`;
195
- valueBubble.style.transform = 'translateX(-50%)';
196
- }
197
-
198
- // Update second handle if range slider
199
- if (config.range && secondHandle && state.secondValue !== null) {
200
- const secondPercent = getPercentage(state.secondValue);
201
- const adjustedSecondPercent = mapValueToVisualPercent(secondPercent, edgeConstraint);
202
-
203
- secondHandle.style.left = `${adjustedSecondPercent}%`;
204
- secondHandle.style.transform = 'translate(-50%, -50%)';
205
-
206
- if (secondValueBubble) {
207
- secondValueBubble.style.left = `${adjustedSecondPercent}%`;
208
- secondValueBubble.style.transform = 'translateX(-50%)';
209
- }
210
- }
211
-
212
- // Update ARIA attributes
213
- handle.setAttribute('aria-valuenow', String(state.value));
214
- if (config.range && secondHandle && state.secondValue !== null) {
215
- secondHandle.setAttribute('aria-valuenow', String(state.secondValue));
216
- }
217
- };
218
-
219
- /**
220
- * Updates all track segments
221
- * Handles different rendering for single and range sliders
222
- */
223
- const updateTrackSegments = () => {
224
- const components = getComponents();
225
- const { track, container, handle, startTrack, activeTrack, remainingTrack } = components;
226
-
227
- if (!track || !container || !handle) return;
228
-
229
- // Safety check for required elements
230
- if (!activeTrack || !remainingTrack) {
231
- console.warn('Missing track segments, cannot update track display');
232
- return;
233
- }
234
-
235
- const dims = getTrackDimensions();
236
- if (!dims) return;
237
-
238
- const { handleSize, trackSize, paddingPercent } = dims;
239
- const edgeConstraint = (handleSize / 2) / trackSize * 100;
240
-
241
- if (config.range && state.secondValue !== null) {
242
- // Range slider setup
243
- const lowerValue = Math.min(state.value, state.secondValue);
244
- const higherValue = Math.max(state.value, state.secondValue);
245
- const lowerPercent = getPercentage(lowerValue);
246
- const higherPercent = getPercentage(higherValue);
247
-
248
- const adjustedLower = mapValueToVisualPercent(lowerPercent, edgeConstraint);
249
- const adjustedHigher = mapValueToVisualPercent(higherPercent, edgeConstraint);
250
-
251
- // Start track (before first handle)
252
- if (startTrack) {
253
- if (lowerPercent > 1) {
254
- startTrack.style.display = 'block';
255
- startTrack.style.left = '0';
256
- startTrack.style.right = `${100 - (adjustedLower - paddingPercent)}%`;
257
- startTrack.style.width = 'auto';
258
- } else {
259
- startTrack.style.display = 'none';
260
- }
261
- }
262
-
263
- // Active track (between handles)
264
- const valueDiffPercent = Math.abs(higherPercent - lowerPercent);
265
- const hideThreshold = (handleSize / trackSize) * 100;
266
-
267
- if (valueDiffPercent <= hideThreshold) {
268
- activeTrack.style.display = 'none';
269
- } else {
270
- activeTrack.style.display = 'block';
271
- activeTrack.style.left = `${adjustedLower + paddingPercent}%`;
272
- activeTrack.style.right = `${100 - (adjustedHigher - paddingPercent)}%`;
273
- activeTrack.style.width = 'auto';
274
- }
275
-
276
- // Remaining track (after second handle)
277
- remainingTrack.style.display = 'block';
278
- remainingTrack.style.left = `${adjustedHigher + paddingPercent}%`;
279
- remainingTrack.style.right = '0';
280
- remainingTrack.style.width = 'auto';
281
- } else {
282
- // Single handle slider
283
- const valuePercent = getPercentage(state.value);
284
- const adjustedPercent = mapValueToVisualPercent(valuePercent, edgeConstraint);
285
-
286
- // Hide start track for single slider
287
- if (startTrack) {
288
- startTrack.style.display = 'none';
289
- }
290
-
291
- // Active track (filled part)
292
- activeTrack.style.display = 'block';
293
- activeTrack.style.left = '0';
294
- activeTrack.style.right = `${100 - (adjustedPercent - paddingPercent)}%`;
295
- activeTrack.style.width = 'auto';
296
-
297
- // Remaining track (unfilled part)
298
- remainingTrack.style.display = 'block';
299
- remainingTrack.style.left = `${adjustedPercent + paddingPercent}%`;
300
- remainingTrack.style.right = '0';
301
- remainingTrack.style.width = 'auto';
302
- }
303
- };
304
-
305
- /**
306
- * Updates value bubble content
307
- * Applies formatting to displayed values
308
- */
309
- const updateValueBubbles = () => {
310
- const components = getComponents();
311
- const { valueBubble, secondValueBubble } = components;
312
-
313
- if (!valueBubble) return;
314
-
315
- const formatter = config.valueFormatter || (value => value.toString());
316
- valueBubble.textContent = formatter(state.value);
317
-
318
- if (config.range && secondValueBubble && state.secondValue !== null) {
319
- secondValueBubble.textContent = formatter(state.secondValue);
320
- }
321
- };
322
-
323
- /**
324
- * Shows or hides value bubble
325
- * Controls visibility for value indicators
326
- */
327
- const showValueBubble = (bubbleElement, show) => {
328
- if (!bubbleElement || !config.showValue) return;
329
-
330
- const bubbleClass = state.component.getClass('slider-value');
331
- bubbleElement.classList[show ? 'add' : 'remove'](`${bubbleClass}--visible`);
332
- };
333
-
334
- /**
335
- * Generates tick marks
336
- * Creates visual indicators for discrete values
337
- */
338
- const generateTicks = () => {
339
- const components = getComponents();
340
- const { ticksContainer, container } = components;
341
-
342
- if (!ticksContainer || !container) return;
343
-
344
- // Clear existing ticks
345
- while (ticksContainer.firstChild) {
346
- ticksContainer.removeChild(ticksContainer.firstChild);
347
- }
348
-
349
- state.ticks = [];
350
- if (!config.ticks) return;
351
-
352
- const numSteps = Math.floor((state.max - state.min) / state.step);
353
- const tickValues = [];
354
-
355
- // Generate tick values
356
- for (let i = 0; i <= numSteps; i++) {
357
- const value = state.min + (i * state.step);
358
- if (value <= state.max) tickValues.push(value);
359
- }
360
-
361
- // Ensure max value is included
362
- if (tickValues[tickValues.length - 1] !== state.max) {
363
- tickValues.push(state.max);
364
- }
365
-
366
- // CSS classes
367
- const tickClass = state.component.getClass('slider-tick');
368
- const activeClass = `${tickClass}--active`;
369
- const inactiveClass = `${tickClass}--inactive`;
370
- const hiddenClass = `${tickClass}--hidden`;
371
-
372
- // Create tick elements
373
- tickValues.forEach(value => {
374
- const percent = getPercentage(value);
375
- const tick = document.createElement('div');
376
- tick.classList.add(tickClass);
377
- tick.style.left = `${percent}%`;
378
-
379
- // Determine tick active state
380
- const isExactlySelected = (value === state.value ||
381
- (config.range && state.secondValue !== null && value === state.secondValue));
382
-
383
- if (isExactlySelected) {
384
- tick.classList.add(hiddenClass);
385
- } else if (config.range && state.secondValue !== null) {
386
- const lowerValue = Math.min(state.value, state.secondValue);
387
- const higherValue = Math.max(state.value, state.secondValue);
388
-
389
- tick.classList.add(value >= lowerValue && value <= higherValue ? activeClass : inactiveClass);
390
- } else {
391
- tick.classList.add(value <= state.value ? activeClass : inactiveClass);
392
- }
393
-
394
- ticksContainer.appendChild(tick);
395
- state.ticks.push(tick);
396
- });
397
- };
398
-
399
- /**
400
- * Updates active state of tick marks
401
- * Sets visual state based on current values
402
- */
403
- const updateTicks = () => {
404
- if (!state.ticks || state.ticks.length === 0) return;
405
-
406
- const tickClass = state.component.getClass('slider-tick');
407
- const activeClass = `${tickClass}--active`;
408
- const inactiveClass = `${tickClass}--inactive`;
409
- const hiddenClass = `${tickClass}--hidden`;
410
-
411
- state.ticks.forEach((tick, index) => {
412
- // Safety check for null tick
413
- if (!tick) return;
414
-
415
- // Calculate the value for this tick
416
- const tickValue = state.min + (index * state.step);
417
-
418
- // Reset visibility first
419
- tick.classList.remove(hiddenClass);
420
-
421
- // Check if this tick should be hidden (matches exactly a selected value)
422
- const isExactlySelected = (tickValue === state.value ||
423
- (config.range && state.secondValue !== null && tickValue === state.secondValue));
424
-
425
- if (isExactlySelected) {
426
- tick.classList.add(hiddenClass);
427
- } else if (config.range && state.secondValue !== null) {
428
- // Range slider - ticks between values should be active
429
- const lowerValue = Math.min(state.value, state.secondValue);
430
- const higherValue = Math.max(state.value, state.secondValue);
431
-
432
- if (tickValue >= lowerValue && tickValue <= higherValue) {
433
- tick.classList.add(activeClass);
434
- tick.classList.remove(inactiveClass);
435
- } else {
436
- tick.classList.remove(activeClass);
437
- tick.classList.add(inactiveClass);
438
- }
439
- } else {
440
- // Single slider - ticks below value should be active
441
- if (tickValue <= state.value) {
442
- tick.classList.add(activeClass);
443
- tick.classList.remove(inactiveClass);
444
- } else {
445
- tick.classList.remove(activeClass);
446
- tick.classList.add(inactiveClass);
447
- }
448
- }
449
- });
450
- };
451
-
452
- /**
453
- * Renders all UI elements to match current state
454
- * Central method for keeping UI in sync with state
455
- */
456
- const render = () => {
457
- try {
458
- updateHandlePositions();
459
- updateTrackSegments();
460
- updateValueBubbles();
461
- updateTicks();
462
- } catch (error) {
463
- console.warn('Error rendering UI:', error);
464
- }
465
- };
466
-
467
- // Create UI renderer interface for event handlers
468
- const uiRenderer = {
469
- getPercentage,
470
- getValueFromPosition,
471
- roundToStep,
472
- clamp,
473
- showValueBubble,
474
- generateTicks,
475
- updateTicks,
476
- updateUi: render, // For backward compatibility
477
- render
478
- };
479
-
480
- // Create event handlers with our renderer
481
- const handlers = createHandlers(config, state, uiRenderer, eventHelpers);
482
-
483
- // Initialize slider controller
484
- const initController = () => {
485
- try {
486
- // Verify we have the necessary components
487
- if (!component.components || !component.components.handle) {
488
- console.warn('Cannot initialize slider controller: missing required components');
489
- return;
490
- }
491
-
492
- // Set ARIA attributes
493
- component.element.setAttribute('aria-valuemin', String(state.min));
494
- component.element.setAttribute('aria-valuemax', String(state.max));
495
- component.element.setAttribute('aria-valuenow', String(state.value));
496
-
497
- const { handle, secondHandle } = component.components;
498
-
499
- // Set handle attributes
500
- if (handle) {
501
- handle.setAttribute('aria-valuemin', String(state.min));
502
- handle.setAttribute('aria-valuemax', String(state.max));
503
- handle.setAttribute('aria-valuenow', String(state.value));
504
-
505
- if (config.range && secondHandle && state.secondValue !== null) {
506
- secondHandle.setAttribute('aria-valuemin', String(state.min));
507
- secondHandle.setAttribute('aria-valuemax', String(state.max));
508
- secondHandle.setAttribute('aria-valuenow', String(state.secondValue));
509
- }
510
- }
511
-
512
- // Setup event listeners
513
- handlers.setupEventListeners();
514
-
515
- // Initially generate ticks if needed
516
- if (config.ticks || config.tickLabels) {
517
- generateTicks();
518
- }
519
-
520
- // Initial UI update
521
- render();
522
-
523
- // Force one more UI update after a delay to ensure proper positioning
524
- setTimeout(() => {
525
- render();
526
- }, 50);
527
- } catch (error) {
528
- console.error('Error initializing slider controller:', error);
529
- }
530
- };
531
-
532
- // Register with lifecycle if available
533
- if (component.lifecycle) {
534
- const originalDestroy = component.lifecycle.destroy || (() => {});
535
- component.lifecycle.destroy = () => {
536
- handlers.cleanupEventListeners();
537
- originalDestroy();
538
- };
539
- }
540
-
541
- // Schedule initialization after current execution completes
542
- setTimeout(() => {
543
- initController();
544
- }, 0);
545
-
546
- // Return enhanced component
547
- return {
548
- ...component,
549
- // Provide controller API under 'slider' property for backward compatibility
550
- slider: {
551
- /**
552
- * Sets slider value
553
- * @param value New value
554
- * @param triggerEvent Whether to trigger change event
555
- * @returns Slider controller for chaining
556
- */
557
- setValue(value, triggerEvent = true) {
558
- const newValue = clamp(value, state.min, state.max);
559
- state.value = newValue;
560
- render();
561
-
562
- if (triggerEvent) {
563
- eventHelpers.triggerEvent(SLIDER_EVENTS.CHANGE);
564
- }
565
-
566
- return this;
567
- },
568
-
569
- /**
570
- * Gets slider value
571
- * @returns Current value
572
- */
573
- getValue() {
574
- return state.value;
575
- },
576
-
577
- /**
578
- * Sets secondary slider value (for range slider)
579
- * @param value New secondary value
580
- * @param triggerEvent Whether to trigger change event
581
- * @returns Slider controller for chaining
582
- */
583
- setSecondValue(value, triggerEvent = true) {
584
- if (!config.range) return this;
585
-
586
- const newValue = clamp(value, state.min, state.max);
587
- state.secondValue = newValue;
588
- render();
589
-
590
- if (triggerEvent) {
591
- eventHelpers.triggerEvent(SLIDER_EVENTS.CHANGE);
592
- }
593
-
594
- return this;
595
- },
596
-
597
- /**
598
- * Gets secondary slider value
599
- * @returns Current secondary value or null
600
- */
601
- getSecondValue() {
602
- return config.range ? state.secondValue : null;
603
- },
604
-
605
- /**
606
- * Sets slider minimum value
607
- * @param min New minimum value
608
- * @returns Slider controller for chaining
609
- */
610
- setMin(min) {
611
- state.min = min;
612
-
613
- // Update ARIA attributes if elements exist
614
- component.element.setAttribute('aria-valuemin', String(min));
615
- if (component.components?.handle) {
616
- component.components.handle.setAttribute('aria-valuemin', String(min));
617
- }
618
-
619
- if (config.range && component.components?.secondHandle) {
620
- component.components.secondHandle.setAttribute('aria-valuemin', String(min));
621
- }
622
-
623
- // Clamp values to new min
624
- if (state.value < min) state.value = min;
625
- if (config.range && state.secondValue !== null && state.secondValue < min) {
626
- state.secondValue = min;
627
- }
628
-
629
- // Regenerate ticks if needed
630
- if (config.ticks || config.tickLabels) {
631
- generateTicks();
632
- }
633
-
634
- render();
635
- return this;
636
- },
637
-
638
- /**
639
- * Gets slider minimum value
640
- * @returns Current minimum value
641
- */
642
- getMin() {
643
- return state.min;
644
- },
645
-
646
- /**
647
- * Sets slider maximum value
648
- * @param max New maximum value
649
- * @returns Slider controller for chaining
650
- */
651
- setMax(max) {
652
- state.max = max;
653
-
654
- // Update ARIA attributes if elements exist
655
- component.element.setAttribute('aria-valuemax', String(max));
656
- if (component.components?.handle) {
657
- component.components.handle.setAttribute('aria-valuemax', String(max));
658
- }
659
-
660
- if (config.range && component.components?.secondHandle) {
661
- component.components.secondHandle.setAttribute('aria-valuemax', String(max));
662
- }
663
-
664
- // Clamp values to new max
665
- if (state.value > max) state.value = max;
666
- if (config.range && state.secondValue !== null && state.secondValue > max) {
667
- state.secondValue = max;
668
- }
669
-
670
- // Regenerate ticks if needed
671
- if (config.ticks || config.tickLabels) {
672
- generateTicks();
673
- }
674
-
675
- render();
676
- return this;
677
- },
678
-
679
- /**
680
- * Gets slider maximum value
681
- * @returns Current maximum value
682
- */
683
- getMax() {
684
- return state.max;
685
- },
686
-
687
- /**
688
- * Sets slider step size
689
- * @param step New step size
690
- * @returns Slider controller for chaining
691
- */
692
- setStep(step) {
693
- state.step = step;
694
-
695
- // Add or remove discrete class
696
- component.element.classList[step > 0 ? 'add' : 'remove'](
697
- `${component.getClass('slider')}--discrete`
698
- );
699
-
700
- // Regenerate ticks if needed
701
- if (config.ticks || config.tickLabels) {
702
- generateTicks();
703
- updateTicks();
704
- }
705
-
706
- return this;
707
- },
708
-
709
- /**
710
- * Gets slider step size
711
- * @returns Current step size
712
- */
713
- getStep() {
714
- return state.step;
715
- },
716
-
717
- /**
718
- * Regenerate tick marks and labels
719
- * @returns Slider controller for chaining
720
- */
721
- regenerateTicks() {
722
- generateTicks();
723
- updateTicks();
724
- return this;
725
- },
726
-
727
- /**
728
- * Update all UI elements
729
- * @returns Slider controller for chaining
730
- */
731
- updateUi() {
732
- render();
733
- return this;
734
- }
735
- }
736
- };
737
- };