@aceshooting/lyra-ui 3.2.0 → 3.4.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 (539) hide show
  1. package/README.md +20 -4
  2. package/custom-elements.json +38106 -20875
  3. package/dist/components/app-rail/app-rail-item.class.d.ts.map +1 -1
  4. package/dist/components/app-rail/app-rail-item.class.js +5 -2
  5. package/dist/components/app-rail/app-rail-item.class.js.map +1 -1
  6. package/dist/components/app-rail/app-rail.class.d.ts +6 -1
  7. package/dist/components/app-rail/app-rail.class.d.ts.map +1 -1
  8. package/dist/components/app-rail/app-rail.class.js.map +1 -1
  9. package/dist/components/archive-viewer/archive-viewer.class.d.ts +2 -2
  10. package/dist/components/archive-viewer/archive-viewer.class.d.ts.map +1 -1
  11. package/dist/components/archive-viewer/archive-viewer.class.js +40 -17
  12. package/dist/components/archive-viewer/archive-viewer.class.js.map +1 -1
  13. package/dist/components/attachment-chip/attachment-chip.class.d.ts +6 -1
  14. package/dist/components/attachment-chip/attachment-chip.class.d.ts.map +1 -1
  15. package/dist/components/attachment-chip/attachment-chip.class.js +3 -27
  16. package/dist/components/attachment-chip/attachment-chip.class.js.map +1 -1
  17. package/dist/components/attachment-trigger/attachment-trigger.class.d.ts +5 -0
  18. package/dist/components/attachment-trigger/attachment-trigger.class.d.ts.map +1 -1
  19. package/dist/components/attachment-trigger/attachment-trigger.class.js +4 -0
  20. package/dist/components/attachment-trigger/attachment-trigger.class.js.map +1 -1
  21. package/dist/components/breadcrumb/breadcrumb-item.class.d.ts.map +1 -1
  22. package/dist/components/breadcrumb/breadcrumb-item.class.js +4 -2
  23. package/dist/components/breadcrumb/breadcrumb-item.class.js.map +1 -1
  24. package/dist/components/breadcrumb/breadcrumb.class.d.ts +6 -0
  25. package/dist/components/breadcrumb/breadcrumb.class.d.ts.map +1 -1
  26. package/dist/components/breadcrumb/breadcrumb.class.js +7 -1
  27. package/dist/components/breadcrumb/breadcrumb.class.js.map +1 -1
  28. package/dist/components/breadcrumb/breadcrumb.styles.d.ts.map +1 -1
  29. package/dist/components/breadcrumb/breadcrumb.styles.js +4 -1
  30. package/dist/components/breadcrumb/breadcrumb.styles.js.map +1 -1
  31. package/dist/components/button/button.class.d.ts +8 -0
  32. package/dist/components/button/button.class.d.ts.map +1 -1
  33. package/dist/components/button/button.class.js +8 -0
  34. package/dist/components/button/button.class.js.map +1 -1
  35. package/dist/components/button/button.styles.js +1 -1
  36. package/dist/components/button-group/button-group.styles.d.ts.map +1 -1
  37. package/dist/components/button-group/button-group.styles.js +6 -2
  38. package/dist/components/button-group/button-group.styles.js.map +1 -1
  39. package/dist/components/calendar/calendar.class.d.ts +57 -0
  40. package/dist/components/calendar/calendar.class.d.ts.map +1 -0
  41. package/dist/components/calendar/calendar.class.js +90 -0
  42. package/dist/components/calendar/calendar.class.js.map +1 -0
  43. package/dist/components/calendar/calendar.d.ts +2 -0
  44. package/dist/components/calendar/calendar.d.ts.map +1 -0
  45. package/dist/components/calendar/calendar.js +5 -0
  46. package/dist/components/calendar/calendar.js.map +1 -0
  47. package/dist/components/calendar/calendar.styles.d.ts +2 -0
  48. package/dist/components/calendar/calendar.styles.d.ts.map +1 -0
  49. package/dist/components/calendar/calendar.styles.js +21 -0
  50. package/dist/components/calendar/calendar.styles.js.map +1 -0
  51. package/dist/components/calendar-viewer/calendar-viewer.class.d.ts +1 -1
  52. package/dist/components/calendar-viewer/calendar-viewer.class.d.ts.map +1 -1
  53. package/dist/components/calendar-viewer/calendar-viewer.class.js +15 -11
  54. package/dist/components/calendar-viewer/calendar-viewer.class.js.map +1 -1
  55. package/dist/components/callout/callout.class.d.ts +1 -0
  56. package/dist/components/callout/callout.class.d.ts.map +1 -1
  57. package/dist/components/callout/callout.class.js +1 -0
  58. package/dist/components/callout/callout.class.js.map +1 -1
  59. package/dist/components/card/card.class.d.ts.map +1 -1
  60. package/dist/components/card/card.class.js +4 -2
  61. package/dist/components/card/card.class.js.map +1 -1
  62. package/dist/components/carousel/carousel.class.d.ts +2 -0
  63. package/dist/components/carousel/carousel.class.d.ts.map +1 -1
  64. package/dist/components/carousel/carousel.class.js +10 -7
  65. package/dist/components/carousel/carousel.class.js.map +1 -1
  66. package/dist/components/carousel/carousel.styles.d.ts.map +1 -1
  67. package/dist/components/carousel/carousel.styles.js +4 -0
  68. package/dist/components/carousel/carousel.styles.js.map +1 -1
  69. package/dist/components/chart/chart.class.d.ts +6 -0
  70. package/dist/components/chart/chart.class.d.ts.map +1 -1
  71. package/dist/components/chart/chart.class.js +54 -16
  72. package/dist/components/chart/chart.class.js.map +1 -1
  73. package/dist/components/chart/lite-chart.class.d.ts +1 -2
  74. package/dist/components/chart/lite-chart.class.d.ts.map +1 -1
  75. package/dist/components/chart/lite-chart.class.js +20 -20
  76. package/dist/components/chart/lite-chart.class.js.map +1 -1
  77. package/dist/components/chat-composer/chat-composer.class.d.ts +1 -0
  78. package/dist/components/chat-composer/chat-composer.class.d.ts.map +1 -1
  79. package/dist/components/chat-composer/chat-composer.class.js +17 -0
  80. package/dist/components/chat-composer/chat-composer.class.js.map +1 -1
  81. package/dist/components/checkbox/checkbox.class.d.ts.map +1 -1
  82. package/dist/components/checkbox/checkbox.class.js +4 -2
  83. package/dist/components/checkbox/checkbox.class.js.map +1 -1
  84. package/dist/components/checkbox-group/checkbox-group.class.d.ts +75 -0
  85. package/dist/components/checkbox-group/checkbox-group.class.d.ts.map +1 -0
  86. package/dist/components/checkbox-group/checkbox-group.class.js +157 -0
  87. package/dist/components/checkbox-group/checkbox-group.class.js.map +1 -0
  88. package/dist/components/checkbox-group/checkbox-group.d.ts +2 -0
  89. package/dist/components/checkbox-group/checkbox-group.d.ts.map +1 -0
  90. package/dist/components/checkbox-group/checkbox-group.js +5 -0
  91. package/dist/components/checkbox-group/checkbox-group.js.map +1 -0
  92. package/dist/components/checkbox-group/checkbox-group.styles.d.ts +2 -0
  93. package/dist/components/checkbox-group/checkbox-group.styles.d.ts.map +1 -0
  94. package/dist/components/checkbox-group/checkbox-group.styles.js +12 -0
  95. package/dist/components/checkbox-group/checkbox-group.styles.js.map +1 -0
  96. package/dist/components/code-block/code-block-core.class.d.ts.map +1 -1
  97. package/dist/components/code-block/code-block-core.class.js +17 -0
  98. package/dist/components/code-block/code-block-core.class.js.map +1 -1
  99. package/dist/components/code-block/code-block.class.d.ts.map +1 -1
  100. package/dist/components/code-block/code-block.class.js +8 -0
  101. package/dist/components/code-block/code-block.class.js.map +1 -1
  102. package/dist/components/code-editor/code-editor.class.d.ts +70 -0
  103. package/dist/components/code-editor/code-editor.class.d.ts.map +1 -0
  104. package/dist/components/code-editor/code-editor.class.js +137 -0
  105. package/dist/components/code-editor/code-editor.class.js.map +1 -0
  106. package/dist/components/code-editor/code-editor.d.ts +2 -0
  107. package/dist/components/code-editor/code-editor.d.ts.map +1 -0
  108. package/dist/components/code-editor/code-editor.js +5 -0
  109. package/dist/components/code-editor/code-editor.js.map +1 -0
  110. package/dist/components/code-editor/code-editor.styles.d.ts +2 -0
  111. package/dist/components/code-editor/code-editor.styles.d.ts.map +1 -0
  112. package/dist/components/code-editor/code-editor.styles.js +15 -0
  113. package/dist/components/code-editor/code-editor.styles.js.map +1 -0
  114. package/dist/components/color-picker/color-picker.class.d.ts +17 -2
  115. package/dist/components/color-picker/color-picker.class.d.ts.map +1 -1
  116. package/dist/components/color-picker/color-picker.class.js +52 -5
  117. package/dist/components/color-picker/color-picker.class.js.map +1 -1
  118. package/dist/components/color-picker/color-picker.styles.d.ts.map +1 -1
  119. package/dist/components/color-picker/color-picker.styles.js +20 -1
  120. package/dist/components/color-picker/color-picker.styles.js.map +1 -1
  121. package/dist/components/combobox/combobox.class.d.ts.map +1 -1
  122. package/dist/components/combobox/combobox.class.js +28 -6
  123. package/dist/components/combobox/combobox.class.js.map +1 -1
  124. package/dist/components/command-palette/command-palette.class.d.ts +59 -0
  125. package/dist/components/command-palette/command-palette.class.d.ts.map +1 -0
  126. package/dist/components/command-palette/command-palette.class.js +104 -0
  127. package/dist/components/command-palette/command-palette.class.js.map +1 -0
  128. package/dist/components/command-palette/command-palette.d.ts +3 -0
  129. package/dist/components/command-palette/command-palette.d.ts.map +1 -0
  130. package/dist/components/command-palette/command-palette.js +6 -0
  131. package/dist/components/command-palette/command-palette.js.map +1 -0
  132. package/dist/components/command-palette/command-palette.styles.d.ts +2 -0
  133. package/dist/components/command-palette/command-palette.styles.d.ts.map +1 -0
  134. package/dist/components/command-palette/command-palette.styles.js +17 -0
  135. package/dist/components/command-palette/command-palette.styles.js.map +1 -0
  136. package/dist/components/contact-viewer/contact-viewer.class.d.ts +18 -2
  137. package/dist/components/contact-viewer/contact-viewer.class.d.ts.map +1 -1
  138. package/dist/components/contact-viewer/contact-viewer.class.js +29 -9
  139. package/dist/components/contact-viewer/contact-viewer.class.js.map +1 -1
  140. package/dist/components/conversation-item/conversation-item.class.js +4 -4
  141. package/dist/components/conversation-item/conversation-item.class.js.map +1 -1
  142. package/dist/components/copy-button/copy-button.styles.js +1 -1
  143. package/dist/components/csv-viewer/csv-viewer.class.d.ts +2 -2
  144. package/dist/components/csv-viewer/csv-viewer.class.d.ts.map +1 -1
  145. package/dist/components/csv-viewer/csv-viewer.class.js +16 -11
  146. package/dist/components/csv-viewer/csv-viewer.class.js.map +1 -1
  147. package/dist/components/csv-viewer/csv-viewer.d.ts +0 -1
  148. package/dist/components/csv-viewer/csv-viewer.d.ts.map +1 -1
  149. package/dist/components/csv-viewer/csv-viewer.js +0 -1
  150. package/dist/components/csv-viewer/csv-viewer.js.map +1 -1
  151. package/dist/components/data-grid/data-grid.class.d.ts +63 -0
  152. package/dist/components/data-grid/data-grid.class.d.ts.map +1 -0
  153. package/dist/components/data-grid/data-grid.class.js +109 -0
  154. package/dist/components/data-grid/data-grid.class.js.map +1 -0
  155. package/dist/components/data-grid/data-grid.d.ts +2 -0
  156. package/dist/components/data-grid/data-grid.d.ts.map +1 -0
  157. package/dist/components/data-grid/data-grid.js +5 -0
  158. package/dist/components/data-grid/data-grid.js.map +1 -0
  159. package/dist/components/data-grid/data-grid.styles.d.ts +2 -0
  160. package/dist/components/data-grid/data-grid.styles.d.ts.map +1 -0
  161. package/dist/components/data-grid/data-grid.styles.js +13 -0
  162. package/dist/components/data-grid/data-grid.styles.js.map +1 -0
  163. package/dist/components/dataset-viewer/dataset-viewer.class.d.ts +1 -1
  164. package/dist/components/dataset-viewer/dataset-viewer.class.d.ts.map +1 -1
  165. package/dist/components/dataset-viewer/dataset-viewer.class.js +26 -12
  166. package/dist/components/dataset-viewer/dataset-viewer.class.js.map +1 -1
  167. package/dist/components/dataset-viewer/dataset-viewer.d.ts +0 -1
  168. package/dist/components/dataset-viewer/dataset-viewer.d.ts.map +1 -1
  169. package/dist/components/dataset-viewer/dataset-viewer.js +0 -1
  170. package/dist/components/dataset-viewer/dataset-viewer.js.map +1 -1
  171. package/dist/components/date-picker/date-input.class.d.ts +36 -1
  172. package/dist/components/date-picker/date-input.class.d.ts.map +1 -1
  173. package/dist/components/date-picker/date-input.class.js +102 -26
  174. package/dist/components/date-picker/date-input.class.js.map +1 -1
  175. package/dist/components/date-picker/date-picker.class.d.ts.map +1 -1
  176. package/dist/components/date-picker/date-picker.class.js +13 -5
  177. package/dist/components/date-picker/date-picker.class.js.map +1 -1
  178. package/dist/components/date-picker/date-picker.styles.d.ts.map +1 -1
  179. package/dist/components/date-picker/date-picker.styles.js +5 -0
  180. package/dist/components/date-picker/date-picker.styles.js.map +1 -1
  181. package/dist/components/details/accordion.class.js +1 -1
  182. package/dist/components/details/accordion.class.js.map +1 -1
  183. package/dist/components/details/accordion.styles.d.ts +2 -0
  184. package/dist/components/details/accordion.styles.d.ts.map +1 -0
  185. package/dist/components/details/accordion.styles.js +7 -0
  186. package/dist/components/details/accordion.styles.js.map +1 -0
  187. package/dist/components/details/details.class.d.ts.map +1 -1
  188. package/dist/components/details/details.class.js +6 -1
  189. package/dist/components/details/details.class.js.map +1 -1
  190. package/dist/components/details/details.styles.d.ts.map +1 -1
  191. package/dist/components/details/details.styles.js +5 -0
  192. package/dist/components/details/details.styles.js.map +1 -1
  193. package/dist/components/dialog/dialog.class.d.ts +4 -1
  194. package/dist/components/dialog/dialog.class.d.ts.map +1 -1
  195. package/dist/components/dialog/dialog.class.js.map +1 -1
  196. package/dist/components/diff-view/diff-view.class.d.ts +3 -1
  197. package/dist/components/diff-view/diff-view.class.d.ts.map +1 -1
  198. package/dist/components/diff-view/diff-view.class.js +11 -2
  199. package/dist/components/diff-view/diff-view.class.js.map +1 -1
  200. package/dist/components/dock-panel/dock-panel.class.d.ts +5 -1
  201. package/dist/components/dock-panel/dock-panel.class.d.ts.map +1 -1
  202. package/dist/components/dock-panel/dock-panel.class.js.map +1 -1
  203. package/dist/components/document-preview/document-preview.class.d.ts.map +1 -1
  204. package/dist/components/document-preview/document-preview.class.js +6 -30
  205. package/dist/components/document-preview/document-preview.class.js.map +1 -1
  206. package/dist/components/document-viewer/document-viewer.class.d.ts +1 -0
  207. package/dist/components/document-viewer/document-viewer.class.d.ts.map +1 -1
  208. package/dist/components/document-viewer/document-viewer.class.js +1 -0
  209. package/dist/components/document-viewer/document-viewer.class.js.map +1 -1
  210. package/dist/components/docx-viewer/docx-viewer.class.d.ts +2 -1
  211. package/dist/components/docx-viewer/docx-viewer.class.d.ts.map +1 -1
  212. package/dist/components/docx-viewer/docx-viewer.class.js +13 -10
  213. package/dist/components/docx-viewer/docx-viewer.class.js.map +1 -1
  214. package/dist/components/drawer/drawer.styles.d.ts.map +1 -1
  215. package/dist/components/drawer/drawer.styles.js +12 -0
  216. package/dist/components/drawer/drawer.styles.js.map +1 -1
  217. package/dist/components/ebook-viewer/ebook-viewer.class.d.ts +2 -2
  218. package/dist/components/ebook-viewer/ebook-viewer.class.d.ts.map +1 -1
  219. package/dist/components/ebook-viewer/ebook-viewer.class.js +31 -10
  220. package/dist/components/ebook-viewer/ebook-viewer.class.js.map +1 -1
  221. package/dist/components/email-viewer/email-loader.js +5 -0
  222. package/dist/components/email-viewer/email-loader.js.map +1 -1
  223. package/dist/components/email-viewer/email-viewer.class.d.ts +1 -1
  224. package/dist/components/email-viewer/email-viewer.class.d.ts.map +1 -1
  225. package/dist/components/email-viewer/email-viewer.class.js +20 -7
  226. package/dist/components/email-viewer/email-viewer.class.js.map +1 -1
  227. package/dist/components/empty/empty.class.d.ts +2 -0
  228. package/dist/components/empty/empty.class.d.ts.map +1 -1
  229. package/dist/components/empty/empty.class.js +2 -0
  230. package/dist/components/empty/empty.class.js.map +1 -1
  231. package/dist/components/file-input/file-input.class.d.ts +12 -1
  232. package/dist/components/file-input/file-input.class.d.ts.map +1 -1
  233. package/dist/components/file-input/file-input.class.js +39 -2
  234. package/dist/components/file-input/file-input.class.js.map +1 -1
  235. package/dist/components/format/format-bytes.class.d.ts +1 -0
  236. package/dist/components/format/format-bytes.class.d.ts.map +1 -1
  237. package/dist/components/format/format-bytes.class.js +11 -4
  238. package/dist/components/format/format-bytes.class.js.map +1 -1
  239. package/dist/components/format/format-date.class.js +4 -6
  240. package/dist/components/format/format-date.class.js.map +1 -1
  241. package/dist/components/format/format-number.class.js +1 -1
  242. package/dist/components/format/format-number.class.js.map +1 -1
  243. package/dist/components/format/relative-time.class.d.ts +2 -2
  244. package/dist/components/format/relative-time.class.d.ts.map +1 -1
  245. package/dist/components/format/relative-time.class.js +5 -2
  246. package/dist/components/format/relative-time.class.js.map +1 -1
  247. package/dist/components/gauge/gauge.class.d.ts.map +1 -1
  248. package/dist/components/gauge/gauge.class.js +3 -3
  249. package/dist/components/gauge/gauge.class.js.map +1 -1
  250. package/dist/components/graph/graph.class.d.ts +6 -0
  251. package/dist/components/graph/graph.class.d.ts.map +1 -1
  252. package/dist/components/graph/graph.class.js +27 -1
  253. package/dist/components/graph/graph.class.js.map +1 -1
  254. package/dist/components/heatmap/calendar-grid.d.ts +5 -3
  255. package/dist/components/heatmap/calendar-grid.d.ts.map +1 -1
  256. package/dist/components/heatmap/calendar-grid.js +6 -4
  257. package/dist/components/heatmap/calendar-grid.js.map +1 -1
  258. package/dist/components/heatmap/heatmap.class.d.ts +9 -2
  259. package/dist/components/heatmap/heatmap.class.d.ts.map +1 -1
  260. package/dist/components/heatmap/heatmap.class.js +36 -20
  261. package/dist/components/heatmap/heatmap.class.js.map +1 -1
  262. package/dist/components/html-viewer/html-viewer.class.d.ts +12 -2
  263. package/dist/components/html-viewer/html-viewer.class.d.ts.map +1 -1
  264. package/dist/components/html-viewer/html-viewer.class.js +21 -9
  265. package/dist/components/html-viewer/html-viewer.class.js.map +1 -1
  266. package/dist/components/icon/icon.class.d.ts +20 -0
  267. package/dist/components/icon/icon.class.d.ts.map +1 -0
  268. package/dist/components/icon/icon.class.js +51 -0
  269. package/dist/components/icon/icon.class.js.map +1 -0
  270. package/dist/components/icon/icon.d.ts +2 -0
  271. package/dist/components/icon/icon.d.ts.map +1 -0
  272. package/dist/components/icon/icon.js +5 -0
  273. package/dist/components/icon/icon.js.map +1 -0
  274. package/dist/components/icon/icon.styles.d.ts +2 -0
  275. package/dist/components/icon/icon.styles.d.ts.map +1 -0
  276. package/dist/components/icon/icon.styles.js +3 -0
  277. package/dist/components/icon/icon.styles.js.map +1 -0
  278. package/dist/components/icon-button/icon-button.class.d.ts +25 -0
  279. package/dist/components/icon-button/icon-button.class.d.ts.map +1 -0
  280. package/dist/components/icon-button/icon-button.class.js +51 -0
  281. package/dist/components/icon-button/icon-button.class.js.map +1 -0
  282. package/dist/components/icon-button/icon-button.d.ts +3 -0
  283. package/dist/components/icon-button/icon-button.d.ts.map +1 -0
  284. package/dist/components/icon-button/icon-button.js +6 -0
  285. package/dist/components/icon-button/icon-button.js.map +1 -0
  286. package/dist/components/icon-button/icon-button.styles.d.ts +2 -0
  287. package/dist/components/icon-button/icon-button.styles.d.ts.map +1 -0
  288. package/dist/components/icon-button/icon-button.styles.js +9 -0
  289. package/dist/components/icon-button/icon-button.styles.js.map +1 -0
  290. package/dist/components/image-comparer/image-comparer.styles.d.ts.map +1 -1
  291. package/dist/components/image-comparer/image-comparer.styles.js +18 -1
  292. package/dist/components/image-comparer/image-comparer.styles.js.map +1 -1
  293. package/dist/components/input/input.class.d.ts +4 -1
  294. package/dist/components/input/input.class.d.ts.map +1 -1
  295. package/dist/components/input/input.class.js +11 -5
  296. package/dist/components/input/input.class.js.map +1 -1
  297. package/dist/components/json-viewer/json-viewer.class.d.ts +14 -1
  298. package/dist/components/json-viewer/json-viewer.class.d.ts.map +1 -1
  299. package/dist/components/json-viewer/json-viewer.class.js +30 -8
  300. package/dist/components/json-viewer/json-viewer.class.js.map +1 -1
  301. package/dist/components/json-viewer/json-viewer.styles.d.ts.map +1 -1
  302. package/dist/components/json-viewer/json-viewer.styles.js +4 -1
  303. package/dist/components/json-viewer/json-viewer.styles.js.map +1 -1
  304. package/dist/components/kbd/kbd.class.d.ts +3 -9
  305. package/dist/components/kbd/kbd.class.d.ts.map +1 -1
  306. package/dist/components/kbd/kbd.class.js +3 -9
  307. package/dist/components/kbd/kbd.class.js.map +1 -1
  308. package/dist/components/media-card/media-card.class.d.ts.map +1 -1
  309. package/dist/components/media-card/media-card.class.js +3 -28
  310. package/dist/components/media-card/media-card.class.js.map +1 -1
  311. package/dist/components/mention-popover/mention-popover.class.d.ts.map +1 -1
  312. package/dist/components/mention-popover/mention-popover.class.js +9 -0
  313. package/dist/components/mention-popover/mention-popover.class.js.map +1 -1
  314. package/dist/components/menu/menu-item.class.d.ts +1 -0
  315. package/dist/components/menu/menu-item.class.d.ts.map +1 -1
  316. package/dist/components/menu/menu-item.class.js.map +1 -1
  317. package/dist/components/menu/menu.class.d.ts.map +1 -1
  318. package/dist/components/menu/menu.class.js +29 -9
  319. package/dist/components/menu/menu.class.js.map +1 -1
  320. package/dist/components/model-settings-panel/model-settings-panel.class.d.ts +4 -1
  321. package/dist/components/model-settings-panel/model-settings-panel.class.d.ts.map +1 -1
  322. package/dist/components/model-settings-panel/model-settings-panel.class.js.map +1 -1
  323. package/dist/components/mutation-observer/mutation-observer.class.d.ts +1 -1
  324. package/dist/components/mutation-observer/mutation-observer.class.d.ts.map +1 -1
  325. package/dist/components/mutation-observer/mutation-observer.class.js +11 -8
  326. package/dist/components/mutation-observer/mutation-observer.class.js.map +1 -1
  327. package/dist/components/overlay/dropdown.class.d.ts +1 -2
  328. package/dist/components/overlay/dropdown.class.d.ts.map +1 -1
  329. package/dist/components/overlay/dropdown.class.js +1 -1
  330. package/dist/components/overlay/dropdown.class.js.map +1 -1
  331. package/dist/components/overlay/overlay.styles.d.ts.map +1 -1
  332. package/dist/components/overlay/overlay.styles.js +1 -2
  333. package/dist/components/overlay/overlay.styles.js.map +1 -1
  334. package/dist/components/overlay/popover.class.d.ts +2 -0
  335. package/dist/components/overlay/popover.class.d.ts.map +1 -1
  336. package/dist/components/overlay/popover.class.js +36 -10
  337. package/dist/components/overlay/popover.class.js.map +1 -1
  338. package/dist/components/overlay/tooltip.class.d.ts +7 -0
  339. package/dist/components/overlay/tooltip.class.d.ts.map +1 -1
  340. package/dist/components/overlay/tooltip.class.js +52 -5
  341. package/dist/components/overlay/tooltip.class.js.map +1 -1
  342. package/dist/components/pdf-viewer/pdf-viewer.class.d.ts +11 -0
  343. package/dist/components/pdf-viewer/pdf-viewer.class.d.ts.map +1 -1
  344. package/dist/components/pdf-viewer/pdf-viewer.class.js +50 -20
  345. package/dist/components/pdf-viewer/pdf-viewer.class.js.map +1 -1
  346. package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts.map +1 -1
  347. package/dist/components/pdf-viewer/pdf-viewer.styles.js +27 -1
  348. package/dist/components/pdf-viewer/pdf-viewer.styles.js.map +1 -1
  349. package/dist/components/phone-input/phone-input.class.d.ts +7 -1
  350. package/dist/components/phone-input/phone-input.class.d.ts.map +1 -1
  351. package/dist/components/phone-input/phone-input.class.js +58 -14
  352. package/dist/components/phone-input/phone-input.class.js.map +1 -1
  353. package/dist/components/poll-status/poll-status.class.d.ts.map +1 -1
  354. package/dist/components/poll-status/poll-status.class.js +25 -9
  355. package/dist/components/poll-status/poll-status.class.js.map +1 -1
  356. package/dist/components/pptx-viewer/pptx-viewer.class.d.ts +2 -1
  357. package/dist/components/pptx-viewer/pptx-viewer.class.d.ts.map +1 -1
  358. package/dist/components/pptx-viewer/pptx-viewer.class.js +38 -12
  359. package/dist/components/pptx-viewer/pptx-viewer.class.js.map +1 -1
  360. package/dist/components/radio/radio-group.class.d.ts +1 -0
  361. package/dist/components/radio/radio-group.class.d.ts.map +1 -1
  362. package/dist/components/radio/radio-group.class.js +16 -8
  363. package/dist/components/radio/radio-group.class.js.map +1 -1
  364. package/dist/components/radio/radio.class.d.ts +6 -0
  365. package/dist/components/radio/radio.class.d.ts.map +1 -1
  366. package/dist/components/radio/radio.class.js +36 -4
  367. package/dist/components/radio/radio.class.js.map +1 -1
  368. package/dist/components/rating/rating.class.d.ts +6 -0
  369. package/dist/components/rating/rating.class.d.ts.map +1 -1
  370. package/dist/components/rating/rating.class.js +34 -5
  371. package/dist/components/rating/rating.class.js.map +1 -1
  372. package/dist/components/rating/rating.styles.d.ts.map +1 -1
  373. package/dist/components/rating/rating.styles.js +3 -2
  374. package/dist/components/rating/rating.styles.js.map +1 -1
  375. package/dist/components/resize-observer/resize-observer.class.d.ts.map +1 -1
  376. package/dist/components/resize-observer/resize-observer.class.js +8 -2
  377. package/dist/components/resize-observer/resize-observer.class.js.map +1 -1
  378. package/dist/components/responsive-panel/responsive-panel.class.d.ts +5 -1
  379. package/dist/components/responsive-panel/responsive-panel.class.d.ts.map +1 -1
  380. package/dist/components/responsive-panel/responsive-panel.class.js.map +1 -1
  381. package/dist/components/result-card/result-card.class.d.ts +13 -3
  382. package/dist/components/result-card/result-card.class.d.ts.map +1 -1
  383. package/dist/components/result-card/result-card.class.js +31 -2
  384. package/dist/components/result-card/result-card.class.js.map +1 -1
  385. package/dist/components/scroller/scroller.class.d.ts +4 -0
  386. package/dist/components/scroller/scroller.class.d.ts.map +1 -1
  387. package/dist/components/scroller/scroller.class.js +22 -5
  388. package/dist/components/scroller/scroller.class.js.map +1 -1
  389. package/dist/components/scroller/scroller.styles.d.ts.map +1 -1
  390. package/dist/components/scroller/scroller.styles.js +5 -0
  391. package/dist/components/scroller/scroller.styles.js.map +1 -1
  392. package/dist/components/segmented/segmented.class.d.ts.map +1 -1
  393. package/dist/components/segmented/segmented.class.js +10 -2
  394. package/dist/components/segmented/segmented.class.js.map +1 -1
  395. package/dist/components/segmented/segmented.styles.d.ts.map +1 -1
  396. package/dist/components/segmented/segmented.styles.js +8 -0
  397. package/dist/components/segmented/segmented.styles.js.map +1 -1
  398. package/dist/components/source-list/source-list.class.d.ts +4 -1
  399. package/dist/components/source-list/source-list.class.d.ts.map +1 -1
  400. package/dist/components/source-list/source-list.class.js.map +1 -1
  401. package/dist/components/sparkline/sparkline.class.d.ts +2 -0
  402. package/dist/components/sparkline/sparkline.class.d.ts.map +1 -1
  403. package/dist/components/sparkline/sparkline.class.js +2 -0
  404. package/dist/components/sparkline/sparkline.class.js.map +1 -1
  405. package/dist/components/spinner/spinner.class.d.ts +3 -1
  406. package/dist/components/spinner/spinner.class.d.ts.map +1 -1
  407. package/dist/components/spinner/spinner.class.js +4 -2
  408. package/dist/components/spinner/spinner.class.js.map +1 -1
  409. package/dist/components/spinner/spinner.styles.d.ts.map +1 -1
  410. package/dist/components/spinner/spinner.styles.js +5 -1
  411. package/dist/components/spinner/spinner.styles.js.map +1 -1
  412. package/dist/components/split/split.class.d.ts +2 -0
  413. package/dist/components/split/split.class.d.ts.map +1 -1
  414. package/dist/components/split/split.class.js.map +1 -1
  415. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +2 -2
  416. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts.map +1 -1
  417. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js +19 -11
  418. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -1
  419. package/dist/components/stepper/stepper.class.d.ts.map +1 -1
  420. package/dist/components/stepper/stepper.class.js +7 -1
  421. package/dist/components/stepper/stepper.class.js.map +1 -1
  422. package/dist/components/streaming-text/streaming-text.styles.d.ts.map +1 -1
  423. package/dist/components/streaming-text/streaming-text.styles.js +4 -1
  424. package/dist/components/streaming-text/streaming-text.styles.js.map +1 -1
  425. package/dist/components/svg-viewer/svg-viewer.class.d.ts +13 -2
  426. package/dist/components/svg-viewer/svg-viewer.class.d.ts.map +1 -1
  427. package/dist/components/svg-viewer/svg-viewer.class.js +25 -10
  428. package/dist/components/svg-viewer/svg-viewer.class.js.map +1 -1
  429. package/dist/components/svg-viewer/svg-viewer.styles.d.ts.map +1 -1
  430. package/dist/components/svg-viewer/svg-viewer.styles.js +6 -0
  431. package/dist/components/svg-viewer/svg-viewer.styles.js.map +1 -1
  432. package/dist/components/switch/switch.class.d.ts +6 -0
  433. package/dist/components/switch/switch.class.d.ts.map +1 -1
  434. package/dist/components/switch/switch.class.js +20 -0
  435. package/dist/components/switch/switch.class.js.map +1 -1
  436. package/dist/components/table/table.class.d.ts +15 -2
  437. package/dist/components/table/table.class.d.ts.map +1 -1
  438. package/dist/components/table/table.class.js +53 -7
  439. package/dist/components/table/table.class.js.map +1 -1
  440. package/dist/components/table/table.styles.d.ts.map +1 -1
  441. package/dist/components/table/table.styles.js +18 -1
  442. package/dist/components/table/table.styles.js.map +1 -1
  443. package/dist/components/textarea/textarea.class.d.ts +1 -0
  444. package/dist/components/textarea/textarea.class.d.ts.map +1 -1
  445. package/dist/components/textarea/textarea.class.js +12 -0
  446. package/dist/components/textarea/textarea.class.js.map +1 -1
  447. package/dist/components/thinking-panel/thinking-panel.class.d.ts +4 -1
  448. package/dist/components/thinking-panel/thinking-panel.class.d.ts.map +1 -1
  449. package/dist/components/thinking-panel/thinking-panel.class.js.map +1 -1
  450. package/dist/components/thinking-panel/thinking-panel.styles.d.ts.map +1 -1
  451. package/dist/components/thinking-panel/thinking-panel.styles.js +11 -1
  452. package/dist/components/thinking-panel/thinking-panel.styles.js.map +1 -1
  453. package/dist/components/time-range/time-range.styles.js +1 -1
  454. package/dist/components/token-input/token-input.class.d.ts +84 -0
  455. package/dist/components/token-input/token-input.class.d.ts.map +1 -0
  456. package/dist/components/token-input/token-input.class.js +174 -0
  457. package/dist/components/token-input/token-input.class.js.map +1 -0
  458. package/dist/components/token-input/token-input.d.ts +2 -0
  459. package/dist/components/token-input/token-input.d.ts.map +1 -0
  460. package/dist/components/token-input/token-input.js +5 -0
  461. package/dist/components/token-input/token-input.js.map +1 -0
  462. package/dist/components/token-input/token-input.styles.d.ts +2 -0
  463. package/dist/components/token-input/token-input.styles.d.ts.map +1 -0
  464. package/dist/components/token-input/token-input.styles.js +16 -0
  465. package/dist/components/token-input/token-input.styles.js.map +1 -0
  466. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts +8 -0
  467. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.d.ts.map +1 -1
  468. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js +4 -0
  469. package/dist/components/tool-approval-dialog/tool-approval-dialog.class.js.map +1 -1
  470. package/dist/components/tool-param-form/tool-param-form.class.js +1 -1
  471. package/dist/components/tool-param-form/tool-param-form.class.js.map +1 -1
  472. package/dist/components/tool-result-view/tool-result-view.styles.d.ts.map +1 -1
  473. package/dist/components/tool-result-view/tool-result-view.styles.js +6 -1
  474. package/dist/components/tool-result-view/tool-result-view.styles.js.map +1 -1
  475. package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts +9 -1
  476. package/dist/components/tool-select-dialog/tool-select-dialog.class.d.ts.map +1 -1
  477. package/dist/components/tool-select-dialog/tool-select-dialog.class.js +23 -1
  478. package/dist/components/tool-select-dialog/tool-select-dialog.class.js.map +1 -1
  479. package/dist/components/widget/widget.class.d.ts +7 -0
  480. package/dist/components/widget/widget.class.d.ts.map +1 -1
  481. package/dist/components/widget/widget.class.js +19 -4
  482. package/dist/components/widget/widget.class.js.map +1 -1
  483. package/dist/components/widget/widget.styles.d.ts.map +1 -1
  484. package/dist/components/widget/widget.styles.js +12 -0
  485. package/dist/components/widget/widget.styles.js.map +1 -1
  486. package/dist/components/word-cloud/word-cloud.class.d.ts +8 -1
  487. package/dist/components/word-cloud/word-cloud.class.d.ts.map +1 -1
  488. package/dist/components/word-cloud/word-cloud.class.js +24 -8
  489. package/dist/components/word-cloud/word-cloud.class.js.map +1 -1
  490. package/dist/components/word-cloud/word-cloud.styles.d.ts.map +1 -1
  491. package/dist/components/word-cloud/word-cloud.styles.js +7 -4
  492. package/dist/components/word-cloud/word-cloud.styles.js.map +1 -1
  493. package/dist/components/zoomable-frame/zoomable-frame.class.d.ts.map +1 -1
  494. package/dist/components/zoomable-frame/zoomable-frame.class.js +2 -1
  495. package/dist/components/zoomable-frame/zoomable-frame.class.js.map +1 -1
  496. package/dist/internal/form-associated.d.ts.map +1 -1
  497. package/dist/internal/form-associated.js +4 -1
  498. package/dist/internal/form-associated.js.map +1 -1
  499. package/dist/internal/icons.d.ts +4 -0
  500. package/dist/internal/icons.d.ts.map +1 -1
  501. package/dist/internal/icons.js +8 -0
  502. package/dist/internal/icons.js.map +1 -1
  503. package/dist/internal/localization.d.ts +1 -1
  504. package/dist/internal/localization.d.ts.map +1 -1
  505. package/dist/internal/localization.js +27 -14
  506. package/dist/internal/localization.js.map +1 -1
  507. package/dist/internal/lyra-element.d.ts +11 -0
  508. package/dist/internal/lyra-element.d.ts.map +1 -1
  509. package/dist/internal/lyra-element.js +33 -0
  510. package/dist/internal/lyra-element.js.map +1 -1
  511. package/dist/internal/papaparse-loader.d.ts +15 -0
  512. package/dist/internal/papaparse-loader.d.ts.map +1 -0
  513. package/dist/internal/papaparse-loader.js +28 -0
  514. package/dist/internal/papaparse-loader.js.map +1 -0
  515. package/dist/internal/resource-loader.d.ts +21 -0
  516. package/dist/internal/resource-loader.d.ts.map +1 -0
  517. package/dist/internal/resource-loader.js +90 -0
  518. package/dist/internal/resource-loader.js.map +1 -0
  519. package/dist/internal/root-registration-allowlist.d.ts +1 -1
  520. package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
  521. package/dist/internal/root-registration-allowlist.js +8 -0
  522. package/dist/internal/root-registration-allowlist.js.map +1 -1
  523. package/dist/internal/tokens.styles.d.ts.map +1 -1
  524. package/dist/internal/tokens.styles.js +3 -10
  525. package/dist/internal/tokens.styles.js.map +1 -1
  526. package/dist/lyra.d.ts +43 -6
  527. package/dist/lyra.d.ts.map +1 -1
  528. package/dist/lyra.js +16 -0
  529. package/dist/lyra.js.map +1 -1
  530. package/llms-full.txt +235 -67
  531. package/package.json +22 -4
  532. package/dist/components/csv-viewer/csv-loader.d.ts +0 -8
  533. package/dist/components/csv-viewer/csv-loader.d.ts.map +0 -1
  534. package/dist/components/csv-viewer/csv-loader.js +0 -19
  535. package/dist/components/csv-viewer/csv-loader.js.map +0 -1
  536. package/dist/components/dataset-viewer/dataset-loader.d.ts +0 -7
  537. package/dist/components/dataset-viewer/dataset-loader.d.ts.map +0 -1
  538. package/dist/components/dataset-viewer/dataset-loader.js +0 -19
  539. package/dist/components/dataset-viewer/dataset-loader.js.map +0 -1
