@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
package/llms-full.txt CHANGED
@@ -1,24 +1,29 @@
1
1
  # @aceshooting/lyra-ui — LLM API Reference
2
2
 
3
3
  `@aceshooting/lyra-ui` is a library of free, clean-room [Lit](https://lit.dev) web components — a
4
- companion to [Web Awesome](https://webawesome.com) that reimplements several Web Awesome **Pro**
5
- components as open-source equivalents (same tag shape, attributes, slots, events, and CSS parts,
6
- under a `lyra-` prefix instead of `wa-`), plus a number of extras that have no Web Awesome
4
+ companion to [Web Awesome](https://webawesome.com) that reimplements selected Web Awesome **Pro**
5
+ components as open-source equivalents (documented compatible tag shape, attributes, slots, events,
6
+ and CSS parts under a `lyra-` prefix instead of `wa-`), plus a number of extras that have no Web Awesome
7
7
  counterpart at all (dashboard atoms, temporal/graph widgets, chart wrappers, a map component, a
8
8
  file dropzone). It is **token-compatible with Web Awesome**: every component's stylesheet resolves
9
9
  through Web Awesome's `--wa-*` design tokens first, falling back to its own `--lyra-*` tokens, so
10
10
  components read as native inside a Web Awesome-themed app and are equally usable standalone with no
11
11
  theme at all. This document is the complete, component-by-component API reference intended for
12
- coding assistants integrating the library; for install instructions, the full tag/tier table, and
12
+ coding assistants integrating the library; for install instructions, the full component catalog, and
13
13
  the `<wa-*>` → `<lyra-*>` migration notes, see the package [README](./README.md) — or the shorter
14
14
  curated index at [`llms.txt`](./llms.txt) if you just need the shape of the library before diving in
15
15
  here.
16
16
 
17
+ Component entry points such as `components/empty/empty.js` register their custom-element tag.
18
+ Every component also exposes a matching `.class.js` entry for subclassing or type-directed
19
+ composition without registration; for example, `components/empty/empty.class.js` exports
20
+ `LyraEmpty` without touching `customElements`.
21
+
17
22
  ## Contents
18
23
 
19
24
  - **Shared foundation** — `internal/` (base class, form-association mixin, positioning helper, design tokens)
20
- - **v1 core** — `lyra-combobox`/`lyra-option`, `lyra-select`, `lyra-date-picker`/`lyra-date-input`, `lyra-toast` family, `lyra-sparkline`, `lyra-flag`
21
- - **Dashboard atoms** — `lyra-empty`, `lyra-skeleton`, `lyra-stat`, `lyra-table`, `lyra-gauge`, `lyra-export-button`, `lyra-split`, `lyra-widget`, `lyra-word-cloud`
25
+ - **Form controls, toasts, sparkline, and flags** — `lyra-combobox`/`lyra-option`, `lyra-select`, `lyra-date-picker`/`lyra-date-input`, `lyra-toast` family, `lyra-sparkline`, `lyra-flag`
26
+ - **Dashboard atoms** — `lyra-empty`, `lyra-skeleton`, `lyra-stat`, `lyra-table`, `lyra-gauge`, `lyra-export-button`, `lyra-copy-button`, `lyra-split`, `lyra-widget`, `lyra-word-cloud`
22
27
  - **Temporal & graph** — `lyra-time-range`, `lyra-playback`, `lyra-heatmap`, `lyra-graph`, `lyra-tree`/`lyra-tree-node`
23
28
  - **Chart family** — `lyra-chart` (core), typed subclasses, `lyra-histogram`, `lyra-box-plot`,
24
29
  `lyra-lite-chart` (dependency-free bar/line alternative, no peer deps)
@@ -33,8 +38,10 @@ here.
33
38
  `lyra-thinking-panel`, `lyra-generation-status`, `lyra-code-block`, `lyra-tool-approval-dialog`,
34
39
  `lyra-tool-param-form`, `lyra-menu`/`lyra-menu-item`, `lyra-chip`/`lyra-chip-group`,
35
40
  `lyra-model-settings-panel`, `lyra-context-meter`, `lyra-dock-panel`, `lyra-document-preview`,
36
- `lyra-media-card`, `lyra-attachment-trigger`, `lyra-kbd`, `lyra-result-card`/`lyra-result-field`
37
- - **Cross-cutting notes** packaging and adoption caveats that apply across the whole library
41
+ `lyra-media-card`, `lyra-attachment-trigger`, `lyra-kbd`, `lyra-result-card`/`lyra-result-field`,
42
+ `lyra-avatar`, `lyra-card`, `lyra-stepper`, `lyra-segmented`, `lyra-diff-view`, `lyra-poll-status`,
43
+ `lyra-code-block-core` (needs the optional peer `shiki`)
44
+ - **Cross-cutting notes** — packaging notes that apply across the whole library
38
45
 
39
46
  ---
40
47
 
@@ -45,9 +52,10 @@ Not a custom element itself — infrastructure every `lyra-*` component in the l
45
52
  - **`LyraElement`** (`internal/lyra-element.ts`) — base class every `lyra-*` component `extends`.
46
53
  `static styles = [tokens]` (the design-token layer below); subclasses prepend `LyraElement.styles`
47
54
  to their own `static styles` array to inherit it. Supplies
48
- `protected emit<T>(name: string, detail?: T): CustomEvent<T>` — dispatches a
49
- `{ bubbles: true, composed: true, cancelable: true }` `CustomEvent` and returns it, so callers can
50
- do `const ev = this.emit('lyra-export', {...}); if (ev.defaultPrevented) return;`.
55
+ `protected emit<T>(name: string, detail?: T, options?: LyraEmitOptions): CustomEvent<T>` — dispatches
56
+ a bubbling/composed notification that is non-cancelable by default. A true veto point opts into
57
+ `{ cancelable: true }` and checks `defaultPrevented` before applying its operation, as
58
+ `lyra-export` does. Native-like `input`/`change` events use the same non-cancelable default.
51
59
  - **`FormAssociated(Base)`** mixin (`internal/form-associated.ts`) — makes a `LitElement`
52
60
  form-associated: `static formAssociated = true`, `attachInternals()` in the constructor (which also
53
61
  eagerly calls `internals.setFormValue('')`, so an untouched control is present in `FormData` as
@@ -102,9 +110,9 @@ Not a custom element itself — infrastructure every `lyra-*` component in the l
102
110
  set: `--lyra-color-surface / -text / -text-quiet / -border / -brand / -brand-quiet / -success /
103
111
  -success-quiet / -warning / -warning-quiet / -danger / -danger-quiet`,
104
112
  `--lyra-color-on-brand / -on-success / -on-warning / -on-danger` (paired
105
- text/icon colors for content painted on the corresponding solid semantic fill; the standalone
106
- fallbacks switch from light content in light mode to dark content on the brighter dark-mode
107
- fills), `--lyra-space-xs / -s / -m / -l`, `--lyra-radius`, `--lyra-shadow`,
113
+ text/icon colors for content painted on the corresponding solid semantic fill; standalone light
114
+ and dark fallbacks choose a contrasting foreground for each fill, while a Web Awesome theme can
115
+ provide its own `*-on-loud` values), `--lyra-space-xs / -s / -m / -l`, `--lyra-radius`, `--lyra-shadow`,
108
116
  `--lyra-font`, `--lyra-transition-fast` / `-base` (motion timing every animating component should
109
117
  share), `--lyra-opacity-disabled` (one shared disabled-state opacity), `--lyra-focus-ring-width` /
110
118
  `-color` / `-offset` (every `:focus-visible` rule should reference these), `--lyra-icon-button-size`
@@ -144,6 +152,23 @@ Not a custom element itself — infrastructure every `lyra-*` component in the l
144
152
  that means "anchor to my trailing edge" but has to hand `place()` a physical placement. `lyra-menu`
145
153
  resolves its `placement` property through `rtlAwarePlacement()` before positioning.
146
154
 
155
+ **Testing subpath: `@aceshooting/lyra-ui/testing`** — a separate entry point (`testing/happy-dom-shims.ts`)
156
+ exporting `installHappyDomFormAssociatedShims(): void`, for a **downstream consumer's own**
157
+ Vitest+happy-dom test suite — this package's own tests run against real browsers via
158
+ `@web/test-runner`, where `ElementInternals` already exists natively, so this package never calls it
159
+ itself. happy-dom has no `ElementInternals` implementation at all, and every form-associated `lyra-*`
160
+ component (`lyra-switch`, `lyra-combobox`, `lyra-select`, `lyra-checkbox`, `lyra-model-select`,
161
+ `lyra-time-range`, `lyra-tool-param-form`, plus anything built on the shared `FormAssociated` mixin)
162
+ calls `this.attachInternals()` unconditionally in its constructor, so instantiating any of them under
163
+ happy-dom throws immediately without this shim installed first. Call
164
+ `installHappyDomFormAssociatedShims()` once, in a Vitest `setupFiles` entry, before importing any
165
+ `lyra-ui` component — it patches `HTMLElement.prototype.attachInternals` with a stub that satisfies
166
+ the shape `FormAssociated`/`LyraElement` subclasses actually call (`setFormValue()`,
167
+ `checkValidity()`, `reportValidity()`, plus `form`/`labels`/`validity`/`validationMessage`/
168
+ `willValidate` readonly fields), and is a no-op wherever `attachInternals` already exists (any real
169
+ browser, or an environment that already supports it) — safe to call unconditionally from a shared
170
+ setup file used across multiple test environments.
171
+
147
172
  **Known gotchas:**
148
173
  - `formResetCallback()`'s restore-to-constructed-default behavior (both here and in
149
174
  `lyra-combobox`'s hand-rolled copy) only captures the default from the `value` *content
@@ -156,7 +181,7 @@ Not a custom element itself — infrastructure every `lyra-*` component in the l
156
181
 
157
182
  ---
158
183
 
159
- # v1 core: forms, toasts, sparkline, flag
184
+ # Form controls, toasts, sparkline, and flags
160
185
 
161
186
  ## `lyra-combobox` / `lyra-option`
162
187
 
@@ -356,7 +381,10 @@ secondary line, when `sub` is set), `expand-icon`, `error`, `hint`
356
381
 
357
382
  **Themeable custom properties:** `--lyra-select-trigger-padding`, `--lyra-select-trigger-min-height`,
358
383
  `--lyra-select-font-size` — all three auto-swapped per `size` (`xs`…`xl`), the same pattern
359
- `lyra-toast-item`'s `--padding`/`--font-size` use.
384
+ `lyra-toast-item`'s `--lyra-toast-padding`/`--lyra-toast-font-size` use. `--lyra-select-trigger-height`
385
+ (default `auto`) — unset, it leaves `--lyra-select-trigger-min-height` as a floor only, unchanged; set
386
+ it to force an exact trigger height (e.g. to pixel-match a sibling text field in the same row), which
387
+ both floors and caps the trigger at that height.
360
388
 
361
389
  **Optional peer deps:** none.
362
390
 
@@ -572,9 +600,8 @@ One per page recommended — the region.
572
600
 
573
601
  **CSS parts:** `stack`
574
602
 
575
- **Themeable custom properties:** `--gap` (default `var(--lyra-space-s)`), `--width` (default
576
- `28rem`) — set directly on the `<lyra-toast>` element (not `--lyra-`-prefixed, but overridable
577
- per-instance).
603
+ **Themeable custom properties:** `--lyra-toast-gap` (default `var(--lyra-space-s)`),
604
+ `--lyra-toast-width` (default `28rem`) — set directly on the `<lyra-toast>` element.
578
605
 
579
606
  **Optional peer deps:** none.
580
607
 
@@ -584,7 +611,7 @@ A single notification.
584
611
 
585
612
  **Properties:**
586
613
  - `duration: number = 5000` (ms; `Infinity` or `<= 0` disables auto-dismiss)
587
- - `size: 'xs'|'s'|'m'|'l'|'xl' = 'm'` (reflected — drives both `--padding` and the toast's own
614
+ - `size: 'xs'|'s'|'m'|'l'|'xl' = 'm'` (reflected — drives both `--lyra-toast-padding` and the toast's own
588
615
  font-size via `:host([size=...])`, from a compact `xs` up to a roomier `xl`)
589
616
  - `variant: 'brand'|'success'|'warning'|'danger'|'neutral' = 'neutral'` (reflected)
590
617
  - `withIcon: boolean = false` (attribute `with-icon`)
@@ -598,11 +625,12 @@ DOM.
598
625
 
599
626
  **CSS parts:** `toast-item`, `accent`, `icon`, `content`, `close-button`
600
627
 
601
- **Themeable custom properties:** `--accent-width` (4px), `--show-duration`/`--hide-duration`
628
+ **Themeable custom properties:** `--lyra-toast-accent-width` (4px),
629
+ `--lyra-toast-show-duration`/`--lyra-toast-hide-duration`
602
630
  (`var(--lyra-transition-base, 180ms ease-out)` — 180ms by default, matching the JS-side show/hide
603
- animation timer, which is not itself reading this token), `--padding` (`var(--lyra-space-m)`),
604
- `--font-size` (`1rem`) — both `--padding` and `--font-size` are auto-swapped per `size`, from a
605
- compact `xs` up to a roomier `xl` — `--accent-color` (defaults to `--lyra-color-border`,
631
+ animation timer, which is not itself reading this token), `--lyra-toast-padding`
632
+ (`var(--lyra-space-m)`), `--lyra-toast-font-size` (`1rem`) — both are auto-swapped per `size`, from a
633
+ compact `xs` up to a roomier `xl` — `--lyra-toast-accent-color` (defaults to `--lyra-color-border`,
606
634
  auto-swapped per `variant` to `--lyra-color-brand/-success/-warning/-danger`).
607
635
 
608
636
  **Optional peer deps:** none.
@@ -747,7 +775,9 @@ overridden directly — non-`round` corner radius); also consumes `--lyra-color-
747
775
  ring around the flag image).
748
776
 
749
777
  **Optional peer deps:** `@aceshooting/lyra-flags` — required for the component to actually render an
750
- image; without it, renders an empty template (see gotchas).
778
+ image when `country` or `language` is used. Import `components/flag/flag-peer.js` once to opt into
779
+ that resolver; a pre-resolved `src` works without the peer registration entry. If the peer is not
780
+ installed, renders an empty template (see gotchas).
751
781
 
752
782
  Also exported from the package root:
753
783
  `languageToCountry(language: string): string | undefined` and the `LANGUAGE_TO_COUNTRY` lookup
@@ -765,9 +795,15 @@ need different defaults).
765
795
  pnpm add @aceshooting/lyra-flags # required peer — without it, <lyra-flag> renders nothing
766
796
  ```
767
797
 
798
+ ```js
799
+ import '@aceshooting/lyra-ui/components/flag/flag-peer.js';
800
+ ```
801
+
768
802
  **Known gotchas:**
769
- - Requires the optional peer `@aceshooting/lyra-flags` to actually render an image; without it the
770
- component still shows a `<lyra-skeleton variant="rect">` placeholder (with `aria-busy="true"` on
803
+ - `country`/`language` resolution is opt-in through `components/flag/flag-peer.js`; the root barrel
804
+ registers the component without importing the optional flag asset graph. Requires the optional
805
+ peer `@aceshooting/lyra-flags` to actually render an image; without it the component still shows a
806
+ `<lyra-skeleton variant="rect">` placeholder (with `aria-busy="true"` on
771
807
  the host) while resolving, then settles into an **empty template** plus a one-time `console.warn`
772
808
  once the resolver rejects (lazy `import()`, cached module-wide so the warning fires only once per
773
809
  page even with many `<lyra-flag>` instances).
@@ -790,11 +826,11 @@ pnpm add @aceshooting/lyra-flags # required peer — without it, <lyra-flag> r
790
826
  newer one: each resolver call is tagged with a token captured at the time it was kicked off, and a
791
827
  `.then()` that fires after a later change (or after the field was cleared) is discarded instead of
792
828
  clobbering the rendered image/`loading`.
793
- - `country`/`language` resolve through `@aceshooting/lyra-flags`'s `flagUrl(code)`, which is itself
794
- genuinely code-split per flag: using `<lyra-flag country="fr">` anywhere in an app fetches only
795
- the flags actually requested at runtime (verified with a real Vite build referencing 2 codes
796
- shipped ~28 KB total, not all 249). If you already have a flag's URL at build time, `src` skips
797
- the peer-package round trip (and its loading-skeleton flash) entirely.
829
+ - `country`/`language` resolve through `@aceshooting/lyra-flags`'s `flagUrl(code)`, which lazily
830
+ fetches one requested flag at runtime. A bundler may still emit the complete reachable lazy-chunk
831
+ graph because every supported code has a literal loader import; use a literal asset subpath
832
+ import when the deployment artifact must be pruned. If you already have a flag's URL at build
833
+ time, `src` skips the peer-package round trip (and its loading-skeleton flash) entirely.
798
834
  - 65 of `@aceshooting/lyra-flags`' 249 flags (any whose design includes a detailed coat of
799
835
  arms/seal/emblem, e.g. `es`, `pt`, `sv`) ship **three** fidelity tiers, selected via the `variant`
800
836
  property (`flagUrl(code, { variant })` under the hood): `"compact"` — a tiny WebP raster for
@@ -824,7 +860,9 @@ First-party "no data" state (no Web Awesome equivalent).
824
860
 
825
861
  **Events:** none.
826
862
 
827
- **Slots:** default (icon/illustration), `actions` (buttons/links below the description)
863
+ **Slots:** default (icon/illustration), `heading` (rich heading content, overrides the `heading`
864
+ attribute), `description` (rich description content, overrides the `description` attribute),
865
+ `actions` (buttons/links below the description)
828
866
 
829
867
  **CSS parts:** `base`, `icon`, `heading`, `description`, `actions`
830
868
 
@@ -980,7 +1018,13 @@ of `rows` — this component only renders and emits intents.
980
1018
  `[part='reveal-columns-button']`; `sticky` pins that column's header cell/cells to the inline-start
981
1019
  edge (`position: sticky`) while the table scrolls horizontally — multiple `sticky` columns stack
982
1020
  left-to-right (each measures every earlier sticky column's rendered width via
983
- `--lyra-table-sticky-offset`) instead of overlapping at the same edge
1021
+ `--lyra-table-sticky-offset`) instead of overlapping at the same edge; `footer` renders a
1022
+ sticky-bottom footer cell for that column, computed from every currently-rendered row (post-sort,
1023
+ pre-pagination) — e.g. a column total — omit it for a column with no footer value, and a
1024
+ `[part='foot']` (`<tfoot>`) only renders at all when at least one column defines `footer`;
1025
+ `cellStyle` is applied directly to the generated `<td>` via `styleMap` — e.g. a computed heat-tint
1026
+ background a `cell()`-returned inner element can't paint into the cell's own padding — omit it for
1027
+ no per-cell style override (the default, unchanged output)
984
1028
  - `columnsHidden: boolean = false` (attribute `columns-hidden`, reflected) — computed/read-only: true
985
1029
  when a `priority` column is *actually* hidden right now by the `@container` breakpoints above, or
986
1030
  `showAllColumns` force-visible mode is currently active. Measured via a `ResizeObserver` on
@@ -1017,7 +1061,8 @@ of `rows` — this component only renders and emits intents.
1017
1061
 
1018
1062
  **CSS parts:** `base`, `table`, `head`, `header-cell`, `row`, `cell`, `more-button`, `sort-icon` (a
1019
1063
  chevron indicator shown on the active sortable header, rotated per `sortDir`), `reveal-columns-button`
1020
- (shown only when `columnsHidden` is true)
1064
+ (shown only when `columnsHidden` is true), `foot` (the `<tfoot>`, only rendered when at least one
1065
+ column defines `footer`), `footer-row` (the single footer row), `footer-cell` (a single footer cell)
1021
1066
 
1022
1067
  **Themeable custom properties:** `--lyra-table-max-height` (default `none`; controls the scrollable
1023
1068
  body's `max-block-size`).
@@ -1178,6 +1223,40 @@ downloadBlob(content: string, filename: string, mime: string): void // trig
1178
1223
 
1179
1224
  ---
1180
1225
 
1226
+ ## `lyra-copy-button`
1227
+
1228
+ A standalone icon-only copy-to-clipboard button for a plain text `value` — swaps its icon to a
1229
+ checkmark for ~1.5s on activation. Takes no positioning opinion of its own; a consumer
1230
+ wraps/positions the host element (e.g. absolutely positioned in the corner of a `wa-textarea` or a
1231
+ read-only output field). Unlike `lyra-code-block`'s or `lyra-json-viewer`'s own built-in copy
1232
+ buttons, this has no code/JSON content model to adopt just to reuse the copy affordance.
1233
+
1234
+ **Properties:**
1235
+ - `value: string = ''` — the plain text to copy.
1236
+
1237
+ **Events:** `lyra-copy` (`detail: { text: string }`) — fires on activation, always with the current
1238
+ `value`, regardless of whether the OS clipboard write actually succeeded (same convention as
1239
+ `lyra-code-block`'s/`lyra-json-viewer`'s own copy buttons).
1240
+
1241
+ **Slots:** none.
1242
+
1243
+ **CSS parts:** `base` — the button itself.
1244
+
1245
+ **Themeable custom properties:** shared tokens only.
1246
+
1247
+ **Optional peer deps:** none.
1248
+
1249
+ ```html
1250
+ <lyra-copy-button value="npm install @aceshooting/lyra-ui"></lyra-copy-button>
1251
+ ```
1252
+
1253
+ **Known gotchas:**
1254
+ - best-effort clipboard write: `navigator.clipboard` is absent in insecure contexts/older browsers,
1255
+ and some engines throw synchronously rather than rejecting — either way `lyra-copy` still fires
1256
+ with the intended text so a consumer can always show its own confirmation/fallback UI.
1257
+
1258
+ ---
1259
+
1181
1260
  ## `lyra-split`
1182
1261
 
1183
1262
  Resizable panels for dashboard layouts. Direct **light-DOM children are the panels**; a divider is
@@ -1312,16 +1391,32 @@ position) survives the transition.
1312
1391
  sidebar/toolbar visible during fullscreen
1313
1392
  - `compact: boolean = false` (reflected) — tighter header/body padding, same convention as
1314
1393
  `lyra-empty`'s `compact`
1394
+ - `views: WidgetView[] = []` (attribute: false) — named alternate views for the panel body, e.g. a
1395
+ chart/table toggle inside the same card chrome; `WidgetView { id: string; label: string; icon?:
1396
+ TemplateResult }`. Each entry gets a header toggle button (`[part='view-toggle']`) and a
1397
+ `<slot name="view-${id}">`. Empty (the default) renders today's single unnamed default slot as the
1398
+ sole view, unchanged.
1399
+ - `activeView: string = ''` (attribute: false) — the currently active view's `id`; defaults to the
1400
+ first entry of `views` (or `''` when `views` is empty). Settable directly to control the active
1401
+ view externally; also updated internally when a view toggle is clicked.
1315
1402
 
1316
1403
  **Events:** `lyra-collapse-change` (`detail: boolean`, the new `collapsed` state),
1317
1404
  `lyra-fullscreen-change` (`detail: boolean`, the new `fullscreen` state — also fired when fullscreen
1318
- is exited via Escape or a backdrop click, not just the toggle button)
1319
-
1320
- **Slots:** default (the panel body), `actions` (header action controls, rendered before the
1321
- collapse/expand buttons)
1322
-
1323
- **CSS parts:** `base`, `header`, `title`, `label`, `sublabel`, `actions`, `collapse-button`,
1324
- `fullscreen-button`, `body`, `backdrop`
1405
+ is exited via Escape or a backdrop click, not just the toggle button), `lyra-view-change`
1406
+ (`detail: string`, the new active view's `id` — fired when it changes via a header view-toggle click,
1407
+ not when a consumer sets `activeView` directly)
1408
+
1409
+ **Slots:** default (the panel body, rendered only while `views` is empty), `icon` (optional leading
1410
+ icon in the title row), `label` (rich label content, overrides the `label` attribute), `sublabel`
1411
+ (rich sublabel content, overrides the `sublabel` attribute), `actions` (header action controls,
1412
+ rendered before the collapse/expand buttons); each `views` entry additionally gets its own
1413
+ `view-${id}` slot instead of the default slot
1414
+
1415
+ **CSS parts:** `base`, `header`, `title`, `icon` (wrapper around the `icon` slot, hidden entirely when
1416
+ empty), `label-group` (wrapper around the label and sublabel), `label`, `sublabel`, `actions`,
1417
+ `view-toggles` (the header toggle-button group, only rendered when `views` is non-empty),
1418
+ `view-toggle` (a single view toggle button), `collapse-button`, `fullscreen-button`, `body`,
1419
+ `backdrop`
1325
1420
 
