@aceshooting/lyra-ui 3.0.0 → 3.2.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 (303) hide show
  1. package/README.md +21 -3
  2. package/custom-elements.json +12254 -4196
  3. package/dist/components/archive-viewer/archive-loader.d.ts +8 -0
  4. package/dist/components/archive-viewer/archive-loader.d.ts.map +1 -0
  5. package/dist/components/archive-viewer/archive-loader.js +19 -0
  6. package/dist/components/archive-viewer/archive-loader.js.map +1 -0
  7. package/dist/components/archive-viewer/archive-viewer-register.d.ts +2 -0
  8. package/dist/components/archive-viewer/archive-viewer-register.d.ts.map +1 -0
  9. package/dist/components/archive-viewer/archive-viewer-register.js +8 -0
  10. package/dist/components/archive-viewer/archive-viewer-register.js.map +1 -0
  11. package/dist/components/archive-viewer/archive-viewer.class.d.ts +47 -0
  12. package/dist/components/archive-viewer/archive-viewer.class.d.ts.map +1 -0
  13. package/dist/components/archive-viewer/archive-viewer.class.js +115 -0
  14. package/dist/components/archive-viewer/archive-viewer.class.js.map +1 -0
  15. package/dist/components/archive-viewer/archive-viewer.d.ts +4 -0
  16. package/dist/components/archive-viewer/archive-viewer.d.ts.map +1 -0
  17. package/dist/components/archive-viewer/archive-viewer.js +7 -0
  18. package/dist/components/archive-viewer/archive-viewer.js.map +1 -0
  19. package/dist/components/archive-viewer/archive-viewer.styles.d.ts +2 -0
  20. package/dist/components/archive-viewer/archive-viewer.styles.d.ts.map +1 -0
  21. package/dist/components/archive-viewer/archive-viewer.styles.js +14 -0
  22. package/dist/components/archive-viewer/archive-viewer.styles.js.map +1 -0
  23. package/dist/components/attachment-chip/attachment-chip.class.d.ts +16 -0
  24. package/dist/components/attachment-chip/attachment-chip.class.d.ts.map +1 -1
  25. package/dist/components/attachment-chip/attachment-chip.class.js +54 -3
  26. package/dist/components/attachment-chip/attachment-chip.class.js.map +1 -1
  27. package/dist/components/attachment-chip/attachment-chip.d.ts +2 -0
  28. package/dist/components/attachment-chip/attachment-chip.d.ts.map +1 -1
  29. package/dist/components/attachment-chip/attachment-chip.js +2 -0
  30. package/dist/components/attachment-chip/attachment-chip.js.map +1 -1
  31. package/dist/components/attachment-chip/attachment-chip.styles.d.ts.map +1 -1
  32. package/dist/components/attachment-chip/attachment-chip.styles.js +8 -0
  33. package/dist/components/attachment-chip/attachment-chip.styles.js.map +1 -1
  34. package/dist/components/calendar-viewer/calendar-loader.d.ts +5 -0
  35. package/dist/components/calendar-viewer/calendar-loader.d.ts.map +1 -0
  36. package/dist/components/calendar-viewer/calendar-loader.js +18 -0
  37. package/dist/components/calendar-viewer/calendar-loader.js.map +1 -0
  38. package/dist/components/calendar-viewer/calendar-viewer.class.d.ts +55 -0
  39. package/dist/components/calendar-viewer/calendar-viewer.class.d.ts.map +1 -0
  40. package/dist/components/calendar-viewer/calendar-viewer.class.js +123 -0
  41. package/dist/components/calendar-viewer/calendar-viewer.class.js.map +1 -0
  42. package/dist/components/calendar-viewer/calendar-viewer.d.ts +3 -0
  43. package/dist/components/calendar-viewer/calendar-viewer.d.ts.map +1 -0
  44. package/dist/components/calendar-viewer/calendar-viewer.js +12 -0
  45. package/dist/components/calendar-viewer/calendar-viewer.js.map +1 -0
  46. package/dist/components/calendar-viewer/calendar-viewer.styles.d.ts +2 -0
  47. package/dist/components/calendar-viewer/calendar-viewer.styles.d.ts.map +1 -0
  48. package/dist/components/calendar-viewer/calendar-viewer.styles.js +16 -0
  49. package/dist/components/calendar-viewer/calendar-viewer.styles.js.map +1 -0
  50. package/dist/components/code-block/code-block-core.class.d.ts +3 -0
  51. package/dist/components/code-block/code-block-core.class.d.ts.map +1 -1
  52. package/dist/components/code-block/code-block-core.class.js +41 -16
  53. package/dist/components/code-block/code-block-core.class.js.map +1 -1
  54. package/dist/components/code-block/code-block.class.d.ts +3 -0
  55. package/dist/components/code-block/code-block.class.d.ts.map +1 -1
  56. package/dist/components/code-block/code-block.class.js +41 -16
  57. package/dist/components/code-block/code-block.class.js.map +1 -1
  58. package/dist/components/code-block/code-block.styles.d.ts.map +1 -1
  59. package/dist/components/code-block/code-block.styles.js +16 -0
  60. package/dist/components/code-block/code-block.styles.js.map +1 -1
  61. package/dist/components/code-block/code-loader.d.ts +2 -0
  62. package/dist/components/code-block/code-loader.d.ts.map +1 -1
  63. package/dist/components/code-block/code-loader.js +14 -4
  64. package/dist/components/code-block/code-loader.js.map +1 -1
  65. package/dist/components/code-block/greycat-language.d.ts +9 -0
  66. package/dist/components/code-block/greycat-language.d.ts.map +1 -0
  67. package/dist/components/code-block/greycat-language.js +73 -0
  68. package/dist/components/code-block/greycat-language.js.map +1 -0
  69. package/dist/components/contact-viewer/contact-viewer.class.d.ts +31 -0
  70. package/dist/components/contact-viewer/contact-viewer.class.d.ts.map +1 -0
  71. package/dist/components/contact-viewer/contact-viewer.class.js +92 -0
  72. package/dist/components/contact-viewer/contact-viewer.class.js.map +1 -0
  73. package/dist/components/contact-viewer/contact-viewer.d.ts +3 -0
  74. package/dist/components/contact-viewer/contact-viewer.d.ts.map +1 -0
  75. package/dist/components/contact-viewer/contact-viewer.js +13 -0
  76. package/dist/components/contact-viewer/contact-viewer.js.map +1 -0
  77. package/dist/components/contact-viewer/contact-viewer.styles.d.ts +2 -0
  78. package/dist/components/contact-viewer/contact-viewer.styles.d.ts.map +1 -0
  79. package/dist/components/contact-viewer/contact-viewer.styles.js +16 -0
  80. package/dist/components/contact-viewer/contact-viewer.styles.js.map +1 -0
  81. package/dist/components/contact-viewer/vcard.d.ts +31 -0
  82. package/dist/components/contact-viewer/vcard.d.ts.map +1 -0
  83. package/dist/components/contact-viewer/vcard.js +87 -0
  84. package/dist/components/contact-viewer/vcard.js.map +1 -0
  85. package/dist/components/csv-viewer/csv-loader.d.ts +8 -0
  86. package/dist/components/csv-viewer/csv-loader.d.ts.map +1 -0
  87. package/dist/components/csv-viewer/csv-loader.js +19 -0
  88. package/dist/components/csv-viewer/csv-loader.js.map +1 -0
  89. package/dist/components/csv-viewer/csv-viewer.class.d.ts +31 -0
  90. package/dist/components/csv-viewer/csv-viewer.class.d.ts.map +1 -0
  91. package/dist/components/csv-viewer/csv-viewer.class.js +108 -0
  92. package/dist/components/csv-viewer/csv-viewer.class.js.map +1 -0
  93. package/dist/components/csv-viewer/csv-viewer.d.ts +3 -0
  94. package/dist/components/csv-viewer/csv-viewer.d.ts.map +1 -0
  95. package/dist/components/csv-viewer/csv-viewer.js +9 -0
  96. package/dist/components/csv-viewer/csv-viewer.js.map +1 -0
  97. package/dist/components/csv-viewer/csv-viewer.styles.d.ts +2 -0
  98. package/dist/components/csv-viewer/csv-viewer.styles.d.ts.map +1 -0
  99. package/dist/components/csv-viewer/csv-viewer.styles.js +14 -0
  100. package/dist/components/csv-viewer/csv-viewer.styles.js.map +1 -0
  101. package/dist/components/dataset-viewer/dataset-loader.d.ts +7 -0
  102. package/dist/components/dataset-viewer/dataset-loader.d.ts.map +1 -0
  103. package/dist/components/dataset-viewer/dataset-loader.js +19 -0
  104. package/dist/components/dataset-viewer/dataset-loader.js.map +1 -0
  105. package/dist/components/dataset-viewer/dataset-viewer.class.d.ts +34 -0
  106. package/dist/components/dataset-viewer/dataset-viewer.class.d.ts.map +1 -0
  107. package/dist/components/dataset-viewer/dataset-viewer.class.js +93 -0
  108. package/dist/components/dataset-viewer/dataset-viewer.class.js.map +1 -0
  109. package/dist/components/dataset-viewer/dataset-viewer.d.ts +3 -0
  110. package/dist/components/dataset-viewer/dataset-viewer.d.ts.map +1 -0
  111. package/dist/components/dataset-viewer/dataset-viewer.js +13 -0
  112. package/dist/components/dataset-viewer/dataset-viewer.js.map +1 -0
  113. package/dist/components/dataset-viewer/dataset-viewer.styles.d.ts +2 -0
  114. package/dist/components/dataset-viewer/dataset-viewer.styles.d.ts.map +1 -0
  115. package/dist/components/dataset-viewer/dataset-viewer.styles.js +13 -0
  116. package/dist/components/dataset-viewer/dataset-viewer.styles.js.map +1 -0
  117. package/dist/components/document-viewer/document-viewer.class.d.ts +55 -0
  118. package/dist/components/document-viewer/document-viewer.class.d.ts.map +1 -0
  119. package/dist/components/document-viewer/document-viewer.class.js +160 -0
  120. package/dist/components/document-viewer/document-viewer.class.js.map +1 -0
  121. package/dist/components/document-viewer/document-viewer.d.ts +5 -0
  122. package/dist/components/document-viewer/document-viewer.d.ts.map +1 -0
  123. package/dist/components/document-viewer/document-viewer.js +8 -0
  124. package/dist/components/document-viewer/document-viewer.js.map +1 -0
  125. package/dist/components/document-viewer/document-viewer.styles.d.ts +2 -0
  126. package/dist/components/document-viewer/document-viewer.styles.d.ts.map +1 -0
  127. package/dist/components/document-viewer/document-viewer.styles.js +48 -0
  128. package/dist/components/document-viewer/document-viewer.styles.js.map +1 -0
  129. package/dist/components/document-viewer/registry.d.ts +30 -0
  130. package/dist/components/document-viewer/registry.d.ts.map +1 -0
  131. package/dist/components/document-viewer/registry.js +42 -0
  132. package/dist/components/document-viewer/registry.js.map +1 -0
  133. package/dist/components/docx-viewer/docx-loader.d.ts +11 -0
  134. package/dist/components/docx-viewer/docx-loader.d.ts.map +1 -0
  135. package/dist/components/docx-viewer/docx-loader.js +39 -0
  136. package/dist/components/docx-viewer/docx-loader.js.map +1 -0
  137. package/dist/components/docx-viewer/docx-viewer.class.d.ts +42 -0
  138. package/dist/components/docx-viewer/docx-viewer.class.d.ts.map +1 -0
  139. package/dist/components/docx-viewer/docx-viewer.class.js +131 -0
  140. package/dist/components/docx-viewer/docx-viewer.class.js.map +1 -0
  141. package/dist/components/docx-viewer/docx-viewer.d.ts +3 -0
  142. package/dist/components/docx-viewer/docx-viewer.d.ts.map +1 -0
  143. package/dist/components/docx-viewer/docx-viewer.js +12 -0
  144. package/dist/components/docx-viewer/docx-viewer.js.map +1 -0
  145. package/dist/components/docx-viewer/docx-viewer.styles.d.ts +2 -0
  146. package/dist/components/docx-viewer/docx-viewer.styles.d.ts.map +1 -0
  147. package/dist/components/docx-viewer/docx-viewer.styles.js +99 -0
  148. package/dist/components/docx-viewer/docx-viewer.styles.js.map +1 -0
  149. package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.d.ts +2 -0
  150. package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.d.ts.map +1 -0
  151. package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.js +3 -0
  152. package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.js.map +1 -0
  153. package/dist/components/ebook-viewer/ebook-loader.d.ts +9 -0
  154. package/dist/components/ebook-viewer/ebook-loader.d.ts.map +1 -0
  155. package/dist/components/ebook-viewer/ebook-loader.js +21 -0
  156. package/dist/components/ebook-viewer/ebook-loader.js.map +1 -0
  157. package/dist/components/ebook-viewer/ebook-viewer-register.d.ts +2 -0
  158. package/dist/components/ebook-viewer/ebook-viewer-register.d.ts.map +1 -0
  159. package/dist/components/ebook-viewer/ebook-viewer-register.js +9 -0
  160. package/dist/components/ebook-viewer/ebook-viewer-register.js.map +1 -0
  161. package/dist/components/ebook-viewer/ebook-viewer.class.d.ts +51 -0
  162. package/dist/components/ebook-viewer/ebook-viewer.class.d.ts.map +1 -0
  163. package/dist/components/ebook-viewer/ebook-viewer.class.js +164 -0
  164. package/dist/components/ebook-viewer/ebook-viewer.class.js.map +1 -0
  165. package/dist/components/ebook-viewer/ebook-viewer.d.ts +2 -0
  166. package/dist/components/ebook-viewer/ebook-viewer.d.ts.map +1 -0
  167. package/dist/components/ebook-viewer/ebook-viewer.js +5 -0
  168. package/dist/components/ebook-viewer/ebook-viewer.js.map +1 -0
  169. package/dist/components/ebook-viewer/ebook-viewer.styles.d.ts +2 -0
  170. package/dist/components/ebook-viewer/ebook-viewer.styles.d.ts.map +1 -0
  171. package/dist/components/ebook-viewer/ebook-viewer.styles.js +73 -0
  172. package/dist/components/ebook-viewer/ebook-viewer.styles.js.map +1 -0
  173. package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.d.ts +2 -0
  174. package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.d.ts.map +1 -0
  175. package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.js +2 -0
  176. package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.js.map +1 -0
  177. package/dist/components/email-viewer/email-loader.d.ts +10 -0
  178. package/dist/components/email-viewer/email-loader.d.ts.map +1 -0
  179. package/dist/components/email-viewer/email-loader.js +38 -0
  180. package/dist/components/email-viewer/email-loader.js.map +1 -0
  181. package/dist/components/email-viewer/email-viewer.class.d.ts +72 -0
  182. package/dist/components/email-viewer/email-viewer.class.d.ts.map +1 -0
  183. package/dist/components/email-viewer/email-viewer.class.js +154 -0
  184. package/dist/components/email-viewer/email-viewer.class.js.map +1 -0
  185. package/dist/components/email-viewer/email-viewer.d.ts +3 -0
  186. package/dist/components/email-viewer/email-viewer.d.ts.map +1 -0
  187. package/dist/components/email-viewer/email-viewer.js +12 -0
  188. package/dist/components/email-viewer/email-viewer.js.map +1 -0
  189. package/dist/components/email-viewer/email-viewer.styles.d.ts +2 -0
  190. package/dist/components/email-viewer/email-viewer.styles.d.ts.map +1 -0
  191. package/dist/components/email-viewer/email-viewer.styles.js +35 -0
  192. package/dist/components/email-viewer/email-viewer.styles.js.map +1 -0
  193. package/dist/components/file-icon/file-icon.class.d.ts +31 -0
  194. package/dist/components/file-icon/file-icon.class.d.ts.map +1 -0
  195. package/dist/components/file-icon/file-icon.class.js +74 -0
  196. package/dist/components/file-icon/file-icon.class.js.map +1 -0
  197. package/dist/components/file-icon/file-icon.d.ts +3 -0
  198. package/dist/components/file-icon/file-icon.d.ts.map +1 -0
  199. package/dist/components/file-icon/file-icon.js +6 -0
  200. package/dist/components/file-icon/file-icon.js.map +1 -0
  201. package/dist/components/file-icon/file-icon.styles.d.ts +2 -0
  202. package/dist/components/file-icon/file-icon.styles.d.ts.map +1 -0
  203. package/dist/components/file-icon/file-icon.styles.js +23 -0
  204. package/dist/components/file-icon/file-icon.styles.js.map +1 -0
  205. package/dist/components/file-icon/file-type-metadata.d.ts +14 -0
  206. package/dist/components/file-icon/file-type-metadata.d.ts.map +1 -0
  207. package/dist/components/file-icon/file-type-metadata.js +81 -0
  208. package/dist/components/file-icon/file-type-metadata.js.map +1 -0
  209. package/dist/components/html-viewer/dompurify-loader.d.ts +7 -0
  210. package/dist/components/html-viewer/dompurify-loader.d.ts.map +1 -0
  211. package/dist/components/html-viewer/dompurify-loader.js +19 -0
  212. package/dist/components/html-viewer/dompurify-loader.js.map +1 -0
  213. package/dist/components/html-viewer/html-viewer.class.d.ts +29 -0
  214. package/dist/components/html-viewer/html-viewer.class.d.ts.map +1 -0
  215. package/dist/components/html-viewer/html-viewer.class.js +88 -0
  216. package/dist/components/html-viewer/html-viewer.class.js.map +1 -0
  217. package/dist/components/html-viewer/html-viewer.d.ts +2 -0
  218. package/dist/components/html-viewer/html-viewer.d.ts.map +1 -0
  219. package/dist/components/html-viewer/html-viewer.js +15 -0
  220. package/dist/components/html-viewer/html-viewer.js.map +1 -0
  221. package/dist/components/html-viewer/html-viewer.styles.d.ts +2 -0
  222. package/dist/components/html-viewer/html-viewer.styles.d.ts.map +1 -0
  223. package/dist/components/html-viewer/html-viewer.styles.js +26 -0
  224. package/dist/components/html-viewer/html-viewer.styles.js.map +1 -0
  225. package/dist/components/pdf-viewer/pdf-loader.d.ts +6 -0
  226. package/dist/components/pdf-viewer/pdf-loader.d.ts.map +1 -0
  227. package/dist/components/pdf-viewer/pdf-loader.js +22 -0
  228. package/dist/components/pdf-viewer/pdf-loader.js.map +1 -0
  229. package/dist/components/pdf-viewer/pdf-viewer.class.d.ts +80 -0
  230. package/dist/components/pdf-viewer/pdf-viewer.class.d.ts.map +1 -0
  231. package/dist/components/pdf-viewer/pdf-viewer.class.js +296 -0
  232. package/dist/components/pdf-viewer/pdf-viewer.class.js.map +1 -0
  233. package/dist/components/pdf-viewer/pdf-viewer.d.ts +2 -0
  234. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -0
  235. package/dist/components/pdf-viewer/pdf-viewer.js +13 -0
  236. package/dist/components/pdf-viewer/pdf-viewer.js.map +1 -0
  237. package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts +2 -0
  238. package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts.map +1 -0
  239. package/dist/components/pdf-viewer/pdf-viewer.styles.js +19 -0
  240. package/dist/components/pdf-viewer/pdf-viewer.styles.js.map +1 -0
  241. package/dist/components/pptx-viewer/pptx-loader.d.ts +5 -0
  242. package/dist/components/pptx-viewer/pptx-loader.d.ts.map +1 -0
  243. package/dist/components/pptx-viewer/pptx-loader.js +20 -0
  244. package/dist/components/pptx-viewer/pptx-loader.js.map +1 -0
  245. package/dist/components/pptx-viewer/pptx-viewer.class.d.ts +68 -0
  246. package/dist/components/pptx-viewer/pptx-viewer.class.d.ts.map +1 -0
  247. package/dist/components/pptx-viewer/pptx-viewer.class.js +205 -0
  248. package/dist/components/pptx-viewer/pptx-viewer.class.js.map +1 -0
  249. package/dist/components/pptx-viewer/pptx-viewer.d.ts +2 -0
  250. package/dist/components/pptx-viewer/pptx-viewer.d.ts.map +1 -0
  251. package/dist/components/pptx-viewer/pptx-viewer.js +11 -0
  252. package/dist/components/pptx-viewer/pptx-viewer.js.map +1 -0
  253. package/dist/components/pptx-viewer/pptx-viewer.styles.d.ts +2 -0
  254. package/dist/components/pptx-viewer/pptx-viewer.styles.d.ts.map +1 -0
  255. package/dist/components/pptx-viewer/pptx-viewer.styles.js +66 -0
  256. package/dist/components/pptx-viewer/pptx-viewer.styles.js.map +1 -0
  257. package/dist/components/spreadsheet-viewer/spreadsheet-loader.d.ts +8 -0
  258. package/dist/components/spreadsheet-viewer/spreadsheet-loader.d.ts.map +1 -0
  259. package/dist/components/spreadsheet-viewer/spreadsheet-loader.js +19 -0
  260. package/dist/components/spreadsheet-viewer/spreadsheet-loader.js.map +1 -0
  261. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +32 -0
  262. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts.map +1 -0
  263. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js +99 -0
  264. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -0
  265. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.d.ts +3 -0
  266. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.d.ts.map +1 -0
  267. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js +12 -0
  268. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js.map +1 -0
  269. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.d.ts +2 -0
  270. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.d.ts.map +1 -0
  271. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.js +14 -0
  272. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.js.map +1 -0
  273. package/dist/components/svg-viewer/dompurify-loader.d.ts +7 -0
  274. package/dist/components/svg-viewer/dompurify-loader.d.ts.map +1 -0
  275. package/dist/components/svg-viewer/dompurify-loader.js +19 -0
  276. package/dist/components/svg-viewer/dompurify-loader.js.map +1 -0
  277. package/dist/components/svg-viewer/svg-viewer.class.d.ts +29 -0
  278. package/dist/components/svg-viewer/svg-viewer.class.d.ts.map +1 -0
  279. package/dist/components/svg-viewer/svg-viewer.class.js +95 -0
  280. package/dist/components/svg-viewer/svg-viewer.class.js.map +1 -0
  281. package/dist/components/svg-viewer/svg-viewer.d.ts +2 -0
  282. package/dist/components/svg-viewer/svg-viewer.d.ts.map +1 -0
  283. package/dist/components/svg-viewer/svg-viewer.js +15 -0
  284. package/dist/components/svg-viewer/svg-viewer.js.map +1 -0
  285. package/dist/components/svg-viewer/svg-viewer.styles.d.ts +2 -0
  286. package/dist/components/svg-viewer/svg-viewer.styles.d.ts.map +1 -0
  287. package/dist/components/svg-viewer/svg-viewer.styles.js +50 -0
  288. package/dist/components/svg-viewer/svg-viewer.styles.js.map +1 -0
  289. package/dist/internal/localization.d.ts +1 -1
  290. package/dist/internal/localization.d.ts.map +1 -1
  291. package/dist/internal/localization.js +65 -0
  292. package/dist/internal/localization.js.map +1 -1
  293. package/dist/internal/root-registration-allowlist.d.ts +1 -1
  294. package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
  295. package/dist/internal/root-registration-allowlist.js +15 -0
  296. package/dist/internal/root-registration-allowlist.js.map +1 -1
  297. package/dist/lyra.d.ts +44 -1
  298. package/dist/lyra.d.ts.map +1 -1
  299. package/dist/lyra.js +32 -0
  300. package/dist/lyra.js.map +1 -1
  301. package/llms-full.txt +331 -8
  302. package/llms.txt +2 -1
  303. package/package.json +83 -3
