@aceshooting/lyra-ui 2.1.0 → 2.3.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 (1221) hide show
  1. package/README.md +39 -17
  2. package/custom-elements.json +43158 -20263
  3. package/dist/components/app-rail/app-rail-item.class.d.ts +51 -0
  4. package/dist/components/app-rail/app-rail-item.class.d.ts.map +1 -0
  5. package/dist/components/app-rail/app-rail-item.class.js +128 -0
  6. package/dist/components/app-rail/app-rail-item.class.js.map +1 -0
  7. package/dist/components/app-rail/app-rail-item.d.ts +2 -30
  8. package/dist/components/app-rail/app-rail-item.d.ts.map +1 -0
  9. package/dist/components/app-rail/app-rail-item.js +3 -66
  10. package/dist/components/app-rail/app-rail-item.js.map +1 -0
  11. package/dist/components/app-rail/app-rail-item.styles.d.ts +1 -0
  12. package/dist/components/app-rail/app-rail-item.styles.d.ts.map +1 -0
  13. package/dist/components/app-rail/app-rail-item.styles.js +20 -3
  14. package/dist/components/app-rail/app-rail-item.styles.js.map +1 -0
  15. package/dist/components/app-rail/app-rail.class.d.ts +225 -0
  16. package/dist/components/app-rail/app-rail.class.d.ts.map +1 -0
  17. package/dist/components/app-rail/app-rail.class.js +567 -0
  18. package/dist/components/app-rail/app-rail.class.js.map +1 -0
  19. package/dist/components/app-rail/app-rail.d.ts +3 -168
  20. package/dist/components/app-rail/app-rail.d.ts.map +1 -0
  21. package/dist/components/app-rail/app-rail.js +4 -417
  22. package/dist/components/app-rail/app-rail.js.map +1 -0
  23. package/dist/components/app-rail/app-rail.styles.d.ts +1 -0
  24. package/dist/components/app-rail/app-rail.styles.d.ts.map +1 -0
  25. package/dist/components/app-rail/app-rail.styles.js +45 -10
  26. package/dist/components/app-rail/app-rail.styles.js.map +1 -0
  27. package/dist/components/attachment-chip/attachment-chip.class.d.ts +157 -0
  28. package/dist/components/attachment-chip/attachment-chip.class.d.ts.map +1 -0
  29. package/dist/components/attachment-chip/attachment-chip.class.js +379 -0
  30. package/dist/components/attachment-chip/attachment-chip.class.js.map +1 -0
  31. package/dist/components/attachment-chip/attachment-chip.d.ts +2 -141
  32. package/dist/components/attachment-chip/attachment-chip.d.ts.map +1 -0
  33. package/dist/components/attachment-chip/attachment-chip.js +3 -354
  34. package/dist/components/attachment-chip/attachment-chip.js.map +1 -0
  35. package/dist/components/attachment-chip/attachment-chip.styles.d.ts +1 -0
  36. package/dist/components/attachment-chip/attachment-chip.styles.d.ts.map +1 -0
  37. package/dist/components/attachment-chip/attachment-chip.styles.js +36 -13
  38. package/dist/components/attachment-chip/attachment-chip.styles.js.map +1 -0
  39. package/dist/components/attachment-trigger/attachment-trigger.class.d.ts +109 -0
  40. package/dist/components/attachment-trigger/attachment-trigger.class.d.ts.map +1 -0
  41. package/dist/components/attachment-trigger/attachment-trigger.class.js +278 -0
  42. package/dist/components/attachment-trigger/attachment-trigger.class.js.map +1 -0
  43. package/dist/components/attachment-trigger/attachment-trigger.d.ts +4 -96
  44. package/dist/components/attachment-trigger/attachment-trigger.d.ts.map +1 -0
  45. package/dist/components/attachment-trigger/attachment-trigger.js +5 -268
  46. package/dist/components/attachment-trigger/attachment-trigger.js.map +1 -0
  47. package/dist/components/attachment-trigger/attachment-trigger.styles.d.ts +1 -0
  48. package/dist/components/attachment-trigger/attachment-trigger.styles.d.ts.map +1 -0
  49. package/dist/components/attachment-trigger/attachment-trigger.styles.js +21 -6
  50. package/dist/components/attachment-trigger/attachment-trigger.styles.js.map +1 -0
  51. package/dist/components/avatar/avatar.class.d.ts +43 -0
  52. package/dist/components/avatar/avatar.class.d.ts.map +1 -0
  53. package/dist/components/avatar/avatar.class.js +75 -0
  54. package/dist/components/avatar/avatar.class.js.map +1 -0
  55. package/dist/components/avatar/avatar.d.ts +2 -0
  56. package/dist/components/avatar/avatar.d.ts.map +1 -0
  57. package/dist/components/avatar/avatar.js +5 -0
  58. package/dist/components/avatar/avatar.js.map +1 -0
  59. package/dist/components/avatar/avatar.styles.d.ts +2 -0
  60. package/dist/components/avatar/avatar.styles.d.ts.map +1 -0
  61. package/dist/components/avatar/avatar.styles.js +55 -0
  62. package/dist/components/avatar/avatar.styles.js.map +1 -0
  63. package/dist/components/card/card.class.d.ts +52 -0
  64. package/dist/components/card/card.class.d.ts.map +1 -0
  65. package/dist/components/card/card.class.js +111 -0
  66. package/dist/components/card/card.class.js.map +1 -0
  67. package/dist/components/card/card.d.ts +2 -0
  68. package/dist/components/card/card.d.ts.map +1 -0
  69. package/dist/components/card/card.js +5 -0
  70. package/dist/components/card/card.js.map +1 -0
  71. package/dist/components/card/card.styles.d.ts +2 -0
  72. package/dist/components/card/card.styles.d.ts.map +1 -0
  73. package/dist/components/card/card.styles.js +77 -0
  74. package/dist/components/card/card.styles.js.map +1 -0
  75. package/dist/components/chart/bar-chart.class.d.ts +15 -0
  76. package/dist/components/chart/bar-chart.class.d.ts.map +1 -0
  77. package/dist/components/chart/bar-chart.class.js +10 -0
  78. package/dist/components/chart/bar-chart.class.js.map +1 -0
  79. package/dist/components/chart/bar-chart.d.ts +3 -14
  80. package/dist/components/chart/bar-chart.d.ts.map +1 -0
  81. package/dist/components/chart/bar-chart.js +4 -9
  82. package/dist/components/chart/bar-chart.js.map +1 -0
  83. package/dist/components/chart/box-plot.class.d.ts +78 -0
  84. package/dist/components/chart/box-plot.class.d.ts.map +1 -0
  85. package/dist/components/chart/box-plot.class.js +320 -0
  86. package/dist/components/chart/box-plot.class.js.map +1 -0
  87. package/dist/components/chart/box-plot.d.ts +3 -77
  88. package/dist/components/chart/box-plot.d.ts.map +1 -0
  89. package/dist/components/chart/box-plot.js +4 -319
  90. package/dist/components/chart/box-plot.js.map +1 -0
  91. package/dist/components/chart/box-plot.styles.d.ts +1 -0
  92. package/dist/components/chart/box-plot.styles.d.ts.map +1 -0
  93. package/dist/components/chart/box-plot.styles.js +2 -1
  94. package/dist/components/chart/box-plot.styles.js.map +1 -0
  95. package/dist/components/chart/bubble-chart.class.d.ts +19 -0
  96. package/dist/components/chart/bubble-chart.class.d.ts.map +1 -0
  97. package/dist/components/chart/bubble-chart.class.js +14 -0
  98. package/dist/components/chart/bubble-chart.class.js.map +1 -0
  99. package/dist/components/chart/bubble-chart.d.ts +3 -18
  100. package/dist/components/chart/bubble-chart.d.ts.map +1 -0
  101. package/dist/components/chart/bubble-chart.js +4 -13
  102. package/dist/components/chart/bubble-chart.js.map +1 -0
  103. package/dist/components/chart/chart-loader.d.ts +12 -9
  104. package/dist/components/chart/chart-loader.d.ts.map +1 -0
  105. package/dist/components/chart/chart-loader.js +1 -0
  106. package/dist/components/chart/chart-loader.js.map +1 -0
  107. package/dist/components/chart/chart.class.d.ts +209 -0
  108. package/dist/components/chart/chart.class.d.ts.map +1 -0
  109. package/dist/components/chart/chart.class.js +692 -0
  110. package/dist/components/chart/chart.class.js.map +1 -0
  111. package/dist/components/chart/chart.d.ts +3 -196
  112. package/dist/components/chart/chart.d.ts.map +1 -0
  113. package/dist/components/chart/chart.js +4 -682
  114. package/dist/components/chart/chart.js.map +1 -0
  115. package/dist/components/chart/chart.styles.d.ts +1 -0
  116. package/dist/components/chart/chart.styles.d.ts.map +1 -0
  117. package/dist/components/chart/chart.styles.js +5 -4
  118. package/dist/components/chart/chart.styles.js.map +1 -0
  119. package/dist/components/chart/doughnut-chart.class.d.ts +15 -0
  120. package/dist/components/chart/doughnut-chart.class.d.ts.map +1 -0
  121. package/dist/components/chart/doughnut-chart.class.js +10 -0
  122. package/dist/components/chart/doughnut-chart.class.js.map +1 -0
  123. package/dist/components/chart/doughnut-chart.d.ts +3 -14
  124. package/dist/components/chart/doughnut-chart.d.ts.map +1 -0
  125. package/dist/components/chart/doughnut-chart.js +4 -9
  126. package/dist/components/chart/doughnut-chart.js.map +1 -0
  127. package/dist/components/chart/histogram-bin.d.ts +1 -0
  128. package/dist/components/chart/histogram-bin.d.ts.map +1 -0
  129. package/dist/components/chart/histogram-bin.js +1 -0
  130. package/dist/components/chart/histogram-bin.js.map +1 -0
  131. package/dist/components/chart/histogram.class.d.ts +23 -0
  132. package/dist/components/chart/histogram.class.d.ts.map +1 -0
  133. package/dist/components/chart/histogram.class.js +91 -0
  134. package/dist/components/chart/histogram.class.js.map +1 -0
  135. package/dist/components/chart/histogram.d.ts +3 -22
  136. package/dist/components/chart/histogram.d.ts.map +1 -0
  137. package/dist/components/chart/histogram.js +4 -90
  138. package/dist/components/chart/histogram.js.map +1 -0
  139. package/dist/components/chart/histogram.styles.d.ts +1 -0
  140. package/dist/components/chart/histogram.styles.d.ts.map +1 -0
  141. package/dist/components/chart/histogram.styles.js +1 -0
  142. package/dist/components/chart/histogram.styles.js.map +1 -0
  143. package/dist/components/chart/line-chart.class.d.ts +15 -0
  144. package/dist/components/chart/line-chart.class.d.ts.map +1 -0
  145. package/dist/components/chart/line-chart.class.js +10 -0
  146. package/dist/components/chart/line-chart.class.js.map +1 -0
  147. package/dist/components/chart/line-chart.d.ts +3 -14
  148. package/dist/components/chart/line-chart.d.ts.map +1 -0
  149. package/dist/components/chart/line-chart.js +4 -9
  150. package/dist/components/chart/line-chart.js.map +1 -0
  151. package/dist/components/chart/lite-chart.class.d.ts +244 -0
  152. package/dist/components/chart/lite-chart.class.d.ts.map +1 -0
  153. package/dist/components/chart/lite-chart.class.js +845 -0
  154. package/dist/components/chart/lite-chart.class.js.map +1 -0
  155. package/dist/components/chart/lite-chart.d.ts +2 -214
  156. package/dist/components/chart/lite-chart.d.ts.map +1 -0
  157. package/dist/components/chart/lite-chart.js +3 -737
  158. package/dist/components/chart/lite-chart.js.map +1 -0
  159. package/dist/components/chart/lite-chart.styles.d.ts +1 -0
  160. package/dist/components/chart/lite-chart.styles.d.ts.map +1 -0
  161. package/dist/components/chart/lite-chart.styles.js +23 -10
  162. package/dist/components/chart/lite-chart.styles.js.map +1 -0
  163. package/dist/components/chart/pie-chart.class.d.ts +16 -0
  164. package/dist/components/chart/pie-chart.class.d.ts.map +1 -0
  165. package/dist/components/chart/pie-chart.class.js +11 -0
  166. package/dist/components/chart/pie-chart.class.js.map +1 -0
  167. package/dist/components/chart/pie-chart.d.ts +3 -15
  168. package/dist/components/chart/pie-chart.d.ts.map +1 -0
  169. package/dist/components/chart/pie-chart.js +4 -10
  170. package/dist/components/chart/pie-chart.js.map +1 -0
  171. package/dist/components/chart/polar-area-chart.class.d.ts +15 -0
  172. package/dist/components/chart/polar-area-chart.class.d.ts.map +1 -0
  173. package/dist/components/chart/polar-area-chart.class.js +10 -0
  174. package/dist/components/chart/polar-area-chart.class.js.map +1 -0
  175. package/dist/components/chart/polar-area-chart.d.ts +3 -14
  176. package/dist/components/chart/polar-area-chart.d.ts.map +1 -0
  177. package/dist/components/chart/polar-area-chart.js +4 -9
  178. package/dist/components/chart/polar-area-chart.js.map +1 -0
  179. package/dist/components/chart/radar-chart.class.d.ts +15 -0
  180. package/dist/components/chart/radar-chart.class.d.ts.map +1 -0
  181. package/dist/components/chart/radar-chart.class.js +10 -0
  182. package/dist/components/chart/radar-chart.class.js.map +1 -0
  183. package/dist/components/chart/radar-chart.d.ts +3 -14
  184. package/dist/components/chart/radar-chart.d.ts.map +1 -0
  185. package/dist/components/chart/radar-chart.js +4 -9
  186. package/dist/components/chart/radar-chart.js.map +1 -0
  187. package/dist/components/chart/scatter-chart.class.d.ts +16 -0
  188. package/dist/components/chart/scatter-chart.class.d.ts.map +1 -0
  189. package/dist/components/chart/scatter-chart.class.js +11 -0
  190. package/dist/components/chart/scatter-chart.class.js.map +1 -0
  191. package/dist/components/chart/scatter-chart.d.ts +3 -15
  192. package/dist/components/chart/scatter-chart.d.ts.map +1 -0
  193. package/dist/components/chart/scatter-chart.js +4 -10
  194. package/dist/components/chart/scatter-chart.js.map +1 -0
  195. package/dist/components/chat-composer/chat-composer.class.d.ts +145 -0
  196. package/dist/components/chat-composer/chat-composer.class.d.ts.map +1 -0
  197. package/dist/components/chat-composer/chat-composer.class.js +367 -0
  198. package/dist/components/chat-composer/chat-composer.class.js.map +1 -0
  199. package/dist/components/chat-composer/chat-composer.d.ts +2 -133
  200. package/dist/components/chat-composer/chat-composer.d.ts.map +1 -0
  201. package/dist/components/chat-composer/chat-composer.js +3 -364
  202. package/dist/components/chat-composer/chat-composer.js.map +1 -0
  203. package/dist/components/chat-composer/chat-composer.styles.d.ts +1 -0
  204. package/dist/components/chat-composer/chat-composer.styles.d.ts.map +1 -0
  205. package/dist/components/chat-composer/chat-composer.styles.js +5 -4
  206. package/dist/components/chat-composer/chat-composer.styles.js.map +1 -0
  207. package/dist/components/chat-message/chat-message.class.d.ts +145 -0
  208. package/dist/components/chat-message/chat-message.class.d.ts.map +1 -0
  209. package/dist/components/chat-message/chat-message.class.js +330 -0
  210. package/dist/components/chat-message/chat-message.class.js.map +1 -0
  211. package/dist/components/chat-message/chat-message.d.ts +3 -141
  212. package/dist/components/chat-message/chat-message.d.ts.map +1 -0
  213. package/dist/components/chat-message/chat-message.js +4 -329
  214. package/dist/components/chat-message/chat-message.js.map +1 -0
  215. package/dist/components/chat-message/chat-message.styles.d.ts +1 -0
  216. package/dist/components/chat-message/chat-message.styles.d.ts.map +1 -0
  217. package/dist/components/chat-message/chat-message.styles.js +13 -12
  218. package/dist/components/chat-message/chat-message.styles.js.map +1 -0
  219. package/dist/components/checkbox/checkbox.class.d.ts +123 -0
  220. package/dist/components/checkbox/checkbox.class.d.ts.map +1 -0
  221. package/dist/components/checkbox/checkbox.class.js +352 -0
  222. package/dist/components/checkbox/checkbox.class.js.map +1 -0
  223. package/dist/components/checkbox/checkbox.d.ts +2 -117
  224. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  225. package/dist/components/checkbox/checkbox.js +3 -351
  226. package/dist/components/checkbox/checkbox.js.map +1 -0
  227. package/dist/components/checkbox/checkbox.styles.d.ts +1 -0
  228. package/dist/components/checkbox/checkbox.styles.d.ts.map +1 -0
  229. package/dist/components/checkbox/checkbox.styles.js +5 -4
  230. package/dist/components/checkbox/checkbox.styles.js.map +1 -0
  231. package/dist/components/chip/chip-group.class.d.ts +57 -0
  232. package/dist/components/chip/chip-group.class.d.ts.map +1 -0
  233. package/dist/components/chip/chip-group.class.js +129 -0
  234. package/dist/components/chip/chip-group.class.js.map +1 -0
  235. package/dist/components/chip/chip-group.d.ts +2 -56
  236. package/dist/components/chip/chip-group.d.ts.map +1 -0
  237. package/dist/components/chip/chip-group.js +3 -128
  238. package/dist/components/chip/chip-group.js.map +1 -0
  239. package/dist/components/chip/chip-group.styles.d.ts +1 -0
  240. package/dist/components/chip/chip-group.styles.d.ts.map +1 -0
  241. package/dist/components/chip/chip-group.styles.js +7 -6
  242. package/dist/components/chip/chip-group.styles.js.map +1 -0
  243. package/dist/components/chip/chip.class.d.ts +83 -0
  244. package/dist/components/chip/chip.class.d.ts.map +1 -0
  245. package/dist/components/chip/chip.class.js +158 -0
  246. package/dist/components/chip/chip.class.js.map +1 -0
  247. package/dist/components/chip/chip.d.ts +2 -64
  248. package/dist/components/chip/chip.d.ts.map +1 -0
  249. package/dist/components/chip/chip.js +3 -120
  250. package/dist/components/chip/chip.js.map +1 -0
  251. package/dist/components/chip/chip.styles.d.ts +1 -0
  252. package/dist/components/chip/chip.styles.d.ts.map +1 -0
  253. package/dist/components/chip/chip.styles.js +31 -12
  254. package/dist/components/chip/chip.styles.js.map +1 -0
  255. package/dist/components/citation-badge/citation-badge.class.d.ts +114 -0
  256. package/dist/components/citation-badge/citation-badge.class.d.ts.map +1 -0
  257. package/dist/components/citation-badge/citation-badge.class.js +317 -0
  258. package/dist/components/citation-badge/citation-badge.class.js.map +1 -0
  259. package/dist/components/citation-badge/citation-badge.d.ts +2 -113
  260. package/dist/components/citation-badge/citation-badge.d.ts.map +1 -0
  261. package/dist/components/citation-badge/citation-badge.js +3 -316
  262. package/dist/components/citation-badge/citation-badge.js.map +1 -0
  263. package/dist/components/citation-badge/citation-badge.styles.d.ts +1 -0
  264. package/dist/components/citation-badge/citation-badge.styles.d.ts.map +1 -0
  265. package/dist/components/citation-badge/citation-badge.styles.js +12 -11
  266. package/dist/components/citation-badge/citation-badge.styles.js.map +1 -0
  267. package/dist/components/code-block/code-block-core.class.d.ts +111 -0
  268. package/dist/components/code-block/code-block-core.class.d.ts.map +1 -0
  269. package/dist/components/code-block/code-block-core.class.js +363 -0
  270. package/dist/components/code-block/code-block-core.class.js.map +1 -0
  271. package/dist/components/code-block/code-block-core.d.ts +3 -0
  272. package/dist/components/code-block/code-block-core.d.ts.map +1 -0
  273. package/dist/components/code-block/code-block-core.js +6 -0
  274. package/dist/components/code-block/code-block-core.js.map +1 -0
  275. package/dist/components/code-block/code-block.class.d.ts +141 -0
  276. package/dist/components/code-block/code-block.class.d.ts.map +1 -0
  277. package/dist/components/code-block/code-block.class.js +398 -0
  278. package/dist/components/code-block/code-block.class.js.map +1 -0
  279. package/dist/components/code-block/code-block.d.ts +3 -127
  280. package/dist/components/code-block/code-block.d.ts.map +1 -0
  281. package/dist/components/code-block/code-block.js +4 -380
  282. package/dist/components/code-block/code-block.js.map +1 -0
  283. package/dist/components/code-block/code-block.styles.d.ts +1 -0
  284. package/dist/components/code-block/code-block.styles.d.ts.map +1 -0
  285. package/dist/components/code-block/code-block.styles.js +25 -21
  286. package/dist/components/code-block/code-block.styles.js.map +1 -0
  287. package/dist/components/code-block/code-loader.d.ts +8 -7
  288. package/dist/components/code-block/code-loader.d.ts.map +1 -0
  289. package/dist/components/code-block/code-loader.js +1 -0
  290. package/dist/components/code-block/code-loader.js.map +1 -0
  291. package/dist/components/combobox/combobox.class.d.ts +205 -0
  292. package/dist/components/combobox/combobox.class.d.ts.map +1 -0
  293. package/dist/components/combobox/combobox.class.js +892 -0
  294. package/dist/components/combobox/combobox.class.js.map +1 -0
  295. package/dist/components/combobox/combobox.d.ts +3 -199
  296. package/dist/components/combobox/combobox.d.ts.map +1 -0
  297. package/dist/components/combobox/combobox.js +4 -891
  298. package/dist/components/combobox/combobox.js.map +1 -0
  299. package/dist/components/combobox/combobox.styles.d.ts +1 -0
  300. package/dist/components/combobox/combobox.styles.d.ts.map +1 -0
  301. package/dist/components/combobox/combobox.styles.js +34 -33
  302. package/dist/components/combobox/combobox.styles.js.map +1 -0
  303. package/dist/components/combobox/option.class.d.ts +44 -0
  304. package/dist/components/combobox/option.class.d.ts.map +1 -0
  305. package/dist/components/combobox/option.class.js +101 -0
  306. package/dist/components/combobox/option.class.js.map +1 -0
  307. package/dist/components/combobox/option.d.ts +2 -40
  308. package/dist/components/combobox/option.d.ts.map +1 -0
  309. package/dist/components/combobox/option.js +3 -109
  310. package/dist/components/combobox/option.js.map +1 -0
  311. package/dist/components/context-meter/context-meter.class.d.ts +54 -0
  312. package/dist/components/context-meter/context-meter.class.d.ts.map +1 -0
  313. package/dist/components/context-meter/context-meter.class.js +158 -0
  314. package/dist/components/context-meter/context-meter.class.js.map +1 -0
  315. package/dist/components/context-meter/context-meter.d.ts +2 -53
  316. package/dist/components/context-meter/context-meter.d.ts.map +1 -0
  317. package/dist/components/context-meter/context-meter.js +3 -157
  318. package/dist/components/context-meter/context-meter.js.map +1 -0
  319. package/dist/components/context-meter/context-meter.styles.d.ts +1 -0
  320. package/dist/components/context-meter/context-meter.styles.d.ts.map +1 -0
  321. package/dist/components/context-meter/context-meter.styles.js +7 -6
  322. package/dist/components/context-meter/context-meter.styles.js.map +1 -0
  323. package/dist/components/conversation-item/conversation-item.class.d.ts +127 -0
  324. package/dist/components/conversation-item/conversation-item.class.d.ts.map +1 -0
  325. package/dist/components/conversation-item/conversation-item.class.js +328 -0
  326. package/dist/components/conversation-item/conversation-item.class.js.map +1 -0
  327. package/dist/components/conversation-item/conversation-item.d.ts +2 -125
  328. package/dist/components/conversation-item/conversation-item.d.ts.map +1 -0
  329. package/dist/components/conversation-item/conversation-item.js +3 -329
  330. package/dist/components/conversation-item/conversation-item.js.map +1 -0
  331. package/dist/components/conversation-item/conversation-item.styles.d.ts +1 -0
  332. package/dist/components/conversation-item/conversation-item.styles.d.ts.map +1 -0
  333. package/dist/components/conversation-item/conversation-item.styles.js +12 -11
  334. package/dist/components/conversation-item/conversation-item.styles.js.map +1 -0
  335. package/dist/components/copy-button/copy-button.class.d.ts +37 -0
  336. package/dist/components/copy-button/copy-button.class.d.ts.map +1 -0
  337. package/dist/components/copy-button/copy-button.class.js +116 -0
  338. package/dist/components/copy-button/copy-button.class.js.map +1 -0
  339. package/dist/components/copy-button/copy-button.d.ts +2 -0
  340. package/dist/components/copy-button/copy-button.d.ts.map +1 -0
  341. package/dist/components/copy-button/copy-button.js +5 -0
  342. package/dist/components/copy-button/copy-button.js.map +1 -0
  343. package/dist/components/copy-button/copy-button.styles.d.ts +2 -0
  344. package/dist/components/copy-button/copy-button.styles.d.ts.map +1 -0
  345. package/dist/components/copy-button/copy-button.styles.js +40 -0
  346. package/dist/components/copy-button/copy-button.styles.js.map +1 -0
  347. package/dist/components/date-picker/calendar-core.d.ts +1 -0
  348. package/dist/components/date-picker/calendar-core.d.ts.map +1 -0
  349. package/dist/components/date-picker/calendar-core.js +1 -0
  350. package/dist/components/date-picker/calendar-core.js.map +1 -0
  351. package/dist/components/date-picker/date-input.class.d.ts +185 -0
  352. package/dist/components/date-picker/date-input.class.d.ts.map +1 -0
  353. package/dist/components/date-picker/date-input.class.js +704 -0
  354. package/dist/components/date-picker/date-input.class.js.map +1 -0
  355. package/dist/components/date-picker/date-input.d.ts +3 -168
  356. package/dist/components/date-picker/date-input.d.ts.map +1 -0
  357. package/dist/components/date-picker/date-input.js +4 -675
  358. package/dist/components/date-picker/date-input.js.map +1 -0
  359. package/dist/components/date-picker/date-input.styles.d.ts +1 -0
  360. package/dist/components/date-picker/date-input.styles.d.ts.map +1 -0
  361. package/dist/components/date-picker/date-input.styles.js +11 -10
  362. package/dist/components/date-picker/date-input.styles.js.map +1 -0
  363. package/dist/components/date-picker/date-picker.class.d.ts +121 -0
  364. package/dist/components/date-picker/date-picker.class.d.ts.map +1 -0
  365. package/dist/components/date-picker/date-picker.class.js +541 -0
  366. package/dist/components/date-picker/date-picker.class.js.map +1 -0
  367. package/dist/components/date-picker/date-picker.d.ts +2 -103
  368. package/dist/components/date-picker/date-picker.d.ts.map +1 -0
  369. package/dist/components/date-picker/date-picker.js +3 -490
  370. package/dist/components/date-picker/date-picker.js.map +1 -0
  371. package/dist/components/date-picker/date-picker.styles.d.ts +1 -0
  372. package/dist/components/date-picker/date-picker.styles.d.ts.map +1 -0
  373. package/dist/components/date-picker/date-picker.styles.js +10 -9
  374. package/dist/components/date-picker/date-picker.styles.js.map +1 -0
  375. package/dist/components/dialog/confirm.d.ts +1 -0
  376. package/dist/components/dialog/confirm.d.ts.map +1 -0
  377. package/dist/components/dialog/confirm.js +1 -0
  378. package/dist/components/dialog/confirm.js.map +1 -0
  379. package/dist/components/dialog/dialog.class.d.ts +137 -0
  380. package/dist/components/dialog/dialog.class.d.ts.map +1 -0
  381. package/dist/components/dialog/dialog.class.js +301 -0
  382. package/dist/components/dialog/dialog.class.js.map +1 -0
  383. package/dist/components/dialog/dialog.d.ts +2 -129
  384. package/dist/components/dialog/dialog.d.ts.map +1 -0
  385. package/dist/components/dialog/dialog.js +3 -286
  386. package/dist/components/dialog/dialog.js.map +1 -0
  387. package/dist/components/dialog/dialog.styles.d.ts +1 -0
  388. package/dist/components/dialog/dialog.styles.d.ts.map +1 -0
  389. package/dist/components/dialog/dialog.styles.js +20 -9
  390. package/dist/components/dialog/dialog.styles.js.map +1 -0
  391. package/dist/components/diff-view/diff-line-diff.d.ts +13 -0
  392. package/dist/components/diff-view/diff-line-diff.d.ts.map +1 -0
  393. package/dist/components/diff-view/diff-line-diff.js +45 -0
  394. package/dist/components/diff-view/diff-line-diff.js.map +1 -0
  395. package/dist/components/diff-view/diff-view.class.d.ts +40 -0
  396. package/dist/components/diff-view/diff-view.class.d.ts.map +1 -0
  397. package/dist/components/diff-view/diff-view.class.js +73 -0
  398. package/dist/components/diff-view/diff-view.class.js.map +1 -0
  399. package/dist/components/diff-view/diff-view.d.ts +2 -0
  400. package/dist/components/diff-view/diff-view.d.ts.map +1 -0
  401. package/dist/components/diff-view/diff-view.js +5 -0
  402. package/dist/components/diff-view/diff-view.js.map +1 -0
  403. package/dist/components/diff-view/diff-view.styles.d.ts +2 -0
  404. package/dist/components/diff-view/diff-view.styles.d.ts.map +1 -0
  405. package/dist/components/diff-view/diff-view.styles.js +49 -0
  406. package/dist/components/diff-view/diff-view.styles.js.map +1 -0
  407. package/dist/components/dock-panel/dock-panel.class.d.ts +143 -0
  408. package/dist/components/dock-panel/dock-panel.class.d.ts.map +1 -0
  409. package/dist/components/dock-panel/dock-panel.class.js +358 -0
  410. package/dist/components/dock-panel/dock-panel.class.js.map +1 -0
  411. package/dist/components/dock-panel/dock-panel.d.ts +2 -142
  412. package/dist/components/dock-panel/dock-panel.d.ts.map +1 -0
  413. package/dist/components/dock-panel/dock-panel.js +3 -357
  414. package/dist/components/dock-panel/dock-panel.js.map +1 -0
  415. package/dist/components/dock-panel/dock-panel.styles.d.ts +1 -0
  416. package/dist/components/dock-panel/dock-panel.styles.d.ts.map +1 -0
  417. package/dist/components/dock-panel/dock-panel.styles.js +19 -12
  418. package/dist/components/dock-panel/dock-panel.styles.js.map +1 -0
  419. package/dist/components/document-preview/document-preview.class.d.ts +153 -0
  420. package/dist/components/document-preview/document-preview.class.d.ts.map +1 -0
  421. package/dist/components/document-preview/document-preview.class.js +387 -0
  422. package/dist/components/document-preview/document-preview.class.js.map +1 -0
  423. package/dist/components/document-preview/document-preview.d.ts +2 -143
  424. package/dist/components/document-preview/document-preview.d.ts.map +1 -0
  425. package/dist/components/document-preview/document-preview.js +3 -386
  426. package/dist/components/document-preview/document-preview.js.map +1 -0
  427. package/dist/components/document-preview/document-preview.styles.d.ts +1 -0
  428. package/dist/components/document-preview/document-preview.styles.d.ts.map +1 -0
  429. package/dist/components/document-preview/document-preview.styles.js +22 -21
  430. package/dist/components/document-preview/document-preview.styles.js.map +1 -0
  431. package/dist/components/empty/empty.class.d.ts +49 -0
  432. package/dist/components/empty/empty.class.d.ts.map +1 -0
  433. package/dist/components/empty/empty.class.js +138 -0
  434. package/dist/components/empty/empty.class.js.map +1 -0
  435. package/dist/components/empty/empty.d.ts +2 -42
  436. package/dist/components/empty/empty.d.ts.map +1 -0
  437. package/dist/components/empty/empty.js +3 -111
  438. package/dist/components/empty/empty.js.map +1 -0
  439. package/dist/components/empty/empty.styles.d.ts +1 -0
  440. package/dist/components/empty/empty.styles.d.ts.map +1 -0
  441. package/dist/components/empty/empty.styles.js +8 -7
  442. package/dist/components/empty/empty.styles.js.map +1 -0
  443. package/dist/components/export-button/csv.d.ts +1 -0
  444. package/dist/components/export-button/csv.d.ts.map +1 -0
  445. package/dist/components/export-button/csv.js +1 -0
  446. package/dist/components/export-button/csv.js.map +1 -0
  447. package/dist/components/export-button/export-button.class.d.ts +76 -0
  448. package/dist/components/export-button/export-button.class.d.ts.map +1 -0
  449. package/dist/components/export-button/export-button.class.js +262 -0
  450. package/dist/components/export-button/export-button.class.js.map +1 -0
  451. package/dist/components/export-button/export-button.d.ts +2 -67
  452. package/dist/components/export-button/export-button.d.ts.map +1 -0
  453. package/dist/components/export-button/export-button.js +3 -261
  454. package/dist/components/export-button/export-button.js.map +1 -0
  455. package/dist/components/export-button/export-button.styles.d.ts +1 -0
  456. package/dist/components/export-button/export-button.styles.d.ts.map +1 -0
  457. package/dist/components/export-button/export-button.styles.js +6 -5
  458. package/dist/components/export-button/export-button.styles.js.map +1 -0
  459. package/dist/components/file-input/accept.d.ts +1 -0
  460. package/dist/components/file-input/accept.d.ts.map +1 -0
  461. package/dist/components/file-input/accept.js +1 -0
  462. package/dist/components/file-input/accept.js.map +1 -0
  463. package/dist/components/file-input/file-input.class.d.ts +66 -0
  464. package/dist/components/file-input/file-input.class.d.ts.map +1 -0
  465. package/dist/components/file-input/file-input.class.js +227 -0
  466. package/dist/components/file-input/file-input.class.js.map +1 -0
  467. package/dist/components/file-input/file-input.d.ts +2 -59
  468. package/dist/components/file-input/file-input.d.ts.map +1 -0
  469. package/dist/components/file-input/file-input.js +3 -226
  470. package/dist/components/file-input/file-input.js.map +1 -0
  471. package/dist/components/file-input/file-input.styles.d.ts +1 -0
  472. package/dist/components/file-input/file-input.styles.d.ts.map +1 -0
  473. package/dist/components/file-input/file-input.styles.js +5 -4
  474. package/dist/components/file-input/file-input.styles.js.map +1 -0
  475. package/dist/components/flag/flag-peer.d.ts +8 -0
  476. package/dist/components/flag/flag-peer.d.ts.map +1 -0
  477. package/dist/components/flag/flag-peer.js +13 -0
  478. package/dist/components/flag/flag-peer.js.map +1 -0
  479. package/dist/components/flag/flag.class.d.ts +124 -0
  480. package/dist/components/flag/flag.class.d.ts.map +1 -0
  481. package/dist/components/flag/flag.class.js +251 -0
  482. package/dist/components/flag/flag.class.js.map +1 -0
  483. package/dist/components/flag/flag.d.ts +3 -121
  484. package/dist/components/flag/flag.d.ts.map +1 -0
  485. package/dist/components/flag/flag.js +4 -239
  486. package/dist/components/flag/flag.js.map +1 -0
  487. package/dist/components/flag/flag.styles.d.ts +1 -0
  488. package/dist/components/flag/flag.styles.d.ts.map +1 -0
  489. package/dist/components/flag/flag.styles.js +5 -4
  490. package/dist/components/flag/flag.styles.js.map +1 -0
  491. package/dist/components/flag/language-map.d.ts +1 -0
  492. package/dist/components/flag/language-map.d.ts.map +1 -0
  493. package/dist/components/flag/language-map.js +1 -0
  494. package/dist/components/flag/language-map.js.map +1 -0
  495. package/dist/components/gauge/gauge.class.d.ts +41 -0
  496. package/dist/components/gauge/gauge.class.d.ts.map +1 -0
  497. package/dist/components/gauge/gauge.class.js +178 -0
  498. package/dist/components/gauge/gauge.class.js.map +1 -0
  499. package/dist/components/gauge/gauge.d.ts +2 -40
  500. package/dist/components/gauge/gauge.d.ts.map +1 -0
  501. package/dist/components/gauge/gauge.js +3 -177
  502. package/dist/components/gauge/gauge.js.map +1 -0
  503. package/dist/components/gauge/gauge.styles.d.ts +1 -0
  504. package/dist/components/gauge/gauge.styles.d.ts.map +1 -0
  505. package/dist/components/gauge/gauge.styles.js +9 -8
  506. package/dist/components/gauge/gauge.styles.js.map +1 -0
  507. package/dist/components/generation-status/generation-status.class.d.ts +121 -0
  508. package/dist/components/generation-status/generation-status.class.d.ts.map +1 -0
  509. package/dist/components/generation-status/generation-status.class.js +326 -0
  510. package/dist/components/generation-status/generation-status.class.js.map +1 -0
  511. package/dist/components/generation-status/generation-status.d.ts +2 -117
  512. package/dist/components/generation-status/generation-status.d.ts.map +1 -0
  513. package/dist/components/generation-status/generation-status.js +3 -325
  514. package/dist/components/generation-status/generation-status.js.map +1 -0
  515. package/dist/components/generation-status/generation-status.styles.d.ts +1 -0
  516. package/dist/components/generation-status/generation-status.styles.d.ts.map +1 -0
  517. package/dist/components/generation-status/generation-status.styles.js +7 -6
  518. package/dist/components/generation-status/generation-status.styles.js.map +1 -0
  519. package/dist/components/graph/graph-loader.d.ts +13 -13
  520. package/dist/components/graph/graph-loader.d.ts.map +1 -0
  521. package/dist/components/graph/graph-loader.js +1 -0
  522. package/dist/components/graph/graph-loader.js.map +1 -0
  523. package/dist/components/graph/graph.class.d.ts +172 -0
  524. package/dist/components/graph/graph.class.d.ts.map +1 -0
  525. package/dist/components/graph/graph.class.js +617 -0
  526. package/dist/components/graph/graph.class.js.map +1 -0
  527. package/dist/components/graph/graph.d.ts +3 -157
  528. package/dist/components/graph/graph.d.ts.map +1 -0
  529. package/dist/components/graph/graph.js +4 -577
  530. package/dist/components/graph/graph.js.map +1 -0
  531. package/dist/components/graph/graph.styles.d.ts +1 -0
  532. package/dist/components/graph/graph.styles.d.ts.map +1 -0
  533. package/dist/components/graph/graph.styles.js +6 -1
  534. package/dist/components/graph/graph.styles.js.map +1 -0
  535. package/dist/components/heatmap/calendar-grid.d.ts +1 -0
  536. package/dist/components/heatmap/calendar-grid.d.ts.map +1 -0
  537. package/dist/components/heatmap/calendar-grid.js +1 -0
  538. package/dist/components/heatmap/calendar-grid.js.map +1 -0
  539. package/dist/components/heatmap/heatmap-scale.d.ts +9 -0
  540. package/dist/components/heatmap/heatmap-scale.d.ts.map +1 -0
  541. package/dist/components/heatmap/heatmap-scale.js +13 -0
  542. package/dist/components/heatmap/heatmap-scale.js.map +1 -0
  543. package/dist/components/heatmap/heatmap.class.d.ts +489 -0
  544. package/dist/components/heatmap/heatmap.class.d.ts.map +1 -0
  545. package/dist/components/heatmap/heatmap.class.js +1295 -0
  546. package/dist/components/heatmap/heatmap.class.js.map +1 -0
  547. package/dist/components/heatmap/heatmap.d.ts +2 -437
  548. package/dist/components/heatmap/heatmap.d.ts.map +1 -0
  549. package/dist/components/heatmap/heatmap.js +3 -1175
  550. package/dist/components/heatmap/heatmap.js.map +1 -0
  551. package/dist/components/heatmap/heatmap.styles.d.ts +1 -0
  552. package/dist/components/heatmap/heatmap.styles.d.ts.map +1 -0
  553. package/dist/components/heatmap/heatmap.styles.js +20 -20
  554. package/dist/components/heatmap/heatmap.styles.js.map +1 -0
  555. package/dist/components/json-viewer/json-viewer.class.d.ts +77 -0
  556. package/dist/components/json-viewer/json-viewer.class.d.ts.map +1 -0
  557. package/dist/components/json-viewer/json-viewer.class.js +362 -0
  558. package/dist/components/json-viewer/json-viewer.class.js.map +1 -0
  559. package/dist/components/json-viewer/json-viewer.d.ts +2 -70
  560. package/dist/components/json-viewer/json-viewer.d.ts.map +1 -0
  561. package/dist/components/json-viewer/json-viewer.js +3 -359
  562. package/dist/components/json-viewer/json-viewer.js.map +1 -0
  563. package/dist/components/json-viewer/json-viewer.styles.d.ts +1 -0
  564. package/dist/components/json-viewer/json-viewer.styles.d.ts.map +1 -0
  565. package/dist/components/json-viewer/json-viewer.styles.js +23 -20
  566. package/dist/components/json-viewer/json-viewer.styles.js.map +1 -0
  567. package/dist/components/kbd/kbd.class.d.ts +78 -0
  568. package/dist/components/kbd/kbd.class.d.ts.map +1 -0
  569. package/dist/components/kbd/kbd.class.js +230 -0
  570. package/dist/components/kbd/kbd.class.js.map +1 -0
  571. package/dist/components/kbd/kbd.d.ts +2 -77
  572. package/dist/components/kbd/kbd.d.ts.map +1 -0
  573. package/dist/components/kbd/kbd.js +3 -229
  574. package/dist/components/kbd/kbd.js.map +1 -0
  575. package/dist/components/kbd/kbd.styles.d.ts +1 -0
  576. package/dist/components/kbd/kbd.styles.d.ts.map +1 -0
  577. package/dist/components/kbd/kbd.styles.js +10 -9
  578. package/dist/components/kbd/kbd.styles.js.map +1 -0
  579. package/dist/components/live-region/live-region.class.d.ts +91 -0
  580. package/dist/components/live-region/live-region.class.d.ts.map +1 -0
  581. package/dist/components/live-region/live-region.class.js +188 -0
  582. package/dist/components/live-region/live-region.class.js.map +1 -0
  583. package/dist/components/live-region/live-region.d.ts +2 -90
  584. package/dist/components/live-region/live-region.d.ts.map +1 -0
  585. package/dist/components/live-region/live-region.js +3 -187
  586. package/dist/components/live-region/live-region.js.map +1 -0
  587. package/dist/components/live-region/live-region.styles.d.ts +1 -0
  588. package/dist/components/live-region/live-region.styles.d.ts.map +1 -0
  589. package/dist/components/live-region/live-region.styles.js +1 -0
  590. package/dist/components/live-region/live-region.styles.js.map +1 -0
  591. package/dist/components/map/map-loader.d.ts +5 -2
  592. package/dist/components/map/map-loader.d.ts.map +1 -0
  593. package/dist/components/map/map-loader.js +1 -0
  594. package/dist/components/map/map-loader.js.map +1 -0
  595. package/dist/components/map/map.class.d.ts +121 -0
  596. package/dist/components/map/map.class.d.ts.map +1 -0
  597. package/dist/components/map/map.class.js +477 -0
  598. package/dist/components/map/map.class.js.map +1 -0
  599. package/dist/components/map/map.d.ts +3 -111
  600. package/dist/components/map/map.d.ts.map +1 -0
  601. package/dist/components/map/map.js +4 -477
  602. package/dist/components/map/map.js.map +1 -0
  603. package/dist/components/map/map.styles.d.ts +1 -0
  604. package/dist/components/map/map.styles.d.ts.map +1 -0
  605. package/dist/components/map/map.styles.js +8 -7
  606. package/dist/components/map/map.styles.js.map +1 -0
  607. package/dist/components/markdown/markdown-loader.d.ts +6 -6
  608. package/dist/components/markdown/markdown-loader.d.ts.map +1 -0
  609. package/dist/components/markdown/markdown-loader.js +1 -0
  610. package/dist/components/markdown/markdown-loader.js.map +1 -0
  611. package/dist/components/markdown/markdown.class.d.ts +137 -0
  612. package/dist/components/markdown/markdown.class.d.ts.map +1 -0
  613. package/dist/components/markdown/markdown.class.js +427 -0
  614. package/dist/components/markdown/markdown.class.js.map +1 -0
  615. package/dist/components/markdown/markdown.d.ts +2 -119
  616. package/dist/components/markdown/markdown.d.ts.map +1 -0
  617. package/dist/components/markdown/markdown.js +3 -387
  618. package/dist/components/markdown/markdown.js.map +1 -0
  619. package/dist/components/markdown/markdown.styles.d.ts +1 -0
  620. package/dist/components/markdown/markdown.styles.d.ts.map +1 -0
  621. package/dist/components/markdown/markdown.styles.js +12 -11
  622. package/dist/components/markdown/markdown.styles.js.map +1 -0
  623. package/dist/components/media-card/media-card.class.d.ts +131 -0
  624. package/dist/components/media-card/media-card.class.d.ts.map +1 -0
  625. package/dist/components/media-card/media-card.class.js +272 -0
  626. package/dist/components/media-card/media-card.class.js.map +1 -0
  627. package/dist/components/media-card/media-card.d.ts +2 -130
  628. package/dist/components/media-card/media-card.d.ts.map +1 -0
  629. package/dist/components/media-card/media-card.js +3 -271
  630. package/dist/components/media-card/media-card.js.map +1 -0
  631. package/dist/components/media-card/media-card.styles.d.ts +1 -0
  632. package/dist/components/media-card/media-card.styles.d.ts.map +1 -0
  633. package/dist/components/media-card/media-card.styles.js +8 -7
  634. package/dist/components/media-card/media-card.styles.js.map +1 -0
  635. package/dist/components/mention-popover/mention-popover.class.d.ts +207 -0
  636. package/dist/components/mention-popover/mention-popover.class.d.ts.map +1 -0
  637. package/dist/components/mention-popover/mention-popover.class.js +492 -0
  638. package/dist/components/mention-popover/mention-popover.class.js.map +1 -0
  639. package/dist/components/mention-popover/mention-popover.d.ts +2 -203
  640. package/dist/components/mention-popover/mention-popover.d.ts.map +1 -0
  641. package/dist/components/mention-popover/mention-popover.js +3 -491
  642. package/dist/components/mention-popover/mention-popover.js.map +1 -0
  643. package/dist/components/mention-popover/mention-popover.styles.d.ts +1 -0
  644. package/dist/components/mention-popover/mention-popover.styles.d.ts.map +1 -0
  645. package/dist/components/mention-popover/mention-popover.styles.js +11 -10
  646. package/dist/components/mention-popover/mention-popover.styles.js.map +1 -0
  647. package/dist/components/menu/menu-item.class.d.ts +99 -0
  648. package/dist/components/menu/menu-item.class.d.ts.map +1 -0
  649. package/dist/components/menu/menu-item.class.js +205 -0
  650. package/dist/components/menu/menu-item.class.js.map +1 -0
  651. package/dist/components/menu/menu-item.d.ts +2 -91
  652. package/dist/components/menu/menu-item.d.ts.map +1 -0
  653. package/dist/components/menu/menu-item.js +3 -204
  654. package/dist/components/menu/menu-item.js.map +1 -0
  655. package/dist/components/menu/menu-item.styles.d.ts +1 -0
  656. package/dist/components/menu/menu-item.styles.d.ts.map +1 -0
  657. package/dist/components/menu/menu-item.styles.js +3 -2
  658. package/dist/components/menu/menu-item.styles.js.map +1 -0
  659. package/dist/components/menu/menu.class.d.ts +173 -0
  660. package/dist/components/menu/menu.class.d.ts.map +1 -0
  661. package/dist/components/menu/menu.class.js +462 -0
  662. package/dist/components/menu/menu.class.js.map +1 -0
  663. package/dist/components/menu/menu.d.ts +3 -167
  664. package/dist/components/menu/menu.d.ts.map +1 -0
  665. package/dist/components/menu/menu.js +4 -459
  666. package/dist/components/menu/menu.js.map +1 -0
  667. package/dist/components/menu/menu.styles.d.ts +1 -0
  668. package/dist/components/menu/menu.styles.d.ts.map +1 -0
  669. package/dist/components/menu/menu.styles.js +9 -8
  670. package/dist/components/menu/menu.styles.js.map +1 -0
  671. package/dist/components/model-select/model-select.class.d.ts +177 -0
  672. package/dist/components/model-select/model-select.class.d.ts.map +1 -0
  673. package/dist/components/model-select/model-select.class.js +587 -0
  674. package/dist/components/model-select/model-select.class.js.map +1 -0
  675. package/dist/components/model-select/model-select.d.ts +2 -170
  676. package/dist/components/model-select/model-select.d.ts.map +1 -0
  677. package/dist/components/model-select/model-select.js +3 -586
  678. package/dist/components/model-select/model-select.js.map +1 -0
  679. package/dist/components/model-select/model-select.styles.d.ts +1 -0
  680. package/dist/components/model-select/model-select.styles.d.ts.map +1 -0
  681. package/dist/components/model-select/model-select.styles.js +24 -23
  682. package/dist/components/model-select/model-select.styles.js.map +1 -0
  683. package/dist/components/model-settings-panel/model-settings-panel.class.d.ts +94 -0
  684. package/dist/components/model-settings-panel/model-settings-panel.class.d.ts.map +1 -0
  685. package/dist/components/model-settings-panel/model-settings-panel.class.js +208 -0
  686. package/dist/components/model-settings-panel/model-settings-panel.class.js.map +1 -0
  687. package/dist/components/model-settings-panel/model-settings-panel.d.ts +4 -93
  688. package/dist/components/model-settings-panel/model-settings-panel.d.ts.map +1 -0
  689. package/dist/components/model-settings-panel/model-settings-panel.js +5 -207
  690. package/dist/components/model-settings-panel/model-settings-panel.js.map +1 -0
  691. package/dist/components/model-settings-panel/model-settings-panel.styles.d.ts +1 -0
  692. package/dist/components/model-settings-panel/model-settings-panel.styles.d.ts.map +1 -0
  693. package/dist/components/model-settings-panel/model-settings-panel.styles.js +12 -11
  694. package/dist/components/model-settings-panel/model-settings-panel.styles.js.map +1 -0
  695. package/dist/components/playback/playback.class.d.ts +79 -0
  696. package/dist/components/playback/playback.class.d.ts.map +1 -0
  697. package/dist/components/playback/playback.class.js +251 -0
  698. package/dist/components/playback/playback.class.js.map +1 -0
  699. package/dist/components/playback/playback.d.ts +2 -71
  700. package/dist/components/playback/playback.d.ts.map +1 -0
  701. package/dist/components/playback/playback.js +3 -250
  702. package/dist/components/playback/playback.js.map +1 -0
  703. package/dist/components/playback/playback.styles.d.ts +1 -0
  704. package/dist/components/playback/playback.styles.d.ts.map +1 -0
  705. package/dist/components/playback/playback.styles.js +2 -1
  706. package/dist/components/playback/playback.styles.js.map +1 -0
  707. package/dist/components/poll-status/poll-status.class.d.ts +54 -0
  708. package/dist/components/poll-status/poll-status.class.d.ts.map +1 -0
  709. package/dist/components/poll-status/poll-status.class.js +150 -0
  710. package/dist/components/poll-status/poll-status.class.js.map +1 -0
  711. package/dist/components/poll-status/poll-status.d.ts +3 -0
  712. package/dist/components/poll-status/poll-status.d.ts.map +1 -0
  713. package/dist/components/poll-status/poll-status.js +6 -0
  714. package/dist/components/poll-status/poll-status.js.map +1 -0
  715. package/dist/components/poll-status/poll-status.styles.d.ts +2 -0
  716. package/dist/components/poll-status/poll-status.styles.d.ts.map +1 -0
  717. package/dist/components/poll-status/poll-status.styles.js +53 -0
  718. package/dist/components/poll-status/poll-status.styles.js.map +1 -0
  719. package/dist/components/responsive-panel/responsive-panel.class.d.ts +164 -0
  720. package/dist/components/responsive-panel/responsive-panel.class.d.ts.map +1 -0
  721. package/dist/components/responsive-panel/responsive-panel.class.js +362 -0
  722. package/dist/components/responsive-panel/responsive-panel.class.js.map +1 -0
  723. package/dist/components/responsive-panel/responsive-panel.d.ts +2 -163
  724. package/dist/components/responsive-panel/responsive-panel.d.ts.map +1 -0
  725. package/dist/components/responsive-panel/responsive-panel.js +3 -361
  726. package/dist/components/responsive-panel/responsive-panel.js.map +1 -0
  727. package/dist/components/responsive-panel/responsive-panel.styles.d.ts +1 -0
  728. package/dist/components/responsive-panel/responsive-panel.styles.d.ts.map +1 -0
  729. package/dist/components/responsive-panel/responsive-panel.styles.js +8 -5
  730. package/dist/components/responsive-panel/responsive-panel.styles.js.map +1 -0
  731. package/dist/components/result-card/result-card.class.d.ts +51 -0
  732. package/dist/components/result-card/result-card.class.d.ts.map +1 -0
  733. package/dist/components/result-card/result-card.class.js +88 -0
  734. package/dist/components/result-card/result-card.class.js.map +1 -0
  735. package/dist/components/result-card/result-card.d.ts +2 -50
  736. package/dist/components/result-card/result-card.d.ts.map +1 -0
  737. package/dist/components/result-card/result-card.js +3 -87
  738. package/dist/components/result-card/result-card.js.map +1 -0
  739. package/dist/components/result-card/result-card.styles.d.ts +1 -0
  740. package/dist/components/result-card/result-card.styles.d.ts.map +1 -0
  741. package/dist/components/result-card/result-card.styles.js +5 -4
  742. package/dist/components/result-card/result-card.styles.js.map +1 -0
  743. package/dist/components/result-card/result-field.class.d.ts +37 -0
  744. package/dist/components/result-card/result-field.class.d.ts.map +1 -0
  745. package/dist/components/result-card/result-field.class.js +86 -0
  746. package/dist/components/result-card/result-field.class.js.map +1 -0
  747. package/dist/components/result-card/result-field.d.ts +2 -36
  748. package/dist/components/result-card/result-field.d.ts.map +1 -0
  749. package/dist/components/result-card/result-field.js +3 -85
  750. package/dist/components/result-card/result-field.js.map +1 -0
  751. package/dist/components/result-card/result-field.styles.d.ts +1 -0
  752. package/dist/components/result-card/result-field.styles.d.ts.map +1 -0
  753. package/dist/components/result-card/result-field.styles.js +3 -2
  754. package/dist/components/result-card/result-field.styles.js.map +1 -0
  755. package/dist/components/segmented/segmented.class.d.ts +44 -0
  756. package/dist/components/segmented/segmented.class.d.ts.map +1 -0
  757. package/dist/components/segmented/segmented.class.js +100 -0
  758. package/dist/components/segmented/segmented.class.js.map +1 -0
  759. package/dist/components/segmented/segmented.d.ts +2 -0
  760. package/dist/components/segmented/segmented.d.ts.map +1 -0
  761. package/dist/components/segmented/segmented.js +5 -0
  762. package/dist/components/segmented/segmented.js.map +1 -0
  763. package/dist/components/segmented/segmented.styles.d.ts +2 -0
  764. package/dist/components/segmented/segmented.styles.d.ts.map +1 -0
  765. package/dist/components/segmented/segmented.styles.js +38 -0
  766. package/dist/components/segmented/segmented.styles.js.map +1 -0
  767. package/dist/components/select/select.class.d.ts +212 -0
  768. package/dist/components/select/select.class.d.ts.map +1 -0
  769. package/dist/components/select/select.class.js +694 -0
  770. package/dist/components/select/select.class.js.map +1 -0
  771. package/dist/components/select/select.d.ts +3 -205
  772. package/dist/components/select/select.d.ts.map +1 -0
  773. package/dist/components/select/select.js +4 -693
  774. package/dist/components/select/select.js.map +1 -0
  775. package/dist/components/select/select.styles.d.ts +1 -0
  776. package/dist/components/select/select.styles.d.ts.map +1 -0
  777. package/dist/components/select/select.styles.js +41 -35
  778. package/dist/components/select/select.styles.js.map +1 -0
  779. package/dist/components/skeleton/skeleton.class.d.ts +30 -0
  780. package/dist/components/skeleton/skeleton.class.d.ts.map +1 -0
  781. package/dist/components/skeleton/skeleton.class.js +67 -0
  782. package/dist/components/skeleton/skeleton.class.js.map +1 -0
  783. package/dist/components/skeleton/skeleton.d.ts +2 -29
  784. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  785. package/dist/components/skeleton/skeleton.js +3 -66
  786. package/dist/components/skeleton/skeleton.js.map +1 -0
  787. package/dist/components/skeleton/skeleton.styles.d.ts +1 -0
  788. package/dist/components/skeleton/skeleton.styles.d.ts.map +1 -0
  789. package/dist/components/skeleton/skeleton.styles.js +2 -1
  790. package/dist/components/skeleton/skeleton.styles.js.map +1 -0
  791. package/dist/components/slider/slider.class.d.ts +152 -0
  792. package/dist/components/slider/slider.class.d.ts.map +1 -0
  793. package/dist/components/slider/slider.class.js +468 -0
  794. package/dist/components/slider/slider.class.js.map +1 -0
  795. package/dist/components/slider/slider.d.ts +2 -141
  796. package/dist/components/slider/slider.d.ts.map +1 -0
  797. package/dist/components/slider/slider.js +3 -465
  798. package/dist/components/slider/slider.js.map +1 -0
  799. package/dist/components/slider/slider.styles.d.ts +1 -0
  800. package/dist/components/slider/slider.styles.d.ts.map +1 -0
  801. package/dist/components/slider/slider.styles.js +15 -14
  802. package/dist/components/slider/slider.styles.js.map +1 -0
  803. package/dist/components/source-card/source-card.class.d.ts +105 -0
  804. package/dist/components/source-card/source-card.class.d.ts.map +1 -0
  805. package/dist/components/source-card/source-card.class.js +194 -0
  806. package/dist/components/source-card/source-card.class.js.map +1 -0
  807. package/dist/components/source-card/source-card.d.ts +2 -104
  808. package/dist/components/source-card/source-card.d.ts.map +1 -0
  809. package/dist/components/source-card/source-card.js +3 -193
  810. package/dist/components/source-card/source-card.js.map +1 -0
  811. package/dist/components/source-card/source-card.styles.d.ts +1 -0
  812. package/dist/components/source-card/source-card.styles.d.ts.map +1 -0
  813. package/dist/components/source-card/source-card.styles.js +11 -10
  814. package/dist/components/source-card/source-card.styles.js.map +1 -0
  815. package/dist/components/source-list/source-list.class.d.ts +64 -0
  816. package/dist/components/source-list/source-list.class.d.ts.map +1 -0
  817. package/dist/components/source-list/source-list.class.js +129 -0
  818. package/dist/components/source-list/source-list.class.js.map +1 -0
  819. package/dist/components/source-list/source-list.d.ts +2 -63
  820. package/dist/components/source-list/source-list.d.ts.map +1 -0
  821. package/dist/components/source-list/source-list.js +3 -128
  822. package/dist/components/source-list/source-list.js.map +1 -0
  823. package/dist/components/source-list/source-list.styles.d.ts +1 -0
  824. package/dist/components/source-list/source-list.styles.d.ts.map +1 -0
  825. package/dist/components/source-list/source-list.styles.js +5 -4
  826. package/dist/components/source-list/source-list.styles.js.map +1 -0
  827. package/dist/components/sparkline/sparkline.class.d.ts +31 -0
  828. package/dist/components/sparkline/sparkline.class.d.ts.map +1 -0
  829. package/dist/components/sparkline/sparkline.class.js +140 -0
  830. package/dist/components/sparkline/sparkline.class.js.map +1 -0
  831. package/dist/components/sparkline/sparkline.d.ts +2 -30
  832. package/dist/components/sparkline/sparkline.d.ts.map +1 -0
  833. package/dist/components/sparkline/sparkline.js +3 -137
  834. package/dist/components/sparkline/sparkline.js.map +1 -0
  835. package/dist/components/sparkline/sparkline.styles.d.ts +1 -0
  836. package/dist/components/sparkline/sparkline.styles.d.ts.map +1 -0
  837. package/dist/components/sparkline/sparkline.styles.js +3 -2
  838. package/dist/components/sparkline/sparkline.styles.js.map +1 -0
  839. package/dist/components/split/split.class.d.ts +293 -0
  840. package/dist/components/split/split.class.d.ts.map +1 -0
  841. package/dist/components/split/split.class.js +894 -0
  842. package/dist/components/split/split.class.js.map +1 -0
  843. package/dist/components/split/split.d.ts +2 -282
  844. package/dist/components/split/split.d.ts.map +1 -0
  845. package/dist/components/split/split.js +3 -888
  846. package/dist/components/split/split.js.map +1 -0
  847. package/dist/components/split/split.styles.d.ts +1 -0
  848. package/dist/components/split/split.styles.d.ts.map +1 -0
  849. package/dist/components/split/split.styles.js +8 -7
  850. package/dist/components/split/split.styles.js.map +1 -0
  851. package/dist/components/stat/stat.class.d.ts +90 -0
  852. package/dist/components/stat/stat.class.d.ts.map +1 -0
  853. package/dist/components/stat/stat.class.js +249 -0
  854. package/dist/components/stat/stat.class.js.map +1 -0
  855. package/dist/components/stat/stat.d.ts +2 -89
  856. package/dist/components/stat/stat.d.ts.map +1 -0
  857. package/dist/components/stat/stat.js +3 -248
  858. package/dist/components/stat/stat.js.map +1 -0
  859. package/dist/components/stat/stat.styles.d.ts +1 -0
  860. package/dist/components/stat/stat.styles.d.ts.map +1 -0
  861. package/dist/components/stat/stat.styles.js +25 -22
  862. package/dist/components/stat/stat.styles.js.map +1 -0
  863. package/dist/components/stepper/stepper.class.d.ts +52 -0
  864. package/dist/components/stepper/stepper.class.d.ts.map +1 -0
  865. package/dist/components/stepper/stepper.class.js +138 -0
  866. package/dist/components/stepper/stepper.class.js.map +1 -0
  867. package/dist/components/stepper/stepper.d.ts +2 -0
  868. package/dist/components/stepper/stepper.d.ts.map +1 -0
  869. package/dist/components/stepper/stepper.js +5 -0
  870. package/dist/components/stepper/stepper.js.map +1 -0
  871. package/dist/components/stepper/stepper.styles.d.ts +2 -0
  872. package/dist/components/stepper/stepper.styles.d.ts.map +1 -0
  873. package/dist/components/stepper/stepper.styles.js +67 -0
  874. package/dist/components/stepper/stepper.styles.js.map +1 -0
  875. package/dist/components/stream-status/stream-status.class.d.ts +131 -0
  876. package/dist/components/stream-status/stream-status.class.d.ts.map +1 -0
  877. package/dist/components/stream-status/stream-status.class.js +291 -0
  878. package/dist/components/stream-status/stream-status.class.js.map +1 -0
  879. package/dist/components/stream-status/stream-status.d.ts +3 -126
  880. package/dist/components/stream-status/stream-status.d.ts.map +1 -0
  881. package/dist/components/stream-status/stream-status.js +4 -290
  882. package/dist/components/stream-status/stream-status.js.map +1 -0
  883. package/dist/components/stream-status/stream-status.styles.d.ts +1 -0
  884. package/dist/components/stream-status/stream-status.styles.d.ts.map +1 -0
  885. package/dist/components/stream-status/stream-status.styles.js +7 -6
  886. package/dist/components/stream-status/stream-status.styles.js.map +1 -0
  887. package/dist/components/streaming-text/streaming-text.class.d.ts +105 -0
  888. package/dist/components/streaming-text/streaming-text.class.d.ts.map +1 -0
  889. package/dist/components/streaming-text/streaming-text.class.js +223 -0
  890. package/dist/components/streaming-text/streaming-text.class.js.map +1 -0
  891. package/dist/components/streaming-text/streaming-text.d.ts +3 -104
  892. package/dist/components/streaming-text/streaming-text.d.ts.map +1 -0
  893. package/dist/components/streaming-text/streaming-text.js +4 -222
  894. package/dist/components/streaming-text/streaming-text.js.map +1 -0
  895. package/dist/components/streaming-text/streaming-text.styles.d.ts +1 -0
  896. package/dist/components/streaming-text/streaming-text.styles.d.ts.map +1 -0
  897. package/dist/components/streaming-text/streaming-text.styles.js +4 -3
  898. package/dist/components/streaming-text/streaming-text.styles.js.map +1 -0
  899. package/dist/components/switch/switch.class.d.ts +109 -0
  900. package/dist/components/switch/switch.class.d.ts.map +1 -0
  901. package/dist/components/switch/switch.class.js +249 -0
  902. package/dist/components/switch/switch.class.js.map +1 -0
  903. package/dist/components/switch/switch.d.ts +2 -103
  904. package/dist/components/switch/switch.d.ts.map +1 -0
  905. package/dist/components/switch/switch.js +3 -248
  906. package/dist/components/switch/switch.js.map +1 -0
  907. package/dist/components/switch/switch.styles.d.ts +1 -0
  908. package/dist/components/switch/switch.styles.d.ts.map +1 -0
  909. package/dist/components/switch/switch.styles.js +18 -14
  910. package/dist/components/switch/switch.styles.js.map +1 -0
  911. package/dist/components/table/table.class.d.ts +223 -0
  912. package/dist/components/table/table.class.d.ts.map +1 -0
  913. package/dist/components/table/table.class.js +630 -0
  914. package/dist/components/table/table.class.js.map +1 -0
  915. package/dist/components/table/table.d.ts +3 -199
  916. package/dist/components/table/table.d.ts.map +1 -0
  917. package/dist/components/table/table.js +4 -611
  918. package/dist/components/table/table.js.map +1 -0
  919. package/dist/components/table/table.styles.d.ts +1 -0
  920. package/dist/components/table/table.styles.d.ts.map +1 -0
  921. package/dist/components/table/table.styles.js +23 -8
  922. package/dist/components/table/table.styles.js.map +1 -0
  923. package/dist/components/tabs/tabs.class.d.ts +80 -0
  924. package/dist/components/tabs/tabs.class.d.ts.map +1 -0
  925. package/dist/components/tabs/tabs.class.js +253 -0
  926. package/dist/components/tabs/tabs.class.js.map +1 -0
  927. package/dist/components/tabs/tabs.d.ts +2 -74
  928. package/dist/components/tabs/tabs.d.ts.map +1 -0
  929. package/dist/components/tabs/tabs.js +3 -252
  930. package/dist/components/tabs/tabs.js.map +1 -0
  931. package/dist/components/tabs/tabs.styles.d.ts +1 -0
  932. package/dist/components/tabs/tabs.styles.d.ts.map +1 -0
  933. package/dist/components/tabs/tabs.styles.js +11 -4
  934. package/dist/components/tabs/tabs.styles.js.map +1 -0
  935. package/dist/components/thinking-panel/thinking-panel.class.d.ts +124 -0
  936. package/dist/components/thinking-panel/thinking-panel.class.d.ts.map +1 -0
  937. package/dist/components/thinking-panel/thinking-panel.class.js +259 -0
  938. package/dist/components/thinking-panel/thinking-panel.class.js.map +1 -0
  939. package/dist/components/thinking-panel/thinking-panel.d.ts +2 -123
  940. package/dist/components/thinking-panel/thinking-panel.d.ts.map +1 -0
  941. package/dist/components/thinking-panel/thinking-panel.js +3 -258
  942. package/dist/components/thinking-panel/thinking-panel.js.map +1 -0
  943. package/dist/components/thinking-panel/thinking-panel.styles.d.ts +1 -0
  944. package/dist/components/thinking-panel/thinking-panel.styles.d.ts.map +1 -0
  945. package/dist/components/thinking-panel/thinking-panel.styles.js +13 -12
  946. package/dist/components/thinking-panel/thinking-panel.styles.js.map +1 -0
  947. package/dist/components/time-range/time-range.class.d.ts +137 -0
  948. package/dist/components/time-range/time-range.class.d.ts.map +1 -0
  949. package/dist/components/time-range/time-range.class.js +495 -0
  950. package/dist/components/time-range/time-range.class.js.map +1 -0
  951. package/dist/components/time-range/time-range.d.ts +2 -126
  952. package/dist/components/time-range/time-range.d.ts.map +1 -0
  953. package/dist/components/time-range/time-range.js +3 -494
  954. package/dist/components/time-range/time-range.js.map +1 -0
  955. package/dist/components/time-range/time-range.styles.d.ts +1 -0
  956. package/dist/components/time-range/time-range.styles.d.ts.map +1 -0
  957. package/dist/components/time-range/time-range.styles.js +21 -13
  958. package/dist/components/time-range/time-range.styles.js.map +1 -0
  959. package/dist/components/toast/toast-item.class.d.ts +79 -0
  960. package/dist/components/toast/toast-item.class.d.ts.map +1 -0
  961. package/dist/components/toast/toast-item.class.js +324 -0
  962. package/dist/components/toast/toast-item.class.js.map +1 -0
  963. package/dist/components/toast/toast-item.d.ts +2 -72
  964. package/dist/components/toast/toast-item.d.ts.map +1 -0
  965. package/dist/components/toast/toast-item.js +3 -323
  966. package/dist/components/toast/toast-item.js.map +1 -0
  967. package/dist/components/toast/toast-item.styles.d.ts +1 -0
  968. package/dist/components/toast/toast-item.styles.d.ts.map +1 -0
  969. package/dist/components/toast/toast-item.styles.js +13 -12
  970. package/dist/components/toast/toast-item.styles.js.map +1 -0
  971. package/dist/components/toast/toast.class.d.ts +33 -0
  972. package/dist/components/toast/toast.class.d.ts.map +1 -0
  973. package/dist/components/toast/toast.class.js +59 -0
  974. package/dist/components/toast/toast.class.js.map +1 -0
  975. package/dist/components/toast/toast.d.ts +3 -32
  976. package/dist/components/toast/toast.d.ts.map +1 -0
  977. package/dist/components/toast/toast.js +4 -58
  978. package/dist/components/toast/toast.js.map +1 -0
  979. package/dist/components/toast/toast.styles.d.ts +1 -0
  980. package/dist/components/toast/toast.styles.d.ts.map +1 -0
  981. package/dist/components/toast/toast.styles.js +20 -16
  982. package/dist/components/toast/toast.styles.js.map +1 -0
  983. package/dist/components/toast/toaster.d.ts +1 -0
  984. package/dist/components/toast/toaster.d.ts.map +1 -0
  985. package/dist/components/toast/toaster.js +1 -0
  986. package/dist/components/toast/toaster.js.map +1 -0
  987. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts +135 -0
  988. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -0
  989. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js +328 -0
  990. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -0
  991. package/dist/components/tool-approval-dialog/tool-approval-dialog.d.ts +3 -131
  992. package/dist/components/tool-approval-dialog/tool-approval-dialog.d.ts.map +1 -0
  993. package/dist/components/tool-approval-dialog/tool-approval-dialog.js +4 -327
  994. package/dist/components/tool-approval-dialog/tool-approval-dialog.js.map +1 -0
  995. package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.d.ts +1 -0
  996. package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.d.ts.map +1 -0
  997. package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.js +22 -18
  998. package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.js.map +1 -0
  999. package/dist/components/tool-call-chip/tool-call-chip.class.d.ts +106 -0
  1000. package/dist/components/tool-call-chip/tool-call-chip.class.d.ts.map +1 -0
  1001. package/dist/components/tool-call-chip/tool-call-chip.class.js +348 -0
  1002. package/dist/components/tool-call-chip/tool-call-chip.class.js.map +1 -0
  1003. package/dist/components/tool-call-chip/tool-call-chip.d.ts +2 -105
  1004. package/dist/components/tool-call-chip/tool-call-chip.d.ts.map +1 -0
  1005. package/dist/components/tool-call-chip/tool-call-chip.js +3 -347
  1006. package/dist/components/tool-call-chip/tool-call-chip.js.map +1 -0
  1007. package/dist/components/tool-call-chip/tool-call-chip.styles.d.ts +1 -0
  1008. package/dist/components/tool-call-chip/tool-call-chip.styles.d.ts.map +1 -0
  1009. package/dist/components/tool-call-chip/tool-call-chip.styles.js +22 -21
  1010. package/dist/components/tool-call-chip/tool-call-chip.styles.js.map +1 -0
  1011. package/dist/components/tool-param-form/tool-param-form.class.d.ts +216 -0
  1012. package/dist/components/tool-param-form/tool-param-form.class.d.ts.map +1 -0
  1013. package/dist/components/tool-param-form/tool-param-form.class.js +609 -0
  1014. package/dist/components/tool-param-form/tool-param-form.class.js.map +1 -0
  1015. package/dist/components/tool-param-form/tool-param-form.d.ts +5 -206
  1016. package/dist/components/tool-param-form/tool-param-form.d.ts.map +1 -0
  1017. package/dist/components/tool-param-form/tool-param-form.js +6 -608
  1018. package/dist/components/tool-param-form/tool-param-form.js.map +1 -0
  1019. package/dist/components/tool-param-form/tool-param-form.styles.d.ts +1 -0
  1020. package/dist/components/tool-param-form/tool-param-form.styles.d.ts.map +1 -0
  1021. package/dist/components/tool-param-form/tool-param-form.styles.js +9 -8
  1022. package/dist/components/tool-param-form/tool-param-form.styles.js.map +1 -0
  1023. package/dist/components/tool-result-dialog/tool-result-dialog.class.d.ts +123 -0
  1024. package/dist/components/tool-result-dialog/tool-result-dialog.class.d.ts.map +1 -0
  1025. package/dist/components/tool-result-dialog/tool-result-dialog.class.js +357 -0
  1026. package/dist/components/tool-result-dialog/tool-result-dialog.class.js.map +1 -0
  1027. package/dist/components/tool-result-dialog/tool-result-dialog.d.ts +2 -122
  1028. package/dist/components/tool-result-dialog/tool-result-dialog.d.ts.map +1 -0
  1029. package/dist/components/tool-result-dialog/tool-result-dialog.js +3 -356
  1030. package/dist/components/tool-result-dialog/tool-result-dialog.js.map +1 -0
  1031. package/dist/components/tool-result-dialog/tool-result-dialog.styles.d.ts +1 -0
  1032. package/dist/components/tool-result-dialog/tool-result-dialog.styles.d.ts.map +1 -0
  1033. package/dist/components/tool-result-dialog/tool-result-dialog.styles.js +24 -16
  1034. package/dist/components/tool-result-dialog/tool-result-dialog.styles.js.map +1 -0
  1035. package/dist/components/tool-result-view/registry.d.ts +1 -0
  1036. package/dist/components/tool-result-view/registry.d.ts.map +1 -0
  1037. package/dist/components/tool-result-view/registry.js +1 -0
  1038. package/dist/components/tool-result-view/registry.js.map +1 -0
  1039. package/dist/components/tool-result-view/tool-result-view.class.d.ts +65 -0
  1040. package/dist/components/tool-result-view/tool-result-view.class.d.ts.map +1 -0
  1041. package/dist/components/tool-result-view/tool-result-view.class.js +151 -0
  1042. package/dist/components/tool-result-view/tool-result-view.class.js.map +1 -0
  1043. package/dist/components/tool-result-view/tool-result-view.d.ts +4 -58
  1044. package/dist/components/tool-result-view/tool-result-view.d.ts.map +1 -0
  1045. package/dist/components/tool-result-view/tool-result-view.js +5 -150
  1046. package/dist/components/tool-result-view/tool-result-view.js.map +1 -0
  1047. package/dist/components/tool-result-view/tool-result-view.styles.d.ts +1 -0
  1048. package/dist/components/tool-result-view/tool-result-view.styles.d.ts.map +1 -0
  1049. package/dist/components/tool-result-view/tool-result-view.styles.js +1 -0
  1050. package/dist/components/tool-result-view/tool-result-view.styles.js.map +1 -0
  1051. package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts +152 -0
  1052. package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -0
  1053. package/dist/components/tool-select-dialog/tool-select-dialog.class.js +349 -0
  1054. package/dist/components/tool-select-dialog/tool-select-dialog.class.js.map +1 -0
  1055. package/dist/components/tool-select-dialog/tool-select-dialog.d.ts +4 -151
  1056. package/dist/components/tool-select-dialog/tool-select-dialog.d.ts.map +1 -0
  1057. package/dist/components/tool-select-dialog/tool-select-dialog.js +5 -348
  1058. package/dist/components/tool-select-dialog/tool-select-dialog.js.map +1 -0
  1059. package/dist/components/tool-select-dialog/tool-select-dialog.styles.d.ts +1 -0
  1060. package/dist/components/tool-select-dialog/tool-select-dialog.styles.d.ts.map +1 -0
  1061. package/dist/components/tool-select-dialog/tool-select-dialog.styles.js +29 -25
  1062. package/dist/components/tool-select-dialog/tool-select-dialog.styles.js.map +1 -0
  1063. package/dist/components/tree/tree-node.class.d.ts +78 -0
  1064. package/dist/components/tree/tree-node.class.d.ts.map +1 -0
  1065. package/dist/components/tree/tree-node.class.js +223 -0
  1066. package/dist/components/tree/tree-node.class.js.map +1 -0
  1067. package/dist/components/tree/tree-node.d.ts +2 -68
  1068. package/dist/components/tree/tree-node.d.ts.map +1 -0
  1069. package/dist/components/tree/tree-node.js +4 -222
  1070. package/dist/components/tree/tree-node.js.map +1 -0
  1071. package/dist/components/tree/tree.class.d.ts +130 -0
  1072. package/dist/components/tree/tree.class.d.ts.map +1 -0
  1073. package/dist/components/tree/tree.class.js +326 -0
  1074. package/dist/components/tree/tree.class.js.map +1 -0
  1075. package/dist/components/tree/tree.d.ts +3 -129
  1076. package/dist/components/tree/tree.d.ts.map +1 -0
  1077. package/dist/components/tree/tree.js +5 -325
  1078. package/dist/components/tree/tree.js.map +1 -0
  1079. package/dist/components/tree/tree.styles.d.ts +1 -0
  1080. package/dist/components/tree/tree.styles.d.ts.map +1 -0
  1081. package/dist/components/tree/tree.styles.js +1 -0
  1082. package/dist/components/tree/tree.styles.js.map +1 -0
  1083. package/dist/components/tree/update-cascade.d.ts +1 -0
  1084. package/dist/components/tree/update-cascade.d.ts.map +1 -0
  1085. package/dist/components/tree/update-cascade.js +1 -0
  1086. package/dist/components/tree/update-cascade.js.map +1 -0
  1087. package/dist/components/typing-indicator/typing-indicator.class.d.ts +71 -0
  1088. package/dist/components/typing-indicator/typing-indicator.class.d.ts.map +1 -0
  1089. package/dist/components/typing-indicator/typing-indicator.class.js +107 -0
  1090. package/dist/components/typing-indicator/typing-indicator.class.js.map +1 -0
  1091. package/dist/components/typing-indicator/typing-indicator.d.ts +2 -70
  1092. package/dist/components/typing-indicator/typing-indicator.d.ts.map +1 -0
  1093. package/dist/components/typing-indicator/typing-indicator.js +3 -106
  1094. package/dist/components/typing-indicator/typing-indicator.js.map +1 -0
  1095. package/dist/components/typing-indicator/typing-indicator.styles.d.ts +1 -0
  1096. package/dist/components/typing-indicator/typing-indicator.styles.d.ts.map +1 -0
  1097. package/dist/components/typing-indicator/typing-indicator.styles.js +7 -6
  1098. package/dist/components/typing-indicator/typing-indicator.styles.js.map +1 -0
  1099. package/dist/components/virtual-list/virtual-list.class.d.ts +215 -0
  1100. package/dist/components/virtual-list/virtual-list.class.d.ts.map +1 -0
  1101. package/dist/components/virtual-list/virtual-list.class.js +609 -0
  1102. package/dist/components/virtual-list/virtual-list.class.js.map +1 -0
  1103. package/dist/components/virtual-list/virtual-list.d.ts +2 -210
  1104. package/dist/components/virtual-list/virtual-list.d.ts.map +1 -0
  1105. package/dist/components/virtual-list/virtual-list.js +3 -605
  1106. package/dist/components/virtual-list/virtual-list.js.map +1 -0
  1107. package/dist/components/virtual-list/virtual-list.styles.d.ts +1 -0
  1108. package/dist/components/virtual-list/virtual-list.styles.d.ts.map +1 -0
  1109. package/dist/components/virtual-list/virtual-list.styles.js +5 -4
  1110. package/dist/components/virtual-list/virtual-list.styles.js.map +1 -0
  1111. package/dist/components/widget/widget.class.d.ts +100 -0
  1112. package/dist/components/widget/widget.class.d.ts.map +1 -0
  1113. package/dist/components/widget/widget.class.js +327 -0
  1114. package/dist/components/widget/widget.class.js.map +1 -0
  1115. package/dist/components/widget/widget.d.ts +2 -65
  1116. package/dist/components/widget/widget.d.ts.map +1 -0
  1117. package/dist/components/widget/widget.js +3 -249
  1118. package/dist/components/widget/widget.js.map +1 -0
  1119. package/dist/components/widget/widget.styles.d.ts +1 -0
  1120. package/dist/components/widget/widget.styles.d.ts.map +1 -0
  1121. package/dist/components/widget/widget.styles.js +54 -9
  1122. package/dist/components/widget/widget.styles.js.map +1 -0
  1123. package/dist/components/word-cloud/word-cloud-layout.d.ts +1 -0
  1124. package/dist/components/word-cloud/word-cloud-layout.d.ts.map +1 -0
  1125. package/dist/components/word-cloud/word-cloud-layout.js +1 -0
  1126. package/dist/components/word-cloud/word-cloud-layout.js.map +1 -0
  1127. package/dist/components/word-cloud/word-cloud.class.d.ts +99 -0
  1128. package/dist/components/word-cloud/word-cloud.class.d.ts.map +1 -0
  1129. package/dist/components/word-cloud/word-cloud.class.js +307 -0
  1130. package/dist/components/word-cloud/word-cloud.class.js.map +1 -0
  1131. package/dist/components/word-cloud/word-cloud.d.ts +2 -91
  1132. package/dist/components/word-cloud/word-cloud.d.ts.map +1 -0
  1133. package/dist/components/word-cloud/word-cloud.js +3 -303
  1134. package/dist/components/word-cloud/word-cloud.js.map +1 -0
  1135. package/dist/components/word-cloud/word-cloud.styles.d.ts +1 -0
  1136. package/dist/components/word-cloud/word-cloud.styles.d.ts.map +1 -0
  1137. package/dist/components/word-cloud/word-cloud.styles.js +32 -18
  1138. package/dist/components/word-cloud/word-cloud.styles.js.map +1 -0
  1139. package/dist/internal/a11y.d.ts +1 -0
  1140. package/dist/internal/a11y.d.ts.map +1 -0
  1141. package/dist/internal/a11y.js +1 -0
  1142. package/dist/internal/a11y.js.map +1 -0
  1143. package/dist/internal/anchored-validity.d.ts +1 -0
  1144. package/dist/internal/anchored-validity.d.ts.map +1 -0
  1145. package/dist/internal/anchored-validity.js +1 -0
  1146. package/dist/internal/anchored-validity.js.map +1 -0
  1147. package/dist/internal/announcer.d.ts +1 -0
  1148. package/dist/internal/announcer.d.ts.map +1 -0
  1149. package/dist/internal/announcer.js +1 -0
  1150. package/dist/internal/announcer.js.map +1 -0
  1151. package/dist/internal/form-associated.d.ts +1 -0
  1152. package/dist/internal/form-associated.d.ts.map +1 -0
  1153. package/dist/internal/form-associated.js +1 -0
  1154. package/dist/internal/form-associated.js.map +1 -0
  1155. package/dist/internal/group-by-recency.d.ts +1 -0
  1156. package/dist/internal/group-by-recency.d.ts.map +1 -0
  1157. package/dist/internal/group-by-recency.js +1 -0
  1158. package/dist/internal/group-by-recency.js.map +1 -0
  1159. package/dist/internal/icons.d.ts +1 -0
  1160. package/dist/internal/icons.d.ts.map +1 -0
  1161. package/dist/internal/icons.js +1 -0
  1162. package/dist/internal/icons.js.map +1 -0
  1163. package/dist/internal/localization.d.ts +27 -0
  1164. package/dist/internal/localization.d.ts.map +1 -0
  1165. package/dist/internal/localization.js +142 -0
  1166. package/dist/internal/localization.js.map +1 -0
  1167. package/dist/internal/lyra-element.d.ts +27 -3
  1168. package/dist/internal/lyra-element.d.ts.map +1 -0
  1169. package/dist/internal/lyra-element.js +52 -3
  1170. package/dist/internal/lyra-element.js.map +1 -0
  1171. package/dist/internal/numbers.d.ts +1 -0
  1172. package/dist/internal/numbers.d.ts.map +1 -0
  1173. package/dist/internal/numbers.js +1 -0
  1174. package/dist/internal/numbers.js.map +1 -0
  1175. package/dist/internal/optional-peer-types.d.ts +8 -0
  1176. package/dist/internal/optional-peer-types.d.ts.map +1 -0
  1177. package/dist/internal/optional-peer-types.js +2 -0
  1178. package/dist/internal/optional-peer-types.js.map +1 -0
  1179. package/dist/internal/overlay-manager.d.ts +1 -0
  1180. package/dist/internal/overlay-manager.d.ts.map +1 -0
  1181. package/dist/internal/overlay-manager.js +1 -0
  1182. package/dist/internal/overlay-manager.js.map +1 -0
  1183. package/dist/internal/positioner.d.ts +1 -0
  1184. package/dist/internal/positioner.d.ts.map +1 -0
  1185. package/dist/internal/positioner.js +1 -0
  1186. package/dist/internal/positioner.js.map +1 -0
  1187. package/dist/internal/prefix.d.ts +1 -0
  1188. package/dist/internal/prefix.d.ts.map +1 -0
  1189. package/dist/internal/prefix.js +9 -2
  1190. package/dist/internal/prefix.js.map +1 -0
  1191. package/dist/internal/root-registration-allowlist.d.ts +8 -0
  1192. package/dist/internal/root-registration-allowlist.d.ts.map +1 -0
  1193. package/dist/internal/root-registration-allowlist.js +102 -0
  1194. package/dist/internal/root-registration-allowlist.js.map +1 -0
  1195. package/dist/internal/rtl.d.ts +1 -0
  1196. package/dist/internal/rtl.d.ts.map +1 -0
  1197. package/dist/internal/rtl.js +1 -0
  1198. package/dist/internal/rtl.js.map +1 -0
  1199. package/dist/internal/safe-url.d.ts +1 -0
  1200. package/dist/internal/safe-url.d.ts.map +1 -0
  1201. package/dist/internal/safe-url.js +1 -0
  1202. package/dist/internal/safe-url.js.map +1 -0
  1203. package/dist/internal/scroll-lock.d.ts +1 -0
  1204. package/dist/internal/scroll-lock.d.ts.map +1 -0
  1205. package/dist/internal/scroll-lock.js +1 -0
  1206. package/dist/internal/scroll-lock.js.map +1 -0
  1207. package/dist/internal/tokens.styles.d.ts +1 -0
  1208. package/dist/internal/tokens.styles.d.ts.map +1 -0
  1209. package/dist/internal/tokens.styles.js +207 -0
  1210. package/dist/internal/tokens.styles.js.map +1 -0
  1211. package/dist/lyra.d.ts +76 -4
  1212. package/dist/lyra.d.ts.map +1 -0
  1213. package/dist/lyra.js +19 -1
  1214. package/dist/lyra.js.map +1 -0
  1215. package/dist/testing/happy-dom-shims.d.ts +40 -0
  1216. package/dist/testing/happy-dom-shims.d.ts.map +1 -0
  1217. package/dist/testing/happy-dom-shims.js +52 -0
  1218. package/dist/testing/happy-dom-shims.js.map +1 -0
  1219. package/llms-full.txt +726 -81
  1220. package/llms.txt +9 -7
  1221. package/package.json +199 -6
