@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,93 @@
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 { LyraElement } from '../../internal/lyra-element.js';
10
+ import { safeFetchUrl } from '../../internal/safe-url.js';
11
+ import { srOnly } from '../../internal/a11y.js';
12
+ import { loadPapaParse } from './dataset-loader.js';
13
+ import { styles } from './dataset-viewer.styles.js';
14
+ /** Fetches delimited text and renders a typed, accessible data table. */
15
+ export class LyraDatasetViewer extends LyraElement {
16
+ constructor() {
17
+ super(...arguments);
18
+ /** URL to fetch and parse as delimited text. */
19
+ this.src = '';
20
+ /** Display name used for the table caption. */
21
+ this.name = '';
22
+ /** CSS length that caps the scrollable body. */
23
+ this.maxHeight = '';
24
+ this.fetchState = { kind: 'idle' };
25
+ this.generation = 0;
26
+ }
27
+ static { this.styles = [LyraElement.styles, styles, srOnly]; }
28
+ willUpdate(changed) { if (!this.hasUpdated || changed.has('src'))
29
+ void this.load(); }
30
+ async load() {
31
+ const generation = ++this.generation;
32
+ if (!this.src) {
33
+ this.fetchState = { kind: 'idle' };
34
+ return;
35
+ }
36
+ const url = safeFetchUrl(this.src);
37
+ if (!url) {
38
+ this.fetchState = { kind: 'error', message: this.localize('documentPreviewUrlNotAllowed') };
39
+ return;
40
+ }
41
+ this.fetchState = { kind: 'loading' };
42
+ try {
43
+ const response = await fetch(url);
44
+ if (!response.ok)
45
+ throw new Error(`${response.status} ${response.statusText}`);
46
+ const table = await this.parse(await response.text());
47
+ if (generation === this.generation)
48
+ this.fetchState = { kind: 'loaded', table };
49
+ }
50
+ catch (error) {
51
+ if (generation !== this.generation)
52
+ return;
53
+ this.fetchState = { kind: 'error', message: error instanceof Error ? error.message : this.localize('documentPreviewFailedToLoad') };
54
+ this.emit('lyra-render-error', { error });
55
+ }
56
+ }
57
+ async parse(text) {
58
+ const papa = await loadPapaParse();
59
+ if (!papa)
60
+ throw new Error(this.localize('datasetViewerMissingParser'));
61
+ const result = papa.parse(text, { delimiter: '', header: true, skipEmptyLines: true });
62
+ const fields = result.meta.fields ?? [];
63
+ if (!fields.length || !result.data.length)
64
+ throw new Error(this.localize('datasetViewerEmpty'));
65
+ return { fields, rows: result.data };
66
+ }
67
+ renderBody() {
68
+ switch (this.fetchState.kind) {
69
+ case 'loaded': {
70
+ const { fields, rows } = this.fetchState.table;
71
+ return html `<table part="table"><caption class="sr-only">${this.localize('datasetViewerCaption', undefined, { count: rows.length })}</caption><thead><tr>${fields.map((field) => html `<th scope="col">${field}</th>`)}</tr></thead><tbody>${rows.map((row) => html `<tr>${fields.map((field) => html `<td>${row[field] ?? ''}</td>`)}</tr>`)}</tbody></table>`;
72
+ }
73
+ case 'loading': return html `<div part="spinner" role="status"><span class="sr-only">${this.localize('loadingDocument')}</span></div>`;
74
+ case 'error': return html `<div part="error" role="alert">${this.fetchState.message}</div>`;
75
+ case 'idle':
76
+ default: return html `<p class="empty-note">${this.localize('documentPreviewEmpty', undefined, { type: this.localize('documentPreviewTypeDataset') })}</p>`;
77
+ }
78
+ }
79
+ render() { return html `<div part="base" style=${this.maxHeight ? `--lyra-dataset-viewer-max-height:${this.maxHeight}` : nothing}><div part="body">${this.renderBody()}</div></div>`; }
80
+ }
81
+ __decorate([
82
+ property()
83
+ ], LyraDatasetViewer.prototype, "src", void 0);
84
+ __decorate([
85
+ property()
86
+ ], LyraDatasetViewer.prototype, "name", void 0);
87
+ __decorate([
88
+ property({ attribute: 'max-height' })
89
+ ], LyraDatasetViewer.prototype, "maxHeight", void 0);
90
+ __decorate([
91
+ state()
92
+ ], LyraDatasetViewer.prototype, "fetchState", void 0);
93
+ //# sourceMappingURL=dataset-viewer.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-viewer.class.js","sourceRoot":"","sources":["../../../src/components/dataset-viewer/dataset-viewer.class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export * from './dataset-viewer.class.js';
2
+ export * from './dataset-loader.js';
3
+ //# sourceMappingURL=dataset-viewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-viewer.d.ts","sourceRoot":"","sources":["../../../src/components/dataset-viewer/dataset-viewer.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,13 @@
1
+ export * from './dataset-viewer.class.js';
2
+ export * from './dataset-loader.js';
3
+ import { LyraDatasetViewer } from './dataset-viewer.class.js';
4
+ import { defineElement } from '../../internal/prefix.js';
5
+ import { registerDocumentRenderer } from '../document-viewer/registry.js';
6
+ defineElement('dataset-viewer', LyraDatasetViewer);
7
+ registerDocumentRenderer('lyra:dataset', { matches: (file) => /\.(tsv|psv|dat)$/i.test(file.name), render: (file) => {
8
+ const element = document.createElement('lyra-dataset-viewer');
9
+ element.src = file.src;
10
+ element.name = file.name;
11
+ return element;
12
+ } });
13
+ //# sourceMappingURL=dataset-viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-viewer.js","sourceRoot":"","sources":["../../../src/components/dataset-viewer/dataset-viewer.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC;AAC1C,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAqB,MAAM,gCAAgC,CAAC;AAE7F,aAAa,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;AACnD,wBAAwB,CAAC,cAAc,EAAE,EAAE,OAAO,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QAChI,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;QACvB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=dataset-viewer.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-viewer.styles.d.ts","sourceRoot":"","sources":["../../../src/components/dataset-viewer/dataset-viewer.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAUlB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host { display: block; --lyra-dataset-viewer-max-height: none; }
4
+ [part='base'] { display: flex; flex-direction: column; box-sizing: border-box; border: var(--lyra-border-width-thin) solid var(--lyra-color-border); border-radius: var(--lyra-radius); background: var(--lyra-color-surface); overflow: hidden; }
5
+ [part='body'] { box-sizing: border-box; overflow: auto; max-block-size: var(--lyra-dataset-viewer-max-height); }
6
+ [part='table'] { inline-size: 100%; border-collapse: collapse; font-size: var(--lyra-font-size-sm); }
7
+ [part='table'] th, [part='table'] td { padding: var(--lyra-space-xs) var(--lyra-space-s); border-block-end: var(--lyra-border-width-thin) solid var(--lyra-color-border); text-align: start; white-space: nowrap; }
8
+ [part='table'] th { position: sticky; inset-block-start: 0; background: var(--lyra-color-brand-quiet); color: var(--lyra-color-text); font-weight: var(--lyra-font-weight-semibold); }
9
+ .empty-note, [part='error'] { margin: 0; padding: var(--lyra-space-m); color: var(--lyra-color-text-quiet); font-size: var(--lyra-font-size-md-sm); }
10
+ [part='error'] { padding: var(--lyra-space-l); color: var(--lyra-color-danger); text-align: center; }
11
+ [part='spinner'] { display: flex; justify-content: center; padding: var(--lyra-space-l); }
12
+ `;
13
+ //# sourceMappingURL=dataset-viewer.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataset-viewer.styles.js","sourceRoot":"","sources":["../../../src/components/dataset-viewer/dataset-viewer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;CAUxB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import { type PropertyValues, type TemplateResult } from 'lit';
2
+ import { LyraElement } from '../../internal/lyra-element.js';
3
+ import type { DialogCloseReason } from '../dialog/dialog.class.js';
4
+ import { type DocumentRendererRegistry } from './registry.js';
5
+ export type DocumentViewerCloseReason = DialogCloseReason;
6
+ export interface LyraDocumentViewerEventMap {
7
+ 'lyra-close': CustomEvent<DocumentViewerCloseReason>;
8
+ }
9
+ /**
10
+ * A dialog-hosted document viewer with a pluggable MIME-type renderer registry.
11
+ * A registered renderer receives the current file; files without a matching
12
+ * renderer use `<lyra-document-preview>` as a safe built-in fallback.
13
+ *
14
+ * @customElement lyra-document-viewer
15
+ * @event lyra-close - Fired when the nested dialog dismisses the viewer. The
16
+ * detail is the dialog close reason.
17
+ * @csspart body - Wrapper around the active renderer or fallback preview.
18
+ */
19
+ export declare class LyraDocumentViewer extends LyraElement<LyraDocumentViewerEventMap> {
20
+ static styles: import("lit").CSSResultGroup[];
21
+ /** Whether the viewer is open. */
22
+ open: boolean;
23
+ /** Display name passed to the renderer and shown as the dialog heading. */
24
+ name: string;
25
+ /** MIME type used for renderer dispatch. */
26
+ mimeType: string;
27
+ /** Source URL passed to the renderer or fallback preview. */
28
+ src: string;
29
+ /** Optional per-instance registry; the default registry is used when unset. */
30
+ registry?: DocumentRendererRegistry;
31
+ private renderState;
32
+ private generation;
33
+ private resolvedLazy?;
34
+ protected willUpdate(changed: PropertyValues): void;
35
+ private currentFile;
36
+ private resolve;
37
+ private renderWith;
38
+ private onDialogClose;
39
+ private renderBody;
40
+ render(): TemplateResult;
41
+ }
42
+ declare global {
43
+ interface HTMLElementTagNameMap {
44
+ 'lyra-document-viewer': LyraDocumentViewer;
45
+ }
46
+ }
47
+ //# sourceMappingURL=document-viewer.class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/document-viewer/document-viewer.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAML,KAAK,wBAAwB,EAC9B,MAAM,eAAe,CAAC;AAGvB,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,CAAC;AAE1D,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,WAAW,CAAC,yBAAyB,CAAC,CAAC;CACtD;AAED;;;;;;;;;GASG;AACH,qBAAa,kBAAmB,SAAQ,WAAW,CAAC,0BAA0B,CAAC;IAC7E,MAAM,CAAC,MAAM,iCAAgC;IAE7C,kCAAkC;IACU,IAAI,UAAS;IAEzD,2EAA2E;IAC/D,IAAI,SAAM;IAEtB,4CAA4C;IACN,QAAQ,SAAM;IAEpD,6DAA6D;IACjD,GAAG,SAAM;IAErB,+EAA+E;IAC/C,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IAGpE,OAAO,CAAC,WAAW,CAI0B;IAE7C,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAC,CAA4E;IAEjG,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAIlD;IAED,OAAO,CAAC,WAAW;YAIL,OAAO;IAoCrB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,aAAa,CAGnB;IAEF,OAAO,CAAC,UAAU;IAoBlB,MAAM,IAAI,cAAc,CAYvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,sBAAsB,EAAE,kBAAkB,CAAC;KAC5C;CACF"}
@@ -0,0 +1,141 @@
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 { LyraElement } from '../../internal/lyra-element.js';
10
+ import { findDocumentRenderer, getDefaultDocumentRendererRegistry, loadDocumentRenderer, } from './registry.js';
11
+ import { styles } from './document-viewer.styles.js';
12
+ /**
13
+ * A dialog-hosted document viewer with a pluggable MIME-type renderer registry.
14
+ * A registered renderer receives the current file; files without a matching
15
+ * renderer use `<lyra-document-preview>` as a safe built-in fallback.
16
+ *
17
+ * @customElement lyra-document-viewer
18
+ * @event lyra-close - Fired when the nested dialog dismisses the viewer. The
19
+ * detail is the dialog close reason.
20
+ * @csspart body - Wrapper around the active renderer or fallback preview.
21
+ */
22
+ export class LyraDocumentViewer extends LyraElement {
23
+ constructor() {
24
+ super(...arguments);
25
+ /** Whether the viewer is open. */
26
+ this.open = false;
27
+ /** Display name passed to the renderer and shown as the dialog heading. */
28
+ this.name = '';
29
+ /** MIME type used for renderer dispatch. */
30
+ this.mimeType = '';
31
+ /** Source URL passed to the renderer or fallback preview. */
32
+ this.src = '';
33
+ this.renderState = { kind: 'fallback' };
34
+ this.generation = 0;
35
+ this.onDialogClose = (event) => {
36
+ this.open = false;
37
+ this.emit('lyra-close', event.detail);
38
+ };
39
+ }
40
+ static { this.styles = [LyraElement.styles, styles]; }
41
+ willUpdate(changed) {
42
+ if (!this.hasUpdated || changed.has('name') || changed.has('mimeType') || changed.has('src') || changed.has('registry')) {
43
+ void this.resolve();
44
+ }
45
+ }
46
+ currentFile() {
47
+ return { name: this.name, mimeType: this.mimeType, src: this.src };
48
+ }
49
+ async resolve() {
50
+ const generation = ++this.generation;
51
+ const file = this.currentFile();
52
+ const registry = this.registry ?? getDefaultDocumentRendererRegistry();
53
+ const def = findDocumentRenderer(file, registry);
54
+ if (!def) {
55
+ this.resolvedLazy = undefined;
56
+ this.renderState = { kind: 'fallback' };
57
+ return;
58
+ }
59
+ if (this.resolvedLazy?.def === def) {
60
+ this.renderWith(this.resolvedLazy.resolved, file);
61
+ return;
62
+ }
63
+ if (!def.load) {
64
+ this.resolvedLazy = { def, resolved: def };
65
+ this.renderWith(def, file);
66
+ return;
67
+ }
68
+ this.renderState = { kind: 'loading' };
69
+ let resolved;
70
+ try {
71
+ resolved = await loadDocumentRenderer(def);
72
+ }
73
+ catch {
74
+ if (generation === this.generation)
75
+ this.renderState = { kind: 'error' };
76
+ return;
77
+ }
78
+ if (generation !== this.generation)
79
+ return;
80
+ this.resolvedLazy = { def, resolved };
81
+ this.renderWith(resolved, file);
82
+ }
83
+ renderWith(def, file) {
84
+ if (!def.render) {
85
+ this.renderState = { kind: 'error' };
86
+ return;
87
+ }
88
+ this.renderState = { kind: 'rendered', template: def.render(file) };
89
+ }
90
+ renderBody() {
91
+ switch (this.renderState.kind) {
92
+ case 'rendered':
93
+ return this.renderState.template;
94
+ case 'loading':
95
+ return html `<p>${this.localize('loadingDocument')}</p>`;
96
+ case 'error':
97
+ return html `<div role="alert">${this.localize('documentPreviewGenericError')}</div>`;
98
+ case 'fallback':
99
+ default:
100
+ return html `
101
+ <lyra-document-preview
102
+ src=${this.src}
103
+ mime-type=${this.mimeType}
104
+ filename=${this.name}
105
+ ></lyra-document-preview>
106
+ `;
107
+ }
108
+ }
109
+ render() {
110
+ return html `
111
+ <lyra-dialog
112
+ ?open=${this.open}
113
+ heading=${this.name || nothing}
114
+ label=${this.localize('documentViewerLabel')}
115
+ closable
116
+ @lyra-dialog-close=${this.onDialogClose}
117
+ >
118
+ <div part="body">${this.renderBody()}</div>
119
+ </lyra-dialog>
120
+ `;
121
+ }
122
+ }
123
+ __decorate([
124
+ property({ type: Boolean, reflect: true })
125
+ ], LyraDocumentViewer.prototype, "open", void 0);
126
+ __decorate([
127
+ property()
128
+ ], LyraDocumentViewer.prototype, "name", void 0);
129
+ __decorate([
130
+ property({ attribute: 'mime-type' })
131
+ ], LyraDocumentViewer.prototype, "mimeType", void 0);
132
+ __decorate([
133
+ property()
134
+ ], LyraDocumentViewer.prototype, "src", void 0);
135
+ __decorate([
136
+ property({ attribute: false })
137
+ ], LyraDocumentViewer.prototype, "registry", void 0);
138
+ __decorate([
139
+ state()
140
+ ], LyraDocumentViewer.prototype, "renderState", void 0);
141
+ //# sourceMappingURL=document-viewer.class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-viewer.class.js","sourceRoot":"","sources":["../../../src/components/document-viewer/document-viewer.class.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export * from './document-viewer.class.js';
2
+ export * from './registry.js';
3
+ import '../dialog/dialog.js';
4
+ import '../document-preview/document-preview.js';
5
+ //# sourceMappingURL=document-viewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-viewer.d.ts","sourceRoot":"","sources":["../../../src/components/document-viewer/document-viewer.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAG9B,OAAO,qBAAqB,CAAC;AAC7B,OAAO,yCAAyC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export * from './document-viewer.class.js';
2
+ export * from './registry.js';
3
+ import { LyraDocumentViewer } from './document-viewer.class.js';
4
+ import { defineElement } from '../../internal/prefix.js';
5
+ import '../dialog/dialog.js';
6
+ import '../document-preview/document-preview.js';
7
+ defineElement('document-viewer', LyraDocumentViewer);
8
+ //# sourceMappingURL=document-viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-viewer.js","sourceRoot":"","sources":["../../../src/components/document-viewer/document-viewer.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,qBAAqB,CAAC;AAC7B,OAAO,yCAAyC,CAAC;AAEjD,aAAa,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const styles: import("lit").CSSResult;
2
+ //# sourceMappingURL=document-viewer.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-viewer.styles.d.ts","sourceRoot":"","sources":["../../../src/components/document-viewer/document-viewer.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAqBlB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { css } from 'lit';
2
+ export const styles = css `
3
+ :host {
4
+ display: contents;
5
+ --lyra-document-viewer-max-height: 70vh;
6
+ }
7
+
8
+ [part='body'] {
9
+ display: flex;
10
+ flex-direction: column;
11
+ min-block-size: var(--lyra-size-12rem);
12
+ max-block-size: var(--lyra-document-viewer-max-height);
13
+ overflow: auto;
14
+ padding-inline: var(--lyra-space-l);
15
+ padding-block: var(--lyra-space-l);
16
+ min-inline-size: 0;
17
+ }
18
+
19
+ [part='body'] img {
20
+ max-inline-size: 100%;
21
+ block-size: auto;
22
+ }
23
+ `;
24
+ //# sourceMappingURL=document-viewer.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-viewer.styles.js","sourceRoot":"","sources":["../../../src/components/document-viewer/document-viewer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;CAqBxB,CAAC"}
@@ -0,0 +1,30 @@
1
+ /** A file supplied to a document renderer. */
2
+ export interface DocumentFile {
3
+ name: string;
4
+ mimeType: string;
5
+ src: string;
6
+ }
7
+ /** A renderer for one document format or a family of related formats. */
8
+ export interface DocumentRendererDefinition {
9
+ /** Renders the file as Lit-compatible content, a DOM node, or plain text. */
10
+ render?: (file: DocumentFile) => unknown;
11
+ /** Matches files that do not have an exact MIME-type registration. */
12
+ matches?: (file: DocumentFile) => boolean;
13
+ /** Lazily loads the renderer definition when a matching file is opened. */
14
+ load?: () => Promise<DocumentRendererDefinition | {
15
+ default: DocumentRendererDefinition;
16
+ }>;
17
+ }
18
+ /** MIME-type to renderer-definition registry. */
19
+ export type DocumentRendererRegistry = Map<string, DocumentRendererDefinition>;
20
+ /** Registers or replaces a renderer in the module-level default registry. */
21
+ export declare function registerDocumentRenderer(key: string, def: DocumentRendererDefinition): void;
22
+ /** Returns the module-level registry used by default by `<lyra-document-viewer>`. */
23
+ export declare function getDefaultDocumentRendererRegistry(): DocumentRendererRegistry;
24
+ /** Finds an exact MIME-type renderer, then the first matching shape-based renderer. */
25
+ export declare function findDocumentRenderer(file: DocumentFile, registry?: DocumentRendererRegistry): DocumentRendererDefinition | undefined;
26
+ /** Resolves and identity-caches a lazy renderer. Rejected loads are retried. */
27
+ export declare function loadDocumentRenderer(def: DocumentRendererDefinition): Promise<DocumentRendererDefinition>;
28
+ /** Clears the default registry and lazy-load cache for isolated tests. */
29
+ export declare function clearDocumentRenderers(): void;
30
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/components/document-viewer/registry.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,yEAAyE;AACzE,MAAM,WAAW,0BAA0B;IACzC,6EAA6E;IAC7E,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC;IACzC,sEAAsE;IACtE,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,OAAO,CAAC;IAC1C,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,OAAO,CAAC,0BAA0B,GAAG;QAAE,OAAO,EAAE,0BAA0B,CAAA;KAAE,CAAC,CAAC;CAC5F;AAED,iDAAiD;AACjD,MAAM,MAAM,wBAAwB,GAAG,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;AAK/E,6EAA6E;AAC7E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,0BAA0B,GAAG,IAAI,CAE3F;AAED,qFAAqF;AACrF,wBAAgB,kCAAkC,IAAI,wBAAwB,CAE7E;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,YAAY,EAClB,QAAQ,GAAE,wBAA0C,GACnD,0BAA0B,GAAG,SAAS,CAOxC;AAQD,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CASzG;AAED,0EAA0E;AAC1E,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C"}
@@ -0,0 +1,42 @@
1
+ const defaultRegistry = new Map();
2
+ let loadCache = new WeakMap();
3
+ /** Registers or replaces a renderer in the module-level default registry. */
4
+ export function registerDocumentRenderer(key, def) {
5
+ defaultRegistry.set(key, def);
6
+ }
7
+ /** Returns the module-level registry used by default by `<lyra-document-viewer>`. */
8
+ export function getDefaultDocumentRendererRegistry() {
9
+ return defaultRegistry;
10
+ }
11
+ /** Finds an exact MIME-type renderer, then the first matching shape-based renderer. */
12
+ export function findDocumentRenderer(file, registry = defaultRegistry) {
13
+ const exact = registry.get(file.mimeType);
14
+ if (exact)
15
+ return exact;
16
+ for (const def of registry.values()) {
17
+ if (def.matches?.(file))
18
+ return def;
19
+ }
20
+ return undefined;
21
+ }
22
+ function isModuleWrapper(value) {
23
+ return 'default' in value && typeof value.default === 'object' && value.default !== null;
24
+ }
25
+ /** Resolves and identity-caches a lazy renderer. Rejected loads are retried. */
26
+ export function loadDocumentRenderer(def) {
27
+ if (!def.load)
28
+ return Promise.resolve(def);
29
+ const cached = loadCache.get(def);
30
+ if (cached)
31
+ return cached;
32
+ const promise = def.load().then((value) => (isModuleWrapper(value) ? value.default : value));
33
+ loadCache.set(def, promise);
34
+ promise.catch(() => loadCache.delete(def));
35
+ return promise;
36
+ }
37
+ /** Clears the default registry and lazy-load cache for isolated tests. */
38
+ export function clearDocumentRenderers() {
39
+ defaultRegistry.clear();
40
+ loadCache = new WeakMap();
41
+ }
42
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/components/document-viewer/registry.ts"],"names":[],"mappings":"AAoBA,MAAM,eAAe,GAA6B,IAAI,GAAG,EAAE,CAAC;AAC5D,IAAI,SAAS,GAAG,IAAI,OAAO,EAAmE,CAAC;AAE/F,6EAA6E;AAC7E,MAAM,UAAU,wBAAwB,CAAC,GAAW,EAAE,GAA+B;IACnF,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,kCAAkC;IAChD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,oBAAoB,CAClC,IAAkB,EAClB,QAAQ,GAA6B,eAAe;IAEpD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACpC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC;YAAE,OAAO,GAAG,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,eAAe,CACtB,KAA2E;IAE3E,OAAO,SAAS,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,CAAC;AAC3F,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,oBAAoB,CAAC,GAA+B;IAClE,IAAI,CAAC,GAAG,CAAC,IAAI;QAAE,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7F,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,sBAAsB;IACpC,eAAe,CAAC,KAAK,EAAE,CAAC;IACxB,SAAS,GAAG,IAAI,OAAO,EAAE,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { OptionalPeerApi } from '../../internal/optional-peer-types.js';
2
+ export type MammothApi = OptionalPeerApi;
3
+ export interface DocxDeps {
4
+ mammoth: MammothApi | undefined;
5
+ DOMPurify: OptionalPeerApi | undefined;
6
+ }
7
+ export declare function loadMammothAndSanitizer(importMammoth?: () => Promise<OptionalPeerApi>, importDompurify?: () => Promise<OptionalPeerApi>): Promise<DocxDeps>;
8
+ export declare function loadDocxDeps(): Promise<DocxDeps>;
9
+ export declare function getDocxDepsIfLoaded(): DocxDeps | undefined;
10
+ export declare function clearDocxDepsCache(): void;
11
+ //# sourceMappingURL=docx-loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx-loader.d.ts","sourceRoot":"","sources":["../../../src/components/docx-viewer/docx-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAE7E,MAAM,MAAM,UAAU,GAAG,eAAe,CAAC;AAEzC,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;CACxC;AASD,wBAAsB,uBAAuB,CAC3C,aAAa,GAAE,MAAM,OAAO,CAAC,eAAe,CACsB,EAClE,eAAe,GAAE,MAAM,OAAO,CAAC,eAAe,CACG,GAChD,OAAO,CAAC,QAAQ,CAAC,CAsBnB;AAED,wBAAgB,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAQhD;AAED,wBAAgB,mBAAmB,IAAI,QAAQ,GAAG,SAAS,CAE1D;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC"}
@@ -0,0 +1,39 @@
1
+ let depsPromise;
2
+ let resolvedDeps;
3
+ function unwrapDefault(value) {
4
+ return value.default ?? value;
5
+ }
6
+ export async function loadMammothAndSanitizer(importMammoth = () => import('mammoth/mammoth.browser.js'), importDompurify = () => import('dompurify')) {
7
+ let mammoth;
8
+ try {
9
+ mammoth = unwrapDefault(await importMammoth());
10
+ }
11
+ catch (error) {
12
+ console.warn('<lyra-docx-viewer> needs the optional peer dependency `mammoth` to convert DOCX documents — install it with `pnpm add mammoth`:', error);
13
+ }
14
+ let DOMPurify;
15
+ try {
16
+ DOMPurify = unwrapDefault(await importDompurify());
17
+ }
18
+ catch (error) {
19
+ console.warn('<lyra-docx-viewer> needs the optional peer dependency `dompurify` to sanitize converted HTML — install it with `pnpm add dompurify`:', error);
20
+ }
21
+ return { mammoth, DOMPurify };
22
+ }
23
+ export function loadDocxDeps() {
24
+ if (!depsPromise) {
25
+ depsPromise = loadMammothAndSanitizer().then((resolved) => {
26
+ resolvedDeps = resolved;
27
+ return resolved;
28
+ });
29
+ }
30
+ return depsPromise;
31
+ }
32
+ export function getDocxDepsIfLoaded() {
33
+ return resolvedDeps;
34
+ }
35
+ export function clearDocxDepsCache() {
36
+ depsPromise = undefined;
37
+ resolvedDeps = undefined;
38
+ }
39
+ //# sourceMappingURL=docx-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx-loader.js","sourceRoot":"","sources":["../../../src/components/docx-viewer/docx-loader.ts"],"names":[],"mappings":"AASA,IAAI,WAA0C,CAAC;AAC/C,IAAI,YAAkC,CAAC;AAEvC,SAAS,aAAa,CAAC,KAAsB;IAC3C,OAAO,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAa,GAAmC,GAAG,EAAE,CACnD,MAAM,CAAC,4BAA4B,CAA6B,EAClE,eAAe,GAAmC,GAAG,EAAE,CACrD,MAAM,CAAC,WAAW,CAA6B;IAEjD,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,aAAa,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,iIAAiI,EACjI,KAAK,CACN,CAAC;IACJ,CAAC;IAED,IAAI,SAAsC,CAAC;IAC3C,IAAI,CAAC;QACH,SAAS,GAAG,aAAa,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CACV,sIAAsI,EACtI,KAAK,CACN,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,WAAW,GAAG,uBAAuB,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YACxD,YAAY,GAAG,QAAQ,CAAC;YACxB,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,WAAW,GAAG,SAAS,CAAC;IACxB,YAAY,GAAG,SAAS,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { type PropertyValues, type TemplateResult } from 'lit';
2
+ import { LyraElement } from '../../internal/lyra-element.js';
3
+ export interface LyraDocxViewerEventMap {
4
+ 'lyra-render-error': CustomEvent<{
5
+ error: unknown;
6
+ }>;
7
+ }
8
+ /**
9
+ * Renders a DOCX document as sanitized semantic HTML using the optional
10
+ * `mammoth` converter and `dompurify` sanitizer peers. DOCX content is always
11
+ * sanitized; there is no unsanitized rendering mode for uploaded documents.
12
+ *
13
+ * @customElement lyra-docx-viewer
14
+ * @event lyra-render-error - Fired when loading, conversion, sanitization, or a non-fatal Mammoth message occurs.
15
+ * @csspart base - The root container.
16
+ * @csspart body - The scrollable document body.
17
+ * @csspart content - The semantic document content.
18
+ * @csspart error - The error message region.
19
+ * @csspart spinner - The loading status region.
20
+ */
21
+ export declare class LyraDocxViewer extends LyraElement<LyraDocxViewerEventMap> {
22
+ static styles: import("lit").CSSResultGroup[];
23
+ /** URL to fetch and convert as a DOCX document. */
24
+ src: string;
25
+ /** Accessible name for the rendered document. */
26
+ name: string;
27
+ /** CSS length that caps the scrollable document body. */
28
+ maxHeight: string;
29
+ private fetchState;
30
+ private generation;
31
+ private loadLibrary;
32
+ protected willUpdate(changed: PropertyValues): void;
33
+ private load;
34
+ private renderBody;
35
+ render(): TemplateResult;
36
+ }
37
+ declare global {
38
+ interface HTMLElementTagNameMap {
39
+ 'lyra-docx-viewer': LyraDocxViewer;
40
+ }
41
+ }
42
+ //# sourceMappingURL=docx-viewer.class.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docx-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/docx-viewer/docx-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;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,sBAAsB,CAAC;IACrE,MAAM,CAAC,MAAM,iCAAwC;IAErD,mDAAmD;IACvC,GAAG,SAAM;IAErB,iDAAiD;IACrC,IAAI,SAAM;IAEtB,yDAAyD;IAClB,SAAS,SAAM;IAE7C,OAAO,CAAC,UAAU,CAAgC;IAE3D,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,WAAW,CAAyC;IAE5D,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAElD;YAEa,IAAI;IA2ClB,OAAO,CAAC,UAAU;IAkBlB,MAAM,IAAI,cAAc,CASvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,cAAc,CAAC;KACpC;CACF"}