@internetarchive/collection-browser 4.7.0 → 4.7.1-alpha-webdev9189.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 (391) hide show
  1. package/.husky/pre-commit +0 -0
  2. package/dist/src/collection-browser.js +24 -2
  3. package/dist/src/collection-browser.js.map +1 -1
  4. package/dist/src/sort-filter-bar/sort-filter-bar.js +1 -0
  5. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  6. package/dist/test/collection-browser.test.js +34 -0
  7. package/dist/test/collection-browser.test.js.map +1 -1
  8. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +22 -0
  9. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  10. package/package.json +18 -16
  11. package/src/collection-browser.ts +26 -4
  12. package/src/sort-filter-bar/sort-filter-bar.ts +1 -0
  13. package/test/collection-browser.test.ts +55 -0
  14. package/test/sort-filter-bar/sort-filter-bar.test.ts +29 -0
  15. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.editorconfig +0 -29
  16. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.github/workflows/ci.yml +0 -27
  17. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.github/workflows/gh-pages-main.yml +0 -39
  18. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.github/workflows/npm-publish.yml +0 -39
  19. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.github/workflows/pr-preview.yml +0 -38
  20. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.husky/pre-commit +0 -1
  21. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/.prettierignore +0 -1
  22. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/LICENSE +0 -661
  23. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/README.md +0 -84
  24. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/eslint.config.mjs +0 -53
  25. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/index.html +0 -24
  26. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/index.ts +0 -29
  27. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/local.archive.org.cert +0 -86
  28. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/local.archive.org.key +0 -27
  29. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/package.json +0 -120
  30. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/renovate.json +0 -6
  31. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/app-root.ts +0 -1284
  32. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/arrow-left.ts +0 -10
  33. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/arrow-right.ts +0 -10
  34. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/chevron.ts +0 -4
  35. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/close-circle-dark.ts +0 -5
  36. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/contract.ts +0 -9
  37. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/empty-query.ts +0 -5
  38. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/expand.ts +0 -9
  39. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/eye-closed.ts +0 -5
  40. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/eye.ts +0 -5
  41. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/favorite-filled.ts +0 -10
  42. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/favorite-unfilled.ts +0 -9
  43. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/filter.ts +0 -10
  44. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/login-required.ts +0 -18
  45. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/account.ts +0 -14
  46. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/audio.ts +0 -14
  47. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/collection.ts +0 -12
  48. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/data.ts +0 -15
  49. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/etree.ts +0 -14
  50. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/film.ts +0 -14
  51. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/images.ts +0 -13
  52. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/radio.ts +0 -15
  53. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/search.ts +0 -14
  54. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/software.ts +0 -13
  55. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/texts.ts +0 -13
  56. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/tv-commercial.ts +0 -12
  57. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/tv-fact-check.ts +0 -12
  58. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/tv-quote.ts +0 -12
  59. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/tv.ts +0 -14
  60. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/video.ts +0 -14
  61. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/mediatype/web.ts +0 -13
  62. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/null-result.ts +0 -5
  63. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/quote.ts +0 -7
  64. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/restricted.ts +0 -13
  65. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/reviews.ts +0 -11
  66. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/upload.ts +0 -12
  67. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/assets/img/icons/views.ts +0 -11
  68. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/circular-activity-indicator.ts +0 -64
  69. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-browser.ts +0 -3165
  70. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/facet-row.ts +0 -309
  71. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/facet-tombstone-row.ts +0 -40
  72. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/facets-template.ts +0 -85
  73. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/models.ts +0 -10
  74. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/more-facets-content.ts +0 -644
  75. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/more-facets-pagination.ts +0 -294
  76. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/dedupe.ts +0 -44
  77. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.ts +0 -27
  78. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/index.ts +0 -3
  79. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.ts +0 -17
  80. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.ts +0 -70
  81. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.ts +0 -79
  82. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.ts +0 -93
  83. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/models.ts +0 -36
  84. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-bar.ts +0 -437
  85. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-button.ts +0 -145
  86. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-dropdown.ts +0 -185
  87. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-equals.ts +0 -16
  88. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/smart-facets/smart-facet-heuristics.ts +0 -26
  89. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets/toggle-switch.ts +0 -174
  90. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/collection-facets.ts +0 -1013
  91. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/data-source/collection-browser-data-source-interface.ts +0 -351
  92. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/data-source/collection-browser-data-source.ts +0 -1474
  93. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/data-source/collection-browser-query-state.ts +0 -60
  94. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/data-source/models.ts +0 -56
  95. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/empty-placeholder.ts +0 -192
  96. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/expanded-date-picker.ts +0 -191
  97. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/language-code-handler/language-code-handler.ts +0 -64
  98. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/language-code-handler/language-code-mapping.ts +0 -564
  99. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/manage/manage-bar.ts +0 -276
  100. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/manage/remove-items-modal-content.ts +0 -102
  101. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/mediatype/mediatype-config.ts +0 -146
  102. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/models.ts +0 -895
  103. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/restoration-state-handler.ts +0 -550
  104. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/alpha-bar-tooltip.ts +0 -53
  105. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/alpha-bar.ts +0 -252
  106. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/compact.ts +0 -5
  107. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/list.ts +0 -5
  108. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/sort-toggle-disabled.ts +0 -15
  109. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/sort-toggle-down.ts +0 -17
  110. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/sort-toggle-up.ts +0 -17
  111. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/sort-triangle.ts +0 -5
  112. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/img/tile.ts +0 -5
  113. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/sort-filter-bar/sort-filter-bar.ts +0 -733
  114. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/styles/ia-button.ts +0 -139
  115. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/styles/item-image-styles.ts +0 -124
  116. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/styles/sr-only.ts +0 -18
  117. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/styles/tile-action-styles.ts +0 -59
  118. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/base-tile-component.ts +0 -124
  119. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/collection-browser-loading-tile.ts +0 -26
  120. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/account-tile.ts +0 -113
  121. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/collection-tile.ts +0 -184
  122. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/item-tile.ts +0 -347
  123. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/search-tile.ts +0 -90
  124. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/styles/tile-grid-shared-styles.ts +0 -130
  125. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/grid/tile-stats.ts +0 -211
  126. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/hover/hover-pane-controller.ts +0 -638
  127. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/hover/tile-hover-pane.ts +0 -184
  128. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/image-block.ts +0 -162
  129. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/item-image.ts +0 -214
  130. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/list/tile-list-compact-header.ts +0 -112
  131. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/list/tile-list-compact.ts +0 -278
  132. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/list/tile-list.ts +0 -718
  133. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/models.ts +0 -21
  134. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/overlay/icon-overlay.ts +0 -57
  135. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/overlay/text-overlay.ts +0 -79
  136. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/review-block.ts +0 -130
  137. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/text-snippet-block.ts +0 -132
  138. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/tile-dispatcher.ts +0 -637
  139. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/tile-display-value-provider.ts +0 -133
  140. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/tiles/tile-mediatype-icon.ts +0 -133
  141. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/analytics-events.ts +0 -29
  142. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/array-equals.ts +0 -8
  143. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/collapse-repeated-quotes.ts +0 -13
  144. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/date-filter-field.ts +0 -11
  145. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/facet-utils.ts +0 -183
  146. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/format-count.ts +0 -95
  147. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/format-date.ts +0 -62
  148. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/format-unit-size.ts +0 -43
  149. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/local-date-from-utc.ts +0 -15
  150. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/log.ts +0 -14
  151. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/resolve-mediatype.ts +0 -26
  152. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/src/utils/sha1.ts +0 -9
  153. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-browser.test.ts +0 -2639
  154. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/facet-row.test.ts +0 -421
  155. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/facets-template.test.ts +0 -139
  156. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/more-facets-content.test.ts +0 -231
  157. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/more-facets-pagination.test.ts +0 -201
  158. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets/toggle-switch.test.ts +0 -164
  159. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/collection-facets.test.ts +0 -928
  160. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/data-source/collection-browser-data-source.test.ts +0 -193
  161. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/empty-placeholder.test.ts +0 -88
  162. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/expanded-date-picker.test.ts +0 -201
  163. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/icon-overlay.test.ts +0 -38
  164. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/image-block.test.ts +0 -247
  165. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/item-image.test.ts +0 -220
  166. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/manage/manage-bar.test.ts +0 -347
  167. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/manage/remove-items-modal-content.test.ts +0 -81
  168. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/mediatype-config.test.ts +0 -11
  169. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/mocks/mock-analytics-handler.ts +0 -30
  170. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/mocks/mock-search-responses.ts +0 -1364
  171. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/mocks/mock-search-service.ts +0 -134
  172. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/restoration-state-handler.test.ts +0 -480
  173. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/review-block.test.ts +0 -62
  174. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/sort-filter-bar/alpha-bar-tooltip.test.ts +0 -17
  175. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/sort-filter-bar/alpha-bar.test.ts +0 -101
  176. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/sort-filter-bar/sort-filter-bar.test.ts +0 -443
  177. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/text-overlay.test.ts +0 -55
  178. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/text-snippet-block.test.ts +0 -85
  179. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tile-stats.test.ts +0 -191
  180. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/grid/account-tile.test.ts +0 -121
  181. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/grid/collection-tile.test.ts +0 -114
  182. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/grid/item-tile.test.ts +0 -520
  183. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/grid/search-tile.test.ts +0 -75
  184. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/hover/hover-pane-controller.test.ts +0 -482
  185. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/hover/tile-hover-pane.test.ts +0 -80
  186. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/list/tile-list-compact-header.test.ts +0 -43
  187. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/list/tile-list-compact.test.ts +0 -282
  188. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/list/tile-list.test.ts +0 -576
  189. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/tile-dispatcher.test.ts +0 -320
  190. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/tile-display-value-provider.test.ts +0 -172
  191. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/tiles/tile-mediatype-icon.test.ts +0 -160
  192. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/array-equals.test.ts +0 -31
  193. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/format-count.test.ts +0 -32
  194. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/format-date.test.ts +0 -89
  195. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/format-unit-size.test.ts +0 -21
  196. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/test/utils/local-date-from-utc.test.ts +0 -37
  197. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/tsconfig.json +0 -25
  198. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/types/dompurify.d.ts +0 -1
  199. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/vite.config.ts +0 -29
  200. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/web-dev-server.config.mjs +0 -30
  201. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/web-test-runner.config.mjs +0 -52
  202. package/.claude/worktrees/WEBDEV-8677-bump-field-parsers/yarn.lock +0 -5965
  203. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/.editorconfig +0 -29
  204. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/.github/workflows/ci.yml +0 -29
  205. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/.github/workflows/gh-pages-main.yml +0 -41
  206. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/.github/workflows/npm-publish.yml +0 -49
  207. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/.github/workflows/pr-preview.yml +0 -40
  208. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/.husky/pre-commit +0 -1
  209. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/.prettierignore +0 -1
  210. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/LICENSE +0 -661
  211. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/README.md +0 -68
  212. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/eslint.config.mjs +0 -53
  213. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/index.html +0 -24
  214. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/index.ts +0 -29
  215. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/local.archive.org.cert +0 -86
  216. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/local.archive.org.key +0 -27
  217. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/package.json +0 -129
  218. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/pnpm-lock.yaml +0 -7366
  219. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/pnpm-workspace.yaml +0 -46
  220. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/renovate.json +0 -6
  221. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/app-root.ts +0 -1284
  222. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/arrow-left.ts +0 -10
  223. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/arrow-right.ts +0 -10
  224. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/chevron.ts +0 -4
  225. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/close-circle-dark.ts +0 -5
  226. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/contract.ts +0 -9
  227. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/empty-query.ts +0 -5
  228. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/expand.ts +0 -9
  229. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/eye-closed.ts +0 -5
  230. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/eye.ts +0 -5
  231. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/favorite-filled.ts +0 -10
  232. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/favorite-unfilled.ts +0 -9
  233. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/filter.ts +0 -10
  234. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/login-required.ts +0 -18
  235. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/account.ts +0 -14
  236. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/audio.ts +0 -14
  237. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/collection.ts +0 -12
  238. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/data.ts +0 -15
  239. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/etree.ts +0 -14
  240. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/film.ts +0 -14
  241. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/images.ts +0 -13
  242. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/radio.ts +0 -15
  243. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/search.ts +0 -14
  244. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/software.ts +0 -13
  245. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/texts.ts +0 -13
  246. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/tv-commercial.ts +0 -12
  247. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/tv-fact-check.ts +0 -12
  248. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/tv-quote.ts +0 -12
  249. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/tv.ts +0 -14
  250. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/video.ts +0 -14
  251. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/mediatype/web.ts +0 -13
  252. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/null-result.ts +0 -5
  253. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/quote.ts +0 -7
  254. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/restricted.ts +0 -13
  255. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/reviews.ts +0 -11
  256. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/upload.ts +0 -12
  257. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/assets/img/icons/views.ts +0 -11
  258. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/circular-activity-indicator.ts +0 -64
  259. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-browser.ts +0 -3165
  260. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/facet-row.ts +0 -309
  261. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/facet-tombstone-row.ts +0 -40
  262. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/facets-template.ts +0 -85
  263. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/models.ts +0 -10
  264. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/more-facets-content.ts +0 -644
  265. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/more-facets-pagination.ts +0 -294
  266. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/dedupe.ts +0 -44
  267. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.ts +0 -27
  268. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/heuristics/index.ts +0 -3
  269. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.ts +0 -17
  270. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.ts +0 -70
  271. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.ts +0 -79
  272. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.ts +0 -93
  273. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/models.ts +0 -36
  274. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/smart-facet-bar.ts +0 -437
  275. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/smart-facet-button.ts +0 -145
  276. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/smart-facet-dropdown.ts +0 -185
  277. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/smart-facet-equals.ts +0 -16
  278. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/smart-facets/smart-facet-heuristics.ts +0 -26
  279. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets/toggle-switch.ts +0 -174
  280. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/collection-facets.ts +0 -1013
  281. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/data-source/collection-browser-data-source-interface.ts +0 -351
  282. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/data-source/collection-browser-data-source.ts +0 -1474
  283. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/data-source/collection-browser-query-state.ts +0 -60
  284. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/data-source/models.ts +0 -56
  285. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/empty-placeholder.ts +0 -192
  286. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/expanded-date-picker.ts +0 -191
  287. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/language-code-handler/language-code-handler.ts +0 -64
  288. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/language-code-handler/language-code-mapping.ts +0 -564
  289. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/manage/manage-bar.ts +0 -276
  290. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/manage/remove-items-modal-content.ts +0 -102
  291. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/mediatype/mediatype-config.ts +0 -146
  292. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/models.ts +0 -895
  293. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/restoration-state-handler.ts +0 -550
  294. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/alpha-bar-tooltip.ts +0 -53
  295. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/alpha-bar.ts +0 -252
  296. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/img/compact.ts +0 -5
  297. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/img/list.ts +0 -5
  298. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/img/sort-toggle-disabled.ts +0 -15
  299. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/img/sort-toggle-down.ts +0 -17
  300. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/img/sort-toggle-up.ts +0 -17
  301. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/img/sort-triangle.ts +0 -5
  302. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/img/tile.ts +0 -5
  303. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/sort-filter-bar/sort-filter-bar.ts +0 -733
  304. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/styles/ia-button.ts +0 -139
  305. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/styles/item-image-styles.ts +0 -124
  306. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/styles/sr-only.ts +0 -18
  307. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/styles/tile-action-styles.ts +0 -59
  308. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/base-tile-component.ts +0 -124
  309. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/collection-browser-loading-tile.ts +0 -26
  310. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/grid/account-tile.ts +0 -113
  311. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/grid/collection-tile.ts +0 -184
  312. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/grid/item-tile.ts +0 -347
  313. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/grid/search-tile.ts +0 -90
  314. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/grid/styles/tile-grid-shared-styles.ts +0 -130
  315. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/grid/tile-stats.ts +0 -211
  316. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/hover/hover-pane-controller.ts +0 -638
  317. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/hover/tile-hover-pane.ts +0 -184
  318. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/image-block.ts +0 -162
  319. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/item-image.ts +0 -214
  320. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/list/tile-list-compact-header.ts +0 -112
  321. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/list/tile-list-compact.ts +0 -278
  322. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/list/tile-list.ts +0 -718
  323. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/models.ts +0 -21
  324. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/overlay/icon-overlay.ts +0 -57
  325. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/overlay/text-overlay.ts +0 -79
  326. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/review-block.ts +0 -130
  327. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/text-snippet-block.ts +0 -132
  328. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/tile-dispatcher.ts +0 -637
  329. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/tile-display-value-provider.ts +0 -133
  330. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/tiles/tile-mediatype-icon.ts +0 -133
  331. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/analytics-events.ts +0 -29
  332. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/array-equals.ts +0 -8
  333. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/collapse-repeated-quotes.ts +0 -13
  334. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/date-filter-field.ts +0 -11
  335. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/facet-utils.ts +0 -183
  336. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/format-count.ts +0 -95
  337. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/format-date.ts +0 -62
  338. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/format-unit-size.ts +0 -43
  339. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/local-date-from-utc.ts +0 -15
  340. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/log.ts +0 -14
  341. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/resolve-mediatype.ts +0 -26
  342. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/src/utils/sha1.ts +0 -9
  343. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/collection-browser.test.ts +0 -2639
  344. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/collection-facets/facet-row.test.ts +0 -421
  345. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/collection-facets/facets-template.test.ts +0 -139
  346. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/collection-facets/more-facets-content.test.ts +0 -231
  347. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/collection-facets/more-facets-pagination.test.ts +0 -201
  348. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/collection-facets/toggle-switch.test.ts +0 -164
  349. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/collection-facets.test.ts +0 -928
  350. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/data-source/collection-browser-data-source.test.ts +0 -193
  351. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/empty-placeholder.test.ts +0 -88
  352. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/expanded-date-picker.test.ts +0 -201
  353. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/icon-overlay.test.ts +0 -38
  354. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/image-block.test.ts +0 -247
  355. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/item-image.test.ts +0 -220
  356. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/manage/manage-bar.test.ts +0 -347
  357. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/manage/remove-items-modal-content.test.ts +0 -81
  358. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/mediatype-config.test.ts +0 -11
  359. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/mocks/mock-analytics-handler.ts +0 -30
  360. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/mocks/mock-search-responses.ts +0 -1364
  361. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/mocks/mock-search-service.ts +0 -134
  362. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/restoration-state-handler.test.ts +0 -480
  363. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/review-block.test.ts +0 -62
  364. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/sort-filter-bar/alpha-bar-tooltip.test.ts +0 -17
  365. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/sort-filter-bar/alpha-bar.test.ts +0 -101
  366. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/sort-filter-bar/sort-filter-bar.test.ts +0 -443
  367. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/text-overlay.test.ts +0 -55
  368. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/text-snippet-block.test.ts +0 -85
  369. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tile-stats.test.ts +0 -191
  370. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/grid/account-tile.test.ts +0 -121
  371. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/grid/collection-tile.test.ts +0 -114
  372. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/grid/item-tile.test.ts +0 -520
  373. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/grid/search-tile.test.ts +0 -75
  374. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/hover/hover-pane-controller.test.ts +0 -482
  375. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/hover/tile-hover-pane.test.ts +0 -80
  376. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/list/tile-list-compact-header.test.ts +0 -43
  377. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/list/tile-list-compact.test.ts +0 -282
  378. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/list/tile-list.test.ts +0 -576
  379. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/tile-dispatcher.test.ts +0 -320
  380. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/tile-display-value-provider.test.ts +0 -172
  381. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/tiles/tile-mediatype-icon.test.ts +0 -160
  382. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/utils/array-equals.test.ts +0 -31
  383. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/utils/format-count.test.ts +0 -32
  384. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/utils/format-date.test.ts +0 -89
  385. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/utils/format-unit-size.test.ts +0 -21
  386. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/test/utils/local-date-from-utc.test.ts +0 -37
  387. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/tsconfig.json +0 -25
  388. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/types/dompurify.d.ts +0 -1
  389. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/vite.config.ts +0 -29
  390. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/web-dev-server.config.mjs +0 -30
  391. package/.claude/worktrees/WEBDEV-9127-fix-publish-dist-tag/web-test-runner.config.mjs +0 -52
