@lovebowls/leagueelements
Version:
League Elements package for LoveBowls
4 lines • 21.8 kB
TypeScript
export const MOBILE_STYLES: "\n \n \n .panel-header-shared {\n padding: var(--le-padding-s, 0.75em) var(--le-padding-m, 1.25em); /* Increased padding */\n border-bottom: 1px solid var(--le-border-color-medium, #eee);\n font-weight: bold;\n color: var(--le-text-color-primary, #333);\n background-color: var(--le-background-color-header, #f9f9f9);\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: var(--le-font-size-large, 1.4em);\n }\n\n .panel-content {\n padding: var(--le-padding-m, 1.25em);\n background-color: var(--le-background-color-panel, #fff);\n /* Common border for content area if needed\n border: 1px solid var(--le-border-color-light, #f0f0f0);\n */\n }\n\n \n .button-shared {\n padding: var(--le-padding-s, 0.75em) var(--le-padding-m, 1.25em); /* Increased padding */\n border: 1px solid var(--le-border-color-medium, #ccc);\n background-color: var(--le-background-color-button, #f0f0f0);\n color: var(--le-text-color-primary, #333); /* Ensure text color contrasts with button background */\n cursor: pointer;\n border-radius: var(--le-border-radius-standard, 4px);\n font-size: var(--le-font-size-button, var(--le-font-size-medium, 1.15em)); /* Use variable with fallback */\n text-decoration: none;\n display: inline-block;\n text-align: center;\n line-height: normal; /* Ensure consistent line height */\n white-space: nowrap; /* Prevent text wrapping */\n vertical-align: middle; /* Align nicely if next to text/icons */\n user-select: none; /* Prevent text selection on click */\n transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out; /* Smooth transitions */\n }\n\n .button-shared:hover:not(:disabled) {\n background-color: var(--le-background-color-button-hover, #e0e0e0);\n border-color: var(--le-border-color-dark, #bbb); /* Slightly darker border on hover */\n /* color: var(--le-text-color-accent-hover, inherit); Optional: change text color on hover */\n }\n\n .button-shared:active:not(:disabled) {\n /* Optional: style for active (pressed) state */\n /* background-color: var(--le-background-color-button-active, #d0d0d0); */\n }\n\n .button-shared:disabled,\n .button-shared.disabled { /* Allow class-based disabling too */\n background-color: var(--le-background-color-button-disabled, #eee);\n color: var(--le-text-color-secondary, #aaa);\n border-color: var(--le-border-color-medium, #ccc); /* Use medium border for disabled state */\n cursor: not-allowed;\n opacity: 0.7; /* Visually indicate disabled state */\n }\n\n /* Variations */\n .button-shared.button-primary {\n background-color: var(--le-color-primary, #007bff);\n color: var(--le-text-color-on-primary, #fff);\n border-color: var(--le-color-primary, #007bff);\n }\n .button-shared.button-primary:hover:not(:disabled) {\n background-color: var(--le-color-primary-hover, #0056b3);\n border-color: var(--le-color-primary-hover, #0056b3);\n }\n\n .button-shared.button-secondary-light {\n background-color: var(--le-background-color-button-secondary-light, #f8f9fa);\n color: var(--le-text-color-secondary-light-text, #212529);\n border-color: var(--le-border-color-secondary-light, #ced4da);\n }\n .button-shared.button-secondary-light:hover:not(:disabled) {\n background-color: var(--le-background-color-button-secondary-light-hover, #e2e6ea);\n border-color: var(--le-border-color-secondary-light-hover, #dae0e5);\n color: var(--le-text-color-secondary-light-text-hover, #212529);\n }\n\n /* Example for a darker secondary button if needed elsewhere \n .button-shared.button-secondary {\n background-color: var(--le-color-secondary, #6c757d); \n color: var(--le-text-color-on-secondary, #fff);\n border-color: var(--le-color-secondary, #6c757d);\n }\n .button-shared.button-secondary:hover:not(:disabled) {\n background-color: var(--le-color-secondary-hover, #5a6268);\n border-color: var(--le-color-secondary-hover, #5a6268);\n }\n */\n\n \n .list-container {\n max-height: 200px;\n overflow-y: auto;\n }\n .list-panel {\n border: 1px solid var(--le-border-color-medium, #ddd);\n border-radius: var(--le-border-radius-standard, 4px);\n background: var(--le-background-color-panel, #fff);\n }\n .list-panel h4 {\n margin: 0;\n padding: var(--le-padding-m, 1rem);\n background: var(--le-background-color-header, #f8f9fa);\n border-bottom: 1px solid var(--le-border-color-light, #eee);\n color: var(--le-text-color-primary, #333);\n }\n .list-panel.disabled {\n pointer-events: none;\n opacity: 0.6;\n }\n .list {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .list-item{\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: var(--le-padding-m, 1rem);\n border-bottom: 1px solid var(--le-border-color-light, #eee);\n cursor: pointer;\n transition: background-color 0.2s ease;\n min-height: 3.5rem; /* Ensure consistent height for action buttons */\n box-sizing: border-box;\n }\n .list-panel.disabled .list-item {\n cursor: not-allowed;\n }\n .list-item:last-child {\n border-bottom: none;\n }\n\n /* Example of a text part within a list item that should grow */\n .list-item .list-item-text-primary {\n flex-grow: 1;\n font-size: var(--le-font-size-medium, 1.2em);\n text-align: left; /* Ensure text is left-aligned */\n display: flex;\n align-items: center; /* Center text vertically within its container */\n /* Potentially add text overflow properties if needed */\n /* white-space: nowrap; */\n /* overflow: hidden; */\n /* text-overflow: ellipsis; */\n }\n\n /* Example of an actions container part within a list item */\n .list-item .list-item-actions {\n flex-shrink: 0; /* Prevent actions from shrinking */\n display: flex;\n gap: var(--le-padding-xs, 0.4em); /* Increased gap */\n align-items: center;\n min-height: 2rem; /* Reserve space for buttons even when empty */\n }\n\n .list-item:hover {\n background-color: var(--le-background-color-hover, #f5f5f5);\n }\n\n .list-item.selected {\n background-color: var(--le-background-color-selected, #e3f2fd);\n border-left: 3px solid var(--le-border-color-primary, #2196f3);\n animation: highlightItem 0.6s ease-out;\n }\n\n @keyframes highlightItem {\n 0% {\n background-color: var(--le-background-color-accent, #108CFF);\n box-shadow: 0 0 0 2px rgba(16, 140, 255, 0.3), 0 2px 8px rgba(16, 140, 255, 0.2);\n }\n 100% {\n background-color: var(--le-background-color-selected, #e3f2fd);\n box-shadow: none;\n }\n }\n\n /* Mobile-specific list item adjustments */\n @media (max-width: 768px) {\n .list-item {\n min-height: 4rem; /* Slightly taller for mobile touch targets */\n padding: var(--le-padding-l, 1.25rem) var(--le-padding-m, 1rem);\n }\n \n .list-item .list-item-actions {\n min-height: 2.5rem; /* Larger touch targets for mobile */\n }\n \n .list-item .list-item-actions .button-shared {\n min-height: 2.5rem; /* Ensure buttons are touch-friendly */\n padding: var(--le-padding-s, 0.5rem) var(--le-padding-m, 1rem);\n }\n }\n\n \n /* Paging Controls Styles */\n .paging-controls {\n display: flex;\n justify-content: flex-end;\n gap: var(--le-padding-s, 0.5rem);\n margin-top: var(--le-padding-s, 0.5rem);\n }\n\n .paging-btn {\n background: var(--le-background-color-button, #f5f5f5);\n border: 1px solid var(--le-border-color-dark, #ccc);\n border-radius: var(--le-border-radius-small, 3px);\n padding: var(--le-padding-xs, 0.2rem) var(--le-padding-s, 0.7rem);\n cursor: pointer;\n font-size: var(--le-font-size-paging, var(--le-font-size-medium, 1em));\n color: var(--le-text-color-primary, #333);\n transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;\n user-select: none;\n }\n\n .paging-btn:hover:not(:disabled) {\n background: var(--le-background-color-button-hover, #e0e0e0);\n border-color: var(--le-border-color-dark, #bbb);\n }\n\n .paging-btn:disabled {\n background: var(--le-background-color-button-disabled, #eee);\n color: var(--le-text-color-secondary, #aaa);\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n :host {\n display: block;\n font-family: var(--le-font-family-main, 'Open Sans', Helvetica, Arial, sans-serif);\n box-sizing: border-box;\n color: var(--le-text-color-primary, #333);\n }\n .matches-container {\n /* Height will be overridden by mobile/desktop specific styles */\n }\n .match-date {\n color: var(--le-text-color-secondary, #666);\n margin-top: var(--le-padding-m, 1rem);\n margin-bottom: var(--le-padding-xs, 0.2em);\n font-size: var(--le-font-size-medium);\n font-weight: bold;\n border-bottom: 1px solid var(--le-border-color-light, #eee);\n padding-bottom: var(--le-padding-xs, 0.2em);\n }\n .match-date:first-child {\n margin-top: 0;\n }\n .match-details {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .match-teams {\n flex-grow: 1;\n }\n .team-name {\n }\n .match-score {\n font-weight: bold;\n margin: 0 var(--le-padding-s, 0.5rem);\n color: var(--le-text-color-primary, #333);\n }\n .match-result-indicator {\n padding: var(--le-padding-xs, 0.1em) var(--le-padding-s, 0.3em);\n border-radius: var(--le-border-radius-small, 3px);\n color: var(--le-text-color-on-primary, #fff);\n font-weight: bold;\n margin-left: var(--le-padding-s, 0.5rem);\n }\n .result-w {\n background-color: var(--le-form-color-w, #4CAF50);\n }\n .result-d {\n background-color: var(--le-form-color-d, #FFC107);\n }\n .result-l {\n background-color: var(--le-form-color-l, #F44336);\n }\n .no-matches {\n padding: var(--le-padding-m, 1rem);\n text-align: center;\n color: var(--le-text-color-secondary, #666);\n }\n .error {\n color: var(--le-text-color-error, #ff0000);\n padding: var(--le-padding-s, 0.5rem);\n }\n .paging-btn {\n padding: 0.2rem 0.7rem;\n }\n /* Mobile: Remove height constraints and scrollbars for dynamic content-based height */\n .matches-container {\n max-height: none;\n overflow-y: visible;\n }\n ";
export const DESKTOP_STYLES: "\n \n \n .panel-header-shared {\n padding: var(--le-padding-s, 0.75em) var(--le-padding-m, 1.25em); /* Increased padding */\n border-bottom: 1px solid var(--le-border-color-medium, #eee);\n font-weight: bold;\n color: var(--le-text-color-primary, #333);\n background-color: var(--le-background-color-header, #f9f9f9);\n display: flex;\n justify-content: space-between;\n align-items: center;\n font-size: var(--le-font-size-large, 1.4em);\n }\n\n .panel-content {\n padding: var(--le-padding-m, 1.25em);\n background-color: var(--le-background-color-panel, #fff);\n /* Common border for content area if needed\n border: 1px solid var(--le-border-color-light, #f0f0f0);\n */\n }\n\n \n .button-shared {\n padding: var(--le-padding-s, 0.75em) var(--le-padding-m, 1.25em); /* Increased padding */\n border: 1px solid var(--le-border-color-medium, #ccc);\n background-color: var(--le-background-color-button, #f0f0f0);\n color: var(--le-text-color-primary, #333); /* Ensure text color contrasts with button background */\n cursor: pointer;\n border-radius: var(--le-border-radius-standard, 4px);\n font-size: var(--le-font-size-button, var(--le-font-size-medium, 1.15em)); /* Use variable with fallback */\n text-decoration: none;\n display: inline-block;\n text-align: center;\n line-height: normal; /* Ensure consistent line height */\n white-space: nowrap; /* Prevent text wrapping */\n vertical-align: middle; /* Align nicely if next to text/icons */\n user-select: none; /* Prevent text selection on click */\n transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out; /* Smooth transitions */\n }\n\n .button-shared:hover:not(:disabled) {\n background-color: var(--le-background-color-button-hover, #e0e0e0);\n border-color: var(--le-border-color-dark, #bbb); /* Slightly darker border on hover */\n /* color: var(--le-text-color-accent-hover, inherit); Optional: change text color on hover */\n }\n\n .button-shared:active:not(:disabled) {\n /* Optional: style for active (pressed) state */\n /* background-color: var(--le-background-color-button-active, #d0d0d0); */\n }\n\n .button-shared:disabled,\n .button-shared.disabled { /* Allow class-based disabling too */\n background-color: var(--le-background-color-button-disabled, #eee);\n color: var(--le-text-color-secondary, #aaa);\n border-color: var(--le-border-color-medium, #ccc); /* Use medium border for disabled state */\n cursor: not-allowed;\n opacity: 0.7; /* Visually indicate disabled state */\n }\n\n /* Variations */\n .button-shared.button-primary {\n background-color: var(--le-color-primary, #007bff);\n color: var(--le-text-color-on-primary, #fff);\n border-color: var(--le-color-primary, #007bff);\n }\n .button-shared.button-primary:hover:not(:disabled) {\n background-color: var(--le-color-primary-hover, #0056b3);\n border-color: var(--le-color-primary-hover, #0056b3);\n }\n\n .button-shared.button-secondary-light {\n background-color: var(--le-background-color-button-secondary-light, #f8f9fa);\n color: var(--le-text-color-secondary-light-text, #212529);\n border-color: var(--le-border-color-secondary-light, #ced4da);\n }\n .button-shared.button-secondary-light:hover:not(:disabled) {\n background-color: var(--le-background-color-button-secondary-light-hover, #e2e6ea);\n border-color: var(--le-border-color-secondary-light-hover, #dae0e5);\n color: var(--le-text-color-secondary-light-text-hover, #212529);\n }\n\n /* Example for a darker secondary button if needed elsewhere \n .button-shared.button-secondary {\n background-color: var(--le-color-secondary, #6c757d); \n color: var(--le-text-color-on-secondary, #fff);\n border-color: var(--le-color-secondary, #6c757d);\n }\n .button-shared.button-secondary:hover:not(:disabled) {\n background-color: var(--le-color-secondary-hover, #5a6268);\n border-color: var(--le-color-secondary-hover, #5a6268);\n }\n */\n\n \n .list-container {\n max-height: 200px;\n overflow-y: auto;\n }\n .list-panel {\n border: 1px solid var(--le-border-color-medium, #ddd);\n border-radius: var(--le-border-radius-standard, 4px);\n background: var(--le-background-color-panel, #fff);\n }\n .list-panel h4 {\n margin: 0;\n padding: var(--le-padding-m, 1rem);\n background: var(--le-background-color-header, #f8f9fa);\n border-bottom: 1px solid var(--le-border-color-light, #eee);\n color: var(--le-text-color-primary, #333);\n }\n .list-panel.disabled {\n pointer-events: none;\n opacity: 0.6;\n }\n .list {\n list-style: none;\n margin: 0;\n padding: 0;\n }\n .list-item{\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: var(--le-padding-m, 1rem);\n border-bottom: 1px solid var(--le-border-color-light, #eee);\n cursor: pointer;\n transition: background-color 0.2s ease;\n min-height: 3.5rem; /* Ensure consistent height for action buttons */\n box-sizing: border-box;\n }\n .list-panel.disabled .list-item {\n cursor: not-allowed;\n }\n .list-item:last-child {\n border-bottom: none;\n }\n\n /* Example of a text part within a list item that should grow */\n .list-item .list-item-text-primary {\n flex-grow: 1;\n font-size: var(--le-font-size-medium, 1.2em);\n text-align: left; /* Ensure text is left-aligned */\n display: flex;\n align-items: center; /* Center text vertically within its container */\n /* Potentially add text overflow properties if needed */\n /* white-space: nowrap; */\n /* overflow: hidden; */\n /* text-overflow: ellipsis; */\n }\n\n /* Example of an actions container part within a list item */\n .list-item .list-item-actions {\n flex-shrink: 0; /* Prevent actions from shrinking */\n display: flex;\n gap: var(--le-padding-xs, 0.4em); /* Increased gap */\n align-items: center;\n min-height: 2rem; /* Reserve space for buttons even when empty */\n }\n\n .list-item:hover {\n background-color: var(--le-background-color-hover, #f5f5f5);\n }\n\n .list-item.selected {\n background-color: var(--le-background-color-selected, #e3f2fd);\n border-left: 3px solid var(--le-border-color-primary, #2196f3);\n animation: highlightItem 0.6s ease-out;\n }\n\n @keyframes highlightItem {\n 0% {\n background-color: var(--le-background-color-accent, #108CFF);\n box-shadow: 0 0 0 2px rgba(16, 140, 255, 0.3), 0 2px 8px rgba(16, 140, 255, 0.2);\n }\n 100% {\n background-color: var(--le-background-color-selected, #e3f2fd);\n box-shadow: none;\n }\n }\n\n /* Mobile-specific list item adjustments */\n @media (max-width: 768px) {\n .list-item {\n min-height: 4rem; /* Slightly taller for mobile touch targets */\n padding: var(--le-padding-l, 1.25rem) var(--le-padding-m, 1rem);\n }\n \n .list-item .list-item-actions {\n min-height: 2.5rem; /* Larger touch targets for mobile */\n }\n \n .list-item .list-item-actions .button-shared {\n min-height: 2.5rem; /* Ensure buttons are touch-friendly */\n padding: var(--le-padding-s, 0.5rem) var(--le-padding-m, 1rem);\n }\n }\n\n \n /* Paging Controls Styles */\n .paging-controls {\n display: flex;\n justify-content: flex-end;\n gap: var(--le-padding-s, 0.5rem);\n margin-top: var(--le-padding-s, 0.5rem);\n }\n\n .paging-btn {\n background: var(--le-background-color-button, #f5f5f5);\n border: 1px solid var(--le-border-color-dark, #ccc);\n border-radius: var(--le-border-radius-small, 3px);\n padding: var(--le-padding-xs, 0.2rem) var(--le-padding-s, 0.7rem);\n cursor: pointer;\n font-size: var(--le-font-size-paging, var(--le-font-size-medium, 1em));\n color: var(--le-text-color-primary, #333);\n transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;\n user-select: none;\n }\n\n .paging-btn:hover:not(:disabled) {\n background: var(--le-background-color-button-hover, #e0e0e0);\n border-color: var(--le-border-color-dark, #bbb);\n }\n\n .paging-btn:disabled {\n background: var(--le-background-color-button-disabled, #eee);\n color: var(--le-text-color-secondary, #aaa);\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n :host {\n display: block;\n font-family: var(--le-font-family-main, 'Open Sans', Helvetica, Arial, sans-serif);\n box-sizing: border-box;\n color: var(--le-text-color-primary, #333);\n }\n .matches-container {\n /* Height will be overridden by mobile/desktop specific styles */\n }\n .match-date {\n color: var(--le-text-color-secondary, #666);\n margin-top: var(--le-padding-m, 1rem);\n margin-bottom: var(--le-padding-xs, 0.2em);\n font-size: var(--le-font-size-medium);\n font-weight: bold;\n border-bottom: 1px solid var(--le-border-color-light, #eee);\n padding-bottom: var(--le-padding-xs, 0.2em);\n }\n .match-date:first-child {\n margin-top: 0;\n }\n .match-details {\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n .match-teams {\n flex-grow: 1;\n }\n .team-name {\n }\n .match-score {\n font-weight: bold;\n margin: 0 var(--le-padding-s, 0.5rem);\n color: var(--le-text-color-primary, #333);\n }\n .match-result-indicator {\n padding: var(--le-padding-xs, 0.1em) var(--le-padding-s, 0.3em);\n border-radius: var(--le-border-radius-small, 3px);\n color: var(--le-text-color-on-primary, #fff);\n font-weight: bold;\n margin-left: var(--le-padding-s, 0.5rem);\n }\n .result-w {\n background-color: var(--le-form-color-w, #4CAF50);\n }\n .result-d {\n background-color: var(--le-form-color-d, #FFC107);\n }\n .result-l {\n background-color: var(--le-form-color-l, #F44336);\n }\n .no-matches {\n padding: var(--le-padding-m, 1rem);\n text-align: center;\n color: var(--le-text-color-secondary, #666);\n }\n .error {\n color: var(--le-text-color-error, #ff0000);\n padding: var(--le-padding-s, 0.5rem);\n }\n \n /* Desktop: Keep max-height and scrollbars for space management */\n .matches-container {\n max-height: 300px;\n overflow-y: auto;\n }\n ";
export const TEMPLATE: "\n <div class=\"recent-results\">\n {{recentResults}}\n </div>\n <div class=\"paging-controls\" id=\"recent-paging\" {{showPaging}}>\n <button class=\"paging-btn button-shared button\" id=\"recent-prev\" {{prevDisabled}}>< Prev</button>\n <button class=\"paging-btn button-shared button\" id=\"recent-next\" {{nextDisabled}}>Next ></button>\n </div>\n ";
//# sourceMappingURL=LeagueMatchesRecent-styles.d.ts.map