package/llms-full.txt CHANGED
@@ -531,6 +531,10 @@ Text field + calendar popover, **form-associated** via the shared `FormAssociate
531
531
  **Properties (own, continued):**
532
532
  - `errorText: string = ''` (attribute `error-text` — static error copy; overridden by slotted
533
533
  `error` content when provided)
534
+ - `accessibleLabel: string | null = null` (attribute `aria-label`) — overrides the internal
535
+ `<input>`'s computed accessible name; wins over `label`/`placeholder`/the localized `date`
536
+ fallback in that order. Attribute-reflects from a host-level `aria-label` so a plain-markup
537
+ consumer gets ARIA-name forwarding without setting a JS property.
534
538
  - `clearLabel: string = 'Clear'` (attribute `clear-label` — accessible label for the clear button)
535
539
  - `openLabel: string = 'Open calendar'` (attribute `open-label` — accessible label for the
536
540
  calendar-toggle button)
@@ -547,7 +551,15 @@ Text field + calendar popover, **form-associated** via the shared `FormAssociate
547
551
  - `autocomplete: string = ''`, `inputMode: string = ''` (`inputmode`), and `enterKeyHint: string = ''`
548
552
  (`enterkeyhint`) — forwarded to the internal `<input>`.
549
553
 
550
- **Methods:** `show()`, `hide()`, `clear()`
554
+ **Methods:** `show()`, `hide()`, `clear()`, `focus(options?)`, `blur()`, `select()`,
555
+ `setSelectionRange()`, `setRangeText()` (all of the focus/selection methods forward to the internal
556
+ native date `<input>`).
557
+
558
+ **Getters:** `input: HTMLInputElement | undefined` — the internal native `<input>`, for direct DOM
559
+ access.
560
+
561
+ **Selection properties:** `selectionStart`, `selectionEnd`, and `selectionDirection` mirror the
562
+ internal native date input.
551
563
 