@@ -1,576 +0,0 @@
1
- import { expect, fixture } from '@open-wc/testing';
2
- import { html } from 'lit';
3
- import type { TileList } from '../../../src/tiles/list/tile-list';
4
-
5
- import '../../../src/tiles/list/tile-list';
6
- import type { TileModel } from '../../../src/models';
7
-
8
- describe('List Tile', () => {
9
- it('should render initial component', async () => {
10
- const el = await fixture<TileList>(
11
- html`<tile-list .model=${{}}></tile-list>`,
12
- );
13
-
14
- const listContainer = el.shadowRoot?.querySelector('#list-line');
15
- const itemTitle = el.shadowRoot?.querySelector('#title');
16
- const imageBlock = el.shadowRoot?.querySelector('image-block');
17
-
18
- expect(listContainer).to.exist;
19
- expect(itemTitle).to.exist;
20
- expect(imageBlock).to.exist;
21
- });
22
-
23
- it('should render the mobile template if below mobile breakpoint', async () => {
24
- const el = await fixture<TileList>(html`
25
- <tile-list .mobileBreakpoint=${500} .currentWidth=${400}> </tile-list>
26
- `);
27
-
28
- const listContainer = el.shadowRoot?.getElementById('list-line');
29
- const topLine = el.shadowRoot?.getElementById('list-line-top');
30
- const bottomLine = el.shadowRoot?.getElementById('list-line-bottom');
31
-
32
- expect(listContainer).to.exist;
33
- expect(listContainer?.classList.contains('mobile')).to.be.true;
34
- expect(topLine).to.exist;
35
- expect(bottomLine).to.exist;
36
- });
37
-
38
- it('should render title link with model href if provided', async () => {
39
- const el = await fixture<TileList>(html`
40
- <tile-list
41
- .baseNavigationUrl=${''}
42
- .model=${{ title: 'foo', href: '/foo/bar' }}
43
- ></tile-list>
44
- `);
45
-
46
- const title = el.shadowRoot?.querySelector('#title > a');
47
-
48
- expect(title).to.exist;
49
- expect(title?.getAttribute('href')).to.equal('/foo/bar');
50
- });
51
-
52
- it('should add title to image link if provided', async () => {
53
- const el = await fixture<TileList>(html`
54
- <tile-list
55
- .baseNavigationUrl=${''}
56
- .model=${{ title: 'foo', href: '/foo/bar' }}
57
- ></tile-list>
58
- `);
59
-
60
- const imageLink = el.shadowRoot?.querySelector('#image-link');
61
-
62
- expect(imageLink).to.exist;
63
- expect(imageLink?.getAttribute('title')).to.equal('View foo');
64
- });
65
-
66
- it('should render with creator element but not dates', async () => {
67
- const el = await fixture<TileList>(html`
68
- <tile-list .model=${{ creators: ['someone'] }}></tile-list>
69
- `);
70
-
71
- const creator = el.shadowRoot?.querySelector('#creator');
72
- const datesLine = el.shadowRoot?.querySelector('#dates-line');
73
-
74
- expect(creator).to.exist;
75
- expect(datesLine?.children.length).to.equal(0);
76
- });
77
-
78
- it('should render with snippet block when it has snippets', async () => {
79
- const el = await fixture<TileList>(html`
80
- <tile-list .model=${{ snippets: ['some {{{snippet}}} text'] }}>
81
- </tile-list>
82
- `);
83
-
84
- const snippetBlock = el.shadowRoot?.querySelector('text-snippet-block');
85
-
86
- expect(snippetBlock).to.exist;
87
- });
88
-
89
- it('should not render snippet block when no snippets are present', async () => {
90
- const el = await fixture<TileList>(html`<tile-list></tile-list>`);
91
-
92
- const snippetBlock = el.shadowRoot?.querySelector('text-snippet-block');
93
-
94
- expect(snippetBlock).to.not.exist;
95
- });
96
-
97
- it('should not render suppressed collections', async () => {
98
- const el = await fixture<TileList>(html`
99
- <tile-list
100
- .model=${{ collections: ['deemphasize', 'community', 'foo'] }}
101
- .baseNavigationUrl=${'base'}
102
- >
103
- </tile-list>
104
- `);
105
-
106
- const collectionsRow = el.shadowRoot?.getElementById('collections');
107
- expect(collectionsRow).to.exist;
108
-
109
- const collectionLinks = collectionsRow?.querySelectorAll('a[href]');
110
- expect(collectionLinks?.length).to.equal(1);
111
- expect(collectionLinks?.item(0).getAttribute('href')).to.equal(
112
- 'base/details/foo',
113
- );
114
- });
115
-
116
- it('should not render fav- collections', async () => {
117
- const el = await fixture<TileList>(html`
118
- <tile-list
119
- .model=${{ collections: ['fav-foo', 'bar'] }}
120
- .baseNavigationUrl=${'base'}
121
- >
122
- </tile-list>
123
- `);
124
-
125
- const collectionsRow = el.shadowRoot?.getElementById('collections');
126
- expect(collectionsRow).to.exist;
127
-
128
- const collectionLinks = collectionsRow?.querySelectorAll('a[href]');
129
- expect(collectionLinks?.length).to.equal(1);
130
- expect(collectionLinks?.item(0).getAttribute('href')).to.equal(
131
- 'base/details/bar',
132
- );
133
- });
134
-
135
- it('should render weekly views when sorting by week', async () => {
136
- const el = await fixture<TileList>(html`
137
- <tile-list
138
- .model=${{ viewCount: 50, weeklyViewCount: 10 }}
139
- .sortParam=${{ field: 'week', direction: 'desc' }}
140
- >
141
- </tile-list>
142
- `);
143
-
144
- const viewsRow = el.shadowRoot?.getElementById('views-line');
145
- expect(viewsRow).to.exist;
146
- expect(viewsRow?.textContent?.trim()).to.equal('Weekly views: 10');
147
- });
148
-
149
- it('should render all-time views when sorting by non-week field', async () => {
150
- const el = await fixture<TileList>(html`
151
- <tile-list
152
- .model=${{ viewCount: 50, weeklyViewCount: 10 }}
153
- .sortParam=${{ field: 'downloads', direction: 'desc' }}
154
- >
155
- </tile-list>
156
- `);
157
-
158
- const viewsRow = el.shadowRoot?.getElementById('views-line');
159
- expect(viewsRow).to.exist;
160
- expect(viewsRow?.textContent?.trim()).to.equal('All-time views: 50');
161
- });
162
-
163
- it('should render all-time views with no sort param', async () => {
164
- const el = await fixture<TileList>(html`
165
- <tile-list .model=${{ viewCount: 50, weeklyViewCount: 10 }}> </tile-list>
166
- `);
167
-
168
- const viewsRow = el.shadowRoot?.getElementById('views-line');
169
- expect(viewsRow).to.exist;
170
- expect(viewsRow?.textContent?.trim()).to.equal('All-time views: 50');
171
- });
172
-
173
- it('should render published date when sorting by it', async () => {
174
- const model: Partial<TileModel> = {
175
- dateAdded: new Date(2010, 0, 2),
176
- dateArchived: new Date(2011, 0, 2),
177
- datePublished: new Date(2012, 0, 2),
178
- dateReviewed: new Date(2013, 0, 2),
179
- };
180
-
181
- const el = await fixture<TileList>(html`
182
- <tile-list
183
- .model=${model}
184
- .sortParam=${{ field: 'date', direction: 'desc' }}
185
- >
186
- </tile-list>
187
- `);
188
-
189
- const dateRow = el.shadowRoot?.getElementById('dates-line');
190
- expect(dateRow).to.exist;
191
- expect(dateRow?.textContent?.trim()).to.contain('Published: Jan 02, 2012');
192
- });
193
-
194
- it('should render added date when sorting by it', async () => {
195
- const model: Partial<TileModel> = {
196
- dateAdded: new Date(2010, 0, 2),
197
- dateArchived: new Date(2011, 0, 2),
198
- datePublished: new Date(2012, 0, 2),
199
- dateReviewed: new Date(2013, 0, 2),
200
- };
201
-
202
- const el = await fixture<TileList>(html`
203
- <tile-list
204
- .model=${model}
205
- .sortParam=${{ field: 'addeddate', direction: 'desc' }}
206
- >
207
- </tile-list>
208
- `);
209
-
210
- const dateRow = el.shadowRoot?.getElementById('dates-line');
211
- expect(dateRow).to.exist;
212
- expect(dateRow?.textContent?.trim()).to.contain('Added: Jan 02, 2010');
213
- });
214
-
215
- it('should render archived date when sorting by it', async () => {
216
- const model: Partial<TileModel> = {
217
- dateAdded: new Date(2010, 0, 2),
218
- dateArchived: new Date(2011, 0, 2),
219
- datePublished: new Date(2012, 0, 2),
220
- dateReviewed: new Date(2013, 0, 2),
221
- };
222
-
223
- const el = await fixture<TileList>(html`
224
- <tile-list
225
- .model=${model}
226
- .sortParam=${{ field: 'publicdate', direction: 'desc' }}
227
- >
228
- </tile-list>
229
- `);
230
-
231
- const dateRow = el.shadowRoot?.getElementById('dates-line');
232
- expect(dateRow).to.exist;
233
- expect(dateRow?.textContent?.trim()).to.contain('Archived: Jan 02, 2011');
234
- });
235
-
236
- it('should render reviewed date when sorting by it', async () => {
237
- const model: Partial<TileModel> = {
238
- dateAdded: new Date(2010, 0, 2),
239
- dateArchived: new Date(2011, 0, 2),
240
- datePublished: new Date(2012, 0, 2),
241
- dateReviewed: new Date(2013, 0, 2),
242
- };
243
-
244
- const el = await fixture<TileList>(html`
245
- <tile-list
246
- .model=${model}
247
- .sortParam=${{ field: 'reviewdate', direction: 'desc' }}
248
- >
249
- </tile-list>
250
- `);
251
-
252
- const dateRow = el.shadowRoot?.getElementById('dates-line');
253
- expect(dateRow).to.exist;
254
- expect(dateRow?.textContent?.trim()).to.contain('Reviewed: Jan 02, 2013');
255
- });
256
-
257
- it('should only show the year for a date published of Jan 1 at midnight UTC', async () => {
258
- const model: Partial<TileModel> = {
259
- datePublished: new Date('2012-01-01T00:00:00Z'),
260
- };
261
-
262
- const el = await fixture<TileList>(html`
263
- <tile-list
264
- .model=${model}
265
- .sortParam=${{ field: 'date', direction: 'desc' }}
266
- >
267
- </tile-list>
268
- `);
269
-
270
- const dateRow = el.shadowRoot?.getElementById('dates-line');
271
- expect(dateRow).to.exist;
272
- expect(dateRow?.textContent?.trim()).to.contain('Published: 2012');
273
- });
274
-
275
- it('should show full date added/archived/reviewed, even on Jan 1 at midnight UTC', async () => {
276
- const model: Partial<TileModel> = {
277
- dateAdded: new Date(2010, 0, 1, 0, 0, 0, 0),
278
- dateArchived: new Date(2011, 0, 1, 0, 0, 0, 0),
279
- datePublished: new Date(2012, 0, 1, 0, 0, 0, 0),
280
- dateReviewed: new Date(2013, 0, 1, 0, 0, 0, 0),
281
- };
282
-
283
- const el = await fixture<TileList>(html`
284
- <tile-list
285
- .model=${model}
286
- .sortParam=${{ field: 'addeddate', direction: 'desc' }}
287
- >
288
- </tile-list>
289
- `);
290
-
291
- let dateRow = el.shadowRoot?.getElementById('dates-line');
292
- expect(dateRow).to.exist;
293
- expect(dateRow?.textContent?.trim()).to.contain('Added: Jan 01, 2010');
294
-
295
- el.sortParam = { field: 'publicdate', direction: 'desc' };
296
- await el.updateComplete;
297
- dateRow = el.shadowRoot?.getElementById('dates-line');
298
- expect(dateRow).to.exist;
299
- expect(dateRow?.textContent?.trim()).to.contain('Archived: Jan 01, 2011');
300
-
301
- el.sortParam = { field: 'reviewdate', direction: 'desc' };
302
- await el.updateComplete;
303
- dateRow = el.shadowRoot?.getElementById('dates-line');
304
- expect(dateRow).to.exist;
305
- expect(dateRow?.textContent?.trim()).to.contain('Reviewed: Jan 01, 2013');
306
- });
307
-
308
- it('should display dates in UTC time zone by default', async () => {
309
- const model: Partial<TileModel> = {
310
- datePublished: new Date('2012-02-15T00:00:00Z'),
311
- };
312
-
313
- const el = await fixture<TileList>(html`
314
- <tile-list
315
- .model=${model}
316
- .sortParam=${{ field: 'date', direction: 'desc' }}
317
- >
318
- </tile-list>
319
- `);
320
-
321
- const dateRow = el.shadowRoot?.getElementById('dates-line');
322
- expect(dateRow).to.exist;
323
- expect(dateRow?.textContent?.trim()).to.contain('Published: Feb 15, 2012');
324
- });
325
-
326
- it('should display dates in local time when useLocalTime option is true', async () => {
327
- // Expected behavior depends on the time zone offset where the testing occurs
328
- const offset = new Date().getTimezoneOffset();
329
- let datePublished, expected;
330
- if (offset > 0) {
331
- // Positive local time zone offsets have earlier local dates than UTC
332
- datePublished = new Date('2012-02-15T00:00:00Z');
333
- expected = 'Published: Feb 14, 2012';
334
- } else if (offset < 0) {
335
- // Negative local time zone offsets have later local dates than UTC
336
- datePublished = new Date('2012-02-15T23:59:59Z');
337
- expected = 'Published: Feb 16, 2012';
338
- } else {
339
- // Local time may just be UTC itself
340
- datePublished = new Date('2012-02-15T00:00:00Z');
341
- expected = 'Published: Feb 15, 2012';
342
- }
343
-
344
- const model: Partial<TileModel> = {
345
- datePublished,
346
- };
347
-
348
- const el = await fixture<TileList>(html`
349
- <tile-list
350
- useLocalTime
351
- .model=${model}
352
- .sortParam=${{ field: 'date', direction: 'desc' }}
353
- >
354
- </tile-list>
355
- `);
356
-
357
- const dateRow = el.shadowRoot?.getElementById('dates-line');
358
- expect(dateRow).to.exist;
359
-
360
- expect(dateRow?.textContent?.trim()).to.contain(expected);
361
- });
362
-
363
- it('should render links to /search pages (not search.php) for subject, creator, and source', async () => {
364
- const model: Partial<TileModel> = {
365
- subjects: ['foo'],
366
- creators: ['bar'],
367
- source: 'baz',
368
- };
369
-
370
- const el = await fixture<TileList>(html`
371
- <tile-list .model=${model}></tile-list>
372
- `);
373
-
374
- const subjectLink = el.shadowRoot?.querySelector('#topics a[href]');
375
- expect(subjectLink).to.exist;
376
- expect(subjectLink?.getAttribute('href')).to.equal(
377
- `/search?query=${encodeURIComponent('subject:"foo"')}`,
378
- );
379
-
380
- const creatorLink = el.shadowRoot?.querySelector('#creator a[href]');
381
- expect(creatorLink).to.exist;
382
- expect(creatorLink?.getAttribute('href')).to.equal(
383
- `/search?query=${encodeURIComponent('creator:"bar"')}`,
384
- );
385
-
386
- const sourceLink = el.shadowRoot?.querySelector('#source a[href]');
387
- expect(sourceLink).to.exist;
388
- expect(sourceLink?.getAttribute('href')).to.equal(
389
- `/search?query=${encodeURIComponent('source:"baz"')}`,
390
- );
391
- });
392
-
393
- it('should render multi-line descriptions with spaces b/w lines', async () => {
394
- const el = await fixture<TileList>(html`
395
- <tile-list .model=${{ description: 'line1\nline2' }}> </tile-list>
396
- `);
397
-
398
- const descriptionBlock = el.shadowRoot?.getElementById('description');
399
- expect(descriptionBlock).to.exist;
400
- expect(descriptionBlock?.textContent?.trim()).to.equal('line1 line2'); // line break replaced by space
401
- });
402
-
403
- it('should render mediatype icon as link to corresponding mediatype collection details', async () => {
404
- const model: Partial<TileModel> = {
405
- mediatype: 'texts',
406
- };
407
-
408
- const el = await fixture<TileList>(html`
409
- <tile-list
410
- .baseNavigationUrl=${'https://archive.org'}
411
- .model=${model}
412
- ></tile-list>
413
- `);
414
-
415
- const mediatypeLink = el.shadowRoot?.querySelector('a#icon-right');
416
- expect(mediatypeLink).to.exist;
417
- expect(mediatypeLink?.getAttribute('href')).to.equal(
418
- `https://archive.org/details/texts`,
419
- );
420
- expect(mediatypeLink?.getAttribute('title')).to.equal('See more: texts');
421
- });
422
-
423
- it('should render mediatype icon as link even with empty baseNavigationUrl', async () => {
424
- const model: Partial<TileModel> = {
425
- mediatype: 'texts',
426
- };
427
-
428
- const el = await fixture<TileList>(html`
429
- <tile-list .baseNavigationUrl=${''} .model=${model}></tile-list>
430
- `);
431
-
432
- const mediatypeLink = el.shadowRoot?.querySelector('a#icon-right');
433
- expect(mediatypeLink).to.exist;
434
- expect(mediatypeLink?.getAttribute('href')).to.equal(`/details/texts`);
435
- });
436
-
437
- it('should render collection mediatype icon as link to search page', async () => {
438
- const model: Partial<TileModel> = {
439
- mediatype: 'collection',
440
- };
441
-
442
- const el = await fixture<TileList>(html`
443
- <tile-list
444
- .baseNavigationUrl=${'https://archive.org'}
445
- .model=${model}
446
- ></tile-list>
447
- `);
448
-
449
- const mediatypeLink = el.shadowRoot?.querySelector('a#icon-right');
450
- expect(mediatypeLink).to.exist;
451
- expect(mediatypeLink?.getAttribute('href')).to.equal(
452
- `https://archive.org/search?query=mediatype:collection&sort=-downloads`,
453
- );
454
- });
455
-
456
- it('should not render account mediatype icon as link', async () => {
457
- const model: Partial<TileModel> = {
458
- mediatype: 'account',
459
- };
460
-
461
- const el = await fixture<TileList>(html`
462
- <tile-list
463
- .baseNavigationUrl=${'https://archive.org'}
464
- .model=${model}
465
- ></tile-list>
466
- `);
467
-
468
- const mediatypeLink = el.shadowRoot?.querySelector('a#icon-right');
469
- expect(mediatypeLink).to.exist;
470
- expect(mediatypeLink?.getAttribute('href')).not.to.exist;
471
- });
472
-
473
- it('should render date added for accounts', async () => {
474
- const el = await fixture<TileList>(html`
475
- <tile-list
476
- .model=${{
477
- mediatype: 'account',
478
- dateAdded: new Date('2015-05-05T00:00:00'),
479
- }}
480
- >
481
- </tile-list>
482
- `);
483
-
484
- const creatorBlock = el.shadowRoot?.getElementById('creator');
485
- expect(creatorBlock).to.exist;
486
- expect(creatorBlock?.textContent?.trim()).to.equal('Archivist since 2015');
487
- });
488
-
489
- it('should render web capture date links if present', async () => {
490
- const captureDates = [
491
- new Date('2010-01-02T12:34:56Z'),
492
- new Date('2011-02-03T12:43:21Z'),
493
- ];
494
-
495
- const el = await fixture<TileList>(html`
496
- <tile-list
497
- .model=${{
498
- identifier: 'foo',
499
- title: 'https://example.com/',
500
- captureDates,
501
- }}
502
- ></tile-list>
503
- `);
504
-
505
- const captureDatesUl = el.shadowRoot?.querySelector('.capture-dates');
506
- expect(captureDatesUl, 'capture dates container').to.exist;
507
- expect(captureDatesUl?.children.length).to.equal(2);
508
-
509
- const firstDateLink = captureDatesUl?.children[0]?.querySelector('a[href]');
510
- expect(firstDateLink, 'first date link').to.exist;
511
- expect(firstDateLink?.getAttribute('href')).to.equal(
512
- 'https://web.archive.org/web/20100102123456/https://example.com/',
513
- );
514
- expect(firstDateLink?.textContent?.trim()).to.equal('Jan 02, 2010');
515
-
516
- const secondDateLink =
517
- captureDatesUl?.children[1]?.querySelector('a[href]');
518
- expect(secondDateLink, 'second date link').to.exist;
519
- expect(secondDateLink?.getAttribute('href')).to.equal(
520
- 'https://web.archive.org/web/20110203124321/https://example.com/',
521
- );
522
- expect(secondDateLink?.textContent?.trim()).to.equal('Feb 03, 2011');
523
- });
524
-
525
- it('should not render web captures if no title is present', async () => {
526
- const captureDates = [
527
- new Date('2010-01-02T12:34:56Z'),
528
- new Date('2011-02-03T12:43:21Z'),
529
- ];
530
-
531
- const el = await fixture<TileList>(html`
532
- <tile-list
533
- .model=${{
534
- identifier: 'foo',
535
- captureDates,
536
- }}
537
- ></tile-list>
538
- `);
539
-
540
- const captureDatesUl = el.shadowRoot?.querySelector('.capture-dates');
541
- expect(captureDatesUl).not.to.exist;
542
- });
543
-
544
- it('should render review snippet if present', async () => {
545
- const review = {
546
- title: 'Foo',
547
- body: 'foo bar baz',
548
- stars: 3,
549
- };
550
-
551
- const el = await fixture<TileList>(html`
552
- <tile-list
553
- .model=${{
554
- identifier: 'foo',
555
- review,
556
- }}
557
- ></tile-list>
558
- `);
559
-
560
- const reviewBlock = el.shadowRoot?.querySelector('review-block');
561
- expect(reviewBlock).to.exist;
562
- });
563
-
564
- it('should not render review snippet block when no review is present', async () => {
565
- const el = await fixture<TileList>(html`
566
- <tile-list
567
- .model=${{
568
- identifier: 'foo',
569
- }}
570
- ></tile-list>
571
- `);
572
-
573
- const reviewBlock = el.shadowRoot?.querySelector('review-block');
574
- expect(reviewBlock).not.to.exist;
575
- });
576
- });