├── docs
├── src
│ ├── app
│ │ ├── app-root.scss
│ │ ├── pages
│ │ │ └── docs
│ │ │ │ ├── edit
│ │ │ │ └── app-edit-fonts
│ │ │ │ │ └── app-edit-fonts.scss
│ │ │ │ ├── introduction
│ │ │ │ ├── app-installation
│ │ │ │ │ └── app-installation.scss
│ │ │ │ ├── app-introduction
│ │ │ │ │ └── app-introduction.scss
│ │ │ │ └── app-remote-control
│ │ │ │ │ └── app-remote-control.scss
│ │ │ │ ├── slides
│ │ │ │ ├── app-slide-gif
│ │ │ │ │ └── app-slide-gif.scss
│ │ │ │ ├── app-slide-author
│ │ │ │ │ └── app-slide-author.scss
│ │ │ │ ├── app-slide-chart
│ │ │ │ │ └── app-slide-chart.scss
│ │ │ │ ├── app-slide-code
│ │ │ │ │ └── app-slide-code.scss
│ │ │ │ ├── app-slide-poll
│ │ │ │ │ └── app-slide-poll.scss
│ │ │ │ ├── app-slide-qrcode
│ │ │ │ │ └── app-slide-qrcode.scss
│ │ │ │ ├── app-slide-split
│ │ │ │ │ └── app-slide-split.scss
│ │ │ │ ├── app-slide-title
│ │ │ │ │ └── app-slide-title.scss
│ │ │ │ ├── app-slide-video
│ │ │ │ │ └── app-slide-video.scss
│ │ │ │ ├── app-slide-big-img
│ │ │ │ │ └── app-slide-big-img.scss
│ │ │ │ ├── app-slide-content
│ │ │ │ │ └── app-slide-content.scss
│ │ │ │ ├── app-slide-youtube
│ │ │ │ │ └── app-slide-youtube.scss
│ │ │ │ ├── app-slides-concept
│ │ │ │ │ └── app-slides-concept.scss
│ │ │ │ ├── app-slide-countdown
│ │ │ │ │ └── app-slide-countdown.scss
│ │ │ │ └── app-slide-aspect-ratio
│ │ │ │ │ └── app-slide-aspect-ratio.scss
│ │ │ │ └── misc
│ │ │ │ └── app-misc-open-source
│ │ │ │ └── app-misc-open-source.scss
│ │ └── components
│ │ │ ├── app-theme-switcher
│ │ │ └── app-theme-switcher.scss
│ │ │ ├── app-logo
│ │ │ ├── app-logo.tsx
│ │ │ └── app-logo.scss
│ │ │ └── app-menu-footer
│ │ │ ├── app-menu-footer.tsx
│ │ │ └── app-menu-footer.scss
│ ├── interfaces.d.ts
│ ├── robots.txt
│ ├── assets
│ │ ├── favicon
│ │ │ ├── favicon.ico
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── mstile-150x150.png
│ │ │ ├── apple-touch-icon.png
│ │ │ ├── android-chrome-192x192.png
│ │ │ ├── android-chrome-512x512.png
│ │ │ └── browserconfig.xml
│ │ ├── img
│ │ │ ├── deckdeckgo.png
│ │ │ └── screenshots
│ │ │ │ └── remote-control
│ │ │ │ └── deckdeckgo-remote-control-timer.png
│ │ └── splash
│ │ │ ├── launch-1125x2436.png
│ │ │ ├── launch-1242x2148.png
│ │ │ ├── launch-1536x2048.png
│ │ │ ├── launch-1668x2224.png
│ │ │ ├── launch-2048x2732.png
│ │ │ ├── launch-640x1136.png
│ │ │ └── launch-750x1294.png
│ ├── global
│ │ └── theme
│ │ │ ├── toolbar.scss
│ │ │ ├── code.scss
│ │ │ └── theme.scss
│ └── manifest.json
├── .firebaserc
├── docs
│ ├── misc
│ │ ├── app-misc-open-source
│ │ │ └── app-misc-open-source.md
│ │ └── app-misc-logo
│ │ │ └── app-misc-logo.md
│ └── edit
│ │ ├── app-edit-rtl
│ │ └── app-edit-rtl.md
│ │ └── app-edit-default
│ │ └── app-edit-default.md
├── .editorconfig
├── .prettierrc
├── tsconfig.json
└── scripts
│ └── tsconfig.json
├── studio
├── src
│ ├── app
│ │ ├── app-root.scss
│ │ ├── popovers
│ │ │ └── editor
│ │ │ │ ├── app-get-help
│ │ │ │ └── app-get-help.scss
│ │ │ │ ├── app-reveal
│ │ │ │ └── app-reveal.scss
│ │ │ │ ├── app-deck-style
│ │ │ │ └── app-deck-style.scss
│ │ │ │ ├── slide
│ │ │ │ └── app-edit-slide
│ │ │ │ │ └── app-edit-slide.scss
│ │ │ │ ├── actions
│ │ │ │ ├── app-more-deck-actions
│ │ │ │ │ └── app-more-deck-actions.scss
│ │ │ │ └── app-more-element-actions
│ │ │ │ │ └── app-more-element-actions.scss
│ │ │ │ ├── app-color
│ │ │ │ └── app-color.scss
│ │ │ │ └── app-image-element
│ │ │ │ └── app-image-element.scss
│ │ ├── definitions
│ │ │ ├── firebaseui.d.ts
│ │ │ ├── merge-information.d.ts
│ │ │ ├── input.d.ts
│ │ │ ├── storage.d.ts
│ │ │ └── resize-observer.d.ts
│ │ ├── pages
│ │ │ └── core
│ │ │ │ ├── about
│ │ │ │ ├── app-faq
│ │ │ │ │ └── app-faq.scss
│ │ │ │ ├── app-about
│ │ │ │ │ └── app-about.scss
│ │ │ │ ├── app-press
│ │ │ │ │ └── app-press.scss
│ │ │ │ ├── app-contact
│ │ │ │ │ └── app-contact.scss
│ │ │ │ ├── app-remote
│ │ │ │ │ └── app-remote.scss
│ │ │ │ ├── app-services
│ │ │ │ │ └── app-services.scss
│ │ │ │ ├── app-newsletter
│ │ │ │ │ └── app-newsletter.scss
│ │ │ │ ├── app-opensource
│ │ │ │ │ └── app-opensource.scss
│ │ │ │ ├── app-terms
│ │ │ │ │ └── app-terms.scss
│ │ │ │ ├── app-privacy
│ │ │ │ │ └── app-privacy.scss
│ │ │ │ └── app-developer
│ │ │ │ │ └── app-developer.scss
│ │ │ │ └── app-discover
│ │ │ │ └── app-discover.tsx
│ │ ├── models
│ │ │ ├── api
│ │ │ │ ├── api.presentation.tsx
│ │ │ │ ├── api.slide.tsx
│ │ │ │ ├── api.deck.tsx
│ │ │ │ └── api.user.tsx
│ │ │ ├── auth
│ │ │ │ └── auth.user.tsx
│ │ │ └── data
│ │ │ │ └── user.tsx
│ │ ├── components
│ │ │ ├── editor
│ │ │ │ ├── app-share-deck
│ │ │ │ │ └── app-share-deck.scss
│ │ │ │ ├── app-share-options
│ │ │ │ │ └── app-share-options.scss
│ │ │ │ ├── actions
│ │ │ │ │ ├── deck
│ │ │ │ │ │ └── app-action-busy
│ │ │ │ │ │ │ └── app-action-busy.scss
│ │ │ │ │ └── element
│ │ │ │ │ │ └── app-actions-element
│ │ │ │ │ │ └── app-actions-element.scss
│ │ │ │ ├── color
│ │ │ │ │ └── app-color-code
│ │ │ │ │ │ └── app-color-code.scss
│ │ │ │ └── app-image
│ │ │ │ │ └── app-image.scss
│ │ │ ├── core
│ │ │ │ ├── app-avatar
│ │ │ │ │ └── app-avatar.scss
│ │ │ │ ├── app-menu
│ │ │ │ │ └── app-menu.scss
│ │ │ │ ├── app-logo
│ │ │ │ │ ├── app-logo.tsx
│ │ │ │ │ └── app-logo.scss
│ │ │ │ └── app-random-gif
│ │ │ │ │ └── app-random-gif.scss
│ │ │ ├── feed
│ │ │ │ └── app-popular
│ │ │ │ │ └── app-popular.scss
│ │ │ └── landing
│ │ │ │ ├── app-landing-footer
│ │ │ │ └── app-landing-footer.scss
│ │ │ │ └── app-landing
│ │ │ │ └── app-landing.tsx
│ │ ├── modals
│ │ │ ├── editor
│ │ │ │ ├── app-embed
│ │ │ │ │ └── app-embed.scss
│ │ │ │ ├── app-custom-images
│ │ │ │ │ └── app-custom-images.scss
│ │ │ │ ├── app-publish
│ │ │ │ │ └── app-publish.scss
│ │ │ │ ├── app-slide-navigate
│ │ │ │ │ └── app-slide-navigate.scss
│ │ │ │ ├── app-youtube
│ │ │ │ │ └── app-youtube.scss
│ │ │ │ ├── app-poll-options
│ │ │ │ │ └── app-poll-options.scss
│ │ │ │ ├── app-code-languages
│ │ │ │ │ └── app-code-languages.scss
│ │ │ │ └── app-custom-data
│ │ │ │ │ └── app-custom-data.scss
│ │ │ └── core
│ │ │ │ ├── app-deck-delete
│ │ │ │ └── app-deck-delete.scss
│ │ │ │ └── app-user-delete
│ │ │ │ └── app-user-delete.scss
│ │ ├── utils
│ │ │ ├── editor
│ │ │ │ ├── breadcrumbs-type.ts
│ │ │ │ ├── image-action.tsx
│ │ │ │ ├── more-action.tsx
│ │ │ │ ├── edit-action.tsx
│ │ │ │ ├── shape-action.tsx
│ │ │ │ ├── target-element.tsx
│ │ │ │ └── slot-type.tsx
│ │ │ └── core
│ │ │ │ └── resources.tsx
│ │ └── services
│ │ │ └── api
│ │ │ └── photo
│ │ │ └── api.photo.service.tsx
│ ├── interfaces.d.ts
│ ├── robots.txt
│ ├── global
│ │ └── theme
│ │ │ ├── list.scss
│ │ │ ├── theme.scss
│ │ │ ├── tappable.scss
│ │ │ ├── alert.scss
│ │ │ ├── content-editable.scss
│ │ │ ├── modal.scss
│ │ │ ├── editor
│ │ │ ├── editor-deck-img.scss
│ │ │ ├── editor-deck-transition.scss
│ │ │ └── editor-info.scss
│ │ │ ├── loading.scss
│ │ │ ├── select.scss
│ │ │ ├── content.scss
│ │ │ ├── toolbar.scss
│ │ │ ├── searchbar.scss
│ │ │ └── header.scss
│ ├── assets
│ │ ├── favicon
│ │ │ ├── favicon.ico
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── mstile-150x150.png
│ │ │ ├── apple-touch-icon.png
│ │ │ ├── android-chrome-192x192.png
│ │ │ ├── android-chrome-512x512.png
│ │ │ └── browserconfig.xml
│ │ ├── meta
│ │ │ └── deckdeckgo-meta.png
│ │ ├── splash
│ │ │ ├── launch-1125x2436.png
│ │ │ ├── launch-1242x2148.png
│ │ │ ├── launch-1536x2048.png
│ │ │ ├── launch-1668x2224.png
│ │ │ ├── launch-2048x2732.png
│ │ │ ├── launch-640x1136.png
│ │ │ └── launch-750x1294.png
│ │ ├── img
│ │ │ ├── screenshot-not-found.png
│ │ │ ├── shapes
│ │ │ │ ├── square-full-solid.svg
│ │ │ │ ├── circle-solid.svg
│ │ │ │ ├── bookmark-solid.svg
│ │ │ │ ├── play-solid.svg
│ │ │ │ ├── square-solid.svg
│ │ │ │ ├── minus-solid.svg
│ │ │ │ ├── folder-solid.svg
│ │ │ │ ├── circle-regular.svg
│ │ │ │ ├── bookmark-regular.svg
│ │ │ │ ├── map-marker-solid.svg
│ │ │ │ ├── mobile-solid.svg
│ │ │ │ ├── tablet-solid.svg
│ │ │ │ ├── file-solid.svg
│ │ │ │ ├── minus-circle-solid.svg
│ │ │ │ ├── square-regular.svg
│ │ │ │ ├── angle-left-solid.svg
│ │ │ │ ├── angle-right-solid.svg
│ │ │ │ ├── heart-solid.svg
│ │ │ │ ├── lock-solid.svg
│ │ │ │ ├── clock-solid.svg
│ │ │ │ ├── file-regular.svg
│ │ │ │ ├── minus-square-solid.svg
│ │ │ │ ├── folder-regular.svg
│ │ │ │ ├── desktop-solid.svg
│ │ │ │ ├── plus-solid.svg
│ │ │ │ ├── cloud-solid.svg
│ │ │ │ ├── star-solid.svg
│ │ │ │ ├── user-solid.svg
│ │ │ │ ├── chevron-left-solid.svg
│ │ │ │ ├── arrow-left-solid.svg
│ │ │ │ ├── laptop-solid.svg
│ │ │ │ ├── arrow-right-solid.svg
│ │ │ │ ├── long-arrow-alt-left-solid.svg
│ │ │ │ ├── long-arrow-alt-right-solid.svg
│ │ │ │ ├── check-solid.svg
│ │ │ │ ├── calendar-regular.svg
│ │ │ │ ├── unlock-solid.svg
│ │ │ │ ├── arrow-alt-circle-right-solid.svg
│ │ │ │ ├── tag-solid.svg
│ │ │ │ ├── arrow-alt-circle-left-solid.svg
│ │ │ │ ├── plus-circle-solid.svg
│ │ │ │ ├── chevron-right-solid.svg
│ │ │ │ ├── info-solid.svg
│ │ │ │ ├── ban-solid.svg
│ │ │ │ ├── calendar-solid.svg
│ │ │ │ ├── minus-square-regular.svg
│ │ │ │ ├── clock-regular.svg
│ │ │ │ ├── plus-square-solid.svg
│ │ │ │ ├── clipboard-solid.svg
│ │ │ │ ├── credit-card-solid.svg
│ │ │ │ ├── redo-solid.svg
│ │ │ │ ├── camera-solid.svg
│ │ │ │ ├── arrow-alt-circle-left-regular.svg
│ │ │ │ ├── copy-solid.svg
│ │ │ │ ├── arrows-alt-h-solid.svg
│ │ │ │ ├── arrows-alt-v-solid.svg
│ │ │ │ ├── arrow-alt-circle-right-regular.svg
│ │ │ │ └── star-regular.svg
│ │ │ └── landing
│ │ │ │ ├── wave-audience.svg
│ │ │ │ ├── wave-introducing.svg
│ │ │ │ ├── mobile-light.svg
│ │ │ │ ├── tablet-light.svg
│ │ │ │ ├── desktop-light.svg
│ │ │ │ └── wave-remote.svg
│ │ └── icons
│ │ │ └── ionicons
│ │ │ ├── add.svg
│ │ │ ├── md-add.svg
│ │ │ ├── md-list.svg
│ │ │ ├── ellipsis-vertical.svg
│ │ │ ├── close.svg
│ │ │ ├── clipboard.svg
│ │ │ ├── phone-portrait.svg
│ │ │ └── person.svg
│ └── manifest.json
├── .firebaserc
├── .prettierrc
└── tsconfig.json
├── .prettierignore
├── infra
├── shell.nix
├── sqs.tf
├── .gitignore
├── firebase-login
│ ├── script
│ │ ├── test
│ │ ├── update
│ │ └── upload
│ ├── default.nix
│ ├── shell.nix
│ └── nix
│ │ ├── packages.nix
│ │ └── default.nix
├── script
│ ├── test
│ ├── postgres-password
│ ├── unsplash-client-id
│ └── build-unsplash-proxy
├── index.html
├── handler
│ ├── src
│ │ └── DeckGo
│ │ │ └── Prelude.hs
│ └── README.md
├── versions.tf
├── token
├── unsplash-proxy
│ └── package.yaml
├── bootstrap
│ └── main.tf
└── google-key-updater
│ └── package.yaml
├── remote
├── src
│ ├── app
│ │ ├── components
│ │ │ ├── app-header
│ │ │ │ └── app-header.scss
│ │ │ ├── app-stopwatch-time
│ │ │ │ └── app-stopwatch-time.scss
│ │ │ ├── app-logo
│ │ │ │ ├── app-logo.tsx
│ │ │ │ └── app-logo.scss
│ │ │ └── app-draw
│ │ │ │ └── app-draw.scss
│ │ ├── modals
│ │ │ ├── app-remote-connect
│ │ │ │ └── app-remote-connect.scss
│ │ │ └── app-remote-slide-picker
│ │ │ │ └── app-remote-slide-picker.scss
│ │ ├── pages
│ │ │ ├── app-settings
│ │ │ │ └── app-settings.scss
│ │ │ └── app-timer
│ │ │ │ └── app-timer.scss
│ │ └── app-root.scss
│ ├── robots.txt
│ ├── global
│ │ └── theme
│ │ │ ├── shadow.scss
│ │ │ ├── main.scss
│ │ │ ├── fonts.scss
│ │ │ ├── segment.scss
│ │ │ ├── alert.scss
│ │ │ ├── toolbar.scss
│ │ │ └── list.scss
│ ├── assets
│ │ ├── favicon
│ │ │ ├── favicon.ico
│ │ │ ├── favicon-16x16.png
│ │ │ ├── favicon-32x32.png
│ │ │ ├── mstile-150x150.png
│ │ │ ├── apple-touch-icon.png
│ │ │ ├── android-chrome-192x192.png
│ │ │ ├── android-chrome-512x512.png
│ │ │ └── browserconfig.xml
│ │ └── splash
│ │ │ ├── launch-1125x2436.png
│ │ │ ├── launch-1242x2148.png
│ │ │ ├── launch-1536x2048.png
│ │ │ ├── launch-1668x2224.png
│ │ │ ├── launch-2048x2732.png
│ │ │ ├── launch-640x1136.png
│ │ │ └── launch-750x1294.png
│ └── manifest.json
├── .firebaserc
├── .prettierrc
└── tsconfig.json
├── webcomponents
├── charts
│ ├── src
│ │ └── index.ts
│ ├── showcase
│ │ ├── data-line-chart-no-dates.csv
│ │ ├── data-line-chart.csv
│ │ ├── data-line-chart-to-compare.csv
│ │ ├── data-bar-chart-to-compare.csv
│ │ ├── data-pie-chart.csv
│ │ ├── data-line-multiple.csv
│ │ └── data-bar-chart-to-compare-with-titles.csv
│ ├── .editorconfig
│ ├── .prettierrc
│ ├── stencil.config.ts
│ └── tsconfig.json
├── core
│ ├── src
│ │ ├── index.ts
│ │ └── components
│ │ │ └── reveal
│ │ │ ├── deckdeckgo-reveal
│ │ │ └── deckdeckgo-reveal.scss
│ │ │ └── deckdeckgo-reveal-utils.tsx
│ ├── .editorconfig
│ ├── .prettierrc
│ ├── stencil.config.ts
│ └── tsconfig.json
├── qrcode
│ ├── src
│ │ └── index.ts
│ ├── .editorconfig
│ ├── .prettierrc
│ └── tsconfig.json
├── remote
│ ├── src
│ │ ├── index.ts
│ │ ├── components
│ │ │ └── deckdeckgo-remote
│ │ │ │ └── deckdeckgo-remote.scss
│ │ └── index.html
│ ├── .editorconfig
│ ├── .prettierrc
│ └── tsconfig.json
├── social
│ ├── src
│ │ ├── index.ts
│ │ └── components
│ │ │ └── deckdeckgo-social.scss
│ ├── .editorconfig
│ ├── .prettierrc
│ ├── .gitignore
│ ├── tsconfig.json
│ └── stencil.config.ts
├── youtube
│ ├── src
│ │ └── index.ts
│ ├── .editorconfig
│ ├── .prettierrc
│ ├── .gitignore
│ ├── CHANGELOG.md
│ └── tsconfig.json
├── lazy-img
│ ├── src
│ │ ├── index.ts
│ │ ├── interface.d.ts
│ │ └── components
│ │ │ └── interfaces
│ │ │ └── custom-load.ts
│ ├── .editorconfig
│ ├── .prettierrc
│ ├── .gitignore
│ ├── stencil.config.ts
│ └── tsconfig.json
├── slides
│ ├── chart
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── components
│ │ │ │ └── slide
│ │ │ │ └── deckdeckgo-slide-chart.scss
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── code
│ │ ├── src
│ │ │ └── index.ts
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── gif
│ │ ├── src
│ │ │ └── index.ts
│ │ ├── CHANGELOG.md
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── poll
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── utils
│ │ │ │ └── deckdeckgo-slide-poll.answer.utils.tsx
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── split
│ │ ├── src
│ │ │ └── index.ts
│ │ ├── CHANGELOG.md
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── title
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── components
│ │ │ │ └── slide
│ │ │ │ └── deckdeckgo-slide-title.scss
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── video
│ │ ├── src
│ │ │ └── index.ts
│ │ ├── .editorconfig
│ │ ├── CHANGELOG.md
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── author
│ │ ├── src
│ │ │ └── index.ts
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── big-img
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── components
│ │ │ │ └── slide
│ │ │ │ └── deckdeckgo-slide-big-img.scss
│ │ ├── showcase
│ │ │ ├── big-deckdeckgo-h.jpg
│ │ │ └── big-deckdeckgo.jpg
│ │ ├── CHANGELOG.md
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── content
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── components
│ │ │ │ └── slide
│ │ │ │ └── deckdeckgo-slide-content.scss
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── countdown
│ │ ├── src
│ │ │ └── index.ts
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ ├── qrcode
│ │ ├── src
│ │ │ └── index.ts
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ ├── CHANGELOG.md
│ │ └── tsconfig.json
│ ├── youtube
│ │ ├── src
│ │ │ └── index.ts
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ └── tsconfig.json
│ └── aspect-ratio
│ │ ├── src
│ │ └── index.ts
│ │ ├── .editorconfig
│ │ ├── .prettierrc
│ │ ├── tsconfig.json
│ │ └── CHANGELOG.md
├── highlight-code
│ ├── src
│ │ ├── index.ts
│ │ └── components
│ │ │ └── declarations
│ │ │ └── deckdeckgo-highlight-code-anchor.tsx
│ ├── .editorconfig
│ ├── .prettierrc
│ ├── stencil.config.ts
│ └── tsconfig.json
├── drag-resize-rotate
│ ├── src
│ │ └── index.ts
│ ├── .editorconfig
│ ├── .prettierrc
│ ├── .gitignore
│ ├── tsconfig.json
│ └── CHANGELOG.md
├── color
│ ├── src
│ │ ├── index.ts
│ │ ├── interface.d.ts
│ │ └── index.html
│ ├── .editorconfig
│ ├── .prettierrc
│ ├── .gitignore
│ ├── tsconfig.json
│ └── stencil.config.ts
└── inline-editor
│ ├── src
│ ├── index.ts
│ ├── utils
│ │ └── enums.ts
│ └── components
│ │ └── inline-editor
│ │ └── deckdeckgo-inline-editor.interface.ts
│ ├── .editorconfig
│ ├── .prettierrc
│ ├── stencil.config.ts
│ └── tsconfig.json
├── utils
├── types
│ ├── src
│ │ ├── index.ts
│ │ ├── poll.ts
│ │ └── chart.ts
│ ├── tsconfig.json
│ └── .prettierrc
├── slide
│ ├── src
│ │ ├── interfaces
│ │ │ ├── deckdeckgo-component.ts
│ │ │ ├── deckdeckgo-slide-resize.ts
│ │ │ ├── deckdeckgo-slide-play.ts
│ │ │ └── deckdeckgo-slide.ts
│ │ └── index.ts
│ ├── .prettierrc
│ ├── tsconfig.json
│ └── rollup.config.js
├── utils
│ ├── src
│ │ └── index.ts
│ ├── tsconfig.json
│ ├── .prettierrc
│ └── rollup.config.js
├── deck
│ ├── src
│ │ └── index.ts
│ ├── styles
│ │ └── deckdeckgo-deck-rtl.css
│ ├── .prettierrc
│ ├── tsconfig.json
│ └── rollup.config.js
└── remote
│ ├── src
│ ├── index.ts
│ └── drawable
│ │ └── drawable.ts
│ ├── CHANGELOG.md
│ ├── tsconfig.json
│ ├── .prettierrc
│ └── rollup.config.js
├── cli
├── src
│ └── version.js
├── tslint.json
├── README.md
└── tsconfig.json
├── cloud
├── .firebaserc
├── functions
│ ├── src
│ │ ├── model
│ │ │ ├── user.ts
│ │ │ └── slide.ts
│ │ └── utils
│ │ │ └── resources.ts
│ ├── .gitignore
│ └── tsconfig.json
├── firebase.json
├── config
│ ├── cors-studio-prod.json
│ └── cors-studio-beta.json
└── CHANGELOG.md
├── webpack
├── src
│ ├── index.ts
│ ├── notes
│ │ └── deckdeckgo-remove-notes-resources.ts
│ └── info
│ │ └── deckdeckgo-info-plugin.ts
└── tsconfig.json
├── backend
└── CHANGELOG.md
├── .github
└── ISSUE_TEMPLATE
│ └── docs.md
└── .gitignore
/docs/src/app/app-root.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/src/interfaces.d.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/studio/src/app/app-root.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/studio/src/interfaces.d.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | **/src/components.d.ts
2 |
--------------------------------------------------------------------------------
/infra/shell.nix:
--------------------------------------------------------------------------------
1 | (import ./default.nix).devshell
2 |
--------------------------------------------------------------------------------
/remote/src/app/components/app-header/app-header.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/edit/app-edit-fonts/app-edit-fonts.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/studio/src/app/popovers/editor/app-get-help/app-get-help.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/remote/src/app/components/app-stopwatch-time/app-stopwatch-time.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/remote/src/app/modals/app-remote-connect/app-remote-connect.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webcomponents/charts/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/core/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/qrcode/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/remote/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/social/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/youtube/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/studio/src/app/definitions/firebaseui.d.ts:
--------------------------------------------------------------------------------
1 | declare var firebaseui;
2 |
--------------------------------------------------------------------------------
/webcomponents/lazy-img/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/chart/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/code/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/gif/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/poll/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/split/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/title/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/video/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/introduction/app-installation/app-installation.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/introduction/app-introduction/app-introduction.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/src/robots.txt:
--------------------------------------------------------------------------------
1 | # robotstxt.org/
2 |
3 | User-agent: *
4 | Disallow:
5 |
--------------------------------------------------------------------------------
/infra/sqs.tf:
--------------------------------------------------------------------------------
1 | resource "aws_sqs_queue" "dirty" {
2 | name = "dirty"
3 | }
4 |
--------------------------------------------------------------------------------
/remote/src/app/modals/app-remote-slide-picker/app-remote-slide-picker.scss:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webcomponents/highlight-code/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/author/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/big-img/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/content/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/countdown/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/qrcode/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/youtube/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/remote/src/robots.txt:
--------------------------------------------------------------------------------
1 | # robotstxt.org/
2 |
3 | User-agent: *
4 | Disallow:
5 |
--------------------------------------------------------------------------------
/studio/src/robots.txt:
--------------------------------------------------------------------------------
1 | # robotstxt.org/
2 |
3 | User-agent: *
4 | Disallow:
5 |
--------------------------------------------------------------------------------
/webcomponents/drag-resize-rotate/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/aspect-ratio/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
--------------------------------------------------------------------------------
/docs/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "deckdeckgo-docs"
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-gif/app-slide-gif.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/infra/.gitignore:
--------------------------------------------------------------------------------
1 | .pgdata
2 | .dynamodb.pid
3 | .s3.pid
4 | .sqs.pid
5 | shared-local-instance.db
6 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-author/app-slide-author.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-chart/app-slide-chart.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-code/app-slide-code.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-poll/app-slide-poll.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-qrcode/app-slide-qrcode.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-split/app-slide-split.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-title/app-slide-title.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-video/app-slide-video.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/infra/firebase-login/script/test:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # vim: filetype=sh
3 |
4 | nix-build --no-link
5 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-big-img/app-slide-big-img.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-content/app-slide-content.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-youtube/app-slide-youtube.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slides-concept/app-slides-concept.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/remote/src/global/theme/shadow.scss:
--------------------------------------------------------------------------------
1 | :root {
2 | --remote-box-shadow: 0 4px 4px rgba(0, 0, 0, 0.12);
3 | }
4 |
--------------------------------------------------------------------------------
/studio/src/global/theme/list.scss:
--------------------------------------------------------------------------------
1 | // Fix pre-rendering
2 | ion-list.ion-no-padding {
3 | padding: 0;
4 | }
5 |
--------------------------------------------------------------------------------
/studio/src/global/theme/theme.scss:
--------------------------------------------------------------------------------
1 | ul {
2 | list-style-type: none;
3 | margin: 0;
4 | padding: 0;
5 | }
6 |
--------------------------------------------------------------------------------
/utils/types/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './remote';
2 | export * from './chart';
3 | export * from './poll';
4 |
--------------------------------------------------------------------------------
/webcomponents/charts/showcase/data-line-chart-no-dates.csv:
--------------------------------------------------------------------------------
1 | 1;5;0
2 | 2;10;6
3 | 3;8;14
4 | 4;14;8
5 | 5;18;4
6 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-countdown/app-slide-countdown.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/infra/script/test:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # vim: filetype=sh
3 |
4 | nix-build --no-link --sandbox --max-jobs 20
5 |
--------------------------------------------------------------------------------
/webcomponents/color/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
3 | export * from './utils/deckdeckgo-palette';
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/slides/app-slide-aspect-ratio/app-slide-aspect-ratio.scss:
--------------------------------------------------------------------------------
1 | @import "../app-slides-container";
2 |
--------------------------------------------------------------------------------
/docs/src/assets/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/favicon/favicon.ico
--------------------------------------------------------------------------------
/docs/src/assets/img/deckdeckgo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/img/deckdeckgo.png
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-faq/app-faq.scss:
--------------------------------------------------------------------------------
1 | app-faq {
2 | main {
3 | background: white;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/webcomponents/color/src/interface.d.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
3 | export * from './utils/deckdeckgo-palette';
--------------------------------------------------------------------------------
/remote/src/assets/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/favicon/favicon.ico
--------------------------------------------------------------------------------
/remote/src/global/theme/main.scss:
--------------------------------------------------------------------------------
1 | main {
2 | max-width: 1024px;
3 | margin-left: auto;
4 | margin-right: auto;
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/app/models/api/api.presentation.tsx:
--------------------------------------------------------------------------------
1 | export interface ApiPresentation {
2 | id: string;
3 | url: string;
4 | }
5 |
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-about/app-about.scss:
--------------------------------------------------------------------------------
1 | app-about {
2 | main {
3 | background: white;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-press/app-press.scss:
--------------------------------------------------------------------------------
1 | app-press {
2 | main {
3 | background: white;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/assets/favicon/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/favicon/favicon.ico
--------------------------------------------------------------------------------
/studio/src/global/theme/tappable.scss:
--------------------------------------------------------------------------------
1 | *[custom-tappable] {
2 | touch-action: manipulation;
3 | cursor: pointer;
4 | }
5 |
--------------------------------------------------------------------------------
/remote/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "deckdeckgo-app",
4 | "staging": "deckdeckgo-app-beta"
5 | }
6 | }
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-contact/app-contact.scss:
--------------------------------------------------------------------------------
1 | app-contact {
2 | main {
3 | background: white;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-remote/app-remote.scss:
--------------------------------------------------------------------------------
1 | app-remote {
2 | main {
3 | background: white;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/cli/src/version.js:
--------------------------------------------------------------------------------
1 | export function getPkgVersion() {
2 | const pkg = require('../package.json');
3 | return pkg.version;
4 | }
5 |
--------------------------------------------------------------------------------
/docs/src/assets/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/docs/src/assets/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/docs/src/assets/favicon/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/favicon/mstile-150x150.png
--------------------------------------------------------------------------------
/docs/src/assets/splash/launch-1125x2436.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/splash/launch-1125x2436.png
--------------------------------------------------------------------------------
/docs/src/assets/splash/launch-1242x2148.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/splash/launch-1242x2148.png
--------------------------------------------------------------------------------
/docs/src/assets/splash/launch-1536x2048.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/splash/launch-1536x2048.png
--------------------------------------------------------------------------------
/docs/src/assets/splash/launch-1668x2224.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/splash/launch-1668x2224.png
--------------------------------------------------------------------------------
/docs/src/assets/splash/launch-2048x2732.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/splash/launch-2048x2732.png
--------------------------------------------------------------------------------
/docs/src/assets/splash/launch-640x1136.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/splash/launch-640x1136.png
--------------------------------------------------------------------------------
/docs/src/assets/splash/launch-750x1294.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/splash/launch-750x1294.png
--------------------------------------------------------------------------------
/remote/src/assets/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/remote/src/assets/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/studio/src/app/components/editor/app-share-deck/app-share-deck.scss:
--------------------------------------------------------------------------------
1 | web-social-share {
2 | --web-social-share-zindex: 200000;
3 | }
4 |
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-services/app-services.scss:
--------------------------------------------------------------------------------
1 | app-services {
2 | main {
3 | background: white;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/assets/favicon/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/favicon/favicon-16x16.png
--------------------------------------------------------------------------------
/studio/src/assets/favicon/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/favicon/favicon-32x32.png
--------------------------------------------------------------------------------
/studio/src/assets/meta/deckdeckgo-meta.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/meta/deckdeckgo-meta.png
--------------------------------------------------------------------------------
/studio/src/global/theme/alert.scss:
--------------------------------------------------------------------------------
1 | ion-alert.custom-info {
2 | button[class*="sc-ion-alert"] {
3 | color: black;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/global/theme/content-editable.scss:
--------------------------------------------------------------------------------
1 | *[contenteditable] {
2 | -webkit-user-select: text;
3 | user-select: text;
4 | }
5 |
--------------------------------------------------------------------------------
/studio/src/global/theme/modal.scss:
--------------------------------------------------------------------------------
1 | ion-modal.fullscreen {
2 | --width: 100%;
3 | --height: 100%;
4 | --border-radius: 0;
5 | }
6 |
--------------------------------------------------------------------------------
/webcomponents/charts/showcase/data-line-chart.csv:
--------------------------------------------------------------------------------
1 | 01.01.2018;5
2 | 01.03.2018;10
3 | 01.06.2018;8
4 | 01.09.2018;14
5 | 01.12.2018;18
6 |
--------------------------------------------------------------------------------
/webcomponents/lazy-img/src/interface.d.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 |
3 | export * from './components/interfaces/custom-load';
4 |
--------------------------------------------------------------------------------
/docs/src/assets/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/infra/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Presentations!
5 |
6 |
7 |
--------------------------------------------------------------------------------
/remote/src/assets/favicon/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/favicon/mstile-150x150.png
--------------------------------------------------------------------------------
/remote/src/assets/splash/launch-1125x2436.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/splash/launch-1125x2436.png
--------------------------------------------------------------------------------
/remote/src/assets/splash/launch-1242x2148.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/splash/launch-1242x2148.png
--------------------------------------------------------------------------------
/remote/src/assets/splash/launch-1536x2048.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/splash/launch-1536x2048.png
--------------------------------------------------------------------------------
/remote/src/assets/splash/launch-1668x2224.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/splash/launch-1668x2224.png
--------------------------------------------------------------------------------
/remote/src/assets/splash/launch-2048x2732.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/splash/launch-2048x2732.png
--------------------------------------------------------------------------------
/remote/src/assets/splash/launch-640x1136.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/splash/launch-640x1136.png
--------------------------------------------------------------------------------
/remote/src/assets/splash/launch-750x1294.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/splash/launch-750x1294.png
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-newsletter/app-newsletter.scss:
--------------------------------------------------------------------------------
1 | app-newsletter {
2 | main {
3 | background: white;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-opensource/app-opensource.scss:
--------------------------------------------------------------------------------
1 | app-opensource {
2 | main {
3 | background: white;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/assets/favicon/mstile-150x150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/favicon/mstile-150x150.png
--------------------------------------------------------------------------------
/studio/src/assets/splash/launch-1125x2436.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/splash/launch-1125x2436.png
--------------------------------------------------------------------------------
/studio/src/assets/splash/launch-1242x2148.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/splash/launch-1242x2148.png
--------------------------------------------------------------------------------
/studio/src/assets/splash/launch-1536x2048.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/splash/launch-1536x2048.png
--------------------------------------------------------------------------------
/studio/src/assets/splash/launch-1668x2224.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/splash/launch-1668x2224.png
--------------------------------------------------------------------------------
/studio/src/assets/splash/launch-2048x2732.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/splash/launch-2048x2732.png
--------------------------------------------------------------------------------
/studio/src/assets/splash/launch-640x1136.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/splash/launch-640x1136.png
--------------------------------------------------------------------------------
/studio/src/assets/splash/launch-750x1294.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/splash/launch-750x1294.png
--------------------------------------------------------------------------------
/utils/slide/src/interfaces/deckdeckgo-component.ts:
--------------------------------------------------------------------------------
1 | export interface DeckdeckgoComponent {
2 | lazyLoadContent(): Promise;
3 | }
4 |
--------------------------------------------------------------------------------
/utils/utils/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './utils/utils';
2 | export * from './utils/image-utils';
3 | export * from './utils/inject-utils';
4 |
--------------------------------------------------------------------------------
/cloud/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "deckdeckgo-studio-prod",
4 | "staging": "deckdeckgo-studio-beta"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/remote/src/assets/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/remote/src/global/theme/fonts.scss:
--------------------------------------------------------------------------------
1 | :root {
2 | --font-size-small: 1.4rem;
3 | --font-size-normal: 1.8rem;
4 | --font-size-big: 2rem;
5 | }
6 |
--------------------------------------------------------------------------------
/remote/src/global/theme/segment.scss:
--------------------------------------------------------------------------------
1 | body.dark {
2 | ion-segment {
3 | --ion-text-color-rgb: var(--ion-color-light-rgb);
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/studio/.firebaserc:
--------------------------------------------------------------------------------
1 | {
2 | "projects": {
3 | "default": "deckdeckgo-studio-prod",
4 | "staging": "deckdeckgo-studio-beta"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/studio/src/app/popovers/editor/app-reveal/app-reveal.scss:
--------------------------------------------------------------------------------
1 | app-reveal {
2 | @import "../../../../global/theme/editor/editor-popover";
3 | }
4 |
--------------------------------------------------------------------------------
/studio/src/assets/favicon/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/favicon/apple-touch-icon.png
--------------------------------------------------------------------------------
/studio/src/assets/img/screenshot-not-found.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/img/screenshot-not-found.png
--------------------------------------------------------------------------------
/cloud/functions/src/model/user.ts:
--------------------------------------------------------------------------------
1 | export interface UserData {
2 | anonymous: boolean;
3 | email?: string;
4 | newsletter?: boolean;
5 | }
6 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/misc/app-misc-open-source/app-misc-open-source.scss:
--------------------------------------------------------------------------------
1 | div.github-links {
2 | ion-badge {
3 | margin: 4px;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/docs/src/assets/favicon/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/favicon/android-chrome-192x192.png
--------------------------------------------------------------------------------
/docs/src/assets/favicon/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/favicon/android-chrome-512x512.png
--------------------------------------------------------------------------------
/studio/src/app/modals/editor/app-embed/app-embed.scss:
--------------------------------------------------------------------------------
1 | app-embed {
2 | ion-list[class*="list"].inputs-list {
3 | padding-top: 0;
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/remote/src/assets/favicon/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/favicon/android-chrome-192x192.png
--------------------------------------------------------------------------------
/remote/src/assets/favicon/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/remote/src/assets/favicon/android-chrome-512x512.png
--------------------------------------------------------------------------------
/studio/src/app/utils/editor/breadcrumbs-type.ts:
--------------------------------------------------------------------------------
1 | export enum BreadcrumbsStep {
2 | DECK = 'deck',
3 | SLIDE = 'slide',
4 | ELEMENT = 'element'
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/assets/favicon/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/favicon/android-chrome-192x192.png
--------------------------------------------------------------------------------
/studio/src/assets/favicon/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/studio/src/assets/favicon/android-chrome-512x512.png
--------------------------------------------------------------------------------
/webcomponents/inline-editor/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './components';
2 | export * from './components/inline-editor/deckdeckgo-inline-editor.interface';
3 |
--------------------------------------------------------------------------------
/cloud/functions/.gitignore:
--------------------------------------------------------------------------------
1 | ## Compiled JavaScript files
2 | **/*.js
3 | **/*.js.map
4 |
5 | # Typescript v1 declaration files
6 | typings/
7 |
8 | node_modules/
--------------------------------------------------------------------------------
/infra/handler/src/DeckGo/Prelude.hs:
--------------------------------------------------------------------------------
1 | module DeckGo.Prelude where
2 |
3 | import Data.Function
4 |
5 | xif :: b -> ((b -> c) -> b -> c) -> c
6 | xif = flip fix
7 |
--------------------------------------------------------------------------------
/studio/src/global/theme/editor/editor-deck-img.scss:
--------------------------------------------------------------------------------
1 | main {
2 | deckgo-deck {
3 | deckgo-social {
4 | pointer-events: none;
5 | }
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/utils/deck/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './utils/parse-style.utils';
2 | export * from './utils/parse-content.utils';
3 | export * from './utils/slides.utils';
4 |
--------------------------------------------------------------------------------
/webcomponents/charts/showcase/data-line-chart-to-compare.csv:
--------------------------------------------------------------------------------
1 | 01.01.2018;5;0
2 | 01.03.2018;10;6
3 | 01.06.2018;8;14
4 | 01.09.2018;14;8
5 | 01.12.2018;18;4
6 |
--------------------------------------------------------------------------------
/webcomponents/slides/big-img/showcase/big-deckdeckgo-h.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/webcomponents/slides/big-img/showcase/big-deckdeckgo-h.jpg
--------------------------------------------------------------------------------
/webcomponents/slides/big-img/showcase/big-deckdeckgo.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/webcomponents/slides/big-img/showcase/big-deckdeckgo.jpg
--------------------------------------------------------------------------------
/webcomponents/charts/showcase/data-bar-chart-to-compare.csv:
--------------------------------------------------------------------------------
1 | 01.01.2018;5;0;10
2 | 01.03.2018;10;6;12
3 | 01.06.2018;8;14;8
4 | 01.09.2018;14;8;16
5 | 01.12.2018;18;4;5
6 |
--------------------------------------------------------------------------------
/webcomponents/charts/showcase/data-pie-chart.csv:
--------------------------------------------------------------------------------
1 | Wind;53.13%
2 | Solar:1.96%
3 | Geothermal;7.52%
4 | Landfill Gas;15.67%
5 | Biomass;14.79%
6 | Qualified Hydropower;6.93%
7 |
--------------------------------------------------------------------------------
/docs/src/app/components/app-theme-switcher/app-theme-switcher.scss:
--------------------------------------------------------------------------------
1 | app-dark-light-switcher {
2 | display: flex;
3 | justify-content: center;
4 | align-items: center;
5 | }
6 |
--------------------------------------------------------------------------------
/infra/firebase-login/script/update:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env nix-shell
2 | #!nix-shell -I nixpkgs=./nix
3 | #!nix-shell -i bash -p niv nix --pure
4 | # vim: filetype=sh
5 |
6 | niv update
7 |
--------------------------------------------------------------------------------
/studio/src/app/definitions/merge-information.d.ts:
--------------------------------------------------------------------------------
1 | interface MergeInformation {
2 | deckId: string;
3 | userId: string;
4 | userToken: string;
5 | anonymous: boolean;
6 | }
7 |
--------------------------------------------------------------------------------
/utils/remote/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './drawable/drawable';
2 | export * from './drawable/pencil';
3 | export * from './drawable/circle';
4 | export * from './drawable/arrow';
5 |
--------------------------------------------------------------------------------
/remote/src/app/pages/app-settings/app-settings.scss:
--------------------------------------------------------------------------------
1 | app-settings {
2 | ion-list {
3 | ion-range {
4 | padding-top: 0;
5 | padding-bottom: 0;
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/remote/src/global/theme/alert.scss:
--------------------------------------------------------------------------------
1 | body.dark {
2 | ion-alert {
3 | --ion-text-color: var(--ion-color-light);
4 | --ion-color-step-550: var(--ion-color-light);
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/studio/src/global/theme/loading.scss:
--------------------------------------------------------------------------------
1 | ion-loading[class*="sc-ion-loading"] {
2 | --background: transparent;
3 |
4 | div.loading-wrapper {
5 | box-shadow: none;
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/webcomponents/charts/showcase/data-line-multiple.csv:
--------------------------------------------------------------------------------
1 | 01.01.2018;5;0;8;1;9
2 | 01.03.2018;10;6;22;2;10
3 | 01.06.2018;8;14;4;3;12
4 | 01.09.2018;14;8;5;4;9
5 | 01.12.2018;18;4;8;6;18
6 |
--------------------------------------------------------------------------------
/infra/firebase-login/default.nix:
--------------------------------------------------------------------------------
1 | # TODO: port tests
2 | # TODO: fix sources
3 | # TODO: drop nix/packages
4 | with { pkgs = import ./nix {}; };
5 | pkgs.callPackage ./nix/packages.nix {}
6 |
--------------------------------------------------------------------------------
/utils/remote/src/drawable/drawable.ts:
--------------------------------------------------------------------------------
1 | export interface Point {
2 | x: number;
3 | y: number;
4 | }
5 |
6 | export interface Drawable {
7 | draw(ctx: CanvasRenderingContext2D): void;
8 | }
9 |
--------------------------------------------------------------------------------
/webcomponents/lazy-img/src/components/interfaces/custom-load.ts:
--------------------------------------------------------------------------------
1 | export interface DeckDeckGoCustomLoad {
2 | imgElement: HTMLImageElement;
3 | imgSrc?: string;
4 | imgSrcSet?: string;
5 | }
6 |
--------------------------------------------------------------------------------
/cloud/firebase.json:
--------------------------------------------------------------------------------
1 | {
2 | "functions": {
3 | "predeploy": [
4 | "npm --prefix \"$RESOURCE_DIR\" run lint",
5 | "npm --prefix \"$RESOURCE_DIR\" run build"
6 | ]
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/remote/src/app/app-root.scss:
--------------------------------------------------------------------------------
1 | .dark {
2 | --ion-background-color: black;
3 | --ion-text-color: #ffffff;
4 | --ion-item-background: #1a1b1e;
5 | --ion-item-background-activated: #313131;
6 | }
7 |
--------------------------------------------------------------------------------
/studio/src/app/components/editor/app-share-options/app-share-options.scss:
--------------------------------------------------------------------------------
1 | a {
2 | color: inherit;
3 | cursor: pointer;
4 |
5 | &:hover {
6 | color: var(--ion-color-tertiary);
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/studio/src/app/definitions/input.d.ts:
--------------------------------------------------------------------------------
1 | interface InputTargetEvent extends EventTarget {
2 | value: string;
3 | }
4 |
5 | interface InputUIEvent extends UIEvent {
6 | target: HTMLElement;
7 | }
8 |
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-terms/app-terms.scss:
--------------------------------------------------------------------------------
1 | app-terms {
2 | main {
3 | background: white;
4 |
5 | ul {
6 | list-style-type: circle;
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/webcomponents/slides/big-img/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # 1.0.0-rc.1 (2019-09-14)
3 |
4 | ### Features
5 |
6 | * initial version. kudos to [Noël Macé](https://github.com/noelmace)
7 |
--------------------------------------------------------------------------------
/docs/src/app/pages/docs/introduction/app-remote-control/app-remote-control.scss:
--------------------------------------------------------------------------------
1 | img {
2 | width: 10rem;
3 | }
4 |
5 | ul li {
6 | list-style-type: initial;
7 | list-style-position: inside;
8 | }
9 |
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-privacy/app-privacy.scss:
--------------------------------------------------------------------------------
1 | app-privacy {
2 | main {
3 | background: white;
4 |
5 | ul {
6 | list-style-type: circle;
7 | }
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/webcomponents/highlight-code/src/components/declarations/deckdeckgo-highlight-code-anchor.tsx:
--------------------------------------------------------------------------------
1 | export interface DeckdeckgoHighlightCodeAnchor {
2 | offsetTop: number;
3 | hasLineZoom: boolean;
4 | }
5 |
--------------------------------------------------------------------------------
/studio/src/app/components/editor/actions/deck/app-action-busy/app-action-busy.scss:
--------------------------------------------------------------------------------
1 | app-action-busy {
2 | ion-button.button-solid {
3 | --padding-start: 16px;
4 | --padding-end: 16px;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/studio/src/assets/icons/ionicons/add.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/studio/src/assets/icons/ionicons/md-add.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/docs/src/assets/img/screenshots/remote-control/deckdeckgo-remote-control-timer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ble/deckdeckgo/master/docs/src/assets/img/screenshots/remote-control/deckdeckgo-remote-control-timer.png
--------------------------------------------------------------------------------
/studio/src/app/popovers/editor/app-deck-style/app-deck-style.scss:
--------------------------------------------------------------------------------
1 | app-deck-style {
2 | @import "../../../../global/theme/editor/editor-info";
3 | @import "../../../../global/theme/editor/editor-popover";
4 | }
5 |
--------------------------------------------------------------------------------
/studio/src/app/utils/editor/image-action.tsx:
--------------------------------------------------------------------------------
1 | import {EditAction} from './edit-action';
2 |
3 | export interface ImageAction {
4 | action: EditAction;
5 | image?: UnsplashPhoto | TenorGif | StorageFile;
6 | }
7 |
--------------------------------------------------------------------------------
/studio/src/assets/icons/ionicons/md-list.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webcomponents/charts/showcase/data-bar-chart-to-compare-with-titles.csv:
--------------------------------------------------------------------------------
1 | ;Salami;Pastrami;Prosciutto
2 | 01.01.2018;5;0;10
3 | 01.03.2018;10;6;12
4 | 01.06.2018;8;14;8
5 | 01.09.2018;14;8;16
6 | 01.12.2018;18;4;5
7 |
--------------------------------------------------------------------------------
/webcomponents/slides/gif/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # 1.0.0-rc.1-1 (2019-09-09)
3 |
4 | ### Fix
5 |
6 | * gif height since slide default height has been modified to percent (core v1.0.0-rc.1-1)
7 |
--------------------------------------------------------------------------------
/docs/src/global/theme/toolbar.scss:
--------------------------------------------------------------------------------
1 | ion-header {
2 | ion-toolbar {
3 | --ion-toolbar-background: transparent;
4 | }
5 |
6 | &[class*="header"]::after {
7 | background-image: none;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/remote/src/global/theme/toolbar.scss:
--------------------------------------------------------------------------------
1 | ion-header {
2 | ion-toolbar {
3 | --ion-toolbar-background: transparent;
4 | }
5 |
6 | &[class*="header"]::after {
7 | background-image: none;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/studio/src/global/theme/select.scss:
--------------------------------------------------------------------------------
1 | ion-item.item-select {
2 | ion-select {
3 | padding: 8px;
4 | background: var(--ion-color-light);
5 | border: 1px solid #dedede;
6 | border-radius: 4px;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/utils/slide/src/interfaces/deckdeckgo-slide-resize.ts:
--------------------------------------------------------------------------------
1 | import {DeckdeckgoSlide} from './deckdeckgo-slide';
2 |
3 | export interface DeckdeckgoSlideResize extends DeckdeckgoSlide {
4 | resizeContent(): Promise;
5 | }
6 |
--------------------------------------------------------------------------------
/infra/firebase-login/shell.nix:
--------------------------------------------------------------------------------
1 | with { pkgs = import ./nix {}; };
2 | pkgs.haskellPackages.developPackage
3 | { root = ./.;
4 | modifier = drv: drv // { buildInputs = drv.buildInputs ++ [ pkgs.cabal-install ]; } ;
5 | }
6 |
--------------------------------------------------------------------------------
/studio/src/app/popovers/editor/slide/app-edit-slide/app-edit-slide.scss:
--------------------------------------------------------------------------------
1 | app-edit-slide {
2 | @import "../../../../../global/theme/editor/editor-info";
3 | @import "../../../../../global/theme/editor/editor-popover";
4 | }
5 |
--------------------------------------------------------------------------------
/studio/src/app/utils/editor/more-action.tsx:
--------------------------------------------------------------------------------
1 | export enum MoreAction {
2 | FULLSCREEN,
3 | JUMP_TO,
4 | REMOTE,
5 | SHARE,
6 | PUBLISH,
7 | STYLE,
8 | EMBED,
9 | COPY,
10 | NOTES,
11 | DELETE
12 | }
13 |
--------------------------------------------------------------------------------
/studio/src/app/models/api/api.slide.tsx:
--------------------------------------------------------------------------------
1 | import {SlideAttributes, SlideTemplate} from '../data/slide';
2 |
3 | export interface ApiSlide {
4 | content?: string;
5 | template: SlideTemplate;
6 | attributes?: SlideAttributes;
7 | }
8 |
--------------------------------------------------------------------------------
/webcomponents/slides/content/src/components/slide/deckdeckgo-slide-content.scss:
--------------------------------------------------------------------------------
1 | @import "./deckdeckgo-slide";
2 |
3 | div.deckgo-slide {
4 | flex-direction: column;
5 | align-items: flex-start;
6 | justify-content: flex-start;
7 | }
8 |
--------------------------------------------------------------------------------
/docs/docs/misc/app-misc-open-source/app-misc-open-source.md:
--------------------------------------------------------------------------------
1 | # Open source
2 |
3 | [DeckDeckGo] is **open source** and its source code could be found on [Github](https://github.com/deckgo/deckdeckgo).
4 |
5 | [DeckDeckGo]: https://deckdeckgo.com
--------------------------------------------------------------------------------
/remote/src/global/theme/list.scss:
--------------------------------------------------------------------------------
1 | ion-list {
2 | ion-list-header {
3 | --color: inherit;
4 | }
5 |
6 | --ion-background-color: transparent;
7 | --ion-item-background: transparent;
8 | --border-color: transparent;
9 | }
10 |
--------------------------------------------------------------------------------
/studio/src/app/utils/editor/edit-action.tsx:
--------------------------------------------------------------------------------
1 | export enum EditAction {
2 | OPEN_PHOTOS,
3 | OPEN_GIFS,
4 | OPEN_CUSTOM,
5 | DELETE_BACKGROUND,
6 | ADD_IMAGE,
7 | OPEN_CUSTOM_LOGO,
8 | DELETE_LOGO,
9 | OPEN_DATA
10 | }
11 |
--------------------------------------------------------------------------------
/docs/src/global/theme/code.scss:
--------------------------------------------------------------------------------
1 | deckgo-highlight-code {
2 | font-size: var(--font-size-normal);
3 | }
4 |
5 | @media screen and (max-width: 720px) {
6 | deckgo-highlight-code {
7 | font-size: var(--font-size-small);
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/infra/script/postgres-password:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # vim: filetype=sh
3 |
4 | set -euo pipefail
5 |
6 | out=$(pass deckdeckgo/postgres | head -n 1 | tr -d '\n')
7 |
8 | cat <
2 |
3 | # 1.0.0-rc.1 (2020-02-22)
4 |
5 | ### Features
6 |
7 | - initial release to expose common utils for the DeckDeckGo remote control (app, emitter) and receiver (web component deployed in the decks)
8 |
--------------------------------------------------------------------------------
/cloud/config/cors-studio-prod.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "origin": ["https://deckdeckgo.com", "https://beta.deckdeckgo.io", "https://deckdeckgo.app"],
4 | "responseHeader": ["Content-Type"],
5 | "method": ["GET"],
6 | "maxAgeSeconds": 3600
7 | }
8 | ]
9 |
--------------------------------------------------------------------------------
/studio/src/app/models/auth/auth.user.tsx:
--------------------------------------------------------------------------------
1 | export interface AuthUser {
2 | uid: string;
3 | token: string;
4 |
5 | anonymous: boolean;
6 |
7 | name?: string;
8 | email?: string;
9 | email_verified?: boolean;
10 | photo_url?: string;
11 | }
12 |
--------------------------------------------------------------------------------
/infra/script/unsplash-client-id:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # vim: filetype=sh
3 |
4 | set -euo pipefail
5 |
6 | out=$(pass deckdeckgo/unsplash-client-id | head -n 1 | tr -d '\n')
7 |
8 | cat <ionicons-v5-f
--------------------------------------------------------------------------------
/studio/src/app/modals/editor/app-custom-images/app-custom-images.scss:
--------------------------------------------------------------------------------
1 | app-custom-images {
2 | @import "../../../../global/theme/editor/editor-modal";
3 |
4 | app-image-columns {
5 | --deckgo-images-min-height: 5rem;
6 | --deckgo-images-padding: 16px;
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/studio/src/app/modals/editor/app-publish/app-publish.scss:
--------------------------------------------------------------------------------
1 | app-publish {
2 | main {
3 | background: white;
4 |
5 | &.published {
6 | height: 100%;
7 | }
8 |
9 | strong {
10 | color: var(--ion-color-tertiary);
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/studio/src/app/modals/editor/app-slide-navigate/app-slide-navigate.scss:
--------------------------------------------------------------------------------
1 | app-slide-navigate {
2 | ion-reorder-group {
3 | ion-item {
4 | --border-color: transparent;
5 | }
6 | }
7 |
8 | p {
9 | font-size: var(--font-size-very-small);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/studio/src/app/popovers/editor/actions/app-more-element-actions/app-more-element-actions.scss:
--------------------------------------------------------------------------------
1 | app-more-element-actions {
2 | a {
3 | color: inherit;
4 | cursor: pointer;
5 |
6 | &:hover {
7 | color: var(--ion-color-tertiary);
8 | }
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/utils/deck/styles/deckdeckgo-deck-rtl.css:
--------------------------------------------------------------------------------
1 | deckgo-deck h1 div[style*="direction"] span,
2 | deckgo-deck h2 div[style*="direction"] span,
3 | deckgo-deck h3 div[style*="direction"] span,
4 | deckgo-deck section div[style*="direction"] span {
5 | font-size: inherit !important;
6 | }
7 |
--------------------------------------------------------------------------------
/webcomponents/slides/split/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # 1.0.0-rc.2 (2019-10-13)
3 |
4 | ### Features
5 |
6 | * add option `vertical` to use this template either vertically or (per default) horizontally split ([#372](https://github.com/deckgo/deckdeckgo/issues/372))
7 |
--------------------------------------------------------------------------------
/cloud/functions/src/model/slide.ts:
--------------------------------------------------------------------------------
1 | import {firestore} from 'firebase-admin';
2 |
3 | export interface Slide {
4 | id: string;
5 | ref: firestore.DocumentReference;
6 | // For simplicity reason cast to any as we don't want to redefine them as in studio
7 | data: any;
8 | }
9 |
--------------------------------------------------------------------------------
/studio/src/app/components/editor/color/app-color-code/app-color-code.scss:
--------------------------------------------------------------------------------
1 | app-color-code {
2 | div.disabled {
3 | cursor: default;
4 | opacity: 0.3;
5 | pointer-events: none;
6 | }
7 |
8 | ion-item.action-button {
9 | padding-bottom: 8px;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/utils/types/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2017",
4 | "module": "esnext",
5 | "declaration": true,
6 | "outDir": "lib",
7 | "strict": true,
8 | "removeComments": true
9 | },
10 | "include": [
11 | "src/**/*"
12 | ]
13 | }
--------------------------------------------------------------------------------
/webpack/src/index.ts:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | DeckDeckGoMarkdownPlugin: require('./markdown/deckdeckgo-markdown-plugin'),
3 | DeckDeckGoInfoPlugin: require('./info/deckdeckgo-info-plugin'),
4 | DeckDeckGoRemoveNotesPlugin: require('./notes/deckdeckgo-remove-notes-plugin')
5 | };
6 |
--------------------------------------------------------------------------------
/docs/src/app/components/app-logo/app-logo.tsx:
--------------------------------------------------------------------------------
1 | import {Component, h} from '@stencil/core';
2 |
3 | @Component({
4 | tag: 'app-logo',
5 | styleUrl: 'app-logo.scss',
6 | shadow: true
7 | })
8 | export class AppLogo {
9 | render() {
10 | return ;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/remote/src/app/components/app-logo/app-logo.tsx:
--------------------------------------------------------------------------------
1 | import {Component, h} from '@stencil/core';
2 |
3 | @Component({
4 | tag: 'app-logo',
5 | styleUrl: 'app-logo.scss',
6 | shadow: true
7 | })
8 | export class AppLogo {
9 | render() {
10 | return ;
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/studio/src/global/theme/editor/editor-deck-transition.scss:
--------------------------------------------------------------------------------
1 | main {
2 | &.ready {
3 | deckgo-deck {
4 | --slide-transition: background 300ms, color 300ms;
5 |
6 | [slot] {
7 | transition: background 300ms, color 300ms;
8 | }
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/webcomponents/core/src/components/reveal/deckdeckgo-reveal/deckdeckgo-reveal.scss:
--------------------------------------------------------------------------------
1 | ::slotted(*) {
2 | visibility: hidden;
3 | opacity: 0;
4 | transform: var(--reveal-transform, translateX(-4px));
5 | transition: all var(--reveal-duration, 200ms) cubic-bezier(0.23, 1, 0.32, 1);
6 | }
7 |
--------------------------------------------------------------------------------
/webpack/src/notes/deckdeckgo-remove-notes-resources.ts:
--------------------------------------------------------------------------------
1 | class DeckdeckGoRemoveNotesResources {
2 |
3 | static get Constants(): any {
4 | return {
5 | SRC: './dist/index.html'
6 | };
7 | }
8 |
9 | }
10 |
11 | module.exports = DeckdeckGoRemoveNotesResources;
12 |
--------------------------------------------------------------------------------
/infra/script/build-unsplash-proxy:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 | # vim: filetype=sh
3 | # TODO: rename to build-handler
4 |
5 | set -euo pipefail
6 |
7 | out=$(nix-build --no-out-link -A function-unsplash)
8 |
9 | cat <;
5 |
6 | pause(): Promise;
7 |
8 | toggle(): Promise;
9 | }
10 |
--------------------------------------------------------------------------------
/studio/src/global/theme/content.scss:
--------------------------------------------------------------------------------
1 | ion-nav,
2 | ion-modal.fullscreen {
3 | ion-content {
4 | --background: var(--ion-color-light);
5 | background: var(--ion-color-light);
6 |
7 | main {
8 | max-width: 1400px;
9 | margin-left: auto;
10 | margin-right: auto;
11 | }
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/docs/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/studio/src/app/definitions/resize-observer.d.ts:
--------------------------------------------------------------------------------
1 | interface ResizeObserverConstructor {
2 | new (callback: any);
3 |
4 | observe: (target: HTMLElement) => void;
5 |
6 | unobserve: (target: HTMLElement) => void;
7 |
8 | disconnect: () => void;
9 | }
10 |
11 | declare var ResizeObserver: ResizeObserverConstructor;
12 |
--------------------------------------------------------------------------------
/utils/utils/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2017",
4 | "module": "esnext",
5 | "declaration": true,
6 | "outDir": "lib",
7 | "strict": true,
8 | "removeComments": true
9 | },
10 | "include": [
11 | "src/**/*"
12 | ],
13 | "exclude": ["node_modules"]
14 | }
15 |
--------------------------------------------------------------------------------
/utils/slide/src/interfaces/deckdeckgo-slide.ts:
--------------------------------------------------------------------------------
1 | export interface DeckdeckgoSlide {
2 | beforeSwipe(enter: boolean, _reveal: boolean): Promise;
3 |
4 | afterSwipe(): Promise;
5 |
6 | lazyLoadContent(): Promise;
7 |
8 | revealContent(): Promise;
9 |
10 | hideContent(): Promise;
11 | }
12 |
--------------------------------------------------------------------------------
/docs/src/assets/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #ffffff
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/square-full-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/title/src/components/slide/deckdeckgo-slide-title.scss:
--------------------------------------------------------------------------------
1 | @import "./deckdeckgo-slide";
2 |
3 | div.deckgo-slide {
4 | flex-direction: column;
5 | align-items: center;
6 | justify-content: center;
7 | }
8 |
9 | ::slotted([slot="title"]),
10 | ::slotted([slot="content"]) {
11 | text-align: center;
12 | }
13 |
--------------------------------------------------------------------------------
/docs/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/infra/versions.tf:
--------------------------------------------------------------------------------
1 |
2 | terraform {
3 | required_version = ">= 0.12"
4 |
5 | backend "s3" {
6 | region = "us-east-1"
7 | bucket = "deckgo-beta-terraform-state"
8 | key = "terraform.tfstate"
9 | dynamodb_table = "deckgo-beta-terraform-state-lock"
10 | encrypt = true
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/remote/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/remote/src/assets/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #ffffff
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/studio/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/studio/src/assets/favicon/browserconfig.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | #ffffff
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/studio/src/assets/img/landing/wave-audience.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webcomponents/color/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/core/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/inline-editor/src/utils/enums.ts:
--------------------------------------------------------------------------------
1 | export enum ToolbarActions {
2 | SELECTION,
3 | LINK,
4 | IMAGE,
5 | COLOR
6 | }
7 |
8 | export enum ImageSize {
9 | SMALL = '25%',
10 | MEDIUM = '50%',
11 | LARGE = '75%',
12 | ORIGINAL = '100%'
13 | }
14 |
15 | export enum ImageAlign {
16 | STANDARD,
17 | START
18 | }
19 |
--------------------------------------------------------------------------------
/studio/src/assets/img/landing/wave-introducing.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/utils/deck/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/utils/remote/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/utils/slide/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/utils/types/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/utils/utils/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/charts/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/lazy-img/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/qrcode/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/remote/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/gif/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/social/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/youtube/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webpack/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2015",
4 | "module": "es2015",
5 | "declaration": true,
6 | "outDir": "lib",
7 | "strict": true,
8 | "removeComments": true,
9 | "strictNullChecks": false,
10 | "noImplicitAny": false
11 | },
12 | "include": [
13 | "src/**/*"
14 | ]
15 | }
--------------------------------------------------------------------------------
/cloud/functions/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "module": "commonjs",
4 | "noImplicitReturns": true,
5 | "noUnusedLocals": true,
6 | "outDir": "lib",
7 | "sourceMap": true,
8 | "strict": true,
9 | "target": "es2017"
10 | },
11 | "compileOnSave": true,
12 | "include": [
13 | "src"
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/docs/docs/misc/app-misc-logo/app-misc-logo.md:
--------------------------------------------------------------------------------
1 | # Logo
2 |
3 | The [DeckDeckGo] logo was designed and offered by [Anita](mailto:hello@skinque.com) from [Skinque.com](http://skinque.com), a great online marketplace for tattoos 🤘
4 |
5 | Reach her out if you are looking for a cool custom tattoo or a nice logo 😃
6 |
7 | [DeckDeckGo]: https://deckdeckgo.com
8 |
--------------------------------------------------------------------------------
/studio/src/app/components/editor/actions/element/app-actions-element/app-actions-element.scss:
--------------------------------------------------------------------------------
1 | app-actions-element {
2 | ion-tab-button {
3 | width: 100%;
4 | opacity: 1;
5 |
6 | transition: opacity 0.25s ease-out;
7 |
8 | &.hidden {
9 | width: 0;
10 | max-width: 0;
11 | opacity: 0;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/webcomponents/core/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/highlight-code/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/inline-editor/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/author/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/big-img/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/chart/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/code/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/content/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/poll/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/qrcode/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/split/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/title/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/video/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/video/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # 1.0.0-rc.1-1 (2019-10-07)
3 |
4 | ### Features
5 |
6 | * implement new interface `DeckdeckgoSlideResize`
7 |
8 |
9 | # 1.0.0-rc.1 (2019-09-14)
10 |
11 | ### Features
12 |
13 | * initial version. kudos to [Noël Macé](https://github.com/noelmace)
14 |
--------------------------------------------------------------------------------
/webcomponents/slides/youtube/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/studio/src/app/components/core/app-avatar/app-avatar.scss:
--------------------------------------------------------------------------------
1 | ion-avatar {
2 | width: var(--deckgo-avatar-size, 2rem);
3 | height: var(--deckgo-avatar-size, 2rem);
4 |
5 | display: flex;
6 | justify-items: center;
7 | align-items: center;
8 |
9 | ion-icon {
10 | font-size: 2rem;
11 | color: var(--deckgo-avatar-color);
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/webcomponents/charts/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/color/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/drag-resize-rotate/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/lazy-img/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/qrcode/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/remote/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/remote/src/components/deckdeckgo-remote/deckdeckgo-remote.scss:
--------------------------------------------------------------------------------
1 | canvas {
2 | position: absolute;
3 | top: 0;
4 |
5 | transition-duration: var(--left-offset-transition, 0ms);
6 | transform: translate3d(var(--left-offset, 0px), 0px, 0px);
7 |
8 | user-select: none;
9 | touch-action: none;
10 | pointer-events: none;
11 | }
12 |
--------------------------------------------------------------------------------
/webcomponents/slides/aspect-ratio/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/countdown/.editorconfig:
--------------------------------------------------------------------------------
1 | # http://editorconfig.org
2 |
3 | root = true
4 |
5 | [*]
6 | charset = utf-8
7 | indent_style = space
8 | indent_size = 2
9 | end_of_line = lf
10 | insert_final_newline = true
11 | trim_trailing_whitespace = true
12 |
13 | [*.md]
14 | insert_final_newline = false
15 | trim_trailing_whitespace = false
16 |
--------------------------------------------------------------------------------
/webcomponents/social/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/youtube/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/utils/deck/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2017",
4 | "module": "esnext",
5 | "declaration": true,
6 | "outDir": "lib",
7 | "strict": true,
8 | "removeComments": true,
9 | "moduleResolution": "node"
10 | },
11 | "include": [
12 | "src/**/*"
13 | ],
14 | "exclude": ["node_modules"]
15 | }
16 |
--------------------------------------------------------------------------------
/utils/slide/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ES2017",
4 | "module": "esnext",
5 | "declaration": true,
6 | "outDir": "lib",
7 | "strict": true,
8 | "removeComments": true,
9 | "moduleResolution": "node"
10 | },
11 | "include": [
12 | "src/**/*"
13 | ],
14 | "exclude": ["node_modules"]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/highlight-code/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/inline-editor/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/author/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/big-img/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/chart/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/code/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/content/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/gif/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/poll/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/qrcode/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/split/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/title/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/video/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/youtube/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/cloud/functions/src/utils/resources.ts:
--------------------------------------------------------------------------------
1 | export class Resources {
2 |
3 | static get Constants(): any {
4 | return {
5 | PRESENTATION: {
6 | URL: 'https://beta.deckdeckgo.io',
7 | FOLDER: 'presentations',
8 | IMAGE: 'deckdeckgo.png'
9 | }
10 | };
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/circle-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/utils/slide/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './interfaces/deckdeckgo-slide';
2 | export * from './interfaces/deckdeckgo-slide-resize';
3 | export * from './interfaces/deckdeckgo-slide-play';
4 | export * from './interfaces/deckdeckgo-component';
5 |
6 | export * from './utils/component-utils';
7 | export * from './utils/images-utils';
8 | export * from './utils/slide-utils';
9 |
--------------------------------------------------------------------------------
/webcomponents/drag-resize-rotate/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/aspect-ratio/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/webcomponents/slides/countdown/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 160,
3 | "singleQuote": true,
4 | "arrowParens": "always",
5 | "bracketSpacing": false,
6 | "jsxBracketSameLine": true,
7 | "overrides": [
8 | {
9 | "files": ["*.scss", "*.css"],
10 | "options": {
11 | "singleQuote": false
12 | }
13 | }
14 | ]
15 | }
16 |
--------------------------------------------------------------------------------
/backend/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # 1.0.0-rc.1-1 (2019-12-01)
3 |
4 | ### Features
5 |
6 | * broadcast poll after update
7 |
8 |
9 | # 1.0.0-rc.1 (2019-11-30)
10 |
11 | ### Features
12 |
13 | * interact with your audience with the new live `poll` slide template ([#471](https://github.com/deckgo/deckdeckgo/issues/471))
14 |
--------------------------------------------------------------------------------
/studio/src/app/components/core/app-menu/app-menu.scss:
--------------------------------------------------------------------------------
1 | ion-menu {
2 | ion-content {
3 | ion-list {
4 | ion-item {
5 | --detail-icon-opacity: 0;
6 |
7 | --deckgo-user-info-padding: 0;
8 | --deckgo-user-info-margin: 0;
9 |
10 | &.user {
11 | min-height: 32px;
12 | }
13 | }
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/studio/src/global/theme/toolbar.scss:
--------------------------------------------------------------------------------
1 | ion-footer {
2 | ion-toolbar {
3 | --ion-toolbar-border-color: transparent;
4 | --ion-toolbar-background: var(--ion-color-light);
5 | }
6 |
7 | &[class*="footer"]::before {
8 | background-image: none;
9 | background: var(--ion-color-light);
10 | border: 1px solid var(--ion-color-light);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/utils/types/src/poll.ts:
--------------------------------------------------------------------------------
1 | export interface DeckdeckgoPollAnswer {
2 | key: number | string;
3 | label: string;
4 | }
5 |
6 | export interface DeckdeckgoPollQuestion {
7 | label: string;
8 | values: DeckdeckgoPollAnswer[];
9 | answered: boolean;
10 | }
11 |
12 | export interface DeckdeckgoPoll {
13 | key: string;
14 | poll: DeckdeckgoPollQuestion;
15 | }
16 |
--------------------------------------------------------------------------------
/studio/src/app/modals/editor/app-youtube/app-youtube.scss:
--------------------------------------------------------------------------------
1 | app-youtube {
2 | ion-content {
3 | --background: var(--ion-color-light);
4 |
5 | ion-item.item-input ion-input[class*="sc-ion-input"] {
6 | --background: white;
7 | background: white;
8 | }
9 |
10 | ion-list {
11 | --ion-item-background: transparent;
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/studio/src/app/models/api/api.deck.tsx:
--------------------------------------------------------------------------------
1 | import {DeckAttributes} from '../data/deck';
2 | import {ApiSlide} from './api.slide';
3 |
4 | export interface ApiDeck {
5 | id?: string;
6 | slides: ApiSlide[];
7 | name: string;
8 | description: string;
9 | owner_id: string;
10 | attributes?: DeckAttributes;
11 | background?: string;
12 | head_extra?: string;
13 | }
14 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/bookmark-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/lazy-img/.gitignore:
--------------------------------------------------------------------------------
1 | dist/
2 | www/
3 |
4 | *~
5 | *.sw[mnpcod]
6 | *.log
7 | *.lock
8 | *.tmp
9 | *.tmp.*
10 | log.txt
11 | *.sublime-project
12 | *.sublime-workspace
13 |
14 | .stencil/
15 | .idea/
16 | .vscode/
17 | .sass-cache/
18 | .versions/
19 | node_modules/
20 | $RECYCLE.BIN/
21 |
22 | .DS_Store
23 | Thumbs.db
24 | UserInterfaceState.xcuserstate
25 | .env
26 |
--------------------------------------------------------------------------------
/studio/src/app/utils/editor/target-element.tsx:
--------------------------------------------------------------------------------
1 | export enum TargetElement {
2 | QR_CODE = 'qr_code',
3 | CHART = 'chart',
4 | SLIDE = 'slide',
5 | SECTION = 'section',
6 | CODE = 'code',
7 | COLOR = 'color',
8 | BACKGROUND = 'background',
9 | TRANSITION = 'transition',
10 | SIDES = 'sides',
11 | FONTS = 'fonts',
12 | SHAPES = 'shapes',
13 | IMAGES = 'shape'
14 | }
15 |
--------------------------------------------------------------------------------
/cli/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "tslint-ionic-rules",
3 | "rules": {
4 | "no-conditional-assignment": false,
5 | "no-non-null-assertion": false,
6 | "no-unnecessary-type-assertion": false,
7 | "prefer-for-of": false,
8 | "no-import-side-effect": false,
9 | "ordered-imports": [true, {
10 | "named-imports-order": "lowercase-last"
11 | }]
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/studio/src/app/pages/core/about/app-developer/app-developer.scss:
--------------------------------------------------------------------------------
1 | app-developer {
2 | main {
3 | background: white;
4 |
5 | deckgo-highlight-code {
6 | --deckgo-highlight-code-font-size: var(--font-size-h1);
7 | --deckgo-highlight-code-text-align: center;
8 | }
9 |
10 | a {
11 | border-bottom-color: var(--ion-color-primary);
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/webcomponents/color/.gitignore:
--------------------------------------------------------------------------------
1 | dist/
2 | www/
3 | loader/
4 |
5 | *~
6 | *.sw[mnpcod]
7 | *.log
8 | *.lock
9 | *.tmp
10 | *.tmp.*
11 | log.txt
12 | *.sublime-project
13 | *.sublime-workspace
14 |
15 | .stencil/
16 | .idea/
17 | .vscode/
18 | .sass-cache/
19 | .versions/
20 | node_modules/
21 | $RECYCLE.BIN/
22 |
23 | .DS_Store
24 | Thumbs.db
25 | UserInterfaceState.xcuserstate
26 | .env
27 |
--------------------------------------------------------------------------------
/webcomponents/social/.gitignore:
--------------------------------------------------------------------------------
1 | dist/
2 | www/
3 | loader/
4 |
5 | *~
6 | *.sw[mnpcod]
7 | *.log
8 | *.lock
9 | *.tmp
10 | *.tmp.*
11 | log.txt
12 | *.sublime-project
13 | *.sublime-workspace
14 |
15 | .stencil/
16 | .idea/
17 | .vscode/
18 | .sass-cache/
19 | .versions/
20 | node_modules/
21 | $RECYCLE.BIN/
22 |
23 | .DS_Store
24 | Thumbs.db
25 | UserInterfaceState.xcuserstate
26 | .env
27 |
--------------------------------------------------------------------------------
/webcomponents/youtube/.gitignore:
--------------------------------------------------------------------------------
1 | dist/
2 | www/
3 | loader/
4 |
5 | *~
6 | *.sw[mnpcod]
7 | *.log
8 | *.lock
9 | *.tmp
10 | *.tmp.*
11 | log.txt
12 | *.sublime-project
13 | *.sublime-workspace
14 |
15 | .stencil/
16 | .idea/
17 | .vscode/
18 | .sass-cache/
19 | .versions/
20 | node_modules/
21 | $RECYCLE.BIN/
22 |
23 | .DS_Store
24 | Thumbs.db
25 | UserInterfaceState.xcuserstate
26 | .env
27 |
--------------------------------------------------------------------------------
/studio/src/app/components/core/app-logo/app-logo.tsx:
--------------------------------------------------------------------------------
1 | import {Component, h} from '@stencil/core';
2 |
3 | @Component({
4 | tag: 'app-logo',
5 | styleUrl: 'app-logo.scss',
6 | shadow: true
7 | })
8 | export class AppLogo {
9 | render() {
10 | return (
11 |
12 |
13 |
14 | );
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/studio/src/app/popovers/editor/app-color/app-color.scss:
--------------------------------------------------------------------------------
1 | app-color {
2 | @import "../../../../global/theme/editor/editor-info";
3 | @import "../../../../global/theme/editor/editor-popover";
4 |
5 | ion-icon.more {
6 | font-size: 1.4rem;
7 | padding-top: 2px;
8 | color: var(--ion-color-medium);
9 | }
10 |
11 | ion-item.item-opacity {
12 | --padding-start: 8px;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/studio/src/app/utils/editor/slot-type.tsx:
--------------------------------------------------------------------------------
1 | export enum SlotType {
2 | SECTION = 'section',
3 | H1 = 'h1',
4 | H2 = 'h2',
5 | H3 = 'h3',
6 | OL = 'ol',
7 | UL = 'ul',
8 | IMG = 'deckgo-lazy-img',
9 | CODE = 'deckgo-highlight-code',
10 | SOCIAL = 'deckgo-social',
11 | REVEAL = 'deckgo-reveal',
12 | REVEAL_LIST = 'deckgo-reveal-list',
13 | DRAG_RESIZE_ROTATE = 'deckgo-drr'
14 | }
15 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/play-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/square-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/minus-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/drag-resize-rotate/.gitignore:
--------------------------------------------------------------------------------
1 | dist/
2 | www/
3 | loader/
4 |
5 | *~
6 | *.sw[mnpcod]
7 | *.log
8 | *.lock
9 | *.tmp
10 | *.tmp.*
11 | log.txt
12 | *.sublime-project
13 | *.sublime-workspace
14 |
15 | .stencil/
16 | .idea/
17 | .vscode/
18 | .sass-cache/
19 | .versions/
20 | node_modules/
21 | $RECYCLE.BIN/
22 |
23 | .DS_Store
24 | Thumbs.db
25 | UserInterfaceState.xcuserstate
26 | .env
27 |
--------------------------------------------------------------------------------
/docs/src/app/components/app-menu-footer/app-menu-footer.tsx:
--------------------------------------------------------------------------------
1 | import {Component, h} from '@stencil/core';
2 |
3 | @Component({
4 | tag: 'app-menu-footer',
5 | styleUrl: 'app-menu-footer.scss',
6 | shadow: true
7 | })
8 | export class AppMenuFooter {
9 | render() {
10 | return (
11 |
14 | );
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/studio/src/app/modals/core/app-deck-delete/app-deck-delete.scss:
--------------------------------------------------------------------------------
1 | app-deck-delete {
2 | strong {
3 | color: var(--ion-color-danger);
4 | }
5 |
6 | p {
7 | a {
8 | color: black;
9 | cursor: pointer;
10 |
11 | &:hover {
12 | border-bottom-color: black;
13 | }
14 | }
15 |
16 | &.note {
17 | font-size: var(--font-size-small);
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/studio/src/app/modals/core/app-user-delete/app-user-delete.scss:
--------------------------------------------------------------------------------
1 | app-user-delete {
2 | strong {
3 | color: var(--ion-color-danger);
4 | }
5 |
6 | p {
7 | a {
8 | color: black;
9 | cursor: pointer;
10 |
11 | &:hover {
12 | border-bottom-color: black;
13 | }
14 | }
15 |
16 | &.note {
17 | font-size: var(--font-size-small);
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/studio/src/global/theme/editor/editor-info.scss:
--------------------------------------------------------------------------------
1 | ion-item-divider {
2 | button.info {
3 | background: var(--ion-color-light);
4 | border: 1px solid #dedede;
5 | border-radius: 50%;
6 | height: 1.5rem;
7 | width: 1.5rem;
8 | margin: 16px 16px 0;
9 | padding: 0;
10 | outline: 0;
11 |
12 | ion-icon {
13 | color: var(--ion-color-light-contrast);
14 | }
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/studio/src/app/components/editor/app-image/app-image.scss:
--------------------------------------------------------------------------------
1 | app-image {
2 | ion-item {
3 | &.history-empty {
4 | --color: var(--ion-color-medium);
5 | }
6 |
7 | &.action-button-margin {
8 | margin-top: 8px;
9 | }
10 | }
11 |
12 | app-image-columns {
13 | --deckgo-images-padding: 4px;
14 | --deckgo-images-font-size: calc(var(--font-size-very-small) - 4px);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/studio/src/app/pages/core/app-discover/app-discover.tsx:
--------------------------------------------------------------------------------
1 | import {Component, h} from '@stencil/core';
2 |
3 | @Component({
4 | tag: 'app-discover'
5 | })
6 | export class AppDiscover {
7 | render() {
8 | return [
9 | ,
10 |
11 |
12 |
13 | ];
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/studio/src/assets/icons/ionicons/close.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webcomponents/inline-editor/src/components/inline-editor/deckdeckgo-inline-editor.interface.ts:
--------------------------------------------------------------------------------
1 | export interface AnchorLink {
2 | range: Range;
3 | text: string;
4 | element: Element;
5 | }
6 |
7 | export interface InputTargetEvent extends EventTarget {
8 | value: string;
9 | }
10 |
11 | export interface InlineAction {
12 | action: string;
13 | selection: Selection;
14 | anchorLink: AnchorLink;
15 | }
16 |
--------------------------------------------------------------------------------
/cloud/config/cors-studio-beta.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "origin": ["http://localhost:3333", "http://localhost:3334", "https://deckdeckgo.app", "https://deckdeckgo-studio-beta.web.app", "https://deckdeckgo-studio-beta.firebaseapp.com", "https://deckdeckgo-app-beta.web.app", "https://deckdeckgo-app-beta.firebaseapp.com"],
4 | "responseHeader": ["Content-Type"],
5 | "method": ["GET"],
6 | "maxAgeSeconds": 3600
7 | }
8 | ]
9 |
--------------------------------------------------------------------------------
/remote/src/app/pages/app-timer/app-timer.scss:
--------------------------------------------------------------------------------
1 | app-timer {
2 | @import "../../../global/theme/button";
3 |
4 | div.content {
5 | width: 100%;
6 | height: 100%;
7 | justify-content: center;
8 | align-items: center;
9 | display: flex;
10 | }
11 |
12 | ion-datetime {
13 | display: none;
14 | }
15 |
16 | a.link-to-timer {
17 | color: inherit;
18 | cursor: pointer;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/folder-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/app/components/core/app-logo/app-logo.scss:
--------------------------------------------------------------------------------
1 | div {
2 | color: transparent;
3 |
4 | margin-right: var(--deckgo-logo-margin-end);
5 |
6 | border-radius: 50%;
7 | border: 1px solid white;
8 |
9 | display: flex;
10 | justify-content: center;
11 | align-items: center;
12 |
13 | background: var(--ion-color-primary);
14 |
15 | ion-icon {
16 | font-size: var(--deckgo-logo-size, 2rem);
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/studio/src/app/models/api/api.user.tsx:
--------------------------------------------------------------------------------
1 | // The user information we use to authenticate the user with our backend
2 | export interface ApiUserInfo {
3 | anonymous: boolean;
4 | firebase_uid: string;
5 | email: string;
6 | }
7 |
8 | // The representation of the user saved in our database
9 | export interface ApiUser {
10 | id: string;
11 | anonymous: boolean;
12 | firebase_uid: string;
13 | username?: string;
14 | }
15 |
--------------------------------------------------------------------------------
/cli/README.md:
--------------------------------------------------------------------------------
1 | # DeckDeckGo - CLI
2 |
3 | This project is the CLI of [DeckDeckGo].
4 |
5 | This CLI reuse many features of the [Stencil CLI](https://github.com/ionic-team/create-stencil).
6 |
7 | ## Table of contents
8 |
9 | - [License](#license)
10 |
11 | ## License
12 |
13 | MIT © [David Dal Busco](mailto:david.dalbusco@outlook.com) and [Nicolas Mattia](mailto:nicolas@nmattia.com)
14 |
15 | [DeckDeckGo]: https://deckdeckgo.com
16 |
--------------------------------------------------------------------------------
/webcomponents/core/src/components/reveal/deckdeckgo-reveal-utils.tsx:
--------------------------------------------------------------------------------
1 | export class DeckdeckgoRevealUtils {
2 | static findChildren(el: HTMLElement): Promise {
3 | return new Promise((resolve) => {
4 | const elements: Node[] = Array.from(el.childNodes).filter((node: Node) => {
5 | return node && node.nodeType !== node.TEXT_NODE;
6 | });
7 |
8 | resolve(elements);
9 | });
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/infra/token:
--------------------------------------------------------------------------------
1 | eyJhbGciOiJSUzI1NiIsImtpZCI6ImtleTEifQ.eyJleHAiOjE5MDMxMTk2MzAsInN1YiI6InRoZS11aWQiLCJuYW1lIjoiSm9obiBEb2UiLCJhZG1pbiI6dHJ1ZSwiaXNzIjoiaHR0cHM6Ly9zZWN1cmV0b2tlbi5nb29nbGUuY29tL215LXByb2plY3QtaWQiLCJpYXQiOjE1MTYyMzkwMjIsImF1ZCI6Im15LXByb2plY3QtaWQiLCJhdXRoX3RpbWUiOjE1NTM4MDQ1NzN9.IwJ_qdtKwnxukFX8ylNZyUyAaN_ODzUf841LLsmTd22qM6kCSRHDY5JJdIN3ZDajH-Rk8O2kCzmRZ2HwfhBtpSyn7E8dKt0Ajw8VtW8d_hmj5LWv0doUiiEhtRtADA9AFJYmv_jFmNoL6cX6HqSQr2ZD53GC0WSA46A0lD3K4KE
--------------------------------------------------------------------------------
/infra/unsplash-proxy/package.yaml:
--------------------------------------------------------------------------------
1 | name: unsplash-proxy
2 | license: AGPL-3
3 |
4 | executable:
5 | main: Main.hs
6 |
7 | dependencies:
8 | - aeson
9 | - base
10 | - bytestring
11 | - http-client
12 | - http-client-tls
13 | - http-conduit
14 | - http-types
15 | - servant
16 | - servant-client
17 | - servant-server
18 | - text
19 | - wai
20 | - wai-cors
21 | - wai-lambda
22 | - warp
23 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/circle-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/infra/firebase-login/script/upload:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env nix-shell
2 | #!nix-shell -I nixpkgs=./nix
3 | #!nix-shell -i bash -p cabal-install -p nix -p curl --pure
4 | # vim: filetype=sh
5 |
6 | set -euo pipefail
7 |
8 | sdistVersion=$(cat $(nix-build -A firebase-login-version-file))
9 | sdistTarball=$(nix-build -A firebase-login-sdist)/firebase-login-$sdistVersion.tar.gz
10 |
11 | echo "Tarball: $sdistTarball"
12 |
13 | cabal upload "$@" $sdistTarball
14 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/bookmark-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/src/app/components/app-menu-footer/app-menu-footer.scss:
--------------------------------------------------------------------------------
1 | footer {
2 | --deckgo-logo-vertical-align: bottom;
3 | --deckgo-logo-margin-end: 2px;
4 | --deckgo-logo-size: 12px;
5 |
6 | padding: 0 15px;
7 |
8 | a {
9 | text-decoration: none;
10 | }
11 |
12 | a,
13 | p {
14 | margin-top: 0;
15 | margin-bottom: 0;
16 | color: var(--deckgo-menu-footer-color, inherit);
17 | font-size: var(--font-size-very-small);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/map-marker-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/utils/types/src/chart.ts:
--------------------------------------------------------------------------------
1 | // A bar
2 | export interface DeckdeckgoBarChartDataValue {
3 | // The key of a bar, use for the style
4 | key: number | string;
5 | // A title for the bar
6 | label: string;
7 | // Its value
8 | value: number;
9 | }
10 |
11 | // A chart
12 | export interface DeckdeckgoBarChartData {
13 | // The chart label
14 | label: string | Date | number;
15 | // 1 or multiple bars
16 | values: DeckdeckgoBarChartDataValue[];
17 | }
18 |
--------------------------------------------------------------------------------
/infra/bootstrap/main.tf:
--------------------------------------------------------------------------------
1 | terraform {
2 | required_version = "~> 0.12"
3 | }
4 |
5 | provider "aws" {
6 | version = ">= 2.6.0"
7 | region = "us-east-1"
8 | }
9 |
10 | module "terraform_state_backend" {
11 | source = "git::https://github.com/cloudposse/terraform-aws-tfstate-backend.git?ref=tags/0.9.0"
12 | stage = "beta"
13 | namespace = "deckgo"
14 | name = "terraform"
15 | attributes = ["state"]
16 | region = "us-east-1"
17 | }
18 |
--------------------------------------------------------------------------------
/studio/src/app/components/feed/app-popular/app-popular.scss:
--------------------------------------------------------------------------------
1 | app-popular {
2 | ion-card {
3 | --background: white;
4 | color: black;
5 | padding: 16px;
6 |
7 | width: calc(100% - 16px);
8 | max-width: 380px;
9 | }
10 |
11 | ion-card.demo {
12 | padding: 16px;
13 | --background: white;
14 | min-height: 340px;
15 | }
16 | }
17 |
18 | body.dark {
19 | app-popular {
20 | h1 {
21 | color: black;
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/studio/src/assets/icons/ionicons/clipboard.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/mobile-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/tablet-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/global/theme/searchbar.scss:
--------------------------------------------------------------------------------
1 | ion-searchbar[class*="sc-ion-searchbar"] {
2 | > div[class*="sc-ion-searchbar-md"] {
3 | padding-left: 8px;
4 | padding-right: 8px;
5 | }
6 |
7 | input.searchbar-input[class*="sc-ion-searchbar"] {
8 | box-shadow: none;
9 |
10 | -webkit-padding-start: 48px;
11 | padding-inline-start: 48px;
12 | }
13 | }
14 |
15 | ion-footer ion-searchbar[class*="sc-ion-searchbar-ios"] {
16 | margin-top: 8px;
17 | }
18 |
--------------------------------------------------------------------------------
/webcomponents/youtube/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # 1.0.0-rc.1-2 (2020-01-09)
3 |
4 | ### Features
5 |
6 | * remove `console.log` 🙈
7 |
8 |
9 | # 1.0.0-rc.1-1 (2020-01-09)
10 |
11 | ### Features
12 |
13 | * if Youtube video is provided as embed link, add enablejsapi=1 to be able to play and pause the video
14 |
15 |
16 | # 1.0.0-rc.1 (2020-01-08)
17 |
18 | ### Features
19 |
20 | * initial version
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/file-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/minus-circle-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/src/app/components/app-logo/app-logo.scss:
--------------------------------------------------------------------------------
1 | div {
2 | color: transparent;
3 |
4 | vertical-align: var(--deckgo-logo-vertical-align);
5 | margin-right: var(--deckgo-logo-margin-end);
6 |
7 | background-color: transparent;
8 | background-image: var(--deckgo-logo-url, url("/assets/img/deckdeckgo-logo.svg"));
9 | background-repeat: no-repeat;
10 |
11 | width: var(--deckgo-logo-size);
12 | height: var(--deckgo-logo-size);
13 |
14 | display: inline-block;
15 | }
16 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/square-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/angle-left-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/utils/deck/rollup.config.js:
--------------------------------------------------------------------------------
1 | import typescript from 'rollup-plugin-typescript';
2 | import commonjs from 'rollup-plugin-commonjs';
3 | import resolve from 'rollup-plugin-node-resolve';
4 |
5 | import pkg from './package.json';
6 |
7 | export default {
8 | input: './src/index.ts',
9 | plugins: [
10 | typescript(),
11 | resolve(),
12 | commonjs()
13 | ],
14 | output: {
15 | format: 'cjs',
16 | file: pkg.main
17 | }
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/utils/slide/rollup.config.js:
--------------------------------------------------------------------------------
1 | import typescript from 'rollup-plugin-typescript';
2 | import commonjs from 'rollup-plugin-commonjs';
3 | import resolve from 'rollup-plugin-node-resolve';
4 |
5 | import pkg from './package.json';
6 |
7 | export default {
8 | input: './src/index.ts',
9 | plugins: [
10 | typescript(),
11 | resolve(),
12 | commonjs()
13 | ],
14 | output: {
15 | format: 'cjs',
16 | file: pkg.main
17 | }
18 | }
19 |
20 |
--------------------------------------------------------------------------------
/webpack/src/info/deckdeckgo-info-plugin.ts:
--------------------------------------------------------------------------------
1 | const {magenta} = require('colorette');
2 |
3 | class DeckDeckGoInfoPlugin {
4 | constructor() {
5 | }
6 |
7 | apply(compiler) {
8 | compiler.hooks.beforeRun.tap('DeckDeckGoInfoPlugin', () => {
9 | console.log('\nDon\'t forget to edit your ' + magenta('meta information and favicon') + ' before publishing your talk online 🚀\n');
10 | });
11 | }
12 | }
13 |
14 | module.exports = DeckDeckGoInfoPlugin;
15 |
--------------------------------------------------------------------------------
/remote/src/app/components/app-draw/app-draw.scss:
--------------------------------------------------------------------------------
1 | app-draw {
2 | canvas {
3 | position: absolute;
4 |
5 | transition-duration: var(--left-offset-transition, 0ms);
6 | transform: translate3d(var(--left-offset, 0px), 0px, 0px);
7 |
8 | pointer-events: none;
9 | }
10 |
11 | ion-fab {
12 | opacity: 1;
13 |
14 | transition: opacity 0.25s ease-in-out;
15 |
16 | &.hidden {
17 | opacity: 0;
18 |
19 | pointer-events: none;
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/studio/src/assets/icons/ionicons/phone-portrait.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/angle-right-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/heart-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/docs/edit/app-edit-rtl/app-edit-rtl.md:
--------------------------------------------------------------------------------
1 | # RTL Support
2 |
3 | [DeckDeckGo] offers full LTR and RTL support. The deck inherits its parent text direction.
4 |
5 | Commonly, if you wish to use RTL for all of your pages in the presentation, you could set the attribute `dir` of the root `html` tag to `rtl`.
6 |
7 | ```
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | ```
16 |
17 | [DeckDeckGo]: https://deckdeckgo.com
18 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/lock-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/chart/src/components/slide/deckdeckgo-slide-chart.scss:
--------------------------------------------------------------------------------
1 | @import "./deckdeckgo-slide";
2 |
3 | div.deckgo-slide {
4 | flex-direction: column;
5 | align-items: flex-start;
6 | justify-content: flex-start;
7 | }
8 |
9 | div.deckgo-chart-container {
10 | height: 100%;
11 | width: 100%;
12 |
13 | display: flex;
14 | align-items: flex-start;
15 | justify-content: center;
16 |
17 | align-self: center;
18 |
19 | overflow: var(--slide-chart-overflow, hidden);
20 | }
21 |
--------------------------------------------------------------------------------
/webcomponents/social/src/components/deckdeckgo-social.scss:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | justify-content: flex-start;
4 | align-items: center;
5 | }
6 |
7 | a {
8 | color: inherit;
9 | text-decoration: inherit;
10 |
11 | display: flex;
12 | align-items: center;
13 |
14 | max-width: 100%;
15 |
16 | span {
17 | text-overflow: ellipsis;
18 | white-space: nowrap;
19 | overflow: hidden;
20 | }
21 | }
22 |
23 | ::slotted([slot="icon"]) {
24 | margin-right: 8px;
25 | }
26 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/docs.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Documentation
3 | about: Suggest an improvement to our documentation at DeckDeckGo
4 | labels: docs
5 | ---
6 |
7 | ### Documentation Feedback
8 |
9 |
11 |
12 | Feel free to provide any suggestions of content or examples you’d like us to include.
13 |
14 | **Affected documentation page:**
15 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/clock-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/file-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/minus-square-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/folder-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/remote/src/app/components/app-logo/app-logo.scss:
--------------------------------------------------------------------------------
1 | :host {
2 | display: flex;
3 | }
4 |
5 | div {
6 | color: transparent;
7 |
8 | vertical-align: var(--deckgo-logo-vertical-align);
9 | margin: var(--deckgo-logo-margin);
10 |
11 | background-color: transparent;
12 | background-image: var(--deckgo-logo-url, url("/assets/img/deckdeckgo-logo.svg"));
13 | background-repeat: no-repeat;
14 |
15 | width: var(--deckgo-logo-size);
16 | height: var(--deckgo-logo-size);
17 |
18 | display: inline-block;
19 | }
20 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/desktop-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/plus-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/remote/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | DeckDeckGo - Remote
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/studio/src/app/components/landing/app-landing-footer/app-landing-footer.scss:
--------------------------------------------------------------------------------
1 | app-landing-footer {
2 | main {
3 | display: flex;
4 | flex-direction: column;
5 | justify-content: center;
6 | align-items: center;
7 |
8 | ion-button {
9 | text-transform: none;
10 | }
11 |
12 | section.links {
13 | margin-top: 48px;
14 | max-width: 768px;
15 | }
16 |
17 | @media (max-width: 768px) {
18 | section.links {
19 | margin-top: 16px;
20 | }
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/studio/src/app/services/api/photo/api.photo.service.tsx:
--------------------------------------------------------------------------------
1 | import {ErrorService} from '../../core/error/error.service';
2 |
3 | export abstract class ApiPhotoService {
4 | protected errorService: ErrorService;
5 |
6 | public constructor() {
7 | // Private constructor, singleton
8 | this.errorService = ErrorService.getInstance();
9 | }
10 |
11 | abstract getPhotos(searchTerm: string, next: string | number): Promise;
12 |
13 | abstract registerDownload(photoId: string): Promise;
14 | }
15 |
--------------------------------------------------------------------------------
/studio/src/assets/img/landing/mobile-light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/infra/google-key-updater/package.yaml:
--------------------------------------------------------------------------------
1 | name: google-key-updater
2 | license: AGPL-3
3 |
4 | executable:
5 | main: Main.hs
6 |
7 | dependencies:
8 | - aeson
9 | - base
10 | - bytestring
11 | - http-client
12 | - http-client-tls
13 | - http-conduit
14 | - http-types
15 | - servant
16 | - servant-client
17 | - servant-server
18 | - text
19 | - wai
20 | - wai-cors
21 | - unliftio
22 | - wai-lambda
23 | - warp
24 | - amazonka
25 | - amazonka-core
26 | - amazonka-s3
27 |
--------------------------------------------------------------------------------
/studio/src/app/modals/editor/app-poll-options/app-poll-options.scss:
--------------------------------------------------------------------------------
1 | app-poll-options {
2 | ion-content {
3 | --background: var(--ion-color-light);
4 |
5 | ion-item.item-input ion-input[class*="sc-ion-input"] {
6 | --background: white;
7 | background: white;
8 | }
9 |
10 | div.add-answer {
11 | display: inline-flex;
12 | width: 100%;
13 | justify-content: center;
14 | }
15 |
16 | ion-list {
17 | h2:first-of-type {
18 | margin-top: 0;
19 | }
20 | }
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/studio/src/assets/icons/ionicons/person.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/studio/src/assets/img/landing/tablet-light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/cloud-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/star-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/user-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/chevron-left-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/arrow-left-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/laptop-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "DeckDeckGo",
3 | "short_name": "DeckDeckGo",
4 | "display": "standalone",
5 | "theme_color": "#ffffff",
6 | "background_color": "#ffffff",
7 | "scope": "/",
8 | "start_url": "/",
9 | "icons": [
10 | {
11 | "src": "/assets/favicon/android-chrome-192x192.png",
12 | "sizes": "192x192",
13 | "type": "image/png"
14 | },
15 | {
16 | "src": "/assets/favicon/android-chrome-512x512.png",
17 | "sizes": "512x512",
18 | "type": "image/png"
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/studio/src/app/components/core/app-random-gif/app-random-gif.scss:
--------------------------------------------------------------------------------
1 | app-random-gif {
2 | div.gif-container {
3 | border-radius: 50%;
4 | overflow: hidden;
5 | --deckgo-lazy-img-width: 10rem;
6 | --deckgo-lazy-img-height: 10rem;
7 | width: 10rem;
8 | height: 10rem;
9 | min-width: 10rem;
10 | min-height: 10rem;
11 |
12 | border: 1px solid var(--ion-color-tertiary);
13 | background: rgba(var(--ion-color-tertiary-rgb), 0.4);
14 | box-shadow: 1px 2px 8px 2px rgba(var(--ion-color-tertiary-rgb), 0.2);
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/arrow-right-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/long-arrow-alt-left-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/long-arrow-alt-right-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/core/stencil.config.ts:
--------------------------------------------------------------------------------
1 | import { Config } from '@stencil/core';
2 |
3 | import { sass } from '@stencil/sass';
4 | import { postcss } from '@stencil/postcss';
5 | import autoprefixer from 'autoprefixer';
6 |
7 | export const config: Config = {
8 | namespace: 'deckdeckgo',
9 | outputTargets:[
10 | {
11 | type: 'dist'
12 | },
13 | {
14 | type: 'www',
15 | serviceWorker: null
16 | }
17 | ],
18 | plugins: [
19 | sass(),
20 | postcss({
21 | plugins: [autoprefixer()]
22 | })
23 | ]
24 | };
25 |
--------------------------------------------------------------------------------
/cli/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "moduleResolution": "node",
4 | "target": "es2015",
5 | "allowJs": true,
6 | "module": "es2015",
7 | "lib": ["es2015"],
8 | "strict": true,
9 | "noEmitOnError": false,
10 | "sourceMap": false,
11 | "declaration": false,
12 | "allowSyntheticDefaultImports": true,
13 | "experimentalDecorators": true,
14 | "emitDecoratorMetadata": true,
15 | "outDir": "dist/src",
16 | "strictNullChecks": false
17 | },
18 | "files": [
19 | "src/index.ts"
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/check-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/global/theme/header.scss:
--------------------------------------------------------------------------------
1 | ion-header {
2 | &[class*="header"]::after {
3 | background-image: none;
4 | }
5 | }
6 |
7 | ion-header {
8 | ion-title {
9 | --deckgo-logo-margin-end: 6px;
10 | --deckgo-logo-size: 2rem;
11 | }
12 |
13 | ion-toolbar {
14 | ion-buttons {
15 | min-height: 46px;
16 | }
17 |
18 | --ion-toolbar-color: var(--ion-color-dark);
19 | }
20 | }
21 |
22 | body.dark {
23 | ion-header {
24 | ion-toolbar {
25 | --ion-toolbar-color: var(--ion-color-light);
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/studio/src/app/popovers/editor/app-image-element/app-image-element.scss:
--------------------------------------------------------------------------------
1 | app-image-element {
2 | @import "../../../../global/theme/editor/editor-info";
3 | @import "../../../../global/theme/editor/editor-popover";
4 |
5 | ion-item {
6 | &.history-empty {
7 | --color: var(--ion-color-medium);
8 | }
9 |
10 | &.action-button-margin {
11 | margin-top: 8px;
12 | }
13 | }
14 |
15 | app-image-columns {
16 | --deckgo-images-padding: 4px;
17 | --deckgo-images-font-size: calc(var(--font-size-very-small) - 4px);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/calendar-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/unlock-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/utils/remote/rollup.config.js:
--------------------------------------------------------------------------------
1 | // Source to setup the build
2 | // https://github.com/rollup/rollup-starter-lib
3 | // https://buzut.net/configurer-rollup-bundles-esm-cjs/
4 | // https://dev.to/proticm/how-to-setup-rollup-config-45mk
5 |
6 | import typescript from 'rollup-plugin-typescript';
7 | import commonjs from 'rollup-plugin-commonjs';
8 |
9 | import pkg from './package.json';
10 |
11 | export default {
12 | input: './src/index.ts',
13 | plugins: [commonjs(), typescript()],
14 | output: {
15 | format: 'cjs',
16 | file: pkg.main
17 | }
18 | };
19 |
--------------------------------------------------------------------------------
/webcomponents/charts/stencil.config.ts:
--------------------------------------------------------------------------------
1 | import { Config } from '@stencil/core';
2 |
3 | import { sass } from '@stencil/sass';
4 | import { postcss } from '@stencil/postcss';
5 | import autoprefixer from 'autoprefixer';
6 |
7 | export const config: Config = {
8 | namespace: 'deckdeckgo-charts',
9 | outputTargets:[
10 | {
11 | type: 'dist'
12 | },
13 | {
14 | type: 'www',
15 | serviceWorker: null
16 | }
17 | ],
18 | plugins: [
19 | sass(),
20 | postcss({
21 | plugins: [autoprefixer()]
22 | })
23 | ]
24 | };
25 |
--------------------------------------------------------------------------------
/infra/firebase-login/nix/packages.nix:
--------------------------------------------------------------------------------
1 | { haskell
2 | , haskellPackages
3 | , lib
4 | , runCommand
5 | , writeText
6 | , zip
7 | }:
8 | rec
9 | { firebase-login-sdist = haskell.lib.sdistTarball firebase-login;
10 | firebase-login = haskellPackages.callCabal2nix "firebase-login" firebase-login-source {};
11 | firebase-login-source = lib.sourceByRegex ../.
12 | [ "^package.yaml$"
13 | "^src.*"
14 | "^examples.*"
15 | "^README.md$"
16 | "^LICENSE$"
17 | ];
18 | firebase-login-version-file = writeText "version" firebase-login.version;
19 | }
20 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/arrow-alt-circle-right-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/tag-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/drag-resize-rotate/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": ["dom", "es2017"],
8 | "moduleResolution": "node",
9 | "module": "esnext",
10 | "target": "es2017",
11 | "noUnusedLocals": true,
12 | "noUnusedParameters": true,
13 | "jsx": "react",
14 | "jsxFactory": "h"
15 | },
16 | "include": ["src", "types/jsx.d.ts"],
17 | "exclude": ["node_modules"]
18 | }
19 |
--------------------------------------------------------------------------------
/webcomponents/lazy-img/stencil.config.ts:
--------------------------------------------------------------------------------
1 | import { Config } from '@stencil/core';
2 |
3 | import { sass } from '@stencil/sass';
4 | import { postcss } from '@stencil/postcss';
5 | import autoprefixer from 'autoprefixer';
6 |
7 | export const config: Config = {
8 | namespace: 'deckdeckgo-lazy-img',
9 | outputTargets:[
10 | {
11 | type: 'dist'
12 | },
13 | {
14 | type: 'www',
15 | serviceWorker: null
16 | }
17 | ],
18 | plugins: [
19 | sass(),
20 | postcss({
21 | plugins: [autoprefixer()]
22 | })
23 | ]
24 | };
25 |
--------------------------------------------------------------------------------
/webcomponents/slides/aspect-ratio/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": ["dom", "es2017"],
8 | "moduleResolution": "node",
9 | "module": "esnext",
10 | "target": "es2017",
11 | "noUnusedLocals": true,
12 | "noUnusedParameters": true,
13 | "jsx": "react",
14 | "jsxFactory": "h"
15 | },
16 | "include": ["src", "types/jsx.d.ts"],
17 | "exclude": ["node_modules"]
18 | }
19 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/arrow-alt-circle-left-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/plus-circle-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | dist/
2 | www/
3 |
4 | *~
5 | *.sw[mnpcod]
6 | *.log
7 | *.lock
8 | *.tmp
9 | *.tmp.*
10 | log.txt
11 | *.sublime-project
12 | *.sublime-workspace
13 |
14 | .stencil/
15 | .idea/
16 | .vscode/
17 | .sass-cache/
18 | .versions/
19 | node_modules/
20 | $RECYCLE.BIN/
21 |
22 | .DS_Store
23 | Thumbs.db
24 | UserInterfaceState.xcuserstate
25 | .env
26 |
27 | .deckgo/
28 |
29 | lib/
30 |
31 | .firebase/
32 |
33 | .terraform
34 |
35 | *.tfstate
36 | *.tfstate.backup
37 | *.tfstate.lock*
38 |
39 | result
40 | result-*
41 |
42 | config.staging.json
43 | config.prod.json
44 |
--------------------------------------------------------------------------------
/docs/src/global/theme/theme.scss:
--------------------------------------------------------------------------------
1 | ul {
2 | list-style-type: none;
3 | margin: 0;
4 | padding: 0;
5 | }
6 |
7 | main {
8 | max-width: calc(1200px - 28% - 64px);
9 | margin-left: auto;
10 | margin-right: auto;
11 |
12 | h1:not(:first-of-type) {
13 | margin-top: 48px;
14 | }
15 |
16 | h2,
17 | h3 {
18 | margin-top: 32px;
19 | }
20 |
21 | ul {
22 | font-size: var(--font-size-small);
23 | li {
24 | padding-left: 8px;
25 | font-size: var(--font-size-small);
26 | }
27 | }
28 | }
29 |
30 | a {
31 | text-decoration: none;
32 | }
33 |
--------------------------------------------------------------------------------
/webcomponents/highlight-code/stencil.config.ts:
--------------------------------------------------------------------------------
1 | import { Config } from '@stencil/core';
2 |
3 | import { sass } from '@stencil/sass';
4 | import { postcss } from '@stencil/postcss';
5 | import autoprefixer from 'autoprefixer';
6 |
7 | export const config: Config = {
8 | namespace: 'deckdeckgo-highlight-code',
9 | outputTargets:[
10 | {
11 | type: 'dist'
12 | },
13 | {
14 | type: 'www',
15 | serviceWorker: null
16 | }
17 | ],
18 | plugins: [
19 | sass(),
20 | postcss({
21 | plugins: [autoprefixer()]
22 | })
23 | ]
24 | };
25 |
--------------------------------------------------------------------------------
/remote/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "DeckDeckGo",
3 | "short_name": "DeckDeckGo",
4 | "display": "standalone",
5 | "theme_color": "#ffffff",
6 | "background_color": "#ffffff",
7 | "scope": "/",
8 | "start_url": "/",
9 | "orientation": "any",
10 | "icons": [
11 | {
12 | "src": "/assets/favicon/android-chrome-192x192.png",
13 | "sizes": "192x192",
14 | "type": "image/png"
15 | },
16 | {
17 | "src": "/assets/favicon/android-chrome-512x512.png",
18 | "sizes": "512x512",
19 | "type": "image/png"
20 | }
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/studio/src/assets/img/landing/desktop-light.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/webcomponents/inline-editor/stencil.config.ts:
--------------------------------------------------------------------------------
1 | import { Config } from '@stencil/core';
2 |
3 | import { sass } from '@stencil/sass';
4 | import { postcss } from '@stencil/postcss';
5 | import autoprefixer from 'autoprefixer';
6 |
7 | export const config: Config = {
8 | namespace: 'deckdeckgo-inline-editor',
9 | outputTargets:[
10 | { type: 'dist' },
11 | {
12 | type: 'www',
13 | serviceWorker: null // disable service workers
14 | }
15 | ],
16 | plugins: [
17 | sass(),
18 | postcss({
19 | plugins: [autoprefixer()]
20 | })
21 | ]
22 | };
23 |
--------------------------------------------------------------------------------
/webcomponents/slides/qrcode/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # 1.0.0-rc.2-1 (2019-10-12)
3 |
4 | ### Fix
5 |
6 | * don't set a default 100% value as it might be to wide depending on the slide format
7 |
8 |
9 | # 1.0.0-rc.2 (2019-10-07)
10 |
11 | ### Features
12 |
13 | * `--slide-qrcode-title-display` default set to `block`
14 | * reflect to attribute thee property `content`
15 | * implement new interface `DeckdeckgoSlideResize`
16 | * add a new property to display a logo over the QR code
17 | * on `componentDidUpdate()` lazy load the logo too
18 |
--------------------------------------------------------------------------------
/docs/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src"
21 | ],
22 | "exclude": [
23 | "node_modules"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/chevron-right-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/info-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "DeckDeckGo",
3 | "short_name": "DeckDeckGo",
4 | "display": "standalone",
5 | "theme_color": "#ffffff",
6 | "background_color": "#ffffff",
7 | "scope": "/",
8 | "start_url": "/",
9 | "orientation": "portrait",
10 | "icons": [
11 | {
12 | "src": "/assets/favicon/android-chrome-192x192.png",
13 | "sizes": "192x192",
14 | "type": "image/png"
15 | },
16 | {
17 | "src": "/assets/favicon/android-chrome-512x512.png",
18 | "sizes": "512x512",
19 | "type": "image/png"
20 | }
21 | ]
22 | }
23 |
--------------------------------------------------------------------------------
/remote/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src"
21 | ],
22 | "exclude": [
23 | "node_modules"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/studio/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src"
21 | ],
22 | "exclude": [
23 | "node_modules"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/ban-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/cloud/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # 1.0.0-rc.3-1 (2019-12-18)
3 |
4 | ### Fix
5 |
6 | * screen shot not generated anymore ([#548](https://github.com/deckgo/deckdeckgo/issues/548))
7 |
8 |
9 | # 1.0.0-rc.3 (2019-12-16)
10 |
11 | ### Features
12 |
13 | * send an information per email when a new deck is published
14 |
15 |
16 | # 1.0.0-rc.2 (2019-11-10)
17 |
18 | ### Features
19 |
20 | * Mailchimp integration
21 |
22 |
23 | # 1.0.0-rc.1 (2019-09-08)
24 |
25 | ### Features
26 |
27 | * first stable release
28 |
--------------------------------------------------------------------------------
/infra/firebase-login/nix/default.nix:
--------------------------------------------------------------------------------
1 | { sources ? import ./sources.nix }:
2 | with
3 | { overlay = _: pkgs: rec
4 | { inherit (import sources.niv {}) niv;
5 | haskellPackages = pkgs.haskellPackages.override
6 | { overrides = _: super:
7 | { jose = super.callCabal2nix "jose" sources.hs-jose {}; };
8 | };
9 |
10 | packages = import ./packages.nix
11 | { inherit (pkgs) haskell lib ;
12 | inherit haskellPackages;
13 | };
14 | };
15 | };
16 | import sources.nixpkgs
17 | { overlays = [ overlay ] ; config = {}; }
18 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/calendar-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/minus-square-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/big-img/src/components/slide/deckdeckgo-slide-big-img.scss:
--------------------------------------------------------------------------------
1 | @import "./deckdeckgo-slide";
2 |
3 | div.deckgo-slide {
4 | flex-direction: column;
5 | justify-content: center;
6 | align-items: center;
7 | margin: 0 0;
8 |
9 | .deckgo-big-img-container {
10 | overflow: hidden;
11 | text-align: center;
12 |
13 | img {
14 | max-width: var(--slide-img-max-width);
15 |
16 | &:not(.cropped) {
17 | max-width: 100%;
18 | max-height: 100%;
19 | }
20 | }
21 | }
22 | }
23 |
24 | ::slotted([slot="title"]) {
25 | display: none;
26 | }
27 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/clock-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/plus-square-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/docs/scripts/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "esModuleInterop": true,
5 | "allowUnreachableCode": false,
6 | "declaration": false,
7 | "experimentalDecorators": true,
8 | "lib": [
9 | "dom",
10 | "es2015"
11 | ],
12 | "moduleResolution": "node",
13 | "module": "commonjs",
14 | "target": "es2015",
15 | "noUnusedLocals": true,
16 | "noUnusedParameters": true,
17 | "outDir": "../.deckgo"
18 | },
19 | "include": [
20 | "."
21 | ],
22 | "exclude": [
23 | "node_modules"
24 | ]
25 | }
26 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/clipboard-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/drag-resize-rotate/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # 1.0.0-beta.3 (2020-02-25)
4 |
5 | ### Fix
6 |
7 | - content sizing fit in Firefox
8 | - resize component in Safari ("no jump")
9 |
10 |
11 |
12 | # 1.0.0-beta.2 (2020-02-25)
13 |
14 | ### Features
15 |
16 | - sticky opposite corner on resizing (credits to @nmattia maths)
17 |
18 |
19 |
20 | # 1.0.0-beta.1 (2020-02-19)
21 |
22 | ### Features
23 |
24 | - a new Web Component to drag, resize and rotate any element ([#610](https://github.com/deckgo/deckdeckgo/issues/610))
25 |
--------------------------------------------------------------------------------
/webcomponents/slides/poll/src/utils/deckdeckgo-slide-poll.answer.utils.tsx:
--------------------------------------------------------------------------------
1 | export function initAnswerSlotsList(el: HTMLElement): Promise {
2 | return new Promise((resolve) => {
3 | const slots: NodeListOf = el.querySelectorAll(":scope > [slot^='answer']");
4 |
5 | if (!slots || slots.length <= 0) {
6 | resolve(undefined);
7 | return;
8 | }
9 |
10 | const answers: string[] = Array.from(slots).map((slot: HTMLElement) => {
11 | return slot.getAttribute('slot');
12 | });
13 |
14 | resolve(answers);
15 | });
16 | }
17 |
--------------------------------------------------------------------------------
/studio/src/app/modals/editor/app-code-languages/app-code-languages.scss:
--------------------------------------------------------------------------------
1 | app-code-languages {
2 | ion-content {
3 | --background: var(--ion-color-light);
4 |
5 | main {
6 | background: white;
7 | }
8 | }
9 |
10 | ion-list[class*="list"] {
11 | margin-bottom: 0;
12 |
13 | ion-item.item {
14 | --ripple-color: var(--ion-color-primary);
15 | --border-color: var(--ion-color-light);
16 |
17 | &:last-of-type {
18 | --border-color: transparent;
19 | }
20 |
21 | --background-hover: white;
22 | --background-actived: white;
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/utils/utils/rollup.config.js:
--------------------------------------------------------------------------------
1 | // Source to setup the build
2 | // https://github.com/rollup/rollup-starter-lib
3 | // https://buzut.net/configurer-rollup-bundles-esm-cjs/
4 | // https://dev.to/proticm/how-to-setup-rollup-config-45mk
5 |
6 | import typescript from 'rollup-plugin-typescript';
7 | import commonjs from 'rollup-plugin-commonjs';
8 |
9 | import pkg from './package.json';
10 |
11 | export default {
12 | input: './src/index.ts',
13 | plugins: [
14 | commonjs(),
15 | typescript()
16 | ],
17 | output: {
18 | format: 'cjs',
19 | file: pkg.main
20 | }
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/credit-card-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/redo-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/slides/aspect-ratio/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # 1.0.0-beta.1-2 (2020-02-27)
4 |
5 | ### Features
6 |
7 | - rollback max-height in order to preserve ratio
8 |
9 |
10 |
11 | # 1.0.0-beta.1-1 (2020-02-27)
12 |
13 | ### Features
14 |
15 | - max height 100% for the aspect ratio content
16 |
17 |
18 |
19 | # 1.0.0-beta.1 (2020-02-19)
20 |
21 | ### Features
22 |
23 | - use this template to display a slide which preserves the same aspect ratio regardless of the devices ([#610](https://github.com/deckgo/deckdeckgo/issues/610))
24 |
--------------------------------------------------------------------------------
/docs/docs/edit/app-edit-default/app-edit-default.md:
--------------------------------------------------------------------------------
1 | # HTML
2 |
3 | To edit your [DeckDeckGo] presentation you could either use **HTML** or **Markdown**.
4 |
5 | The default language is **HTML**. It's also the recommended language as it offers you more flexibility specially in terms of styling.
6 |
7 | If you have chosen to edit your presentation using HTML, begin by editing the `index.html` of your project as suggested in the chapter [Concept](/slides/concept).
8 |
9 | Whereas if you prefer to edit your talk using **Markdown**, have a look at [the next chapter](/edit/markdown).
10 |
11 | [DeckDeckGo]: https://deckdeckgo.com
12 |
--------------------------------------------------------------------------------
/studio/src/app/models/data/user.tsx:
--------------------------------------------------------------------------------
1 | export interface UserSocial {
2 | twitter?: string;
3 | linkedin?: string;
4 | dev?: string;
5 | medium?: string;
6 | github?: string;
7 | custom?: string;
8 | }
9 |
10 | export interface UserData {
11 | anonymous: boolean;
12 |
13 | name?: string;
14 | email?: string;
15 | newsletter?: boolean;
16 | photo_url?: string;
17 |
18 | social?: UserSocial;
19 |
20 | bio?: string;
21 |
22 | created_at: firebase.firestore.Timestamp;
23 | updated_at: firebase.firestore.Timestamp;
24 | }
25 |
26 | export interface User {
27 | id: string;
28 | data: UserData;
29 | }
30 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/camera-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/app/components/landing/app-landing/app-landing.tsx:
--------------------------------------------------------------------------------
1 | import {Component, Element, h, Host} from '@stencil/core';
2 |
3 | @Component({
4 | tag: 'app-landing',
5 | styleUrl: 'app-landing.scss',
6 | shadow: false
7 | })
8 | export class AppLanding {
9 | @Element() el: HTMLElement;
10 |
11 | render() {
12 | return (
13 |
14 |
17 |
18 |
19 |
20 |
21 |
22 | );
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/studio/src/assets/img/landing/wave-remote.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/arrow-alt-circle-left-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/copy-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/charts/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/color/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | DeckDeckGo - Color
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | ...
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/webcomponents/color/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/core/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/lazy-img/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/qrcode/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/remote/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/social/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/youtube/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/studio/src/app/modals/editor/app-custom-data/app-custom-data.scss:
--------------------------------------------------------------------------------
1 | app-custom-data {
2 | @import "../../../../global/theme/editor/editor-modal";
3 |
4 | div.data-container {
5 | display: flex;
6 | flex-wrap: wrap;
7 |
8 | div.data {
9 | display: flex;
10 | flex-direction: column;
11 | justify-content: flex-start;
12 | align-items: center;
13 |
14 | max-width: 25%;
15 |
16 | ion-icon {
17 | font-size: 7rem;
18 | }
19 |
20 | ion-label {
21 | max-width: 100%;
22 | text-align: center;
23 | padding-top: 4px;
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/arrows-alt-h-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/arrows-alt-v-solid.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/inline-editor/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/author/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/chart/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/code/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/gif/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/poll/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/qrcode/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/split/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/title/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/video/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/arrow-alt-circle-right-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/color/stencil.config.ts:
--------------------------------------------------------------------------------
1 | import { Config } from '@stencil/core';
2 |
3 | import { sass } from '@stencil/sass';
4 | import { postcss } from '@stencil/postcss';
5 | import autoprefixer from 'autoprefixer';
6 |
7 | export const config: Config = {
8 | namespace: 'deckdeckgo-color',
9 | outputTargets: [
10 | {
11 | type: 'dist'
12 | },
13 | {
14 | type: 'docs-readme'
15 | },
16 | {
17 | type: 'www',
18 | serviceWorker: null // disable service workers
19 | }
20 | ],
21 | plugins: [
22 | sass(),
23 | postcss({
24 | plugins: [autoprefixer()]
25 | })
26 | ]
27 | };
28 |
--------------------------------------------------------------------------------
/webcomponents/highlight-code/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/big-img/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/content/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/countdown/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/webcomponents/slides/youtube/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "allowSyntheticDefaultImports": true,
4 | "allowUnreachableCode": false,
5 | "declaration": false,
6 | "experimentalDecorators": true,
7 | "lib": [
8 | "dom",
9 | "es2017"
10 | ],
11 | "moduleResolution": "node",
12 | "module": "esnext",
13 | "target": "es2017",
14 | "noUnusedLocals": true,
15 | "noUnusedParameters": true,
16 | "jsx": "react",
17 | "jsxFactory": "h"
18 | },
19 | "include": [
20 | "src",
21 | "types/jsx.d.ts"
22 | ],
23 | "exclude": [
24 | "node_modules"
25 | ]
26 | }
27 |
--------------------------------------------------------------------------------
/infra/handler/README.md:
--------------------------------------------------------------------------------
1 | # DeckDeckGo - Handler
2 |
3 | This project is the request handler of [DeckDeckGo].
4 |
5 | ## Table of contents
6 |
7 | - [License](#license)
8 |
9 | ## License
10 |
11 | This request handler is released under the GNU Affero General Public License.
12 | Copyright [David Dal Busco](mailto:david.dalbusco@outlook.com) and [Nicolas
13 | Mattia](mailto:nicolas@nmattia.com), Zürich, Switzerland. See COPYING for more
14 | details.
15 |
16 | [DeckDeckGo] is developed by [David Dal
17 | Busco](mailto:david.dalbusco@outlook.com) and [Nicolas
18 | Mattia](mailto:nicolas@nmattia.com).
19 |
20 | [DeckDeckGo]: https://deckdeckgo.com
21 |
--------------------------------------------------------------------------------
/studio/src/assets/img/shapes/star-regular.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/webcomponents/social/stencil.config.ts:
--------------------------------------------------------------------------------
1 | import { Config } from '@stencil/core';
2 |
3 | import { sass } from '@stencil/sass';
4 | import { postcss } from '@stencil/postcss';
5 | import autoprefixer from 'autoprefixer';
6 |
7 | export const config: Config = {
8 | namespace: 'deckdeckgo-social',
9 | outputTargets: [
10 | {
11 | type: 'dist'
12 | },
13 | {
14 | type: 'docs-readme'
15 | },
16 | {
17 | type: 'www',
18 | serviceWorker: null // disable service workers
19 | }
20 | ],
21 | plugins: [
22 | sass(),
23 | postcss({
24 | plugins: [autoprefixer()]
25 | })
26 | ]
27 | };
28 |
--------------------------------------------------------------------------------