@vonage/vivid 3.0.0-next.7 → 3.0.0-next.71

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 (478) hide show
  1. package/README.md +137 -4
  2. package/accordion/index.js +59 -0
  3. package/accordion-item/index.js +131 -0
  4. package/action-group/index.js +47 -0
  5. package/avatar/index.js +51 -0
  6. package/badge/index.js +58 -0
  7. package/banner/index.js +149 -0
  8. package/breadcrumb/index.js +103 -0
  9. package/breadcrumb-item/index.js +62 -0
  10. package/button/index.js +130 -0
  11. package/calendar/index.js +1563 -0
  12. package/calendar-event/index.js +115 -0
  13. package/card/index.js +132 -0
  14. package/checkbox/index.js +184 -0
  15. package/dialog/index.js +281 -0
  16. package/divider/index.js +86 -0
  17. package/elevation/index.js +3 -0
  18. package/fab/index.js +105 -0
  19. package/focus/index.js +18 -0
  20. package/header/index.js +66 -0
  21. package/icon/index.js +38 -0
  22. package/{src/index.ts → index.d.ts} +2 -2
  23. package/index.js +63 -0
  24. package/layout/index.js +51 -0
  25. package/lib/accordion/accordion.d.ts +9 -0
  26. package/lib/accordion/accordion.template.d.ts +4 -0
  27. package/lib/accordion/index.d.ts +2 -0
  28. package/lib/accordion-item/accordion-item.d.ts +13 -0
  29. package/lib/accordion-item/accordion-item.template.d.ts +4 -0
  30. package/lib/accordion-item/index.d.ts +4 -0
  31. package/lib/action-group/action-group.d.ts +10 -0
  32. package/lib/action-group/action-group.template.d.ts +4 -0
  33. package/lib/action-group/index.d.ts +2 -0
  34. package/lib/avatar/avatar.d.ts +14 -0
  35. package/lib/avatar/avatar.template.d.ts +4 -0
  36. package/lib/avatar/index.d.ts +3 -0
  37. package/lib/badge/badge.d.ts +17 -0
  38. package/lib/badge/badge.template.d.ts +4 -0
  39. package/lib/badge/index.d.ts +3 -0
  40. package/lib/banner/banner.d.ts +20 -0
  41. package/lib/banner/banner.template.d.ts +4 -0
  42. package/lib/banner/index.d.ts +3 -0
  43. package/lib/breadcrumb/breadcrumb.d.ts +3 -0
  44. package/lib/breadcrumb/breadcrumb.template.d.ts +4 -0
  45. package/lib/breadcrumb/index.d.ts +2 -0
  46. package/lib/breadcrumb-item/breadcrumb-item.d.ts +5 -0
  47. package/lib/breadcrumb-item/breadcrumb-item.template.d.ts +4 -0
  48. package/lib/breadcrumb-item/index.d.ts +4 -0
  49. package/lib/button/button.d.ts +18 -0
  50. package/lib/button/button.template.d.ts +4 -0
  51. package/lib/button/index.d.ts +4 -0
  52. package/lib/calendar/calendar.d.ts +13 -0
  53. package/lib/calendar/calendar.template.d.ts +4 -0
  54. package/lib/calendar/helpers/calendar.date-functions.d.ts +2 -0
  55. package/lib/calendar/helpers/calendar.event-context.d.ts +6 -0
  56. package/lib/calendar/helpers/calendar.keyboard-interactions.d.ts +9 -0
  57. package/lib/calendar/index.d.ts +2 -0
  58. package/lib/calendar-event/calendar-event.d.ts +14 -0
  59. package/lib/calendar-event/calendar-event.template.d.ts +4 -0
  60. package/lib/calendar-event/index.d.ts +2 -0
  61. package/lib/card/card.d.ts +10 -0
  62. package/lib/card/card.template.d.ts +4 -0
  63. package/lib/card/index.d.ts +4 -0
  64. package/lib/checkbox/checkbox.d.ts +5 -0
  65. package/lib/checkbox/checkbox.template.d.ts +4 -0
  66. package/lib/checkbox/index.d.ts +4 -0
  67. package/lib/components.d.ts +32 -0
  68. package/lib/dialog/dialog.d.ts +20 -0
  69. package/lib/dialog/dialog.template.d.ts +4 -0
  70. package/lib/dialog/index.d.ts +5 -0
  71. package/lib/divider/divider.d.ts +3 -0
  72. package/lib/divider/divider.template.d.ts +4 -0
  73. package/lib/divider/index.d.ts +2 -0
  74. package/lib/elevation/elevation.d.ts +5 -0
  75. package/lib/elevation/elevation.template.d.ts +4 -0
  76. package/lib/elevation/index.d.ts +2 -0
  77. package/lib/enums.d.ts +51 -0
  78. package/lib/fab/fab.d.ts +13 -0
  79. package/lib/fab/fab.template.d.ts +4 -0
  80. package/lib/fab/index.d.ts +4 -0
  81. package/lib/focus/focus.d.ts +3 -0
  82. package/lib/focus/focus.template.d.ts +4 -0
  83. package/lib/focus/index.d.ts +2 -0
  84. package/lib/header/header.d.ts +5 -0
  85. package/lib/header/header.template.d.ts +4 -0
  86. package/lib/header/index.d.ts +3 -0
  87. package/lib/icon/icon.d.ts +12 -0
  88. package/lib/icon/icon.placeholder.d.ts +1 -0
  89. package/lib/icon/icon.template.d.ts +4 -0
  90. package/lib/icon/index.d.ts +2 -0
  91. package/lib/layout/index.d.ts +2 -0
  92. package/lib/layout/layout.d.ts +16 -0
  93. package/lib/layout/layout.template.d.ts +4 -0
  94. package/lib/menu/index.d.ts +12 -0
  95. package/lib/menu/menu.d.ts +10 -0
  96. package/lib/menu/menu.template.d.ts +3 -0
  97. package/lib/menu-item/index.d.ts +3 -0
  98. package/lib/menu-item/menu-item.d.ts +7 -0
  99. package/lib/menu-item/menu-item.template.d.ts +5 -0
  100. package/lib/nav/index.d.ts +2 -0
  101. package/lib/nav/nav.d.ts +3 -0
  102. package/lib/nav/nav.template.d.ts +4 -0
  103. package/lib/nav-disclosure/index.d.ts +4 -0
  104. package/lib/nav-disclosure/nav-disclosure.d.ts +10 -0
  105. package/lib/nav-disclosure/nav-disclosure.template.d.ts +4 -0
  106. package/lib/nav-item/index.d.ts +4 -0
  107. package/lib/nav-item/nav-item.d.ts +6 -0
  108. package/lib/nav-item/nav-item.template.d.ts +4 -0
  109. package/lib/note/index.d.ts +2 -0
  110. package/lib/note/note.d.ts +10 -0
  111. package/lib/note/note.template.d.ts +5 -0
  112. package/lib/popup/index.d.ts +4 -0
  113. package/lib/popup/popup.d.ts +18 -0
  114. package/lib/popup/popup.template.d.ts +4 -0
  115. package/lib/progress/index.d.ts +2 -0
  116. package/lib/progress/progress.d.ts +9 -0
  117. package/lib/progress/progress.template.d.ts +5 -0
  118. package/lib/progress-ring/index.d.ts +2 -0
  119. package/lib/progress-ring/progress-ring.d.ts +7 -0
  120. package/lib/progress-ring/progress-ring.template.d.ts +4 -0
  121. package/lib/side-drawer/index.d.ts +2 -0
  122. package/lib/side-drawer/side-drawer.d.ts +9 -0
  123. package/lib/side-drawer/side-drawer.template.d.ts +4 -0
  124. package/lib/text-anchor/index.d.ts +2 -0
  125. package/lib/text-anchor/text-anchor.d.ts +7 -0
  126. package/lib/text-anchor/text-anchor.template.d.ts +4 -0
  127. package/lib/text-area/index.d.ts +3 -0
  128. package/lib/text-area/text-area.d.ts +9 -0
  129. package/lib/text-area/text-area.template.d.ts +4 -0
  130. package/lib/text-field/index.d.ts +4 -0
  131. package/lib/text-field/text-field.d.ts +16 -0
  132. package/lib/text-field/text-field.template.d.ts +5 -0
  133. package/lib/tooltip/index.d.ts +3 -0
  134. package/lib/tooltip/tooltip.d.ts +8 -0
  135. package/lib/tooltip/tooltip.template.d.ts +4 -0
  136. package/menu/index.js +380 -0
  137. package/menu-item/index.js +19 -0
  138. package/nav/index.js +17 -0
  139. package/nav-disclosure/index.js +88 -0
  140. package/nav-item/index.js +45 -0
  141. package/note/index.js +66 -0
  142. package/package.json +56 -5
  143. package/popup/index.js +26 -0
  144. package/progress/index.js +105 -0
  145. package/progress-ring/index.js +80 -0
  146. package/shared/_has.js +58 -0
  147. package/shared/affix.js +29 -0
  148. package/shared/anchor.js +86 -0
  149. package/shared/apply-mixins.js +22 -0
  150. package/shared/aria-global.js +72 -0
  151. package/shared/base-progress.js +70 -0
  152. package/shared/breadcrumb-item.js +25 -0
  153. package/shared/button.js +200 -0
  154. package/shared/calendar-event.js +26 -0
  155. package/shared/class-names.js +15 -0
  156. package/shared/design-system/index.d.ts +3 -0
  157. package/shared/dialog-polyfill.esm.js +858 -0
  158. package/shared/enums.js +79 -0
  159. package/shared/es.object.assign.js +69 -0
  160. package/shared/export.js +995 -0
  161. package/shared/focus.js +5 -0
  162. package/shared/focus2.js +11 -0
  163. package/shared/form-associated.js +466 -0
  164. package/shared/form-elements.js +299 -0
  165. package/shared/icon.js +1406 -0
  166. package/shared/index.js +5014 -0
  167. package/shared/index2.js +35 -0
  168. package/shared/index3.js +2117 -0
  169. package/shared/index4.js +371 -0
  170. package/shared/iterators.js +61 -0
  171. package/shared/key-codes.js +90 -0
  172. package/shared/object-keys.js +13 -0
  173. package/shared/patterns/affix.d.ts +9 -0
  174. package/shared/patterns/focus.d.ts +3 -0
  175. package/shared/patterns/form-elements.d.ts +22 -0
  176. package/shared/patterns/index.d.ts +2 -0
  177. package/shared/ref.js +41 -0
  178. package/shared/slotted.js +119 -0
  179. package/shared/start-end.js +50 -0
  180. package/shared/text-anchor.js +12 -0
  181. package/shared/text-anchor.template.js +57 -0
  182. package/shared/to-string.js +51 -0
  183. package/shared/web.dom-collections.iterator.js +474 -0
  184. package/shared/when.js +15 -0
  185. package/side-drawer/index.js +102 -0
  186. package/styles/core/all.css +75 -0
  187. package/styles/core/theme.css +11 -0
  188. package/styles/core/typography.css +69 -0
  189. package/styles/fonts/SpeziaCompleteVariableItalicWeb.woff2 +0 -0
  190. package/styles/fonts/SpeziaCompleteVariableUprightWeb.woff2 +0 -0
  191. package/styles/fonts/SpeziaMonoCompleteVariableWeb.woff2 +0 -0
  192. package/styles/fonts/spezia.css +20 -0
  193. package/styles/tokens/theme-dark.css +210 -0
  194. package/styles/tokens/theme-light.css +210 -0
  195. package/text-anchor/index.js +27 -0
  196. package/text-area/index.js +304 -0
  197. package/text-field/index.js +152 -0
  198. package/tooltip/index.js +71 -0
  199. package/.babelrc +0 -3
  200. package/.eslintrc.json +0 -70
  201. package/.stylelintrc.json +0 -8
  202. package/CHANGELOG.json +0 -343
  203. package/CHANGELOG.md +0 -45
  204. package/jest.config.cjs +0 -20
  205. package/playwright.config.dev.ts +0 -21
  206. package/playwright.config.ts +0 -34
  207. package/project.json +0 -122
  208. package/rollup.config.prod.ts +0 -50
  209. package/setupJestTests.js +0 -17
  210. package/src/lib/accordion/README.md +0 -55
  211. package/src/lib/accordion/accordion.scss +0 -10
  212. package/src/lib/accordion/accordion.spec.ts +0 -91
  213. package/src/lib/accordion/accordion.template.ts +0 -23
  214. package/src/lib/accordion/accordion.ts +0 -49
  215. package/src/lib/accordion/index.ts +0 -14
  216. package/src/lib/accordion/ui.test.ts +0 -37
  217. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Chrome-Stable-darwin.png +0 -0
  218. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Chrome-Stable-linux.png +0 -0
  219. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Desktop-Firefox-darwin.png +0 -0
  220. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Desktop-Firefox-linux.png +0 -0
  221. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Desktop-Safari-darwin.png +0 -0
  222. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Desktop-Safari-linux.png +0 -0
  223. package/src/lib/accordion-item/README.md +0 -113
  224. package/src/lib/accordion-item/accordion-item.scss +0 -91
  225. package/src/lib/accordion-item/accordion-item.spec.ts +0 -103
  226. package/src/lib/accordion-item/accordion-item.template.ts +0 -62
  227. package/src/lib/accordion-item/accordion-item.ts +0 -67
  228. package/src/lib/accordion-item/index.ts +0 -14
  229. package/src/lib/accordion-item/partials/variables.scss +0 -1
  230. package/src/lib/accordion-item/ui.test.ts +0 -37
  231. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Chrome-Stable-darwin.png +0 -0
  232. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Chrome-Stable-linux.png +0 -0
  233. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Desktop-Firefox-darwin.png +0 -0
  234. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Desktop-Firefox-linux.png +0 -0
  235. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Desktop-Safari-darwin.png +0 -0
  236. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Desktop-Safari-linux.png +0 -0
  237. package/src/lib/badge/README.md +0 -112
  238. package/src/lib/badge/badge.scss +0 -64
  239. package/src/lib/badge/badge.spec.ts +0 -114
  240. package/src/lib/badge/badge.template.ts +0 -36
  241. package/src/lib/badge/badge.ts +0 -97
  242. package/src/lib/badge/index.ts +0 -23
  243. package/src/lib/badge/ui.test.ts +0 -28
  244. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Chrome-Stable-darwin.png +0 -0
  245. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Chrome-Stable-linux.png +0 -0
  246. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Desktop-Firefox-darwin.png +0 -0
  247. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Desktop-Firefox-linux.png +0 -0
  248. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Desktop-Safari-darwin.png +0 -0
  249. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Desktop-Safari-linux.png +0 -0
  250. package/src/lib/banner/README.md +0 -117
  251. package/src/lib/banner/banner.scss +0 -71
  252. package/src/lib/banner/banner.spec.ts +0 -355
  253. package/src/lib/banner/banner.template.ts +0 -61
  254. package/src/lib/banner/banner.ts +0 -77
  255. package/src/lib/banner/index.ts +0 -14
  256. package/src/lib/banner/ui.test.ts +0 -64
  257. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Chrome-Stable-darwin.png +0 -0
  258. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Chrome-Stable-linux.png +0 -0
  259. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Desktop-Firefox-darwin.png +0 -0
  260. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Desktop-Firefox-linux.png +0 -0
  261. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Desktop-Safari-darwin.png +0 -0
  262. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Desktop-Safari-linux.png +0 -0
  263. package/src/lib/breadcrumb/README.md +0 -25
  264. package/src/lib/breadcrumb/breadcrumb.scss +0 -3
  265. package/src/lib/breadcrumb/breadcrumb.spec.ts +0 -78
  266. package/src/lib/breadcrumb/breadcrumb.ts +0 -10
  267. package/src/lib/breadcrumb/index.ts +0 -13
  268. package/src/lib/breadcrumb/ui.test.ts +0 -36
  269. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Chrome-Stable-darwin.png +0 -0
  270. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Chrome-Stable-linux.png +0 -0
  271. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Desktop-Firefox-darwin.png +0 -0
  272. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Desktop-Firefox-linux.png +0 -0
  273. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Desktop-Safari-darwin.png +0 -0
  274. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Desktop-Safari-linux.png +0 -0
  275. package/src/lib/breadcrumb-item/README.md +0 -40
  276. package/src/lib/breadcrumb-item/breadcrumb-item.scss +0 -28
  277. package/src/lib/breadcrumb-item/breadcrumb-item.spec.ts +0 -192
  278. package/src/lib/breadcrumb-item/breadcrumb-item.template.ts +0 -37
  279. package/src/lib/breadcrumb-item/breadcrumb-item.ts +0 -15
  280. package/src/lib/breadcrumb-item/index.ts +0 -16
  281. package/src/lib/breadcrumb-item/ui.test.ts +0 -38
  282. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Chrome-Stable-darwin.png +0 -0
  283. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Chrome-Stable-linux.png +0 -0
  284. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Desktop-Firefox-darwin.png +0 -0
  285. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Desktop-Firefox-linux.png +0 -0
  286. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Desktop-Safari-darwin.png +0 -0
  287. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Desktop-Safari-linux.png +0 -0
  288. package/src/lib/button/README.md +0 -120
  289. package/src/lib/button/button.scss +0 -142
  290. package/src/lib/button/button.spec.ts +0 -131
  291. package/src/lib/button/button.template.ts +0 -89
  292. package/src/lib/button/button.ts +0 -95
  293. package/src/lib/button/index.ts +0 -25
  294. package/src/lib/button/partials/variables.scss +0 -2
  295. package/src/lib/button/ui.test.ts +0 -32
  296. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Chrome-Stable-darwin.png +0 -0
  297. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Chrome-Stable-linux.png +0 -0
  298. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Desktop-Firefox-darwin.png +0 -0
  299. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Desktop-Firefox-linux.png +0 -0
  300. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Desktop-Safari-darwin.png +0 -0
  301. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Desktop-Safari-linux.png +0 -0
  302. package/src/lib/calendar/README.md +0 -70
  303. package/src/lib/calendar/calendar.scss +0 -176
  304. package/src/lib/calendar/calendar.spec.ts +0 -341
  305. package/src/lib/calendar/calendar.template.ts +0 -93
  306. package/src/lib/calendar/calendar.ts +0 -139
  307. package/src/lib/calendar/helpers/calendar.date-functions.ts +0 -31
  308. package/src/lib/calendar/helpers/calendar.event-context.ts +0 -72
  309. package/src/lib/calendar/helpers/calendar.keyboard-interactions.ts +0 -65
  310. package/src/lib/calendar/index.ts +0 -16
  311. package/src/lib/calendar/partials/_variables.scss +0 -15
  312. package/src/lib/calendar/ui.test.ts +0 -32
  313. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Chrome-Stable-darwin.png +0 -0
  314. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Chrome-Stable-linux.png +0 -0
  315. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Desktop-Firefox-darwin.png +0 -0
  316. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Desktop-Firefox-linux.png +0 -0
  317. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Desktop-Safari-darwin.png +0 -0
  318. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Desktop-Safari-linux.png +0 -0
  319. package/src/lib/components.spec.ts +0 -7
  320. package/src/lib/components.ts +0 -16
  321. package/src/lib/elevation/README.md +0 -99
  322. package/src/lib/elevation/elevation.scss +0 -15
  323. package/src/lib/elevation/elevation.spec.ts +0 -55
  324. package/src/lib/elevation/elevation.template.ts +0 -26
  325. package/src/lib/elevation/elevation.ts +0 -17
  326. package/src/lib/elevation/index.ts +0 -17
  327. package/src/lib/elevation/partials/_elevation.mixin.scss +0 -4
  328. package/src/lib/elevation/ui.test.ts +0 -32
  329. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Chrome-Stable-darwin.png +0 -0
  330. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Chrome-Stable-linux.png +0 -0
  331. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Desktop-Firefox-darwin.png +0 -0
  332. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Desktop-Firefox-linux.png +0 -0
  333. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Desktop-Safari-darwin.png +0 -0
  334. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Desktop-Safari-linux.png +0 -0
  335. package/src/lib/enums.ts +0 -55
  336. package/src/lib/focus/README.md +0 -1
  337. package/src/lib/focus/focus.scss +0 -17
  338. package/src/lib/focus/focus.template.ts +0 -16
  339. package/src/lib/focus/focus.ts +0 -10
  340. package/src/lib/focus/index.ts +0 -21
  341. package/src/lib/focus/partials/variables.scss +0 -2
  342. package/src/lib/icon/README.md +0 -70
  343. package/src/lib/icon/__snapshots__/icon.spec.ts.snap +0 -16
  344. package/src/lib/icon/icon.placeholder.ts +0 -12
  345. package/src/lib/icon/icon.scss +0 -52
  346. package/src/lib/icon/icon.spec.ts +0 -106
  347. package/src/lib/icon/icon.template.ts +0 -23
  348. package/src/lib/icon/icon.ts +0 -93
  349. package/src/lib/icon/index.ts +0 -14
  350. package/src/lib/layout/README.md +0 -154
  351. package/src/lib/layout/index.ts +0 -18
  352. package/src/lib/layout/layout.scss +0 -40
  353. package/src/lib/layout/layout.spec.ts +0 -73
  354. package/src/lib/layout/layout.template.ts +0 -29
  355. package/src/lib/layout/layout.ts +0 -46
  356. package/src/lib/layout/partials/_functions.scss +0 -15
  357. package/src/lib/layout/partials/_mixins.scss +0 -5
  358. package/src/lib/layout/partials/_variables.scss +0 -23
  359. package/src/lib/layout/ui.test.ts +0 -32
  360. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Chrome-Stable-darwin.png +0 -0
  361. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Chrome-Stable-linux.png +0 -0
  362. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Desktop-Firefox-darwin.png +0 -0
  363. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Desktop-Firefox-linux.png +0 -0
  364. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Desktop-Safari-darwin.png +0 -0
  365. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Desktop-Safari-linux.png +0 -0
  366. package/src/lib/popup/README.md +0 -261
  367. package/src/lib/popup/index.ts +0 -21
  368. package/src/lib/popup/popup.scss +0 -43
  369. package/src/lib/popup/popup.spec.ts +0 -265
  370. package/src/lib/popup/popup.template.ts +0 -41
  371. package/src/lib/popup/popup.ts +0 -158
  372. package/src/lib/popup/ui.test.ts +0 -111
  373. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Chrome-Stable-darwin.png +0 -0
  374. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Chrome-Stable-linux.png +0 -0
  375. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Desktop-Firefox-darwin.png +0 -0
  376. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Desktop-Firefox-linux.png +0 -0
  377. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Desktop-Safari-darwin.png +0 -0
  378. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Desktop-Safari-linux.png +0 -0
  379. package/src/lib/progress/README.md +0 -107
  380. package/src/lib/progress/index.ts +0 -14
  381. package/src/lib/progress/progress.scss +0 -133
  382. package/src/lib/progress/progress.spec.ts +0 -173
  383. package/src/lib/progress/progress.template.ts +0 -62
  384. package/src/lib/progress/progress.ts +0 -25
  385. package/src/lib/progress/ui.test.ts +0 -70
  386. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Chrome-Stable-darwin.png +0 -0
  387. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Chrome-Stable-linux.png +0 -0
  388. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Desktop-Firefox-darwin.png +0 -0
  389. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Desktop-Firefox-linux.png +0 -0
  390. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Desktop-Safari-darwin.png +0 -0
  391. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Desktop-Safari-linux.png +0 -0
  392. package/src/lib/progress-ring/README.md +0 -90
  393. package/src/lib/progress-ring/index.ts +0 -15
  394. package/src/lib/progress-ring/progress-ring.scss +0 -75
  395. package/src/lib/progress-ring/progress-ring.spec.ts +0 -139
  396. package/src/lib/progress-ring/progress-ring.template.ts +0 -82
  397. package/src/lib/progress-ring/progress-ring.ts +0 -18
  398. package/src/lib/progress-ring/ui.test.ts +0 -35
  399. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Chrome-Stable-darwin.png +0 -0
  400. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Chrome-Stable-linux.png +0 -0
  401. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Desktop-Firefox-darwin.png +0 -0
  402. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Desktop-Firefox-linux.png +0 -0
  403. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Desktop-Safari-darwin.png +0 -0
  404. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Desktop-Safari-linux.png +0 -0
  405. package/src/lib/side-drawer/README.md +0 -304
  406. package/src/lib/side-drawer/index.ts +0 -16
  407. package/src/lib/side-drawer/partials/variables.scss +0 -6
  408. package/src/lib/side-drawer/side-drawer.scss +0 -109
  409. package/src/lib/side-drawer/side-drawer.spec.ts +0 -118
  410. package/src/lib/side-drawer/side-drawer.template.ts +0 -51
  411. package/src/lib/side-drawer/side-drawer.ts +0 -58
  412. package/src/lib/side-drawer/ui.test.ts +0 -102
  413. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Chrome-Stable-darwin.png +0 -0
  414. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Chrome-Stable-linux.png +0 -0
  415. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Desktop-Firefox-darwin.png +0 -0
  416. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Desktop-Firefox-linux.png +0 -0
  417. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Desktop-Safari-darwin.png +0 -0
  418. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Desktop-Safari-linux.png +0 -0
  419. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Chrome-Stable-darwin.png +0 -0
  420. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Chrome-Stable-linux.png +0 -0
  421. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Desktop-Firefox-darwin.png +0 -0
  422. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Desktop-Firefox-linux.png +0 -0
  423. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Desktop-Safari-darwin.png +0 -0
  424. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Desktop-Safari-linux.png +0 -0
  425. package/src/lib/sidenav-item/README.md +0 -41
  426. package/src/lib/sidenav-item/index.ts +0 -20
  427. package/src/lib/sidenav-item/sidenav-item.scss +0 -51
  428. package/src/lib/sidenav-item/sidenav-item.spec.ts +0 -64
  429. package/src/lib/sidenav-item/sidenav-item.template.ts +0 -25
  430. package/src/lib/sidenav-item/sidenav-item.ts +0 -15
  431. package/src/lib/sidenav-item/ui.test.ts +0 -32
  432. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Chrome-Stable-darwin.png +0 -0
  433. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Chrome-Stable-linux.png +0 -0
  434. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Desktop-Firefox-darwin.png +0 -0
  435. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Desktop-Firefox-linux.png +0 -0
  436. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Desktop-Safari-darwin.png +0 -0
  437. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Desktop-Safari-linux.png +0 -0
  438. package/src/lib/text/README.md +0 -119
  439. package/src/lib/text/index.ts +0 -14
  440. package/src/lib/text/text.scss +0 -92
  441. package/src/lib/text/text.spec.ts +0 -54
  442. package/src/lib/text/text.template.ts +0 -28
  443. package/src/lib/text/text.ts +0 -55
  444. package/src/lib/text/ui.test.ts +0 -39
  445. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Chrome-Stable-darwin.png +0 -0
  446. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Chrome-Stable-linux.png +0 -0
  447. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Desktop-Firefox-darwin.png +0 -0
  448. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Desktop-Firefox-linux.png +0 -0
  449. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Desktop-Safari-darwin.png +0 -0
  450. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Desktop-Safari-linux.png +0 -0
  451. package/src/lib/text-anchor/README.md +0 -5
  452. package/src/lib/text-anchor/index.ts +0 -12
  453. package/src/lib/text-anchor/text-anchor.spec.ts +0 -153
  454. package/src/lib/text-anchor/text-anchor.template.ts +0 -66
  455. package/src/lib/text-anchor/text-anchor.ts +0 -22
  456. package/src/lib/tooltip/README.md +0 -132
  457. package/src/lib/tooltip/index.ts +0 -16
  458. package/src/lib/tooltip/partials/variables.scss +0 -1
  459. package/src/lib/tooltip/tooltip.scss +0 -18
  460. package/src/lib/tooltip/tooltip.spec.ts +0 -70
  461. package/src/lib/tooltip/tooltip.template.ts +0 -30
  462. package/src/lib/tooltip/tooltip.ts +0 -44
  463. package/src/lib/tooltip/ui.test.ts +0 -53
  464. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Chrome-Stable-darwin.png +0 -0
  465. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Chrome-Stable-linux.png +0 -0
  466. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Desktop-Firefox-darwin.png +0 -0
  467. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Desktop-Firefox-linux.png +0 -0
  468. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Desktop-Safari-darwin.png +0 -0
  469. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Desktop-Safari-linux.png +0 -0
  470. package/src/shared/design-system/index.ts +0 -12
  471. package/src/shared/patterns/affix.ts +0 -56
  472. package/src/shared/patterns/index.ts +0 -1
  473. package/src/types/extract-gfm.d.ts +0 -5
  474. package/src/types/style.d.ts +0 -4
  475. package/src/visual-tests/visual-tests-utils.ts +0 -76
  476. package/tsconfig.json +0 -36
  477. package/tsconfig.lib.json +0 -11
  478. package/tsconfig.spec.json +0 -16
