- {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 (
+
+ );
+ }
+}
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
+
+
+
+ Why building presentations with web standards makes sense
+
+
+ 2020-05-06
+
+
+
+
+
+ ブラウザ上でスライド作ってプレゼンするDeckDeckGoをローカル環境で構築して脱パワポしてみた
+
+
+ 2019-10-06
+
+
+
+
+
+ Crea presentaciones con diapositivas rápidamente
+
+
+ 2019-09-25
+
+
+
+
+
+ Shortlisted for the DINAcon Awards 2019
+
+
+ 2019-09-24
+
+
+
+
+
+ リモートコントロールもできるPWAのHTMLスライド
+
+
+ 2019-09-01
+
+
-
+ ,
];
}
}
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.scrollTo(this.featuresRef)}>
+ Discover more features
+
+
+
+
+
+
+
+
+
+ (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{' '}
-
+
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';