mtrl 0.3.8 → 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 +23 -4
  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 -230
  442. package/src/components/menu/config.ts +0 -127
  443. package/src/components/menu/features/anchor.ts +0 -394
  444. package/src/components/menu/features/controller.ts +0 -1423
  445. package/src/components/menu/features/index.ts +0 -13
  446. package/src/components/menu/features/position.ts +0 -353
  447. package/src/components/menu/menu.ts +0 -121
  448. package/src/components/menu/types.ts +0 -392
  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 -331
  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 -90
  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 -242
  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 -272
  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,221 +0,0 @@
1
- // src/components/tabs/api.ts
2
- import { TabsComponent, TabComponent, TabConfig } from './types';
3
- import { createTab } from './tab';
4
-
5
- /**
6
- * API options for a Tabs component
7
- */
8
- interface ApiOptions {
9
- /** The component's lifecycle API */
10
- lifecycle: {
11
- destroy: () => void;
12
- };
13
- }
14
-
15
- /**
16
- * Component with required elements and methods
17
- */
18
- interface ComponentWithElements {
19
- /** The DOM element */
20
- element: HTMLElement;
21
- /** Array of tab components */
22
- tabs: TabComponent[];
23
- /** Container for tabs */
24
- tabsContainer: HTMLElement;
25
- /** Tab click handler */
26
- handleTabClick: (event: Event, tab: TabComponent) => void;
27
- /** Scroll container (optional) */
28
- scrollContainer?: HTMLElement;
29
- /** Class name helper */
30
- getClass: (name: string) => string;
31
- /** Event subscription (optional) */
32
- on?: (event: string, handler: Function) => any;
33
- /** Event unsubscription (optional) */
34
- off?: (event: string, handler: Function) => any;
35
- /** Event emission (optional) */
36
- emit?: (event: string, data: any) => any;
37
- /** Component configuration */
38
- config: Record<string, any>;
39
- }
40
-
41
- /**
42
- * Enhances a tabs component with API methods
43
- * @param {ApiOptions} options - API configuration options
44
- * @returns {Function} Higher-order function that adds API methods to component
45
- */
46
- export const withAPI = ({ lifecycle }: ApiOptions) =>
47
- (component: ComponentWithElements): TabsComponent => ({
48
- ...component as any,
49
- element: component.element,
50
-
51
- /**
52
- * Creates and adds a new tab
53
- */
54
- addTab(config: TabConfig) {
55
- // Create a merged config that inherits from tabs component
56
- const mergedConfig = {
57
- ...config,
58
- prefix: component.config.prefix,
59
- variant: config.variant || component.config.variant
60
- };
61
-
62
- // Ensure value is set if not provided
63
- if (mergedConfig.value === undefined) {
64
- mergedConfig.value = ''; // Default empty value
65
- }
66
-
67
- // Create the tab
68
- const tab = createTab(mergedConfig);
69
-
70
- // Add to internal tabs array
71
- component.tabs.push(tab);
72
-
73
- // Add to DOM
74
- const targetContainer = component.tabsContainer;
75
- targetContainer.appendChild(tab.element);
76
-
77
- // Add click handler with robust event handling
78
- if (tab.on && typeof tab.on === 'function') {
79
- tab.on('click', (event) => component.handleTabClick(event, tab));
80
- }
81
-
82
- // Add direct DOM event handler as a fallback
83
- tab.element.addEventListener('click', (event) => {
84
- component.handleTabClick(event, tab);
85
- });
86
-
87
- return tab;
88
- },
89
-
90
- /**
91
- * Adds a pre-created tab
92
- */
93
- add(tab: TabComponent) {
94
- component.tabs.push(tab);
95
-
96
- // Add tab to DOM
97
- const targetContainer = component.tabsContainer;
98
- targetContainer.appendChild(tab.element);
99
-
100
- // Add click handler via API and direct DOM event
101
- if (tab.on && typeof tab.on === 'function') {
102
- tab.on('click', (event) => component.handleTabClick(event, tab));
103
- }
104
-
105
- tab.element.addEventListener('click', (event) => {
106
- component.handleTabClick(event, tab);
107
- });
108
-
109
- return this;
110
- },
111
-
112
- /**
113
- * Gets all tabs
114
- */
115
- getTabs() {
116
- return [...component.tabs];
117
- },
118
-
119
- /**
120
- * Gets the active tab
121
- */
122
- getActiveTab() {
123
- return component.tabs.find(tab => tab.isActive()) || null;
124
- },
125
-
126
- /**
127
- * Sets a tab as active
128
- */
129
- setActiveTab(tabOrValue: TabComponent | string) {
130
- const targetTab = typeof tabOrValue === 'string'
131
- ? component.tabs.find(tab => tab.getValue() === tabOrValue)
132
- : tabOrValue;
133
-
134
- if (!targetTab) return this;
135
-
136
- // Deactivate all tabs first
137
- component.tabs.forEach(tab => tab.deactivate());
138
-
139
- // Activate the target tab
140
- targetTab.activate();
141
-
142
- // Emit change event
143
- if (component.emit) {
144
- component.emit('change', {
145
- tab: targetTab,
146
- value: targetTab.getValue()
147
- });
148
- }
149
-
150
- return this;
151
- },
152
-
153
- /**
154
- * Removes a tab
155
- */
156
- removeTab(tabOrValue: TabComponent | string) {
157
- const targetTab = typeof tabOrValue === 'string'
158
- ? component.tabs.find(tab => tab.getValue() === tabOrValue)
159
- : tabOrValue;
160
-
161
- if (!targetTab) return this;
162
-
163
- // Remove from array
164
- const index = component.tabs.indexOf(targetTab);
165
- if (index !== -1) {
166
- component.tabs.splice(index, 1);
167
- }
168
-
169
- // Clean up tab and remove from DOM
170
- if (targetTab.element.parentNode) {
171
- targetTab.element.parentNode.removeChild(targetTab.element);
172
- }
173
-
174
- targetTab.destroy();
175
-
176
- return this;
177
- },
178
-
179
- /**
180
- * Adds an event listener
181
- */
182
- on(event: string, handler: Function) {
183
- if (component.on) {
184
- component.on(event, handler);
185
- }
186
- return this;
187
- },
188
-
189
- /**
190
- * Removes an event listener
191
- */
192
- off(event: string, handler: Function) {
193
- if (component.off) {
194
- component.off(event, handler);
195
- }
196
- return this;
197
- },
198
-
199
- /**
200
- * Destroys the tabs component
201
- */
202
- destroy() {
203
- // Clean up all tabs first
204
- component.tabs.forEach(tab => tab.destroy());
205
- component.tabs.length = 0;
206
-
207
- // Then destroy container
208
- lifecycle.destroy();
209
- }
210
- });
211
-
212
- /**
213
- * Creates API configuration for the Tabs component
214
- * @param {Object} comp - Component with lifecycle feature
215
- * @returns {Object} API configuration object
216
- */
217
- export const getApiConfig = (comp) => ({
218
- lifecycle: {
219
- destroy: () => comp.lifecycle.destroy()
220
- }
221
- });
@@ -1,73 +0,0 @@
1
- // src/components/tabs/config.ts
2
- import {
3
- createComponentConfig,
4
- createElementConfig,
5
- BaseComponentConfig
6
- } from '../../core/config/component-config';
7
- import { withElement } from '../../core/compose/component';
8
- import { TabConfig } from './types';
9
-
10
- /**
11
- * Default configuration for a Tab
12
- */
13
- export const defaultTabConfig: TabConfig = {
14
- state: 'inactive',
15
- componentName: 'tab',
16
- ripple: true
17
- };
18
-
19
- /**
20
- * Default configuration for the Tabs component
21
- */
22
- export const defaultTabsConfig = {
23
- variant: 'primary',
24
- scrollable: true,
25
- showDivider: true,
26
- componentName: 'tabs'
27
- };
28
-
29
- export const createTabsConfig = (config = {}) =>
30
- createComponentConfig(defaultTabsConfig, config, 'tabs');
31
-
32
- /**
33
- * Creates the base configuration for a Tab
34
- * @param {TabConfig} config - User provided configuration
35
- * @returns {TabConfig} Complete configuration with defaults applied
36
- */
37
- export const createTabConfig = (config: TabConfig = {}): TabConfig =>
38
- createComponentConfig(defaultTabConfig, config, 'tab') as TabConfig;
39
-
40
-
41
- export const getTabsElementConfig = (config) => {
42
- const elementConfig = {
43
- tag: 'div',
44
- attrs: {
45
- role: 'tablist',
46
- 'aria-orientation': 'horizontal'
47
- },
48
- className: [
49
- `${config.prefix}-tabs`,
50
- `${config.prefix}-tabs--${config.variant || 'primary'}`,
51
- config.class
52
- ]
53
- };
54
-
55
- return (component) => withElement(elementConfig)(component);
56
- };
57
-
58
- /**
59
- * Creates API configuration for the Tab component
60
- * @param {Object} comp - Component with disabled and lifecycle features
61
- * @returns {Object} API configuration object
62
- */
63
- export const getTabApiConfig = (comp) => ({
64
- disabled: {
65
- enable: () => comp.disabled.enable(),
66
- disable: () => comp.disabled.disable(),
67
- isDisabled: () => comp.disabled.isDisabled && comp.disabled.isDisabled()
68
- },
69
- lifecycle: {
70
- destroy: () => comp.lifecycle.destroy()
71
- },
72
- button: comp.button
73
- });
@@ -1,403 +0,0 @@
1
- // src/components/tabs/features.ts
2
- import { createTab } from './tab';
3
- import { TabConfig, TabComponent } from './types';
4
- import { BaseComponent } from '../../core/compose/component';
5
- import { updateTabPanels, getActiveTab } from './utils';
6
- import { createTabIndicator, TabIndicator } from './indicator';
7
-
8
- /**
9
- * Configuration for tabs management feature
10
- */
11
- export interface TabsManagementConfig {
12
- /** Initial tabs to create */
13
- tabs?: TabConfig[];
14
- /** Tab variant */
15
- variant?: string;
16
- /** Component prefix */
17
- prefix?: string;
18
- /** Other configuration properties */
19
- [key: string]: any;
20
- }
21
-
22
- /**
23
- * Component with tabs management capabilities
24
- */
25
- export interface TabsManagementComponent {
26
- /** Array of tab components */
27
- tabs: TabComponent[];
28
-
29
- /** Target container for tabs */
30
- tabsContainer: HTMLElement;
31
-
32
- /** Tab click handler */
33
- handleTabClick: (event: Event, tab: TabComponent) => void;
34
-
35
- /** Get all tabs */
36
- getTabs?: () => TabComponent[];
37
-
38
- /** Get the active tab */
39
- getActiveTab?: () => TabComponent | null;
40
- }
41
-
42
- /**
43
- * Adds tabs management capabilities to a component
44
- * @param {TabsManagementConfig} config - Tabs configuration
45
- * @returns {Function} Component enhancer with tabs management
46
- */
47
- export const withTabsManagement = <T extends TabsManagementConfig>(config: T) =>
48
- <C extends any>(component: C): C & TabsManagementComponent => {
49
- const tabs: TabComponent[] = [];
50
-
51
- // Store the target container for tabs
52
- const tabsContainer = component.scrollContainer || component.element;
53
-
54
- // Create initial tabs if provided in config
55
- if (Array.isArray(config.tabs)) {
56
- config.tabs.forEach(tabConfig => {
57
- // Create a merged config that inherits from tabs component
58
- const mergedConfig = {
59
- ...tabConfig,
60
- prefix: config.prefix,
61
- variant: tabConfig.variant || config.variant
62
- };
63
-
64
- // Create the tab
65
- const tab = createTab(mergedConfig);
66
-
67
- // Add to internal tabs array
68
- tabs.push(tab);
69
-
70
- // Add to DOM
71
- tabsContainer.appendChild(tab.element);
72
- });
73
- }
74
-
75
- /**
76
- * Gets all tabs
77
- */
78
- const getTabs = () => {
79
- return [...tabs];
80
- };
81
-
82
- /**
83
- * Gets the active tab
84
- */
85
- const getActiveTab = () => {
86
- return tabs.find(tab => tab.isActive()) || null;
87
- };
88
-
89
- /**
90
- * Handles tab click events
91
- */
92
- const handleTabClick = (event: any, tab: TabComponent) => {
93
- // Check if event is a DOM event with preventDefault
94
- if (event && typeof event.preventDefault === 'function') {
95
- event.preventDefault();
96
- }
97
-
98
- // Skip if tab is disabled
99
- if (tab.disabled && tab.disabled.isDisabled && tab.disabled.isDisabled()) {
100
- return;
101
- }
102
-
103
- // Deactivate all tabs first
104
- tabs.forEach(t => t.deactivate());
105
-
106
- // Activate the clicked tab
107
- tab.activate();
108
-
109
- // Get the tab value
110
- const value = tab.getValue();
111
-
112
- // Update tab panels
113
- updateTabPanels({
114
- tabs,
115
- getActiveTab: () => tabs.find(t => t.isActive()) || null
116
- });
117
-
118
- // Emit change event if component has emit method
119
- if (typeof component['emit'] === 'function') {
120
- component['emit']('change', {
121
- tab,
122
- value
123
- });
124
- }
125
- };
126
-
127
- // Add click handlers to existing tabs
128
- tabs.forEach(tab => {
129
- // Add event listener directly and via API if available
130
- if (tab.on && typeof tab.on === 'function') {
131
- tab.on('click', (event) => handleTabClick(event, tab));
132
- }
133
- // Also add direct DOM event listener as a fallback
134
- tab.element.addEventListener('click', (event) => handleTabClick(event, tab));
135
- });
136
-
137
- return {
138
- ...component,
139
- tabs,
140
- tabsContainer,
141
- handleTabClick,
142
- getTabs,
143
- getActiveTab
144
- };
145
- };
146
-
147
- /**
148
- * Configuration for scrollable feature
149
- */
150
- export interface ScrollableConfig {
151
- /** Whether tabs are scrollable horizontally */
152
- scrollable?: boolean;
153
- /** Other configuration properties */
154
- [key: string]: any;
155
- }
156
-
157
- /**
158
- * Component with scrollable capabilities
159
- */
160
- export interface ScrollableComponent {
161
- /** Scroll container element */
162
- scrollContainer?: HTMLElement;
163
- }
164
-
165
- /**
166
- * Adds scrollable capabilities to a component
167
- * @param {ScrollableConfig} config - Scrollable configuration
168
- * @returns {Function} Component enhancer with scrollable container
169
- */
170
- export const withScrollable = <T extends ScrollableConfig>(config: T) =>
171
- <C extends any>(component: C): C & ScrollableComponent => {
172
- // Skip if scrollable is explicitly false
173
- if (config.scrollable === false) {
174
- return component as C & ScrollableComponent;
175
- }
176
-
177
- // Add scrollable class
178
- component.element.classList.add(`${component.getClass('tabs')}--scrollable`);
179
-
180
- // Create container for tabs that can scroll
181
- const scrollContainer = document.createElement('div');
182
- scrollContainer.className = `${component.getClass('tabs')}-scroll`;
183
-
184
- // Move any existing children to scroll container
185
- while (component.element.firstChild) {
186
- scrollContainer.appendChild(component.element.firstChild);
187
- }
188
-
189
- // Add scroll container to the main element
190
- component.element.appendChild(scrollContainer);
191
-
192
- return {
193
- ...component,
194
- scrollContainer
195
- };
196
- };
197
-
198
- /**
199
- * Configuration for divider feature
200
- */
201
- export interface DividerConfig {
202
- /** Whether to show a divider below the tabs */
203
- showDivider?: boolean;
204
- /** Other configuration properties */
205
- [key: string]: any;
206
- }
207
-
208
- /**
209
- * Adds a divider to a component
210
- * @param {DividerConfig} config - Divider configuration
211
- * @returns {Function} Component enhancer with divider
212
- */
213
- export const withDivider = <T extends DividerConfig>(config: T) =>
214
- <C extends any>(component: C): C => {
215
- // Skip if divider is explicitly disabled
216
- if (config.showDivider === false) {
217
- return component;
218
- }
219
-
220
- // Create the divider element
221
- const divider = document.createElement('div');
222
- divider.className = `${component.getClass('tabs')}-divider`;
223
-
224
- // Add the divider to the main element
225
- component.element.appendChild(divider);
226
-
227
- return component;
228
- };
229
-
230
- /**
231
- * Configuration for indicator feature
232
- */
233
- export interface IndicatorFeatureConfig {
234
- /** Component prefix */
235
- prefix?: string;
236
- /** Width strategy for the indicator */
237
- widthStrategy?: 'fixed' | 'dynamic' | 'content';
238
- /** Height of the indicator in pixels */
239
- height?: number;
240
- /** Fixed width in pixels (when using fixed strategy) */
241
- fixedWidth?: number;
242
- /** Animation duration in milliseconds */
243
- animationDuration?: number;
244
- /** Animation timing function */
245
- animationTiming?: string;
246
- /** Custom color for the indicator */
247
- color?: string;
248
- /** Legacy height property */
249
- indicatorHeight?: number;
250
- /** Legacy width strategy property */
251
- indicatorWidthStrategy?: 'fixed' | 'dynamic' | 'content';
252
- /** Indicator configuration object */
253
- indicator?: {
254
- widthStrategy?: 'fixed' | 'dynamic' | 'content';
255
- height?: number;
256
- fixedWidth?: number;
257
- animationDuration?: number;
258
- animationTiming?: string;
259
- color?: string;
260
- };
261
- }
262
-
263
- /**
264
- * Component with indicator capability
265
- */
266
- export interface IndicatorComponent {
267
- /** The indicator instance */
268
- indicator: TabIndicator;
269
- /** Get the indicator instance */
270
- getIndicator: () => TabIndicator;
271
- }
272
-
273
- /**
274
- * Enhances a component with tab indicator functionality
275
- * @param config - Indicator configuration
276
- * @returns Component enhancer with indicator functionality
277
- */
278
- export const withIndicator = <T extends IndicatorFeatureConfig>(config: T) =>
279
- <C extends any>(component: C): C & IndicatorComponent => {
280
- // Create indicator with proper config
281
- const indicatorConfig = config.indicator || {};
282
- const indicator: TabIndicator = createTabIndicator({
283
- prefix: config.prefix,
284
- // Support both new and legacy config
285
- widthStrategy: indicatorConfig.widthStrategy || config.indicatorWidthStrategy || 'auto', // Changed default to 'auto'
286
- height: indicatorConfig.height || config.indicatorHeight || 3,
287
- fixedWidth: indicatorConfig.fixedWidth || 40,
288
- animationDuration: indicatorConfig.animationDuration || 250,
289
- animationTiming: indicatorConfig.animationTiming || 'cubic-bezier(0.4, 0, 0.2, 1)',
290
- color: indicatorConfig.color,
291
- // Pass the tabs variant to the indicator
292
- variant: config.variant || 'primary'
293
- });
294
-
295
- // Find the scroll container and add the indicator to it
296
- const scrollContainer = component.scrollContainer || component.element;
297
- if (!scrollContainer) {
298
- console.error('No scroll container found - cannot add indicator');
299
- throw new Error('Failed to create tabs: No scroll container found');
300
- }
301
-
302
- // Add the indicator to the scroll container
303
- scrollContainer.appendChild(indicator.element);
304
-
305
- // Store the original handlers to enhance
306
- const originalHandleTabClick = component.handleTabClick;
307
-
308
- // Replace tab click handler to ensure indicator updates
309
- component.handleTabClick = function(event, tab) {
310
- // Skip if tab is disabled
311
- if (tab.disabled && tab.disabled.isDisabled && tab.disabled.isDisabled()) {
312
- return;
313
- }
314
-
315
- // Call original handler
316
- originalHandleTabClick.call(this, event, tab);
317
-
318
- // Move indicator with a slight delay to ensure DOM updates
319
- setTimeout(() => {
320
- indicator.moveToTab(tab);
321
- }, 10);
322
- };
323
-
324
- // Position indicator on initial active tab
325
- setTimeout(() => {
326
- const activeTab = component.tabs.find(tab => tab.isActive());
327
- if (activeTab) {
328
- indicator.moveToTab(activeTab, true);
329
- }
330
- }, 50);
331
-
332
- // Add scroll event handling
333
- const scrollHandler = () => {
334
- const activeTab = component.tabs.find(tab => tab.isActive());
335
- if (activeTab) {
336
- indicator.moveToTab(activeTab, true);
337
- }
338
- };
339
-
340
- if (scrollContainer) {
341
- scrollContainer.addEventListener('scroll', scrollHandler);
342
- }
343
-
344
- // Watch for window resize to update indicator
345
- const resizeObserver = new ResizeObserver(() => {
346
- const activeTab = component.tabs.find(tab => tab.isActive());
347
- if (activeTab) {
348
- indicator.moveToTab(activeTab, true);
349
- }
350
- });
351
-
352
- resizeObserver.observe(scrollContainer);
353
-
354
- // Add MutationObserver to detect tab state changes
355
- const mutationObserver = new MutationObserver((mutations) => {
356
- for (const mutation of mutations) {
357
- if (mutation.type === 'attributes' &&
358
- mutation.attributeName === 'class' &&
359
- (mutation.target as HTMLElement).classList.contains(`${config.prefix}-tab--active`)) {
360
- // Find the corresponding tab component
361
- const tabElement = mutation.target as HTMLElement;
362
- const activeTab = component.tabs.find(tab => tab.element === tabElement);
363
- if (activeTab) {
364
- indicator.moveToTab(activeTab);
365
- }
366
- }
367
- }
368
- });
369
-
370
- // Observe all tabs for class changes
371
- if (Array.isArray(component.tabs)) {
372
- component.tabs.forEach(tab => {
373
- if (tab.element) {
374
- mutationObserver.observe(tab.element, { attributes: true });
375
- }
376
- });
377
- }
378
-
379
- // Enhance component's destroy method
380
- const originalDestroy = component.destroy || (() => {});
381
-
382
- // Override destroy to clean up resources
383
- (component as any).destroy = function() {
384
- indicator.destroy();
385
- resizeObserver.disconnect();
386
- mutationObserver.disconnect();
387
-
388
- if (scrollContainer) {
389
- scrollContainer.removeEventListener('scroll', scrollHandler);
390
- }
391
-
392
- // Call original destroy if it exists
393
- if (typeof originalDestroy === 'function') {
394
- originalDestroy.call(this);
395
- }
396
- };
397
-
398
- return {
399
- ...component,
400
- indicator,
401
- getIndicator: () => indicator
402
- };
403
- };