1326
1421
  **Themeable custom properties:** `--lyra-widget-overlay-color` (default `rgb(0 0 0 / 0.5)` — the
1327
1422
  fullscreen backdrop scrim color; component-specific since no shared `--wa-*`/`--lyra-*` overlay token
@@ -1659,6 +1754,13 @@ click, or Enter/Space on the focused cell, fires `lyra-cell-click`.
1659
1754
  ring (also consulted at `weekday = 7` to size the canvas height, mirroring `columnX` at
1660
1755
  `week = weekCount`). Unset (the default) is the original formula, unchanged. Ignored in matrix
1661
1756
  mode.
1757
+ - `cellColor?: (pos: MatrixCellPos | CalendarCellPos, value: number) => string | undefined`
1758
+ (attribute: false) — overrides a cell's computed ramp/no-data color entirely for an exact value;
1759
+ return a CSS color string to force that cell to it, or `undefined` to fall back to the normal ramp
1760
+ math unchanged. Lets a consumer designate a value as categorically outside the ramp (e.g. a real
1761
+ zero-count day rendered as a neutral hairline, distinct from both "no data" and the ramp's own
1762
+ lightest step) without a synthetic ramp color, which can't safely reserve an exact value on a
1763
+ skewed dataset. Unset (the default) reproduces the exact ramp/no-data behavior for every cell.
1662
1764
 
1663
1765
  **Events:** `lyra-cell-click` (fired on click, or Enter/Space on the keyboard-focused cell —
1664
1766
  `detail: { row, col, value }` in matrix mode, `detail: { date, value }` in calendar mode)
@@ -1748,8 +1850,12 @@ A force-directed node-link diagram with pan/zoom/drag, built on `d3-force`.
1748
1850
  number; color?: string }`; `radius` is clamped to `[6, 24]` (an unset/non-finite value falls back
1749
1851
  to the midpoint, `15`) so a node can never render invisibly small or absurdly large
1750
1852
  - `links: GraphLink[] = []` (attribute: false) — `GraphLink { source: string; target: string;
1751
- width?: number }` (source/target are node ids; links whose endpoints don't resolve are silently
1752
- dropped)
1853
+ width?: number }` (source/target are node ids). A link whose `source` id doesn't resolve to a real
1854
+ node is still dropped entirely (there's no position to draw a stub from). A link whose `target` id
1855
+ doesn't resolve instead renders as a short, dashed, non-interactive stub off `source`'s own
1856
+ position (`[part='link'][data-dangling]`, `aria-hidden="true"`) rather than being silently dropped
1857
+ — e.g. for a wiki-style `[[link]]` reference to a not-yet-created node. A dangling stub is excluded
1858
+ from `d3-force`'s own simulation input and from click/keyboard interaction.
1753
1859
  - `width: number = 800`
1754
1860
  - `height: number = 600`
1755
1861
  - `chargeStrength: number = -300` (attribute `charge-strength` — live-reactive, see gotchas)
@@ -2103,6 +2209,11 @@ passthrough). Not a subclass of `LyraChart`.
2103
2209
  ignores it entirely.
