@m3e/core 1.0.0-rc.1 → 1.0.0-rc.2

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 (338) hide show
  1. package/README.md +1 -2
  2. package/dist/a11y.js +6 -18
  3. package/dist/a11y.js.map +1 -1
  4. package/dist/a11y.min.js +5 -5
  5. package/dist/a11y.min.js.map +1 -1
  6. package/dist/custom-elements.json +3449 -3429
  7. package/dist/html-custom-data.json +14 -6
  8. package/dist/index.js +198 -29
  9. package/dist/index.js.map +1 -1
  10. package/dist/index.min.js +87 -87
  11. package/dist/index.min.js.map +1 -1
  12. package/package.json +1 -1
  13. package/cem.config.mjs +0 -16
  14. package/demo/index.html +0 -58
  15. package/dist/src/a11y/AriaDescriber.d.ts +0 -31
  16. package/dist/src/a11y/AriaDescriber.d.ts.map +0 -1
  17. package/dist/src/a11y/FocusTrapElement.d.ts +0 -25
  18. package/dist/src/a11y/FocusTrapElement.d.ts.map +0 -1
  19. package/dist/src/a11y/InteractivityChecker.d.ts +0 -22
  20. package/dist/src/a11y/InteractivityChecker.d.ts.map +0 -1
  21. package/dist/src/a11y/LiveAnnouncer.d.ts +0 -56
  22. package/dist/src/a11y/LiveAnnouncer.d.ts.map +0 -1
  23. package/dist/src/a11y/aria-reference.d.ts +0 -30
  24. package/dist/src/a11y/aria-reference.d.ts.map +0 -1
  25. package/dist/src/a11y/index.d.ts +0 -8
  26. package/dist/src/a11y/index.d.ts.map +0 -1
  27. package/dist/src/a11y/keycodes/KeyCode.d.ts +0 -118
  28. package/dist/src/a11y/keycodes/KeyCode.d.ts.map +0 -1
  29. package/dist/src/a11y/keycodes/ModifierKeys.d.ts +0 -5
  30. package/dist/src/a11y/keycodes/ModifierKeys.d.ts.map +0 -1
  31. package/dist/src/a11y/keycodes/getKeyCode.d.ts +0 -7
  32. package/dist/src/a11y/keycodes/getKeyCode.d.ts.map +0 -1
  33. package/dist/src/a11y/keycodes/hasModifierKey.d.ts +0 -9
  34. package/dist/src/a11y/keycodes/hasModifierKey.d.ts.map +0 -1
  35. package/dist/src/a11y/keycodes/index.d.ts +0 -6
  36. package/dist/src/a11y/keycodes/index.d.ts.map +0 -1
  37. package/dist/src/a11y/keycodes/isModifierAllowed.d.ts +0 -9
  38. package/dist/src/a11y/keycodes/isModifierAllowed.d.ts.map +0 -1
  39. package/dist/src/a11y/list-key/FocusKeyManager.d.ts +0 -17
  40. package/dist/src/a11y/list-key/FocusKeyManager.d.ts.map +0 -1
  41. package/dist/src/a11y/list-key/ListKeyManager.d.ts +0 -114
  42. package/dist/src/a11y/list-key/ListKeyManager.d.ts.map +0 -1
  43. package/dist/src/a11y/list-key/ListManager.d.ts +0 -37
  44. package/dist/src/a11y/list-key/ListManager.d.ts.map +0 -1
  45. package/dist/src/a11y/list-key/RadioKeyManager.d.ts +0 -20
  46. package/dist/src/a11y/list-key/RadioKeyManager.d.ts.map +0 -1
  47. package/dist/src/a11y/list-key/RovingTabIndexManager.d.ts +0 -22
  48. package/dist/src/a11y/list-key/RovingTabIndexManager.d.ts.map +0 -1
  49. package/dist/src/a11y/list-key/SelectionManager.d.ts +0 -46
  50. package/dist/src/a11y/list-key/SelectionManager.d.ts.map +0 -1
  51. package/dist/src/a11y/list-key/Typeahead.d.ts +0 -64
  52. package/dist/src/a11y/list-key/Typeahead.d.ts.map +0 -1
  53. package/dist/src/a11y/list-key/index.d.ts +0 -8
  54. package/dist/src/a11y/list-key/index.d.ts.map +0 -1
  55. package/dist/src/a11y/visuallyHide.d.ts +0 -6
  56. package/dist/src/a11y/visuallyHide.d.ts.map +0 -1
  57. package/dist/src/anchoring/AnchorOptions.d.ts +0 -15
  58. package/dist/src/anchoring/AnchorOptions.d.ts.map +0 -1
  59. package/dist/src/anchoring/AnchorPosition.d.ts +0 -3
  60. package/dist/src/anchoring/AnchorPosition.d.ts.map +0 -1
  61. package/dist/src/anchoring/index.d.ts +0 -4
  62. package/dist/src/anchoring/index.d.ts.map +0 -1
  63. package/dist/src/anchoring/positionAnchor.d.ts +0 -12
  64. package/dist/src/anchoring/positionAnchor.d.ts.map +0 -1
  65. package/dist/src/bidi/Directionality.d.ts +0 -27
  66. package/dist/src/bidi/Directionality.d.ts.map +0 -1
  67. package/dist/src/bidi/index.d.ts +0 -2
  68. package/dist/src/bidi/index.d.ts.map +0 -1
  69. package/dist/src/index.d.ts +0 -2
  70. package/dist/src/index.d.ts.map +0 -1
  71. package/dist/src/layout/Breakpoint.d.ts +0 -26
  72. package/dist/src/layout/Breakpoint.d.ts.map +0 -1
  73. package/dist/src/layout/BreakpointObserver.d.ts +0 -18
  74. package/dist/src/layout/BreakpointObserver.d.ts.map +0 -1
  75. package/dist/src/layout/index.d.ts +0 -3
  76. package/dist/src/layout/index.d.ts.map +0 -1
  77. package/dist/src/platform/Platform.d.ts +0 -34
  78. package/dist/src/platform/Platform.d.ts.map +0 -1
  79. package/dist/src/platform/index.d.ts +0 -2
  80. package/dist/src/platform/index.d.ts.map +0 -1
  81. package/dist/src/shared/controllers/FocusController.d.ts +0 -30
  82. package/dist/src/shared/controllers/FocusController.d.ts.map +0 -1
  83. package/dist/src/shared/controllers/HoverController.d.ts +0 -40
  84. package/dist/src/shared/controllers/HoverController.d.ts.map +0 -1
  85. package/dist/src/shared/controllers/IntersectionController.d.ts +0 -40
  86. package/dist/src/shared/controllers/IntersectionController.d.ts.map +0 -1
  87. package/dist/src/shared/controllers/LongPressController.d.ts +0 -32
  88. package/dist/src/shared/controllers/LongPressController.d.ts.map +0 -1
  89. package/dist/src/shared/controllers/MonitorControllerBase.d.ts +0 -62
  90. package/dist/src/shared/controllers/MonitorControllerBase.d.ts.map +0 -1
  91. package/dist/src/shared/controllers/MutationController.d.ts +0 -37
  92. package/dist/src/shared/controllers/MutationController.d.ts.map +0 -1
  93. package/dist/src/shared/controllers/PressedController.d.ts +0 -45
  94. package/dist/src/shared/controllers/PressedController.d.ts.map +0 -1
  95. package/dist/src/shared/controllers/ResizeController.d.ts +0 -40
  96. package/dist/src/shared/controllers/ResizeController.d.ts.map +0 -1
  97. package/dist/src/shared/controllers/ScrollController.d.ts +0 -34
  98. package/dist/src/shared/controllers/ScrollController.d.ts.map +0 -1
  99. package/dist/src/shared/controllers/index.d.ts +0 -9
  100. package/dist/src/shared/controllers/index.d.ts.map +0 -1
  101. package/dist/src/shared/decorators/debounce.d.ts +0 -7
  102. package/dist/src/shared/decorators/debounce.d.ts.map +0 -1
  103. package/dist/src/shared/decorators/index.d.ts +0 -2
  104. package/dist/src/shared/decorators/index.d.ts.map +0 -1
  105. package/dist/src/shared/directives/index.d.ts +0 -2
  106. package/dist/src/shared/directives/index.d.ts.map +0 -1
  107. package/dist/src/shared/directives/safeStyleMap.d.ts +0 -44
  108. package/dist/src/shared/directives/safeStyleMap.d.ts.map +0 -1
  109. package/dist/src/shared/index.d.ts +0 -8
  110. package/dist/src/shared/index.d.ts.map +0 -1
  111. package/dist/src/shared/mixins/AttachInternals.d.ts +0 -24
  112. package/dist/src/shared/mixins/AttachInternals.d.ts.map +0 -1
  113. package/dist/src/shared/mixins/Checked.d.ts +0 -24
  114. package/dist/src/shared/mixins/Checked.d.ts.map +0 -1
  115. package/dist/src/shared/mixins/CheckedIndeterminate.d.ts +0 -25
  116. package/dist/src/shared/mixins/CheckedIndeterminate.d.ts.map +0 -1
  117. package/dist/src/shared/mixins/CheckedOrSelected.d.ts +0 -23
  118. package/dist/src/shared/mixins/CheckedOrSelected.d.ts.map +0 -1
  119. package/dist/src/shared/mixins/ConstraintValidation.d.ts +0 -48
  120. package/dist/src/shared/mixins/ConstraintValidation.d.ts.map +0 -1
  121. package/dist/src/shared/mixins/Constructor.d.ts +0 -3
  122. package/dist/src/shared/mixins/Constructor.d.ts.map +0 -1
  123. package/dist/src/shared/mixins/Dirty.d.ts +0 -27
  124. package/dist/src/shared/mixins/Dirty.d.ts.map +0 -1
  125. package/dist/src/shared/mixins/Disabled.d.ts +0 -25
  126. package/dist/src/shared/mixins/Disabled.d.ts.map +0 -1
  127. package/dist/src/shared/mixins/DisabledInteractive.d.ts +0 -25
  128. package/dist/src/shared/mixins/DisabledInteractive.d.ts.map +0 -1
  129. package/dist/src/shared/mixins/EventAttribute.d.ts +0 -11
  130. package/dist/src/shared/mixins/EventAttribute.d.ts.map +0 -1
  131. package/dist/src/shared/mixins/Focusable.d.ts +0 -11
  132. package/dist/src/shared/mixins/Focusable.d.ts.map +0 -1
  133. package/dist/src/shared/mixins/FormAssociated.d.ts +0 -34
  134. package/dist/src/shared/mixins/FormAssociated.d.ts.map +0 -1
  135. package/dist/src/shared/mixins/FormSubmitter.d.ts +0 -31
  136. package/dist/src/shared/mixins/FormSubmitter.d.ts.map +0 -1
  137. package/dist/src/shared/mixins/HtmlFor.d.ts +0 -30
  138. package/dist/src/shared/mixins/HtmlFor.d.ts.map +0 -1
  139. package/dist/src/shared/mixins/KeyboardClick.d.ts +0 -11
  140. package/dist/src/shared/mixins/KeyboardClick.d.ts.map +0 -1
  141. package/dist/src/shared/mixins/Labelled.d.ts +0 -22
  142. package/dist/src/shared/mixins/Labelled.d.ts.map +0 -1
  143. package/dist/src/shared/mixins/LinkButton.d.ts +0 -36
  144. package/dist/src/shared/mixins/LinkButton.d.ts.map +0 -1
  145. package/dist/src/shared/mixins/ReadOnly.d.ts +0 -25
  146. package/dist/src/shared/mixins/ReadOnly.d.ts.map +0 -1
  147. package/dist/src/shared/mixins/Required.d.ts +0 -26
  148. package/dist/src/shared/mixins/Required.d.ts.map +0 -1
  149. package/dist/src/shared/mixins/RequiredConstraintValidation.d.ts +0 -21
  150. package/dist/src/shared/mixins/RequiredConstraintValidation.d.ts.map +0 -1
  151. package/dist/src/shared/mixins/Role.d.ts +0 -13
  152. package/dist/src/shared/mixins/Role.d.ts.map +0 -1
  153. package/dist/src/shared/mixins/Selected.d.ts +0 -24
  154. package/dist/src/shared/mixins/Selected.d.ts.map +0 -1
  155. package/dist/src/shared/mixins/Touched.d.ts +0 -27
  156. package/dist/src/shared/mixins/Touched.d.ts.map +0 -1
  157. package/dist/src/shared/mixins/Vertical.d.ts +0 -24
  158. package/dist/src/shared/mixins/Vertical.d.ts.map +0 -1
  159. package/dist/src/shared/mixins/hasKeys.d.ts +0 -9
  160. package/dist/src/shared/mixins/hasKeys.d.ts.map +0 -1
  161. package/dist/src/shared/mixins/index.d.ts +0 -25
  162. package/dist/src/shared/mixins/index.d.ts.map +0 -1
  163. package/dist/src/shared/primitives/CollapsibleElement.d.ts +0 -58
  164. package/dist/src/shared/primitives/CollapsibleElement.d.ts.map +0 -1
  165. package/dist/src/shared/primitives/ElevationElement.d.ts +0 -88
  166. package/dist/src/shared/primitives/ElevationElement.d.ts.map +0 -1
  167. package/dist/src/shared/primitives/ElevationLevel.d.ts +0 -3
  168. package/dist/src/shared/primitives/ElevationLevel.d.ts.map +0 -1
  169. package/dist/src/shared/primitives/ElevationToken.d.ts +0 -15
  170. package/dist/src/shared/primitives/ElevationToken.d.ts.map +0 -1
  171. package/dist/src/shared/primitives/FocusRingElement.d.ts +0 -78
  172. package/dist/src/shared/primitives/FocusRingElement.d.ts.map +0 -1
  173. package/dist/src/shared/primitives/FocusRingToken.d.ts +0 -17
  174. package/dist/src/shared/primitives/FocusRingToken.d.ts.map +0 -1
  175. package/dist/src/shared/primitives/PseudoCheckboxElement.d.ts +0 -50
  176. package/dist/src/shared/primitives/PseudoCheckboxElement.d.ts.map +0 -1
  177. package/dist/src/shared/primitives/PseudoRadioElement.d.ts +0 -41
  178. package/dist/src/shared/primitives/PseudoRadioElement.d.ts.map +0 -1
  179. package/dist/src/shared/primitives/RippleElement.d.ts +0 -110
  180. package/dist/src/shared/primitives/RippleElement.d.ts.map +0 -1
  181. package/dist/src/shared/primitives/RippleToken.d.ts +0 -12
  182. package/dist/src/shared/primitives/RippleToken.d.ts.map +0 -1
  183. package/dist/src/shared/primitives/ScrollContainerElement.d.ts +0 -64
  184. package/dist/src/shared/primitives/ScrollContainerElement.d.ts.map +0 -1
  185. package/dist/src/shared/primitives/ScrollDividers.d.ts +0 -3
  186. package/dist/src/shared/primitives/ScrollDividers.d.ts.map +0 -1
  187. package/dist/src/shared/primitives/SlideElement.d.ts +0 -48
  188. package/dist/src/shared/primitives/SlideElement.d.ts.map +0 -1
  189. package/dist/src/shared/primitives/StateLayerElement.d.ts +0 -77
  190. package/dist/src/shared/primitives/StateLayerElement.d.ts.map +0 -1
  191. package/dist/src/shared/primitives/StateLayerToken.d.ts +0 -13
  192. package/dist/src/shared/primitives/StateLayerToken.d.ts.map +0 -1
  193. package/dist/src/shared/primitives/TextOverflowElement.d.ts +0 -39
  194. package/dist/src/shared/primitives/TextOverflowElement.d.ts.map +0 -1
  195. package/dist/src/shared/primitives/index.d.ts +0 -13
  196. package/dist/src/shared/primitives/index.d.ts.map +0 -1
  197. package/dist/src/shared/tokens/ColorToken.d.ts +0 -96
  198. package/dist/src/shared/tokens/ColorToken.d.ts.map +0 -1
  199. package/dist/src/shared/tokens/DensityToken.d.ts +0 -15
  200. package/dist/src/shared/tokens/DensityToken.d.ts.map +0 -1
  201. package/dist/src/shared/tokens/DesignToken.d.ts +0 -366
  202. package/dist/src/shared/tokens/DesignToken.d.ts.map +0 -1
  203. package/dist/src/shared/tokens/ElevationToken.d.ts +0 -16
  204. package/dist/src/shared/tokens/ElevationToken.d.ts.map +0 -1
  205. package/dist/src/shared/tokens/MotionToken.d.ts +0 -69
  206. package/dist/src/shared/tokens/MotionToken.d.ts.map +0 -1
  207. package/dist/src/shared/tokens/ScrollbarToken.d.ts +0 -10
  208. package/dist/src/shared/tokens/ScrollbarToken.d.ts.map +0 -1
  209. package/dist/src/shared/tokens/ShapeToken.d.ts +0 -79
  210. package/dist/src/shared/tokens/ShapeToken.d.ts.map +0 -1
  211. package/dist/src/shared/tokens/StateToken.d.ts +0 -10
  212. package/dist/src/shared/tokens/StateToken.d.ts.map +0 -1
  213. package/dist/src/shared/tokens/TypescaleToken.d.ts +0 -220
  214. package/dist/src/shared/tokens/TypescaleToken.d.ts.map +0 -1
  215. package/dist/src/shared/tokens/index.d.ts +0 -2
  216. package/dist/src/shared/tokens/index.d.ts.map +0 -1
  217. package/dist/src/shared/utils/getTextContent.d.ts +0 -8
  218. package/dist/src/shared/utils/getTextContent.d.ts.map +0 -1
  219. package/dist/src/shared/utils/guid.d.ts +0 -6
  220. package/dist/src/shared/utils/guid.d.ts.map +0 -1
  221. package/dist/src/shared/utils/hasAssignedNodes.d.ts +0 -7
  222. package/dist/src/shared/utils/hasAssignedNodes.d.ts.map +0 -1
  223. package/dist/src/shared/utils/index.d.ts +0 -6
  224. package/dist/src/shared/utils/index.d.ts.map +0 -1
  225. package/dist/src/shared/utils/prefersReducedMotion.d.ts +0 -6
  226. package/dist/src/shared/utils/prefersReducedMotion.d.ts.map +0 -1
  227. package/dist/src/shared/utils/scrollIntoViewIfNeeded.d.ts +0 -8
  228. package/dist/src/shared/utils/scrollIntoViewIfNeeded.d.ts.map +0 -1
  229. package/eslint.config.mjs +0 -21
  230. package/rollup.config.js +0 -132
  231. package/src/a11y/AriaDescriber.ts +0 -130
  232. package/src/a11y/FocusTrapElement.ts +0 -136
  233. package/src/a11y/InteractivityChecker.ts +0 -62
  234. package/src/a11y/LiveAnnouncer.ts +0 -143
  235. package/src/a11y/aria-reference.ts +0 -51
  236. package/src/a11y/index.ts +0 -8
  237. package/src/a11y/keycodes/KeyCode.ts +0 -128
  238. package/src/a11y/keycodes/ModifierKeys.ts +0 -5
  239. package/src/a11y/keycodes/getKeyCode.ts +0 -8
  240. package/src/a11y/keycodes/hasModifierKey.ts +0 -11
  241. package/src/a11y/keycodes/index.ts +0 -5
  242. package/src/a11y/keycodes/isModifierAllowed.ts +0 -12
  243. package/src/a11y/list-key/FocusKeyManager.ts +0 -25
  244. package/src/a11y/list-key/ListKeyManager.ts +0 -350
  245. package/src/a11y/list-key/ListManager.ts +0 -66
  246. package/src/a11y/list-key/RadioKeyManager.ts +0 -49
  247. package/src/a11y/list-key/RovingTabIndexManager.ts +0 -56
  248. package/src/a11y/list-key/SelectionManager.ts +0 -132
  249. package/src/a11y/list-key/Typeahead.ts +0 -131
  250. package/src/a11y/list-key/index.ts +0 -7
  251. package/src/a11y/visuallyHide.ts +0 -18
  252. package/src/anchoring/AnchorOptions.ts +0 -19
  253. package/src/anchoring/AnchorPosition.ts +0 -14
  254. package/src/anchoring/index.ts +0 -3
  255. package/src/anchoring/positionAnchor.ts +0 -53
  256. package/src/bidi/Directionality.ts +0 -85
  257. package/src/bidi/index.ts +0 -1
  258. package/src/index.ts +0 -1
  259. package/src/layout/Breakpoint.ts +0 -26
  260. package/src/layout/BreakpointObserver.ts +0 -44
  261. package/src/layout/index.ts +0 -2
  262. package/src/platform/Platform.ts +0 -67
  263. package/src/platform/index.ts +0 -1
  264. package/src/shared/controllers/FocusController.ts +0 -60
  265. package/src/shared/controllers/HoverController.ts +0 -140
  266. package/src/shared/controllers/IntersectionController.ts +0 -81
  267. package/src/shared/controllers/LongPressController.ts +0 -87
  268. package/src/shared/controllers/MonitorControllerBase.ts +0 -99
  269. package/src/shared/controllers/MutationController.ts +0 -89
  270. package/src/shared/controllers/PressedController.ts +0 -137
  271. package/src/shared/controllers/ResizeController.ts +0 -83
  272. package/src/shared/controllers/ScrollController.ts +0 -100
  273. package/src/shared/controllers/index.ts +0 -8
  274. package/src/shared/decorators/debounce.ts +0 -19
  275. package/src/shared/decorators/index.ts +0 -1
  276. package/src/shared/directives/index.ts +0 -1
  277. package/src/shared/directives/safeStyleMap.ts +0 -108
  278. package/src/shared/index.ts +0 -7
  279. package/src/shared/mixins/AttachInternals.ts +0 -48
  280. package/src/shared/mixins/Checked.ts +0 -50
  281. package/src/shared/mixins/CheckedIndeterminate.ts +0 -47
  282. package/src/shared/mixins/CheckedOrSelected.ts +0 -36
  283. package/src/shared/mixins/ConstraintValidation.ts +0 -213
  284. package/src/shared/mixins/Constructor.ts +0 -2
  285. package/src/shared/mixins/Dirty.ts +0 -71
  286. package/src/shared/mixins/Disabled.ts +0 -49
  287. package/src/shared/mixins/DisabledInteractive.ts +0 -78
  288. package/src/shared/mixins/EventAttribute.ts +0 -25
  289. package/src/shared/mixins/Focusable.ts +0 -52
  290. package/src/shared/mixins/FormAssociated.ts +0 -152
  291. package/src/shared/mixins/FormSubmitter.ts +0 -123
  292. package/src/shared/mixins/HtmlFor.ts +0 -89
  293. package/src/shared/mixins/KeyboardClick.ts +0 -46
  294. package/src/shared/mixins/Labelled.ts +0 -88
  295. package/src/shared/mixins/LinkButton.ts +0 -169
  296. package/src/shared/mixins/ReadOnly.ts +0 -48
  297. package/src/shared/mixins/Required.ts +0 -50
  298. package/src/shared/mixins/RequiredConstraintValidation.ts +0 -45
  299. package/src/shared/mixins/Role.ts +0 -134
  300. package/src/shared/mixins/Selected.ts +0 -50
  301. package/src/shared/mixins/Touched.ts +0 -71
  302. package/src/shared/mixins/Vertical.ts +0 -44
  303. package/src/shared/mixins/hasKeys.ts +0 -10
  304. package/src/shared/mixins/index.ts +0 -24
  305. package/src/shared/primitives/CollapsibleElement.ts +0 -227
  306. package/src/shared/primitives/ElevationElement.ts +0 -254
  307. package/src/shared/primitives/ElevationLevel.ts +0 -2
  308. package/src/shared/primitives/ElevationToken.ts +0 -18
  309. package/src/shared/primitives/FocusRingElement.ts +0 -199
  310. package/src/shared/primitives/FocusRingToken.ts +0 -24
  311. package/src/shared/primitives/PseudoCheckboxElement.ts +0 -116
  312. package/src/shared/primitives/PseudoRadioElement.ts +0 -83
  313. package/src/shared/primitives/RippleElement.ts +0 -289
  314. package/src/shared/primitives/RippleToken.ts +0 -15
  315. package/src/shared/primitives/ScrollContainerElement.ts +0 -151
  316. package/src/shared/primitives/ScrollDividers.ts +0 -2
  317. package/src/shared/primitives/SlideElement.ts +0 -128
  318. package/src/shared/primitives/StateLayerElement.ts +0 -191
  319. package/src/shared/primitives/StateLayerToken.ts +0 -16
  320. package/src/shared/primitives/TextOverflowElement.ts +0 -60
  321. package/src/shared/primitives/index.ts +0 -12
  322. package/src/shared/tokens/ColorToken.ts +0 -142
  323. package/src/shared/tokens/DensityToken.ts +0 -23
  324. package/src/shared/tokens/DesignToken.ts +0 -35
  325. package/src/shared/tokens/ElevationToken.ts +0 -115
  326. package/src/shared/tokens/MotionToken.ts +0 -107
  327. package/src/shared/tokens/ScrollbarToken.ts +0 -13
  328. package/src/shared/tokens/ShapeToken.ts +0 -138
  329. package/src/shared/tokens/StateToken.ts +0 -13
  330. package/src/shared/tokens/TypescaleToken.ts +0 -230
  331. package/src/shared/tokens/index.ts +0 -1
  332. package/src/shared/utils/getTextContent.ts +0 -31
  333. package/src/shared/utils/guid.ts +0 -11
  334. package/src/shared/utils/hasAssignedNodes.ts +0 -8
  335. package/src/shared/utils/index.ts +0 -5
  336. package/src/shared/utils/prefersReducedMotion.ts +0 -9
  337. package/src/shared/utils/scrollIntoViewIfNeeded.ts +0 -18
  338. package/tsconfig.json +0 -9
