diff --git a/packages/cxl-lumo-styles/scss/global.scss b/packages/cxl-lumo-styles/scss/global.scss index ae9549991..e93a54b33 100644 --- a/packages/cxl-lumo-styles/scss/global.scss +++ b/packages/cxl-lumo-styles/scss/global.scss @@ -8,6 +8,7 @@ html { --cxl-wrap-padding: var(--lumo-space-m); --cxl-space-sm: 12px; --cxl-color-light-gray: hsla(0, 0%, 96%, 1); + --cxl-color-athens-gray: hsla(210, 20%, 96%, 1); --cxl-color-dark-gray: hsla(240, 1%, 24%, 1); --cxl-color-black: hsl(0, 0%, 0%); --cxl-color-black-50pct: hsla(0, 0%, 0%, 0.5); diff --git a/packages/cxl-lumo-styles/scss/themes/cxl-tabs-slider.scss b/packages/cxl-lumo-styles/scss/themes/cxl-tabs-slider.scss index a1678b7cf..2703f7c5e 100644 --- a/packages/cxl-lumo-styles/scss/themes/cxl-tabs-slider.scss +++ b/packages/cxl-lumo-styles/scss/themes/cxl-tabs-slider.scss @@ -68,8 +68,8 @@ } /** - * Theme "featured-course-slider" -*/ + * Theme "featured-course-slider" + */ :host([theme~="cxl-featured-course-slider"][orientation="horizontal"]) { position: relative; @@ -139,8 +139,8 @@ } /** - * Theme "cxl-course-slider" -*/ + * Theme "cxl-course-slider" + */ :host([theme~="cxl-course-slider"][theme~="minimal"]) { margin-top: calc(var(--lumo-space-s) * -1); @@ -217,8 +217,8 @@ } /** - * Theme "cxl-course-slider" and "cxl-category-accordion" -*/ + * Theme "cxl-course-slider" and "cxl-category-accordion" + */ :host([theme~="cxl-course-slider"][theme~="cxl-category-accordion"][theme~="minimal"]) { margin-left: calc(-1 * var(--lumo-space-m)); @@ -227,3 +227,20 @@ margin-left: calc(-1 * var(--lumo-space-l)); } } + +/** + * Theme "cxl-course-slider" and "cxl-slider-dashboard-header" + */ + +:host([theme~="cxl-course-slider"][theme~="cxl-slider-dashboard-header"][theme~="minimal"]) { + margin-left: calc(-1 * var(--lumo-space-m)); + + @media #{mq.$small} { + margin-left: calc(-1 * var(--lumo-space-l)); + } + + &::before, + &::after { + background: linear-gradient(270deg, var(--cxl-color-athens-gray) 0%, rgba(255, 255, 255, 0) 100%); + } +} diff --git a/packages/cxl-ui/scss/cxl-dashboard-header.scss b/packages/cxl-ui/scss/cxl-dashboard-header.scss index dbd8d8c94..a5cc967f7 100644 --- a/packages/cxl-ui/scss/cxl-dashboard-header.scss +++ b/packages/cxl-ui/scss/cxl-dashboard-header.scss @@ -2,26 +2,50 @@ @use "~@conversionxl/cxl-lumo-styles/scss/mixins"; :host { + position: relative; + background-color: var(--cxl-color-athens-gray); + + &:before { + content: ''; + position: absolute; + top: 0; + bottom: 0; + left: 50%; + z-index: 0; + width: 100vw; + background-color: var(--cxl-color-athens-gray); + transform: translateX(-50%); + } + .container { - padding: 0 var(--lumo-space-m); - background-color: var(--cxl-color-light-gray); + position: relative; + padding: 0 var(--lumo-space-m) var(--lumo-space-l); + z-index: 1; @media #{mq.$medium} { - padding: 0 var(--lumo-space-l); + padding: calc(var(--lumo-space-m) * 2) var(--lumo-space-l); } } header { - margin-bottom: var(--lumo-space-l); - @media #{mq.$medium} { display: flex; align-items: center; justify-content: space-between; - padding-top: var(--lumo-size-s); + } + + .updates { + position: relative; + + @media #{mq.$medium} { + position: absolute; + right: 0; + bottom: calc(100% + var(--lumo-space-m)); + } } .titles { + flex-shrink: 0; padding-top: var(--lumo-size-s); @media #{mq.$medium} { @@ -33,191 +57,28 @@ font-size: var(--lumo-font-size-xs); line-height: 1; text-transform: uppercase; + color: var(--cxl-color-black-50pct); } - .updates { - @media #{mq.$medium} { - order: 2; - padding-bottom: 0; - } + .title { + margin: 0; + padding-right: var(--lumo-space-m); + font-size: var(--lumo-font-size-xxxl); + font-weight: 900; + line-height: 1.4; } } - .icon-bell { - position: relative; - margin-right: 14px; - - &::after { - position: absolute; - top: 4px; - right: -7px; - display: flex; - align-items: center; - justify-content: center; - width: 12px; - height: 12px; - font-size: 8px; - font-weight: 700; - color: var(--lumo-tint); - content: attr(count); - background-color: var(--lumo-primary-color); - border: 2px solid var(--cxl-color-dark-gray); - border-radius: 100%; - } + .slider { + margin-top: var(--lumo-space-l); } - .title { - margin: 0; - font-size: var(--lumo-font-size-xxxl); - line-height: 1.4; - } - - .content { - padding-bottom: var(--lumo-space-l); - - @media #{mq.$large} { - padding-bottom: var(--lumo-space-xl); - } - } - - .last-course { - margin-bottom: var(--lumo-space-l); - - @media #{mq.$large} { - display: flex; - } - - a { - display: flex; - flex: 1; - align-items: center; - justify-content: space-between; - padding: var(--lumo-space-m); - color: var(--lumo-body-text-color); - text-decoration: none; - background-color: var(--lumo-primary-contrast-color); - - > div { - display: flex; - flex-direction: column; - } - - .subtitle { - font-size: var(--lumo-font-size-xs); - line-height: 1; - color: var(--cxl-color-black-50pct); - text-transform: uppercase; - } - - .title { - margin-top: calc(var(--lumo-space-s) / 2); - font-size: var(--lumo-font-size-xl); - font-weight: 700; - line-height: 1.2; - } - - vaadin-icon { - flex-shrink: 0; - margin-left: var(--lumo-space-s); - color: var(--lumo-primary-color); - background: var(--lumo-shade-10pct); - border-radius: 100%; - } - } - } - - .progress { - display: flex; - flex-direction: column; - justify-content: center; - padding: var(--lumo-space-m); - color: var(--lumo-body-text-color); - background-color: var(--cxl-color-light-gray); - } - - .courses { - display: flex; - flex-direction: column; - gap: var(--lumo-space-s); - - @media #{mq.$large} { - flex-direction: row; - gap: var(--lumo-space-m); - } - - vaadin-button { - display: flex; - align-items: center; - justify-content: space-between; - height: var(--lumo-size-xl); - padding: var(--lumo-space-m); - line-height: 1.3; - cursor: pointer; - border-radius: var(--lumo-border-radius-s); - background-color: var(--lumo-primary-contrast-color); - - &::part(label) { - width: 100%; - padding-right: var(--lumo-space-l); - text-align: left; - } - - @media #{mq.$large} { - width: 100%; - } - - vaadin-icon { - position: absolute; - right: var(--lumo-space-m); - color: var(--lumo-primary-color); - background-color: var(--lumo-tint-5pct); - border-radius: 100%; - } - } - - .roadmap { - color: var(--lumo-primary-contrast-color); - background-color: var(--lumo-primary-color); - - @media #{mq.$large} { - color: var(--lumo-primary-contrast-color); - } - - vaadin-icon { - color: var(--lumo-primary-contrast-color); - } - } - } -} - -:host([hasroadmap]) { - .content { - @media #{mq.$large} { - display: grid; - grid-template-columns: repeat(3, 1fr); - column-gap: var(--lumo-space-l); - - > div { - grid-column: 1 / 3; - } - - .stats { - grid-column: 3 / 4; - } - } - } -} - -::slotted(.stats-desktop) { - display: none; - - @media #{mq.$large} { + .slider-title { display: block; - } -} - -::slotted(.stats-mobile) { - @media #{mq.$large} { - display: none; + margin-bottom: var(--lumo-space-s); + font-size: var(--lumo-font-size-xs); + line-height: 1; + text-transform: uppercase; + color: var(--cxl-color-black-50pct); } } diff --git a/packages/cxl-ui/scss/cxl-stats.scss b/packages/cxl-ui/scss/cxl-stats.scss index 8380cf825..08c8f8987 100644 --- a/packages/cxl-ui/scss/cxl-stats.scss +++ b/packages/cxl-ui/scss/cxl-stats.scss @@ -15,12 +15,14 @@ } } -:host([theme~="cxl-stats-dashboard-header"]) { - padding: var(--lumo-space-m); +:host([theme="cxl-stats-dashboard-header"]) { + margin-top: var(--lumo-space-m); + padding: 0; border: 0; - background-color: var(--lumo-primary-contrast-color); @media #{mq.$medium} { - grid-template-columns: repeat(2, 1fr); + margin-top: 0; + grid-template-columns: repeat(3, 1fr); + gap: var(--lumo-space-l); } } diff --git a/packages/cxl-ui/scss/global/cxl-dashboard-header.scss b/packages/cxl-ui/scss/global/cxl-dashboard-header.scss index b9df43dca..049d99125 100644 --- a/packages/cxl-ui/scss/global/cxl-dashboard-header.scss +++ b/packages/cxl-ui/scss/global/cxl-dashboard-header.scss @@ -2,22 +2,4 @@ cxl-dashboard-header { position: relative; z-index: 1; display: block; - - .edit-roadmap { - display: flex; - align-items: center; - align-self: end; - max-width: fit-content; - height: fit-content; - padding: 0 var(--lumo-space-s); - margin: 0; - color: var(--lumo-primary-color); - cursor: pointer; - background-color: var(--lumo-primary-contrast-color); - border-radius: var(--lumo-border-radius-s); - - &::part(label) { - line-height: 1.5; - } - } } diff --git a/packages/cxl-ui/scss/global/cxl-stats.scss b/packages/cxl-ui/scss/global/cxl-stats.scss index 8c5f2a1e5..7e38845df 100644 --- a/packages/cxl-ui/scss/global/cxl-stats.scss +++ b/packages/cxl-ui/scss/global/cxl-stats.scss @@ -1,6 +1,10 @@ @use "~@conversionxl/cxl-lumo-styles/scss/mq"; cxl-stats { + .stat-item { + min-width: 112px; + } + .stat-title { margin: 0 0 var(--lumo-space-s) 0; font-size: var(--lumo-font-size-xs); @@ -19,11 +23,14 @@ cxl-stats { small { font-size: var(--lumo-font-size-l); } + } + + a.stat-count { + color: var(--cxl-color-black); + text-decoration: underline; - a { - font-size: var(--lumo-font-size-m); - font-weight: 400; - text-decoration: underline; + &:hover { + color: var(--lumo-primary-color); } } } diff --git a/packages/cxl-ui/src/components/cxl-dashboard-header.js b/packages/cxl-ui/src/components/cxl-dashboard-header.js index 930846cad..bdd0d91ae 100644 --- a/packages/cxl-ui/src/components/cxl-dashboard-header.js +++ b/packages/cxl-ui/src/components/cxl-dashboard-header.js @@ -1,12 +1,12 @@ /* eslint-disable import/no-extraneous-dependencies */ -import { LitElement, html, nothing } from 'lit'; +import {LitElement, html, nothing} from 'lit'; import { customElement, property } from 'lit/decorators.js'; import '@conversionxl/cxl-lumo-styles'; -import '@vaadin/progress-bar'; import './cxl-dashboard-notification'; import { registerGlobalStyles } from '@conversionxl/cxl-lumo-styles/src/utils'; -import cxlDashboardHeaderGlobalStyles from '../styles/global/cxl-dashboard-header-css.js'; + import cxlDashboardHeaderStyles from '../styles/cxl-dashboard-header-css.js'; +import cxlDashboardHeaderGlobalStyles from '../styles/global/cxl-dashboard-header-css.js'; @customElement('cxl-dashboard-header') export class CXLDashboardHeaderElement extends LitElement { @@ -14,119 +14,77 @@ export class CXLDashboardHeaderElement extends LitElement { return [cxlDashboardHeaderStyles]; } - @property({ type: String }) title = 'Hello'; - - @property({ type: String }) subtitle = 'My dashboard'; - - @property({ type: String }) name = ''; - @property({ type: Number, attribute: 'notification-count' }) notificationCount = 0; @property({ type: String }) notificationTitle = "What's new in CXL"; @property({ type: Object }) notificationData = null; - @property({ type: String, attribute: 'last-course-title' }) lastCourseTitle = ''; - - @property({ type: String, attribute: 'last-course-link' }) lastCourseLink = ''; - - @property({ type: String }) lastCourseSubtitle = 'Continue where you left off'; - - @property({ type: Number, attribute: 'progress' }) progress = 0; - - @property({ type: Number, attribute: 'lessons-completed' }) lessonsCompleted = 0; - - @property({ type: Number, attribute: 'lessons-total' }) lessonsTotal = 0; - - @property({ type: String }) cta1 = ''; + @property({ type: String }) subtitle = 'My dashboard'; - @property({ type: String }) cta1Link = ''; + @property({ type: String }) title = 'Hello'; - @property({ type: String }) cta2 = ''; + @property({ type: String }) name = ''; - @property({ type: String }) cta2Link = ''; + @property({ type: Boolean }) showCompletedStats = false; - @property({ type: String }) cta3 = ''; + @property({ type: Boolean }) showContinueSlider = false; - @property({ type: String }) cta3Link = ''; + _renderNotifications() { + if (this.notificationCount > 0) { + return html` +
+ +
+ `; + } - @property({ type: Boolean }) hasRoadmap = false; + return nothing; + } - renderLastCourse() { - return this.hasRoadmap && this.lastCourseTitle - ? html` -
- -
- ${this.lastCourseSubtitle} - ${this.lastCourseTitle} -
- -
-
- Completed ${this.lessonsCompleted} of ${this.lessonsTotal} lessons - Completed ${this.lessonsCompleted} of ${this.lessonsTotal} - lessons -
-
- ` - : nothing; + // eslint-disable-next-line class-methods-use-this + _renderStats() { + if (this.showCompletedStats) { + return html` +
+ +
+ `; + } + + return nothing; } - renderStats() { - return this.hasRoadmap - ? html`
- - -
` - : nothing; + // eslint-disable-next-line class-methods-use-this + _renderContinue() { + if (this.showContinueSlider) { + return html` +
+ Continue where you left off + +
+ `; + } + + return nothing; } render() { return html`
- ${this.notificationCount > 0 - ? html`
- -
` - : ''} + ${this._renderNotifications()}
${this.subtitle}

${this.title}, ${this.name}.

+ ${this._renderStats()}
-
- ${this.renderLastCourse()} -
- - ${this.cta1} - - - - ${this.cta2} - - - ${!this.hasRoadmap - ? html` - ${this.cta3} - - ` - : nothing} -
-
- ${this.renderStats()} + ${this._renderContinue()}
`; diff --git a/packages/cxl-ui/src/components/cxl-stats.js b/packages/cxl-ui/src/components/cxl-stats.js index 324bfaef6..f5477df7a 100644 --- a/packages/cxl-ui/src/components/cxl-stats.js +++ b/packages/cxl-ui/src/components/cxl-stats.js @@ -2,8 +2,10 @@ import { LitElement, html } from 'lit'; // eslint-disable-next-line import/no-extraneous-dependencies import { customElement } from 'lit/decorators.js'; -import { registerGlobalStyles } from '@conversionxl/cxl-lumo-styles/src/utils'; + import '@conversionxl/cxl-lumo-styles'; +import { registerGlobalStyles } from '@conversionxl/cxl-lumo-styles/src/utils'; + import cxlStatsStyles from '../styles/cxl-stats-css.js'; import cxlStatsGlobalStyles from '../styles/global/cxl-stats-css.js'; @@ -22,7 +24,7 @@ export class CXLStatsElement extends LitElement { // Global styles. registerGlobalStyles(cxlStatsGlobalStyles, { - moduleId: 'cxl-stats', + moduleId: 'cxl-stats-global', }); } } diff --git a/packages/storybook/cxl-ui/cxl-dashboard-header/dashboard-header.stories.js b/packages/storybook/cxl-ui/cxl-dashboard-header/dashboard-header.stories.js index c4967f70d..6f09a21b8 100644 --- a/packages/storybook/cxl-ui/cxl-dashboard-header/dashboard-header.stories.js +++ b/packages/storybook/cxl-ui/cxl-dashboard-header/dashboard-header.stories.js @@ -12,17 +12,7 @@ CXLDashboardHeader.argTypes = { CXLDashboardHeader.args = { name: 'Mathias Z', - lastCourseTitle: 'Advanced experimentation analysis', - lastCourseLink: 'https://cxl.com', - hasRoadmap: true, - notificationCount: '6', - progress: '0.34', - lessonsCompleted: '2', - lessonsTotal: '6', - cta1: 'Browse all courses', - cta2: 'Browse fast skills', - cta3: 'Create your personal learning roadmap', - cta1Link: 'https://cxl.com', - cta2Link: 'https://cxl.com', - cta3Link: 'https://cxl.com', + notificationCount: 6, + showCompletedStats: true, + showContinueSlider: true, }; diff --git a/packages/storybook/cxl-ui/cxl-dashboard-header/initial-state.stories.js b/packages/storybook/cxl-ui/cxl-dashboard-header/initial-state.stories.js deleted file mode 100644 index 94d25ba6b..000000000 --- a/packages/storybook/cxl-ui/cxl-dashboard-header/initial-state.stories.js +++ /dev/null @@ -1,27 +0,0 @@ -import { DashboardHeaderTemplate, ArgTypes } from './template'; - -export default { - title: 'CXL UI/cxl-dashboard-header', -}; - -export const CXLDashboardHeaderInitial = DashboardHeaderTemplate.bind({}); - -CXLDashboardHeaderInitial.argTypes = { - ...ArgTypes, -}; -CXLDashboardHeaderInitial.args = { - name: 'Mathias Z', - lastCourseTitle: '', - lastCourseLink: '', - hasRoadmap: false, - notificationCount: '6', - progress: '0', - lessonsCompleted: '0', - lessonsTotal: '0', - cta1: 'Browse all courses', - cta2: 'Browse fast skills', - cta3: 'Create your personal learning roadmap', - cta1Link: 'https://cxl.com', - cta2Link: 'https://cxl.com', - cta3Link: 'https://cxl.com', -}; diff --git a/packages/storybook/cxl-ui/cxl-dashboard-header/template.js b/packages/storybook/cxl-ui/cxl-dashboard-header/template.js index de3e69b6c..3dfd4fdcb 100644 --- a/packages/storybook/cxl-ui/cxl-dashboard-header/template.js +++ b/packages/storybook/cxl-ui/cxl-dashboard-header/template.js @@ -1,9 +1,11 @@ -import { html, nothing } from 'lit'; -import { unsafeHTML } from 'lit/directives/unsafe-html.js'; +import { html } from 'lit'; import '@conversionxl/cxl-lumo-styles'; import '@conversionxl/cxl-ui/src/components/cxl-dashboard-header.js'; -import statsData from '../cxl-stats/theme=cxl-dashboard-header.data.json'; import '@conversionxl/cxl-ui/src/components/cxl-stats'; + +import { CXLStats } from "../cxl-stats/default.stories"; +import { CXLLightCardSlider } from '../cxl-light-card/light-card-slider.stories'; + import notificationData from '../cxl-dashboard-notification/cxl-dashboard-notification.data.json'; export const DashboardHeaderTemplate = (header) => html` @@ -12,74 +14,19 @@ export const DashboardHeaderTemplate = (header) => html` name=${header.name} notification-count=${header.notificationCount} .notificationData=${notificationData} - last-course-title=${header.lastCourseTitle} - last-course-link=${header.lastCourseLink} - progress=${header.progress} - lessons-completed=${header.lessonsCompleted} - lessons-total=${header.lessonsTotal} - .cta1=${header.cta1} - .cta2=${header.cta2} - .cta3=${header.cta3} - .cta1Link=${header.cta1Link} - .cta2Link=${header.cta2Link} - .cta3Link=${header.cta3Link} - ?hasRoadmap=${header.hasRoadmap} + .showCompletedStats=${header.showCompletedStats} + .showContinueSlider=${header.showContinueSlider} > -
- -
Your roadmap
- - ${statsData.map( - (el) => html` -
-

${unsafeHTML(el.title)}

-

- ${unsafeHTML(el.count)} ${el.link ? html`${el.link}` : nothing} -

-
- ` - )} - - - Edit roadmap - -
-
+
+ ${CXLStats({ statsCount: 3, theme: 'cxl-stats-dashboard-header' })}
-
- - ${statsData.map( - (el) => html` -
-

${unsafeHTML(el.title)}

-

- ${unsafeHTML(el.count)} ${el.link ? html`${el.link}` : nothing} -

-
- ` - )} - - - Edit roadmap - -
+
+ ${CXLLightCardSlider({ numberOfCards: 8, theme: 'cxl-slider-dashboard-header' })}
`; export const ArgTypes = { name: { control: 'text' }, - lastCourseTitle: { control: 'text' }, - lastCourseLink: { control: 'text' }, - hasRoadmap: { control: 'boolean' }, - notificationCount: { control: 'text' }, - progress: { control: 'number' }, - lessonsCompleted: { control: 'number' }, - lessonsTotal: { control: 'number' }, - cta1: { control: 'text' }, - cta2: { control: 'text' }, - cta3: { control: 'text' }, - cta1Link: { control: 'text' }, - cta2Link: { control: 'text' }, - cta3Link: { control: 'text' }, + notificationCount: { control: 'number' } }; diff --git a/packages/storybook/cxl-ui/cxl-dashboard/cxl-dashboard-layout.stories.js b/packages/storybook/cxl-ui/cxl-dashboard/cxl-dashboard-layout.stories.js index 219d42e41..37276a112 100644 --- a/packages/storybook/cxl-ui/cxl-dashboard/cxl-dashboard-layout.stories.js +++ b/packages/storybook/cxl-ui/cxl-dashboard/cxl-dashboard-layout.stories.js @@ -1,59 +1,31 @@ import { html } from 'lit'; -import { text } from '@storybook/addon-knobs'; import '@conversionxl/cxl-ui/src/components/cxl-app-layout.js'; import '@conversionxl/cxl-ui/src/components/cxl-marketing-nav.js'; import { CXLMarketingNav } from '../cxl-marketing-nav.stories'; import { CXLDashboardHeader } from '../cxl-dashboard-header/dashboard-header.stories'; -import { CXLFeatureadCourseCard } from '../cxl-featured-course-card/default.stories'; import { DashboardSlider } from '../cxl-featured-course-card/dashboard-slider.stories'; -import { CXLStats } from '../cxl-stats/default.stories'; import { CXLVaadinAccordionThemeCategory } from '../cxl-vaadin-accordion.stories'; import { CXLFooterNav } from '../footer-nav.stories'; +import {CXLLightCardSlider} from "../cxl-light-card/light-card-slider.stories"; export default { title: 'CXL UI/cxl-dashboard', }; export const CXLDashboard = () => { - const boxShadow = text('Box-shadow', 'var(--lumo-box-shadow-l)'); - const statsCount = 4; - CXLDashboardHeader.args = { name: 'Mathias Z', - lastCourseTitle: 'Advanced experimentation analysis', - lastCourseLink: 'https://cxl.com', - hasRoadmap: true, - notificationCount: '6', - progress: '0.34', - lessonsCompleted: '2', - lessonsTotal: '6', - cta1: 'Browse all courses', - cta2: 'Browse fast skills', - cta3: 'Create your personal learning roadmap', - cta1Link: 'https://cxl.com', - cta2Link: 'https://cxl.com', - cta3Link: 'https://cxl.com', - }; - - CXLFeatureadCourseCard.args = { - id: 'cxl-featured-course-1', - theme: 'Featured', - name: 'Get ahead with Google Analytics 4', - time: '5h 04min', - instructor: 'Fred Pike', - description: - "

GA4 is packed with new capabilities that help you improve acquisition, engagement, revenue, and retention for your website.

In five hours, we'll have you confident, capable, and armed with new insights into your business and your website. This course pays back for you real quick.

", - tags: ['Marketing', 'Analytics'], - ctaUrl: 'https://cxl.com', - avatar: - 'https://cxl.com/institute/wp-content/uploads/2020/04/fred-pike-instructor-headshot-1x1-color-bw-min-1024x1024.png', + notificationCount: 6, + hasCompletedStats: true, + hasContinueSlider: true, }; return html` ${CXLMarketingNav()} -
- ${CXLDashboardHeader(CXLDashboardHeader.args)} ${DashboardSlider()} ${CXLStats(statsCount)} +
+ ${DashboardSlider()} + ${CXLDashboardHeader(CXLDashboardHeader.args)} ${CXLVaadinAccordionThemeCategory()}
${CXLFooterNav()} diff --git a/packages/storybook/cxl-ui/cxl-dashboard/cxl-dashboard-no-content.stories.js b/packages/storybook/cxl-ui/cxl-dashboard/cxl-dashboard-no-content.stories.js index cf2b6fc0b..83a70e1f3 100644 --- a/packages/storybook/cxl-ui/cxl-dashboard/cxl-dashboard-no-content.stories.js +++ b/packages/storybook/cxl-ui/cxl-dashboard/cxl-dashboard-no-content.stories.js @@ -1,12 +1,9 @@ import { html } from 'lit'; -import { text } from '@storybook/addon-knobs'; import '@conversionxl/cxl-ui/src/components/cxl-app-layout.js'; import '@conversionxl/cxl-ui/src/components/cxl-marketing-nav.js'; import { CXLMarketingNav } from '../cxl-marketing-nav.stories'; import { CXLDashboardHeader } from '../cxl-dashboard-header/dashboard-header.stories'; -import { CXLFeatureadCourseCard } from '../cxl-featured-course-card/default.stories'; import { DashboardSlider } from '../cxl-featured-course-card/dashboard-slider.stories'; -import { CXLStats } from '../cxl-stats/default.stories'; import { CXLFooterNav } from '../footer-nav.stories'; export default { @@ -14,45 +11,19 @@ export default { }; export const CXLDashboardNoContent = () => { - const boxShadow = text('Box-shadow', 'var(--lumo-box-shadow-l)'); - const statsCount = 4; - CXLDashboardHeader.args = { name: 'Mathias Z', - lastCourseTitle: 'Advanced experimentation analysis', - lastCourseLink: 'https://cxl.com', - hasRoadmap: true, - notificationCount: '6', - progress: '0.34', - lessonsCompleted: '2', - lessonsTotal: '6', - cta1: 'Browse all courses', - cta2: 'Browse fast skills', - cta3: 'Create your personal learning roadmap', - cta1Link: 'https://cxl.com', - cta2Link: 'https://cxl.com', - cta3Link: 'https://cxl.com', - }; - - CXLFeatureadCourseCard.args = { - id: 'cxl-featured-course-1', - theme: 'Featured', - name: 'Get ahead with Google Analytics 4', - time: '5h 04min', - instructor: 'Fred Pike', - description: - "

GA4 is packed with new capabilities that help you improve acquisition, engagement, revenue, and retention for your website.

In five hours, we'll have you confident, capable, and armed with new insights into your business and your website. This course pays back for you real quick.

", - tags: ['Marketing', 'Analytics'], - ctaUrl: 'https://cxl.com', - avatar: - 'https://cxl.com/institute/wp-content/uploads/2020/04/fred-pike-instructor-headshot-1x1-color-bw-min-1024x1024.png', + notificationCount: 6, + showCompletedStats: true, + showContinueSlider: true, }; return html` ${CXLMarketingNav()} -
- ${CXLDashboardHeader(CXLDashboardHeader.args)} ${DashboardSlider()} ${CXLStats(statsCount)} +
+ ${DashboardSlider()} + ${CXLDashboardHeader(CXLDashboardHeader.args)}
${CXLFooterNav()} diff --git a/packages/storybook/cxl-ui/cxl-stats/cxl-stats.data.json b/packages/storybook/cxl-ui/cxl-stats/cxl-stats.data.json index 54eaef5c9..a12c5c0d2 100644 --- a/packages/storybook/cxl-ui/cxl-stats/cxl-stats.data.json +++ b/packages/storybook/cxl-ui/cxl-stats/cxl-stats.data.json @@ -1,18 +1,16 @@ [ { - "title": "Categories
completed", - "count": "1" - }, - { - "title": "Courses
completed", + "title": "Lessons
completed", "count": "30" }, { - "title": "Lessons
completed", - "count": "95" + "title": "Courses
completed", + "count": "1", + "link": "https://cxl.com" }, { - "title": "Complete
library", - "count": "12%" + "title": "Certificates
completed", + "count": "95", + "link": "https://cxl.com" } ] diff --git a/packages/storybook/cxl-ui/cxl-stats/default.stories.js b/packages/storybook/cxl-ui/cxl-stats/default.stories.js index 69efd0e85..6ba7817ea 100644 --- a/packages/storybook/cxl-ui/cxl-stats/default.stories.js +++ b/packages/storybook/cxl-ui/cxl-stats/default.stories.js @@ -8,7 +8,7 @@ export default { title: 'CXL UI/cxl-stats', }; -export const CXLStats = ({ statsCount }) => { +export const CXLStats = ({ statsCount, theme }) => { for (let i = 0; i < statsCount; i += 1) { const newItem = { title: 'Complete
library', @@ -19,12 +19,14 @@ export const CXLStats = ({ statsCount }) => { } return html` - + ${statsData.slice(0, statsCount).map( (el) => html` -
+

${unsafeHTML(el.title)}

-

${el.count}

+ ${el.link + ? html`${el.count}` + : html`

${el.count}

`}
` )} @@ -34,7 +36,7 @@ export const CXLStats = ({ statsCount }) => { Object.assign(CXLStats, { args: { - statsCount: 4, + statsCount: 3, }, storyName: 'CXL Stats', }); diff --git a/packages/storybook/cxl-ui/cxl-stats/theme=cxl-dashboard-header.data.json b/packages/storybook/cxl-ui/cxl-stats/theme=cxl-dashboard-header.data.json index eadc976b9..a12c5c0d2 100644 --- a/packages/storybook/cxl-ui/cxl-stats/theme=cxl-dashboard-header.data.json +++ b/packages/storybook/cxl-ui/cxl-stats/theme=cxl-dashboard-header.data.json @@ -1,15 +1,16 @@ [ { - "title": "Roadmapped", - "count": "1 trainings", - "link": "View" + "title": "Lessons
completed", + "count": "30" }, { - "title": "Completed", - "count": "2 trainings" + "title": "Courses
completed", + "count": "1", + "link": "https://cxl.com" }, { - "title": "Study commitment", - "count": "2h /week" + "title": "Certificates
completed", + "count": "95", + "link": "https://cxl.com" } ]