diff --git a/live-editing/configs/CardConfigGenerator.ts b/live-editing/configs/CardConfigGenerator.ts index 2a565b2536..26ec0aa609 100644 --- a/live-editing/configs/CardConfigGenerator.ts +++ b/live-editing/configs/CardConfigGenerator.ts @@ -1,11 +1,9 @@ import { IgxAvatarModule } from 'igniteui-angular/avatar'; -import { IgxButtonModule, IgxDividerModule, IgxLayoutModule, IgxRippleModule } from 'igniteui-angular/directives'; +import { IgxButtonModule, IgxDividerModule, IgxRippleModule } from 'igniteui-angular/directives'; import { IgxCardModule } from 'igniteui-angular/card'; import { IgxChipsModule } from 'igniteui-angular/chips'; -import { IgxExpansionPanelModule } from 'igniteui-angular/expansion-panel'; import { IgxIconModule } from 'igniteui-angular/icon'; -import { IgxListModule } from 'igniteui-angular/list'; -import { IgxSliderModule } from 'igniteui-angular/slider'; +import { IgxSwitchModule } from 'igniteui-angular/switch'; import { AppModuleConfig, Config, IConfigGenerator } from 'igniteui-live-editing' import { BaseAppConfig } from './BaseConfig'; export class CardConfigGenerator implements IConfigGenerator { @@ -14,63 +12,53 @@ export class CardConfigGenerator implements IConfigGenerator { public generateConfigs(): Config[] { const configs = new Array(); - // card sample + // card overview configs.push(new Config({ - component: 'CardComponent', + component: 'CardOverviewComponent', appConfig: BaseAppConfig, - additionalFiles: [ - "/src/app/layouts/card/card.blueprint.ts" - ], shortenComponentPathBy: "/layouts/card/" })); - // card sample 1 + // card actions configs.push(new Config({ - component: 'CardSample1Component', + component: 'CardActionsComponent', appConfig: BaseAppConfig, additionalFiles: [ - "/src/app/layouts/card/card.blueprint.ts" + "/src/app/layouts/card/card-actions/icons.ts" ], shortenComponentPathBy: "/layouts/card/" })); - // card sample 2 + // card media configs.push(new Config({ - component: 'CardSample2Component', + component: 'CardMediaComponent', appConfig: BaseAppConfig, additionalFiles: [ - "/src/app/layouts/card/card.blueprint.ts" + "/src/app/layouts/card/card-media/icons.ts" ], shortenComponentPathBy: "/layouts/card/" })); - // card sample 3 + // card media position configs.push(new Config({ - component: 'CardSample3Component', + component: 'CardPositionComponent', appConfig: BaseAppConfig, - additionalFiles: [ - "/src/app/layouts/card/card.blueprint.ts" - ], shortenComponentPathBy: "/layouts/card/" })); - // card sample 4 + // card styling configs.push(new Config({ - component: 'CardSample4Component', + component: 'CardStylingComponent', appConfig: BaseAppConfig, - additionalFiles: [ - "/src/app/layouts/card/card.blueprint.ts" - ], shortenComponentPathBy: "/layouts/card/" })); - // card styling sample + // card tailwind styling configs.push(new Config({ - component: 'CardStylingSampleComponent', + component: 'CardTailwindStylingComponent', appConfig: BaseAppConfig, additionalFiles: [ - "/src/app/layouts/card/card.blueprint.ts", - "/src/app/layouts/card/card-styling-sample/layout.scss" + "/src/app/layouts/card/card-tailwind-styling/icons.ts" ], shortenComponentPathBy: "/layouts/card/" })); diff --git a/live-editing/configs/OverlayConfigGenerator.ts b/live-editing/configs/OverlayConfigGenerator.ts index e45740b995..5e6ecfda12 100644 --- a/live-editing/configs/OverlayConfigGenerator.ts +++ b/live-editing/configs/OverlayConfigGenerator.ts @@ -25,11 +25,11 @@ export class OverlayConfigGenerator implements IConfigGenerator { configs.push(new Config({ component: 'OverlaySampleMain2Component', - additionalFiles: ["/src/app/layouts/card/card-sample-1/card-sample-1.component.ts", - "/src/app/layouts/card/card-sample-1/card-sample-1.component.scss", - "/src/app/layouts/card/card-sample-1/card-sample-1.component.html", - "/src/app/layouts/card/card.blueprint.ts"], - appConfig: BaseAppConfig + additionalFiles: ["/src/app/interactions/overlay/overlay-dynamic-card/overlay-dynamic-card.component.ts", + "/src/app/interactions/overlay/overlay-dynamic-card/overlay-dynamic-card.component.scss", + "/src/app/interactions/overlay/overlay-dynamic-card/overlay-dynamic-card.component.html"], + appConfig: BaseAppConfig, + shortenComponentPathBy: "/interactions/overlay/" })); configs.push(new Config({ diff --git a/src/app/interactions/overlay/overlay-main-2/overlay-main-sample-2.component.ts b/src/app/interactions/overlay/overlay-main-2/overlay-main-sample-2.component.ts index 92b7b5949c..d5f8caa812 100644 --- a/src/app/interactions/overlay/overlay-main-2/overlay-main-sample-2.component.ts +++ b/src/app/interactions/overlay/overlay-main-2/overlay-main-sample-2.component.ts @@ -1,7 +1,7 @@ import { Component, ElementRef, OnDestroy, ViewChild, ViewContainerRef, inject } from '@angular/core'; import { ConnectedPositioningStrategy, IgxOverlayService } from 'igniteui-angular/core'; import { IgxButtonDirective } from 'igniteui-angular/directives'; -import { CardSample1Component } from '../../../layouts/card/card-sample-1/card-sample-1.component'; +import { MyDynamicCardComponent } from '../overlay-dynamic-card/overlay-dynamic-card.component'; // tslint:disable:object-literal-sort-keys @Component({ selector: 'app-overlay-sample', @@ -23,7 +23,7 @@ export class OverlaySampleMain2Component implements OnDestroy { if (this._cardHidden) { if (!this._overlayId) { const positionStrategy = new ConnectedPositioningStrategy(); - this._overlayId = this.overlayService.attach(CardSample1Component, this.viewContainerRef, { + this._overlayId = this.overlayService.attach(MyDynamicCardComponent, this.viewContainerRef, { target: this.buttonElement.nativeElement, positionStrategy, modal: false, diff --git a/src/app/interactions/overlay/overlay-main-3/overlay-main-sample-3.component.html b/src/app/interactions/overlay/overlay-main-3/overlay-main-sample-3.component.html index 139c885b31..2b8cc554df 100644 --- a/src/app/interactions/overlay/overlay-main-3/overlay-main-sample-3.component.html +++ b/src/app/interactions/overlay/overlay-main-3/overlay-main-sample-3.component.html @@ -2,5 +2,5 @@ - + \ No newline at end of file diff --git a/src/app/interactions/overlay/overlay-main-3/overlay-main-sample-3.component.ts b/src/app/interactions/overlay/overlay-main-3/overlay-main-sample-3.component.ts index dff46042de..0f9a0764f6 100644 --- a/src/app/interactions/overlay/overlay-main-3/overlay-main-sample-3.component.ts +++ b/src/app/interactions/overlay/overlay-main-3/overlay-main-sample-3.component.ts @@ -1,13 +1,13 @@ import { Component, ElementRef, OnDestroy, ViewChild, inject } from '@angular/core'; import { ConnectedPositioningStrategy, IgxOverlayService } from 'igniteui-angular/core'; import { IgxButtonDirective } from 'igniteui-angular/directives'; -import { CardSample1Component } from '../../../layouts/card/card-sample-1/card-sample-1.component'; +import { MyDynamicCardComponent } from '../overlay-dynamic-card/overlay-dynamic-card.component'; // tslint:disable:object-literal-sort-keys @Component({ selector: 'app-overlay-sample', templateUrl: `overlay-main-sample-3.component.html`, styleUrls: ['overlay-main-sample-3.component.scss'], - imports: [IgxButtonDirective, CardSample1Component] + imports: [IgxButtonDirective, MyDynamicCardComponent] }) export class OverlaySampleMain3Component implements OnDestroy { private overlayService = inject(IgxOverlayService); diff --git a/src/app/layouts/card/card-actions/card-actions.component.html b/src/app/layouts/card/card-actions/card-actions.component.html new file mode 100644 index 0000000000..ef78bed499 --- /dev/null +++ b/src/app/layouts/card/card-actions/card-actions.component.html @@ -0,0 +1,74 @@ +
+ Horizontal actions (default) + + + + + + Lena Fischer + @lena · 2h ago + + +

+ Just shipped our new design system 🚀 Six months of tokens, + components, and documentation — and it’s finally live. + So proud of the team. +

+
+ + + + + +
+
+ +
+ Vertical actions + + +
+ + + + Lena Fischer + @lena · 2h ago + + +

+ Just shipped our new design system 🚀 Six months of tokens, + components, and documentation — and it’s finally live. + So proud of the team. +

+
+
+ + +
+ + + +
+
+
+
diff --git a/src/app/layouts/card/card-actions/card-actions.component.scss b/src/app/layouts/card/card-actions/card-actions.component.scss new file mode 100644 index 0000000000..ce9716faa5 --- /dev/null +++ b/src/app/layouts/card/card-actions/card-actions.component.scss @@ -0,0 +1,107 @@ +@use "igniteui-theming/sass/typography" as *; + +:host { + display: flex; + flex-flow: row wrap; + align-items: flex-start; + justify-content: center; + box-sizing: border-box; + height: 100vh; + gap: rem(48px); + padding: rem(40px) rem(24px); +} + +.card-item { + display: flex; + flex-direction: column; + align-items: center; + gap: rem(20px); +} + +.card-item__label { + @include type-style("body-2") { + margin: 0; + } + + color: var(--ig-gray-600); + font-family: "Aktiv Grotesk", sans-serif; + font-size: rem(13px); + font-weight: 400; + line-height: rem(20px); + letter-spacing: rem(0.3px); +} + +.post-card { + --ig-card-border-radius: #{rem(8px)}; + + width: rem(310px); + + igx-card-header { + padding: rem(16px) rem(16px) 0; + } + + [igxCardHeaderTitle] { + color: var(--ig-gray-900); + font-size: rem(20px); + font-weight: 600; + line-height: rem(24px); + letter-spacing: rem(0.15px); + } + + [igxCardHeaderSubtitle] { + color: var(--ig-gray-600); + font-size: rem(14px); + font-weight: 600; + line-height: rem(24px); + letter-spacing: rem(0.1px); + } + + igx-card-content { + padding: rem(24px) rem(16px) 0; + overflow: visible; + + p { + margin: 0; + color: var(--ig-gray-700); + font-size: rem(14px); + font-weight: 400; + line-height: rem(20px); + letter-spacing: rem(0.25px); + } + } + + igx-card-actions { + padding: rem(12px) rem(16px) rem(8px); + } + + [igxIconButton] { + --ig-size: var(--ig-size-small); + --ig-flat-icon-button-foreground: var(--ig-gray-900); + } +} + +.post-card--vertical { + width: rem(390px); + + igx-card-content { + padding-block-end: rem(16px); + } + + igx-card-actions { + justify-content: flex-start; + padding: rem(16px) rem(16px) rem(16px) 0; + } +} + +.post-card__body { + display: flex; + flex: 1 1 auto; + flex-direction: column; + min-width: 0; +} + +.post-card__actions { + display: flex; + flex-direction: column; + gap: rem(8px); +} diff --git a/src/app/layouts/card/card-actions/card-actions.component.ts b/src/app/layouts/card/card-actions/card-actions.component.ts new file mode 100644 index 0000000000..27ecfebfd5 --- /dev/null +++ b/src/app/layouts/card/card-actions/card-actions.component.ts @@ -0,0 +1,41 @@ +import { Component, inject } from '@angular/core'; +import { IgxAvatarComponent } from 'igniteui-angular/avatar'; +import { + IgxCardActionsComponent, + IgxCardComponent, + IgxCardContentDirective, + IgxCardHeaderComponent, + IgxCardHeaderSubtitleDirective, + IgxCardHeaderTitleDirective, + IgxCardThumbnailDirective +} from 'igniteui-angular/card'; +import { IgxIconButtonDirective } from 'igniteui-angular/directives'; +import { IgxIconComponent, IgxIconService } from 'igniteui-angular/icon'; +import { IgxSuffixDirective } from 'igniteui-angular/input-group'; +import { linkedinIcon } from './icons'; + +@Component({ + selector: 'app-card-actions', + styleUrls: ['./card-actions.component.scss'], + templateUrl: './card-actions.component.html', + imports: [ + IgxAvatarComponent, + IgxCardActionsComponent, + IgxCardComponent, + IgxCardContentDirective, + IgxCardHeaderComponent, + IgxCardHeaderSubtitleDirective, + IgxCardHeaderTitleDirective, + IgxCardThumbnailDirective, + IgxIconButtonDirective, + IgxIconComponent, + IgxSuffixDirective + ] +}) +export class CardActionsComponent { + private iconService = inject(IgxIconService); + + constructor() { + this.iconService.addSvgIconFromText('linkedin', linkedinIcon, 'material'); + } +} diff --git a/src/app/layouts/card/card-actions/icons.ts b/src/app/layouts/card/card-actions/icons.ts new file mode 100644 index 0000000000..63e5078e40 --- /dev/null +++ b/src/app/layouts/card/card-actions/icons.ts @@ -0,0 +1 @@ +export const linkedinIcon = ''; diff --git a/src/app/layouts/card/card-media/card-media.component.html b/src/app/layouts/card/card-media/card-media.component.html new file mode 100644 index 0000000000..69a1d0a6ca --- /dev/null +++ b/src/app/layouts/card/card-media/card-media.component.html @@ -0,0 +1,58 @@ + + + A meeting room with a long table and chairs + + + Book your meeting room + Max 15 seats / 10 m2 + + +
+ videocam + bluetooth + volume_off +
+ +
+
+ + + + A street map with the event space marked + + + Main Event Space + Floor 4, Suite 402 + + +
+ directions_bus + directions_car + flight +
+ +
+
+ + + + A map of Europe showing the sales region + + + View your coverage area + Sales region + + +
+ place + +
+ +
+
diff --git a/src/app/layouts/card/card-media/card-media.component.scss b/src/app/layouts/card/card-media/card-media.component.scss new file mode 100644 index 0000000000..bd636620c3 --- /dev/null +++ b/src/app/layouts/card/card-media/card-media.component.scss @@ -0,0 +1,74 @@ +@use "igniteui-theming/sass/typography" as *; + +:host { + display: flex; + flex-flow: row wrap; + align-content: center; + align-items: flex-start; + justify-content: center; + box-sizing: border-box; + height: 100vh; + gap: rem(20px); + padding: rem(32px) rem(8px); +} + +.media-card { + --ig-card-border-radius: #{rem(4px)}; + + flex: 1 1 rem(240px); + max-width: rem(256px); + + igx-card-media img { + width: 100%; + height: 100%; + object-fit: cover; + } + + igx-card-header { + padding: rem(16px) rem(16px) 0; + } + + [igxCardHeaderTitle] { + margin-block-end: 0; + color: var(--ig-gray-900); + font-size: rem(18px); + font-weight: 600; + line-height: rem(24px); + letter-spacing: rem(0.15px); + } + + [igxCardHeaderSubtitle] { + color: var(--ig-gray-900); + font-size: rem(14px); + font-weight: 600; + line-height: rem(24px); + letter-spacing: rem(0.1px); + } + + igx-card-actions { + flex-wrap: nowrap; + padding: rem(24px) rem(16px) rem(12px); + } +} + +.media-card__icons { + display: inline-flex; + align-items: center; + gap: rem(4px); + color: var(--ig-gray-900); + + igx-icon { + --ig-icon-size: #{rem(16px)}; + } +} + +.media-card__action { + --ig-size: var(--ig-size-small); + + padding: 0; + background: transparent; + font-size: rem(13px); + font-weight: 600; + letter-spacing: rem(0.25px); + text-transform: uppercase; +} diff --git a/src/app/layouts/card/card-media/card-media.component.ts b/src/app/layouts/card/card-media/card-media.component.ts new file mode 100644 index 0000000000..bec4a9b5ed --- /dev/null +++ b/src/app/layouts/card/card-media/card-media.component.ts @@ -0,0 +1,38 @@ +import { Component, inject } from '@angular/core'; +import { + IgxCardActionsComponent, + IgxCardComponent, + IgxCardHeaderComponent, + IgxCardHeaderSubtitleDirective, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective +} from 'igniteui-angular/card'; +import { IgxButtonDirective } from 'igniteui-angular/directives'; +import { IgxIconComponent, IgxIconService } from 'igniteui-angular/icon'; +import { IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular/input-group'; +import { pinRightIcon } from './icons'; + +@Component({ + selector: 'app-card-media', + styleUrls: ['./card-media.component.scss'], + templateUrl: './card-media.component.html', + imports: [ + IgxButtonDirective, + IgxCardActionsComponent, + IgxCardComponent, + IgxCardHeaderComponent, + IgxCardHeaderSubtitleDirective, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective, + IgxIconComponent, + IgxPrefixDirective, + IgxSuffixDirective + ] +}) +export class CardMediaComponent { + private iconService = inject(IgxIconService); + + constructor() { + this.iconService.addSvgIconFromText('pin-right', pinRightIcon, 'material'); + } +} diff --git a/src/app/layouts/card/card-media/icons.ts b/src/app/layouts/card/card-media/icons.ts new file mode 100644 index 0000000000..dfc40a68c6 --- /dev/null +++ b/src/app/layouts/card/card-media/icons.ts @@ -0,0 +1 @@ +export const pinRightIcon = ''; diff --git a/src/app/layouts/card/card-overview/card-overview.component.html b/src/app/layouts/card/card-overview/card-overview.component.html new file mode 100644 index 0000000000..e75b1be93f --- /dev/null +++ b/src/app/layouts/card/card-overview/card-overview.component.html @@ -0,0 +1,60 @@ +
+ + Media + + + Header + + + Content + + + Actions + +
+ +
+ + @if (media) { + + Mountain range above the clouds at sunset + + } + @if (header) { + + + + Title + Subtitle + + } + @if (content) { + +

+ A paragraph is a self-contained unit of a discourse in writing + dealing with a particular point or idea. +

+
+ } + @if (actions) { + + + + + + + + } +
+
diff --git a/src/app/layouts/card/card-overview/card-overview.component.scss b/src/app/layouts/card/card-overview/card-overview.component.scss new file mode 100644 index 0000000000..52da7c8223 --- /dev/null +++ b/src/app/layouts/card/card-overview/card-overview.component.scss @@ -0,0 +1,41 @@ +@use "igniteui-theming/sass/typography" as *; + +:host { + display: flex; + flex-direction: column; + align-items: center; + box-sizing: border-box; + height: 100vh; + gap: rem(72px); + padding: rem(56px) rem(24px); +} + +.card-options { + display: flex; + flex-wrap: wrap; + justify-content: center; + gap: rem(32px); +} + +.card-container { + --ig-size: var(--ig-size-small); + + width: 100%; + max-width: rem(360px); + min-width: rem(220px); + + igx-card-media img { + width: 100%; + aspect-ratio: 15 / 8; + object-fit: cover; + } + + igx-card-content p { + @include type-style("body-2") { + margin: 0; + } + + font-size: rem(14px); + line-height: 1.5; + } +} diff --git a/src/app/layouts/card/card-overview/card-overview.component.ts b/src/app/layouts/card/card-overview/card-overview.component.ts new file mode 100644 index 0000000000..1d187ae175 --- /dev/null +++ b/src/app/layouts/card/card-overview/card-overview.component.ts @@ -0,0 +1,45 @@ +import { Component } from '@angular/core'; +import { IgxAvatarComponent } from 'igniteui-angular/avatar'; +import { + IgxCardActionsComponent, + IgxCardComponent, + IgxCardContentDirective, + IgxCardHeaderComponent, + IgxCardHeaderSubtitleDirective, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective, + IgxCardThumbnailDirective +} from 'igniteui-angular/card'; +import { IgxButtonDirective, IgxIconButtonDirective } from 'igniteui-angular/directives'; +import { IgxIconComponent } from 'igniteui-angular/icon'; +import { IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular/input-group'; +import { IgxSwitchComponent } from 'igniteui-angular/switch'; + +@Component({ + selector: 'app-card-overview', + styleUrls: ['./card-overview.component.scss'], + templateUrl: './card-overview.component.html', + imports: [ + IgxAvatarComponent, + IgxButtonDirective, + IgxCardActionsComponent, + IgxCardComponent, + IgxCardContentDirective, + IgxCardHeaderComponent, + IgxCardHeaderSubtitleDirective, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective, + IgxCardThumbnailDirective, + IgxIconButtonDirective, + IgxIconComponent, + IgxPrefixDirective, + IgxSuffixDirective, + IgxSwitchComponent + ] +}) +export class CardOverviewComponent { + public media = true; + public header = true; + public content = true; + public actions = true; +} diff --git a/src/app/layouts/card/card-position/card-position.component.html b/src/app/layouts/card/card-position/card-position.component.html new file mode 100644 index 0000000000..d455ad3a4b --- /dev/null +++ b/src/app/layouts/card/card-position/card-position.component.html @@ -0,0 +1,43 @@ +
+ Media before header + + + + A meeting room with a long table and chairs + + + Book your meeting room + Max 15 seats / 10 m2 + + +
+ videocam + bluetooth + volume_off +
+ +
+
+
+ +
+ Media after header + + + + Book your meeting room + Max 15 seats / 10 m2 + + + A meeting room with a long table and chairs + + +
+ videocam + bluetooth + volume_off +
+ +
+
+
diff --git a/src/app/layouts/card/card-position/card-position.component.scss b/src/app/layouts/card/card-position/card-position.component.scss new file mode 100644 index 0000000000..37b592575c --- /dev/null +++ b/src/app/layouts/card/card-position/card-position.component.scss @@ -0,0 +1,101 @@ +@use "igniteui-theming/sass/typography" as *; + +:host { + display: flex; + flex-flow: row wrap; + align-content: center; + align-items: flex-start; + justify-content: center; + box-sizing: border-box; + height: 100vh; + gap: rem(56px); + padding: rem(32px) rem(16px); +} + +.card-item { + display: flex; + flex-direction: column; + align-items: center; + gap: rem(20px); +} + +.card-item__label { + @include type-style("body-2") { + margin: 0; + } + + color: var(--ig-gray-600); + font-family: "Aktiv Grotesk", sans-serif; + font-size: rem(13px); + font-weight: 400; + line-height: rem(20px); + letter-spacing: rem(0.3px); +} + +.position-card { + --ig-card-border-radius: #{rem(4px)}; + + width: rem(256px); + + igx-card-media img { + width: 100%; + height: 100%; + object-fit: cover; + } + + igx-card-header { + padding: rem(16px) rem(16px) 0; + } + + [igxCardHeaderTitle] { + margin-block-end: 0; + color: var(--ig-gray-900); + font-size: rem(18px); + font-weight: 600; + line-height: rem(24px); + letter-spacing: rem(0.15px); + } + + [igxCardHeaderSubtitle] { + color: var(--ig-gray-900); + font-size: rem(14px); + font-weight: 600; + line-height: rem(24px); + letter-spacing: rem(0.1px); + } + + igx-card-actions { + flex-wrap: nowrap; + padding: rem(24px) rem(24px) rem(8px); + } + + igx-card-header + igx-card-media { + margin-block-start: rem(8px); + } + + igx-card-media + igx-card-actions { + padding-block-start: rem(16px); + } +} + +.position-card__icons { + display: inline-flex; + align-items: center; + gap: rem(6px); + color: var(--ig-gray-900); + + igx-icon { + --ig-icon-size: #{rem(16px)}; + } +} + +.position-card__action { + --ig-size: var(--ig-size-small); + + padding: 0; + background: transparent; + font-size: rem(13px); + font-weight: 600; + letter-spacing: rem(0.25px); + text-transform: uppercase; +} diff --git a/src/app/layouts/card/card-position/card-position.component.ts b/src/app/layouts/card/card-position/card-position.component.ts new file mode 100644 index 0000000000..ad7dc5d909 --- /dev/null +++ b/src/app/layouts/card/card-position/card-position.component.ts @@ -0,0 +1,33 @@ +import { Component } from '@angular/core'; +import { + IgxCardActionsComponent, + IgxCardComponent, + IgxCardHeaderComponent, + IgxCardHeaderSubtitleDirective, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective +} from 'igniteui-angular/card'; +import { IgxButtonDirective } from 'igniteui-angular/directives'; +import { IgxIconComponent } from 'igniteui-angular/icon'; +import { IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular/input-group'; + +@Component({ + selector: 'app-card-position', + styleUrls: ['./card-position.component.scss'], + templateUrl: './card-position.component.html', + imports: [ + IgxButtonDirective, + IgxCardActionsComponent, + IgxCardComponent, + IgxCardHeaderComponent, + IgxCardHeaderSubtitleDirective, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective, + IgxIconComponent, + IgxPrefixDirective, + IgxSuffixDirective + ] +}) +export class CardPositionComponent { + public roomImage = 'https://dl.infragistics.com/x/img/card/card-2.png'; +} diff --git a/src/app/layouts/card/card-sample-1/card-sample-1.component.html b/src/app/layouts/card/card-sample-1/card-sample-1.component.html deleted file mode 100644 index 2e9caf412f..0000000000 --- a/src/app/layouts/card/card-sample-1/card-sample-1.component.html +++ /dev/null @@ -1,21 +0,0 @@ -
- - -
{{card.title}}
-
{{card.subtitle}}
- - - -
- - - - - @for (icon of card.icons; track icon) { - - } - -
-
diff --git a/src/app/layouts/card/card-sample-1/card-sample-1.component.scss b/src/app/layouts/card/card-sample-1/card-sample-1.component.scss deleted file mode 100644 index 515ae890a3..0000000000 --- a/src/app/layouts/card/card-sample-1/card-sample-1.component.scss +++ /dev/null @@ -1,8 +0,0 @@ -.card-wrapper { - max-width: 400px; - min-width: 250px; -} - -:host { - display: block; -} \ No newline at end of file diff --git a/src/app/layouts/card/card-sample-1/card-sample-1.component.ts b/src/app/layouts/card/card-sample-1/card-sample-1.component.ts deleted file mode 100644 index 70b5e439f3..0000000000 --- a/src/app/layouts/card/card-sample-1/card-sample-1.component.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Component } from '@angular/core'; -import { Card } from '../card.blueprint'; -import { IgxCardActionsComponent, IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective } from 'igniteui-angular/card'; -import { IgxDividerComponent, IgxIconButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives'; -import { IgxSuffixDirective } from 'igniteui-angular/input-group'; -import { IgxIconComponent } from 'igniteui-angular/icon'; - - -@Component({ - selector: 'app-igx-card-simple', - styleUrls: ['./card-sample-1.component.scss'], - templateUrl: './card-sample-1.component.html', - imports: [IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardHeaderSubtitleDirective, IgxCardMediaDirective, IgxDividerComponent, IgxCardActionsComponent, IgxIconButtonDirective, IgxRippleDirective, IgxSuffixDirective, IgxIconComponent] -}) -export class CardSample1Component { - public card = new Card({ - icons: ['skip_previous', 'play_arrow', 'skip_next'], - imageUrl: 'assets/images/card/media/ROZES-Under-the-Grave.jpg', - subtitle: 'Under the Grave (2016)', - title: 'Rozes' - }); -} diff --git a/src/app/layouts/card/card-sample-2/card-sample-2.component.html b/src/app/layouts/card/card-sample-2/card-sample-2.component.html deleted file mode 100644 index 90f34c8e50..0000000000 --- a/src/app/layouts/card/card-sample-2/card-sample-2.component.html +++ /dev/null @@ -1,27 +0,0 @@ -
- -
- -
{{card.title}}
-
{{card.subtitle}}
- - - -
- - -

{{card.content}}

-
-
- - - - - @for (icon of card.icons; track icon) { - - } - -
-
diff --git a/src/app/layouts/card/card-sample-2/card-sample-2.component.scss b/src/app/layouts/card/card-sample-2/card-sample-2.component.scss deleted file mode 100644 index bf69d1a0d0..0000000000 --- a/src/app/layouts/card/card-sample-2/card-sample-2.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -.card-wrapper { - max-width: 400px; - min-width: 250px; -} diff --git a/src/app/layouts/card/card-sample-2/card-sample-2.component.spec.ts b/src/app/layouts/card/card-sample-2/card-sample-2.component.spec.ts deleted file mode 100644 index 9c1cff66d4..0000000000 --- a/src/app/layouts/card/card-sample-2/card-sample-2.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { CardSample2Component } from './card-sample-2.component'; - -describe('CardSample2Component', () => { - let component: CardSample2Component; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [CardSample2Component] -}) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CardSample2Component); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/layouts/card/card-sample-2/card-sample-2.component.ts b/src/app/layouts/card/card-sample-2/card-sample-2.component.ts deleted file mode 100644 index e676655d2b..0000000000 --- a/src/app/layouts/card/card-sample-2/card-sample-2.component.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Component } from '@angular/core'; -import { Card } from '../card.blueprint'; -import { IgxCardActionsComponent, IgxCardComponent, IgxCardContentDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective } from 'igniteui-angular/card'; -import { IgxDividerComponent, IgxFlexDirective, IgxIconButtonDirective, IgxLayoutDirective, IgxRippleDirective } from 'igniteui-angular/directives'; -import { IgxSuffixDirective } from 'igniteui-angular/input-group'; -import { IgxIconComponent } from 'igniteui-angular/icon'; - - -@Component({ - selector: 'app-card-sample-2', - styleUrls: ['./card-sample-2.component.scss'], - templateUrl: './card-sample-2.component.html', - imports: [IgxCardComponent, IgxLayoutDirective, IgxFlexDirective, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardHeaderSubtitleDirective, IgxCardMediaDirective, IgxCardContentDirective, IgxDividerComponent, IgxCardActionsComponent, IgxIconButtonDirective, IgxRippleDirective, IgxSuffixDirective, IgxIconComponent] -}) -export class CardSample2Component { - public card = new Card({ - content: `As I have always said: I write what's real and what's true, - even if it means throwing myself under the bus.`, - icons: ['skip_previous', 'play_arrow', 'skip_next'], - imageUrl: 'assets/images/card/media/ROZES-Under-the-Grave.jpg', - subtitle: 'Under the Grave (2016)', - title: 'Rozes' - }); - - public horizontal = true; -} diff --git a/src/app/layouts/card/card-sample-3/card-sample-3.component.html b/src/app/layouts/card/card-sample-3/card-sample-3.component.html deleted file mode 100644 index 813bc6421a..0000000000 --- a/src/app/layouts/card/card-sample-3/card-sample-3.component.html +++ /dev/null @@ -1,27 +0,0 @@ -
- -
- - -
{{card.title}}
-
{{card.subtitle}}
-
- - -

{{card.content}}

-
- - - @for (button of card.buttons; track button) { - - } - -
- - - - -
-
diff --git a/src/app/layouts/card/card-sample-3/card-sample-3.component.scss b/src/app/layouts/card/card-sample-3/card-sample-3.component.scss deleted file mode 100644 index bf69d1a0d0..0000000000 --- a/src/app/layouts/card/card-sample-3/card-sample-3.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -.card-wrapper { - max-width: 400px; - min-width: 250px; -} diff --git a/src/app/layouts/card/card-sample-3/card-sample-3.component.spec.ts b/src/app/layouts/card/card-sample-3/card-sample-3.component.spec.ts deleted file mode 100644 index 3b9762130c..0000000000 --- a/src/app/layouts/card/card-sample-3/card-sample-3.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { CardSample3Component } from './card-sample-3.component'; - -describe('CardSample3Component', () => { - let component: CardSample3Component; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [CardSample3Component] -}) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CardSample3Component); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/layouts/card/card-sample-3/card-sample-3.component.ts b/src/app/layouts/card/card-sample-3/card-sample-3.component.ts deleted file mode 100644 index 24963119b2..0000000000 --- a/src/app/layouts/card/card-sample-3/card-sample-3.component.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Component } from '@angular/core'; -import { Card } from '../card.blueprint'; -import { IgxCardActionsComponent, IgxCardComponent, IgxCardContentDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective } from 'igniteui-angular/card'; -import { IgxButtonDirective, IgxFlexDirective, IgxLayoutDirective, IgxRippleDirective } from 'igniteui-angular/directives'; -import { IgxAvatarComponent } from 'igniteui-angular/avatar'; -import { IgxPrefixDirective } from 'igniteui-angular/input-group'; - - -@Component({ - selector: 'app-card-sample-3', - styleUrls: ['./card-sample-3.component.scss'], - templateUrl: './card-sample-3.component.html', - imports: [IgxCardComponent, IgxLayoutDirective, IgxFlexDirective, IgxCardHeaderComponent, IgxAvatarComponent, IgxCardHeaderTitleDirective, IgxCardHeaderSubtitleDirective, IgxCardContentDirective, IgxCardActionsComponent, IgxButtonDirective, IgxRippleDirective, IgxPrefixDirective, IgxCardMediaDirective] -}) -export class CardSample3Component { - public horizontal = true; - - public card = new Card({ - avatarUrl: 'assets/images/card/avatars/mellow_d.jpg', - buttons: ['play album'], - content: `Far far away, behind the word mountains, - far from the countries Vokalia and Consonantia, - there live the blind texts.`, - imageUrl: 'assets/images/card/media/here_media.jpg', - subtitle: 'by Mellow D', - title: 'HERE' - }); -} diff --git a/src/app/layouts/card/card-sample-4/card-sample-4.component.html b/src/app/layouts/card/card-sample-4/card-sample-4.component.html deleted file mode 100644 index 2e01c1e1bb..0000000000 --- a/src/app/layouts/card/card-sample-4/card-sample-4.component.html +++ /dev/null @@ -1,131 +0,0 @@ -
-
- - -

{{ cards[1].title }}

-
{{ cards[1].subtitle }}
-
- - -
-
- - {{ cards[1].content}} - {{ cards[1].unit}} - - -
- -
- -
-
- - {{details[0].value}} - {{details[0].label}} -
-
- - {{details[1].value}} - {{details[1].label}} -
-
- -
- -
- 08:00 - 12:00 - 16:00 - 20:00 - 00:00 -
-
-
- - - - - @for (day of days; track day) { - -
- {{ day.day }} - - {{day.icon}} - - - {{ day.tempHeight}} / {{day.tempLow}} - -
-
- } -
-
-
- - - - - - -
-
- -
- - - - - - -

{{ cards[0].title }}

-
{{ cards[0].subtitle }}
-
- - -

{{ cards[0].content}}

- - - - Tonight's availability - -
- @for (chip of cards[0].chips; track chip) { - - {{ chip }} - - } -
-
- - - @for (button of cards[0].buttons; track button) { - - } - -
-
- -
- - - -

Frank Carter

-
Photographer
-
- - - - - - -

Photographer Frank Carter won this year national photo contest with his image "Skies" which gathered the most votes in the competition.

-
- - - - - -
-
-
diff --git a/src/app/layouts/card/card-sample-4/card-sample-4.component.scss b/src/app/layouts/card/card-sample-4/card-sample-4.component.scss deleted file mode 100644 index 88f16c2a85..0000000000 --- a/src/app/layouts/card/card-sample-4/card-sample-4.component.scss +++ /dev/null @@ -1,163 +0,0 @@ -.card-wrapper { - max-width: 400px; - min-width: 250px; -} - -.chip-holder { - display: flex; - margin-bottom: 10px -} - -.chip-label { - display: block; - margin-bottom: 10px; -} - -.chip-holder .igx-chip { - flex: 1 0 0%; - margin-left: 10px; -} - -.chip-holder .igx-chip:first-of-type { - margin-left: 0; -} - -.content-divider { - margin-top: 20px !important; - margin-bottom: 20px !important; -} - -.weather-time { - display: flex; -} - -.weather-time span { - flex: 1 0 0%; - text-align: center; - position: relative; -} - -.time-wrapper { - padding: 15px 0 5px; -} - -.time-wrapper span::before, -.time-wrapper span::after { - content: ''; - position: absolute; - width: 1px; - background: #444; -} - -.time-wrapper span::before { - height: 5px; - bottom: calc(100% + 18px); - left: 0; -} - -.time-wrapper span::after { - height: 10px; - bottom: calc(100% + 13px); - left: calc(50% - .5px); -} - -.time-wrapper span:first-of-type::before { - display: none; -} - -.weather img { - height: 100%; - width: auto; - margin-right: 5px; -} - -.weather, -.weather-now, -.big-number { - height: 80px; - min-height: 80px; - display: flex; - align-content: center; - justify-content: space-between; -} - -.big-number { - line-height: 70px; - position: relative; - font-size: 90px; -} - -.weather-now { - margin-right: 20px; - padding-right: 30px; -} - -.temp-unit { - font-size: 20px; - position: absolute; - top: 0; - line-height: normal; - right: -25px; -} - -.item-container { - display: flex; - align-items: center; -} - -.day { - flex: 1 0 0%; -} - -.degree { - margin-left: 30px; -} - -.sample-wrapper--cards .igx-list { - width: 100%; - height: 0; - transition: all 250ms ease-in-out; -} - -.sample-wrapper--cards .igx-list.show { - width: 100%; - height: 290px; -} - -.w_details__label { - margin-left: 5px; -} - -.w_icon { - color: #666; - display: flex; - align-items: center; - justify-content: center; -} - -.w_details { - display: flex; - align-items: center; - justify-content: space-between; -} - -.weather { - margin-bottom: 15px; -} - -.w_details__item { - display: flex; - align-items: center; -} - -.w_details__icon { - margin-right: 10px; -} - -.isSunny { - color: #fad024; -} - -.item-container { - width: 100%; -} diff --git a/src/app/layouts/card/card-sample-4/card-sample-4.component.ts b/src/app/layouts/card/card-sample-4/card-sample-4.component.ts deleted file mode 100644 index c2651ac134..0000000000 --- a/src/app/layouts/card/card-sample-4/card-sample-4.component.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { Component, OnInit, ViewChild, inject } from '@angular/core'; -import { IgxExpansionPanelBodyComponent, IgxExpansionPanelComponent } from 'igniteui-angular/expansion-panel'; -import { IgxIconComponent, IgxIconService } from 'igniteui-angular/icon'; -import { IgxCardActionsComponent, IgxCardComponent, IgxCardContentDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective } from 'igniteui-angular/card'; -import { IgxSliderComponent } from 'igniteui-angular/slider'; -import { IgxListComponent, IgxListItemComponent } from 'igniteui-angular/list'; -import { IgxButtonDirective, IgxDividerComponent, IgxRippleDirective } from 'igniteui-angular/directives'; -import { IgxPrefixDirective } from 'igniteui-angular/input-group'; -import { IgxAvatarComponent } from 'igniteui-angular/avatar'; -import { IgxChipComponent } from 'igniteui-angular/chips'; - -import { - Card, - IWeatherDetails, - IWeatherList, - weatherDetailsFactory, - weatherListFactory -} from '../card.blueprint'; - - -@Component({ - selector: 'app-card-sample-4', - styleUrls: ['./card-sample-4.component.scss'], - templateUrl: './card-sample-4.component.html', - imports: [IgxCardComponent, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardHeaderSubtitleDirective, IgxCardContentDirective, IgxChipComponent, IgxIconComponent, IgxSliderComponent, IgxExpansionPanelComponent, IgxExpansionPanelBodyComponent, IgxListComponent, IgxListItemComponent, IgxDividerComponent, IgxCardActionsComponent, IgxButtonDirective, IgxRippleDirective, IgxPrefixDirective, IgxCardMediaDirective, IgxAvatarComponent] -}) -export class CardSample4Component implements OnInit { - private iconService = inject(IgxIconService); - - @ViewChild(IgxExpansionPanelComponent, { static: true }) - public panel: IgxExpansionPanelComponent; - - public cards: Card[]; - public details: IWeatherDetails[]; - public days: IWeatherList[]; - - constructor() { - this.iconService.addSvgIcon('rain', 'assets/images/card/icons/rain.svg', 'weather-icons'); - this.iconService.addSvgIcon('breeze', 'assets/images/card/icons/breeze.svg', 'weather-icons'); - } - - public toggleDetails() { - this.panel.toggle(); - } - - public ngOnInit() { - this.cards = [ - new Card({ - buttons: ['RESERVE'], - chips: ['5:30', '7:30', '8:00', '9:00'], - content: `Small plates, salads & sandwiches setting with 12 indoor seats plus patio seating.`, - imageUrl: 'assets/images/card/media/cafe.jpg', - subtitle: '$ - Italian, Cafe', - title: 'Café Badilico' - }), - new Card({ - buttons: ['Details'], - content: '37', - imageUrl: 'assets/images/card/media/weather.png', - subtitle: 'Mon 12:30 PM, Mostly sunny', - title: 'Sofia - Bulgaria', - unit: '°C' - }) - ]; - - this.details = [ - weatherDetailsFactory({ - icon: 'rain', - label: 'Participation', - value: '12%' - }), - weatherDetailsFactory({ - icon: 'breeze', - label: 'Wind', - value: '23 km/h' - }) - ]; - - this.days = [ - weatherListFactory({ - day: 'Tuesday', - icon: 'wb_cloudy', - tempHeight: '18°', - tempLow: '11°' - }), - weatherListFactory({ - day: 'Wednesday', - icon: 'wb_cloudy', - tempHeight: '16°', - tempLow: '10°' - }), - weatherListFactory({ - day: 'Thursday', - icon: 'wb_sunny', - isSunny: 'true', - tempHeight: '22°', - tempLow: '12°' - }), - weatherListFactory({ - day: 'Friday', - icon: 'wb_cloudy', - tempHeight: '28°', - tempLow: '17°' - }), - weatherListFactory({ - day: 'Saturday', - icon: 'wb_cloudy', - tempHeight: '21°', - tempLow: '16°' - }), - weatherListFactory({ - day: 'Sunday', - icon: 'wb_sunny', - isSunny: 'true', - tempHeight: '29°', - tempLow: '20°' - }) - ]; - } -} diff --git a/src/app/layouts/card/card-styling-sample/card-styling-sample.component.html b/src/app/layouts/card/card-styling-sample/card-styling-sample.component.html deleted file mode 100644 index 98dee27aa5..0000000000 --- a/src/app/layouts/card/card-styling-sample/card-styling-sample.component.html +++ /dev/null @@ -1,32 +0,0 @@ -
- - - - -
- - -
-
{{ card.title }}
-

{{ card.subtitle }}

-
-
- - #artic - #fox - #card - - - - @for (icon of card.icons; track icon; let i = $index) { - - @if (i < 2) { - - } - } - -
-
-
\ No newline at end of file diff --git a/src/app/layouts/card/card-styling-sample/card-styling-sample.component.scss b/src/app/layouts/card/card-styling-sample/card-styling-sample.component.scss deleted file mode 100644 index 63707d63b6..0000000000 --- a/src/app/layouts/card/card-styling-sample/card-styling-sample.component.scss +++ /dev/null @@ -1,76 +0,0 @@ -@use "layout.scss"; -@use "igniteui-angular/theming" as *; - -// CSS variables approach - -igx-card { - --border-radius: #{rem(8px)}; - --outline-color: #f0f0f0; - --resting-shadow: none; - --hover-shadow: none; - --header-text-color: rgba(0, 0, 0, 0.88); -} - -igx-avatar { - --background: transparent; - --size: #{rem(30px)}; -} - -igx-chip { - --border-radius: #{rem(4px)}; - --background: #fafafa; - --border-color: #d9d9d9; - --hover-background: #d9d9d9; - --focus-background: #d9d9d9; -} - -.igx-icon-button--flat { - --foreground: #00000073; - --hover-foreground: #1677ff; - --hover-background: none; -} - -igx-divider { - --color: #f0f0f0 -} - -// Sass theme approach - -// $custom-card-theme: card-theme( -// $border-radius: rem(8px), -// $outline-color: #f0f0f0, -// $resting-shadow: none, -// $hover-shadow: none, -// $header-text-color: #000000e0, -// ); - -// $custom-avatar-theme: avatar-theme( -// $background: transparent, -// $size: rem(30px) -// ); - -// $custom-chip-theme: chip-theme( -// $border-radius: rem(4px), -// $background: #fafafa, -// $border-color: #d9d9d9, -// $hover-background: #d9d9d9, -// $focus-background: #d9d9d9, -// ); - -// $custom-icon-button-theme: flat-icon-button-theme( -// $foreground: #00000073, -// $hover-foreground: #1677ff, -// $hover-background: none, -// ); - -// $custom-divider-theme: divider-theme( -// $color: #f0f0f0 -// ); - -// :host { -// @include tokens($custom-card-theme); -// @include tokens($custom-avatar-theme); -// @include tokens($custom-chip-theme); -// @include tokens($custom-divider-theme); -// @include tokens($custom-icon-button-theme); -// } diff --git a/src/app/layouts/card/card-styling-sample/card-styling-sample.component.ts b/src/app/layouts/card/card-styling-sample/card-styling-sample.component.ts deleted file mode 100644 index 36edbf29cf..0000000000 --- a/src/app/layouts/card/card-styling-sample/card-styling-sample.component.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { Component, inject, OnInit } from '@angular/core'; -import { Card } from '../card.blueprint'; -import { IgxCardActionsComponent, IgxCardComponent, IgxCardContentDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective } from 'igniteui-angular/card'; -import { IgxDividerModule, IgxIconButtonDirective } from 'igniteui-angular/directives'; -import { IgxIconComponent, IgxIconService } from 'igniteui-angular/icon'; -import { IgxAvatarComponent } from 'igniteui-angular/avatar'; -import { IgxChipComponent } from 'igniteui-angular/chips'; - -@Component({ - selector: 'app-card-styling-sample', - templateUrl: './card-styling-sample.component.html', - styleUrls: ['./card-styling-sample.component.scss'], - imports: [IgxCardComponent, IgxCardMediaDirective, IgxCardHeaderComponent, - IgxCardHeaderTitleDirective, IgxCardHeaderSubtitleDirective, - IgxCardContentDirective, IgxCardActionsComponent, IgxIconButtonDirective, - IgxIconComponent, IgxAvatarComponent, IgxDividerModule, IgxChipComponent] -}) -export class CardStylingSampleComponent implements OnInit { - private iconService = inject(IgxIconService) - public ngOnInit() { - this.iconService.addSvgIconFromText('settings-custom', '') - this.iconService.addSvgIconFromText('edit-custom', ''); - this.iconService.addSvgIconFromText('dots', ''); - }; - public card = new Card({ - icons: ['settings-custom', 'edit-custom', 'dots'], - subtitle: 'This is the description', - title: 'Card title' - }); -} diff --git a/src/app/layouts/card/card-styling-sample/layout.scss b/src/app/layouts/card/card-styling-sample/layout.scss deleted file mode 100644 index 62ecb89d1e..0000000000 --- a/src/app/layouts/card/card-styling-sample/layout.scss +++ /dev/null @@ -1,79 +0,0 @@ -@use "igniteui-angular/theming" as *; - -:host { - ::ng-deep { - .igx-chip__item { - padding: 0 rem(5px); - height: rem(22px); - } - } -} - -.igx-card { - --ig-font-family: 'alibaba-sans', sans-serif; - - width: rem(300px); - border: none; -} - -.border { - border: rem(1px) solid var(--outline-color); - border-bottom-right-radius: rem(8px); - border-bottom-left-radius: rem(8px); - border-top: none; -} - -.igx-card-header{ - --ig-h6-font-size: 1rem; - --ig-body-1-font-size: #{rem(14px)}; - - width: unset; - padding: unset; - align-items: baseline; - margin: rem(24px) rem(24px) 0 rem(24px); - height: rem(65px); -} - -.igx-card-header__subtitle { - --ig-subtitle-2-font-weight: 400; - --ig-subtitle-2-line-height: #{rem(22px)}; - --ig-subtitle-2-letter-spacing: #{rem(0.5px)}; - --subtitle-text-color: rgba(0, 0, 0, 0.45); - - margin: rem(8px) 0 rem(12px); -} - -.igx-card-content { - padding: 0; - - igx-chip { - --ig-body-2-font-size: #{rem(12px)}; - - padding: rem(5px); - - &:nth-of-type(1) { - margin-left: rem(5px); - } - } - - igx-divider { - margin-top: rem(5px); - } -} - -igx-icon { - --ig-icon-size: #{rem(14px)}; -} - -igx-avatar { - border-radius: rem(20px); -} - -igx-card-actions { - justify-content: space-evenly; - padding: rem(6px) 0; - - igx-divider { - height: rem(24px); - } -} diff --git a/src/app/layouts/card/card-styling/card-styling.component.html b/src/app/layouts/card/card-styling/card-styling.component.html new file mode 100644 index 0000000000..690188ed54 --- /dev/null +++ b/src/app/layouts/card/card-styling/card-styling.component.html @@ -0,0 +1,37 @@ + + + trending_up + +12.4% + + + Total balance + + + $24,860 + + +
+ + +
+
+
+ + + Support + + Support agent reviewing system dashboards on a laptop + + + Review the issue and check system logs + + + Find out more + + diff --git a/src/app/layouts/card/card-styling/card-styling.component.scss b/src/app/layouts/card/card-styling/card-styling.component.scss new file mode 100644 index 0000000000..6829674a7e --- /dev/null +++ b/src/app/layouts/card/card-styling/card-styling.component.scss @@ -0,0 +1,173 @@ +@use "igniteui-theming/sass/typography" as *; +@import url("https://use.typekit.net/bng2zgw.css"); + +// The design brings its own palette and typeface, so the colors below are +// literal instead of theme tokens - the sample keeps its look in every theme. +// aktiv-grotesk is the typekit family name loaded above. +app-card-styling { + display: flex; + flex-flow: row wrap; + align-items: center; + justify-content: center; + box-sizing: border-box; + height: 100vh; + gap: rem(60px); + padding: rem(40px) rem(24px); + + .balance-card { + --ig-card-border-radius: #{rem(16px)}; + --ig-card-outline-color: #99c9ff; + + position: relative; + width: rem(312px); + padding: rem(8px); + background: #e6f2ff; + + igx-card-header { + padding: rem(16px) rem(16px) 0; + } + + [igxCardHeaderTitle] { + color: #004699; + font-family: "aktiv-grotesk", "Aktiv Grotesk", Arial, sans-serif; + font-size: rem(14px); + font-weight: 500; + line-height: rem(24px); + letter-spacing: rem(0.1px); + } + + igx-card-content { + padding: 0 rem(16px); + overflow: visible; + } + + igx-card-actions { + padding: rem(16px); + } + } + + .trend-chip { + position: absolute; + inset-block-start: rem(24px); + inset-inline-end: rem(24px); + z-index: 1; + + .igx-chip__item { + box-sizing: border-box; + height: rem(24px); + padding: rem(2px) rem(6px); + border: none; + border-radius: rem(16px); + background: #cce4ff; + color: #004699; + font-family: "Titillium Web", Verdana, Tahoma, sans-serif; + font-size: rem(14px); + font-weight: 400; + line-height: rem(20px); + letter-spacing: rem(0.25px); + } + + .igx-chip__start { + color: #004699; + } + + igx-icon { + --ig-icon-size: #{rem(20px)}; + } + } + + .balance-amount { + display: block; + color: #0176ff; + font-family: "aktiv-grotesk", "Aktiv Grotesk", Arial, sans-serif; + font-size: rem(32px); + font-weight: 600; + line-height: rem(40px); + letter-spacing: 0; + } + + .balance-actions { + display: inline-flex; + gap: rem(8px); + + [igxIconButton] { + --ig-flat-icon-button-foreground: #004699; + + width: rem(36px); + height: rem(36px); + border-radius: 50%; + background: #ffffff; + } + } + + .support-card { + --ig-card-border-radius: #{rem(16px)}; + --ig-card-outline-color: #e5ebf3; + + position: relative; + width: rem(246px); + padding: rem(8px); + background: #ffffff; + + igx-card-header { + padding: rem(16px) rem(16px) 0; + } + + [igxCardHeaderTitle] { + margin-block-end: 0; + color: #004699; + font-family: "aktiv-grotesk", "Aktiv Grotesk", Arial, sans-serif; + font-size: rem(16px); + font-weight: 700; + line-height: rem(20px); + letter-spacing: 0; + } + + igx-card-actions { + padding: rem(16px) rem(16px) rem(8px); + } + } + + .support-media { + box-sizing: border-box; + padding: rem(16px); + border-radius: rem(16px); + + img { + width: 100%; + height: 100%; + object-fit: contain; + } + } + + .support-tag { + position: absolute; + inset-block-start: rem(12px); + inset-inline-start: rem(16px); + z-index: 1; + + .igx-chip__item { + box-sizing: border-box; + height: rem(24px); + padding: rem(2px) rem(10px); + border: none; + border-radius: rem(16px); + background: #e6f2ff; + color: #004699; + font-family: "Titillium Web", Verdana, Tahoma, sans-serif; + font-size: rem(14px); + font-weight: 400; + line-height: rem(20px); + letter-spacing: rem(0.25px); + } + } + + .support-link { + color: #7d91ab; + font-family: "aktiv-grotesk", "Aktiv Grotesk", Arial, sans-serif; + font-size: rem(12px); + font-weight: 600; + line-height: rem(16px); + letter-spacing: rem(0.15px); + } +} diff --git a/src/app/layouts/card/card-styling/card-styling.component.ts b/src/app/layouts/card/card-styling/card-styling.component.ts new file mode 100644 index 0000000000..f999654a8c --- /dev/null +++ b/src/app/layouts/card/card-styling/card-styling.component.ts @@ -0,0 +1,34 @@ +import { Component, ViewEncapsulation } from '@angular/core'; +import { + IgxCardActionsComponent, + IgxCardComponent, + IgxCardContentDirective, + IgxCardHeaderComponent, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective +} from 'igniteui-angular/card'; +import { IgxChipComponent } from 'igniteui-angular/chips'; +import { IgxIconButtonDirective } from 'igniteui-angular/directives'; +import { IgxIconComponent } from 'igniteui-angular/icon'; +import { IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular/input-group'; + +@Component({ + selector: 'app-card-styling', + encapsulation: ViewEncapsulation.None, + styleUrls: ['./card-styling.component.scss'], + templateUrl: './card-styling.component.html', + imports: [ + IgxCardActionsComponent, + IgxCardComponent, + IgxCardContentDirective, + IgxCardHeaderComponent, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective, + IgxChipComponent, + IgxIconButtonDirective, + IgxIconComponent, + IgxPrefixDirective, + IgxSuffixDirective + ] +}) +export class CardStylingComponent { } diff --git a/src/app/layouts/card/card-tailwind-styling-sample/card-tailwind-styling-sample.component.html b/src/app/layouts/card/card-tailwind-styling-sample/card-tailwind-styling-sample.component.html deleted file mode 100644 index 171c4de3d7..0000000000 --- a/src/app/layouts/card/card-tailwind-styling-sample/card-tailwind-styling-sample.component.html +++ /dev/null @@ -1,28 +0,0 @@ -
- - - - - - -

{{ card.title }}

-
{{ card.subtitle }}
-
- - -

{{ card.content }}

-
- - - @for (icon of card.icons; track icon) { - - } - - -
-
diff --git a/src/app/layouts/card/card-tailwind-styling-sample/card-tailwind-styling-sample.component.scss b/src/app/layouts/card/card-tailwind-styling-sample/card-tailwind-styling-sample.component.scss deleted file mode 100644 index a60d456faa..0000000000 --- a/src/app/layouts/card/card-tailwind-styling-sample/card-tailwind-styling-sample.component.scss +++ /dev/null @@ -1 +0,0 @@ -@use "layout.scss"; diff --git a/src/app/layouts/card/card-tailwind-styling-sample/card-tailwind-styling-sample.component.ts b/src/app/layouts/card/card-tailwind-styling-sample/card-tailwind-styling-sample.component.ts deleted file mode 100644 index 59c146a849..0000000000 --- a/src/app/layouts/card/card-tailwind-styling-sample/card-tailwind-styling-sample.component.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { Component } from '@angular/core'; -import { Card } from '../card.blueprint'; -import { IgxCardActionsComponent, IgxCardComponent, IgxCardContentDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective } from 'igniteui-angular/card'; -import { IgxIconButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives'; -import { IgxSuffixDirective } from 'igniteui-angular/input-group'; -import { IgxIconComponent } from 'igniteui-angular/icon'; - - -@Component({ - selector: 'app-card-tailwind-styling-sample', - templateUrl: './card-tailwind-styling-sample.component.html', - styleUrls: ['./card-tailwind-styling-sample.component.scss'], - imports: [IgxCardComponent, IgxCardMediaDirective, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardHeaderSubtitleDirective, IgxCardContentDirective, IgxCardActionsComponent, IgxIconButtonDirective, IgxRippleDirective, IgxSuffixDirective, IgxIconComponent] -}) -export class CardTailwindStylingSampleComponent { - public card = new Card({ - content: `Hi! I'm Jane, photographer and filmmaker. - Photography is a way of feeling, of touching, - of loving. What you have caught on film is captured forever... - it remembers little things, long after you have - forgotten everything.`, - icons: ['person', 'favorite', 'share'], - imageUrl: 'https://images.unsplash.com/' - + 'photo-1541516160071-4bb0c5af65ba?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1950&q=80', - subtitle: 'Professional Photographer', - title: 'Jane Doe' - }); -} diff --git a/src/app/layouts/card/card-tailwind-styling-sample/layout.scss b/src/app/layouts/card/card-tailwind-styling-sample/layout.scss deleted file mode 100644 index d8f5f95f82..0000000000 --- a/src/app/layouts/card/card-tailwind-styling-sample/layout.scss +++ /dev/null @@ -1,4 +0,0 @@ -.card-wrapper { - max-width: 320px; - min-width: 220px; -} \ No newline at end of file diff --git a/src/app/layouts/card/card-tailwind-styling/card-tailwind-styling.component.html b/src/app/layouts/card/card-tailwind-styling/card-tailwind-styling.component.html new file mode 100644 index 0000000000..d4fff12c11 --- /dev/null +++ b/src/app/layouts/card/card-tailwind-styling/card-tailwind-styling.component.html @@ -0,0 +1,105 @@ + + + Cafe interior + + + + + Kate Thompson +

3D Artist. Turning polygons into worlds and immersive digital realities

+ +
+ +
+ @for (stat of profileStats; track stat.label; let isLast = $last) { +
+ {{ stat.value }} + {{ stat.label }} +
+ @if (!isLast) { + + } + } +
+
+ + +
+ + + +
+
+
+ + + + + + + + Kate Thompson +

3D Artist. Turning polygons into worlds and immersive digital realities

+
+ +
+ @for (stat of profileStats; track stat.label; let isLast = $last) { +
+ {{ stat.value }} + {{ stat.label }} +
+ @if (!isLast) { + + } + } +
+
+ + +
+ + + +
+
+
+ diff --git a/src/app/layouts/card/card-tailwind-styling/card-tailwind-styling.component.scss b/src/app/layouts/card/card-tailwind-styling/card-tailwind-styling.component.scss new file mode 100644 index 0000000000..ea7083981e --- /dev/null +++ b/src/app/layouts/card/card-tailwind-styling/card-tailwind-styling.component.scss @@ -0,0 +1,36 @@ +@use "igniteui-theming/sass/typography" as *; + +:host { + display: grid; + grid-template-columns: repeat(auto-fit, rem(344px)); + gap: rem(40px); + place-content: center; + height: 100vh; +} + +igx-card:nth-of-type(2) { + align-self: center; +} + +.card-sample-custom-subtitle { + display: block; + color: var(--ig-gray-700); + + @include type-style("body-2") { + margin-block-start: rem(8px); + }; +} + +.stats-title { + color: var(--ig-gray-900); + + @include type-style("subtitle-1") { + font-weight: 600; + }; +} + +.stats-subtitle { + color: var(--ig-gray-500); + + @include type-style("body-2"); +} diff --git a/src/app/layouts/card/card-tailwind-styling/card-tailwind-styling.component.ts b/src/app/layouts/card/card-tailwind-styling/card-tailwind-styling.component.ts new file mode 100644 index 0000000000..79d556629c --- /dev/null +++ b/src/app/layouts/card/card-tailwind-styling/card-tailwind-styling.component.ts @@ -0,0 +1,51 @@ +import { Component, inject } from '@angular/core'; +import { IgxAvatarComponent } from 'igniteui-angular/avatar'; +import { IgxButtonDirective, IgxDividerComponent, IgxIconButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives'; +import { + IgxCardActionsComponent, + IgxCardComponent, + IgxCardContentDirective, + IgxCardHeaderComponent, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective, + IgxCardThumbnailDirective +} from 'igniteui-angular/card'; +import { IgxIconComponent, IgxIconService } from 'igniteui-angular/icon'; +import { berealIcon, instagramIcon, plusIcon, threadsIcon } from './icons'; + +@Component({ + selector: 'app-card-tailwind-styling', + styleUrls: ['./card-tailwind-styling.component.scss'], + templateUrl: './card-tailwind-styling.component.html', + imports: [ + IgxAvatarComponent, + IgxButtonDirective, + IgxCardActionsComponent, + IgxCardComponent, + IgxCardContentDirective, + IgxCardHeaderComponent, + IgxCardHeaderTitleDirective, + IgxCardMediaDirective, + IgxCardThumbnailDirective, + IgxDividerComponent, + IgxIconButtonDirective, + IgxIconComponent, + IgxRippleDirective + ] +}) +export class CardTailwindStylingComponent { + private iconService = inject(IgxIconService); + + public profileStats = [ + { value: '23.9K', label: 'Likes' }, + { value: '163', label: 'Posts' }, + { value: '23.9K', label: 'Views' } + ]; + + constructor() { + this.iconService.addSvgIconFromText('instagram', instagramIcon, 'material'); + this.iconService.addSvgIconFromText('bereal', berealIcon, 'material'); + this.iconService.addSvgIconFromText('threads', threadsIcon, 'material'); + this.iconService.addSvgIconFromText('plus', plusIcon, 'material'); + } +} diff --git a/src/app/layouts/card/card-tailwind-styling/icons.ts b/src/app/layouts/card/card-tailwind-styling/icons.ts new file mode 100644 index 0000000000..70599bae5f --- /dev/null +++ b/src/app/layouts/card/card-tailwind-styling/icons.ts @@ -0,0 +1,11 @@ +export const instagramIcon = + ''; + +export const berealIcon = + ''; + +export const threadsIcon = + ''; + +export const plusIcon = + ''; diff --git a/src/app/layouts/card/card.blueprint.ts b/src/app/layouts/card/card.blueprint.ts deleted file mode 100644 index 2fcb93246b..0000000000 --- a/src/app/layouts/card/card.blueprint.ts +++ /dev/null @@ -1,68 +0,0 @@ -interface ICard { - title?: string; - subtitle?: string; - content?: string; - imageUrl?: string; - avatarUrl?: string; - buttons?: string[]; - icons?: string[]; - chips?: string[]; - unit?: string; -} - -export interface IWeatherList { - isSunny: boolean; - day: string; - icon: string; - tempHeight: string; - tempLow: string; -} - -export interface IWeatherDetails { - value: string; - icon: string; - label: string; -} - -export class Card { - public title: string; - public subtitle: string; - public content: string; - public imageUrl: string; - public avatarUrl: string; - public buttons: string[]; - public icons: string[]; - public chips: string[]; - public unit: string; - - constructor(obj?: ICard) { - this.title = obj.title || 'Card Title'; - this.subtitle = obj.subtitle || 'Card Subtitle'; - this.content = obj.content || - 'Some card content should be placed here. Description or other related information.'; - this.imageUrl = obj.imageUrl || 'assets/images/card/media/placeholder.jpg'; - this.avatarUrl = obj.avatarUrl || 'assets/images/card/avatars/rupert_stadler.jpg'; - this.buttons = obj.buttons || ['ACTION1', 'ACTION2']; - this.icons = obj.icons || ['favorite', 'bookmark', 'share']; - this.chips = obj.chips || []; - this.unit = obj.unit || undefined; - } -} - -export function weatherListFactory(params?: any): IWeatherList { - return { - day: params.day || 'day of the week', - icon: params.icon || 'wb_cloudy', - isSunny: params.isSunny || '', - tempHeight: params.tempHeight || '°C', - tempLow: params.tempLow || '°C' - }; -} - -export function weatherDetailsFactory(params?: any): IWeatherDetails { - return { - icon: params.icon || '', - label: params.label || '', - value: params.value || '' - }; -} diff --git a/src/app/layouts/card/card.component.html b/src/app/layouts/card/card.component.html deleted file mode 100644 index d8ea086abf..0000000000 --- a/src/app/layouts/card/card.component.html +++ /dev/null @@ -1,31 +0,0 @@ -
- - - - - - -

{{ card.title }}

-
{{ card.subtitle }}
-
- - -

{{ card.content }}

-
- - - @for (button of card.buttons; track button) { - - } - @for (icon of card.icons; track icon) { - - } - - -
-
diff --git a/src/app/layouts/card/card.component.scss b/src/app/layouts/card/card.component.scss deleted file mode 100644 index 457aa673e0..0000000000 --- a/src/app/layouts/card/card.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -.card-wrapper { - max-width: 320px; - min-width: 220px; -} diff --git a/src/app/layouts/card/card.component.spec.ts b/src/app/layouts/card/card.component.spec.ts deleted file mode 100644 index 0afc779056..0000000000 --- a/src/app/layouts/card/card.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; - -import { CardComponent } from './card.component'; - -describe('CardComponent', () => { - let component: CardComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - imports: [CardComponent] -}) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CardComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/layouts/card/card.component.ts b/src/app/layouts/card/card.component.ts deleted file mode 100644 index d6eb777150..0000000000 --- a/src/app/layouts/card/card.component.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { Component } from '@angular/core'; -import { Card } from './card.blueprint'; -import { IgxCardActionsComponent, IgxCardComponent, IgxCardContentDirective, IgxCardHeaderComponent, IgxCardHeaderSubtitleDirective, IgxCardHeaderTitleDirective, IgxCardMediaDirective } from 'igniteui-angular/card'; -import { IgxButtonDirective, IgxIconButtonDirective, IgxRippleDirective } from 'igniteui-angular/directives'; -import { IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular/input-group'; -import { IgxIconComponent } from 'igniteui-angular/icon'; - - -@Component({ - selector: 'app-card', - styleUrls: ['./card.component.scss'], - templateUrl: './card.component.html', - imports: [IgxCardComponent, IgxCardMediaDirective, IgxCardHeaderComponent, IgxCardHeaderTitleDirective, IgxCardHeaderSubtitleDirective, IgxCardContentDirective, IgxCardActionsComponent, IgxButtonDirective, IgxRippleDirective, IgxPrefixDirective, IgxIconButtonDirective, IgxSuffixDirective, IgxIconComponent] -}) -export class CardComponent { - public card = new Card({ - buttons: ['read more'], - content: `New York City comprises 5 boroughs sitting where the - Hudson River meets the Atlantic Ocean. At its core is Manhattan, - a densely populated borough that's among the world's major commercial, - financial and cultural centers.`, - icons: ['favorite', 'share'], - imageUrl: 'assets/images/card/media/ny.jpg', - subtitle: 'City in New York', - title: 'New York City' - }); -} diff --git a/src/app/layouts/layouts-routes-data.ts b/src/app/layouts/layouts-routes-data.ts index cb49866c68..9151131cb2 100644 --- a/src/app/layouts/layouts-routes-data.ts +++ b/src/app/layouts/layouts-routes-data.ts @@ -79,13 +79,12 @@ export const layoutsRoutesData = { 'tabs-tailwind-style': { displayName: 'Tabs Tailwind Styling', parentName: 'Tabs' }, 'tabs-alignment': { displayName: 'Tabs Alignment', parentName: 'Tabs' }, 'tabs-header-prefix-suffix': { displayName: 'Tabs Prefix/Suffix', parentName: 'Tabs' }, - 'card-sample-0': { displayName: 'Elevated Card', parentName: 'Card' }, - 'card-sample-1': { displayName: 'Outlined Card', parentName: 'Card' }, - 'card-sample-2': { displayName: 'Horizontal Card', parentName: 'Card' }, - 'card-sample-3': { displayName: 'Horizontal Card Alt', parentName: 'Card' }, - 'card-sample-4': { displayName: 'Other Examples', parentName: 'Card' }, - 'card-styling-sample': { displayName: 'Styled Card', parentName: 'Card' }, - 'card-tailwind-styling-sample': { displayName: 'Tailwind Styled Card', parentName: 'Card' }, + 'card-overview': { displayName: 'Overview', parentName: 'Card' }, + 'card-actions': { displayName: 'Card Actions', parentName: 'Card' }, + 'card-media': { displayName: 'Card Media', parentName: 'Card' }, + 'card-position': { displayName: 'Card Media Position', parentName: 'Card' }, + 'card-styling': { displayName: 'Card Styling', parentName: 'Card' }, + 'card-tailwind-styling': { displayName: 'Card Tailwind Styling', parentName: 'Card' }, 'divider-sample-1': { displayName: 'Default Divider', parentName: 'Divider' }, 'divider-sample-2': { displayName: 'Vertical Divider', parentName: 'Divider' }, 'divider-sample-3': { displayName: 'Dashed Divider', parentName: 'Divider' }, diff --git a/src/app/layouts/layouts.routes.ts b/src/app/layouts/layouts.routes.ts index ff1087244c..28116ae86f 100644 --- a/src/app/layouts/layouts.routes.ts +++ b/src/app/layouts/layouts.routes.ts @@ -14,13 +14,12 @@ import { BreadcrumbsTailwindStylingComponent } from './breadcrumbs/breadcrumbs-t import { BreadcrumbsWrappingComponent } from './breadcrumbs/breadcrumbs-wrapping/breadcrumbs-wrapping.component'; import { BreadcrumbsSizesComponent } from './breadcrumbs/breadcrumbs-sizes/breadcrumbs-sizes.component'; import { BreadcrumbsStatesComponent } from './breadcrumbs/breadcrumbs-states/breadcrumbs-states.component'; -import { CardSample1Component } from './card/card-sample-1/card-sample-1.component'; -import { CardSample2Component } from './card/card-sample-2/card-sample-2.component'; -import { CardSample3Component } from './card/card-sample-3/card-sample-3.component'; -import { CardSample4Component } from './card/card-sample-4/card-sample-4.component'; -import { CardStylingSampleComponent } from './card/card-styling-sample/card-styling-sample.component'; -import { CardTailwindStylingSampleComponent } from './card/card-tailwind-styling-sample/card-tailwind-styling-sample.component'; -import { CardComponent } from './card/card.component'; +import { CardActionsComponent } from './card/card-actions/card-actions.component'; +import { CardMediaComponent } from './card/card-media/card-media.component'; +import { CardOverviewComponent } from './card/card-overview/card-overview.component'; +import { CardPositionComponent } from './card/card-position/card-position.component'; +import { CardStylingComponent } from './card/card-styling/card-styling.component'; +import { CardTailwindStylingComponent } from './card/card-tailwind-styling/card-tailwind-styling.component'; import { CarouselAnimationsSampleComponent } from './carousel/carousel-animations-sample/carousel-animations-sample.component'; @@ -542,39 +541,34 @@ export const LayoutsRoutes: Routes = [ path: 'tabs-header-prefix-suffix' }, { - component: CardComponent, - data: layoutsRoutesData['card-sample-0'], - path: 'card-sample-0' + component: CardOverviewComponent, + data: layoutsRoutesData['card-overview'], + path: 'card-overview' }, { - component: CardSample1Component, - data: layoutsRoutesData['card-sample-1'], - path: 'card-sample-1' + component: CardActionsComponent, + data: layoutsRoutesData['card-actions'], + path: 'card-actions' }, { - component: CardSample2Component, - data: layoutsRoutesData['card-sample-2'], - path: 'card-sample-2' + component: CardMediaComponent, + data: layoutsRoutesData['card-media'], + path: 'card-media' }, { - component: CardSample3Component, - data: layoutsRoutesData['card-sample-3'], - path: 'card-sample-3' + component: CardPositionComponent, + data: layoutsRoutesData['card-position'], + path: 'card-position' }, { - component: CardSample4Component, - data: layoutsRoutesData['card-sample-4'], - path: 'card-sample-4' + component: CardStylingComponent, + data: layoutsRoutesData['card-styling'], + path: 'card-styling' }, { - component: CardStylingSampleComponent, - data: layoutsRoutesData['card-styling-sample'], - path: 'card-styling-sample' - }, - { - component: CardTailwindStylingSampleComponent, - data: layoutsRoutesData['card-tailwind-styling-sample'], - path: 'card-tailwind-styling-sample' + component: CardTailwindStylingComponent, + data: layoutsRoutesData['card-tailwind-styling'], + path: 'card-tailwind-styling' }, { component: TileManagerComponent,