forked from cybrespace/pinafore
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			No EOL
		
	
	
		
			1.8 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <ul class="generic-dialog-list">
 | |
|   {#each items as item (item.key)}
 | |
|   <li class="generic-dialog-list-item">
 | |
|     <button class="generic-dialog-list-button" on:click="fire('click', item)">
 | |
|       <svg class="generic-dialog-list-item-svg">
 | |
|         <use xlink:href={item.icon} />
 | |
|       </svg>
 | |
|       <span class="generic-dialog-list-button-span">
 | |
|         {item.label}
 | |
|       </span>
 | |
|       {#if selectable}
 | |
|         <svg class="generic-dialog-list-item-svg {item.selected ? '' : 'hidden'}" aria-hidden={!item.selected}>
 | |
|           <use xlink:href="#fa-check" />
 | |
|         </svg>
 | |
|       {/if}
 | |
|     </button>
 | |
|   </li>
 | |
|   {/each}
 | |
| </ul>
 | |
| <style>
 | |
|   .generic-dialog-list {
 | |
|     list-style: none;
 | |
|     width: 100%;
 | |
|     border: 1px solid var(--settings-list-item-border);
 | |
|     box-sizing: border-box;
 | |
|     min-width: 350px;
 | |
|     max-width: calc(100vw - 20px);
 | |
|   }
 | |
|   .generic-dialog-list-item {
 | |
|     border: 1px solid var(--settings-list-item-border);
 | |
|     font-size: 1.2em;
 | |
|     display: flex;
 | |
|   }
 | |
|   .generic-dialog-list-item-svg {
 | |
|     width: 24px;
 | |
|     height: 24px;
 | |
|     fill: var(--svg-fill);
 | |
|   }
 | |
|   .generic-dialog-list-button {
 | |
|     flex: 1;
 | |
|     padding: 20px;
 | |
|     background: var(--settings-list-item-bg);
 | |
|     border: none;
 | |
|     margin: 0;
 | |
|     display: flex;
 | |
|     flex-direction: row;
 | |
|   }
 | |
|   .generic-dialog-list-button-span {
 | |
|     flex: 1;
 | |
|     margin-left: 20px;
 | |
|     text-align: left;
 | |
|     width: 0;
 | |
|     white-space: nowrap;
 | |
|     text-overflow: ellipsis;
 | |
|     overflow: hidden;
 | |
|   }
 | |
|   .generic-dialog-list-button:hover {
 | |
|     background: var(--settings-list-item-bg-hover);
 | |
|   }
 | |
|   .generic-dialog-list-button:active {
 | |
|     background: var(--settings-list-item-bg-active);
 | |
|   }
 | |
| 
 | |
|   @media (max-width: 767px) {
 | |
|     .generic-dialog-list {
 | |
|       min-width: calc(100vw - 20px);
 | |
|     }
 | |
|     .generic-dialog-list-button {
 | |
|       padding: 20px 10px;
 | |
|     }
 | |
|     .generic-dialog-list-button-span {
 | |
|       margin-left: 10px;
 | |
|     }
 | |
|   }
 | |
| </style> |