2104
2210
  - `hideAxis: boolean = false` (attribute `hide-axis`) — suppresses gridlines/y-axis tick labels
2105
2211
  altogether; x-axis category labels (rendered separately) are unaffected.
2212
+ - `selectedIndex: number[] = []` (attribute: false) — category indexes to mark `data-selected` on
2213
+ every bar/segment at that index, across every dataset — e.g. to highlight a whole selected week's
2214
+ column in a stacked chart. Empty (the default) reproduces the exact existing output: no bar
2215
+ carries `data-selected`. This component takes no opinion on what the highlight looks like, only
2216
+ which bars it applies to — style it via `::part(bar)[data-selected]`.
2106
2217
 
2107
2218
  **Events:** `lyra-point-click` — fired when a bar/point is activated (click, or Enter/Space while
2108
2219
  focused). `detail: { datasetIndex: number, index: number, label: string | undefined, value: number
@@ -2119,7 +2230,8 @@ too.
2119
2230
 
2120
2231
  **Slots:** none.
2121
2232
 
2122
- **CSS parts:** `base`, `grid-line`, `axis-label`, `axis-title`, `bar`, `line`, `point`, `legend`,
2233
+ **CSS parts:** `base`, `grid-line`, `axis-label`, `axis-title`, `bar` (each bar rect; carries
2234
+ `data-selected` when its category index is in `selectedIndex`), `line`, `point`, `legend`,
2123
2235
  `legend-item`, `legend-swatch`.
2124
2236
 
2125
2237
  **Themeable custom properties:** `--lyra-chart-height` (same host-level property as `lyra-chart`);
@@ -2496,8 +2608,12 @@ when no heading is slotted and `heading` is unset), `body` (wrapper around the d
2496
2608
 
2497
2609
  **Themeable custom properties:** `--lyra-dialog-overlay-color` (default `rgb(0 0 0 / 0.5)` — the
2498
2610
  backdrop scrim color; component-specific since no shared `--wa-*`/`--lyra-*` overlay token exists),
2499
- `--lyra-dialog-max-width` (default `32rem` — the panel's max-inline-size, via
2500
- `min(var(--lyra-dialog-max-width, 32rem), 100%)`), plus shared tokens `--lyra-space-l/-m/-s`,
2611
+ `--lyra-dialog-width` (default unset/`auto` — the panel shrink-wraps to content, unchanged; set it
2612
+ for an assertive width instead), `--lyra-dialog-max-width` (default `32rem` the panel's
2613
+ max-inline-size cap, via `min(var(--lyra-dialog-max-width, var(--lyra-dialog-width, 32rem)), 100%)`;
2614
+ when `--lyra-dialog-width` is set but `--lyra-dialog-max-width` is left at its default, the cap falls
2615
+ back to the requested width itself — not the `32rem` default — so an assertive width isn't silently
2616
+ clipped; the viewport is still a hard limit either way), plus shared tokens `--lyra-space-l/-m/-s`,
2501
2617
  `--lyra-color-surface/-border`, `--lyra-radius`, `--lyra-shadow`.
2502
2618
 
2503
2619
  **Optional peer deps:** none.
@@ -2663,6 +2779,117 @@ single `role="tabpanel"` wrapper, one per tab, hidden unless active)
2663
2779
 
2664
2780
  ---
2665
2781
 
2782
+ ## `lyra-stepper`
2783
+
2784
+ Ordered multi-step wizard/form navigation: an index/label per step, `current`/`completed`/`disabled`/
2785
+ `error` state, and click-to-jump. First-party invention (no Web Awesome equivalent). Fully
2786
+ data-driven and controlled, like `lyra-table`'s `columns`/`rows` — it never mutates `steps` itself; a
2787
+ click, or Enter/Space on a non-disabled step, fires a cancelable `lyra-step-select`, and the host
2788
+ decides whether/how `steps` changes in response (mirroring `lyra-dialog-close`'s cancelable-event
2789
+ convention).
2790
+
2791
+ **Properties:**
2792
+ - `steps: StepItem[] = []` (attribute: false) — `StepItem { id: string; label: string; state:
2793
+ 'pending' | 'current' | 'completed' | 'disabled' | 'error' }`; never mutated by this component.
2794
+ Empty (the default) renders nothing.
2795
+ - `orientation: 'horizontal' | 'vertical' = 'horizontal'` (reflected) — `'horizontal'` (the default)
2796
+ lays steps out in a row (Left/Right, RTL-aware, navigate); `'vertical'` stacks them (Up/Down
2797
+ navigate instead, no RTL swap needed).
2798
+
2799
+ **Events:** `lyra-step-select` (`detail: { index, id }`) — fired on click, or Enter/Space while
2800
+ focused, on a non-`disabled` step. Cancelable, though this component takes no default action of its
2801
+ own to prevent (it never mutates `steps`) — `preventDefault()` is available for a host that wants a
2802
+ single place to short-circuit its own listener's follow-up work.
2803
+
2804
+ **Slots:** none.
2805
+
2806
+ **CSS parts:** `base` (root wrapper, `role="tablist"`), `step` (a single step button, `role="tab"`),
2807
+ `step-index` (the numbered index chip, shown for `pending`/`current`/`error` steps), `step-check`
2808
+ (the completed-checkmark glyph, shown for `completed` steps instead of `step-index`), `step-label`
2809
+ (the step's label text).
2810
+
2811
+ **Themeable custom properties:** shared tokens only — `--lyra-space-m`/`-xs`/`-2xs`,
2812
+ `--lyra-color-text-quiet`/`-text`/`-danger`/`-brand`/`-surface`, `--lyra-radius`/`-pill`,
2813
+ `--lyra-font-size-xs`, `--lyra-font-weight-semibold`, `--lyra-opacity-disabled`,
2814
+ `--lyra-focus-ring-*`.
2815
+
2816
+ **Optional peer deps:** none.
2817
+
2818
+ ```html
2819
+ <lyra-stepper></lyra-stepper>
2820
+ <script type="module">
2821
+ const stepper = document.querySelector('lyra-stepper');
2822
+ stepper.steps = [
2823
+ { id: 'account', label: 'Account', state: 'completed' },
2824
+ { id: 'billing', label: 'Billing', state: 'current' },
2825
+ { id: 'review', label: 'Review', state: 'pending' },
2826
+ ];
2827
+ stepper.addEventListener('lyra-step-select', (e) => console.log(e.detail.index, e.detail.id));
2828
+ </script>
2829
+ ```
2830
+
2831
+ **Known gotchas:**
2832
+ - there's no built-in "step forward/back" method — advancing the wizard is entirely the host's job:
2833
+ react to `lyra-step-select` (or its own Next/Back buttons) and reassign `steps` with updated
2834
+ `state` values.
2835
+ - `role="tablist"`/`role="tab"` back the keyboard/focus contract (roving tabindex, arrow-key
2836
+ navigation) even though this isn't a `<lyra-tabs>`-style panel switcher — there's no associated
2837
+ `role="tabpanel"`, since this component renders no panel content of its own.
2838
+ - Left/Right (horizontal) and Up/Down (vertical) are mutually exclusive per `orientation` — there's
2839
+ no single set of keys that works in both.
2840
+
2841
+ ---
2842
+
2843
+ ## `lyra-segmented`
2844
+
2845
+ A single-select button row with the WAI-ARIA APG `radiogroup` contract built in:
2846
+ `role="radiogroup"`/`role="radio"`, roving tabindex, automatic activation (click or arrow-key move
2847
+ both select immediately, like a native radio group), cyclic Arrow/Home/End navigation among
2848
+ non-disabled items. First-party invention (no Web Awesome equivalent) — "choose exactly one of N
2849
+ labeled options, rendered as a button row" is ubiquitous settings/filter-panel UI.
2850
+
2851
+ **Properties:**
2852
+ - `items: SegmentedItem[] = []` (attribute: false) — `SegmentedItem { value: string; label: string;
2853
+ disabled?: boolean }`.
2854
+ - `value: string = ''` — the currently selected item's `value`.
2855
+
2856
+ **Events:** `lyra-change` (`detail: { value }`) — fired when the selected value changes via click or
2857
+ keyboard.
2858
+
2859
+ **Slots:** none.
2860
+
2861
+ **CSS parts:** `base` (the `role="radiogroup"` root), `segment` (a single `role="radio"` button),
2862
+ `segment-label` (the segment's label text).
2863
+
2864
+ **Themeable custom properties:** shared tokens only — `--lyra-color-border`/`-surface`/`-text`/
2865
+ `-text-quiet`, `--lyra-radius`, `--lyra-font-size-sm`, `--lyra-font-weight-semibold`,
2866
+ `--lyra-space-s`, `--lyra-shadow`, `--lyra-opacity-disabled`, `--lyra-focus-ring-*`.
2867
+
2868
+ **Optional peer deps:** none.
2869
+
2870
+ ```html
2871
+ <lyra-segmented></lyra-segmented>
2872
+ <script type="module">
2873
+ const seg = document.querySelector('lyra-segmented');
2874
+ seg.items = [
2875
+ { value: 'day', label: 'Day' },
2876
+ { value: 'week', label: 'Week' },
2877
+ { value: 'month', label: 'Month' },
2878
+ ];
2879
+ seg.value = 'week';
2880
+ seg.addEventListener('lyra-change', (e) => console.log(e.detail.value));
2881
+ </script>
2882
+ ```
2883
+
2884
+ **Known gotchas:**
2885
+ - arrow-key navigation cycles (past the last non-disabled item wraps to the first, and vice versa)
2886
+ rather than clamping at the first/last item, unlike `lyra-stepper`'s clamped Left/Right.
2887
+ - this component self-selects on navigation: clicking or arrow-navigating to an item immediately
2888
+ updates `value` and fires `lyra-change` — there's no separate "commit" step the way, e.g.,
2889
+ `lyra-select`'s popup has.
2890
+
2891
+ ---
2892
+
2666
2893
  ## `lyra-checkbox`
2667
2894
 
2668
2895
  A boolean form control. `role="checkbox"` with an `aria-checked` that can also be `"mixed"`, and a
@@ -2752,10 +2979,11 @@ the control still has an accessible name.
2752
2979
  background), `thumb` (the circular knob that slides across the track), `label` (wrapper around the
2753
2980
  default slot)
2754
2981
 
2755
- **Themeable custom properties:** `--track-inline-size` (default `2.25rem`), `--track-block-size`
2756
- (default `1.25rem`), `--thumb-offset` (default `2px`) — component-local geometry knobs, set on
2757
- `:host`, since a fully-rounded pill/thumb needs a radius well past the shared `--lyra-radius`
2758
- default — plus shared tokens `--lyra-space-s`, `--lyra-color-border/-brand/-surface/-text`,
2982
+ **Themeable custom properties:** `--lyra-switch-track-inline-size` (default `2.25rem`),
2983
+ `--lyra-switch-track-block-size` (default `1.25rem`), `--lyra-switch-thumb-offset` (default
2984
+ `2px`) — component-local geometry knobs, set on `:host`, since a fully-rounded pill/thumb needs
2985
+ a radius well past the shared `--lyra-radius` default — plus shared tokens
2986
+ `--lyra-space-s`, `--lyra-color-border/-brand/-surface/-text`,
2759
2987
  `--lyra-transition-fast`, `--lyra-focus-ring-width/-color/-offset`, `--lyra-opacity-disabled`.
2760
2988
 
2761
2989
  **Optional peer deps:** none.
@@ -2967,6 +3195,13 @@ produced HTML in a single pass (no second DOM walk after insertion).
2967
3195
  **Properties:**
2968
3196
  - `content: string = ''` — the Markdown source to render
2969
3197
  - `sanitize: boolean = true` — sanitize `marked`'s HTML output with DOMPurify before rendering
3198
+ - `escapeHtml: boolean = false` (attribute `escape-html`) — when `true`, overrides `marked`'s `html`
3199
+ renderer hook to emit the HTML-escaped source text instead of passing raw/sanitized markup through
3200
+ — for rendering arbitrary already-written content (e.g. a historical chat/agent transcript full of
3201
+ code/XML/HTML snippets) where a stray angle bracket should render as visible text, not a real DOM
3202
+ element. GFM tables/lists/etc. still render normally — only raw embedded HTML is affected. `false`
3203
+ (the default) reproduces the exact `marked`-default (sanitized-when-`sanitize`) passthrough
3204
+ behavior.
2970
3205
  - `gfm: boolean = true` — GitHub-flavored Markdown (tables, strikethrough, autolinks, task lists)
2971
3206
  - `linkTarget: string | null = '_blank'` (attribute `link-target`) — `target` applied to every
2972
3207
  rendered `<a>`, with `rel="noopener noreferrer"` always added alongside it whenever a `target` is
@@ -2988,9 +3223,8 @@ produced HTML in a single pass (no second DOM walk after insertion).
2988
3223
  the page already finished loading); falls back to the normal async path (with its brief
2989
3224
  plain-text-fallback first paint) when the cache isn't warm yet. `false` (the default) is
2990
3225
  byte-identical to always taking the async path
2991
- - `streaming: boolean = false` (reflected) — forward-compatible hint for a future streaming renderer
2992
- expected to build on this component (coalescing partial tokens as they arrive); setting it has no
2993
- rendering effect yet, it only lets a consumer already target `lyra-markdown[streaming]` in CSS
3226
+ - `streaming: boolean = false` (reflected) — reserved hint for a host-provided streaming renderer;
3227
+ setting it has no rendering effect, but lets a consumer target `lyra-markdown[streaming]` in CSS
2994
3228
 
2995
3229
  **Events:** `lyra-link-click` (`detail: { href: string, internal: true }`, fired — with the click
2996
3230
  prevented — when a rendered link's `href` starts with `internal-link-prefix`; ordinary external
@@ -3326,10 +3560,9 @@ shell around it.
3326
3560
  `<lyra-json-viewer>` fallback)
3327
3561
  - `args: unknown` (property only, no attribute) — the tool call's original arguments, if available,
3328
3562
  handed to the matched renderer's `render()` alongside `result`
3329
- - `fallback: string = 'json'` (reflected) — forward-compatible fallback-kind selector; only `"json"`
3330
- (an unconditional `<lyra-json-viewer>`) is implemented today, but the property/attribute is still
3331
- accepted so markup that already sets `fallback="…"` for a future value doesn't need to change again
3332
- once more fallback kinds land
3563
+ - `fallback: string = 'json'` (reflected) — fallback-kind selector; only `"json"` (an unconditional
3564
+ `<lyra-json-viewer>`) is currently implemented, but other values are accepted and use the same
3565
+ JSON fallback
3333
3566
 
3334
3567
  **Events:** `lyra-render-error` (`detail: { toolName: string; error: unknown }`) — fired immediately
3335
3568
  before falling back to `<lyra-json-viewer>`, whether because no renderer matched, a candidate
@@ -3665,6 +3898,13 @@ wins when both are present.
3665
3898
  - `progress: number = 0` — upload completion, 0-100; only meaningful while `status="uploading"`, a
3666
3899
  value of `0` or `NaN` falls back to the indeterminate spinner
3667
3900
  - `removable: boolean = true` (reflected) — shows the remove (×) button
3901
+ - `compact: boolean = false` (reflected) — renders a smaller, borderless pill presentation instead of
3902
+ the default bordered/chrome-heavy chip, e.g. for a composer's pending-attachment tray. `false` (the
3903
+ default) is visually identical to the standard chip.
3904
+ - `thumbnailOnly: boolean = false` (reflected, attribute `thumbnail-only`) — when both this and
3905
+ `compact` are set, hides `[part='meta']` (the filename/size text) entirely for an image-mime
3906
+ attachment, leaving only the thumbnail. Has no effect for a non-image chip, or when `compact` is
3907
+ unset. `false` (the default) reproduces the chip's exact existing output.
3668
3908
  - `removeLabel: string = 'Remove'` (attribute `remove-label`) — verb used in the remove button's
3669
3909
  `aria-label`, interpolated as `` `${removeLabel} ${displayName}` ``; override for i18n/locale
3670
3910
  - `retryLabel: string = 'Retry'` (attribute `retry-label`) — verb used in the retry button's
@@ -3693,7 +3933,10 @@ generated internal id is used as a last resort.
3693
3933
  `var(--lyra-color-text-quiet)`), `--lyra-attachment-chip-bg` (default `var(--lyra-color-surface)`),
3694
3934
  `--lyra-attachment-chip-border` (default `var(--lyra-color-border)`) — this trio is swapped per
3695
3935
  `status` (`uploading` → brand/brand-quiet/transparent, `error` → danger/danger-quiet/transparent,
3696
- `done` → success/success-quiet/transparent); plus shared tokens `--lyra-space-xs`, `--lyra-space-s`,
3936
+ `done` → success/success-quiet/transparent); `--lyra-attachment-chip-compact-thumbnail-size` (default
3937
+ `1.75rem`), `--lyra-attachment-chip-compact-font-size` (default `var(--lyra-font-size-xs)`),
3938
+ `--lyra-attachment-chip-compact-gap` (default `0.25rem`) — govern the chip's thumbnail size, text
3939
+ size, and internal gap while `compact` is set; plus shared tokens `--lyra-space-xs`, `--lyra-space-s`,
3697
3940
  `--lyra-radius`, `--lyra-color-text`, `--lyra-color-danger`, `--lyra-icon-button-size`,
3698
3941
  `--lyra-transition-fast`, `--lyra-transition-base`, `--lyra-focus-ring-width`,
3699
3942
  `--lyra-focus-ring-color`, `--lyra-focus-ring-offset`.
@@ -3858,6 +4101,66 @@ instead. The pulse animation is suppressed under `prefers-reduced-motion: reduce
3858
4101
 
