@refinitiv-ui/elements 5.12.0-alpha.2 → 5.12.2

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 (352) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/README.md +4 -4
  3. package/lib/accordion/index.js +2 -2
  4. package/lib/appstate-bar/index.js +2 -2
  5. package/lib/autosuggest/index.js +6 -6
  6. package/lib/button/index.d.ts +10 -4
  7. package/lib/button/index.js +26 -8
  8. package/lib/button-bar/index.d.ts +49 -0
  9. package/lib/button-bar/index.js +151 -11
  10. package/lib/calendar/constants.js +1 -1
  11. package/lib/calendar/index.d.ts +1 -1
  12. package/lib/calendar/index.js +11 -11
  13. package/lib/calendar/types.d.ts +1 -1
  14. package/lib/calendar/utils.js +1 -1
  15. package/lib/canvas/index.js +2 -2
  16. package/lib/card/index.js +5 -5
  17. package/lib/chart/index.js +4 -4
  18. package/lib/checkbox/index.js +3 -3
  19. package/lib/clock/index.js +6 -6
  20. package/lib/clock/utils/TickManager.js +2 -2
  21. package/lib/collapse/custom-elements.json +4 -2
  22. package/lib/collapse/custom-elements.md +1 -1
  23. package/lib/collapse/index.d.ts +20 -16
  24. package/lib/collapse/index.js +80 -50
  25. package/lib/collapse/themes/halo/dark/index.js +1 -1
  26. package/lib/collapse/themes/halo/light/index.js +1 -1
  27. package/lib/collapse/themes/solar/charcoal/index.js +1 -1
  28. package/lib/collapse/themes/solar/pearl/index.js +1 -1
  29. package/lib/color-dialog/elements/color-palettes.js +1 -1
  30. package/lib/color-dialog/elements/grayscale-palettes.js +2 -2
  31. package/lib/color-dialog/elements/palettes.js +3 -3
  32. package/lib/color-dialog/helpers/value-model.js +1 -1
  33. package/lib/color-dialog/index.d.ts +1 -1
  34. package/lib/color-dialog/index.js +6 -6
  35. package/lib/combo-box/helpers/filter.d.ts +1 -1
  36. package/lib/combo-box/helpers/types.d.ts +1 -1
  37. package/lib/combo-box/index.d.ts +4 -4
  38. package/lib/combo-box/index.js +9 -9
  39. package/lib/counter/index.js +2 -2
  40. package/lib/datetime-picker/index.js +5 -5
  41. package/lib/datetime-picker/utils.js +1 -1
  42. package/lib/dialog/custom-elements.json +11 -0
  43. package/lib/dialog/custom-elements.md +4 -3
  44. package/lib/dialog/index.d.ts +18 -1
  45. package/lib/dialog/index.js +35 -10
  46. package/lib/email-field/index.d.ts +1 -1
  47. package/lib/email-field/index.js +2 -2
  48. package/lib/flag/index.js +3 -3
  49. package/lib/flag/utils/FlagLoader.d.ts +1 -1
  50. package/lib/flag/utils/FlagLoader.js +1 -1
  51. package/lib/header/index.js +2 -2
  52. package/lib/heatmap/helpers/color.d.ts +1 -1
  53. package/lib/heatmap/helpers/color.js +1 -1
  54. package/lib/heatmap/index.js +5 -5
  55. package/lib/icon/index.js +3 -3
  56. package/lib/icon/utils/IconLoader.d.ts +1 -1
  57. package/lib/icon/utils/IconLoader.js +1 -1
  58. package/lib/interactive-chart/helpers/types.d.ts +1 -1
  59. package/lib/interactive-chart/index.js +4 -4
  60. package/lib/item/helpers/types.d.ts +1 -1
  61. package/lib/item/index.js +3 -3
  62. package/lib/label/index.js +4 -4
  63. package/lib/layout/index.js +2 -2
  64. package/lib/led-gauge/index.js +2 -2
  65. package/lib/list/helpers/types.d.ts +1 -1
  66. package/lib/list/index.d.ts +1 -1
  67. package/lib/list/index.js +3 -3
  68. package/lib/list/renderer.d.ts +1 -1
  69. package/lib/loader/index.js +1 -1
  70. package/lib/multi-input/helpers/types.d.ts +1 -1
  71. package/lib/multi-input/index.js +6 -6
  72. package/lib/notification/elements/notification-tray.js +3 -3
  73. package/lib/notification/elements/notification.js +2 -2
  74. package/lib/number-field/index.d.ts +1 -1
  75. package/lib/number-field/index.js +4 -3
  76. package/lib/overlay/elements/overlay-backdrop.js +2 -2
  77. package/lib/overlay/elements/overlay-viewport.js +1 -1
  78. package/lib/overlay/elements/overlay.js +6 -6
  79. package/lib/overlay/managers/focus-manager.js +1 -1
  80. package/lib/overlay/managers/interaction-lock-manager.js +1 -1
  81. package/lib/overlay/managers/viewport-manager.js +1 -1
  82. package/lib/overlay/managers/zindex-manager.js +1 -1
  83. package/lib/overlay-menu/helpers/types.d.ts +1 -1
  84. package/lib/overlay-menu/index.js +6 -6
  85. package/lib/overlay-menu/managers/menu-manager.js +1 -1
  86. package/lib/pagination/index.d.ts +1 -1
  87. package/lib/pagination/index.js +5 -5
  88. package/lib/panel/index.js +2 -2
  89. package/lib/password-field/index.d.ts +2 -2
  90. package/lib/password-field/index.js +3 -3
  91. package/lib/pill/index.js +3 -3
  92. package/lib/progress-bar/index.js +3 -3
  93. package/lib/radio-button/index.d.ts +2 -2
  94. package/lib/radio-button/index.js +6 -6
  95. package/lib/rating/index.js +4 -4
  96. package/lib/search-field/index.d.ts +2 -2
  97. package/lib/search-field/index.js +3 -3
  98. package/lib/select/index.js +6 -6
  99. package/lib/sidebar-layout/index.js +4 -4
  100. package/lib/slider/index.js +14 -4
  101. package/lib/sparkline/index.js +4 -4
  102. package/lib/swing-gauge/index.js +5 -5
  103. package/lib/tab/custom-elements.json +13 -0
  104. package/lib/tab/custom-elements.md +1 -0
  105. package/lib/tab/index.d.ts +32 -14
  106. package/lib/tab/index.js +63 -35
  107. package/lib/tab-bar/custom-elements.json +12 -0
  108. package/lib/tab-bar/custom-elements.md +7 -0
  109. package/lib/tab-bar/index.d.ts +97 -7
  110. package/lib/tab-bar/index.js +250 -40
  111. package/lib/text-field/index.d.ts +1 -1
  112. package/lib/text-field/index.js +4 -4
  113. package/lib/time-picker/index.d.ts +1 -1
  114. package/lib/time-picker/index.js +9 -9
  115. package/lib/toggle/index.js +2 -2
  116. package/lib/tooltip/index.js +4 -4
  117. package/lib/tooltip/managers/tooltip-manager.js +2 -2
  118. package/lib/tornado-chart/elements/tornado-chart.js +2 -2
  119. package/lib/tornado-chart/elements/tornado-item.js +3 -3
  120. package/lib/tree/elements/tree-item.js +2 -2
  121. package/lib/tree/elements/tree.d.ts +1 -1
  122. package/lib/tree/elements/tree.js +2 -2
  123. package/lib/tree/helpers/types.d.ts +1 -1
  124. package/lib/tree/managers/tree-manager.d.ts +1 -1
  125. package/lib/tree-select/index.d.ts +3 -3
  126. package/lib/tree-select/index.js +9 -9
  127. package/lib/version.js +1 -1
  128. package/package.json +292 -23
  129. package/lib/accordion/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  130. package/lib/accordion/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  131. package/lib/accordion/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  132. package/lib/accordion/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  133. package/lib/appstate-bar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  134. package/lib/appstate-bar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  135. package/lib/appstate-bar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  136. package/lib/appstate-bar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  137. package/lib/autosuggest/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  138. package/lib/autosuggest/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  139. package/lib/autosuggest/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  140. package/lib/autosuggest/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  141. package/lib/button/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  142. package/lib/button/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  143. package/lib/button/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  144. package/lib/button/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  145. package/lib/button-bar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  146. package/lib/button-bar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  147. package/lib/button-bar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  148. package/lib/button-bar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  149. package/lib/calendar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  150. package/lib/calendar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  151. package/lib/calendar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  152. package/lib/calendar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  153. package/lib/canvas/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  154. package/lib/canvas/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  155. package/lib/canvas/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  156. package/lib/canvas/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  157. package/lib/card/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  158. package/lib/card/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  159. package/lib/card/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  160. package/lib/card/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  161. package/lib/chart/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  162. package/lib/chart/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  163. package/lib/chart/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  164. package/lib/chart/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  165. package/lib/checkbox/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  166. package/lib/checkbox/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  167. package/lib/checkbox/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  168. package/lib/checkbox/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  169. package/lib/clock/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  170. package/lib/clock/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  171. package/lib/clock/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  172. package/lib/clock/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  173. package/lib/collapse/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  174. package/lib/collapse/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  175. package/lib/collapse/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  176. package/lib/collapse/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  177. package/lib/color-dialog/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  178. package/lib/color-dialog/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  179. package/lib/color-dialog/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  180. package/lib/color-dialog/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  181. package/lib/combo-box/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  182. package/lib/combo-box/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  183. package/lib/combo-box/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  184. package/lib/combo-box/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  185. package/lib/counter/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  186. package/lib/counter/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  187. package/lib/counter/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  188. package/lib/counter/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  189. package/lib/datetime-picker/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  190. package/lib/datetime-picker/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  191. package/lib/datetime-picker/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  192. package/lib/datetime-picker/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  193. package/lib/dialog/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  194. package/lib/dialog/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  195. package/lib/dialog/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  196. package/lib/dialog/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  197. package/lib/email-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  198. package/lib/email-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  199. package/lib/email-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  200. package/lib/email-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  201. package/lib/flag/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  202. package/lib/flag/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  203. package/lib/flag/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  204. package/lib/flag/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  205. package/lib/header/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  206. package/lib/header/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  207. package/lib/header/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  208. package/lib/header/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  209. package/lib/heatmap/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  210. package/lib/heatmap/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  211. package/lib/heatmap/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  212. package/lib/heatmap/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  213. package/lib/icon/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  214. package/lib/icon/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  215. package/lib/icon/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  216. package/lib/icon/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  217. package/lib/interactive-chart/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  218. package/lib/interactive-chart/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  219. package/lib/interactive-chart/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  220. package/lib/interactive-chart/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  221. package/lib/item/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  222. package/lib/item/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  223. package/lib/item/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  224. package/lib/item/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  225. package/lib/label/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  226. package/lib/label/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  227. package/lib/label/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  228. package/lib/label/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  229. package/lib/layout/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  230. package/lib/layout/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  231. package/lib/layout/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  232. package/lib/layout/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  233. package/lib/led-gauge/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  234. package/lib/led-gauge/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  235. package/lib/led-gauge/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  236. package/lib/led-gauge/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  237. package/lib/list/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  238. package/lib/list/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  239. package/lib/list/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  240. package/lib/list/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  241. package/lib/loader/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  242. package/lib/loader/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  243. package/lib/loader/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  244. package/lib/loader/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  245. package/lib/multi-input/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  246. package/lib/multi-input/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  247. package/lib/multi-input/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  248. package/lib/multi-input/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  249. package/lib/notification/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  250. package/lib/notification/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  251. package/lib/notification/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  252. package/lib/notification/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  253. package/lib/number-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  254. package/lib/number-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  255. package/lib/number-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  256. package/lib/number-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  257. package/lib/overlay/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  258. package/lib/overlay/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  259. package/lib/overlay/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  260. package/lib/overlay/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  261. package/lib/overlay-menu/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  262. package/lib/overlay-menu/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  263. package/lib/overlay-menu/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  264. package/lib/overlay-menu/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  265. package/lib/pagination/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -6
  266. package/lib/pagination/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -6
  267. package/lib/pagination/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -6
  268. package/lib/pagination/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -6
  269. package/lib/panel/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  270. package/lib/panel/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  271. package/lib/panel/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  272. package/lib/panel/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  273. package/lib/password-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  274. package/lib/password-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  275. package/lib/password-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  276. package/lib/password-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  277. package/lib/pill/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  278. package/lib/pill/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  279. package/lib/pill/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  280. package/lib/pill/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  281. package/lib/progress-bar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  282. package/lib/progress-bar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  283. package/lib/progress-bar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  284. package/lib/progress-bar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  285. package/lib/radio-button/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  286. package/lib/radio-button/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  287. package/lib/radio-button/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  288. package/lib/radio-button/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  289. package/lib/rating/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  290. package/lib/rating/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  291. package/lib/rating/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  292. package/lib/rating/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  293. package/lib/search-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  294. package/lib/search-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  295. package/lib/search-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  296. package/lib/search-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  297. package/lib/select/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  298. package/lib/select/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  299. package/lib/select/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -5
  300. package/lib/select/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -5
  301. package/lib/sidebar-layout/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  302. package/lib/sidebar-layout/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  303. package/lib/sidebar-layout/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  304. package/lib/sidebar-layout/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  305. package/lib/slider/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  306. package/lib/slider/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  307. package/lib/slider/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  308. package/lib/slider/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  309. package/lib/sparkline/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  310. package/lib/sparkline/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  311. package/lib/sparkline/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  312. package/lib/sparkline/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  313. package/lib/swing-gauge/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  314. package/lib/swing-gauge/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  315. package/lib/swing-gauge/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  316. package/lib/swing-gauge/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  317. package/lib/tab/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  318. package/lib/tab/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  319. package/lib/tab/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  320. package/lib/tab/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  321. package/lib/tab-bar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  322. package/lib/tab-bar/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  323. package/lib/tab-bar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  324. package/lib/tab-bar/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  325. package/lib/text-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  326. package/lib/text-field/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  327. package/lib/text-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  328. package/lib/text-field/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  329. package/lib/time-picker/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  330. package/lib/time-picker/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  331. package/lib/time-picker/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -4
  332. package/lib/time-picker/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -4
  333. package/lib/toggle/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  334. package/lib/toggle/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  335. package/lib/toggle/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -2
  336. package/lib/toggle/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -2
  337. package/lib/tooltip/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  338. package/lib/tooltip/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  339. package/lib/tooltip/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -3
  340. package/lib/tooltip/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -3
  341. package/lib/tornado-chart/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -6
  342. package/lib/tornado-chart/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -6
  343. package/lib/tornado-chart/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -6
  344. package/lib/tornado-chart/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -6
  345. package/lib/tree/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  346. package/lib/tree/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  347. package/lib/tree/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -7
  348. package/lib/tree/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -7
  349. package/lib/tree-select/themes/halo/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -11
  350. package/lib/tree-select/themes/halo/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -11
  351. package/lib/tree-select/themes/solar/node_modules/@refinitiv-ui/elemental-theme/dark/index.js +0 -11
  352. package/lib/tree-select/themes/solar/node_modules/@refinitiv-ui/elemental-theme/light/index.js +0 -11
