Implements localization for dashboard, cash register, account, and profile sections Adds localization keys for various UI elements, improving internationalization support Refactors view components to use ILocalizationService for dynamic text rendering Prepares ground for multi-language support with translation-ready markup
250 lines
5.6 KiB
CSS
250 lines
5.6 KiB
CSS
/**
|
|
* Waitlist CSS
|
|
*
|
|
* Styling for waitlist mini card and drawer items
|
|
*/
|
|
|
|
/* ===========================================
|
|
WAITLIST MINI CARD
|
|
=========================================== */
|
|
swp-waitlist-card {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--spacing-4);
|
|
padding: var(--card-padding);
|
|
background: var(--color-surface);
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-lg);
|
|
cursor: pointer;
|
|
transition: all var(--transition-fast);
|
|
}
|
|
|
|
swp-waitlist-card:hover {
|
|
border-color: var(--color-teal);
|
|
box-shadow: var(--shadow-md);
|
|
}
|
|
|
|
swp-waitlist-icon {
|
|
position: relative;
|
|
font-size: var(--font-size-2xl);
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
swp-waitlist-badge {
|
|
position: absolute;
|
|
top: -8px;
|
|
right: -8px;
|
|
min-width: 20px;
|
|
height: 20px;
|
|
padding: 0 var(--spacing-2);
|
|
background: var(--color-teal);
|
|
color: white;
|
|
font-size: var(--font-size-xs);
|
|
font-weight: var(--font-weight-semibold);
|
|
border-radius: var(--radius-full);
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
}
|
|
|
|
swp-waitlist-label {
|
|
font-size: var(--font-size-base);
|
|
font-weight: var(--font-weight-medium);
|
|
color: var(--color-text);
|
|
}
|
|
|
|
/* ===========================================
|
|
WAITLIST LIST
|
|
=========================================== */
|
|
swp-waitlist-list {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-6);
|
|
}
|
|
|
|
/* ===========================================
|
|
WAITLIST ITEM
|
|
=========================================== */
|
|
swp-waitlist-item {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-6);
|
|
padding: var(--spacing-8);
|
|
background: var(--color-background-alt);
|
|
border-radius: var(--radius-lg);
|
|
border: 1px solid var(--color-border);
|
|
}
|
|
|
|
/* ===========================================
|
|
CUSTOMER SECTION
|
|
=========================================== */
|
|
swp-waitlist-customer {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--spacing-6);
|
|
}
|
|
|
|
swp-waitlist-customer swp-avatar {
|
|
width: 40px;
|
|
height: 40px;
|
|
border-radius: var(--radius-full);
|
|
background: var(--color-teal);
|
|
color: white;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
font-size: var(--font-size-base);
|
|
font-weight: var(--font-weight-semibold);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
swp-waitlist-customer-info {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
swp-waitlist-name {
|
|
display: block;
|
|
font-size: var(--font-size-base);
|
|
font-weight: var(--font-weight-semibold);
|
|
color: var(--color-text);
|
|
}
|
|
|
|
swp-waitlist-phone {
|
|
display: block;
|
|
font-size: var(--font-size-sm);
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* ===========================================
|
|
SERVICE TAG
|
|
=========================================== */
|
|
swp-waitlist-service {
|
|
display: inline-block;
|
|
font-size: var(--font-size-md);
|
|
font-weight: var(--font-weight-medium);
|
|
color: var(--color-teal);
|
|
padding: var(--spacing-2) var(--spacing-3);
|
|
background: color-mix(in srgb, var(--color-teal) 10%, transparent);
|
|
border-radius: var(--radius-sm);
|
|
}
|
|
|
|
/* ===========================================
|
|
META SECTION (Preferences & Dates)
|
|
=========================================== */
|
|
swp-waitlist-meta {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--spacing-2);
|
|
}
|
|
|
|
swp-waitlist-periods {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--spacing-2);
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
swp-waitlist-periods swp-label {
|
|
font-size: var(--font-size-sm);
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
swp-waitlist-period-tag {
|
|
font-size: var(--font-size-xs);
|
|
padding: var(--spacing-1) var(--spacing-2);
|
|
background: var(--color-background);
|
|
border-radius: var(--radius-sm);
|
|
color: var(--color-text);
|
|
}
|
|
|
|
swp-waitlist-dates {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--spacing-4);
|
|
}
|
|
|
|
swp-waitlist-date {
|
|
font-size: var(--font-size-xs);
|
|
color: var(--color-text-secondary);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--spacing-1);
|
|
}
|
|
|
|
swp-waitlist-date i {
|
|
font-size: var(--font-size-sm);
|
|
}
|
|
|
|
swp-waitlist-date.expires.soon {
|
|
color: var(--color-amber);
|
|
font-weight: var(--font-weight-medium);
|
|
}
|
|
|
|
/* ===========================================
|
|
ACTION BUTTONS
|
|
=========================================== */
|
|
swp-waitlist-actions {
|
|
display: flex;
|
|
gap: var(--spacing-4);
|
|
padding-top: var(--spacing-4);
|
|
border-top: 1px solid var(--color-border);
|
|
}
|
|
|
|
swp-waitlist-actions swp-btn {
|
|
flex: 1;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: var(--spacing-2);
|
|
padding: var(--spacing-4) var(--spacing-6);
|
|
font-size: var(--font-size-sm);
|
|
font-weight: var(--font-weight-medium);
|
|
font-family: var(--font-family);
|
|
border-radius: var(--radius-md);
|
|
cursor: pointer;
|
|
transition: all var(--transition-fast);
|
|
border: none;
|
|
}
|
|
|
|
swp-waitlist-actions swp-btn.secondary {
|
|
background: var(--color-surface);
|
|
border: 1px solid var(--color-border);
|
|
color: var(--color-text);
|
|
}
|
|
|
|
swp-waitlist-actions swp-btn.secondary:hover {
|
|
background: var(--color-background-hover);
|
|
}
|
|
|
|
swp-waitlist-actions swp-btn.primary {
|
|
background: var(--color-teal);
|
|
color: white;
|
|
}
|
|
|
|
swp-waitlist-actions swp-btn.primary:hover {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
/* ===========================================
|
|
EMPTY STATE
|
|
=========================================== */
|
|
swp-waitlist-empty {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: var(--spacing-10) var(--spacing-6);
|
|
text-align: center;
|
|
}
|
|
|
|
swp-waitlist-empty i {
|
|
font-size: 48px;
|
|
color: var(--color-border);
|
|
margin-bottom: var(--spacing-4);
|
|
}
|
|
|
|
swp-waitlist-empty span {
|
|
font-size: var(--font-size-base);
|
|
color: var(--color-text-secondary);
|
|
}
|