@@ -0,0 +1,1295 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html } from 'lit';
8
+ import { property, query, state } from 'lit/decorators.js';
9
+ import { styleMap } from 'lit/directives/style-map.js';
10
+ import { LyraElement } from '../../internal/lyra-element.js';
11
+ import { srOnly } from '../../internal/a11y.js';
12
+ import { linearAlpha, linearBucket, minMax, sqrtStep } from './heatmap-scale.js';
13
+ import { styles } from './heatmap.styles.js';
14
+ import { buildCalendarGrid, parseIsoDate, quartileBucket } from './calendar-grid.js';
15
+ const PAD_LEFT = 60;
16
+ const PAD_TOP = 20;
17
+ const FALLBACK_NO_DATA_FILL = 'rgba(128,128,128,0.25)';
18
+ const RAMP_STEPS = 7;
19
+ const FALLBACK_SCALE_LO = '#cde2fb';
20
+ const FALLBACK_SCALE_HI = '#0969da';
21
+ const FALLBACK_LABEL_FONT = '10px sans-serif';
22
+ const CAL_PAD_LEFT = 28;
23
+ const CAL_LABEL_H = 16;
24
+ /** Calendar mode's original fixed cell size — now also the effective fallback
25
+ * the `cellSize` accessor uses in calendar mode when left unset (see its
26
+ * doc comment), so a consumer who never touches `cellSize` sees no change. */
27
+ const CAL_CELL = 11;
28
+ const CAL_GAP = 2;
29
+ /** Matrix mode's original fixed cell size — the effective fallback the
30
+ * `cellSize` accessor uses in matrix mode when left unset. */
31
+ const DEFAULT_MATRIX_CELL_SIZE = 22;
32
+ const DEFAULT_BUCKET_COUNT = 5;
33
+ /**
34
+ * A linear RGB ramp cannot contain more than 256 visually distinct integer
35
+ * steps on any channel. Keeping the bucket count within that bound avoids an
36
+ * untrusted attribute/property value turning the ramp into an unbounded
37
+ * allocation without discarding any useful color resolution.
38
+ */
39
+ export const MAX_BUCKET_COUNT = 256;
40
+ /** Ring stroke width for both the annotation overlay and the keyboard focus ring. */
41
+ const RING_LINE_WIDTH = 2;
42
+ const FALLBACK_FOCUS_RING_COLOR = '#0969da';
43
+ const FALLBACK_ANNOTATION_COLOR = '#cf222e';
44
+ const ARROW_KEYS = new Set(['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']);
45
+ const MS_PER_DAY = 86_400_000;
46
+ const HEX_RE = /^([0-9a-f]{3}|[0-9a-f]{6})$/i;
47
+ const RGB_RE = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)/i;
48
+ /**
49
+ * Parses a strict `#rgb` or `#rrggbb` hex string into an `[r, g, b]` triple,
50
+ * or `null` if `hex` isn't one (rather than silently coercing an unparsable
51
+ * string to `0` via `Number.parseInt(..., 16)` returning `NaN`).
52
+ */
53
+ export function hexToRgb(hex) {
54
+ const clean = hex.trim().replace('#', '');
55
+ if (!HEX_RE.test(clean))
56
+ return null;
57
+ const full = clean.length === 3 ? clean.split('').map((c) => c + c).join('') : clean;
58
+ const num = Number.parseInt(full, 16);
59
+ return [(num >> 16) & 255, (num >> 8) & 255, num & 255];
60
+ }
61
+ function parseRgbString(value) {
62
+ const match = RGB_RE.exec(value);
63
+ return match ? [Number(match[1]), Number(match[2]), Number(match[3])] : null;
64
+ }
65
+ let scratchCtx;
66
+ /** A detached 1x1 canvas used solely to normalize CSS color strings. */
67
+ function getScratchCtx() {
68
+ if (scratchCtx === undefined) {
69
+ scratchCtx = document.createElement('canvas').getContext('2d');
70
+ }
71
+ return scratchCtx;
72
+ }
73
+ const warnedInvalidColors = new Set();
74
+ function warnInvalidColor(color) {
75
+ if (warnedInvalidColors.has(color))
76
+ return;
77
+ warnedInvalidColors.add(color);
78
+ console.warn(`<lyra-heatmap> could not parse "${color}" (set via --lyra-heatmap-scale-lo/-hi) as a CSS ` +
79
+ 'color; falling back to the default ramp endpoint.');
80
+ }
81
+ /**
82
+ * Normalizes a bucket count to the safe, renderable range. Non-finite values
83
+ * restore the public default; finite values are floored and clamped to
84
+ * `[2, MAX_BUCKET_COUNT]`. Flooring keeps the ramp array's length in exact
85
+ * agreement with the count used by `quartileBucket()`.
86
+ */
87
+ export function normalizeBucketCount(bucketCount) {
88
+ if (!Number.isFinite(bucketCount)) {
89
+ return DEFAULT_BUCKET_COUNT;
90
+ }
91
+ return Math.min(MAX_BUCKET_COUNT, Math.max(2, Math.floor(bucketCount)));
92
+ }
93
+ const bucketCountConverter = {
94
+ fromAttribute(value) {
95
+ return value === null ? DEFAULT_BUCKET_COUNT : normalizeBucketCount(Number(value));
96
+ },
97
+ toAttribute(value) {
98
+ return String(normalizeBucketCount(value));
99
+ },
100
+ };
101
+ /**
102
+ * Resolves any syntactically valid CSS `<color>` — hex, `rgb()`, `hsl()`,
103
+ * `oklch()`, a named color, etc. — to an `[r, g, b]` triple.
104
+ *
105
+ * Hand-rolling a parser for every CSS color syntax is unnecessary and
106
+ * error-prone (a naive hex-only parser silently turns an unrecognized format
107
+ * into `NaN` -> `0`, i.e. solid black). The canvas 2D context already
108
+ * implements the full CSS color grammar via its `fillStyle` setter, so this
109
+ * normalizes through that instead. Assigning an unparsable string to
110
+ * `fillStyle` is a spec'd no-op (the previous value is kept, it never
111
+ * throws), so a sentinel round-trip is used to detect that case and fall
112
+ * back to `fallbackHex` (with a one-time `console.warn`) instead of
113
+ * silently drawing the wrong color.
114
+ */
115
+ export function resolveRgb(color, fallbackHex) {
116
+ const fallback = hexToRgb(fallbackHex) ?? [0, 0, 0];
117
+ const direct = hexToRgb(color);
118
+ if (direct)
119
+ return direct;
120
+ const ctx = getScratchCtx();
121
+ if (!ctx)
122
+ return fallback;
123
+ const sentinel = 'rgb(1, 2, 3)';
124
+ ctx.fillStyle = sentinel;
125
+ const sentinelNormalized = ctx.fillStyle;
126
+ ctx.fillStyle = color;
127
+ if (ctx.fillStyle === sentinelNormalized && color.trim() !== sentinel) {
128
+ warnInvalidColor(color);
129
+ return fallback;
130
+ }
131
+ const normalized = ctx.fillStyle;
132
+ return hexToRgb(normalized) ?? parseRgbString(normalized) ?? fallback;
133
+ }
134
+ /** Linearly interpolates between two already-resolved `[r, g, b]` triples at `t` in `[0, 1]`. */
135
+ function mixRgb(from, to, t) {
136
+ const clamped = Math.min(1, Math.max(0, t));
137
+ const r = Math.round(from[0] + (to[0] - from[0]) * clamped);
138
+ const g = Math.round(from[1] + (to[1] - from[1]) * clamped);
139
+ const b = Math.round(from[2] + (to[2] - from[2]) * clamped);
140
+ return `rgb(${r}, ${g}, ${b})`;
141
+ }
142
+ /** Linearly interpolates between two CSS colors (any valid syntax) at `t` in `[0, 1]`. */
143
+ export function mixColor(fromColor, toColor, t) {
144
+ return mixRgb(resolveRgb(fromColor, FALLBACK_SCALE_LO), resolveRgb(toColor, FALLBACK_SCALE_HI), t);
145
+ }
146
+ /**
147
+ * `<lyra-heatmap>` — a Canvas heatmap with a DPR-aware, resize-aware redraw
148
+ * loop, in one of two `mode`s:
149
+ *
150
+ * - `"matrix"` (default): a `rowLabels` x `colLabels` grid of `values`. `-1`
151
+ * (or any non-finite value) is treated as "no data". `scale="sqrt"`
152
+ * compresses the ramp via `sqrtStep()` so one heavy cell doesn't wash out
153
+ * the rest; the default `"linear"` scale maps linearly instead.
154
+ * - `"calendar"`: a GitHub-style Sunday-Saturday (or `firstDayOfWeek`-anchored
155
+ * — see below) x week grid built from `days`. `scale` governs its
156
+ * bucketing too: the default `"linear"` buckets by `quartileBucket()`
157
+ * (today's original behavior, unchanged); `"sqrt"` instead compresses via
158
+ * the same `sqrtStep()` magnitude compression matrix mode uses, so one
159
+ * heavy day doesn't wash out the rest. As in matrix mode, a cell whose
160
+ * `value` is negative or non-finite is treated as "no data" rather than
161
+ * being bucketed — as is a grid position with no matching entry in `days`
162
+ * at all (a gap in a sparse calendar).
163
+ *
164
+ * The sequential color ramp's endpoints are read from the
165
+ * `--lyra-heatmap-scale-lo`/`-hi` custom properties (declared in
166
+ * `heatmap.styles.ts`) so hosts can retheme it — canvas can't consume
167
+ * `var()` directly, so they're resolved once per draw via
168
+ * `getComputedStyle`, then normalized to RGB by `resolveRgb()` (any valid
169
+ * CSS color syntax, not just hex — see its doc comment).
170
+ *
171
+ * Every cell is independently addressable: a `pointermove` hit test over the
172
+ * canvas shows `[part="tooltip"]` with that cell's label + value (hidden on
173
+ * `pointerleave`); the canvas is `tabindex="0"` with arrow-key roving focus
174
+ * (a stroked ring redrawn over the focused cell on every draw, plus a
175
+ * visually-hidden `aria-live="polite"` status announcement — avoids a
176
+ * DOM-node-per-cell overlay, which would be hundreds of nodes for a year
177
+ * calendar); and a click, or Enter/Space on the focused cell, fires
178
+ * `lyra-cell-click`. `annotations` additionally strokes a ring around
179
+ * specific cells (e.g. to call out an anomaly), each one optionally
180
+ * surfaced in the legend too via `[part="legend-annotation"]`.
181
+ *
182
+ * `columnX` (calendar mode only) overrides the x-origin computed for each
183
+ * week column — drawing, hit-testing, the focus ring, and month-label
184
+ * positioning all consult it consistently, so a consumer can pixel-align a
185
+ * calendar's week columns with a sibling chart's coordinate system. Unset
186
+ * (the default) keeps the original evenly-spaced formula. `rowY` is its
187
+ * calendar-mode vertical analogue — overrides the y-origin computed for each
188
+ * weekday row, consulted consistently by drawing, hit-testing, and the focus
189
+ * ring via the private `rowYFor()` helper (mirroring `columnXFor()` exactly).
190
+ *
191
+ * `firstDayOfWeek` (calendar mode only, default `0`/Sunday, no-op in matrix
192
+ * mode) anchors the calendar grid at a different weekday — `0`-`6`, same
193
+ * numbering as `CalendarCellPos.weekday` (`0` Sunday .. `6` Saturday) —
194
+ * threaded into `buildCalendarGrid()`.
195
+ *
196
+ * `cellSize`/`fitToWidth` (previously matrix-mode only) also drive calendar
197
+ * mode's per-cell size: unset, calendar mode keeps today's original 11px
198
+ * cell size unchanged; explicitly set, the same fixed size (or, with
199
+ * `fitToWidth`, the same host-width-derived size matrix mode already
200
+ * supports) governs calendar mode's grid too.
201
+ *
202
+ * @customElement lyra-heatmap
203
+ * @event lyra-cell-click - Fired on click, or Enter/Space on the
204
+ * focused/hovered cell. `detail: { row, col, value }` in matrix mode,
205
+ * `detail: { date, value }` in calendar mode. `cellText` overrides the
206
+ * built-in English "Row X, Col Y: value" / "Mon DD: value" template used for
207
+ * both the hover tooltip and the keyboard live-region announcement.
208
+ * `cellColor` overrides a cell's ramp-computed color entirely for an exact value.
209
+ * @csspart base - The heatmap wrapper.
210
+ * @csspart canvas - The heatmap canvas.
211
+ * @csspart tooltip - The hover tooltip.
212
+ * @csspart live-region - The visually hidden keyboard announcement region.
213
+ * @csspart legend - The color legend.
214
+ * @csspart legend-lo - The low legend endpoint.
215
+ * @csspart legend-hi - The high legend endpoint.
216
+ * @csspart legend-annotation - An annotation label.
217
+ */
218
+ export class LyraHeatmap extends LyraElement {
219
+ constructor() {
220
+ super(...arguments);
221
+ this.rowLabels = [];
222
+ this.colLabels = [];
223
+ this.values = [];
224
+ this.valueLabel = 'value';
225
+ /**
226
+ * `"linear"` (default) maps values linearly to the color ramp in matrix
227
+ * mode, and buckets calendar-mode values via `quartileBucket()` — both
228
+ * unchanged from before this property governed calendar mode too.
229
+ * `"sqrt"` compresses via `sqrtStep()`'s square-root magnitude compression
230
+ * instead, in *both* modes, so one heavy cell/day doesn't wash out the
231
+ * rest of a skewed dataset.
232
+ */
233
+ this.scale = 'linear';
234
+ /**
235
+ * When set, `cellSize` is derived from the host's measured `clientWidth`
236
+ * on every draw (including ResizeObserver-triggered redraws) instead of
237
+ * the fixed `cell-size` attribute, so the grid actually fills the
238
+ * available width. Without this, canvas dimensions are computed purely
239
+ * from `PAD_LEFT + cols * cellSize` (matrix mode) or
240
+ * `CAL_PAD_LEFT + weekCount * cellSize` (calendar mode), so a
241
+ * resize-triggered redraw is a geometric no-op. Originally matrix-mode
242
+ * only; now applies to calendar mode too.
243
+ */
244
+ this.fitToWidth = false;
245
+ this.mode = 'matrix';
246
+ this.days = [];
247
+ /**
248
+ * Calendar mode only (no-op in matrix mode): anchors the calendar grid at
249
+ * a different weekday instead of always Sunday — `0`-`6`, same numbering
250
+ * as `CalendarCellPos.weekday` (`0` Sunday .. `6` Saturday, matching
251
+ * `CalendarCell.weekday`'s existing convention). Threaded into
252
+ * `buildCalendarGrid()`. Defaults to `0` (Sunday), unchanged from before
253
+ * this property existed.
254
+ */
255
+ this.firstDayOfWeek = 0;
256
+ this._bucketCount = DEFAULT_BUCKET_COUNT;
257
+ /** Cells to ring-highlight — `row`/`col` in matrix mode, `date` in calendar mode. See `HeatmapAnnotation`. */
258
+ this.annotations = [];
259
+ this.themeRefreshQueued = false;
260
+ /** The current value range, refreshed once per update cycle by `willUpdate()`. See `computeValueRange()`. */
261
+ this.cachedValueRange = null;
262
+ /**
263
+ * The calendar-mode grid layout, refreshed by `willUpdate()` only when
264
+ * `days` actually changes (see `computeValueRange()`'s twin comment above)
265
+ * — `buildCalendarGrid()` parses every date, filters invalid ones, and does
266
+ * a full `.slice().sort()` for month labels, so recomputing it from
267
+ * `drawCalendar()`, `hitTestCalendar()`, `calendarCellAt()`, and
268
+ * `onCalendarKeyDown()` independently would redo that work 2-4x for a
269
+ * single hover/click/keydown.
270
+ */
271
+ this.cachedCalendarGrid = buildCalendarGrid(this.days);
272
+ this.cachedCalendarSortedValues = [];
273
+ this.cachedCalendarCellsByPos = new Map();
274
+ this.cachedRamp = null;
275
+ /** The cell currently under the pointer (`null` when not hovering one) — drives `[part="tooltip"]`. */
276
+ this.hoverCell = null;
277
+ /** The roving keyboard-focus cell cursor, moved by arrow keys — drives the
278
+ * canvas-drawn focus ring and the `[part="live-region"]` announcement. */
279
+ this.focusedCell = null;
280
+ /** Text of the visually-hidden `aria-live="polite"` status announcement, refreshed on every focus move. */
281
+ this.liveText = '';
282
+ /**
283
+ * Whether `role`/`aria-label` were present on the host *before* this
284
+ * element's own code ever wrote to them — snapshotted once, in the very
285
+ * first `willUpdate()` (guarded by `hasUpdated`, which Lit only flips to
286
+ * `true` after that first update commits). Re-checking `hasAttribute()` on
287
+ * every update instead would self-poison: once this element writes its own
288
+ * default `aria-label` on the first render, `hasAttribute('aria-label')`
289
+ * is permanently `true` afterwards, which would wrongly look like an
290
+ * author-supplied value and freeze the label instead of refreshing it as
291
+ * `values`/`days` change on later updates.
292
+ */
293
+ this.authorSuppliedRole = false;
294
+ this.authorSuppliedAriaLabel = false;
295
+ this.onDprChange = () => {
296
+ this.watchDpr();
297
+ this.draw();
298
+ };
299
+ this.onColorSchemeChange = () => {
300
+ this.refreshTheme();
301
+ };
302
+ this.queueThemeRefresh = () => {
303
+ if (this.themeRefreshQueued)
304
+ return;
305
+ this.themeRefreshQueued = true;
306
+ queueMicrotask(() => {
307
+ this.themeRefreshQueued = false;
308
+ if (this.isConnected)
309
+ this.refreshTheme();
310
+ });
311
+ };
312
+ this.scheduleDraw = () => {
313
+ if (this.drawRafId !== undefined)
314
+ return;
315
+ this.drawRafId = requestAnimationFrame(() => {
316
+ this.drawRafId = undefined;
317
+ if (this.isConnected)
318
+ this.draw();
319
+ });
320
+ };
321
+ this.onPointerMove = (e) => {
322
+ const next = this.hitTest(e.offsetX, e.offsetY);
323
+ if (!this.samePos(this.hoverCell, next))
324
+ this.hoverCell = next;
325
+ };
326
+ this.onPointerLeave = () => {
327
+ this.hoverCell = null;
328
+ };
329
+ this.onCanvasClick = (e) => {
330
+ // Only the click's own hit-tested position counts — a click that lands
331
+ // outside the grid (e.g. on the canvas's own padding) is a genuine
332
+ // out-of-grid click and should do nothing, not fall back to whatever
333
+ // cell happens to still be keyboard-focused from an earlier interaction.
334
+ const pos = this.hitTest(e.offsetX, e.offsetY);
335
+ if (!pos)
336
+ return;
337
+ this.focusedCell = pos;
338
+ this.announce(pos);
339
+ this.emitCellClick(pos);
340
+ };
341
+ this.onKeyDown = (e) => {
342
+ if (this.mode === 'calendar')
343
+ this.onCalendarKeyDown(e);
344
+ else
345
+ this.onMatrixKeyDown(e);
346
+ };
347
+ }
348
+ static { this.styles = [LyraElement.styles, styles, srOnly]; }
349
+ /**
350
+ * Effective per-cell size (CSS px). Originally matrix-mode only; now also
351
+ * governs calendar mode's cell size (replacing the previously hardcoded
352
+ * 11px constant there) once explicitly set. Left unset, each mode keeps
353
+ * its own original default — `DEFAULT_MATRIX_CELL_SIZE` (22) in matrix
354
+ * mode, `CAL_CELL` (11) in calendar mode — so an existing consumer who
355
+ * never touches `cellSize` sees no change in either mode. Set explicitly
356
+ * (attribute or property), the same value governs both modes alike.
357
+ */
358
+ get cellSize() {
359
+ return this._cellSize ?? (this.mode === 'calendar' ? CAL_CELL : DEFAULT_MATRIX_CELL_SIZE);
360
+ }
361
+ set cellSize(value) {
362
+ const oldValue = this._cellSize;
363
+ this._cellSize = value;
364
+ this.requestUpdate('cellSize', oldValue);
365
+ }
366
+ get bucketCount() {
367
+ return this._bucketCount;
368
+ }
369
+ set bucketCount(value) {
370
+ const oldValue = this._bucketCount;
371
+ this._bucketCount = normalizeBucketCount(value);
372
+ this.requestUpdate('bucketCount', oldValue);
373
+ }
374
+ connectedCallback() {
375
+ super.connectedCallback();
376
+ this.resizeObserver = new ResizeObserver(this.scheduleDraw);
377
+ this.resizeObserver.observe(this);
378
+ this.watchDpr();
379
+ this.watchTheme();
380
+ }
381
+ disconnectedCallback() {
382
+ super.disconnectedCallback();
383
+ this.resizeObserver?.disconnect();
384
+ this.dprQuery?.removeEventListener('change', this.onDprChange);
385
+ this.colorSchemeQuery?.removeEventListener('change', this.onColorSchemeChange);
386
+ this.themeObserver?.disconnect();
387
+ this.themeObserver = undefined;
388
+ if (this.drawRafId !== undefined) {
389
+ cancelAnimationFrame(this.drawRafId);
390
+ this.drawRafId = undefined;
391
+ }
392
+ }
393
+ watchDpr() {
394
+ // A MediaQueryList's `matches` is fixed at creation time, so crossing the
395
+ // DPR threshold it was built for means building a fresh one for the new
396
+ // ratio — remove the previous instance's listener first, or it leaks
397
+ // (disconnectedCallback only ever cleans up whichever is current).
398
+ this.dprQuery?.removeEventListener('change', this.onDprChange);
399
+ this.dprQuery = matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);
400
+ this.dprQuery.addEventListener('change', this.onDprChange);
401
+ }
402
+ watchTheme() {
403
+ const view = this.ownerDocument.defaultView;
404
+ if (!view)
405
+ return;
406
+ this.colorSchemeQuery = view.matchMedia?.('(prefers-color-scheme: dark)');
407
+ this.colorSchemeQuery?.addEventListener('change', this.onColorSchemeChange);
408
+ if (typeof MutationObserver === 'undefined')
409
+ return;
410
+ const targets = [this];
411
+ let parent = this.parentElement;
412
+ while (parent) {
413
+ targets.push(parent);
414
+ parent = parent.parentElement;
415
+ }
416
+ this.themeObserver = new MutationObserver(this.queueThemeRefresh);
417
+ for (const target of targets) {
418
+ this.themeObserver.observe(target, {
419
+ attributes: true,
420
+ attributeFilter: ['class', 'style', 'data-theme', 'data-color-scheme'],
421
+ });
422
+ }
423
+ }
424
+ willUpdate(changed) {
425
+ if (changed.has('mode') ||
426
+ changed.has('rowLabels') ||
427
+ changed.has('colLabels') ||
428
+ changed.has('days') ||
429
+ changed.has('firstDayOfWeek') ||
430
+ changed.has('cellInteractive')) {
431
+ // The previous focus/hover cursor may no longer address a real cell
432
+ // once the grid's shape (or mode) changes out from under it —
433
+ // stroking a focus ring at a stale (row, col)/(week, weekday), or
434
+ // leaving the live region announcing a stale value, would be actively
435
+ // misleading, so drop both instead. Reactive-property writes belong in
436
+ // willUpdate() (not updated()), which folds them into this same
437
+ // render rather than scheduling a whole extra update pass. A
438
+ // `firstDayOfWeek` change reshuffles every cell's week/weekday the same
439
+ // way a `days` change does, so it resets the cursor too.
440
+ this.focusedCell = null;
441
+ this.hoverCell = null;
442
+ this.liveText = '';
443
+ }
444
+ // Calendar-mode grid layout depends only on `days`/`firstDayOfWeek` (not
445
+ // `mode`) — rebuilt here, once per cycle, instead of independently by
446
+ // every call site (see `cachedCalendarGrid`'s doc comment).
447
+ if (changed.has('days') || changed.has('firstDayOfWeek') || !this.hasUpdated) {
448
+ this.cachedCalendarGrid = buildCalendarGrid(this.days, this.firstDayOfWeek);
449
+ this.cachedCalendarSortedValues = this.cachedCalendarGrid.cells
450
+ .map((cell) => cell.value)
451
+ .filter((value) => Number.isFinite(value) && value >= 0)
452
+ .sort((a, b) => a - b);
453
+ this.cachedCalendarCellsByPos = new Map(this.cachedCalendarGrid.cells.map((cell) => [`${cell.week}:${cell.weekday}`, cell]));
454
+ }
455
+ if (!this.hasUpdated) {
456
+ this.authorSuppliedRole = this.hasAttribute('role');
457
+ this.authorSuppliedAriaLabel = this.hasAttribute('aria-label');
458
+ }
459
+ if (changed.has('colorSteps') || !this.hasUpdated) {
460
+ if (this.colorSteps && this.colorSteps.length >= 2) {
461
+ this.style.setProperty('--lyra-heatmap-color-steps-gradient', `linear-gradient(to right, ${this.colorSteps.join(', ')})`);
462
+ }
463
+ else {
464
+ this.style.removeProperty('--lyra-heatmap-color-steps-gradient');
465
+ }
466
+ }
467
+ // A hover/keyboard-focus @state() change (hoverCell/focusedCell/liveText)
468
+ // triggers this same willUpdate() but never touches values/days/mode, so
469
+ // gating the O(rows*cols) rescan the same way the focus/hover reset above
470
+ // is gated avoids redoing it on every pointer move.
471
+ if (changed.has('values') || changed.has('days') || changed.has('mode') || !this.hasUpdated) {
472
+ this.cachedValueRange = this.computeValueRange();
473
+ }
474
+ const bounds = this.cachedValueRange;
475
+ const range = bounds ? `${bounds[0]}–${bounds[1]}` : 'no data';
476
+ // Only default role/aria-label when the author hasn't already supplied
477
+ // one — the canvas is a genuinely focusable/interactive control
478
+ // (tabindex="0", click/keydown handlers) plus a live role="status"
479
+ // region, so unconditionally forcing a role here would tell assistive
480
+ // tech to flatten the whole subtree, hiding both from the accessibility
481
+ // tree; it would also silently overwrite any author-supplied
482
+ // role/aria-label on every update.
483
+ if (!this.authorSuppliedRole)
484
+ this.setAttribute('role', 'group');
485
+ if (!this.authorSuppliedAriaLabel) {
486
+ if (this.mode === 'calendar') {
487
+ this.setAttribute('aria-label', `Calendar heatmap of ${this.days.length} days, ${this.valueLabel} range ${range}`);
488
+ }
489
+ else {
490
+ const rows = this.rowLabels.length;
491
+ const cols = this.colLabels.length;
492
+ this.setAttribute('aria-label', `Heatmap of ${rows} × ${cols} cells, ${this.valueLabel} range ${range}`);
493
+ }
494
+ }
495
+ }
496
+ /**
497
+ * The real (non-no-data) value range across `values` (or `days` in
498
+ * calendar mode), or `null` if there is none. Only called from
499
+ * `willUpdate()`, which caches the result in `cachedValueRange` for
500
+ * `render()` and `drawMatrix()` to reuse — `willUpdate()`, `render()`, and
501
+ * `updated()` (which triggers `draw()`) all run within the same Lit update
502
+ * cycle against the same `values`/`days`, so a single scan per cycle
503
+ * suffices instead of one per consumer.
504
+ */
505
+ computeValueRange() {
506
+ const source = this.mode === 'calendar' ? this.days.map((d) => d.value) : this.values.flat();
507
+ return minMax(source.filter((v) => Number.isFinite(v) && v >= 0));
508
+ }
509
+ updated(changed) {
510
+ if ([
511
+ 'values',
512
+ 'rowLabels',
513
+ 'colLabels',
514
+ 'cellSize',
515
+ 'valueLabel',
516
+ 'scale',
517
+ 'fitToWidth',
518
+ 'mode',
519
+ 'days',
520
+ 'bucketCount',
521
+ 'annotations',
522
+ 'columnX',
523
+ 'rowY',
524
+ 'firstDayOfWeek',
525
+ 'focusedCell',
526
+ 'colorSteps',
527
+ 'cellColor',
528
+ ].some((name) => changed.has(name))) {
529
+ this.draw();
530
+ }
531
+ }
532
+ /** Redraws canvas content after an upstream token or theme change. */
533
+ refreshTheme() {
534
+ this.draw();
535
+ }
536
+ /** Reads the customizable ramp endpoints off the host's computed style. */
537
+ scaleEndpoints() {
538
+ const cs = getComputedStyle(this);
539
+ const lo = cs.getPropertyValue('--lyra-heatmap-scale-lo').trim() || FALLBACK_SCALE_LO;
540
+ const hi = cs.getPropertyValue('--lyra-heatmap-scale-hi').trim() || FALLBACK_SCALE_HI;
541
+ return [lo, hi];
542
+ }
543
+ /** Resolves the `--lyra-color-text-quiet` chrome token for axis labels. */
544
+ labelColor() {
545
+ return getComputedStyle(this).getPropertyValue('--lyra-color-text-quiet').trim() || '#6b7280';
546
+ }
547
+ /** Reads the customizable canvas axis/label font off the host's computed style. */
548
+ labelFont() {
549
+ return getComputedStyle(this).getPropertyValue('--lyra-heatmap-label-font').trim() || FALLBACK_LABEL_FONT;
550
+ }
551
+ /** Reads the customizable no-data cell fill off the host's computed style. */
552
+ noDataFill() {
553
+ return getComputedStyle(this).getPropertyValue('--lyra-heatmap-no-data-fill').trim() || FALLBACK_NO_DATA_FILL;
554
+ }
555
+ /** Reads the customizable canvas-drawn keyboard-focus-ring stroke color off the host's computed style. */
556
+ focusRingColor() {
557
+ return (getComputedStyle(this).getPropertyValue('--lyra-heatmap-focus-ring-color').trim() || FALLBACK_FOCUS_RING_COLOR);
558
+ }
559
+ /** Reads the customizable canvas-drawn annotation-ring stroke color off the host's computed style. */
560
+ annotationColor() {
561
+ return (getComputedStyle(this).getPropertyValue('--lyra-heatmap-annotation-color').trim() || FALLBACK_ANNOTATION_COLOR);
562
+ }
563
+ draw() {
564
+ if (this.mode === 'calendar')
565
+ this.drawCalendar();
566
+ else
567
+ this.drawMatrix();
568
+ }
569
+ colorRamp(bucketCount) {
570
+ const steps = this.colorSteps;
571
+ if (steps && steps.length >= 2) {
572
+ const key = `steps ${steps.join(' ')}`;
573
+ if (this.cachedRamp?.key === key)
574
+ return this.cachedRamp;
575
+ const colors = steps.map((c) => {
576
+ const [r, g, b] = resolveRgb(c, FALLBACK_SCALE_LO);
577
+ return `rgb(${r}, ${g}, ${b})`;
578
+ });
579
+ const loRgb = resolveRgb(steps[0], FALLBACK_SCALE_LO);
580
+ const hiRgb = resolveRgb(steps[steps.length - 1], FALLBACK_SCALE_HI);
581
+ this.cachedRamp = { key, colors, loRgb, hiRgb };
582
+ return this.cachedRamp;
583
+ }
584
+ const [scaleLo, scaleHi] = this.scaleEndpoints();
585
+ const normalizedBucketCount = normalizeBucketCount(bucketCount);
586
+ const key = `${scaleLo}\u0000${scaleHi}\u0000${normalizedBucketCount}`;
587
+ if (this.cachedRamp?.key === key)
588
+ return this.cachedRamp;
589
+ const loRgb = resolveRgb(scaleLo, FALLBACK_SCALE_LO);
590
+ const hiRgb = resolveRgb(scaleHi, FALLBACK_SCALE_HI);
591
+ const colors = Array.from({ length: normalizedBucketCount }, (_, i) => mixRgb(loRgb, hiRgb, i / (normalizedBucketCount - 1)));
592
+ this.cachedRamp = { key, colors, loRgb, hiRgb };
593
+ return this.cachedRamp;
594
+ }
595
+ /**
596
+ * Effective per-cell size in calendar mode — mirrors `matrixCellSize()`
597
+ * exactly: `fitToWidth` derives it from the host's measured width,
598
+ * otherwise it's the (possibly explicitly-set) `cellSize` property, which
599
+ * itself falls back to today's original 11px calendar default when left
600
+ * unset (see `cellSize`'s accessor doc comment). Shared by `columnXFor()`,
601
+ * `rowYFor()`, `drawCalendar()`, and the hit-testing below (`weekAtX()`,
602
+ * `weekdayAtY()`, `cellRect()`) so they always agree on exactly the same
603
+ * geometry as what's actually painted.
604
+ */
605
+ calendarCellSize() {
606
+ const { weekCount } = this.cachedCalendarGrid;
607
+ if (this.fitToWidth && weekCount > 0) {
608
+ // Unlike matrix mode's contiguous cells, calendar columns are spaced
609
+ // `cellSize + CAL_GAP` apart (see `columnXFor()`), so the gap has to be
610
+ // subtracted back out here — otherwise the painted width would overshoot
611
+ // `hostWidth` by `weekCount * CAL_GAP` (every column's gap, once each).
612
+ const hostWidth = this.clientWidth || CAL_PAD_LEFT + weekCount * (this.cellSize + CAL_GAP);
613
+ return Math.max(4, (hostWidth - CAL_PAD_LEFT) / weekCount - CAL_GAP);
614
+ }
615
+ return this.cellSize;
616
+ }
617
+ /**
618
+ * Calendar-mode week-column x-origin (canvas-local CSS px) — `columnX(week)`
619
+ * when set, otherwise the original evenly-spaced formula (now derived from
620
+ * `calendarCellSize()` rather than the fixed `CAL_CELL` constant). Shared
621
+ * by every calendar-mode drawing and hit-testing call site (`drawCalendar()`,
622
+ * `hitTestCalendar()`/`weekAtX()`, `cellRect()`) so painted geometry and
623
+ * interactive hit-testing never disagree — mirrors the existing
624
+ * `matrixCellSize()` invariant for matrix mode's
625
+ * `drawMatrix()`/`hitTestMatrix()`/`cellRect()`.
626
+ */
627
+ columnXFor(week) {
628
+ return this.columnX ? this.columnX(week) : CAL_PAD_LEFT + week * (this.calendarCellSize() + CAL_GAP);
629
+ }
630
+ /**
631
+ * Calendar-mode weekday-row y-origin (canvas-local CSS px) — `rowY(weekday)`
632
+ * when set, otherwise the original evenly-spaced formula (now derived from
633
+ * `calendarCellSize()` rather than the fixed `CAL_CELL` constant). The
634
+ * vertical analogue of `columnXFor()`, mirroring its exact
635
+ * dispatch-with-computed-fallback shape and shared by the same
636
+ * drawing/hit-testing/focus-ring call sites.
637
+ */
638
+ rowYFor(weekday) {
639
+ return this.rowY ? this.rowY(weekday) : CAL_LABEL_H + weekday * (this.calendarCellSize() + CAL_GAP);
640
+ }
641
+ /**
642
+ * Inverse of `columnXFor()`: resolves an x position (canvas-local CSS px)
643
+ * to the week column it falls in, or `null` if it's outside every column
644
+ * (`weekCount` is 0, or `x` doesn't land inside `[0, weekCount)`'s span).
645
+ * The default spacing has a closed-form inverse (division); an arbitrary
646
+ * `columnX` override doesn't, so that case instead scans each column's
647
+ * `[columnXFor(week), columnXFor(week + 1))` span — algebraically the same
648
+ * span the default formula's division derives — so hit-testing always
649
+ * agrees with wherever `columnXFor()` actually painted that column.
650
+ */
651
+ weekAtX(x, weekCount) {
652
+ if (!this.columnX) {
653
+ const cellSize = this.calendarCellSize();
654
+ const week = Math.floor((x - CAL_PAD_LEFT) / (cellSize + CAL_GAP));
655
+ return week >= 0 && week < weekCount ? week : null;
656
+ }
657
+ for (let week = 0; week < weekCount; week++) {
658
+ const start = this.columnXFor(week);
659
+ const end = week + 1 < weekCount ? this.columnXFor(week + 1) : start + (this.calendarCellSize() + CAL_GAP);
660
+ if (x >= start && x < end)
661
+ return week;
662
+ }
663
+ return null;
664
+ }
665
+ /**
666
+ * Inverse of `rowYFor()`: resolves a y position (canvas-local CSS px) to
667
+ * the weekday row it falls in (0-6), or `null` if it's outside every row.
668
+ * Mirrors `weekAtX()`'s closed-form-vs-scan split for the same reason: the
669
+ * default spacing has a closed-form inverse; an arbitrary `rowY` override
670
+ * doesn't.
671
+ */
672
+ weekdayAtY(y) {
673
+ if (!this.rowY) {
674
+ const cellSize = this.calendarCellSize();
675
+ const weekday = Math.floor((y - CAL_LABEL_H) / (cellSize + CAL_GAP));
676
+ return weekday >= 0 && weekday < 7 ? weekday : null;
677
+ }
678
+ for (let weekday = 0; weekday < 7; weekday++) {
679
+ const start = this.rowYFor(weekday);
680
+ const end = weekday + 1 < 7 ? this.rowYFor(weekday + 1) : start + (this.calendarCellSize() + CAL_GAP);
681
+ if (y >= start && y < end)
682
+ return weekday;
683
+ }
684
+ return null;
685
+ }
686
+ /**
687
+ * Locale-derived weekday-axis labels for the 7 rows drawn down the left of
688
+ * the calendar grid. Only indices 1, 3, and 5 (relative to `firstWeekStart`)
689
+ * are filled in — matching today's sparse every-other-day label density —
690
+ * the rest stay blank. `firstWeekStart` is always the UTC
691
+ * `firstDayOfWeek`-weekday by construction (see `buildCalendarGrid()`), so
692
+ * weekday index 0..6 is a fixed positional mapping relative to it (with the
693
+ * default `firstDayOfWeek` of 0, that's the original Sun..Sat mapping,
694
+ * unchanged); only the label *text* for indices 1/3/5 is derived here, via
695
+ * `Intl.DateTimeFormat` on a real UTC date that actually falls on that
696
+ * weekday, so it follows the runtime locale instead of a hardcoded English
697
+ * array (see `calendarCellText()`'s tooltip text for the same pattern).
698
+ */
699
+ weekdayLabels(firstWeekStart) {
700
+ const formatter = new Intl.DateTimeFormat(undefined, { weekday: 'short', timeZone: 'UTC' });
701
+ const labels = ['', '', '', '', '', '', ''];
702
+ for (const weekday of [1, 3, 5]) {
703
+ labels[weekday] = formatter.format(new Date(firstWeekStart.getTime() + weekday * MS_PER_DAY));
704
+ }
705
+ return labels;
706
+ }
707
+ drawCalendar() {
708
+ if (!this.canvas)
709
+ return;
710
+ const { cells, weekCount, firstWeekStart, monthLabels } = this.cachedCalendarGrid;
711
+ const cellSize = this.calendarCellSize();
712
+ const w = this.columnXFor(Math.max(1, weekCount));
713
+ // Derived from `rowYFor(7)` (one past the last of the 7 weekday rows), the
714
+ // vertical mirror of `w`'s `columnXFor(weekCount)` — so a custom `rowY`
715
+ // that spaces rows out further than the default formula still gets a
716
+ // canvas tall enough to paint every row, instead of clipping them.
717
+ const h = this.rowYFor(7);
718
+ const dpr = window.devicePixelRatio || 1;
719
+ this.canvas.width = w * dpr;
720
+ this.canvas.height = h * dpr;
721
+ this.canvas.style.width = `${w}px`;
722
+ this.canvas.style.height = `${h}px`;
723
+ const ctx = this.canvas.getContext('2d');
724
+ if (!ctx)
725
+ return;
726
+ ctx.scale(dpr, dpr);
727
+ ctx.clearRect(0, 0, w, h);
728
+ // Normalize at the allocation boundary as a final guard even though the
729
+ // public accessor and attribute converter already normalize their inputs.
730
+ const buckets = normalizeBucketCount(this.bucketCount);
731
+ const ramp = this.colorRamp(buckets).colors;
732
+ const noDataFill = this.noDataFill();
733
+ // Only consulted when `scale === 'sqrt'` — mirrors `drawMatrix()`'s own
734
+ // `hi` bound, reusing the already-cached value range instead of
735
+ // rescanning `sortedValues` for its max.
736
+ const bounds = this.cachedValueRange;
737
+ const lo = bounds ? bounds[0] : 0;
738
+ const hi = bounds ? bounds[1] : 1;
739
+ // Indexed once per draw so every (week, weekday) grid position can be
740
+ // painted below, not just positions with a matching entry in `cells` — a
741
+ // day missing from `days` entirely (a gap in a sparse calendar) still
742
+ // gets a real grid cell (see `calendarCellAt()`'s doc comment for the
743
+ // same `-1` no-data sentinel used here) instead of being left
744
+ // transparent.
745
+ for (let week = 0; week < weekCount; week++) {
746
+ for (let weekday = 0; weekday < 7; weekday++) {
747
+ const value = this.cachedCalendarCellsByPos.get(`${week}:${weekday}`)?.value ?? -1;
748
+ const x = this.columnXFor(week);
749
+ const y = this.rowYFor(weekday);
750
+ const override = this.cellColor?.({ week, weekday }, value);
751
+ if (override != null) {
752
+ ctx.fillStyle = override;
753
+ }
754
+ else if (value < 0 || !Number.isFinite(value)) {
755
+ ctx.fillStyle = noDataFill;
756
+ }
757
+ else if (this.scale === 'sqrt') {
758
+ const step = sqrtStep(value, hi, ramp.length);
759
+ ctx.fillStyle = step < 0 ? noDataFill : ramp[step];
760
+ }
761
+ else if (this.colorSteps && this.colorSteps.length >= 2) {
762
+ const step = linearBucket(value, lo, hi, ramp.length);
763
+ ctx.fillStyle = ramp[step];
764
+ }
765
+ else {
766
+ ctx.fillStyle = ramp[quartileBucket(value, this.cachedCalendarSortedValues, buckets)];
767
+ }
768
+ ctx.fillRect(x, y, cellSize, cellSize);
769
+ }
770
+ }
771
+ // Annotation ring overlay, stroked after the fill pass so it reads
772
+ // clearly over the data-driven cell color — see drawMatrix()'s twin of
773
+ // this block for the matrix-mode equivalent.
774
+ if (this.annotations.length) {
775
+ ctx.lineWidth = RING_LINE_WIDTH;
776
+ ctx.strokeStyle = this.annotationColor();
777
+ for (const ann of this.annotations) {
778
+ if (ann.date == null)
779
+ continue;
780
+ const match = cells.find((c) => c.date === ann.date);
781
+ if (!match)
782
+ continue;
783
+ const x = this.columnXFor(match.week);
784
+ const y = this.rowYFor(match.weekday);
785
+ ctx.strokeRect(x + 0.5, y + 0.5, cellSize - 1, cellSize - 1);
786
+ }
787
+ }
788
+ // Keyboard focus ring, redrawn on top of the fill pass (and any
789
+ // annotation rings) on every draw.
790
+ if (this.focusedCell && 'week' in this.focusedCell) {
791
+ const { week, weekday } = this.focusedCell;
792
+ if (week < weekCount && weekday < 7) {
793
+ ctx.lineWidth = RING_LINE_WIDTH;
794
+ ctx.strokeStyle = this.focusRingColor();
795
+ const x = this.columnXFor(week);
796
+ const y = this.rowYFor(weekday);
797
+ ctx.strokeRect(x + 0.5, y + 0.5, cellSize - 1, cellSize - 1);
798
+ }
799
+ }
800
+ ctx.fillStyle = this.labelColor();
801
+ ctx.font = this.labelFont();
802
+ for (const m of monthLabels) {
803
+ ctx.fillText(m.label, this.columnXFor(m.week), CAL_LABEL_H - 4);
804
+ }
805
+ const WEEKDAY_LABELS = this.weekdayLabels(firstWeekStart);
806
+ WEEKDAY_LABELS.forEach((label, weekday) => {
807
+ if (label)
808
+ ctx.fillText(label, 2, this.rowYFor(weekday) + cellSize - 1);
809
+ });
810
+ }
811
+ /**
812
+ * Effective per-cell size in matrix mode — `fitToWidth` derives it from
813
+ * the host's measured width, otherwise it's the fixed `cellSize`
814
+ * property. Shared by `drawMatrix()` and the pointer/keyboard hit-testing
815
+ * below (`hitTestMatrix()`, `cellRect()`) so they always agree on exactly
816
+ * the same geometry as what's actually painted.
817
+ */
818
+ matrixCellSize(cols) {
819
+ if (this.fitToWidth && cols > 0) {
820
+ const hostWidth = this.clientWidth || PAD_LEFT + cols * this.cellSize;
821
+ return Math.max(4, (hostWidth - PAD_LEFT) / cols);
822
+ }
823
+ return this.cellSize;
824
+ }
825
+ drawMatrix() {
826
+ if (!this.canvas)
827
+ return;
828
+ const rows = this.rowLabels.length;
829
+ const cols = this.colLabels.length;
830
+ const cellSize = this.matrixCellSize(cols);
831
+ const w = PAD_LEFT + cols * cellSize;
832
+ const h = PAD_TOP + rows * cellSize;
833
+ const dpr = window.devicePixelRatio || 1;
834
+ this.canvas.width = w * dpr;
835
+ this.canvas.height = h * dpr;
836
+ this.canvas.style.width = `${w}px`;
837
+ this.canvas.style.height = `${h}px`;
838
+ const ctx = this.canvas.getContext('2d');
839
+ if (!ctx)
840
+ return;
841
+ ctx.scale(dpr, dpr);
842
+ ctx.clearRect(0, 0, w, h);
843
+ const bounds = this.cachedValueRange;
844
+ const lo = bounds ? bounds[0] : 0;
845
+ const hi = bounds ? bounds[1] : 1;
846
+ const rampData = this.colorRamp(RAMP_STEPS);
847
+ const ramp = rampData.colors;
848
+ const { loRgb, hiRgb } = rampData;
849
+ const noDataFill = this.noDataFill();
850
+ for (let r = 0; r < rows; r++) {
851
+ for (let c = 0; c < cols; c++) {
852
+ const v = this.values[r]?.[c] ?? -1;
853
+ const x = PAD_LEFT + c * cellSize;
854
+ const y = PAD_TOP + r * cellSize;
855
+ const override = this.cellColor?.({ row: r, col: c }, v);
856
+ if (override != null) {
857
+ ctx.fillStyle = override;
858
+ }
859
+ else if (v < 0 || !Number.isFinite(v)) {
860
+ // `v < 0` alone is false for NaN, which would otherwise fall through to
861
+ // the ramp branches below, compute an unparsable rgb(NaN, NaN, NaN)
862
+ // fillStyle, and silently paint with whatever color the previous cell
863
+ // left in `ctx.fillStyle` (canvas ignores unparsable assignments).
864
+ ctx.fillStyle = noDataFill;
865
+ }
866
+ else if (this.scale === 'sqrt') {
867
+ // ramp.length (not the RAMP_STEPS constant) so a colorSteps-driven ramp's
868
+ // actual length governs bucketing -- equal to RAMP_STEPS when colorSteps is unset.
869
+ const step = sqrtStep(v, hi, ramp.length);
870
+ ctx.fillStyle = step < 0 ? noDataFill : ramp[step];
871
+ }
872
+ else if (this.colorSteps && this.colorSteps.length >= 2) {
873
+ const step = linearBucket(v, lo, hi, ramp.length);
874
+ ctx.fillStyle = ramp[step];
875
+ }
876
+ else {
877
+ // linearAlpha() returns a 0.1-1.0 ramp position; reused here as a
878
+ // mix ratio between the two ramp-endpoint colors (rather than as a
879
+ // literal canvas alpha channel) so the 'linear' scale also respects
880
+ // --lyra-heatmap-scale-lo/-hi.
881
+ const t = linearAlpha(v, lo, hi);
882
+ ctx.fillStyle = mixRgb(loRgb, hiRgb, t);
883
+ }
884
+ ctx.fillRect(x, y, cellSize - 1, cellSize - 1);
885
+ }
886
+ }
887
+ // Annotation ring overlay, stroked after the fill pass so it reads
888
+ // clearly over the data-driven cell color. Uses a dedicated
889
+ // --lyra-heatmap-annotation-color token (defaults to --lyra-color-danger)
890
+ // rather than any of the sequential ramp colors, since it needs to stay
891
+ // visible regardless of which point on that ramp it's drawn over.
892
+ if (this.annotations.length) {
893
+ ctx.lineWidth = RING_LINE_WIDTH;
894
+ ctx.strokeStyle = this.annotationColor();
895
+ for (const ann of this.annotations) {
896
+ if (ann.row == null || ann.col == null)
897
+ continue;
898
+ if (ann.row < 0 || ann.row >= rows || ann.col < 0 || ann.col >= cols)
899
+ continue;
900
+ const x = PAD_LEFT + ann.col * cellSize;
901
+ const y = PAD_TOP + ann.row * cellSize;
902
+ ctx.strokeRect(x + 1, y + 1, cellSize - 3, cellSize - 3);
903
+ }
904
+ }
905
+ // Keyboard focus ring, redrawn on top of the fill pass (and any
906
+ // annotation rings) on every draw — canvas has no persistent DOM focus
907
+ // affordance of its own for an individual cell, only a `:focus-visible`
908
+ // outline around the whole element (see heatmap.styles.ts).
909
+ if (this.focusedCell && 'row' in this.focusedCell) {
910
+ const { row, col } = this.focusedCell;
911
+ if (row < rows && col < cols) {
912
+ ctx.lineWidth = RING_LINE_WIDTH;
913
+ ctx.strokeStyle = this.focusRingColor();
914
+ const x = PAD_LEFT + col * cellSize;
915
+ const y = PAD_TOP + row * cellSize;
916
+ ctx.strokeRect(x + 1, y + 1, cellSize - 3, cellSize - 3);
917
+ }
918
+ }
919
+ ctx.fillStyle = this.labelColor();
920
+ ctx.font = this.labelFont();
921
+ this.rowLabels.forEach((label, r) => {
922
+ ctx.fillText(label, 4, PAD_TOP + r * cellSize + cellSize / 2 + 3);
923
+ });
924
+ this.colLabels.forEach((label, c) => {
925
+ ctx.fillText(label, PAD_LEFT + c * cellSize + 2, PAD_TOP - 6);
926
+ });
927
+ }
928
+ /**
929
+ * Maps a pointer position, in canvas-local CSS px (e.g.
930
+ * `PointerEvent.offsetX/offsetY`), to the cell underneath it — or `null`
931
+ * if the pointer is outside the grid. Dispatches on `mode` so callers
932
+ * don't have to.
933
+ */
934
+ hitTest(x, y) {
935
+ return this.mode === 'calendar' ? this.hitTestCalendar(x, y) : this.hitTestMatrix(x, y);
936
+ }
937
+ hitTestMatrix(x, y) {
938
+ const rows = this.rowLabels.length;
939
+ const cols = this.colLabels.length;
940
+ if (rows === 0 || cols === 0)
941
+ return null;
942
+ const cellSize = this.matrixCellSize(cols);
943
+ const col = Math.floor((x - PAD_LEFT) / cellSize);
944
+ const row = Math.floor((y - PAD_TOP) / cellSize);
945
+ if (row < 0 || row >= rows || col < 0 || col >= cols)
946
+ return null;
947
+ const pos = { row, col };
948
+ return this.isCellInteractive(pos) ? pos : null;
949
+ }
950
+ /** The first interactive matrix cell in row-major order, or `null` if every cell is excluded —
951
+ * used by `onMatrixKeyDown()`'s first-arrow-press case. */
952
+ firstInteractiveMatrixCell(rows, cols) {
953
+ for (let r = 0; r < rows; r++) {
954
+ for (let c = 0; c < cols; c++) {
955
+ if (this.isCellInteractive({ row: r, col: c }))
956
+ return { row: r, col: c };
957
+ }
958
+ }
959
+ return null;
960
+ }
961
+ /** Steps from `(row, col)` by `(dRow, dCol)` repeatedly, skipping non-interactive cells, until
962
+ * an interactive cell is found or the grid edge is reached (in which case the original
963
+ * position is returned unchanged, matching today's clamp-at-edge behavior). Bounded: each
964
+ * iteration strictly approaches the edge, so this always terminates. */
965
+ nextInteractiveMatrixCell(row, col, dRow, dCol, rows, cols) {
966
+ let r = row;
967
+ let c = col;
968
+ for (;;) {
969
+ const nr = Math.min(rows - 1, Math.max(0, r + dRow));
970
+ const nc = Math.min(cols - 1, Math.max(0, c + dCol));
971
+ if (nr === r && nc === c)
972
+ return { row, col };
973
+ r = nr;
974
+ c = nc;
975
+ if (this.isCellInteractive({ row: r, col: c }))
976
+ return { row: r, col: c };
977
+ }
978
+ }
979
+ /** Calendar-mode analogue of `firstInteractiveMatrixCell()`. */
980
+ firstInteractiveCalendarCell(weekCount) {
981
+ for (let week = 0; week < weekCount; week++) {
982
+ for (let weekday = 0; weekday < 7; weekday++) {
983
+ if (this.isCellInteractive({ week, weekday }))
984
+ return { week, weekday };
985
+ }
986
+ }
987
+ return null;
988
+ }
989
+ /** Calendar-mode analogue of `nextInteractiveMatrixCell()`. */
990
+ nextInteractiveCalendarCell(week, weekday, dWeek, dWeekday, weekCount) {
991
+ let w = week;
992
+ let d = weekday;
993
+ for (;;) {
994
+ const nw = Math.min(weekCount - 1, Math.max(0, w + dWeek));
995
+ const nd = Math.min(6, Math.max(0, d + dWeekday));
996
+ if (nw === w && nd === d)
997
+ return { week, weekday };
998
+ w = nw;
999
+ d = nd;
1000
+ if (this.isCellInteractive({ week: w, weekday: d }))
1001
+ return { week: w, weekday: d };
1002
+ }
1003
+ }
1004
+ hitTestCalendar(x, y) {
1005
+ const { weekCount } = this.cachedCalendarGrid;
1006
+ if (weekCount === 0)
1007
+ return null;
1008
+ const week = this.weekAtX(x, weekCount);
1009
+ const weekday = this.weekdayAtY(y);
1010
+ if (week === null || weekday === null)
1011
+ return null;
1012
+ const pos = { week, weekday };
1013
+ return this.isCellInteractive(pos) ? pos : null;
1014
+ }
1015
+ /**
1016
+ * Resolves a (week, weekday) grid position to its real calendar date and
1017
+ * value. Computed from grid geometry (`firstWeekStart` + offset), not
1018
+ * just looked up in `cells` — so a position with no matching entry in
1019
+ * `days` (a gap in a sparse calendar) still resolves to a real ISO date,
1020
+ * with a `-1` "no data" sentinel value (the same convention `values`' `-1`
1021
+ * sentinel uses in matrix mode), instead of being unresolvable.
1022
+ */
1023
+ calendarCellAt(pos) {
1024
+ const { cells, firstWeekStart } = this.cachedCalendarGrid;
1025
+ const match = cells.find((c) => c.week === pos.week && c.weekday === pos.weekday);
1026
+ if (match)
1027
+ return { date: match.date, value: match.value };
1028
+ const date = new Date(firstWeekStart.getTime() + (pos.week * 7 + pos.weekday) * MS_PER_DAY);
1029
+ return { date: date.toISOString().slice(0, 10), value: -1 };
1030
+ }
1031
+ /**
1032
+ * Pixel rect (canvas-local CSS px) of a cell — shared by `tooltipStyle()`
1033
+ * so the tooltip's position always agrees with the same geometry
1034
+ * `drawMatrix()`/`drawCalendar()`/`hitTest*()` use.
1035
+ */
1036
+ cellRect(pos) {
1037
+ if ('week' in pos) {
1038
+ const cellSize = this.calendarCellSize();
1039
+ return {
1040
+ x: this.columnXFor(pos.week),
1041
+ y: this.rowYFor(pos.weekday),
1042
+ w: cellSize,
1043
+ h: cellSize,
1044
+ };
1045
+ }
1046
+ const cellSize = this.matrixCellSize(this.colLabels.length);
1047
+ return { x: PAD_LEFT + pos.col * cellSize, y: PAD_TOP + pos.row * cellSize, w: cellSize - 1, h: cellSize - 1 };
1048
+ }
1049
+ /**
1050
+ * Human-readable "<label>: <value>" text for a cell — shared by the hover
1051
+ * tooltip and the keyboard-focus live-region announcement, so both always
1052
+ * describe a cell the same way. This is the built-in English fallback used
1053
+ * when `cellText` isn't set — see `resolveCellText()`.
1054
+ */
1055
+ defaultCellText(pos) {
1056
+ return 'week' in pos ? this.calendarCellText(pos) : this.matrixCellText(pos);
1057
+ }
1058
+ matrixCellText(pos) {
1059
+ const rowLabel = this.rowLabels[pos.row] ?? `row ${pos.row + 1}`;
1060
+ const colLabel = this.colLabels[pos.col] ?? `col ${pos.col + 1}`;
1061
+ const v = this.values[pos.row]?.[pos.col];
1062
+ const valueText = v == null || v < 0 || !Number.isFinite(v) ? 'no data' : String(v);
1063
+ return `Row ${rowLabel}, Col ${colLabel}: ${valueText}`;
1064
+ }
1065
+ calendarCellText(pos) {
1066
+ const { date, value } = this.calendarCellAt(pos);
1067
+ const label = parseIsoDate(date).toLocaleString(undefined, { month: 'short', day: 'numeric', timeZone: 'UTC' });
1068
+ const valueText = value < 0 || !Number.isFinite(value) ? 'no data' : String(value);
1069
+ return `${label}: ${valueText}`;
1070
+ }
1071
+ /** The raw numeric value at a cell position, in either mode — shared by `resolveCellText()`
1072
+ * so a custom `cellText` formatter receives the same value the built-in template would use. */
1073
+ valueAt(pos) {
1074
+ if ('week' in pos)
1075
+ return this.calendarCellAt(pos).value;
1076
+ return this.values[pos.row]?.[pos.col] ?? -1;
1077
+ }
1078
+ /** Dispatches to the host-provided `cellText` formatter when set, otherwise the built-in template. */
1079
+ resolveCellText(pos) {
1080
+ return this.cellText ? this.cellText(pos, this.valueAt(pos)) : this.defaultCellText(pos);
1081
+ }
1082
+ /** Dispatches to the host-provided `cellInteractive` predicate when set, otherwise `true`
1083
+ * (every cell interactive, today's unchanged default). */
1084
+ isCellInteractive(pos) {
1085
+ return this.cellInteractive?.(pos, this.valueAt(pos)) ?? true;
1086
+ }
1087
+ /** Refreshes the visually-hidden live-region text for a newly-focused cell. */
1088
+ announce(pos) {
1089
+ this.liveText = this.resolveCellText(pos);
1090
+ }
1091
+ emitCellClick(pos) {
1092
+ if ('week' in pos) {
1093
+ const { date, value } = this.calendarCellAt(pos);
1094
+ this.emit('lyra-cell-click', { date, value });
1095
+ }
1096
+ else {
1097
+ const value = this.values[pos.row]?.[pos.col] ?? -1;
1098
+ this.emit('lyra-cell-click', { row: pos.row, col: pos.col, value });
1099
+ }
1100
+ }
1101
+ /** Inline `style` for `[part="tooltip"]`, centered above the given cell. */
1102
+ tooltipStyle(pos) {
1103
+ const rect = this.cellRect(pos);
1104
+ return { left: `${rect.x + rect.w / 2}px`, top: `${rect.y}px` };
1105
+ }
1106
+ /**
1107
+ * Value-equality check for a `CellPos`, since `hoverCell` is assigned a
1108
+ * fresh object literal on every `pointermove` — Lit's `@state()`
1109
+ * change-detection only no-ops an identical *reference*, so without this,
1110
+ * `{row,col} !== {row,col}` by reference triggers a full canvas clear +
1111
+ * redraw on every pixel of pointer movement, even within the same cell.
1112
+ */
1113
+ samePos(a, b) {
1114
+ if (a === b)
1115
+ return true;
1116
+ if (!a || !b)
1117
+ return false;
1118
+ if ('week' in a && 'week' in b)
1119
+ return a.week === b.week && a.weekday === b.weekday;
1120
+ if ('row' in a && 'row' in b)
1121
+ return a.row === b.row && a.col === b.col;
1122
+ return false;
1123
+ }
1124
+ onMatrixKeyDown(e) {
1125
+ const rows = this.rowLabels.length;
1126
+ const cols = this.colLabels.length;
1127
+ if (rows === 0 || cols === 0)
1128
+ return;
1129
+ if (e.key === 'Enter' || e.key === ' ') {
1130
+ e.preventDefault();
1131
+ if (this.focusedCell)
1132
+ this.emitCellClick(this.focusedCell);
1133
+ return;
1134
+ }
1135
+ if (!ARROW_KEYS.has(e.key))
1136
+ return;
1137
+ e.preventDefault();
1138
+ if (!this.focusedCell || !('row' in this.focusedCell)) {
1139
+ const next = this.firstInteractiveMatrixCell(rows, cols);
1140
+ if (!next)
1141
+ return;
1142
+ this.focusedCell = next;
1143
+ this.announce(next);
1144
+ return;
1145
+ }
1146
+ const { row, col } = this.focusedCell;
1147
+ let dRow = 0;
1148
+ let dCol = 0;
1149
+ if (e.key === 'ArrowUp')
1150
+ dRow = -1;
1151
+ else if (e.key === 'ArrowDown')
1152
+ dRow = 1;
1153
+ else if (e.key === 'ArrowLeft')
1154
+ dCol = -1;
1155
+ else if (e.key === 'ArrowRight')
1156
+ dCol = 1;
1157
+ const next = this.nextInteractiveMatrixCell(row, col, dRow, dCol, rows, cols);
1158
+ this.focusedCell = next;
1159
+ this.announce(next);
1160
+ }
1161
+ onCalendarKeyDown(e) {
1162
+ const { weekCount } = this.cachedCalendarGrid;
1163
+ if (weekCount === 0)
1164
+ return;
1165
+ if (e.key === 'Enter' || e.key === ' ') {
1166
+ e.preventDefault();
1167
+ if (this.focusedCell)
1168
+ this.emitCellClick(this.focusedCell);
1169
+ return;
1170
+ }
1171
+ if (!ARROW_KEYS.has(e.key))
1172
+ return;
1173
+ e.preventDefault();
1174
+ if (!this.focusedCell || !('week' in this.focusedCell)) {
1175
+ const next = this.firstInteractiveCalendarCell(weekCount);
1176
+ if (!next)
1177
+ return;
1178
+ this.focusedCell = next;
1179
+ this.announce(next);
1180
+ return;
1181
+ }
1182
+ const { week, weekday } = this.focusedCell;
1183
+ let dWeek = 0;
1184
+ let dWeekday = 0;
1185
+ if (e.key === 'ArrowUp')
1186
+ dWeekday = -1;
1187
+ else if (e.key === 'ArrowDown')
1188
+ dWeekday = 1;
1189
+ else if (e.key === 'ArrowLeft')
1190
+ dWeek = -1;
1191
+ else if (e.key === 'ArrowRight')
1192
+ dWeek = 1;
1193
+ const next = this.nextInteractiveCalendarCell(week, weekday, dWeek, dWeekday, weekCount);
1194
+ this.focusedCell = next;
1195
+ this.announce(next);
1196
+ }
1197
+ render() {
1198
+ const range = this.cachedValueRange;
1199
+ const labeledAnnotations = this.annotations.filter((a) => a.label);
1200
+ return html `
1201
+ <div part="base">
1202
+ <canvas
1203
+ part="canvas"
1204
+ tabindex="0"
1205
+ @pointermove=${this.onPointerMove}
1206
+ @pointerleave=${this.onPointerLeave}
1207
+ @click=${this.onCanvasClick}
1208
+ @keydown=${this.onKeyDown}
1209
+ ></canvas>
1210
+ <div
1211
+ part="tooltip"
1212
+ ?hidden=${!this.hoverCell}
1213
+ style=${styleMap(this.hoverCell ? this.tooltipStyle(this.hoverCell) : {})}
1214
+ >
1215
+ ${this.hoverCell ? this.resolveCellText(this.hoverCell) : ''}
1216
+ </div>
1217
+ <div part="live-region" class="sr-only" role="status" aria-live="polite">${this.liveText}</div>
1218
+ <div part="legend">
1219
+ <span part="legend-lo">${range ? range[0] : ''}</span>
1220
+ <span class="bar"></span>
1221
+ <span part="legend-hi">${range ? range[1] : ''}</span>
1222
+ <span>${this.valueLabel}</span>
1223
+ ${labeledAnnotations.map((a) => html `<span part="legend-annotation"><span class="ring-swatch"></span>${a.label}</span>`)}
1224
+ </div>
1225
+ </div>
1226
+ `;
1227
+ }
1228
+ }
1229
+ __decorate([
1230
+ property({ attribute: false })
1231
+ ], LyraHeatmap.prototype, "rowLabels", void 0);
1232
+ __decorate([
1233
+ property({ attribute: false })
1234
+ ], LyraHeatmap.prototype, "colLabels", void 0);
1235
+ __decorate([
1236
+ property({ attribute: false })
1237
+ ], LyraHeatmap.prototype, "values", void 0);
1238
+ __decorate([
1239
+ property({ type: Number, attribute: 'cell-size' })
1240
+ ], LyraHeatmap.prototype, "cellSize", null);
1241
+ __decorate([
1242
+ property({ attribute: 'value-label' })
1243
+ ], LyraHeatmap.prototype, "valueLabel", void 0);
1244
+ __decorate([
1245
+ property()
1246
+ ], LyraHeatmap.prototype, "scale", void 0);
1247
+ __decorate([
1248
+ property({ type: Boolean, attribute: 'fit-to-width' })
1249
+ ], LyraHeatmap.prototype, "fitToWidth", void 0);
1250
+ __decorate([
1251
+ property()
1252
+ ], LyraHeatmap.prototype, "mode", void 0);
1253
+ __decorate([
1254
+ property({ attribute: false })
1255
+ ], LyraHeatmap.prototype, "days", void 0);
1256
+ __decorate([
1257
+ property({ type: Number, attribute: 'first-day-of-week' })
1258
+ ], LyraHeatmap.prototype, "firstDayOfWeek", void 0);
1259
+ __decorate([
1260
+ property({ attribute: 'bucket-count', converter: bucketCountConverter })
1261
+ ], LyraHeatmap.prototype, "bucketCount", null);
1262
+ __decorate([
1263
+ property({ attribute: false })
1264
+ ], LyraHeatmap.prototype, "annotations", void 0);
1265
+ __decorate([
1266
+ property({ attribute: false })
1267
+ ], LyraHeatmap.prototype, "cellText", void 0);
1268
+ __decorate([
1269
+ property({ attribute: false })
1270
+ ], LyraHeatmap.prototype, "cellInteractive", void 0);
1271
+ __decorate([
1272
+ property({ attribute: false })
1273
+ ], LyraHeatmap.prototype, "cellColor", void 0);
1274
+ __decorate([
1275
+ property({ attribute: false })
1276
+ ], LyraHeatmap.prototype, "colorSteps", void 0);
1277
+ __decorate([
1278
+ property({ attribute: false })
1279
+ ], LyraHeatmap.prototype, "columnX", void 0);
1280
+ __decorate([
1281
+ property({ attribute: false })
1282
+ ], LyraHeatmap.prototype, "rowY", void 0);
1283
+ __decorate([
1284
+ query('canvas')
1285
+ ], LyraHeatmap.prototype, "canvas", void 0);
1286
+ __decorate([
1287
+ state()
1288
+ ], LyraHeatmap.prototype, "hoverCell", void 0);
1289
+ __decorate([
1290
+ state()
1291
+ ], LyraHeatmap.prototype, "focusedCell", void 0);
1292
+ __decorate([
1293
+ state()
1294
+ ], LyraHeatmap.prototype, "liveText", void 0);
1295
+ //# sourceMappingURL=heatmap.class.js.map