@@ -3,6 +3,8 @@ import { TemplateResult, CSSResultGroup, PropertyValues, ResponsiveElement, Elem
3
3
  import '../button/index.js';
4
4
  /**
5
5
  * Container for tabs
6
+ *
7
+ * @fires value-changed - Fired when the `value` changes.
6
8
  */
7
9
  export declare class TabBar extends ResponsiveElement {
8
10
  /**
@@ -10,6 +12,7 @@ export declare class TabBar extends ResponsiveElement {
10
12
  * @returns version number
11
13
  */
12
14
  static get version(): string;
15
+ protected readonly defaultRole = "tablist";
13
16
  /**
14
17
  * A `CSSResultGroup` that will be used
15
18
  * to style the host, slotted children
@@ -29,6 +32,18 @@ export declare class TabBar extends ResponsiveElement {
29
32
  * Use to switch from horizontal to vertical layout.
30
33
  */
31
34
  vertical: boolean;
35
+ /**
36
+ * Internal value of tab bar.
37
+ * Controlled by public setter and getter
38
+ */
39
+ private _value;
40
+ /**
41
+ * Value of tab-bar, derived from value of an active tab.
42
+ * @param value Element value
43
+ * @default -
44
+ */
45
+ set value(value: string);
46
+ get value(): string;
32
47
  private content;
33
48
  private leftBtn;
34
49
  private rightBtn;
@@ -55,26 +70,61 @@ export declare class TabBar extends ResponsiveElement {
55
70
  */
56
71
  resizedCallback(size: ElementSize): void;
57
72
  /**
58
- * Hide all scroll buttons
73
+ * Return true if incoming value matches one of the existing tabs
74
+ * @param value Value to check
75
+ * @returns true if incoming value matches one of the existing tabs
76
+ */
77
+ private isValidValue;
78
+ /**
79
+ * When the slot changes, set the level, toggle the scroll button, and set the value
59
80
  * @returns {void}
60
81
  */
61
- private hideScrollButtons;
82
+ private onSlotChange;
62
83
  /**
63
- * Hide/Show scroll button when element is overflow.
64
- * @param elementWidth width of element
84
+ * Mark tab as active
85
+ * @param value value of tab to select
65
86
  * @returns {void}
66
87
  */
67
- private toggleScrollButton;
88
+ private activateTab;
89
+ /**
90
+ * Set tab value and fires `tab-changed` event
91
+ * @param event - Event
92
+ * @returns {void}
93
+ */
94
+ private onTap;
95
+ /**
96
+ * Get the value of a tab
97
+ * @param tab - The tab element.
98
+ * @returns The value of the tab.
99
+ */
100
+ private getTabValue;
101
+ /**
102
+ * Return the tab's label, or its textContent, or an empty string
103
+ * @param tab - The tab element.
104
+ * @returns The tab label.
105
+ */
106
+ private getTabLabel;
107
+ /**
108
+ * Get Tab elements from slot
109
+ * @returns the array of Tab
110
+ */
111
+ private getTabElements;
112
+ /**
113
+ * Get focusable tab elements
114
+ * @returns the array of focusable tab
115
+ */
116
+ private getFocusableTabs;
68
117
  /**
69
118
  * Set tab level attribute accordingly
70
119
  * @returns {void}
71
120
  */
72
121
  private setLevel;
73
122
  /**
74
- * Detects when slot changes
123
+ * Hide/Show scroll button when element is overflow.
124
+ * @param elementWidth width of element
75
125
  * @returns {void}
76
126
  */
77
- private onSlotChange;
127
+ private toggleScrollButton;
78
128
  /**
79
129
  * Update scroll position when clicked on left button
80
130
  * @returns {void}
@@ -85,6 +135,46 @@ export declare class TabBar extends ResponsiveElement {
85
135
  * @returns {void}
86
136
  */
87
137
  private handleScrollRight;
138
+ /**
139
+ * Focus and set active to tab
140
+ * @param tab - The element that was clicked.
141
+ * @return {void}
142
+ */
143
+ private focusAndSetActiveTab;
144
+ /**
145
+ * Navigate to first focusable tab of the tab bar
146
+ * @returns {void}
147
+ */
148
+ private first;
149
+ /**
150
+ * Navigate to last focusable tab of the tab bar
151
+ * @returns {void}
152
+ */
153
+ private last;
154
+ /**
155
+ * Navigate to next or previous focusable tab
156
+ * @param direction up/next; down/previous
157
+ * @returns {void}
158
+ */
159
+ private navigateToSibling;
160
+ /**
161
+ * Handles key down event
162
+ * @param event Key down event object
163
+ * @returns {void}
164
+ */
165
+ private onKeyDown;
166
+ /**
167
+ * Sets the tabindex to -1 for all tabs except the active tab.
168
+ * @param target the tab to be focused
169
+ * @param tabList Array of tabs that contains target
170
+ * @returns {void}
171
+ */
172
+ private rovingTabIndex;
173
+ /**
174
+ * Set tabIndex to all tabs
175
+ * @returns {void}
176
+ */
177
+ private manageTabIndex;
88
178
  /**
89
179
  * A `TemplateResult` that will be used
90
180
  * to render the updated internal template.
@@ -1,18 +1,22 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { html, css, ResponsiveElement } from '@refinitiv-ui/core';
3
- import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
- import { property } from '@refinitiv-ui/core/decorators/property.js';
5
- import { query } from '@refinitiv-ui/core/decorators/query.js';
3
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
5
+ import { query } from '@refinitiv-ui/core/lib/decorators/query.js';
6
6
  import { VERSION } from '../version.js';
7
7
  import { tweenAnimate } from './helpers/animate.js';
8
+ import { Tab } from '../tab/index.js';
8
9
  import '../button/index.js';
9
10
  const BAR_TRAVEL_DISTANCE = 150; // scroll distance
10
11
  /**
11
12
  * Container for tabs
13
+ *
14
+ * @fires value-changed - Fired when the `value` changes.
12
15
  */
13
16
  let TabBar = class TabBar extends ResponsiveElement {
14
17
  constructor() {
15
18
  super(...arguments);
19
+ this.defaultRole = 'tablist';
16
20
  /**
17
21
  * Specify tab's horizontal alignment
18
22
  */
@@ -25,6 +29,11 @@ let TabBar = class TabBar extends ResponsiveElement {
25
29
  * Use to switch from horizontal to vertical layout.
26
30
  */
27
31
  this.vertical = false;
32
+ /**
33
+ * Internal value of tab bar.
34
+ * Controlled by public setter and getter
35
+ */
36
+ this._value = '';
28
37
  }
29
38
  /**
30
39
  * Element version number
@@ -52,6 +61,23 @@ let TabBar = class TabBar extends ResponsiveElement {
52
61
  }
53
62
  `;
54
63
  }
64
+ /**
65
+ * Value of tab-bar, derived from value of an active tab.
66
+ * @param value Element value
67
+ * @default -
68
+ */
69
+ set value(value) {
70
+ value = typeof value === 'string' ? value : String(value);
71
+ const oldValue = this._value;
72
+ if (value !== oldValue && this.isValidValue(value)) {
73
+ this._value = value;
74
+ this.activateTab(value);
75
+ this.requestUpdate('value', oldValue);
76
+ }
77
+ }
78
+ get value() {
79
+ return this._value;
80
+ }
55
81
  /**
56
82
  * Called after the element’s DOM has been updated the first time.
57
83
  * register scroll event on content element to toggle scroll button
@@ -68,6 +94,8 @@ let TabBar = class TabBar extends ResponsiveElement {
68
94
  this.toggleScrollButton(this.content.clientWidth);
69
95
  }, 66); // equal 15 fps for compatibility
70
96
  });
97
+ this.addEventListener('tap', this.onTap);
98
+ this.addEventListener('keydown', this.onKeyDown);
71
99
  }
72
100
  /**
73
101
  * Called when the element’s DOM has been updated and rendered
@@ -75,16 +103,9 @@ let TabBar = class TabBar extends ResponsiveElement {
75
103
  * @returns {void}
76
104
  */
77
105
  updated(changedProperties) {
78
- /* istanbul ignore else */
79
106
  if (changedProperties.has('level')) {
80
107
  this.setLevel();
81
108
  }
82
- if (changedProperties.has('vertical')) {
83
- // if tab bar changed from horizontal to vertical
84
- if (this.vertical) {
85
- this.hideScrollButtons();
86
- }
87
- }
88
109
  super.updated(changedProperties);
89
110
  }
90
111
  /**
@@ -100,54 +121,132 @@ let TabBar = class TabBar extends ResponsiveElement {
100
121
  }
101
122
  }
102
123
  /**
103
- * Hide all scroll buttons
104
- * @returns {void}
124
+ * Return true if incoming value matches one of the existing tabs
125
+ * @param value Value to check
126
+ * @returns true if incoming value matches one of the existing tabs
105
127
  */
106
- hideScrollButtons() {
107
- this.leftBtn.style.setProperty('display', 'none');
108
- this.rightBtn.style.setProperty('display', 'none');
128
+ isValidValue(value) {
129
+ const tabList = this.getFocusableTabs();
130
+ return tabList.some(tab => this.getTabValue(tab) === value);
109
131
  }
110
132
  /**
111
- * Hide/Show scroll button when element is overflow.
112
- * @param elementWidth width of element
133
+ * When the slot changes, set the level, toggle the scroll button, and set the value
113
134
  * @returns {void}
114
135
  */
115
- toggleScrollButton(elementWidth) {
116
- const { scrollLeft, scrollWidth } = this.content;
117
- if (this.vertical) {
136
+ onSlotChange() {
137
+ const tabList = this.getFocusableTabs();
138
+ if (tabList.length < 1) {
118
139
  return;
119
140
  }
120
- // handle left button
121
- if (scrollLeft > 0) {
122
- this.leftBtn.style.setProperty('display', 'flex');
141
+ this.setLevel();
142
+ // get tab value from active tab
143
+ const activeTab = tabList.find(tab => tab.active) || tabList[0];
144
+ if (activeTab) {
145
+ this.value = this.getTabValue(activeTab);
146
+ }
147
+ this.manageTabIndex();
148
+ }
149
+ /**
150
+ * Mark tab as active
151
+ * @param value value of tab to select
152
+ * @returns {void}
153
+ */
154
+ activateTab(value) {
155
+ if (!value) {
156
+ return;
123
157
  }
124
- else {
125
- this.leftBtn.style.setProperty('display', 'none');
158
+ let hasActiveTab = false;
159
+ const tabList = this.getTabElements(); // get all tab elements include disabled tab
160
+ tabList.forEach(tab => {
161
+ const tabValue = this.getTabValue(tab);
162
+ // only mark tab as active once
163
+ if (tabValue === value && !hasActiveTab && !tab.disabled) {
164
+ tab.active = true;
165
+ hasActiveTab = true;
166
+ }
167
+ else {
168
+ tab.active = false;
169
+ }
170
+ });
171
+ }
172
+ /**
173
+ * Set tab value and fires `tab-changed` event
174
+ * @param event - Event
175
+ * @returns {void}
176
+ */
177
+ onTap(event) {
178
+ if (event.defaultPrevented) {
179
+ return;
126
180
  }
127
- // handle right button
128
- if (Math.floor(scrollWidth - scrollLeft) > Math.round(elementWidth)) {
129
- this.rightBtn.style.setProperty('display', 'flex');
181
+ const element = event.target;
182
+ if (element instanceof Tab) {
183
+ const tabValue = this.getTabValue(element);
184
+ if (tabValue !== this.value) {
185
+ this.value = this.getTabValue(element);
186
+ this.notifyPropertyChange('value', tabValue);
187
+ }
130
188
  }
131
- else {
132
- this.rightBtn.style.setProperty('display', 'none');
189
+ }
190
+ /**
191
+ * Get the value of a tab
192
+ * @param tab - The tab element.
193
+ * @returns The value of the tab.
194
+ */
195
+ getTabValue(tab) {
196
+ return tab.value || (tab.hasAttribute('value') ? '' : this.getTabLabel(tab));
197
+ }
198
+ /**
199
+ * Return the tab's label, or its textContent, or an empty string
200
+ * @param tab - The tab element.
201
+ * @returns The tab label.
202
+ */
203
+ getTabLabel(tab) {
204
+ return tab.label || tab.textContent || '';
205
+ }
206
+ /**
207
+ * Get Tab elements from slot
208
+ * @returns the array of Tab
209
+ */
210
+ getTabElements() {
211
+ const tabs = [];
212
+ for (const child of this.children) {
213
+ if (child instanceof Tab) {
214
+ tabs.push(child);
215
+ }
133
216
  }
217
+ return tabs;
218
+ }
219
+ /**
220
+ * Get focusable tab elements
221
+ * @returns the array of focusable tab
222
+ */
223
+ getFocusableTabs() {
224
+ return this.getTabElements().filter(tab => !tab.disabled);
134
225
  }
135
226
  /**
136
227
  * Set tab level attribute accordingly
137
228
  * @returns {void}
138
229
  */
139
230
  setLevel() {
140
- const tabList = this.querySelectorAll('ef-tab');
141
- tabList.forEach((tab) => {
231
+ const tabList = this.getTabElements(); // get all tab elements include disabled tab
232
+ tabList === null || tabList === void 0 ? void 0 : tabList.forEach((tab) => {
142
233
  tab.level = this.level;
143
234
  });
144
235
  }
145
236
  /**
146
- * Detects when slot changes
237
+ * Hide/Show scroll button when element is overflow.
238
+ * @param elementWidth width of element
147
239
  * @returns {void}
148
240
  */
149
- onSlotChange() {
150
- this.setLevel();
241
+ toggleScrollButton(elementWidth) {
242
+ if (this.vertical) {
243
+ return;
244
+ }
245
+ const { scrollLeft, scrollWidth } = this.content;
246
+ const leftBtnStyle = scrollLeft > 0 ? 'flex' : 'none';
247
+ const rightBtnStyle = scrollWidth - scrollLeft - elementWidth > 1 ? 'flex' : 'none';
248
+ this.leftBtn.style.setProperty('display', leftBtnStyle);
249
+ this.rightBtn.style.setProperty('display', rightBtnStyle);
151
250
  }
152
251
  /**
153
252
  * Update scroll position when clicked on left button
@@ -177,6 +276,114 @@ let TabBar = class TabBar extends ResponsiveElement {
177
276
  }
178
277
  tweenAnimate({ target: this.content, startPosition: scrollLeft, endPosition });
179
278
  }
279
+ /**
280
+ * Focus and set active to tab
281
+ * @param tab - The element that was clicked.
282
+ * @return {void}
283
+ */
284
+ focusAndSetActiveTab(tab) {
285
+ tab.focus();
286
+ tab.scrollIntoView({ block: 'nearest' });
287
+ this.value = this.getTabValue(tab);
288
+ }
289
+ /**
290
+ * Navigate to first focusable tab of the tab bar
291
+ * @returns {void}
292
+ */
293
+ first() {
294
+ const tabList = this.getFocusableTabs();
295
+ if (tabList.length <= 0) {
296
+ return;
297
+ }
298
+ this.focusAndSetActiveTab(tabList[0]);
299
+ this.rovingTabIndex(tabList[0], tabList);
300
+ }
301
+ /**
302
+ * Navigate to last focusable tab of the tab bar
303
+ * @returns {void}
304
+ */
305
+ last() {
306
+ const tabList = this.getFocusableTabs();
307
+ if (tabList.length <= 0) {
308
+ return;
309
+ }
310
+ const lastTab = tabList[tabList.length - 1];
311
+ this.focusAndSetActiveTab(lastTab);
312
+ this.rovingTabIndex(lastTab, tabList);
313
+ }
314
+ /**
315
+ * Navigate to next or previous focusable tab
316
+ * @param direction up/next; down/previous
317
+ * @returns {void}
318
+ */
319
+ navigateToSibling(direction) {
320
+ const tabList = this.getFocusableTabs();
321
+ if (tabList.length <= 0) {
322
+ return;
323
+ }
324
+ const focusedTabIndex = tabList.findIndex(tab => tab === document.activeElement);
325
+ const nextTab = direction === 'next'
326
+ ? tabList[focusedTabIndex + 1] || tabList[0]
327
+ : tabList[focusedTabIndex - 1] || tabList[tabList.length - 1];
328
+ this.focusAndSetActiveTab(nextTab);
329
+ this.rovingTabIndex(nextTab, tabList);
330
+ }
331
+ /**
332
+ * Handles key down event
333
+ * @param event Key down event object
334
+ * @returns {void}
335
+ */
336
+ onKeyDown(event) {
337
+ if (event.defaultPrevented) {
338
+ return;
339
+ }
340
+ switch (event.key) {
341
+ case 'Right':
342
+ case 'Down':
343
+ case 'ArrowRight':
344
+ case 'ArrowDown':
345
+ this.navigateToSibling('next');
346
+ break;
347
+ case 'Left':
348
+ case 'Up':
349
+ case 'ArrowLeft':
350
+ case 'ArrowUp':
351
+ this.navigateToSibling('previous');
352
+ break;
353
+ case 'Home':
354
+ this.first();
355
+ break;
356
+ case 'End':
357
+ this.last();
358
+ break;
359
+ default:
360
+ return;
361
+ }
362
+ event.preventDefault();
363
+ }
364
+ /**
365
+ * Sets the tabindex to -1 for all tabs except the active tab.
366
+ * @param target the tab to be focused
367
+ * @param tabList Array of tabs that contains target
368
+ * @returns {void}
369
+ */
370
+ rovingTabIndex(target, tabList) {
371
+ tabList.forEach((tab) => {
372
+ tab.tabIndex = -1;
373
+ });
374
+ target.tabIndex = 0;
375
+ }
376
+ /**
377
+ * Set tabIndex to all tabs
378
+ * @returns {void}
379
+ */
380
+ manageTabIndex() {
381
+ const tabList = this.getFocusableTabs();
382
+ if (tabList && tabList.length > 0) {
383
+ const focusedTabIndex = tabList.findIndex(tab => tab.active);
384
+ this.rovingTabIndex(tabList[focusedTabIndex], tabList);
385
+ }
386
+ }
180
387
  /**
181
388
  * A `TemplateResult` that will be used
182
389
  * to render the updated internal template.
@@ -184,11 +391,11 @@ let TabBar = class TabBar extends ResponsiveElement {
184
391
  */
185
392
  render() {
186
393
  return html `
187
- <ef-button icon="left" part="left-btn" @tap=${this.handleScrollLeft}></ef-button>
188
- <div part="content">
189
- <slot @slotchange=${this.onSlotChange}></slot>
190
- </div>
191
- <ef-button icon="right" part="right-btn" @tap=${this.handleScrollRight}></ef-button>
394
+ ${!this.vertical ? html `<ef-button tabIndex="-1" icon="left" part="left-btn" @tap=${this.handleScrollLeft}></ef-button>` : null}
395
+ <div part="content">
396
+ <slot @slotchange=${this.onSlotChange}></slot>
397
+ </div>
398
+ ${!this.vertical ? html `<ef-button tabIndex="-1" icon="right" part="right-btn" @tap=${this.handleScrollRight}></ef-button>` : null}
192
399
  `;
193
400
  }
194
401
  };
@@ -201,6 +408,9 @@ __decorate([
201
408
  __decorate([
202
409
  property({ type: Boolean, reflect: true })
203
410
  ], TabBar.prototype, "vertical", void 0);
411
+ __decorate([
412
+ property({ type: String, attribute: false })
413
+ ], TabBar.prototype, "value", null);
204
414
  __decorate([
205
415
  query('[part="content"')
206
416
  ], TabBar.prototype, "content", void 0);
@@ -1,6 +1,6 @@
1
1
  import { JSXInterface } from '../jsx';
2
2
  import { FormFieldElement, CSSResultGroup, PropertyValues, TemplateResult } from '@refinitiv-ui/core';
3
- import { TemplateMap } from '@refinitiv-ui/core/directives/template-map.js';
3
+ import { TemplateMap } from '@refinitiv-ui/core/lib/directives/template-map.js';
4
4
  import '../icon/index.js';
5
5
  /**
6
6
  * Form control element for text.
@@ -1,10 +1,10 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { FormFieldElement, css, html } from '@refinitiv-ui/core';
3
- import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
- import { property } from '@refinitiv-ui/core/decorators/property.js';
5
- import { ifDefined } from '@refinitiv-ui/core/directives/if-defined.js';
3
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
5
+ import { ifDefined } from '@refinitiv-ui/core/lib/directives/if-defined.js';
6
6
  import { VERSION } from '../version.js';
7
- import { isIE } from '@refinitiv-ui/utils/browser.js';
7
+ import { isIE } from '@refinitiv-ui/utils/lib/browser.js';
8
8
  import '../icon/index.js';
9
9
  import { registerOverflowTooltip } from '../tooltip/index.js';
10
10
  const hasChanged = (newVal, oldVal) => oldVal === undefined ? false : newVal !== oldVal;
@@ -2,7 +2,7 @@ import { JSXInterface } from '../jsx';
2
2
  import { ControlElement, TemplateResult, CSSResultGroup, PropertyValues } from '@refinitiv-ui/core';
3
3
  import '../number-field/index.js';
4
4
  import { TranslateDirective } from '@refinitiv-ui/translate';
5
- import '@refinitiv-ui/phrasebook/locale/en/time-picker.js';
5
+ import '@refinitiv-ui/phrasebook/lib/locale/en/time-picker.js';
6
6
  declare enum Segment {
7
7
  HOURS = "hours",
8
8
  MINUTES = "minutes",
@@ -1,18 +1,18 @@
1
1
  var TimePicker_1;
2
2
  import { __decorate } from "tslib";
3
3
  import { ControlElement, html, css } from '@refinitiv-ui/core';
4
- import { ifDefined } from '@refinitiv-ui/core/directives/if-defined.js';
5
- import { guard } from '@refinitiv-ui/core/directives/guard.js';
6
- import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
7
- import { property } from '@refinitiv-ui/core/decorators/property.js';
8
- import { state } from '@refinitiv-ui/core/decorators/state.js';
9
- import { query } from '@refinitiv-ui/core/decorators/query.js';
4
+ import { ifDefined } from '@refinitiv-ui/core/lib/directives/if-defined.js';
5
+ import { guard } from '@refinitiv-ui/core/lib/directives/guard.js';
6
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
7
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
8
+ import { state } from '@refinitiv-ui/core/lib/decorators/state.js';
9
+ import { query } from '@refinitiv-ui/core/lib/decorators/query.js';
10
10
  import { VERSION } from '../version.js';
11
- import { isValidTime, toTimeSegment, TimeFormat, getFormat, format, isAM, isPM, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_HOUR, addOffset, padNumber, parse } from '@refinitiv-ui/utils/date.js';
12
- import { isIE } from '@refinitiv-ui/utils/browser.js';
11
+ import { isValidTime, toTimeSegment, TimeFormat, getFormat, format, isAM, isPM, MILLISECONDS_IN_SECOND, MILLISECONDS_IN_MINUTE, MILLISECONDS_IN_HOUR, addOffset, padNumber, parse } from '@refinitiv-ui/utils/lib/date.js';
12
+ import { isIE } from '@refinitiv-ui/utils/lib/browser.js';
13
13
  import '../number-field/index.js';
14
14
  import { translate } from '@refinitiv-ui/translate';
15
- import '@refinitiv-ui/phrasebook/locale/en/time-picker.js';
15
+ import '@refinitiv-ui/phrasebook/lib/locale/en/time-picker.js';
16
16
  var Segment;
17
17
  (function (Segment) {
18
18
  Segment["HOURS"] = "hours";
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ControlElement, html, css } from '@refinitiv-ui/core';
3
- import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
- import { property } from '@refinitiv-ui/core/decorators/property.js';
3
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
5
5
  import { VERSION } from '../version.js';
6
6
  /**
7
7
  * Return the attribute that converted from the property
@@ -1,11 +1,11 @@
1
1
  var Tooltip_1;
2
2
  import { __decorate } from "tslib";
3
3
  import { BasicElement, html, css, matches } from '@refinitiv-ui/core';
4
- import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
5
- import { property } from '@refinitiv-ui/core/decorators/property.js';
6
- import { query } from '@refinitiv-ui/core/decorators/query.js';
4
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
5
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
6
+ import { query } from '@refinitiv-ui/core/lib/decorators/query.js';
7
7
  import { VERSION } from '../version.js';
8
- import { isSlotEmpty } from '@refinitiv-ui/utils/is-slot-empty.js';
8
+ import { isSlotEmpty } from '@refinitiv-ui/utils/lib/is-slot-empty.js';
9
9
  import '../overlay/index.js';
10
10
  import './elements/title-tooltip.js';
11
11
  import { register, deregister } from './managers/tooltip-manager.js';
@@ -1,5 +1,5 @@
1
- import { TimeoutTaskRunner } from '@refinitiv-ui/utils/async.js';
2
- import { isIE } from '@refinitiv-ui/utils/browser.js';
1
+ import { TimeoutTaskRunner } from '@refinitiv-ui/utils/lib/async.js';
2
+ import { isIE } from '@refinitiv-ui/utils/lib/browser.js';
3
3
  /**
4
4
  * Tooltip manager is here to avoid setting multiple
5
5
  * events on document and do expensive pre-processing
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { ResponsiveElement, html, css } from '@refinitiv-ui/core';
3
- import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
- import { property } from '@refinitiv-ui/core/decorators/property.js';
3
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
5
5
  import { VERSION } from '../../version.js';
6
6
  import './tornado-item.js';
7
7
  /**
@@ -1,8 +1,8 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { BasicElement, html, css } from '@refinitiv-ui/core';
3
- import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
- import { property } from '@refinitiv-ui/core/decorators/property.js';
5
- import { ifDefined } from '@refinitiv-ui/core/directives/if-defined.js';
3
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
5
+ import { ifDefined } from '@refinitiv-ui/core/lib/directives/if-defined.js';
6
6
  import { VERSION } from '../../version.js';
7
7
  import '../../progress-bar/index.js';
8
8
  import '../../layout/index.js';
@@ -1,7 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { html, ControlElement } from '@refinitiv-ui/core';
3
- import { customElement } from '@refinitiv-ui/core/decorators/custom-element.js';
4
- import { property } from '@refinitiv-ui/core/decorators/property.js';
3
+ import { customElement } from '@refinitiv-ui/core/lib/decorators/custom-element.js';
4
+ import { property } from '@refinitiv-ui/core/lib/decorators/property.js';
5
5
  import { VERSION } from '../../version.js';
6
6
  import '../../icon/index.js';
7
7
  import { preload } from '../../icon/index.js';