@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,157 @@
1
+ import { __decorate } from "tslib";
2
+ import { css, html, BasicElement } 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 { styleMap } from '@refinitiv-ui/core/lib/directives/style-map.js';
6
+ import { VERSION } from '../version.js';
7
+ /**
8
+ * Data visualisation component,
9
+ * showing a simple percentage bar.
10
+ * @slot label - Overrides the label property and places custom content. Useful for modifying the color, or, adding icons.
11
+ */
12
+ let ProgressBar = class ProgressBar extends BasicElement {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.valuePrevious = '';
16
+ /**
17
+ * The current value of the bar.
18
+ * This can range from `0-100` and
19
+ * will be represented as a percentage bar
20
+ */
21
+ this.value = '100';
22
+ /**
23
+ * The alignment of the bar.
24
+ * The bar can either start from the `left` or `right`.
25
+ */
26
+ this.alignment = 'left';
27
+ /**
28
+ * The current label to be displayed next to the bar.
29
+ * This is affixed to the end of the bar, so make sure to cater for this.
30
+ */
31
+ this.label = '';
32
+ }
33
+ /**
34
+ * Element version number
35
+ * @returns version number
36
+ */
37
+ static get version() {
38
+ return VERSION;
39
+ }
40
+ /**
41
+ * A `CSSResultGroup` that will be used
42
+ * to style the host, slotted children
43
+ * and the internal template of the element.
44
+ * @return CSS template
45
+ */
46
+ static get styles() {
47
+ return css `
48
+ :host {
49
+ height: 10px;
50
+ display: flex;
51
+ position: relative;
52
+ }
53
+ [part~=bar] {
54
+ height: 100%;
55
+ position: relative;
56
+ }
57
+ [part=label] {
58
+ position: absolute;
59
+ top: 50%;
60
+ left: 100%;
61
+ height: 0;
62
+ line-height: 0;
63
+ white-space: nowrap;
64
+ margin-left: 10px;
65
+ }
66
+ :host([alignment=right]) {
67
+ justify-content: flex-end;
68
+ }
69
+ :host([alignment=right]) [part=label] {
70
+ left: auto;
71
+ right: 100%;
72
+ margin-left: 0;
73
+ margin-right: 10px;
74
+ }
75
+ :host [part~=bar-zero] [part=label] {
76
+ margin: 0;
77
+ }
78
+ `;
79
+ }
80
+ /**
81
+ * Converts value from string to number for calculations
82
+ * @returns value of bar as a number
83
+ */
84
+ get valueNumber() {
85
+ const value = parseFloat(this.value);
86
+ if (!this.value || isNaN(value)) { // check value is invalid
87
+ const valuePrevious = parseFloat(this.valuePrevious);
88
+ // if valuePrevious is invalid return default value 100
89
+ return !valuePrevious || isNaN(valuePrevious) ? 100 : valuePrevious;
90
+ }
91
+ return value;
92
+ }
93
+ /**
94
+ * Gets the current part names for the internal bar
95
+ */
96
+ get barParts() {
97
+ return this.barFill ? 'bar' : 'bar bar-zero';
98
+ }
99
+ /**
100
+ * Calculates the bar's percentage width
101
+ */
102
+ get barFill() {
103
+ return Math.min(100, Math.max(0, this.valueNumber));
104
+ }
105
+ /**
106
+ * Returns CSS styles for showing
107
+ * the bar's fill percentage.
108
+ */
109
+ get barStyle() {
110
+ return {
111
+ width: `${this.barFill}%`,
112
+ minWidth: `${this.barFill ? 1 : 0}px`
113
+ };
114
+ }
115
+ /**
116
+ * Called after an update has occurred
117
+ * @param changedProperties changed properties
118
+ * @returns {void}
119
+ */
120
+ updated(changedProperties) {
121
+ changedProperties.forEach((oldValue, propName) => {
122
+ if (propName === 'value') {
123
+ this.valuePrevious = oldValue;
124
+ this.value = this.valueNumber.toString();
125
+ }
126
+ });
127
+ }
128
+ /**
129
+ * A `TemplateResult` that will be used
130
+ * to render the updated internal template.
131
+ * @return Render template
132
+ */
133
+ render() {
134
+ return html `
135
+ <div part="${this.barParts}" style="${styleMap(this.barStyle)}">
136
+ <span part="label">
137
+ <slot name="label">${this.label}</slot>
138
+ </span>
139
+ </div>
140
+ `;
141
+ }
142
+ };
143
+ __decorate([
144
+ property({ type: String })
145
+ ], ProgressBar.prototype, "value", void 0);
146
+ __decorate([
147
+ property({ type: String, reflect: true })
148
+ ], ProgressBar.prototype, "alignment", void 0);
149
+ __decorate([
150
+ property({ type: String })
151
+ ], ProgressBar.prototype, "label", void 0);
152
+ ProgressBar = __decorate([
153
+ customElement('ef-progress-bar', {
154
+ alias: 'sapphire-bar'
155
+ })
156
+ ], ProgressBar);
157
+ export { ProgressBar };
@@ -0,0 +1,2 @@
1
+
2
+ elf.customStyles.define('ef-progress-bar', ':host{color:#6678ff;height:8px}:host [part=bar]{background-color:var(--bar-color,currentColor);transition:width .1s}:host [part=label]{color:#ccc;transition:margin .1s}');
@@ -0,0 +1,2 @@
1
+
2
+ elf.customStyles.define('ef-progress-bar', ':host{color:#334bff;height:8px}:host [part=bar]{background-color:var(--bar-color,currentColor);transition:width .1s}:host [part=label]{color:#0d0d0d;transition:margin .1s}');
@@ -0,0 +1,2 @@
1
+
2
+ elf.customStyles.define('ef-progress-bar', ':host{color:#f93;height:5px}:host [part=bar]{background-color:var(--bar-color,currentColor);transition:width .2s}:host [part=label]{color:#c2c2c2;transition:margin .2s}');
@@ -0,0 +1,2 @@
1
+
2
+ elf.customStyles.define('ef-progress-bar', ':host{color:#ee7600;height:5px}:host [part=bar]{background-color:var(--bar-color,currentColor);transition:width .2s}:host [part=label]{color:#484848;transition:margin .2s}');
@@ -0,0 +1,123 @@
1
+ import { JSXInterface } from '../jsx';
2
+ import { CSSResultGroup, ControlElement, TemplateResult, PropertyValues } from '@refinitiv-ui/core';
3
+ /**
4
+ * Basic radio button
5
+ *
6
+ * @fires checked-changed - Fired when the `checked` property changes.
7
+ *
8
+ * @attr {string} value - Value of the radio button
9
+ * @prop {string} [value=""] - Value of the radio button
10
+ *
11
+ * @attr {string} name - Group multiple radio buttons by assigning the same name
12
+ * @prop {string} [name=""] - Group multiple radio buttons by assigning the same name
13
+ *
14
+ * @attr {boolean} readonly - Set readonly state
15
+ * @prop {boolean} [readonly=false] - Set readonly state
16
+ *
17
+ * @attr {boolean} disabled - Set disabled state
18
+ * @prop {boolean} [disabled=false] - Set disabled state
19
+ */
20
+ export declare class RadioButton extends ControlElement {
21
+ /**
22
+ * Element version number
23
+ * @returns version number
24
+ */
25
+ static get version(): string;
26
+ protected readonly defaultRole: string | null;
27
+ /**
28
+ * A `CSSResultGroup` that will be used
29
+ * to style the host, slotted children
30
+ * and the internal template of the element.
31
+ * @return CSS template
32
+ */
33
+ static get styles(): CSSResultGroup;
34
+ private _checked;
35
+ /**
36
+ * Radio button checked state
37
+ * @param value checked state
38
+ * @default false
39
+ * @returns {void}
40
+ */
41
+ set checked(value: boolean);
42
+ get checked(): boolean;
43
+ /**
44
+ * Aria indicating checked state
45
+ * @ignore
46
+ */
47
+ ariaChecked: string;
48
+ /**
49
+ * Getter for label
50
+ */
51
+ private labelEl;
52
+ /**
53
+ * Called when connected to DOM
54
+ * @returns {void}
55
+ */
56
+ connectedCallback(): void;
57
+ /**
58
+ * Called when disconnected from DOM
59
+ * @returns {void}
60
+ */
61
+ disconnectedCallback(): void;
62
+ /**
63
+ * Invoked whenever the element is updated
64
+ * @param changedProperties changed properties
65
+ * @returns {void}
66
+ */
67
+ protected updated(changedProperties: PropertyValues): void;
68
+ /**
69
+ * Invoked when the element is first updated
70
+ * @param changedProperties changed properties
71
+ * @returns {void}
72
+ */
73
+ protected firstUpdated(changedProperties: PropertyValues): void;
74
+ /**
75
+ * Manage group members state, when either one is being checked
76
+ * @returns {void}
77
+ */
78
+ private manageGroupState;
79
+ /**
80
+ * Run when radio button is tapped
81
+ * @param event Tap event
82
+ * @returns {void}
83
+ */
84
+ private onTap;
85
+ /**
86
+ * Handles key down event
87
+ * @param event Key down event object
88
+ * @returns {void}
89
+ */
90
+ private onKeyDown;
91
+ /**
92
+ * Change checked state and fire
93
+ * checked-changed event
94
+ * @return {void}
95
+ */
96
+ private handleChangeChecked;
97
+ /**
98
+ * Navigate to next or previous checkable sibling in the same group if present
99
+ * @param direction up/next; down/previous
100
+ * @returns {void}
101
+ */
102
+ private navigateToSibling;
103
+ /**
104
+ * A `TemplateResult` that will be used
105
+ * to render the updated internal template.
106
+ * @return Render template
107
+ */
108
+ protected render(): TemplateResult;
109
+ }
110
+
111
+ declare global {
112
+ interface HTMLElementTagNameMap {
113
+ 'ef-radio-button': RadioButton;
114
+ }
115
+
116
+ namespace JSX {
117
+ interface IntrinsicElements {
118
+ 'ef-radio-button': Partial<RadioButton> | JSXInterface.ControlHTMLAttributes<RadioButton>;
119
+ }
120
+ }
121
+ }
122
+
123
+ export {};
@@ -0,0 +1,261 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, css, ControlElement } 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 { registerOverflowTooltip } from '../tooltip/index.js';
8
+ import { applyRegistry, removeFromRegistry, getRadioGroup } from './radio-button-registry.js';
9
+ /**
10
+ * Basic radio button
11
+ *
12
+ * @fires checked-changed - Fired when the `checked` property changes.
13
+ *
14
+ * @attr {string} value - Value of the radio button
15
+ * @prop {string} [value=""] - Value of the radio button
16
+ *
17
+ * @attr {string} name - Group multiple radio buttons by assigning the same name
18
+ * @prop {string} [name=""] - Group multiple radio buttons by assigning the same name
19
+ *
20
+ * @attr {boolean} readonly - Set readonly state
21
+ * @prop {boolean} [readonly=false] - Set readonly state
22
+ *
23
+ * @attr {boolean} disabled - Set disabled state
24
+ * @prop {boolean} [disabled=false] - Set disabled state
25
+ */
26
+ let RadioButton = class RadioButton extends ControlElement {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.defaultRole = 'radio';
30
+ this._checked = false;
31
+ /**
32
+ * Aria indicating checked state
33
+ * @ignore
34
+ */
35
+ this.ariaChecked = String(this.checked);
36
+ }
37
+ /**
38
+ * Element version number
39
+ * @returns version number
40
+ */
41
+ static get version() {
42
+ return VERSION;
43
+ }
44
+ /**
45
+ * A `CSSResultGroup` that will be used
46
+ * to style the host, slotted children
47
+ * and the internal template of the element.
48
+ * @return CSS template
49
+ */
50
+ static get styles() {
51
+ return css `
52
+ :host {
53
+ display: inline-block;
54
+ }
55
+ [part=check] {
56
+ visibility: hidden;
57
+ }
58
+ :host([checked]) [part=check] {
59
+ visibility: inherit;
60
+ }
61
+ [part=label],
62
+ [part=container] {
63
+ display: inline-block;
64
+ white-space: nowrap;
65
+ vertical-align: middle;
66
+ overflow: hidden;
67
+ text-overflow: ellipsis;
68
+ }
69
+ :host(:empty) [part=label], [part=label]:empty {
70
+ display: none;
71
+ }
72
+ `;
73
+ }
74
+ /**
75
+ * Radio button checked state
76
+ * @param value checked state
77
+ * @default false
78
+ * @returns {void}
79
+ */
80
+ set checked(value) {
81
+ const oldValue = this._checked;
82
+ if (oldValue !== value) {
83
+ this._checked = value;
84
+ this.ariaChecked = String(value);
85
+ void this.requestUpdate('checked', oldValue);
86
+ }
87
+ }
88
+ get checked() {
89
+ return this._checked;
90
+ }
91
+ /**
92
+ * Called when connected to DOM
93
+ * @returns {void}
94
+ */
95
+ connectedCallback() {
96
+ super.connectedCallback();
97
+ applyRegistry(this);
98
+ this.manageGroupState();
99
+ }
100
+ /**
101
+ * Called when disconnected from DOM
102
+ * @returns {void}
103
+ */
104
+ disconnectedCallback() {
105
+ removeFromRegistry(this);
106
+ super.disconnectedCallback();
107
+ }
108
+ /**
109
+ * Invoked whenever the element is updated
110
+ * @param changedProperties changed properties
111
+ * @returns {void}
112
+ */
113
+ updated(changedProperties) {
114
+ if (this.isConnected && this.hasUpdated && changedProperties.has('name')) {
115
+ applyRegistry(this, changedProperties.get('name'));
116
+ }
117
+ // Ensure only one radio button is checked
118
+ if (this.isConnected && this.hasUpdated && (changedProperties.has('checked') || (changedProperties.has('name')))) {
119
+ this.manageGroupState();
120
+ }
121
+ super.updated(changedProperties);
122
+ }
123
+ /**
124
+ * Invoked when the element is first updated
125
+ * @param changedProperties changed properties
126
+ * @returns {void}
127
+ */
128
+ firstUpdated(changedProperties) {
129
+ super.firstUpdated(changedProperties);
130
+ this.addEventListener('tap', this.onTap);
131
+ this.addEventListener('keydown', this.onKeyDown);
132
+ registerOverflowTooltip(this.labelEl, () => this.textContent);
133
+ }
134
+ /**
135
+ * Manage group members state, when either one is being checked
136
+ * @returns {void}
137
+ */
138
+ manageGroupState() {
139
+ if (this.checked && this.name) {
140
+ // restore tab index when checked
141
+ this.tabIndex = 0;
142
+ getRadioGroup(this).filter(radio => radio !== this).forEach(radio => {
143
+ // uncheck and hide the rest of the group members from focusability
144
+ radio.checked = false;
145
+ radio.tabIndex = -1;
146
+ });
147
+ }
148
+ }
149
+ /**
150
+ * Run when radio button is tapped
151
+ * @param event Tap event
152
+ * @returns {void}
153
+ */
154
+ onTap(event) {
155
+ if (this.disabled || this.readonly || event.defaultPrevented) {
156
+ return;
157
+ }
158
+ this.handleChangeChecked();
159
+ }
160
+ /**
161
+ * Handles key down event
162
+ * @param event Key down event object
163
+ * @returns {void}
164
+ */
165
+ onKeyDown(event) {
166
+ if (this.disabled || event.defaultPrevented) {
167
+ return;
168
+ }
169
+ switch (event.key) {
170
+ case ' ':
171
+ case 'Spacebar':
172
+ if (this.readonly) {
173
+ return;
174
+ }
175
+ this.handleChangeChecked();
176
+ break;
177
+ case 'Right':
178
+ case 'Down':
179
+ case 'ArrowRight':
180
+ case 'ArrowDown':
181
+ this.navigateToSibling('next');
182
+ break;
183
+ case 'Left':
184
+ case 'Up':
185
+ case 'ArrowLeft':
186
+ case 'ArrowUp':
187
+ this.navigateToSibling('previous');
188
+ break;
189
+ default:
190
+ return;
191
+ }
192
+ event.preventDefault();
193
+ }
194
+ /**
195
+ * Change checked state and fire
196
+ * checked-changed event
197
+ * @return {void}
198
+ */
199
+ handleChangeChecked() {
200
+ // Once checked, radio button cannot be unchecked
201
+ if (!this.checked) {
202
+ this.checked = true;
203
+ this.notifyPropertyChange('checked', this.checked);
204
+ }
205
+ }
206
+ /**
207
+ * Navigate to next or previous checkable sibling in the same group if present
208
+ * @param direction up/next; down/previous
209
+ * @returns {void}
210
+ */
211
+ navigateToSibling(direction) {
212
+ if (!this.name) {
213
+ return;
214
+ }
215
+ const group = getRadioGroup(this).filter(radio => !radio.disabled);
216
+ const index = group.indexOf(this);
217
+ let element;
218
+ if (direction === 'next') {
219
+ element = index === -1 ? group[0] : group[index + 1];
220
+ }
221
+ else {
222
+ element = index === -1 ? group[group.length - 1] : group[index - 1];
223
+ }
224
+ if (!element) {
225
+ element = direction === 'next' ? group[0] : group[group.length - 1];
226
+ }
227
+ if (!element.readonly) {
228
+ this.checked = false;
229
+ element.checked = true;
230
+ }
231
+ element.focus();
232
+ }
233
+ /**
234
+ * A `TemplateResult` that will be used
235
+ * to render the updated internal template.
236
+ * @return Render template
237
+ */
238
+ render() {
239
+ return html `
240
+ <div part="container">
241
+ <div part="check"></div>
242
+ </div>
243
+ <div part="label"><slot></slot></div>
244
+ `;
245
+ }
246
+ };
247
+ __decorate([
248
+ property({ type: Boolean, reflect: true })
249
+ ], RadioButton.prototype, "checked", null);
250
+ __decorate([
251
+ property({ type: String, reflect: true, attribute: 'aria-checked' })
252
+ ], RadioButton.prototype, "ariaChecked", void 0);
253
+ __decorate([
254
+ query('[part=label]', true)
255
+ ], RadioButton.prototype, "labelEl", void 0);
256
+ RadioButton = __decorate([
257
+ customElement('ef-radio-button', {
258
+ alias: 'coral-radio-button'
259
+ })
260
+ ], RadioButton);
261
+ export { RadioButton };
@@ -0,0 +1,22 @@
1
+ import type { RadioButton } from './index';
2
+ /**
3
+ * Remove radio button from registry
4
+ * @param radio Radio button to remove
5
+ * @returns {void}
6
+ */
7
+ declare const removeFromRegistry: (radio: RadioButton) => void;
8
+ /**
9
+ * Add radio button to registry group of radio has a name
10
+ * If radio does not have the name, remove from the group
11
+ * @param radio Radio button to add
12
+ * @param oldGroupName group name of radio button before changed
13
+ * @returns {void}
14
+ */
15
+ declare const applyRegistry: (radio: RadioButton, oldGroupName?: string) => void;
16
+ /**
17
+ * Get the group of same name radio buttons
18
+ * @param radio A radio to get a group for
19
+ * @returns collection of radio buttons
20
+ */
21
+ declare const getRadioGroup: (radio: RadioButton) => RadioButton[];
22
+ export { applyRegistry, removeFromRegistry, getRadioGroup };
@@ -0,0 +1,93 @@
1
+ const registry = [];
2
+ /**
3
+ * Remove radio button from registry
4
+ * @param radio Radio button to remove
5
+ * @returns {void}
6
+ */
7
+ const removeFromRegistry = (radio) => {
8
+ const idx = registry.indexOf(radio);
9
+ if (idx !== -1) {
10
+ registry.splice(idx, 1);
11
+ }
12
+ };
13
+ /**
14
+ * Add radio button to registry group of radio has a name
15
+ * If radio does not have the name, remove from the group
16
+ * @param radio Radio button to add
17
+ * @param oldGroupName group name of radio button before changed
18
+ * @returns {void}
19
+ */
20
+ const applyRegistry = (radio, oldGroupName = '') => {
21
+ const isNewRadioButton = registry.indexOf(radio) === -1;
22
+ if (radio.name && isNewRadioButton) {
23
+ registry.push(radio);
24
+ if (registry.length === 1) {
25
+ return;
26
+ }
27
+ // Set tabIndex to -1 if radio either uncheck or not the first radio button in the group.
28
+ const radioGroup = getRadioGroup(radio);
29
+ if (!radio.checked && radioGroup.length > 1) {
30
+ radio.tabIndex = -1;
31
+ }
32
+ }
33
+ // Removed from the group
34
+ else if (!radio.name && !isNewRadioButton) {
35
+ removeFromRegistry(radio);
36
+ radio.tabIndex = 0; // Restores tabIndex and switch to single mode
37
+ // Re-compute tabIndex for old radio group
38
+ const oldRadioGroup = registry.filter(radio => radio.name === oldGroupName);
39
+ restoreTabIndex(oldRadioGroup);
40
+ }
41
+ // Changes group
42
+ else if (radio.name && !isNewRadioButton) {
43
+ // Re-compute tabIndex for new radio group when name attribute has changed
44
+ const newRadioGroup = getRadioGroup(radio);
45
+ if (radio.checked) {
46
+ radio.tabIndex = 0;
47
+ // uncheck and hide the rest of the group members from focusability
48
+ newRadioGroup.filter((newRadio) => newRadio !== radio).forEach(newRadio => {
49
+ newRadio.checked = false;
50
+ newRadio.tabIndex = -1;
51
+ });
52
+ }
53
+ else {
54
+ radio.tabIndex = -1;
55
+ restoreTabIndex(newRadioGroup);
56
+ }
57
+ // Re-compute tabIndex for old radio group when name attribute has changed.
58
+ const oldRadioGroup = registry.filter(radio => radio.name === oldGroupName);
59
+ restoreTabIndex(oldRadioGroup);
60
+ }
61
+ };
62
+ /**
63
+ * Re-compute tabIndex for the radio group
64
+ * Set tabIndex to 0 for first radio button in the group.
65
+ * Set tabIndex to -1 for the rest of button in group.
66
+ * @param radioGroup collection of radio buttons
67
+ * @returns {void}
68
+ */
69
+ const restoreTabIndex = (radioGroup) => {
70
+ if (!radioGroup.length) {
71
+ return;
72
+ }
73
+ const checkedRadio = radioGroup.filter(radio => radio.checked);
74
+ if (checkedRadio.length) {
75
+ return;
76
+ }
77
+ radioGroup.forEach((radio, index) => {
78
+ radio.tabIndex = index === 0 ? 0 : -1;
79
+ });
80
+ };
81
+ /**
82
+ * Get the group of same name radio buttons
83
+ * @param radio A radio to get a group for
84
+ * @returns collection of radio buttons
85
+ */
86
+ const getRadioGroup = (radio) => {
87
+ if (!registry.includes(radio)) {
88
+ return [];
89
+ }
90
+ const groupName = radio.name;
91
+ return registry.filter(radio => radio.name === groupName);
92
+ };
93
+ export { applyRegistry, removeFromRegistry, getRadioGroup };
@@ -0,0 +1,3 @@
1
+ import '@refinitiv-ui/elements/lib/tooltip/themes/halo/dark';
2
+
3
+ elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation;--check-color:#6678FF;color:#ccc}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#0d0d0d;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.5);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border:1px solid #404040;width:14px;height:14px}:host [part=check]{display:flex;justify-content:center;align-items:center;box-sizing:border-box;color:var(--check-color,#6678ff);border:none;background-color:currentColor;transform:none;border-radius:100%;margin:0;width:8px;height:8px}:host [part=label]{margin:0 7px;cursor:default}:host([disabled]) [part=check],:host([readonly]) [part=check]{color:var(--check-color,#ccc)}:host([disabled]) [part=check]{opacity:.5}:host([disabled][checked]) [part=check]{opacity:.5}:host([disabled]) [part=label]{opacity:.65}@media (-ms-high-contrast:none),(pointer:fine){:host(:focus) [part=container]{border-color:#334bff;box-shadow:0 0 0 #334bff}}:host(:not([readonly])) [part=container]{cursor:pointer}:host(:hover:not([checked]):not([indeterminate]):not([readonly])) [part=container]{border-color:grey}:host(:hover:not([readonly])){color:#fff}:host([disabled]),:host([disabled]) [part=label]{opacity:.5}:host([checked]) [part=container]{border:1px solid #334bff}:host(:focus[readonly]:not([checked])) [part=container]{border-color:#404040}:host([focused=visible]){outline:#334bff solid 1px;outline-offset:2px}');
@@ -0,0 +1,3 @@
1
+ import '@refinitiv-ui/elements/lib/tooltip/themes/halo/light';
2
+
3
+ elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation;--check-color:#334BFF;color:#404040}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#fff;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.25);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border:1px solid #595959;width:14px;height:14px}:host [part=check]{display:flex;justify-content:center;align-items:center;box-sizing:border-box;color:var(--check-color,#334bff);border:none;background-color:currentColor;transform:none;border-radius:100%;margin:0;width:8px;height:8px}:host [part=label]{margin:0 7px;cursor:default}:host([disabled]) [part=check],:host([readonly]) [part=check]{color:var(--check-color,#404040)}:host([disabled]) [part=check]{opacity:.5}:host([disabled][checked]) [part=check]{opacity:.5}:host([disabled]) [part=label]{opacity:.65}@media (-ms-high-contrast:none),(pointer:fine){:host(:focus) [part=container]{border-color:#334bff;box-shadow:0 0 0 #334bff}}:host(:not([readonly])) [part=container]{cursor:pointer}:host(:hover:not([checked]):not([indeterminate]):not([readonly])) [part=container]{border-color:#0d0d0d}:host(:hover:not([readonly])){color:#0d0d0d}:host([disabled]),:host([disabled]) [part=label]{opacity:.5}:host([checked]) [part=container]{border:1px solid #334bff}:host(:focus[readonly]:not([checked])) [part=container]{border-color:#595959}:host([focused=visible]){outline:#334bff solid 1px;outline-offset:2px}');
@@ -0,0 +1,3 @@
1
+ import '@refinitiv-ui/elements/lib/tooltip/themes/solar/charcoal';
2
+
3
+ elf.customStyles.define('ef-radio-button', ':host{margin:1px 0;vertical-align:middle;display:inline-flex;align-items:center;flex-wrap:nowrap;font-size:inherit;font-weight:inherit;touch-action:manipulation}:host(:focus){outline:0}:host [part=container]{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:100%;background-color:#000;transition:box-shadow 150ms,border-color 150ms;box-shadow:inset 0 0 0 rgba(0,0,0,.6);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:relative;border:1px solid #4a4a52;height:11px;width:11px}:host [part=check]{display:flex;justify-content:center;align-items:center;box-sizing:border-box;color:var(--check-color,#f93);border:none;background-color:currentColor;transform:none;border-radius:100%;margin:0;width:7px;height:7px}:host [part=label]{cursor:default;margin:0 4px}:host([disabled]) [part=check],:host([readonly]) [part=check]{color:var(--check-color,#e2e2e2)}:host([disabled]) [part=check]{opacity:.5}:host([disabled][checked]) [part=check]{opacity:.5}:host([disabled]) [part=label]{opacity:.65;opacity:rgba(194,194,194,.6)}:host([checked][disabled]) [part=check]{color:#c2c2c2}:host([checked][readonly]) [part=check]{color:rgba(194,194,194,.5)}:host([disabled]) [part=container],:host([readonly]) [part=container]{color:rgba(194,194,194,.6);border-color:rgba(74,74,82,.6);background-color:rgba(0,0,0,.6)}@media (-ms-high-contrast:none),(pointer:fine){:host(:focus) [part=container]{box-shadow:0 0 0 #f93;border:1px dotted #f93}}');