@momentum-ui/web-components 2.5.6 → 2.5.7

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 (1227) hide show
  1. package/.eslintignore +6 -0
  2. package/.eslintrc.js +20 -0
  3. package/.github/CODEOWNERS +5 -0
  4. package/.github/ISSUE_TEMPLATE/bug_report.md +38 -0
  5. package/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  6. package/.github/pull_request_template.md +191 -0
  7. package/.prettierignore +6 -0
  8. package/.prettierrc +5 -0
  9. package/.storybook/main.ts +75 -0
  10. package/.storybook/manager.ts +14 -0
  11. package/.storybook/preview-body.html +43 -0
  12. package/.storybook/preview-head.html +3 -0
  13. package/.storybook/preview.ts +32 -0
  14. package/.stylelintignore +6 -0
  15. package/.stylelintrc.js +18 -0
  16. package/.vscode/extensions.json +13 -0
  17. package/.vscode/launch.json +13 -0
  18. package/.vscode/settings.json +29 -0
  19. package/ANGULAR_USAGE.md +102 -0
  20. package/APPLYING_STYLES.md +44 -0
  21. package/CONTRIBUTING.md +56 -0
  22. package/REACT_USAGE.md +145 -0
  23. package/VERSIONING.md +28 -0
  24. package/WEB_COMPONENTS_CRASH_COURSE.md +255 -0
  25. package/babel.config.js +4 -0
  26. package/codecov.yml +10 -0
  27. package/jest/cssTransform.js +9 -0
  28. package/jest/imgTransform.js +9 -0
  29. package/jest.config.js +35 -0
  30. package/package.json +119 -6
  31. package/sonar-project.properties +22 -0
  32. package/sonar.config.js +22 -0
  33. package/src/[sandbox]/examples/accordion.ts +67 -0
  34. package/src/[sandbox]/examples/alert-banner.ts +85 -0
  35. package/src/[sandbox]/examples/alert.ts +27 -0
  36. package/src/[sandbox]/examples/avatar.ts +56 -0
  37. package/src/[sandbox]/examples/badge.ts +195 -0
  38. package/src/[sandbox]/examples/breadcrumb.ts +7 -0
  39. package/src/[sandbox]/examples/button-group.ts +66 -0
  40. package/src/[sandbox]/examples/button.ts +214 -0
  41. package/src/[sandbox]/examples/card.ts +76 -0
  42. package/src/[sandbox]/examples/chat-message.ts +33 -0
  43. package/src/[sandbox]/examples/checkbox.ts +51 -0
  44. package/src/[sandbox]/examples/chip.ts +72 -0
  45. package/src/[sandbox]/examples/coachmark.ts +90 -0
  46. package/src/[sandbox]/examples/code-editor.ts +13 -0
  47. package/src/[sandbox]/examples/colorTable.ts +14 -0
  48. package/src/[sandbox]/examples/combobox.ts +194 -0
  49. package/src/[sandbox]/examples/date-range-picker.ts +30 -0
  50. package/src/[sandbox]/examples/date-time-picker.ts +30 -0
  51. package/src/[sandbox]/examples/datepicker.ts +33 -0
  52. package/src/[sandbox]/examples/draggable.ts +72 -0
  53. package/src/[sandbox]/examples/dropdown.ts +161 -0
  54. package/src/[sandbox]/examples/editable-field.ts +111 -0
  55. package/src/[sandbox]/examples/favorite.ts +49 -0
  56. package/src/[sandbox]/examples/floating-modal.ts +102 -0
  57. package/src/[sandbox]/examples/form.ts +101 -0
  58. package/src/[sandbox]/examples/icon.ts +9 -0
  59. package/src/[sandbox]/examples/index.ts +50 -0
  60. package/src/[sandbox]/examples/input-file.ts +7 -0
  61. package/src/[sandbox]/examples/input.ts +363 -0
  62. package/src/[sandbox]/examples/label.ts +12 -0
  63. package/src/[sandbox]/examples/link.ts +51 -0
  64. package/src/[sandbox]/examples/list.ts +45 -0
  65. package/src/[sandbox]/examples/loading.ts +8 -0
  66. package/src/[sandbox]/examples/meeting-alert.ts +108 -0
  67. package/src/[sandbox]/examples/menu-item.ts +33 -0
  68. package/src/[sandbox]/examples/menu-overlay.ts +415 -0
  69. package/src/[sandbox]/examples/modal.ts +243 -0
  70. package/src/[sandbox]/examples/pagination.ts +13 -0
  71. package/src/[sandbox]/examples/phone-input.ts +72 -0
  72. package/src/[sandbox]/examples/progress-bar.ts +6 -0
  73. package/src/[sandbox]/examples/radio-group.ts +36 -0
  74. package/src/[sandbox]/examples/slider.ts +17 -0
  75. package/src/[sandbox]/examples/spinner.ts +6 -0
  76. package/src/[sandbox]/examples/table-advanced.ts +114 -0
  77. package/src/[sandbox]/examples/table.ts +25 -0
  78. package/src/[sandbox]/examples/tabs.ts +612 -0
  79. package/src/[sandbox]/examples/task-item.ts +65 -0
  80. package/src/[sandbox]/examples/timepicker.ts +26 -0
  81. package/src/[sandbox]/examples/toggle-switch.ts +29 -0
  82. package/src/[sandbox]/examples/tooltip.ts +144 -0
  83. package/src/[sandbox]/favicon.ico +0 -0
  84. package/src/[sandbox]/index.html +17 -0
  85. package/src/[sandbox]/sandbox.mock.ts +515 -0
  86. package/src/[sandbox]/sandbox.scss +37 -0
  87. package/src/[sandbox]/sandbox.ts +468 -0
  88. package/src/assets/images/profile.svg +47 -0
  89. package/src/assets/images/whatsapp.svg +1104 -0
  90. package/src/assets/images/wxm.svg +8 -0
  91. package/{dist → src}/assets/styles/fonts.css +0 -0
  92. package/src/components/accordion/Accordion.stories.ts +41 -0
  93. package/src/components/accordion/Accordion.test.ts +147 -0
  94. package/src/components/accordion/Accordion.ts +188 -0
  95. package/src/components/accordion/AccordionItem.test.ts +130 -0
  96. package/src/components/accordion/AccordionItem.ts +175 -0
  97. package/src/components/accordion/scss/accordion-item.scss +63 -0
  98. package/src/components/accordion/scss/accordion.scss +23 -0
  99. package/src/components/accordion/scss/mixins.scss +16 -0
  100. package/src/components/accordion/scss/module.scss +17 -0
  101. package/src/components/accordion/scss/settings.scss +10 -0
  102. package/src/components/accordion/tokens/lm-accordion-tokens.js +26 -0
  103. package/src/components/accordion/tokens/md-accordion-tokens.js +26 -0
  104. package/src/components/activity-button/ActivityButton.test.ts +55 -0
  105. package/src/components/activity-button/ActivityButton.ts +92 -0
  106. package/src/components/activity-button/scss/activity-button.scss +160 -0
  107. package/src/components/activity-button/scss/module.scss +63 -0
  108. package/src/components/alert/Alert.stories.ts +48 -0
  109. package/src/components/alert/Alert.test.ts +145 -0
  110. package/src/components/alert/Alert.ts +135 -0
  111. package/src/components/alert/scss/alert.scss +85 -0
  112. package/src/components/alert/scss/mixins.scss +27 -0
  113. package/src/components/alert/scss/module.scss +21 -0
  114. package/src/components/alert/scss/settings.scss +37 -0
  115. package/src/components/alert/tokens/lm-alert-tokens.js +52 -0
  116. package/src/components/alert/tokens/md-alert-tokens.js +52 -0
  117. package/src/components/alert-banner/AlertBanner.stories.ts +48 -0
  118. package/src/components/alert-banner/AlertBanner.test.ts +84 -0
  119. package/src/components/alert-banner/AlertBanner.ts +89 -0
  120. package/src/components/alert-banner/scss/alert-banner.scss +52 -0
  121. package/src/components/alert-banner/scss/mixins.scss +8 -0
  122. package/src/components/alert-banner/scss/module.scss +9 -0
  123. package/src/components/alert-banner/scss/settings.scss +15 -0
  124. package/src/components/alert-banner/tokens/lm-alertbanner-tokens.js +40 -0
  125. package/src/components/alert-banner/tokens/md-alertbanner-tokens.js +40 -0
  126. package/src/components/avatar/Avatar.stories.ts +82 -0
  127. package/src/components/avatar/Avatar.test.ts +119 -0
  128. package/src/components/avatar/Avatar.ts +207 -0
  129. package/src/components/avatar/CompositeAvatar.ts +48 -0
  130. package/src/components/avatar/scss/avatar.scss +295 -0
  131. package/src/components/avatar/scss/composite-avatar.scss +89 -0
  132. package/src/components/avatar/scss/mixins.scss +33 -0
  133. package/src/components/avatar/scss/module.scss +19 -0
  134. package/src/components/avatar/scss/settings.scss +204 -0
  135. package/src/components/avatar/tokens/lm-avatar-tokens.js +170 -0
  136. package/src/components/avatar/tokens/md-avatar-tokens.js +160 -0
  137. package/src/components/badge/Badge.stories.ts +70 -0
  138. package/src/components/badge/Badge.test.ts +127 -0
  139. package/src/components/badge/Badge.ts +98 -0
  140. package/src/components/badge/scss/badge.scss +215 -0
  141. package/src/components/badge/scss/mixins.scss +82 -0
  142. package/src/components/badge/scss/module.scss +14 -0
  143. package/src/components/badge/scss/settings.scss +69 -0
  144. package/src/components/badge/tokens/lm-badge-tokens.js +296 -0
  145. package/src/components/badge/tokens/md-badge-tokens.js +286 -0
  146. package/src/components/breadcrumb/Breadcrumb.stories.ts +56 -0
  147. package/src/components/breadcrumb/Breadcrumb.test.ts +42 -0
  148. package/src/components/breadcrumb/Breadcrumb.ts +85 -0
  149. package/src/components/breadcrumb/scss/breadcrumb.scss +39 -0
  150. package/src/components/breadcrumb/scss/mixins.scss +5 -0
  151. package/src/components/breadcrumb/scss/module.scss +15 -0
  152. package/src/components/breadcrumb/scss/settings.scss +6 -0
  153. package/src/components/breadcrumb/tokens/lm-breadcrumb-token.js +23 -0
  154. package/src/components/breadcrumb/tokens/md-breadcrumb-token.js +23 -0
  155. package/src/components/button/Button.mdx +77 -0
  156. package/src/components/button/Button.stories.ts +115 -0
  157. package/src/components/button/Button.test.ts +207 -0
  158. package/src/components/button/Button.ts +360 -0
  159. package/src/components/button/README.md +72 -0
  160. package/src/components/button/scss/button.scss +764 -0
  161. package/src/components/button/scss/mixins.scss +257 -0
  162. package/src/components/button/scss/module.scss +18 -0
  163. package/src/components/button/scss/settings.scss +235 -0
  164. package/src/components/button/tokens/lm-button-tokens.js +292 -0
  165. package/src/components/button-group/ButtonGroup.stories.ts +41 -0
  166. package/src/components/button-group/ButtonGroup.test.ts +148 -0
  167. package/src/components/button-group/ButtonGroup.ts +219 -0
  168. package/src/components/button-group/scss/button-group.scss +66 -0
  169. package/src/components/button-group/scss/module.scss +16 -0
  170. package/src/components/button-group/scss/settings.scss +5 -0
  171. package/src/components/button-group/tokens/lm-button-group-tokens.js +38 -0
  172. package/src/components/button-group/tokens/md-button-group-tokens.js +38 -0
  173. package/src/components/card/Card.stories.ts +84 -0
  174. package/src/components/card/Card.test.ts +86 -0
  175. package/src/components/card/Card.ts +177 -0
  176. package/src/components/card/scss/card.scss +114 -0
  177. package/src/components/card/scss/module.scss +13 -0
  178. package/src/components/card/scss/settings.scss +11 -0
  179. package/src/components/chat-message/ChatMessage.stories.ts +40 -0
  180. package/src/components/chat-message/ChatMessage.test.ts +55 -0
  181. package/src/components/chat-message/ChatMessage.ts +54 -0
  182. package/src/components/chat-message/scss/chat-message.scss +43 -0
  183. package/src/components/chat-message/scss/mixins.scss +6 -0
  184. package/src/components/chat-message/scss/module.scss +16 -0
  185. package/src/components/chat-message/scss/settings.scss +7 -0
  186. package/src/components/chat-message/tokens/lm-chat-message-tokens.js +18 -0
  187. package/src/components/chat-message/tokens/md-chat-message-tokens.js +18 -0
  188. package/src/components/checkbox/Checkbox.stories.ts +53 -0
  189. package/src/components/checkbox/Checkbox.test.ts +124 -0
  190. package/src/components/checkbox/Checkbox.ts +172 -0
  191. package/src/components/checkbox/CheckboxGroup.test.ts +43 -0
  192. package/src/components/checkbox/CheckboxGroup.ts +91 -0
  193. package/src/components/checkbox/scss/checkbox.scss +139 -0
  194. package/src/components/checkbox/scss/checkboxgroup.scss +17 -0
  195. package/src/components/checkbox/scss/mixins.scss +0 -0
  196. package/src/components/checkbox/scss/module.scss +13 -0
  197. package/src/components/checkbox/scss/settings.scss +15 -0
  198. package/src/components/checkbox/tokens/lm-checkbox-tokens.js +78 -0
  199. package/src/components/checkbox/tokens/md-checkbox-tokens.js +79 -0
  200. package/src/components/chip/Chip.stories.ts +82 -0
  201. package/src/components/chip/Chip.test.ts +129 -0
  202. package/src/components/chip/Chip.ts +241 -0
  203. package/src/components/chip/scss/chip.scss +379 -0
  204. package/src/components/chip/scss/mixins.scss +53 -0
  205. package/src/components/chip/scss/module.scss +21 -0
  206. package/src/components/chip/scss/settings.scss +5 -0
  207. package/src/components/coachmark/Coachmark.stories.ts +49 -0
  208. package/src/components/coachmark/Coachmark.test.ts +60 -0
  209. package/src/components/coachmark/Coachmark.ts +144 -0
  210. package/src/components/coachmark/scss/coachmarks.scss +528 -0
  211. package/src/components/coachmark/scss/module.scss +14 -0
  212. package/src/components/coachmark/scss/settings.scss +4 -0
  213. package/src/components/coachmark/tokens/lm-coachmark-tokens.js +140 -0
  214. package/src/components/coachmark/tokens/md-coachmark-tokens.js +130 -0
  215. package/src/components/code-editor/CodeEditor.stories.ts +32 -0
  216. package/src/components/code-editor/CodeEditor.test.ts +48 -0
  217. package/src/components/code-editor/CodeEditor.ts +183 -0
  218. package/src/components/code-editor/scss/code-editor.scss +144 -0
  219. package/src/components/code-editor/scss/module.scss +12 -0
  220. package/src/components/code-editor/scss/settings.scss +10 -0
  221. package/src/components/combobox/ComboBox.stories.ts +167 -0
  222. package/src/components/combobox/ComboBox.test.ts +1136 -0
  223. package/src/components/combobox/ComboBox.ts +1093 -0
  224. package/src/components/combobox/scss/combobox.scss +318 -0
  225. package/src/components/combobox/scss/mixins.scss +9 -0
  226. package/src/components/combobox/scss/module.scss +17 -0
  227. package/src/components/combobox/scss/settings.scss +33 -0
  228. package/src/components/combobox/tokens/lm-combobox-tokens.js +120 -0
  229. package/src/components/combobox/tokens/md-combobox-tokens.js +120 -0
  230. package/src/components/date-range-picker/DateRangePicker.stories.ts +62 -0
  231. package/src/components/date-range-picker/DateRangePicker.test.ts +184 -0
  232. package/src/components/date-range-picker/DateRangePicker.ts +92 -0
  233. package/src/components/date-range-picker/scss/daterangepicker.scss +0 -0
  234. package/src/components/date-range-picker/tokens/lm-date-range-picker-tokens.js +26 -0
  235. package/src/components/date-range-picker/tokens/md-date-range-picker-tokens.js +26 -0
  236. package/src/components/date-time-picker/DateTimePicker.stories.ts +73 -0
  237. package/src/components/date-time-picker/DateTimePicker.test.ts +43 -0
  238. package/src/components/date-time-picker/DateTimePicker.ts +175 -0
  239. package/src/components/date-time-picker/scss/date-time-picker.scss +7 -0
  240. package/src/components/date-time-picker/scss/module.scss +9 -0
  241. package/src/components/date-time-picker/scss/settings.scss +1 -0
  242. package/src/components/datepicker/DatePicker.stories.ts +56 -0
  243. package/src/components/datepicker/DatePicker.test.ts +101 -0
  244. package/src/components/datepicker/DatePicker.ts +263 -0
  245. package/src/components/datepicker/datepicker-calendar/DatePickerCalendar.test.ts +51 -0
  246. package/src/components/datepicker/datepicker-calendar/DatePickerCalendar.ts +175 -0
  247. package/src/components/datepicker/datepicker-day/DatePickerDay.test.ts +76 -0
  248. package/src/components/datepicker/datepicker-day/DatePickerDay.ts +162 -0
  249. package/src/components/datepicker/datepicker-month/DatePickerMonth.test.ts +17 -0
  250. package/src/components/datepicker/datepicker-month/DatePickerMonth.ts +73 -0
  251. package/src/components/datepicker/datepicker-week/DatePickerWeek.test.ts +17 -0
  252. package/src/components/datepicker/datepicker-week/DatePickerWeek.ts +60 -0
  253. package/src/components/datepicker/scss/datepicker.scss +209 -0
  254. package/src/components/datepicker/scss/module.scss +9 -0
  255. package/src/components/datepicker/scss/settings.scss +9 -0
  256. package/src/components/datepicker/tokens/lm-datepicker-tokens.js +52 -0
  257. package/src/components/datepicker/tokens/md-datepicker-tokens.js +52 -0
  258. package/src/components/draggable/Draggable.mdx +258 -0
  259. package/src/components/draggable/Draggable.stories.ts +181 -0
  260. package/src/components/draggable/Draggable.test.ts +121 -0
  261. package/src/components/draggable/Draggable.ts +203 -0
  262. package/src/components/draggable/DraggableItem.test.ts +49 -0
  263. package/src/components/draggable/DraggableItem.ts +64 -0
  264. package/src/components/draggable/scss/draggable-item.scss +53 -0
  265. package/src/components/draggable/scss/module.scss +12 -0
  266. package/src/components/draggable/scss/settings.scss +6 -0
  267. package/src/components/dropdown/Dropdown.stories.ts +83 -0
  268. package/src/components/dropdown/Dropdown.test.ts +294 -0
  269. package/src/components/dropdown/Dropdown.ts +495 -0
  270. package/src/components/dropdown/scss/dropdown.scss +152 -0
  271. package/src/components/dropdown/scss/mixins.scss +23 -0
  272. package/src/components/dropdown/scss/module.scss +25 -0
  273. package/src/components/dropdown/scss/settings.scss +24 -0
  274. package/src/components/dropdown/tokens/lm-dropdown-tokens.js +58 -0
  275. package/src/components/dropdown/tokens/md-dropdown-tokens.js +58 -0
  276. package/src/components/editable-textfield/EditableTextfield.stories.ts +113 -0
  277. package/src/components/editable-textfield/EditableTextfield.test.ts +232 -0
  278. package/src/components/editable-textfield/EditableTextfield.ts +258 -0
  279. package/src/components/editable-textfield/scss/editable-textfield.scss +108 -0
  280. package/src/components/editable-textfield/scss/module.scss +14 -0
  281. package/src/components/editable-textfield/scss/settings.scss +6 -0
  282. package/src/components/editable-textfield/tokens/lm-editabletextfield-tokens.js +130 -0
  283. package/src/components/editable-textfield/tokens/md-editabletextfield-tokens.js +118 -0
  284. package/src/components/favorite/Favorite.stories.ts +42 -0
  285. package/src/components/favorite/Favorite.test.ts +66 -0
  286. package/src/components/favorite/Favorite.ts +119 -0
  287. package/src/components/favorite/scss/favorite.scss +73 -0
  288. package/src/components/favorite/scss/module.scss +18 -0
  289. package/src/components/favorite/scss/settings.scss +3 -0
  290. package/src/components/floating-modal/Floating.mdx +42 -0
  291. package/src/components/floating-modal/FloatingMinimizedModal.test.ts +96 -0
  292. package/src/components/floating-modal/FloatingMinimizedModal.ts +274 -0
  293. package/src/components/floating-modal/FloatingModal.stories.ts +75 -0
  294. package/src/components/floating-modal/FloatingModal.test.ts +119 -0
  295. package/src/components/floating-modal/FloatingModal.ts +360 -0
  296. package/src/components/floating-modal/README.md +36 -0
  297. package/src/components/floating-modal/scss/floating.scss +85 -0
  298. package/src/components/floating-modal/scss/module.scss +19 -0
  299. package/src/components/floating-modal/scss/settings.scss +5 -0
  300. package/src/components/floating-modal/tokens/lm-floating-modal-tokens.js +46 -0
  301. package/src/components/floating-modal/tokens/md-floating-modal-tokens.js +46 -0
  302. package/src/components/form/Form.stories.ts +64 -0
  303. package/src/components/form/Form.test.ts +59 -0
  304. package/src/components/form/Form.ts +229 -0
  305. package/src/components/help-text/HelpText.test.ts +39 -0
  306. package/src/components/help-text/HelpText.ts +60 -0
  307. package/src/components/help-text/scss/help-text.scss +34 -0
  308. package/src/components/help-text/scss/mixins.scss +14 -0
  309. package/src/components/help-text/scss/module.scss +13 -0
  310. package/src/components/help-text/scss/settings.scss +5 -0
  311. package/src/components/help-text/tokens/lm-help-text-tokens.js +16 -0
  312. package/src/components/help-text/tokens/md-help-text-tokens.js +16 -0
  313. package/src/components/icon/Icon.stories.ts +66 -0
  314. package/src/components/icon/Icon.test.ts +75 -0
  315. package/src/components/icon/Icon.ts +168 -0
  316. package/src/components/icon/scss/icon.scss +15 -0
  317. package/src/components/icon/scss/module.scss +17 -0
  318. package/src/components/icon/scss/settings.scss +10 -0
  319. package/src/components/input/Input.stories.ts +136 -0
  320. package/src/components/input/Input.test.ts +335 -0
  321. package/src/components/input/Input.ts +533 -0
  322. package/src/components/input/scss/input.scss +399 -0
  323. package/src/components/input/scss/module.scss +26 -0
  324. package/src/components/input/scss/settings.scss +120 -0
  325. package/src/components/input/tokens/lm-input-tokens.js +138 -0
  326. package/src/components/input/tokens/md-input-tokens.js +128 -0
  327. package/src/components/input-file/InputFile.stories.ts +27 -0
  328. package/src/components/input-file/InputFile.test.ts +43 -0
  329. package/src/components/input-file/InputFile.ts +116 -0
  330. package/src/components/input-file/scss/input-file.scss +8 -0
  331. package/src/components/input-file/scss/module.scss +6 -0
  332. package/src/components/label/Label.stories.ts +57 -0
  333. package/src/components/label/Label.test.ts +27 -0
  334. package/src/components/label/Label.ts +90 -0
  335. package/src/components/label/scss/label.scss +36 -0
  336. package/src/components/label/scss/mixins.scss +25 -0
  337. package/src/components/label/scss/module.scss +17 -0
  338. package/src/components/label/scss/settings.scss +8 -0
  339. package/src/components/label/tokens/lm-label-tokens.js +18 -0
  340. package/src/components/label/tokens/md-label-tokens.js +18 -0
  341. package/src/components/link/Link.stories.ts +48 -0
  342. package/src/components/link/Link.test.ts +72 -0
  343. package/src/components/link/Link.ts +96 -0
  344. package/src/components/link/scss/link.scss +27 -0
  345. package/src/components/link/scss/mixins.scss +124 -0
  346. package/src/components/link/scss/module.scss +14 -0
  347. package/src/components/link/scss/settings.scss +5 -0
  348. package/src/components/link/tokens/lm-link-tokens.js +61 -0
  349. package/src/components/link/tokens/md-link-tokens.js +127 -0
  350. package/src/components/list/List.stories.ts +57 -0
  351. package/src/components/list/List.test.ts +217 -0
  352. package/src/components/list/List.ts +181 -0
  353. package/src/components/list/ListItem.test.ts +45 -0
  354. package/src/components/list/ListItem.ts +68 -0
  355. package/src/components/list/scss/list.scss +26 -0
  356. package/src/components/list/scss/listitem.scss +48 -0
  357. package/src/components/list/scss/mixins.scss +8 -0
  358. package/src/components/list/scss/module.scss +15 -0
  359. package/src/components/list/scss/settings.scss +7 -0
  360. package/src/components/list/tokens/lm-list-tokens.js +38 -0
  361. package/src/components/list/tokens/md-list-tokens.js +38 -0
  362. package/src/components/loading/Loading.stories.ts +46 -0
  363. package/src/components/loading/Loading.test.ts +33 -0
  364. package/src/components/loading/Loading.ts +48 -0
  365. package/src/components/loading/scss/loading.scss +69 -0
  366. package/src/components/loading/scss/module.scss +8 -0
  367. package/src/components/meeting-alert/CompositeAvatar.ts +37 -0
  368. package/src/components/meeting-alert/MeetingAlert.stories.ts +95 -0
  369. package/src/components/meeting-alert/MeetingAlert.test.ts +214 -0
  370. package/src/components/meeting-alert/MeetingAlert.ts +203 -0
  371. package/src/components/meeting-alert/scss/alert.scss +244 -0
  372. package/src/components/meeting-alert/scss/mixins.scss +13 -0
  373. package/src/components/meeting-alert/scss/module.scss +20 -0
  374. package/src/components/meeting-alert/scss/settings.scss +30 -0
  375. package/src/components/menu/Menu.stories.ts +63 -0
  376. package/src/components/menu/Menu.test.ts +109 -0
  377. package/src/components/menu/Menu.ts +213 -0
  378. package/src/components/menu/MenuItem.test.ts +54 -0
  379. package/src/components/menu/MenuItem.ts +160 -0
  380. package/src/components/menu/scss/menu-item.scss +34 -0
  381. package/src/components/menu/scss/menu.scss +31 -0
  382. package/src/components/menu/scss/module.scss +15 -0
  383. package/src/components/menu/scss/settings.scss +1 -0
  384. package/src/components/menu/tokens/lm-menu-tokens.js +27 -0
  385. package/src/components/menu/tokens/md-menu-tokens.js +27 -0
  386. package/src/components/menu-overlay/MenuOverlay.stories.ts +85 -0
  387. package/src/components/menu-overlay/MenuOverlay.test.ts +360 -0
  388. package/src/components/menu-overlay/MenuOverlay.ts +373 -0
  389. package/src/components/menu-overlay/scss/menu-overlay.scss +75 -0
  390. package/src/components/menu-overlay/scss/module.scss +12 -0
  391. package/src/components/menu-overlay/scss/settings.scss +6 -0
  392. package/src/components/modal/Modal.stories.ts +81 -0
  393. package/src/components/modal/Modal.test.ts +169 -0
  394. package/src/components/modal/Modal.ts +300 -0
  395. package/src/components/modal/scss/mixins.scss +107 -0
  396. package/src/components/modal/scss/modal.scss +405 -0
  397. package/src/components/modal/scss/module.scss +18 -0
  398. package/src/components/modal/scss/settings.scss +59 -0
  399. package/src/components/modal/tokens/lm-modal-tokens.js +44 -0
  400. package/src/components/modal/tokens/md-modal-tokens.js +44 -0
  401. package/src/components/pagination/Pagination.stories.ts +37 -0
  402. package/src/components/pagination/Pagination.test.ts +76 -0
  403. package/src/components/pagination/Pagination.ts +211 -0
  404. package/src/components/pagination/scss/mixins.scss +11 -0
  405. package/src/components/pagination/scss/module.scss +18 -0
  406. package/src/components/pagination/scss/pagination.scss +101 -0
  407. package/src/components/pagination/scss/settings.scss +11 -0
  408. package/src/components/pagination/tokens/lm-pagination-tokens.js +49 -0
  409. package/src/components/pagination/tokens/md-pagination-tokens.js +49 -0
  410. package/src/components/phone-input/PhoneInput.stories.ts +47 -0
  411. package/src/components/phone-input/PhoneInput.test.ts +193 -0
  412. package/src/components/phone-input/PhoneInput.ts +241 -0
  413. package/src/components/phone-input/scss/module.scss +7 -0
  414. package/src/components/phone-input/scss/phoneInput.scss +95 -0
  415. package/src/components/phone-input/scss/settings.scss +3 -0
  416. package/src/components/phone-input/tokens/lm-phone-input-tokens.js +26 -0
  417. package/src/components/phone-input/tokens/md-phone-input-tokens.js +26 -0
  418. package/src/components/progress-bar/ProgressBar.stories.ts +50 -0
  419. package/src/components/progress-bar/ProgressBar.test.ts +80 -0
  420. package/src/components/progress-bar/ProgressBar.ts +112 -0
  421. package/src/components/progress-bar/scss/mixins.scss +48 -0
  422. package/src/components/progress-bar/scss/module.scss +10 -0
  423. package/src/components/progress-bar/scss/progress.scss +66 -0
  424. package/src/components/progress-bar/scss/settings.scss +27 -0
  425. package/src/components/radio/Radio.test.ts +60 -0
  426. package/src/components/radio/Radio.ts +93 -0
  427. package/src/components/radio/RadioGroup.stories.ts +45 -0
  428. package/src/components/radio/RadioGroup.test.ts +187 -0
  429. package/src/components/radio/RadioGroup.ts +175 -0
  430. package/src/components/radio/scss/mixins.scss +7 -0
  431. package/src/components/radio/scss/module.scss +17 -0
  432. package/src/components/radio/scss/radio.scss +101 -0
  433. package/src/components/radio/scss/radiogroup.scss +25 -0
  434. package/src/components/radio/scss/settings.scss +17 -0
  435. package/src/components/radio/tokens/lm-radio-tokens.js +80 -0
  436. package/src/components/radio/tokens/md-radio-tokens.js +80 -0
  437. package/src/components/sass-stats/README.md +25 -0
  438. package/src/components/sass-stats/SassStats.test.ts +17 -0
  439. package/src/components/sass-stats/SassStats.ts +110 -0
  440. package/src/components/slider/Slider.stories.ts +47 -0
  441. package/src/components/slider/Slider.test.ts +132 -0
  442. package/src/components/slider/Slider.ts +274 -0
  443. package/src/components/slider/scss/mixins.scss +5 -0
  444. package/src/components/slider/scss/module.scss +17 -0
  445. package/src/components/slider/scss/settings.scss +10 -0
  446. package/src/components/slider/scss/slider.scss +139 -0
  447. package/src/components/slider/tokens/lm-slider-token.js +57 -0
  448. package/src/components/slider/tokens/md-slider-tokens.js +61 -0
  449. package/src/components/spinner/Spinner.stories.ts +39 -0
  450. package/src/components/spinner/Spinner.test.ts +22 -0
  451. package/src/components/spinner/Spinner.ts +42 -0
  452. package/src/components/spinner/scss/mixins.scss +34 -0
  453. package/src/components/spinner/scss/module.scss +10 -0
  454. package/src/components/spinner/scss/settings.scss +3 -0
  455. package/src/components/spinner/scss/spinner.scss +37 -0
  456. package/src/components/spinner/tokens/lm-spinner-tokens.js +16 -0
  457. package/src/components/spinner/tokens/md-spinner-tokens.js +18 -0
  458. package/src/components/table/Table.stories.ts +77 -0
  459. package/src/components/table/Table.test.ts +55 -0
  460. package/src/components/table/Table.ts +219 -0
  461. package/src/components/table/scss/mixins.scss +6 -0
  462. package/src/components/table/scss/module.scss +27 -0
  463. package/src/components/table/scss/settings.scss +11 -0
  464. package/src/components/table/scss/table.scss +164 -0
  465. package/src/components/table/tokens/lm-table-tokens.js +42 -0
  466. package/src/components/table/tokens/md-table-tokens.js +42 -0
  467. package/src/components/table-advanced/TableAdvanced.md +232 -0
  468. package/src/components/table-advanced/TableAdvanced.mdx +239 -0
  469. package/src/components/table-advanced/TableAdvanced.stories.ts +182 -0
  470. package/src/components/table-advanced/TableAdvanced.test.ts +299 -0
  471. package/src/components/table-advanced/TableAdvanced.ts +1068 -0
  472. package/src/components/table-advanced/scss/module.scss +27 -0
  473. package/src/components/table-advanced/scss/settings.scss +16 -0
  474. package/src/components/table-advanced/scss/table-advanced.scss +426 -0
  475. package/src/components/table-advanced/src/decorators.ts +149 -0
  476. package/src/components/table-advanced/src/filter.ts +86 -0
  477. package/src/components/table-advanced/tokens/lm-table-advanced-tokens.js +64 -0
  478. package/src/components/table-advanced/tokens/md-table-advanced-tokens.js +64 -0
  479. package/src/components/tabs/Tab.test.ts +119 -0
  480. package/src/components/tabs/Tab.ts +204 -0
  481. package/src/components/tabs/TabPanel.test.ts +24 -0
  482. package/src/components/tabs/TabPanel.ts +46 -0
  483. package/src/components/tabs/Tabs.stories.ts +177 -0
  484. package/src/components/tabs/Tabs.test.ts +486 -0
  485. package/src/components/tabs/Tabs.ts +1081 -0
  486. package/src/components/tabs/scss/mixins.scss +5 -0
  487. package/src/components/tabs/scss/module.scss +16 -0
  488. package/src/components/tabs/scss/settings.scss +18 -0
  489. package/src/components/tabs/scss/tab.scss +151 -0
  490. package/src/components/tabs/scss/tabs.scss +227 -0
  491. package/src/components/tabs/tokens/lm-tabs-tokens.js +76 -0
  492. package/src/components/tabs/tokens/md-tabs-tokens.js +68 -0
  493. package/src/components/taskitem/TaskItem.stories.ts +66 -0
  494. package/src/components/taskitem/TaskItem.test.ts +349 -0
  495. package/src/components/taskitem/TaskItem.ts +249 -0
  496. package/src/components/taskitem/scss/mixins.scss +42 -0
  497. package/src/components/taskitem/scss/module.scss +15 -0
  498. package/src/components/taskitem/scss/settings.scss +43 -0
  499. package/src/components/taskitem/scss/task-item.scss +196 -0
  500. package/src/components/taskitem/tokens/lm-taskitem-tokens.js +66 -0
  501. package/src/components/taskitem/tokens/md-taskitem-tokens.js +66 -0
  502. package/src/components/theme/README.md +13 -0
  503. package/src/components/theme/Theme.test.ts +40 -0
  504. package/src/components/theme/Theme.ts +342 -0
  505. package/src/components/theme/index.ts +6 -0
  506. package/src/components/timepicker/TimePicker.stories.ts +38 -0
  507. package/src/components/timepicker/TimePicker.test.ts +163 -0
  508. package/src/components/timepicker/TimePicker.ts +417 -0
  509. package/src/components/timepicker/scss/module.scss +9 -0
  510. package/src/components/timepicker/scss/settings.scss +8 -0
  511. package/src/components/timepicker/scss/timepicker.scss +64 -0
  512. package/src/components/toggle-switch/ToggleSwitch.stories.ts +43 -0
  513. package/src/components/toggle-switch/ToggleSwitch.test.ts +60 -0
  514. package/src/components/toggle-switch/ToggleSwitch.ts +73 -0
  515. package/src/components/toggle-switch/scss/mixins.scss +93 -0
  516. package/src/components/toggle-switch/scss/module.scss +12 -0
  517. package/src/components/toggle-switch/scss/settings.scss +14 -0
  518. package/src/components/toggle-switch/scss/toggle-switch.scss +94 -0
  519. package/src/components/toggle-switch/tokens/lm-toggle-tokens.js +52 -0
  520. package/src/components/toggle-switch/tokens/md-toggle-tokens.js +52 -0
  521. package/src/components/tooltip/Tooltip.stories.ts +53 -0
  522. package/src/components/tooltip/Tooltip.test.ts +84 -0
  523. package/src/components/tooltip/Tooltip.ts +210 -0
  524. package/src/components/tooltip/scss/module.scss +12 -0
  525. package/src/components/tooltip/scss/settings.scss +11 -0
  526. package/src/components/tooltip/scss/tooltip.scss +151 -0
  527. package/src/components/tooltip/tokens/lm-tooltip-tokens.js +18 -0
  528. package/src/components/tooltip/tokens/md-tooltip-tokens.js +18 -0
  529. package/src/constants.ts +37 -0
  530. package/src/index.ts +75 -0
  531. package/src/internal-components/color-table/ColorTable.stories.ts +35 -0
  532. package/src/internal-components/color-table/ColorTable.ts +85 -0
  533. package/src/internal-components/color-table/data.ts +204 -0
  534. package/src/internal-components/color-table/scss/color-table.scss +739 -0
  535. package/src/internal-components/color-table/scss/module.scss +11 -0
  536. package/src/internal-components/color-table/utils.ts +552 -0
  537. package/src/mixins/CustomElementCheck.ts +25 -0
  538. package/src/mixins/DedupeMixin.test.ts +81 -0
  539. package/src/mixins/DedupeMixin.ts +54 -0
  540. package/src/mixins/FocusMixin.test.ts +120 -0
  541. package/src/mixins/FocusMixin.ts +131 -0
  542. package/src/mixins/FocusTrapMixin.test.ts +438 -0
  543. package/src/mixins/FocusTrapMixin.ts +379 -0
  544. package/src/mixins/ResizeMixin.test.ts +86 -0
  545. package/src/mixins/ResizeMixin.ts +142 -0
  546. package/src/mixins/RovingTabIndexMixin.test.ts +62 -0
  547. package/src/mixins/RovingTabIndexMixin.ts +110 -0
  548. package/src/mixins/SlottedMixin.test.ts +70 -0
  549. package/src/mixins/SlottedMixin.ts +110 -0
  550. package/src/mixins/index.ts +17 -0
  551. package/src/templates/color-table-data-string.hbs +22 -0
  552. package/src/templates/colors-settings.hbs +21 -0
  553. package/src/templates/colors.hbs +35 -0
  554. package/src/templates/component-colors.hbs +31 -0
  555. package/src/templates/css-color-variables.hbs +22 -0
  556. package/src/templates/dark-colors.hbs +24 -0
  557. package/src/templates/light-colors.hbs +24 -0
  558. package/src/templates/semantic-color-dark.hbs +28 -0
  559. package/src/templates/semantic-color-light.hbs +28 -0
  560. package/src/templates/semantic-color-settings.hbs +38 -0
  561. package/src/tokens/Tokens.test.ts +11 -0
  562. package/src/tokens/tokenImports.js +7 -0
  563. package/src/tsconfig.json +25 -0
  564. package/src/types/declare.d.ts +31 -0
  565. package/src/types/globals.d.ts +5 -0
  566. package/src/utils/clearVars.js +47 -0
  567. package/src/utils/createTokenFilesModule.js +86 -0
  568. package/src/utils/dateUtils.test.ts +174 -0
  569. package/src/utils/dateUtils.ts +101 -0
  570. package/src/utils/enums.ts +720 -0
  571. package/src/utils/generateColorTableData.js +42 -0
  572. package/src/utils/generateScssFromTokens.js +249 -0
  573. package/src/utils/helpers.ts +150 -0
  574. package/src/utils/validations.ts +28 -0
  575. package/src/wc_scss/colors/settings-base.scss +208 -0
  576. package/src/wc_scss/colors/settings-transparencies.scss +52 -0
  577. package/src/wc_scss/colors/settings.scss +1 -0
  578. package/src/wc_scss/colors/tests/colors.cy.js +8 -0
  579. package/src/wc_scss/generic/global.scss +114 -0
  580. package/src/wc_scss/generic/normalize.scss +422 -0
  581. package/src/wc_scss/icon/settings.scss +12 -0
  582. package/src/wc_scss/path.scss +4 -0
  583. package/src/wc_scss/reset.scss +26 -0
  584. package/src/wc_scss/settings/avatar.scss +193 -0
  585. package/src/wc_scss/settings/button-settings.scss +193 -0
  586. package/src/wc_scss/settings/core.scss +128 -0
  587. package/src/wc_scss/settings/focus.scss +7 -0
  588. package/src/wc_scss/settings/form-controls.scss +23 -0
  589. package/src/wc_scss/settings/forms.scss +26 -0
  590. package/src/wc_scss/settings/input.scss +59 -0
  591. package/src/wc_scss/settings/list-item.scss +86 -0
  592. package/src/wc_scss/settings/list.scss +10 -0
  593. package/src/wc_scss/settings/media.scss +116 -0
  594. package/src/wc_scss/settings/overlay.scss +6 -0
  595. package/src/wc_scss/settings/rem.scss +1 -0
  596. package/src/wc_scss/settings/z-index.scss +9 -0
  597. package/src/wc_scss/themes/global--dark.scss +87 -0
  598. package/src/wc_scss/themes/global--light.scss +87 -0
  599. package/src/wc_scss/themes/global--lm.scss +4 -0
  600. package/src/wc_scss/themes/global--md.scss +4 -0
  601. package/src/wc_scss/tools/functions/core.scss +181 -0
  602. package/src/wc_scss/tools/mixins/avatar.scss +32 -0
  603. package/src/wc_scss/tools/mixins/baseline.scss +69 -0
  604. package/src/wc_scss/tools/mixins/border-radius.scss +26 -0
  605. package/src/wc_scss/tools/mixins/button.scss +248 -0
  606. package/src/wc_scss/tools/mixins/core.scss +215 -0
  607. package/src/wc_scss/tools/mixins/easing.scss +63 -0
  608. package/src/wc_scss/tools/mixins/flex.scss +14 -0
  609. package/src/wc_scss/tools/mixins/focus.scss +35 -0
  610. package/src/wc_scss/tools/mixins/input.scss +136 -0
  611. package/src/wc_scss/tools/mixins/nav-divider.scss +10 -0
  612. package/src/wc_scss/tools/mixins/spacing.scss +208 -0
  613. package/src/wc_scss/tools/mixins/spinner.scss +38 -0
  614. package/src/wc_scss/typography/mixins.scss +208 -0
  615. package/src/wc_scss/typography/settings.scss +286 -0
  616. package/src/wc_scss/typography/tests/typography.cy.js +8 -0
  617. package/src/wc_scss/typography/typography.scss +319 -0
  618. package/stats/cssStats.js +17 -0
  619. package/stats/stats-loader.js +23 -0
  620. package/stats/utils.js +5 -0
  621. package/stats/writeFileSyncRecursive.js +20 -0
  622. package/tsconfig.json +13 -0
  623. package/webpack.config.dev.server.ts +12 -0
  624. package/webpack.config.ts +284 -0
  625. package/webpack.plugin.LoadChunks.ts +67 -0
  626. package/dist/assets/fonts/CiscoSansTT-Medium.woff +0 -0
  627. package/dist/assets/fonts/CiscoSansTT-Medium.woff2 +0 -0
  628. package/dist/assets/fonts/CiscoSansTTBold.woff +0 -0
  629. package/dist/assets/fonts/CiscoSansTTBold.woff2 +0 -0
  630. package/dist/assets/fonts/CiscoSansTTBoldOblique.woff +0 -0
  631. package/dist/assets/fonts/CiscoSansTTBoldOblique.woff2 +0 -0
  632. package/dist/assets/fonts/CiscoSansTTExtraLight.woff +0 -0
  633. package/dist/assets/fonts/CiscoSansTTExtraLight.woff2 +0 -0
  634. package/dist/assets/fonts/CiscoSansTTExtraLightOblique.woff +0 -0
  635. package/dist/assets/fonts/CiscoSansTTExtraLightOblique.woff2 +0 -0
  636. package/dist/assets/fonts/CiscoSansTTHeavy.woff +0 -0
  637. package/dist/assets/fonts/CiscoSansTTHeavy.woff2 +0 -0
  638. package/dist/assets/fonts/CiscoSansTTHeavyOblique.woff +0 -0
  639. package/dist/assets/fonts/CiscoSansTTHeavyOblique.woff2 +0 -0
  640. package/dist/assets/fonts/CiscoSansTTLight.woff +0 -0
  641. package/dist/assets/fonts/CiscoSansTTLight.woff2 +0 -0
  642. package/dist/assets/fonts/CiscoSansTTLightOblique.woff +0 -0
  643. package/dist/assets/fonts/CiscoSansTTLightOblique.woff2 +0 -0
  644. package/dist/assets/fonts/CiscoSansTTRegular.woff +0 -0
  645. package/dist/assets/fonts/CiscoSansTTRegular.woff2 +0 -0
  646. package/dist/assets/fonts/CiscoSansTTRegularOblique.woff +0 -0
  647. package/dist/assets/fonts/CiscoSansTTRegularOblique.woff2 +0 -0
  648. package/dist/assets/fonts/CiscoSansTTThin.woff +0 -0
  649. package/dist/assets/fonts/CiscoSansTTThin.woff2 +0 -0
  650. package/dist/assets/fonts/CiscoSansTTThinOblique.woff +0 -0
  651. package/dist/assets/fonts/CiscoSansTTThinOblique.woff2 +0 -0
  652. package/dist/assets/fonts/index.html +0 -18560
  653. package/dist/assets/fonts/momentum-ui-icons.svg +0 -9261
  654. package/dist/assets/fonts/momentum-ui-icons.ttf +0 -0
  655. package/dist/assets/fonts/momentum-ui-icons.woff +0 -0
  656. package/dist/assets/fonts/momentum-ui-icons.woff2 +0 -0
  657. package/dist/assets/icons/fonts/index.html +0 -18560
  658. package/dist/assets/icons/fonts/momentum-ui-icons.svg +0 -9261
  659. package/dist/assets/icons/fonts/momentum-ui-icons.ttf +0 -0
  660. package/dist/assets/icons/fonts/momentum-ui-icons.woff +0 -0
  661. package/dist/assets/icons/fonts/momentum-ui-icons.woff2 +0 -0
  662. package/dist/assets/images/avatar-images/barbara.png +0 -0
  663. package/dist/assets/images/avatar-images/brandon.png +0 -0
  664. package/dist/assets/images/avatar-images/brenda.png +0 -0
  665. package/dist/assets/images/avatar-images/giacomo.png +0 -0
  666. package/dist/assets/images/avatar-images/maria.png +0 -0
  667. package/dist/assets/images/avatar-images/simon.png +0 -0
  668. package/dist/assets/images/cisco/cisco-logo-black.png +0 -0
  669. package/dist/assets/images/cisco/cisco-logo-black.svg +0 -21
  670. package/dist/assets/images/cisco/cisco-logo-blue.png +0 -0
  671. package/dist/assets/images/cisco/cisco-logo-blue.svg +0 -21
  672. package/dist/assets/images/cisco/cisco-logo-white.png +0 -0
  673. package/dist/assets/images/cisco/cisco-logo-white.svg +0 -21
  674. package/dist/assets/images/cisco-webex/lockup/cisco-webex-lockup-black.png +0 -0
  675. package/dist/assets/images/cisco-webex/lockup/cisco-webex-lockup-black.svg +0 -30
  676. package/dist/assets/images/cisco-webex/lockup/cisco-webex-lockup-blue.png +0 -0
  677. package/dist/assets/images/cisco-webex/lockup/cisco-webex-lockup-blue.svg +0 -30
  678. package/dist/assets/images/cisco-webex/lockup/cisco-webex-lockup-white.png +0 -0
  679. package/dist/assets/images/cisco-webex/lockup/cisco-webex-lockup-white.svg +0 -30
  680. package/dist/assets/images/cisco-webex/wordmark/cisco-webex-wordmark-black.png +0 -0
  681. package/dist/assets/images/cisco-webex/wordmark/cisco-webex-wordmark-black.svg +0 -13
  682. package/dist/assets/images/cisco-webex/wordmark/cisco-webex-wordmark-blue.png +0 -0
  683. package/dist/assets/images/cisco-webex/wordmark/cisco-webex-wordmark-blue.svg +0 -13
  684. package/dist/assets/images/cisco-webex/wordmark/cisco-webex-wordmark-white.png +0 -0
  685. package/dist/assets/images/cisco-webex/wordmark/cisco-webex-wordmark-white.svg +0 -13
  686. package/dist/assets/images/flags.png +0 -0
  687. package/dist/assets/images/flags@2x.png +0 -0
  688. package/dist/assets/images/momentum/momentum-color-icon.png +0 -0
  689. package/dist/assets/images/momentum/momentum-color-icon.svg +0 -1
  690. package/dist/assets/images/momentum/momentum-horiz-color-white.png +0 -0
  691. package/dist/assets/images/momentum/momentum-horiz-color.png +0 -0
  692. package/dist/assets/images/momentum/momentum-horiz-color.svg +0 -1
  693. package/dist/assets/images/momentum/momentum-horiz-outline.png +0 -0
  694. package/dist/assets/images/momentum/momentum-horiz-outline.svg +0 -1
  695. package/dist/assets/images/momentum/momentum-outline-icon.png +0 -0
  696. package/dist/assets/images/momentum/momentum-outline-icon.svg +0 -1
  697. package/dist/assets/images/momentum/momentum-vert-color.png +0 -0
  698. package/dist/assets/images/momentum/momentum-vert-color.svg +0 -1
  699. package/dist/assets/images/momentum/momentum-vert-outline.png +0 -0
  700. package/dist/assets/images/momentum/momentum-vert-outline.svg +0 -1
  701. package/dist/assets/images/momentum/momentum.jpg +0 -0
  702. package/dist/assets/images/opacity-bkgd.jpg +0 -0
  703. package/dist/assets/images/webex-calling/calling-icon-color.png +0 -0
  704. package/dist/assets/images/webex-calling/calling-icon-color.svg +0 -14
  705. package/dist/assets/images/webex-calling/calling-icon-white.png +0 -0
  706. package/dist/assets/images/webex-calling/calling-icon-white.svg +0 -13
  707. package/dist/assets/images/webex-calling/calling-with-container-and-label-color.png +0 -0
  708. package/dist/assets/images/webex-calling/calling-with-container-and-label-color.svg +0 -46
  709. package/dist/assets/images/webex-calling/calling-with-container-color.png +0 -0
  710. package/dist/assets/images/webex-calling/calling-with-container-color.svg +0 -19
  711. package/dist/assets/images/webex-calling/calling-with-label-color.png +0 -0
  712. package/dist/assets/images/webex-calling/calling-with-label-color.svg +0 -39
  713. package/dist/assets/images/webex-meetings/meetings-icon-color.png +0 -0
  714. package/dist/assets/images/webex-meetings/meetings-icon-color.svg +0 -15
  715. package/dist/assets/images/webex-meetings/meetings-icon-white.png +0 -0
  716. package/dist/assets/images/webex-meetings/meetings-icon-white.svg +0 -12
  717. package/dist/assets/images/webex-meetings/meetings-with-container-and-label-color.png +0 -0
  718. package/dist/assets/images/webex-meetings/meetings-with-container-and-label-color.svg +0 -29
  719. package/dist/assets/images/webex-meetings/meetings-with-container-color.png +0 -0
  720. package/dist/assets/images/webex-meetings/meetings-with-container-color.svg +0 -16
  721. package/dist/assets/images/webex-meetings/meetings-with-label-color.png +0 -0
  722. package/dist/assets/images/webex-meetings/meetings-with-label-color.svg +0 -28
  723. package/dist/assets/images/webex-teams/teams-icon-color.png +0 -0
  724. package/dist/assets/images/webex-teams/teams-icon-color.svg +0 -18
  725. package/dist/assets/images/webex-teams/teams-icon-white.png +0 -0
  726. package/dist/assets/images/webex-teams/teams-icon-white.svg +0 -12
  727. package/dist/assets/images/webex-teams/teams-with-container-and-label-color.png +0 -0
  728. package/dist/assets/images/webex-teams/teams-with-container-and-label-color.svg +0 -29
  729. package/dist/assets/images/webex-teams/teams-with-container-color.png +0 -0
  730. package/dist/assets/images/webex-teams/teams-with-container-color.svg +0 -19
  731. package/dist/assets/images/webex-teams/teams-with-label-color.png +0 -0
  732. package/dist/assets/images/webex-teams/teams-with-label-color.svg +0 -30
  733. package/dist/assets/styles/momentum-ui-icons.min.css +0 -1
  734. package/dist/assets/styles/momentum-ui.min.css +0 -7
  735. package/dist/assets/styles/momentum-ui.min.css.map +0 -1
  736. package/dist/chunks/md-0.js +0 -1
  737. package/dist/chunks/md-1.js +0 -1
  738. package/dist/chunks/md-10.js +0 -12
  739. package/dist/chunks/md-100.js +0 -1
  740. package/dist/chunks/md-101.js +0 -1
  741. package/dist/chunks/md-102.js +0 -1
  742. package/dist/chunks/md-103.js +0 -1
  743. package/dist/chunks/md-104.js +0 -1
  744. package/dist/chunks/md-105.js +0 -1
  745. package/dist/chunks/md-106.js +0 -1
  746. package/dist/chunks/md-107.js +0 -1
  747. package/dist/chunks/md-108.js +0 -1
  748. package/dist/chunks/md-109.js +0 -1
  749. package/dist/chunks/md-11.js +0 -1
  750. package/dist/chunks/md-110.js +0 -1
  751. package/dist/chunks/md-111.js +0 -1
  752. package/dist/chunks/md-112.js +0 -1
  753. package/dist/chunks/md-113.js +0 -1
  754. package/dist/chunks/md-114.js +0 -1
  755. package/dist/chunks/md-115.js +0 -1
  756. package/dist/chunks/md-116.js +0 -1
  757. package/dist/chunks/md-117.js +0 -1
  758. package/dist/chunks/md-118.js +0 -1
  759. package/dist/chunks/md-119.js +0 -1
  760. package/dist/chunks/md-12.js +0 -6
  761. package/dist/chunks/md-120.js +0 -1
  762. package/dist/chunks/md-121.js +0 -1
  763. package/dist/chunks/md-122.js +0 -1
  764. package/dist/chunks/md-123.js +0 -1
  765. package/dist/chunks/md-124.js +0 -1
  766. package/dist/chunks/md-125.js +0 -1
  767. package/dist/chunks/md-126.js +0 -1
  768. package/dist/chunks/md-127.js +0 -1
  769. package/dist/chunks/md-128.js +0 -1
  770. package/dist/chunks/md-129.js +0 -1
  771. package/dist/chunks/md-13.js +0 -13
  772. package/dist/chunks/md-130.js +0 -1
  773. package/dist/chunks/md-131.js +0 -1
  774. package/dist/chunks/md-132.js +0 -1
  775. package/dist/chunks/md-133.js +0 -1
  776. package/dist/chunks/md-134.js +0 -1
  777. package/dist/chunks/md-135.js +0 -1
  778. package/dist/chunks/md-136.js +0 -1
  779. package/dist/chunks/md-137.js +0 -1
  780. package/dist/chunks/md-138.js +0 -1
  781. package/dist/chunks/md-139.js +0 -1
  782. package/dist/chunks/md-14.js +0 -1
  783. package/dist/chunks/md-140.js +0 -1
  784. package/dist/chunks/md-141.js +0 -1
  785. package/dist/chunks/md-142.js +0 -1
  786. package/dist/chunks/md-143.js +0 -1
  787. package/dist/chunks/md-144.js +0 -1
  788. package/dist/chunks/md-145.js +0 -1
  789. package/dist/chunks/md-146.js +0 -1
  790. package/dist/chunks/md-147.js +0 -1
  791. package/dist/chunks/md-148.js +0 -1
  792. package/dist/chunks/md-149.js +0 -1
  793. package/dist/chunks/md-15.js +0 -118
  794. package/dist/chunks/md-150.js +0 -1
  795. package/dist/chunks/md-151.js +0 -1
  796. package/dist/chunks/md-152.js +0 -1
  797. package/dist/chunks/md-153.js +0 -1
  798. package/dist/chunks/md-154.js +0 -1
  799. package/dist/chunks/md-155.js +0 -1
  800. package/dist/chunks/md-156.js +0 -1
  801. package/dist/chunks/md-157.js +0 -1
  802. package/dist/chunks/md-158.js +0 -1
  803. package/dist/chunks/md-159.js +0 -1
  804. package/dist/chunks/md-16.js +0 -19
  805. package/dist/chunks/md-160.js +0 -1
  806. package/dist/chunks/md-161.js +0 -1
  807. package/dist/chunks/md-162.js +0 -1
  808. package/dist/chunks/md-163.js +0 -1
  809. package/dist/chunks/md-164.js +0 -1
  810. package/dist/chunks/md-165.js +0 -1
  811. package/dist/chunks/md-166.js +0 -1
  812. package/dist/chunks/md-167.js +0 -1
  813. package/dist/chunks/md-168.js +0 -1
  814. package/dist/chunks/md-169.js +0 -1
  815. package/dist/chunks/md-17.js +0 -17
  816. package/dist/chunks/md-170.js +0 -1
  817. package/dist/chunks/md-171.js +0 -1
  818. package/dist/chunks/md-172.js +0 -1
  819. package/dist/chunks/md-173.js +0 -1
  820. package/dist/chunks/md-174.js +0 -1
  821. package/dist/chunks/md-175.js +0 -1
  822. package/dist/chunks/md-176.js +0 -1
  823. package/dist/chunks/md-177.js +0 -1
  824. package/dist/chunks/md-178.js +0 -1
  825. package/dist/chunks/md-179.js +0 -1
  826. package/dist/chunks/md-18.js +0 -12
  827. package/dist/chunks/md-180.js +0 -1
  828. package/dist/chunks/md-181.js +0 -1
  829. package/dist/chunks/md-182.js +0 -1
  830. package/dist/chunks/md-183.js +0 -1
  831. package/dist/chunks/md-184.js +0 -1
  832. package/dist/chunks/md-185.js +0 -1
  833. package/dist/chunks/md-186.js +0 -1
  834. package/dist/chunks/md-187.js +0 -1
  835. package/dist/chunks/md-188.js +0 -1
  836. package/dist/chunks/md-189.js +0 -1
  837. package/dist/chunks/md-19.js +0 -1
  838. package/dist/chunks/md-190.js +0 -1
  839. package/dist/chunks/md-191.js +0 -1
  840. package/dist/chunks/md-192.js +0 -1
  841. package/dist/chunks/md-193.js +0 -1
  842. package/dist/chunks/md-194.js +0 -1
  843. package/dist/chunks/md-195.js +0 -1
  844. package/dist/chunks/md-196.js +0 -1
  845. package/dist/chunks/md-197.js +0 -1
  846. package/dist/chunks/md-198.js +0 -1
  847. package/dist/chunks/md-199.js +0 -1
  848. package/dist/chunks/md-2.js +0 -1
  849. package/dist/chunks/md-20.js +0 -7
  850. package/dist/chunks/md-200.js +0 -1
  851. package/dist/chunks/md-201.js +0 -1
  852. package/dist/chunks/md-202.js +0 -1
  853. package/dist/chunks/md-203.js +0 -1
  854. package/dist/chunks/md-204.js +0 -1
  855. package/dist/chunks/md-205.js +0 -1
  856. package/dist/chunks/md-206.js +0 -1
  857. package/dist/chunks/md-207.js +0 -1
  858. package/dist/chunks/md-208.js +0 -1
  859. package/dist/chunks/md-209.js +0 -1
  860. package/dist/chunks/md-21.js +0 -12
  861. package/dist/chunks/md-210.js +0 -1
  862. package/dist/chunks/md-211.js +0 -1
  863. package/dist/chunks/md-212.js +0 -1
  864. package/dist/chunks/md-213.js +0 -1
  865. package/dist/chunks/md-214.js +0 -1
  866. package/dist/chunks/md-215.js +0 -1
  867. package/dist/chunks/md-216.js +0 -1
  868. package/dist/chunks/md-217.js +0 -1
  869. package/dist/chunks/md-218.js +0 -1
  870. package/dist/chunks/md-219.js +0 -1
  871. package/dist/chunks/md-22.js +0 -1
  872. package/dist/chunks/md-220.js +0 -1
  873. package/dist/chunks/md-221.js +0 -1
  874. package/dist/chunks/md-222.js +0 -1
  875. package/dist/chunks/md-223.js +0 -1
  876. package/dist/chunks/md-224.js +0 -1
  877. package/dist/chunks/md-225.js +0 -1
  878. package/dist/chunks/md-226.js +0 -1
  879. package/dist/chunks/md-227.js +0 -1
  880. package/dist/chunks/md-228.js +0 -1
  881. package/dist/chunks/md-229.js +0 -1
  882. package/dist/chunks/md-23.js +0 -36
  883. package/dist/chunks/md-230.js +0 -1
  884. package/dist/chunks/md-231.js +0 -1
  885. package/dist/chunks/md-232.js +0 -1
  886. package/dist/chunks/md-233.js +0 -1
  887. package/dist/chunks/md-234.js +0 -1
  888. package/dist/chunks/md-235.js +0 -1
  889. package/dist/chunks/md-236.js +0 -1
  890. package/dist/chunks/md-237.js +0 -1
  891. package/dist/chunks/md-238.js +0 -1
  892. package/dist/chunks/md-239.js +0 -1
  893. package/dist/chunks/md-24.js +0 -1
  894. package/dist/chunks/md-240.js +0 -1
  895. package/dist/chunks/md-241.js +0 -1
  896. package/dist/chunks/md-242.js +0 -1
  897. package/dist/chunks/md-243.js +0 -1
  898. package/dist/chunks/md-244.js +0 -1
  899. package/dist/chunks/md-245.js +0 -1
  900. package/dist/chunks/md-246.js +0 -1
  901. package/dist/chunks/md-247.js +0 -1
  902. package/dist/chunks/md-248.js +0 -1
  903. package/dist/chunks/md-249.js +0 -1
  904. package/dist/chunks/md-25.js +0 -1
  905. package/dist/chunks/md-250.js +0 -1
  906. package/dist/chunks/md-251.js +0 -1
  907. package/dist/chunks/md-252.js +0 -1
  908. package/dist/chunks/md-253.js +0 -1
  909. package/dist/chunks/md-254.js +0 -1
  910. package/dist/chunks/md-255.js +0 -1
  911. package/dist/chunks/md-256.js +0 -1
  912. package/dist/chunks/md-257.js +0 -1
  913. package/dist/chunks/md-258.js +0 -1
  914. package/dist/chunks/md-259.js +0 -1
  915. package/dist/chunks/md-26.js +0 -55
  916. package/dist/chunks/md-260.js +0 -1
  917. package/dist/chunks/md-261.js +0 -1
  918. package/dist/chunks/md-262.js +0 -1
  919. package/dist/chunks/md-263.js +0 -1
  920. package/dist/chunks/md-264.js +0 -1
  921. package/dist/chunks/md-265.js +0 -1
  922. package/dist/chunks/md-266.js +0 -1
  923. package/dist/chunks/md-267.js +0 -1
  924. package/dist/chunks/md-268.js +0 -1
  925. package/dist/chunks/md-269.js +0 -1
  926. package/dist/chunks/md-27.js +0 -1
  927. package/dist/chunks/md-270.js +0 -1
  928. package/dist/chunks/md-271.js +0 -1
  929. package/dist/chunks/md-272.js +0 -1
  930. package/dist/chunks/md-273.js +0 -1
  931. package/dist/chunks/md-28.js +0 -1
  932. package/dist/chunks/md-29.js +0 -20
  933. package/dist/chunks/md-3.js +0 -1
  934. package/dist/chunks/md-30.js +0 -22
  935. package/dist/chunks/md-31.js +0 -5
  936. package/dist/chunks/md-32.js +0 -5
  937. package/dist/chunks/md-33.js +0 -1
  938. package/dist/chunks/md-34.js +0 -21
  939. package/dist/chunks/md-35.js +0 -20
  940. package/dist/chunks/md-36.js +0 -119
  941. package/dist/chunks/md-37.js +0 -34
  942. package/dist/chunks/md-38.js +0 -1
  943. package/dist/chunks/md-39.js +0 -33
  944. package/dist/chunks/md-4.js +0 -1
  945. package/dist/chunks/md-40.js +0 -15
  946. package/dist/chunks/md-41.js +0 -1
  947. package/dist/chunks/md-42.js +0 -27
  948. package/dist/chunks/md-43.js +0 -5
  949. package/dist/chunks/md-44.js +0 -34
  950. package/dist/chunks/md-45.js +0 -13
  951. package/dist/chunks/md-46.js +0 -20
  952. package/dist/chunks/md-47.js +0 -46
  953. package/dist/chunks/md-48.js +0 -13
  954. package/dist/chunks/md-49.js +0 -5
  955. package/dist/chunks/md-5.js +0 -1
  956. package/dist/chunks/md-50.js +0 -68
  957. package/dist/chunks/md-51.js +0 -24
  958. package/dist/chunks/md-52.js +0 -14
  959. package/dist/chunks/md-53.js +0 -5
  960. package/dist/chunks/md-54.js +0 -39
  961. package/dist/chunks/md-55.js +0 -22
  962. package/dist/chunks/md-56.js +0 -5
  963. package/dist/chunks/md-57.js +0 -1
  964. package/dist/chunks/md-58.js +0 -22
  965. package/dist/chunks/md-59.js +0 -5
  966. package/dist/chunks/md-6.js +0 -3
  967. package/dist/chunks/md-60.js +0 -15
  968. package/dist/chunks/md-61.js +0 -42
  969. package/dist/chunks/md-62.js +0 -30
  970. package/dist/chunks/md-63.js +0 -72
  971. package/dist/chunks/md-64.js +0 -19
  972. package/dist/chunks/md-65.js +0 -17
  973. package/dist/chunks/md-66.js +0 -22
  974. package/dist/chunks/md-67.js +0 -84
  975. package/dist/chunks/md-68.js +0 -7
  976. package/dist/chunks/md-69.js +0 -77
  977. package/dist/chunks/md-7.js +0 -82
  978. package/dist/chunks/md-70.js +0 -72
  979. package/dist/chunks/md-71.js +0 -61
  980. package/dist/chunks/md-72.js +0 -16
  981. package/dist/chunks/md-73.js +0 -5
  982. package/dist/chunks/md-74.js +0 -30
  983. package/dist/chunks/md-75.js +0 -3
  984. package/dist/chunks/md-76.js +0 -179
  985. package/dist/chunks/md-77.js +0 -39
  986. package/dist/chunks/md-78.js +0 -85
  987. package/dist/chunks/md-79.js +0 -104
  988. package/dist/chunks/md-8.js +0 -1
  989. package/dist/chunks/md-80.js +0 -12
  990. package/dist/chunks/md-81.js +0 -43
  991. package/dist/chunks/md-82.js +0 -21
  992. package/dist/chunks/md-83.js +0 -1
  993. package/dist/chunks/md-84.js +0 -1
  994. package/dist/chunks/md-85.js +0 -1
  995. package/dist/chunks/md-86.js +0 -1
  996. package/dist/chunks/md-87.js +0 -1
  997. package/dist/chunks/md-88.js +0 -1
  998. package/dist/chunks/md-89.js +0 -1
  999. package/dist/chunks/md-9.js +0 -1
  1000. package/dist/chunks/md-90.js +0 -1
  1001. package/dist/chunks/md-91.js +0 -1
  1002. package/dist/chunks/md-92.js +0 -1
  1003. package/dist/chunks/md-93.js +0 -1
  1004. package/dist/chunks/md-94.js +0 -1
  1005. package/dist/chunks/md-95.js +0 -1
  1006. package/dist/chunks/md-96.js +0 -1
  1007. package/dist/chunks/md-97.js +0 -1
  1008. package/dist/chunks/md-98.js +0 -1
  1009. package/dist/chunks/md-99.js +0 -1
  1010. package/dist/comp/md-accordion-entry.js +0 -1
  1011. package/dist/comp/md-accordion-item-entry.js +0 -1
  1012. package/dist/comp/md-accordion-item.js +0 -11
  1013. package/dist/comp/md-accordion.js +0 -11
  1014. package/dist/comp/md-activity-button-entry.js +0 -1
  1015. package/dist/comp/md-activity-button.js +0 -8
  1016. package/dist/comp/md-alert-banner-entry.js +0 -1
  1017. package/dist/comp/md-alert-banner.js +0 -8
  1018. package/dist/comp/md-alert-entry.js +0 -1
  1019. package/dist/comp/md-alert.js +0 -8
  1020. package/dist/comp/md-avatar-entry.js +0 -1
  1021. package/dist/comp/md-avatar.js +0 -10
  1022. package/dist/comp/md-badge-entry.js +0 -1
  1023. package/dist/comp/md-badge.js +0 -4
  1024. package/dist/comp/md-breadcrumb-entry.js +0 -1
  1025. package/dist/comp/md-breadcrumb.js +0 -4
  1026. package/dist/comp/md-button-entry.js +0 -1
  1027. package/dist/comp/md-button-group-entry.js +0 -1
  1028. package/dist/comp/md-button-group.js +0 -10
  1029. package/dist/comp/md-button.js +0 -6
  1030. package/dist/comp/md-card-entry.js +0 -1
  1031. package/dist/comp/md-card.js +0 -17
  1032. package/dist/comp/md-chat-message-entry.js +0 -1
  1033. package/dist/comp/md-chat-message.js +0 -11
  1034. package/dist/comp/md-checkbox-entry.js +0 -1
  1035. package/dist/comp/md-checkbox.js +0 -11
  1036. package/dist/comp/md-checkboxgroup-entry.js +0 -1
  1037. package/dist/comp/md-checkboxgroup.js +0 -11
  1038. package/dist/comp/md-chip-entry.js +0 -1
  1039. package/dist/comp/md-chip.js +0 -16
  1040. package/dist/comp/md-coachmark-entry.js +0 -1
  1041. package/dist/comp/md-coachmark.js +0 -12
  1042. package/dist/comp/md-combobox-entry.js +0 -1
  1043. package/dist/comp/md-combobox.js +0 -15
  1044. package/dist/comp/md-composite-avatar-entry.js +0 -1
  1045. package/dist/comp/md-composite-avatar.js +0 -5
  1046. package/dist/comp/md-date-range-picker-entry.js +0 -1
  1047. package/dist/comp/md-date-range-picker.js +0 -23
  1048. package/dist/comp/md-date-time-picker-entry.js +0 -1
  1049. package/dist/comp/md-date-time-picker.js +0 -16
  1050. package/dist/comp/md-datepicker-calendar-entry.js +0 -1
  1051. package/dist/comp/md-datepicker-calendar.js +0 -13
  1052. package/dist/comp/md-datepicker-day-entry.js +0 -1
  1053. package/dist/comp/md-datepicker-day.js +0 -9
  1054. package/dist/comp/md-datepicker-entry.js +0 -1
  1055. package/dist/comp/md-datepicker-month-entry.js +0 -1
  1056. package/dist/comp/md-datepicker-month.js +0 -11
  1057. package/dist/comp/md-datepicker-week-entry.js +0 -1
  1058. package/dist/comp/md-datepicker-week.js +0 -10
  1059. package/dist/comp/md-datepicker.js +0 -22
  1060. package/dist/comp/md-draggable-entry.js +0 -1
  1061. package/dist/comp/md-draggable-item-entry.js +0 -1
  1062. package/dist/comp/md-draggable-item.js +0 -11
  1063. package/dist/comp/md-draggable.js +0 -12
  1064. package/dist/comp/md-dropdown-entry.js +0 -1
  1065. package/dist/comp/md-dropdown.js +0 -13
  1066. package/dist/comp/md-editable-field-entry.js +0 -1
  1067. package/dist/comp/md-editable-field.js +0 -14
  1068. package/dist/comp/md-favorite-entry.js +0 -1
  1069. package/dist/comp/md-favorite.js +0 -13
  1070. package/dist/comp/md-floating-minimize-entry.js +0 -1
  1071. package/dist/comp/md-floating-minimize.js +0 -14
  1072. package/dist/comp/md-floating-modal-entry.js +0 -1
  1073. package/dist/comp/md-floating-modal.js +0 -15
  1074. package/dist/comp/md-form-entry.js +0 -1
  1075. package/dist/comp/md-form.js +0 -9
  1076. package/dist/comp/md-help-text-entry.js +0 -1
  1077. package/dist/comp/md-help-text.js +0 -4
  1078. package/dist/comp/md-icon-entry.js +0 -1
  1079. package/dist/comp/md-icon.js +0 -7
  1080. package/dist/comp/md-inpu.js +0 -12
  1081. package/dist/comp/md-input-entry.js +0 -1
  1082. package/dist/comp/md-input-file.js +0 -1
  1083. package/dist/comp/md-input.js +0 -12
  1084. package/dist/comp/md-label-entry.js +0 -1
  1085. package/dist/comp/md-label.js +0 -4
  1086. package/dist/comp/md-link-entry.js +0 -1
  1087. package/dist/comp/md-link.js +0 -4
  1088. package/dist/comp/md-list-entry.js +0 -1
  1089. package/dist/comp/md-list-item-entry.js +0 -1
  1090. package/dist/comp/md-list-item.js +0 -11
  1091. package/dist/comp/md-list.js +0 -11
  1092. package/dist/comp/md-loading-entry.js +0 -1
  1093. package/dist/comp/md-loading.js +0 -4
  1094. package/dist/comp/md-meeting-alert-entry.js +0 -1
  1095. package/dist/comp/md-meeting-alert.js +0 -11
  1096. package/dist/comp/md-menu-entry.js +0 -1
  1097. package/dist/comp/md-menu-item-entry.js +0 -1
  1098. package/dist/comp/md-menu-item.js +0 -4
  1099. package/dist/comp/md-menu-overlay-entry.js +0 -1
  1100. package/dist/comp/md-menu-overlay.js +0 -7
  1101. package/dist/comp/md-menu.js +0 -8
  1102. package/dist/comp/md-modal-entry.js +0 -1
  1103. package/dist/comp/md-modal.js +0 -13
  1104. package/dist/comp/md-pagination-entry.js +0 -1
  1105. package/dist/comp/md-pagination.js +0 -4
  1106. package/dist/comp/md-phone-input-entry.js +0 -1
  1107. package/dist/comp/md-phone-input.js +0 -18
  1108. package/dist/comp/md-progress-bar-entry.js +0 -1
  1109. package/dist/comp/md-progress-bar.js +0 -4
  1110. package/dist/comp/md-radio-entry.js +0 -1
  1111. package/dist/comp/md-radio.js +0 -11
  1112. package/dist/comp/md-radiogroup-entry.js +0 -1
  1113. package/dist/comp/md-radiogroup.js +0 -11
  1114. package/dist/comp/md-slider-entry.js +0 -1
  1115. package/dist/comp/md-slider.js +0 -10
  1116. package/dist/comp/md-spinner-entry.js +0 -1
  1117. package/dist/comp/md-spinner.js +0 -4
  1118. package/dist/comp/md-tab-entry.js +0 -1
  1119. package/dist/comp/md-tab-panel-entry.js +0 -1
  1120. package/dist/comp/md-tab-panel.js +0 -11
  1121. package/dist/comp/md-tab.js +0 -11
  1122. package/dist/comp/md-table-advanced-entry.js +0 -1
  1123. package/dist/comp/md-table-advanced.js +0 -12
  1124. package/dist/comp/md-table-entry.js +0 -1
  1125. package/dist/comp/md-table.js +0 -4
  1126. package/dist/comp/md-tabs-entry.js +0 -1
  1127. package/dist/comp/md-tabs.js +0 -16
  1128. package/dist/comp/md-task-item-entry.js +0 -1
  1129. package/dist/comp/md-task-item.js +0 -9
  1130. package/dist/comp/md-theme-entry.js +0 -1
  1131. package/dist/comp/md-theme.js +0 -4
  1132. package/dist/comp/md-timepicker-entry.js +0 -1
  1133. package/dist/comp/md-timepicker.js +0 -15
  1134. package/dist/comp/md-toggle-switch-entry.js +0 -1
  1135. package/dist/comp/md-toggle-switch.js +0 -11
  1136. package/dist/comp/md-tooltip-entry.js +0 -1
  1137. package/dist/comp/md-tooltip.js +0 -11
  1138. package/dist/index-entry.js +0 -34
  1139. package/dist/index.js +0 -84
  1140. package/dist/types/components/accordion/Accordion.d.ts +0 -32
  1141. package/dist/types/components/accordion/AccordionItem.d.ts +0 -33
  1142. package/dist/types/components/activity-button/ActivityButton.d.ts +0 -41
  1143. package/dist/types/components/alert/Alert.d.ts +0 -35
  1144. package/dist/types/components/alert-banner/AlertBanner.d.ts +0 -29
  1145. package/dist/types/components/avatar/Avatar.d.ts +0 -48
  1146. package/dist/types/components/avatar/CompositeAvatar.d.ts +0 -25
  1147. package/dist/types/components/badge/Badge.d.ts +0 -36
  1148. package/dist/types/components/breadcrumb/Breadcrumb.d.ts +0 -24
  1149. package/dist/types/components/button/Button.d.ts +0 -104
  1150. package/dist/types/components/button-group/ButtonGroup.d.ts +0 -45
  1151. package/dist/types/components/card/Card.d.ts +0 -35
  1152. package/dist/types/components/chat-message/ChatMessage.d.ts +0 -18
  1153. package/dist/types/components/checkbox/Checkbox.d.ts +0 -44
  1154. package/dist/types/components/checkbox/CheckboxGroup.d.ts +0 -29
  1155. package/dist/types/components/chip/Chip.d.ts +0 -59
  1156. package/dist/types/components/coachmark/Coachmark.d.ts +0 -44
  1157. package/dist/types/components/code-editor/CodeEditor.d.ts +0 -40
  1158. package/dist/types/components/combobox/ComboBox.d.ts +0 -133
  1159. package/dist/types/components/date-range-picker/DateRangePicker.d.ts +0 -27
  1160. package/dist/types/components/date-time-picker/DateTimePicker.d.ts +0 -43
  1161. package/dist/types/components/datepicker/DatePicker.d.ts +0 -51
  1162. package/dist/types/components/datepicker/datepicker-calendar/DatePickerCalendar.d.ts +0 -39
  1163. package/dist/types/components/datepicker/datepicker-day/DatePickerDay.d.ts +0 -45
  1164. package/dist/types/components/datepicker/datepicker-month/DatePickerMonth.d.ts +0 -26
  1165. package/dist/types/components/datepicker/datepicker-week/DatePickerWeek.d.ts +0 -27
  1166. package/dist/types/components/draggable/Draggable.d.ts +0 -62
  1167. package/dist/types/components/draggable/DraggableItem.d.ts +0 -29
  1168. package/dist/types/components/dropdown/Dropdown.d.ts +0 -82
  1169. package/dist/types/components/editable-textfield/EditableTextfield.d.ts +0 -53
  1170. package/dist/types/components/favorite/Favorite.d.ts +0 -36
  1171. package/dist/types/components/floating-modal/FloatingMinimizedModal.d.ts +0 -53
  1172. package/dist/types/components/floating-modal/FloatingModal.d.ts +0 -68
  1173. package/dist/types/components/form/Form.d.ts +0 -55
  1174. package/dist/types/components/help-text/HelpText.d.ts +0 -26
  1175. package/dist/types/components/icon/Icon.d.ts +0 -57
  1176. package/dist/types/components/input/Input.d.ts +0 -130
  1177. package/dist/types/components/input-file/InputFile.d.ts +0 -25
  1178. package/dist/types/components/label/Label.d.ts +0 -43
  1179. package/dist/types/components/link/Link.d.ts +0 -32
  1180. package/dist/types/components/list/List.d.ts +0 -40
  1181. package/dist/types/components/list/ListItem.d.ts +0 -22
  1182. package/dist/types/components/loading/Loading.d.ts +0 -24
  1183. package/dist/types/components/meeting-alert/CompositeAvatar.d.ts +0 -1
  1184. package/dist/types/components/meeting-alert/MeetingAlert.d.ts +0 -46
  1185. package/dist/types/components/menu/Menu.d.ts +0 -46
  1186. package/dist/types/components/menu/MenuItem.d.ts +0 -46
  1187. package/dist/types/components/menu-overlay/MenuOverlay.d.ts +0 -63
  1188. package/dist/types/components/modal/Modal.d.ts +0 -73
  1189. package/dist/types/components/pagination/Pagination.d.ts +0 -31
  1190. package/dist/types/components/phone-input/PhoneInput.d.ts +0 -61
  1191. package/dist/types/components/progress-bar/ProgressBar.d.ts +0 -35
  1192. package/dist/types/components/radio/Radio.d.ts +0 -33
  1193. package/dist/types/components/radio/RadioGroup.d.ts +0 -40
  1194. package/dist/types/components/sass-stats/SassStats.d.ts +0 -29
  1195. package/dist/types/components/slider/Slider.d.ts +0 -46
  1196. package/dist/types/components/spinner/Spinner.d.ts +0 -24
  1197. package/dist/types/components/table/Table.d.ts +0 -62
  1198. package/dist/types/components/table-advanced/TableAdvanced.d.ts +0 -165
  1199. package/dist/types/components/table-advanced/src/decorators.d.ts +0 -32
  1200. package/dist/types/components/table-advanced/src/filter.d.ts +0 -25
  1201. package/dist/types/components/tabs/Tab.d.ts +0 -58
  1202. package/dist/types/components/tabs/TabPanel.d.ts +0 -25
  1203. package/dist/types/components/tabs/Tabs.d.ts +0 -115
  1204. package/dist/types/components/taskitem/TaskItem.d.ts +0 -37
  1205. package/dist/types/components/theme/Theme.d.ts +0 -82
  1206. package/dist/types/components/theme/index.d.ts +0 -5
  1207. package/dist/types/components/timepicker/TimePicker.d.ts +0 -49
  1208. package/dist/types/components/toggle-switch/ToggleSwitch.d.ts +0 -34
  1209. package/dist/types/components/tooltip/Tooltip.d.ts +0 -49
  1210. package/dist/types/constants.d.ts +0 -35
  1211. package/dist/types/index.d.ts +0 -72
  1212. package/dist/types/internal-components/color-table/ColorTable.d.ts +0 -13
  1213. package/dist/types/internal-components/color-table/data.d.ts +0 -551
  1214. package/dist/types/internal-components/color-table/utils.d.ts +0 -1
  1215. package/dist/types/mixins/CustomElementCheck.d.ts +0 -1
  1216. package/dist/types/mixins/DedupeMixin.d.ts +0 -28
  1217. package/dist/types/mixins/FocusMixin.d.ts +0 -44
  1218. package/dist/types/mixins/FocusTrapMixin.d.ts +0 -18
  1219. package/dist/types/mixins/ResizeMixin.d.ts +0 -52
  1220. package/dist/types/mixins/RovingTabIndexMixin.d.ts +0 -31
  1221. package/dist/types/mixins/SlottedMixin.d.ts +0 -43
  1222. package/dist/types/mixins/index.d.ts +0 -14
  1223. package/dist/types/utils/dateUtils.d.ts +0 -31
  1224. package/dist/types/utils/enums.d.ts +0 -17
  1225. package/dist/types/utils/helpers.d.ts +0 -17
  1226. package/dist/types/utils/validations.d.ts +0 -25
  1227. package/dist/types/wc_scss/colors/vars/color-table-data-string.d.ts +0 -1
