@veracity/vui 2.5.1 → 2.6.0

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 (303) hide show
  1. package/dist/cjs/box/box.js +3 -4
  2. package/dist/cjs/box/box.types.d.ts +2 -0
  3. package/dist/cjs/box/box.types.d.ts.map +1 -1
  4. package/dist/cjs/button/button.types.d.ts +1 -1
  5. package/dist/cjs/button/button.types.d.ts.map +1 -1
  6. package/dist/cjs/buttonGroup/buttonGroup.d.ts.map +1 -1
  7. package/dist/cjs/buttonGroup/buttonGroup.js +0 -4
  8. package/dist/cjs/core/links.d.ts.map +1 -1
  9. package/dist/cjs/core/links.js +3 -6
  10. package/dist/cjs/dialog/dialog.js +1 -1
  11. package/dist/cjs/dialog/dialogCloseButton.d.ts.map +1 -1
  12. package/dist/cjs/dialog/dialogCloseButton.js +1 -1
  13. package/dist/cjs/footer/footer.d.ts.map +1 -1
  14. package/dist/cjs/footer/footer.js +51 -7
  15. package/dist/cjs/footer/footer.types.d.ts +1 -0
  16. package/dist/cjs/footer/footer.types.d.ts.map +1 -1
  17. package/dist/cjs/footer/footerColumn.d.ts.map +1 -1
  18. package/dist/cjs/footer/footerColumn.js +1 -1
  19. package/dist/cjs/footer/footerContent.d.ts.map +1 -1
  20. package/dist/cjs/footer/footerContent.js +1 -1
  21. package/dist/cjs/footer/footerLink.js +1 -1
  22. package/dist/cjs/footer/footerSlimColumn.d.ts +5 -0
  23. package/dist/cjs/footer/footerSlimColumn.d.ts.map +1 -0
  24. package/dist/cjs/footer/footerSlimColumn.js +28 -0
  25. package/dist/cjs/footer/footerTrademark.d.ts +1 -0
  26. package/dist/cjs/footer/footerTrademark.d.ts.map +1 -1
  27. package/dist/cjs/footer/footerTrademark.js +5 -3
  28. package/dist/cjs/footer/theme.d.ts +38 -2
  29. package/dist/cjs/footer/theme.d.ts.map +1 -1
  30. package/dist/cjs/footer/theme.js +38 -2
  31. package/dist/cjs/header/headerAccount.d.ts.map +1 -1
  32. package/dist/cjs/header/headerAccount.js +1 -1
  33. package/dist/cjs/header/headerAccountUserInfo.d.ts.map +1 -1
  34. package/dist/cjs/header/headerAccountUserInfo.js +1 -3
  35. package/dist/cjs/header/headerDivider.js +1 -1
  36. package/dist/cjs/header/headerMobileToggle.d.ts.map +1 -1
  37. package/dist/cjs/header/headerMobileToggle.js +1 -1
  38. package/dist/cjs/header/headerServices.d.ts.map +1 -1
  39. package/dist/cjs/header/headerServices.js +1 -1
  40. package/dist/cjs/heading/heading.d.ts +1 -1
  41. package/dist/cjs/heading/heading.d.ts.map +1 -1
  42. package/dist/cjs/heading/heading.js +1 -1
  43. package/dist/cjs/icons/baseIcons/cub/cubCircleFB.d.ts +4 -0
  44. package/dist/cjs/icons/baseIcons/cub/cubCircleFB.d.ts.map +1 -0
  45. package/dist/cjs/icons/baseIcons/cub/cubCircleFB.js +7 -0
  46. package/dist/cjs/icons/baseIcons/cub/cubCircleLinkedIn.d.ts +4 -0
  47. package/dist/cjs/icons/baseIcons/cub/cubCircleLinkedIn.d.ts.map +1 -0
  48. package/dist/cjs/icons/baseIcons/cub/cubCircleLinkedIn.js +8 -0
  49. package/dist/cjs/icons/baseIcons/cub/cubCircleTwitter.d.ts +4 -0
  50. package/dist/cjs/icons/baseIcons/cub/cubCircleTwitter.d.ts.map +1 -0
  51. package/dist/cjs/icons/baseIcons/cub/cubCircleTwitter.js +8 -0
  52. package/dist/cjs/icons/baseIcons/cub/cubCircleYoutube.d.ts +4 -0
  53. package/dist/cjs/icons/baseIcons/cub/cubCircleYoutube.d.ts.map +1 -0
  54. package/dist/cjs/icons/baseIcons/cub/cubCircleYoutube.js +7 -0
  55. package/dist/cjs/icons/baseIcons/icons.d.ts +4 -0
  56. package/dist/cjs/icons/baseIcons/icons.d.ts.map +1 -1
  57. package/dist/cjs/icons/baseIcons/icons.js +16 -8
  58. package/dist/cjs/icons/baseIcons/types.d.ts +1 -1
  59. package/dist/cjs/icons/baseIcons/types.d.ts.map +1 -1
  60. package/dist/cjs/input/input.d.ts +1 -0
  61. package/dist/cjs/input/input.d.ts.map +1 -1
  62. package/dist/cjs/input/input.js +40 -31
  63. package/dist/cjs/input/input.types.d.ts +2 -2
  64. package/dist/cjs/input/input.types.d.ts.map +1 -1
  65. package/dist/cjs/input/inputInput.d.ts.map +1 -1
  66. package/dist/cjs/input/inputInput.js +1 -1
  67. package/dist/cjs/link/link.types.d.ts +1 -1
  68. package/dist/cjs/link/link.types.d.ts.map +1 -1
  69. package/dist/cjs/link/theme.d.ts +20 -22
  70. package/dist/cjs/link/theme.d.ts.map +1 -1
  71. package/dist/cjs/link/theme.js +25 -31
  72. package/dist/cjs/list/list.d.ts.map +1 -1
  73. package/dist/cjs/list/list.js +2 -2
  74. package/dist/cjs/list/list.types.d.ts +2 -2
  75. package/dist/cjs/list/list.types.d.ts.map +1 -1
  76. package/dist/cjs/list/listHeading.d.ts.map +1 -1
  77. package/dist/cjs/list/listHeading.js +1 -1
  78. package/dist/cjs/list/listItem.d.ts.map +1 -1
  79. package/dist/cjs/list/listItem.js +2 -3
  80. package/dist/cjs/list/theme.d.ts +40 -35
  81. package/dist/cjs/list/theme.d.ts.map +1 -1
  82. package/dist/cjs/list/theme.js +44 -45
  83. package/dist/cjs/logo/Logo.d.ts +1 -1
  84. package/dist/cjs/logo/Logo.d.ts.map +1 -1
  85. package/dist/cjs/logo/Logo.js +1 -1
  86. package/dist/cjs/menu/menuList.js +1 -1
  87. package/dist/cjs/modal/modal.d.ts.map +1 -1
  88. package/dist/cjs/modal/modal.js +1 -1
  89. package/dist/cjs/modal/modalBackdrop.d.ts.map +1 -1
  90. package/dist/cjs/modal/modalBackdrop.js +5 -4
  91. package/dist/cjs/select/select.d.ts +1 -1
  92. package/dist/cjs/select/select.d.ts.map +1 -1
  93. package/dist/cjs/select/select.js +40 -3
  94. package/dist/cjs/select/select.types.d.ts +2 -0
  95. package/dist/cjs/select/select.types.d.ts.map +1 -1
  96. package/dist/cjs/select/selectButton.d.ts.map +1 -1
  97. package/dist/cjs/select/selectButton.js +1 -1
  98. package/dist/cjs/sidemenu/consts.d.ts +0 -4
  99. package/dist/cjs/sidemenu/consts.d.ts.map +1 -1
  100. package/dist/cjs/sidemenu/consts.js +1 -5
  101. package/dist/cjs/sidemenu/sidemenu.d.ts.map +1 -1
  102. package/dist/cjs/sidemenu/sidemenu.js +5 -7
  103. package/dist/cjs/system/effects.d.ts +1 -0
  104. package/dist/cjs/system/effects.d.ts.map +1 -1
  105. package/dist/cjs/tabs/consts.d.ts +10 -0
  106. package/dist/cjs/tabs/consts.d.ts.map +1 -0
  107. package/dist/cjs/tabs/consts.js +17 -0
  108. package/dist/cjs/tabs/tab.d.ts.map +1 -1
  109. package/dist/cjs/tabs/tab.js +1 -4
  110. package/dist/cjs/tabs/tabs.d.ts +1 -1
  111. package/dist/cjs/tabs/tabs.js +1 -1
  112. package/dist/cjs/tabs/tabs.types.d.ts +1 -0
  113. package/dist/cjs/tabs/tabs.types.d.ts.map +1 -1
  114. package/dist/cjs/tabs/tabsNavBar.d.ts.map +1 -1
  115. package/dist/cjs/tabs/tabsNavBar.js +6 -10
  116. package/dist/cjs/theme/components.d.ts +89 -45
  117. package/dist/cjs/theme/components.d.ts.map +1 -1
  118. package/dist/cjs/theme/defaultTheme.d.ts +89 -45
  119. package/dist/cjs/theme/defaultTheme.d.ts.map +1 -1
  120. package/dist/cjs/theme/types.d.ts +1 -0
  121. package/dist/cjs/theme/types.d.ts.map +1 -1
  122. package/dist/cjs/utils/styles.d.ts +10 -0
  123. package/dist/cjs/utils/styles.d.ts.map +1 -1
  124. package/dist/cjs/utils/styles.js +55 -2
  125. package/dist/esm/box/box.js +3 -4
  126. package/dist/esm/box/box.types.d.ts +2 -0
  127. package/dist/esm/box/box.types.d.ts.map +1 -1
  128. package/dist/esm/button/button.types.d.ts +1 -1
  129. package/dist/esm/button/button.types.d.ts.map +1 -1
  130. package/dist/esm/buttonGroup/buttonGroup.d.ts.map +1 -1
  131. package/dist/esm/buttonGroup/buttonGroup.js +0 -4
  132. package/dist/esm/core/links.d.ts.map +1 -1
  133. package/dist/esm/core/links.js +3 -6
  134. package/dist/esm/dialog/dialog.js +1 -1
  135. package/dist/esm/dialog/dialogCloseButton.d.ts.map +1 -1
  136. package/dist/esm/dialog/dialogCloseButton.js +1 -1
  137. package/dist/esm/footer/footer.d.ts.map +1 -1
  138. package/dist/esm/footer/footer.js +51 -8
  139. package/dist/esm/footer/footer.types.d.ts +1 -0
  140. package/dist/esm/footer/footer.types.d.ts.map +1 -1
  141. package/dist/esm/footer/footerColumn.d.ts.map +1 -1
  142. package/dist/esm/footer/footerColumn.js +1 -1
  143. package/dist/esm/footer/footerContent.d.ts.map +1 -1
  144. package/dist/esm/footer/footerContent.js +1 -1
  145. package/dist/esm/footer/footerLink.js +1 -1
  146. package/dist/esm/footer/footerSlimColumn.d.ts +5 -0
  147. package/dist/esm/footer/footerSlimColumn.d.ts.map +1 -0
  148. package/dist/esm/footer/footerSlimColumn.js +12 -0
  149. package/dist/esm/footer/footerTrademark.d.ts +1 -0
  150. package/dist/esm/footer/footerTrademark.d.ts.map +1 -1
  151. package/dist/esm/footer/footerTrademark.js +4 -2
  152. package/dist/esm/footer/theme.d.ts +38 -2
  153. package/dist/esm/footer/theme.d.ts.map +1 -1
  154. package/dist/esm/footer/theme.js +38 -2
  155. package/dist/esm/header/headerAccount.d.ts.map +1 -1
  156. package/dist/esm/header/headerAccount.js +1 -1
  157. package/dist/esm/header/headerAccountUserInfo.d.ts.map +1 -1
  158. package/dist/esm/header/headerAccountUserInfo.js +1 -3
  159. package/dist/esm/header/headerDivider.js +1 -1
  160. package/dist/esm/header/headerMobileToggle.d.ts.map +1 -1
  161. package/dist/esm/header/headerMobileToggle.js +1 -1
  162. package/dist/esm/header/headerServices.d.ts.map +1 -1
  163. package/dist/esm/header/headerServices.js +1 -1
  164. package/dist/esm/heading/heading.d.ts +1 -1
  165. package/dist/esm/heading/heading.d.ts.map +1 -1
  166. package/dist/esm/heading/heading.js +1 -1
  167. package/dist/esm/icons/baseIcons/cub/cubCircleFB.d.ts +4 -0
  168. package/dist/esm/icons/baseIcons/cub/cubCircleFB.d.ts.map +1 -0
  169. package/dist/esm/icons/baseIcons/cub/cubCircleFB.js +5 -0
  170. package/dist/esm/icons/baseIcons/cub/cubCircleLinkedIn.d.ts +4 -0
  171. package/dist/esm/icons/baseIcons/cub/cubCircleLinkedIn.d.ts.map +1 -0
  172. package/dist/esm/icons/baseIcons/cub/cubCircleLinkedIn.js +6 -0
  173. package/dist/esm/icons/baseIcons/cub/cubCircleTwitter.d.ts +4 -0
  174. package/dist/esm/icons/baseIcons/cub/cubCircleTwitter.d.ts.map +1 -0
  175. package/dist/esm/icons/baseIcons/cub/cubCircleTwitter.js +6 -0
  176. package/dist/esm/icons/baseIcons/cub/cubCircleYoutube.d.ts +4 -0
  177. package/dist/esm/icons/baseIcons/cub/cubCircleYoutube.d.ts.map +1 -0
  178. package/dist/esm/icons/baseIcons/cub/cubCircleYoutube.js +5 -0
  179. package/dist/esm/icons/baseIcons/icons.d.ts +4 -0
  180. package/dist/esm/icons/baseIcons/icons.d.ts.map +1 -1
  181. package/dist/esm/icons/baseIcons/icons.js +4 -0
  182. package/dist/esm/icons/baseIcons/types.d.ts +1 -1
  183. package/dist/esm/icons/baseIcons/types.d.ts.map +1 -1
  184. package/dist/esm/input/input.d.ts +1 -0
  185. package/dist/esm/input/input.d.ts.map +1 -1
  186. package/dist/esm/input/input.js +40 -31
  187. package/dist/esm/input/input.types.d.ts +2 -2
  188. package/dist/esm/input/input.types.d.ts.map +1 -1
  189. package/dist/esm/input/inputInput.d.ts.map +1 -1
  190. package/dist/esm/input/inputInput.js +1 -1
  191. package/dist/esm/link/link.types.d.ts +1 -1
  192. package/dist/esm/link/link.types.d.ts.map +1 -1
  193. package/dist/esm/link/theme.d.ts +20 -22
  194. package/dist/esm/link/theme.d.ts.map +1 -1
  195. package/dist/esm/link/theme.js +25 -31
  196. package/dist/esm/list/list.d.ts.map +1 -1
  197. package/dist/esm/list/list.js +2 -2
  198. package/dist/esm/list/list.types.d.ts +2 -2
  199. package/dist/esm/list/list.types.d.ts.map +1 -1
  200. package/dist/esm/list/listHeading.d.ts.map +1 -1
  201. package/dist/esm/list/listHeading.js +1 -1
  202. package/dist/esm/list/listItem.d.ts.map +1 -1
  203. package/dist/esm/list/listItem.js +2 -3
  204. package/dist/esm/list/theme.d.ts +40 -35
  205. package/dist/esm/list/theme.d.ts.map +1 -1
  206. package/dist/esm/list/theme.js +44 -45
  207. package/dist/esm/logo/Logo.d.ts +1 -1
  208. package/dist/esm/logo/Logo.d.ts.map +1 -1
  209. package/dist/esm/logo/Logo.js +1 -1
  210. package/dist/esm/menu/menuList.js +1 -1
  211. package/dist/esm/modal/modal.d.ts.map +1 -1
  212. package/dist/esm/modal/modal.js +1 -1
  213. package/dist/esm/modal/modalBackdrop.d.ts.map +1 -1
  214. package/dist/esm/modal/modalBackdrop.js +6 -5
  215. package/dist/esm/select/select.d.ts +1 -1
  216. package/dist/esm/select/select.d.ts.map +1 -1
  217. package/dist/esm/select/select.js +16 -3
  218. package/dist/esm/select/select.types.d.ts +2 -0
  219. package/dist/esm/select/select.types.d.ts.map +1 -1
  220. package/dist/esm/select/selectButton.d.ts.map +1 -1
  221. package/dist/esm/select/selectButton.js +1 -1
  222. package/dist/esm/sidemenu/consts.d.ts +0 -4
  223. package/dist/esm/sidemenu/consts.d.ts.map +1 -1
  224. package/dist/esm/sidemenu/consts.js +0 -4
  225. package/dist/esm/sidemenu/sidemenu.d.ts.map +1 -1
  226. package/dist/esm/sidemenu/sidemenu.js +6 -8
  227. package/dist/esm/system/effects.d.ts +1 -0
  228. package/dist/esm/system/effects.d.ts.map +1 -1
  229. package/dist/esm/tabs/consts.d.ts +10 -0
  230. package/dist/esm/tabs/consts.d.ts.map +1 -0
  231. package/dist/esm/tabs/consts.js +14 -0
  232. package/dist/esm/tabs/tab.d.ts.map +1 -1
  233. package/dist/esm/tabs/tab.js +1 -4
  234. package/dist/esm/tabs/tabs.d.ts +1 -1
  235. package/dist/esm/tabs/tabs.js +1 -1
  236. package/dist/esm/tabs/tabs.types.d.ts +1 -0
  237. package/dist/esm/tabs/tabs.types.d.ts.map +1 -1
  238. package/dist/esm/tabs/tabsNavBar.d.ts.map +1 -1
  239. package/dist/esm/tabs/tabsNavBar.js +5 -9
  240. package/dist/esm/theme/components.d.ts +89 -45
  241. package/dist/esm/theme/components.d.ts.map +1 -1
  242. package/dist/esm/theme/defaultTheme.d.ts +89 -45
  243. package/dist/esm/theme/defaultTheme.d.ts.map +1 -1
  244. package/dist/esm/theme/types.d.ts +1 -0
  245. package/dist/esm/theme/types.d.ts.map +1 -1
  246. package/dist/esm/utils/styles.d.ts +10 -0
  247. package/dist/esm/utils/styles.d.ts.map +1 -1
  248. package/dist/esm/utils/styles.js +50 -1
  249. package/package.json +1 -1
  250. package/src/box/box.tsx +5 -5
  251. package/src/box/box.types.ts +2 -0
  252. package/src/button/button.types.ts +1 -1
  253. package/src/buttonGroup/buttonGroup.tsx +0 -4
  254. package/src/core/links.tsx +3 -8
  255. package/src/dialog/dialog.tsx +1 -1
  256. package/src/dialog/dialogCloseButton.tsx +1 -3
  257. package/src/footer/footer.tsx +100 -22
  258. package/src/footer/footer.types.ts +1 -0
  259. package/src/footer/footerColumn.tsx +3 -2
  260. package/src/footer/footerContent.tsx +2 -1
  261. package/src/footer/footerLink.tsx +1 -1
  262. package/src/footer/footerSlimColumn.tsx +30 -0
  263. package/src/footer/footerTrademark.tsx +5 -4
  264. package/src/footer/theme.ts +40 -2
  265. package/src/header/headerAccount.tsx +0 -1
  266. package/src/header/headerAccountUserInfo.tsx +1 -7
  267. package/src/header/headerDivider.tsx +1 -1
  268. package/src/header/headerMobileToggle.tsx +0 -1
  269. package/src/header/headerServices.tsx +1 -8
  270. package/src/heading/heading.tsx +1 -1
  271. package/src/icons/baseIcons/cub/cubCircleFB.ts +8 -0
  272. package/src/icons/baseIcons/cub/cubCircleLinkedIn.ts +9 -0
  273. package/src/icons/baseIcons/cub/cubCircleTwitter.ts +9 -0
  274. package/src/icons/baseIcons/cub/cubCircleYoutube.ts +8 -0
  275. package/src/icons/baseIcons/icons.ts +4 -0
  276. package/src/icons/baseIcons/types.ts +4 -0
  277. package/src/input/input.tsx +69 -46
  278. package/src/input/input.types.ts +2 -2
  279. package/src/input/inputInput.tsx +1 -0
  280. package/src/link/link.types.ts +1 -1
  281. package/src/link/theme.ts +26 -39
  282. package/src/list/list.tsx +2 -5
  283. package/src/list/list.types.ts +2 -2
  284. package/src/list/listHeading.tsx +0 -1
  285. package/src/list/listItem.tsx +2 -2
  286. package/src/list/theme.ts +43 -49
  287. package/src/logo/Logo.tsx +1 -1
  288. package/src/menu/menuList.tsx +1 -1
  289. package/src/modal/modal.tsx +3 -1
  290. package/src/modal/modalBackdrop.tsx +15 -5
  291. package/src/select/select.tsx +32 -3
  292. package/src/select/select.types.ts +2 -0
  293. package/src/select/selectButton.tsx +0 -1
  294. package/src/sidemenu/consts.ts +0 -5
  295. package/src/sidemenu/sidemenu.tsx +6 -8
  296. package/src/system/effects.ts +1 -0
  297. package/src/tabs/consts.ts +17 -0
  298. package/src/tabs/tab.tsx +5 -8
  299. package/src/tabs/tabs.tsx +1 -1
  300. package/src/tabs/tabs.types.ts +1 -0
  301. package/src/tabs/tabsNavBar.tsx +13 -14
  302. package/src/theme/types.ts +1 -0
  303. package/src/utils/styles.ts +57 -1
