@aceshooting/lyra-ui 2.12.0 → 3.0.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 (469) hide show
  1. package/README.md +114 -28
  2. package/custom-elements.json +37406 -20015
  3. package/dist/components/attachment-chip/attachment-chip.styles.js +2 -2
  4. package/dist/components/badge/badge.class.d.ts +21 -0
  5. package/dist/components/badge/badge.class.d.ts.map +1 -0
  6. package/dist/components/badge/badge.class.js +29 -0
  7. package/dist/components/badge/badge.class.js.map +1 -0
  8. package/dist/components/badge/badge.d.ts +2 -0
  9. package/dist/components/badge/badge.d.ts.map +1 -0
  10. package/dist/components/badge/badge.js +5 -0
  11. package/dist/components/badge/badge.js.map +1 -0
  12. package/dist/components/badge/badge.styles.d.ts +2 -0
  13. package/dist/components/badge/badge.styles.d.ts.map +1 -0
  14. package/dist/components/badge/badge.styles.js +10 -0
  15. package/dist/components/badge/badge.styles.js.map +1 -0
  16. package/dist/components/badge/tag.class.d.ts +10 -0
  17. package/dist/components/badge/tag.class.d.ts.map +1 -0
  18. package/dist/components/badge/tag.class.js +5 -0
  19. package/dist/components/badge/tag.class.js.map +1 -0
  20. package/dist/components/badge/tag.d.ts +2 -0
  21. package/dist/components/badge/tag.d.ts.map +1 -0
  22. package/dist/components/badge/tag.js +5 -0
  23. package/dist/components/badge/tag.js.map +1 -0
  24. package/dist/components/breadcrumb/breadcrumb-item.class.d.ts +22 -0
  25. package/dist/components/breadcrumb/breadcrumb-item.class.d.ts.map +1 -0
  26. package/dist/components/breadcrumb/breadcrumb-item.class.js +40 -0
  27. package/dist/components/breadcrumb/breadcrumb-item.class.js.map +1 -0
  28. package/dist/components/breadcrumb/breadcrumb-item.d.ts +2 -0
  29. package/dist/components/breadcrumb/breadcrumb-item.d.ts.map +1 -0
  30. package/dist/components/breadcrumb/breadcrumb-item.js +5 -0
  31. package/dist/components/breadcrumb/breadcrumb-item.js.map +1 -0
  32. package/dist/components/breadcrumb/breadcrumb.class.d.ts +20 -0
  33. package/dist/components/breadcrumb/breadcrumb.class.d.ts.map +1 -0
  34. package/dist/components/breadcrumb/breadcrumb.class.js +29 -0
  35. package/dist/components/breadcrumb/breadcrumb.class.js.map +1 -0
  36. package/dist/components/breadcrumb/breadcrumb.d.ts +2 -0
  37. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  38. package/dist/components/breadcrumb/breadcrumb.js +5 -0
  39. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  40. package/dist/components/breadcrumb/breadcrumb.styles.d.ts +2 -0
  41. package/dist/components/breadcrumb/breadcrumb.styles.d.ts.map +1 -0
  42. package/dist/components/breadcrumb/breadcrumb.styles.js +8 -0
  43. package/dist/components/breadcrumb/breadcrumb.styles.js.map +1 -0
  44. package/dist/components/button/button.class.d.ts +7 -9
  45. package/dist/components/button/button.class.d.ts.map +1 -1
  46. package/dist/components/button/button.class.js +12 -14
  47. package/dist/components/button/button.class.js.map +1 -1
  48. package/dist/components/button/button.styles.d.ts.map +1 -1
  49. package/dist/components/button/button.styles.js +30 -10
  50. package/dist/components/button/button.styles.js.map +1 -1
  51. package/dist/components/button-group/button-group.class.d.ts +25 -0
  52. package/dist/components/button-group/button-group.class.d.ts.map +1 -0
  53. package/dist/components/button-group/button-group.class.js +39 -0
  54. package/dist/components/button-group/button-group.class.js.map +1 -0
  55. package/dist/components/button-group/button-group.d.ts +2 -0
  56. package/dist/components/button-group/button-group.d.ts.map +1 -0
  57. package/dist/components/button-group/button-group.js +5 -0
  58. package/dist/components/button-group/button-group.js.map +1 -0
  59. package/dist/components/button-group/button-group.styles.d.ts +2 -0
  60. package/dist/components/button-group/button-group.styles.d.ts.map +1 -0
  61. package/dist/components/button-group/button-group.styles.js +33 -0
  62. package/dist/components/button-group/button-group.styles.js.map +1 -0
  63. package/dist/components/callout/callout.class.d.ts +43 -0
  64. package/dist/components/callout/callout.class.d.ts.map +1 -0
  65. package/dist/components/callout/callout.class.js +92 -0
  66. package/dist/components/callout/callout.class.js.map +1 -0
  67. package/dist/components/callout/callout.d.ts +2 -0
  68. package/dist/components/callout/callout.d.ts.map +1 -0
  69. package/dist/components/callout/callout.js +5 -0
  70. package/dist/components/callout/callout.js.map +1 -0
  71. package/dist/components/callout/callout.styles.d.ts +2 -0
  72. package/dist/components/callout/callout.styles.d.ts.map +1 -0
  73. package/dist/components/callout/callout.styles.js +29 -0
  74. package/dist/components/callout/callout.styles.js.map +1 -0
  75. package/dist/components/carousel/carousel-item.class.d.ts +21 -0
  76. package/dist/components/carousel/carousel-item.class.d.ts.map +1 -0
  77. package/dist/components/carousel/carousel-item.class.js +19 -0
  78. package/dist/components/carousel/carousel-item.class.js.map +1 -0
  79. package/dist/components/carousel/carousel-item.d.ts +2 -0
  80. package/dist/components/carousel/carousel-item.d.ts.map +1 -0
  81. package/dist/components/carousel/carousel-item.js +5 -0
  82. package/dist/components/carousel/carousel-item.js.map +1 -0
  83. package/dist/components/carousel/carousel-item.styles.d.ts +2 -0
  84. package/dist/components/carousel/carousel-item.styles.d.ts.map +1 -0
  85. package/dist/components/carousel/carousel-item.styles.js +12 -0
  86. package/dist/components/carousel/carousel-item.styles.js.map +1 -0
  87. package/dist/components/carousel/carousel.class.d.ts +61 -0
  88. package/dist/components/carousel/carousel.class.d.ts.map +1 -0
  89. package/dist/components/carousel/carousel.class.js +223 -0
  90. package/dist/components/carousel/carousel.class.js.map +1 -0
  91. package/dist/components/carousel/carousel.d.ts +3 -0
  92. package/dist/components/carousel/carousel.d.ts.map +1 -0
  93. package/dist/components/carousel/carousel.js +5 -0
  94. package/dist/components/carousel/carousel.js.map +1 -0
  95. package/dist/components/carousel/carousel.styles.d.ts +2 -0
  96. package/dist/components/carousel/carousel.styles.d.ts.map +1 -0
  97. package/dist/components/carousel/carousel.styles.js +81 -0
  98. package/dist/components/carousel/carousel.styles.js.map +1 -0
  99. package/dist/components/chat-message/chat-message.styles.js +1 -1
  100. package/dist/components/code-block/code-block.styles.js +1 -1
  101. package/dist/components/color-picker/color-picker.class.d.ts +46 -0
  102. package/dist/components/color-picker/color-picker.class.d.ts.map +1 -0
  103. package/dist/components/color-picker/color-picker.class.js +81 -0
  104. package/dist/components/color-picker/color-picker.class.js.map +1 -0
  105. package/dist/components/color-picker/color-picker.d.ts +2 -0
  106. package/dist/components/color-picker/color-picker.d.ts.map +1 -0
  107. package/dist/components/color-picker/color-picker.js +5 -0
  108. package/dist/components/color-picker/color-picker.js.map +1 -0
  109. package/dist/components/color-picker/color-picker.styles.d.ts +2 -0
  110. package/dist/components/color-picker/color-picker.styles.d.ts.map +1 -0
  111. package/dist/components/color-picker/color-picker.styles.js +9 -0
  112. package/dist/components/color-picker/color-picker.styles.js.map +1 -0
  113. package/dist/components/date-picker/date-input.class.d.ts +4 -0
  114. package/dist/components/date-picker/date-input.class.d.ts.map +1 -1
  115. package/dist/components/date-picker/date-input.class.js +16 -0
  116. package/dist/components/date-picker/date-input.class.js.map +1 -1
  117. package/dist/components/details/accordion-item.class.d.ts +10 -0
  118. package/dist/components/details/accordion-item.class.d.ts.map +1 -0
  119. package/dist/components/details/accordion-item.class.js +5 -0
  120. package/dist/components/details/accordion-item.class.js.map +1 -0
  121. package/dist/components/details/accordion-item.d.ts +2 -0
  122. package/dist/components/details/accordion-item.d.ts.map +1 -0
  123. package/dist/components/details/accordion-item.js +5 -0
  124. package/dist/components/details/accordion-item.js.map +1 -0
  125. package/dist/components/details/accordion.class.d.ts +23 -0
  126. package/dist/components/details/accordion.class.d.ts.map +1 -0
  127. package/dist/components/details/accordion.class.js +48 -0
  128. package/dist/components/details/accordion.class.js.map +1 -0
  129. package/dist/components/details/accordion.d.ts +2 -0
  130. package/dist/components/details/accordion.d.ts.map +1 -0
  131. package/dist/components/details/accordion.js +5 -0
  132. package/dist/components/details/accordion.js.map +1 -0
  133. package/dist/components/details/details.class.d.ts +38 -0
  134. package/dist/components/details/details.class.d.ts.map +1 -0
  135. package/dist/components/details/details.class.js +83 -0
  136. package/dist/components/details/details.class.js.map +1 -0
  137. package/dist/components/details/details.d.ts +2 -0
  138. package/dist/components/details/details.d.ts.map +1 -0
  139. package/dist/components/details/details.js +5 -0
  140. package/dist/components/details/details.js.map +1 -0
  141. package/dist/components/details/details.styles.d.ts +2 -0
  142. package/dist/components/details/details.styles.d.ts.map +1 -0
  143. package/dist/components/details/details.styles.js +13 -0
  144. package/dist/components/details/details.styles.js.map +1 -0
  145. package/dist/components/dialog/dialog.styles.js +1 -1
  146. package/dist/components/divider/divider.class.d.ts +20 -0
  147. package/dist/components/divider/divider.class.d.ts.map +1 -0
  148. package/dist/components/divider/divider.class.js +28 -0
  149. package/dist/components/divider/divider.class.js.map +1 -0
  150. package/dist/components/divider/divider.d.ts +2 -0
  151. package/dist/components/divider/divider.d.ts.map +1 -0
  152. package/dist/components/divider/divider.js +5 -0
  153. package/dist/components/divider/divider.js.map +1 -0
  154. package/dist/components/divider/divider.styles.d.ts +2 -0
  155. package/dist/components/divider/divider.styles.d.ts.map +1 -0
  156. package/dist/components/divider/divider.styles.js +8 -0
  157. package/dist/components/divider/divider.styles.js.map +1 -0
  158. package/dist/components/drawer/drawer.class.d.ts +26 -0
  159. package/dist/components/drawer/drawer.class.d.ts.map +1 -0
  160. package/dist/components/drawer/drawer.class.js +34 -0
  161. package/dist/components/drawer/drawer.class.js.map +1 -0
  162. package/dist/components/drawer/drawer.d.ts +3 -0
  163. package/dist/components/drawer/drawer.d.ts.map +1 -0
  164. package/dist/components/drawer/drawer.js +5 -0
  165. package/dist/components/drawer/drawer.js.map +1 -0
  166. package/dist/components/drawer/drawer.styles.d.ts +2 -0
  167. package/dist/components/drawer/drawer.styles.d.ts.map +1 -0
  168. package/dist/components/drawer/drawer.styles.js +73 -0
  169. package/dist/components/drawer/drawer.styles.js.map +1 -0
  170. package/dist/components/format/format-bytes.class.d.ts +21 -0
  171. package/dist/components/format/format-bytes.class.d.ts.map +1 -0
  172. package/dist/components/format/format-bytes.class.js +46 -0
  173. package/dist/components/format/format-bytes.class.js.map +1 -0
  174. package/dist/components/format/format-bytes.d.ts +2 -0
  175. package/dist/components/format/format-bytes.d.ts.map +1 -0
  176. package/dist/components/format/format-bytes.js +5 -0
  177. package/dist/components/format/format-bytes.js.map +1 -0
  178. package/dist/components/format/format-date.class.d.ts +25 -0
  179. package/dist/components/format/format-date.class.d.ts.map +1 -0
  180. package/dist/components/format/format-date.class.js +59 -0
  181. package/dist/components/format/format-date.class.js.map +1 -0
  182. package/dist/components/format/format-date.d.ts +2 -0
  183. package/dist/components/format/format-date.d.ts.map +1 -0
  184. package/dist/components/format/format-date.js +5 -0
  185. package/dist/components/format/format-date.js.map +1 -0
  186. package/dist/components/format/format-number.class.d.ts +24 -0
  187. package/dist/components/format/format-number.class.d.ts.map +1 -0
  188. package/dist/components/format/format-number.class.js +58 -0
  189. package/dist/components/format/format-number.class.js.map +1 -0
  190. package/dist/components/format/format-number.d.ts +2 -0
  191. package/dist/components/format/format-number.d.ts.map +1 -0
  192. package/dist/components/format/format-number.js +5 -0
  193. package/dist/components/format/format-number.js.map +1 -0
  194. package/dist/components/format/format.styles.d.ts +2 -0
  195. package/dist/components/format/format.styles.d.ts.map +1 -0
  196. package/dist/components/format/format.styles.js +3 -0
  197. package/dist/components/format/format.styles.js.map +1 -0
  198. package/dist/components/format/relative-time.class.d.ts +29 -0
  199. package/dist/components/format/relative-time.class.d.ts.map +1 -0
  200. package/dist/components/format/relative-time.class.js +62 -0
  201. package/dist/components/format/relative-time.class.js.map +1 -0
  202. package/dist/components/format/relative-time.d.ts +2 -0
  203. package/dist/components/format/relative-time.d.ts.map +1 -0
  204. package/dist/components/format/relative-time.js +5 -0
  205. package/dist/components/format/relative-time.js.map +1 -0
  206. package/dist/components/heatmap/heatmap.class.d.ts +27 -0
  207. package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
  208. package/dist/components/heatmap/heatmap.class.js +125 -1
  209. package/dist/components/heatmap/heatmap.class.js.map +1 -1
  210. package/dist/components/heatmap/heatmap.styles.d.ts.map +1 -1
  211. package/dist/components/heatmap/heatmap.styles.js +27 -0
  212. package/dist/components/heatmap/heatmap.styles.js.map +1 -1
  213. package/dist/components/image-comparer/image-comparer.class.d.ts +43 -0
  214. package/dist/components/image-comparer/image-comparer.class.d.ts.map +1 -0
  215. package/dist/components/image-comparer/image-comparer.class.js +92 -0
  216. package/dist/components/image-comparer/image-comparer.class.js.map +1 -0
  217. package/dist/components/image-comparer/image-comparer.d.ts +3 -0
  218. package/dist/components/image-comparer/image-comparer.d.ts.map +1 -0
  219. package/dist/components/image-comparer/image-comparer.js +5 -0
  220. package/dist/components/image-comparer/image-comparer.js.map +1 -0
  221. package/dist/components/image-comparer/image-comparer.styles.d.ts +2 -0
  222. package/dist/components/image-comparer/image-comparer.styles.d.ts.map +1 -0
  223. package/dist/components/image-comparer/image-comparer.styles.js +70 -0
  224. package/dist/components/image-comparer/image-comparer.styles.js.map +1 -0
  225. package/dist/components/input/input.class.d.ts +12 -3
  226. package/dist/components/input/input.class.d.ts.map +1 -1
  227. package/dist/components/input/input.class.js +35 -2
  228. package/dist/components/input/input.class.js.map +1 -1
  229. package/dist/components/input/number-input.class.d.ts +17 -0
  230. package/dist/components/input/number-input.class.d.ts.map +1 -0
  231. package/dist/components/input/number-input.class.js +18 -0
  232. package/dist/components/input/number-input.class.js.map +1 -0
  233. package/dist/components/input/number-input.d.ts +2 -0
  234. package/dist/components/input/number-input.d.ts.map +1 -0
  235. package/dist/components/input/number-input.js +5 -0
  236. package/dist/components/input/number-input.js.map +1 -0
  237. package/dist/components/input/time-input.class.d.ts +16 -0
  238. package/dist/components/input/time-input.class.d.ts.map +1 -0
  239. package/dist/components/input/time-input.class.js +17 -0
  240. package/dist/components/input/time-input.class.js.map +1 -0
  241. package/dist/components/input/time-input.d.ts +2 -0
  242. package/dist/components/input/time-input.d.ts.map +1 -0
  243. package/dist/components/input/time-input.js +5 -0
  244. package/dist/components/input/time-input.js.map +1 -0
  245. package/dist/components/intersection-observer/intersection-observer.class.d.ts +37 -0
  246. package/dist/components/intersection-observer/intersection-observer.class.d.ts.map +1 -0
  247. package/dist/components/intersection-observer/intersection-observer.class.js +77 -0
  248. package/dist/components/intersection-observer/intersection-observer.class.js.map +1 -0
  249. package/dist/components/intersection-observer/intersection-observer.d.ts +2 -0
  250. package/dist/components/intersection-observer/intersection-observer.d.ts.map +1 -0
  251. package/dist/components/intersection-observer/intersection-observer.js +5 -0
  252. package/dist/components/intersection-observer/intersection-observer.js.map +1 -0
  253. package/dist/components/intersection-observer/intersection-observer.styles.d.ts +2 -0
  254. package/dist/components/intersection-observer/intersection-observer.styles.d.ts.map +1 -0
  255. package/dist/components/intersection-observer/intersection-observer.styles.js +8 -0
  256. package/dist/components/intersection-observer/intersection-observer.styles.js.map +1 -0
  257. package/dist/components/json-viewer/json-viewer.styles.js +1 -1
  258. package/dist/components/markdown/markdown.styles.js +1 -1
  259. package/dist/components/menu/dropdown-item.class.d.ts +18 -0
  260. package/dist/components/menu/dropdown-item.class.d.ts.map +1 -0
  261. package/dist/components/menu/dropdown-item.class.js +13 -0
  262. package/dist/components/menu/dropdown-item.class.js.map +1 -0
  263. package/dist/components/menu/dropdown-item.d.ts +2 -0
  264. package/dist/components/menu/dropdown-item.d.ts.map +1 -0
  265. package/dist/components/menu/dropdown-item.js +5 -0
  266. package/dist/components/menu/dropdown-item.js.map +1 -0
  267. package/dist/components/model-select/model-select.class.d.ts +4 -0
  268. package/dist/components/model-select/model-select.class.d.ts.map +1 -1
  269. package/dist/components/model-select/model-select.class.js +16 -1
  270. package/dist/components/model-select/model-select.class.js.map +1 -1
  271. package/dist/components/mutation-observer/mutation-observer.class.d.ts +40 -0
  272. package/dist/components/mutation-observer/mutation-observer.class.d.ts.map +1 -0
  273. package/dist/components/mutation-observer/mutation-observer.class.js +96 -0
  274. package/dist/components/mutation-observer/mutation-observer.class.js.map +1 -0
  275. package/dist/components/mutation-observer/mutation-observer.d.ts +2 -0
  276. package/dist/components/mutation-observer/mutation-observer.d.ts.map +1 -0
  277. package/dist/components/mutation-observer/mutation-observer.js +5 -0
  278. package/dist/components/mutation-observer/mutation-observer.js.map +1 -0
  279. package/dist/components/mutation-observer/mutation-observer.styles.d.ts +2 -0
  280. package/dist/components/mutation-observer/mutation-observer.styles.d.ts.map +1 -0
  281. package/dist/components/mutation-observer/mutation-observer.styles.js +8 -0
  282. package/dist/components/mutation-observer/mutation-observer.styles.js.map +1 -0
  283. package/dist/components/overlay/dropdown.class.d.ts +21 -0
  284. package/dist/components/overlay/dropdown.class.d.ts.map +1 -0
  285. package/dist/components/overlay/dropdown.class.js +18 -0
  286. package/dist/components/overlay/dropdown.class.js.map +1 -0
  287. package/dist/components/overlay/dropdown.d.ts +2 -0
  288. package/dist/components/overlay/dropdown.d.ts.map +1 -0
  289. package/dist/components/overlay/dropdown.js +5 -0
  290. package/dist/components/overlay/dropdown.js.map +1 -0
  291. package/dist/components/overlay/overlay.styles.d.ts +3 -0
  292. package/dist/components/overlay/overlay.styles.d.ts.map +1 -0
  293. package/dist/components/overlay/overlay.styles.js +39 -0
  294. package/dist/components/overlay/overlay.styles.js.map +1 -0
  295. package/dist/components/overlay/popover.class.d.ts +48 -0
  296. package/dist/components/overlay/popover.class.d.ts.map +1 -0
  297. package/dist/components/overlay/popover.class.js +132 -0
  298. package/dist/components/overlay/popover.class.js.map +1 -0
  299. package/dist/components/overlay/popover.d.ts +2 -0
  300. package/dist/components/overlay/popover.d.ts.map +1 -0
  301. package/dist/components/overlay/popover.js +5 -0
  302. package/dist/components/overlay/popover.js.map +1 -0
  303. package/dist/components/overlay/tooltip.class.d.ts +41 -0
  304. package/dist/components/overlay/tooltip.class.d.ts.map +1 -0
  305. package/dist/components/overlay/tooltip.class.js +118 -0
  306. package/dist/components/overlay/tooltip.class.js.map +1 -0
  307. package/dist/components/overlay/tooltip.d.ts +2 -0
  308. package/dist/components/overlay/tooltip.d.ts.map +1 -0
  309. package/dist/components/overlay/tooltip.js +5 -0
  310. package/dist/components/overlay/tooltip.js.map +1 -0
  311. package/dist/components/progress/progress-bar.class.d.ts +30 -0
  312. package/dist/components/progress/progress-bar.class.d.ts.map +1 -0
  313. package/dist/components/progress/progress-bar.class.js +61 -0
  314. package/dist/components/progress/progress-bar.class.js.map +1 -0
  315. package/dist/components/progress/progress-bar.d.ts +2 -0
  316. package/dist/components/progress/progress-bar.d.ts.map +1 -0
  317. package/dist/components/progress/progress-bar.js +5 -0
  318. package/dist/components/progress/progress-bar.js.map +1 -0
  319. package/dist/components/progress/progress-ring.class.d.ts +27 -0
  320. package/dist/components/progress/progress-ring.class.d.ts.map +1 -0
  321. package/dist/components/progress/progress-ring.class.js +59 -0
  322. package/dist/components/progress/progress-ring.class.js.map +1 -0
  323. package/dist/components/progress/progress-ring.d.ts +2 -0
  324. package/dist/components/progress/progress-ring.d.ts.map +1 -0
  325. package/dist/components/progress/progress-ring.js +5 -0
  326. package/dist/components/progress/progress-ring.js.map +1 -0
  327. package/dist/components/progress/progress.styles.d.ts +3 -0
  328. package/dist/components/progress/progress.styles.d.ts.map +1 -0
  329. package/dist/components/progress/progress.styles.js +23 -0
  330. package/dist/components/progress/progress.styles.js.map +1 -0
  331. package/dist/components/radio/radio-group.class.d.ts +49 -0
  332. package/dist/components/radio/radio-group.class.d.ts.map +1 -0
  333. package/dist/components/radio/radio-group.class.js +137 -0
  334. package/dist/components/radio/radio-group.class.js.map +1 -0
  335. package/dist/components/radio/radio-group.d.ts +2 -0
  336. package/dist/components/radio/radio-group.d.ts.map +1 -0
  337. package/dist/components/radio/radio-group.js +5 -0
  338. package/dist/components/radio/radio-group.js.map +1 -0
  339. package/dist/components/radio/radio-group.styles.d.ts +2 -0
  340. package/dist/components/radio/radio-group.styles.d.ts.map +1 -0
  341. package/dist/components/radio/radio-group.styles.js +11 -0
  342. package/dist/components/radio/radio-group.styles.js.map +1 -0
  343. package/dist/components/radio/radio.class.d.ts +97 -0
  344. package/dist/components/radio/radio.class.d.ts.map +1 -0
  345. package/dist/components/radio/radio.class.js +159 -0
  346. package/dist/components/radio/radio.class.js.map +1 -0
  347. package/dist/components/radio/radio.d.ts +2 -0
  348. package/dist/components/radio/radio.d.ts.map +1 -0
  349. package/dist/components/radio/radio.js +5 -0
  350. package/dist/components/radio/radio.js.map +1 -0
  351. package/dist/components/radio/radio.styles.d.ts +2 -0
  352. package/dist/components/radio/radio.styles.d.ts.map +1 -0
  353. package/dist/components/radio/radio.styles.js +57 -0
  354. package/dist/components/radio/radio.styles.js.map +1 -0
  355. package/dist/components/rating/rating.class.d.ts +34 -0
  356. package/dist/components/rating/rating.class.d.ts.map +1 -0
  357. package/dist/components/rating/rating.class.js +92 -0
  358. package/dist/components/rating/rating.class.js.map +1 -0
  359. package/dist/components/rating/rating.d.ts +2 -0
  360. package/dist/components/rating/rating.d.ts.map +1 -0
  361. package/dist/components/rating/rating.js +5 -0
  362. package/dist/components/rating/rating.js.map +1 -0
  363. package/dist/components/rating/rating.styles.d.ts +2 -0
  364. package/dist/components/rating/rating.styles.d.ts.map +1 -0
  365. package/dist/components/rating/rating.styles.js +10 -0
  366. package/dist/components/rating/rating.styles.js.map +1 -0
  367. package/dist/components/resize-observer/resize-observer.class.d.ts +37 -0
  368. package/dist/components/resize-observer/resize-observer.class.d.ts.map +1 -0
  369. package/dist/components/resize-observer/resize-observer.class.js +74 -0
  370. package/dist/components/resize-observer/resize-observer.class.js.map +1 -0
  371. package/dist/components/resize-observer/resize-observer.d.ts +2 -0
  372. package/dist/components/resize-observer/resize-observer.d.ts.map +1 -0
  373. package/dist/components/resize-observer/resize-observer.js +5 -0
  374. package/dist/components/resize-observer/resize-observer.js.map +1 -0
  375. package/dist/components/resize-observer/resize-observer.styles.d.ts +2 -0
  376. package/dist/components/resize-observer/resize-observer.styles.d.ts.map +1 -0
  377. package/dist/components/resize-observer/resize-observer.styles.js +11 -0
  378. package/dist/components/resize-observer/resize-observer.styles.js.map +1 -0
  379. package/dist/components/responsive-panel/responsive-panel.styles.js +1 -1
  380. package/dist/components/scroller/scroller.class.d.ts +54 -0
  381. package/dist/components/scroller/scroller.class.d.ts.map +1 -0
  382. package/dist/components/scroller/scroller.class.js +138 -0
  383. package/dist/components/scroller/scroller.class.js.map +1 -0
  384. package/dist/components/scroller/scroller.d.ts +2 -0
  385. package/dist/components/scroller/scroller.d.ts.map +1 -0
  386. package/dist/components/scroller/scroller.js +5 -0
  387. package/dist/components/scroller/scroller.js.map +1 -0
  388. package/dist/components/scroller/scroller.styles.d.ts +2 -0
  389. package/dist/components/scroller/scroller.styles.d.ts.map +1 -0
  390. package/dist/components/scroller/scroller.styles.js +94 -0
  391. package/dist/components/scroller/scroller.styles.js.map +1 -0
  392. package/dist/components/segmented/segmented.class.d.ts +6 -4
  393. package/dist/components/segmented/segmented.class.d.ts.map +1 -1
  394. package/dist/components/segmented/segmented.class.js +3 -2
  395. package/dist/components/segmented/segmented.class.js.map +1 -1
  396. package/dist/components/segmented/segmented.styles.js +1 -1
  397. package/dist/components/spinner/spinner.class.d.ts +24 -0
  398. package/dist/components/spinner/spinner.class.d.ts.map +1 -0
  399. package/dist/components/spinner/spinner.class.js +41 -0
  400. package/dist/components/spinner/spinner.class.js.map +1 -0
  401. package/dist/components/spinner/spinner.d.ts +2 -0
  402. package/dist/components/spinner/spinner.d.ts.map +1 -0
  403. package/dist/components/spinner/spinner.js +5 -0
  404. package/dist/components/spinner/spinner.js.map +1 -0
  405. package/dist/components/spinner/spinner.styles.d.ts +2 -0
  406. package/dist/components/spinner/spinner.styles.d.ts.map +1 -0
  407. package/dist/components/spinner/spinner.styles.js +17 -0
  408. package/dist/components/spinner/spinner.styles.js.map +1 -0
  409. package/dist/components/table/table.class.d.ts +87 -0
  410. package/dist/components/table/table.class.d.ts.map +1 -1
  411. package/dist/components/table/table.class.js +403 -113
  412. package/dist/components/table/table.class.js.map +1 -1
  413. package/dist/components/table/table.styles.d.ts.map +1 -1
  414. package/dist/components/table/table.styles.js +56 -0
  415. package/dist/components/table/table.styles.js.map +1 -1
  416. package/dist/components/textarea/textarea.class.d.ts +6 -2
  417. package/dist/components/textarea/textarea.class.d.ts.map +1 -1
  418. package/dist/components/textarea/textarea.class.js +6 -2
  419. package/dist/components/textarea/textarea.class.js.map +1 -1
  420. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts +13 -6
  421. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
  422. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js +48 -10
  423. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
  424. package/dist/components/tool-approval-dialog/tool-approval-dialog.styles.js +1 -1
  425. package/dist/components/tool-result-dialog/tool-result-dialog.styles.js +1 -1
  426. package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts +7 -0
  427. package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -1
  428. package/dist/components/tool-select-dialog/tool-select-dialog.class.js +31 -0
  429. package/dist/components/tool-select-dialog/tool-select-dialog.class.js.map +1 -1
  430. package/dist/components/tool-select-dialog/tool-select-dialog.styles.js +1 -1
  431. package/dist/components/widget/widget.styles.js +1 -1
  432. package/dist/components/word-cloud/word-cloud.styles.js +4 -4
  433. package/dist/components/zoomable-frame/zoomable-frame.class.d.ts +48 -0
  434. package/dist/components/zoomable-frame/zoomable-frame.class.d.ts.map +1 -0
  435. package/dist/components/zoomable-frame/zoomable-frame.class.js +115 -0
  436. package/dist/components/zoomable-frame/zoomable-frame.class.js.map +1 -0
  437. package/dist/components/zoomable-frame/zoomable-frame.d.ts +3 -0
  438. package/dist/components/zoomable-frame/zoomable-frame.d.ts.map +1 -0
  439. package/dist/components/zoomable-frame/zoomable-frame.js +5 -0
  440. package/dist/components/zoomable-frame/zoomable-frame.js.map +1 -0
  441. package/dist/components/zoomable-frame/zoomable-frame.styles.d.ts +2 -0
  442. package/dist/components/zoomable-frame/zoomable-frame.styles.d.ts.map +1 -0
  443. package/dist/components/zoomable-frame/zoomable-frame.styles.js +77 -0
  444. package/dist/components/zoomable-frame/zoomable-frame.styles.js.map +1 -0
  445. package/dist/internal/localization.d.ts +1 -1
  446. package/dist/internal/localization.d.ts.map +1 -1
  447. package/dist/internal/localization.js +25 -0
  448. package/dist/internal/localization.js.map +1 -1
  449. package/dist/internal/lyra-element.d.ts +2 -2
  450. package/dist/internal/lyra-element.js +2 -2
  451. package/dist/internal/root-registration-allowlist.d.ts +1 -1
  452. package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
  453. package/dist/internal/root-registration-allowlist.js +36 -0
  454. package/dist/internal/root-registration-allowlist.js.map +1 -1
  455. package/dist/internal/tokens.styles.d.ts.map +1 -1
  456. package/dist/internal/tokens.styles.js +202 -198
  457. package/dist/internal/tokens.styles.js.map +1 -1
  458. package/dist/lyra.d.ts +93 -0
  459. package/dist/lyra.d.ts.map +1 -1
  460. package/dist/lyra.js +72 -0
  461. package/dist/lyra.js.map +1 -1
  462. package/dist/testing/happy-dom-shims.d.ts +9 -3
  463. package/dist/testing/happy-dom-shims.d.ts.map +1 -1
  464. package/dist/testing/happy-dom-shims.js +13 -3
  465. package/dist/testing/happy-dom-shims.js.map +1 -1
  466. package/dist/theme.css +58 -0
  467. package/llms-full.txt +556 -39
  468. package/llms.txt +22 -8
  469. package/package.json +81 -2