3859
4102
  ---
3860
4103
 
4104
+ ## `lyra-poll-status`
4105
+
4106
+ A "next scheduled refresh" countdown with a built-in pause control: a ticking `M:SS` display counting
4107
+ down to the next scheduled action, a "Refreshing…" state at zero, and a pause/resume toggle.
4108
+ First-party invention (no Web Awesome equivalent); the closest existing component,
4109
+ `<lyra-stream-status>`, is scoped to transport/connection-health phases, a different concern from a
4110
+ scheduled-interval countdown — this mirrors its internal `<lyra-live-region>` composition for
4111
+ accessible phase-transition announcements.
4112
+
4113
+ **Properties:**
4114
+ - `nextInMs?: number` (attribute `next-in-ms`) — milliseconds until the next scheduled action, as of
4115
+ whenever this was last set; setting it (re)starts the countdown from "now." Unset (the default)
4116
+ shows no countdown.
4117
+ - `active: boolean = true` (reflected) — whether the poll cycle is running at all.
4118
+ - `paused: boolean = false` (reflected) — user-toggled pause; while `true`, the countdown display
4119
+ freezes and `lyra-poll-due` never fires.
4120
+
4121
+ **Events:** `lyra-poll-due` (no detail — fired once when the countdown reaches zero, not fired while
4122
+ `paused`), `lyra-pause-change` (`detail: boolean` — fired when `paused` changes via the built-in
4123
+ button).
4124
+
4125
+ **Slots:** none.
4126
+
4127
+ **CSS parts:** `base`, `indicator` (the pulsing status dot), `countdown` (the `M:SS`, or
4128
+ "Refreshing…", text), `pause-button` (the built-in pause/resume toggle).
4129
+
4130
+ **Themeable custom properties:** shared tokens only — `--lyra-space-xs`, `--lyra-font-size-sm`,
4131
+ `--lyra-color-text-quiet`, `--lyra-color-brand`, `--lyra-color-success`, `--lyra-radius`/`-pill`,
4132
+ `--lyra-focus-ring-*`.
4133
+
4134
+ **Optional peer deps:** none.
4135
+
4136
+ ```html
4137
+ <lyra-poll-status next-in-ms="30000"></lyra-poll-status>
4138
+ <script type="module">
4139
+ const status = document.querySelector('lyra-poll-status');
4140
+ status.addEventListener('lyra-poll-due', () => refreshData());
4141
+ status.addEventListener('lyra-pause-change', (e) => console.log('paused:', e.detail));
4142
+ </script>
4143
+ ```
4144
+
4145
+ Internally, a 1-second ticker re-derives the remaining time from a captured target timestamp (rather
4146
+ than a naive per-tick decrement), so the countdown stays accurate even if the tab was backgrounded
4147
+ and timers were throttled. Reassigning `nextInMs` at any time restarts the countdown from that new
4148
+ value; pausing/resuming, or toggling `active`, starts or stops the ticker without discarding the
4149
+ current remaining time. Phase transitions ("Paused.", "Resumed.", "Refreshing now.") are announced
4150
+ via an internal `<lyra-live-region>` in polite mode.
4151
+
4152
+ **Known gotchas:**
4153
+ - there's no built-in "reset" or "extend" method beyond reassigning `nextInMs` — a host that wants to
4154
+ push the deadline back out on user activity re-sets `nextInMs` itself.
4155
+ - `active="false"` and `paused` both stop the ticker independently, but only `paused` fires
4156
+ `lyra-pause-change` — that event is scoped to the built-in pause button's own toggle, not to
4157
+ `active`.
4158
+ - the countdown rounds up to the nearest whole second, so it never shows a literal "0:00" — the
4159
+ display jumps straight from a small count (e.g. "0:01") to "Refreshing…" once the deadline is
4160
+ actually reached.
4161
+
4162
+ ---
4163
+
3861
4164
  ## `lyra-virtual-list`