@@ -20,6 +20,10 @@ export type BaseIcon =
20
20
  | 'conUploadFile1'
21
21
  | 'conUploadFile2'
22
22
  | 'cubBellship'
23
+ | 'cubCircleFB'
24
+ | 'cubCircleLinkedIn'
25
+ | 'cubCircleTwitter'
26
+ | 'cubCircleYoutube'
23
27
  | 'cubDNV'
24
28
  | 'cubPowerBi'
25
29
  | 'cubVeracity'
@@ -1,6 +1,8 @@
1
1
  import React, { useEffect, useMemo, useState } from 'react'
2
2
 
3
3
  import { styled, useStyleConfig, vui, VuiComponent } from '../core'
4
+ import { List } from '../list'
5
+ import { Popover } from '../popover'
4
6
  import { T } from '../t'
5
7
  import { ChangeEvent, cs, filterUndefined, isString } from '../utils'
6
8
  import { inputColors, inputStateMapping } from './consts'
@@ -11,6 +13,10 @@ import { InputProps } from './input.types'
11
13
  import InputIcon from './inputIcon'
12
14
  import InputInput from './inputInput'
13
15
 
16
+ export const InputContainer = styled.divBox`
17
+ width: 100%;
18
+ `
19
+
14
20
  export const InputBase = styled.divBox`
15
21
  align-items: center;
16
22
  background-color: white;
@@ -36,7 +42,7 @@ export const InputBase = styled.divBox`
36
42
  */
