@vonage/vivid 3.0.0-next.4 → 3.0.0-next.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 (385) hide show
  1. package/.babelrc +3 -0
  2. package/.eslintrc.json +70 -0
  3. package/.stylelintrc.json +8 -0
  4. package/CHANGELOG.json +343 -0
  5. package/CHANGELOG.md +45 -0
  6. package/jest.config.cjs +20 -0
  7. package/package.json +7 -12
  8. package/playwright.config.dev.ts +21 -0
  9. package/playwright.config.ts +34 -0
  10. package/project.json +122 -0
  11. package/rollup.config.prod.ts +50 -0
  12. package/setupJestTests.js +17 -0
  13. package/{index.d.ts → src/index.ts} +2 -2
  14. package/src/lib/accordion/README.md +55 -0
  15. package/src/lib/accordion/accordion.scss +10 -0
  16. package/src/lib/accordion/accordion.spec.ts +91 -0
  17. package/src/lib/accordion/accordion.template.ts +23 -0
  18. package/src/lib/accordion/accordion.ts +49 -0
  19. package/src/lib/accordion/index.ts +14 -0
  20. package/src/lib/accordion/ui.test.ts +37 -0
  21. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Chrome-Stable-darwin.png +0 -0
  22. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Chrome-Stable-linux.png +0 -0
  23. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Desktop-Firefox-darwin.png +0 -0
  24. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Desktop-Firefox-linux.png +0 -0
  25. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Desktop-Safari-darwin.png +0 -0
  26. package/src/lib/accordion/ui.test.ts-snapshots/snapshots-accordion-Desktop-Safari-linux.png +0 -0
  27. package/src/lib/accordion-item/README.md +113 -0
  28. package/src/lib/accordion-item/accordion-item.scss +91 -0
  29. package/src/lib/accordion-item/accordion-item.spec.ts +103 -0
  30. package/src/lib/accordion-item/accordion-item.template.ts +62 -0
  31. package/src/lib/accordion-item/accordion-item.ts +67 -0
  32. package/src/lib/accordion-item/index.ts +14 -0
  33. package/src/lib/accordion-item/partials/variables.scss +1 -0
  34. package/src/lib/accordion-item/ui.test.ts +37 -0
  35. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Chrome-Stable-darwin.png +0 -0
  36. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Chrome-Stable-linux.png +0 -0
  37. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Desktop-Firefox-darwin.png +0 -0
  38. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Desktop-Firefox-linux.png +0 -0
  39. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Desktop-Safari-darwin.png +0 -0
  40. package/src/lib/accordion-item/ui.test.ts-snapshots/snapshots-accordion-item-Desktop-Safari-linux.png +0 -0
  41. package/src/lib/badge/README.md +112 -0
  42. package/src/lib/badge/badge.scss +64 -0
  43. package/src/lib/badge/badge.spec.ts +114 -0
  44. package/src/lib/badge/badge.template.ts +36 -0
  45. package/src/lib/badge/badge.ts +97 -0
  46. package/src/lib/badge/index.ts +23 -0
  47. package/src/lib/badge/ui.test.ts +28 -0
  48. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Chrome-Stable-darwin.png +0 -0
  49. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Chrome-Stable-linux.png +0 -0
  50. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Desktop-Firefox-darwin.png +0 -0
  51. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Desktop-Firefox-linux.png +0 -0
  52. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Desktop-Safari-darwin.png +0 -0
  53. package/src/lib/badge/ui.test.ts-snapshots/snapshots-badge-Desktop-Safari-linux.png +0 -0
  54. package/src/lib/banner/README.md +117 -0
  55. package/src/lib/banner/banner.scss +71 -0
  56. package/src/lib/banner/banner.spec.ts +355 -0
  57. package/src/lib/banner/banner.template.ts +61 -0
  58. package/src/lib/banner/banner.ts +77 -0
  59. package/src/lib/banner/index.ts +14 -0
  60. package/src/lib/banner/ui.test.ts +64 -0
  61. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Chrome-Stable-darwin.png +0 -0
  62. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Chrome-Stable-linux.png +0 -0
  63. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Desktop-Firefox-darwin.png +0 -0
  64. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Desktop-Firefox-linux.png +0 -0
  65. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Desktop-Safari-darwin.png +0 -0
  66. package/src/lib/banner/ui.test.ts-snapshots/snapshots-banner-Desktop-Safari-linux.png +0 -0
  67. package/src/lib/breadcrumb/README.md +25 -0
  68. package/src/lib/breadcrumb/breadcrumb.scss +3 -0
  69. package/src/lib/breadcrumb/breadcrumb.spec.ts +78 -0
  70. package/src/lib/breadcrumb/breadcrumb.ts +10 -0
  71. package/src/lib/breadcrumb/index.ts +13 -0
  72. package/src/lib/breadcrumb/ui.test.ts +36 -0
  73. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Chrome-Stable-darwin.png +0 -0
  74. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Chrome-Stable-linux.png +0 -0
  75. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Desktop-Firefox-darwin.png +0 -0
  76. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Desktop-Firefox-linux.png +0 -0
  77. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Desktop-Safari-darwin.png +0 -0
  78. package/src/lib/breadcrumb/ui.test.ts-snapshots/snapshots-breadcrumb-Desktop-Safari-linux.png +0 -0
  79. package/src/lib/breadcrumb-item/README.md +40 -0
  80. package/src/lib/breadcrumb-item/breadcrumb-item.scss +28 -0
  81. package/src/lib/breadcrumb-item/breadcrumb-item.spec.ts +192 -0
  82. package/src/lib/breadcrumb-item/breadcrumb-item.template.ts +37 -0
  83. package/src/lib/breadcrumb-item/breadcrumb-item.ts +15 -0
  84. package/src/lib/breadcrumb-item/index.ts +16 -0
  85. package/src/lib/breadcrumb-item/ui.test.ts +38 -0
  86. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Chrome-Stable-darwin.png +0 -0
  87. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Chrome-Stable-linux.png +0 -0
  88. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Desktop-Firefox-darwin.png +0 -0
  89. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Desktop-Firefox-linux.png +0 -0
  90. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Desktop-Safari-darwin.png +0 -0
  91. package/src/lib/breadcrumb-item/ui.test.ts-snapshots/snapshots-breadcrumb-item-Desktop-Safari-linux.png +0 -0
  92. package/src/lib/button/README.md +120 -0
  93. package/src/lib/button/button.scss +142 -0
  94. package/src/lib/button/button.spec.ts +131 -0
  95. package/src/lib/button/button.template.ts +89 -0
  96. package/src/lib/button/button.ts +95 -0
  97. package/src/lib/button/index.ts +25 -0
  98. package/src/lib/button/partials/variables.scss +2 -0
  99. package/src/lib/button/ui.test.ts +32 -0
  100. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Chrome-Stable-darwin.png +0 -0
  101. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Chrome-Stable-linux.png +0 -0
  102. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Desktop-Firefox-darwin.png +0 -0
  103. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Desktop-Firefox-linux.png +0 -0
  104. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Desktop-Safari-darwin.png +0 -0
  105. package/src/lib/button/ui.test.ts-snapshots/snapshots-button-Desktop-Safari-linux.png +0 -0
  106. package/src/lib/calendar/README.md +70 -0
  107. package/src/lib/calendar/calendar.scss +176 -0
  108. package/src/lib/calendar/calendar.spec.ts +341 -0
  109. package/src/lib/calendar/calendar.template.ts +93 -0
  110. package/src/lib/calendar/calendar.ts +139 -0
  111. package/src/lib/calendar/helpers/calendar.date-functions.ts +31 -0
  112. package/src/lib/calendar/helpers/calendar.event-context.ts +72 -0
  113. package/src/lib/calendar/helpers/calendar.keyboard-interactions.ts +65 -0
  114. package/src/lib/calendar/index.ts +16 -0
  115. package/src/lib/calendar/partials/_variables.scss +15 -0
  116. package/src/lib/calendar/ui.test.ts +32 -0
  117. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Chrome-Stable-darwin.png +0 -0
  118. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Chrome-Stable-linux.png +0 -0
  119. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Desktop-Firefox-darwin.png +0 -0
  120. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Desktop-Firefox-linux.png +0 -0
  121. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Desktop-Safari-darwin.png +0 -0
  122. package/src/lib/calendar/ui.test.ts-snapshots/snapshots-calendar-Desktop-Safari-linux.png +0 -0
  123. package/src/lib/components.spec.ts +7 -0
  124. package/{lib/components.d.ts → src/lib/components.ts} +16 -16
  125. package/src/lib/elevation/README.md +99 -0
  126. package/src/lib/elevation/elevation.scss +15 -0
  127. package/src/lib/elevation/elevation.spec.ts +55 -0
  128. package/src/lib/elevation/elevation.template.ts +26 -0
  129. package/src/lib/elevation/elevation.ts +17 -0
  130. package/src/lib/elevation/index.ts +17 -0
  131. package/src/lib/elevation/partials/_elevation.mixin.scss +4 -0
  132. package/src/lib/elevation/ui.test.ts +32 -0
  133. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Chrome-Stable-darwin.png +0 -0
  134. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Chrome-Stable-linux.png +0 -0
  135. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Desktop-Firefox-darwin.png +0 -0
  136. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Desktop-Firefox-linux.png +0 -0
  137. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Desktop-Safari-darwin.png +0 -0
  138. package/src/lib/elevation/ui.test.ts-snapshots/snapshots-elevation-Desktop-Safari-linux.png +0 -0
  139. package/src/lib/enums.ts +55 -0
  140. package/src/lib/focus/README.md +1 -0
  141. package/src/lib/focus/focus.scss +17 -0
  142. package/src/lib/focus/focus.template.ts +16 -0
  143. package/src/lib/focus/focus.ts +10 -0
  144. package/src/lib/focus/index.ts +21 -0
  145. package/src/lib/focus/partials/variables.scss +2 -0
  146. package/src/lib/icon/README.md +70 -0
  147. package/src/lib/icon/__snapshots__/icon.spec.ts.snap +16 -0
  148. package/src/lib/icon/icon.placeholder.ts +12 -0
  149. package/src/lib/icon/icon.scss +52 -0
  150. package/src/lib/icon/icon.spec.ts +106 -0
  151. package/src/lib/icon/icon.template.ts +23 -0
  152. package/src/lib/icon/icon.ts +93 -0
  153. package/src/lib/icon/index.ts +14 -0
  154. package/src/lib/layout/README.md +154 -0
  155. package/src/lib/layout/index.ts +18 -0
  156. package/src/lib/layout/layout.scss +40 -0
  157. package/src/lib/layout/layout.spec.ts +73 -0
  158. package/src/lib/layout/layout.template.ts +29 -0
  159. package/src/lib/layout/layout.ts +46 -0
  160. package/src/lib/layout/partials/_functions.scss +15 -0
  161. package/src/lib/layout/partials/_mixins.scss +5 -0
  162. package/src/lib/layout/partials/_variables.scss +23 -0
  163. package/src/lib/layout/ui.test.ts +32 -0
  164. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Chrome-Stable-darwin.png +0 -0
  165. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Chrome-Stable-linux.png +0 -0
  166. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Desktop-Firefox-darwin.png +0 -0
  167. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Desktop-Firefox-linux.png +0 -0
  168. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Desktop-Safari-darwin.png +0 -0
  169. package/src/lib/layout/ui.test.ts-snapshots/snapshots-layout-Desktop-Safari-linux.png +0 -0
  170. package/src/lib/popup/README.md +261 -0
  171. package/src/lib/popup/index.ts +21 -0
  172. package/src/lib/popup/popup.scss +43 -0
  173. package/src/lib/popup/popup.spec.ts +265 -0
  174. package/src/lib/popup/popup.template.ts +41 -0
  175. package/src/lib/popup/popup.ts +158 -0
  176. package/src/lib/popup/ui.test.ts +111 -0
  177. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Chrome-Stable-darwin.png +0 -0
  178. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Chrome-Stable-linux.png +0 -0
  179. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Desktop-Firefox-darwin.png +0 -0
  180. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Desktop-Firefox-linux.png +0 -0
  181. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Desktop-Safari-darwin.png +0 -0
  182. package/src/lib/popup/ui.test.ts-snapshots/snapshots-popup-Desktop-Safari-linux.png +0 -0
  183. package/src/lib/progress/README.md +107 -0
  184. package/src/lib/progress/index.ts +14 -0
  185. package/src/lib/progress/progress.scss +133 -0
  186. package/src/lib/progress/progress.spec.ts +173 -0
  187. package/src/lib/progress/progress.template.ts +62 -0
  188. package/src/lib/progress/progress.ts +25 -0
  189. package/src/lib/progress/ui.test.ts +70 -0
  190. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Chrome-Stable-darwin.png +0 -0
  191. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Chrome-Stable-linux.png +0 -0
  192. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Desktop-Firefox-darwin.png +0 -0
  193. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Desktop-Firefox-linux.png +0 -0
  194. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Desktop-Safari-darwin.png +0 -0
  195. package/src/lib/progress/ui.test.ts-snapshots/snapshots-progress-Desktop-Safari-linux.png +0 -0
  196. package/src/lib/progress-ring/README.md +90 -0
  197. package/src/lib/progress-ring/index.ts +15 -0
  198. package/src/lib/progress-ring/progress-ring.scss +75 -0
  199. package/src/lib/progress-ring/progress-ring.spec.ts +139 -0
  200. package/src/lib/progress-ring/progress-ring.template.ts +82 -0
  201. package/src/lib/progress-ring/progress-ring.ts +18 -0
  202. package/src/lib/progress-ring/ui.test.ts +35 -0
  203. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Chrome-Stable-darwin.png +0 -0
  204. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Chrome-Stable-linux.png +0 -0
  205. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Desktop-Firefox-darwin.png +0 -0
  206. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Desktop-Firefox-linux.png +0 -0
  207. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Desktop-Safari-darwin.png +0 -0
  208. package/src/lib/progress-ring/ui.test.ts-snapshots/snapshots-progress-ring-Desktop-Safari-linux.png +0 -0
  209. package/src/lib/side-drawer/README.md +304 -0
  210. package/src/lib/side-drawer/index.ts +16 -0
  211. package/src/lib/side-drawer/partials/variables.scss +6 -0
  212. package/src/lib/side-drawer/side-drawer.scss +109 -0
  213. package/src/lib/side-drawer/side-drawer.spec.ts +118 -0
  214. package/src/lib/side-drawer/side-drawer.template.ts +51 -0
  215. package/src/lib/side-drawer/side-drawer.ts +58 -0
  216. package/src/lib/side-drawer/ui.test.ts +102 -0
  217. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Chrome-Stable-darwin.png +0 -0
  218. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Chrome-Stable-linux.png +0 -0
  219. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Desktop-Firefox-darwin.png +0 -0
  220. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Desktop-Firefox-linux.png +0 -0
  221. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Desktop-Safari-darwin.png +0 -0
  222. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-Desktop-Safari-linux.png +0 -0
  223. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Chrome-Stable-darwin.png +0 -0
  224. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Chrome-Stable-linux.png +0 -0
  225. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Desktop-Firefox-darwin.png +0 -0
  226. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Desktop-Firefox-linux.png +0 -0
  227. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Desktop-Safari-darwin.png +0 -0
  228. package/src/lib/side-drawer/ui.test.ts-snapshots/snapshots-side-drawer-modal-Desktop-Safari-linux.png +0 -0
  229. package/src/lib/sidenav-item/README.md +41 -0
  230. package/src/lib/sidenav-item/index.ts +20 -0
  231. package/src/lib/sidenav-item/sidenav-item.scss +51 -0
  232. package/src/lib/sidenav-item/sidenav-item.spec.ts +64 -0
  233. package/src/lib/sidenav-item/sidenav-item.template.ts +25 -0
  234. package/src/lib/sidenav-item/sidenav-item.ts +15 -0
  235. package/src/lib/sidenav-item/ui.test.ts +32 -0
  236. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Chrome-Stable-darwin.png +0 -0
  237. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Chrome-Stable-linux.png +0 -0
  238. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Desktop-Firefox-darwin.png +0 -0
  239. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Desktop-Firefox-linux.png +0 -0
  240. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Desktop-Safari-darwin.png +0 -0
  241. package/src/lib/sidenav-item/ui.test.ts-snapshots/snapshots-sidenav-item-Desktop-Safari-linux.png +0 -0
  242. package/src/lib/text/README.md +119 -0
  243. package/src/lib/text/index.ts +14 -0
  244. package/src/lib/text/text.scss +92 -0
  245. package/src/lib/text/text.spec.ts +54 -0
  246. package/src/lib/text/text.template.ts +28 -0
  247. package/src/lib/text/text.ts +55 -0
  248. package/src/lib/text/ui.test.ts +39 -0
  249. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Chrome-Stable-darwin.png +0 -0
  250. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Chrome-Stable-linux.png +0 -0
  251. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Desktop-Firefox-darwin.png +0 -0
  252. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Desktop-Firefox-linux.png +0 -0
  253. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Desktop-Safari-darwin.png +0 -0
  254. package/src/lib/text/ui.test.ts-snapshots/snapshots-text-Desktop-Safari-linux.png +0 -0
  255. package/src/lib/text-anchor/README.md +5 -0
  256. package/src/lib/text-anchor/index.ts +12 -0
  257. package/src/lib/text-anchor/text-anchor.spec.ts +153 -0
  258. package/src/lib/text-anchor/text-anchor.template.ts +66 -0
  259. package/src/lib/text-anchor/text-anchor.ts +22 -0
  260. package/src/lib/tooltip/README.md +132 -0
  261. package/src/lib/tooltip/index.ts +16 -0
  262. package/src/lib/tooltip/partials/variables.scss +1 -0
  263. package/src/lib/tooltip/tooltip.scss +18 -0
  264. package/src/lib/tooltip/tooltip.spec.ts +70 -0
  265. package/src/lib/tooltip/tooltip.template.ts +30 -0
  266. package/src/lib/tooltip/tooltip.ts +44 -0
  267. package/src/lib/tooltip/ui.test.ts +53 -0
  268. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Chrome-Stable-darwin.png +0 -0
  269. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Chrome-Stable-linux.png +0 -0
  270. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Desktop-Firefox-darwin.png +0 -0
  271. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Desktop-Firefox-linux.png +0 -0
  272. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Desktop-Safari-darwin.png +0 -0
  273. package/src/lib/tooltip/ui.test.ts-snapshots/snapshots-tooltip-Desktop-Safari-linux.png +0 -0
  274. package/src/shared/design-system/index.ts +12 -0
  275. package/src/shared/patterns/affix.ts +56 -0
  276. package/{shared/patterns/index.d.ts → src/shared/patterns/index.ts} +1 -1
  277. package/src/types/extract-gfm.d.ts +5 -0
  278. package/src/types/style.d.ts +4 -0
  279. package/src/visual-tests/visual-tests-utils.ts +76 -0
  280. package/tsconfig.json +36 -0
  281. package/tsconfig.lib.json +11 -0
  282. package/tsconfig.spec.json +16 -0
  283. package/accordion/index.js +0 -61
  284. package/accordion-item/index.js +0 -125
  285. package/badge/index.js +0 -64
  286. package/banner/index.js +0 -212
  287. package/breadcrumb/index.js +0 -100
  288. package/breadcrumb-item/index.js +0 -55
  289. package/button/index.js +0 -761
  290. package/calendar/index.js +0 -1521
  291. package/elevation/index.js +0 -31
  292. package/focus/index.js +0 -3
  293. package/icon/index.js +0 -34
  294. package/index.js +0 -32
  295. package/layout/index.js +0 -53
  296. package/lib/accordion/accordion.d.ts +0 -9
  297. package/lib/accordion/accordion.template.d.ts +0 -4
  298. package/lib/accordion/index.d.ts +0 -2
  299. package/lib/accordion-item/accordion-item.d.ts +0 -13
  300. package/lib/accordion-item/accordion-item.template.d.ts +0 -4
  301. package/lib/accordion-item/index.d.ts +0 -3
  302. package/lib/badge/badge.d.ts +0 -17
  303. package/lib/badge/badge.template.d.ts +0 -4
  304. package/lib/badge/index.d.ts +0 -3
  305. package/lib/banner/banner.d.ts +0 -20
  306. package/lib/banner/banner.template.d.ts +0 -6
  307. package/lib/banner/index.d.ts +0 -2
  308. package/lib/breadcrumb/breadcrumb.d.ts +0 -3
  309. package/lib/breadcrumb/index.d.ts +0 -2
  310. package/lib/breadcrumb-item/breadcrumb-item.d.ts +0 -5
  311. package/lib/breadcrumb-item/breadcrumb-item.template.d.ts +0 -4
  312. package/lib/breadcrumb-item/index.d.ts +0 -3
  313. package/lib/button/button.d.ts +0 -17
  314. package/lib/button/button.template.d.ts +0 -4
  315. package/lib/button/index.d.ts +0 -21
  316. package/lib/calendar/calendar.d.ts +0 -11
  317. package/lib/calendar/calendar.template.d.ts +0 -4
  318. package/lib/calendar/helpers/calendar.date-functions.d.ts +0 -2
  319. package/lib/calendar/helpers/calendar.event-context.d.ts +0 -6
  320. package/lib/calendar/helpers/calendar.keyboard-interactions.d.ts +0 -9
  321. package/lib/calendar/index.d.ts +0 -3
  322. package/lib/elevation/elevation.d.ts +0 -4
  323. package/lib/elevation/elevation.template.d.ts +0 -4
  324. package/lib/elevation/index.d.ts +0 -2
  325. package/lib/enums.d.ts +0 -45
  326. package/lib/focus/focus.d.ts +0 -3
  327. package/lib/focus/focus.template.d.ts +0 -4
  328. package/lib/focus/index.d.ts +0 -2
  329. package/lib/icon/icon.d.ts +0 -11
  330. package/lib/icon/icon.placeholder.d.ts +0 -1
  331. package/lib/icon/icon.template.d.ts +0 -4
  332. package/lib/icon/index.d.ts +0 -2
  333. package/lib/layout/index.d.ts +0 -2
  334. package/lib/layout/layout.d.ts +0 -16
  335. package/lib/layout/layout.template.d.ts +0 -4
  336. package/lib/popup/index.d.ts +0 -4
  337. package/lib/popup/popup.d.ts +0 -29
  338. package/lib/popup/popup.template.d.ts +0 -4
  339. package/lib/progress/index.d.ts +0 -2
  340. package/lib/progress/progress.d.ts +0 -9
  341. package/lib/progress/progress.template.d.ts +0 -5
  342. package/lib/side-drawer/index.d.ts +0 -2
  343. package/lib/side-drawer/side-drawer.d.ts +0 -12
  344. package/lib/side-drawer/side-drawer.template.d.ts +0 -4
  345. package/lib/sidenav-item/index.d.ts +0 -3
  346. package/lib/sidenav-item/sidenav-item.d.ts +0 -6
  347. package/lib/sidenav-item/sidenav-item.template.d.ts +0 -4
  348. package/lib/text/index.d.ts +0 -2
  349. package/lib/text/text.d.ts +0 -10
  350. package/lib/text/text.template.d.ts +0 -4
  351. package/lib/text-anchor/index.d.ts +0 -2
  352. package/lib/text-anchor/text-anchor.d.ts +0 -7
  353. package/lib/text-anchor/text-anchor.template.d.ts +0 -4
  354. package/lib/tooltip/index.d.ts +0 -3
  355. package/lib/tooltip/tooltip.d.ts +0 -10
  356. package/lib/tooltip/tooltip.template.d.ts +0 -4
  357. package/popup/index.js +0 -2087
  358. package/progress/index.js +0 -159
  359. package/shared/_has.js +0 -58
  360. package/shared/affix.js +0 -29
  361. package/shared/anchor.js +0 -78
  362. package/shared/apply-mixins.js +0 -22
  363. package/shared/aria-global.js +0 -156
  364. package/shared/breadcrumb-item.js +0 -25
  365. package/shared/class-names.js +0 -15
  366. package/shared/design-system/index.d.ts +0 -3
  367. package/shared/es.object.assign.js +0 -68
  368. package/shared/icon.js +0 -1393
  369. package/shared/index.js +0 -4991
  370. package/shared/index2.js +0 -21
  371. package/shared/patterns/affix.d.ts +0 -9
  372. package/shared/slotted.js +0 -119
  373. package/shared/style-inject.es.js +0 -28
  374. package/shared/text-anchor.js +0 -21
  375. package/shared/text-anchor.template.js +0 -54
  376. package/shared/web.dom-collections.iterator.js +0 -1479
  377. package/shared/when.js +0 -15
  378. package/side-drawer/index.js +0 -103
  379. package/sidenav-item/index.js +0 -38
  380. package/styles/fonts/spezia.css +0 -23
  381. package/styles/themes/dark.css +0 -193
  382. package/styles/themes/light.css +0 -193
  383. package/text/index.js +0 -45
  384. package/text-anchor/index.js +0 -19
  385. package/tooltip/index.js +0 -73
