diff --git a/src/partials.ts b/src/partials.ts
index 48c49da..06e1cf5 100644
--- a/src/partials.ts
+++ b/src/partials.ts
@@ -13,4 +13,12 @@ export class Partial {
return html`${errorCard}`;
}
+
+ static header(title: string, icon?: string): TemplateResult | null {
+ return html`
+
+ `;
+ }
}
diff --git a/src/time-picker-card.ts b/src/time-picker-card.ts
index 0326ccf..36df334 100644
--- a/src/time-picker-card.ts
+++ b/src/time-picker-card.ts
@@ -41,6 +41,14 @@ export class TimePickerCard extends LitElement {
return this.hass.states[this.config.entity];
}
+ private get shouldShowName(): boolean {
+ return Boolean(this.config.hide?.name) === false && Boolean(this.name);
+ }
+
+ private get name(): string | undefined {
+ return this.config.name || this.entity?.attributes.friendly_name;
+ }
+
render(): TemplateResult | null {
if (!this.entity) {
return Partial.error('Entity not found', this.config);
@@ -63,9 +71,12 @@ export class TimePickerCard extends LitElement {
return html`
-
- :
-
+ ${this.shouldShowName ? Partial.header(this.name!) : ''}
+
`;
}
@@ -102,7 +113,17 @@ export class TimePickerCard extends LitElement {
static get styles(): CSSResult {
return css`
.time-picker-ha-card {
+ }
+
+ .time-picker-header {
padding: 16px;
+ background-color: var(--time-picker-card-background-color);
+ font-size: 1em;
+ text-align: center;
+ }
+
+ .time-picker-content {
+ padding: 8px 16px 16px;
display: flex;
flex-direction: row;
align-items: center;
diff --git a/src/types.ts b/src/types.ts
index 6046c9e..d52146d 100644
--- a/src/types.ts
+++ b/src/types.ts
@@ -2,8 +2,14 @@ import { LovelaceCardConfig } from 'custom-card-helpers';
export interface TimePickerCardConfig extends LovelaceCardConfig {
entity: string;
+ name?: string;
hour_step?: number;
minute_step?: number;
+ hide?: TimePickerHideConfig;
+}
+
+export interface TimePickerHideConfig {
+ name: boolean;
}
export enum Direction {