552
564
  **Events:** `input`, `change`, `lyra-show`, `lyra-hide`, `lyra-clear`, `blur` (re-dispatched from
553
565
  the internal `<input>`'s own `blur`, bubbling and composed unlike the native event), `focus`
@@ -787,7 +799,7 @@ form-associated via the same `FormAssociated` mixin as `lyra-textarea`. Ships th
787
799
  `size` scale as `lyra-select`/`lyra-combobox`.
788
800
 
789
801
  **Properties:**
790
- - `type: 'text' | 'password' | 'email' | 'number' = 'text'`
802
+ - `type: 'text' | 'password' | 'email' | 'number' | 'time' = 'text'`
791
803
  - `size: 'xs' | 's' | 'm' | 'l' | 'xl' = 'm'` (reflected)
792
804
  - `value: string = ''` (from `FormAssociated`)
793
805
  - `placeholder: string = ''`
@@ -799,10 +811,14 @@ form-associated via the same `FormAssociated` mixin as `lyra-textarea`. Ships th
799
811
  - `spellcheck: boolean = true` — forwarded to the native input, including `spellcheck="false"`
800
812
  - `autocapitalize: string = ''` / `autoCorrect: string = ''`
801
813
  - `inputMode: string = ''` / `enterKeyHint: string = ''`
802
- - `min?: number` / `max?: number` / `step?: number` (attribute: false — `type="number"` only)
814
+ - `min?: number` / `max?: number` (attributes `min`/`max`) / `step?: number | 'any'` (attribute
815
+ `step`, accepts the native `'any'` value alongside a number) — `type="number"` only
803
816
  - `passwordVisible: boolean = false` (attribute `password-visible` — `type="password"` only)
804
817
  - `name`/`disabled`/`required` (from `FormAssociated`)
805
818
 
819
+ **Getters/methods:** `input: HTMLInputElement | null` (the internal native `<input>`, for direct DOM
820
+ access), `focus(options?: FocusOptions)`, `blur()`, `select()`.
821
+
806
822
  **Events:** native-style composed `input` and `change`, plus `lyra-input` (`detail: { value }`,
807
823
  fired on every user-driven edit) and `lyra-change` (`detail: { value }`, fired on the native
808
824
  `change` timing), `blur`/`focus` (re-dispatched bubbling + composed from the internal native input's
@@ -1120,8 +1136,10 @@ Zero-dependency inline SVG trend chart (mirrors `<wa-sparkline>`).
1120
1136
 
1121
1137
  **CSS parts:** `line`, `area`, `bar`
1122
1138
 
1123
- **Themeable custom properties:** `--lyra-color-brand` only the single cleanest theming story in
1124
- the reviewed family (pure CSS cascade, no JS/`getComputedStyle` bridging needed).
1139
+ **Themeable custom properties:** `--lyra-color-brand` (pure CSS cascade, no JS/`getComputedStyle`
1140
+ bridging needed), `--lyra-sparkline-stroke-width` (default `1.5` stroke width of the line/area
1141
+ path), and `--lyra-sparkline-area-opacity` (default `0.15` — fill opacity of the area under the
1142
+ line, `type="area"` only).
1125
1143
 
1126
1144
  **Optional peer deps:** none.
1127
1145
 
@@ -1282,7 +1300,8 @@ attribute), `description` (rich description content, overrides the `description`
1282
1300
  **CSS parts:** `base`, `icon`, `heading`, `description`, `actions`
1283
1301
 
1284
1302
  **Themeable custom properties:** `--lyra-empty-compact-align` (compact mode only; defaults preserve
1285
- the existing `flex-start` cross-axis and `start` text alignment, and `center` centers both), plus
1303
+ the existing `flex-start` cross-axis and `start` text alignment, and `center` centers both),
1304
+ `--lyra-empty-compact-padding` (default `--lyra-space-xs` — padding used in compact mode), plus
1286
1305
  shared tokens (`--lyra-space-xs/-s/-l`, `--lyra-color-text-quiet/-border/-text`).
1287
1306
 
1288
1307
  **Optional peer deps:** none.
@@ -1978,6 +1997,8 @@ position) survives the transition.
1978
1997
  - `activeView: string = ''` (attribute: false) — the currently active view's `id`; defaults to the