package/README.md CHANGED
@@ -2,24 +2,18 @@
2
2
 
3
3
  [![CI](https://github.com/aceshooting/lyra-ui/actions/workflows/ci.yml/badge.svg)](https://github.com/aceshooting/lyra-ui/actions/workflows/ci.yml)
4
4
 
5
- **Web Awesome, plus.** Free, clean-room [Lit](https://lit.dev) web components — a companion to
6
- [Web Awesome](https://webawesome.com) that provides open-source equivalents of selected,
7
- documented Web Awesome **Pro** surfaces (form controls, date pickers, toasts, charts, …), *plus*
8
- dozens of original components Web Awesome has no equivalent for at all — dashboard atoms, a chart
9
- family, temporal/graph/map visualizations, and (newest) a full **Conversation & Agent UI** family
10
- for building chat/agent products: message bubbles, streaming text, tool-call chips and approval
11
- dialogs, citations, model/settings pickers, and more. Token-compatible with Web Awesome, so the
12
- mirrored components look native inside a WA app, and everything is fully usable standalone.
13
-
14
- > **Independent project.** Not affiliated with or endorsed by Web Awesome, and no `wa-` prefix or
15
- > Web Awesome trademark/branding is used here. For components that *do* have a Web Awesome
16
- > counterpart, this package gives you a free, open-source component wherever Web Awesome Pro
17
- > normally charges — the public API (attributes, slots, events, CSS parts) mirrors Web Awesome's
18
- > own documented surface under the `lyra-` prefix. Read the migration notes and component entry
19
- > before treating a migration as a drop-in swap — but every implementation in this package is original
20
- > (clean-room; no Web Awesome Pro source was ever available to or copied by this project). Most of
21
- > the library, and all of the Conversation & Agent UI family, has no Web Awesome counterpart to
22
- > mirror in the first place — see the "Mirrors" column in the tables below.
5
+ **Lyra UI — the free, independent web-component alternative.** A MIT-licensed [Lit](https://lit.dev)
6
+ library for accessible forms, dashboards, charts, data visualization, and Conversation & Agent UI.
7
+ It is a practical open-source alternative to [Shoelace](https://shoelace.style/) and
8
+ [Web Awesome](https://webawesome.com/), with 133 custom elements, native custom-element APIs,
9
+ tree-shakeable imports, its own `--lyra-*` design tokens, built-in localization and RTL support,
10
+ and no runtime dependency on either project.
11
+
12
+ > **Independent implementation.** Lyra is not affiliated with, endorsed by, or a fork or rebrand of
13
+ > Shoelace or Web Awesome. Selected Web Awesome-compatible components retain documented public names
14
+ > under the `lyra-` prefix to make migration easier; component notes identify differences. Shoelace
15
+ > users get a separate `sl-*` migration map because the APIs are not identical. No competitor runtime,
16
+ > theme, token namespace, or source code is required by Lyra.
23
17
 
24
18
  ## Install
25
19
 
@@ -105,11 +99,12 @@ toast({ message: 'Saved', variant: 'success' });
105
99
  - **Contributing to this repo itself?** See [`../../AGENTS.md`](../../AGENTS.md) instead — that's a
106
100
  contributor guide for agents working *on* lyra-ui, not the same document as the two above.
107
101
 
108
- ## Migrating from Web Awesome Pro
102
+ ## Migrating from Web Awesome or Shoelace
109
103
 
110
- For every component marked with a `wa-*` counterpart in the "Mirrors" column, the documented
111
- compatible surface (attributes, slots, events, CSS parts, and custom properties) uses the same
112
- public names under the `lyra-` prefix. Read the component notes before migrating: for example,
104
+ For a component marked with a `wa-*` counterpart in the "Mirrors" column, Lyra keeps the documented
105
+ public vocabulary where practical: attributes, slots, events, CSS parts, and custom properties use
106
+ the same names under the `lyra-` prefix. This makes many migrations a predictable import and tag-name
107
+ change, while the component notes remain authoritative for intentional differences. For example,
113
108
  Lyra's combobox uses `with-clear`, while Web Awesome's equivalent uses `clearable`.
114
109
 
115
110
  ```
@@ -117,6 +112,25 @@ Lyra's combobox uses `with-clear`, while Web Awesome's equivalent uses `clearabl
117
112
  <wa-date-input value="2026-07-15"> → <lyra-date-input value="2026-07-15">
118
113
  ```
119
114
 
115
+ Shoelace is now a historical predecessor to Web Awesome, but its component vocabulary remains
116
+ familiar to many teams. Lyra provides a conceptual migration path rather than claiming a drop-in
117
+ `sl-*` replacement:
118
+
119
+ | Shoelace | Lyra | Migration note |
120
+ |---|---|---|
121
+ | `<sl-button>` | `<lyra-button>` | Check `variant`, `appearance`, and loading behavior. |
122
+ | `<sl-input>` / `<sl-textarea>` | `<lyra-input>` / `<lyra-textarea>` | Preserve the native editing and form contract; review label/error markup. |
123
+ | `<sl-select>` / `<sl-option>` | `<lyra-select>` / `<lyra-option>` | Review option and value events. |
124
+ | `<sl-dialog>` / `<sl-drawer>` | `<lyra-dialog>` / `<lyra-drawer>` | Review close reasons, focus behavior, and slots. |
125
+ | `<sl-card>` / `<sl-badge>` / `<sl-callout>` | `<lyra-card>` / `<lyra-badge>` / `<lyra-callout>` | Review appearance tokens and dismiss events. |
126
+ | `<sl-spinner>` / `<sl-progress-bar>` | `<lyra-spinner>` / `<lyra-progress-bar>` | Built-in status copy is localized through Lyra's runtime. |
127
+
128
+ For either migration, update the package import, replace the custom-element prefix, run the
129
+ component's accessibility story, and check its API notes for behavior that cannot be inferred from
130
+ the tag name alone. Lyra's own `--lyra-theme-*` variables are the only theme inputs it reads. For a
131
+ staged Web Awesome migration, map existing values explicitly in application CSS; Lyra does not read
132
+ competitor token variables itself.
133
+
120
134
  Everything else in the tables below — marked `— (extra)` — has no Web Awesome equivalent to
121
135
  migrate *from* in the first place, so there's nothing to rename: install the package and import
122
136
  what you need (see Usage above). That's most of this library, including every dashboard atom
@@ -130,9 +144,43 @@ Awesome has no chat/agent UI component family at all.
130
144
  Every component is built on the same three guarantees, verified across the whole library rather
131
145
  than opt-in per component:
132
146
 
133
- **Theming.** Components read Web Awesome's `--wa-*` design tokens (with `--lyra-*` fallbacks).
134
- Inside a WA app they inherit your theme automatically; standalone, they use sensible defaults
135
- override any `--lyra-*`/`--wa-*` custom property to retheme.
147
+ **Theming.** Components read independent `--lyra-theme-*` variables and standalone defaults. Lyra
148
+ does not depend on another library's theme or token namespace. For a ready-made light/dark base
149
+ theme, import `@aceshooting/lyra-ui/theme.css` once and toggle `.lyra-light`/`.lyra-dark` (or the
150
+ matching `data-lyra-theme` attribute) on an ancestor:
151
+
152
+ ```css
153
+ @import '@aceshooting/lyra-ui/theme.css';
154
+ ```
155
+
156
+ ```html
157
+ <body class="lyra-dark">
158
+ <lyra-button variant="brand">Save</lyra-button>
159
+ </body>
160
+ ```
161
+
162
+ Applications can override any `--lyra-theme-*` input directly:
163
+
164
+ ```css
165
+ :root {
166
+ --lyra-theme-color-surface-default: #101827;
167
+ --lyra-theme-color-text-normal: #f8fafc;
168
+ --lyra-theme-color-brand-fill-loud: #60a5fa;
169
+ --lyra-theme-font-size-m: 1rem;
170
+ --lyra-theme-border-radius-m: 0.5rem;
171
+ }
172
+ ```
173
+
174
+ See `internal/tokens.styles.ts` for the complete shared token list. Component-specific `--lyra-*`
175
+ custom properties remain available for local overrides.
176
+
177
+ **Frontend quality guarantees.** Every component is designed as a native custom element and tested
178
+ for the contract that applies to its shape: semantic roles and accessible names inside shadow DOM,
179
+ keyboard navigation, bubbling/composed public events, native form association and validity, logical
180
+ CSS for RTL, narrow-container layouts, reduced motion, and forced-colors behavior. Form controls
181
+ expose label, hint, error, focus, editing, reset, and validity behavior instead of hiding the useful
182
+ native contract behind a private input. Heavy integrations such as Chart.js, MapLibre, D3, Shiki,
183
+ Markdown, phone-number metadata, and flag artwork remain optional peer dependencies.
136
184
 
137
185
  **Internationalization.** Every built-in string (button labels, status announcements,
138
186
  `aria-label`s) resolves through a small runtime, in two ways you can combine:
@@ -154,14 +202,23 @@ No rebuild, no per-locale bundle, no per-component API to learn — register the
154
202
  every component that uses that key picks it up reactively, including ones added after your app's
155
203
  first render.
156
204
 
205
+ Lyra's default messages are English fallbacks, while applications own the translated catalog. Date,
206
+ number, byte, relative-time, and calendar formatting use the browser's `Intl` APIs and the resolved
207
+ locale. Consumer-provided labels, values, file names, and message content are never altered by the
208
+ localization layer. The same runtime also covers accessible names, descriptions, validation messages,
209
+ live-region announcements, empty states, status labels, and action buttons; use `.strings` for a
210
+ component-specific override when needed.
211
+
157
212
  **RTL.** Set `dir="rtl"` on `<html>` or any ancestor (or just a `lang` whose default direction is
158
213
  RTL, e.g. `ar`/`he`/`fa`) — every component mirrors its layout automatically via CSS logical
159
214
  properties and swaps directional keyboard navigation (e.g. the arrow keys in a date grid or a
160
- roving-tabindex list) to match. No per-component RTL flag or opt-in needed.
215
+ roving-tabindex list) to match. This covers Arabic, Hebrew, Persian, Urdu, and other RTL locales
216
+ through inherited direction; no per-component RTL flag or opt-in is needed. Components do not force
217
+ their own `dir`, so they remain composable inside mixed-direction layouts.
161
218
 
162
219
  ## Components
163
220
 
164
- The catalog below lists all 97 tags in the current Custom Elements Manifest, grouped by
221
+ The catalog below lists all 133 tags in the current Custom Elements Manifest, grouped by
165
222
  capability. The manifest and live docs are the authoritative sources for the complete generated
166
223
  API details.
167
224
 
@@ -178,7 +235,12 @@ API details.
178
235
  | `<lyra-sparkline>` | `wa-sparkline` | Zero-dependency inline SVG |
179
236
  | `<lyra-textarea>` | `wa-textarea` | Form-associated multiline field with label/hint/error chrome, auto-resize, native editing passthrough, and caret APIs |
180
237
  | `<lyra-input>` | `wa-input` | Form-associated single-line field (`text`/`password`/`email`/`number`) with label/hint/error chrome and a built-in password-visibility toggle |
238
+ | `<lyra-number-input>` + `<lyra-time-input>` | `wa-number-input` / `wa-time-input` | Native number/time aliases retaining Lyra form and event contracts |
239
+ | `<lyra-color-picker>` | `wa-color-picker` | Form-associated native color picker with label/hint chrome |
181
240
  | `<lyra-button>` | `wa-button` | Generic action-button primitive (`variant`/`appearance`/`size`/`loading`), owns `type="submit"`/`"reset"` via the closest ancestor `<form>` |
241
+ | `<lyra-radio>` + `<lyra-radio-group>` | `wa-radio` / `wa-radio-group` | Form-associated single-choice controls with roving arrow-key navigation and group validation |
242
+ | `<lyra-spinner>` | `wa-spinner` | Localized indeterminate busy indicator with reduced-motion support |
243
+ | `<lyra-progress-bar>` + `<lyra-progress-ring>` | `wa-progress-bar` / `wa-progress-ring` | Determinate or indeterminate progress indicators |
182
244
  | `<lyra-flag>` | — (extra) | Country/language flags for i18n pickers — needs the optional peer `@aceshooting/lyra-flags` |
183
245
 
184
246
  **Dashboard atoms**
@@ -187,8 +249,12 @@ API details.
187
249
  |-----------|---------|-------|
188
250
  | `<lyra-empty>` | — (extra) | Generic empty/no-data state |
189
251
  | `<lyra-skeleton>` | — (extra) | Loading placeholder (pulse/sheen) |
252
+ | `<lyra-scroller>` | `wa-scroller` | Responsive overflow surface with optional navigation controls |
253
+ | `<lyra-resize-observer>` | `wa-resize-observer` | Lifecycle-managed ResizeObserver for slotted elements |
254
+ | `<lyra-intersection-observer>` | `wa-intersection-observer` | Lifecycle-managed IntersectionObserver for slotted elements |
255
+ | `<lyra-mutation-observer>` | `wa-mutation-observer` | Lifecycle-managed MutationObserver for slotted elements |
190
256
  | `<lyra-stat>` | — (extra) | KPI/stat card with trend pill and an optional breakdown row list; either can carry an `exactValue` shown as a hover/focus tooltip alongside the rounded/formatted display value |
191
- | `<lyra-table>` | — (extra) | Presentational, sort/select-aware data table; a column's responsive `priority` (`medium`/`low`) hides it first as the container narrows, with a reveal-columns button to force hidden columns back |
257
+ | `<lyra-table>` | — (extra) | Sort/select-aware data table with optional controlled filtering, client/server-friendly pagination, loading state, consumer-owned inline editing, expandable rows, sticky columns, and responsive `priority` columns |
192
258
  | `<lyra-pagination>` | — (extra) | Controlled previous/next and validated page-jump navigation with a localized range summary, loading/empty states, RTL icons, and container-responsive stacking |
193
259
  | `<lyra-gauge>` | — (extra) | Radial, full-circle ring, or linear meter with a per-instance fill token |
194
260
  | `<lyra-export-button>` | — (extra) | Injection-safe CSV/JSON downloads plus event-handled custom format descriptors and controlled busy state |
@@ -196,6 +262,10 @@ API details.
196
262
  | `<lyra-split>` | — (extra) | Resizable panel layout; one pane can opt into responsive `collapse` (`"start"`/`"end"`) to a fixed-width rail, then a floating overlay card, as the split's container narrows |
197
263
  | `<lyra-widget>` | — (extra) | Card shell with collapsible header, fullscreen, and customizable chrome |
198
264
  | `<lyra-word-cloud>` | — (extra) | Zero-dependency SVG word/tag cloud, spiral-placed by weight |
265
+ | `<lyra-badge>` + `<lyra-tag>` | `wa-badge` / `wa-tag` | Compact semantic status labels |
266
+ | `<lyra-callout>` | `wa-callout` | Dismissible inline status, warning, and error message surface |
267
+ | `<lyra-divider>` | `wa-divider` | Horizontal or vertical semantic separator |
268
+ | `<lyra-rating>` | `wa-rating` | Keyboard-accessible star rating slider |
199
269
 
200
270
  **Temporal & graph**
201
271
 
@@ -207,6 +277,12 @@ API details.
207
277
  | `<lyra-graph>` | — (extra) | Force-directed node-link diagram with pan/zoom/drag, directed/styled relationship links, and rich accessible metadata — needs the optional peer deps `d3-force`, `d3-drag`, `d3-zoom`, `d3-selection` |
208
278
  | `<lyra-tree>` + `<lyra-tree-node>` | — (extra) | Expand/collapse hierarchy with structured icon/label/description/badge rows, optional richer accessible labels, and APG tree keyboard navigation |
209
279
 
280
+ **Overlays**
281
+
282
+ | Component | Mirrors | Notes |
283
+ |-----------|---------|-------|
284
+ | `<lyra-popover>` + `<lyra-tooltip>` + `<lyra-dropdown>` | `wa-popover` / `wa-tooltip` / `wa-dropdown` | Floating UI-positioned, RTL-aware overlay primitives with light dismiss and trigger ARIA wiring |
285
+
210
286
  **Charts**
211
287
 
212
288
  | Component | Mirrors | Notes |
@@ -265,10 +341,17 @@ each one-liner below.
265
341
  | `<lyra-slider>` | — (extra) | Numeric range control (e.g. an LLM "temperature" setting), form-associated, mirrors native `<input type="range">` semantics |
266
342
  | `<lyra-context-meter>` | — (extra) | Segmented bar/ring occupancy meter for a token budget or context window, split across labeled categories |
267
343
  | `<lyra-dialog>` + `confirm()` | — (extra) | General-purpose modal/overlay (focus-trapped, Escape/backdrop-dismissible, scroll-locking, dialog stacking); `confirm()` is a promise-based `window.confirm()` replacement built on it |
344
+ | `<lyra-drawer>` | — (extra) | Modal panel anchored to the logical start/end edge or top/bottom, sharing dialog focus, dismissal, stacking, and scroll-lock behavior |
345
+ | `<lyra-carousel>` | `wa-carousel` | Accessible slotted-slide carousel with keyboard navigation, indicators, looping, and reduced-motion-aware autoplay |
346
+ | `<lyra-carousel-item>` | `wa-carousel-item` | Optional semantic slide wrapper for carousel content |
347
+ | `<lyra-button-group>` | `wa-button-group` | Responsive semantic grouping for related action controls |
348
+ | `<lyra-image-comparer>` | `wa-image-comparer` | Before/after slotted surfaces with a keyboard-accessible range divider |
349
+ | `<lyra-zoomable-frame>` | `wa-zoomable-frame` | Bounded zoom and scrollable panning for slotted content or an image source |
268
350
  | `<lyra-tabs>` | — (extra) | Tab strip over direct light-DOM panels; WAI-ARIA APG automatic-activation keyboard pattern |
269
351
  | `<lyra-checkbox>` | — (extra) | Boolean form control, `role="checkbox"` with a visual/`indeterminate` mixed state |
270
352
  | `<lyra-switch>` | — (extra) | Boolean toggle-switch form control, `role="switch"` on/off semantics |
271
353
  | `<lyra-menu>` + `<lyra-menu-item>` | — (extra) | Anchored dropdown menu around a consumer-supplied trigger; WAI-ARIA "menu button" pattern with real roving focus (not a listbox) |
354
+ | `<lyra-dropdown-item>` | `wa-dropdown-item` | Drop-in naming alias for `<lyra-menu-item>`, including checkbox items and roving focus |
272
355
  | `<lyra-chip>` + `<lyra-chip-group>` | — (extra) | Content-agnostic label pill (tag/filter/scope indicator) and a flex-wrap group with a "+N" overflow indicator |
273
356
  | `<lyra-kbd>` | — (extra) | Keyboard-shortcut chip; renders platform-appropriate glyphs (⌘ vs. Ctrl) from a single `"mod+k"`-style `keys` string |
274
357
  | `<lyra-result-card>` + `<lyra-result-field>` | — (extra) | Small bordered card + label/value row shell, for giving custom `lyra-tool-result-view` renderers a consistent look with no bespoke box |
@@ -281,6 +364,9 @@ each one-liner below.
281
364
  | `<lyra-diff-view>` | — (extra) | Real two-string line diff (LCS-aligned), rendered as interleaved unified-diff output |
282
365
  | `<lyra-poll-status>` | — (extra) | "Next scheduled refresh" countdown with a built-in pause control and live-region announcements |
283
366
  | `<lyra-code-block-core>` | — (extra) | Build-lean `lyra-code-block` variant for a consumer whose `languages` map already covers every language it renders — never references shiki's full ~200-language table |
367
+ | `<lyra-details>` + `<lyra-accordion>` + `<lyra-accordion-item>` | `wa-details` / `wa-accordion` | Native disclosure and coordinated accordion panels |
368
+ | `<lyra-breadcrumb>` + `<lyra-breadcrumb-item>` | `wa-breadcrumb` | Responsive navigation trail |
369
+ | `<lyra-format-number>` + `<lyra-format-date>` + `<lyra-format-bytes>` + `<lyra-relative-time>` | `wa-format-*` / `wa-relative-time` | Locale-aware formatting primitives |
284
370
 
285
371
  ## Known limitations
286
372