@refinitiv-ui/elements 5.12.0-alpha.0 → 5.12.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 (513) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/README.md +4 -4
  3. package/lib/accordion/index.d.ts +76 -0
  4. package/lib/accordion/index.js +136 -0
  5. package/lib/accordion/themes/halo/dark/index.js +3 -0
  6. package/lib/accordion/themes/halo/light/index.js +3 -0
  7. package/lib/accordion/themes/solar/charcoal/index.js +3 -0
  8. package/lib/accordion/themes/solar/pearl/index.js +3 -0
  9. package/lib/appstate-bar/index.d.ts +65 -0
  10. package/lib/appstate-bar/index.js +100 -0
  11. package/lib/appstate-bar/themes/halo/dark/index.js +3 -0
  12. package/lib/appstate-bar/themes/halo/light/index.js +3 -0
  13. package/lib/appstate-bar/themes/solar/charcoal/index.js +3 -0
  14. package/lib/appstate-bar/themes/solar/pearl/index.js +3 -0
  15. package/lib/autosuggest/helpers/types.d.ts +54 -0
  16. package/lib/autosuggest/helpers/types.js +1 -0
  17. package/lib/autosuggest/helpers/utils.d.ts +39 -0
  18. package/lib/autosuggest/helpers/utils.js +75 -0
  19. package/lib/autosuggest/index.d.ts +538 -0
  20. package/lib/autosuggest/index.js +1255 -0
  21. package/lib/autosuggest/themes/halo/dark/index.js +5 -0
  22. package/lib/autosuggest/themes/halo/light/index.js +5 -0
  23. package/lib/autosuggest/themes/solar/charcoal/index.js +5 -0
  24. package/lib/autosuggest/themes/solar/pearl/index.js +5 -0
  25. package/lib/button/index.d.ts +138 -0
  26. package/lib/button/index.js +241 -0
  27. package/lib/button/themes/halo/dark/index.js +3 -0
  28. package/lib/button/themes/halo/light/index.js +3 -0
  29. package/lib/button/themes/solar/charcoal/index.js +3 -0
  30. package/lib/button/themes/solar/pearl/index.js +3 -0
  31. package/lib/button-bar/index.d.ts +125 -0
  32. package/lib/button-bar/index.js +295 -0
  33. package/lib/button-bar/themes/halo/dark/index.js +3 -0
  34. package/lib/button-bar/themes/halo/light/index.js +3 -0
  35. package/lib/button-bar/themes/solar/charcoal/index.js +3 -0
  36. package/lib/button-bar/themes/solar/pearl/index.js +3 -0
  37. package/lib/calendar/constants.d.ts +26 -0
  38. package/lib/calendar/constants.js +28 -0
  39. package/lib/calendar/index.d.ts +412 -0
  40. package/lib/calendar/index.js +1274 -0
  41. package/lib/calendar/locales.d.ts +1 -0
  42. package/lib/calendar/locales.js +41 -0
  43. package/lib/calendar/themes/halo/dark/index.js +3 -0
  44. package/lib/calendar/themes/halo/light/index.js +3 -0
  45. package/lib/calendar/themes/solar/charcoal/index.js +3 -0
  46. package/lib/calendar/themes/solar/pearl/index.js +3 -0
  47. package/lib/calendar/types.d.ts +32 -0
  48. package/lib/calendar/types.js +1 -0
  49. package/lib/calendar/utils.d.ts +42 -0
  50. package/lib/calendar/utils.js +120 -0
  51. package/lib/canvas/index.d.ts +101 -0
  52. package/lib/canvas/index.js +173 -0
  53. package/lib/canvas/themes/halo/dark/index.js +2 -0
  54. package/lib/canvas/themes/halo/light/index.js +2 -0
  55. package/lib/canvas/themes/solar/charcoal/index.js +2 -0
  56. package/lib/canvas/themes/solar/pearl/index.js +2 -0
  57. package/lib/card/helpers/types.d.ts +12 -0
  58. package/lib/card/helpers/types.js +1 -0
  59. package/lib/card/index.d.ts +142 -0
  60. package/lib/card/index.js +248 -0
  61. package/lib/card/themes/halo/dark/index.js +5 -0
  62. package/lib/card/themes/halo/light/index.js +5 -0
  63. package/lib/card/themes/solar/charcoal/index.js +5 -0
  64. package/lib/card/themes/solar/pearl/index.js +5 -0
  65. package/lib/chart/helpers/index.d.ts +2 -0
  66. package/lib/chart/helpers/index.js +2 -0
  67. package/lib/chart/helpers/legend.d.ts +5 -0
  68. package/lib/chart/helpers/legend.js +78 -0
  69. package/lib/chart/helpers/merge.d.ts +15 -0
  70. package/lib/chart/helpers/merge.js +28 -0
  71. package/lib/chart/helpers/types.d.ts +69 -0
  72. package/lib/chart/helpers/types.js +1 -0
  73. package/lib/chart/index.d.ts +187 -0
  74. package/lib/chart/index.js +491 -0
  75. package/lib/chart/plugins/doughnut-center-label.d.ts +3 -0
  76. package/lib/chart/plugins/doughnut-center-label.js +196 -0
  77. package/lib/chart/themes/halo/dark/index.js +4 -0
  78. package/lib/chart/themes/halo/light/index.js +4 -0
  79. package/lib/chart/themes/solar/charcoal/index.js +4 -0
  80. package/lib/chart/themes/solar/pearl/index.js +4 -0
  81. package/lib/checkbox/index.d.ts +97 -0
  82. package/lib/checkbox/index.js +194 -0
  83. package/lib/checkbox/themes/halo/dark/index.js +4 -0
  84. package/lib/checkbox/themes/halo/light/index.js +4 -0
  85. package/lib/checkbox/themes/solar/charcoal/index.js +4 -0
  86. package/lib/checkbox/themes/solar/pearl/index.js +4 -0
  87. package/lib/clock/index.d.ts +321 -0
  88. package/lib/clock/index.js +583 -0
  89. package/lib/clock/themes/halo/dark/index.js +2 -0
  90. package/lib/clock/themes/halo/light/index.js +2 -0
  91. package/lib/clock/themes/solar/charcoal/index.js +2 -0
  92. package/lib/clock/themes/solar/pearl/index.js +2 -0
  93. package/lib/clock/utils/TickManager.d.ts +14 -0
  94. package/lib/clock/utils/TickManager.js +66 -0
  95. package/lib/clock/utils/timestamps.d.ts +6 -0
  96. package/lib/clock/utils/timestamps.js +6 -0
  97. package/lib/collapse/custom-elements.json +4 -2
  98. package/lib/collapse/custom-elements.md +1 -1
  99. package/lib/collapse/index.d.ts +123 -0
  100. package/lib/collapse/index.js +227 -0
  101. package/lib/collapse/themes/halo/dark/index.js +5 -0
  102. package/lib/collapse/themes/halo/light/index.js +5 -0
  103. package/lib/collapse/themes/solar/charcoal/index.js +5 -0
  104. package/lib/collapse/themes/solar/pearl/index.js +5 -0
  105. package/lib/color-dialog/elements/color-palettes.d.ts +52 -0
  106. package/lib/color-dialog/elements/color-palettes.js +101 -0
  107. package/lib/color-dialog/elements/grayscale-palettes.d.ts +67 -0
  108. package/lib/color-dialog/elements/grayscale-palettes.js +161 -0
  109. package/lib/color-dialog/elements/palettes.d.ts +65 -0
  110. package/lib/color-dialog/elements/palettes.js +132 -0
  111. package/lib/color-dialog/helpers/color-helpers.d.ts +16 -0
  112. package/lib/color-dialog/helpers/color-helpers.js +161 -0
  113. package/lib/color-dialog/helpers/value-model.d.ts +75 -0
  114. package/lib/color-dialog/helpers/value-model.js +141 -0
  115. package/lib/color-dialog/index.d.ts +232 -0
  116. package/lib/color-dialog/index.js +459 -0
  117. package/lib/color-dialog/themes/halo/dark/index.js +7 -0
  118. package/lib/color-dialog/themes/halo/light/index.js +7 -0
  119. package/lib/color-dialog/themes/solar/charcoal/index.js +7 -0
  120. package/lib/color-dialog/themes/solar/pearl/index.js +7 -0
  121. package/lib/combo-box/helpers/filter.d.ts +10 -0
  122. package/lib/combo-box/helpers/filter.js +29 -0
  123. package/lib/combo-box/helpers/keyboard-event.d.ts +17 -0
  124. package/lib/combo-box/helpers/keyboard-event.js +19 -0
  125. package/lib/combo-box/helpers/renderer.d.ts +8 -0
  126. package/lib/combo-box/helpers/renderer.js +24 -0
  127. package/lib/combo-box/helpers/types.d.ts +11 -0
  128. package/lib/combo-box/helpers/types.js +1 -0
  129. package/lib/combo-box/index.d.ts +551 -0
  130. package/lib/combo-box/index.js +1183 -0
  131. package/lib/combo-box/themes/halo/dark/index.js +7 -0
  132. package/lib/combo-box/themes/halo/light/index.js +7 -0
  133. package/lib/combo-box/themes/solar/charcoal/index.js +7 -0
  134. package/lib/combo-box/themes/solar/pearl/index.js +7 -0
  135. package/lib/counter/index.d.ts +91 -0
  136. package/lib/counter/index.js +154 -0
  137. package/lib/counter/themes/halo/dark/index.js +3 -0
  138. package/lib/counter/themes/halo/light/index.js +3 -0
  139. package/lib/counter/themes/solar/charcoal/index.js +3 -0
  140. package/lib/counter/themes/solar/pearl/index.js +3 -0
  141. package/lib/counter/utils.d.ts +13 -0
  142. package/lib/counter/utils.js +52 -0
  143. package/lib/datetime-picker/index.d.ts +509 -0
  144. package/lib/datetime-picker/index.js +1175 -0
  145. package/lib/datetime-picker/locales.d.ts +8 -0
  146. package/lib/datetime-picker/locales.js +57 -0
  147. package/lib/datetime-picker/themes/halo/dark/index.js +7 -0
  148. package/lib/datetime-picker/themes/halo/light/index.js +7 -0
  149. package/lib/datetime-picker/themes/solar/charcoal/index.js +7 -0
  150. package/lib/datetime-picker/themes/solar/pearl/index.js +7 -0
  151. package/lib/datetime-picker/types.d.ts +3 -0
  152. package/lib/datetime-picker/types.js +1 -0
  153. package/lib/datetime-picker/utils.d.ts +55 -0
  154. package/lib/datetime-picker/utils.js +92 -0
  155. package/lib/dialog/custom-elements.json +11 -0
  156. package/lib/dialog/custom-elements.md +4 -3
  157. package/lib/dialog/draggable-element.d.ts +14 -0
  158. package/lib/dialog/draggable-element.js +221 -0
  159. package/lib/dialog/index.d.ts +213 -0
  160. package/lib/dialog/index.js +353 -0
  161. package/lib/dialog/themes/halo/dark/index.js +7 -0
  162. package/lib/dialog/themes/halo/light/index.js +7 -0
  163. package/lib/dialog/themes/solar/charcoal/index.js +7 -0
  164. package/lib/dialog/themes/solar/pearl/index.js +7 -0
  165. package/lib/email-field/index.d.ts +80 -0
  166. package/lib/email-field/index.js +86 -0
  167. package/lib/email-field/themes/halo/dark/index.js +3 -0
  168. package/lib/email-field/themes/halo/light/index.js +3 -0
  169. package/lib/email-field/themes/solar/charcoal/index.js +3 -0
  170. package/lib/email-field/themes/solar/pearl/index.js +3 -0
  171. package/lib/events.d.ts +121 -0
  172. package/lib/events.js +1 -0
  173. package/lib/flag/index.d.ts +96 -0
  174. package/lib/flag/index.js +168 -0
  175. package/lib/flag/themes/halo/dark/index.js +2 -0
  176. package/lib/flag/themes/halo/light/index.js +2 -0
  177. package/lib/flag/themes/solar/charcoal/index.js +2 -0
  178. package/lib/flag/themes/solar/pearl/index.js +2 -0
  179. package/lib/flag/utils/FlagLoader.d.ts +47 -0
  180. package/lib/flag/utils/FlagLoader.js +86 -0
  181. package/lib/header/index.d.ts +46 -0
  182. package/lib/header/index.js +73 -0
  183. package/lib/header/themes/halo/dark/index.js +2 -0
  184. package/lib/header/themes/halo/light/index.js +2 -0
  185. package/lib/header/themes/solar/charcoal/index.js +2 -0
  186. package/lib/header/themes/solar/pearl/index.js +2 -0
  187. package/lib/heatmap/helpers/color.d.ts +30 -0
  188. package/lib/heatmap/helpers/color.js +68 -0
  189. package/lib/heatmap/helpers/text.d.ts +26 -0
  190. package/lib/heatmap/helpers/text.js +91 -0
  191. package/lib/heatmap/helpers/track.d.ts +102 -0
  192. package/lib/heatmap/helpers/track.js +160 -0
  193. package/lib/heatmap/helpers/types.d.ts +40 -0
  194. package/lib/heatmap/helpers/types.js +1 -0
  195. package/lib/heatmap/index.d.ts +453 -0
  196. package/lib/heatmap/index.js +1103 -0
  197. package/lib/heatmap/themes/halo/dark/index.js +4 -0
  198. package/lib/heatmap/themes/halo/light/index.js +4 -0
  199. package/lib/heatmap/themes/solar/charcoal/index.js +4 -0
  200. package/lib/heatmap/themes/solar/pearl/index.js +4 -0
  201. package/lib/icon/index.d.ts +90 -0
  202. package/lib/icon/index.js +171 -0
  203. package/lib/icon/themes/halo/dark/index.js +2 -0
  204. package/lib/icon/themes/halo/light/index.js +2 -0
  205. package/lib/icon/themes/solar/charcoal/index.js +2 -0
  206. package/lib/icon/themes/solar/pearl/index.js +2 -0
  207. package/lib/icon/utils/IconLoader.d.ts +52 -0
  208. package/lib/icon/utils/IconLoader.js +93 -0
  209. package/lib/index.d.ts +3 -0
  210. package/lib/index.js +3 -0
  211. package/lib/interactive-chart/helpers/merge.d.ts +15 -0
  212. package/lib/interactive-chart/helpers/merge.js +28 -0
  213. package/lib/interactive-chart/helpers/types.d.ts +45 -0
  214. package/lib/interactive-chart/helpers/types.js +6 -0
  215. package/lib/interactive-chart/index.d.ts +383 -0
  216. package/lib/interactive-chart/index.js +1093 -0
  217. package/lib/interactive-chart/themes/halo/dark/index.js +3 -0
  218. package/lib/interactive-chart/themes/halo/light/index.js +3 -0
  219. package/lib/interactive-chart/themes/solar/charcoal/index.js +3 -0
  220. package/lib/interactive-chart/themes/solar/pearl/index.js +3 -0
  221. package/lib/item/helpers/types.d.ts +57 -0
  222. package/lib/item/helpers/types.js +1 -0
  223. package/lib/item/index.d.ts +159 -0
  224. package/lib/item/index.js +272 -0
  225. package/lib/item/themes/halo/dark/index.js +4 -0
  226. package/lib/item/themes/halo/light/index.js +4 -0
  227. package/lib/item/themes/solar/charcoal/index.js +4 -0
  228. package/lib/item/themes/solar/pearl/index.js +4 -0
  229. package/lib/label/index.d.ts +102 -0
  230. package/lib/label/index.js +245 -0
  231. package/lib/label/themes/halo/dark/index.js +3 -0
  232. package/lib/label/themes/halo/light/index.js +3 -0
  233. package/lib/label/themes/solar/charcoal/index.js +3 -0
  234. package/lib/label/themes/solar/pearl/index.js +3 -0
  235. package/lib/layout/index.d.ts +107 -0
  236. package/lib/layout/index.js +212 -0
  237. package/lib/layout/themes/halo/dark/index.js +2 -0
  238. package/lib/layout/themes/halo/light/index.js +2 -0
  239. package/lib/layout/themes/solar/charcoal/index.js +2 -0
  240. package/lib/layout/themes/solar/pearl/index.js +2 -0
  241. package/lib/led-gauge/index.d.ts +144 -0
  242. package/lib/led-gauge/index.js +438 -0
  243. package/lib/led-gauge/themes/halo/dark/index.js +3 -0
  244. package/lib/led-gauge/themes/halo/light/index.js +3 -0
  245. package/lib/led-gauge/themes/solar/charcoal/index.js +3 -0
  246. package/lib/led-gauge/themes/solar/pearl/index.js +3 -0
  247. package/lib/list/extensible-function.d.ts +8 -0
  248. package/lib/list/extensible-function.js +13 -0
  249. package/lib/list/helpers/list-renderer.d.ts +9 -0
  250. package/lib/list/helpers/list-renderer.js +37 -0
  251. package/lib/list/helpers/types.d.ts +3 -0
  252. package/lib/list/helpers/types.js +1 -0
  253. package/lib/list/index.d.ts +313 -0
  254. package/lib/list/index.js +640 -0
  255. package/lib/list/renderer.d.ts +36 -0
  256. package/lib/list/renderer.js +9 -0
  257. package/lib/list/themes/halo/dark/index.js +3 -0
  258. package/lib/list/themes/halo/light/index.js +3 -0
  259. package/lib/list/themes/solar/charcoal/index.js +3 -0
  260. package/lib/list/themes/solar/pearl/index.js +3 -0
  261. package/lib/loader/index.d.ts +41 -0
  262. package/lib/loader/index.js +61 -0
  263. package/lib/loader/themes/halo/dark/index.js +2 -0
  264. package/lib/loader/themes/halo/light/index.js +2 -0
  265. package/lib/loader/themes/solar/charcoal/index.js +2 -0
  266. package/lib/loader/themes/solar/pearl/index.js +2 -0
  267. package/lib/multi-input/helpers/types.d.ts +11 -0
  268. package/lib/multi-input/helpers/types.js +1 -0
  269. package/lib/multi-input/index.d.ts +301 -0
  270. package/lib/multi-input/index.js +594 -0
  271. package/lib/multi-input/themes/halo/dark/index.js +4 -0
  272. package/lib/multi-input/themes/halo/light/index.js +4 -0
  273. package/lib/multi-input/themes/solar/charcoal/index.js +4 -0
  274. package/lib/multi-input/themes/solar/pearl/index.js +4 -0
  275. package/lib/notification/elements/notification-tray.d.ts +97 -0
  276. package/lib/notification/elements/notification-tray.js +167 -0
  277. package/lib/notification/elements/notification.d.ts +90 -0
  278. package/lib/notification/elements/notification.js +154 -0
  279. package/lib/notification/helpers/status.d.ts +30 -0
  280. package/lib/notification/helpers/status.js +130 -0
  281. package/lib/notification/helpers/types.d.ts +10 -0
  282. package/lib/notification/helpers/types.js +1 -0
  283. package/lib/notification/index.d.ts +2 -0
  284. package/lib/notification/index.js +2 -0
  285. package/lib/notification/themes/halo/dark/index.js +5 -0
  286. package/lib/notification/themes/halo/light/index.js +5 -0
  287. package/lib/notification/themes/solar/charcoal/index.js +5 -0
  288. package/lib/notification/themes/solar/pearl/index.js +5 -0
  289. package/lib/number-field/index.d.ts +339 -0
  290. package/lib/number-field/index.js +741 -0
  291. package/lib/number-field/themes/halo/dark/index.js +3 -0
  292. package/lib/number-field/themes/halo/light/index.js +3 -0
  293. package/lib/number-field/themes/solar/charcoal/index.js +3 -0
  294. package/lib/number-field/themes/solar/pearl/index.js +3 -0
  295. package/lib/overlay/elements/overlay-backdrop.d.ts +46 -0
  296. package/lib/overlay/elements/overlay-backdrop.js +64 -0
  297. package/lib/overlay/elements/overlay-viewport.d.ts +40 -0
  298. package/lib/overlay/elements/overlay-viewport.js +52 -0
  299. package/lib/overlay/elements/overlay.d.ts +408 -0
  300. package/lib/overlay/elements/overlay.js +1426 -0
  301. package/lib/overlay/helpers/functions.d.ts +13 -0
  302. package/lib/overlay/helpers/functions.js +16 -0
  303. package/lib/overlay/helpers/types.d.ts +97 -0
  304. package/lib/overlay/helpers/types.js +16 -0
  305. package/lib/overlay/index.d.ts +2 -0
  306. package/lib/overlay/index.js +1 -0
  307. package/lib/overlay/managers/backdrop-manager.d.ts +45 -0
  308. package/lib/overlay/managers/backdrop-manager.js +96 -0
  309. package/lib/overlay/managers/close-manager.d.ts +54 -0
  310. package/lib/overlay/managers/close-manager.js +138 -0
  311. package/lib/overlay/managers/focus-manager.d.ts +71 -0
  312. package/lib/overlay/managers/focus-manager.js +228 -0
  313. package/lib/overlay/managers/interaction-lock-manager.d.ts +138 -0
  314. package/lib/overlay/managers/interaction-lock-manager.js +375 -0
  315. package/lib/overlay/managers/viewport-manager.d.ts +93 -0
  316. package/lib/overlay/managers/viewport-manager.js +211 -0
  317. package/lib/overlay/managers/zindex-manager.d.ts +80 -0
  318. package/lib/overlay/managers/zindex-manager.js +195 -0
  319. package/lib/overlay/themes/halo/dark/index.js +4 -0
  320. package/lib/overlay/themes/halo/light/index.js +4 -0
  321. package/lib/overlay/themes/solar/charcoal/index.js +4 -0
  322. package/lib/overlay/themes/solar/pearl/index.js +4 -0
  323. package/lib/overlay-menu/helpers/types.d.ts +8 -0
  324. package/lib/overlay-menu/helpers/types.js +1 -0
  325. package/lib/overlay-menu/index.d.ts +387 -0
  326. package/lib/overlay-menu/index.js +935 -0
  327. package/lib/overlay-menu/managers/menu-manager.d.ts +98 -0
  328. package/lib/overlay-menu/managers/menu-manager.js +240 -0
  329. package/lib/overlay-menu/themes/halo/dark/index.js +5 -0
  330. package/lib/overlay-menu/themes/halo/light/index.js +5 -0
  331. package/lib/overlay-menu/themes/solar/charcoal/index.js +5 -0
  332. package/lib/overlay-menu/themes/solar/pearl/index.js +5 -0
  333. package/lib/pagination/index.d.ts +275 -0
  334. package/lib/pagination/index.js +552 -0
  335. package/lib/pagination/themes/halo/dark/index.js +6 -0
  336. package/lib/pagination/themes/halo/light/index.js +6 -0
  337. package/lib/pagination/themes/solar/charcoal/index.js +6 -0
  338. package/lib/pagination/themes/solar/pearl/index.js +6 -0
  339. package/lib/panel/index.d.ts +48 -0
  340. package/lib/panel/index.js +74 -0
  341. package/lib/panel/themes/halo/dark/index.js +2 -0
  342. package/lib/panel/themes/halo/light/index.js +2 -0
  343. package/lib/panel/themes/solar/charcoal/index.js +2 -0
  344. package/lib/panel/themes/solar/pearl/index.js +2 -0
  345. package/lib/password-field/index.d.ts +89 -0
  346. package/lib/password-field/index.js +112 -0
  347. package/lib/password-field/themes/halo/dark/index.js +3 -0
  348. package/lib/password-field/themes/halo/light/index.js +3 -0
  349. package/lib/password-field/themes/solar/charcoal/index.js +3 -0
  350. package/lib/password-field/themes/solar/pearl/index.js +3 -0
  351. package/lib/pill/index.d.ts +97 -0
  352. package/lib/pill/index.js +160 -0
  353. package/lib/pill/themes/halo/dark/index.js +3 -0
  354. package/lib/pill/themes/halo/light/index.js +3 -0
  355. package/lib/pill/themes/solar/charcoal/index.js +3 -0
  356. package/lib/pill/themes/solar/pearl/index.js +3 -0
  357. package/lib/progress-bar/index.d.ts +82 -0
  358. package/lib/progress-bar/index.js +157 -0
  359. package/lib/progress-bar/themes/halo/dark/index.js +2 -0
  360. package/lib/progress-bar/themes/halo/light/index.js +2 -0
  361. package/lib/progress-bar/themes/solar/charcoal/index.js +2 -0
  362. package/lib/progress-bar/themes/solar/pearl/index.js +2 -0
  363. package/lib/radio-button/index.d.ts +123 -0
  364. package/lib/radio-button/index.js +261 -0
  365. package/lib/radio-button/radio-button-registry.d.ts +22 -0
  366. package/lib/radio-button/radio-button-registry.js +93 -0
  367. package/lib/radio-button/themes/halo/dark/index.js +3 -0
  368. package/lib/radio-button/themes/halo/light/index.js +3 -0
  369. package/lib/radio-button/themes/solar/charcoal/index.js +3 -0
  370. package/lib/radio-button/themes/solar/pearl/index.js +3 -0
  371. package/lib/rating/index.d.ts +91 -0
  372. package/lib/rating/index.js +157 -0
  373. package/lib/rating/themes/halo/dark/index.js +2 -0
  374. package/lib/rating/themes/halo/light/index.js +2 -0
  375. package/lib/rating/themes/solar/charcoal/index.js +2 -0
  376. package/lib/rating/themes/solar/pearl/index.js +2 -0
  377. package/lib/search-field/index.d.ts +77 -0
  378. package/lib/search-field/index.js +84 -0
  379. package/lib/search-field/themes/halo/dark/index.js +3 -0
  380. package/lib/search-field/themes/halo/light/index.js +3 -0
  381. package/lib/search-field/themes/solar/charcoal/index.js +3 -0
  382. package/lib/search-field/themes/solar/pearl/index.js +3 -0
  383. package/lib/select/helpers/types.d.ts +3 -0
  384. package/lib/select/helpers/types.js +1 -0
  385. package/lib/select/index.d.ts +396 -0
  386. package/lib/select/index.js +981 -0
  387. package/lib/select/themes/halo/dark/index.js +5 -0
  388. package/lib/select/themes/halo/light/index.js +5 -0
  389. package/lib/select/themes/solar/charcoal/index.js +5 -0
  390. package/lib/select/themes/solar/pearl/index.js +5 -0
  391. package/lib/sidebar-layout/index.d.ts +70 -0
  392. package/lib/sidebar-layout/index.js +134 -0
  393. package/lib/sidebar-layout/themes/halo/dark/index.js +3 -0
  394. package/lib/sidebar-layout/themes/halo/light/index.js +3 -0
  395. package/lib/sidebar-layout/themes/solar/charcoal/index.js +3 -0
  396. package/lib/sidebar-layout/themes/solar/pearl/index.js +3 -0
  397. package/lib/slider/index.d.ts +409 -0
  398. package/lib/slider/index.js +1197 -0
  399. package/lib/slider/themes/halo/dark/index.js +3 -0
  400. package/lib/slider/themes/halo/light/index.js +3 -0
  401. package/lib/slider/themes/solar/charcoal/index.js +3 -0
  402. package/lib/slider/themes/solar/pearl/index.js +3 -0
  403. package/lib/sparkline/index.d.ts +109 -0
  404. package/lib/sparkline/index.js +188 -0
  405. package/lib/sparkline/themes/halo/dark/index.js +2 -0
  406. package/lib/sparkline/themes/halo/light/index.js +2 -0
  407. package/lib/sparkline/themes/solar/charcoal/index.js +2 -0
  408. package/lib/sparkline/themes/solar/pearl/index.js +2 -0
  409. package/lib/swing-gauge/const.d.ts +22 -0
  410. package/lib/swing-gauge/const.js +26 -0
  411. package/lib/swing-gauge/helpers.d.ts +8 -0
  412. package/lib/swing-gauge/helpers.js +105 -0
  413. package/lib/swing-gauge/index.d.ts +296 -0
  414. package/lib/swing-gauge/index.js +764 -0
  415. package/lib/swing-gauge/themes/halo/dark/index.js +3 -0
  416. package/lib/swing-gauge/themes/halo/light/index.js +3 -0
  417. package/lib/swing-gauge/themes/solar/charcoal/index.js +3 -0
  418. package/lib/swing-gauge/themes/solar/pearl/index.js +3 -0
  419. package/lib/swing-gauge/types.d.ts +34 -0
  420. package/lib/swing-gauge/types.js +1 -0
  421. package/lib/tab/custom-elements.json +13 -0
  422. package/lib/tab/custom-elements.md +1 -0
  423. package/lib/tab/index.d.ts +136 -0
  424. package/lib/tab/index.js +236 -0
  425. package/lib/tab/themes/halo/dark/index.js +4 -0
  426. package/lib/tab/themes/halo/light/index.js +4 -0
  427. package/lib/tab/themes/solar/charcoal/index.js +4 -0
  428. package/lib/tab/themes/solar/pearl/index.js +4 -0
  429. package/lib/tab-bar/custom-elements.json +12 -0
  430. package/lib/tab-bar/custom-elements.md +7 -0
  431. package/lib/tab-bar/helpers/animate.d.ts +16 -0
  432. package/lib/tab-bar/helpers/animate.js +53 -0
  433. package/lib/tab-bar/index.d.ts +198 -0
  434. package/lib/tab-bar/index.js +428 -0
  435. package/lib/tab-bar/themes/halo/dark/index.js +4 -0
  436. package/lib/tab-bar/themes/halo/light/index.js +4 -0
  437. package/lib/tab-bar/themes/solar/charcoal/index.js +4 -0
  438. package/lib/tab-bar/themes/solar/pearl/index.js +4 -0
  439. package/lib/text-field/index.d.ts +151 -0
  440. package/lib/text-field/index.js +260 -0
  441. package/lib/text-field/themes/halo/dark/index.js +3 -0
  442. package/lib/text-field/themes/halo/light/index.js +3 -0
  443. package/lib/text-field/themes/solar/charcoal/index.js +3 -0
  444. package/lib/text-field/themes/solar/pearl/index.js +3 -0
  445. package/lib/time-picker/index.d.ts +412 -0
  446. package/lib/time-picker/index.js +898 -0
  447. package/lib/time-picker/themes/halo/dark/index.js +4 -0
  448. package/lib/time-picker/themes/halo/light/index.js +4 -0
  449. package/lib/time-picker/themes/solar/charcoal/index.js +4 -0
  450. package/lib/time-picker/themes/solar/pearl/index.js +4 -0
  451. package/lib/toggle/index.d.ts +87 -0
  452. package/lib/toggle/index.js +153 -0
  453. package/lib/toggle/themes/halo/dark/index.js +2 -0
  454. package/lib/toggle/themes/halo/light/index.js +2 -0
  455. package/lib/toggle/themes/solar/charcoal/index.js +2 -0
  456. package/lib/toggle/themes/solar/pearl/index.js +2 -0
  457. package/lib/tooltip/elements/title-tooltip.d.ts +1 -0
  458. package/lib/tooltip/elements/title-tooltip.js +18 -0
  459. package/lib/tooltip/elements/tooltip-element.d.ts +21 -0
  460. package/lib/tooltip/elements/tooltip-element.js +54 -0
  461. package/lib/tooltip/helpers/overflow-tooltip.d.ts +9 -0
  462. package/lib/tooltip/helpers/overflow-tooltip.js +19 -0
  463. package/lib/tooltip/helpers/renderer.d.ts +8 -0
  464. package/lib/tooltip/helpers/renderer.js +11 -0
  465. package/lib/tooltip/helpers/types.d.ts +23 -0
  466. package/lib/tooltip/helpers/types.js +1 -0
  467. package/lib/tooltip/index.d.ts +232 -0
  468. package/lib/tooltip/index.js +477 -0
  469. package/lib/tooltip/managers/tooltip-manager.d.ts +15 -0
  470. package/lib/tooltip/managers/tooltip-manager.js +140 -0
  471. package/lib/tooltip/themes/halo/dark/index.js +3 -0
  472. package/lib/tooltip/themes/halo/light/index.js +3 -0
  473. package/lib/tooltip/themes/solar/charcoal/index.js +3 -0
  474. package/lib/tooltip/themes/solar/pearl/index.js +3 -0
  475. package/lib/tornado-chart/elements/tornado-chart.d.ts +78 -0
  476. package/lib/tornado-chart/elements/tornado-chart.js +122 -0
  477. package/lib/tornado-chart/elements/tornado-item.d.ts +110 -0
  478. package/lib/tornado-chart/elements/tornado-item.js +207 -0
  479. package/lib/tornado-chart/index.d.ts +2 -0
  480. package/lib/tornado-chart/index.js +2 -0
  481. package/lib/tornado-chart/themes/halo/dark/index.js +6 -0
  482. package/lib/tornado-chart/themes/halo/light/index.js +6 -0
  483. package/lib/tornado-chart/themes/solar/charcoal/index.js +6 -0
  484. package/lib/tornado-chart/themes/solar/pearl/index.js +6 -0
  485. package/lib/tree/elements/tree-item.d.ts +129 -0
  486. package/lib/tree/elements/tree-item.js +238 -0
  487. package/lib/tree/elements/tree.d.ts +203 -0
  488. package/lib/tree/elements/tree.js +414 -0
  489. package/lib/tree/helpers/filter.d.ts +8 -0
  490. package/lib/tree/helpers/filter.js +33 -0
  491. package/lib/tree/helpers/renderer.d.ts +5 -0
  492. package/lib/tree/helpers/renderer.js +33 -0
  493. package/lib/tree/helpers/types.d.ts +25 -0
  494. package/lib/tree/helpers/types.js +1 -0
  495. package/lib/tree/index.d.ts +4 -0
  496. package/lib/tree/index.js +3 -0
  497. package/lib/tree/managers/tree-manager.d.ts +248 -0
  498. package/lib/tree/managers/tree-manager.js +395 -0
  499. package/lib/tree/themes/halo/dark/index.js +7 -0
  500. package/lib/tree/themes/halo/light/index.js +7 -0
  501. package/lib/tree/themes/solar/charcoal/index.js +7 -0
  502. package/lib/tree/themes/solar/pearl/index.js +7 -0
  503. package/lib/tree-select/helpers/types.d.ts +4 -0
  504. package/lib/tree-select/helpers/types.js +1 -0
  505. package/lib/tree-select/index.d.ts +404 -0
  506. package/lib/tree-select/index.js +891 -0
  507. package/lib/tree-select/themes/halo/dark/index.js +11 -0
  508. package/lib/tree-select/themes/halo/light/index.js +11 -0
  509. package/lib/tree-select/themes/solar/charcoal/index.js +11 -0
  510. package/lib/tree-select/themes/solar/pearl/index.js +11 -0
  511. package/lib/version.d.ts +1 -0
  512. package/lib/version.js +1 -0
  513. package/package.json +293 -24