1979
1998
  first entry of `views` (or `''` when `views` is empty). Settable directly to control the active
1980
1999
  view externally; also updated internally when a view toggle is clicked.
2000
+ - `accessibleLabel: string = ''` (attribute `aria-label`) — overrides the label-derived fullscreen
2001
+ dialog name.
1981
2002
 
1982
2003
  **Events:** `lyra-collapse-change` (`detail: boolean`, the new `collapsed` state),
1983
2004
  `lyra-fullscreen-change` (`detail: boolean`, the new `fullscreen` state — also fired when fullscreen
@@ -2753,9 +2774,9 @@ the escape hatch for a consumer's own theme-toggle handler to call when it flips
2753
2774
  a data point/segment, for any chart type, not just bar; `detail: { datasetIndex: number, index:
2754
2775
  number, label: string | undefined, value: unknown }`)
2755
2776
 
2756
- **Slots:** none.
2777
+ **Slots:** `data-table` — an optional consumer-provided accessible table alternative.
2757
2778
 
2758
- **CSS parts:** `base`, `canvas`, `reset-zoom-button`
2779
+ **CSS parts:** `base`, `canvas`, `reset-zoom-button`, `description`, `data-table`
2759
2780
 
2760
2781
  **Themeable custom properties:** `--lyra-chart-height` (set programmatically on the host from the
2761
2782
  `height` property — must be read from the host, not a shadow-tree descendant, since custom
@@ -2903,20 +2924,17 @@ focused). `detail: { datasetIndex: number, index: number, label: string | undefi
2903
2924
  The axis gutter/title and y-axis labels mirror to logical start under RTL. Built-in mark summaries
2904
2925
  are complete localized templates and format values with `effectiveLocale`.
2905
2926
 
2906
- **Performance:** rendering is `IntersectionObserver`-gated and content-signature-memoized `render()`
2907
- skips recomputing the grid/marks (and reuses the previous `TemplateResult`) while the host is scrolled
2908
- off-screen, or when none of the content-affecting properties (`type`, `labels`, `datasets`, `legend`,
2909
- `xLabel`, `yLabel`, `beginAtZero`, `stacked`, `layout`, `barWidth`, `maxLabels`, or the measured plot
2910
- size) have changed since the last render. A `tickFormat`/`barX` identity change alone (with everything
2911
- else unchanged) does not force a redraw — in practice both are stable across a component's lifetime,
2912
- and any data change that would make a different output visible already changes `datasets`/`labels`
2913
- too.
2927
+ **Performance:** `render()` recomputes the grid/marks on every update rather than memoizing against a
2928
+ content signature `datasets`/`labels` can hold callbacks (`tickFormat`, `barX`) or arbitrary,
2929
+ possibly circular or BigInt-bearing application data that a fingerprint can't serialize safely, so a
2930
+ fresh, small SVG render is cheaper and more correct than a lossy cache.
2914
2931
 
2915
2932
  **Slots:** none.
2916
2933
 
2917
2934
  **CSS parts:** `base`, `grid-line`, `axis-label`, `axis-title`, `bar` (each bar rect; carries
2918
2935
  `data-selected` when its category index is in `selectedIndex`), `line`, `point`, `legend`,
2919
- `legend-item`, `legend-swatch`.
2936
+ `legend-item`, `legend-swatch`, `live-region` (the current mark announcement for keyboard users),
2937
+ `data-list` (a visually hidden list of all plotted data points).
2920
2938
 
2921
2939
  **Themeable custom properties:** `--lyra-chart-height` (same host-level property as `lyra-chart`);
2922
2940
  `--lyra-chart-grid-color`, `--lyra-chart-tick-color`, `--lyra-chart-legend-color` — same token
@@ -3042,12 +3060,12 @@ browser). Does **not** extend `LyraChart` — a deliberately bespoke API.
3042
3060
 
3043
3061
  **Events:** none.
3044
3062
 
3045
- **Slots:** none.
3063
+ **Slots:** `data-table` — an optional consumer-provided accessible table alternative.
3046
3064
 
3047
- **CSS parts:** `base`, `canvas`
3065
+ **CSS parts:** `base`, `canvas`, `description`, `data-table`
3048
3066
 
3049
- **Themeable custom properties:** `--lyra-chart-height` (same mechanism as `lyra-chart`; styles file
3050
- is a re-export of `chart.styles.ts`).
3067
+ **Themeable custom properties:** `--lyra-chart-height` same host-level mechanism and token name
3068
+ as `lyra-chart`, but its own stylesheet (not a re-export).
3051
3069
 
3052
3070
  **Optional peer deps:** `@sgratzl/chartjs-chart-boxplot` (plus `chart.js` transitively, loaded
3053
3071
  independently of the base `chart-loader.ts`).
@@ -3067,8 +3085,8 @@ independently of the base `chart-loader.ts`).
3067
3085
  - Chart.js receives `effectiveLocale`; generated numeric summaries use it, the y axis moves to
3068
3086
  logical start in RTL, canvas tooltip/axis colors are token-driven, and animation is disabled
3069
3087
  under reduced motion.
3070
- - The peer-dependency-missing failure path (`.catch()` warn + resolve `null`) is untested —
3071
- verify it manually if shipping without the peer installed.
3088
+ - If `@sgratzl/chartjs-chart-boxplot` fails to load, the component warns to the console and
3089
+ resolves to no chart rather than throwing.
3072
3090
 
3073
3091
  ---
3074
3092
 
@@ -3190,6 +3208,8 @@ parsing (that's left entirely to the host).
3190
3208
  - `forbiddenMimeTypes: string[] = []` (attribute: false) — exact MIME-string denylist, checked
3191
3209
  **before** (and takes precedence over) `allowedMimeTypes`
3192
3210
  - `maxFileSize: number = 0` (attribute `max-file-size` — bytes; `0` disables the check)
3211
+ - `directory: boolean = false` (reflected) — enables native directory selection where supported
3212
+ - `paste: boolean = true` (reflected) — accepts files pasted into the dropzone
3193
3213
  - `label: string = 'Drop files here or click to browse'`
3194
3214
  - `accessibleLabel: string = ''` (attribute `aria-label`) — overrides `label` as the internal
3195
3215
  dropzone/button accessible name without changing visible copy
@@ -3202,10 +3222,12 @@ parsing (that's left entirely to the host).
3202
3222
  forwards to the interactive dropzone.
3203
3223
 
3204
3224
  **Events:** `lyra-files` (`detail: { files: File[], rejected: RejectedFile[] }`, fired on both drop
3205
- and manual file-picker selection) — `RejectedFile = { file: File; reason: 'type' | 'count' | 'size'
3225
+ and manual file-picker selection) — `RejectedFile = { file: File; reason: 'type' | 'count' | 'size' | 'directory'
3206
3226
  }`: `'type'` from `accept`/`allowedMimeTypes`/`forbiddenMimeTypes`, `'count'` when a single-file
