@vonage/vivid-react 2.10.47 → 2.10.58

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 (292) hide show
  1. package/.storybook/main.js +11 -0
  2. package/.storybook/preview.js +3 -0
  3. package/.vscode/settings.json +4 -0
  4. package/README.md +75 -65
  5. package/babel.config.js +38 -0
  6. package/package.json +66 -67
  7. package/rollup.config.js +30 -0
  8. package/scripts/cli.js +27 -0
  9. package/scripts/generateWrappers/consts.js +220 -0
  10. package/scripts/generateWrappers/generator.js +264 -0
  11. package/scripts/generateWrappers/helpers/generator.js +18 -0
  12. package/scripts/generateWrappers/helpers/generator.test.js +56 -0
  13. package/scripts/generateWrappers/prop.types.js +87 -0
  14. package/scripts/generateWrappers/templates/js/index.tmpl +2 -0
  15. package/scripts/generateWrappers/templates/js/react-component-v3.tmpl +19 -0
  16. package/scripts/generateWrappers/templates/js/react-component.tmpl +30 -0
  17. package/scripts/generateWrappers/templates/js/stories.tmpl +18 -0
  18. package/scripts/generateWrappers/templates/templates.js +39 -0
  19. package/scripts/generateWrappers/templates/ts/element-type.tmpl +3 -0
  20. package/scripts/generateWrappers/templates/ts/index.tmpl +2 -0
  21. package/scripts/generateWrappers/templates/ts/react-component-v3.tmpl +32 -0
  22. package/scripts/generateWrappers/templates/ts/react-component.tmpl +28 -0
  23. package/scripts/generateWrappers/templates/ts/types.tmpl +8 -0
  24. package/scripts/generateWrappers/utils.js +197 -0
  25. package/scripts/generateWrappers/utils.test.js +71 -0
  26. package/scripts/updateDocs.js +42 -0
  27. package/scripts/updateVividPackages.js +81 -0
  28. package/src/dataGrid/index.js +15 -0
  29. package/src/index.js +3 -0
  30. package/src/initialization/initVivid.js +56 -0
  31. package/src/patches/VwcCard/index.js +2 -0
  32. package/src/patches/VwcCard/vwcCardHeadingCrop.js +28 -0
  33. package/src/patches/VwcCard/vwcCardWithMenu.js +14 -0
  34. package/src/patches/index.js +6 -0
  35. package/src/patches/vwcDataGrid.js +26 -0
  36. package/src/patches/vwcNoteContentOverflow.js +20 -0
  37. package/src/patches/vwcSetAttributeValue.js +12 -0
  38. package/src/patches/vwcSnackBarHtmlMessage.js +21 -0
  39. package/src/patches/vwcTooltip.js +46 -0
  40. package/stories/v2/VwcAccordion/VwcAccordion.stories.jsx +18 -0
  41. package/stories/v2/VwcActionGroup/VwcActionGroup.stories.jsx +18 -0
  42. package/stories/v2/VwcBadge/VwcBadge.stories.jsx +18 -0
  43. package/stories/v2/VwcBanner/VwcBanner.stories.jsx +18 -0
  44. package/stories/v2/VwcButton/VwcButton.stories.jsx +18 -0
  45. package/stories/v2/VwcButtonToggleGroup/VwcButtonToggleGroup.stories.jsx +47 -0
  46. package/stories/v2/VwcCalendar/VwcCalendar.stories.jsx +18 -0
  47. package/stories/v2/VwcCalendarEvent/VwcCalendarEvent.stories.jsx +18 -0
  48. package/stories/v2/VwcCard/VwcCard.stories.jsx +90 -0
  49. package/stories/v2/VwcCarousel/VwcCarousel.stories.jsx +18 -0
  50. package/stories/v2/VwcCarouselItem/VwcCarouselItem.stories.jsx +18 -0
  51. package/stories/v2/VwcCheckListItem/VwcCheckListItem.stories.jsx +18 -0
  52. package/stories/v2/VwcCheckbox/VwcCheckbox.stories.jsx +18 -0
  53. package/stories/v2/VwcChip/VwcChip.stories.jsx +18 -0
  54. package/stories/v2/VwcChipSet/VwcChipSet.stories.jsx +38 -0
  55. package/stories/v2/VwcCircularProgress/VwcCircularProgress.stories.jsx +18 -0
  56. package/stories/v2/VwcDataGrid/VwcDataGrid.stories.jsx +109 -0
  57. package/stories/v2/VwcDataGridColumn/VwcDataGridColumn.stories.jsx +18 -0
  58. package/stories/v2/VwcDatepicker/VwcDatepicker.stories.jsx +18 -0
  59. package/stories/v2/VwcDialog/VwcDialog.stories.jsx +18 -0
  60. package/stories/v2/VwcDrawer/VwcDrawer.stories.jsx +18 -0
  61. package/stories/v2/VwcDropdown/VwcDropdown.stories.jsx +18 -0
  62. package/stories/v2/VwcElevation/VwcElevation.stories.jsx +18 -0
  63. package/stories/v2/VwcEmptyState/VwcEmptyState.stories.jsx +18 -0
  64. package/stories/v2/VwcExpansionPanel/VwcExpansionPanel.stories.jsx +18 -0
  65. package/stories/v2/VwcFab/VwcFab.stories.jsx +18 -0
  66. package/stories/v2/VwcFilePicker/VwcFilePicker.stories.jsx +18 -0
  67. package/stories/v2/VwcFormfield/VwcFormfield.stories.jsx +18 -0
  68. package/stories/v2/VwcHelperMessage/VwcHelperMessage.stories.jsx +18 -0
  69. package/stories/v2/VwcIcon/VwcIcon.stories.jsx +18 -0
  70. package/stories/v2/VwcIconButton/VwcIconButton.stories.jsx +18 -0
  71. package/stories/v2/VwcIconButtonToggle/VwcIconButtonToggle.stories.jsx +18 -0
  72. package/stories/v2/VwcKeypad/VwcKeypad.stories.jsx +18 -0
  73. package/stories/v2/VwcLayout/VwcLayout.stories.jsx +63 -0
  74. package/stories/v2/VwcLinearProgress/VwcLinearProgress.stories.jsx +18 -0
  75. package/stories/v2/VwcList/VwcList.stories.jsx +25 -0
  76. package/stories/v2/VwcListExpansionPanel/VwcListExpansionPanel.stories.jsx +18 -0
  77. package/stories/v2/VwcListItem/VwcListItem.stories.jsx +18 -0
  78. package/stories/v2/VwcMenu/VwcMenu.stories.jsx +41 -0
  79. package/stories/v2/VwcNotchedOutline/VwcNotchedOutline.stories.jsx +18 -0
  80. package/stories/v2/VwcNote/VwcNote.stories.jsx +18 -0
  81. package/stories/v2/VwcPagination/VwcPagination.stories.jsx +18 -0
  82. package/stories/v2/VwcPopup/VwcPopup.stories.jsx +18 -0
  83. package/stories/v2/VwcRadio/VwcRadio.stories.jsx +18 -0
  84. package/stories/v2/VwcRadioListItem/VwcRadioListItem.stories.jsx +18 -0
  85. package/stories/v2/VwcSchemeSelect/VwcSchemeSelect.stories.jsx +18 -0
  86. package/stories/v2/VwcSelect/VwcSelect.stories.jsx +18 -0
  87. package/stories/v2/VwcSideDrawer/VwcSideDrawer.stories.jsx +18 -0
  88. package/stories/v2/VwcSlider/VwcSlider.stories.jsx +18 -0
  89. package/stories/v2/VwcSnackbar/VwcSnackbar.stories.jsx +18 -0
  90. package/stories/v2/VwcSurface/VwcSurface.stories.jsx +18 -0
  91. package/stories/v2/VwcSwitch/VwcSwitch.stories.jsx +18 -0
  92. package/stories/v2/VwcTab/VwcTab.stories.jsx +18 -0
  93. package/stories/v2/VwcTabBar/VwcTabBar.stories.jsx +63 -0
  94. package/stories/v2/VwcTag/VwcTag.stories.jsx +18 -0
  95. package/stories/v2/VwcText/VwcText.stories.jsx +18 -0
  96. package/stories/v2/VwcTextarea/VwcTextarea.stories.jsx +24 -0
  97. package/stories/v2/VwcTextfield/VwcTextfield.stories.jsx +47 -0
  98. package/stories/v2/VwcThemeSwitch/VwcThemeSwitch.stories.jsx +18 -0
  99. package/stories/v2/VwcTooltip/VwcTooltip.stories.jsx +41 -0
  100. package/stories/v2/VwcTopAppBar/VwcTopAppBar.stories.jsx +18 -0
  101. package/stories/v2/VwcTopAppBarFixed/VwcTopAppBarFixed.stories.jsx +18 -0
  102. package/stories/v2/patches/patches.stories.jsx +94 -0
  103. package/stories/v3/v3.stories.jsx +28 -0
  104. package/tsconfig.json +70 -0
  105. package/VwcAccordion/index.d.ts +0 -14
  106. package/VwcAccordion/index.js +0 -59
  107. package/VwcAccordion/package.json +0 -11
  108. package/VwcActionGroup/index.d.ts +0 -18
  109. package/VwcActionGroup/index.js +0 -90
  110. package/VwcActionGroup/package.json +0 -11
  111. package/VwcBadge/index.d.ts +0 -29
  112. package/VwcBadge/index.js +0 -154
  113. package/VwcBadge/package.json +0 -11
  114. package/VwcBanner/index.d.ts +0 -26
  115. package/VwcBanner/index.js +0 -91
  116. package/VwcBanner/package.json +0 -11
  117. package/VwcButton/index.d.ts +0 -55
  118. package/VwcButton/index.js +0 -240
  119. package/VwcButton/package.json +0 -11
  120. package/VwcButtonToggleGroup/index.d.ts +0 -25
  121. package/VwcButtonToggleGroup/index.js +0 -91
  122. package/VwcButtonToggleGroup/package.json +0 -11
  123. package/VwcCalendar/index.d.ts +0 -20
  124. package/VwcCalendar/index.js +0 -70
  125. package/VwcCalendar/package.json +0 -11
  126. package/VwcCalendarEvent/index.d.ts +0 -25
  127. package/VwcCalendarEvent/index.js +0 -81
  128. package/VwcCalendarEvent/package.json +0 -11
  129. package/VwcCard/index.d.ts +0 -23
  130. package/VwcCard/index.js +0 -76
  131. package/VwcCard/package.json +0 -11
  132. package/VwcCarousel/index.d.ts +0 -14
  133. package/VwcCarousel/index.js +0 -45
  134. package/VwcCarousel/package.json +0 -11
  135. package/VwcCarouselItem/index.d.ts +0 -14
  136. package/VwcCarouselItem/index.js +0 -49
  137. package/VwcCarouselItem/package.json +0 -11
  138. package/VwcCheckListItem/index.d.ts +0 -41
  139. package/VwcCheckListItem/index.js +0 -153
  140. package/VwcCheckListItem/package.json +0 -11
  141. package/VwcCheckbox/index.d.ts +0 -34
  142. package/VwcCheckbox/index.js +0 -126
  143. package/VwcCheckbox/package.json +0 -11
  144. package/VwcChip/index.d.ts +0 -31
  145. package/VwcChip/index.js +0 -106
  146. package/VwcChip/package.json +0 -11
  147. package/VwcChipSet/index.d.ts +0 -16
  148. package/VwcChipSet/index.js +0 -60
  149. package/VwcChipSet/package.json +0 -11
  150. package/VwcCircularProgress/index.d.ts +0 -24
  151. package/VwcCircularProgress/index.js +0 -84
  152. package/VwcCircularProgress/package.json +0 -11
  153. package/VwcDataGrid/index.d.ts +0 -33
  154. package/VwcDataGrid/index.js +0 -122
  155. package/VwcDataGrid/package.json +0 -11
  156. package/VwcDataGridColumn/index.d.ts +0 -43
  157. package/VwcDataGridColumn/index.js +0 -144
  158. package/VwcDataGridColumn/package.json +0 -11
  159. package/VwcDatepicker/index.d.ts +0 -120
  160. package/VwcDatepicker/index.js +0 -422
  161. package/VwcDatepicker/package.json +0 -11
  162. package/VwcDialog/index.d.ts +0 -40
  163. package/VwcDialog/index.js +0 -135
  164. package/VwcDialog/package.json +0 -11
  165. package/VwcDrawer/index.d.ts +0 -20
  166. package/VwcDrawer/index.js +0 -80
  167. package/VwcDrawer/package.json +0 -11
  168. package/VwcDropdown/index.d.ts +0 -61
  169. package/VwcDropdown/index.js +0 -221
  170. package/VwcDropdown/package.json +0 -11
  171. package/VwcElevation/index.d.ts +0 -14
  172. package/VwcElevation/index.js +0 -45
  173. package/VwcElevation/package.json +0 -11
  174. package/VwcEmptyState/index.d.ts +0 -18
  175. package/VwcEmptyState/index.js +0 -59
  176. package/VwcEmptyState/package.json +0 -11
  177. package/VwcExpansionPanel/index.d.ts +0 -34
  178. package/VwcExpansionPanel/index.js +0 -199
  179. package/VwcExpansionPanel/package.json +0 -11
  180. package/VwcFab/index.d.ts +0 -32
  181. package/VwcFab/index.js +0 -124
  182. package/VwcFab/package.json +0 -11
  183. package/VwcFilePicker/index.d.ts +0 -24
  184. package/VwcFilePicker/index.js +0 -88
  185. package/VwcFilePicker/package.json +0 -11
  186. package/VwcFormfield/index.d.ts +0 -20
  187. package/VwcFormfield/index.js +0 -70
  188. package/VwcFormfield/package.json +0 -11
  189. package/VwcHelperMessage/index.d.ts +0 -14
  190. package/VwcHelperMessage/index.js +0 -49
  191. package/VwcHelperMessage/package.json +0 -11
  192. package/VwcIcon/index.d.ts +0 -22
  193. package/VwcIcon/index.js +0 -102
  194. package/VwcIcon/package.json +0 -11
  195. package/VwcIconButton/index.d.ts +0 -31
  196. package/VwcIconButton/index.js +0 -111
  197. package/VwcIconButton/package.json +0 -11
  198. package/VwcIconButtonToggle/index.d.ts +0 -37
  199. package/VwcIconButtonToggle/index.js +0 -136
  200. package/VwcIconButtonToggle/package.json +0 -11
  201. package/VwcKeypad/index.d.ts +0 -31
  202. package/VwcKeypad/index.js +0 -176
  203. package/VwcKeypad/package.json +0 -11
  204. package/VwcLayout/index.d.ts +0 -20
  205. package/VwcLayout/index.js +0 -105
  206. package/VwcLayout/package.json +0 -11
  207. package/VwcLinearProgress/index.d.ts +0 -26
  208. package/VwcLinearProgress/index.js +0 -98
  209. package/VwcLinearProgress/package.json +0 -11
  210. package/VwcList/index.d.ts +0 -35
  211. package/VwcList/index.js +0 -146
  212. package/VwcList/package.json +0 -11
  213. package/VwcListExpansionPanel/index.d.ts +0 -19
  214. package/VwcListExpansionPanel/index.js +0 -68
  215. package/VwcListExpansionPanel/package.json +0 -11
  216. package/VwcListItem/index.d.ts +0 -42
  217. package/VwcListItem/index.js +0 -171
  218. package/VwcListItem/package.json +0 -11
  219. package/VwcMenu/index.d.ts +0 -53
  220. package/VwcMenu/index.js +0 -210
  221. package/VwcMenu/package.json +0 -11
  222. package/VwcNotchedOutline/index.d.ts +0 -17
  223. package/VwcNotchedOutline/index.js +0 -58
  224. package/VwcNotchedOutline/package.json +0 -11
  225. package/VwcNote/index.d.ts +0 -18
  226. package/VwcNote/index.js +0 -59
  227. package/VwcNote/package.json +0 -11
  228. package/VwcPagination/index.d.ts +0 -16
  229. package/VwcPagination/index.js +0 -52
  230. package/VwcPagination/package.json +0 -11
  231. package/VwcPopup/index.d.ts +0 -30
  232. package/VwcPopup/index.js +0 -147
  233. package/VwcPopup/package.json +0 -11
  234. package/VwcRadio/index.d.ts +0 -52
  235. package/VwcRadio/index.js +0 -149
  236. package/VwcRadio/package.json +0 -11
  237. package/VwcRadioListItem/index.d.ts +0 -41
  238. package/VwcRadioListItem/index.js +0 -148
  239. package/VwcRadioListItem/package.json +0 -11
  240. package/VwcSchemeSelect/index.d.ts +0 -14
  241. package/VwcSchemeSelect/index.js +0 -46
  242. package/VwcSchemeSelect/package.json +0 -11
  243. package/VwcSelect/index.d.ts +0 -60
  244. package/VwcSelect/index.js +0 -253
  245. package/VwcSelect/package.json +0 -11
  246. package/VwcSideDrawer/index.d.ts +0 -22
  247. package/VwcSideDrawer/index.js +0 -73
  248. package/VwcSideDrawer/package.json +0 -11
  249. package/VwcSlider/index.d.ts +0 -34
  250. package/VwcSlider/index.js +0 -129
  251. package/VwcSlider/package.json +0 -11
  252. package/VwcSnackbar/index.d.ts +0 -42
  253. package/VwcSnackbar/index.js +0 -138
  254. package/VwcSnackbar/package.json +0 -11
  255. package/VwcSurface/index.d.ts +0 -42
  256. package/VwcSurface/index.js +0 -145
  257. package/VwcSurface/package.json +0 -11
  258. package/VwcSwitch/index.d.ts +0 -27
  259. package/VwcSwitch/index.js +0 -114
  260. package/VwcSwitch/package.json +0 -11
  261. package/VwcTab/index.d.ts +0 -40
  262. package/VwcTab/index.js +0 -151
  263. package/VwcTab/package.json +0 -11
  264. package/VwcTabBar/index.d.ts +0 -15
  265. package/VwcTabBar/index.js +0 -55
  266. package/VwcTabBar/package.json +0 -11
  267. package/VwcTag/index.d.ts +0 -34
  268. package/VwcTag/index.js +0 -115
  269. package/VwcTag/package.json +0 -11
  270. package/VwcText/index.d.ts +0 -18
  271. package/VwcText/index.js +0 -83
  272. package/VwcText/package.json +0 -11
  273. package/VwcTextarea/index.d.ts +0 -93
  274. package/VwcTextarea/index.js +0 -331
  275. package/VwcTextarea/package.json +0 -11
  276. package/VwcTextfield/index.d.ts +0 -89
  277. package/VwcTextfield/index.js +0 -329
  278. package/VwcTextfield/package.json +0 -11
  279. package/VwcThemeSwitch/index.d.ts +0 -14
  280. package/VwcThemeSwitch/index.js +0 -57
  281. package/VwcThemeSwitch/package.json +0 -11
  282. package/VwcTooltip/index.d.ts +0 -22
  283. package/VwcTooltip/index.js +0 -105
  284. package/VwcTooltip/package.json +0 -11
  285. package/VwcTopAppBar/index.d.ts +0 -22
  286. package/VwcTopAppBar/index.js +0 -77
  287. package/VwcTopAppBar/package.json +0 -11
  288. package/VwcTopAppBarFixed/index.d.ts +0 -22
  289. package/VwcTopAppBarFixed/index.js +0 -88
  290. package/VwcTopAppBarFixed/package.json +0 -11
  291. package/index.js +0 -281
  292. package/types/index.d.ts +0 -2
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Patches provided `VwcCard` (styles) to allow a sub menu triggered from an
3
+ * action in the card to appear over the card and not inside of it
4
+ *
5
+ * @param {HTMLElement} element - target `VwcCard` element containing the action
6
+ * that triggers the menu
7
+ * @example <VwcCard ref={vwcCardWithMenu}><VwcMenu slot='actions' /></VwcCard>
8
+ */
9
+ export const vwcCardWithMenu = (element) => setTimeout(() => {
10
+ const card = element?.shadowRoot.querySelector('.vwc-card')
11
+ if (card) {
12
+ card.style.overflow = 'unset'
13
+ }
14
+ }, 0)
@@ -0,0 +1,6 @@
1
+ export * from './vwcDataGrid'
2
+ export * from './vwcTooltip'
3
+ export * from './VwcCard'
4
+ export * from './vwcNoteContentOverflow'
5
+ export * from './vwcSnackBarHtmlMessage'
6
+ export * from './vwcSetAttributeValue'
@@ -0,0 +1,26 @@
1
+ const createVaadinGridStylePatchElement = () => {
2
+ const styleElement = document.createElement('style')
3
+ styleElement.innerHTML = `
4
+ #header {
5
+ z-index: 0;
6
+ }
7
+ [part~='cell'] ::slotted(vaadin-grid-cell-content) {
8
+ overflow: visible;
9
+ }`
10
+ return styleElement
11
+ }
12
+
13
+ /**
14
+ * Patches `VwcDataGrid` (styles) to allow cell overflow to show
15
+ * - `VwcSlider` tooltips off the cell boundaries uncropped by the grid
16
+ *
17
+ * @param {HTMLElement} gridElement - target datagrid element to mount the CSS into
18
+ * @example <VwcDataGrid ref={vwcDataGridElementCellOverflowDecorator} />
19
+ */
20
+ export const vwcDataGridElementCellOverflowDecorator = gridElement =>
21
+ setTimeout(() => {
22
+ const component = gridElement?.shadowRoot
23
+ .querySelector('vaadin-grid')?.shadowRoot
24
+
25
+ component && component.append(createVaadinGridStylePatchElement())
26
+ }, 0)
@@ -0,0 +1,20 @@
1
+ const createStyleElement = () => {
2
+ const styleElement = document.createElement('style')
3
+ styleElement.innerHTML = `
4
+ .vwc-note {
5
+ contain: inherit !important;
6
+ }`
7
+ return styleElement
8
+ }
9
+
10
+ /**
11
+ * Patches `VwcNote` (styles) to allow content overflow
12
+ *
13
+ * @param {HTMLElement} noteElement - target element to mount the CSS into
14
+ * @example <VwcNote ref={vwcNoteContentOverflowDecorator} />
15
+ */
16
+ export const vwcNoteContentOverflowDecorator = noteElement =>
17
+ setTimeout(() => {
18
+ const component = noteElement?.shadowRoot
19
+ component && component.append(createStyleElement())
20
+ }, 0)
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Patches attribute value. You can pass now a `value` to the `VwcIconButton` as
3
+ * in normal buttons
4
+ *
5
+ * @param {any} attribute
6
+ * @param {any} value
7
+ * @param {HTMLElement} element
8
+ * @returns
9
+ */
10
+ export const vwcSetAttributeValue = (attribute, value) => (element) => {
11
+ element?.setAttribute(attribute, value)
12
+ }
@@ -0,0 +1,21 @@
1
+ const createHtmlMessageElement = (html) => {
2
+ const element = document.createElement('div')
3
+ element.setAttribute('class', 'mdc-snackbar__label')
4
+ element.setAttribute('role', 'status')
5
+ element.setAttribute('aria-live', 'polite')
6
+ element.innerHTML = html
7
+ return element
8
+ }
9
+
10
+ /**
11
+ * Patches `VwcSnackbar` to allow html message text
12
+ *
13
+ * @param {HTMLElement} element - target element to patch
14
+ * @example <VwcSnackbar ref={vwcSnackBarHtmlMessageDecorator('<b>bold</b>')} />
15
+ */
16
+ export const vwcSnackBarHtmlMessageDecorator = (htmlMessage = '<b>bold</b>') => element =>
17
+ setTimeout(() => {
18
+ const component = element?.shadowRoot.querySelector('.header-and-label')
19
+ component?.style.setProperty('width', '100%')
20
+ component?.append(createHtmlMessageElement(htmlMessage))
21
+ }, 0)
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Patches provided HTMLElement (styles) to crop long text and
3
+ * shows browser tooltip when actually cropped
4
+ *
5
+ * @param {HTMLElement} element - target element to apply the text cropping logic to
6
+ * @example <span ref={vwcTooltipEllipsisDecorator(text)} >{text}</span>
7
+ */
8
+ export const vwcTooltipEllipsisDecorator = fullText => element =>
9
+ setTimeout(() => {
10
+ const isTextCropped = element?.clientHeight < element?.scrollHeight
11
+ if (isTextCropped && element) {
12
+ element.setAttribute('title', fullText)
13
+ }
14
+ }, 0)
15
+
16
+ /**
17
+ * Patches provided VwcTooltip instance to open/close tooltip on mouse hover
18
+ *
19
+ * @param {HTMLElement} tooltipElement - target element to apply behavior to
20
+ * @param {number} timeout - timeout before showing tooltip, default: 1000
21
+ * @param {string} minWidth - min width in pixels, default: 'none'
22
+ * @example <VwcTooltip ref={vwcTooltipShowOnHoverDecorator()} />
23
+ */
24
+ export const vwcTooltipShowOnHoverDecorator = (minWidth = 'none', timeout = 1000) => tooltipElement =>
25
+ setTimeout(() => {
26
+ if (!tooltipElement) {
27
+ return
28
+ }
29
+ const anchorElement = document.getElementById(tooltipElement.anchor)
30
+ if (!anchorElement) {
31
+ return
32
+ }
33
+ anchorElement.style.setProperty('pointer-events', 'auto')
34
+ tooltipElement.style.setProperty('--tooltip-inline-size', minWidth)
35
+
36
+ let showTimeoutHandler
37
+ anchorElement.addEventListener("mouseover", () => {
38
+ showTimeoutHandler = setTimeout(() => {
39
+ tooltipElement.open = true
40
+ }, timeout)
41
+ })
42
+ anchorElement.addEventListener("mouseout", () => {
43
+ clearTimeout(showTimeoutHandler)
44
+ tooltipElement.open = false
45
+ })
46
+ }, 0)
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcAccordion from '../../../dist/VwcAccordion'
3
+
4
+ export const Default = () => <VwcAccordion />
5
+ export default {
6
+ title: 'V2/VwcAccordion',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcActionGroup from '../../../dist/VwcActionGroup'
3
+
4
+ export const Default = () => <VwcActionGroup />
5
+ export default {
6
+ title: 'V2/VwcActionGroup',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcBadge from '../../../dist/VwcBadge'
3
+
4
+ export const Default = () => <VwcBadge />
5
+ export default {
6
+ title: 'V2/VwcBadge',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcBanner from '../../../dist/VwcBanner'
3
+
4
+ export const Default = () => <VwcBanner />
5
+ export default {
6
+ title: 'V2/VwcBanner',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcButton from '../../../dist/VwcButton'
3
+
4
+ export const Default = () => <VwcButton />
5
+ export default {
6
+ title: 'V2/VwcButton',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,47 @@
1
+ import React from 'react'
2
+ import VwcButtonToggleGroup from '../../../dist/VwcButtonToggleGroup'
3
+ import VwcButton from '../../../dist/VwcButton'
4
+
5
+ export const Default = () => {
6
+ return (
7
+ <VwcButtonToggleGroup required values={['foo']}>
8
+ <VwcButton value='foo'>Foo</VwcButton>
9
+ <VwcButton value='bar'>Bar</VwcButton>
10
+ </VwcButtonToggleGroup>
11
+ )
12
+ }
13
+
14
+ export const RealtimeValuesSet = () => {
15
+ return (
16
+ <VwcButtonToggleGroup
17
+ values={[]}
18
+ ref={btnGroupElement =>
19
+ setTimeout(() => {
20
+ if (!btnGroupElement) {
21
+ return
22
+ }
23
+ btnGroupElement.values = ['bar']
24
+ }, 0)
25
+ }
26
+ required
27
+ >
28
+ <VwcButton value='foo'>Foo</VwcButton>
29
+ <VwcButton value='bar'>Bar</VwcButton>
30
+ </VwcButtonToggleGroup>
31
+ )
32
+ }
33
+
34
+ export default {
35
+ title: 'V2/VwcButtonToggleGroup',
36
+ argTypes: {
37
+ //
38
+ // Example values
39
+ // numberValue: { control: 'number', defaultValue: 123 },
40
+ // booleanValue: { control: 'boolean', defaultValue: true },
41
+ // objectValue: { control: 'object', defaultValue: {} },
42
+ // stringValue: { control: 'string', defaultValue: 'string' },
43
+ // colorValue: { control: 'color' },
44
+ // dateValue: { control: 'date' }
45
+ //
46
+ }
47
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcCalendar from '../../../dist/VwcCalendar'
3
+
4
+ export const Default = () => <VwcCalendar />
5
+ export default {
6
+ title: 'V2/VwcCalendar',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcCalendarEvent from '../../../dist/VwcCalendarEvent'
3
+
4
+ export const Default = () => <VwcCalendarEvent />
5
+ export default {
6
+ title: 'V2/VwcCalendarEvent',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,90 @@
1
+ import React from 'react'
2
+ import VwcCard from '../../../dist/VwcCard'
3
+ import VwcIconButton from '../../../dist/VwcIconButton'
4
+ import { vwcCardHeadingCropDecorator } from '../../../src'
5
+
6
+ const originalText = 'very loooooo ngt te eeex tkjhn klhkjg hlkjh kjuhk jhkjh kjhk jhk jhjk'
7
+ const damnLoongWordText = 'veryloooooongtteeeextkjhnklhkjghlkjhkjuhkjhkjhkjhk jhk jhjk'
8
+
9
+ export const Default = () => (
10
+ <>
11
+ <div
12
+ style={{
13
+ width: '200px'
14
+ }}
15
+ >
16
+ <VwcCard
17
+ style={{
18
+ '--title-line-clamp': 2
19
+ }}
20
+ heading={originalText}
21
+ ref={vwcCardHeadingCropDecorator(originalText)}
22
+ subtitle='Subtitle'
23
+ ></VwcCard>
24
+ </div>
25
+
26
+ <div
27
+ style={{
28
+ width: '200px'
29
+ }}
30
+ >
31
+ <VwcCard
32
+ style={{
33
+ '--title-line-clamp': 2
34
+ }}
35
+ heading={damnLoongWordText}
36
+ ref={vwcCardHeadingCropDecorator(damnLoongWordText)}
37
+ subtitle='Subtitle'
38
+ ></VwcCard>
39
+ </div>
40
+
41
+ <VwcCard
42
+ label='All Options'
43
+ heading='All Options on Deck'
44
+ icon='chat-line'
45
+ subtitle='Subtitle'
46
+ text="Use the 'footer' slot in order to add actionable items."
47
+ >
48
+ <VwcIconButton
49
+ slot='graphic'
50
+ connotation='alert'
51
+ icon='bin'
52
+ shape='circled'
53
+ />
54
+ <div
55
+ style={{
56
+ height: '150px',
57
+ width: '100%',
58
+ backgroundColor: '#871EFF'
59
+ }}
60
+ slot='media'
61
+ ></div>
62
+ <VwcIconButton
63
+ slot='meta'
64
+ connotation='alert'
65
+ icon='bin'
66
+ shape='circled'
67
+ />
68
+ <VwcIconButton
69
+ slot='footer'
70
+ connotation='alert'
71
+ icon='bin'
72
+ shape='circled'
73
+ />
74
+ </VwcCard>
75
+ </>
76
+ )
77
+ export default {
78
+ title: 'V2/VwcCard',
79
+ argTypes: {
80
+ //
81
+ // Example values
82
+ // numberValue: { control: 'number', defaultValue: 123 },
83
+ // booleanValue: { control: 'boolean', defaultValue: true },
84
+ // objectValue: { control: 'object', defaultValue: {} },
85
+ // stringValue: { control: 'string', defaultValue: 'string' },
86
+ // colorValue: { control: 'color' },
87
+ // dateValue: { control: 'date' }
88
+ //
89
+ }
90
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcCarousel from '../../../dist/VwcCarousel'
3
+
4
+ export const Default = () => <VwcCarousel />
5
+ export default {
6
+ title: 'V2/VwcCarousel',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcCarouselItem from '../../../dist/VwcCarouselItem'
3
+
4
+ export const Default = () => <VwcCarouselItem />
5
+ export default {
6
+ title: 'V2/VwcCarouselItem',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcCheckListItem from '../../../dist/VwcCheckListItem'
3
+
4
+ export const Default = () => <VwcCheckListItem />
5
+ export default {
6
+ title: 'V2/VwcCheckListItem',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcCheckbox from '../../../dist/VwcCheckbox'
3
+
4
+ export const Default = () => <VwcCheckbox />
5
+ export default {
6
+ title: 'V2/VwcCheckbox',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcChip from '../../../dist/VwcChip'
3
+
4
+ export const Default = () => <VwcChip />
5
+ export default {
6
+ title: 'V2/VwcChip',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }
@@ -0,0 +1,38 @@
1
+ import React from 'react'
2
+ import VwcChipSet from '../../../dist/VwcChipSet'
3
+ import VwcChip from '../../../dist/VwcChip'
4
+
5
+ export const Default = (argTypes) =>
6
+ <VwcChipSet {...argTypes}>
7
+ <VwcChip label='Chip one' />
8
+ <VwcChip label='Chip two' />
9
+ <VwcChip label='Chip three' />
10
+ </VwcChipSet>
11
+
12
+ export const Filter = (argTypes) =>
13
+ <VwcChipSet {...argTypes}>
14
+ <VwcChip label='Chip one' selected />
15
+ <VwcChip label='Chip two' />
16
+ <VwcChip label='Chip three' />
17
+ </VwcChipSet>
18
+
19
+ export default {
20
+ title: 'V2/VwcChipSet',
21
+ argTypes: {
22
+ type: {
23
+ options: ['action', 'input', 'choice', 'filter'],
24
+ control: { type: 'select' },
25
+ defaultValue: 'filter'
26
+ },
27
+ onSelection: { action: 'onSelection' },
28
+
29
+ //
30
+ // Example values
31
+ // numberValue: { control: 'number', defaultValue: 123 },
32
+ // booleanValue: { control: 'boolean', defaultValue: true },
33
+ // objectValue: { control: 'object', defaultValue: {} },
34
+ // stringValue: { control: 'string', defaultValue: 'string' },
35
+ // colorValue: { control: 'color' },
36
+ // dateValue: { control: 'date' }
37
+ }
38
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react'
2
+ import VwcCircularProgress from '../../../dist/VwcCircularProgress'
3
+
4
+ export const Default = () => <VwcCircularProgress />
5
+ export default {
6
+ title: 'V2/VwcCircularProgress',
7
+ argTypes: {
8
+ //
9
+ // Example values
10
+ // numberValue: { control: 'number', defaultValue: 123 },
11
+ // booleanValue: { control: 'boolean', defaultValue: true },
12
+ // objectValue: { control: 'object', defaultValue: {} },
13
+ // stringValue: { control: 'string', defaultValue: 'string' },
14
+ // colorValue: { control: 'color' },
15
+ // dateValue: { control: 'date' }
16
+ //
17
+ }
18
+ }