@internetarchive/collection-browser 4.5.1 → 4.6.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 (520) hide show
  1. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.editorconfig +29 -0
  2. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.github/workflows/ci.yml +27 -0
  3. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.github/workflows/gh-pages-main.yml +39 -0
  4. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.github/workflows/npm-publish.yml +39 -0
  5. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.github/workflows/pr-preview.yml +38 -0
  6. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.husky/pre-commit +1 -0
  7. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.prettierignore +1 -0
  8. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/LICENSE +661 -0
  9. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/README.md +84 -0
  10. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/eslint.config.mjs +53 -0
  11. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/index.html +24 -0
  12. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/index.ts +29 -0
  13. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/local.archive.org.cert +86 -0
  14. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/local.archive.org.key +27 -0
  15. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/package.json +120 -0
  16. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/renovate.json +6 -0
  17. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/app-root.ts +1284 -0
  18. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/arrow-left.ts +10 -0
  19. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/arrow-right.ts +10 -0
  20. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/chevron.ts +4 -0
  21. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/close-circle-dark.ts +5 -0
  22. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/contract.ts +9 -0
  23. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/empty-query.ts +5 -0
  24. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/expand.ts +9 -0
  25. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/eye-closed.ts +5 -0
  26. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/eye.ts +5 -0
  27. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/favorite-filled.ts +10 -0
  28. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/favorite-unfilled.ts +9 -0
  29. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/filter.ts +10 -0
  30. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/login-required.ts +18 -0
  31. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/account.ts +14 -0
  32. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/audio.ts +14 -0
  33. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/collection.ts +12 -0
  34. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/data.ts +15 -0
  35. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/etree.ts +14 -0
  36. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/film.ts +14 -0
  37. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/images.ts +13 -0
  38. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/radio.ts +15 -0
  39. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/search.ts +14 -0
  40. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/software.ts +13 -0
  41. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/texts.ts +13 -0
  42. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/tv-commercial.ts +12 -0
  43. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/tv-fact-check.ts +12 -0
  44. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/tv-quote.ts +12 -0
  45. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/tv.ts +14 -0
  46. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/video.ts +14 -0
  47. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/web.ts +13 -0
  48. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/null-result.ts +5 -0
  49. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/quote.ts +7 -0
  50. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/restricted.ts +13 -0
  51. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/reviews.ts +11 -0
  52. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/upload.ts +12 -0
  53. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/views.ts +11 -0
  54. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/circular-activity-indicator.ts +64 -0
  55. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-browser.ts +3165 -0
  56. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/facet-row.ts +309 -0
  57. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/facet-tombstone-row.ts +40 -0
  58. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/facets-template.ts +85 -0
  59. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/models.ts +10 -0
  60. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/more-facets-content.ts +644 -0
  61. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/more-facets-pagination.ts +294 -0
  62. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/dedupe.ts +44 -0
  63. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.ts +27 -0
  64. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/index.ts +3 -0
  65. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.ts +17 -0
  66. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.ts +70 -0
  67. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.ts +79 -0
  68. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.ts +93 -0
  69. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/models.ts +36 -0
  70. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-bar.ts +437 -0
  71. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-button.ts +145 -0
  72. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-dropdown.ts +185 -0
  73. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-equals.ts +16 -0
  74. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-heuristics.ts +26 -0
  75. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/toggle-switch.ts +174 -0
  76. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets.ts +1013 -0
  77. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/data-source/collection-browser-data-source-interface.ts +351 -0
  78. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/data-source/collection-browser-data-source.ts +1474 -0
  79. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/data-source/collection-browser-query-state.ts +60 -0
  80. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/data-source/models.ts +56 -0
  81. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/empty-placeholder.ts +192 -0
  82. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/expanded-date-picker.ts +191 -0
  83. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/language-code-handler/language-code-handler.ts +64 -0
  84. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/language-code-handler/language-code-mapping.ts +564 -0
  85. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/manage/manage-bar.ts +276 -0
  86. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/manage/remove-items-modal-content.ts +102 -0
  87. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/mediatype/mediatype-config.ts +146 -0
  88. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/models.ts +895 -0
  89. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/restoration-state-handler.ts +550 -0
  90. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/alpha-bar-tooltip.ts +53 -0
  91. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/alpha-bar.ts +252 -0
  92. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/compact.ts +5 -0
  93. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/list.ts +5 -0
  94. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/sort-toggle-disabled.ts +15 -0
  95. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/sort-toggle-down.ts +17 -0
  96. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/sort-toggle-up.ts +17 -0
  97. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/sort-triangle.ts +5 -0
  98. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/tile.ts +5 -0
  99. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/sort-filter-bar.ts +733 -0
  100. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/styles/ia-button.ts +139 -0
  101. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/styles/item-image-styles.ts +124 -0
  102. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/styles/sr-only.ts +18 -0
  103. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/styles/tile-action-styles.ts +59 -0
  104. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/base-tile-component.ts +124 -0
  105. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/collection-browser-loading-tile.ts +26 -0
  106. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/account-tile.ts +113 -0
  107. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/collection-tile.ts +184 -0
  108. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/item-tile.ts +347 -0
  109. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/search-tile.ts +90 -0
  110. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/styles/tile-grid-shared-styles.ts +130 -0
  111. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/tile-stats.ts +211 -0
  112. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/hover/hover-pane-controller.ts +638 -0
  113. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/hover/tile-hover-pane.ts +184 -0
  114. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/image-block.ts +162 -0
  115. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/item-image.ts +214 -0
  116. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/list/tile-list-compact-header.ts +112 -0
  117. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/list/tile-list-compact.ts +278 -0
  118. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/list/tile-list.ts +718 -0
  119. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/models.ts +21 -0
  120. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/overlay/icon-overlay.ts +57 -0
  121. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/overlay/text-overlay.ts +79 -0
  122. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/review-block.ts +130 -0
  123. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/text-snippet-block.ts +132 -0
  124. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/tile-dispatcher.ts +637 -0
  125. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/tile-display-value-provider.ts +133 -0
  126. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/tile-mediatype-icon.ts +133 -0
  127. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/analytics-events.ts +29 -0
  128. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/array-equals.ts +8 -0
  129. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/collapse-repeated-quotes.ts +13 -0
  130. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/date-filter-field.ts +11 -0
  131. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/facet-utils.ts +183 -0
  132. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/format-count.ts +95 -0
  133. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/format-date.ts +62 -0
  134. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/format-unit-size.ts +43 -0
  135. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/local-date-from-utc.ts +15 -0
  136. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/log.ts +14 -0
  137. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/resolve-mediatype.ts +26 -0
  138. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/sha1.ts +9 -0
  139. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-browser.test.ts +2639 -0
  140. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/facet-row.test.ts +421 -0
  141. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/facets-template.test.ts +139 -0
  142. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/more-facets-content.test.ts +231 -0
  143. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/more-facets-pagination.test.ts +201 -0
  144. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/toggle-switch.test.ts +164 -0
  145. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets.test.ts +928 -0
  146. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/data-source/collection-browser-data-source.test.ts +193 -0
  147. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/empty-placeholder.test.ts +88 -0
  148. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/expanded-date-picker.test.ts +201 -0
  149. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/icon-overlay.test.ts +38 -0
  150. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/image-block.test.ts +247 -0
  151. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/item-image.test.ts +220 -0
  152. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/manage/manage-bar.test.ts +347 -0
  153. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/manage/remove-items-modal-content.test.ts +81 -0
  154. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/mediatype-config.test.ts +11 -0
  155. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/mocks/mock-analytics-handler.ts +30 -0
  156. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/mocks/mock-search-responses.ts +1364 -0
  157. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/mocks/mock-search-service.ts +134 -0
  158. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/restoration-state-handler.test.ts +480 -0
  159. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/review-block.test.ts +62 -0
  160. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/sort-filter-bar/alpha-bar-tooltip.test.ts +17 -0
  161. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/sort-filter-bar/alpha-bar.test.ts +101 -0
  162. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/sort-filter-bar/sort-filter-bar.test.ts +443 -0
  163. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/text-overlay.test.ts +55 -0
  164. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/text-snippet-block.test.ts +85 -0
  165. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tile-stats.test.ts +191 -0
  166. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/grid/account-tile.test.ts +121 -0
  167. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/grid/collection-tile.test.ts +114 -0
  168. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/grid/item-tile.test.ts +520 -0
  169. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/grid/search-tile.test.ts +75 -0
  170. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/hover/hover-pane-controller.test.ts +482 -0
  171. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/hover/tile-hover-pane.test.ts +80 -0
  172. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/list/tile-list-compact-header.test.ts +43 -0
  173. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/list/tile-list-compact.test.ts +282 -0
  174. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/list/tile-list.test.ts +576 -0
  175. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/tile-dispatcher.test.ts +320 -0
  176. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/tile-display-value-provider.test.ts +172 -0
  177. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/tile-mediatype-icon.test.ts +160 -0
  178. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/array-equals.test.ts +31 -0
  179. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/format-count.test.ts +32 -0
  180. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/format-date.test.ts +89 -0
  181. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/format-unit-size.test.ts +21 -0
  182. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/local-date-from-utc.test.ts +37 -0
  183. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/tsconfig.json +25 -0
  184. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/types/dompurify.d.ts +1 -0
  185. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/vite.config.ts +29 -0
  186. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/web-dev-server.config.mjs +30 -0
  187. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/web-test-runner.config.mjs +52 -0
  188. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/yarn.lock +5965 -0
  189. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/.editorconfig +29 -0
  190. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/.github/workflows/ci.yml +29 -0
  191. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/.github/workflows/gh-pages-main.yml +41 -0
  192. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/.github/workflows/npm-publish.yml +42 -0
  193. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/.github/workflows/pr-preview.yml +40 -0
  194. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/.husky/pre-commit +1 -0
  195. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/.prettierignore +1 -0
  196. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/LICENSE +661 -0
  197. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/README.md +68 -0
  198. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/eslint.config.mjs +53 -0
  199. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/index.html +24 -0
  200. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/index.ts +29 -0
  201. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/local.archive.org.cert +86 -0
  202. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/local.archive.org.key +27 -0
  203. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/package.json +129 -0
  204. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/pnpm-lock.yaml +7366 -0
  205. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/pnpm-workspace.yaml +46 -0
  206. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/renovate.json +6 -0
  207. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/app-root.ts +1284 -0
  208. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/arrow-left.ts +10 -0
  209. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/arrow-right.ts +10 -0
  210. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/chevron.ts +4 -0
  211. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/close-circle-dark.ts +5 -0
  212. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/contract.ts +9 -0
  213. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/empty-query.ts +5 -0
  214. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/expand.ts +9 -0
  215. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/eye-closed.ts +5 -0
  216. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/eye.ts +5 -0
  217. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/favorite-filled.ts +10 -0
  218. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/favorite-unfilled.ts +9 -0
  219. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/filter.ts +10 -0
  220. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/login-required.ts +18 -0
  221. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/account.ts +14 -0
  222. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/audio.ts +14 -0
  223. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/collection.ts +12 -0
  224. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/data.ts +15 -0
  225. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/etree.ts +14 -0
  226. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/film.ts +14 -0
  227. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/images.ts +13 -0
  228. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/radio.ts +15 -0
  229. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/search.ts +14 -0
  230. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/software.ts +13 -0
  231. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/texts.ts +13 -0
  232. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/tv-commercial.ts +12 -0
  233. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/tv-fact-check.ts +12 -0
  234. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/tv-quote.ts +12 -0
  235. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/tv.ts +14 -0
  236. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/video.ts +14 -0
  237. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/mediatype/web.ts +13 -0
  238. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/null-result.ts +5 -0
  239. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/quote.ts +7 -0
  240. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/restricted.ts +13 -0
  241. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/reviews.ts +11 -0
  242. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/upload.ts +12 -0
  243. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/assets/img/icons/views.ts +11 -0
  244. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/circular-activity-indicator.ts +64 -0
  245. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-browser.ts +3165 -0
  246. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/facet-row.ts +309 -0
  247. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/facet-tombstone-row.ts +40 -0
  248. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/facets-template.ts +85 -0
  249. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/models.ts +10 -0
  250. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/more-facets-content.ts +644 -0
  251. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/more-facets-pagination.ts +294 -0
  252. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/dedupe.ts +44 -0
  253. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.ts +27 -0
  254. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/heuristics/index.ts +3 -0
  255. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.ts +17 -0
  256. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.ts +70 -0
  257. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.ts +79 -0
  258. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.ts +93 -0
  259. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/models.ts +36 -0
  260. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/smart-facet-bar.ts +437 -0
  261. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/smart-facet-button.ts +145 -0
  262. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/smart-facet-dropdown.ts +185 -0
  263. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/smart-facet-equals.ts +16 -0
  264. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/smart-facets/smart-facet-heuristics.ts +26 -0
  265. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets/toggle-switch.ts +174 -0
  266. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/collection-facets.ts +1013 -0
  267. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/data-source/collection-browser-data-source-interface.ts +351 -0
  268. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/data-source/collection-browser-data-source.ts +1474 -0
  269. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/data-source/collection-browser-query-state.ts +60 -0
  270. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/data-source/models.ts +56 -0
  271. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/empty-placeholder.ts +192 -0
  272. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/expanded-date-picker.ts +191 -0
  273. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/language-code-handler/language-code-handler.ts +64 -0
  274. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/language-code-handler/language-code-mapping.ts +564 -0
  275. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/manage/manage-bar.ts +276 -0
  276. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/manage/remove-items-modal-content.ts +102 -0
  277. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/mediatype/mediatype-config.ts +146 -0
  278. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/models.ts +895 -0
  279. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/restoration-state-handler.ts +550 -0
  280. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/alpha-bar-tooltip.ts +53 -0
  281. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/alpha-bar.ts +252 -0
  282. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/img/compact.ts +5 -0
  283. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/img/list.ts +5 -0
  284. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/img/sort-toggle-disabled.ts +15 -0
  285. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/img/sort-toggle-down.ts +17 -0
  286. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/img/sort-toggle-up.ts +17 -0
  287. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/img/sort-triangle.ts +5 -0
  288. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/img/tile.ts +5 -0
  289. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/sort-filter-bar/sort-filter-bar.ts +733 -0
  290. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/styles/ia-button.ts +139 -0
  291. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/styles/item-image-styles.ts +124 -0
  292. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/styles/sr-only.ts +18 -0
  293. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/styles/tile-action-styles.ts +59 -0
  294. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/base-tile-component.ts +124 -0
  295. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/collection-browser-loading-tile.ts +26 -0
  296. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/grid/account-tile.ts +113 -0
  297. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/grid/collection-tile.ts +184 -0
  298. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/grid/item-tile.ts +347 -0
  299. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/grid/search-tile.ts +90 -0
  300. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/grid/styles/tile-grid-shared-styles.ts +130 -0
  301. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/grid/tile-stats.ts +211 -0
  302. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/hover/hover-pane-controller.ts +638 -0
  303. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/hover/tile-hover-pane.ts +184 -0
  304. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/image-block.ts +162 -0
  305. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/item-image.ts +214 -0
  306. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/list/tile-list-compact-header.ts +112 -0
  307. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/list/tile-list-compact.ts +278 -0
  308. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/list/tile-list.ts +718 -0
  309. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/models.ts +21 -0
  310. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/overlay/icon-overlay.ts +57 -0
  311. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/overlay/text-overlay.ts +79 -0
  312. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/review-block.ts +130 -0
  313. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/text-snippet-block.ts +132 -0
  314. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/tile-dispatcher.ts +637 -0
  315. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/tile-display-value-provider.ts +133 -0
  316. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/tiles/tile-mediatype-icon.ts +133 -0
  317. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/analytics-events.ts +29 -0
  318. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/array-equals.ts +8 -0
  319. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/collapse-repeated-quotes.ts +13 -0
  320. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/date-filter-field.ts +11 -0
  321. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/facet-utils.ts +183 -0
  322. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/format-count.ts +95 -0
  323. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/format-date.ts +62 -0
  324. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/format-unit-size.ts +43 -0
  325. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/local-date-from-utc.ts +15 -0
  326. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/log.ts +14 -0
  327. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/resolve-mediatype.ts +26 -0
  328. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/src/utils/sha1.ts +9 -0
  329. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/collection-browser.test.ts +2639 -0
  330. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/collection-facets/facet-row.test.ts +421 -0
  331. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/collection-facets/facets-template.test.ts +139 -0
  332. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/collection-facets/more-facets-content.test.ts +231 -0
  333. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/collection-facets/more-facets-pagination.test.ts +201 -0
  334. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/collection-facets/toggle-switch.test.ts +164 -0
  335. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/collection-facets.test.ts +928 -0
  336. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/data-source/collection-browser-data-source.test.ts +193 -0
  337. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/empty-placeholder.test.ts +88 -0
  338. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/expanded-date-picker.test.ts +201 -0
  339. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/icon-overlay.test.ts +38 -0
  340. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/image-block.test.ts +247 -0
  341. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/item-image.test.ts +220 -0
  342. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/manage/manage-bar.test.ts +347 -0
  343. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/manage/remove-items-modal-content.test.ts +81 -0
  344. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/mediatype-config.test.ts +11 -0
  345. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/mocks/mock-analytics-handler.ts +30 -0
  346. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/mocks/mock-search-responses.ts +1364 -0
  347. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/mocks/mock-search-service.ts +134 -0
  348. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/restoration-state-handler.test.ts +480 -0
  349. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/review-block.test.ts +62 -0
  350. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/sort-filter-bar/alpha-bar-tooltip.test.ts +17 -0
  351. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/sort-filter-bar/alpha-bar.test.ts +101 -0
  352. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/sort-filter-bar/sort-filter-bar.test.ts +443 -0
  353. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/text-overlay.test.ts +55 -0
  354. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/text-snippet-block.test.ts +85 -0
  355. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tile-stats.test.ts +191 -0
  356. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/grid/account-tile.test.ts +121 -0
  357. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/grid/collection-tile.test.ts +114 -0
  358. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/grid/item-tile.test.ts +520 -0
  359. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/grid/search-tile.test.ts +75 -0
  360. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/hover/hover-pane-controller.test.ts +482 -0
  361. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/hover/tile-hover-pane.test.ts +80 -0
  362. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/list/tile-list-compact-header.test.ts +43 -0
  363. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/list/tile-list-compact.test.ts +282 -0
  364. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/list/tile-list.test.ts +576 -0
  365. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/tile-dispatcher.test.ts +320 -0
  366. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/tile-display-value-provider.test.ts +172 -0
  367. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/tiles/tile-mediatype-icon.test.ts +160 -0
  368. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/utils/array-equals.test.ts +31 -0
  369. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/utils/format-count.test.ts +32 -0
  370. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/utils/format-date.test.ts +89 -0
  371. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/utils/format-unit-size.test.ts +21 -0
  372. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/test/utils/local-date-from-utc.test.ts +37 -0
  373. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/tsconfig.json +25 -0
  374. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/types/dompurify.d.ts +1 -0
  375. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/vite.config.ts +29 -0
  376. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/web-dev-server.config.mjs +30 -0
  377. package/.claude/worktrees/WEBDEV-9119-migrate-to-pnpm/web-test-runner.config.mjs +52 -0
  378. package/.editorconfig +29 -29
  379. package/.github/workflows/ci.yml +27 -27
  380. package/.github/workflows/gh-pages-main.yml +39 -39
  381. package/.github/workflows/npm-publish.yml +39 -39
  382. package/.github/workflows/pr-preview.yml +38 -38
  383. package/.husky/pre-commit +1 -1
  384. package/.prettierignore +1 -1
  385. package/LICENSE +661 -661
  386. package/README.md +83 -83
  387. package/dist/index.js.map +1 -1
  388. package/dist/src/app-root.d.ts +1 -1
  389. package/dist/src/app-root.js +683 -683
  390. package/dist/src/app-root.js.map +1 -1
  391. package/dist/src/assets/img/icons/arrow-left.d.ts +1 -1
  392. package/dist/src/assets/img/icons/arrow-right.d.ts +1 -1
  393. package/dist/src/assets/img/icons/chevron.d.ts +1 -1
  394. package/dist/src/assets/img/icons/close-circle-dark.d.ts +1 -1
  395. package/dist/src/assets/img/icons/contract.d.ts +1 -1
  396. package/dist/src/assets/img/icons/empty-query.d.ts +1 -1
  397. package/dist/src/assets/img/icons/expand.d.ts +1 -1
  398. package/dist/src/assets/img/icons/eye-closed.d.ts +1 -1
  399. package/dist/src/assets/img/icons/eye.d.ts +1 -1
  400. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  401. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  402. package/dist/src/assets/img/icons/filter.d.ts +1 -1
  403. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  404. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  405. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  406. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  407. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  408. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  409. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  410. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  411. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  412. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  413. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  414. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  415. package/dist/src/assets/img/icons/mediatype/tv-commercial.d.ts +1 -1
  416. package/dist/src/assets/img/icons/mediatype/tv-fact-check.d.ts +1 -1
  417. package/dist/src/assets/img/icons/mediatype/tv-quote.d.ts +1 -1
  418. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  419. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  420. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  421. package/dist/src/assets/img/icons/null-result.d.ts +1 -1
  422. package/dist/src/assets/img/icons/quote.d.ts +1 -1
  423. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  424. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  425. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  426. package/dist/src/assets/img/icons/views.d.ts +1 -1
  427. package/dist/src/circular-activity-indicator.d.ts +1 -1
  428. package/dist/src/collection-browser.js +766 -766
  429. package/dist/src/collection-browser.js.map +1 -1
  430. package/dist/src/collection-facets/facet-row.js +143 -143
  431. package/dist/src/collection-facets/facet-row.js.map +1 -1
  432. package/dist/src/collection-facets/facet-tombstone-row.d.ts +1 -1
  433. package/dist/src/collection-facets/facets-template.js +24 -24
  434. package/dist/src/collection-facets/facets-template.js.map +1 -1
  435. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +1 -1
  436. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +1 -1
  437. package/dist/src/collection-facets/toggle-switch.d.ts +1 -1
  438. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  439. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  440. package/dist/src/restoration-state-handler.js.map +1 -1
  441. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +1 -1
  442. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  443. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  444. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  445. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  446. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  447. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  448. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  449. package/dist/src/styles/tile-action-styles.js +43 -43
  450. package/dist/src/styles/tile-action-styles.js.map +1 -1
  451. package/dist/src/tiles/base-tile-component.js +11 -11
  452. package/dist/src/tiles/base-tile-component.js.map +1 -1
  453. package/dist/src/tiles/collection-browser-loading-tile.d.ts +1 -1
  454. package/dist/src/tiles/grid/item-tile.js +138 -138
  455. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  456. package/dist/src/tiles/hover/hover-pane-controller.js +15 -5
  457. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  458. package/dist/src/tiles/image-block.d.ts +1 -1
  459. package/dist/src/tiles/item-image.d.ts +1 -1
  460. package/dist/src/tiles/list/tile-list-compact-header.d.ts +1 -1
  461. package/dist/src/tiles/list/tile-list-compact-header.js +62 -62
  462. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
  463. package/dist/src/tiles/list/tile-list-compact.d.ts +1 -1
  464. package/dist/src/tiles/list/tile-list-compact.js +123 -123
  465. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  466. package/dist/src/tiles/list/tile-list.js +310 -310
  467. package/dist/src/tiles/list/tile-list.js.map +1 -1
  468. package/dist/src/tiles/models.js.map +1 -1
  469. package/dist/src/tiles/tile-dispatcher.d.ts +1 -1
  470. package/dist/src/tiles/tile-dispatcher.js +286 -286
  471. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  472. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  473. package/dist/src/tiles/tile-mediatype-icon.d.ts +1 -1
  474. package/dist/src/utils/date-filter-field.js.map +1 -1
  475. package/dist/test/collection-browser.test.js +203 -203
  476. package/dist/test/collection-browser.test.js.map +1 -1
  477. package/dist/test/collection-facets/facet-row.test.js +31 -31
  478. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  479. package/dist/test/tiles/grid/item-tile.test.js +77 -77
  480. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  481. package/dist/test/tiles/hover/hover-pane-controller.test.js +55 -21
  482. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  483. package/dist/test/tiles/list/tile-list.test.js +134 -134
  484. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  485. package/dist/test/tiles/tile-dispatcher.test.js +92 -92
  486. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  487. package/eslint.config.mjs +53 -53
  488. package/index.html +24 -24
  489. package/index.ts +29 -29
  490. package/local.archive.org.cert +86 -86
  491. package/local.archive.org.key +27 -27
  492. package/package.json +120 -120
  493. package/renovate.json +6 -6
  494. package/src/app-root.ts +1284 -1284
  495. package/src/collection-browser.ts +3165 -3165
  496. package/src/collection-facets/facet-row.ts +309 -309
  497. package/src/collection-facets/facets-template.ts +85 -85
  498. package/src/data-source/collection-browser-data-source-interface.ts +351 -351
  499. package/src/data-source/collection-browser-data-source.ts +1474 -1474
  500. package/src/restoration-state-handler.ts +550 -550
  501. package/src/styles/tile-action-styles.ts +59 -59
  502. package/src/tiles/base-tile-component.ts +124 -124
  503. package/src/tiles/grid/item-tile.ts +347 -347
  504. package/src/tiles/hover/hover-pane-controller.ts +15 -5
  505. package/src/tiles/list/tile-list-compact-header.ts +112 -112
  506. package/src/tiles/list/tile-list-compact.ts +278 -278
  507. package/src/tiles/list/tile-list.ts +718 -718
  508. package/src/tiles/models.ts +21 -21
  509. package/src/tiles/tile-dispatcher.ts +637 -637
  510. package/src/tiles/tile-display-value-provider.ts +133 -133
  511. package/src/utils/date-filter-field.ts +11 -11
  512. package/test/collection-browser.test.ts +2639 -2639
  513. package/test/collection-facets/facet-row.test.ts +421 -421
  514. package/test/tiles/grid/item-tile.test.ts +520 -520
  515. package/test/tiles/hover/hover-pane-controller.test.ts +87 -23
  516. package/test/tiles/list/tile-list.test.ts +576 -576
  517. package/test/tiles/tile-dispatcher.test.ts +320 -320
  518. package/tsconfig.json +25 -25
  519. package/web-dev-server.config.mjs +30 -30
  520. package/web-test-runner.config.mjs +52 -52