@@ -1,117 +0,0 @@
1
- # banner
2
-
3
- Banners are meant to be used on top of pages, outside the main content.
4
-
5
-
6
- ```js
7
- <script type="module">import '@vonage/vivid/banner';</script>
8
- ```
9
-
10
- ```html preview
11
- <vwc-banner text="Here's some information that you may find important!"></vwc-banner>
12
- ```
13
-
14
- ## Text
15
-
16
- - Type: `string`
17
- - Default: `''`
18
-
19
- Use the `text` attribute to set the banner's text.
20
-
21
- ```html preview
22
- <vwc-banner text="Here's some information that you may find important!"></vwc-banner>
23
- ```
24
-
25
- ## Icon
26
-
27
- - Type: `string`
28
- - Default: `'info'`
29
-
30
- The `icon` attribute will override the icon set by connotation.
31
-
32
- ```html preview
33
- <vwc-banner text="Here's some information that you may find important!"
34
- connotation="alert"
35
- icon="home-line"></vwc-banner>
36
- ```
37
-
38
- ## Connotation
39
-
40
- The `connotation` attribute sets the colors according to the wanted connotation.
41
-
42
- - Type: `'info'` | `'announcement'` | `'success'` | `'warning'` | `'alert'`
43
- - Default: `'info'`
44
-
45
- Note that icon, if not specifically set, defaults to a connotation-associated icon.
46
-
47
- const infoMessage = "I'm here to give you advice (Like, use the controls for options)";
48
- const announcementMessage = "I'm here to give you some info (Terms and Conditions changed... jk)";
49
- const successMessage = "I'm here to give you good news (Thanks for giving us money!)";
50
- const warningMessage = "I'm here to give you a warning (Your zip is down)";
51
- const alertMessage = "I'm here to tell you something's wrong (The horror, the horror)";
52
-
53
- ```html preview
54
- <style>
55
- vwc-banner {
56
- clear: both;
57
- }
58
- </style>
59
- <vwc-banner text="Here's some information that you may find useful!" connotation="info"></vwc-banner>
60
- <vwc-banner text="Here's some information that you may find important!" connotation="announcement"></vwc-banner>
61
- <vwc-banner text="Operation Successful!" connotation="success"></vwc-banner>
62
- <vwc-banner text="Heads up - this is a warning" connotation="warning"></vwc-banner>
63
- <vwc-banner text="ALERT! Something went wrong!" connotation="alert"></vwc-banner>
64
- ```
65
-
66
- ## Removable
67
-
68
- - Type: `boolean`
69
- - Default: `false`
70
-
71
- The `removable` attribute sets a remove button. On click it will remove the banner from the DOM.
72
-
73
- ```html preview
74
- <vwc-banner text="Here's some information that you may find important!"
75
- removable></vwc-banner>
76
- ```
77
-
78
- ## Action Items
79
-
80
- You can add action items using slotted content in a named slot `actionItems`:
81
-
82
- ```html preview
83
- <vwc-banner text="A banner with an action button">
84
- <vwc-button slot="actionItems" appearance="filled" connotation="primary" label="Learn More"></vwc-button>
85
- </vwc-banner>
86
- ```
87
-
88
- ## Methods
89
-
90
- ### remove()
91
-
92
- - Type: function
93
- - Returns: void
94
-
95
- Removes the banner from the DOM. Fires the `vwc-banner:removing` event and starts the remove animation. When the animation finishes, it emits the `vwc-banner:removed` event and removes the banner from the DOM completely. If you have a variable that refers to the banner element make sure to clear it otherwise it might cause a memory leak.
96
-
97
- ## Accessibility
98
-
99
- The banner defaults its role to ‘status’ with a redundant aria-live attribute set to polite (to maximize compatibility when using this role). This indicates that the screen reader should wait until the user is idle before presenting updates to the user.
100
- However, consumers can modify the above attributes (role and aria-live) to fit contextually. If the information is critical, by altering the banner's role to 'alert', assistive technologies will interrupt other processes and provide users with immediate notification.
101
-
102
- 1. The `role` attribute is set to `status` by default. This can be changed.
103
- 2. The `aria-live` attribute is set to `polite` by default. This can be changed.
104
- 3. The banner can be dismissed by hitting the `escape` key when it is in focus.
105
-
106
- ```html preview
107
- <vwc-banner role="status"
108
- aria-live="polite"
109
- text="Here's some information that you may find important!"></vwc-banner>
110
- ```
111
-
112
- ## Events
113
-
114
- | Event name | Description |
115
- |----------------------|-----------------------------------------------------------------|
116
- | `vwc-banner:removing`| Fires whenever the the banner has started its removing animation|
117
- | `vwc-banner:removed` | Fires when the removing animation is done |
@@ -1,71 +0,0 @@
1
- @use '../../../../shared/src/lib/sass/mixins/typography' as typography;
2
- @use '../../../../../node_modules/@vonage/vivid-tokens/dist/sass/themes/consts' as theme-consts;
3
- @use '../../../../shared/src/lib/sass/mixins/connotation/config' with (
4
- $subset: success info alert announcement warning,
5
- $shades: strong,
6
- $default: info,
7
- );
8
- @use '../../../../shared/src/lib/sass/mixins/connotation' as connotation;
9
- @use '../../../../shared/src/lib/sass/mixins/appearance/config' as appearance-config with (
10
- $appearances: filled,
11
- $default: filled,
12
- );
13
- @use '../../../../shared/src/lib/sass/mixins/appearance' as appearance;
14
-
15
- $banner-transition-delay: --transition-delay;
16
-
17
- .control {
18
- @include connotation.connotation;
19
- @include appearance.appearance;
20
-
21
- overflow: hidden;
22
- max-height: 10rem;
23
- background-color: var(#{appearance.get-variable(fill)});
24
- color: var(#{appearance.get-variable(text)});
25
- transition: max-height var(#{$banner-transition-delay}, 200ms);
26
-
27
- &.removing {
28
- max-height: 0;
29
- }
30
-
31
- > .header {
32
- @include typography.typography-cat-shorthand('body-2-bold');
33
-
34
- display: flex;
35
- min-height: 60px;
36
- align-items: center;
37
- justify-content: flex-start;
38
-
39
- > .user-content {
40
- display: flex;
41
- flex: 1 0;
42
- align-items: center;
43
- justify-content: center;
44
- padding-inline: 16px;
45
-
46
- > .icon {
47
- flex: 0 0 auto;
48
- font-size: 20px;
49
- margin-inline-end: 15px;
50
- }
51
-
52
- > .action-items {
53
- display: inline-block;
54
- flex: 0 0 auto;
55
- padding-inline-start: 15px;
56
- }
57
-
58
- > .message {
59
- padding: 20px 0;
60
- }
61
- }
62
-
63
- > .dismiss-button {
64
- --vvd-icon-button-color: inherit;
65
-
66
- flex: 0 0 auto;
67
- margin-inline-end: 8px;
68
- }
69
- }
70
- }
71
-
@@ -1,355 +0,0 @@
1
- import {elementUpdated, fixture} from '@vivid-nx/shared';
2
- import type {Icon} from '../icon/icon';
3
- import {Button} from '../button/button';
4
- import {Connotation} from '../enums';
5
- import { Banner } from './banner';
6
- import type { BannerConnotation } from './banner';
7
- import '.';
8
-
9
- const COMPONENT_TAG = 'vwc-banner';
10
-
11
- /**
12
- * @param element
13
- * @param removable
14
- */
15
- async function toggleRemovable(element: Banner, removable = true) {
16
- element.removable = removable;
17
- await elementUpdated(element);
18
- }
19
-
20
- describe('vwc-banner', () => {
21
- /**
22
- *
23
- */
24
- function dispatchAnimationEndEvent() {
25
- const banner = element.shadowRoot?.querySelector('.banner');
26
- const event = new Event('transitionend');
27
- banner?.dispatchEvent(event);
28
- }
29
-
30
- let element: Banner;
31
-
32
- beforeEach(async () => {
33
- element = (await fixture(
34
- `<${COMPONENT_TAG}></${COMPONENT_TAG}>`
35
- )) as Banner;
36
- });
37
-
38
- describe('basic', () => {
39
- it('should be initialized as a vwc-banner', async () => {
40
- expect(element)
41
- .toBeInstanceOf(Banner);
42
- });
43
- });
44
-
45
- describe('text', function () {
46
- /**
47
- * @param text
48
- */
49
- async function setTextProperty(text: string | undefined) {
50
- element.text = text;
51
- await elementUpdated(element);
52
- }
53
-
54
- /**
55
- * @param text
56
- */
57
- async function setTextAttribute(text: string | undefined) {
58
- element.setAttribute('text', text ? text : '');
59
- await elementUpdated(element);
60
- }
61
-
62
- /**
63
- *
64
- */
65
- function getText() {
66
- const text = element.shadowRoot?.querySelector('.banner--message')?.textContent;
67
- return text?.trim();
68
- }
69
-
70
- it('should init with undefined and set as empty string in DOM', function () {
71
- const initTextPropEmpty = element.text;
72
- const initTextAttrEmpty = getText();
73
-
74
- expect(initTextPropEmpty)
75
- .toEqual(undefined);
76
- expect(initTextAttrEmpty)
77
- .toEqual('');
78
- });
79
-
80
- it('should reflect the message', async function () {
81
- const messageText = 'Some Text';
82
-
83
- await setTextProperty(messageText);
84
- const DOMTextWithProperty = getText();
85
-
86
- await setTextProperty(undefined);
87
- await setTextAttribute(messageText);
88
- const propertyTextWithAttribute = element.text;
89
-
90
- expect(DOMTextWithProperty)
91
- .toEqual(messageText);
92
- expect(propertyTextWithAttribute)
93
- .toEqual(messageText);
94
- });
95
- });
96
-
97
- describe('role', function () {
98
- it('should be set to "status" on init', function () {
99
- const role = element.shadowRoot?.querySelector('.banner--message')
100
- ?.getAttribute('role');
101
- expect(role)
102
- .toEqual('status');
103
- });
104
-
105
- it('should change role to role text', async function () {
106
- element.role = 'alert';
107
- await elementUpdated(element);
108
- const role = element.shadowRoot?.querySelector('.banner--message')
109
- ?.getAttribute('role');
110
- expect(role)
111
- .toEqual('alert');
112
- });
113
-
114
- it('should change role when role attribute is set', async function () {
115
- element.setAttribute('role', 'alert');
116
- await elementUpdated(element);
117
- const role = element.shadowRoot?.querySelector('.banner--message')
118
- ?.getAttribute('role');
119
- expect(role)
120
- .toEqual('alert');
121
- });
122
- });
123
-
124
- describe('aria live', function () {
125
- it('should be set to "live" on init', function () {
126
- const ariaLive = element.shadowRoot?.querySelector('.banner--message')
127
- ?.getAttribute('aria-live');
128
- expect(ariaLive)
129
- .toEqual('polite');
130
- });
131
-
132
- it('should change aria-live to ariaLive text', async function () {
133
- element.ariaLive = 'assertive';
134
- await elementUpdated(element);
135
- const ariaLive = element.shadowRoot?.querySelector('.banner--message')
136
- ?.getAttribute('aria-live');
137
- expect(ariaLive)
138
- .toEqual('assertive');
139
- });
140
-
141
- it('should change aria-live to ariaLive text', async function () {
142
- element.setAttribute('aria-live', 'assertive');
143
- await elementUpdated(element);
144
- const ariaLive = element.shadowRoot?.querySelector('.banner--message')
145
- ?.getAttribute('aria-live');
146
- expect(ariaLive)
147
- .toEqual('assertive');
148
- });
149
- });
150
-
151
- describe('remove', function () {
152
-
153
- it('should fire removing event', async function () {
154
- const spy = jest.fn();
155
- element.addEventListener('vwc-banner:removing', spy);
156
- element.remove();
157
- expect(spy)
158
- .toHaveBeenCalled();
159
- });
160
-
161
- it('should fire removed after animation end', async function () {
162
-
163
- const spy = jest.fn();
164
- element.addEventListener('vwc-banner:removed', spy);
165
- element.remove();
166
-
167
- dispatchAnimationEndEvent();
168
-
169
- expect(spy)
170
- .toHaveBeenCalled();
171
- expect(spy.mock.calls.length)
172
- .toEqual(1);
173
- });
174
-
175
- it('should disable removed and removing events after disconnected callback', async function () {
176
-
177
- const spy = jest.fn();
178
- element.addEventListener('vwc-banner:removed', spy);
179
- element.addEventListener('vwc-banner:removing', spy);
180
- element.disconnectedCallback();
181
-
182
- element.remove();
183
- dispatchAnimationEndEvent();
184
-
185
- expect(spy.mock.calls.length)
186
- .toEqual(0);
187
- });
188
-
189
- it('should remove the banner after dispatch', function () {
190
- element.remove();
191
- dispatchAnimationEndEvent();
192
- expect(document.body.contains(element))
193
- .toEqual(false);
194
- });
195
- });
196
-
197
- describe('connotation', function () {
198
- const possibleConnotations = [Connotation.Info,
199
- Connotation.Announcement,
200
- Connotation.Success,
201
- Connotation.Warning,
202
- Connotation.Alert
203
- ];
204
-
205
- it('should leave connotation class empty if not set', async function () {
206
- possibleConnotations.forEach(connotation => {
207
- expect(element.shadowRoot?.querySelector('.banner')
208
- ?.classList
209
- .contains(connotation))
210
- .toEqual(false);
211
- });
212
- });
213
-
214
- it('should set a connotation class', async function () {
215
- const connotation = possibleConnotations[2];
216
- (element.connotation as Connotation) = connotation;
217
- await elementUpdated(element);
218
- expect(element.shadowRoot?.querySelector('.banner')
219
- ?.classList
220
- .contains(`connotation-${connotation}`))
221
- .toEqual(true);
222
- });
223
- });
224
-
225
- describe('icon', function () {
226
- let getIcon: () => Icon;
227
-
228
- beforeEach(function () {
229
- getIcon = () => element.shadowRoot?.querySelector('.icon > vwc-icon') as Icon;
230
- });
231
-
232
- it('should set the icon according to connotation info by default', function () {
233
- expect(getIcon().type)
234
- .toEqual('info-solid');
235
- });
236
-
237
- it('should set the icon according to "icon" attribute', async function () {
238
- element.setAttribute('icon', 'home');
239
- await elementUpdated(element);
240
-
241
- expect(getIcon().type)
242
- .toEqual('home');
243
- });
244
-
245
- it('should set the icon according to set connotation', async function () {
246
- const connotationIconMap: Map<BannerConnotation, string> = new Map([
247
- [Connotation.Info, 'info-solid'],
248
- [Connotation.Announcement, 'megaphone-solid'],
249
- [Connotation.Success, 'check-circle-solid'],
250
- [Connotation.Warning, 'warning-solid'],
251
- [Connotation.Alert, 'error-solid']
252
- ]);
253
-
254
- for (const [connotation, iconName] of connotationIconMap) {
255
- element.connotation = connotation;
256
-
257
- await elementUpdated(element);
258
-
259
- expect(getIcon().type).toEqual(iconName);
260
- }
261
- });
262
- });
263
-
264
- describe('removable', function () {
265
- it('should init to false', function () {
266
- expect(element.removable)
267
- .toEqual(false);
268
- expect(element.hasAttribute('removable'))
269
- .toEqual(false);
270
- });
271
-
272
- it('should toggle attribute on host', async function () {
273
- await toggleRemovable(element);
274
- const removeAttributeExistsWhenTrue = element.hasAttribute('removable');
275
-
276
- await toggleRemovable(element, false);
277
- const removeAttributeExistsWhenFalse = element.hasAttribute('removable');
278
-
279
- expect(removeAttributeExistsWhenTrue)
280
- .toEqual(true);
281
- expect(removeAttributeExistsWhenFalse)
282
- .toEqual(false);
283
- });
284
-
285
- it('should set removable property on attribute change', async function () {
286
- element.toggleAttribute('removable');
287
- await elementUpdated(element);
288
- expect(element.removable)
289
- .toEqual(true);
290
- });
291
-
292
- it('should remove the remove button when removable is false', async function () {
293
- expect(element.shadowRoot?.querySelector('.dismiss-button'))
294
- .toEqual(null);
295
- });
296
-
297
- it('should add a remove button when true', async function () {
298
- await toggleRemovable(element, true);
299
- expect(element.shadowRoot?.querySelector('.dismiss-button'))
300
- .toBeInstanceOf(Button);
301
- });
302
-
303
- it('should remove banner on remove button click', async function () {
304
- await toggleRemovable(element, true);
305
- const dismissButton = element.shadowRoot?.querySelector('.dismiss-button') as HTMLElement;
306
- dismissButton.click();
307
- dispatchAnimationEndEvent();
308
- expect(document.body.contains(element))
309
- .toEqual(false);
310
- });
311
-
312
- it('should add class "removing" to banner on remove button click', async function () {
313
- await toggleRemovable(element, true);
314
- const dismissButton = element.shadowRoot?.querySelector('.dismiss-button') as HTMLElement;
315
- dismissButton.click();
316
- expect(element.shadowRoot?.querySelector('.banner')?.classList.contains('removing')).toEqual(true);
317
- });
318
- });
319
-
320
- describe('remove on escape key', function () {
321
- it('should remove the button on escape key', async function () {
322
- element.removable = true;
323
- element.focus();
324
- jest.spyOn(element, 'remove');
325
- element.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
326
- expect(element.remove).toHaveBeenCalled();
327
- });
328
-
329
- it('should remove the banner only on escape key', async function () {
330
- element.removable = true;
331
- element.focus();
332
- const spy = jest.spyOn(element, 'remove');
333
- element.dispatchEvent(new KeyboardEvent('keydown', { key: 'Enter' }));
334
- expect((spy as any).mock.calls.length).toEqual(0);
335
-
336
- });
337
-
338
- it('should remove keydown listener after disconnection', async function () {
339
- element.removable = true;
340
- element.focus();
341
- element.disconnectedCallback();
342
- const spy = jest.spyOn(element, 'remove');
343
- element.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
344
- expect((spy as any).mock.calls.length).toEqual(0);
345
- });
346
-
347
- it('should remove the banner only if "removable" is true', async function () {
348
- element.removable = false;
349
- element.focus();
350
- const spy = jest.spyOn(element, 'remove');
351
- element.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
352
- expect((spy as any).mock.calls.length).toEqual(0);
353
- });
354
- });
355
- });
@@ -1,61 +0,0 @@
1
- import {html, when} from '@microsoft/fast-element';
2
- import type {ViewTemplate} from '@microsoft/fast-element';
3
- import type {
4
- ElementDefinitionContext,
5
- FoundationElementDefinition,
6
- } from '@microsoft/fast-foundation';
7
- import {classNames} from '@microsoft/fast-web-utilities';
8
- import '../button';
9
- import '../text-anchor';
10
- import {affixIconTemplateFactory} from '../../shared/patterns/affix';
11
- import type {Banner} from './banner';
12
-
13
- const getClasses = (_: Banner) => classNames(
14
- 'control',
15
- [`connotation-${_.connotation}`, !!_.connotation]
16
- );
17
-
18
- /**
19
- *
20
- */
21
- function renderDismissButton() {
22
- return html<Banner>`
23
- <vwc-button
24
- size="base-small"
25
- class="dismiss-button"
26
- icon="close-line"
27
- @click="${x => x.remove()}">
28
- </vwc-button>`;
29
- }
30
-
31
- /**
32
- * The template for the {@link @microsoft/fast-foundation#Banner} component.
33
- *
34
- * @param context
35
- * @public
36
- */
37
- export const BannerTemplate: (
38
- context: ElementDefinitionContext,
39
- definition: FoundationElementDefinition
40
- ) => ViewTemplate<Banner> = (context: ElementDefinitionContext) => {
41
- const affixIconTemplate = affixIconTemplateFactory(context);
42
-
43
- return html<Banner>`
44
- <div class="banner ${getClasses}" tabindex="0">
45
- <header class="header">
46
- <div class="user-content">
47
- ${x => affixIconTemplate(x.conditionedIcon)}
48
- <div class="banner--message"
49
- role="${x => x.role ? x.role : 'status'}"
50
- aria-live="${x => x.ariaLive ? x.ariaLive : 'polite'}">
51
- ${x => x.text}
52
- </div>
53
- <slot class="action-items" name="actionItems"></slot>
54
- </div>
55
-
56
- ${when(x => x.removable, renderDismissButton())}
57
- </header>
58
- </div>
59
- `;
60
- };
61
-
@@ -1,77 +0,0 @@
1
- import {applyMixins, FoundationElement} from '@microsoft/fast-foundation';
2
- import {attr} from '@microsoft/fast-element';
3
- import {Connotation} from '../enums';
4
- import {AffixIcon} from '../../shared/patterns/affix';
5
-
6
- export type BannerConnotation =
7
- Connotation.Info |
8
- Connotation.Announcement |
9
- Connotation.Success |
10
- Connotation.Warning |
11
- Connotation.Alert;
12
-
13
- const connotationIconMap = new Map([
14
- [Connotation.Info, 'info-solid'],
15
- [Connotation.Announcement, 'megaphone-solid'],
16
- [Connotation.Success, 'check-circle-solid'],
17
- [Connotation.Warning, 'warning-solid'],
18
- [Connotation.Alert, 'error-solid']
19
- ]);
20
-
21
- const defaultConnotation =
22
- (connotation: Connotation | undefined = Connotation.Info) => connotationIconMap.get(connotation) as Connotation;
23
-
24
- /**
25
- * Base class for banner
26
- *
27
- * @public
28
- */
29
- export class Banner extends FoundationElement {
30
- @attr({attribute: 'action-href'}) actionHref: string | undefined;
31
- @attr({attribute: 'action-text'}) actionText: string | undefined;
32
- @attr({mode: 'boolean'}) removable = false;
33
- @attr({attribute: 'aria-live'}) override ariaLive: any;
34
- @attr() role: string | undefined;
35
- @attr() text: string | undefined;
36
- @attr() connotation: BannerConnotation | undefined;
37
-
38
- get conditionedIcon() {
39
- return this.icon ?? defaultConnotation(this.connotation);
40
- }
41
-
42
- override connectedCallback() {
43
- super.connectedCallback();
44
- this.addEventListener('keydown', this.#closeOnKeyDown);
45
- }
46
-
47
- override disconnectedCallback() {
48
- super.disconnectedCallback();
49
- this.removeEventListener('keydown', this.#closeOnKeyDown);
50
- }
51
-
52
- override remove(): void {
53
- this.$emit('vwc-banner:removing');
54
- const banner = this.shadowRoot && this.shadowRoot.querySelector('.banner');
55
- if (banner) {
56
- banner.classList.add('removing');
57
- banner.addEventListener('transitionend', this.#handleRemoveEnd);
58
- }
59
- }
60
-
61
- #handleRemoveEnd = () => {
62
- this.$emit('vwc-banner:removed');
63
- this.parentElement && this.parentElement.removeChild(this);
64
- };
65
-
66
- #closeOnKeyDown = (e: KeyboardEvent) => {
67
- if (e.key !== 'Escape' || !this.removable) {
68
- return;
69
- }
70
- this.remove();
71
- };
72
- }
73
-
74
- applyMixins(Banner, AffixIcon);
75
-
76
- export interface Banner extends AffixIcon {
77
- }
@@ -1,14 +0,0 @@
1
- import type { FoundationElementDefinition } from '@microsoft/fast-foundation';
2
- import { designSystem } from '../../shared/design-system';
3
- import styles from './banner.scss';
4
-
5
- import { Banner } from './banner';
6
- import { BannerTemplate as template } from './banner.template';
7
-
8
- export const vividBanner = Banner.compose<FoundationElementDefinition>({
9
- baseName: 'banner',
10
- template: template as any,
11
- styles,
12
- });
13
-
14
- designSystem.register(vividBanner());