@aceshooting/lyra-ui 3.0.0 → 3.1.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 (292) hide show
  1. package/README.md +21 -3
  2. package/custom-elements.json +12157 -4187
  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/calendar-viewer/calendar-loader.d.ts +5 -0
  24. package/dist/components/calendar-viewer/calendar-loader.d.ts.map +1 -0
  25. package/dist/components/calendar-viewer/calendar-loader.js +18 -0
  26. package/dist/components/calendar-viewer/calendar-loader.js.map +1 -0
  27. package/dist/components/calendar-viewer/calendar-viewer.class.d.ts +55 -0
  28. package/dist/components/calendar-viewer/calendar-viewer.class.d.ts.map +1 -0
  29. package/dist/components/calendar-viewer/calendar-viewer.class.js +123 -0
  30. package/dist/components/calendar-viewer/calendar-viewer.class.js.map +1 -0
  31. package/dist/components/calendar-viewer/calendar-viewer.d.ts +3 -0
  32. package/dist/components/calendar-viewer/calendar-viewer.d.ts.map +1 -0
  33. package/dist/components/calendar-viewer/calendar-viewer.js +12 -0
  34. package/dist/components/calendar-viewer/calendar-viewer.js.map +1 -0
  35. package/dist/components/calendar-viewer/calendar-viewer.styles.d.ts +2 -0
  36. package/dist/components/calendar-viewer/calendar-viewer.styles.d.ts.map +1 -0
  37. package/dist/components/calendar-viewer/calendar-viewer.styles.js +16 -0
  38. package/dist/components/calendar-viewer/calendar-viewer.styles.js.map +1 -0
  39. package/dist/components/code-block/code-block-core.class.d.ts +3 -0
  40. package/dist/components/code-block/code-block-core.class.d.ts.map +1 -1
  41. package/dist/components/code-block/code-block-core.class.js +41 -16
  42. package/dist/components/code-block/code-block-core.class.js.map +1 -1
  43. package/dist/components/code-block/code-block.class.d.ts +3 -0
  44. package/dist/components/code-block/code-block.class.d.ts.map +1 -1
  45. package/dist/components/code-block/code-block.class.js +41 -16
  46. package/dist/components/code-block/code-block.class.js.map +1 -1
  47. package/dist/components/code-block/code-block.styles.d.ts.map +1 -1
  48. package/dist/components/code-block/code-block.styles.js +16 -0
  49. package/dist/components/code-block/code-block.styles.js.map +1 -1
  50. package/dist/components/code-block/code-loader.d.ts +2 -0
  51. package/dist/components/code-block/code-loader.d.ts.map +1 -1
  52. package/dist/components/code-block/code-loader.js +14 -4
  53. package/dist/components/code-block/code-loader.js.map +1 -1
  54. package/dist/components/code-block/greycat-language.d.ts +9 -0
  55. package/dist/components/code-block/greycat-language.d.ts.map +1 -0
  56. package/dist/components/code-block/greycat-language.js +73 -0
  57. package/dist/components/code-block/greycat-language.js.map +1 -0
  58. package/dist/components/contact-viewer/contact-viewer.class.d.ts +31 -0
  59. package/dist/components/contact-viewer/contact-viewer.class.d.ts.map +1 -0
  60. package/dist/components/contact-viewer/contact-viewer.class.js +92 -0
  61. package/dist/components/contact-viewer/contact-viewer.class.js.map +1 -0
  62. package/dist/components/contact-viewer/contact-viewer.d.ts +3 -0
  63. package/dist/components/contact-viewer/contact-viewer.d.ts.map +1 -0
  64. package/dist/components/contact-viewer/contact-viewer.js +13 -0
  65. package/dist/components/contact-viewer/contact-viewer.js.map +1 -0
  66. package/dist/components/contact-viewer/contact-viewer.styles.d.ts +2 -0
  67. package/dist/components/contact-viewer/contact-viewer.styles.d.ts.map +1 -0
  68. package/dist/components/contact-viewer/contact-viewer.styles.js +16 -0
  69. package/dist/components/contact-viewer/contact-viewer.styles.js.map +1 -0
  70. package/dist/components/contact-viewer/vcard.d.ts +31 -0
  71. package/dist/components/contact-viewer/vcard.d.ts.map +1 -0
  72. package/dist/components/contact-viewer/vcard.js +87 -0
  73. package/dist/components/contact-viewer/vcard.js.map +1 -0
  74. package/dist/components/csv-viewer/csv-loader.d.ts +8 -0
  75. package/dist/components/csv-viewer/csv-loader.d.ts.map +1 -0
  76. package/dist/components/csv-viewer/csv-loader.js +19 -0
  77. package/dist/components/csv-viewer/csv-loader.js.map +1 -0
  78. package/dist/components/csv-viewer/csv-viewer.class.d.ts +31 -0
  79. package/dist/components/csv-viewer/csv-viewer.class.d.ts.map +1 -0
  80. package/dist/components/csv-viewer/csv-viewer.class.js +108 -0
  81. package/dist/components/csv-viewer/csv-viewer.class.js.map +1 -0
  82. package/dist/components/csv-viewer/csv-viewer.d.ts +3 -0
  83. package/dist/components/csv-viewer/csv-viewer.d.ts.map +1 -0
  84. package/dist/components/csv-viewer/csv-viewer.js +9 -0
  85. package/dist/components/csv-viewer/csv-viewer.js.map +1 -0
  86. package/dist/components/csv-viewer/csv-viewer.styles.d.ts +2 -0
  87. package/dist/components/csv-viewer/csv-viewer.styles.d.ts.map +1 -0
  88. package/dist/components/csv-viewer/csv-viewer.styles.js +14 -0
  89. package/dist/components/csv-viewer/csv-viewer.styles.js.map +1 -0
  90. package/dist/components/dataset-viewer/dataset-loader.d.ts +7 -0
  91. package/dist/components/dataset-viewer/dataset-loader.d.ts.map +1 -0
  92. package/dist/components/dataset-viewer/dataset-loader.js +19 -0
  93. package/dist/components/dataset-viewer/dataset-loader.js.map +1 -0
  94. package/dist/components/dataset-viewer/dataset-viewer.class.d.ts +34 -0
  95. package/dist/components/dataset-viewer/dataset-viewer.class.d.ts.map +1 -0
  96. package/dist/components/dataset-viewer/dataset-viewer.class.js +93 -0
  97. package/dist/components/dataset-viewer/dataset-viewer.class.js.map +1 -0
  98. package/dist/components/dataset-viewer/dataset-viewer.d.ts +3 -0
  99. package/dist/components/dataset-viewer/dataset-viewer.d.ts.map +1 -0
  100. package/dist/components/dataset-viewer/dataset-viewer.js +13 -0
  101. package/dist/components/dataset-viewer/dataset-viewer.js.map +1 -0
  102. package/dist/components/dataset-viewer/dataset-viewer.styles.d.ts +2 -0
  103. package/dist/components/dataset-viewer/dataset-viewer.styles.d.ts.map +1 -0
  104. package/dist/components/dataset-viewer/dataset-viewer.styles.js +13 -0
  105. package/dist/components/dataset-viewer/dataset-viewer.styles.js.map +1 -0
  106. package/dist/components/document-viewer/document-viewer.class.d.ts +47 -0
  107. package/dist/components/document-viewer/document-viewer.class.d.ts.map +1 -0
  108. package/dist/components/document-viewer/document-viewer.class.js +141 -0
  109. package/dist/components/document-viewer/document-viewer.class.js.map +1 -0
  110. package/dist/components/document-viewer/document-viewer.d.ts +5 -0
  111. package/dist/components/document-viewer/document-viewer.d.ts.map +1 -0
  112. package/dist/components/document-viewer/document-viewer.js +8 -0
  113. package/dist/components/document-viewer/document-viewer.js.map +1 -0
  114. package/dist/components/document-viewer/document-viewer.styles.d.ts +2 -0
  115. package/dist/components/document-viewer/document-viewer.styles.d.ts.map +1 -0
  116. package/dist/components/document-viewer/document-viewer.styles.js +24 -0
  117. package/dist/components/document-viewer/document-viewer.styles.js.map +1 -0
  118. package/dist/components/document-viewer/registry.d.ts +30 -0
  119. package/dist/components/document-viewer/registry.d.ts.map +1 -0
  120. package/dist/components/document-viewer/registry.js +42 -0
  121. package/dist/components/document-viewer/registry.js.map +1 -0
  122. package/dist/components/docx-viewer/docx-loader.d.ts +11 -0
  123. package/dist/components/docx-viewer/docx-loader.d.ts.map +1 -0
  124. package/dist/components/docx-viewer/docx-loader.js +39 -0
  125. package/dist/components/docx-viewer/docx-loader.js.map +1 -0
  126. package/dist/components/docx-viewer/docx-viewer.class.d.ts +42 -0
  127. package/dist/components/docx-viewer/docx-viewer.class.d.ts.map +1 -0
  128. package/dist/components/docx-viewer/docx-viewer.class.js +131 -0
  129. package/dist/components/docx-viewer/docx-viewer.class.js.map +1 -0
  130. package/dist/components/docx-viewer/docx-viewer.d.ts +3 -0
  131. package/dist/components/docx-viewer/docx-viewer.d.ts.map +1 -0
  132. package/dist/components/docx-viewer/docx-viewer.js +12 -0
  133. package/dist/components/docx-viewer/docx-viewer.js.map +1 -0
  134. package/dist/components/docx-viewer/docx-viewer.styles.d.ts +2 -0
  135. package/dist/components/docx-viewer/docx-viewer.styles.d.ts.map +1 -0
  136. package/dist/components/docx-viewer/docx-viewer.styles.js +99 -0
  137. package/dist/components/docx-viewer/docx-viewer.styles.js.map +1 -0
  138. package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.d.ts +2 -0
  139. package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.d.ts.map +1 -0
  140. package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.js +3 -0
  141. package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.js.map +1 -0
  142. package/dist/components/ebook-viewer/ebook-loader.d.ts +9 -0
  143. package/dist/components/ebook-viewer/ebook-loader.d.ts.map +1 -0
  144. package/dist/components/ebook-viewer/ebook-loader.js +21 -0
  145. package/dist/components/ebook-viewer/ebook-loader.js.map +1 -0
  146. package/dist/components/ebook-viewer/ebook-viewer-register.d.ts +2 -0
  147. package/dist/components/ebook-viewer/ebook-viewer-register.d.ts.map +1 -0
  148. package/dist/components/ebook-viewer/ebook-viewer-register.js +9 -0
  149. package/dist/components/ebook-viewer/ebook-viewer-register.js.map +1 -0
  150. package/dist/components/ebook-viewer/ebook-viewer.class.d.ts +51 -0
  151. package/dist/components/ebook-viewer/ebook-viewer.class.d.ts.map +1 -0
  152. package/dist/components/ebook-viewer/ebook-viewer.class.js +164 -0
  153. package/dist/components/ebook-viewer/ebook-viewer.class.js.map +1 -0
  154. package/dist/components/ebook-viewer/ebook-viewer.d.ts +2 -0
  155. package/dist/components/ebook-viewer/ebook-viewer.d.ts.map +1 -0
  156. package/dist/components/ebook-viewer/ebook-viewer.js +5 -0
  157. package/dist/components/ebook-viewer/ebook-viewer.js.map +1 -0
  158. package/dist/components/ebook-viewer/ebook-viewer.styles.d.ts +2 -0
  159. package/dist/components/ebook-viewer/ebook-viewer.styles.d.ts.map +1 -0
  160. package/dist/components/ebook-viewer/ebook-viewer.styles.js +73 -0
  161. package/dist/components/ebook-viewer/ebook-viewer.styles.js.map +1 -0
  162. package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.d.ts +2 -0
  163. package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.d.ts.map +1 -0
  164. package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.js +2 -0
  165. package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.js.map +1 -0
  166. package/dist/components/email-viewer/email-loader.d.ts +10 -0
  167. package/dist/components/email-viewer/email-loader.d.ts.map +1 -0
  168. package/dist/components/email-viewer/email-loader.js +38 -0
  169. package/dist/components/email-viewer/email-loader.js.map +1 -0
  170. package/dist/components/email-viewer/email-viewer.class.d.ts +72 -0
  171. package/dist/components/email-viewer/email-viewer.class.d.ts.map +1 -0
  172. package/dist/components/email-viewer/email-viewer.class.js +154 -0
  173. package/dist/components/email-viewer/email-viewer.class.js.map +1 -0
  174. package/dist/components/email-viewer/email-viewer.d.ts +3 -0
  175. package/dist/components/email-viewer/email-viewer.d.ts.map +1 -0
  176. package/dist/components/email-viewer/email-viewer.js +12 -0
  177. package/dist/components/email-viewer/email-viewer.js.map +1 -0
  178. package/dist/components/email-viewer/email-viewer.styles.d.ts +2 -0
  179. package/dist/components/email-viewer/email-viewer.styles.d.ts.map +1 -0
  180. package/dist/components/email-viewer/email-viewer.styles.js +35 -0
  181. package/dist/components/email-viewer/email-viewer.styles.js.map +1 -0
  182. package/dist/components/file-icon/file-icon.class.d.ts +31 -0
  183. package/dist/components/file-icon/file-icon.class.d.ts.map +1 -0
  184. package/dist/components/file-icon/file-icon.class.js +74 -0
  185. package/dist/components/file-icon/file-icon.class.js.map +1 -0
  186. package/dist/components/file-icon/file-icon.d.ts +3 -0
  187. package/dist/components/file-icon/file-icon.d.ts.map +1 -0
  188. package/dist/components/file-icon/file-icon.js +6 -0
  189. package/dist/components/file-icon/file-icon.js.map +1 -0
  190. package/dist/components/file-icon/file-icon.styles.d.ts +2 -0
  191. package/dist/components/file-icon/file-icon.styles.d.ts.map +1 -0
  192. package/dist/components/file-icon/file-icon.styles.js +23 -0
  193. package/dist/components/file-icon/file-icon.styles.js.map +1 -0
  194. package/dist/components/file-icon/file-type-metadata.d.ts +14 -0
  195. package/dist/components/file-icon/file-type-metadata.d.ts.map +1 -0
  196. package/dist/components/file-icon/file-type-metadata.js +81 -0
  197. package/dist/components/file-icon/file-type-metadata.js.map +1 -0
  198. package/dist/components/html-viewer/dompurify-loader.d.ts +7 -0
  199. package/dist/components/html-viewer/dompurify-loader.d.ts.map +1 -0
  200. package/dist/components/html-viewer/dompurify-loader.js +19 -0
  201. package/dist/components/html-viewer/dompurify-loader.js.map +1 -0
  202. package/dist/components/html-viewer/html-viewer.class.d.ts +29 -0
  203. package/dist/components/html-viewer/html-viewer.class.d.ts.map +1 -0
  204. package/dist/components/html-viewer/html-viewer.class.js +88 -0
  205. package/dist/components/html-viewer/html-viewer.class.js.map +1 -0
  206. package/dist/components/html-viewer/html-viewer.d.ts +2 -0
  207. package/dist/components/html-viewer/html-viewer.d.ts.map +1 -0
  208. package/dist/components/html-viewer/html-viewer.js +15 -0
  209. package/dist/components/html-viewer/html-viewer.js.map +1 -0
  210. package/dist/components/html-viewer/html-viewer.styles.d.ts +2 -0
  211. package/dist/components/html-viewer/html-viewer.styles.d.ts.map +1 -0
  212. package/dist/components/html-viewer/html-viewer.styles.js +26 -0
  213. package/dist/components/html-viewer/html-viewer.styles.js.map +1 -0
  214. package/dist/components/pdf-viewer/pdf-loader.d.ts +6 -0
  215. package/dist/components/pdf-viewer/pdf-loader.d.ts.map +1 -0
  216. package/dist/components/pdf-viewer/pdf-loader.js +22 -0
  217. package/dist/components/pdf-viewer/pdf-loader.js.map +1 -0
  218. package/dist/components/pdf-viewer/pdf-viewer.class.d.ts +80 -0
  219. package/dist/components/pdf-viewer/pdf-viewer.class.d.ts.map +1 -0
  220. package/dist/components/pdf-viewer/pdf-viewer.class.js +296 -0
  221. package/dist/components/pdf-viewer/pdf-viewer.class.js.map +1 -0
  222. package/dist/components/pdf-viewer/pdf-viewer.d.ts +2 -0
  223. package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -0
  224. package/dist/components/pdf-viewer/pdf-viewer.js +13 -0
  225. package/dist/components/pdf-viewer/pdf-viewer.js.map +1 -0
  226. package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts +2 -0
  227. package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts.map +1 -0
  228. package/dist/components/pdf-viewer/pdf-viewer.styles.js +19 -0
  229. package/dist/components/pdf-viewer/pdf-viewer.styles.js.map +1 -0
  230. package/dist/components/pptx-viewer/pptx-loader.d.ts +5 -0
  231. package/dist/components/pptx-viewer/pptx-loader.d.ts.map +1 -0
  232. package/dist/components/pptx-viewer/pptx-loader.js +20 -0
  233. package/dist/components/pptx-viewer/pptx-loader.js.map +1 -0
  234. package/dist/components/pptx-viewer/pptx-viewer.class.d.ts +68 -0
  235. package/dist/components/pptx-viewer/pptx-viewer.class.d.ts.map +1 -0
  236. package/dist/components/pptx-viewer/pptx-viewer.class.js +205 -0
  237. package/dist/components/pptx-viewer/pptx-viewer.class.js.map +1 -0
  238. package/dist/components/pptx-viewer/pptx-viewer.d.ts +2 -0
  239. package/dist/components/pptx-viewer/pptx-viewer.d.ts.map +1 -0
  240. package/dist/components/pptx-viewer/pptx-viewer.js +11 -0
  241. package/dist/components/pptx-viewer/pptx-viewer.js.map +1 -0
  242. package/dist/components/pptx-viewer/pptx-viewer.styles.d.ts +2 -0
  243. package/dist/components/pptx-viewer/pptx-viewer.styles.d.ts.map +1 -0
  244. package/dist/components/pptx-viewer/pptx-viewer.styles.js +66 -0
  245. package/dist/components/pptx-viewer/pptx-viewer.styles.js.map +1 -0
  246. package/dist/components/spreadsheet-viewer/spreadsheet-loader.d.ts +8 -0
  247. package/dist/components/spreadsheet-viewer/spreadsheet-loader.d.ts.map +1 -0
  248. package/dist/components/spreadsheet-viewer/spreadsheet-loader.js +19 -0
  249. package/dist/components/spreadsheet-viewer/spreadsheet-loader.js.map +1 -0
  250. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +32 -0
  251. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts.map +1 -0
  252. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js +99 -0
  253. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -0
  254. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.d.ts +3 -0
  255. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.d.ts.map +1 -0
  256. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js +12 -0
  257. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js.map +1 -0
  258. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.d.ts +2 -0
  259. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.d.ts.map +1 -0
  260. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.js +14 -0
  261. package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.js.map +1 -0
  262. package/dist/components/svg-viewer/dompurify-loader.d.ts +7 -0
  263. package/dist/components/svg-viewer/dompurify-loader.d.ts.map +1 -0
  264. package/dist/components/svg-viewer/dompurify-loader.js +19 -0
  265. package/dist/components/svg-viewer/dompurify-loader.js.map +1 -0
  266. package/dist/components/svg-viewer/svg-viewer.class.d.ts +29 -0
  267. package/dist/components/svg-viewer/svg-viewer.class.d.ts.map +1 -0
  268. package/dist/components/svg-viewer/svg-viewer.class.js +95 -0
  269. package/dist/components/svg-viewer/svg-viewer.class.js.map +1 -0
  270. package/dist/components/svg-viewer/svg-viewer.d.ts +2 -0
  271. package/dist/components/svg-viewer/svg-viewer.d.ts.map +1 -0
  272. package/dist/components/svg-viewer/svg-viewer.js +15 -0
  273. package/dist/components/svg-viewer/svg-viewer.js.map +1 -0
  274. package/dist/components/svg-viewer/svg-viewer.styles.d.ts +2 -0
  275. package/dist/components/svg-viewer/svg-viewer.styles.d.ts.map +1 -0
  276. package/dist/components/svg-viewer/svg-viewer.styles.js +50 -0
  277. package/dist/components/svg-viewer/svg-viewer.styles.js.map +1 -0
  278. package/dist/internal/localization.d.ts +1 -1
  279. package/dist/internal/localization.d.ts.map +1 -1
  280. package/dist/internal/localization.js +63 -0
  281. package/dist/internal/localization.js.map +1 -1
  282. package/dist/internal/root-registration-allowlist.d.ts +1 -1
  283. package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
  284. package/dist/internal/root-registration-allowlist.js +15 -0
  285. package/dist/internal/root-registration-allowlist.js.map +1 -1
  286. package/dist/lyra.d.ts +43 -0
  287. package/dist/lyra.d.ts.map +1 -1
  288. package/dist/lyra.js +32 -0
  289. package/dist/lyra.js.map +1 -1
  290. package/llms-full.txt +315 -5
  291. package/llms.txt +2 -1
  292. package/package.json +83 -3