package/llms-full.txt CHANGED
@@ -34,6 +34,7 @@ composition without registration; for example, `components/empty/empty.class.js`
34
34
  `lyra-thinking-panel`, `lyra-generation-status`, `lyra-code-block`, `lyra-tool-approval-dialog`,
35
35
  `lyra-tool-param-form`, `lyra-menu`/`lyra-menu-item`, `lyra-chip`/`lyra-chip-group`,
36
36
  `lyra-model-settings-panel`, `lyra-context-meter`, `lyra-dock-panel`, `lyra-document-preview`,
37
+ `lyra-document-viewer`, `lyra-docx-viewer`, `lyra-email-viewer`, `lyra-calendar-viewer`, `lyra-archive-viewer`,
37
38
  `lyra-media-card`, `lyra-attachment-trigger`, `lyra-kbd`, `lyra-result-card`/`lyra-result-field`,
38
39
  `lyra-avatar`, `lyra-card`, `lyra-stepper`, `lyra-segmented`, `lyra-diff-view`, `lyra-poll-status`,
39
40
  `lyra-code-block-core` (needs the optional peer `shiki`)
@@ -4874,7 +4875,8 @@ to populate it: set `file` to a real `File` (fresh from a picker/drop), from whi
4874
4875
  `mime-type` and the image thumbnail are all auto-derived; or set the plain `name`/`size`/