@@ -0,0 +1,82 @@
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 type { ProgressRing } from './progress-ring';
9
+
10
+ const getClasses = (_: ProgressRing) => classNames(
11
+ 'base',
12
+ [`connotation-${_.connotation}`, !!_.connotation],
13
+ );
14
+ const progressSegments: number = 44;
15
+
16
+ /**
17
+ * The template for the {@link @microsoft/fast-foundation#ProgressRing} component.
18
+ *
19
+ * @param context
20
+ * @param _
21
+ * @param definition
22
+ * @public
23
+ */
24
+ export const ProgressRingTemplate: (
25
+ context: ElementDefinitionContext,
26
+ definition: FoundationElementDefinition
27
+ ) => ViewTemplate<ProgressRing> = (
28
+ _: ElementDefinitionContext
29
+ ) => html`
30
+ <div
31
+ role="progressbar"
32
+ aria-valuenow="${x => x.value}"
33
+ aria-valuemin="${x => x.min}"
34
+ aria-valuemax="${x => x.max}"
35
+ class="${x => (x.paused ? 'paused' : '')} ${getClasses}"
36
+ >
37
+ ${when(
38
+ x => typeof x.value === 'number',
39
+ html<ProgressRing>`
40
+ <svg
41
+ class="progress"
42
+ viewBox="0 0 16 16"
43
+ >
44
+ <circle
45
+ class="background"
46
+ cx="8px"
47
+ cy="8px"
48
+ r="7px"
49
+ ></circle>
50
+ <circle
51
+ class="determinate"
52
+ style="stroke-dasharray: ${x =>
53
+ (progressSegments * x.percentComplete) /
54
+ 100}px ${progressSegments}px"
55
+ cx="8px"
56
+ cy="8px"
57
+ r="7px"
58
+ ></circle>
59
+ </svg>
60
+ `
61
+ )}
62
+ ${when(
63
+ x => typeof x.value !== 'number', html<ProgressRing>`
64
+ <svg class="progress" viewBox="0 0 16 16">
65
+ <circle
66
+ class="background"
67
+ cx="8px"
68
+ cy="8px"
69
+ r="7px"
70
+ ></circle>
71
+ <circle
72
+ class="indeterminate-indicator-1"
73
+ cx="8px"
74
+ cy="8px"
75
+ r="7px"
76
+ ></circle>
77
+ </svg>
78
+ `
79
+ )}
80
+ </div>
81
+ `;
82
+
@@ -0,0 +1,18 @@
1
+ import {BaseProgress} from '@microsoft/fast-foundation';
2
+ import {attr} from '@microsoft/fast-element';
3
+ import type {Connotation} from '../enums';
4
+
5
+ export type ProgressRingConnotation =
6
+ Connotation.Primary |
7
+ Connotation.Success |
8
+ Connotation.Alert |
9
+ Connotation.CTA;
10
+
11
+ /**
12
+ * Base class for progress-ring
13
+ *
14
+ * @public
15
+ */
16
+ export class ProgressRing extends BaseProgress {
17
+ @attr() connotation?: ProgressRingConnotation;
18
+ }
@@ -0,0 +1,35 @@
1
+ import { expect, test } from '@playwright/test';
2
+ import type { Page } from '@playwright/test';
3
+ import {
4
+ loadComponents,
5
+ loadTemplate,
6
+ } from '../../visual-tests/visual-tests-utils.ts';
7
+
8
+ const components = ['progress-ring'];
9
+
10
+ test('should show the component', async ({ page }: { page: Page }) => {
11
+ const template = `
12
+ <vwc-progress-ring min="0" max="100" value="50" connotation="primary"></vwc-progress-ring>
13
+ <vwc-progress-ring min="0" max="100" value="50" connotation="cta"></vwc-progress-ring>
14
+ <vwc-progress-ring min="0" max="100" value="33" connotation="alert"></vwc-progress-ring>
15
+ <vwc-progress-ring min="0" max="100" value="66" connotation="success"></vwc-progress-ring>
16
+ <vwc-progress-ring min="0" max="100" value="77" paused></vwc-progress-ring>
17
+ `;
18
+
19
+ await loadComponents({
20
+ page,
21
+ components,
22
+ });
23
+ await loadTemplate({
24
+ page,
25
+ template,
26
+ });
27
+
28
+ const testWrapper = await page.$('#wrapper');
29
+
30
+ await page.waitForLoadState('networkidle');
31
+
32
+ expect(await testWrapper?.screenshot()).toMatchSnapshot(
33
+ './snapshots/progress-ring.png'
34
+ );
35
+ });
@@ -0,0 +1,304 @@
1
+ # side-drawer
2
+
3
+ ```js
4
+ <script type='module'>
5
+ import '@vonage/vivid/side-drawer';
6
+ </script>
7
+ ```
8
+
9
+ ## Open
10
+ Use the `open` attribute to indicate whether the side drawer is open.
11
+ You can also close the side drawer by pressing the `ESC` key.
12
+
13
+ - Type: `Boolean`
14
+ - Default: `false`
15
+
16
+ ```html preview
17
+ <style>
18
+ vwc-side-drawer#sideDrawer{
19
+ --side-drawer-background-color: var(--vvd-color-neutral-10);
20
+ --side-drawer-inline-size: 200px;
21
+ }
22
+ </style>
23
+ <vwc-side-drawer id="sideDrawer" open>
24
+ <div>
25
+ <vwc-sidenav-item href="#" text="1st level item" icon="home-line"></vwc-sidenav-item>
26
+ <p><vwc-text font-face="body-2-bold">SECTION TITLE</vwc-text></p>
27
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
28
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
29
+ </div>
30
+ <div slot="app-content">
31
+ <vwc-button id="button" shape="pill" icon='menu-solid'></vwc-button>
32
+ <vwc-text font-face="body-1">
33
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's
34
+ standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make
35
+ a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting,
36
+ remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing
37
+ Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions
38
+ of Lorem Ipsum.
39
+ </vwc-text>
40
+ </div>
41
+ </vwc-side-drawer>
42
+ <script>
43
+ button.addEventListener('click', toggleOpen);
44
+ function toggleOpen() {
45
+ sideDrawer.open = !sideDrawer.open;
46
+ }
47
+ </script>
48
+ ```
49
+
50
+ ## Modal
51
+
52
+ Use the `modal` attribute to set the side drawer's type to modal.
53
+ Click on the `scrim` or the `ESC` key to close the modal side-drawer.
54
+
55
+ - Type: `Boolean`
56
+ - Default: `false`
57
+
58
+ ```html preview
59
+ <style>
60
+ vwc-side-drawer#sideDrawer{
61
+ --side-drawer-background-color: var(--vvd-color-neutral-10);
62
+ --side-drawer-inline-size: 200px;
63
+ }
64
+ </style>
65
+ <vwc-side-drawer id="sideDrawer" open modal>
66
+ <div>
67
+ <vwc-sidenav-item href="#" text="1st level item" icon="home-line"></vwc-sidenav-item>
68
+ <p><vwc-text font-face="body-2-bold">SECTION TITLE</vwc-text></p>
69
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
70
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
71
+ </div>
72
+ <div slot="app-content">
73
+ <vwc-button id="button" shape="pill" icon='menu-solid'></vwc-button>
74
+ <vwc-text font-face="body-1">
75
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's
76
+ standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make
77
+ a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting,
78
+ remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing
79
+ Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions
80
+ of Lorem Ipsum.
81
+ </vwc-text>
82
+ </div>
83
+ </vwc-side-drawer>
84
+ <script>
85
+ button.addEventListener('click', toggleOpen);
86
+ function toggleOpen() {
87
+ sideDrawer.open = !sideDrawer.open;
88
+ }
89
+ </script>
90
+ ```
91
+ ## Alternate
92
+
93
+ Use the `alternate` attribute to apply scheme alternate region.
94
+
95
+ - Type: `Boolean`
96
+ - Default: `false`
97
+
98
+ ```html preview
99
+ <style>
100
+ vwc-side-drawer#sideDrawer{
101
+ --side-drawer-background-color: var(--vvd-color-neutral-10);
102
+ --side-drawer-inline-size: 200px;
103
+ }
104
+ </style>
105
+ <vwc-side-drawer id="sideDrawer" open alternate>
106
+ <div>
107
+ <vwc-sidenav-item href="#" text="1st level item" icon="home-line"></vwc-sidenav-item>
108
+ <p><vwc-text font-face="body-2-bold">SECTION TITLE</vwc-text></p>
109
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
110
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
111
+ </div>
112
+ <div slot="app-content">
113
+ <vwc-button id="button" shape="pill" icon='menu-solid'></vwc-button>
114
+ <vwc-text font-face="body-1">
115
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's
116
+ standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make
117
+ a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting,
118
+ remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing
119
+ Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions
120
+ of Lorem Ipsum.
121
+ </vwc-text>
122
+ </div>
123
+ </vwc-side-drawer>
124
+ <script>
125
+ button.addEventListener('click', toggleOpen);
126
+ function toggleOpen() {
127
+ sideDrawer.open = !sideDrawer.open;
128
+ }
129
+ </script>
130
+ ```
131
+ ## Position
132
+
133
+ Use the `position` attribute to set the side of the side drawer.
134
+
135
+ - Type: `"start" | "end"`
136
+ - Default: `"start"`
137
+
138
+ ```html preview
139
+ <style>
140
+ vwc-side-drawer#sideDrawer{
141
+ --side-drawer-background-color: var(--vvd-color-neutral-10);
142
+ --side-drawer-inline-size: 200px;
143
+ }
144
+ vwc-button#button{
145
+ margin-left: calc(100% - 40px);
146
+ }
147
+ </style>
148
+ <vwc-side-drawer id="sideDrawer" open position="end">
149
+ <div>
150
+ <vwc-sidenav-item href="#" text="1st level item" icon="home-line"></vwc-sidenav-item>
151
+ <p><vwc-text font-face="body-2-bold">SECTION TITLE</vwc-text></p>
152
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
153
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
154
+ </div>
155
+ <div slot="app-content">
156
+ <vwc-button id="button" shape="pill" icon='menu-solid'></vwc-button>
157
+ <vwc-text font-face="body-1">
158
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's
159
+ standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make
160
+ a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting,
161
+ remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing
162
+ Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions
163
+ of Lorem Ipsum.
164
+ </vwc-text>
165
+ </div>
166
+ </vwc-side-drawer>
167
+ <script>
168
+ button.addEventListener('click', toggleOpen);
169
+ function toggleOpen() {
170
+ sideDrawer.open = !sideDrawer.open;
171
+ }
172
+ </script>
173
+ ```
174
+ ## Slots
175
+
176
+ ### Top Bar
177
+
178
+ To add a top bar to the side drawer, add a slot called `top-bar`.
179
+
180
+ ```js
181
+ <div slot="top-bar">
182
+ <vwc-text>VIVID</vwc-text>
183
+ </div>
184
+ ```
185
+ ```html preview
186
+ <style>
187
+ vwc-side-drawer#sideDrawer{
188
+ --side-drawer-background-color: var(--vvd-color-neutral-10);
189
+ --side-drawer-inline-size: 200px;
190
+ }
191
+ </style>
192
+ <vwc-side-drawer id="sideDrawer" open>
193
+ <div slot="top-bar">
194
+ <vwc-text font-face="subtitle-1">VIVID</vwc-text>
195
+ </div>
196
+ <div>
197
+ <vwc-sidenav-item href="#" text="1st level item" icon="home-line"></vwc-sidenav-item>
198
+ <p><vwc-text font-face="body-2-bold">SECTION TITLE</vwc-text></p>
199
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
200
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
201
+ </div>
202
+ <div slot="app-content">
203
+ <vwc-button id="button" shape="pill" icon='menu-solid'></vwc-button>
204
+ <vwc-text font-face="body-1">
205
+ Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's
206
+ standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make
207
+ a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting,
208
+ remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing
209
+ Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions
210
+ of Lorem Ipsum.
211
+ </vwc-text>
212
+ </div>
213
+ </vwc-side-drawer>
214
+ <script>
215
+ button.addEventListener('click', toggleOpen);
216
+ function toggleOpen() {
217
+ sideDrawer.open = !sideDrawer.open;
218
+ }
219
+ </script>
220
+ ```
221
+
222
+ ### App-content
223
+
224
+ To add content aside the side-drawer, add a slot called `app-content`.
225
+
226
+ ```js
227
+ <div slot="app-content">
228
+ <vwc-text font-face="body-1">
229
+ This is the app-content slot!!!!
230
+ </vwc-text>
231
+ </div>
232
+ ```
233
+ ```html preview
234
+ <style>
235
+ vwc-side-drawer#sideDrawer{
236
+ --side-drawer-background-color: var(--vvd-color-neutral-10);
237
+ --side-drawer-inline-size: 200px;
238
+ }
239
+ </style>
240
+ <vwc-side-drawer id="sideDrawer" open>
241
+ <div>
242
+ <vwc-sidenav-item href="#" text="1st level item" icon="home-line"></vwc-sidenav-item>
243
+ <p><vwc-text font-face="body-2-bold">SECTION TITLE</vwc-text></p>
244
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
245
+ <vwc-sidenav-item href="#" text="1st level item" icon="chat-line"></vwc-sidenav-item>
246
+ </div>
247
+ <div slot="app-content">
248
+ <vwc-button id="button" shape="pill" icon='menu-solid'></vwc-button>
249
+ <vwc-text font-face="body-1">
250
+ This is the app-content slot!!!!
251
+ </vwc-text>
252
+ </div>
253
+ </vwc-side-drawer>
254
+ <script>
255
+ button.addEventListener('click', toggleOpen);
256
+ function toggleOpen() {
257
+ sideDrawer.open = !sideDrawer.open;
258
+ }
259
+ </script>
260
+ ```
261
+
262
+ ## CSS Custom Properties
263
+
264
+ ### Background-color
265
+ - `--side-drawer-background-color`
266
+ - Type: `String`
267
+ - Default: Current theme's canvas (background) color
268
+
269
+ Controls the background of the side drawer.
270
+
271
+ ### Color
272
+ - `--side-drawer-color`
273
+ - Type: `String`
274
+ - Default: Current theme's on-canvas (text) color
275
+
276
+ Controls the color of the side drawer.
277
+
278
+ ### Inline-size
279
+ - `--side-drawer-inline-size`
280
+ - Type: `Number`
281
+ - Default: `280px`
282
+
283
+ Controls the inline size of the side drawer.
284
+
285
+ ### Padding-body
286
+ - `--side-drawer-padding-body`
287
+ - Type: `Number`
288
+ - Default: `16px`
289
+
290
+ Controls the padding of the side drawer's body.
291
+
292
+ ### Padding-top-bar
293
+ - `--side-drawer-padding-top-bar`
294
+ - Type: `Number`
295
+ - Default: `16px`
296
+
297
+ Controls the padding of the side drawer's top bar.
298
+
299
+ ### Z-index
300
+ - `--side-drawer-z-index`
301
+ - Type: `Number`
302
+ - Default: `6`
303
+
304
+ Controls the z-index of the side drawer.
@@ -0,0 +1,16 @@
1
+ import type { FoundationElementDefinition } from '@microsoft/fast-foundation';
2
+ import { designSystem } from '../../shared/design-system';
3
+ import { SideDrawer } from './side-drawer';
4
+ import styles from './side-drawer.scss';
5
+ import { sideDrawerTemplate as template } from './side-drawer.template';
6
+
7
+ /**
8
+ * Represents a side-drawer custom element.
9
+ */
10
+ export const VIVIDSideDrawer = SideDrawer.compose<FoundationElementDefinition>({
11
+ baseName: 'side-drawer',
12
+ template: template as any,
13
+ styles,
14
+ });
15
+
16
+ designSystem.register(VIVIDSideDrawer());
@@ -0,0 +1,6 @@
1
+ $side-drawer-padding-top-bar: --side-drawer-padding-top-bar;
2
+ $side-drawer-padding-body: --side-drawer-padding-body;
3
+ $side-drawer-inline-size: --side-drawer-inline-size;
4
+ $side-drawer-z-index: --side-drawer-z-index;
5
+ $side-drawer-background-color: --side-drawer-background-color;
6
+ $side-drawer-color: --side-drawer-color;
@@ -0,0 +1,109 @@
1
+ @use 'sass:map';
2
+
3
+ @use 'partials/variables' as variables;
4
+ @use '../../../../../node_modules/@vonage/vivid-tokens/dist/sass/themes/consts' as theme-consts;
5
+ @use '../../../../shared/src/lib/sass/mixins/typography' as typography;
6
+ @use '../../../../shared/src/lib/sass/mixins/scrim' as scrim-mixins;
7
+
8
+ $z-index-default: 6;
9
+ $padding-default: 16px;
10
+ $inline-size: var(#{variables.$side-drawer-inline-size}, 280px);
11
+
12
+
13
+ :host {
14
+ display: flex;
15
+ block-size: 100vh;
16
+ }
17
+
18
+ :host([position='end']) {
19
+ flex-direction: row-reverse;
20
+ }
21
+
22
+ .control {
23
+ position: fixed;
24
+ z-index: var(#{variables.$side-drawer-z-index}, #{$z-index-default});
25
+ top: auto;
26
+ bottom: 0;
27
+ display: flex;
28
+ overflow: auto;
29
+ flex-direction: column;
30
+ flex-shrink: 0;
31
+ background-color: var(#{variables.$side-drawer-background-color}, var(#{theme-consts.$vvd-color-canvas}));
32
+ block-size: inherit;
33
+ color: var(#{variables.$side-drawer-color}, var(#{theme-consts.$vvd-color-on-canvas}));
34
+ inline-size: #{$inline-size};
35
+
36
+ &.alternate {
37
+ background-color: var(#{theme-consts.$vvd-color-canvas});
38
+ }
39
+ &:not(.open) {
40
+ &.end {
41
+ transform: translateX(100%);
42
+ }
43
+ &:not(.end) {
44
+ transform: translateX(-100%);
45
+ }
46
+ }
47
+
48
+ &.control.open:not(.modal) {
49
+ + .side-drawer-app-content {
50
+ @include typography.typography-cat-shorthand(body-1);
51
+
52
+ margin-inline-start: #{$inline-size};
53
+ ::slotted(vwc-top-app-bar),
54
+ ::slotted(vwc-top-app-bar-fixed) {
55
+ --mdc-top-app-bar-width: calc(100% - #{$inline-size});
56
+ }
57
+ }
58
+ &.end {
59
+ + .side-drawer-app-content {
60
+ margin-inline-end: var(--side-drawer-inline-size, 280px);
61
+ margin-inline-start: 0;
62
+ }
63
+ }
64
+ }
65
+ @media (prefers-reduced-motion: no-preference) {
66
+ transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
67
+ }
68
+ }
69
+
70
+ .side-drawer-top-bar {
71
+ @include typography.typography-cat-shorthand(subtitle-1);
72
+
73
+ $gutter: var(#{variables.$side-drawer-padding-top-bar}, #{$padding-default});
74
+
75
+ display: flex;
76
+ flex-shrink: 0;
77
+ align-items: center;
78
+ padding-inline-end: #{$gutter};
79
+ padding-inline-start: #{$gutter};
80
+ }
81
+
82
+ .side-drawer-content {
83
+ $gutter: var(#{variables.$side-drawer-padding-body}, #{$padding-default});
84
+
85
+ background-color: inherit;
86
+ overflow-y: auto;
87
+ padding-inline-end: #{$gutter};
88
+ padding-inline-start: #{$gutter};
89
+ }
90
+
91
+ .modal {
92
+ &:not(.end) {
93
+ inset-inline-start: 0;
94
+ }
95
+ &.end {
96
+ inset-inline-end: 0;
97
+ }
98
+ }
99
+
100
+ .scrim {
101
+ @include scrim-mixins.scrim-variables;
102
+
103
+ position: fixed;
104
+ z-index: calc(#{$z-index-default} - 1);
105
+ top: 0;
106
+ right: 0;
107
+ bottom: 0;
108
+ left: 0;
109
+ }