@internetarchive/collection-browser 4.5.2 → 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 +40 -32
  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 +57 -50
  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 +638 -630
  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 +482 -454
  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
@@ -83,372 +83,372 @@ let AppRoot = class AppRoot extends LitElement {
83
83
  return searchParams.get('hide-dev-tools') ? 'hidden' : '';
84
84
  }
85
85
  render() {
86
- return html `
87
- <div class="dev-tool-container">
88
- <div id="dev-tools" class=${this.getClass}>
89
- <div id="search-and-page-inputs">
90
- <form @submit=${this.searchPressed}>
91
- <label for="base-query-field"> Query: </label>
92
- <input
93
- type="text"
94
- id="base-query-field"
95
- .value=${this.searchQuery ?? ''}
96
- />
97
- <input type="submit" value="Search" />
98
- </form>
99
- <form @submit=${this.changePagePressed}>
100
- <label for="page-number-input"> Page: </label>
101
- <input type="number" value="1" id="page-number-input" />
102
- <input type="submit" value="Go" />
103
- </form>
104
- </div>
105
- <div>
106
- <form @submit=${this.collectionChanged}>
107
- <label for="base-collection-field"> Within collection: </label>
108
- <input
109
- type="text"
110
- id="base-collection-field"
111
- .value=${this.withinCollection ?? ''}
112
- />
113
- <input type="submit" value="Search" />
114
- </form>
115
- </div>
116
-
117
- <div id="search-types">
118
- Search type:
119
- <span class="search-type">
120
- <input
121
- type="radio"
122
- id="default-search"
123
- name="search-type"
124
- value="default"
125
- .checked=${this.searchType === SearchType.DEFAULT}
126
- @click=${this.searchTypeSelected}
127
- />
128
- <label for="default-search">Default</label>
129
- </span>
130
- <span class="search-type">
131
- <input
132
- type="radio"
133
- id="metadata-search"
134
- name="search-type"
135
- value="metadata"
136
- .checked=${this.searchType === SearchType.METADATA}
137
- @click=${this.searchTypeSelected}
138
- />
139
- <label for="metadata-search">Metadata</label>
140
- </span>
141
- <span class="search-type">
142
- <input
143
- type="radio"
144
- id="fulltext-search"
145
- name="search-type"
146
- value="fulltext"
147
- .checked=${this.searchType === SearchType.FULLTEXT}
148
- @click=${this.searchTypeSelected}
149
- />
150
- <label for="fulltext-search">Full text</label>
151
- </span>
152
- <span class="search-type">
153
- <input
154
- type="radio"
155
- id="tv-search"
156
- name="search-type"
157
- value="tv"
158
- .checked=${this.searchType === SearchType.TV}
159
- @click=${this.searchTypeSelected}
160
- />
161
- <label for="tv-search">TV</label>
162
- </span>
163
- <span class="search-type">
164
- <input
165
- type="radio"
166
- id="radio-search"
167
- name="search-type"
168
- value="radio"
169
- .checked=${this.searchType === SearchType.RADIO}
170
- @click=${this.searchTypeSelected}
171
- />
172
- <label for="radio-search">Radio</label>
173
- </span>
174
- </div>
175
-
176
- <div id="toggle-controls">
177
- <button
86
+ return html `
87
+ <div class="dev-tool-container">
88
+ <div id="dev-tools" class=${this.getClass}>
89
+ <div id="search-and-page-inputs">
90
+ <form @submit=${this.searchPressed}>
91
+ <label for="base-query-field"> Query: </label>
92
+ <input
93
+ type="text"
94
+ id="base-query-field"
95
+ .value=${this.searchQuery ?? ''}
96
+ />
97
+ <input type="submit" value="Search" />
98
+ </form>
99
+ <form @submit=${this.changePagePressed}>
100
+ <label for="page-number-input"> Page: </label>
101
+ <input type="number" value="1" id="page-number-input" />
102
+ <input type="submit" value="Go" />
103
+ </form>
104
+ </div>
105
+ <div>
106
+ <form @submit=${this.collectionChanged}>
107
+ <label for="base-collection-field"> Within collection: </label>
108
+ <input
109
+ type="text"
110
+ id="base-collection-field"
111
+ .value=${this.withinCollection ?? ''}
112
+ />
113
+ <input type="submit" value="Search" />
114
+ </form>
115
+ </div>
116
+
117
+ <div id="search-types">
118
+ Search type:
119
+ <span class="search-type">
120
+ <input
121
+ type="radio"
122
+ id="default-search"
123
+ name="search-type"
124
+ value="default"
125
+ .checked=${this.searchType === SearchType.DEFAULT}
126
+ @click=${this.searchTypeSelected}
127
+ />
128
+ <label for="default-search">Default</label>
129
+ </span>
130
+ <span class="search-type">
131
+ <input
132
+ type="radio"
133
+ id="metadata-search"
134
+ name="search-type"
135
+ value="metadata"
136
+ .checked=${this.searchType === SearchType.METADATA}
137
+ @click=${this.searchTypeSelected}
138
+ />
139
+ <label for="metadata-search">Metadata</label>
140
+ </span>
141
+ <span class="search-type">
142
+ <input
143
+ type="radio"
144
+ id="fulltext-search"
145
+ name="search-type"
146
+ value="fulltext"
147
+ .checked=${this.searchType === SearchType.FULLTEXT}
148
+ @click=${this.searchTypeSelected}
149
+ />
150
+ <label for="fulltext-search">Full text</label>
151
+ </span>
152
+ <span class="search-type">
153
+ <input
154
+ type="radio"
155
+ id="tv-search"
156
+ name="search-type"
157
+ value="tv"
158
+ .checked=${this.searchType === SearchType.TV}
159
+ @click=${this.searchTypeSelected}
160
+ />
161
+ <label for="tv-search">TV</label>
162
+ </span>
163
+ <span class="search-type">
164
+ <input
165
+ type="radio"
166
+ id="radio-search"
167
+ name="search-type"
168
+ value="radio"
169
+ .checked=${this.searchType === SearchType.RADIO}
170
+ @click=${this.searchTypeSelected}
171
+ />
172
+ <label for="radio-search">Radio</label>
173
+ </span>
174
+ </div>
175
+
176
+ <div id="toggle-controls">
177
+ <button
178
178
  @click=${() => {
179
179
  const details = this.shadowRoot?.getElementById('cell-size-control');
180
180
  details?.classList.toggle('hidden');
181
181
  const rowGapControls = this.shadowRoot?.getElementById('cell-gap-control');
182
182
  rowGapControls?.classList.toggle('hidden');
183
- }}
184
- >
185
- Toggle Cell Controls
186
- </button>
187
- <button
183
+ }}
184
+ >
185
+ Toggle Cell Controls
186
+ </button>
187
+ <button
188
188
  @click=${() => {
189
189
  const details = this.shadowRoot?.getElementById('latest-event-details');
190
190
  details?.classList.toggle('hidden');
191
- }}
192
- >
193
- Last Event Captured
194
- </button>
195
- </div>
196
-
197
- <div id="last-event">
198
- <pre id="latest-event-details" class="hidden">
199
- ${JSON.stringify(this.latestAction, null, 2)}
200
- </pre
201
- >
202
- </div>
203
-
204
- <fieldset class="cell-controls">
205
- <legend>Cell Controls</legend>
206
- <div>
207
- <label for="cell-width-slider">Cell width:</label>
208
- <input
209
- type="range"
210
- min="10"
211
- max="100"
212
- value="18"
213
- step="0.1"
214
- id="cell-width-slider"
215
- @input=${this.widthChanged}
216
- />
217
- <span>${this.cellWidth}rem</span>
218
- </div>
219
- <div>
220
- <label for="cell-height-slider">Cell height:</label>
221
- <input
222
- type="range"
223
- min="10"
224
- max="100"
225
- value="29"
226
- step="0.1"
227
- id="cell-height-slider"
228
- @input=${this.heightChanged}
229
- />
230
- <span>${this.cellHeight}rem</span>
231
- </div>
232
- <div>
233
- <label for="cell-row-gap-slider">Row gap:</label>
234
- <input
235
- type="range"
236
- min="0"
237
- max="5"
238
- value="1.7"
239
- step="0.1"
240
- id="cell-row-gap-slider"
241
- @input=${this.rowGapChanged}
242
- />
243
- <span>${this.rowGap}rem</span>
244
- </div>
245
- <div>
246
- <label for="cell-col-gap-slider">Col gap:</label>
247
- <input
248
- type="range"
249
- min="0"
250
- max="5"
251
- value="1.7"
252
- step="0.1"
253
- id="cell-col-gap-slider"
254
- @input=${this.colGapChanged}
255
- />
256
- <span>${this.colGap}rem</span>
257
- </div>
258
- </fieldset>
259
-
260
- <fieldset class="other-controls">
261
- <legend>Other Controls</legend>
262
- <div class="checkbox-control">
263
- <input
264
- type="checkbox"
265
- id="simulate-login"
266
- @click=${this.loginChanged}
267
- />
268
- <label for="simulate-login">Simulate login</label>
269
- </div>
270
- <div class="checkbox-control">
271
- <input
272
- type="checkbox"
273
- id="enable-date-picker"
274
- checked
275
- @click=${this.datePickerChanged}
276
- />
277
- <label for="enable-date-picker">Enable date picker</label>
278
- </div>
279
- <div class="checkbox-control">
280
- <input
281
- type="checkbox"
282
- id="enable-facets"
283
- checked
284
- @click=${this.facetsChanged}
285
- />
286
- <label for="enable-facets">Enable facets</label>
287
- </div>
288
- <div class="checkbox-control indent">
289
- <input
290
- type="checkbox"
291
- id="lazy-load-facets"
292
- ?disabled=${this.suppressFacets}
293
- @click=${this.lazyLoadFacetsChanged}
294
- />
295
- <label for="lazy-load-facets">Lazy load facets</label>
296
- </div>
297
- <div class="checkbox-control">
298
- <input
299
- type="checkbox"
300
- id="enable-management"
301
- @click=${this.manageModeCheckboxChanged}
302
- />
303
- <label for="enable-management">Enable manage mode</label>
304
- </div>
305
- <div class="checkbox-control indent">
306
- <input
307
- type="checkbox"
308
- id="enable-search-management"
309
- @click=${this.SearchManageModeCheckboxChanged}
310
- />
311
- <label for="enable-search-management">Search</label>
312
- </div>
313
- <div class="checkbox-control">
314
- <input
315
- type="checkbox"
316
- id="enable-smart-facet-bar"
317
- @click=${this.smartFacetBarCheckboxChanged}
318
- />
319
- <label for="enable-smart-facet-bar">Enable smart facet bar</label>
320
- </div>
321
- <div class="checkbox-control">
322
- <input
323
- type="checkbox"
324
- id="enable-tile-actions"
325
- @click=${this.tileActionsCheckboxChanged}
326
- />
327
- <label for="enable-tile-actions"
328
- >Enable tile action buttons</label
329
- >
330
- </div>
331
- </fieldset>
332
-
333
- <fieldset class="cb-visual-appearance">
334
- <legend>CB Visual Appearance</legend>
335
- <div class="checkbox-control">
336
- <input
337
- type="checkbox"
338
- id="show-facet-group-outline-check"
339
- @click=${this.toggleFacetGroupOutline}
340
- />
341
- <label for="show-facet-group-outline-check">
342
- Show facet group outlines
343
- </label>
344
- </div>
345
- <div class="checkbox-control">
346
- <input
347
- type="checkbox"
348
- id="show-outline-check"
349
- @click=${this.outlineChanged}
350
- />
351
- <label for="show-outline-check">Show cell outlines</label>
352
- </div>
353
- <div class="checkbox-control">
354
- <input
355
- type="checkbox"
356
- id="minimal-tiles-check"
357
- @click=${this.minimalTilesChanged}
358
- />
359
- <label for="minimal-tiles-check">Minimal tile layouts</label>
360
- </div>
361
- </fieldset>
362
-
363
- <fieldset class="user-profile-controls">
364
- <legend>User Profile Controls</legend>
365
- <div class="checkbox-control">
366
- <input
367
- type="checkbox"
368
- id="enable-facet-top-slot"
369
- @click=${this.facetTopSlotCheckboxChanged}
370
- />
371
- <label for="enable-facet-top-slot">Show facet top slot</label>
372
- </div>
373
- <div class="checkbox-control">
374
- <input
375
- type="checkbox"
376
- id="enable-cb-top-slot"
377
- @click=${this.cbTopSlotCheckboxChanged}
378
- />
379
- <label for="enable-cb-top-slot">Show CB top slot</label>
380
- </div>
381
- <div class="checkbox-control">
382
- <input
383
- type="checkbox"
384
- id="enable-sortbar-left-slot"
385
- @click=${this.sortBarLeftSlotCheckboxChanged}
386
- />
387
- <label for="enable-sortbar-left-slot"
388
- >Show sortbar left slot</label
389
- >
390
- </div>
391
- <div class="checkbox-control">
392
- <input
393
- type="checkbox"
394
- id="enable-sortbar-right-slot"
395
- @click=${this.sortBarRightSlotCheckboxChanged}
396
- />
397
- <label for="enable-sortbar-right-slot"
398
- >Show sortbar right slot</label
399
- >
400
- </div>
401
- <div class="checkbox-control">
402
- <input
403
- type="checkbox"
404
- id="enable-result-last-tile-slot"
405
- @click=${this.resultLastTileSlotCheckboxChanged}
406
- />
407
- <label for="enable-result-last-tile-slot">
408
- Show result last tile slot
409
- </label>
410
- </div>
411
- <div class="checkbox-control">
412
- <input
413
- type="checkbox"
414
- id="enable-replaced-sort-options"
415
- @click=${this.replaceSortOptionsChanged}
416
- />
417
- <label for="enable-replaced-sort-options">
418
- Show replaced sort options
419
- </label>
420
- </div>
421
- <div class="text-input-control">
422
- <label for="within-profile-input">withinProfile</label>
423
- <input
424
- type="text"
425
- id="within-profile-input"
426
- placeholder="e.g. @foobar"
191
+ }}
192
+ >
193
+ Last Event Captured
194
+ </button>
195
+ </div>
196
+
197
+ <div id="last-event">
198
+ <pre id="latest-event-details" class="hidden">
199
+ ${JSON.stringify(this.latestAction, null, 2)}
200
+ </pre
201
+ >
202
+ </div>
203
+
204
+ <fieldset class="cell-controls">
205
+ <legend>Cell Controls</legend>
206
+ <div>
207
+ <label for="cell-width-slider">Cell width:</label>
208
+ <input
209
+ type="range"
210
+ min="10"
211
+ max="100"
212
+ value="18"
213
+ step="0.1"
214
+ id="cell-width-slider"
215
+ @input=${this.widthChanged}
216
+ />
217
+ <span>${this.cellWidth}rem</span>
218
+ </div>
219
+ <div>
220
+ <label for="cell-height-slider">Cell height:</label>
221
+ <input
222
+ type="range"
223
+ min="10"
224
+ max="100"
225
+ value="29"
226
+ step="0.1"
227
+ id="cell-height-slider"
228
+ @input=${this.heightChanged}
229
+ />
230
+ <span>${this.cellHeight}rem</span>
231
+ </div>
232
+ <div>
233
+ <label for="cell-row-gap-slider">Row gap:</label>
234
+ <input
235
+ type="range"
236
+ min="0"
237
+ max="5"
238
+ value="1.7"
239
+ step="0.1"
240
+ id="cell-row-gap-slider"
241
+ @input=${this.rowGapChanged}
242
+ />
243
+ <span>${this.rowGap}rem</span>
244
+ </div>
245
+ <div>
246
+ <label for="cell-col-gap-slider">Col gap:</label>
247
+ <input
248
+ type="range"
249
+ min="0"
250
+ max="5"
251
+ value="1.7"
252
+ step="0.1"
253
+ id="cell-col-gap-slider"
254
+ @input=${this.colGapChanged}
255
+ />
256
+ <span>${this.colGap}rem</span>
257
+ </div>
258
+ </fieldset>
259
+
260
+ <fieldset class="other-controls">
261
+ <legend>Other Controls</legend>
262
+ <div class="checkbox-control">
263
+ <input
264
+ type="checkbox"
265
+ id="simulate-login"
266
+ @click=${this.loginChanged}
267
+ />
268
+ <label for="simulate-login">Simulate login</label>
269
+ </div>
270
+ <div class="checkbox-control">
271
+ <input
272
+ type="checkbox"
273
+ id="enable-date-picker"
274
+ checked
275
+ @click=${this.datePickerChanged}
276
+ />
277
+ <label for="enable-date-picker">Enable date picker</label>
278
+ </div>
279
+ <div class="checkbox-control">
280
+ <input
281
+ type="checkbox"
282
+ id="enable-facets"
283
+ checked
284
+ @click=${this.facetsChanged}
285
+ />
286
+ <label for="enable-facets">Enable facets</label>
287
+ </div>
288
+ <div class="checkbox-control indent">
289
+ <input
290
+ type="checkbox"
291
+ id="lazy-load-facets"
292
+ ?disabled=${this.suppressFacets}
293
+ @click=${this.lazyLoadFacetsChanged}
294
+ />
295
+ <label for="lazy-load-facets">Lazy load facets</label>
296
+ </div>
297
+ <div class="checkbox-control">
298
+ <input
299
+ type="checkbox"
300
+ id="enable-management"
301
+ @click=${this.manageModeCheckboxChanged}
302
+ />
303
+ <label for="enable-management">Enable manage mode</label>
304
+ </div>
305
+ <div class="checkbox-control indent">
306
+ <input
307
+ type="checkbox"
308
+ id="enable-search-management"
309
+ @click=${this.SearchManageModeCheckboxChanged}
310
+ />
311
+ <label for="enable-search-management">Search</label>
312
+ </div>
313
+ <div class="checkbox-control">
314
+ <input
315
+ type="checkbox"
316
+ id="enable-smart-facet-bar"
317
+ @click=${this.smartFacetBarCheckboxChanged}
318
+ />
319
+ <label for="enable-smart-facet-bar">Enable smart facet bar</label>
320
+ </div>
321
+ <div class="checkbox-control">
322
+ <input
323
+ type="checkbox"
324
+ id="enable-tile-actions"
325
+ @click=${this.tileActionsCheckboxChanged}
326
+ />
327
+ <label for="enable-tile-actions"
328
+ >Enable tile action buttons</label
329
+ >
330
+ </div>
331
+ </fieldset>
332
+
333
+ <fieldset class="cb-visual-appearance">
334
+ <legend>CB Visual Appearance</legend>
335
+ <div class="checkbox-control">
336
+ <input
337
+ type="checkbox"
338
+ id="show-facet-group-outline-check"
339
+ @click=${this.toggleFacetGroupOutline}
340
+ />
341
+ <label for="show-facet-group-outline-check">
342
+ Show facet group outlines
343
+ </label>
344
+ </div>
345
+ <div class="checkbox-control">
346
+ <input
347
+ type="checkbox"
348
+ id="show-outline-check"
349
+ @click=${this.outlineChanged}
350
+ />
351
+ <label for="show-outline-check">Show cell outlines</label>
352
+ </div>
353
+ <div class="checkbox-control">
354
+ <input
355
+ type="checkbox"
356
+ id="minimal-tiles-check"
357
+ @click=${this.minimalTilesChanged}
358
+ />
359
+ <label for="minimal-tiles-check">Minimal tile layouts</label>
360
+ </div>
361
+ </fieldset>
362
+
363
+ <fieldset class="user-profile-controls">
364
+ <legend>User Profile Controls</legend>
365
+ <div class="checkbox-control">
366
+ <input
367
+ type="checkbox"
368
+ id="enable-facet-top-slot"
369
+ @click=${this.facetTopSlotCheckboxChanged}
370
+ />
371
+ <label for="enable-facet-top-slot">Show facet top slot</label>
372
+ </div>
373
+ <div class="checkbox-control">
374
+ <input
375
+ type="checkbox"
376
+ id="enable-cb-top-slot"
377
+ @click=${this.cbTopSlotCheckboxChanged}
378
+ />
379
+ <label for="enable-cb-top-slot">Show CB top slot</label>
380
+ </div>
381
+ <div class="checkbox-control">
382
+ <input
383
+ type="checkbox"
384
+ id="enable-sortbar-left-slot"
385
+ @click=${this.sortBarLeftSlotCheckboxChanged}
386
+ />
387
+ <label for="enable-sortbar-left-slot"
388
+ >Show sortbar left slot</label
389
+ >
390
+ </div>
391
+ <div class="checkbox-control">
392
+ <input
393
+ type="checkbox"
394
+ id="enable-sortbar-right-slot"
395
+ @click=${this.sortBarRightSlotCheckboxChanged}
396
+ />
397
+ <label for="enable-sortbar-right-slot"
398
+ >Show sortbar right slot</label
399
+ >
400
+ </div>
401
+ <div class="checkbox-control">
402
+ <input
403
+ type="checkbox"
404
+ id="enable-result-last-tile-slot"
405
+ @click=${this.resultLastTileSlotCheckboxChanged}
406
+ />
407
+ <label for="enable-result-last-tile-slot">
408
+ Show result last tile slot
409
+ </label>
410
+ </div>
411
+ <div class="checkbox-control">
412
+ <input
413
+ type="checkbox"
414
+ id="enable-replaced-sort-options"
415
+ @click=${this.replaceSortOptionsChanged}
416
+ />
417
+ <label for="enable-replaced-sort-options">
418
+ Show replaced sort options
419
+ </label>
420
+ </div>
421
+ <div class="text-input-control">
422
+ <label for="within-profile-input">withinProfile</label>
423
+ <input
424
+ type="text"
425
+ id="within-profile-input"
426
+ placeholder="e.g. @foobar"
427
427
  @change=${(e) => {
428
428
  const val = e.target.value.trim();
429
429
  this.withinProfile = val || undefined;
430
- }}
431
- />
432
- </div>
433
- <details class="profile-element-controls">
434
- <summary>
435
- Profile tab
430
+ }}
431
+ />
432
+ </div>
433
+ <details class="profile-element-controls">
434
+ <summary>
435
+ Profile tab
436
436
  (profileElement)${this.profileElement
437
437
  ? html `: <strong>${this.profileElement}</strong>`
438
- : ''}
439
- </summary>
440
- <div class="profile-element-options">
441
- <div class="checkbox-control">
442
- <input
443
- type="radio"
444
- id="profile-none"
445
- name="profile-element"
446
- value=""
447
- checked
448
- @click=${this.profileElementChanged}
449
- />
450
- <label for="profile-none">None</label>
451
- </div>
438
+ : ''}
439
+ </summary>
440
+ <div class="profile-element-options">
441
+ <div class="checkbox-control">
442
+ <input
443
+ type="radio"
444
+ id="profile-none"
445
+ name="profile-element"
446
+ value=""
447
+ checked
448
+ @click=${this.profileElementChanged}
449
+ />
450
+ <label for="profile-none">None</label>
451
+ </div>
452
452
  ${[
453
453
  'uploads',
454
454
  'favorites',
@@ -457,84 +457,84 @@ let AppRoot = class AppRoot extends LitElement {
457
457
  'lending',
458
458
  'web_archives',
459
459
  'forum_posts',
460
- ].map(tab => html `
461
- <div class="checkbox-control">
462
- <input
463
- type="radio"
464
- id="profile-${tab}"
465
- name="profile-element"
466
- value="${tab}"
467
- @click=${this.profileElementChanged}
468
- />
469
- <label for="profile-${tab}">${tab}</label>
470
- </div>
471
- `)}
472
- </div>
473
- </details>
474
- </fieldset>
475
-
476
- <fieldset class="user-profile-controls">
477
- <legend>Set Placeholder Types</legend>
478
- <div class="checkbox-control">
479
- <input
480
- id="enable-loading-placeholder"
481
- type="radio"
482
- @click=${() => this.setPlaceholderType('loading-placeholder')}
483
- name="placeholder-radio"
484
- />
485
- <label for="enable-loading-placeholder"
486
- >Loading Placeholder</label
487
- >
488
- </div>
489
- <div class="checkbox-control">
490
- <input
491
- id="enable-empty-placeholder"
492
- type="radio"
493
- @click=${() => this.setPlaceholderType('error-placeholder')}
494
- value="empty-placeholder"
495
- name="placeholder-radio"
496
- />
497
- <label for="enable-empty-placeholder">Empty Placeholder</label>
498
- </div>
499
- </fieldset>
500
- </div>
501
- <button id="toggle-dev-tools-btn" @click=${this.toggleDevTools}>
502
- Toggle Search Controls
503
- </button>
504
- </div>
505
- <div id="collection-browser-container">
506
- <collection-browser
507
- facetPaneVisible
508
- .baseNavigationUrl=${'https://archive.org'}
509
- .baseImageUrl=${'https://archive.org'}
510
- .searchService=${this.searchService}
511
- .resizeObserver=${this.resizeObserver}
512
- .showHistogramDatePicker=${true}
513
- .suppressFacets=${this.suppressFacets}
514
- .lazyLoadFacets=${this.lazyLoadFacets}
515
- .loggedIn=${this.loggedIn}
516
- .modalManager=${this.modalManager}
517
- .analyticsHandler=${this.analyticsHandler}
518
- .withinProfile=${this.withinProfile}
519
- .profileElement=${this.profileElement}
520
- .pageContext=${'search'}
521
- @visiblePageChanged=${this.visiblePageChanged}
522
- @baseQueryChanged=${this.baseQueryChanged}
523
- @searchTypeChanged=${this.searchTypeChanged}
524
- @manageModeChanged=${this.manageModeChanged}
525
- @itemRemovalRequested=${this.handleItemRemovalRequest}
526
- @itemManagerRequested=${this.handleItemManagerRequest}
527
- @tileActionClicked=${this.handleTileActionClicked}
528
- >
460
+ ].map(tab => html `
461
+ <div class="checkbox-control">
462
+ <input
463
+ type="radio"
464
+ id="profile-${tab}"
465
+ name="profile-element"
466
+ value="${tab}"
467
+ @click=${this.profileElementChanged}
468
+ />
469
+ <label for="profile-${tab}">${tab}</label>
470
+ </div>
471
+ `)}
472
+ </div>
473
+ </details>
474
+ </fieldset>
475
+
476
+ <fieldset class="user-profile-controls">
477
+ <legend>Set Placeholder Types</legend>
478
+ <div class="checkbox-control">
479
+ <input
480
+ id="enable-loading-placeholder"
481
+ type="radio"
482
+ @click=${() => this.setPlaceholderType('loading-placeholder')}
483
+ name="placeholder-radio"
484
+ />
485
+ <label for="enable-loading-placeholder"
486
+ >Loading Placeholder</label
487
+ >
488
+ </div>
489
+ <div class="checkbox-control">
490
+ <input
491
+ id="enable-empty-placeholder"
492
+ type="radio"
493
+ @click=${() => this.setPlaceholderType('error-placeholder')}
494
+ value="empty-placeholder"
495
+ name="placeholder-radio"
496
+ />
497
+ <label for="enable-empty-placeholder">Empty Placeholder</label>
498
+ </div>
499
+ </fieldset>
500
+ </div>
501
+ <button id="toggle-dev-tools-btn" @click=${this.toggleDevTools}>
502
+ Toggle Search Controls
503
+ </button>
504
+ </div>
505
+ <div id="collection-browser-container">
506
+ <collection-browser
507
+ facetPaneVisible
508
+ .baseNavigationUrl=${'https://archive.org'}
509
+ .baseImageUrl=${'https://archive.org'}
510
+ .searchService=${this.searchService}
511
+ .resizeObserver=${this.resizeObserver}
512
+ .showHistogramDatePicker=${true}
513
+ .suppressFacets=${this.suppressFacets}
514
+ .lazyLoadFacets=${this.lazyLoadFacets}
515
+ .loggedIn=${this.loggedIn}
516
+ .modalManager=${this.modalManager}
517
+ .analyticsHandler=${this.analyticsHandler}
518
+ .withinProfile=${this.withinProfile}
519
+ .profileElement=${this.profileElement}
520
+ .pageContext=${'search'}
521
+ @visiblePageChanged=${this.visiblePageChanged}
522
+ @baseQueryChanged=${this.baseQueryChanged}
523
+ @searchTypeChanged=${this.searchTypeChanged}
524
+ @manageModeChanged=${this.manageModeChanged}
525
+ @itemRemovalRequested=${this.handleItemRemovalRequest}
526
+ @itemManagerRequested=${this.handleItemManagerRequest}
527
+ @tileActionClicked=${this.handleTileActionClicked}
528
+ >
529
529
  ${this.toggleSlots
530
530
  ? html `<div slot="sortbar-left-slot">Sort Slot</div>`
531
- : nothing}
531
+ : nothing}
532
532
  ${this.toggleSlots
533
533
  ? html `<div slot="facet-top-slot">Facet Slot</div>`
534
- : nothing}
535
- </collection-browser>
536
- </div>
537
- <modal-manager></modal-manager>
534
+ : nothing}
535
+ </collection-browser>
536
+ </div>
537
+ <modal-manager></modal-manager>
538
538
  `;
539
539
  }
540
540
  async setPlaceholderType(type) {
@@ -874,262 +874,262 @@ let AppRoot = class AppRoot extends LitElement {
874
874
  const input = e.target;
875
875
  this.profileElement = input.value || undefined;
876
876
  }
877
- static { this.styles = css `
878
- :host {
879
- display: block;
880
- --primaryButtonBGColor: #194880;
881
- --ia-theme-link-color: #4b64ff;
882
- }
883
-
884
- /* add the following styles to ensure proper modal visibility */
885
- body.modal-manager-open {
886
- overflow: hidden;
887
- }
888
- modal-manager {
889
- display: none;
890
- }
891
- modal-manager[mode='open'] {
892
- display: block;
893
- }
894
- modal-manager.remove-items {
895
- --modalWidth: 58rem;
896
- --modalBorder: 2px solid var(--primaryButtonBGColor, #194880);
897
- --modalTitleLineHeight: 4rem;
898
- --modalTitleFontSize: 1.8rem;
899
- }
900
- modal-manager.more-search-facets {
901
- --modalWidth: 85rem;
902
- --modalBorder: 2px solid var(--primaryButtonBGColor, #194880);
903
- --modalTitleLineHeight: 4rem;
904
- --modalTitleFontSize: 1.8rem;
905
- --modalCornerRadius: 0;
906
- --modalBottomPadding: 0;
907
- --modalBottomMargin: 0;
908
- --modalScrollOffset: 0;
909
- --modalCornerRadius: 0.5rem;
910
- }
911
- modal-manager.expanded-date-picker {
912
- --modalWidth: 58rem;
913
- --modalBorder: 2px solid var(--primaryButtonBGColor, #194880);
914
- --modalTitleLineHeight: 4rem;
915
- --modalTitleFontSize: 1.8rem;
916
- --modalCornerRadius: 0;
917
- --modalBottomPadding: 0;
918
- --modalBottomMargin: 0;
919
- --modalScrollOffset: 0;
920
- --modalCornerRadius: 0.5rem;
921
- }
922
-
923
- input,
924
- button {
925
- font-size: 1.6rem;
926
- }
927
-
928
- modal-manager.showFacetGroupOutlines,
929
- collection-browser.showFacetGroupOutlines {
930
- --facet-row-border-top: 1px solid red;
931
- --facet-row-border-bottom: 1px solid blue;
932
- }
933
-
934
- collection-browser {
935
- /* Same as production */
936
- max-width: 135rem;
937
- margin: auto;
938
- }
939
-
940
- #collection-browser-container {
941
- /* Same as production */
942
- padding-left: 0.5rem;
943
- margin-bottom: 2rem;
944
- }
945
-
946
- #base-query-field {
947
- width: 300px;
948
- }
949
-
950
- .dev-tool-container {
951
- position: relative;
952
- }
953
- #dev-tools {
954
- position: relative;
955
- top: 0;
956
- left: 0;
957
- z-index: 1;
958
- -webkit-backdrop-filter: blur(10px);
959
- backdrop-filter: blur(10px);
960
- padding: 0.5rem 1rem;
961
- border: 1px solid black;
962
- font-size: 1.4rem;
963
- background: #ffffffb3;
964
- }
965
-
966
- #dev-tools > * {
967
- display: flex;
968
- }
969
-
970
- #toggle-dev-tools-btn {
971
- position: fixed;
972
- left: 77.4%;
973
- top: 0;
974
- background: red;
975
- padding: 5px;
976
- color: white;
977
- font-size: 1.4rem;
978
- margin: 0;
979
- z-index: 1;
980
- cursor: pointer;
981
- }
982
-
983
- #search-and-page-inputs {
984
- flex-wrap: wrap;
985
- row-gap: 2px;
986
- }
987
-
988
- #search-and-page-inputs > form {
989
- margin-right: 1rem;
990
- }
991
-
992
- #search-and-page-inputs label {
993
- display: inline-block;
994
- min-width: 50px;
995
- }
996
-
997
- #page-number-input {
998
- width: 75px;
999
- }
1000
-
1001
- .search-type {
1002
- margin-right: 1rem;
1003
- }
1004
-
1005
- .cell-controls {
1006
- display: flex;
1007
- flex-wrap: wrap;
1008
- }
1009
- .cell-controls div {
1010
- display: flex;
1011
- align-items: center;
1012
- }
1013
- .cell-controls input[type='range'] {
1014
- width: 120px;
1015
- }
1016
- #cell-controls label {
1017
- display: inline-block;
1018
- width: 10rem;
1019
- }
1020
-
1021
- #cell-size-control,
1022
- #cell-gap-control {
1023
- flex-basis: calc(50% - 1rem);
1024
- flex-grow: 1;
1025
- }
1026
-
1027
- #cell-gap-control {
1028
- margin-left: 1rem;
1029
- }
1030
-
1031
- #checkbox-controls {
1032
- padding-top: 0.5rem;
1033
- flex-wrap: wrap;
1034
- }
1035
-
1036
- .checkbox-control {
1037
- flex-basis: 50%;
1038
- }
1039
- .checkbox-control.indent {
1040
- margin-left: 10px;
1041
- }
1042
- .checkbox-control label {
1043
- user-select: none;
1044
- }
1045
-
1046
- #last-event {
1047
- background-color: aliceblue;
1048
- padding: 5px;
1049
- margin: 5px auto;
1050
- }
1051
-
1052
- .hidden {
1053
- display: none;
1054
- }
1055
-
1056
- #toggle-controls {
1057
- background-color: lightskyblue;
1058
- padding: 5px;
1059
- margin: 5px auto;
1060
- }
1061
-
1062
- #search-types {
1063
- margin: 5px auto;
1064
- background-color: aliceblue;
1065
- font-size: 1.6rem;
1066
- }
1067
-
1068
- // slots
1069
- div[slot='cb-top-slot'] {
1070
- height: 50px;
1071
- border: 1px solid red;
1072
- background: bisque;
1073
- }
1074
- div[slot='facet-top-slot'] {
1075
- border: 1px solid red;
1076
- width: 100%;
1077
- height: 150px;
1078
- background-color: darkseagreen;
1079
- }
1080
- div[slot='sort-slot-left'] {
1081
- height: 50px;
1082
- border: 1px solid red;
1083
- background: bisque;
1084
- }
1085
-
1086
- /* user profile controls */
1087
- .user-profile-controls {
1088
- width: fit-content;
1089
- }
1090
-
1091
- .profile-element-controls {
1092
- margin-top: 4px;
1093
- }
1094
-
1095
- .profile-element-controls summary {
1096
- cursor: pointer;
1097
- user-select: none;
1098
- }
1099
-
1100
- .profile-element-options {
1101
- display: grid;
1102
- grid-template-columns: 1fr 1fr;
1103
- column-gap: 8px;
1104
- margin-top: 4px;
1105
- }
1106
-
1107
- fieldset {
1108
- display: inline-block !important;
1109
- }
1110
-
1111
- .result-last-tile {
1112
- border-radius: 4px;
1113
- background-color: white;
1114
- border: 3px dashed #555;
1115
- box-shadow: none;
1116
- display: grid;
1117
- align-content: center;
1118
- }
1119
- .result-last-tile:hover {
1120
- box-shadow: rgba(8, 8, 32, 0.8) 0 0 6px 2px;
1121
- transition: box-shadow 0.1s ease 0s;
1122
- cursor: pointer;
1123
- border: 3px dashed #4b64ff;
1124
- }
1125
- .result-last-tile h3 {
1126
- margin-bottom: 4rem;
1127
- margin: 0px auto;
1128
- font-size: 2.8rem;
1129
- color: rgb(44, 44, 44);
1130
- font-weight: 200;
1131
- text-align: center;
1132
- }
877
+ static { this.styles = css `
878
+ :host {
879
+ display: block;
880
+ --primaryButtonBGColor: #194880;
881
+ --ia-theme-link-color: #4b64ff;
882
+ }
883
+
884
+ /* add the following styles to ensure proper modal visibility */
885
+ body.modal-manager-open {
886
+ overflow: hidden;
887
+ }
888
+ modal-manager {
889
+ display: none;
890
+ }
891
+ modal-manager[mode='open'] {
892
+ display: block;
893
+ }
894
+ modal-manager.remove-items {
895
+ --modalWidth: 58rem;
896
+ --modalBorder: 2px solid var(--primaryButtonBGColor, #194880);
897
+ --modalTitleLineHeight: 4rem;
898
+ --modalTitleFontSize: 1.8rem;
899
+ }
900
+ modal-manager.more-search-facets {
901
+ --modalWidth: 85rem;
902
+ --modalBorder: 2px solid var(--primaryButtonBGColor, #194880);
903
+ --modalTitleLineHeight: 4rem;
904
+ --modalTitleFontSize: 1.8rem;
905
+ --modalCornerRadius: 0;
906
+ --modalBottomPadding: 0;
907
+ --modalBottomMargin: 0;
908
+ --modalScrollOffset: 0;
909
+ --modalCornerRadius: 0.5rem;
910
+ }
911
+ modal-manager.expanded-date-picker {
912
+ --modalWidth: 58rem;
913
+ --modalBorder: 2px solid var(--primaryButtonBGColor, #194880);
914
+ --modalTitleLineHeight: 4rem;
915
+ --modalTitleFontSize: 1.8rem;
916
+ --modalCornerRadius: 0;
917
+ --modalBottomPadding: 0;
918
+ --modalBottomMargin: 0;
919
+ --modalScrollOffset: 0;
920
+ --modalCornerRadius: 0.5rem;
921
+ }
922
+
923
+ input,
924
+ button {
925
+ font-size: 1.6rem;
926
+ }
927
+
928
+ modal-manager.showFacetGroupOutlines,
929
+ collection-browser.showFacetGroupOutlines {
930
+ --facet-row-border-top: 1px solid red;
931
+ --facet-row-border-bottom: 1px solid blue;
932
+ }
933
+
934
+ collection-browser {
935
+ /* Same as production */
936
+ max-width: 135rem;
937
+ margin: auto;
938
+ }
939
+
940
+ #collection-browser-container {
941
+ /* Same as production */
942
+ padding-left: 0.5rem;
943
+ margin-bottom: 2rem;
944
+ }
945
+
946
+ #base-query-field {
947
+ width: 300px;
948
+ }
949
+
950
+ .dev-tool-container {
951
+ position: relative;
952
+ }
953
+ #dev-tools {
954
+ position: relative;
955
+ top: 0;
956
+ left: 0;
957
+ z-index: 1;
958
+ -webkit-backdrop-filter: blur(10px);
959
+ backdrop-filter: blur(10px);
960
+ padding: 0.5rem 1rem;
961
+ border: 1px solid black;
962
+ font-size: 1.4rem;
963
+ background: #ffffffb3;
964
+ }
965
+
966
+ #dev-tools > * {
967
+ display: flex;
968
+ }
969
+
970
+ #toggle-dev-tools-btn {
971
+ position: fixed;
972
+ left: 77.4%;
973
+ top: 0;
974
+ background: red;
975
+ padding: 5px;
976
+ color: white;
977
+ font-size: 1.4rem;
978
+ margin: 0;
979
+ z-index: 1;
980
+ cursor: pointer;
981
+ }
982
+
983
+ #search-and-page-inputs {
984
+ flex-wrap: wrap;
985
+ row-gap: 2px;
986
+ }
987
+
988
+ #search-and-page-inputs > form {
989
+ margin-right: 1rem;
990
+ }
991
+
992
+ #search-and-page-inputs label {
993
+ display: inline-block;
994
+ min-width: 50px;
995
+ }
996
+
997
+ #page-number-input {
998
+ width: 75px;
999
+ }
1000
+
1001
+ .search-type {
1002
+ margin-right: 1rem;
1003
+ }
1004
+
1005
+ .cell-controls {
1006
+ display: flex;
1007
+ flex-wrap: wrap;
1008
+ }
1009
+ .cell-controls div {
1010
+ display: flex;
1011
+ align-items: center;
1012
+ }
1013
+ .cell-controls input[type='range'] {
1014
+ width: 120px;
1015
+ }
1016
+ #cell-controls label {
1017
+ display: inline-block;
1018
+ width: 10rem;
1019
+ }
1020
+
1021
+ #cell-size-control,
1022
+ #cell-gap-control {
1023
+ flex-basis: calc(50% - 1rem);
1024
+ flex-grow: 1;
1025
+ }
1026
+
1027
+ #cell-gap-control {
1028
+ margin-left: 1rem;
1029
+ }
1030
+
1031
+ #checkbox-controls {
1032
+ padding-top: 0.5rem;
1033
+ flex-wrap: wrap;
1034
+ }
1035
+
1036
+ .checkbox-control {
1037
+ flex-basis: 50%;
1038
+ }
1039
+ .checkbox-control.indent {
1040
+ margin-left: 10px;
1041
+ }
1042
+ .checkbox-control label {
1043
+ user-select: none;
1044
+ }
1045
+
1046
+ #last-event {
1047
+ background-color: aliceblue;
1048
+ padding: 5px;
1049
+ margin: 5px auto;
1050
+ }
1051
+
1052
+ .hidden {
1053
+ display: none;
1054
+ }
1055
+
1056
+ #toggle-controls {
1057
+ background-color: lightskyblue;
1058
+ padding: 5px;
1059
+ margin: 5px auto;
1060
+ }
1061
+
1062
+ #search-types {
1063
+ margin: 5px auto;
1064
+ background-color: aliceblue;
1065
+ font-size: 1.6rem;
1066
+ }
1067
+
1068
+ // slots
1069
+ div[slot='cb-top-slot'] {
1070
+ height: 50px;
1071
+ border: 1px solid red;
1072
+ background: bisque;
1073
+ }
1074
+ div[slot='facet-top-slot'] {
1075
+ border: 1px solid red;
1076
+ width: 100%;
1077
+ height: 150px;
1078
+ background-color: darkseagreen;
1079
+ }
1080
+ div[slot='sort-slot-left'] {
1081
+ height: 50px;
1082
+ border: 1px solid red;
1083
+ background: bisque;
1084
+ }
1085
+
1086
+ /* user profile controls */
1087
+ .user-profile-controls {
1088
+ width: fit-content;
1089
+ }
1090
+
1091
+ .profile-element-controls {
1092
+ margin-top: 4px;
1093
+ }
1094
+
1095
+ .profile-element-controls summary {
1096
+ cursor: pointer;
1097
+ user-select: none;
1098
+ }
1099
+
1100
+ .profile-element-options {
1101
+ display: grid;
1102
+ grid-template-columns: 1fr 1fr;
1103
+ column-gap: 8px;
1104
+ margin-top: 4px;
1105
+ }
1106
+
1107
+ fieldset {
1108
+ display: inline-block !important;
1109
+ }
1110
+
1111
+ .result-last-tile {
1112
+ border-radius: 4px;
1113
+ background-color: white;
1114
+ border: 3px dashed #555;
1115
+ box-shadow: none;
1116
+ display: grid;
1117
+ align-content: center;
1118
+ }
1119
+ .result-last-tile:hover {
1120
+ box-shadow: rgba(8, 8, 32, 0.8) 0 0 6px 2px;
1121
+ transition: box-shadow 0.1s ease 0s;
1122
+ cursor: pointer;
1123
+ border: 3px dashed #4b64ff;
1124
+ }
1125
+ .result-last-tile h3 {
1126
+ margin-bottom: 4rem;
1127
+ margin: 0px auto;
1128
+ font-size: 2.8rem;
1129
+ color: rgb(44, 44, 44);
1130
+ font-weight: 200;
1131
+ text-align: center;
1132
+ }
1133
1133
  `; }
1134
1134
  };
1135
1135
  __decorate([