4875
4876
  `mime-type`/`thumbnail-src` props instead, for reconstructing a chip from server-persisted
4876
4877
  attachment metadata after a page reload, when no real `File` object exists any more. `file` always
4877
- wins when both are present.
4878
+ wins when both are present. When a real `File` or `preview-src` is available, the chip also offers
4879
+ a localized preview action that opens `<lyra-document-viewer>` using the same effective MIME type.
4878
4880
 
4879
4881
  **Properties:**
4880
4882
  - `file?: File` (attribute `false`, i.e. property-only) — when set, `name`/`size`/`mimeType`/the
@@ -4885,6 +4887,10 @@ wins when both are present.
4885
4887
  - `thumbnailSrc: string = ''` (attribute `thumbnail-src`) — thumbnail image URL, used only while
4886
4888
  `file` is unset; rendered whenever present regardless of `mimeType` (no `file`-derived equivalent
4887
4889
  exists for a non-image file)
4890
+ - `previewSrc: string = ''` (attribute `preview-src`) — source URL used for preview and download when
4891
+ `file` is unset; a real `File` takes precedence and uses a temporary blob URL
4892
+ - `previewable: boolean = true` (reflected) — shows the preview action whenever a `file` or
4893
+ `preview-src` is available
4888
4894
  - `status: AttachmentChipStatus = 'pending'` (reflected) — `'pending' | 'uploading' | 'error' |
4889
4895
  'done'`; drives the accent tint and which of `progress`/`spinner`/`retry-button` renders