3207
3227
  input (`multiple` unset) receives more than one file (in which case *all* files are rejected, none
3208
- accepted), `'size'` from `maxFileSize`.
3228
+ accepted), `'size'` from `maxFileSize`, or `'directory'` for a dropped folder. `focus`/`blur` fire
3229
+ when the semantic dropzone (the actual keyboard-focusable element, not the hidden native `<input>`)
3230
+ gains/loses focus.
3209
3231
 
3210
3232
  **Slots:** default slot — custom dropzone content, overrides the `label` attribute text when
3211
3233
  provided. The accessible name always comes from `label` regardless, so icon-only slot content still
@@ -3413,7 +3435,8 @@ detail object.
3413
3435
 
3414
3436
  **Slots:** default scrollable content.
3415
3437
 
3416
- **CSS parts:** `base`, `viewport`, `content`, `previous`, and `next`.
3438
+ **CSS parts:** `base`, `viewport`, `content`, `previous`, `next`, `control` (shared by `previous` and
3439
+ `next`), and `previous-glyph`/`next-glyph` (the chevron inside each, mirrored under RTL).
3417
3440
 
3418
3441
  ```html
3419
3442
  <lyra-scroller controls label="Project cards">
@@ -3719,7 +3742,9 @@ convention).
3719
3742
 
3720
3743
  **Properties:**
3721
3744
  - `steps: StepItem[] = []` (attribute: false) — `StepItem { id: string; label: string; state:
3722
- 'pending' | 'current' | 'completed' | 'disabled' | 'error' }`; never mutated by this component.
3745
+ 'pending' | 'current' | 'completed' | 'disabled' | 'error'; title?: string }`; `title` is an
3746
+ optional native tooltip for the step's button (e.g. explaining why a `disabled` step is locked) —
3747
+ omit it for no `title` attribute at all, not an empty string. Never mutated by this component.
3723
3748
  Empty (the default) renders nothing.