package/rollup.config.js DELETED
@@ -1,132 +0,0 @@
1
- import resolve from "@rollup/plugin-node-resolve";
2
- import terser from "@rollup/plugin-terser";
3
- import typescript from "@rollup/plugin-typescript";
4
-
5
- const banner = `/**
6
- * @license MIT
7
- * Copyright (c) 2025 matraic
8
- * See LICENSE file in the project root for full license text.
9
- */`;
10
-
11
- export default [
12
- {
13
- input: "src/index.ts",
14
- output: [
15
- {
16
- file: "dist/index.js",
17
- format: "esm",
18
- sourcemap: true,
19
- banner: banner,
20
- },
21
- {
22
- file: "dist/index.min.js",
23
- format: "esm",
24
- sourcemap: true,
25
- banner: banner,
26
- plugins: [terser({ mangle: true })],
27
- },
28
- ],
29
- external: ["lit"],
30
- plugins: [resolve(), typescript()],
31
- },
32
- {
33
- input: "src/a11y/index.ts",
34
- output: [
35
- {
36
- file: "dist/a11y.js",
37
- format: "esm",
38
- sourcemap: true,
39
- banner: banner,
40
- },
41
- {
42
- file: "dist/a11y.min.js",
43
- format: "esm",
44
- sourcemap: true,
45
- banner: banner,
46
- plugins: [terser({ mangle: true })],
47
- },
48
- ],
49
- external: ["lit"],
50
- plugins: [resolve(), typescript()],
51
- },
52
- {
53
- input: "src/anchoring/index.ts",
54
- output: [
55
- {
56
- file: "dist/anchoring.js",
57
- format: "esm",
58
- sourcemap: true,
59
- banner: banner,
60
- },
61
- {
62
- file: "dist/anchoring.min.js",
63
- format: "esm",
64
- sourcemap: true,
65
- banner: banner,
66
- plugins: [terser({ mangle: true })],
67
- },
68
- ],
69
- external: ["lit"],
70
- plugins: [resolve(), typescript()],
71
- },
72
- {
73
- input: "src/bidi/index.ts",
74
- output: [
75
- {
76
- file: "dist/bidi.js",
77
- format: "esm",
78
- sourcemap: true,
79
- banner: banner,
80
- },
81
- {
82
- file: "dist/bidi.min.js",
83
- format: "esm",
84
- sourcemap: true,
85
- banner: banner,
86
- plugins: [terser({ mangle: true })],
87
- },
88
- ],
89
- external: ["lit"],
90
- plugins: [resolve(), typescript()],
91
- },
92
- {
93
- input: "src/layout/index.ts",
94
- output: [
95
- {
96
- file: "dist/layout.js",
97
- format: "esm",
98
- sourcemap: true,
99
- banner: banner,
100
- },
101
- {
102
- file: "dist/layout.min.js",
103
- format: "esm",
104
- sourcemap: true,
105
- banner: banner,
106
- plugins: [terser({ mangle: true })],
107
- },
108
- ],
109
- external: ["lit"],
110
- plugins: [resolve(), typescript()],
111
- },
112
- {
113
- input: "src/platform/index.ts",
114
- output: [
115
- {
116
- file: "dist/platform.js",
117
- format: "esm",
118
- sourcemap: true,
119
- banner: banner,
120
- },
121
- {
122
- file: "dist/platform.min.js",
123
- format: "esm",
124
- sourcemap: true,
125
- banner: banner,
126
- plugins: [terser({ mangle: true })],
127
- },
128
- ],
129
- external: ["lit"],
130
- plugins: [resolve(), typescript()],
131
- },
132
- ];
@@ -1,130 +0,0 @@
1
- /**
2
- * Adapted from Angular Material CDK ARIA Describer
3
- * Source: https://github.com/angular/components/blob/main/src/cdk/a11y/aria-describer/aria-describer.ts
4
- *
5
- * @license MIT
6
- * Copyright (c) 2025 Google LLC
7
- * See LICENSE file in the project root for full license text.
8
- */
9
-
10
- import { isServer } from "lit";
11
-
12
- import { addAriaReferencedId, removeAriaReferencedId } from "./aria-reference";
13
- import { visuallyHide } from "./visuallyHide";
14
-
15
- /** Utility for generating visually hidden elements that convey descriptive messages using `aria-describedby`. */
16
- export class M3eAriaDescriber {
17
- /** @private */ static #nextId = 0;
18
- /** @private */ static #messageContainers = new Map<
19
- ParentNode,
20
- {
21
- containerElement: HTMLElement;
22
- messageRegistry: Map<string, { messageElement: Element; count: number }>;
23
- }
24
- >();
25
-
26
- /**
27
- * Adds an `aria-describedby` reference to a hidden element that contains the message.
28
- * @param {Element} element The element for which to provide a visually hidden description.
29
- * @param {string} message The message used to describe `element`.
30
- * @param {string} [role="tooltip"] The ARIA role of the message.
31
- */
32
- static describe(element: Element, message: string, role: string = "tooltip"): void {
33
- if (isServer) {
34
- return;
35
- }
36
-
37
- const rootNode = element.getRootNode() as ParentNode;
38
- if (!(rootNode instanceof ShadowRoot || rootNode instanceof Document)) {
39
- return;
40
- }
41
-
42
- let container = this.#messageContainers.get(rootNode);
43
- if (!container) {
44
- container = {
45
- containerElement: this.#createMessageContainer(),
46
- messageRegistry: new Map<string, { messageElement: Element; count: number }>(),
47
- };
48
-
49
- // Append to body if document, otherwise, append as a child of shadow root.
50
- (rootNode instanceof Document ? rootNode.body : rootNode).appendChild(container.containerElement);
51
- this.#messageContainers.set(rootNode, container);
52
- }
53
-
54
- const key = `${role}:${message}`;
55
- let entry = container.messageRegistry.get(key);
56
- if (!entry) {
57
- entry = { messageElement: this.#createMessageElement(message, role), count: 0 };
58
- container.containerElement.appendChild(entry.messageElement);
59
- container.messageRegistry.set(key, entry);
60
- }
61
-
62
- entry.count++;
63
-
64
- addAriaReferencedId(element, "aria-describedby", entry.messageElement.id);
65
- }
66
-
67
- /**
68
- * Removes an `aria-describedby` reference to a hidden element that contains the message.
69
- * @param {Element} element The element from which to remove a visually hidden description.
70
- * @param {string} message The message used to describe `element`.
71
- * @param {string} [role="tooltip"] The ARIA role of the message.
72
- */
73
- static removeDescription(element: Element, message: string, role: string = "tooltip"): void {
74
- if (isServer) {
75
- return;
76
- }
77
-
78
- const rootNode = element.getRootNode() as ParentNode;
79
- const container = this.#messageContainers.get(rootNode);
80
- if (!container) {
81
- return;
82
- }
83
-
84
- const key = `${role}:${message}`;
85
- const entry = container.messageRegistry.get(key);
86
- if (!entry) {
87
- return;
88
- }
89
-
90
- entry.count--;
91
- removeAriaReferencedId(element, "aria-describedby", entry.messageElement.id);
92
-
93
- // If there are no more elements referencing the message, remove it from the DOM.
94
- if (entry.count <= 0) {
95
- entry.messageElement.remove();
96
- container.messageRegistry.delete(key);
97
- }
98
-
99
- // If there are no more registered messages, remove the container from the DOM.
100
- if (container.messageRegistry.size == 0) {
101
- container.containerElement?.remove();
102
- this.#messageContainers.delete(rootNode);
103
- }
104
- }
105
-
106
- /** @private */
107
- static #createMessageContainer(): HTMLElement {
108
- const messageContainer = document.createElement("div");
109
- messageContainer.classList.add("m3e-describedby-message-container");
110
- visuallyHide(messageContainer.style);
111
- return messageContainer;
112
- }
113
-
114
- /** @private */
115
- static #createMessageElement(message: string, role: string): HTMLElement {
116
- const messageElement = document.createElement("span");
117
- messageElement.id = `m3e-describedby-message-${this.#nextId++}`;
118
- messageElement.role = role;
119
- messageElement.ariaAtomic = "true";
120
- messageElement.innerText = message.trim();
121
- return messageElement;
122
- }
123
- }
124
-
125
- declare global {
126
- /** Utility for generating visually hidden elements that convey descriptive messages using `aria-describedby`. */
127
- var M3eAriaDescriber: M3eAriaDescriber;
128
- }
129
-
130
- globalThis.M3eAriaDescriber = M3eAriaDescriber;
@@ -1,136 +0,0 @@
1
- import { css, CSSResultGroup, html, LitElement } from "lit";
2
- import { customElement, query } from "lit/decorators.js";
3
-
4
- import { Disabled } from "../shared/mixins/Disabled";
5
- import { Role } from "../shared/mixins/Role";
6
-
7
- import { M3eInteractivityChecker } from "./InteractivityChecker";
8
-
9
- /**
10
- * A non-visual element used to trap focus within nested content.
11
- * @tag m3e-focus-trap
12
- *
13
- * @slot - Renders content for which to trap focus.
14
- *
15
- * @attr disabled - Disables the focus trap.
16
- */
17
- @customElement("m3e-focus-trap")
18
- export class M3eFocusTrapElement extends Disabled(Role(LitElement, "none")) {
19
- /** The styles of the element. */
20
- static override styles: CSSResultGroup = css`
21
- :host {
22
- display: contents;
23
- }
24
- .trap {
25
- outline: none;
26
- }
27
- `;
28
-
29
- /** @private */ @query(".trap") private readonly _firstTrap!: HTMLElement | null;
30
-
31
- /** @inheritdoc */
32
- protected override render(): unknown {
33
- const trap = html`<div
34
- class="trap"
35
- .inert="${this.disabled}"
36
- tabindex="0"
37
- aria-hidden="true"
38
- @focus="${this.#onFocus}"
39
- ></div>`;
40
- return html`${trap}<slot></slot>${trap}`;
41
- }
42
-
43
- /** @private */
44
- #onFocus(e: FocusEvent): void {
45
- const [first, last] = this.#getFirstAndLastFocusableChild();
46
- const isFirst = e?.target === this._firstTrap;
47
- const fromFirst = e.relatedTarget === first;
48
- const fromLast = e.relatedTarget === last;
49
- const fromOutside = !fromFirst && !fromLast;
50
-
51
- if ((!isFirst && fromLast) || (isFirst && fromOutside)) {
52
- first?.focus();
53
- return;
54
- }
55
- if ((isFirst && fromFirst) || (!isFirst && fromOutside)) {
56
- last?.focus();
57
- }
58
- }
59
-
60
- /** @private */
61
- #getFirstAndLastFocusableChild(): [HTMLElement | null, HTMLElement | null] {
62
- let first: HTMLElement | null = null;
63
- let last: HTMLElement | null = null;
64
-
65
- this.#walkTree(this, [], (element, parents) => {
66
- if (
67
- M3eInteractivityChecker.isFocusable(element, parents) &&
68
- element instanceof HTMLElement &&
69
- element.tabIndex >= 0
70
- ) {
71
- first = first ?? element;
72
- last = element;
73
- }
74
- });
75
-
76
- return [first, last];
77
- }
78
-
79
- /** @private */
80
- #walkTree(
81
- root: Element,
82
- parents: readonly Element[],
83
- callback: (element: Element, parents: readonly Element[]) => void
84
- ): void {
85
- parents = [...parents, root];
86
-
87
- for (const node of root.childNodes) {
88
- if (node.nodeType !== Node.ELEMENT_NODE) continue;
89
- const element = <HTMLElement>node;
90
-
91
- callback(element, parents);
92
-
93
- if (element.shadowRoot) {
94
- this.#walkShadowRoot(element, parents, callback);
95
- } else if (element instanceof HTMLSlotElement) {
96
- this.#walkSlot(element, parents, callback);
97
- } else if (element.hasChildNodes()) {
98
- this.#walkTree(element, parents, callback);
99
- }
100
- }
101
- }
102
-
103
- /** @private */
104
- #walkShadowRoot(
105
- root: Element,
106
- parents: readonly Element[],
107
- callback: (element: Element, parents: readonly Element[]) => void
108
- ): void {
109
- for (const node of root.shadowRoot?.childNodes ?? []) {
110
- if (node.nodeType !== Node.ELEMENT_NODE) continue;
111
- const element = <HTMLElement>node;
112
- callback(element, parents);
113
- if (!element.hasChildNodes()) continue;
114
- this.#walkTree(element, parents, callback);
115
- }
116
- }
117
-
118
- /** @private */
119
- #walkSlot(
120
- slot: HTMLSlotElement,
121
- parents: readonly Element[],
122
- callback: (element: Element, parents: readonly Element[]) => void
123
- ) {
124
- for (const node of slot.assignedElements()) {
125
- callback(node, parents);
126
- if (!node.hasChildNodes()) continue;
127
- this.#walkTree(node, parents, callback);
128
- }
129
- }
130
- }
131
-
132
- declare global {
133
- interface HTMLElementTagNameMap {
134
- "m3e-focus-trap": M3eFocusTrapElement;
135
- }
136
- }
@@ -1,62 +0,0 @@
1
- /** Utility for checking the interactivity of an element, such as whether it is focusable. */
2
- export class M3eInteractivityChecker {
3
- /**
4
- * Determines whether a given element can receive focus.
5
- * @param {Element} element The element to test.
6
- * @param {readonly Element[]} [parents = undefined] The known parent elements to test. The default value is `undefined`.
7
- * @returns {boolean} Whether `element` can receive focus.
8
- */
9
- static isFocusable(element: Element, parents?: readonly Element[]): boolean {
10
- if (
11
- element.matches(
12
- ":is(button,input,select,textarea,object,:is(a,area)[href],[tabindex],[contenteditable=true]):not(:disabled,[disabled])"
13
- )
14
- ) {
15
- return !this.#cannotFocusParent(parents);
16
- }
17
-
18
- if (
19
- !element.localName.includes("-") ||
20
- !element.matches(":not(:disabled,[disabled])") ||
21
- element.getAttribute("aria-disabled") === "true"
22
- ) {
23
- return false;
24
- }
25
-
26
- if (element.shadowRoot?.delegatesFocus) {
27
- return !this.#cannotFocusParent(parents);
28
- }
29
-
30
- return false;
31
- }
32
-
33
- static #cannotFocusParent(parents?: readonly Element[]): boolean {
34
- return parents?.some((x) => x.matches(":is([aria-hidden='true'],:disabled,[disabled])")) ?? false;
35
- }
36
-
37
- /**
38
- * Finds interactive elements that descend from the specified element.
39
- * @param {HTMLElement} element The `HTMLElement` to search.
40
- * @returns {HTMLElement[]} The interactive elements that descend from `element`.
41
- */
42
- static findInteractiveElements(element: HTMLElement): HTMLElement[] {
43
- const elements = new Array<HTMLElement>();
44
- const walker = element.ownerDocument.createTreeWalker(element, NodeFilter.SHOW_ELEMENT);
45
-
46
- for (let node = walker.nextNode(); node; node = walker.nextNode()) {
47
- const element = <HTMLElement>walker.currentNode;
48
- if (this.isFocusable(element)) {
49
- elements.push(element);
50
- }
51
- }
52
-
53
- return elements;
54
- }
55
- }
56
-
57
- declare global {
58
- /** Utility for checking the interactivity of an element, such as whether it is focusable. */
59
- var M3eInteractivityChecker: M3eInteractivityChecker;
60
- }
61
-
62
- globalThis.M3eInteractivityChecker = M3eInteractivityChecker;
@@ -1,143 +0,0 @@
1
- /**
2
- * Adapted from Angular Material CDK Live Announcer
3
- * Source: https://github.com/angular/components/blob/main/src/cdk/a11y/live-announcer/live-announcer.ts
4
- *
5
- * @license MIT
6
- * Copyright (c) 2025 Google LLC
7
- * See LICENSE file in the project root for full license text.
8
- */
9
-
10
- import { isServer } from "lit";
11
-
12
- import { addAriaReferencedId } from "./aria-reference";
13
- import { visuallyHide } from "./visuallyHide";
14
-
15
- /** Specifies the possible politeness levels in which to announce messages. */
16
- export type ARIALivePoliteness = "off" | "polite" | "assertive";
17
-
18
- /** Utility for announcing messages to screen readers. */
19
- export class M3eLiveAnnouncer {
20
- /** @private */ static #nextId = 0;
21
- /** @private */ static #liveElement?: HTMLElement;
22
- /** @private */ static #previousTimeout: number;
23
- /** @private */ static #currentPromise?: Promise<void>;
24
- /** @private */ static #currentResolve?: () => void;
25
-
26
- /**
27
- * Announces the specified message to screen readers.
28
- * @param {string} message The message to announce.
29
- * @returns {Promise<void>} A `Promise` that resolves when `message` is added to the DOM.
30
- */
31
- static announce(message: string): Promise<void>;
32
-
33
- /**
34
- * Announces the specified message to screen readers.
35
- * @param {string} message The message to announce.
36
- * @param {ARIALivePoliteness | undefined} politeness The politeness in which to announce `message`.
37
- * @returns {Promise<void>} A `Promise` that resolves when `message` is added to the DOM.
38
- */
39
- static announce(message: string, politeness?: ARIALivePoliteness): Promise<void>;
40
-
41
- /**
42
- * Announces the specified message to screen readers.
43
- * @param {string} message The message to announce.
44
- * @param {number | undefined} duration The duration, in milliseconds, after which to clear the announcement. Note
45
- * that this takes effect after the message has been added to the DOM, which can be up to
46
- * 100ms after `announce` has been called.
47
- * @returns {Promise<void>} A `Promise` that resolves when `message` is added to the DOM.
48
- */
49
- static announce(message: string, duration?: number): Promise<void>;
50
-
51
- /**
52
- * Announces the specified message to screen readers.
53
- * @param {string} message The message to announce.
54
- * @param {ARIALivePoliteness | undefined} politeness The politeness in which to announce `message`.
55
- * @param {number | undefined} duration The duration, in milliseconds, after which to clear the announcement. Note
56
- * that this takes effect after the message has been added to the DOM, which can be up to 100ms after `announce` has been called.
57
- * @returns {Promise<void>} A `Promise` that resolves when `message` is added to the DOM.
58
- */
59
- static announce(message: string, politeness?: ARIALivePoliteness, duration?: number): Promise<void>;
60
-
61
- static announce(message: string, ...args: any[]): Promise<void> {
62
- if (isServer) {
63
- return Promise.resolve();
64
- }
65
-
66
- this.#liveElement = this.#liveElement ?? this.#createLiveElement();
67
-
68
- let politeness: ARIALivePoliteness | undefined;
69
- let duration: number | undefined;
70
-
71
- if (args.length === 1 && typeof args[0] === "number") {
72
- duration = args[0];
73
- } else {
74
- [politeness, duration] = args;
75
- }
76
-
77
- this.clear();
78
- clearTimeout(this.#previousTimeout);
79
-
80
- this.#liveElement.setAttribute("aria-live", politeness ?? "polite");
81
-
82
- for (const modal of document.querySelectorAll("m3e-dialog")) {
83
- addAriaReferencedId(modal, "aria-owns", this.#liveElement.id);
84
- }
85
-
86
- this.#currentPromise = this.#currentPromise ?? new Promise((resolve) => (this.#currentResolve = resolve));
87
- clearTimeout(this.#previousTimeout);
88
-
89
- this.#previousTimeout = setTimeout(() => {
90
- if (!this.#liveElement) {
91
- return;
92
- }
93
-
94
- this.#liveElement.textContent = message;
95
- if (duration !== undefined) {
96
- this.#previousTimeout = setTimeout(() => this.clear(), duration);
97
- }
98
-
99
- this.#currentResolve?.();
100
- this.#currentPromise = this.#currentResolve = undefined;
101
- }, 100);
102
-
103
- return this.#currentPromise;
104
- }
105
-
106
- /**
107
- * Clears the current text from the announcer element. Can be used to prevent
108
- * screen readers from reading the text out again while the user is going
109
- * through page landmarks.
110
- */
111
- static clear() {
112
- if (this.#liveElement) {
113
- this.#liveElement.textContent = "";
114
- }
115
- }
116
-
117
- /** @private */
118
- static #createLiveElement(): HTMLElement {
119
- const prev = document.getElementsByClassName("m3e-live-announcer");
120
- for (let i = 0; i < prev.length; i++) {
121
- prev[i].remove();
122
- }
123
-
124
- const liveAnnouncer = document.createElement("div");
125
- liveAnnouncer.classList.add("m3e-live-announcer");
126
- liveAnnouncer.setAttribute("aria-atomic", "true");
127
- liveAnnouncer.setAttribute("aria-live", "polite");
128
- liveAnnouncer.id = `m3e-live-announcer-${this.#nextId++}`;
129
-
130
- visuallyHide(liveAnnouncer.style);
131
-
132
- document.body.append(liveAnnouncer);
133
-
134
- return liveAnnouncer;
135
- }
136
- }
137
-
138
- declare global {
139
- /** Utility for announcing messages to screen readers. */
140
- var M3eLiveAnnouncer: M3eLiveAnnouncer;
141
- }
142
-
143
- globalThis.M3eLiveAnnouncer = M3eLiveAnnouncer;
@@ -1,51 +0,0 @@
1
- /**
2
- * Adapted from Angular Material CDK AriaDescriber
3
- * Source: https://github.com/angular/components/blob/main/src/cdk/a11y/aria-describer/aria-reference.ts
4
- *
5
- * @license MIT
6
- * Copyright (c) 2025 Google LLC
7
- * See LICENSE file in the project root for full license text.
8
- */
9
-
10
- /**
11
- * Gets a list of IDs referenced by an element for the specified ARIA attribute.
12
- * @param {Element} element The element from which to get referenced IDs.
13
- * @param {`aria-${string}`} attribute The ARIA attribute from which to get referenced IDs.
14
- * @returns {string[]} a list of IDs referenced by `element` for `attribute`.
15
- */
16
- export function getAriaReferenceIds(element: Element, attribute: `aria-${string}`): string[] {
17
- return element.getAttribute(attribute)?.match(/\S+/g) ?? [];
18
- }
19
-
20
- /**
21
- * Adds an ID to the list of IDs referenced by an element for a given ARIA attribute.
22
- * @param {Element} element The element to which to add a referenced ID.
23
- * @param {`aria-${string}`} attribute The ARIA attribute to which to add an ID.
24
- * @param {string} id The ID to add.
25
- */
26
- export function addAriaReferencedId(element: Element, attribute: `aria-${string}`, id: string): void {
27
- id = id.trim();
28
-
29
- const ids = getAriaReferenceIds(element, attribute);
30
- if (!ids.some((existingId) => existingId.trim() === id)) {
31
- ids.push(id);
32
- element.setAttribute(attribute, ids.join(" "));
33
- }
34
- }
35
-
36
- /**
37
- * Removes an ID from a list of IDs referenced by an element for the specified ARIA attribute.
38
- * @param {Element} element The element from which to remove an ID.
39
- * @param {`aria-${string}`} attribute The ARIA attribute from which to remove an ID.
40
- * @param {string} id The ID to remove.
41
- */
42
- export function removeAriaReferencedId(element: Element, attribute: `aria-${string}`, id: string): void {
43
- id = id.trim();
44
- const ids = getAriaReferenceIds(element, attribute).filter((val) => val !== id);
45
-
46
- if (ids.length > 0) {
47
- element.setAttribute(attribute, ids.join(" "));
48
- } else {
49
- element.removeAttribute(attribute);
50
- }
51
- }
package/src/a11y/index.ts DELETED
@@ -1,8 +0,0 @@
1
- export * from "./list-key";
2
- export * from "./keycodes";
3
-
4
- export * from "./aria-reference";
5
- export * from "./AriaDescriber";
6
- export * from "./FocusTrapElement";
7
- export * from "./InteractivityChecker";
8
- export * from "./LiveAnnouncer";