37
43
  export const Input = vui<'div', InputProps>((props, ref) => {
38
44
  const {
39
- autoComplete,
45
+ autoCompleteOptions,
40
46
  autoFocus,
41
47
  children,
42
48
  className,
@@ -100,54 +106,71 @@ export const Input = vui<'div', InputProps>((props, ref) => {
100
106
  setCount(`${value}`?.length ? `${value}`.length : 0)
101
107
  }, [value])
102
108
 
109
+ const filterAutoCompleteOptions = (i: string) =>
110
+ valueInternal === i ? false : !valueInternal || i.toLowerCase().includes(`${valueInternal}`.toLowerCase())
111
+
103
112
  return (
104
113
  <InputProvider value={context}>
105
- <InputBase className={cs('vui-input', className)} ref={ref} {...styles.container} {...aliasedProps} {...rest}>
106
- {itemLeft}
107
- {isString(iconLeft) ? <InputIcon ml={1} name={iconLeft} /> : iconLeft}
108
- {children ?? input ?? (
109
- <InputInput
110
- ref={inputRef}
111
- {...{
112
- autoComplete,
113
- autoFocus,
114
- defaultValue,
115
- disabled,
116
- id,
117
- max,
118
- maxLength,
119
- min,
120
- name,
121
- onBlur,
122
- onChange,
123
- onFocus,
124
- pattern,
125
- placeholder,
126
- readOnly,
127
- required,
128
- step,
129
- type
130
- }}
131
- value={valueInternal}
132
- {...inputProps}
133
- />
134
- )}
135
- {isString(iconRight) ? <InputIcon mr={1} name={iconRight} /> : iconRight}
136
- {itemRight}
137
- {state && <InputIcon mr={1} {...states[state]?.iconProps} />}
138
- {showCount && (
139
- <T
140
- className="vui-inputCount"
141
- color={maxLength && count > maxLength ? inputColors.error : inputColors.helpText}
142
- position="absolute"
143
- right={0}
144
- size="sm"
145
- top="calc(100% + 1px)"
146
- >
147
- {count} {maxLength ? `/ ${maxLength}` : null}
148
- </T>
114
+ <Popover placement="bottom-start">
115
+ <Popover.Trigger as={InputContainer}>
116
+ <InputBase className={cs('vui-input', className)} ref={ref} {...styles.container} {...aliasedProps} {...rest}>
117
+ {itemLeft}
118
+ {isString(iconLeft) ? <InputIcon ml={1} name={iconLeft} /> : iconLeft}
119
+ {children ?? input ?? (
120
+ <InputInput
121
+ ref={inputRef}
122
+ {...{
123
+ autoFocus,
124
+ defaultValue,
125
+ disabled,
126
+ id,
127
+ max,
128
+ maxLength,
129
+ min,
130
+ name,
131
+ onBlur,
132
+ onChange,
133
+ onFocus,
134
+ pattern,
135
+ placeholder,
136
+ readOnly,
137
+ required,
138
+ step,
139
+ type
140
+ }}
141
+ value={valueInternal}
142
+ {...inputProps}
143
+ />
144
+ )}
145
+ {isString(iconRight) ? <InputIcon mr={1} name={iconRight} /> : iconRight}
146
+ {itemRight}
147
+ {state && <InputIcon mr={1} {...states[state]?.iconProps} />}
148
+ {showCount && (
149
+ <T
150
+ className="vui-inputCount"
151
+ color={maxLength && count > maxLength ? inputColors.error : inputColors.helpText}
152
+ position="absolute"
153
+ right={0}
154
+ size="sm"
155
+ top="calc(100% + 1px)"
156
+ >
157
+ {count} {maxLength ? `/ ${maxLength}` : null}
158
+ </T>
159
+ )}
160
+ </InputBase>
161
+ </Popover.Trigger>
162
+ {!!autoCompleteOptions && (
163
+ <Popover.Content>
164
+ <List>
165
+ {autoCompleteOptions.filter(filterAutoCompleteOptions).map((i: string) => (
166
+ <List.Item cursor="pointer" hoverBg="skyBlue.hover" key={i} onClick={() => setValueInternal(i)}>
167
+ {i}
168
+ </List.Item>
169
+ ))}
170
+ </List>
171
+ </Popover.Content>
149
172
  )}
150
- </InputBase>
173
+ </Popover>
151
174
  {!!helpText && <HelpText>{helpText}</HelpText>}
152
175
  {!!errorText && <HelpText isError>{errorText}</HelpText>}
153
176
  </InputProvider>
@@ -10,8 +10,8 @@ export type InputInputProps = PropsOf<'input', SystemProps>
10
10
 
11
11
  export type InputProps = SystemProps &
12
12
  ThemingProps<'Input'> & {
13
- /** Passed to the inner input. */
14
- autoComplete?: string
13
+ /** List of autocomplete options. */
14
+ autoCompleteOptions?: string[]
15
15
  /** Passed to the inner input. */
16
16
  autoFocus?: boolean
17
17
  /** Deprecated. Please use variant instead. @deprecated */
@@ -35,6 +35,7 @@ export const InputInput = vui<'input', InputInputProps>((props, ref) => {
35
35
 
36
36
  return (
37
37
  <InputInputBase
38
+ autoComplete={false}
38
39
  className={cs('vui-inputInput', className)}
39
40
  ref={ref}
40
41
  {...styles.input}
@@ -4,7 +4,7 @@ import { ThemingProps } from '../theme'
4
4
 
5
5
  export type LinkProps = SystemProps &
6
6
  ThemingProps<'Link'> & {
7
- /** Available theme colors for this component. @deprecated */
7
+ /** Deprecated. Please use variant instead. @deprecated */
8
8
  colorScheme?: 'blue' | 'white'
9
9
  /** Alias for textDecoration prop. @deprecated */
10
10
  decoration?: TypographyProps['textDecoration']
package/src/link/theme.ts CHANGED
@@ -1,45 +1,39 @@
1
- function variantDefault() {
2
- const container = {
3
- color: `seaBlue.main`,
4
- hoverColor: `seaBlue.main`
5
- }
6
-
7
- return { container }
8
- }
9
-
10
- function variantWhite() {
11
- const container = {
12
- color: `white`,
13
- hoverColor: `white`
14
- }
15
-
16
- return { container }
17
- }
18
-
19
- function variantLight() {
20
- const container = {
21
- color: `seaBlue.main`,
22
- hoverColor: `seaBlue.main`
23
- }
24
-
25
- return { container }
26
- }
27
-
28
- const variantPlain = {
1
+ const baseStyle = {
29
2
  container: {
30
- hoverTextDecoration: 'none'
3
+ dislplay: 'inline'
31
4
  }
32
5
  }
33
6
 
34
- const baseStyle = {}
35
-
36
7
  const defaultProps = {
37
8
  size: 'md',
38
- variant: 'default'
9
+ variant: 'dark'
39
10
  }
40
11
 
41
12
  const parts = ['container', 'icon', 'text']
42
13
 
14
+ const variants = {
15
+ dark: {
16
+ container: {
17
+ color: `seaBlue.main`
18
+ }
19
+ },
20
+ light: {
21
+ container: {
22
+ color: `digiGreen.main`
23
+ }
24
+ },
25
+ white: {
26
+ container: {
27
+ color: `white`
28
+ }
29
+ },
30
+ plain: {
31
+ container: {
32
+ hoverTextDecoration: 'none'
33
+ }
34
+ }
35
+ }
36
+
43
37
  const sizes = {
44
38
  sm: {
45
39
  container: {
@@ -79,13 +73,6 @@ const sizes = {
79
73
  }
80
74
  }
81
75
 
82
- const variants = {
83
- default: variantDefault,
84
- light: variantLight,
85
- plain: variantPlain,
86
- white: variantWhite
87
- }
88
-
89
76
  export default {
90
77
  baseStyle,
91
78
  defaultProps,
package/src/list/list.tsx CHANGED
@@ -14,13 +14,10 @@ export const ListBase = styled.ulBox``
14
14
 
15
15
  /** Displays a list of list link items and optional heading. Exposes some props to the children via context. */
16
16
  export const List = vui<'ul', ListProps>((props, ref) => {
17
- const { children, className, colorScheme, heading, isInteractive, items, size, variant, ...rest } = props
17
+ const { children, className, heading, isInteractive, items, size, variant, ...rest } = props
18
18
  const styles = useStyleConfig('List', props)
19
19
 
20
- const context = useMemo(
21
- () => filterUndefined({ colorScheme, isInteractive, size, variant }),
22
- [colorScheme, isInteractive, size, variant]
23
- )
20
+ const context = useMemo(() => filterUndefined({ isInteractive, size, variant }), [isInteractive, size, variant])
24
21
 
25
22
  return (
26
23
  <ListProvider value={context}>
@@ -8,7 +8,7 @@ import { PropsOf } from '../utils'
8
8
 
9
9
  export type ListProps = SystemProps &
10
10
  ThemingProps<'List'> & {
11
- /** Available theme colors for this component. @default blue */
11
+ /** Deprecated. @deprecated */
12
12
  colorScheme?: 'blue' | 'grey'
13
13
  /** Socket displaying a heading above the items. */
14
14
  heading?: React.ReactNode
@@ -28,7 +28,7 @@ export type ListItemProps = SystemProps &
28
28
  centerH?: boolean
29
29
  /** Centers the content vertically. @deprecated */
30
30
  centerV?: boolean
31
- /** Available theme colors for this component. */
31
+ /** Deprecated. @deprecated */
32
32
  colorScheme?: 'blue' | 'grey'
33
33
  /** Displays content in a column. @deprecated */
34
34
  column?: boolean
@@ -13,7 +13,6 @@ export const ListHeading = vui<'span', TProps>((props, ref) => {
13
13
  return (
14
14
  <T
15
15
  className={cs('vui-listHeading', className)}
16
- color="grey.60"
17
16
  display="inline-block"
18
17
  px={2}
19
18
  py={1}
@@ -29,8 +29,7 @@ export const ListItemBase = styled.liBox`
29
29
  transition-duration: fast;
30
30
 
31
31
  &[aria-disabled='true'] {
32
- background-color: disabled.bg;
33
- color: disabled.color;
32
+ color: sandstone.main;
34
33
  cursor: not-allowed;
35
34
  user-select: none;
36
35
  }
@@ -100,6 +99,7 @@ export const ListItem = vui<'li', ListItemProps>((props, ref) => {
100
99
 
101
100
  return (
102
101
  <ListItemBase
102
+ bg={disabled ? 'sandstone.95' : undefined}
103
103
  className={cs('vui-listItem', className)}
104
104
  onClick={!disabled ? onClick : undefined}
105
105
  ref={ref}
package/src/list/theme.ts CHANGED
@@ -1,24 +1,18 @@
1
- import { Dict } from '../utils'
2
-
3
- function variantDefault(props: Dict) {
4
- const { colorScheme: c } = props
5
-
6
- const item: Dict = {
7
- activeBg: `${c}.30`,
8
- hoverBg: `${c}.20`,
9
- selectedBg: `${c}.10`,
1
+ const baseStyle = {
2
+ item: {
3
+ color: 'sandstone.10',
4
+ activeBg: 'skyBlue.95',
5
+ hoverBg: 'skyBlue.90',
6
+ selectedBg: 'skyBlue.95',
10
7
  px: 2
8
+ },
9
+ heading: {
10
+ color: 'sandstone.60'
11
11
  }
12
-
13
- return { item }
14
12
  }
15
13
 
16
- const baseStyle = {}
17
-
18
14
  const defaultProps = {
19
- colorScheme: 'blue',
20
- size: 'md',
21
- variant: 'default'
15
+ size: 'lg'
22
16
  }
23
17
 
24
18
  const parts = ['container', 'divider', 'heading', 'icon', 'item', 'text']
@@ -29,8 +23,11 @@ const sizes = {
29
23
  size: 'sm'
30
24
  },
31
25
  item: {
32
- fontSize: 'md',
33
- h: 32
26
+ fontSize: 12,
27
+ h: 24
28
+ },
29
+ heading: {
30
+ fontSize: 12
34
31
  }
35
32
  },
36
33
  md: {
@@ -38,56 +35,53 @@ const sizes = {
38
35
  size: 'md'
39
36
  },
40
37
  item: {
41
- fontSize: 'md',
42
- h: 40
38
+ fontSize: 14,
39
+ h: 32
40
+ },
41
+ heading: {
42
+ fontSize: 14
43
43
  }
44
44
  },
45
45
  lg: {
46
- item: {
47
- fontSize: 'md',
48
- h: 48
49
- },
50
46
  icon: {
51
47
  size: 'lg'
48
+ },
49
+ item: {
50
+ fontSize: 16,
51
+ h: 40
52
+ },
53
+ heading: {
54
+ fontSize: 16
52
55
  }
53
56
  },
54
57
  xl: {
55
- item: {
56
- fontSize: 'lg',
57
- h: 56
58
- },
59
58
  icon: {
60
- scale: 2
61
- }
62
- }
63
- }
64
-
65
- const variants = {
66
- default: variantDefault,
67
- ordered: {
68
- container: {
69
- as: 'ol',
70
- listStyleType: 'decimal',
71
- pl: 3
59
+ size: 'xl'
72
60
  },
73
61
  item: {
74
- display: 'list-item',
75
- h: ''
62
+ fontSize: 18,
63
+ h: 48
64
+ },
65
+ heading: {
66
+ fontSize: 18
76
67
  }
77
68
  },
78
- unordered: {
79
- container: {
80
- as: 'ul',
81
- listStyleType: 'disc',
82
- pl: 3
69
+ xxl: {
70
+ icon: {
71
+ size: 'xl'
83
72
  },
84
73
  item: {
85
- display: 'list-item',
86
- h: ''
74
+ fontSize: 18,
75
+ h: 56
76
+ },
77
+ heading: {
78
+ fontSize: 18
87
79
  }
88
80
  }
89
81
  }
90
82
 
83
+ const variants = {}
84
+
91
85
  export default {
92
86
  baseStyle,
93
87
  defaultProps,
package/src/logo/Logo.tsx CHANGED
@@ -9,7 +9,7 @@ import { LogoProps } from './logo.types'
9
9
  const veracityLogo = `${cdnUrl}/common/icons/logos/veracity-logo.svg`
10
10
  const dnvLogo = `${cdnUrl}/common/icons/logos/dnv-logo.svg`
11
11
 
12
- /** Brand logo. By default Veracity logo is used. */
12
+ /** Brand logo. */
13
13
  export const Logo = vui<'div', LogoProps>((props, ref) => {
14
14
  const { brand, children, className, src, url, ...rest } = props
15
15
 
@@ -13,7 +13,7 @@ export const MenuList = vui<'ul', MenuListProps>((props, ref) => {
13
13
  const styles = useStyleConfig('Menu', useMenuContext())
14
14
 
15
15
  return (
16
- <PopoverContent ref={contentRef} {...contentProps}>
16
+ <PopoverContent borderRadius="1px" ref={contentRef} {...contentProps}>
17
17
  <List className={cs('vui-menuList', className)} py={1} ref={ref} w="100%" {...styles.list} {...rest} />
18
18
  </PopoverContent>
19
19
  )
@@ -103,7 +103,9 @@ export const Modal = vui<'div', ModalProps>((props, ref) => {
103
103
  isDisabled={disableTrapFocus}
104
104
  returnFocus={!disableReturnFocus}
105
105
  >
106
- <ModalContent {...contentProps}>{cloneElement(children, childProps)}</ModalContent>
106
+ <ModalContent animation="fadeDown" {...contentProps}>
107
+ {cloneElement(children, childProps)}
108
+ </ModalContent>
107
109
  </FocusLock>
108
110
  </Box>
109
111
  </Portal>
@@ -2,14 +2,16 @@ import React from 'react'
2
2
 
3
3
  import { styled, useStyleConfig, vui } from '../core'
4
4
  import { colors } from '../theme'
5
- import { cs, hexToRGBA } from '../utils'
5
+ import { cs, HSLToRGBA, parseHSL } from '../utils'
6
6
  import { useModalContext } from './context'
7
7
  import { ModalBackdropProps } from './modal.types'
8
8
 
9
+ const { h, s, l } = parseHSL(colors.seaBlue.main)
10
+ const rgba = HSLToRGBA(h, s, l, 0.6)
11
+
9
12
  export const ModalBackdropBase = styled.divBox`
10
- animation: vui-fadeIn 0.3s ease;
11
- background-color: ${hexToRGBA(colors.prussian[80], 0.6)};
12
- inset: 0px;
13
+ background-color: ${rgba};
14
+ inset: 0;
13
15
  position: fixed;
14
16
  z-index: modal;
15
17
  `
@@ -19,7 +21,15 @@ export const ModalBackdrop = vui<'div', ModalBackdropProps>((props, ref) => {
19
21
  const { className, ...rest } = props
20
22
  const styles = useStyleConfig('Modal', useModalContext())
21
23
 
22
- return <ModalBackdropBase className={cs('vui-modalBackdrop', className)} ref={ref} {...styles.backdrop} {...rest} />
24
+ return (
25
+ <ModalBackdropBase
26
+ animation="fadeIn"
27
+ className={cs('vui-modalBackdrop', className)}
28
+ ref={ref}
29
+ {...styles.backdrop}
30
+ {...rest}
31
+ />
32
+ )
23
33
  })
24
34
 
25
35
  export default ModalBackdrop
@@ -1,9 +1,11 @@
1
- import React from 'react'
1
+ import React, { useEffect, useState } from 'react'
2
2
 
3
+ import { Box } from '../box'
4
+ import { Input } from '../input'
3
5
  import { Popover } from '../popover'
4
6
  import { __DEV__ } from '../utils'
5
7
  import { SelectProvider } from './context'
6
- import { SelectProps } from './select.types'
8
+ import { SelectOptionData, SelectProps } from './select.types'
7
9
  import SelectButton from './selectButton'
8
10
  import SelectContent from './selectContent'
9
11
  import SelectGroup from './selectGroup'
@@ -29,6 +31,7 @@ export function Select(props: SelectProps) {
29
31
  placeholder = 'Please select',
30
32
  readOnly,
31
33
  selectButton,
34
+ showOptionsFilter,
32
35
  size,
33
36
  value,
34
37
  variant,
@@ -41,6 +44,9 @@ export function Select(props: SelectProps) {
41
44
  console.error('<Select /> is used with isMultiple but its value is not an array: ', value)
42
45
  }
43
46
 
47
+ const [query, setQuery] = useState<string>('')
48
+ const [filteredOptions, setFilteredOptions] = useState(options)
49
+
44
50
  const context = {
45
51
  disabled,
46
52
  isInvalid,
@@ -53,6 +59,16 @@ export function Select(props: SelectProps) {
53
59
  variant,
54
60
  ...selectProps
55
61
  }
62
+ const onQueryChange = (e: any) => {
63
+ setQuery(e.target.value?.toLowerCase())
64
+ }
65
+
66
+ const filterOptions = (i: SelectOptionData) =>
67
+ !showOptionsFilter || !query?.length ? true : i?.text?.toLowerCase()?.includes(query)
68
+
69
+ useEffect(() => {
70
+ setFilteredOptions(options?.filter(filterOptions))
71
+ }, [query])
56
72
 
57
73
  return (
58
74
  <SelectProvider value={context}>
@@ -60,9 +76,22 @@ export function Select(props: SelectProps) {
60
76
  <>
61
77
  {selectButton ?? <SelectButton />}
62
78
  <SelectContent>
79
+ {showOptionsFilter && (
80
+ <Box mr={2}>
81
+ <Input
82
+ iconLeft="culFilterAlt"
83
+ m={1}
84
+ mt={0}
85
+ onChange={onQueryChange}
86
+ placeholder="Filter…"
87
+ size="sm"
88
+ value={query}
89
+ />
90
+ </Box>
91
+ )}
63
92
  <SelectGroup maxH={maxHeight} tabIndex={1000}>
64
93
  {children ??
65
- options?.map?.(option => <SelectOption key={option.value} title={option.text} {...option} />)}
94
+ filteredOptions?.map?.(option => <SelectOption key={option.value} title={option.text} {...option} />)}
66
95
  </SelectGroup>
67
96
  </SelectContent>
68
97
  </>
@@ -38,6 +38,8 @@ export type SelectProps = ThemingProps<'Select'> &
38
38
  readOnly?: boolean
39
39
  /** Custom select button slot. */
40
40
  selectButton?: ReactNode
41
+ /** Displays a filter input to limit the number of options. */
42
+ showOptionsFilter?: boolean
41
43
  }
42
44
 
43
45
  export type SelectOptionData = {
@@ -45,7 +45,6 @@ export const SelectButton = vui<'button', SelectButtonProps>((props, ref) => {
45
45
  as={LineButton}
46
46
  bg="white"
47
47
  className={cs('vui-selectButton', className)}
48
- colorScheme="prussian"
49
48
  disabled={disabled}
50
49
  focusRing={2}
51
50
  fontWeight="regular"
@@ -1,8 +1,3 @@
1
1
  export const border = '1px solid lightgray'
2
2
 
3
3
  export const expandedWidth = 64
4
-
5
- export const right = {
6
- expanded: 16,
7
- collapsed: 34
8
- }