4890
4896
  - `progress: number = 0` — upload completion, 0-100; only meaningful while `status="uploading"`, a
@@ -4916,12 +4922,13 @@ derived from `` `${file.name}:${file.size}:${file.lastModified}` ``; when neithe
4916
4922
  generated internal id is used as a last resort.
4917
4923
 
4918
4924
  **Events:** `lyra-remove` (`detail: { id }`, only rendered while `removable`), `lyra-retry`
4919
- (`detail: { id }`, only rendered while `status="error"`)
4925
+ (`detail: { id }`, only rendered while `status="error"`), `lyra-preview` (`detail: { id, name,
4926
+ mimeType, src }`, emitted when the preview action opens the document viewer)
4920
4927
 
4921
4928
  **Slots:** none.
4922
4929
 
4923
4930
  **CSS parts:** `base`, `thumbnail`, `meta`, `name`, `size`, `status-text`, `progress`,
4924
- `progress-fill`, `spinner`, `retry-button`, `remove-button`
4931
+ `progress-fill`, `spinner`, `retry-button`, `preview-button`, `remove-button`
4925
4932
 
4926
4933
  **Themeable custom properties:** `--lyra-attachment-chip-accent` (default
4927
4934
  `var(--lyra-color-text-quiet)`), `--lyra-attachment-chip-bg` (default `var(--lyra-color-surface)`),
@@ -4953,6 +4960,7 @@ size renders nothing instead of `"NaN B"`.
4953
4960
  chip.file = pickedFile; // name/size/mime-type/thumbnail all derived from the File
4954
4961
  chip.addEventListener('lyra-remove', (e) => removeAttachment(e.detail.id));
4955
4962
  chip.addEventListener('lyra-retry', (e) => retryUpload(e.detail.id));
4963
+ chip.addEventListener('lyra-preview', (e) => console.log(e.detail));
4956
4964
  console.log(formatFileSize(pickedFile.size));
4957
4965
  </script>