@@ -0,0 +1,564 @@
1
+ // short (marc) and long versions of language names
2
+ // if a 'language' metadata element matches either version,
3
+ // the long form will be displayed on the details
4
+ // page, linked to a search engine query on an OR of both forms
5
+ // (if no match is found, the metadata value itself is displayed,
6
+ // linked to a query on just that value)
7
+
8
+ export const codeToLanguageMap: Record<string, string> = {
9
+ 'ambient noise wall': 'Music',
10
+ 'american english': 'English',
11
+ 'arabic videos': 'Arabic',
12
+ 'arabic, english': 'Arabic and English',
13
+ 'de-formal': 'German',
14
+ 'en-ca': 'English',
15
+ 'en-gb': 'English',
16
+ 'en-us': 'English',
17
+ 'eng-fre': 'English and French',
18
+ 'eng;fre': 'English and French',
19
+ 'english handwritten': 'Handwritten English',
20
+ 'english-handwritten': 'Handwritten English',
21
+ 'english, polski': 'English and Polish',
22
+ 'english, spanish': 'English and Spanish',
23
+ 'english; finnish': 'English and Finnish',
24
+ 'english/french': 'English and French',
25
+ 'finnish, english': 'English and Finnish',
26
+ 'finnish; english': 'English and Finnish',
27
+ 'french-handwritten': 'Handwritten French',
28
+ 'german-handwritten': 'Handwritten German',
29
+ 'hebrew-handwritten': 'Handwritten Hebrew',
30
+ 'language not encoded': 'Unknown',
31
+ 'miscellaneous languages': 'Multiple',
32
+ 'n/a': 'Unknown',
33
+ 'no language': 'skip',
34
+ 'no linguistic content': 'skip',
35
+ 'no speech': 'skip',
36
+ 'polish-handwritten': 'Handwritten Polish',
37
+ 'pt-br': 'Portuguese',
38
+ 'spanish-handwritten': 'Handwritten Spanish',
39
+ 'us english': 'English',
40
+ 'www.back4allah.com': 'Arabic',
41
+ 'www.rabania.com': 'Arabic',
42
+ 'www.way2allah.com': 'Arabic',
43
+ 'yiddish-handwritten': 'Handwritten Yiddish',
44
+ 'zh-cn': 'Chinese',
45
+ 'zh-tw': 'Chinese',
46
+ 'أوردو ::: Urdu': 'Urdu',
47
+ 'بشتو ::: Pashto': 'Pashto',
48
+ 'عربية ::: arabic': 'Arabic',
49
+ 'عربية ::: Arabic': 'Arabic',
50
+ 'عربية مع ترجمة إنجليزية ::: Arabic with English subtitles':
51
+ 'Arabic with English subtitles',
52
+ /* 'Català' : 'Catalan', */
53
+ /* 'lt' : 'Latin', */ // is lithuanian, but archive items seem to be mislabled latin
54
+ // polyglot
55
+ aar: 'Afar',
56
+ abk: 'Abkhaz',
57
+ adl: 'Galo', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
58
+ ady: 'Adyghe',
59
+ afr: 'Afrikaans',
60
+ aka: 'Akan',
61
+ akk: 'Akkadian',
62
+ alb: 'Albanian',
63
+ ale: 'Aleut',
64
+ alg: 'Algonquian',
65
+ american: 'English',
66
+ amh: 'Amharic',
67
+ ang: 'Old English',
68
+ anm: 'Anal', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
69
+ anq: 'Jarawa', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
70
+ apa: 'Apache languages',
71
+ apt: 'Apatani', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
72
+ ar: 'Arabic',
73
+ ara: 'Arabic',
74
+ arab: 'Arabic',
75
+ arabe: 'Arabic',
76
+ arbc: 'Arabic',
77
+ arbic: 'Arabic',
78
+ arc: 'Aramaic',
79
+ arg: 'Aragonese',
80
+ arm: 'Armenian',
81
+ arp: 'Arapaho',
82
+ asm: 'Assamese',
83
+ ast: 'Asturian',
84
+ ath: 'Athapascan (Other)',
85
+ awa: 'Awadhi',
86
+ aym: 'Aymara',
87
+ aze: 'Azerbaijani',
88
+ bak: 'Bashkir',
89
+ bal: 'Baluchi',
90
+ ban: 'Balinese',
91
+ baq: 'Basque',
92
+ bel: 'Belarusian',
93
+ bem: 'Bemba',
94
+ ben: 'Bengali',
95
+ ber: 'Berber',
96
+ bft: 'Balti', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
97
+ bfy: 'Bagheli', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
98
+ bgw: 'Bhatri', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
99
+ bhb: 'Bhili', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
100
+ bho: 'Bhojpuri',
101
+ bih: 'Bihari',
102
+ bis: 'Bislama',
103
+ bkk: 'Brokskat', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
104
+ bla: 'Blackfoot',
105
+ bns: 'Bundeli', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
106
+ bnt: 'Bantu',
107
+ bos: 'Bosnian',
108
+ bra: 'Braj',
109
+ bre: 'Breton',
110
+ brx: 'Bodo', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
111
+ bua: 'Buryat',
112
+ bul: 'Bulgarian',
113
+ bur: 'Burmese',
114
+ cai: 'Central American Indian',
115
+ caq: 'Car', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
116
+ car: 'Carib',
117
+ cat: 'Catalan',
118
+ cau: 'Caucasian',
119
+ ceb: 'Cebuano',
120
+ ces: 'Czech',
121
+ cha: 'Chamorro',
122
+ che: 'Chechen',
123
+ chi: 'Chinese',
124
+ chm: 'Mari',
125
+ chn: 'Chinook jargon',
126
+ cho: 'Choctaw',
127
+ chp: 'Chipewyan',
128
+ chr: 'Cherokee',
129
+ chu: 'Church Slavic',
130
+ chv: 'Chuvash',
131
+ chy: 'Cheyenne',
132
+ clk: 'Idu-Mishmi', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
133
+ cmn: 'Mandarin Chinese',
134
+ cop: 'Coptic',
135
+ cor: 'Cornish',
136
+ cos: 'Corsican',
137
+ cpe: 'Creoles and Pidgins, English-based',
138
+ cpf: 'Creoles and Pidgins, French-based',
139
+ cpp: 'Creoles and Pidgins, Portuguese-based',
140
+ cre: 'Cree',
141
+ crh: 'Crimean Tatar',
142
+ cro: 'Croatian',
143
+ crp: 'Creoles and Pidgins',
144
+ cs: 'Czech',
145
+ csb: 'Kashubian',
146
+ cym: 'Welsh',
147
+ cze: 'Czech',
148
+ da: 'Danish',
149
+ dak: 'Dakota',
150
+ dan: 'Danish',
151
+ dar: 'Dargwa',
152
+ de: 'German',
153
+ del: 'Delaware',
154
+ deu: 'German',
155
+ deutsch: 'German',
156
+ dgo: 'Dogri', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
157
+ dih: 'Dhivehi',
158
+ doi: 'Dogri (Generic)',
159
+ dra: 'Dravidian (Other)',
160
+ dsb: 'Lower Sorbian',
161
+ dum: 'Middle Dutch',
162
+ dut: 'Dutch',
163
+ dzo: 'Dzongkha',
164
+ egy: 'Egyptian',
165
+ el: 'Greek',
166
+ ell: 'Greek',
167
+ emg: 'English',
168
+ en_us: 'English',
169
+ en: 'English',
170
+ eng: 'English',
171
+ engfre: 'English and French',
172
+ engilsh: 'English',
173
+ english: 'English',
174
+ enm: 'Middle English',
175
+ epo: 'Esperanto',
176
+ es: 'Spanish',
177
+ esk: 'Eskimo',
178
+ esp: 'Esperanto',
179
+ espanol: 'Spanish',
180
+ español: 'Spanish',
181
+ est: 'Estonian',
182
+ eth: 'Ethiopic',
183
+ eus: 'Basque',
184
+ fa: 'Persian',
185
+ fao: 'Faroese',
186
+ far: 'Faroese',
187
+ fas: 'Persian',
188
+ fi: 'Finnish',
189
+ fij: 'Fijian',
190
+ fil: 'Filipino',
191
+ fin: 'Finnish',
192
+ fle: 'Dutch',
193
+ fr: 'French',
194
+ fra: 'French',
195
+ francais: 'French',
196
+ français: 'French',
197
+ fre: 'French',
198
+ fri: 'Frisian',
199
+ frm: 'Middle French',
200
+ fro: 'Old French',
201
+ frr: 'North Frisian',
202
+ fry: 'Frisian',
203
+ fur: 'Friulian',
204
+ gaa: 'Gã',
205
+ gac: 'Mixed Great Andamanese', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
206
+ gae: 'Scottish Gaelic',
207
+ gag: 'Galician',
208
+ gbl: 'Gamit', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
209
+ gem: 'Germanic',
210
+ geo: 'Georgian',
211
+ ger: 'German',
212
+ gez: 'Ethiopic',
213
+ gil: 'Gilbertese',
214
+ gju: 'Gujari', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
215
+ gla: 'Scottish Gaelic',
216
+ gle: 'Irish',
217
+ glg: 'Galician',
218
+ glv: 'Manx',
219
+ gmh: 'Middle High German',
220
+ goh: 'Old German',
221
+ gon: 'Gondi',
222
+ got: 'Gothic',
223
+ grb: 'Grebo',
224
+ grc: 'Ancient Greek',
225
+ gre: 'Greek',
226
+ grn: 'Guarani',
227
+ grt: 'Garo', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
228
+ gsw: 'Swiss German',
229
+ gua: 'Guarani',
230
+ guj: 'Gujarati',
231
+ gwi: 'Gwichin',
232
+ hai: 'Haida',
233
+ hat: 'Haitian French Creole',
234
+ hau: 'Hausa',
235
+ haw: 'Hawaiian',
236
+ he: 'Hebrew',
237
+ heb: 'Hebrew',
238
+ hin: 'Hindi',
239
+ hlb: 'Halbi', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
240
+ hmn: 'Hmong',
241
+ hmr: 'Hmar', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
242
+ hne: 'Chhattisgarhi', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
243
+ hoc: 'Ho', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
244
+ hrv: 'Croatian',
245
+ hsb: 'Upper Sorbian',
246
+ hu: 'Hungarian',
247
+ hun: 'Hungarian',
248
+ ibo: 'Igbo',
249
+ ice: 'Icelandic',
250
+ ido: 'Ido',
251
+ iku: 'Inuktitut',
252
+ ile: 'Interlingue',
253
+ ilo: 'Iloko',
254
+ ina: 'Interlingua',
255
+ inc: 'Indic (Other)',
256
+ ind: 'Indonesian',
257
+ inh: 'Ingush',
258
+ int: 'Interlingua',
259
+ ipk: 'Inupiaq',
260
+ ira: 'Iranian',
261
+ iri: 'Irish',
262
+ iro: 'Iroquoian',
263
+ iru: 'Irula', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
264
+ isl: 'Icelandic',
265
+ ita: 'Italian',
266
+ jam: 'Music',
267
+ jap: 'Japanese',
268
+ jav: 'Javanese',
269
+ jpn: 'Japanese',
270
+ jrb: 'Judeo-Arabic',
271
+ kaa: 'Karakalpak',
272
+ kab: 'Kabyle',
273
+ kal: 'Kalatdlisut',
274
+ kan: 'Kannada',
275
+ kar: 'Karen',
276
+ kas: 'Kashmiri',
277
+ kaz: 'Kazakh',
278
+ kbd: 'Kabardian',
279
+ kfa: 'Kodava', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
280
+ kfb: 'Northwestern Kolami', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
281
+ kfe: 'Kota (India)', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
282
+ kff: 'Koya', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
283
+ kfq: 'Korku', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
284
+ kha: 'Khasi',
285
+ khm: 'Khmer',
286
+ kho: 'Khotanese',
287
+ khr: 'Kharia', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
288
+ kik: 'Kikuyu',
289
+ kin: 'Kinyarwanda',
290
+ kir: 'Kyrgyz',
291
+ kix: 'Khiamniungan Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
292
+ kmj: 'Kumarbhag Paharia', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
293
+ kmm: 'Kom (India)', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
294
+ ko: 'Korean',
295
+ kok: 'Konkani',
296
+ kon: 'Kongo',
297
+ kor: 'Korean',
298
+ kpe: 'Kpelle',
299
+ krc: 'Karachay-Balkar',
300
+ kro: 'Kru',
301
+ kru: 'Kurukh',
302
+ ksh: 'Kölsch',
303
+ kum: 'Kumyk',
304
+ kur: 'Kurdish',
305
+ kxu: 'Kui (India)', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
306
+ kxv: 'Kuvi', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
307
+ kyw: 'Kudmali', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
308
+ lad: 'Ladino',
309
+ lah: 'Lahnda',
310
+ lao: 'Lao',
311
+ lap: 'Sami',
312
+ lat: 'Latin',
313
+ lav: 'Latvian',
314
+ lbj: 'Ladakhi', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
315
+ lep: 'Lepcha', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
316
+ lez: 'Lezgin',
317
+ lim: 'Limburgish',
318
+ lin: 'Lingala',
319
+ lit: 'Lithuanian',
320
+ lmn: 'Lambadi', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
321
+ lol: 'Mongo-Nkundu',
322
+ ltz: 'Luxembourgish',
323
+ lua: 'Luba-Lulua',
324
+ lub: 'Luba-Katanga',
325
+ lug: 'Ganda',
326
+ lus: 'Lushai',
327
+ mac: 'Macedonian',
328
+ mah: 'Marshallese',
329
+ mai: 'Maithili',
330
+ mal: 'Malayalam',
331
+ man: 'Mandarin Chinese',
332
+ mao: 'Maori',
333
+ map: 'Austronesian',
334
+ mar: 'Marathi',
335
+ max: 'Manx',
336
+ may: 'Malay',
337
+ mga: 'Middle Irish',
338
+ mha: 'Manda (India)', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
339
+ mic: 'Micmac',
340
+ min: 'Minankabaw',
341
+ mis: 'Miscellaneous languages',
342
+ mjw: 'Karbi', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
343
+ mkh: 'Mon-Khmer',
344
+ mla: 'Malagasy',
345
+ mlg: 'Malagasy',
346
+ mlt: 'Maltese',
347
+ mni: 'Manipuri',
348
+ moh: 'Mohawk',
349
+ mol: 'Moldavian',
350
+ mon: 'Mongolian',
351
+ mrg: 'Mising', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
352
+ mul: 'Multiple',
353
+ mus: 'Creek',
354
+ mwr: 'Marwari',
355
+ myn: 'Maya',
356
+ nag: 'Naga Pigdin', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
357
+ nah: 'Nahuatl',
358
+ nai: 'North American Indian',
359
+ nap: 'Neapolitan',
360
+ nau: 'Nauru',
361
+ nav: 'Navajo',
362
+ nbc: 'Chang Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
363
+ nbe: 'Konyak Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
364
+ nbi: 'Mao Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
365
+ nbl: 'Ndebele',
366
+ nbu: 'Rongmei Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
367
+ nds: 'Low German',
368
+ nep: 'Nepali',
369
+ new: 'Newari',
370
+ ng: 'English',
371
+ nic: 'Niger-Kordofanian',
372
+ njh: 'Lotha Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
373
+ njm: 'Angami Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
374
+ njn: 'Liangmai Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
375
+ njo: 'Ao Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
376
+ nkf: 'Inpui Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
377
+ nkh: 'Khezha Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
378
+ nld: 'Dutch',
379
+ nll: 'Nihali', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
380
+ nma: 'Maram Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
381
+ nmf: 'Tangkhul Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
382
+ nno: 'Norwegian (Nynorsk)',
383
+ no: 'skip',
384
+ nob: 'Norwegian (Bokmål)',
385
+ nog: 'Nogay',
386
+ non: 'Old Norse',
387
+ none: 'skip',
388
+ nor: 'Norwegian',
389
+ nri: 'Chokri Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
390
+ nsa: 'Sangtam Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
391
+ nsm: 'Sumi Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
392
+ nso: 'Northern Sotho',
393
+ nya: 'Nyanja',
394
+ nzm: 'Zeme Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
395
+ oci: 'Occitan',
396
+ oji: 'Ojibwa',
397
+ oon: 'Önge', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
398
+ ori: 'Oriya',
399
+ orm: 'Oromo',
400
+ ory: 'Odia', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
401
+ oss: 'Ossetic',
402
+ ota: 'Ottoman Turkish',
403
+ oto: 'Otomian',
404
+ paa: 'Papuan',
405
+ pag: 'Pangasinan',
406
+ pal: 'Pahlavi',
407
+ pam: 'Pampanga',
408
+ pan: 'Panjabi',
409
+ panjabi: 'Punjabi',
410
+ pap: 'Papiamento',
411
+ pbv: 'Pnar', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
412
+ pci: 'Duruwa', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
413
+ pck: 'Paite Chin', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
414
+ per: 'Persian',
415
+ phi: 'Philippine',
416
+ pli: 'Pali',
417
+ pol: 'Polish',
418
+ por: 'Portuguese',
419
+ port: 'Portuguese',
420
+ portugues: 'Portuguese',
421
+ português: 'Portuguese',
422
+ pra: 'Prakrit',
423
+ pro: 'Provencal',
424
+ prx: 'Purik', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
425
+ pus: 'Pashto',
426
+ qaa: 'skip', // 'language code reserved for local use'
427
+ que: 'Quechua',
428
+ rah: 'Rabha', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
429
+ raj: 'Rajasthani',
430
+ roa: 'Romance',
431
+ roh: 'Romansh',
432
+ rom: 'Romani',
433
+ ron: 'Romanian',
434
+ rum: 'Romanian',
435
+ run: 'Rundi',
436
+ rus: 'Russian',
437
+ sag: 'Sango',
438
+ sah: 'Yakut',
439
+ sai: 'South American Indian',
440
+ sam: 'Samaritan Aramaic',
441
+ san: 'Sanskrit',
442
+ sao: 'Samoan',
443
+ sat: 'Santali',
444
+ scc: 'Serbian',
445
+ scl: 'Shina', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
446
+ sco: 'Scots',
447
+ scots: 'Scottish',
448
+ scr: 'Croatian',
449
+ sdr: 'Oraon Sadri', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
450
+ sel: 'Selkup',
451
+ sem: 'Semitic',
452
+ sga: 'Old Irish',
453
+ sho: 'Shona',
454
+ sin: 'Sinhalese',
455
+ sio: 'Siouan',
456
+ sip: 'Sikkimese', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
457
+ sit: 'Sino-Tibetan',
458
+ sk: 'Slovak',
459
+ sla: 'Slavic',
460
+ slk: 'Slovak',
461
+ slo: 'Slovak',
462
+ slv: 'Slovenian',
463
+ sme: 'Saami',
464
+ smi: 'Sami',
465
+ smo: 'Samoan',
466
+ sms: 'Skolt Sami',
467
+ sna: 'Shona',
468
+ snd: 'Sindhi',
469
+ snh: 'Sinhalese',
470
+ som: 'Somali',
471
+ sot: 'Sotho',
472
+ spa: 'Spanish',
473
+ spain: 'Spanish',
474
+ spv: 'Sambalpuri', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
475
+ sq: 'Albanian',
476
+ sqi: 'Albanian',
477
+ srb: 'Sora', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
478
+ srp: 'Serbian',
479
+ sso: 'Sotho',
480
+ ssw: 'Swazi',
481
+ sun: 'Sundanese',
482
+ sux: 'Sumerian',
483
+ sv: 'Swedish',
484
+ svenska: 'Swedish',
485
+ swa: 'Swahili',
486
+ swe: 'Swedish',
487
+ swz: 'Swazi',
488
+ syc: 'Syriac',
489
+ syr: 'Modern Syriac',
490
+ tag: 'Tagalog',
491
+ tah: 'Tahitian',
492
+ taj: 'Tajik',
493
+ tam: 'Tamil',
494
+ tar: 'Tatar',
495
+ tat: 'Tatar',
496
+ tcy: 'Tulu', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
497
+ tcz: 'Thado Chin', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
498
+ tel: 'Telugu',
499
+ tem: 'Temne',
500
+ tgk: 'Tajik',
501
+ tgl: 'Tagalog',
502
+ tha: 'Thai',
503
+ tib: 'Tibetan',
504
+ tig: 'Tigre',
505
+ tir: 'Tigrinya',
506
+ tlh: 'Klingon',
507
+ tog: 'Tonga',
508
+ ton: 'Tongan',
509
+ tpi: 'Tok Pisin',
510
+ tr: 'Turkish',
511
+ trp: 'Kok Borok', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
512
+ tsi: 'Tsimshian',
513
+ tsn: 'Tswana',
514
+ tso: 'Tsonga',
515
+ tsw: 'Tswana',
516
+ tuk: 'Turkmen',
517
+ tur: 'Turkish',
518
+ türkçe: 'Turkish',
519
+ tut: 'Altaic',
520
+ tyv: 'Tuvinian',
521
+ udm: 'Udmurt',
522
+ uig: 'Uighur',
523
+ uk: 'Ukranian',
524
+ ukr: 'Ukrainian',
525
+ und: 'undetermined',
526
+ undetermined: 'skip',
527
+ unknown: 'skip',
528
+ unr: 'Mundari', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
529
+ urd: 'Urdu',
530
+ uzb: 'Uzbek',
531
+ vah: 'Varhadi-Nagpuri', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
532
+ vap: 'Vaiphei', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
533
+ vav: 'Varli', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
534
+ ven: 'Venda',
535
+ vie: 'Vietnamese',
536
+ vol: 'Volapük',
537
+ war: 'Waray',
538
+ wbr: 'Wagdi', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
539
+ wel: 'Welsh',
540
+ wen: 'Sorbian',
541
+ wol: 'Wolof',
542
+ xal: 'Oirat',
543
+ xho: 'Xhosa',
544
+ xis: 'Kisan (Dravidian)', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
545
+ xnr: 'Kangri', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
546
+ xsr: 'Solu-Khumbu Sherpa', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
547
+ yea: 'Ravula', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
548
+ yid: 'Yiddish',
549
+ yim: 'Yimchungru Naga', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
550
+ yor: 'Yoruba',
551
+ ypk: 'Yupik languages',
552
+ zap: 'Zapotec',
553
+ zh: 'Chinese',
554
+ zha: 'Zhuang',
555
+ zho: 'Chinese',
556
+ zom: 'Zou', // *not* in MARC or ISO 639-2 lists, but in our corpus and ISO 639-3
557
+ zul: 'Zulu',
558
+ zun: 'Zuni',
559
+ zxx: 'No linguistic content',
560
+ Русский: 'Russian',
561
+ Український: 'Ukranian',
562
+ العربية: 'Arabic',
563
+ عربي: 'Arabic',
564
+ };