diff --git a/CHANGELOG.md b/CHANGELOG.md index b3f70d5c3..5f821cf5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,18 @@ + + +# [2.1.0](https://github.com/deckgo/deckdeckgo/compare/v2.0.0...v2.1.0) (In progress..) + +### Applications + +- docs: v1.7.1 ([CHANGELOG](https://github.com/deckgo/deckdeckgo/blob/master/docs/CHANGELOG.md)) + +### Web Components + +- color: v2.1.2 ([CHANGELOG](https://github.com/deckgo/deckdeckgo/blob/master/webcomponents/color/CHANGELOG.md)) + -# [2.0.0](https://github.com/deckgo/deckdeckgo/compare/v1.5.0...v1.6.0) (In progress...) +# [2.0.0](https://github.com/deckgo/deckdeckgo/compare/v1.5.0...v2.0.0) (2020-07-23) ### Breaking Changes diff --git a/README.md b/README.md index 69437c8b9..1dbb7753e 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ Are you interested to contribute to our open source project? That would be aweso | ------------------ | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | :--------------------------------------------------: | :--------------------------------: | | **Studio** | [![version](https://img.shields.io/static/v1.svg?label=production&message=v2.0.0&color=success)](https://deckdeckgo.com) | [https://deckdeckgo.com](https://deckdeckgo.com) | [`README`](studio/README.md) | [`CHANGELOG`](studio/CHANGELOG.md) | | **Remote control** | [![version](https://img.shields.io/static/v1.svg?label=production&message=v1.6.0&color=success)](https://deckdeckgo.app) | [https://deckdeckgo.app](https://deckdeckgo.app) | [`README`](remote/README.md) | [`CHANGELOG`](remote/CHANGELOG.md) | -| **Documentation** | [![version](https://img.shields.io/static/v1.svg?label=production&message=v1.7.0&color=success)](https://docs.deckdeckgo.com) | [https://docs.deckdeckgo.com](https://docs.deckdeckgo.com) | [`README`](docs/README.md) | [`CHANGELOG`](docs/CHANGELOG.md) | +| **Documentation** | [![version](https://img.shields.io/static/v1.svg?label=production&message=v1.7.1&color=success)](https://docs.deckdeckgo.com) | [https://docs.deckdeckgo.com](https://docs.deckdeckgo.com) | [`README`](docs/README.md) | [`CHANGELOG`](docs/CHANGELOG.md) | | **Demo** | [![version](https://img.shields.io/static/v1.svg?label=production&message=v2.4.0&color=success)](https://demo.deckdeckgo.com) | [https://demo.deckdeckgo.com](https://demo.deckdeckgo.com) | [`Repo`](https://github.com/deckgo/deckdeckgo-demo/) | | ## Web Components diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index a9430b16f..279802291 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,9 @@ +# 1.7.1 (2020-07-28) + +### Features + +- `part` option for `@deckdeckgo/color` component + # 1.7.0 (2020-07-11) ### Features diff --git a/docs/docs/components/app-components-color/app-components-color.md b/docs/docs/components/app-components-color/app-components-color.md index efd99754c..15d364988 100644 --- a/docs/docs/components/app-components-color/app-components-color.md +++ b/docs/docs/components/app-components-color/app-components-color.md @@ -6,14 +6,21 @@ It is fully configurable in terms of colors, you could define the set of colors ## Table of contents -- [Showcase](#app-components-color-showcase) -- [Installation](#app-components-color-installation) - [Using from a CDN](#app-components-color-from-a-cdn) - [Install from NPM](#app-components-color-from-npm) - [Framework integration](#app-components-color-framework-integration) -- [Usage](#app-components-color-usage) - - [Slots](#app-components-color-slots) - - [Attributes](#app-components-color-attributes) - - [Theming](#app-components-color-theming) - - [Methods](#app-components-color-methods) -- [Trying it out](#app-components-color-trying-it-out) +- [Color Picker](#color-picker) + - [Table of contents](#table-of-contents) + - [Showcase](#showcase) + - [Installation](#installation) + - [Using from a CDN](#using-from-a-cdn) + - [Install from NPM](#install-from-npm) + - [Framework integration](#framework-integration) + - [Import](#import) + - [Loader](#loader) + - [Usage](#usage) + - [Slots](#slots) + - [Attributes](#attributes) + - [Palette](#palette) + - [Theming](#theming) + - [Events](#events) ## Showcase @@ -225,6 +232,10 @@ The following theming options will affect this component if set on its host or p | --deckgo-color-label-text-align | center | Text alignment of the color description | | --deckgo-color-label-color-font-weight | 300 | Font weight of the hexadecimal value of the color description | +| Shadow-DOM part | Note | +| --------------- | ------------------------------------------------------ | +| container | Allows to style the container the color buttons are in | + ### Events To listen to the selected color you have to subscribe to the following event: diff --git a/docs/package-lock.json b/docs/package-lock.json index 6512a2f60..671403a72 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,6 +1,6 @@ { "name": "deckdeckgo-docs", - "version": "1.7.0", + "version": "1.7.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/docs/package.json b/docs/package.json index bb686c930..a92e55280 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "deckdeckgo-docs", - "version": "1.7.0", + "version": "1.7.1", "description": "The Progressive Web App alternative for simple presentations", "license": "MIT", "files": [ diff --git a/studio/src/app/app-root.tsx b/studio/src/app/app-root.tsx index bb7de3233..68db745e6 100644 --- a/studio/src/app/app-root.tsx +++ b/studio/src/app/app-root.tsx @@ -126,10 +126,14 @@ export class AppRoot { return [ - + + + + + diff --git a/studio/src/app/components/core/app-menu/app-menu.tsx b/studio/src/app/components/core/app-menu/app-menu.tsx index 7bdbfcd60..c63e72eb1 100644 --- a/studio/src/app/components/core/app-menu/app-menu.tsx +++ b/studio/src/app/components/core/app-menu/app-menu.tsx @@ -43,6 +43,7 @@ export class AppMenu { {this.renderHome()} {this.renderDiscover()} + {this.renderEnterprise()} {this.renderDashboard()} {this.renderSettings()} {this.renderSignInOut()} @@ -53,7 +54,7 @@ export class AppMenu { private renderUser() { if (authStore.state.loggedIn) { return ( - + ); @@ -95,18 +96,14 @@ export class AppMenu { private renderHome() { return ( - - - Home + + + DeckDeckGo ); } private renderDiscover() { - if (authStore.state.loggedIn) { - return undefined; - } - return ( @@ -115,6 +112,15 @@ export class AppMenu { ); } + private renderEnterprise() { + return ( + + + Enterprise + + ); + } + private renderSettings() { return ( diff --git a/studio/src/app/components/core/app-navigation-actions/app-navigation-actions.tsx b/studio/src/app/components/core/app-navigation-actions/app-navigation-actions.tsx index 53e0c75f0..8fb2d3870 100644 --- a/studio/src/app/components/core/app-navigation-actions/app-navigation-actions.tsx +++ b/studio/src/app/components/core/app-navigation-actions/app-navigation-actions.tsx @@ -39,7 +39,6 @@ export class AppNavigationActions { render() { return (
- {this.renderFeed()} {this.renderSignIn()} {this.renderPresentationButton()} {this.renderPublishButton()} @@ -48,18 +47,6 @@ export class AppNavigationActions { ); } - private renderFeed() { - if (authStore.state.loggedIn || !this.signIn) { - return undefined; - } else if (this.presentation || this.publish) { - return ( - - Discover - - ); - } - } - private renderSignIn() { if (authStore.state.loggedIn || !this.signIn) { return undefined; diff --git a/studio/src/app/components/core/app-navigation/app-navigation.scss b/studio/src/app/components/core/app-navigation/app-navigation.scss index c21f8c77b..80679c488 100644 --- a/studio/src/app/components/core/app-navigation/app-navigation.scss +++ b/studio/src/app/components/core/app-navigation/app-navigation.scss @@ -32,13 +32,17 @@ app-navigation { user-select: none; } + ion-router-link.nav:not(:last-of-type) { + margin-right: 24px; + } + &.deck-name-visible { ion-label.deck-name { visibility: initial; opacity: 1; } - ion-router-link.home div.logo ion-label { + ion-router-link.nav ion-label { display: none; } } @@ -111,11 +115,11 @@ body.dark { } } -@media screen and (max-width: 720px) { +@media screen and (max-width: 768px) { ion-nav { div.title:not(.offline) { ion-label.deck-name, - ion-router-link.home ion-label { + ion-router-link.nav ion-label { display: none; } } diff --git a/studio/src/app/components/core/app-navigation/app-navigation.tsx b/studio/src/app/components/core/app-navigation/app-navigation.tsx index 7eb9d3751..5dec8cc0e 100644 --- a/studio/src/app/components/core/app-navigation/app-navigation.tsx +++ b/studio/src/app/components/core/app-navigation/app-navigation.tsx @@ -40,15 +40,43 @@ export class AppNavigation { return (
- this.closeMenu()} href="/" routerDirection="forward" class="home"> + this.closeMenu()} href="/home" routerDirection="forward" class="nav"> {this.renderLogo()} + {this.renderFeed()} + + {this.renderEnterprise()} + {store.state.name}
); } + private renderFeed() { + if (this.presentation || this.publish) { + return ( + + Discover + + ); + } else { + return undefined; + } + } + + private renderEnterprise() { + if (this.presentation || this.publish) { + return ( + + Enterprise + + ); + } else { + return undefined; + } + } + private renderTitleOffline() { if (offlineStore.state.offline === undefined) { return undefined; diff --git a/studio/src/app/components/core/app-footer/app-footer.scss b/studio/src/app/components/core/footer/app-footer/app-footer.scss similarity index 99% rename from studio/src/app/components/core/app-footer/app-footer.scss rename to studio/src/app/components/core/footer/app-footer/app-footer.scss index 5dbb77a6d..656644e42 100644 --- a/studio/src/app/components/core/app-footer/app-footer.scss +++ b/studio/src/app/components/core/footer/app-footer/app-footer.scss @@ -20,6 +20,8 @@ } app-footer { + display: block; + div.footer-container { font-size: var(--font-size-small); diff --git a/studio/src/app/components/core/app-footer/app-footer.tsx b/studio/src/app/components/core/footer/app-footer/app-footer.tsx similarity index 100% rename from studio/src/app/components/core/app-footer/app-footer.tsx rename to studio/src/app/components/core/footer/app-footer/app-footer.tsx diff --git a/studio/src/app/components/landing/app-landing-footer/app-landing-footer.scss b/studio/src/app/components/core/footer/app-section-footer/app-section-footer.scss similarity index 79% rename from studio/src/app/components/landing/app-landing-footer/app-landing-footer.scss rename to studio/src/app/components/core/footer/app-section-footer/app-section-footer.scss index 57cb20980..e9934cfe3 100644 --- a/studio/src/app/components/landing/app-landing-footer/app-landing-footer.scss +++ b/studio/src/app/components/core/footer/app-section-footer/app-section-footer.scss @@ -1,10 +1,14 @@ -app-landing-footer { - main { +app-section-footer { + footer { display: flex; flex-direction: column; justify-content: center; align-items: center; + section { + padding: 0; + } + section.links { margin-top: 48px; max-width: 768px; diff --git a/studio/src/app/components/core/footer/app-section-footer/app-section-footer.tsx b/studio/src/app/components/core/footer/app-section-footer/app-section-footer.tsx new file mode 100644 index 000000000..c6accbd9d --- /dev/null +++ b/studio/src/app/components/core/footer/app-section-footer/app-section-footer.tsx @@ -0,0 +1,41 @@ +import {Component, h, Prop} from '@stencil/core'; + +@Component({ + tag: 'app-section-footer', + styleUrl: 'app-section-footer.scss', + shadow: false, +}) +export class AppSectionFooter { + @Prop() + action: boolean = true; + + render() { + return ( +
+ + + {this.renderAction()} + + +
+ ); + } + + private renderAction() { + if (!this.action) { + return undefined; + } + + return ( +
+

Start now.

+ + + Write a presentation + +
+ ); + } +} diff --git a/studio/src/app/components/editor/actions/app-actions-editor/app-actions-editor.scss b/studio/src/app/components/editor/actions/app-actions-editor/app-actions-editor.scss index 798a50f90..7e6e623ac 100644 --- a/studio/src/app/components/editor/actions/app-actions-editor/app-actions-editor.scss +++ b/studio/src/app/components/editor/actions/app-actions-editor/app-actions-editor.scss @@ -63,7 +63,7 @@ app-actions-editor { } } - @media screen and (max-width: 720px) { + @media screen and (max-width: 768px) { ion-tab-button, app-action-share, app-action-busy, @@ -74,7 +74,7 @@ app-actions-editor { } } - @media screen and (min-width: 720px) { + @media screen and (min-width: 768px) { ion-tab-button, app-action-share, app-action-busy, diff --git a/studio/src/app/components/enterprise/app-contact-form/app-contact-form.scss b/studio/src/app/components/enterprise/app-contact-form/app-contact-form.scss new file mode 100644 index 000000000..26d60a903 --- /dev/null +++ b/studio/src/app/components/enterprise/app-contact-form/app-contact-form.scss @@ -0,0 +1,38 @@ +section.contact { + background: white; + + div.content { + display: flex; + justify-content: center; + + form { + width: 720px; + max-width: 100%; + + display: flex; + flex-direction: column; + + ion-item { + margin: 4px 0; + } + + ion-button, + p { + width: fit-content; + align-self: center; + + &.address { + white-space: pre-wrap; + text-align: center; + margin: 64px 16px 0; + font-size: var(--font-size-normal); + line-height: calc(var(--font-size-normal) + 8px); + } + } + + small { + font-weight: 300; + } + } + } +} diff --git a/studio/src/app/components/enterprise/app-contact-form/app-contact-form.tsx b/studio/src/app/components/enterprise/app-contact-form/app-contact-form.tsx new file mode 100644 index 000000000..1e4f43ba0 --- /dev/null +++ b/studio/src/app/components/enterprise/app-contact-form/app-contact-form.tsx @@ -0,0 +1,89 @@ +import {Component, h, State} from '@stencil/core'; + +@Component({ + tag: 'app-contact-form', + styleUrl: 'app-contact-form.scss', + shadow: false, +}) +export class AppContactForm { + @State() + private status: 'SUCCESS' | 'ERROR' | undefined = undefined; + + private submitForm($event) { + $event.preventDefault(); + + const form = $event.target; + const data = new FormData(form); + const xhr = new XMLHttpRequest(); + xhr.open(form.method, form.action); + xhr.setRequestHeader('Accept', 'application/json'); + xhr.onreadystatechange = () => { + if (xhr.readyState !== XMLHttpRequest.DONE) return; + if (xhr.status === 200) { + form.reset(); + this.status = 'SUCCESS'; + } else { + this.status = 'ERROR'; + } + }; + xhr.send(data); + } + + render() { + return ( +
+
+
this.submitForm($event)} action="https://formspree.io/xjvaebzk" method="POST"> +

Get in touch for a tailored discussion about your needs and pricing.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + {this.status === 'SUCCESS' ? ( +

Thanks!

+ ) : ( + + Submit + + )} + {this.status === 'ERROR' &&

Ooops! There was an error.

} + +
+ * required field +
+ +

+ {`DeckDeckGo +c/o The Hub Zürich Association +Sihlquai 131 +8005 Zürich, Switzerland`} +

+
+
+
+ ); + } +} diff --git a/studio/src/app/components/enterprise/app-features/app-features.scss b/studio/src/app/components/enterprise/app-features/app-features.scss new file mode 100644 index 000000000..ea054a20a --- /dev/null +++ b/studio/src/app/components/enterprise/app-features/app-features.scss @@ -0,0 +1,45 @@ +app-features { + section.features { + div.content { + display: grid; + grid-template-columns: repeat(3, calc(100% / 3)); + grid-template-rows: auto; + + grid-gap: 32px; + + outline: 1px solid var(--ion-color-light); + + @media (max-width: 992px) { + grid-template-columns: repeat(2, 50%); + grid-row-gap: 8px; + grid-column-gap: 32px; + width: calc(100% - 64px); + padding: 0 32px 0 0; + } + + > h2, + > p { + grid-column-start: 1; + grid-column-end: 4; + + @media (max-width: 992px) { + grid-column-end: 3; + } + } + + > p { + margin-top: 32px; + } + + > h2 { + &:not(:first-of-type) { + margin-top: 48px; + } + } + + a { + font-weight: 300; + } + } + } +} diff --git a/studio/src/app/components/enterprise/app-features/app-features.tsx b/studio/src/app/components/enterprise/app-features/app-features.tsx new file mode 100644 index 000000000..41af82524 --- /dev/null +++ b/studio/src/app/components/enterprise/app-features/app-features.tsx @@ -0,0 +1,247 @@ +import {Component, h} from '@stencil/core'; + +@Component({ + tag: 'app-features', + styleUrl: 'app-features.scss', + shadow: false, +}) +export class AppFeatures { + render() { + return ( +
+
+

Main features

+ +
+

Edit anywhere

+ +

The editor is available anywhere, it is a Progressive Web App!

+
+ +
+

Showcase everywhere

+ +

Presentations work on computers, phones, tablets and more. They are published as standalone apps.

+
+ +
+

Privacy per default

+ +

Your presentations and content are private. You can choose to share them publicly anytime, but that's your choice.

+
+ +
+

Share standalone apps

+ +

Your presentation are published as standalone Progressive Web Apps. Share them by sending your colleagues and friends a link.

+
+ +
+

+ Share privately +

+ +

Create private links to prevent access to your published content.

+
+ +
+

+ Export to PDF +

+ +

If you like PDF more than apps.

+
+ +
+

Polls

+ +

Engage with your audience in real time. Get them involved during your presentations with their smartphones and show the results live.

+
+ +
+

Offline

+ +

Present and edit your presentation offline.

+
+ +

Editing

+ +
+

+ Unbreakable templates +

+ +

Apply your design, colors, fonts, styles and any other options to your templates. Those will be used by all your collaborators.

+
+ +
+

Highlighted code

+ +

Show syntax highlighted code in beautiful terminal cards.

+
+ +
+

Embed your products

+ +

If your products are made with the web too, embed these directly in your slides.

+
+ +
+

Cloud library

+ +

All data (text, images, etc) your upload are saved in your personal cloud storage and available to all slides.

+
+ +
+

Youtube

+ +

Embed YouTube videos easily. Play and pause through the remote control.

+
+ +
+

Unsplash and Tenor

+ +

Search and integrate stock photos and gifs.

+
+ +
+

Google fonts

+ +

Select a Google Font from a list we have preselected for your.

+
+ +
+

+ Custom fonts +

+ +

Use your brand fonts.

+
+ +
+

Full screen edit

+ +

No more toggle to make a quick change, your slides are editable in full screen mode as well.

+
+ +
+

Transition

+ +

Make individual text elements appear one after the others.

+
+ +
+

Math

+ +

Render Math formulas with Katex in your slides.

+
+ +
+

Charts

+ +

Plot simple lines, area, bar, pie or donut charts.

+
+ +

Presenting

+ +
+

Remote control

+ +

Control your presentations remotely, draw over your slides and set a timer from your phone or tablet.

+
+ +
+

Speaker notes

+ +

Write notes for your slides. Cherry on top, Markdown is supported.

+
+ +

More for enterprise

+ +
+

+ In housing +

+ +

Integrate DeckDeckGo into your private infrastructure and networks.

+
+ +
+

+ Custom domain +

+ +

Publish your decks under your own domain name.

+
+ +
+

+ Always up-to-date +

+ +

Propagate your corporate design improvements to all your presentations.

+
+ +
+

+ Archive +

+ +

List and find all your presentations in a single place.

+
+ +
+

+ Collaborate +

+ +

Multiple users can edit a presentation at the same time.

+
+ +
+

+ Library +

+ +

Organize your company's media library and share it with your teams.

+
+ +
+

+ Support +

+ +

Your inquiries have the highest priorities.

+
+ +

Developers

+ +
+

Developer Kit

+ +

Would you rather prepare your presentation with HTML or Markdown? All public features used by our editor are available as a developer kit.

+
+ +
+

Open source

+ +

+ DeckDeckGo is open source. All the code of our applications and components are available on  + + Github + + . +

+ +

We encourage enterprise to adopt this approach but we do understand if you prefer to keep your corporate templates private.

+
+ +

+ Above features identified with an "enterprise" icon are available upon + request for organizations. +

+
+
+ ); + } +} diff --git a/studio/src/app/components/landing/app-landing-footer/app-landing-footer.tsx b/studio/src/app/components/landing/app-landing-footer/app-landing-footer.tsx deleted file mode 100644 index 5c5117d4e..000000000 --- a/studio/src/app/components/landing/app-landing-footer/app-landing-footer.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import {Component, h} from '@stencil/core'; - -@Component({ - tag: 'app-landing-footer', - styleUrl: 'app-landing-footer.scss', - shadow: false -}) -export class AppLandingFooter { - render() { - return ( -
- - -
-
-

Start now.

- - - Write a presentation - -
- - -
-
- ); - } -} diff --git a/studio/src/app/components/landing/app-landing/app-landing.scss b/studio/src/app/components/landing/app-landing/app-landing.scss index a183cd99a..badaf52af 100644 --- a/studio/src/app/components/landing/app-landing/app-landing.scss +++ b/studio/src/app/components/landing/app-landing/app-landing.scss @@ -23,9 +23,10 @@ app-landing { } p { - font-size: 24px; + font-size: 22px; line-height: 28px; font-weight: 300; + color: var(--ion-color-dark); } &.header { diff --git a/studio/src/app/components/landing/app-landing/app-landing.tsx b/studio/src/app/components/landing/app-landing/app-landing.tsx index 4ae28d92b..c924cb925 100644 --- a/studio/src/app/components/landing/app-landing/app-landing.tsx +++ b/studio/src/app/components/landing/app-landing/app-landing.tsx @@ -3,7 +3,7 @@ import {Component, Element, h, Host} from '@stencil/core'; @Component({ tag: 'app-landing', styleUrl: 'app-landing.scss', - shadow: false + shadow: false, }) export class AppLanding { @Element() el: HTMLElement; @@ -17,7 +17,7 @@ export class AppLanding { - + ); } diff --git a/studio/src/app/pages/core/about/app-press/app-press.scss b/studio/src/app/pages/core/about/app-press/app-press.scss index 141e3fdbd..1b7110fbe 100644 --- a/studio/src/app/pages/core/about/app-press/app-press.scss +++ b/studio/src/app/pages/core/about/app-press/app-press.scss @@ -1,5 +1,14 @@ app-press { main { background: white; + + article { + display: flex; + flex-direction: column; + + span { + color: var(--ion-color-medium); + } + } } } diff --git a/studio/src/app/pages/core/about/app-press/app-press.tsx b/studio/src/app/pages/core/about/app-press/app-press.tsx index 4bc226f7b..5a481b3b4 100644 --- a/studio/src/app/pages/core/about/app-press/app-press.tsx +++ b/studio/src/app/pages/core/about/app-press/app-press.tsx @@ -2,7 +2,7 @@ import {Component, h} from '@stencil/core'; @Component({ tag: 'app-press', - styleUrl: 'app-press.scss' + styleUrl: 'app-press.scss', }) export class AppPress { render() { @@ -13,12 +13,12 @@ export class AppPress {

Press

- We don't provide any press kit yet but, as we are open source and open to any contributions, we would be happy to get your help to create such - material 😄 + We don't provide unfortunately any press kit yet. We are open source and are welcoming any contributions, we would be happy to get your help to + create such material 😄.

- That being said, you could download our logo as a{' '} + That being said, you can download our logo as a{' '} svg {' '} @@ -28,8 +28,57 @@ export class AppPress { {' '} us for any inquiries.

+ +

Featured Stories

+ + + + + + + + + + - + , ]; } } diff --git a/studio/src/app/pages/core/app-enterprise/app-enterprise.scss b/studio/src/app/pages/core/app-enterprise/app-enterprise.scss new file mode 100644 index 000000000..d693c0fd3 --- /dev/null +++ b/studio/src/app/pages/core/app-enterprise/app-enterprise.scss @@ -0,0 +1,168 @@ +app-enterprise { + display: block; + + section { + width: 100%; + + display: flex; + flex-direction: column; + + div.content { + width: 100%; + max-width: 1400px; + margin-left: auto; + margin-right: auto; + + padding: 0 128px; + + position: relative; + + @media (max-width: 992px) { + padding: 0 64px; + } + + @media (max-width: 768px) { + padding: 0 16px; + } + + h1 { + font-size: 42px; + font-weight: 700; + } + + h2 { + font-size: 32px; + } + + h3 { + font-size: 24px; + } + + h2, + h3 { + font-weight: 400; + } + + p, + button.app-button { + font-size: 22px; + line-height: 28px; + font-weight: 300; + } + + p { + color: var(--ion-color-dark); + margin-top: 0; + } + } + + img.wave { + position: absolute; + left: 0; + bottom: -1px; + } + } + + section.hero { + height: calc(100vh - 56px); + + background: var(--ion-color-dark); + color: var(--ion-color-dark-contrast); + + div.content { + display: grid; + grid-template-columns: 60% 40%; + + height: 100%; + + h1 { + margin-top: 0; + } + + @media (max-width: 992px) { + grid-template-columns: 100%; + } + + justify-content: center; + align-content: center; + + > div { + z-index: 2; + } + } + } + + section.intro { + background: white; + + div.content { + display: grid; + grid-template-columns: repeat(2, 50%); + grid-template-rows: auto; + + grid-gap: 32px; + + @media (max-width: 992px) { + grid-template-columns: 100%; + grid-row-gap: 0; + } + + blockquote, + h2 { + grid-column-start: 1; + grid-column-end: 3; + + @media (max-width: 992px) { + grid-column-end: 2; + } + } + + blockquote { + background: transparent; + + width: 720px; + max-width: 100%; + justify-self: center; + + margin: 64px 0; + + span { + font-size: 10rem; + line-height: 0.6em; + color: var(--ion-color-medium); + opacity: 0.4; + } + + p { + margin: 0 16px; + color: var(--ion-color-medium); + font-style: italic; + } + } + + > h2 { + margin: 0; + + @media (max-width: 992px) { + margin: 16px 0 32px; + } + } + } + } + + div.separator { + &.intro { + img { + background: white; + } + } + + &.features { + background: white; + + img { + background: var(--ion-color-light); + } + } + } +} diff --git a/studio/src/app/pages/core/app-enterprise/app-enterprise.tsx b/studio/src/app/pages/core/app-enterprise/app-enterprise.tsx new file mode 100644 index 000000000..cfc8b297a --- /dev/null +++ b/studio/src/app/pages/core/app-enterprise/app-enterprise.tsx @@ -0,0 +1,85 @@ +import {Component, h} from '@stencil/core'; + +@Component({ + tag: 'app-enterprise', + styleUrl: 'app-enterprise.scss', +}) +export class AppEnterprise { + private featuresRef!: HTMLElement; + private formRef!: HTMLElement; + + private scrollTo(ref: HTMLElement | undefined) { + if (!ref) { + return; + } + + ref.scrollIntoView({ + behavior: 'smooth', + }); + } + + render() { + return [ + , + +
+
+
+

Professional presentation building, tailored to your brand.

+

+ Easily apply your corporate identity and design across all your company’s presentations. Secure distribution and maintenance. +

+ + this.scrollTo(this.formRef)} mode="md" color="tertiary"> + Get in touch + +
+
+ + +
+ +
+
+
+ +

Did you see Bob’s presentation? He used the wrong logo, again.

+
+ +

Templates and options that match your CI/CD.

+ +
+

Unlike any other editor for presentations, DeckDeckGo assists you in applying your corporate identity to your company's presentations.

+ +

The design, colors, fonts, styles and any other options you are defining in your templates are those your collaborators are using.

+
+ +
+

Together with your designers, we create unbreakable slides that match your design systems.

+ +

Moreover, rolling out new design and logo has never been so easy and DeckDeckGo can offer so much more.

+ + +
+
+
+ +
+ +
+ + (this.featuresRef = el as HTMLElement)}> + +
+ +
+ + (this.formRef = el as HTMLElement)}> + + +
, + ]; + } +} diff --git a/studio/src/app/pages/core/app-home/app-home.tsx b/studio/src/app/pages/core/app-home/app-home.tsx index d12dea308..153984b5e 100644 --- a/studio/src/app/pages/core/app-home/app-home.tsx +++ b/studio/src/app/pages/core/app-home/app-home.tsx @@ -1,48 +1,18 @@ -import {Build, Component, h, State} from '@stencil/core'; - -import {AuthUser} from '../../../models/auth/auth.user'; - -import {AuthService} from '../../../services/auth/auth.service'; +import {Component, h} from '@stencil/core'; @Component({ tag: 'app-home', }) export class AppHome { - private authService: AuthService; - - @State() - private landing: boolean | undefined = undefined; - - constructor() { - this.authService = AuthService.getInstance(); - } - - async componentWillLoad() { - const localUser: AuthUser = Build.isBrowser ? await this.authService.getLocalAuthUser() : undefined; - this.landing = localUser === undefined || localUser.anonymous; - } - render() { return [, this.renderContent()]; } private renderContent() { - if (this.landing === undefined) { - return undefined; - } - - if (this.landing) { - return ( - - - - ); - } else { - return ( - - - - ); - } + return ( + + + + ); } } diff --git a/studio/src/app/pages/core/app-poll/app-poll.tsx b/studio/src/app/pages/core/app-poll/app-poll.tsx index ceedecbe0..001b529b2 100644 --- a/studio/src/app/pages/core/app-poll/app-poll.tsx +++ b/studio/src/app/pages/core/app-poll/app-poll.tsx @@ -256,7 +256,7 @@ export class AppPoll {
Created with{' '} - +
DeckDeckGo
diff --git a/studio/src/app/pages/core/welcome/app-welcome.tsx b/studio/src/app/pages/core/welcome/app-welcome.tsx new file mode 100644 index 000000000..eb22b088f --- /dev/null +++ b/studio/src/app/pages/core/welcome/app-welcome.tsx @@ -0,0 +1,53 @@ +import {Build, Component, h, State} from '@stencil/core'; + +import {AuthUser} from '../../../models/auth/auth.user'; + +import {AuthService} from '../../../services/auth/auth.service'; + +@Component({ + tag: 'app-welcome', +}) +export class AppWelcome { + private authService: AuthService; + + @State() + private landing: boolean | undefined = undefined; + + constructor() { + this.authService = AuthService.getInstance(); + } + + async componentWillLoad() { + if (Build.isBrowser) { + const localUser: AuthUser = await this.authService.getLocalAuthUser(); + this.landing = localUser === undefined || localUser.anonymous; + } else { + // We want to prerender the landing here + this.landing = true; + } + } + + render() { + return [, this.renderContent()]; + } + + private renderContent() { + if (this.landing === undefined) { + return undefined; + } + + if (this.landing) { + return ( + + + + ); + } else { + return ( + + + + ); + } + } +} diff --git a/studio/src/components.d.ts b/studio/src/components.d.ts index f48c0f694..16c886927 100644 --- a/studio/src/components.d.ts +++ b/studio/src/components.d.ts @@ -108,6 +108,8 @@ export namespace Components { } interface AppContact { } + interface AppContactForm { + } interface AppCreateSlide { } interface AppCustomData { @@ -182,12 +184,16 @@ export namespace Components { } interface AppEmbed { } + interface AppEnterprise { + } interface AppExpansionPanel { "expanded": 'open' | 'close'; "expander": boolean; } interface AppFaq { } + interface AppFeatures { + } interface AppFeed { } interface AppFeedCard { @@ -245,8 +251,6 @@ export namespace Components { } interface AppLandingDeck { } - interface AppLandingFooter { - } interface AppList { "selectedElement": HTMLElement; } @@ -332,6 +336,9 @@ export namespace Components { } interface AppRoot { } + interface AppSectionFooter { + "action": boolean; + } interface AppSelectTargetElement { "background": boolean; "chart": boolean; @@ -381,6 +388,8 @@ export namespace Components { } interface AppUserMenu { } + interface AppWelcome { + } interface AppYoutube { "selectedElement": HTMLElement; } @@ -494,6 +503,12 @@ declare global { prototype: HTMLAppContactElement; new (): HTMLAppContactElement; }; + interface HTMLAppContactFormElement extends Components.AppContactForm, HTMLStencilElement { + } + var HTMLAppContactFormElement: { + prototype: HTMLAppContactFormElement; + new (): HTMLAppContactFormElement; + }; interface HTMLAppCreateSlideElement extends Components.AppCreateSlide, HTMLStencilElement { } var HTMLAppCreateSlideElement: { @@ -620,6 +635,12 @@ declare global { prototype: HTMLAppEmbedElement; new (): HTMLAppEmbedElement; }; + interface HTMLAppEnterpriseElement extends Components.AppEnterprise, HTMLStencilElement { + } + var HTMLAppEnterpriseElement: { + prototype: HTMLAppEnterpriseElement; + new (): HTMLAppEnterpriseElement; + }; interface HTMLAppExpansionPanelElement extends Components.AppExpansionPanel, HTMLStencilElement { } var HTMLAppExpansionPanelElement: { @@ -632,6 +653,12 @@ declare global { prototype: HTMLAppFaqElement; new (): HTMLAppFaqElement; }; + interface HTMLAppFeaturesElement extends Components.AppFeatures, HTMLStencilElement { + } + var HTMLAppFeaturesElement: { + prototype: HTMLAppFeaturesElement; + new (): HTMLAppFeaturesElement; + }; interface HTMLAppFeedElement extends Components.AppFeed, HTMLStencilElement { } var HTMLAppFeedElement: { @@ -746,12 +773,6 @@ declare global { prototype: HTMLAppLandingDeckElement; new (): HTMLAppLandingDeckElement; }; - interface HTMLAppLandingFooterElement extends Components.AppLandingFooter, HTMLStencilElement { - } - var HTMLAppLandingFooterElement: { - prototype: HTMLAppLandingFooterElement; - new (): HTMLAppLandingFooterElement; - }; interface HTMLAppListElement extends Components.AppList, HTMLStencilElement { } var HTMLAppListElement: { @@ -932,6 +953,12 @@ declare global { prototype: HTMLAppRootElement; new (): HTMLAppRootElement; }; + interface HTMLAppSectionFooterElement extends Components.AppSectionFooter, HTMLStencilElement { + } + var HTMLAppSectionFooterElement: { + prototype: HTMLAppSectionFooterElement; + new (): HTMLAppSectionFooterElement; + }; interface HTMLAppSelectTargetElementElement extends Components.AppSelectTargetElement, HTMLStencilElement { } var HTMLAppSelectTargetElementElement: { @@ -1022,6 +1049,12 @@ declare global { prototype: HTMLAppUserMenuElement; new (): HTMLAppUserMenuElement; }; + interface HTMLAppWelcomeElement extends Components.AppWelcome, HTMLStencilElement { + } + var HTMLAppWelcomeElement: { + prototype: HTMLAppWelcomeElement; + new (): HTMLAppWelcomeElement; + }; interface HTMLAppYoutubeElement extends Components.AppYoutube, HTMLStencilElement { } var HTMLAppYoutubeElement: { @@ -1047,6 +1080,7 @@ declare global { "app-color-sides": HTMLAppColorSidesElement; "app-color-text-background": HTMLAppColorTextBackgroundElement; "app-contact": HTMLAppContactElement; + "app-contact-form": HTMLAppContactFormElement; "app-create-slide": HTMLAppCreateSlideElement; "app-custom-data": HTMLAppCustomDataElement; "app-custom-images": HTMLAppCustomImagesElement; @@ -1068,8 +1102,10 @@ declare global { "app-element-delete": HTMLAppElementDeleteElement; "app-element-style": HTMLAppElementStyleElement; "app-embed": HTMLAppEmbedElement; + "app-enterprise": HTMLAppEnterpriseElement; "app-expansion-panel": HTMLAppExpansionPanelElement; "app-faq": HTMLAppFaqElement; + "app-features": HTMLAppFeaturesElement; "app-feed": HTMLAppFeedElement; "app-feed-card": HTMLAppFeedCardElement; "app-feed-card-tags": HTMLAppFeedCardTagsElement; @@ -1089,7 +1125,6 @@ declare global { "app-landing": HTMLAppLandingElement; "app-landing-content": HTMLAppLandingContentElement; "app-landing-deck": HTMLAppLandingDeckElement; - "app-landing-footer": HTMLAppLandingFooterElement; "app-list": HTMLAppListElement; "app-logo": HTMLAppLogoElement; "app-math": HTMLAppMathElement; @@ -1120,6 +1155,7 @@ declare global { "app-remote-request": HTMLAppRemoteRequestElement; "app-reveal": HTMLAppRevealElement; "app-root": HTMLAppRootElement; + "app-section-footer": HTMLAppSectionFooterElement; "app-select-target-element": HTMLAppSelectTargetElementElement; "app-services": HTMLAppServicesElement; "app-settings": HTMLAppSettingsElement; @@ -1135,6 +1171,7 @@ declare global { "app-user-delete": HTMLAppUserDeleteElement; "app-user-info": HTMLAppUserInfoElement; "app-user-menu": HTMLAppUserMenuElement; + "app-welcome": HTMLAppWelcomeElement; "app-youtube": HTMLAppYoutubeElement; } } @@ -1250,6 +1287,8 @@ declare namespace LocalJSX { } interface AppContact { } + interface AppContactForm { + } interface AppCreateSlide { "onSignIn"?: (event: CustomEvent) => void; } @@ -1334,12 +1373,16 @@ declare namespace LocalJSX { } interface AppEmbed { } + interface AppEnterprise { + } interface AppExpansionPanel { "expanded"?: 'open' | 'close'; "expander"?: boolean; } interface AppFaq { } + interface AppFeatures { + } interface AppFeed { } interface AppFeedCard { @@ -1407,8 +1450,6 @@ declare namespace LocalJSX { } interface AppLandingDeck { } - interface AppLandingFooter { - } interface AppList { "onToggleList"?: (event: CustomEvent) => void; "selectedElement"?: HTMLElement; @@ -1499,6 +1540,9 @@ declare namespace LocalJSX { } interface AppRoot { } + interface AppSectionFooter { + "action"?: boolean; + } interface AppSelectTargetElement { "background"?: boolean; "chart"?: boolean; @@ -1551,6 +1595,8 @@ declare namespace LocalJSX { } interface AppUserMenu { } + interface AppWelcome { + } interface AppYoutube { "selectedElement"?: HTMLElement; } @@ -1573,6 +1619,7 @@ declare namespace LocalJSX { "app-color-sides": AppColorSides; "app-color-text-background": AppColorTextBackground; "app-contact": AppContact; + "app-contact-form": AppContactForm; "app-create-slide": AppCreateSlide; "app-custom-data": AppCustomData; "app-custom-images": AppCustomImages; @@ -1594,8 +1641,10 @@ declare namespace LocalJSX { "app-element-delete": AppElementDelete; "app-element-style": AppElementStyle; "app-embed": AppEmbed; + "app-enterprise": AppEnterprise; "app-expansion-panel": AppExpansionPanel; "app-faq": AppFaq; + "app-features": AppFeatures; "app-feed": AppFeed; "app-feed-card": AppFeedCard; "app-feed-card-tags": AppFeedCardTags; @@ -1615,7 +1664,6 @@ declare namespace LocalJSX { "app-landing": AppLanding; "app-landing-content": AppLandingContent; "app-landing-deck": AppLandingDeck; - "app-landing-footer": AppLandingFooter; "app-list": AppList; "app-logo": AppLogo; "app-math": AppMath; @@ -1646,6 +1694,7 @@ declare namespace LocalJSX { "app-remote-request": AppRemoteRequest; "app-reveal": AppReveal; "app-root": AppRoot; + "app-section-footer": AppSectionFooter; "app-select-target-element": AppSelectTargetElement; "app-services": AppServices; "app-settings": AppSettings; @@ -1661,6 +1710,7 @@ declare namespace LocalJSX { "app-user-delete": AppUserDelete; "app-user-info": AppUserInfo; "app-user-menu": AppUserMenu; + "app-welcome": AppWelcome; "app-youtube": AppYoutube; } } @@ -1686,6 +1736,7 @@ declare module "@stencil/core" { "app-color-sides": LocalJSX.AppColorSides & JSXBase.HTMLAttributes; "app-color-text-background": LocalJSX.AppColorTextBackground & JSXBase.HTMLAttributes; "app-contact": LocalJSX.AppContact & JSXBase.HTMLAttributes; + "app-contact-form": LocalJSX.AppContactForm & JSXBase.HTMLAttributes; "app-create-slide": LocalJSX.AppCreateSlide & JSXBase.HTMLAttributes; "app-custom-data": LocalJSX.AppCustomData & JSXBase.HTMLAttributes; "app-custom-images": LocalJSX.AppCustomImages & JSXBase.HTMLAttributes; @@ -1707,8 +1758,10 @@ declare module "@stencil/core" { "app-element-delete": LocalJSX.AppElementDelete & JSXBase.HTMLAttributes; "app-element-style": LocalJSX.AppElementStyle & JSXBase.HTMLAttributes; "app-embed": LocalJSX.AppEmbed & JSXBase.HTMLAttributes; + "app-enterprise": LocalJSX.AppEnterprise & JSXBase.HTMLAttributes; "app-expansion-panel": LocalJSX.AppExpansionPanel & JSXBase.HTMLAttributes; "app-faq": LocalJSX.AppFaq & JSXBase.HTMLAttributes; + "app-features": LocalJSX.AppFeatures & JSXBase.HTMLAttributes; "app-feed": LocalJSX.AppFeed & JSXBase.HTMLAttributes; "app-feed-card": LocalJSX.AppFeedCard & JSXBase.HTMLAttributes; "app-feed-card-tags": LocalJSX.AppFeedCardTags & JSXBase.HTMLAttributes; @@ -1728,7 +1781,6 @@ declare module "@stencil/core" { "app-landing": LocalJSX.AppLanding & JSXBase.HTMLAttributes; "app-landing-content": LocalJSX.AppLandingContent & JSXBase.HTMLAttributes; "app-landing-deck": LocalJSX.AppLandingDeck & JSXBase.HTMLAttributes; - "app-landing-footer": LocalJSX.AppLandingFooter & JSXBase.HTMLAttributes; "app-list": LocalJSX.AppList & JSXBase.HTMLAttributes; "app-logo": LocalJSX.AppLogo & JSXBase.HTMLAttributes; "app-math": LocalJSX.AppMath & JSXBase.HTMLAttributes; @@ -1759,6 +1811,7 @@ declare module "@stencil/core" { "app-remote-request": LocalJSX.AppRemoteRequest & JSXBase.HTMLAttributes; "app-reveal": LocalJSX.AppReveal & JSXBase.HTMLAttributes; "app-root": LocalJSX.AppRoot & JSXBase.HTMLAttributes; + "app-section-footer": LocalJSX.AppSectionFooter & JSXBase.HTMLAttributes; "app-select-target-element": LocalJSX.AppSelectTargetElement & JSXBase.HTMLAttributes; "app-services": LocalJSX.AppServices & JSXBase.HTMLAttributes; "app-settings": LocalJSX.AppSettings & JSXBase.HTMLAttributes; @@ -1774,6 +1827,7 @@ declare module "@stencil/core" { "app-user-delete": LocalJSX.AppUserDelete & JSXBase.HTMLAttributes; "app-user-info": LocalJSX.AppUserInfo & JSXBase.HTMLAttributes; "app-user-menu": LocalJSX.AppUserMenu & JSXBase.HTMLAttributes; + "app-welcome": LocalJSX.AppWelcome & JSXBase.HTMLAttributes; "app-youtube": LocalJSX.AppYoutube & JSXBase.HTMLAttributes; } } diff --git a/studio/src/global/theme/button.scss b/studio/src/global/theme/button.scss index 2a4c6571a..9696e9f2d 100644 --- a/studio/src/global/theme/button.scss +++ b/studio/src/global/theme/button.scss @@ -9,4 +9,12 @@ ion-button { font-family: inherit; margin: 0 4px 0 0; padding: 0; + + ion-icon { + vertical-align: middle; + } + + &:focus { + outline: 0; + } } diff --git a/studio/src/global/theme/fonts.scss b/studio/src/global/theme/fonts.scss index 0e04aa7d9..93592d39a 100644 --- a/studio/src/global/theme/fonts.scss +++ b/studio/src/global/theme/fonts.scss @@ -124,20 +124,3 @@ ion-router-link:hover, .app-button:hover { border-bottom-color: var(--ion-color-primary); } - -blockquote { - background: var(--ion-color-tertiary); - margin: 32px 0; - padding: 1px 18px 4px; - border-radius: 4px; -} - -blockquote p { - color: white; - line-height: 1.6; - font-size: 14px; -} - -blockquote a { - color: var(--ion-color-secondary); -} diff --git a/studio/src/global/theme/menu.scss b/studio/src/global/theme/menu.scss index 2e7666c30..90315b659 100644 --- a/studio/src/global/theme/menu.scss +++ b/studio/src/global/theme/menu.scss @@ -62,11 +62,16 @@ ion-menu { margin-bottom: 6px; } - ion-icon { + ion-icon, + app-logo { color: var(--ion-color-medium); margin: 8px 8px 8px 0; } + app-logo { + --deckgo-logo-size: 1.4rem; + } + app-avatar { margin: 0 8px 0 0; } diff --git a/studio/src/index.html b/studio/src/index.html index f0980ddcc..efc1d7c41 100644 --- a/studio/src/index.html +++ b/studio/src/index.html @@ -11,7 +11,7 @@ style-src 'self' 'unsafe-inline' https://cdn.firebase.com https://fonts.googleapis.com; font-src 'self' https://fonts.googleapis.com https://fonts.gstatic.com; script-src 'self' blob: <@PRELOADMODULE_LINKS@> <@SW_LOADER@> 'sha256-vay/aAFxtYsaISRoBsVDHCbAzow9u6P2gHHTewRPaJY=' 'sha256-Q4WsoEk996jr5AUtYVXE8AMljYZgUVD3cxqC2YHsvyQ=' https://cdn.firebase.com https://apis.google.com https://unpkg.com/prismjs@latest/; - connect-src 'self' <@API_URLS@> https://deckdeckgo.com/ http://deckdeckgo-studio-beta.web.app/ wss://api.deckdeckgo.com/ https://firebasestorage.googleapis.com/v0/b/deckdeckgo-studio-prod.appspot.com/ https://firebasestorage.googleapis.com/v0/b/deckdeckgo-studio-beta.appspot.com/ https://www.googleapis.com https://securetoken.googleapis.com https://firestore.googleapis.com ws://localhost:3333/ https://raw.githubusercontent.com/PrismJS/ https://raw.githubusercontent.com/deckgo/ https://api.tenor.com/ https://media.tenor.com/; + connect-src 'self' <@API_URLS@> https://deckdeckgo.com/ http://deckdeckgo-studio-beta.web.app/ wss://api.deckdeckgo.com/ https://firebasestorage.googleapis.com/v0/b/deckdeckgo-studio-prod.appspot.com/ https://firebasestorage.googleapis.com/v0/b/deckdeckgo-studio-beta.appspot.com/ https://www.googleapis.com https://securetoken.googleapis.com https://firestore.googleapis.com ws://localhost:3333/ https://raw.githubusercontent.com/PrismJS/ https://raw.githubusercontent.com/deckgo/ https://api.tenor.com/ https://media.tenor.com/ https://formspree.io/xjvaebzk; frame-src https: http://localhost:3333/~dev-server" /> diff --git a/webcomponents/color/CHANGELOG.md b/webcomponents/color/CHANGELOG.md index 354b585f5..70a154e77 100644 --- a/webcomponents/color/CHANGELOG.md +++ b/webcomponents/color/CHANGELOG.md @@ -1,3 +1,21 @@ +# 2.1.2 (2020-07-29) + +### Fix + +- `Rollup: Unresolved Import Could not resolve './components' from ./node_modules/@deckdeckgo/color/dist/collection/index.js at error` + +# 2.1.1 (2020-07-28) + +### Fix + +- bump for npmjs publishing + +# 2.1.0 (2020-07-28) + +### Features + +- allow container to be access via `part` ([#811](https://github.com/deckgo/deckdeckgo/pull/811)) + # 2.0.0 (2020-05-15) ### Breaking diff --git a/webcomponents/color/package-lock.json b/webcomponents/color/package-lock.json index f95d90b5a..448755574 100644 --- a/webcomponents/color/package-lock.json +++ b/webcomponents/color/package-lock.json @@ -1,6 +1,6 @@ { "name": "@deckdeckgo/color", - "version": "2.0.0", + "version": "2.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -45,12 +45,12 @@ "integrity": "sha512-/bomB2gBlEuXmLSXCHujABB1EYDTrcK/IQaH9NFh6ZUB+dEfb3L3uCof8RyUvQcEzqhVJJa63ZBnDnitJSOWYg==" }, "@stencil/core": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@stencil/core/-/core-1.13.0.tgz", - "integrity": "sha512-++kIXaEgmwm/vq+9QAVHPuLLddCKVdJyI8OfHxknkpu5udxZMYA/vaN/K9i+2NIiTLbGpvHNk9E+RyYzKxS0XQ==", + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/@stencil/core/-/core-1.17.2.tgz", + "integrity": "sha512-jNEpBxoQFk6J1kSmm84AL/qgN0hySmKN5FZ0Pr16RAZU2TwKRLE1W2V8GcJXOFqd3yDVV+/4Fmyl1DD74/zbiQ==", "dev": true, "requires": { - "typescript": "3.8.3" + "typescript": "3.9.7" } }, "@stencil/postcss": { @@ -63,9 +63,9 @@ } }, "@stencil/sass": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@stencil/sass/-/sass-1.3.1.tgz", - "integrity": "sha512-5qsEyhLGTywpG4zlWv6eBhhj/z2Z37nbUGa87Ak0KqfsEiclJCYRA/AMM9FiN1jHfBvr968G4zE8rNlYmiPLsQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@stencil/sass/-/sass-1.3.2.tgz", + "integrity": "sha512-w6rkOsRIPY1rBa/13Wf+rMZrOzc6z86/Mkp3inzaYGsxBmLkf4PeP1rfaUB4SFDVRfMduP7FTd4ZJi/+FVrsMw==", "dev": true }, "@types/color-name": { @@ -114,18 +114,31 @@ "dev": true }, "autoprefixer": { - "version": "9.7.6", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.6.tgz", - "integrity": "sha512-F7cYpbN7uVVhACZTeeIeealwdGM6wMtfWARVLTy5xmKtgVdBNJvbDRoCK3YO1orcs7gv/KwYlb3iXwu9Ug9BkQ==", + "version": "9.8.5", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.5.tgz", + "integrity": "sha512-C2p5KkumJlsTHoNv9w31NrBRgXhf6eCMteJuHZi2xhkgC+5Vm40MEtCKPhc0qdgAOhox0YPy1SQHTAky05UoKg==", "dev": true, "requires": { - "browserslist": "^4.11.1", - "caniuse-lite": "^1.0.30001039", - "chalk": "^2.4.2", + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001097", + "colorette": "^1.2.0", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", - "postcss": "^7.0.27", - "postcss-value-parser": "^4.0.3" + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + } } }, "balanced-match": { @@ -145,15 +158,15 @@ } }, "browserslist": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz", - "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==", + "version": "4.13.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz", + "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001043", - "electron-to-chromium": "^1.3.413", - "node-releases": "^1.1.53", - "pkg-up": "^2.0.0" + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" } }, "callsites": { @@ -163,9 +176,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001055", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001055.tgz", - "integrity": "sha512-MbwsBmKrBSKIWldfdIagO5OJWZclpJtS4h0Jrk/4HFrXJxTdVdH23Fd+xCiHriVGvYcWyW8mR/CPsYajlH8Iuw==", + "version": "1.0.30001107", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001107.tgz", + "integrity": "sha512-86rCH+G8onCmdN4VZzJet5uPELII59cUzDphko3thQFgAQG1RNa+sVLDoALIhRYmflo5iSIzWY3vu1XTWtNMQQ==", "dev": true }, "chalk": { @@ -211,6 +224,12 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "dev": true + }, "compare-versions": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", @@ -248,9 +267,9 @@ } }, "electron-to-chromium": { - "version": "1.3.432", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.432.tgz", - "integrity": "sha512-/GdNhXyLP5Yl2322CUX/+Xi8NhdHBqL6lD9VJVKjH6CjoPGakvwZ5CpKgj/oOlbzuWWjOvMjDw1bBuAIRCNTlw==", + "version": "1.3.510", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.510.tgz", + "integrity": "sha512-sLtGB0znXdmo6lM8hy5wTVo+fLqvIuO8hEpgc0DvPmFZqvBu/WB7AarEwhxVKjf3rVbws/rC8Xf+AlsOb36lJQ==", "dev": true }, "end-of-stream": { @@ -271,6 +290,12 @@ "is-arrayish": "^0.2.1" } }, + "escalade": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz", + "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==", + "dev": true + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -500,9 +525,9 @@ } }, "node-releases": { - "version": "1.1.55", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.55.tgz", - "integrity": "sha512-H3R3YR/8TjT5WPin/wOoHOUPHgvj8leuU/Keta/rwelEQN9pA/S2Dx8/se4pZ2LBxSd0nAGzsNzhqwa77v7F1w==", + "version": "1.1.60", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz", + "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==", "dev": true }, "normalize-range": { @@ -628,66 +653,6 @@ "find-up": "^4.0.0" } }, - "pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", - "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - }, - "dependencies": { - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "requires": { - "locate-path": "^2.0.0" - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true, - "requires": { - "p-limit": "^1.1.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, "please-upgrade-node": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", @@ -817,9 +782,9 @@ } }, "typescript": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz", - "integrity": "sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==", + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", "dev": true }, "which": { diff --git a/webcomponents/color/package.json b/webcomponents/color/package.json index 77df725ff..f754db55d 100644 --- a/webcomponents/color/package.json +++ b/webcomponents/color/package.json @@ -1,6 +1,6 @@ { "name": "@deckdeckgo/color", - "version": "2.0.0", + "version": "2.1.2", "description": "A color picker developed with Web Components", "main": "dist/index.js", "module": "dist/index.mjs", @@ -23,10 +23,10 @@ "generate": "stencil generate" }, "devDependencies": { - "@stencil/core": "^1.13.0", + "@stencil/core": "^1.17.2", "@stencil/postcss": "^1.0.1", - "@stencil/sass": "^1.3.1", - "autoprefixer": "^9.7.6", + "@stencil/sass": "^1.3.2", + "autoprefixer": "^9.8.5", "husky": "^4.2.5", "prettier": "2.0.5", "pretty-quick": "^2.0.1" diff --git a/webcomponents/color/src/components.d.ts b/webcomponents/color/src/components.d.ts index 0574bb3a7..4d17491fa 100644 --- a/webcomponents/color/src/components.d.ts +++ b/webcomponents/color/src/components.d.ts @@ -5,7 +5,7 @@ * It contains typing information for all components that exist in this project. */ import { HTMLStencilElement, JSXBase } from "@stencil/core/internal"; -import { DeckdeckgoPalette, DeckdeckgoPaletteColor, } from "./utils/deckdeckgo-palette"; +import { DeckdeckgoPalette, DeckdeckgoPaletteColor } from "./utils/deckdeckgo-palette"; export namespace Components { interface DeckgoColor { "colorHex": string; diff --git a/webcomponents/color/src/components/color/deckdeckgo-color.tsx b/webcomponents/color/src/components/color/deckdeckgo-color.tsx index 08b5c693e..7fe779843 100644 --- a/webcomponents/color/src/components/color/deckdeckgo-color.tsx +++ b/webcomponents/color/src/components/color/deckdeckgo-color.tsx @@ -237,7 +237,7 @@ export class DeckdeckgoColor { render() { return ( -
+
{this.renderPalette()} {this.renderMore()}
diff --git a/webcomponents/color/src/index.ts b/webcomponents/color/src/index.ts index 4f5794296..3f42b019b 100644 --- a/webcomponents/color/src/index.ts +++ b/webcomponents/color/src/index.ts @@ -1,3 +1,3 @@ -export * from './components'; +export type {Components, JSX} from './components'; -export * from './utils/deckdeckgo-palette'; \ No newline at end of file +export * from './utils/deckdeckgo-palette';