@@ -0,0 +1,198 @@
1
+ import { JSXInterface } from '../jsx';
2
+ import { TemplateResult, CSSResultGroup, PropertyValues, ResponsiveElement, ElementSize } from '@refinitiv-ui/core';
3
+ import '../button/index.js';
4
+ /**
5
+ * Container for tabs
6
+ *
7
+ * @fires value-changed - Fired when the `value` changes.
8
+ */
9
+ export declare class TabBar extends ResponsiveElement {
10
+ /**
11
+ * Element version number
12
+ * @returns version number
13
+ */
14
+ static get version(): string;
15
+ protected readonly defaultRole = "tablist";
16
+ /**
17
+ * A `CSSResultGroup` that will be used
18
+ * to style the host, slotted children
19
+ * and the internal template of the element.
20
+ * @returns CSS template
21
+ */
22
+ static get styles(): CSSResultGroup;
23
+ /**
24
+ * Specify tab's horizontal alignment
25
+ */
26
+ alignment: 'left' | 'center' | 'right';
27
+ /**
28
+ * Use level styling from theme
29
+ */
30
+ level: '1' | '2' | '3';
31
+ /**
32
+ * Use to switch from horizontal to vertical layout.
33
+ */
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;
47
+ private content;
48
+ private leftBtn;
49
+ private rightBtn;
50
+ private isScrolling;
51
+ /**
52
+ * Called after the element’s DOM has been updated the first time.
53
+ * register scroll event on content element to toggle scroll button
54
+ * @param changedProperties Properties that has changed
55
+ * @returns {void}
56
+ */
57
+ protected firstUpdated(changedProperties: PropertyValues): void;
58
+ /**
59
+ * Called when the element’s DOM has been updated and rendered
60
+ * @param changedProperties Properties that has changed
61
+ * @returns {void}
62
+ */
63
+ protected updated(changedProperties: PropertyValues): void;
64
+ /**
65
+ * private method but can't override
66
+ * access modifiers in typescript.
67
+ * @ignore
68
+ * @param size element dimensions
69
+ * @returns {void}
70
+ */
71
+ resizedCallback(size: ElementSize): void;
72
+ /**
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
80
+ * @returns {void}
81
+ */
82
+ private onSlotChange;
83
+ /**
84
+ * Mark tab as active
85
+ * @param value value of tab to select
86
+ * @returns {void}
87
+ */
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;
117
+ /**
118
+ * Set tab level attribute accordingly
119
+ * @returns {void}
120
+ */
121
+ private setLevel;
122
+ /**
123
+ * Hide/Show scroll button when element is overflow.
124
+ * @param elementWidth width of element
125
+ * @returns {void}
126
+ */
127
+ private toggleScrollButton;
128
+ /**
129
+ * Update scroll position when clicked on left button
130
+ * @returns {void}
131
+ */
132
+ private handleScrollLeft;
133
+ /**
134
+ * Update scroll position when clicked on right button
135
+ * @returns {void}
136
+ */
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;
178
+ /**
179
+ * A `TemplateResult` that will be used
180
+ * to render the updated internal template.
181
+ * @return Render template
182
+ */
183
+ protected render(): TemplateResult;
184
+ }
185
+
186
+ declare global {
187
+ interface HTMLElementTagNameMap {
188
+ 'ef-tab-bar': TabBar;
189
+ }
190
+
191
+ namespace JSX {
192
+ interface IntrinsicElements {
193
+ 'ef-tab-bar': Partial<TabBar> | JSXInterface.HTMLAttributes<TabBar>;
194
+ }
195
+ }
196
+ }
197
+
198
+ export {};
@@ -0,0 +1,428 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, css, ResponsiveElement } from '@refinitiv-ui/core';
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
+ import { VERSION } from '../version.js';
7
+ import { tweenAnimate } from './helpers/animate.js';
8
+ import { Tab } from '../tab/index.js';
9
+ import '../button/index.js';
10
+ const BAR_TRAVEL_DISTANCE = 150; // scroll distance
11
+ /**
12
+ * Container for tabs
13
+ *
14
+ * @fires value-changed - Fired when the `value` changes.
15
+ */
16
+ let TabBar = class TabBar extends ResponsiveElement {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.defaultRole = 'tablist';
20
+ /**
21
+ * Specify tab's horizontal alignment
22
+ */
23
+ this.alignment = 'left';
24
+ /**
25
+ * Use level styling from theme
26
+ */
27
+ this.level = '1';
28
+ /**
29
+ * Use to switch from horizontal to vertical layout.
30
+ */
31
+ this.vertical = false;
32
+ /**
33
+ * Internal value of tab bar.
34
+ * Controlled by public setter and getter
35
+ */
36
+ this._value = '';
37
+ }
38
+ /**
39
+ * Element version number
40
+ * @returns version number
41
+ */
42
+ static get version() {
43
+ return VERSION;
44
+ }
45
+ /**
46
+ * A `CSSResultGroup` that will be used
47
+ * to style the host, slotted children
48
+ * and the internal template of the element.
49
+ * @returns CSS template
50
+ */
51
+ static get styles() {
52
+ return css `
53
+ :host {
54
+ display: flex;
55
+ }
56
+ :host([alignment=center]) {
57
+ justify-content: center;
58
+ }
59
+ :host([alignment=right]) {
60
+ justify-content: flex-end;
61
+ }
62
+ `;
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
+ }
81
+ /**
82
+ * Called after the element’s DOM has been updated the first time.
83
+ * register scroll event on content element to toggle scroll button
84
+ * @param changedProperties Properties that has changed
85
+ * @returns {void}
86
+ */
87
+ firstUpdated(changedProperties) {
88
+ super.firstUpdated(changedProperties);
89
+ this.content.addEventListener('scroll', () => {
90
+ // Clear our timeout throughout the scroll
91
+ window.clearTimeout(this.isScrolling);
92
+ // Set a timeout to run after scrolling ends
93
+ this.isScrolling = window.setTimeout(() => {
94
+ this.toggleScrollButton(this.content.clientWidth);
95
+ }, 66); // equal 15 fps for compatibility
96
+ });
97
+ this.addEventListener('tap', this.onTap);
98
+ this.addEventListener('keydown', this.onKeyDown);
99
+ }
100
+ /**
101
+ * Called when the element’s DOM has been updated and rendered
102
+ * @param changedProperties Properties that has changed
103
+ * @returns {void}
104
+ */
105
+ updated(changedProperties) {
106
+ if (changedProperties.has('level')) {
107
+ this.setLevel();
108
+ }
109
+ super.updated(changedProperties);
110
+ }
111
+ /**
112
+ * private method but can't override
113
+ * access modifiers in typescript.
114
+ * @ignore
115
+ * @param size element dimensions
116
+ * @returns {void}
117
+ */
118
+ resizedCallback(size) {
119
+ if (!this.vertical) {
120
+ this.toggleScrollButton(size.width);
121
+ }
122
+ }
123
+ /**
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
127
+ */
128
+ isValidValue(value) {
129
+ const tabList = this.getFocusableTabs();
130
+ return tabList.some(tab => this.getTabValue(tab) === value);
131
+ }
132
+ /**
133
+ * When the slot changes, set the level, toggle the scroll button, and set the value
134
+ * @returns {void}
135
+ */
136
+ onSlotChange() {
137
+ const tabList = this.getFocusableTabs();
138
+ if (tabList.length < 1) {
139
+ return;
140
+ }
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;
157
+ }
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;
180
+ }
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
+ }
188
+ }
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
+ }
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);
225
+ }
226
+ /**
227
+ * Set tab level attribute accordingly
228
+ * @returns {void}
229
+ */
230
+ setLevel() {
231
+ const tabList = this.getTabElements(); // get all tab elements include disabled tab
232
+ tabList === null || tabList === void 0 ? void 0 : tabList.forEach((tab) => {
233
+ tab.level = this.level;
234
+ });
235
+ }
236
+ /**
237
+ * Hide/Show scroll button when element is overflow.
238
+ * @param elementWidth width of element
239
+ * @returns {void}
240
+ */
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);
250
+ }
251
+ /**
252
+ * Update scroll position when clicked on left button
253
+ * @returns {void}
254
+ */
255
+ handleScrollLeft() {
256
+ const { scrollLeft } = this.content;
257
+ const availableScrollLeft = scrollLeft;
258
+ let endPosition = scrollLeft - BAR_TRAVEL_DISTANCE;
259
+ // If the space available is less than one half lots of our desired distance, just move to the leftest
260
+ if (availableScrollLeft < BAR_TRAVEL_DISTANCE * 1.5) {
261
+ endPosition = 0;
262
+ }
263
+ tweenAnimate({ target: this.content, startPosition: scrollLeft, endPosition });
264
+ }
265
+ /**
266
+ * Update scroll position when clicked on right button
267
+ * @returns {void}
268
+ */
269
+ handleScrollRight() {
270
+ const { scrollLeft, scrollWidth, clientWidth } = this.content;
271
+ const availableScrollRight = scrollWidth - (scrollLeft + clientWidth);
272
+ let endPosition = scrollLeft + BAR_TRAVEL_DISTANCE;
273
+ // If the space available is less than one half lots of our desired distance, just move the whole amount
274
+ if (availableScrollRight < BAR_TRAVEL_DISTANCE * 1.5) {
275
+ endPosition = scrollLeft + availableScrollRight;
276
+ }
277
+ tweenAnimate({ target: this.content, startPosition: scrollLeft, endPosition });
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
+ }
387
+ /**
388
+ * A `TemplateResult` that will be used
389
+ * to render the updated internal template.
390
+ * @return Render template
391
+ */
392
+ render() {
393
+ return html `
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}
399
+ `;
400
+ }
401
+ };
402
+ __decorate([
403
+ property({ type: String, reflect: true })
404
+ ], TabBar.prototype, "alignment", void 0);
405
+ __decorate([
406
+ property({ type: String, reflect: true })
407
+ ], TabBar.prototype, "level", void 0);
408
+ __decorate([
409
+ property({ type: Boolean, reflect: true })
410
+ ], TabBar.prototype, "vertical", void 0);
411
+ __decorate([
412
+ property({ type: String, attribute: false })
413
+ ], TabBar.prototype, "value", null);
414
+ __decorate([
415
+ query('[part="content"')
416
+ ], TabBar.prototype, "content", void 0);
417
+ __decorate([
418
+ query('[part="left-btn"]')
419
+ ], TabBar.prototype, "leftBtn", void 0);
420
+ __decorate([
421
+ query('[part="right-btn"]')
422
+ ], TabBar.prototype, "rightBtn", void 0);
423
+ TabBar = __decorate([
424
+ customElement('ef-tab-bar', {
425
+ alias: 'coral-tab-bar'
426
+ })
427
+ ], TabBar);
428
+ export { TabBar };
@@ -0,0 +1,4 @@
1
+ import '@refinitiv-ui/elements/lib/tab/themes/halo/dark';
2
+ import '@refinitiv-ui/elements/lib/button/themes/halo/dark';
3
+
4
+ elf.customStyles.define('ef-tab-bar', ':host{position:relative;background-color:#1a1a1a}:host [part=content]{display:flex;overflow:hidden}:host [part=left-btn],:host [part=right-btn]{display:none;position:absolute;height:auto;margin:auto;z-index:2;top:0;bottom:0;background-color:#404040;width:36px;border:none}:host [part=left-btn]:hover,:host [part=right-btn]:hover{background-color:#334bff}:host [part=left-btn]:active,:host [part=right-btn]:active{background-color:#0f1e8a}:host [part=left-btn]:focus:not([focused]),:host [part=left-btn][focused=visible],:host [part=right-btn]:focus:not([focused]),:host [part=right-btn][focused=visible]{background-color:#4158ff}:host [part=left-btn]:focus:not([focused]):not([active]):not(:hover),:host [part=left-btn][focused=visible]:not([active]):not(:hover),:host [part=right-btn]:focus:not([focused]):not([active]):not(:hover),:host [part=right-btn][focused=visible]:not([active]):not(:hover){color:#6678ff;background-color:#404040}:host [part=left-btn]{left:0}:host [part=right-btn]{right:0}:host([vertical]){width:180px;flex-shrink:0}:host([vertical]) [part=content]{flex-direction:column}:host([vertical]) [part=content] ::slotted(ef-tab){justify-content:flex-start;border-bottom:1px solid #404040}:host [part=left-btn]::after,:host [part=right-btn]::after{content:\'\';position:absolute;margin:auto;width:1px;background:#404040;height:70%;top:0;bottom:0}:host([level="1"]) [part=left-btn]::after,:host([level="1"]) [part=right-btn]::after{content:none}:host([level="1"]) [part=left-btn]{border-right:1px solid #0d0d0d}:host([level="1"]) [part=right-btn]{border-left:1px solid #0d0d0d}:host([level="2"]) [part=left-btn]::after,:host([level="3"]) [part=left-btn]::after{right:0}:host([level="2"]) [part=right-btn]::after,:host([level="3"]) [part=right-btn]::after{left:0}:host([level="2"]) [part=left-btn]:not(:active):not(:hover),:host([level="2"]) [part=right-btn]:not(:active):not(:hover){background-color:#262626}:host([level="2"]) [part=left-btn]::after,:host([level="2"]) [part=right-btn]::after{height:70%}:host([level="3"]) [part=left-btn],:host([level="3"]) [part=right-btn]{border-color:transparent}:host([level="3"]) [part=left-btn]:not(:active):not(:hover),:host([level="3"]) [part=right-btn]:not(:active):not(:hover){background-color:#0d0d0d}:host([level="3"]) [part=left-btn]::after,:host([level="3"]) [part=right-btn]::after{height:30%}:host([vertical]) [part=content] ::slotted(ef-tab){border-bottom-color:transparent;border-right:none!important;background:linear-gradient(#1a1a1a,#1a1a1a) left calc(100% + 1px)/2% 1px no-repeat,linear-gradient(#1a1a1a,#1a1a1a) right calc(100% + 1px)/2% 1px no-repeat,linear-gradient(#404040,#404040) center calc(100% + 1px)/100% 1px no-repeat}:host([vertical]) [part=content] ::slotted(ef-tab[active]:not(:active):not(:hover)){background:linear-gradient(#0d0d0d,#0d0d0d) left calc(100% + 1px)/2% 1px no-repeat,linear-gradient(#0d0d0d,#0d0d0d) right calc(100% + 1px)/2% 1px no-repeat,linear-gradient(#404040,#404040) center calc(100% + 1px)/100% 1px no-repeat}:host([vertical]) [part=content] ::slotted(ef-tab:not([active]):not(:active):not(:hover)){background-color:#1a1a1a}:host([vertical]) [part=content] ::slotted(ef-tab:hover){color:#fff;background-color:#334bff}:host([vertical]) [part=content] ::slotted(ef-tab:active){background-color:#0f1e8a}:host([vertical][level="1"]) [part=content] ::slotted(ef-tab[active]:not(:active):not(:hover)),:host([vertical][level="3"]) [part=content] ::slotted(ef-tab[active]:not(:active):not(:hover)){color:#6678ff;background-color:#0d0d0d}');
@@ -0,0 +1,4 @@
1
+ import '@refinitiv-ui/elements/lib/tab/themes/halo/light';
2
+ import '@refinitiv-ui/elements/lib/button/themes/halo/light';
3
+
4
+ elf.customStyles.define('ef-tab-bar', ':host{position:relative;background-color:#f2f2f2}:host [part=content]{display:flex;overflow:hidden}:host [part=left-btn],:host [part=right-btn]{display:none;position:absolute;height:auto;margin:auto;z-index:2;top:0;bottom:0;background-color:#e6e6e6;width:36px;border:none}:host [part=left-btn]:hover,:host [part=right-btn]:hover{background-color:#334bff}:host [part=left-btn]:active,:host [part=right-btn]:active{background-color:#0f1e8a}:host [part=left-btn]:focus:not([focused]),:host [part=left-btn][focused=visible],:host [part=right-btn]:focus:not([focused]),:host [part=right-btn][focused=visible]{background-color:#4158ff}:host [part=left-btn]:focus:not([focused]):not([active]):not(:hover),:host [part=left-btn][focused=visible]:not([active]):not(:hover),:host [part=right-btn]:focus:not([focused]):not([active]):not(:hover),:host [part=right-btn][focused=visible]:not([active]):not(:hover){color:#6678ff;background-color:#e6e6e6}:host [part=left-btn]{left:0}:host [part=right-btn]{right:0}:host([vertical]){width:180px;flex-shrink:0}:host([vertical]) [part=content]{flex-direction:column}:host([vertical]) [part=content] ::slotted(ef-tab){justify-content:flex-start;border-bottom:1px solid #d9d9d9}:host [part=left-btn]::after,:host [part=right-btn]::after{content:\'\';position:absolute;margin:auto;width:1px;background:#d9d9d9;height:70%;top:0;bottom:0}:host([level="1"]) [part=left-btn]::after,:host([level="1"]) [part=right-btn]::after{content:none}:host([level="1"]) [part=left-btn]{border-right:1px solid #fff}:host([level="1"]) [part=right-btn]{border-left:1px solid #fff}:host([level="2"]) [part=left-btn]::after,:host([level="3"]) [part=left-btn]::after{right:0}:host([level="2"]) [part=right-btn]::after,:host([level="3"]) [part=right-btn]::after{left:0}:host([level="2"]) [part=left-btn]:not(:active):not(:hover),:host([level="2"]) [part=right-btn]:not(:active):not(:hover){background-color:#f2f2f2}:host([level="2"]) [part=left-btn]::after,:host([level="2"]) [part=right-btn]::after{height:70%}:host([level="3"]) [part=left-btn],:host([level="3"]) [part=right-btn]{border-color:transparent}:host([level="3"]) [part=left-btn]:not(:active):not(:hover),:host([level="3"]) [part=right-btn]:not(:active):not(:hover){background-color:#fff}:host([level="3"]) [part=left-btn]::after,:host([level="3"]) [part=right-btn]::after{height:30%}:host([vertical]) [part=content] ::slotted(ef-tab){border-bottom-color:transparent;border-right:none!important;background:linear-gradient(#f2f2f2,#f2f2f2) left calc(100% + 1px)/2% 1px no-repeat,linear-gradient(#f2f2f2,#f2f2f2) right calc(100% + 1px)/2% 1px no-repeat,linear-gradient(#d9d9d9,#d9d9d9) center calc(100% + 1px)/100% 1px no-repeat}:host([vertical]) [part=content] ::slotted(ef-tab[active]:not(:active):not(:hover)){background:linear-gradient(#fff,#fff) left calc(100% + 1px)/2% 1px no-repeat,linear-gradient(#fff,#fff) right calc(100% + 1px)/2% 1px no-repeat,linear-gradient(#d9d9d9,#d9d9d9) center calc(100% + 1px)/100% 1px no-repeat}:host([vertical]) [part=content] ::slotted(ef-tab:not([active]):not(:active):not(:hover)){background-color:#f2f2f2}:host([vertical]) [part=content] ::slotted(ef-tab:hover){color:#fff;background-color:#334bff}:host([vertical]) [part=content] ::slotted(ef-tab:active){background-color:#0f1e8a}:host([vertical][level="1"]) [part=content] ::slotted(ef-tab[active]:not(:active):not(:hover)),:host([vertical][level="3"]) [part=content] ::slotted(ef-tab[active]:not(:active):not(:hover)){color:#334bff;background-color:#fff}');
@@ -0,0 +1,4 @@
1
+ import '@refinitiv-ui/elements/lib/tab/themes/solar/charcoal';
2
+ import '@refinitiv-ui/elements/lib/button/themes/solar/charcoal';
3
+
4
+ elf.customStyles.define('ef-tab-bar', ':host{position:relative;background-color:#151516}:host [part=content]{display:flex;overflow:hidden}:host [part=left-btn],:host [part=right-btn]{display:none;position:absolute;height:auto;margin:auto;z-index:2;top:0;bottom:0;background-color:#3c3c42}:host [part=left-btn]:hover,:host [part=right-btn]:hover{background-color:#4a4a4f}:host [part=left-btn]:active,:host [part=right-btn]:active{background-color:#38383d}:host [part=left-btn]:focus:not([focused]),:host [part=left-btn][focused=visible],:host [part=right-btn]:focus:not([focused]),:host [part=right-btn][focused=visible]{background-color:#ffa041}:host [part=left-btn]:focus:not([focused]):not([active]):not(:hover),:host [part=left-btn][focused=visible]:not([active]):not(:hover),:host [part=right-btn]:focus:not([focused]):not([active]):not(:hover),:host [part=right-btn][focused=visible]:not([active]):not(:hover){color:#e2e2e2;background-color:#3c3c42}:host [part=left-btn]{left:0}:host [part=right-btn]{right:0}:host([vertical]){width:180px;flex-shrink:0}:host([vertical]) [part=content]{flex-direction:column}:host([vertical]) [part=content] ::slotted(ef-tab){justify-content:flex-start;border:none;border-bottom:1px solid #000}:host(:not([vertical])) [part=content] ::slotted(ef-tab:first-of-type){border-left:1px solid #000}');
@@ -0,0 +1,4 @@
1
+ import '@refinitiv-ui/elements/lib/tab/themes/solar/pearl';
2
+ import '@refinitiv-ui/elements/lib/button/themes/solar/pearl';
3
+
4
+ elf.customStyles.define('ef-tab-bar', ':host{position:relative;background-color:#c2c2c2}:host [part=content]{display:flex;overflow:hidden}:host [part=left-btn],:host [part=right-btn]{display:none;position:absolute;height:auto;margin:auto;z-index:2;top:0;bottom:0;background-color:#fafbfc}:host [part=left-btn]:hover,:host [part=right-btn]:hover{background-color:#fafbfc}:host [part=left-btn]:active,:host [part=right-btn]:active{background-color:#e8e9ea}:host [part=left-btn]:focus:not([focused]),:host [part=left-btn][focused=visible],:host [part=right-btn]:focus:not([focused]),:host [part=right-btn][focused=visible]{background-color:#ffb771}:host [part=left-btn]:focus:not([focused]):not([active]):not(:hover),:host [part=left-btn][focused=visible]:not([active]):not(:hover),:host [part=right-btn]:focus:not([focused]):not([active]):not(:hover),:host [part=right-btn][focused=visible]:not([active]):not(:hover){color:#1d1d1d;background-color:#fafbfc}:host [part=left-btn]{left:0}:host [part=right-btn]{right:0}:host([vertical]){width:180px;flex-shrink:0}:host([vertical]) [part=content]{flex-direction:column}:host([vertical]) [part=content] ::slotted(ef-tab){justify-content:flex-start;border:none;border-bottom:1px solid #a9afba}:host(:not([vertical])) [part=content] ::slotted(ef-tab:first-of-type){border-left:1px solid #a9afba}');