3862
4165
 
3863
4166
  A generic windowed/virtualized list host. Renders only the items within the current viewport (plus
@@ -3877,9 +4180,8 @@ invention (no Web Awesome equivalent).
3877
4180
  which is only a safe identity while `items` never reorders/inserts/removes — provide this whenever
3878
4181
  possible, or scroll position and per-row DOM state (e.g. an `<audio>` element's playback position)
3879
4182
  can attach to the wrong row across a mutation.
3880
- - `groups?: VirtualListGroup[]` (attribute: false) — reserved for a future sticky-header sectioning
3881
- feature; accepted but **not currently read or rendered** — every row still renders flat, in `items`
3882
- order.
4183
+ - `groups?: VirtualListGroup[]` (attribute: false) — accepted for compatibility but **not currently
4184
+ read or rendered** — every row still renders flat, in `items` order.
3883
4185
  - `rowHeight: string = 'auto'` (attribute `row-height`) — `'auto'` measures each row's real height via
3884
4186
  `ResizeObserver`; a numeric string (e.g. `"56"`) fixes every row to that many pixels. Anything else
3885
4187
  (non-numeric, zero, negative, non-finite) silently falls back to `'auto'` rather than throwing.
@@ -3895,10 +4197,11 @@ invention (no Web Awesome equivalent).
3895
4197
  fires `lyra-load-more` (gated by `loading`).
3896
4198
 
3897
4199
  **Exported types:** `VirtualListRange { start: number; end: number }` (the `lyra-visible-range-changed`
3898
- detail shape); `VirtualListGroup { key: string | number; label?: string; startIndex: number }` — a
3899
- placeholder shape for the not-yet-implemented grouping feature above. No exported helper functions ship
3900
- in this pass (a paired `groupByRecency()` helper referenced in the source's own class doc doesn't exist
3901
- yet).
4200
+ detail shape); `VirtualListGroup { key: string | number; label?: string; startIndex: number }` — an
4201
+ accepted grouping shape that the list does not currently render.
4202
+ The package root also exports `groupByRecency(items, options?)`, a DOM-free helper that returns
4203
+ non-empty Today/Yesterday/Previous 7 Days/Older buckets, preserves input order within each bucket,
4204
+ and accepts a timestamp extractor, reference date, and label overrides.
3902
4205
 
3903
4206
  **Events:** `lyra-load-more` (no detail — fired once per approach to the bottom of the list while
3904
4207
  `has-more` is true and `loading` is false; does not refire on every scroll tick while still near the
@@ -4002,7 +4305,7 @@ component — not fired when the trimmed draft is empty or unchanged from the or
4002
4305
  as an implicit cancel)
4003
4306
 
4004
4307
  **Slots:** `actions` — overflow/icon-button controls rendered at the trailing edge of the row (e.g. a
4005
- future pin/delete button); only visually shown once it actually has assigned elements.
4308
+ pin/delete control); only visually shown once it actually has assigned elements.
4006
4309
 
4007
4310
  **CSS parts:** `base`, `option`, `content`, `title`, `title-input`, `rename-button`, `excerpt`,
4008
4311
  `timestamp`, `actions`
