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,313 +0,0 @@
1
- // src/components/badge/api.ts
2
- import { BadgeComponent, BadgeColor, BadgeVariant, BadgePosition } from './types';
3
- import { formatBadgeLabel } from './config';
4
-
5
- /**
6
- * API configuration options for badge component
7
- * @category Components
8
- * @internal
9
- */
10
- interface ApiOptions {
11
- visibility: {
12
- show: () => void;
13
- hide: () => void;
14
- toggle: (visible?: boolean) => void;
15
- isVisible: () => boolean;
16
- };
17
- lifecycle: {
18
- destroy: () => void;
19
- };
20
- }
21
-
22
- /**
23
- * Component with required elements and methods for API enhancement
24
- * @category Components
25
- * @internal
26
- */
27
- interface ComponentWithElements {
28
- element: HTMLElement;
29
- wrapper?: HTMLElement;
30
- config: {
31
- max?: number;
32
- label?: string | number;
33
- variant?: string;
34
- };
35
- getClass: (name: string) => string;
36
- addClass: (...classes: string[]) => any;
37
- removeClass: (...classes: string[]) => any;
38
- on: (event: string, handler: Function) => any;
39
- off: (event: string, handler: Function) => any;
40
- }
41
-
42
- // Common variant constants for internal use
43
- const VARIANT_SMALL = 'small';
44
-
45
- // Map of all badge colors for class removal
46
- const ALL_COLORS = [
47
- 'error', 'primary', 'secondary', 'tertiary', 'success', 'warning', 'info'
48
- ];
49
-
50
- // Map of all badge variants for class removal
51
- const ALL_VARIANTS = ['small', 'large'];
52
-
53
- // Map of all badge positions for class removal
54
- const ALL_POSITIONS = ['top-right', 'top-left', 'bottom-right', 'bottom-left'];
55
-
56
- /**
57
- * Enhances a badge component with API methods.
58
- * This follows the higher-order function pattern to add public API methods
59
- * to the component, making them available to the end user.
60
- *
61
- * @param {ApiOptions} options - API configuration options
62
- * @returns {Function} Higher-order function that adds API methods to component
63
- * @category Components
64
- * @internal This is an internal utility for the Badge component
65
- */
66
- export const withAPI = ({ visibility, lifecycle }: ApiOptions) =>
67
- (component: ComponentWithElements): BadgeComponent => ({
68
- ...component as any,
69
-
70
- /**
71
- * Sets the badge label
72
- * @param {string|number} label - Label to display in the badge
73
- * @returns {BadgeComponent} Badge component instance for chaining
74
- */
75
- setLabel(label: string | number) {
76
- component.config.label = label;
77
-
78
- // Small badges (dot variant) don't have text
79
- if (component.config.variant === VARIANT_SMALL) {
80
- component.element.textContent = '';
81
- return this;
82
- }
83
-
84
- // Format the label
85
- const formattedLabel = formatBadgeLabel(label, component.config.max);
86
- component.element.textContent = formattedLabel;
87
-
88
- // Add overflow class if label was truncated
89
- component.element.classList.remove(`${component.getClass('badge')}--overflow`);
90
- if (typeof label === 'number' &&
91
- component.config.max !== undefined &&
92
- label > component.config.max) {
93
- component.element.classList.add(`${component.getClass('badge')}--overflow`);
94
- }
95
-
96
- // Toggle visibility based on whether label is empty
97
- if (formattedLabel === '' || formattedLabel === '0') {
98
- this.hide();
99
- } else {
100
- this.show();
101
- }
102
-
103
- return this;
104
- },
105
-
106
- /**
107
- * Gets the badge label
108
- * @returns {string} Current badge label
109
- */
110
- getLabel() {
111
- return component.element.textContent || '';
112
- },
113
-
114
- /**
115
- * Shows the badge
116
- * @returns {BadgeComponent} Badge component instance for chaining
117
- */
118
- show() {
119
- visibility.show();
120
- return this;
121
- },
122
-
123
- /**
124
- * Hides the badge
125
- * @returns {BadgeComponent} Badge component instance for chaining
126
- */
127
- hide() {
128
- visibility.hide();
129
- return this;
130
- },
131
-
132
- /**
133
- * Toggles badge visibility
134
- * @param {boolean} [visible] - Optional flag to force visibility state
135
- * @returns {BadgeComponent} Badge component instance for chaining
136
- */
137
- toggle(visible?: boolean) {
138
- visibility.toggle(visible);
139
- return this;
140
- },
141
-
142
- /**
143
- * Checks if the badge is visible
144
- * @returns {boolean} True if badge is visible
145
- */
146
- isVisible() {
147
- return visibility.isVisible();
148
- },
149
-
150
- /**
151
- * Sets maximum value (after which badge shows max+)
152
- *
153
- * @param {number} max - Maximum value to display
154
- * @returns {BadgeComponent} Badge component instance for chaining
155
- */
156
- setMax(max: number) {
157
- component.config.max = max;
158
-
159
- // Apply max formatting if current label exceeds max
160
- if (component.config.label !== undefined) {
161
- this.setLabel(component.config.label);
162
- }
163
-
164
- return this;
165
- },
166
-
167
- /**
168
- * Sets badge color
169
- * @param {string} color - Color variant to apply
170
- * @returns {BadgeComponent} Badge component instance for chaining
171
- */
172
- setColor(color: BadgeColor | string) {
173
- // Remove existing color classes
174
- ALL_COLORS.forEach(colorName => {
175
- component.element.classList.remove(`${component.getClass('badge')}--${colorName}`);
176
- });
177
-
178
- // Add new color class
179
- component.element.classList.add(`${component.getClass('badge')}--${color}`);
180
- return this;
181
- },
182
-
183
- /**
184
- * Sets badge variant
185
- * @param {string} variant - Variant to apply (small or large)
186
- * @returns {BadgeComponent} Badge component instance for chaining
187
- */
188
- setVariant(variant: BadgeVariant | string) {
189
- // Remove existing variant classes
190
- ALL_VARIANTS.forEach(variantName => {
191
- component.element.classList.remove(`${component.getClass('badge')}--${variantName}`);
192
- });
193
-
194
- // Add new variant class
195
- component.element.classList.add(`${component.getClass('badge')}--${variant}`);
196
-
197
- // Update component config
198
- component.config.variant = variant;
199
-
200
- // Update accessibility attributes
201
- if (variant === VARIANT_SMALL) {
202
- component.element.textContent = '';
203
- component.element.setAttribute('aria-hidden', 'true');
204
- } else {
205
- component.element.setAttribute('role', 'status');
206
-
207
- // Restore label for large badges
208
- if (component.config.label !== undefined) {
209
- this.setLabel(component.config.label);
210
- }
211
- }
212
-
213
- return this;
214
- },
215
-
216
- /**
217
- * Sets badge position
218
- * @param {string} position - Position variant to apply
219
- * @returns {BadgeComponent} Badge component instance for chaining
220
- */
221
- setPosition(position: BadgePosition | string) {
222
- // Remove existing position classes
223
- ALL_POSITIONS.forEach(posName => {
224
- component.element.classList.remove(`${component.getClass('badge')}--${posName}`);
225
- });
226
-
227
- // Add new position class
228
- component.element.classList.add(`${component.getClass('badge')}--${position}`);
229
-
230
- return this;
231
- },
232
-
233
- /**
234
- * Attaches badge to a target element
235
- * @param {HTMLElement} target - Element to attach badge to
236
- * @returns {BadgeComponent} Badge component instance for chaining
237
- */
238
- attachTo(target: HTMLElement) {
239
- // If we already have a wrapper, remove the badge from it
240
- if (component.wrapper && component.wrapper.contains(component.element)) {
241
- component.wrapper.removeChild(component.element);
242
- }
243
-
244
- // Create a new wrapper to hold the target and badge
245
- const wrapper = document.createElement('div');
246
- wrapper.classList.add(component.getClass('badge-wrapper'));
247
- wrapper.style.position = 'relative';
248
-
249
- // Replace the target with the wrapper
250
- const parent = target.parentNode;
251
- if (parent) {
252
- parent.replaceChild(wrapper, target);
253
- wrapper.appendChild(target);
254
- wrapper.appendChild(component.element);
255
-
256
- // Make sure the badge is positioned
257
- component.element.classList.add(`${component.getClass('badge')}--positioned`);
258
-
259
- // Save the wrapper reference
260
- component.wrapper = wrapper;
261
- }
262
-
263
- return this;
264
- },
265
-
266
- /**
267
- * Makes badge standalone (removes from wrapper)
268
- * @returns {BadgeComponent} Badge component instance for chaining
269
- */
270
- detach() {
271
- if (component.wrapper && component.wrapper.contains(component.element)) {
272
- // Remove the badge from the wrapper
273
- component.wrapper.removeChild(component.element);
274
-
275
- // Remove the positioned class
276
- component.element.classList.remove(`${component.getClass('badge')}--positioned`);
277
-
278
- // Add the badge to the document body or another container
279
- document.body.appendChild(component.element);
280
-
281
- // Clear the wrapper reference
282
- component.wrapper = undefined;
283
- }
284
-
285
- return this;
286
- },
287
-
288
- /**
289
- * Destroys the badge component and cleans up resources
290
- */
291
- destroy() {
292
- lifecycle.destroy();
293
-
294
- // If badge is in a wrapper, restore the original DOM structure
295
- if (component.wrapper) {
296
- const target = component.wrapper.firstChild as HTMLElement;
297
- const parent = component.wrapper.parentNode;
298
-
299
- if (parent && target) {
300
- parent.replaceChild(target, component.wrapper);
301
- }
302
- }
303
- },
304
-
305
- // Forward basic component methods for API consistency
306
- getClass: component.getClass,
307
- addClass: component.addClass,
308
- removeClass: component.removeClass,
309
- on: component.on,
310
- off: component.off,
311
- element: component.element,
312
- wrapper: component.wrapper
313
- });
@@ -1,153 +0,0 @@
1
- // src/components/badge/config.ts
2
- import {
3
- createComponentConfig,
4
- createElementConfig
5
- } from '../../core/config/component-config';
6
- import { BadgeConfig } from './types';
7
-
8
- /**
9
- * Maximum character count for badge labels
10
- * @category Components
11
- * @internal
12
- */
13
- export const BADGE_MAX_CHARACTERS = 4;
14
-
15
- /**
16
- * Default configuration for the Badge component
17
- * These values will be used when not explicitly specified by the user.
18
- *
19
- * @category Components
20
- */
21
- export const defaultConfig: BadgeConfig = {
22
- /** Default to large badge (with text capability) */
23
- variant: 'large',
24
- /** Default to error (red) color */
25
- color: 'error',
26
- /** Default to top-right corner positioning */
27
- position: 'top-right',
28
- /** Default to empty label */
29
- label: '',
30
- /** Default to visible */
31
- visible: true
32
- };
33
-
34
- /**
35
- * Creates the base configuration for Badge component by merging user-provided
36
- * config with default values.
37
- *
38
- * @param {BadgeConfig} config - User provided configuration
39
- * @returns {BadgeConfig} Complete configuration with defaults applied
40
- * @category Components
41
- * @internal
42
- */
43
- export const createBaseConfig = (config: BadgeConfig = {}): BadgeConfig =>
44
- createComponentConfig(defaultConfig, config, 'badge') as BadgeConfig;
45
-
46
- /**
47
- * Generates element configuration for the Badge component.
48
- * This function creates the necessary attributes and configuration
49
- * for the DOM element creation process.
50
- *
51
- * @param {BadgeConfig} config - Badge configuration
52
- * @returns {Object} Element configuration object for withElement
53
- * @category Components
54
- * @internal
55
- */
56
- export const getElementConfig = (config: BadgeConfig) => {
57
- // Create the attributes object
58
- const attrs: Record<string, any> = {};
59
-
60
- // For large badges, set appropriate ARIA attributes for screen readers
61
- if (config.variant !== 'small') {
62
- attrs.role = 'status';
63
- }
64
-
65
- // Format the label if needed - small badges have no text
66
- const formattedLabel = config.variant === 'small'
67
- ? ''
68
- : formatBadgeLabel(config.label || '', config.max);
69
-
70
- return createElementConfig(config, {
71
- tag: 'span',
72
- attrs,
73
- className: config.class,
74
- text: formattedLabel // Use the formatted label
75
- });
76
- };
77
-
78
- /**
79
- * Creates API configuration for the Badge component.
80
- * This connects the core component features (like visibility)
81
- * to the public API methods exposed to users.
82
- *
83
- * @param {Object} comp - Component with visibility and lifecycle features
84
- * @returns {Object} API configuration object
85
- * @category Components
86
- * @internal
87
- */
88
- export const getApiConfig = (comp) => ({
89
- visibility: {
90
- show: () => comp.visibility.show(),
91
- hide: () => comp.visibility.hide(),
92
- toggle: (visible?: boolean) => comp.visibility.toggle(visible),
93
- isVisible: () => comp.visibility.isVisible()
94
- },
95
- lifecycle: {
96
- destroy: () => comp.lifecycle.destroy()
97
- }
98
- });
99
-
100
- /**
101
- * Format a badge label following Material Design 3 guidelines:
102
- * - Max 4 characters including "+" for overflow
103
- * - Add "+" for numeric values exceeding max
104
- *
105
- * @param {string|number} label - Original label
106
- * @param {number} max - Maximum value before using "+"
107
- * @returns {string} Formatted label that fits within badge constraints
108
- * @category Components
109
- * @internal
110
- *
111
- * @example
112
- * formatBadgeLabel(5) // "5"
113
- * formatBadgeLabel(1250, 999) // "999+"
114
- * formatBadgeLabel("New") // "New"
115
- * formatBadgeLabel("VeryLong") // "Very" (truncated)
116
- */
117
- export const formatBadgeLabel = (label: string | number, max?: number): string => {
118
- // Handle empty or undefined labels
119
- if (label === undefined || label === null || label === '') {
120
- return '';
121
- }
122
-
123
- let formattedLabel = String(label);
124
-
125
- const numericLabel = Number(label);
126
-
127
- // Apply max value formatting for numbers
128
- if (max !== undefined && !isNaN(numericLabel) && numericLabel > max) {
129
- formattedLabel = `${max}+`;
130
- }
131
-
132
- // Ensure label doesn't exceed max characters
133
- if (formattedLabel.length > BADGE_MAX_CHARACTERS) {
134
- // Try to preserve as much information as possible
135
- // For large numbers, use abbreviated format with "+"
136
- const numericValue = Number(label);
137
- if (!isNaN(numericValue)) {
138
- if (numericValue >= 1000) {
139
- formattedLabel = '999+';
140
- } else {
141
- // For numbers under 1000 but still too long, truncate
142
- formattedLabel = formattedLabel.substring(0, BADGE_MAX_CHARACTERS - 1) + '+';
143
- }
144
- } else {
145
- // For non-numeric values, simply truncate
146
- formattedLabel = formattedLabel.substring(0, BADGE_MAX_CHARACTERS);
147
- }
148
- }
149
-
150
- return formattedLabel;
151
- };
152
-
153
- export default defaultConfig;
@@ -1,194 +0,0 @@
1
- // src/components/badge/features.ts
2
- import { BadgeConfig } from './types';
3
- import { formatBadgeLabel } from './config';
4
-
5
- // Common badge variants
6
- const VARIANT_SMALL = 'small';
7
- const VARIANT_LARGE = 'large';
8
-
9
- // Common badge colors
10
- const COLOR_ERROR = 'error';
11
-
12
- // Common badge positions
13
- const POSITION_TOP_RIGHT = 'top-right';
14
-
15
- /**
16
- * Higher-order function that adds visibility control features to a component
17
- * @returns {Function} Component enhancer with visibility features
18
- */
19
- export const withVisibility = () => component => {
20
- // Get config values
21
- const visible = component.config.visible !== false; // Default to true if not specified
22
-
23
- // Initialize visibility state based on config
24
- if (!visible) {
25
- component.element.classList.add(`${component.getClass('badge')}--invisible`);
26
- }
27
-
28
- return {
29
- ...component,
30
- visibility: {
31
- /**
32
- * Shows the badge
33
- */
34
- show() {
35
- component.element.classList.remove(`${component.getClass('badge')}--invisible`);
36
- },
37
-
38
- /**
39
- * Hides the badge
40
- */
41
- hide() {
42
- component.element.classList.add(`${component.getClass('badge')}--invisible`);
43
- },
44
-
45
- /**
46
- * Toggles badge visibility
47
- * @param {boolean} [visible] - Optional flag to force visibility state
48
- */
49
- toggle(visible?: boolean) {
50
- if (visible === undefined) {
51
- component.element.classList.toggle(`${component.getClass('badge')}--invisible`);
52
- } else if (visible) {
53
- this.show();
54
- } else {
55
- this.hide();
56
- }
57
- },
58
-
59
- /**
60
- * Checks if the badge is visible
61
- * @returns {boolean} True if badge is visible
62
- */
63
- isVisible() {
64
- return !component.element.classList.contains(`${component.getClass('badge')}--invisible`);
65
- }
66
- }
67
- };
68
- };
69
-
70
- /**
71
- * Higher-order function that adds variant features to a badge component
72
- * @param {BadgeConfig} config - Badge configuration
73
- * @returns {Function} Component enhancer with variant features
74
- */
75
- export const withVariant = (config: BadgeConfig) => component => {
76
- // Get variant from config with fallback to default
77
- const variant = config.variant || VARIANT_LARGE;
78
-
79
- // Apply variant class
80
- component.element.classList.add(`${component.getClass('badge')}--${variant}`);
81
-
82
- // Small badges (dot variant) don't have text
83
- if (variant === VARIANT_SMALL) {
84
- component.element.textContent = '';
85
- component.element.setAttribute('aria-hidden', 'true');
86
- } else {
87
- // Add accessibility for large badges
88
- component.element.setAttribute('role', 'status');
89
-
90
- // Set the label if available and variant is large
91
- if (config.label !== undefined && config.label !== '') {
92
- // Format the label according to max value
93
- const formattedLabel = formatBadgeLabel(config.label, config.max);
94
- component.element.textContent = formattedLabel;
95
- }
96
- }
97
-
98
- return component;
99
- };
100
-
101
- /**
102
- * Higher-order function that adds color features to a badge component
103
- * @param {BadgeConfig} config - Badge configuration
104
- * @returns {Function} Component enhancer with color features
105
- */
106
- export const withColor = (config: BadgeConfig) => component => {
107
- // Get color from config with fallback to default
108
- const color = config.color || COLOR_ERROR;
109
-
110
- // Apply color class
111
- component.element.classList.add(`${component.getClass('badge')}--${color}`);
112
-
113
- return component;
114
- };
115
-
116
- /**
117
- * Higher-order function that adds positioning features to a badge component
118
- * @param {BadgeConfig} config - Badge configuration
119
- * @returns {Function} Component enhancer with positioning features
120
- */
121
- export const withPosition = (config: BadgeConfig) => component => {
122
- // Get position from config with fallback to default
123
- const position = config.position || POSITION_TOP_RIGHT;
124
-
125
- // Apply position class
126
- component.element.classList.add(`${component.getClass('badge')}--${position}`);
127
-
128
- // If there's a target, add positioned class
129
- if (config.target) {
130
- component.element.classList.add(`${component.getClass('badge')}--positioned`);
131
- }
132
-
133
- return component;
134
- };
135
-
136
- /**
137
- * Higher-order function that adds max value features to a badge component
138
- * @param {BadgeConfig} config - Badge configuration
139
- * @returns {Function} Component enhancer with max value features
140
- */
141
- export const withMax = (config: BadgeConfig) => component => {
142
- // Skip if no max is defined or for small badges
143
- if (config.max === undefined || config.variant === VARIANT_SMALL) {
144
- return component;
145
- }
146
-
147
- // Store max value in config for later use
148
- component.config.max = config.max;
149
-
150
- // Apply max formatting if needed
151
- if (config.label !== undefined && config.label !== '') {
152
- const formattedLabel = formatBadgeLabel(config.label, config.max);
153
- component.element.textContent = formattedLabel;
154
-
155
- // Add overflow class if label was truncated
156
- if (typeof config.label === 'number' && config.label > config.max) {
157
- component.element.classList.add(`${component.getClass('badge')}--overflow`);
158
- }
159
- }
160
-
161
- return component;
162
- };
163
-
164
- /**
165
- * Higher-order function that attaches badge to a target element
166
- * @param {BadgeConfig} config - Badge configuration
167
- * @returns {Function} Component enhancer with attachment features
168
- */
169
- export const withAttachment = (config: BadgeConfig) => component => {
170
- // Skip if no target is provided
171
- if (!config.target) {
172
- return component;
173
- }
174
-
175
- // Create wrapper to hold the target and badge
176
- const wrapper = document.createElement('div');
177
- wrapper.classList.add(component.getClass('badge-wrapper'));
178
-
179
- // Make sure positioning context is correct
180
- wrapper.style.position = 'relative';
181
-
182
- // Replace the target with the wrapper
183
- const parent = config.target.parentNode;
184
- if (parent) {
185
- parent.replaceChild(wrapper, config.target);
186
- wrapper.appendChild(config.target);
187
- wrapper.appendChild(component.element);
188
-
189
- // Save the wrapper reference
190
- component.wrapper = wrapper;
191
- }
192
-
193
- return component;
194
- };