3724
3749
  - `orientation: 'horizontal' | 'vertical' = 'horizontal'` (reflected) — `'horizontal'` (the default)
3725
3750
  lays steps out in a row (Left/Right, RTL-aware, navigate); `'vertical'` stacks them (Up/Down
@@ -3915,6 +3940,8 @@ control's visible, clickable label (same as `<lyra-checkbox>`).
3915
3940
  **Events:** `lyra-change` (`detail: { checked: boolean }`) — fired on a user toggle (click or
3916
3941
  Space/Enter); not fired for a programmatic `.checked` assignment.
3917
3942
 
3943
+ **Methods:** `focus(options?)` and `blur()` forward to the internal switch control.
3944
+
3918
3945
  **Slots:**
3919
3946
  - default — label text, rendered next to the track. Clicking it toggles the switch, the same as
3920
3947
  clicking a checkbox's associated `<label>`. If left empty, set `aria-label` on the host so the
@@ -3983,9 +4010,11 @@ stack overflow on cyclic `data`.
3983
4010
  highlighted and their ancestors auto-expanded
3984
4011
 
3985
4012
  **Events:** `lyra-copy` (`detail: { text: string }`) — fired by the top-level copy button or a
3986
- per-node one. Fires even when `navigator.clipboard` silently failed or is unavailable (insecure
3987
- context, older browser, a stubbed-out test environment), so a consumer can still observe copy
3988
- *intent*.
4013
+ per-node one. Fires even when `navigator.clipboard` is unavailable or the write silently failed
4014
+ (a rejected `writeText()` is swallowed), so a consumer can still observe copy *intent* — the event
4015
+ is not a confirmation that the OS clipboard was actually reached. Copying a circular `data` value
4016
+ serializes safely, substituting the same `Circular reference` marker the tree view renders, instead
4017
+ of throwing.
3989
4018
 
3990
4019
  **Slots:** none — the tree is rendered entirely from `data`.
3991
4020
 
@@ -4452,13 +4481,15 @@ the built-in glyph for the current `status` is used)
4452
4481
  `summary`), `category`, `name`, `summary`, `meta` (wrapper around `status-text` and `duration`),
4453
4482
  `status-text`, `duration`, `tooltip` (the floating detail popup, only meaningful while open)
4454
4483
 
4455
- **Themeable custom properties:** no component-specific custom properties (per-status accent/
4456
- background/border are internal `--lyra-tool-call-chip-*` variables swapped by `:host([status])`
4457
- rules, not part of the public theming API); shared tokens referenced: `--lyra-color-text-quiet`,
4458
- `--lyra-color-surface`, `--lyra-color-border`, `--lyra-color-brand`/`-brand-quiet`,
4459
- `--lyra-color-success`/`-success-quiet`, `--lyra-color-danger`/`-danger-quiet`,
4460
- `--lyra-color-warning`/`-warning-quiet`, `--lyra-color-text`, `--lyra-space-xs/-s/-m`, `--lyra-radius`,
4461
- `--lyra-shadow`, `--lyra-focus-ring-*`, `--lyra-transition-fast`.
4484
+ **Themeable custom properties:** `--lyra-tool-call-chip-spin` (default `1s linear` — running-icon
4485
+ animation duration/timing) and `--lyra-transition-ambient` (default `1.8s ease-in-out` — pending-icon
4486
+ pulse duration/timing); the per-status accent/background/border are internal `--lyra-tool-call-chip-*`
4487
+ variables swapped by `:host([status])` rules, not part of the public theming API. Shared tokens
4488
+ referenced: `--lyra-color-text-quiet`, `--lyra-color-surface`, `--lyra-color-border`,
4489
+ `--lyra-color-brand`/`-brand-quiet`, `--lyra-color-success`/`-success-quiet`,
4490
+ `--lyra-color-danger`/`-danger-quiet`, `--lyra-color-warning`/`-warning-quiet`, `--lyra-color-text`,
4491
+ `--lyra-space-xs/-s/-m`, `--lyra-radius`, `--lyra-shadow`, `--lyra-focus-ring-*`,
4492
+ `--lyra-transition-fast`.
4462
4493
 
4463
4494
  **Optional peer deps:** none.
4464
4495
 
@@ -5186,8 +5217,10 @@ invention (no Web Awesome equivalent).
5186
5217
  which is only a safe identity while `items` never reorders/inserts/removes — provide this whenever
5187
5218
  possible, or scroll position and per-row DOM state (e.g. an `<audio>` element's playback position)
5188
5219
  can attach to the wrong row across a mutation.
5189
- - `groups?: VirtualListGroup[]` (attribute: false) — accepted for compatibility but **not currently
5190
- read or rendered** every row still renders flat, in `items` order.
5220
+ - `groups?: VirtualListGroup[]` (attribute: false) — renders a labeled `role="heading"` marker at each
5221
+ group's `startIndex`, positioned independently of the row window (so it stays in place as its rows
5222
+ scroll past). Groups are sorted by `startIndex`; a `startIndex` that's non-integer, out of range, or
5223
+ a duplicate of an earlier group's is silently dropped rather than rendered wrong.
5191
5224
  - `rowHeight: string = 'auto'` (attribute `row-height`) — `'auto'` measures each row's real height via
5192
5225
  `ResizeObserver`; a numeric string (e.g. `"56"`) fixes every row to that many pixels. Anything else
5193
5226
  (non-numeric, zero, negative, non-finite) silently falls back to `'auto'` rather than throwing.
@@ -5195,16 +5228,17 @@ invention (no Web Awesome equivalent).
5195
5228
  values are floored and clamped to 0–100, while non-finite values use the default 6, so an invalid
5196
5229
  runtime value cannot disable windowing and render the entire collection.
5197
5230
  - `activeId: string = ''` (attribute `active-id`) — when set and it matches a row's `keyFunction`
5198
- result (compared as a string), that row is smoothly scrolled into view whenever this changes, and
5199
- rendered with `aria-current="true"`.
5231
+ result (compared with `Object.is` against the typed value attribute values arrive as strings, so
5232
+ assign the property directly for a numeric key), that row is smoothly scrolled into view whenever
5233
+ this changes, and rendered with `aria-current="true"`.
5200
5234
  - `loading: boolean = false` (reflected) — sets `aria-busy` on the scroll container and a `cursor:
5201
5235
  progress` style; does not by itself gate `lyra-load-more` (see below).
5202
5236
  - `hasMore: boolean = false` (attribute `has-more`, reflected) — when true, scrolling near the bottom
5203
5237
  fires `lyra-load-more` (gated by `loading`).
5204
5238
 
5205
5239
  **Exported types:** `VirtualListRange { start: number; end: number }` (the `lyra-visible-range-changed`
5206
- detail shape); `VirtualListGroup { key: string | number; label?: string; startIndex: number }` — an
5207
- accepted grouping shape that the list does not currently render.
5240
+ detail shape); `VirtualListGroup { key: string | number; label?: string; startIndex: number }` — the
5241
+ shape consumed by `groups` above.
5208
5242
  The package root also exports `groupByRecency(items, options?)`, a DOM-free helper that returns
5209
5243
  non-empty Today/Yesterday/Previous 7 Days/Older buckets, preserves input order within each bucket,
5210
5244
  and accepts a timestamp extractor, reference date, and label overrides.
@@ -5219,7 +5253,8 @@ current visible, non-overscanned item index range — fired only when it actuall
5219
5253
 
5220
5254
  **CSS parts:** `base` (the scrollable container, `role="list"`, `tabindex="0"`), `spacer` (the
5221
5255
  full-content-height inner element establishing true scroll extent), `row` (one rendered row's
5222
- absolutely-positioned wrapper, `role="listitem"`)
5256
+ absolutely-positioned wrapper, `role="listitem"`), `group` (a `groups` entry's positioned
5257
+ `role="heading"` marker)
5223
5258
 
5224
5259
  **Themeable custom properties:** `--lyra-virtual-list-height` (default `24rem` — the host's bounded
5225
5260
  scroll extent; component-specific since a virtualized list is meaningless without a sized viewport),
@@ -7037,7 +7072,7 @@ set `valid: false` while `formError`, rather than a fabricated field key, carrie
7037
7072
 
7038
7073
  **Slots:** none.
7039
7074
 
7040
- **CSS parts:** `base`, `field`, `label`, `description`, `error`
7075
+ **CSS parts:** `base`, `field`, `label`, `description`, `error`, `unsupported`, `empty`
7041
7076
 
7042
7077
  **Themeable custom properties:** no component-specific custom properties; shared tokens only —
7043
7078
  `--lyra-space-l/-xs/-s`, `--lyra-color-border`, `--lyra-radius`, `--lyra-color-surface`,
@@ -7295,7 +7330,14 @@ already follow.
7295
7330
  since the remove button already nests inside `[part='base']` — a focusable descendant of a
7296
7331
  `role="button"` ancestor isn't allowed there, and this component's two real use cases (a
7297
7332
  chart-series visibility toggle, a category filter chip) never need both at once. `false` (the
7298
- default) reproduces the exact passive-label-pill output.
7333
+ default, with `toggleable` also left at its default) reproduces the exact passive-label-pill
7334
+ output.
7335
+ - `toggleable: boolean = false` (reflected) — explicit opt-in into `selected`'s toggle/pressed
7336
+ interactive mode, independent of `selected`'s own current value. Setting `selected` to `true` at
7337
+ any point opts in automatically and keeps `toggleable` `true` from then on (enough for a chip that
7338
+ starts already pressed) — set `toggleable` directly instead for a chip that must be clickable from
7339
+ the outset while starting **unselected**, e.g. an initially-inactive category filter chip, since
7340
+ `selected`'s own default (`false`) can't otherwise be distinguished from "never opted in".
7299
7341
  - `value?: string` — opaque consumer bookkeeping value, never read, validated, or rendered by this
7300
7342
  component itself, only ever echoed back verbatim (including `undefined` if never set) in
7301
7343
  `lyra-remove`'s detail
@@ -7693,8 +7735,9 @@ allow relative URLs plus `http:`, `https:`, `blob:`, and `data:`; the download `
7693
7735
  excludes `data:` (following a `data:text/html` URL can create an active document, unlike using it as
7694
7736
  inert media/fetch data). A `src` that fails its sink's check never reaches `fetch()`/`<img>`/the
7695
7737
  anchor: the text preview renders `[part="error"]` with `"Document URL is not allowed."`, the image
7696
- preview silently falls back to the generic download-or-`unsupported`-slot fallback, and the generic
7697
- fallback simply omits `[part="download-link"]` entirely.
7738
+ preview silently falls back to the download fallback **directly** — not the generic
7739
+ download-or-`unsupported`-slot one, so `<slot name="unsupported">` content is *not* consulted on the
7740
+ image path — and the generic fallback simply omits `[part="download-link"]` entirely.
7698
7741
 
7699
7742
  **Properties:**
7700
7743
  - `src: string = ''` — URL to fetch (for `text`/`application/json`) or display (`image`, or as the
@@ -7786,6 +7829,10 @@ available, the region becomes a standard `role="progressbar"` instead, self-desc
7786
7829
  the component aborts its active request.
7787
7830
  - `progress` is only ever consulted for the host-driven `"converting"` state — this component's own
7788
7831
  in-flight text fetch always renders the indeterminate spinner, with no numeric-progress path.
7832
+ - the text/JSON fetch is capped at 25 MB, enforced while streaming so it holds even when the server
7833
+ omits `Content-Length`; going over renders `[part="error"]` with the localized
7834
+ `documentPreviewResourceTooLarge` message. The cap is not overridable per component. The `image`
7835
+ preview is unaffected — it hands `src` to an `<img>` rather than reading it.
7789
7836
  - The `unsupported` slot's initial presence is detected once, before the first render, by scanning
7790
7837
  light-DOM children directly (not the slot's `assignedElements()`); every later slot-content change
7791
7838
  is instead picked up via the slot's own `slotchange` listener. Both paths keep detection correct,
@@ -7798,7 +7845,8 @@ available, the region becomes a standard `role="progressbar"` instead, self-desc
7798
7845
  - A `src` that fails its sink's URL-safety check does **not** raise `lyra-render-error` — that event is
7799
7846
  reserved for a `fetch()` that was actually attempted and failed at the network layer; an unsafe/
7800
7847
  malformed `src` is silently treated as unusable instead (a rendered `[part="error"]` message for
7801
- text, a silent fallback for image/download).
7848
+ text, a silent fallback for image/download — and on the image path that fallback is the download
7849
+ fallback directly, so an `unsupported` slot the host supplied is bypassed).
7802
7850
 
7803
7851
  ---
7804
7852
 
@@ -7875,8 +7923,13 @@ non-fatal Mammoth conversion message occurs.
7875
7923
  **CSS parts:** `base`, `body`, `content`, `spinner`, and `error`.
7876
7924
 
7877
7925
  **Optional peer dependencies:** install `mammoth` and `dompurify` with `pnpm add mammoth dompurify`.
7878
- The component registers a lazy `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
7879
- renderer with `<lyra-document-viewer>` and matches `.docx` filenames when the MIME type is generic.
7926
+ The component registers an eager `application/vnd.openxmlformats-officedocument.wordprocessingml.document`
7927
+ renderer with `<lyra-document-viewer>` (a plain `render`, no `load()` hook importing this module
7928
+ defines `<lyra-docx-viewer>` immediately; only `mammoth`/`dompurify` themselves are loaded on demand)
7929
+ and matches `.docx` filenames when the MIME type is generic.
7930
+
7931
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
7932
+ `documentPreviewResourceTooLarge` message instead of the document.
7880
7933
 
7881
7934
  ```html
7882
7935
  <lyra-docx-viewer src="/files/report.docx" name="report.docx" max-height="32rem"></lyra-docx-viewer>
@@ -7886,8 +7939,11 @@ renderer with `<lyra-document-viewer>` and matches `.docx` filenames when the MI
7886
7939
 
7887
7940
  Fetches and parses `.eml` messages with the optional `postal-mime` peer. HTML message bodies are
7888
7941
  sanitized through the existing optional `dompurify` peer before rendering; plain-text messages
7889
- remain available without DOMPurify. Attachments are listed as filename/type/size metadata and their
7890
- content is never rendered by this component.
7942
+ remain available without DOMPurify. Attachments are listed as filename and size only (the parsed
7943
+ `mimeType` never reaches the DOM) and their content is never rendered by this component.
7944
+
7945
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
7946
+ `documentPreviewResourceTooLarge` message instead of the message.
7891
7947
 
7892
7948
  **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
7893
7949
 
@@ -7916,15 +7972,19 @@ plain text, including its title, start/end time, location, and description. No H
7916
7972
  **Optional peer dependency:** install `ical.js` with `pnpm add ical.js`. The component registers
7917
7973
  `text/calendar` and falls back to matching `.ics` filenames in `<lyra-document-viewer>`.
7918
7974
 
7975
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
7976
+ `documentPreviewResourceTooLarge` message instead of the calendar.
7977
+
7919
7978
  ## `lyra-archive-viewer`
7920
7979
 
7921
7980
  Lists entry names and human-readable uncompressed sizes inside a `.zip` archive using the optional
7922
- `jszip` peer. It is listing-only: entry content is never rendered or previewed. Files are measured
7923
- through JSZip's public async API, so every file is decompressed once up front to obtain its size;
7924
- there is no cheaper public uncompressed-size API. The list composes `<lyra-virtual-list>` for large
7925
- archives.
7981
+ `jszip` peer. It is listing-only: entry content is never rendered or previewed. Each entry's size is
7982
+ read straight from JSZip's local file header (`uncompressedSize`) when available, falling back to
7983
+ fully decompressing only the rare entry missing that header field. The list composes
7984
+ `<lyra-virtual-list>` for large archives.
7926
7985
 
7927
- **Properties:** `src` and `name` are strings.
7986
+ **Properties:** `src` and `name` are strings — `name` (or a host-level `aria-label`) names the
7987
+ listing region as `role="region"`; with neither set, the region is unnamed.
7928
7988
 
7929
7989
  **Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
7930
7990
 
@@ -7937,6 +7997,9 @@ archives.
7937
7997
  the viewer only when a matching archive is opened. `.tar`, `.rar`, and other archive formats fall
7938
7998
  through to `<lyra-document-preview>`'s generic download fallback.
7939
7999
 
8000
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
8001
+ `documentPreviewResourceTooLarge` message instead of the entry listing.
8002
+
7940
8003
  ## `lyra-ebook-viewer`
7941
8004
 
7942
8005
  Renders EPUB ebooks through the optional `epubjs` peer. `src` is fetched as an `ArrayBuffer`, and
@@ -7954,6 +8017,9 @@ the reading region's accessible name.
7954
8017
  **Optional peer dependency:** install `epubjs` with `pnpm add epubjs`. The document-viewer registry
7955
8018
  matches `application/epub+zip` and `.epub` filenames.
7956
8019
 
8020
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
8021
+ `documentPreviewResourceTooLarge` message instead of the ebook.
8022
+
7957
8023
  ## `lyra-pptx-viewer`
7958
8024
 
7959
8025
  Best-effort client-side PPTX viewer backed by the optional `@aiden0z/pptx-renderer` peer. A
@@ -7975,6 +8041,9 @@ and `lyra-render-error` with `detail.error`.
7975
8041
  `pnpm add @aiden0z/pptx-renderer`. The registry matches the official PPTX MIME type and `.pptx`
7976
8042
  filenames.
7977
8043
 
8044
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
8045
+ `documentPreviewResourceTooLarge` message instead of the presentation.
8046
+
7978
8047
  ## `lyra-file-icon`
7979
8048
 
7980
8049
  Localized, tokenized file-format badge for surrounding upload rows, cards, selectors, and viewer
@@ -8008,6 +8077,9 @@ the scrollable body.
8008
8077
 
8009
8078
  **Optional peer dependency:** `dompurify`.
8010
8079
 
8080
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
8081
+ `documentPreviewResourceTooLarge` message instead of the graphic.
8082
+
8011
8083
  ## `lyra-html-viewer`
8012
8084
 
8013
8085
  Fetches an HTML document, sanitizes it with the optional `dompurify` peer, and renders the safe markup
@@ -8021,6 +8093,9 @@ inside a bounded, scrollable body.
8021
8093
 
8022
8094
  **Optional peer dependency:** `dompurify`.
8023
8095
 
8096
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
8097
+ `documentPreviewResourceTooLarge` message instead of the document.
8098
+
8024
8099
  ## `lyra-dataset-viewer`
8025
8100
 
8026
8101
  Fetches tab-, pipe-, or delimiter-separated text and renders an accessible table using the optional
@@ -8036,10 +8111,20 @@ Fetches tab-, pipe-, or delimiter-separated text and renders an accessible table
8036
8111
 
8037
8112
  **Optional peer dependency:** `papaparse`.
8038
8113
 
8114
+ Remote resources are capped at 25 MB, and the parsed table at 1,000 rows and 1,000 columns (lower
8115
+ than `lyra-csv-viewer`/`lyra-spreadsheet-viewer`'s shared 10,000-row cap, since this component renders
8116
+ every row into a real, non-virtualized `<table>` in one synchronous pass); exceeding any of these
8117
+ surfaces the localized `documentPreviewResourceTooLarge` message instead of the table.
8118
+
8039
8119
  ## `lyra-contact-viewer`
8040
8120
 
8041
8121
  Fetches a vCard document and renders one accessible card per contact. The document registry matches
8042
- `.vcf` filenames and common `FN`, `N`, `ORG`, `TEL`, `EMAIL`, and `ADR` fields are displayed.
8122
+ `.vcf` filenames and the `FN`, `ORG`, `TEL`, `EMAIL`, and `ADR` fields are displayed. `N` is parsed
8123
+ but never rendered — the card's heading uses `FN` (falling back to a localized "unnamed contact"
8124
+ label when `FN` is absent).
8125
+
8126
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
8127
+ `documentPreviewResourceTooLarge` message instead of the contacts.
8043
8128
 
8044
8129
  **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
8045
8130
 
@@ -8072,6 +8157,9 @@ controlled state within its supported range.
8072
8157
  a lazy `application/pdf` renderer with `<lyra-document-viewer>` so the PDF library is loaded only when
8073
8158
  a PDF is opened.
8074
8159
 
8160
+ Remote resources are capped at 25 MB; exceeding it surfaces the localized
8161
+ `documentPreviewResourceTooLarge` message instead of the PDF.
8162
+
8075
8163
  ## `lyra-spreadsheet-viewer`
8076
8164
 
8077
8165
  Fetches and renders `.xlsx` and `.xls` workbooks with the optional `xlsx` (SheetJS) peer. Multiple
@@ -8087,6 +8175,10 @@ worksheets render through a `<lyra-tabs>` switcher, and body rows use `<lyra-vir
8087
8175
  **Optional peer dependency:** install `xlsx` with `pnpm add xlsx`. The registry matches the official
8088
8176
  `.xlsx` and `.xls` MIME types and filename extensions.
8089
8177
 
8178
+ Remote resources are capped at 25 MB, and each parsed sheet at 10,000 rows and 1,000 columns;
8179
+ exceeding any of these surfaces the localized `documentPreviewResourceTooLarge` message instead of
8180
+ the workbook.
8181
+
8090
8182
  ## `lyra-csv-viewer`
8091
8183
 
8092
8184
  Fetches CSV text, parses quoted fields with the optional `papaparse` peer, and virtualizes body rows.
@@ -8101,6 +8193,10 @@ Fetches CSV text, parses quoted fields with the optional `papaparse` peer, and v
8101
8193
  **Optional peer dependency:** install `papaparse` with `pnpm add papaparse`. The registry matches
8102
8194
  `text/csv` and `.csv` filenames.
8103
8195
 
8196
+ Remote resources are capped at 25 MB, and the parsed table at 10,000 rows and 1,000 columns;
8197
+ exceeding any of these surfaces the localized `documentPreviewResourceTooLarge` message instead of
8198
+ the table.
8199
+
8104
8200
  ---
8105
8201
 
8106
8202
  ## `lyra-media-card`
@@ -8522,6 +8618,8 @@ A form-associated single-choice control. Use it alone or inside `lyra-radio-grou
8522
8618
 
8523
8619
  **Properties:** `checked`, `disabled`, `required`, `name`, and `value` (all reflected where
8524
8620
  applicable). A selected radio submits its value through `ElementInternals`.
8621
+ `effectiveRequired` exposes the required state inherited from a containing radio group. `focus()`
8622
+ and `blur()` forward to the internal radio control.
8525
8623
 
8526
8624
  **Events:** native-style composed `input` and `change`, plus `lyra-change` with
8527
8625
  `{ checked, value }`.
@@ -8540,7 +8638,8 @@ A click-triggered, light-dismiss floating surface positioned with the shared Flo
8540
8638
 
8541
8639
  **Properties:** `open`, `placement`, `distance`, `accessibleLabel` (`aria-label`), and `popupRole` (`popup-role`).
8542
8640
  **Events:** `lyra-show`, `lyra-hide`. **Slots:** `trigger`, default content. **CSS parts:** `trigger`,
8543
- `popup`, `content`.
8641
+ `popup`, `content`. **Themeable custom properties:** `--lyra-overlay-max-inline-size` (default
8642
+ `--lyra-size-20rem` — maximum inline size of the popup).
8544
8643
 
8545
8644
  ## `lyra-tooltip`
8546
8645
 
@@ -8548,7 +8647,9 @@ A hover/focus tooltip positioned with the shared Floating UI positioner.
8548
8647
 
8549
8648
  **Properties:** `open`, `manual`, `delay`, `placement`, `distance`, `content`, and
8550
8649
  `accessibleLabel` (`aria-label`). **Slots:** `trigger`, default content. **CSS parts:**
8551
- `trigger`, `popup`.
8650
+ `trigger`, `popup`. **Themeable custom properties:** `--lyra-tooltip-max-inline-size` (default
8651
+ `--lyra-size-20rem`), `--lyra-tooltip-background` (default `--lyra-color-neutral`), and
8652
+ `--lyra-tooltip-color` (default `--lyra-color-on-neutral`).
8552
8653
 
8553
8654
  ## `lyra-dropdown`
8554
8655
 
@@ -8557,6 +8658,8 @@ menu-item behavior is needed.
8557
8658
 
8558
8659
  **Properties:** `open`, `placement`, `distance`, `accessibleLabel` (`aria-label`), and `popupRole` (`popup-role`).
8559
8660
  **Slots:** `trigger`, default menu content. **CSS parts:** `trigger`, `popup`, `content`.
8661
+ **Themeable custom properties:** `--lyra-overlay-max-inline-size` (default `--lyra-size-20rem` —
8662
+ maximum inline size of the popup).
8560
8663
 
8561
8664
  ## `lyra-radio-group`
8562
8665
 
@@ -8572,6 +8675,64 @@ focus; arrow navigation selects the next enabled radio.
8572
8675
 
8573
8676
  **CSS parts:** `base`, `label`, `hint`, `error`.
8574
8677
 
8678
+ ## `lyra-checkbox-group`
8679
+
8680
+ A form-associated collection of `<lyra-checkbox>` children. Its `value` is a `string[]`; each
8681
+ selected value is submitted under `name` and `required` requires at least one selection.
8682
+
8683
+ **Properties:** `label`, `hint`, `errorText`, `value`, `name`, `required`, `disabled`, and
8684
+ `accessibleLabel` (`aria-label`). **Slots:** default checkboxes, `label`, `hint`, `error`.
8685
+ **Events:** `input`, `change`, and `lyra-change` with `{ value: string[] }`.
8686
+ **CSS parts:** `form-control`, `form-control-label`, `options`, `hint`, `error`.
8687
+
8688
+ ## `lyra-token-input`
8689
+
8690
+ An editable form-associated token list. Enter, comma, or blur commits a token; Backspace removes
8691
+ the last token. `value` is a `string[]` and repeated values are submitted under `name`.
8692
+
8693
+ **Properties:** `value`, `label`, `hint`, `errorText`, `placeholder`, `name`, `required`,
8694
+ `disabled`, `accessibleLabel`, `allowDuplicates`, and `delimiter`.
8695
+ **Events:** `input`, `change`, `lyra-add`, and `lyra-remove`.
8696
+ **CSS parts:** `form-control`, `form-control-label`, `input-wrapper`, `token`, `remove`, `input`,
8697
+ `hint`, `error`. `focus()` and `blur()` forward to the internal text input.
8698
+
8699
+ ## `lyra-icon` / `lyra-icon-button`
8700
+
8701
+ `lyra-icon` is a dependency-free SVG path icon with named common glyphs and a custom `path`
8702
+ property. `lyra-icon-button` provides an accessible icon-only native button with `icon`, `label`,
8703
+ `aria-label`, `type`, and `disabled` properties. Its `accessibleLabel` property is the typed
8704
+ `aria-label` override, and `focus()`/`blur()` forward to the native button.
8705
+
8706
+ ## `lyra-command-palette`
8707
+
8708
+ Searchable application command menu with a `commands` property, fuzzy substring matching, command
8709
+ groups, keyboard navigation, Escape dismissal, and a configurable `mod+k` shortcut.
8710
+ `openPalette()`, `close()`, and `registerCommand()` provide imperative control. `accessibleLabel`
8711
+ (`aria-label`) overrides the dialog name. **Events:** `lyra-open`, `lyra-close`, and `lyra-select`
8712
+ with `{ command }`.
8713
+
8714
+ ## `lyra-code-editor`
8715
+
8716
+ Dependency-free, form-associated multiline code editor built around a native textarea. Supports
8717
+ line numbers, language metadata, tab insertion, readonly mode, resize, selection getters/methods,
8718
+ and editing-assistance passthrough attributes. Properties include `label`, `hint`, `errorText`,
8719
+ `placeholder`, `lineNumbers`, `tabSize`, `wrap`, `spellcheck`, `autocapitalize`, `autoCorrect`,
8720
+ and `accessibleLabel`; `selectionStart`/`selectionEnd`, `setSelectionRange()`, `setRangeText()`,
8721
+ `focus()`, and `blur()` are public editing APIs.
8722
+
8723
+ ## `lyra-data-grid`
8724
+
8725
+ Keyboard-navigable data grid with typed `columns` and `rows`, sortable headers, roving cell focus,
8726
+ selection events, loading/empty states, and responsive horizontal overflow. Properties include
8727
+ `rowKey`, `selectedKey`, `sortKey`, `sortDirection`, `emptyText`, and `accessibleLabel`.
8728
+
8729
+ ## `lyra-calendar`
8730
+
8731
+ Responsive month calendar with event markers and agenda mode. `events` accepts `{ date, title,
8732
+ start?, end?, color?, data? }` records. `value` controls the selected date and `viewDate` controls
8733
+ the visible month. `firstDayOfWeek` controls week layout and `accessibleLabel` names the calendar.
8734
+ **Events:** `lyra-date-select`, `lyra-event-select`, and `lyra-view-change`.
8735
+
8575
8736
  ## `lyra-spinner`
8576
8737
 
8577
8738
  An indeterminate busy indicator with a localized `role="status"` name.
@@ -8619,7 +8780,7 @@ errors without panel chrome.
8619
8780
  `preventDefault()`.
8620
8781
 
8621
8782
  **Slots:** default message, `heading`, `icon`. **CSS parts:** `base`, `icon`, `content`, `heading`,
8622
- `close-button`.
8783
+ `message` (wrapper around the default slot), `close-button`.
8623
8784
 
8624
8785
  ## `lyra-details`, `lyra-accordion`, and `lyra-accordion-item`
8625
8786
 
@@ -8667,14 +8828,21 @@ When `sync` is true the displayed value refreshes periodically.
8667
8828
 
8668
8829
  A keyboard-accessible star rating control with slider semantics. **Properties:** `value`, `max`,
8669
8830
  `precision`, `readonly`, `disabled`, and `accessibleLabel` (`aria-label`). **Events:**
8670
- `lyra-change` with `{ value }`. **CSS parts:** `base`, `star`.
8831
+ `lyra-change` with `{ value }`. **CSS parts:** `base`, `star`, `star-fill` (the filled overlay
8832
+ inside each star, clipped to the fractional `precision` value). **Themeable custom properties:**
8833
+ `--lyra-rating-fill` (default `--lyra-color-warning` — filled-star color), `--lyra-rating-empty-color`
8834
+ (default `--lyra-color-border` — unfilled-star color), and `--lyra-rating-size` (default
8835
+ `--lyra-font-size-xl` — star size).
8671
8836
 
8672
8837
  ## `lyra-color-picker`
8673
8838
 
8674
- A form-associated native color picker with label and hint chrome. **Properties:** the shared form
8675
- properties `name`, `value`, `disabled`, and `required`, plus `label`, `hint`, and `accessibleLabel`
8676
- (`aria-label`). **Slots:** `label`, `hint`. **Events:** composed `input` and `change`, plus
8677
- `lyra-change` with `{ value }`. **CSS parts:** `form-control`, `label`, `input`, `hint`.
8839
+ A form-associated native color picker with label, hint, and error chrome. **Properties:** the shared
8840
+ form properties `name`, `value`, `disabled`, and `required`, plus `label`, `hint`, `errorText`
8841
+ (`error-text`), and `accessibleLabel` (`aria-label`). **Slots:** `label`, `hint`, `error`. **Events:**
8842
+ composed `input` and `change`, `lyra-change` with `{ value }`, and `focus`/`blur` (re-dispatched from
8843
+ the internal `<input>`'s own `focus`/`blur`, bubbling and composed unlike the native events). **CSS
8844
+ parts:** `form-control`, `form-control-label` (the label; `label` is an alias kept for back-compat),
8845
+ `input`, `hint`, `error`.
8678
8846
 
8679
8847
  ## Cross-cutting notes
8680
8848