@@ -0,0 +1,23 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host { display: inline-flex; vertical-align: middle; }
4
+ [part='base'] { display: inline-flex; align-items: center; gap: var(--lyra-space-xs); min-inline-size: 0; }
5
+ [part='icon'] {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ inline-size: var(--lyra-file-icon-size, var(--lyra-size-2rem));
10
+ block-size: var(--lyra-file-icon-size, var(--lyra-size-2rem));
11
+ box-sizing: border-box;
12
+ border: var(--lyra-border-width-thin) solid var(--lyra-color-border);
13
+ border-radius: var(--lyra-radius);
14
+ background: var(--lyra-color-brand-quiet);
15
+ color: var(--lyra-color-brand);
16
+ font-size: var(--lyra-font-size-xs);
17
+ font-weight: var(--lyra-font-weight-bold);
18
+ line-height: var(--lyra-line-height-none);
19
+ text-transform: uppercase;
20
+ }
21
+ [part='label'] { min-inline-size: 0; color: var(--lyra-color-text); }
22
+ `;
23
+ //# sourceMappingURL=file-icon.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-icon.styles.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;CAoBxB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export type LyraFileTypeIcon = 'file' | 'pdf' | 'word' | 'spreadsheet' | 'presentation' | 'text' | 'code' | 'archive' | 'image' | 'audio' | 'video';
2
+ export type LyraFileTypeCategory = 'document' | 'spreadsheet' | 'presentation' | 'image' | 'audio' | 'video' | 'archive' | 'code' | 'generic';
3
+ export type LyraFileTypeMetadata = {
4
+ label: string;
5
+ description?: string;
6
+ icon: LyraFileTypeIcon;
7
+ category: LyraFileTypeCategory;
8
+ extensions?: readonly string[];
9
+ };
10
+ /** Adds or replaces a custom MIME mapping used by future metadata lookups. */
11
+ export declare function registerFileTypeMetadata(mimeTypes: string | readonly string[], metadata: LyraFileTypeMetadata): void;
12
+ /** Returns presentation metadata for a MIME type, with a safe generic fallback. */
13
+ export declare function getFileTypeMetadata(mimeType: string, fileName?: string): LyraFileTypeMetadata;
14
+ //# sourceMappingURL=file-type-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-type-metadata.d.ts","sourceRoot":"","sources":["../../../src/components/file-icon/file-type-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,KAAK,GACL,MAAM,GACN,aAAa,GACb,cAAc,GACd,MAAM,GACN,MAAM,GACN,SAAS,GACT,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,aAAa,GACb,cAAc,GACd,OAAO,GACP,OAAO,GACP,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,CAAC;AA2DF,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACrC,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CAaN;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,oBAAoB,CAUzF"}
@@ -0,0 +1,81 @@
1
+ const generic = { label: 'File', icon: 'file', category: 'generic' };
2
+ const catalog = {
3
+ 'application/pdf': { label: 'PDF', icon: 'pdf', category: 'document', extensions: ['.pdf'] },
4
+ 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': { label: 'Word document', icon: 'word', category: 'document', extensions: ['.docx'] },
5
+ 'application/msword': { label: 'Word document', icon: 'word', category: 'document', extensions: ['.doc'] },
6
+ 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': { label: 'Excel spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.xlsx'] },
7
+ 'application/vnd.ms-excel': { label: 'Excel spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.xls'] },
8
+ 'application/vnd.openxmlformats-officedocument.presentationml.presentation': { label: 'PowerPoint presentation', icon: 'presentation', category: 'presentation', extensions: ['.pptx'] },
9
+ 'application/vnd.ms-powerpoint': { label: 'PowerPoint presentation', icon: 'presentation', category: 'presentation', extensions: ['.ppt'] },
10
+ 'application/vnd.oasis.opendocument.text': { label: 'OpenDocument text', icon: 'word', category: 'document', extensions: ['.odt'] },
11
+ 'application/vnd.oasis.opendocument.spreadsheet': { label: 'OpenDocument spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.ods'] },
12
+ 'application/vnd.oasis.opendocument.presentation': { label: 'OpenDocument presentation', icon: 'presentation', category: 'presentation', extensions: ['.odp'] },
13
+ 'application/rtf': { label: 'Rich text document', icon: 'word', category: 'document', extensions: ['.rtf'] },
14
+ 'application/epub+zip': { label: 'EPUB ebook', icon: 'word', category: 'document', extensions: ['.epub'] },
15
+ 'application/x-mobipocket-ebook': { label: 'MOBI ebook', icon: 'word', category: 'document', extensions: ['.mobi'] },
16
+ 'text/plain': { label: 'Plain text', icon: 'text', category: 'document', extensions: ['.txt'] },
17
+ 'text/csv': { label: 'CSV spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.csv'] },
18
+ 'text/markdown': { label: 'Markdown', icon: 'code', category: 'code', extensions: ['.md', '.markdown'] },
19
+ 'text/html': { label: 'HTML document', icon: 'code', category: 'code', extensions: ['.html', '.htm'] },
20
+ 'text/xml': { label: 'XML document', icon: 'code', category: 'code', extensions: ['.xml'] },
21
+ 'application/xml': { label: 'XML document', icon: 'code', category: 'code', extensions: ['.xml'] },
22
+ 'application/json': { label: 'JSON data', icon: 'code', category: 'code', extensions: ['.json'] },
23
+ 'application/yaml': { label: 'YAML data', icon: 'code', category: 'code', extensions: ['.yaml', '.yml'] },
24
+ 'text/yaml': { label: 'YAML data', icon: 'code', category: 'code', extensions: ['.yaml', '.yml'] },
25
+ 'application/zip': { label: 'ZIP archive', icon: 'archive', category: 'archive', extensions: ['.zip'] },
26
+ 'application/x-zip-compressed': { label: 'ZIP archive', icon: 'archive', category: 'archive', extensions: ['.zip'] },
27
+ 'application/gzip': { label: 'GZip archive', icon: 'archive', category: 'archive', extensions: ['.gz', '.gzip'] },
28
+ 'application/x-gzip': { label: 'GZip archive', icon: 'archive', category: 'archive', extensions: ['.gz', '.gzip'] },
29
+ 'application/x-tar': { label: 'TAR archive', icon: 'archive', category: 'archive', extensions: ['.tar'] },
30
+ 'application/x-7z-compressed': { label: '7-Zip archive', icon: 'archive', category: 'archive', extensions: ['.7z'] },
31
+ 'application/vnd.rar': { label: 'RAR archive', icon: 'archive', category: 'archive', extensions: ['.rar'] },
32
+ 'image/jpeg': { label: 'JPEG image', icon: 'image', category: 'image', extensions: ['.jpg', '.jpeg'] },
33
+ 'image/png': { label: 'PNG image', icon: 'image', category: 'image', extensions: ['.png'] },
34
+ 'image/gif': { label: 'GIF image', icon: 'image', category: 'image', extensions: ['.gif'] },
35
+ 'image/webp': { label: 'WebP image', icon: 'image', category: 'image', extensions: ['.webp'] },
36
+ 'image/svg+xml': { label: 'SVG image', icon: 'image', category: 'image', extensions: ['.svg'] },
37
+ 'image/tiff': { label: 'TIFF image', icon: 'image', category: 'image', extensions: ['.tif', '.tiff'] },
38
+ 'image/bmp': { label: 'BMP image', icon: 'image', category: 'image', extensions: ['.bmp'] },
39
+ 'image/heic': { label: 'HEIC image', icon: 'image', category: 'image', extensions: ['.heic'] },
40
+ 'audio/mpeg': { label: 'MPEG audio', icon: 'audio', category: 'audio', extensions: ['.mp3', '.mpeg'] },
41
+ 'audio/mp3': { label: 'MP3 audio', icon: 'audio', category: 'audio', extensions: ['.mp3'] },
42
+ 'audio/wav': { label: 'WAV audio', icon: 'audio', category: 'audio', extensions: ['.wav'] },
43
+ 'audio/x-wav': { label: 'WAV audio', icon: 'audio', category: 'audio', extensions: ['.wav'] },
44
+ 'video/mp4': { label: 'MP4 video', icon: 'video', category: 'video', extensions: ['.mp4'] },
45
+ 'video/webm': { label: 'WebM video', icon: 'video', category: 'video', extensions: ['.webm'] },
46
+ };
47
+ const extensionCatalog = new Map();
48
+ for (const metadata of Object.values(catalog)) {
49
+ for (const extension of metadata.extensions ?? [])
50
+ extensionCatalog.set(extension, metadata);
51
+ }
52
+ function normalizeMimeType(value) {
53
+ return value.trim().toLowerCase().split(';', 1)[0];
54
+ }
55
+ /** Adds or replaces a custom MIME mapping used by future metadata lookups. */
56
+ export function registerFileTypeMetadata(mimeTypes, metadata) {
57
+ for (const mimeType of typeof mimeTypes === 'string' ? [mimeTypes] : mimeTypes) {
58
+ catalog[normalizeMimeType(mimeType)] = metadata;
59
+ }
60
+ for (const extension of metadata.extensions ?? []) {
61
+ const normalizedExtension = extension.trim().toLowerCase();
62
+ if (normalizedExtension) {
63
+ extensionCatalog.set(normalizedExtension.startsWith('.') ? normalizedExtension : `.${normalizedExtension}`, metadata);
64
+ }
65
+ }
66
+ }
67
+ /** Returns presentation metadata for a MIME type, with a safe generic fallback. */
68
+ export function getFileTypeMetadata(mimeType, fileName = '') {
69
+ const normalized = normalizeMimeType(mimeType);
70
+ const explicit = normalized && normalized !== 'application/octet-stream' ? catalog[normalized] : undefined;
71
+ if (explicit)
72
+ return { ...explicit };
73
+ if (!normalized || normalized === 'application/octet-stream') {
74
+ const match = /(?:^|\.)((?:[a-z0-9]+))$/i.exec(fileName.trim().toLowerCase());
75
+ const byExtension = match ? extensionCatalog.get(`.${match[1]}`) : undefined;
76
+ if (byExtension)
77
+ return { ...byExtension };
78
+ }
79
+ return { ...generic };
80
+ }
81
+ //# sourceMappingURL=file-type-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-type-metadata.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-type-metadata.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { OptionalPeerApi } from '../../internal/optional-peer-types.js';
2
+ export declare function loadHtmlSanitizerDeps(importDompurify?: () => Promise<{
3
+ default: OptionalPeerApi;
4
+ }>): Promise<OptionalPeerApi | null>;
5
+ export declare function loadHtmlSanitizer(): Promise<OptionalPeerApi | null>;
6
+ export declare function clearHtmlSanitizerCache(): void;
7
+ //# sourceMappingURL=dompurify-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dompurify-loader.d.ts","sourceRoot":"","sources":["../../../src/components/html-viewer/dompurify-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAI7E,wBAAsB,qBAAqB,CACzC,eAAe,GAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,eAAe,CAAA;CAAE,CACG,GAC7D,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAUjC;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAGnE;AAED,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C"}
@@ -0,0 +1,19 @@
1
+ let sanitizer;
2
+ export async function loadHtmlSanitizerDeps(importDompurify = () => import('dompurify')) {
3
+ try {
4
+ return (await importDompurify()).default;
5
+ }
6
+ catch (error) {
7
+ console.warn('<lyra-html-viewer> needs the optional peer dependency `dompurify` to sanitize rendered HTML markup — install it with `pnpm add dompurify`:', error);
8
+ return null;
9
+ }
10
+ }
11
+ export function loadHtmlSanitizer() {
12
+ if (!sanitizer)
13
+ sanitizer = loadHtmlSanitizerDeps();
14
+ return sanitizer;
15
+ }
16
+ export function clearHtmlSanitizerCache() {
17
+ sanitizer = undefined;
18
+ }
19
+ //# sourceMappingURL=dompurify-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dompurify-loader.js","sourceRoot":"","sources":["../../../src/components/html-viewer/dompurify-loader.ts"],"names":[],"mappings":"AAEA,IAAI,SAAsD,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,eAAe,GAAgD,GAAG,EAAE,CAClE,MAAM,CAAC,WAAW,CAA0C;IAE9D,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,4IAA4I,EAC5I,KAAK,CACN,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,IAAI,CAAC,SAAS;QAAE,SAAS,GAAG,qBAAqB,EAAE,CAAC;IACpD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,SAAS,GAAG,SAAS,CAAC;AACxB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { type PropertyValues, type TemplateResult } from 'lit';
2
+ import { LyraElement } from '../../internal/lyra-element.js';
3
+ export interface LyraHtmlViewerEventMap {
4
+ 'lyra-render-error': CustomEvent<{
5
+ error: unknown;
6
+ }>;
7
+ }
8
+ /** Fetches and safely renders an inline HTML document. */
9
+ export declare class LyraHtmlViewer extends LyraElement<LyraHtmlViewerEventMap> {
10
+ static styles: import("lit").CSSResultGroup[];
11
+ /** URL to fetch and render as sanitized inline HTML. */
12
+ src: string;
13
+ /** Accessible name for the rendered HTML document. */
14
+ name: string;
15
+ /** CSS length that caps the scrollable body. */
16
+ maxHeight: string;
17
+ private fetchState;
18
+ private generation;
19
+ protected willUpdate(changed: PropertyValues): void;
20
+ private load;
21
+ private renderBody;
22
+ render(): TemplateResult;
23
+ }
24
+ declare global {
25
+ interface HTMLElementTagNameMap {
26
+ 'lyra-html-viewer': LyraHtmlViewer;
27
+ }
28
+ }
29
+ //# sourceMappingURL=html-viewer.class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/html-viewer/html-viewer.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAG9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAY7D,MAAM,WAAW,sBAAsB;IACrC,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACtD;AAED,0DAA0D;AAC1D,qBAAa,cAAe,SAAQ,WAAW,CAAC,sBAAsB,CAAC;IACrE,MAAM,CAAC,MAAM,iCAAwC;IAErD,wDAAwD;IAC5C,GAAG,SAAM;IACrB,sDAAsD;IAC1C,IAAI,SAAM;IACtB,gDAAgD;IACT,SAAS,SAAM;IAE7C,OAAO,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,UAAU,CAAK;IAEvB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAElD;YAEa,IAAI;IAoBlB,OAAO,CAAC,UAAU;IAUlB,MAAM,IAAI,cAAc,CAEvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,kBAAkB,EAAE,cAAc,CAAC;KAAE;CAAE"}
@@ -0,0 +1,88 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { html, nothing } from 'lit';
8
+ import { property, state } from 'lit/decorators.js';
9
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
10
+ import { LyraElement } from '../../internal/lyra-element.js';
11
+ import { safeFetchUrl } from '../../internal/safe-url.js';
12
+ import { srOnly } from '../../internal/a11y.js';
13
+ import { loadHtmlSanitizer } from './dompurify-loader.js';
14
+ import { styles } from './html-viewer.styles.js';
15
+ /** Fetches and safely renders an inline HTML document. */
16
+ export class LyraHtmlViewer extends LyraElement {
17
+ constructor() {
18
+ super(...arguments);
19
+ /** URL to fetch and render as sanitized inline HTML. */
20
+ this.src = '';
21
+ /** Accessible name for the rendered HTML document. */
22
+ this.name = '';
23
+ /** CSS length that caps the scrollable body. */
24
+ this.maxHeight = '';
25
+ this.fetchState = { kind: 'idle' };
26
+ this.generation = 0;
27
+ }
28
+ static { this.styles = [LyraElement.styles, styles, srOnly]; }
29
+ willUpdate(changed) {
30
+ if (!this.hasUpdated || changed.has('src'))
31
+ void this.load();
32
+ }
33
+ async load() {
34
+ const generation = ++this.generation;
35
+ if (!this.src) {
36
+ this.fetchState = { kind: 'idle' };
37
+ return;
38
+ }
39
+ const url = safeFetchUrl(this.src);
40
+ if (!url) {
41
+ this.fetchState = { kind: 'error', message: this.localize('documentPreviewUrlNotAllowed') };
42
+ return;
43
+ }
44
+ this.fetchState = { kind: 'loading' };
45
+ try {
46
+ const response = await fetch(url);
47
+ if (!response.ok)
48
+ throw new Error(`${response.status} ${response.statusText}`);
49
+ const sanitizer = await loadHtmlSanitizer();
50
+ if (!sanitizer)
51
+ throw new Error(this.localize('documentViewerMissingSanitizer'));
52
+ const markup = sanitizer.sanitize(await response.text());
53
+ if (generation === this.generation)
54
+ this.fetchState = { kind: 'loaded', markup };
55
+ }
56
+ catch (error) {
57
+ if (generation !== this.generation)
58
+ return;
59
+ this.fetchState = { kind: 'error', message: error instanceof Error ? error.message : this.localize('documentPreviewFailedToLoad') };
60
+ this.emit('lyra-render-error', { error });
61
+ }
62
+ }
63
+ renderBody() {
64
+ switch (this.fetchState.kind) {
65
+ case 'loaded': return html `<div part="html" role="document" aria-label=${this.name || this.localize('htmlViewerLabel')}>${unsafeHTML(this.fetchState.markup)}</div>`;
66
+ case 'loading': return html `<div part="spinner" role="status"><span class="sr-only">${this.localize('loadingDocument')}</span></div>`;
67
+ case 'error': return html `<div part="error" role="alert">${this.fetchState.message}</div>`;
68
+ case 'idle':
69
+ default: return html `<p class="empty-note">${this.localize('documentPreviewEmpty', undefined, { type: this.localize('documentPreviewTypeDocument') })}</p>`;
70
+ }
71
+ }
72
+ render() {
73
+ return html `<div part="base" style=${this.maxHeight ? `--lyra-html-viewer-max-height:${this.maxHeight}` : nothing}><div part="body">${this.renderBody()}</div></div>`;
74
+ }
75
+ }
76
+ __decorate([
77
+ property()
78
+ ], LyraHtmlViewer.prototype, "src", void 0);
79
+ __decorate([
80
+ property()
81
+ ], LyraHtmlViewer.prototype, "name", void 0);
82
+ __decorate([
83
+ property({ attribute: 'max-height' })
84
+ ], LyraHtmlViewer.prototype, "maxHeight", void 0);
85
+ __decorate([
86
+ state()
87
+ ], LyraHtmlViewer.prototype, "fetchState", void 0);
88
+ //# sourceMappingURL=html-viewer.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-viewer.class.js","sourceRoot":"","sources":["../../../src/components/html-viewer/html-viewer.class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './html-viewer.class.js';
2
+ //# sourceMappingURL=html-viewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-viewer.d.ts","sourceRoot":"","sources":["../../../src/components/html-viewer/html-viewer.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export * from './html-viewer.class.js';
2
+ import { LyraHtmlViewer } from './html-viewer.class.js';
3
+ import { defineElement } from '../../internal/prefix.js';
4
+ import { registerDocumentRenderer } from '../document-viewer/registry.js';
5
+ defineElement('html-viewer', LyraHtmlViewer);
6
+ registerDocumentRenderer('text/html', {
7
+ matches: (file) => /\.html?$/i.test(file.name),
8
+ render: (file) => {
9
+ const element = document.createElement('lyra-html-viewer');
10
+ element.src = file.src;
11
+ element.name = file.name;
12
+ return element;
13
+ },
14
+ });
15
+ //# sourceMappingURL=html-viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-viewer.js","sourceRoot":"","sources":["../../../src/components/html-viewer/html-viewer.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAqB,MAAM,gCAAgC,CAAC;AAE7F,aAAa,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAC7C,wBAAwB,CAAC,WAAW,EAAE;IACpC,OAAO,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAC5D,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACf,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACvB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=html-viewer.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-viewer.styles.d.ts","sourceRoot":"","sources":["../../../src/components/html-viewer/html-viewer.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAuBlB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host { display: block; min-inline-size: 0; max-inline-size: 100%; --lyra-html-viewer-max-height: none; }
4
+ [part='base'] {
5
+ display: flex;
6
+ flex-direction: column;
7
+ box-sizing: border-box;
8
+ border: var(--lyra-border-width-thin) solid var(--lyra-color-border);
9
+ border-radius: var(--lyra-radius);
10
+ background: var(--lyra-color-surface);
11
+ overflow: hidden;
12
+ }
13
+ [part='body'] {
14
+ min-block-size: var(--lyra-size-10rem);
15
+ max-block-size: var(--lyra-html-viewer-max-height);
16
+ box-sizing: border-box;
17
+ overflow: auto;
18
+ padding: var(--lyra-space-m);
19
+ }
20
+ [part='html'] { display: block; max-inline-size: 100%; overflow-wrap: anywhere; }
21
+ [part='html'] img, [part='html'] video { max-inline-size: 100%; block-size: auto; }
22
+ .empty-note, [part='error'] { margin: 0; color: var(--lyra-color-text-quiet); font-size: var(--lyra-font-size-md-sm); text-align: center; }
23
+ [part='error'] { color: var(--lyra-color-danger); }
24
+ [part='spinner'] { display: flex; justify-content: center; }
25
+ `;
26
+ //# sourceMappingURL=html-viewer.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html-viewer.styles.js","sourceRoot":"","sources":["../../../src/components/html-viewer/html-viewer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;CAuBxB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { OptionalPeerApi } from '../../internal/optional-peer-types.js';
2
+ /** Opaque pdfjs-dist surface kept optional for core-package consumers. */
3
+ export type PdfJsApi = OptionalPeerApi;
4
+ export declare function loadPdfJsDeps(importPdfjs?: () => Promise<PdfJsApi>): Promise<PdfJsApi | null>;
5
+ export declare function loadPdfJs(): Promise<PdfJsApi | null>;
6
+ //# sourceMappingURL=pdf-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-loader.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-viewer/pdf-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE7E,0EAA0E;AAC1E,MAAM,MAAM,QAAQ,GAAG,eAAe,CAAC;AAIvC,wBAAsB,aAAa,CACjC,WAAW,GAAE,MAAM,OAAO,CAAC,QAAQ,CAAmD,GACrF,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAY1B;AAED,wBAAgB,SAAS,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAGpD"}
@@ -0,0 +1,22 @@
1
+ let pdfjs;
2
+ export async function loadPdfJsDeps(importPdfjs = () => import('pdfjs-dist')) {
3
+ try {
4
+ const pdfjsLib = await importPdfjs();
5
+ pdfjsLib.GlobalWorkerOptions.workerSrc = new URL('pdfjs-dist/build/pdf.worker.min.mjs', import.meta.url).toString();
6
+ return pdfjsLib;
7
+ }
8
+ catch (error) {
9
+ console.warn('<lyra-pdf-viewer> needs the optional peer dependency `pdfjs-dist` to render PDF documents — install it with `pnpm add pdfjs-dist`:', error);
10
+ return null;
11
+ }
12
+ }
13
+ export function loadPdfJs() {
14
+ if (!pdfjs)
15
+ pdfjs = loadPdfJsDeps();
16
+ return pdfjs;
17
+ }
18
+ /** @internal Test-only cache reset. */
19
+ export function clearPdfJsCache() {
20
+ pdfjs = undefined;
21
+ }
22
+ //# sourceMappingURL=pdf-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-loader.js","sourceRoot":"","sources":["../../../src/components/pdf-viewer/pdf-loader.ts"],"names":[],"mappings":"AAKA,IAAI,KAA2C,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAW,GAA4B,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAsB;IAEtF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,WAAW,EAAE,CAAC;QACrC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,qCAAqC,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;QACpH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,oIAAoI,EACpI,KAAK,CACN,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,CAAC,KAAK;QAAE,KAAK,GAAG,aAAa,EAAE,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,uCAAuC;AACvC,MAAM,UAAU,eAAe;IAC7B,KAAK,GAAG,SAAS,CAAC;AACpB,CAAC"}
@@ -0,0 +1,80 @@
1
+ import { type PropertyValues, type TemplateResult } from 'lit';
2
+ import { LyraElement } from '../../internal/lyra-element.js';
3
+ import '../virtual-list/virtual-list.js';
4
+ export interface LyraPdfViewerEventMap {
5
+ 'lyra-render-error': CustomEvent<{
6
+ error: unknown;
7
+ }>;
8
+ 'lyra-page-change': CustomEvent<{
9
+ page: number;
10
+ pageCount: number;
11
+ }>;
12
+ 'lyra-zoom-change': CustomEvent<{
13
+ zoom: number;
14
+ }>;
15
+ }
16
+ /**
17
+ * Fetches PDF bytes and renders their pages with the optional `pdfjs-dist`
18
+ * peer. Pages are composed through `lyra-virtual-list`, while a PDF.js text
19
+ * layer keeps rendered text selectable and copyable.
20
+ *
21
+ * @customElement lyra-pdf-viewer
22
+ * @event lyra-render-error - Fired when fetching, parsing, or rendering fails.
23
+ * @event lyra-page-change - Fired when the current page changes.
24
+ * @event lyra-zoom-change - Fired when the zoom multiplier changes.
25
+ * @csspart base - The root viewer container.
26
+ * @csspart toolbar - Pagination and zoom controls.
27
+ * @csspart page-indicator - The current page text.
28
+ * @csspart zoom-indicator - The current zoom percentage.
29
+ * @csspart pages - The virtualized page list.
30
+ * @csspart page - One rendered page wrapper.
31
+ * @csspart text-layer - Selectable text positioned over a page canvas.
32
+ * @csspart error - The error message region.
33
+ * @csspart spinner - The loading status region.
34
+ */
35
+ export declare class LyraPdfViewer extends LyraElement<LyraPdfViewerEventMap> {
36
+ static styles: import("lit").CSSResultGroup[];
37
+ /** URL to fetch and render as a PDF document. */
38
+ src: string;
39
+ /** Display name used as the document's accessible label fallback. */
40
+ name: string;
41
+ /** One-based current page, clamped to the loaded document's page count. */
42
+ page: number;
43
+ /** Page zoom multiplier, clamped to the range 0.25–4. */
44
+ zoom: number;
45
+ private loadState;
46
+ private loadLibrary;
47
+ private generation;
48
+ private readonly pageCanvases;
49
+ private readonly pageRenderTasks;
50
+ private readonly pageCanvasRefs;
51
+ private readonly textLayerContainers;
52
+ private readonly textLayerContainerRefs;
53
+ private readonly textLayers;
54
+ protected willUpdate(changed: PropertyValues): void;
55
+ protected updated(changed: PropertyValues): void;
56
+ disconnectedCallback(): void;
57
+ private clampPage;
58
+ private load;
59
+ nextPage(): void;
60
+ previousPage(): void;
61
+ zoomIn(): void;
62
+ zoomOut(): void;
63
+ private setPage;
64
+ private setZoom;
65
+ private renderToolbar;
66
+ private renderPage;
67
+ private renderTextLayer;
68
+ private pageCanvasRef;
69
+ private textLayerContainerRef;
70
+ private renderPageItem;
71
+ private onVisibleRangeChanged;
72
+ private renderBody;
73
+ render(): TemplateResult;
74
+ }
75
+ declare global {
76
+ interface HTMLElementTagNameMap {
77
+ 'lyra-pdf-viewer': LyraPdfViewer;
78
+ }
79
+ }
80
+ //# sourceMappingURL=pdf-viewer.class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/pdf-viewer/pdf-viewer.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAG7D,OAAO,iCAAiC,CAAC;AAmBzC,MAAM,WAAW,qBAAqB;IACpC,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACrD,kBAAkB,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,kBAAkB,EAAE,WAAW,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACnD;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,aAAc,SAAQ,WAAW,CAAC,qBAAqB,CAAC;IACnE,MAAM,CAAC,MAAM,iCAAwC;IAErD,iDAAiD;IACrC,GAAG,SAAM;IACrB,qEAAqE;IACzD,IAAI,SAAM;IACtB,2EAA2E;IAChC,IAAI,SAAK;IACpD,yDAAyD;IACd,IAAI,SAAK;IAE3C,OAAO,CAAC,SAAS,CAAkC;IAC5D,OAAO,CAAC,WAAW,CAA6C;IAChE,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwC;IACrE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAyC;IACzE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4D;IAC3F,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;IACtE,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAA6D;IACpG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyC;IAEpE,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAOlD;IAED,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAM/C;IAED,oBAAoB,IAAI,IAAI,CAQ3B;IAED,OAAO,CAAC,SAAS;YAMH,IAAI;IAiClB,QAAQ,IAAI,IAAI,CAAiC;IACjD,YAAY,IAAI,IAAI,CAAiC;IACrD,MAAM,IAAI,IAAI,CAAyC;IACvD,OAAO,IAAI,IAAI,CAAyC;IAExD,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,aAAa;YAaP,UAAU;YAmCV,eAAe;IAe7B,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,qBAAqB;IAiB7B,OAAO,CAAC,cAAc,CAGpB;IAEF,OAAO,CAAC,qBAAqB,CAE3B;IAEF,OAAO,CAAC,UAAU;IAYlB,MAAM,IAAI,cAAc,CAEvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,iBAAiB,EAAE,aAAa,CAAC;KAAE;CAAE"}