4958
4966
  ```
@@ -4973,6 +4981,9 @@ leaks URLs that were created but never shown.
4973
4981
  (`uploading` with no known progress).
4974
4982
  - `thumbnailSrc` is used whenever present regardless of `mimeType` — pass a URL that's already known
4975
4983
  to be an image; there's no non-image fallback check for it the way there is for `file`.
4984
+ - `previewSrc` is used only when `file` is unset. A preview action is omitted when neither a real
4985
+ `File` nor `preview-src` supplies a source. The viewer's footer omits its download link for unsafe
4986
+ source schemes.
4976
4987
 
4977
4988
  ---
4978
4989
 
@@ -6597,9 +6608,10 @@ something that announces state *transitions* instead. The Stop button gets a nor
6597
6608
  ## `lyra-code-block`
6598
6609
 
6599
6610
  Fenced code display with optional lazy syntax highlighting and a copy button. First-party invention
6600
- (no Web Awesome equivalent). No highlighting grammar ships in the component itself it lazy-loads
6601
- the optional peer dependency `shiki` (see `code-loader.ts`) for the actual tokenizing, and degrades
6602
- to a plain `<pre><code>` when that peer isn't installed or `language` is unset/unrecognized. That
6611
+ (no Web Awesome equivalent). It lazy-loads the optional peer dependency `shiki` (see
6612
+ `code-loader.ts`) for the actual tokenizing, and includes a compact GreyCat/GCL grammar because
6613
+ Shiki does not bundle one. It falls back to a plain `<pre><code>` when that peer isn't installed or
6614
+ `language` is unset/unrecognized. That
6603
6615
  fallback is the *default* rendering path, not a degraded one: unhighlighted code is perfectly usable,
6604
6616
  and it's what every instance renders at zero extra bytes until shiki resolves.
6605
6617
 
@@ -6607,7 +6619,10 @@ and it's what every instance renders at zero extra bytes until shiki resolves.
6607
6619
  - `code: string = ''` — the raw source text
6608
6620
  - `language: string = ''` — a shiki-recognized language id or alias (e.g. `"javascript"`, `"python"`,
6609
6621
  `"json"`); when unset, or when shiki doesn't recognize it, the code renders as plain unhighlighted
6610
- text regardless of whether shiki itself is available
6622
+ text regardless of whether shiki itself is available. Shiki's bundled catalog covers most common
6623
+ programming, markup, data, and configuration languages, including Python, C, C++, C#, Java,
6624
+ JavaScript, TypeScript, HTML, CSS, JSON, SQL, Go, Rust, YAML, Markdown, and shell scripts. Lyra
6625
+ also includes a built-in GreyCat grammar; use `"gcl"` or `"greycat"` for GreyCat source.
6611
6626
  - `filename: string = ''` — shown in the header, when set
6612
6627
  - `accessibleLabel: string = ''` (attribute `aria-label`) — names the internal focusable code-body
6613
6628
  region; otherwise a localized filename/language description is generated
@@ -6619,6 +6634,8 @@ and it's what every instance renders at zero extra bytes until shiki resolves.
6619
6634
  cannot override a true default)
6620
6635
  - `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"20rem"`); once set, the
6621
6636
  code scrolls internally past this height instead of growing the page
6637
+ - `lineNumbers: boolean = false` (attribute `line-numbers`, reflected) — displays one-based line
6638
+ numbers for both highlighted output and the plain-text fallback
6622
6639
  - `languages?: Record<string, ShikiLanguageInput>` (attribute: false) — a map of language id to an
6623
6640
  already-imported shiki grammar module (e.g. `{ bash: bashGrammar }` from a module-scope
6624
6641
  `import bash from 'shiki/langs/bash.mjs'`). When `language` matches a key here, highlighting is
@@ -6668,6 +6685,9 @@ highlighting).
6668
6685
  ></lyra-code-block>
6669
6686
  ```
6670
6687
 
6688
+ Set `line-numbers` when source context benefits from numbered lines. The option does not change the
6689
+ raw `code` value or the `lyra-copy` event payload.
6690
+
6671
6691
  A `<lyra-skeleton variant="rect">` placeholder (with `aria-busy="true"` on the host) stands in only
6672
6692
  while shiki itself is loading for the very first time on the page and `language` is set — it is