@@ -4566,6 +4869,15 @@ presentation) and `[part="panel"]` (the mobile overlay) are the *same* element p
4566
4869
  across modes (mirrors `<lyra-widget>`'s fullscreen mode) — never both at once, and slotted nav
4567
4870
  content is never duplicated.
4568
4871
 
4872
+ Opting in to `resizable` adds a continuously draggable width for the `'full'` state: a
4873
+ `[part="resizer"]` handle (pointer-drag and Left/Right-arrow keyboard stepping, RTL-aware) clamped to
4874
+ `[minRailWidthPx, maxRailWidthPx]`, with no built-in persistence — a consumer that wants the chosen
4875
+ width to survive a reload listens for `lyra-rail-resize` and persists `railWidthPx` itself.
4876
+ `preferredMode` separately lets a host manually prefer `'full'`/`'icon-only'` for the non-mobile
4877
+ breakpoint axis (e.g. a user's own collapse toggle) while `mobile-breakpoint` continues to be tracked
4878
+ automatically regardless — it's only consulted while `mode` isn't force-pinned via the `mode`
4879
+ accessor itself, which still takes full priority.
4880
+
4569
4881
  **Properties:**
4570
4882
  - `mode: AppRailMode` (custom accessor, reflected) — the getter always returns one of the three real
4571
4883
  modes (`'full'|'icon-only'|'mobile'`), never `'auto'`. The setter accepts
@@ -4586,21 +4898,52 @@ content is never duplicated.
4586
4898
  toggle button — there is no separate `show()`/`hide()` pair.
4587
4899
  - `label: string = 'Navigation'` — accessible name for the rail's navigation landmark, and for its
4588
4900
  dialog role while the mobile overlay is open.
4901
+ - `preferredMode?: 'full' | 'icon-only' | null` (attribute `preferred-mode`) — manually prefers
4902
+ `'full'` or `'icon-only'` for the non-mobile breakpoint axis, while `mobile-breakpoint` continues to
4903
+ be tracked automatically regardless — e.g. a user's manual collapse toggle that should still yield
4904
+ to a genuinely too-narrow-for-any-inline-rail viewport. Only consulted while `mode` isn't
4905
+ force-pinned via its own accessor (see above) — that continues to take full priority, unchanged.
4906
+ Unset (the default, `null`) reproduces the original breakpoint-only behavior exactly.
4907
+ - `hideToggle: boolean = false` (reflected, attribute `hide-toggle`) — suppresses the built-in mobile
4908
+ `[part='toggle']` hamburger/close button entirely, for a consumer that already owns an external
4909
+ mobile-menu toggle wired to this rail's own `open` property. `false` (the default) reproduces the
4910
+ exact existing output; note `open` still has no built-in external trigger of its own once this is
4911
+ set, since `lyra-toggle` only fires from the toggle button being activated.
4912
+ - `resizable: boolean = false` (reflected) — opts a continuously draggable width in for the `'full'`
4913
+ state, exposing a `[part='resizer']` handle clamped to `[minRailWidthPx, maxRailWidthPx]`. `false`
4914
+ (the default) renders no resizer and leaves the fixed-width `--lyra-app-rail-width` CSS token
4915
+ exactly as before this property existed.
4916
+ - `railWidthPx?: number` (attribute `rail-width-px`) — the rail's current width in px while
4917
+ `resizable`; settable/gettable directly. Unset defers to `--lyra-app-rail-width`'s own resolved
4918
+ width.
4919
+ - `minRailWidthPx: number = 190` (attribute `min-rail-width-px`) — minimum `railWidthPx` a
4920
+ drag/keyboard resize can reach.
4921
+ - `maxRailWidthPx: number = 440` (attribute `max-rail-width-px`) — maximum `railWidthPx` a
4922
+ drag/keyboard resize can reach.
4923
+ - `dragging: boolean = false` (reflected) — `true` for the duration of an active pointer-driven
4924
+ resize drag (not a keyboard step); reflected so a consumer (or this component's own styles) can
4925
+ suppress `[part='base']`'s `transition: inline-size` during the drag, which otherwise visibly
4926
+ "chases" the pointer instead of tracking it 1:1. Effectively read-only (this component owns the
4927
+ transitions), but a plain reflected property like every other boolean here.
4589
4928
 
4590
4929
  **Events:** `lyra-mode-change` (`detail: AppRailModeChangeDetail` = `{ mode: AppRailMode }`; the
4591
4930
  effective mode changed, whether from a breakpoint crossing or an explicit `mode` assignment — not
4592
4931
  fired for a redundant reassignment to the mode already in effect), `lyra-toggle`
4593
4932
  (`detail: AppRailToggleDetail` = `{ open: boolean }`; the mobile overlay opened or closed — via the
4594
4933
  built-in toggle button, Escape, a backdrop click, a nav-item click while open, or a breakpoint/forced
4595
- mode change leaving `'mobile'` while open — not fired when a consumer sets `open` directly).
4934
+ mode change leaving `'mobile'` while open — not fired when a consumer sets `open` directly),
4935
+ `lyra-rail-resize` (`detail: AppRailResizeDetail` = `{ widthPx: number }`; the `resizable` rail's
4936
+ width changed via drag or keyboard stepping — not fired when a consumer sets `railWidthPx` directly).
4596
4937
 
4597
4938
  **Slots:** default (nav items — generic slotted content, e.g. `<a>`/`<button>` elements the consumer
4598
4939
  builds with its own icon+label structure; clicking anywhere in this slot closes the mobile overlay if
4599
4940
  open), `header` (logo/brand content, shown above the nav items in every mode), `footer` (a trailing
4600
4941
  user/settings trigger, shown below the nav items).
4601
4942
 
4602
- **CSS parts:** `base`, `header`, `nav`, `footer`, `toggle`, `backdrop`, `panel` (`base`/`panel` are
4603
- mutually exclusive on the same underlying element — see above).
4943
+ **CSS parts:** `base`, `header`, `nav`, `footer`, `toggle` (hidden via CSS outside `'mobile'` mode, or
4944
+ entirely via `hideToggle`), `backdrop`, `panel` (`base`/`panel` are mutually exclusive on the same
4945
+ underlying element — see above), `resizer` (the `resizable` opt-in's drag handle, only rendered while
4946
+ `resizable` and `mode` is `'full'`).
4604
4947
 
4605
4948
  **Themeable custom properties:** `--lyra-app-rail-width` (default `15rem` — the inline rail width in
4606
4949
  `'full'` mode), `--lyra-app-rail-icon-width` (default `4rem` — the inline rail width in `'icon-only'`
@@ -4609,17 +4952,22 @@ width), `--lyra-app-rail-overlay-color` (default `rgb(0 0 0 / 0.5)` — the mobi
4609
4952
  color; component-specific since no shared token exists), plus shared tokens (`--lyra-color-border`,
4610
4953
  `--lyra-color-surface`, `--lyra-color-text`, `--lyra-color-brand`, `--lyra-color-brand-quiet`,
4611
4954
  `--lyra-space-*`, `--lyra-radius`, `--lyra-shadow`, `--lyra-icon-button-size`,
4612
- `--lyra-focus-ring-*`, `--lyra-transition-base`).
4955
+ `--lyra-focus-ring-*`, `--lyra-transition-base`). `resizable`'s width is driven entirely by
4956
+ `railWidthPx`'s inline `inline-size` style rather than a new custom property.
4613
4957
 
4614
4958
  **Optional peer deps:** none.
4615
4959
 
4616
4960
  ```html
4617
- <lyra-app-rail label="Main navigation" icon-only-breakpoint="960px" mobile-breakpoint="600px">
4961
+ <lyra-app-rail label="Main navigation" icon-only-breakpoint="960px" mobile-breakpoint="600px" resizable>
4618
4962
  <span slot="header"><img src="/logo.svg" alt="Acme" /></span>
4619
4963
  <a href="/inbox" aria-label="Inbox"><svg aria-hidden="true">...</svg><span>Inbox</span></a>
4620
4964
  <a href="/settings" aria-label="Settings"><svg aria-hidden="true">...</svg><span>Settings</span></a>
4621
4965
  <span slot="footer"><button>Profile</button></span>
4622
4966
  </lyra-app-rail>
4967
+ <script type="module">
4968
+ const rail = document.querySelector('lyra-app-rail');
4969
+ rail.addEventListener('lyra-rail-resize', (e) => localStorage.setItem('railWidthPx', String(e.detail.widthPx)));
4970
+ </script>
4623
4971
  ```
4624
4972
  ```ts
4625
4973
  rail.mode = 'icon-only'; // force a presentation regardless of viewport width
@@ -4627,11 +4975,12 @@ rail.mode = 'auto'; // release the force, resume live breakpoint tracking
4627
4975
  ```
4628
4976
 
4629
4977
  The package root also exports a pure `computeAppRailMode(iconOnlyMatches: boolean, mobileMatches:
4630
- boolean): AppRailMode` resolver (plus the `AppRailMode`/`AppRailModeInput`/`AppRailModeChangeDetail`/
4631
- `AppRailToggleDetail` types) — the same logic the element's internal `matchMedia` listeners call,
4632
- exposed standalone so a consumer can compute or unit-test the same three-state resolution without a
4633
- real browser window. `mobileMatches` wins over `iconOnlyMatches` when both are true (the viewport is
4634
- narrower than both breakpoints at once).
4978
+ boolean, preferredMode?: 'full' | 'icon-only' | null): AppRailMode` resolver (plus the
4979
+ `AppRailMode`/`AppRailModeInput`/`AppRailModeChangeDetail`/`AppRailToggleDetail`/`AppRailResizeDetail`
4980
+ types) the same logic the element's internal `matchMedia` listeners call, exposed standalone so a
4981
+ consumer can compute or unit-test the same resolution without a real browser window. `mobileMatches`
4982
+ wins over everything else when true (the viewport is narrower than both breakpoints at once);
4983
+ otherwise `preferredMode` (when set) wins over `iconOnlyMatches`.
4635
4984
 
4636
4985
  The mobile state keeps its own panel template rather than nesting `<lyra-dialog>`, while its modal
4637
4986
  behavior participates in the shared overlay stack. It is a plain `<div>` with an explicit
@@ -4666,6 +5015,43 @@ component only lays out whatever is slotted and can't inspect or fix up a consum
4666
5015
  shared overlay registration and re-acquires the scroll lock if the overlay was still active
4667
5016
  across the move — `disconnectedCallback`/`connectedCallback` fire back-to-back with no update in
4668
5017
  between, so `willUpdate()` alone wouldn't otherwise notice.
5018
+ - `resizable`'s drag handle is pointer-only (`pointerdown`/`pointermove`/`pointerup`/
5019
+ `pointercancel`/`lostpointercapture`) plus discrete Left/Right-arrow keyboard stepping (8px per
5020
+ press, RTL-aware) — there's no dedicated touch gesture beyond what Pointer Events already unify.
5021
+ - reassigning `railWidthPx` while `resizable` is unset has no visible effect on the rendered width —
5022
+ the fixed-width `--lyra-app-rail-width` token still governs `'full'`-mode width until `resizable`
5023
+ is also set.
5024
+ - reassigning `icon-only-breakpoint`/`mobile-breakpoint`/`preferredMode` does not itself un-force a
5025
+ previously-forced `mode` — same caveat as above, `preferredMode` is only consulted while `mode`
5026
+ isn't force-pinned.
5027
+
5028
+ ### `lyra-app-rail-item`
5029
+
5030
+ An explicit navigation item for `<lyra-app-rail>`. It renders an accessible link when `href` is
5031
+ set and enabled, otherwise a button; the rail can add its `icon-only` presentation state without
5032
+ removing the label from the accessibility tree.
5033
+
5034
+ **Properties:**
5035
+ - `href: string = ''` — optional destination. Without it, the item renders as a button.
5036
+ - `target: string = ''` — optional link target.
5037
+ - `disabled: boolean = false` (reflected) — prevents activation while retaining the item in the rail.
5038
+ - `active: boolean = false` (reflected) — marks this as the destination for the current page/view;
5039
+ reflects `aria-current="page"` on `[part='base']` and drives the active visual treatment. The rail
5040
+ has no built-in routing, so the consumer sets this per item (e.g. by comparing `href` against the
5041
+ current location).
5042
+ - `tooltip: boolean = false` (reflected) — opt-in hover/focus flyout (`[part='tooltip']`) showing
5043
+ this item's label text while the rail's `icon-only` mode (set externally by the parent
5044
+ `<lyra-app-rail>` as the viewport narrows) hides it from view. No effect outside icon-only mode,
5045
+ since the label is already visible there. `false` (the default) reproduces the exact existing
5046
+ output.
5047
+
5048
+ **Slots:** default (the visible label), `icon` (the leading icon, hidden from assistive technology
5049
+ when the item has an explicit `aria-label`).
5050
+
5051
+ **CSS parts:** `base`, `icon`, `label`, `tooltip` (the hover/focus label flyout, only rendered while
5052
+ `tooltip` is set, the item is `icon-only`, and it is hovered or focused).
5053
+
5054
+ **Optional peer deps:** none.
4669
5055
 
4670
5056
  ---
4671
5057
 
@@ -5257,6 +5643,141 @@ theme data.
5257
5643
 
5258
5644
  ---
5259
5645
 
5646
+ ## `lyra-code-block-core`
5647
+
5648
+ A build-lean sibling of `<lyra-code-block>` above, for a consumer whose `languages` map already
5649
+ covers every language it will ever render. Where `<lyra-code-block>` unconditionally calls
5650
+ `loadShikiHighlighter()` — the default ~200-language dynamic-import table loader, whose bundled
5651
+ lookup table a bundler can't statically narrow away even when a consumer never actually uses it —
5652
+ this component's own module never imports or calls that function at all. It only ever calls
5653
+ `loadShikiHighlighterCore(languages)` (shiki's "fine-grained bundle" recipe: `createHighlighterCore()`
5654
+ plus an explicit oniguruma engine, seeded with *only* the grammars in `languages`), so a consumer
5655
+ importing this entry point instead of `code-block.js` gets a build genuinely free of shiki's full
5656
+ language table.
5657
+
5658
+ A `language` value absent from `languages` always renders the plain `<pre><code>` fallback — there is
5659
+ no default/full-table highlighter here to fall back to, unlike `<lyra-code-block>`'s dynamic-import
5660
+ path for an unmapped language. That fallback is the *default* rendering path, not a degraded one,
5661
+ same as `<lyra-code-block>`'s own plain-text fallback. Everything else — `code`/`language`/
5662
+ `filename`/`copyable`/`collapsible`/`collapsed`/`maxHeight`, the copy button, the collapse header
5663
+ toggle, the loading-skeleton behavior while the fine-grained highlighter resolves — matches
5664
+ `<lyra-code-block>` exactly, including its CSS parts, themeable custom properties, and stylesheet
5665
+ (this component reuses `code-block.styles.ts` directly).
5666
+
5667
+ **Properties:**
5668
+ - `code: string = ''` — the raw source text.
5669
+ - `language: string = ''` — a shiki-recognized language id or alias; when unset, or when it isn't a
5670
+ key in `languages`, the code renders as plain unhighlighted text — this component has no
5671
+ default/full-table highlighter to fall back to.
5672
+ - `filename: string = ''` — shown in the header, when set.
5673
+ - `collapsible: boolean = false` (reflected) — shows the collapse/expand chevron button.
5674
+ - `collapsed: boolean = false` (reflected) — only has a visible effect while `collapsible` is also
5675
+ true.
5676
+ - `copyable: boolean = true` (reflected) — shows the copy-to-clipboard button.
5677
+ - `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"20rem"`); once set, the
5678
+ code scrolls internally past this height instead of growing the page.
5679
+ - `languages: Record<string, ShikiLanguageInput> = {}` (attribute: false) — grammar definitions this
5680
+ instance can highlight, e.g. `{ json: jsonGrammar }` (import from `shiki/langs/<name>.mjs`). Empty
5681
+ (the default) never highlights at all — every `language` renders the plain-text fallback.
5682
+
5683
+ **Events:** `lyra-copy` (`detail: { text: string }` — always the raw `code` value, never the
5684
+ highlighted HTML, and always fires regardless of whether the actual OS clipboard write succeeded),
5685
+ `lyra-toggle` (`detail: { collapsed: boolean }` — fired when the built-in collapse/expand header
5686
+ button is activated).
5687
+
5688
+ **Slots:** none.
5689
+
5690
+ **CSS parts:** `base`, `header`, `filename`, `language`, `copy-button`, `toggle`, `body`, `pre`,
5691
+ `code` — identical set to `<lyra-code-block>`.
5692
+
5693
+ **Themeable custom properties:** identical to `<lyra-code-block>` — `--lyra-code-block-max-height`,
5694
+ `--lyra-code-block-font`, plus the same shared tokens.
5695
+
5696
+ **Optional peer deps:** `shiki` (specifically its `shiki/core`, `shiki/engine/oniguruma`,
5697
+ `shiki/wasm`, and `shiki/themes/github-{light,dark}.mjs` subpaths — never `shiki`'s main entry point,
5698
+ which is what carries the ~200-language table this component exists to avoid). Building the
5699
+ fine-grained highlighter is cached per `languages` object identity (a `WeakMap`), so passing the same
5700
+ module-level `languages` constant on every render builds it only once.
5701
+
5702
+ ```html
5703
+ <script type="module">
5704
+ import jsonGrammar from 'shiki/langs/json.mjs';
5705
+ </script>
5706
+ <lyra-code-block-core
5707
+ language="json"
5708
+ .languages=${{ json: jsonGrammar }}
5709
+ .code=${'{"ok": true}'}
5710
+ ></lyra-code-block-core>
5711
+ ```
5712
+
5713
+ **Known gotchas:**
5714
+ - there is no default highlighter and no dynamic-import fallback table — a `language` you haven't
5715
+ added to `languages` will never highlight, no matter how common that language is elsewhere. Reach
5716
+ for `<lyra-code-block>` instead if you need to support an open-ended set of languages without
5717
+ pre-declaring each one.
5718
+ - `languages` is keyed by object identity for caching purposes — pass a stable, module-level constant
5719
+ (not a fresh object literal per render), or every render rebuilds its own fine-grained highlighter.
5720
+
5721
+ ---
5722
+
5723
+ ## `lyra-diff-view`
5724
+
5725
+ A real two-string line diff (a classic longest-common-subsequence dynamic program, not a Myers
5726
+ implementation), rendered as interleaved unified-diff output — not diff-flavored syntax highlighting
5727
+ over an already-formatted string (`<lyra-code-block>`'s `language="diff"` only lexically colors a
5728
+ string the consumer already unified-diffed; it has no two-string-compare entry point of its own).
5729
+ First-party invention (no Web Awesome equivalent).
5730
+
5731
+ **Properties:**
5732
+ - `oldText: string = ''` (attribute: false) — the "before" text. Default `''` renders an
5733
+ all-additions diff of `newText`.
5734
+ - `newText: string = ''` (attribute: false) — the "after" text. Default `''` renders an
5735
+ all-removals diff of `oldText`.
5736
+ - `copyable: boolean = false` — shows a copy-to-clipboard button for the full unified-diff text.
5737
+ `false` (the default) renders no button.
5738
+
5739
+ **Events:** `lyra-copy` (`detail: { text: string }` — the full unified-diff text, fired on
5740
+ copy-button activation regardless of whether the clipboard write actually succeeded).
5741
+
5742
+ **Slots:** none.
5743
+
5744
+ **CSS parts:** `base` (the root wrapper), `line` (a single line; carries
5745
+ `data-type="equal"|"add"|"remove"`), `copy-button` (the copy affordance, only rendered while
5746
+ `copyable`).
5747
+
5748
+ **Themeable custom properties:** `--lyra-diff-view-font` (default `var(--lyra-font-mono)`), plus
5749
+ shared tokens `--lyra-color-border`/`-surface`/`-success`/`-success-quiet`/`-danger`/
5750
+ `-danger-quiet`/`-text`, `--lyra-radius`, `--lyra-space-xs`/`-s`, `--lyra-font-size-sm`,
5751
+ `--lyra-line-height-snug`, `--lyra-focus-ring-*`.
5752
+
5753
+ **Optional peer deps:** none.
5754
+
5755
+ ```html
5756
+ <lyra-diff-view copyable></lyra-diff-view>
5757
+ <script type="module">
5758
+ const diff = document.querySelector('lyra-diff-view');
5759
+ diff.oldText = 'line one\nline two\nline three';
5760
+ diff.newText = 'line one\nline TWO\nline three\nline four';
5761
+ diff.addEventListener('lyra-copy', (e) => console.log(e.detail.text));
5762
+ </script>
5763
+ ```
5764
+
5765
+ The package root also exports the pure `computeLineDiff(oldLines: string[], newLines: string[]):
5766
+ DiffOp[]` helper (plus the `DiffOp` type, `{ type: 'equal' | 'add' | 'remove'; text: string }`) — the
5767
+ same line-diff function this component's own `render()`/copy handler call, exposed standalone so a
5768
+ consumer can compute or unit-test the same alignment without instantiating the element at all.
5769
+
5770
+ **Known gotchas:**
5771
+ - the alignment is a genuine O(n·m) longest-common-subsequence dynamic program over lines (split on
5772
+ `\n`), not a naive "every removed line then every added line" — fine for a typical
5773
+ tool-call/transcript-sized diff, but a very large pair of texts costs quadratic time/memory;
5774
+ there's no line-count guard or chunking of its own.
5775
+ - `oldText`/`newText` are recomputed into the diff on every render — this component keeps no separate
5776
+ cached diff state, so binding either property to something that changes on every keystroke
5777
+ recomputes the whole alignment each time.
5778
+
5779
+ ---
5780
+
5260
5781
  ## `lyra-tool-approval-dialog`
5261
5782
 
5262
5783
  A human-in-the-loop gate: presents one proposed tool/function call (`toolName` + `args`) and blocks an
@@ -5609,8 +6130,11 @@ opens the menu, focusing the first/last non-disabled item respectively (mirrors
5609
6130
  Once open, ArrowDown/ArrowUp move the roving focus among non-disabled items and wrap past either end
5610
6131
  (unlike `<lyra-select>`'s clamped listbox nav); Home/End jump to the first/last non-disabled item;
5611
6132
  Enter/Space activate the focused item; Escape closes and refocuses the trigger; Tab closes without
5612
- `preventDefault()`, letting the browser's own Tab navigation proceed untouched. A printable keypress
5613
- runs type-ahead: roving focus jumps to the next non-disabled item whose text starts with the
6133
+ `preventDefault()`, letting the browser's own Tab navigation proceed untouched. All of this list-level
6134
+ keydown handling Escape, Tab, the arrow keys, Home/End, and type-ahead alike only responds when
6135
+ the triggering keydown event's own target is an actual `<lyra-menu-item>` element; a keydown bubbling
6136
+ up from any other node inside the popup is ignored rather than misread as list navigation. A printable
6137
+ keypress runs type-ahead: roving focus jumps to the next non-disabled item whose text starts with the
5614
6138
  accumulated buffer (cycling from just after the active item, buffer resets ~500ms after the last
5615
6139
  keystroke) — mirrors `<lyra-select>`'s identical listbox type-ahead. A click outside both the trigger
5616
6140
  and the open popup also closes it, but deliberately does *not* refocus the trigger — the outside
@@ -5649,12 +6173,23 @@ already follow.
5649
6173
  whole pill using a loud-color-on-quiet-tint convention; `neutral` has no dedicated token pair, so
5650
6174
  it falls back to a plain bordered-surface look)
5651
6175
  - `removable: boolean = false` (reflected — shows the remove (×) button)
6176
+ - `selected: boolean = false` (reflected) — opt-in toggle/pressed mode: when set, `[part='base']`
6177
+ itself becomes focusable and keyboard-activatable (Enter/Space, mirroring native `<button>`
6178
+ behavior), reflects `aria-pressed`, and toggles on click/activation, emitting `lyra-chip-select`.
6179
+ Has no effect (no interactive semantics added to `[part='base']`) when combined with `removable`,
6180
+ since the remove button already nests inside `[part='base']` — a focusable descendant of a
6181
+ `role="button"` ancestor isn't allowed there, and this component's two real use cases (a
6182
+ chart-series visibility toggle, a category filter chip) never need both at once. `false` (the
6183
+ default) reproduces the exact passive-label-pill output.
5652
6184
  - `value?: string` — opaque consumer bookkeeping value, never read, validated, or rendered by this
5653
6185
  component itself, only ever echoed back verbatim (including `undefined` if never set) in
5654
6186
  `lyra-remove`'s detail
5655
6187
 
5656
6188
  **Events:** `lyra-remove` (`detail: { value }` — the remove (×) button was activated via click or
5657
- Enter/Space while focused; only rendered/reachable while `removable`)
6189
+ Enter/Space while focused; only rendered/reachable while `removable`), `lyra-chip-select`
6190
+ (`detail: { value, selected }` — fired on click, or Enter/Space while focused, when `selected` mode
6191
+ is active and `removable` is not set; the chip has already toggled its own `selected` state by the
6192
+ time this fires)
5658
6193
 
5659
6194
  **Slots:** default (the chip's label content), `icon` (optional leading icon or status dot; nothing
5660
6195
  reserved for it — no extra gap — when left empty)
@@ -6265,7 +6800,10 @@ native wrapper's own camera API).
6265
6800
  `capabilities.length === 1`), `menu` (the `lyra-menu` wrapper, only rendered when
6266
6801
  `capabilities.length > 1`), `menu-trigger` (the multi-capability button slotted into `lyra-menu`'s own
6267
6802
  `trigger` slot, only rendered when `capabilities.length > 1`), `expand-icon` (the disclosure chevron
6268
- inside the multi-capability trigger button, only rendered when `capabilities.length > 1`).
6803
+ inside the multi-capability trigger button, only rendered when `capabilities.length > 1`),
6804
+ `hidden-input` (the internal native `<input type="file">` that actually opens the OS file picker;
6805
+ hidden via CSS by default, exposed as a part only so a consumer can override that with
6806
+ `::part(hidden-input)` in the unlikely case their integration needs to).
6269
6807
 
6270
6808
  **Themeable custom properties:** shared tokens only — `--lyra-space-xs`, `--lyra-color-text`/
6271
6809
  `-text-quiet`, `--lyra-icon-button-size`, `--lyra-focus-ring-*`, `--lyra-opacity-disabled`,
@@ -6432,6 +6970,113 @@ around either the slotted content or the plain `value` text).
6432
6970
 
6433
6971
  ---
6434
6972
 
6973
+ ## `lyra-avatar`
6974
+
6975
+ A small, fixed-size identity marker: an image, or a fallback of initials text when no image is set
6976
+ (or the image fails to load). First-party invention (no Web Awesome equivalent) — purely
6977
+ presentational, with no built-in interactivity; wrap it in a `<button>`/`<lyra-menu>` trigger for a
6978
+ user-menu affordance.
6979
+
6980
+ **Properties:**
6981
+ - `initials: string = ''` — fallback text (typically 1-2 characters), shown whenever no image is set
6982
+ or the image fails to load.
6983
+ - `src?: string` — image URL; takes priority over `initials` when set and loads successfully, falling
6984
+ back to `initials` on a load error.
6985
+ - `alt: string = ''` — image alt text; set alongside `src` for accessibility.
6986
+ - `size: 'sm' | 'md' | 'lg' = 'md'` (reflected).
6987
+ - `shape: 'circle' | 'square' = 'circle'` (reflected).
6988
+ - `tone: 'neutral' | 'brand' | 'success' | 'warning' | 'danger' = 'neutral'` (reflected) — recolors
6989
+ the initials-fallback background/text, mirroring `lyra-chip`'s `tone` vocabulary; `neutral` (the
6990
+ default) reads as a plain, unaccented circle.
6991
+
6992
+ **Events:** none.
6993
+
6994
+ **Slots:** none.
6995
+
6996
+ **CSS parts:** `base` (the outer circle/square container), `image` (the `<img>`, only rendered while
6997
+ `src` is set and hasn't failed to load), `initials` (the fallback initials text, rendered whenever
6998
+ `image` isn't).
6999
+
7000
+ **Themeable custom properties:** `--lyra-avatar-size` (default `2rem`, swapped to `1.5rem`/`2.5rem`
7001
+ per `size="sm"`/`"lg"`), `--lyra-avatar-bg` (default `var(--lyra-color-surface-alt,
7002
+ var(--lyra-color-border))`, swapped per `tone`), `--lyra-avatar-color` (default
7003
+ `var(--lyra-color-text)`, swapped per `tone`), plus shared tokens `--lyra-radius`/`-pill`,
7004
+ `--lyra-font-size-sm`, `--lyra-font-weight-semibold`.
7005
+
7006
+ **Optional peer deps:** none.
7007
+
7008
+ ```html
7009
+ <lyra-avatar initials="JS" tone="brand"></lyra-avatar>
7010
+ <lyra-avatar src="/users/42/photo.jpg" alt="Jane Smith" size="lg"></lyra-avatar>
7011
+ ```
7012
+
7013
+ **Known gotchas:**
7014
+ - an image load failure falls back to `initials` automatically (an `error` listener flips internal
7015
+ state) — there's no manual reset/retry method; reassigning `src` (even to the same value)
7016
+ re-attempts the load.
7017
+ - the initials fallback is `aria-hidden="true"` whenever `alt` is set, regardless of whether an image
7018
+ is actually showing — so if `src`/`alt` are both set but the image fails to load, the rendered
7019
+ initials text is still hidden from assistive tech, leaving the avatar with no accessible name of
7020
+ its own unless the surrounding context supplies one.
7021
+
7022
+ ---
7023
+
7024
+ ## `lyra-card`
7025
+
7026
+ A generic, styled bordered content container — the "small bordered surface with padding" idiom common
7027
+ to hero highlights, clickable grid tiles, and management-list items. A direct `<lyra-*>` counterpart
7028
+ to `<wa-card>`'s contract, staying slot-compatible with `lyra-result-card` where they overlap.
7029
+
7030
+ **Properties:**
7031
+ - `appearance: 'accent' | 'filled' | 'outlined' | 'filled-outlined' | 'plain' = 'outlined'`
7032
+ (reflected) — `'outlined'` (the default) is a plain bordered surface; `'filled'` swaps the border
7033
+ for a quiet brand-tinted background; `'filled-outlined'` keeps the border and adds that same tinted
7034
+ background; `'accent'` drops the border for a single colored accent stripe on the leading edge;
7035
+ `'plain'` has no border or background at all.
7036
+ - `interactive: boolean = false` (reflected) — opt-in hover/focus-visible treatment (border-color
7037
+ shift, cursor: pointer) for a card used as a clickable tile — purely visual; this component takes
7038
+ no position on what "activate" means unless `href` is also set. `false` (the default) reproduces a
7039
+ plain static card.
7040
+ - `href?: string` — when set, the card's root renders as a real `<a href=...>` instead of a `<div>`,
7041
+ for a whole-card link (e.g. a wide CTA tile). Unset (the default) renders a plain `<div>`.
7042
+
7043
+ **Events:** none.
7044
+
7045
+ **Slots:** default (the card body), `header` (header row content, rendered above the body), `media`
7046
+ (media content, e.g. an image, rendered above the header), `footer` (footer content, rendered below
7047
+ the body), `actions` (small header controls, rendered alongside the header content).
7048
+
7049
+ **CSS parts:** `base` (the outer container — a `<div>`, or an `<a>` when `href` is set), `media`
7050
+ (wrapper around the `media` slot, hidden entirely when empty), `header` (wrapper around the `header`
7051
+ slot and `actions`, hidden entirely when both are empty), `actions` (wrapper around the `actions`
7052
+ slot, hidden entirely when empty), `body` (wrapper around the default slot), `footer` (wrapper around
7053
+ the `footer` slot, hidden entirely when empty).
7054
+
7055
+ **Themeable custom properties:** shared tokens only — `--lyra-color-border`/`-surface`/`-brand`/
7056
+ `-brand-quiet`, `--lyra-radius`, `--lyra-space-s`/`-m`, `--lyra-transition-fast`,
7057
+ `--lyra-focus-ring-*`.
7058
+
7059
+ **Optional peer deps:** none.
7060
+
7061
+ ```html
7062
+ <lyra-card appearance="outlined" interactive href="/reports/42">
7063
+ <img slot="media" src="/thumb.png" alt="" />
7064
+ <span slot="header">Q3 Report</span>
7065
+ <span slot="actions"><lyra-chip tone="success">Ready</lyra-chip></span>
7066
+ Revenue up 12% quarter-over-quarter.
7067
+ <span slot="footer">Updated 2 days ago</span>
7068
+ </lyra-card>
7069
+ ```
7070
+
7071
+ **Known gotchas:**
7072
+ - every `appearance` renders on the *same* `[part="base"]` element — there's no separate element per
7073
+ variant, so a `::part(base)` override applies uniformly regardless of `appearance`.
7074
+ - slot-presence (`header`/`media`/`footer`/`actions`) is tracked in JS, not via CSS `:empty` (a
7075
+ `[part]` wrapper always contains a literal `<slot>` child, so `:empty` never matches) — the same
7076
+ pattern `lyra-empty`/`lyra-widget` use.
7077
+
7078
+ ---
7079
+
6435
7080
  ## Cross-cutting notes
6436
7081
 
6437
7082
  These apply across the whole library rather than to any one component: