@internetarchive/collection-browser 4.5.1-alpha-webdev8221.0 → 4.5.1
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.
- package/dist/index.js.map +1 -1
- package/dist/src/app-root.js +683 -683
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/collection-browser.js +766 -766
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-row.js +143 -143
- package/dist/src/collection-facets/facet-row.js.map +1 -1
- package/dist/src/collection-facets/facets-template.js +24 -24
- package/dist/src/collection-facets/facets-template.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/restoration-state-handler.js.map +1 -1
- package/dist/src/styles/tile-action-styles.js +43 -43
- package/dist/src/styles/tile-action-styles.js.map +1 -1
- package/dist/src/tiles/base-tile-component.js +11 -11
- package/dist/src/tiles/base-tile-component.js.map +1 -1
- package/dist/src/tiles/grid/item-tile.js +138 -138
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact-header.js +62 -62
- package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact.js +123 -123
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.js +310 -310
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/tiles/models.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.js +286 -286
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
- package/dist/src/utils/date-filter-field.js.map +1 -1
- package/dist/test/collection-browser.test.js +203 -203
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets/facet-row.test.js +31 -31
- package/dist/test/collection-facets/facet-row.test.js.map +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +77 -77
- package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.js +134 -134
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js +92 -92
- package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
- package/index.ts +29 -29
- package/package.json +1 -1
- package/src/app-root.ts +1284 -1284
- package/src/collection-browser.ts +3165 -3165
- package/src/collection-facets/facet-row.ts +309 -309
- package/src/collection-facets/facets-template.ts +85 -85
- package/src/data-source/collection-browser-data-source-interface.ts +351 -351
- package/src/data-source/collection-browser-data-source.ts +1474 -1474
- package/src/restoration-state-handler.ts +550 -550
- package/src/styles/tile-action-styles.ts +59 -59
- package/src/tiles/base-tile-component.ts +124 -124
- package/src/tiles/grid/item-tile.ts +347 -347
- package/src/tiles/list/tile-list-compact-header.ts +112 -112
- package/src/tiles/list/tile-list-compact.ts +278 -278
- package/src/tiles/list/tile-list.ts +718 -718
- package/src/tiles/models.ts +21 -21
- package/src/tiles/tile-dispatcher.ts +637 -637
- package/src/tiles/tile-display-value-provider.ts +133 -133
- package/src/utils/date-filter-field.ts +11 -11
- package/test/collection-browser.test.ts +2639 -2639
- package/test/collection-facets/facet-row.test.ts +421 -421
- package/test/tiles/grid/item-tile.test.ts +520 -520
- package/test/tiles/list/tile-list.test.ts +576 -576
- package/test/tiles/tile-dispatcher.test.ts +320 -320
|
@@ -75,14 +75,14 @@ let TileDispatcher = class TileDispatcher extends BaseTileComponent {
|
|
|
75
75
|
hoverable: isGridMode,
|
|
76
76
|
'has-tile-actions': hasTileActions,
|
|
77
77
|
});
|
|
78
|
-
return html `
|
|
79
|
-
<div id="container" class=${containerClasses}>
|
|
78
|
+
return html `
|
|
79
|
+
<div id="container" class=${containerClasses}>
|
|
80
80
|
${this.tileDisplayMode === 'list-header'
|
|
81
81
|
? this.headerTemplate
|
|
82
|
-
: this.tileTemplate}
|
|
83
|
-
${this.gridTileActionsTemplate} ${this.manageCheckTemplate}
|
|
84
|
-
${hoverPaneTemplate}
|
|
85
|
-
</div>
|
|
82
|
+
: this.tileTemplate}
|
|
83
|
+
${this.gridTileActionsTemplate} ${this.manageCheckTemplate}
|
|
84
|
+
${hoverPaneTemplate}
|
|
85
|
+
</div>
|
|
86
86
|
`;
|
|
87
87
|
}
|
|
88
88
|
firstUpdated() {
|
|
@@ -95,43 +95,43 @@ let TileDispatcher = class TileDispatcher extends BaseTileComponent {
|
|
|
95
95
|
}
|
|
96
96
|
get headerTemplate() {
|
|
97
97
|
const { currentWidth, sortParam, defaultSortParam, mobileBreakpoint } = this;
|
|
98
|
-
return html `
|
|
99
|
-
<tile-list-compact-header
|
|
100
|
-
class="header"
|
|
101
|
-
.currentWidth=${currentWidth}
|
|
102
|
-
.sortParam=${sortParam ?? defaultSortParam}
|
|
103
|
-
.mobileBreakpoint=${mobileBreakpoint}
|
|
104
|
-
.tileActions=${this.tileActions}
|
|
105
|
-
>
|
|
106
|
-
</tile-list-compact-header>
|
|
98
|
+
return html `
|
|
99
|
+
<tile-list-compact-header
|
|
100
|
+
class="header"
|
|
101
|
+
.currentWidth=${currentWidth}
|
|
102
|
+
.sortParam=${sortParam ?? defaultSortParam}
|
|
103
|
+
.mobileBreakpoint=${mobileBreakpoint}
|
|
104
|
+
.tileActions=${this.tileActions}
|
|
105
|
+
>
|
|
106
|
+
</tile-list-compact-header>
|
|
107
107
|
`;
|
|
108
108
|
}
|
|
109
109
|
get tileTemplate() {
|
|
110
|
-
return html `
|
|
110
|
+
return html `
|
|
111
111
|
${this.tileDisplayMode === 'list-detail'
|
|
112
112
|
? this.tile
|
|
113
|
-
: this.linkTileTemplate}
|
|
113
|
+
: this.linkTileTemplate}
|
|
114
114
|
`;
|
|
115
115
|
}
|
|
116
116
|
get linkTileTemplate() {
|
|
117
|
-
return html `
|
|
118
|
-
<a
|
|
119
|
-
href=${this.linkTileHref}
|
|
120
|
-
aria-label=${this.model?.title ?? 'Untitled item'}
|
|
121
|
-
aria-describedby="link-aria-description"
|
|
122
|
-
aria-haspopup=${this.shouldPrepareHoverPane ? 'dialog' : 'false'}
|
|
117
|
+
return html `
|
|
118
|
+
<a
|
|
119
|
+
href=${this.linkTileHref}
|
|
120
|
+
aria-label=${this.model?.title ?? 'Untitled item'}
|
|
121
|
+
aria-describedby="link-aria-description"
|
|
122
|
+
aria-haspopup=${this.shouldPrepareHoverPane ? 'dialog' : 'false'}
|
|
123
123
|
title=${this.shouldPrepareHoverPane
|
|
124
124
|
? nothing // Don't show title tooltips when we have the tile info popups
|
|
125
|
-
: ifDefined(this.model?.title)}
|
|
126
|
-
@click=${this.handleLinkClicked}
|
|
127
|
-
@contextmenu=${this.handleLinkContextMenu}
|
|
128
|
-
class="tile-link"
|
|
129
|
-
>
|
|
130
|
-
${this.tile}
|
|
131
|
-
</a>
|
|
132
|
-
<div id="link-aria-description" class="sr-only">
|
|
133
|
-
${msg('Press Down Arrow to preview item details')}
|
|
134
|
-
</div>
|
|
125
|
+
: ifDefined(this.model?.title)}
|
|
126
|
+
@click=${this.handleLinkClicked}
|
|
127
|
+
@contextmenu=${this.handleLinkContextMenu}
|
|
128
|
+
class="tile-link"
|
|
129
|
+
>
|
|
130
|
+
${this.tile}
|
|
131
|
+
</a>
|
|
132
|
+
<div id="link-aria-description" class="sr-only">
|
|
133
|
+
${msg('Press Down Arrow to preview item details')}
|
|
134
|
+
</div>
|
|
135
135
|
`;
|
|
136
136
|
}
|
|
137
137
|
get linkTileHref() {
|
|
@@ -147,15 +147,15 @@ let TileDispatcher = class TileDispatcher extends BaseTileComponent {
|
|
|
147
147
|
get manageCheckTemplate() {
|
|
148
148
|
if (!this.isManageView || this.tileDisplayMode !== 'grid')
|
|
149
149
|
return nothing;
|
|
150
|
-
return html `
|
|
151
|
-
<div class="manage-check">
|
|
152
|
-
<input
|
|
153
|
-
type="checkbox"
|
|
154
|
-
title=${this.manageCheckTitle}
|
|
155
|
-
?checked=${this.model?.checked}
|
|
156
|
-
@change=${this.handleLinkClicked}
|
|
157
|
-
/>
|
|
158
|
-
</div>
|
|
150
|
+
return html `
|
|
151
|
+
<div class="manage-check">
|
|
152
|
+
<input
|
|
153
|
+
type="checkbox"
|
|
154
|
+
title=${this.manageCheckTitle}
|
|
155
|
+
?checked=${this.model?.checked}
|
|
156
|
+
@change=${this.handleLinkClicked}
|
|
157
|
+
/>
|
|
158
|
+
</div>
|
|
159
159
|
`;
|
|
160
160
|
}
|
|
161
161
|
/**
|
|
@@ -258,21 +258,21 @@ let TileDispatcher = class TileDispatcher extends BaseTileComponent {
|
|
|
258
258
|
get gridTileActionsTemplate() {
|
|
259
259
|
if (!this.showGridTileActions)
|
|
260
260
|
return nothing;
|
|
261
|
-
return html `
|
|
262
|
-
<div
|
|
263
|
-
class="tile-actions grid-tile-actions"
|
|
264
|
-
@mouseenter=${this.handleGridActionsMouseEnter}
|
|
265
|
-
@mousemove=${(e) => e.stopPropagation()}
|
|
266
|
-
>
|
|
267
|
-
${this.tileActions.map(action => html `
|
|
268
|
-
<button
|
|
269
|
-
class="tile-action-btn"
|
|
270
|
-
@click=${(e) => this.handleTileActionClick(e, action)}
|
|
271
|
-
>
|
|
272
|
-
${action.label}
|
|
273
|
-
</button>
|
|
274
|
-
`)}
|
|
275
|
-
</div>
|
|
261
|
+
return html `
|
|
262
|
+
<div
|
|
263
|
+
class="tile-actions grid-tile-actions"
|
|
264
|
+
@mouseenter=${this.handleGridActionsMouseEnter}
|
|
265
|
+
@mousemove=${(e) => e.stopPropagation()}
|
|
266
|
+
>
|
|
267
|
+
${this.tileActions.map(action => html `
|
|
268
|
+
<button
|
|
269
|
+
class="tile-action-btn"
|
|
270
|
+
@click=${(e) => this.handleTileActionClick(e, action)}
|
|
271
|
+
>
|
|
272
|
+
${action.label}
|
|
273
|
+
</button>
|
|
274
|
+
`)}
|
|
275
|
+
</div>
|
|
276
276
|
`;
|
|
277
277
|
}
|
|
278
278
|
get tile() {
|
|
@@ -283,105 +283,105 @@ let TileDispatcher = class TileDispatcher extends BaseTileComponent {
|
|
|
283
283
|
case 'grid':
|
|
284
284
|
switch (model.mediatype) {
|
|
285
285
|
case 'collection':
|
|
286
|
-
return html `<collection-tile
|
|
287
|
-
.model=${model}
|
|
288
|
-
.collectionPagePath=${collectionPagePath}
|
|
289
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
290
|
-
.currentWidth=${currentWidth}
|
|
291
|
-
.currentHeight=${currentHeight}
|
|
292
|
-
.creatorFilter=${creatorFilter}
|
|
293
|
-
.suppressBlurring=${this.suppressBlurring}
|
|
294
|
-
.isManageView=${this.isManageView}
|
|
295
|
-
.layoutType=${this.layoutType}
|
|
296
|
-
?showInfoButton=${this.shouldShowInfoButton}
|
|
297
|
-
@infoButtonPressed=${this.tileInfoButtonPressed}
|
|
298
|
-
>
|
|
286
|
+
return html `<collection-tile
|
|
287
|
+
.model=${model}
|
|
288
|
+
.collectionPagePath=${collectionPagePath}
|
|
289
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
290
|
+
.currentWidth=${currentWidth}
|
|
291
|
+
.currentHeight=${currentHeight}
|
|
292
|
+
.creatorFilter=${creatorFilter}
|
|
293
|
+
.suppressBlurring=${this.suppressBlurring}
|
|
294
|
+
.isManageView=${this.isManageView}
|
|
295
|
+
.layoutType=${this.layoutType}
|
|
296
|
+
?showInfoButton=${this.shouldShowInfoButton}
|
|
297
|
+
@infoButtonPressed=${this.tileInfoButtonPressed}
|
|
298
|
+
>
|
|
299
299
|
</collection-tile>`;
|
|
300
300
|
case 'account':
|
|
301
|
-
return html `<account-tile
|
|
302
|
-
.model=${model}
|
|
303
|
-
.collectionPagePath=${collectionPagePath}
|
|
304
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
305
|
-
.currentWidth=${currentWidth}
|
|
306
|
-
.currentHeight=${currentHeight}
|
|
307
|
-
.creatorFilter=${creatorFilter}
|
|
308
|
-
.suppressBlurring=${this.suppressBlurring}
|
|
309
|
-
.isManageView=${this.isManageView}
|
|
310
|
-
?showInfoButton=${this.shouldShowInfoButton}
|
|
311
|
-
@infoButtonPressed=${this.tileInfoButtonPressed}
|
|
312
|
-
>
|
|
301
|
+
return html `<account-tile
|
|
302
|
+
.model=${model}
|
|
303
|
+
.collectionPagePath=${collectionPagePath}
|
|
304
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
305
|
+
.currentWidth=${currentWidth}
|
|
306
|
+
.currentHeight=${currentHeight}
|
|
307
|
+
.creatorFilter=${creatorFilter}
|
|
308
|
+
.suppressBlurring=${this.suppressBlurring}
|
|
309
|
+
.isManageView=${this.isManageView}
|
|
310
|
+
?showInfoButton=${this.shouldShowInfoButton}
|
|
311
|
+
@infoButtonPressed=${this.tileInfoButtonPressed}
|
|
312
|
+
>
|
|
313
313
|
</account-tile>`;
|
|
314
314
|
case 'search':
|
|
315
|
-
return html `<search-tile
|
|
316
|
-
.model=${model}
|
|
317
|
-
.collectionPagePath=${collectionPagePath}
|
|
318
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
319
|
-
.currentWidth=${currentWidth}
|
|
320
|
-
.currentHeight=${currentHeight}
|
|
321
|
-
.creatorFilter=${creatorFilter}
|
|
322
|
-
.suppressBlurring=${this.suppressBlurring}
|
|
323
|
-
.isManageView=${this.isManageView}
|
|
324
|
-
?showInfoButton=${false}
|
|
325
|
-
@infoButtonPressed=${this.tileInfoButtonPressed}
|
|
326
|
-
>
|
|
315
|
+
return html `<search-tile
|
|
316
|
+
.model=${model}
|
|
317
|
+
.collectionPagePath=${collectionPagePath}
|
|
318
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
319
|
+
.currentWidth=${currentWidth}
|
|
320
|
+
.currentHeight=${currentHeight}
|
|
321
|
+
.creatorFilter=${creatorFilter}
|
|
322
|
+
.suppressBlurring=${this.suppressBlurring}
|
|
323
|
+
.isManageView=${this.isManageView}
|
|
324
|
+
?showInfoButton=${false}
|
|
325
|
+
@infoButtonPressed=${this.tileInfoButtonPressed}
|
|
326
|
+
>
|
|
327
327
|
</search-tile>`;
|
|
328
328
|
default:
|
|
329
|
-
return html `<item-tile
|
|
330
|
-
.model=${model}
|
|
331
|
-
.collectionPagePath=${collectionPagePath}
|
|
332
|
-
.currentWidth=${this.currentWidth}
|
|
333
|
-
.currentHeight=${this.currentHeight}
|
|
334
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
335
|
-
.sortParam=${sortParam}
|
|
336
|
-
.defaultSortParam=${defaultSortParam}
|
|
337
|
-
.creatorFilter=${creatorFilter}
|
|
338
|
-
.loggedIn=${this.loggedIn}
|
|
339
|
-
.suppressBlurring=${this.suppressBlurring}
|
|
340
|
-
.isManageView=${this.isManageView}
|
|
341
|
-
.layoutType=${this.layoutType}
|
|
342
|
-
?showTvClips=${this.showTvClips}
|
|
343
|
-
?showInfoButton=${this.shouldShowInfoButton}
|
|
344
|
-
?useLocalTime=${this.useLocalTime}
|
|
345
|
-
@infoButtonPressed=${this.tileInfoButtonPressed}
|
|
346
|
-
>
|
|
329
|
+
return html `<item-tile
|
|
330
|
+
.model=${model}
|
|
331
|
+
.collectionPagePath=${collectionPagePath}
|
|
332
|
+
.currentWidth=${this.currentWidth}
|
|
333
|
+
.currentHeight=${this.currentHeight}
|
|
334
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
335
|
+
.sortParam=${sortParam}
|
|
336
|
+
.defaultSortParam=${defaultSortParam}
|
|
337
|
+
.creatorFilter=${creatorFilter}
|
|
338
|
+
.loggedIn=${this.loggedIn}
|
|
339
|
+
.suppressBlurring=${this.suppressBlurring}
|
|
340
|
+
.isManageView=${this.isManageView}
|
|
341
|
+
.layoutType=${this.layoutType}
|
|
342
|
+
?showTvClips=${this.showTvClips}
|
|
343
|
+
?showInfoButton=${this.shouldShowInfoButton}
|
|
344
|
+
?useLocalTime=${this.useLocalTime}
|
|
345
|
+
@infoButtonPressed=${this.tileInfoButtonPressed}
|
|
346
|
+
>
|
|
347
347
|
</item-tile>`;
|
|
348
348
|
}
|
|
349
349
|
case 'list-compact':
|
|
350
|
-
return html `<tile-list-compact
|
|
351
|
-
.model=${model}
|
|
352
|
-
.collectionPagePath=${collectionPagePath}
|
|
353
|
-
.currentWidth=${currentWidth}
|
|
354
|
-
.currentHeight=${currentHeight}
|
|
355
|
-
.baseNavigationUrl=${baseNavigationUrl}
|
|
356
|
-
.sortParam=${sortParam}
|
|
357
|
-
.defaultSortParam=${defaultSortParam}
|
|
358
|
-
.creatorFilter=${creatorFilter}
|
|
359
|
-
.mobileBreakpoint=${mobileBreakpoint}
|
|
360
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
361
|
-
.loggedIn=${this.loggedIn}
|
|
362
|
-
.suppressBlurring=${this.suppressBlurring}
|
|
363
|
-
.tileActions=${this.isManageView ? [] : this.tileActions}
|
|
364
|
-
?useLocalTime=${this.useLocalTime}
|
|
365
|
-
>
|
|
350
|
+
return html `<tile-list-compact
|
|
351
|
+
.model=${model}
|
|
352
|
+
.collectionPagePath=${collectionPagePath}
|
|
353
|
+
.currentWidth=${currentWidth}
|
|
354
|
+
.currentHeight=${currentHeight}
|
|
355
|
+
.baseNavigationUrl=${baseNavigationUrl}
|
|
356
|
+
.sortParam=${sortParam}
|
|
357
|
+
.defaultSortParam=${defaultSortParam}
|
|
358
|
+
.creatorFilter=${creatorFilter}
|
|
359
|
+
.mobileBreakpoint=${mobileBreakpoint}
|
|
360
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
361
|
+
.loggedIn=${this.loggedIn}
|
|
362
|
+
.suppressBlurring=${this.suppressBlurring}
|
|
363
|
+
.tileActions=${this.isManageView ? [] : this.tileActions}
|
|
364
|
+
?useLocalTime=${this.useLocalTime}
|
|
365
|
+
>
|
|
366
366
|
</tile-list-compact>`;
|
|
367
367
|
case 'list-detail':
|
|
368
|
-
return html `<tile-list
|
|
369
|
-
.model=${model}
|
|
370
|
-
.collectionPagePath=${collectionPagePath}
|
|
371
|
-
.collectionTitles=${this.collectionTitles}
|
|
372
|
-
.currentWidth=${currentWidth}
|
|
373
|
-
.currentHeight=${currentHeight}
|
|
374
|
-
.baseNavigationUrl=${baseNavigationUrl}
|
|
375
|
-
.sortParam=${sortParam}
|
|
376
|
-
.defaultSortParam=${defaultSortParam}
|
|
377
|
-
.creatorFilter=${creatorFilter}
|
|
378
|
-
.mobileBreakpoint=${mobileBreakpoint}
|
|
379
|
-
.baseImageUrl=${this.baseImageUrl}
|
|
380
|
-
.loggedIn=${this.loggedIn}
|
|
381
|
-
.suppressBlurring=${this.suppressBlurring}
|
|
382
|
-
.tileActions=${this.isManageView ? [] : this.tileActions}
|
|
383
|
-
?useLocalTime=${this.useLocalTime}
|
|
384
|
-
>
|
|
368
|
+
return html `<tile-list
|
|
369
|
+
.model=${model}
|
|
370
|
+
.collectionPagePath=${collectionPagePath}
|
|
371
|
+
.collectionTitles=${this.collectionTitles}
|
|
372
|
+
.currentWidth=${currentWidth}
|
|
373
|
+
.currentHeight=${currentHeight}
|
|
374
|
+
.baseNavigationUrl=${baseNavigationUrl}
|
|
375
|
+
.sortParam=${sortParam}
|
|
376
|
+
.defaultSortParam=${defaultSortParam}
|
|
377
|
+
.creatorFilter=${creatorFilter}
|
|
378
|
+
.mobileBreakpoint=${mobileBreakpoint}
|
|
379
|
+
.baseImageUrl=${this.baseImageUrl}
|
|
380
|
+
.loggedIn=${this.loggedIn}
|
|
381
|
+
.suppressBlurring=${this.suppressBlurring}
|
|
382
|
+
.tileActions=${this.isManageView ? [] : this.tileActions}
|
|
383
|
+
?useLocalTime=${this.useLocalTime}
|
|
384
|
+
>
|
|
385
385
|
</tile-list>`;
|
|
386
386
|
default:
|
|
387
387
|
return nothing;
|
|
@@ -391,147 +391,147 @@ let TileDispatcher = class TileDispatcher extends BaseTileComponent {
|
|
|
391
391
|
return [
|
|
392
392
|
srOnlyStyle,
|
|
393
393
|
tileActionStyles,
|
|
394
|
-
css `
|
|
395
|
-
:host {
|
|
396
|
-
display: block;
|
|
397
|
-
height: 100%;
|
|
398
|
-
}
|
|
399
|
-
|
|
400
|
-
collection-tile {
|
|
401
|
-
--tileBorderColor: #555555;
|
|
402
|
-
--tileBackgroundColor: #666666;
|
|
403
|
-
--imageBlockBackgroundColor: #666666;
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
account-tile {
|
|
407
|
-
--tileBorderColor: #dddddd;
|
|
408
|
-
--imageBlockBackgroundColor: #fcf5e6;
|
|
409
|
-
}
|
|
410
|
-
|
|
411
|
-
item-tile {
|
|
412
|
-
--tileBorderColor: #dddddd;
|
|
413
|
-
--imageBlockBackgroundColor: #f1f1f4;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
search-tile {
|
|
417
|
-
--tileBorderColor: #555555;
|
|
418
|
-
--tileBackgroundColor: #666666;
|
|
419
|
-
--imageBlockBackgroundColor: #666666;
|
|
420
|
-
--iconFillColor: #2c2c2c;
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
#container {
|
|
424
|
-
position: relative;
|
|
425
|
-
height: 100%;
|
|
426
|
-
border-radius: 4px;
|
|
427
|
-
}
|
|
428
|
-
|
|
429
|
-
/*
|
|
430
|
-
* When tile actions are present, the container takes on the role of
|
|
431
|
-
* the tile's visual card so the tile content and action row appear
|
|
432
|
-
* as a single unified element. The inner tile's own shadow/radius
|
|
433
|
-
* are disabled via CSS variable overrides to avoid visual
|
|
434
|
-
* duplication, and the action row sits as a footer inside the same
|
|
435
|
-
* card.
|
|
436
|
-
*/
|
|
437
|
-
#container.has-tile-actions {
|
|
438
|
-
display: flex;
|
|
439
|
-
flex-direction: column;
|
|
440
|
-
overflow: hidden;
|
|
441
|
-
box-shadow: var(--tileShadow, 1px 1px 2px 0);
|
|
442
|
-
--tileBoxShadow: none;
|
|
443
|
-
--tileCornerRadius: 0;
|
|
444
|
-
}
|
|
445
|
-
|
|
446
|
-
#container.has-tile-actions .tile-link {
|
|
447
|
-
flex: 1;
|
|
448
|
-
min-height: 0;
|
|
449
|
-
overflow: hidden;
|
|
450
|
-
border-radius: 0;
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
/* Normal hover shadow lives on the inner anchor for plain tiles */
|
|
454
|
-
#container.hoverable:not(.has-tile-actions) a:focus,
|
|
455
|
-
#container.hoverable:not(.has-tile-actions) a:hover {
|
|
456
|
-
box-shadow: var(
|
|
457
|
-
--tileHoverBoxShadow,
|
|
458
|
-
0 0 6px 2px rgba(8, 8, 32, 0.8)
|
|
459
|
-
);
|
|
460
|
-
transition: box-shadow 0.1s ease;
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
/*
|
|
464
|
-
* When the container owns the card visuals, the hover shadow needs
|
|
465
|
-
* to move up to the container so it wraps the action row too.
|
|
466
|
-
*/
|
|
467
|
-
#container.hoverable.has-tile-actions:hover {
|
|
468
|
-
box-shadow: var(
|
|
469
|
-
--tileHoverBoxShadow,
|
|
470
|
-
0 0 6px 2px rgba(8, 8, 32, 0.8)
|
|
471
|
-
);
|
|
472
|
-
transition: box-shadow 0.1s ease;
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
a {
|
|
476
|
-
display: block;
|
|
477
|
-
height: 100%;
|
|
478
|
-
color: unset;
|
|
479
|
-
text-decoration: none;
|
|
480
|
-
transition: transform 0.05s ease;
|
|
481
|
-
border-radius: 4px;
|
|
482
|
-
outline: none;
|
|
483
|
-
}
|
|
484
|
-
|
|
485
|
-
a :first-child {
|
|
486
|
-
display: block;
|
|
487
|
-
height: 100%;
|
|
488
|
-
}
|
|
489
|
-
|
|
490
|
-
.manage-check {
|
|
491
|
-
position: absolute;
|
|
492
|
-
right: 0;
|
|
493
|
-
top: 0;
|
|
494
|
-
border: 5px solid #2c2c2c;
|
|
495
|
-
border-radius: 3px;
|
|
496
|
-
background-color: #2c2c2c;
|
|
497
|
-
z-index: 1;
|
|
498
|
-
}
|
|
499
|
-
|
|
500
|
-
.manage-check > input[type='checkbox'] {
|
|
501
|
-
display: block;
|
|
502
|
-
margin: 0;
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
#touch-backdrop {
|
|
506
|
-
position: fixed;
|
|
507
|
-
width: 100vw;
|
|
508
|
-
height: 100vh;
|
|
509
|
-
top: 0;
|
|
510
|
-
left: 0;
|
|
511
|
-
z-index: 2;
|
|
512
|
-
background: transparent;
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
tile-hover-pane {
|
|
516
|
-
position: absolute;
|
|
517
|
-
top: 0;
|
|
518
|
-
left: -9999px;
|
|
519
|
-
z-index: 2;
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
/*
|
|
523
|
-
* Grid-mode action row sits flush against the bottom of the card —
|
|
524
|
-
* the buttons' own borders form the visible bottom edge. The outer
|
|
525
|
-
* buttons get rounded bottom corners to match the container so the
|
|
526
|
-
* red border traces cleanly around the card's bottom corners.
|
|
527
|
-
*/
|
|
528
|
-
.grid-tile-actions .tile-action-btn:first-child {
|
|
529
|
-
border-bottom-left-radius: 4px;
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
.grid-tile-actions .tile-action-btn:last-child {
|
|
533
|
-
border-bottom-right-radius: 4px;
|
|
534
|
-
}
|
|
394
|
+
css `
|
|
395
|
+
:host {
|
|
396
|
+
display: block;
|
|
397
|
+
height: 100%;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
collection-tile {
|
|
401
|
+
--tileBorderColor: #555555;
|
|
402
|
+
--tileBackgroundColor: #666666;
|
|
403
|
+
--imageBlockBackgroundColor: #666666;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
account-tile {
|
|
407
|
+
--tileBorderColor: #dddddd;
|
|
408
|
+
--imageBlockBackgroundColor: #fcf5e6;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
item-tile {
|
|
412
|
+
--tileBorderColor: #dddddd;
|
|
413
|
+
--imageBlockBackgroundColor: #f1f1f4;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
search-tile {
|
|
417
|
+
--tileBorderColor: #555555;
|
|
418
|
+
--tileBackgroundColor: #666666;
|
|
419
|
+
--imageBlockBackgroundColor: #666666;
|
|
420
|
+
--iconFillColor: #2c2c2c;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
#container {
|
|
424
|
+
position: relative;
|
|
425
|
+
height: 100%;
|
|
426
|
+
border-radius: 4px;
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
/*
|
|
430
|
+
* When tile actions are present, the container takes on the role of
|
|
431
|
+
* the tile's visual card so the tile content and action row appear
|
|
432
|
+
* as a single unified element. The inner tile's own shadow/radius
|
|
433
|
+
* are disabled via CSS variable overrides to avoid visual
|
|
434
|
+
* duplication, and the action row sits as a footer inside the same
|
|
435
|
+
* card.
|
|
436
|
+
*/
|
|
437
|
+
#container.has-tile-actions {
|
|
438
|
+
display: flex;
|
|
439
|
+
flex-direction: column;
|
|
440
|
+
overflow: hidden;
|
|
441
|
+
box-shadow: var(--tileShadow, 1px 1px 2px 0);
|
|
442
|
+
--tileBoxShadow: none;
|
|
443
|
+
--tileCornerRadius: 0;
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
#container.has-tile-actions .tile-link {
|
|
447
|
+
flex: 1;
|
|
448
|
+
min-height: 0;
|
|
449
|
+
overflow: hidden;
|
|
450
|
+
border-radius: 0;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
/* Normal hover shadow lives on the inner anchor for plain tiles */
|
|
454
|
+
#container.hoverable:not(.has-tile-actions) a:focus,
|
|
455
|
+
#container.hoverable:not(.has-tile-actions) a:hover {
|
|
456
|
+
box-shadow: var(
|
|
457
|
+
--tileHoverBoxShadow,
|
|
458
|
+
0 0 6px 2px rgba(8, 8, 32, 0.8)
|
|
459
|
+
);
|
|
460
|
+
transition: box-shadow 0.1s ease;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
/*
|
|
464
|
+
* When the container owns the card visuals, the hover shadow needs
|
|
465
|
+
* to move up to the container so it wraps the action row too.
|
|
466
|
+
*/
|
|
467
|
+
#container.hoverable.has-tile-actions:hover {
|
|
468
|
+
box-shadow: var(
|
|
469
|
+
--tileHoverBoxShadow,
|
|
470
|
+
0 0 6px 2px rgba(8, 8, 32, 0.8)
|
|
471
|
+
);
|
|
472
|
+
transition: box-shadow 0.1s ease;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
a {
|
|
476
|
+
display: block;
|
|
477
|
+
height: 100%;
|
|
478
|
+
color: unset;
|
|
479
|
+
text-decoration: none;
|
|
480
|
+
transition: transform 0.05s ease;
|
|
481
|
+
border-radius: 4px;
|
|
482
|
+
outline: none;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
a :first-child {
|
|
486
|
+
display: block;
|
|
487
|
+
height: 100%;
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
.manage-check {
|
|
491
|
+
position: absolute;
|
|
492
|
+
right: 0;
|
|
493
|
+
top: 0;
|
|
494
|
+
border: 5px solid #2c2c2c;
|
|
495
|
+
border-radius: 3px;
|
|
496
|
+
background-color: #2c2c2c;
|
|
497
|
+
z-index: 1;
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
.manage-check > input[type='checkbox'] {
|
|
501
|
+
display: block;
|
|
502
|
+
margin: 0;
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
#touch-backdrop {
|
|
506
|
+
position: fixed;
|
|
507
|
+
width: 100vw;
|
|
508
|
+
height: 100vh;
|
|
509
|
+
top: 0;
|
|
510
|
+
left: 0;
|
|
511
|
+
z-index: 2;
|
|
512
|
+
background: transparent;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
tile-hover-pane {
|
|
516
|
+
position: absolute;
|
|
517
|
+
top: 0;
|
|
518
|
+
left: -9999px;
|
|
519
|
+
z-index: 2;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/*
|
|
523
|
+
* Grid-mode action row sits flush against the bottom of the card —
|
|
524
|
+
* the buttons' own borders form the visible bottom edge. The outer
|
|
525
|
+
* buttons get rounded bottom corners to match the container so the
|
|
526
|
+
* red border traces cleanly around the card's bottom corners.
|
|
527
|
+
*/
|
|
528
|
+
.grid-tile-actions .tile-action-btn:first-child {
|
|
529
|
+
border-bottom-left-radius: 4px;
|
|
530
|
+
}
|
|
531
|
+
|
|
532
|
+
.grid-tile-actions .tile-action-btn:last-child {
|
|
533
|
+
border-bottom-right-radius: 4px;
|
|
534
|
+
}
|
|
535
535
|
`,
|
|
536
536
|
];
|
|
537
537
|
}
|