6673
6693
  deliberately *not* shown again for a later per-language grammar fetch (that's typically fast, and the
@@ -6731,6 +6751,8 @@ toggle, the loading-skeleton behavior while the fine-grained highlighter resolve
6731
6751
  - `copyable: boolean = true` (reflected) — shows the copy-to-clipboard button.
6732
6752
  - `maxHeight: string = ''` (attribute `max-height`) — a CSS length (e.g. `"20rem"`); once set, the
6733
6753
  code scrolls internally past this height instead of growing the page.
6754
+ - `lineNumbers: boolean = false` (attribute `line-numbers`, reflected) — displays one-based line
6755
+ numbers for highlighted and plain output.
6734
6756
  - `languages: Record<string, ShikiLanguageInput> = {}` (attribute: false) — grammar definitions this
6735
6757
  instance can highlight, e.g. `{ json: jsonGrammar }` (import from `shiki/langs/<name>.mjs`). Empty
6736
6758
  (the default) never highlights at all — every `language` renders the plain-text fallback.
@@ -7780,6 +7802,307 @@ available, the region becomes a standard `role="progressbar"` instead, self-desc
7780
7802
 
7781
7803
  ---
7782
7804
 
7805
+ ## `lyra-document-viewer`
7806
+
7807
+ A dialog-hosted, format-dispatching full viewer for one document or attachment. It uses a pluggable
7808
+ renderer registry and falls back to `<lyra-document-preview>` when no renderer matches the file's MIME
7809
+ type. First-party invention.
7810
+
7811
+ **Properties:**
7812
+ - `open: boolean = false` (reflected) — opens or closes the viewer dialog.
7813
+ - `name: string = ''` — display name passed to the renderer and used as the dialog heading.
7814
+ - `mimeType: string = ''` (attribute `mime-type`) — MIME type used for exact renderer dispatch.
7815
+ - `src: string = ''` — source URL passed to the selected renderer or the fallback preview.
7816
+ - `registry?: DocumentRendererRegistry` (attribute: false) — optional per-instance registry override;
7817
+ the module-level registry is used when unset.
7818
+
7819
+ **Events:**
7820
+ - `lyra-close` — `detail: DocumentViewerCloseReason`, the nested dialog's dismissal reason. The
7821
+ event is emitted after the viewer sets `open` to `false`.
7822
+ - `lyra-download` — `detail: { src, filename }`, emitted when the native safe download action is
7823
+ activated. The browser download itself is handled by the link.
7824
+
7825
+ **CSS parts:** `body` — wrapper around the active renderer, loading/error state, or fallback preview;
7826
+ `download-link` — the native download action, rendered when `src` passes Lyra's safe-link policy.
7827
+
7828
+ **Renderer registry exports:**
7829
+ - `DocumentFile` — `{ name: string; mimeType: string; src: string }`, the value passed to renderers.
7830
+ - `DocumentRendererDefinition` — optional `render(file)`, `matches(file)`, and lazy `load()` hooks.
7831
+ - `DocumentRendererRegistry` — `Map<string, DocumentRendererDefinition>`.
7832
+ - `registerDocumentRenderer(key, definition)` — adds or replaces a default-registry entry.
7833
+ - `findDocumentRenderer(file, registry?)` — checks an exact MIME-type key, then the first matching
7834
+ `matches()` entry in registration order.
7835
+ - `loadDocumentRenderer(definition)` — resolves and identity-caches a lazy definition; rejected loads
7836
+ are retried on the next call.
7837
+
7838
+ ```html
7839
+ <lyra-document-viewer
7840
+ open
7841
+ name="report.pdf"
7842
+ mime-type="application/pdf"
7843
+ src="/files/report.pdf"
7844
+ ></lyra-document-viewer>
7845
+ ```
7846
+
7847
+ Register a renderer once during application setup. The definition may load a heavy optional viewer
7848
+ only when a matching document is opened:
7849
+
7850
+ ```ts
7851
+ import { registerDocumentRenderer } from '@aceshooting/lyra-ui';
7852
+
7853
+ registerDocumentRenderer('application/x-example', {
7854
+ render: (file) => `Preview: ${file.name}`,
7855
+ });
7856
+ ```
7857
+
7858
+ When no renderer matches, the viewer renders `<lyra-document-preview>`, which handles text and images
7859
+ inline and provides a safe generic fallback for other formats.
7860
+
7861
+ ## `lyra-docx-viewer`
7862
+
7863
+ Fetches a `.docx` Word document as an `ArrayBuffer`, converts it to semantic HTML with the optional
7864
+ `mammoth` peer, sanitizes that HTML through the optional `dompurify` peer, and renders the result.
7865
+ Mammoth preserves document structure such as headings, paragraphs, lists, tables, and images; it is
7866
+ not intended to reproduce pixel-exact Word page layout. There is no unsanitized rendering escape
7867
+ hatch: if `dompurify` is unavailable, rendering is blocked even when Mammoth converted successfully.
7868
+
7869
+ **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
7870
+ the scrollable document body.
7871
+
7872
+ **Events:** `lyra-render-error` with `detail.error` when fetching, conversion, sanitization, or a
7873
+ non-fatal Mammoth conversion message occurs.
7874
+
7875
+ **CSS parts:** `base`, `body`, `content`, `spinner`, and `error`.
7876
+
7877
+ **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.
7880
+
7881
+ ```html
7882
+ <lyra-docx-viewer src="/files/report.docx" name="report.docx" max-height="32rem"></lyra-docx-viewer>
7883
+ ```
7884
+
7885
+ ## `lyra-email-viewer`
7886
+
7887
+ Fetches and parses `.eml` messages with the optional `postal-mime` peer. HTML message bodies are
7888
+ 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.
7891
+
7892
+ **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
7893
+
7894
+ **Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
7895
+
7896
+ **CSS parts:** `base`, `headers`, `from-label`, `from`, `to-label`, `to`, `subject-label`, `subject`,
7897
+ `date-label`, `date`, `body`, `body-html`, `body-text`, `attachments`, `attachments-label`,
7898
+ `attachment-list`, `attachment-item`, `spinner`, and `error`.
7899
+
7900
+ **Optional peer dependencies:** install `postal-mime` and `dompurify` with
7901
+ `pnpm add postal-mime dompurify`. The component registers `message/rfc822` and falls back to
7902
+ matching `.eml` filenames in `<lyra-document-viewer>`.
7903
+
7904
+ ## `lyra-calendar-viewer`
7905
+
7906
+ Fetches and parses `.ics` calendars with the optional `ical.js` peer and renders each VEVENT as
7907
+ plain text, including its title, start/end time, location, and description. No HTML is injected.
7908
+
7909
+ **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
7910
+
7911
+ **Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
7912
+
7913
+ **CSS parts:** `base`, `body`, `event-list`, `event`, `event-summary`, `event-time`, `event-location`,
7914
+ `event-description`, `spinner`, and `error`.
7915
+
7916
+ **Optional peer dependency:** install `ical.js` with `pnpm add ical.js`. The component registers
7917
+ `text/calendar` and falls back to matching `.ics` filenames in `<lyra-document-viewer>`.
7918
+
7919
+ ## `lyra-archive-viewer`
7920
+
7921
+ 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.
7926
+
7927
+ **Properties:** `src` and `name` are strings.
7928
+
7929
+ **Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
7930
+
7931
+ **CSS parts:** `base`, `entry`, `entry-icon`, `entry-name`, `entry-size`, `spinner`, and `error`.
7932
+
7933
+ **Exports:** `ArchiveEntry` — `{ name: string; dir: boolean; size: number }`.
7934
+
7935
+ **Optional peer dependency:** install `jszip` with `pnpm add jszip`. The lazy registry registers
7936
+ `application/zip` and `application/x-zip-compressed`, with a `.zip` filename fallback, and imports
7937
+ the viewer only when a matching archive is opened. `.tar`, `.rar`, and other archive formats fall
7938
+ through to `<lyra-document-preview>`'s generic download fallback.
7939
+
7940
+ ## `lyra-ebook-viewer`
7941
+
7942
+ Renders EPUB ebooks through the optional `epubjs` peer. `src` is fetched as an `ArrayBuffer`, and
7943
+ epub.js renders the reading area into its stable `mount` element, using an internal iframe for
7944
+ chapter content.
7945
+
7946
+ **Properties:** `src` and `name` are strings. `accessibleLabel` (attribute `aria-label`) overrides
7947
+ the reading region's accessible name.
7948
+
7949
+ **Events:** `lyra-render-error` with `detail.error` when fetching, opening, or rendering fails.
7950
+
7951
+ **CSS parts:** `base`, `toolbar`, `previous-button`, `next-button`, `previous-icon`, `next-icon`,
7952
+ `mount`, and `error`.
7953
+
7954
+ **Optional peer dependency:** install `epubjs` with `pnpm add epubjs`. The document-viewer registry
7955
+ matches `application/epub+zip` and `.epub` filenames.
7956
+
7957
+ ## `lyra-pptx-viewer`
7958
+
7959
+ Best-effort client-side PPTX viewer backed by the optional `@aiden0z/pptx-renderer` peer. A
7960
+ localized fidelity notice is always visible because animations, equations, embedded objects,
7961
+ speaker notes, and several advanced effects are not rendered.
7962
+
7963
+ **Properties:** `src`, `name`, and `label` are strings. A host `aria-label` also names the viewer
7964
+ region when `label` is unset.
7965
+
7966
+ **Methods:** `goToSlide(index)` returns a promise and navigates the mounted presentation.
7967
+
7968
+ **Events:** `lyra-load` (`detail: { slideCount }`), `lyra-slide-change` (`detail: { index, count }`),
7969
+ and `lyra-render-error` with `detail.error`.
7970
+
7971
+ **CSS parts:** `base`, `header`, `name`, `notice`, `error`, `nav`, `previous-button`,
7972
+ `previous-icon`, `slide-count`, `next-button`, `next-icon`, and `container`.
7973
+
7974
+ **Optional peer dependency:** install `@aiden0z/pptx-renderer` with
7975
+ `pnpm add @aiden0z/pptx-renderer`. The registry matches the official PPTX MIME type and `.pptx`
7976
+ filenames.
7977
+
7978
+ ## `lyra-file-icon`
7979
+
7980
+ Localized, tokenized file-format badge for surrounding upload rows, cards, selectors, and viewer
7981
+ headers. The companion `getFileTypeMetadata(mimeType, fileName?)` utility covers common document,
7982
+ spreadsheet, presentation, code, archive, image, audio, and video formats. An explicit known MIME
7983
+ type wins; filename extension fallback is used only for an empty or `application/octet-stream`
7984
+ MIME type. Unknown values return a generic file result.
7985
+
7986
+ **Properties:** `mimeType` (attribute `mime-type`), `name`, `label`, `decorative`, and
7987
+ `variant: 'icon' | 'label'`.
7988
+
7989
+ **CSS parts:** `base`, `icon`, and `label`.
7990
+
7991
+ **Exports:** `LyraFileTypeMetadata`, `LyraFileTypeIcon`, `LyraFileTypeCategory`,
7992
+ `getFileTypeMetadata()`, and `registerFileTypeMetadata()` for application-specific mappings.
7993
+
7994
+ ```html
7995
+ <lyra-file-icon mime-type="application/pdf" variant="label"></lyra-file-icon>
7996
+ ```
7997
+
7998
+ ## `lyra-svg-viewer`
7999
+
8000
+ Fetches an SVG document, sanitizes it with the optional `dompurify` peer, and renders it inline.
8001
+
8002
+ **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings. `maxHeight` caps
8003
+ the scrollable body.
8004
+
8005
+ **Events:** `lyra-render-error` with `detail.error` when fetching or sanitizing fails.
8006
+
8007
+ **CSS parts:** `base`, `body`, `svg`, `spinner`, and `error`.
8008
+
8009
+ **Optional peer dependency:** `dompurify`.
8010
+
8011
+ ## `lyra-html-viewer`
8012
+
8013
+ Fetches an HTML document, sanitizes it with the optional `dompurify` peer, and renders the safe markup
8014
+ inside a bounded, scrollable body.
8015
+
8016
+ **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
8017
+
8018
+ **Events:** `lyra-render-error` with `detail.error` when fetching or sanitizing fails.
8019
+
8020
+ **CSS parts:** `base`, `body`, `html`, `spinner`, and `error`.
8021
+
8022
+ **Optional peer dependency:** `dompurify`.
8023
+
8024
+ ## `lyra-dataset-viewer`
8025
+
8026
+ Fetches tab-, pipe-, or delimiter-separated text and renders an accessible table using the optional
8027
+ `papaparse` peer. The document registry matches `.tsv`, `.psv`, and `.dat` filenames.
8028
+
8029
+ **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
8030
+
8031
+ **Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
8032
+
8033
+ **CSS parts:** `base`, `body`, `table`, `spinner`, and `error`.
8034
+
8035
+ **Exports:** `DatasetTable` is `{ fields: string[]; rows: Record<string, string>[] }`.
8036
+
8037
+ **Optional peer dependency:** `papaparse`.
8038
+
8039
+ ## `lyra-contact-viewer`
8040
+
8041
+ 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.
8043
+
8044
+ **Properties:** `src`, `name`, and `maxHeight` (attribute `max-height`) are strings.
8045
+
8046
+ **Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
8047
+
8048
+ **CSS parts:** `base`, `body`, `contact`, `contact-name`, `contact-org`, `contact-tel`,
8049
+ `contact-email`, `contact-adr`, `spinner`, and `error`.
8050
+
8051
+ **Exports:** `parseVCards()` and the `VCardName`, `VCardTypedValue`, `VCardAddress`, and `VCardContact`
8052
+ types.
8053
+
8054
+ ## `lyra-pdf-viewer`
8055
+
8056
+ Fetches a PDF and renders its pages with the optional `pdfjs-dist` peer. Pages are virtualized through
8057
+ `lyra-virtual-list`, and PDF.js's selectable text layer is positioned over each rendered canvas.
8058
+
8059
+ **Properties:** `src` and `name` are strings. `page: number = 1` is the one-based current page and
8060
+ `zoom: number = 1` is clamped to `0.25`–`4`.
8061
+
8062
+ **Events:** `lyra-render-error` with `detail.error` when fetching, parsing, or rendering fails;
8063
+ `lyra-page-change` with `{ page, pageCount }`; and `lyra-zoom-change` with `{ zoom }`.
8064
+
8065
+ **Methods:** `nextPage()`, `previousPage()`, `zoomIn()`, and `zoomOut()` update the corresponding
8066
+ controlled state within its supported range.
8067
+
8068
+ **CSS parts:** `base`, `toolbar`, `page-indicator`, `zoom-indicator`, `pages`, `page`, `text-layer`,
8069
+ `spinner`, and `error`.
8070
+
8071
+ **Optional peer dependency:** install `pdfjs-dist` with `pnpm add pdfjs-dist`. The component registers
8072
+ a lazy `application/pdf` renderer with `<lyra-document-viewer>` so the PDF library is loaded only when
8073
+ a PDF is opened.
8074
+
8075
+ ## `lyra-spreadsheet-viewer`
8076
+
8077
+ Fetches and renders `.xlsx` and `.xls` workbooks with the optional `xlsx` (SheetJS) peer. Multiple
8078
+ worksheets render through a `<lyra-tabs>` switcher, and body rows use `<lyra-virtual-list>`.
8079
+
8080
+ **Properties:** `src` and `name` are strings.
8081
+
8082
+ **Events:** `lyra-render-error` with `detail.error` when fetching or parsing fails.
8083
+
8084
+ **CSS parts:** `base`, `tabs`, `sheet`, `header-row`, `data-row`, `cell`, `rows`, `spinner`, and
8085
+ `error`.
8086
+
8087
+ **Optional peer dependency:** install `xlsx` with `pnpm add xlsx`. The registry matches the official
8088
+ `.xlsx` and `.xls` MIME types and filename extensions.
8089
+
8090
+ ## `lyra-csv-viewer`
8091
+
8092
+ Fetches CSV text, parses quoted fields with the optional `papaparse` peer, and virtualizes body rows.
8093
+
8094
+ **Properties:** `src` and `name` are strings. `hasHeaderRow: boolean = true` (attribute
8095
+ `has-header-row`) controls whether the first parsed row is rendered as a sticky header.
8096
+
8097
+ **Events:** `lyra-render-error` with `detail.error` when fetching or parsing reports an error.
8098
+
8099
+ **CSS parts:** `base`, `sheet`, `header-row`, `data-row`, `cell`, `rows`, `spinner`, and `error`.
8100
+
8101
+ **Optional peer dependency:** install `papaparse` with `pnpm add papaparse`. The registry matches
8102
+ `text/csv` and `.csv` filenames.
8103
+
8104
+ ---
8105
+
7783
8106
  ## `lyra-media-card`
7784
8107
 
7785
8108
  A lightweight inline preview for one already-sent, already-available attachment inside a rendered
@@ -8360,7 +8683,7 @@ These apply across the whole library rather than to any one component:
8360
8683
  - **Independence and migration.** Lyra has no runtime, theme, or design-token dependency on
8361
8684
  Shoelace or Web Awesome. The documented `wa-*` comparisons are migration references only; Lyra's
8362
8685
  own `lyra-*` tokens, events, localization runtime, and implementation are the source of truth.
8363
- For a staged Web Awesome migration, map existing `--wa-*` values to `--lyra-theme-*` explicitly
8686
+ For a staged Web Awesome migration, map existing external theme-input values to `--lyra-theme-*` explicitly
8364
8687
  in application CSS instead of relying on an implicit compatibility layer.
8365
8688
 
8366
8689
  - **Internationalization.** Built-in UI copy, accessible names, descriptions, validation messages,
package/llms.txt CHANGED
@@ -74,7 +74,8 @@ The catalog is grouped by capability; `llms-full.txt` follows the same consumer-
74
74
  `lyra-thinking-panel`, `lyra-generation-status`, `lyra-code-block` (needs the optional peer
75
75
  `shiki`), `lyra-tool-approval-dialog`, `lyra-tool-param-form`, `lyra-menu`/`lyra-menu-item`,
76
76
  `lyra-chip`/`lyra-chip-group`, `lyra-model-settings-panel`, `lyra-context-meter`,
77
- `lyra-dock-panel`, `lyra-document-preview`, `lyra-media-card`, `lyra-attachment-trigger`,
77
+ `lyra-dock-panel`, `lyra-document-preview`, `lyra-document-viewer`, `lyra-svg-viewer`, `lyra-html-viewer`,
78
+ `lyra-dataset-viewer`, `lyra-contact-viewer`, `lyra-pdf-viewer`, `lyra-spreadsheet-viewer`, `lyra-csv-viewer`, `lyra-docx-viewer`, `lyra-email-viewer`, `lyra-calendar-viewer`, `lyra-archive-viewer`, `lyra-ebook-viewer`, `lyra-pptx-viewer`, `lyra-file-icon`, `lyra-media-card`, `lyra-attachment-trigger`,
78
79
  `lyra-kbd`, `lyra-result-card`/`lyra-result-field`, `lyra-avatar`, `lyra-card`, `lyra-stepper`,
79
80
  `lyra-segmented`, `lyra-diff-view`, `lyra-poll-status`, `lyra-code-block-core` (needs the
80
81
  optional peer `shiki`).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aceshooting/lyra-ui",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "description": "Free, independent Lit web components: an open-source alternative to Shoelace and Web Awesome with accessible forms, dashboards, charts, and agent UI.",
5
5
  "keywords": [
6
6
  "web-components",
@@ -64,6 +64,8 @@
64
64
  "./dist/components/attachment-chip/attachment-chip.js",
65
65
  "./dist/components/attachment-trigger/attachment-trigger.js",
66
66
  "./dist/components/avatar/avatar.js",
67
+ "./dist/components/archive-viewer/archive-viewer.js",
68
+ "./dist/components/archive-viewer/archive-viewer-register.js",
67
69
  "./dist/components/button/button.js",
68
70
  "./dist/components/button-group/button-group.js",
69
71
  "./dist/components/card/card.js",
@@ -101,6 +103,21 @@
101
103
  "./dist/components/diff-view/diff-view.js",
102
104
  "./dist/components/dock-panel/dock-panel.js",
103
105
  "./dist/components/document-preview/document-preview.js",
106
+ "./dist/components/document-viewer/document-viewer.js",
107
+ "./dist/components/ebook-viewer/ebook-viewer.js",
108
+ "./dist/components/ebook-viewer/ebook-viewer-register.js",
109
+ "./dist/components/pptx-viewer/pptx-viewer.js",
110
+ "./dist/components/file-icon/file-icon.js",
111
+ "./dist/components/contact-viewer/contact-viewer.js",
112
+ "./dist/components/dataset-viewer/dataset-viewer.js",
113
+ "./dist/components/html-viewer/html-viewer.js",
114
+ "./dist/components/pdf-viewer/pdf-viewer.js",
115
+ "./dist/components/spreadsheet-viewer/spreadsheet-viewer.js",
116
+ "./dist/components/csv-viewer/csv-viewer.js",
117
+ "./dist/components/docx-viewer/docx-viewer.js",
118
+ "./dist/components/email-viewer/email-viewer.js",
119
+ "./dist/components/calendar-viewer/calendar-viewer.js",
120
+ "./dist/components/svg-viewer/svg-viewer.js",
104
121
  "./dist/components/details/details.js",
105
122
  "./dist/components/details/accordion.js",
106
123
  "./dist/components/details/accordion-item.js",
@@ -198,6 +215,8 @@
198
215
  "./src/components/attachment-chip/attachment-chip.ts",
199
216
  "./src/components/attachment-trigger/attachment-trigger.ts",
200
217
  "./src/components/avatar/avatar.ts",
218
+ "./src/components/archive-viewer/archive-viewer.ts",
219
+ "./src/components/archive-viewer/archive-viewer-register.ts",
201
220
  "./src/components/button/button.ts",
202
221
  "./src/components/button-group/button-group.ts",
203
222
  "./src/components/card/card.ts",
@@ -235,6 +254,21 @@
235
254
  "./src/components/diff-view/diff-view.ts",
236
255
  "./src/components/dock-panel/dock-panel.ts",
237
256
  "./src/components/document-preview/document-preview.ts",
257
+ "./src/components/document-viewer/document-viewer.ts",
258
+ "./src/components/ebook-viewer/ebook-viewer.ts",
259
+ "./src/components/ebook-viewer/ebook-viewer-register.ts",
260
+ "./src/components/pptx-viewer/pptx-viewer.ts",
261
+ "./src/components/file-icon/file-icon.ts",
262
+ "./src/components/contact-viewer/contact-viewer.ts",
263
+ "./src/components/dataset-viewer/dataset-viewer.ts",
264
+ "./src/components/html-viewer/html-viewer.ts",
265
+ "./src/components/pdf-viewer/pdf-viewer.ts",
266
+ "./src/components/spreadsheet-viewer/spreadsheet-viewer.ts",
267
+ "./src/components/csv-viewer/csv-viewer.ts",
268
+ "./src/components/docx-viewer/docx-viewer.ts",
269
+ "./src/components/email-viewer/email-viewer.ts",
270
+ "./src/components/calendar-viewer/calendar-viewer.ts",
271
+ "./src/components/svg-viewer/svg-viewer.ts",
238
272
  "./src/components/details/details.ts",
239
273
  "./src/components/details/accordion.ts",
240
274
  "./src/components/details/accordion-item.ts",
@@ -338,6 +372,7 @@
338
372
  },
339
373
  "peerDependencies": {
340
374
  "@aceshooting/lyra-flags": "^1.3.0",
375
+ "@aiden0z/pptx-renderer": "^1.2.4",
341
376
  "@sgratzl/chartjs-chart-boxplot": "^4.4.0",
342
377
  "chart.js": "^4.5.0",
343
378
  "chartjs-plugin-zoom": "^2.2.0",
@@ -346,10 +381,18 @@
346
381
  "d3-selection": "^3.0.0",
347
382
  "d3-zoom": "^3.0.0",
348
383
  "dompurify": "^3.4.12",
384
+ "epubjs": "^0.3.93",
385
+ "ical.js": "^2.2.1",
386
+ "jszip": "^3.10.1",
349
387
  "libphonenumber-js": ">=1.11.0 <2",
388
+ "mammoth": "^1.12.0",
350
389
  "maplibre-gl": "^5.24.0",
351
390
  "marked": "^18.0.6",
352
- "shiki": "^4.3.1"
391
+ "papaparse": "^5.5.3",
392
+ "pdfjs-dist": "^6.1.200",
393
+ "postal-mime": "^2.7.5",
394
+ "shiki": "^4.3.1",
395
+ "xlsx": "^0.18.5"
353
396
  },
354
397
  "peerDependenciesMeta": {
355
398
  "@aceshooting/lyra-flags": {
@@ -358,6 +401,9 @@
358
401
  "@sgratzl/chartjs-chart-boxplot": {
359
402
  "optional": true
360
403
  },
404
+ "@aiden0z/pptx-renderer": {
405
+ "optional": true
406
+ },
361
407
  "d3-force": {
362
408
  "optional": true
363
409
  },
@@ -379,21 +425,46 @@
379
425
  "dompurify": {
380
426
  "optional": true
381
427
  },
428
+ "epubjs": {
429
+ "optional": true
430
+ },
431
+ "ical.js": {
432
+ "optional": true
433
+ },
434
+ "jszip": {
435
+ "optional": true
436
+ },
382
437
  "libphonenumber-js": {
383
438
  "optional": true
384
439
  },
440
+ "mammoth": {
441
+ "optional": true
442
+ },
385
443
  "maplibre-gl": {
386
444
  "optional": true
387
445
  },
388
446
  "marked": {
389
447
  "optional": true
390
448
  },
449
+ "postal-mime": {
450
+ "optional": true
451
+ },
452
+ "papaparse": {
453
+ "optional": true
454
+ },
455
+ "pdfjs-dist": {
456
+ "optional": true
457
+ },
391
458
  "shiki": {
392
459
  "optional": true
460
+ },
461
+ "xlsx": {
462
+ "optional": true
393
463
  }
394
464
  },
395
465
  "devDependencies": {
396
466
  "@aceshooting/lyra-flags": "^1.3.0",
467
+ "@aiden0z/pptx-renderer": "^1.2.4",
397
468
  "@custom-elements-manifest/analyzer": "^0.11.0",
398
469
  "@open-wc/testing": "^4.0.0",
399
470
  "@sgratzl/chartjs-chart-boxplot": "^4.4.5",
@@ -402,6 +473,7 @@
402
473
  "@types/d3-force": "^3.0.10",
403
474
  "@types/d3-selection": "^3.0.11",
404
475
  "@types/d3-zoom": "^3.0.8",
476
+ "@types/papaparse": "^5.5.2",
405
477
  "@types/sinonjs__fake-timers": "^15.0.1",
406
478
  "@web/dev-server-esbuild": "^2.0.0",
407
479
  "@web/test-runner": "^1.0.0",
@@ -413,11 +485,19 @@
413
485
  "d3-selection": "^3.0.0",
414
486
  "d3-zoom": "^3.0.0",
415
487
  "dompurify": "^3.4.12",
488
+ "epubjs": "^0.3.93",
489
+ "ical.js": "^2.2.1",
490
+ "jszip": "^3.10.1",
491
+ "mammoth": "^1.12.0",
416
492
  "maplibre-gl": "^5.24.0",
417
493
  "marked": "^18.0.6",
494
+ "papaparse": "^5.5.3",
495
+ "pdfjs-dist": "^6.1.200",
418
496
  "playwright": "^1.61.1",
497
+ "postal-mime": "^2.7.5",
419
498
  "shiki": "^4.3.1",
420
- "typescript": "^7.0.2"
499
+ "typescript": "^7.0.2",
500
+ "xlsx": "^0.18.5"
421
501
  },
422
502
  "customElements": "custom-elements.json",
423
503
  "scripts": {