@@ -0,0 +1,379 @@
1
+ /**
2
+ * Copyright (c) Cisco Systems, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ /** This mixin help create a focus trap ensures that tab and shift + tab keys will cycle through the focus trap's tabbable elements but not leave the focus trap
9
+ * (https://hiddedevries.nl/en/blog/2017-01-29-using-javascript-to-trap-focus-in-an-element). To enable/disable focus-trap mixin, component need to call
10
+ * ativateFocusTrap/deactivateFocusTrap methods accordingly.
11
+ * Example:
12
+ *
13
+ * @customElements("focus-trap")
14
+ * class FocusTrap extends FocusTrapMixin(LitElement) {
15
+ * protected deactivateFocusTrap() { <---- You override this with corresponding name in component directly.
16
+ super.deactivateFocusTrap && super.deactivateFocusTrap(); <---- Check to see whether the superclass defines a method of the same name, and if so, invoke that method.
17
+ // Do your method work here.
18
+ }
19
+ * protected ativateFocusTrap() { <---- You override this with corresponding name in component directly.
20
+ super.ativateFocusTrap && super.ativateFocusTrap(); <---- Check to see whether the superclass defines a method of the same name, and if so, invoke that method.
21
+ // Do your method work here.
22
+ }
23
+ * }
24
+ */
25
+ import { Key } from "@/constants";
26
+ import { internalProperty, LitElement, property, PropertyValues } from "lit-element";
27
+ import { DedupeMixin, wasApplied } from "./DedupeMixin";
28
+ import { FocusClass, FocusEventDetail, FocusMixin } from "./FocusMixin";
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
30
+ export type AnyConstructor<A = LitElement> = new (...args: any[]) => A;
31
+
32
+ export abstract class FocusTrapClass extends LitElement {
33
+ protected deactivateFocusTrap?(): void;
34
+ protected activateFocusTrap?(): void;
35
+ protected focusableElements?: HTMLElement[];
36
+ protected initialFocusComplete?: boolean;
37
+ protected setFocusableElements?(): void;
38
+ protected setInitialFocus?(prefferableElement?: HTMLElement | number, ignoreAutoFocus?: boolean): void;
39
+ }
40
+ export interface FocusTrapInterface {
41
+ activeFocusTrap: boolean;
42
+ preventClickOutside: boolean;
43
+ preventScroll: boolean;
44
+ focusTrapIndex: number;
45
+ }
46
+ export const FocusTrapMixin = <T extends AnyConstructor<FocusClass & FocusTrapClass>>(
47
+ base: T
48
+ ): T & AnyConstructor<FocusTrapClass & FocusTrapInterface & FocusClass> => {
49
+ if (wasApplied(FocusTrapMixin, base)) {
50
+ return base as ReturnType<() => T & AnyConstructor<FocusTrapClass & FocusTrapInterface & FocusClass>>;
51
+ }
52
+ class FocusTrap extends FocusMixin(base) {
53
+ @internalProperty() protected focusableElements: HTMLElement[] = [];
54
+ @internalProperty() protected initialFocusComplete = false;
55
+
56
+ @property({ type: Boolean, reflect: true, attribute: "active-focus-trap" }) activeFocusTrap = false;
57
+ @property({ type: Boolean, reflect: true, attribute: "prevent-click-outside" }) preventClickOutside = false;
58
+ @property({ type: Number, reflect: true, attribute: "focus-trap-index" }) focusTrapIndex = -1;
59
+ @property({ type: Boolean, reflect: true, attribute: "prevent-scroll" }) preventScroll = false;
60
+
61
+ protected updated(changedProperties: PropertyValues) {
62
+ super.updated(changedProperties);
63
+ if (changedProperties.has("focusTrapIndex")) {
64
+ const prevIndex = changedProperties.get("focusTrapIndex") as number;
65
+ const prevElement = this.focusableElements[prevIndex];
66
+
67
+ if (prevElement) {
68
+ prevElement.blur();
69
+ prevElement.toggleAttribute("focus-visible", false);
70
+ }
71
+
72
+ const newElement = this.focusableElements[this.focusTrapIndex];
73
+ if (newElement) {
74
+ this.tryFocus(newElement);
75
+ }
76
+ }
77
+ }
78
+
79
+ private tryFocus(focusableElement: HTMLElement) {
80
+ requestAnimationFrame(async () => {
81
+ if (this.isElementFocused!(focusableElement)) {
82
+ focusableElement.focus({ preventScroll: this.preventScroll });
83
+ }
84
+ if (typeof (focusableElement as LitElement).updateComplete !== "undefined") {
85
+ await (focusableElement as LitElement).updateComplete;
86
+ }
87
+ if (document.hasFocus() && this.isElementFocused!(focusableElement)) {
88
+ focusableElement.focus({ preventScroll: this.preventScroll });
89
+ }
90
+
91
+ if (!this.initialFocusComplete) {
92
+ this.initialFocusComplete = true;
93
+ }
94
+ });
95
+ }
96
+
97
+ private domRectCollection(element: HTMLElement) {
98
+ return element.getClientRects().length === 0;
99
+ }
100
+
101
+ private viewportPosition(element: HTMLElement) {
102
+ const { width, height } = element.getBoundingClientRect();
103
+ const { offsetWidth, offsetHeight } = element;
104
+
105
+ return offsetWidth + offsetHeight + height + width === 0;
106
+ }
107
+
108
+ private isNotVisible(element: HTMLElement) {
109
+ if (element.tagName !== "SLOT") {
110
+ return this.viewportPosition(element) || this.domRectCollection(element);
111
+ }
112
+ return false;
113
+ }
114
+
115
+ private isHidden(element: HTMLElement) {
116
+ return (
117
+ element.hasAttribute("hidden") ||
118
+ (element.hasAttribute("aria-hidden") && element.getAttribute("aria-hidden") === "true") ||
119
+ element.style.display === "none" ||
120
+ element.style.opacity === "0" ||
121
+ element.style.visibility === "hidden" ||
122
+ element.style.visibility === "collapse" ||
123
+ this.isNotVisible(element)
124
+ );
125
+ }
126
+
127
+ private isDisabled(element: HTMLElement) {
128
+ return element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true";
129
+ }
130
+
131
+ private isNotTabbable(element: HTMLElement) {
132
+ return element.getAttribute("tabindex") === "-1";
133
+ }
134
+
135
+ private isInteractiveElement(element: HTMLElement) {
136
+ if (
137
+ element instanceof HTMLButtonElement ||
138
+ element instanceof HTMLDetailsElement ||
139
+ element instanceof HTMLEmbedElement ||
140
+ element instanceof HTMLIFrameElement ||
141
+ element instanceof HTMLSelectElement ||
142
+ element instanceof HTMLTextAreaElement
143
+ ) {
144
+ return true;
145
+ }
146
+ if (element instanceof HTMLAnchorElement && element.hasAttribute("href")) {
147
+ return true;
148
+ }
149
+ if (element instanceof HTMLInputElement && element.type !== "hidden") {
150
+ return true;
151
+ }
152
+ if (
153
+ (element instanceof HTMLAudioElement || element instanceof HTMLVideoElement) &&
154
+ element.hasAttribute("controls")
155
+ ) {
156
+ return true;
157
+ }
158
+ if (
159
+ (element instanceof HTMLImageElement || element instanceof HTMLObjectElement) &&
160
+ element.hasAttribute("usemap")
161
+ ) {
162
+ return true;
163
+ }
164
+ if (element.hasAttribute("tabindex") && element.tabIndex > -1) {
165
+ return true;
166
+ }
167
+ return false;
168
+ }
169
+
170
+ private isFocusable(element: HTMLElement) {
171
+ if (this.isDisabled(element) || this.isHidden(element) || this.isNotTabbable(element)) {
172
+ return false;
173
+ }
174
+ if (this.isInteractiveElement(element)) {
175
+ return true;
176
+ }
177
+ return false;
178
+ }
179
+
180
+ private shouldSkipFocus(element: HTMLElement) {
181
+ // when combobox is having more than 100 items screen getting freezed
182
+ if(element.className.split(" ").indexOf('md-combobox')>-1){
183
+ return true;
184
+ }
185
+ }
186
+
187
+ private findFocusable(root: ShadowRoot | HTMLElement, matches: Set<HTMLElement>): HTMLElement[] {
188
+ const children = Array.from(root.children) as HTMLElement[];
189
+ for (const child of children) {
190
+ if (this.isHidden(child)) {
191
+ continue;
192
+ }
193
+
194
+ if(this.shouldSkipFocus(child)){
195
+ break;
196
+ }
197
+
198
+ if (this.isFocusable(child)) {
199
+ matches.add(child);
200
+ }
201
+
202
+ if (child.shadowRoot) {
203
+ this.findFocusable(child.shadowRoot, matches);
204
+ } else if (child.tagName === "SLOT") {
205
+ const childElements = (child as HTMLSlotElement)
206
+ .assignedNodes()
207
+ .filter(node => node.nodeType === node.ELEMENT_NODE);
208
+ if (childElements.length) {
209
+ const parent = childElements[0].parentElement;
210
+ if (parent) {
211
+ this.findFocusable(parent, matches);
212
+ }
213
+ }
214
+ } else {
215
+ this.findFocusable(child, matches);
216
+ }
217
+ }
218
+ return [...matches];
219
+ }
220
+
221
+ private isEqualFocusNode(activeElement: HTMLElement, element: HTMLElement) {
222
+ if (activeElement.nodeType >= 0) {
223
+ return element.isEqualNode(activeElement) && element == activeElement;
224
+ }
225
+ return false;
226
+ }
227
+
228
+ private findElement(activeElement: HTMLElement) {
229
+ return this.focusableElements.findIndex(element => this.isEqualFocusNode(activeElement, element));
230
+ }
231
+
232
+ private focusTrap(direction: boolean) {
233
+ const activeElement = this.getDeepActiveElement!() as HTMLElement;
234
+ const activeIndex = this.findElement(activeElement);
235
+ if (direction) {
236
+ if (activeIndex === -1 && this.focusTrapIndex - 1 > 0) {
237
+ this.focusTrapIndex--;
238
+ } else {
239
+ this.focusTrapIndex = activeIndex > 0 ? activeIndex - 1 : this.focusableElements.length - 1;
240
+ }
241
+ } else {
242
+ if (activeIndex === -1 && this.focusTrapIndex + 1 < this.focusableElements.length) {
243
+ this.focusTrapIndex++;
244
+ } else {
245
+ this.focusTrapIndex = activeIndex + 1 < this.focusableElements.length ? activeIndex + 1 : 0;
246
+ }
247
+ }
248
+ }
249
+
250
+ private hasAutofocus(element: HTMLElement) {
251
+ return element.hasAttribute("autofocus");
252
+ }
253
+
254
+ protected setInitialFocus(prefferableElement: HTMLElement | number = 0, ignoreAutoFocus = false) {
255
+ let focusableIndex = -1;
256
+
257
+ this.initialFocusComplete = false;
258
+
259
+ if (this.focusableElements.length && !ignoreAutoFocus) {
260
+ focusableIndex = this.focusableElements.findIndex(this.hasAutofocus);
261
+ }
262
+
263
+ if (this.focusableElements.length && focusableIndex === -1) {
264
+ if (typeof prefferableElement === "object") {
265
+ focusableIndex = this.findElement(prefferableElement);
266
+ } else if (typeof prefferableElement === "number") {
267
+ focusableIndex = prefferableElement;
268
+ }
269
+ }
270
+
271
+ if (this.focusableElements[focusableIndex]) {
272
+ this.focusTrapIndex = focusableIndex;
273
+ }
274
+ }
275
+
276
+ protected setFocusableElements() {
277
+ this.focusableElements = this.findFocusable(this.shadowRoot!, new Set());
278
+ }
279
+
280
+ protected async firstUpdated(changedProperties: PropertyValues) {
281
+ super.firstUpdated(changedProperties);
282
+ await new Promise(resolve => setTimeout(resolve, 0));
283
+ this.setFocusableElements();
284
+ }
285
+
286
+ handleKeydownFocusTrap(event: KeyboardEvent) {
287
+ if (event.code !== Key.Tab || (event.shiftKey && event.code !== Key.Tab)) {
288
+ return;
289
+ }
290
+
291
+ if (!this.activeFocusTrap || !this.focusableElements.length) {
292
+ return;
293
+ }
294
+
295
+ if (event.shiftKey) {
296
+ event.preventDefault();
297
+ this.focusTrap(true);
298
+ } else {
299
+ event.preventDefault();
300
+ this.focusTrap(false);
301
+ }
302
+ }
303
+
304
+ protected activateFocusTrap() {
305
+ this.activeFocusTrap = true;
306
+ }
307
+
308
+ protected deactivateFocusTrap() {
309
+ this.activeFocusTrap = false;
310
+ this.focusTrapIndex = -1;
311
+ this.removeAttribute("focus-trap-index");
312
+ }
313
+
314
+ handleOutsideTrapClick = (event: MouseEvent) => {
315
+ let insideTrapClick = false;
316
+ const path = event.composedPath();
317
+ if (path.length) {
318
+ insideTrapClick = !!path.find(node => node === this);
319
+ if (!insideTrapClick && !this.preventClickOutside && this.activeFocusTrap) {
320
+ this.deactivateFocusTrap();
321
+ } else if (insideTrapClick && this.activeFocusTrap && this.initialFocusComplete) {
322
+ this.handleClickInsideTrap(event);
323
+ }
324
+ }
325
+ };
326
+
327
+ private handleClickInsideTrap(event: MouseEvent) {
328
+ const path = event.composedPath();
329
+ const pathIndex = path.findIndex(element => this.findElement(element as HTMLElement) !== -1);
330
+ if (pathIndex !== -1) {
331
+ const focusableElement = path[pathIndex] as HTMLElement;
332
+ const focusableIndex = this.findElement(focusableElement);
333
+
334
+ if (focusableIndex !== -1) {
335
+ this.focusTrapIndex = focusableIndex;
336
+ }
337
+ }
338
+ }
339
+
340
+ private manageNewElement(newElement: HTMLElement) {
341
+ requestAnimationFrame(() => {
342
+ this.setFocusableElements();
343
+ const focusableIndex = this.findElement(newElement);
344
+
345
+ if (focusableIndex !== -1) {
346
+ this.focusTrapIndex = focusableIndex;
347
+ }
348
+ });
349
+ }
350
+
351
+ handleFocusVisible(event: CustomEvent<FocusEventDetail>) {
352
+ const originalEvent = event.detail ? event.detail.sourceEvent : event;
353
+ const focusableElement = originalEvent.composedPath()[0];
354
+ const focusableIndex = event.detail ? this.findElement(focusableElement as HTMLElement) : -1;
355
+
356
+ if (focusableIndex === -1 && focusableElement !== this) {
357
+ this.manageNewElement(focusableElement as HTMLElement);
358
+ }
359
+ }
360
+
361
+ connectedCallback() {
362
+ super.connectedCallback();
363
+ this.addEventListener("keydown", this.handleKeydownFocusTrap);
364
+ this.addEventListener("focus-visible", this.handleFocusVisible as EventListener);
365
+ document.addEventListener("click", this.handleOutsideTrapClick);
366
+ }
367
+
368
+ disconnectedCallback() {
369
+ super.disconnectedCallback();
370
+ this.removeEventListener("keydown", this.handleKeydownFocusTrap);
371
+ this.removeEventListener("focus-visible", this.handleFocusVisible as EventListener);
372
+ document.removeEventListener("click", this.handleOutsideTrapClick);
373
+ }
374
+ }
375
+
376
+ DedupeMixin(FocusTrapMixin, FocusTrap);
377
+
378
+ return FocusTrap;
379
+ };
@@ -0,0 +1,86 @@
1
+ import { defineCE, fixture, fixtureCleanup, oneEvent } from "@open-wc/testing-helpers";
2
+ import { customElement, html, LitElement } from "lit-element";
3
+ import { ResizeMixin, ResizeObserver } from "./ResizeMixin";
4
+
5
+ interface MyWindow extends Window {
6
+ ResizeObserver: typeof ResizeObserver;
7
+ }
8
+
9
+ const disconnectMock = jest.fn();
10
+ const observeMock = jest.fn();
11
+ const unobserveMock = jest.fn();
12
+ const constructorMock = jest.fn();
13
+
14
+ class MockObserver {
15
+ public observe = observeMock;
16
+ public unobserve = unobserveMock;
17
+ public disconnect = disconnectMock;
18
+ constructor() {
19
+ constructorMock();
20
+ }
21
+ }
22
+
23
+ (window as MyWindow & typeof globalThis).ResizeObserver = jest.fn().mockImplementation(() => {
24
+ return new MockObserver();
25
+ });
26
+
27
+ describe("Resize Mixin", () => {
28
+ afterEach(fixtureCleanup);
29
+
30
+ @customElement("custom-element")
31
+ class CustomElement extends ResizeMixin(ResizeMixin(LitElement)) {
32
+ connectedCallback() {
33
+ super.connectedCallback();
34
+ this.dispatchEvent(new CustomEvent("connected-callback"));
35
+ }
36
+
37
+ customUnobserveAll() {
38
+ super.unobserveAll && super.unobserveAll();
39
+ }
40
+
41
+ customResize() {
42
+ const fakeDOMRect = this.getBoundingClientRect();
43
+ super.handleResize && super.handleResize(fakeDOMRect);
44
+ }
45
+
46
+ render() {
47
+ return html`
48
+ <div>Content</div>
49
+ `;
50
+ }
51
+ }
52
+
53
+ test("should create observer instance and start observe when element connected to dom", async () => {
54
+ const tag = defineCE(class extends CustomElement {});
55
+ const el = document.createElement(`${tag}`) as CustomElement;
56
+ Object.defineProperty(el, "isConnected", {
57
+ value: true
58
+ });
59
+ setTimeout(() => el.connectedCallback());
60
+ const ev = await oneEvent(el, "connected-callback");
61
+ expect(ev).toBeDefined();
62
+ expect(observeMock).toHaveBeenCalled();
63
+ });
64
+
65
+ test("should unobserve when element disconnected to dom", async () => {
66
+ const el = await fixture<CustomElement>(`<custom-element></custom-element>`);
67
+ el.parentElement!.removeChild(el);
68
+ expect(unobserveMock).toHaveBeenCalled();
69
+ });
70
+
71
+ test("should delete oserver instance and stop observe", async () => {
72
+ const el = await fixture<CustomElement>(`<custom-element></custom-element>`);
73
+ el.customUnobserveAll();
74
+ expect(disconnectMock).toHaveBeenCalled();
75
+ });
76
+
77
+ test("should dispatch resize event", async () => {
78
+ const el = await fixture<CustomElement>(`<custom-element></custom-element>`);
79
+ setTimeout(() => el.customResize());
80
+ const { detail } = await oneEvent(el, "resize");
81
+ expect(detail).toBeDefined();
82
+
83
+ const elDOMRect = el.getBoundingClientRect();
84
+ expect(detail.contentRect).toStrictEqual(elDOMRect);
85
+ });
86
+ });
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Copyright (c) Cisco Systems, Inc. and its affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+
9
+ /** This mixin provides a performant mechanism by which component can monitor changes to its size.
10
+ * For performance purpose, resizeObserver instance is static mixin property, and its shared across
11
+ * all components that applied ResizeMixin. (The `observe` method, which adds element as a new target to the list of observed elements,
12
+ * can pass either one element or multiple, so this mixin can manage mutliple elements that need's to be observed).
13
+ * When observed element's size changed, mixin dispatch `resize` event to handle it outside component tree.
14
+ *
15
+ * Example:
16
+ * @customElements("custom-element")
17
+ * class CustomElement extends ResizeMixin(LitElement) {
18
+ * protected handleResize(contentRect: DOMRect) { <---- You override this with corresponding name in component directly.
19
+ // super.handleResize && super.handleResize(event); <---- Check to see whether the superclass defines a method of the same name, and if so, invoke that method.
20
+ // Do your listener work here.
21
+ }
22
+ * }
23
+ */
24
+
25
+ import { LitElement } from "lit-element";
26
+ import { DedupeMixin, wasApplied } from "./DedupeMixin";
27
+
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ export type AnyConstructor<A = LitElement> = new (...input: any[]) => A;
30
+
31
+ export abstract class ResizeClass extends LitElement {
32
+ protected handleResize?(contentRect: DOMRect): void;
33
+ protected unobserveAll?(): void;
34
+ }
35
+
36
+ type ResizeObserverBoxOptions = "border-box" | "content-box" | "device-pixel-content-box";
37
+
38
+ export interface ResizeObserverOptions {
39
+ box?: ResizeObserverBoxOptions;
40
+ }
41
+
42
+ export declare class ResizeObserver {
43
+ constructor(callback: ResizeObserverCallback);
44
+ observe: (target: Element, options?: ResizeObserverOptions) => void;
45
+ unobserve: (target: Element) => void;
46
+ disconnect: () => void;
47
+ }
48
+
49
+ export type ResizeObserverCallback = (entries: ResizeObserverEntry[], observer: ResizeObserver) => void;
50
+
51
+ export interface ResizeObserverEntry {
52
+ readonly target: Element;
53
+ readonly contentRect: DOMRectReadOnly;
54
+ readonly borderBoxSize: ResizeObserverSize[];
55
+ readonly contentBoxSize: ResizeObserverSize[];
56
+ readonly devicePixelContentBoxSize: ResizeObserverSize[];
57
+ }
58
+
59
+ interface ResizeObserverSize {
60
+ readonly inlineSize: number;
61
+ readonly blockSize: number;
62
+ }
63
+
64
+ export const ResizeMixin = <T extends AnyConstructor<ResizeClass>>(base: T): T & AnyConstructor<ResizeClass> => {
65
+ if (wasApplied(ResizeMixin, base)) {
66
+ return base as ReturnType<() => T & AnyConstructor<ResizeClass>>;
67
+ }
68
+ class Resize extends base {
69
+ protected static _resizeObserver?: ResizeObserver;
70
+ protected static _animationFrameID?: number;
71
+
72
+ private _initResizeObserver() {
73
+ const observer = Resize._resizeObserver;
74
+ if (observer == null) {
75
+ Resize._resizeObserver = new ResizeObserver((entries: ResizeObserverEntry[]) => {
76
+ Resize._animationFrameID = requestAnimationFrame(() => {
77
+ if (Array.isArray(entries) && entries.length) {
78
+ entries.forEach(entry => {
79
+ const { target, contentRect } = entry;
80
+ (target as Resize).handleResize(contentRect as DOMRect);
81
+ });
82
+ }
83
+ });
84
+ });
85
+ }
86
+ }
87
+
88
+ protected handleResize(contentRect: DOMRect) {
89
+ if (super.handleResize) {
90
+ super.handleResize(contentRect);
91
+ }
92
+ this.dispatchEvent(
93
+ new CustomEvent("resize", {
94
+ detail: {
95
+ contentRect
96
+ },
97
+ bubbles: true,
98
+ composed: true
99
+ })
100
+ );
101
+ }
102
+
103
+ protected unobserveAll() {
104
+ if (super.unobserveAll) {
105
+ super.unobserveAll();
106
+ }
107
+ const observer = Resize._resizeObserver;
108
+ if (observer) {
109
+ observer.disconnect();
110
+ }
111
+ }
112
+
113
+ connectedCallback() {
114
+ super.connectedCallback();
115
+
116
+ this._initResizeObserver();
117
+ const observer = Resize._resizeObserver;
118
+
119
+ if (observer && this.isConnected) {
120
+ observer.observe(this);
121
+ }
122
+ }
123
+
124
+ disconnectedCallback() {
125
+ super.disconnectedCallback();
126
+ const observer = Resize._resizeObserver;
127
+ const timerId = Resize._animationFrameID;
128
+
129
+ if (observer) {
130
+ observer.unobserve(this);
131
+ }
132
+
133
+ if (timerId) {
134
+ cancelAnimationFrame(timerId);
135
+ }
136
+ }
137
+ }
138
+
139
+ DedupeMixin(ResizeMixin, Resize);
140
+
141
+ return Resize;
142
+ };
@@ -0,0 +1,62 @@
1
+ import { elementUpdated, fixture, fixtureCleanup, html } from "@open-wc/testing-helpers";
2
+ import { customElement, LitElement } from "lit-element";
3
+ import { RovingTabIndexInterface, RovingTabIndexMixin } from "./RovingTabIndexMixin";
4
+
5
+ describe("RovingTabIndex Mixin", () => {
6
+ let el: CustomElement & RovingTabIndexInterface;
7
+
8
+ @customElement("custom-element")
9
+ class CustomElement extends RovingTabIndexMixin(RovingTabIndexMixin(LitElement)) {
10
+ render() {
11
+ return html`
12
+ <div class="wrapper">
13
+ <slot></slot>
14
+ </div>
15
+ `;
16
+ }
17
+ }
18
+
19
+ afterEach(fixtureCleanup);
20
+ beforeEach(async () => {
21
+ el = await fixture<CustomElement & RovingTabIndexInterface>(
22
+ html`
23
+ <custom-element selected="2">
24
+ <div>
25
+ <span>One</span>
26
+ </div>
27
+ <div>
28
+ <span>Two</span>
29
+ </div>
30
+ <div disabled>
31
+ <span>Three</span>
32
+ </div>
33
+ <div>
34
+ <span>Four</span>
35
+ </div>
36
+ </custom-element>
37
+ `
38
+ );
39
+ });
40
+
41
+ test("should applying to component", () => {
42
+ expect(el).toHaveProperty("selected", expect.any(Number));
43
+ expect(el).toHaveProperty("getAvailableSelectedIndex", expect.any(Function));
44
+ });
45
+
46
+ test("should not set tabindex if selected item is not correct", () => {
47
+ expect(el.slotted[0].tabIndex).toBe(-1);
48
+ });
49
+
50
+ test("should set tabindex to next available item", async () => {
51
+ el.selected = 1;
52
+ await elementUpdated(el);
53
+ expect(el.slotted[0].tabIndex).toBe(-1);
54
+ expect(el.slotted[1].tabIndex).toBe(0);
55
+ });
56
+
57
+ test("should prevent focus in rovingPreventFocus property is passed", async () => {
58
+ el.rovingPreventFocus = true;
59
+ await elementUpdated(el);
60
+ expect(document.activeElement).not.toEqual(el);
61
+ });
62
+ });