diff --git a/.gitignore b/.gitignore index b2d6de3062..6ad0ddc398 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ npm-debug.log* yarn-debug.log* yarn-error.log* +debug.log* diff --git a/debug.log b/debug.log deleted file mode 100644 index e2758ac046..0000000000 --- a/debug.log +++ /dev/null @@ -1 +0,0 @@ -[0122/151157.680:ERROR:directory_reader_win.cc(43)] FindFirstFile: System nie mo¿e odnaleŸæ okreœlonej œcie¿ki. (0x3) diff --git a/docs/develop/golang/index-golang.mdx b/docs/develop/golang/index-golang.mdx index c156e7c2c5..186e4c063e 100644 --- a/docs/develop/golang/index-golang.mdx +++ b/docs/develop/golang/index-golang.mdx @@ -8,7 +8,7 @@ slug: /develop/golang/ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import useBaseUrl from '@docusaurus/useBaseUrl'; -import RedisCard from '@site/src/components/RedisCard'; +import RedisCard from '@site/src/theme/RedisCard'; Find tutorials, examples and technical articles that will help you to develop with Redis and Golang. @@ -130,4 +130,4 @@ Find more information about Golang & Redis connections in the "[Redis Connect](h - \ No newline at end of file + diff --git a/docs/develop/java/index-java.mdx b/docs/develop/java/index-java.mdx index 260428519f..0ccc04f6d3 100644 --- a/docs/develop/java/index-java.mdx +++ b/docs/develop/java/index-java.mdx @@ -7,7 +7,7 @@ slug: /develop/java/ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import useBaseUrl from '@docusaurus/useBaseUrl'; -import RedisCard from '@site/src/components/RedisCard'; +import RedisCard from '@site/src/theme/RedisCard'; Find tutorials, examples and technical articles that will help you to develop with Redis and Java. diff --git a/docs/develop/node/index-node.mdx b/docs/develop/node/index-node.mdx index 5bf5dd246d..72bf0f5b9f 100644 --- a/docs/develop/node/index-node.mdx +++ b/docs/develop/node/index-node.mdx @@ -8,7 +8,7 @@ slug: /develop/node/ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import useBaseUrl from '@docusaurus/useBaseUrl'; -import RedisCard from '@site/src/components/RedisCard'; +import RedisCard from '@site/src/theme/RedisCard'; Find tutorials, examples and technical articles that will help you to develop with Redis and Node.js/JavaScript. @@ -162,4 +162,4 @@ Build full-fledged Redis applications with Node.js and Express.
-
\ No newline at end of file + diff --git a/docs/develop/python/index-python.mdx b/docs/develop/python/index-python.mdx index c906ce20c9..66f9ca911c 100644 --- a/docs/develop/python/index-python.mdx +++ b/docs/develop/python/index-python.mdx @@ -8,7 +8,7 @@ slug: /develop/python/ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import useBaseUrl from '@docusaurus/useBaseUrl'; -import RedisCard from '@site/src/components/RedisCard'; +import RedisCard from '@site/src/theme/RedisCard'; Find Tutorials, Examples and Technical articles that will help you to develop with Redis and Python. @@ -106,4 +106,4 @@ A complete introduction to Redis for Python developers.
-
\ No newline at end of file + diff --git a/docs/guides/import/index-import.mdx b/docs/guides/import/index-import.mdx index 6b35bc2708..6fcab2a054 100644 --- a/docs/guides/import/index-import.mdx +++ b/docs/guides/import/index-import.mdx @@ -5,7 +5,7 @@ sidebar_label: Import slug: /guides/import/ --- -import RedisCard from '@site/src/components/RedisCard'; +import RedisCard from '@site/src/theme/RedisCard'; diff --git a/docs/guides/index.mdx b/docs/guides/index.mdx index b2f9ea418c..567f2913c3 100644 --- a/docs/guides/index.mdx +++ b/docs/guides/index.mdx @@ -5,7 +5,7 @@ sidebar_label: Guides slug: guides/index --- -import RedisCard from '@site/src/components/RedisCard'; +import RedisCard from '@site/src/theme/RedisCard'; diff --git a/docs/tools/index.mdx b/docs/tools/index.mdx index 87e7799647..e1444b395a 100644 --- a/docs/tools/index.mdx +++ b/docs/tools/index.mdx @@ -4,7 +4,7 @@ title: Tools sidebar_label: Tools slug: /tools --- -import RedisCard from '@site/src/components/RedisCard'; +import RedisCard from '@site/src/theme/RedisCard'; ### GUI tools for Redis diff --git a/docusaurus.config.js b/docusaurus.config.js index bc185ac35b..d11042ee25 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -16,6 +16,7 @@ module.exports = { alt: 'Redis Developer', src: 'img/logo-1.png', }, + hideOnScroll: true, items: [ { to: '#', @@ -103,7 +104,6 @@ module.exports = { ], copyright: `Copyright: © ${new Date().getFullYear()} Redis Labs. Redis and the cube logo are registered trademarks of Redis Labs Ltd.`, }, - colorMode: { // Hides the switch in the navbar // Useful if you want to support a single color mode @@ -111,7 +111,7 @@ module.exports = { }, announcementBar: { id: 'redisconf20201cfp', // Any value that will identify this message. - content: 'RedisConf 2021 - The Call for Paper is Open, Submit your Proposal Learn more', + content: '

RedisConf 2021 - The Call for Paper is Open, Submit your Proposal

Learn more', backgroundColor: '#fff', // Defaults to `#fff`. textColor: '#000', // Defaults to `#000`. isCloseable: true, // Defaults to `true`. diff --git a/package.json b/package.json index b805869c33..6c735abf52 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "docusaurus-plugin-sass": "^0.1.11", "react": "^16.8.4", "react-dom": "^16.8.4", + "react-slick": "^0.28.0", "react-typed": "^1.2.0" }, "browserslist": { diff --git a/src/css/_article.scss b/src/css/_article.scss index 32f54ba810..3c6afb08f2 100644 --- a/src/css/_article.scss +++ b/src/css/_article.scss @@ -96,37 +96,95 @@ blockquote { border-left: 5px solid #dbdada; } +main:not(.home-main) { + a { + text-decoration: none; + transition: all .2s ease-in-out; + + &:hover { + color: $purple-hover; + } + } + + article { + header { + h1 { + line-height: 1.2; + font-size: 49px; + + @include mobile { + font-size: 39px; + } + } + } + } +} + .markdown { color: $black; + h1, + h2, + h3, + h4, + h5, + h6 { + font-family: $lato; + font-weight: 700; + } + h1 { line-height: 1.2; font-size: 49px; + + @include mobile { + font-size: 39px; + } } h2 { line-height: 1.2; font-size: 38px; + + @include mobile { + font-size: 28px; + } } h3 { line-height: 1.2; font-size: 32px; + + @include mobile { + font-size: 22px; + } } h4 { line-height: 1.5; font-size: 25px; + + @include mobile { + font-size: 20px; + } } h5 { line-height: 1.45; font-size: 20px; + + @include mobile { + font-size: 18px; + } } h6 { line-height: 1.6; font-size: 18px; + + @include mobile { + font-size: 16px; + } } } @@ -172,6 +230,7 @@ blockquote { border-radius: 0; line-height: 1; font-size: 17px; + transition: color .2s ease-in-out; &:not(:last-child) { margin-right: 10px; @@ -179,8 +238,72 @@ blockquote { &:hover { background-color: transparent; + color: $purple-hover; + } + + &--active { + color: var(--ifm-tabs-color-active) !important; + } + } +} + +.ri-container { + margin-bottom: 30px; + padding: 20px; + height: calc(100% - 30px); + border: 2px solid $grey-dark; + + .ri-icon { + display: none; + } + + .ri-detail { + width: 100%; + } + + .ri-title { + text-align: left; + line-height: 1.6; + font-size: 18px; + + a { + color: $black; } + } + + .ri-description { + text-align: left; + line-height: 1.8; + font-size: 16px; + color: $black; + + img { + margin-top: 15px; + } + } + + img { + max-width: 50%; + } +} + +code { + border-radius: 4px; + background-color: $purple-light; +} + +iframe { + max-width: 100%; + box-shadow: 0 2px 20px rgba($black, .17); +} + +.sidebar-logo { + display: flex; + align-items: center; + padding: 0 15px; + height: 60px; - &--active {} + img { + height: 26px; } } diff --git a/src/css/_config.scss b/src/css/_config.scss index c5b43902df..ccd0d9d19e 100644 --- a/src/css/_config.scss +++ b/src/css/_config.scss @@ -8,6 +8,7 @@ $secondary-black: #2E2E2E; $zircon: #F8FAFF; $grey: #707070; $grey-light: #E0DFDF; +$grey-dark: #C2C0C0; $purple: #5961FF; $purple-hover: #3F41A0; $purple-light: #F2F5FE; @@ -30,8 +31,40 @@ monospace; --zircon: #F8FAFF; --grey: #707070; --grey-light: #E0DFDF; + --grey-dark: #C2C0C0; --purple: #5961FF; --purple-hover: #3F41A0; --purple-light: #F2F5FE; --purple-lighter: #F9FAFF; } + +/* media queries */ +@mixin desktop { + @media only screen and (min-width: 997px) { + @content; + } +} + +@mixin desktop-tablet { + @media only screen and (min-width: 751px) { + @content; + } +} + +@mixin tablet { + @media only screen and (min-width: 751px) and (max-width: 996px) { + @content; + } +} + +@mixin tablet-mobile { + @media only screen and (max-width: 996px) { + @content; + } +} + +@mixin mobile { + @media only screen and (max-width: 750px) { + @content; + } +} diff --git a/src/css/_typography.scss b/src/css/_typography.scss index fb20eac7b2..9f053f570d 100644 --- a/src/css/_typography.scss +++ b/src/css/_typography.scss @@ -15,9 +15,19 @@ h6 { font-size: 38px; font-weight: 600; + @include mobile { + font-size: 32px; + } + &.white { color: $white; } + + br { + @include desktop-tablet { + display: none; + } + } } // section-description @@ -29,8 +39,17 @@ h6 { font-size: 18px; font-weight: 400; + @include mobile { + line-height: 1.6; + font-size: 16px; + } + &:not(:first-child) { margin-top: 11px; + + @include mobile { + margin-top: 14px; + } } &.white { diff --git a/src/css/components/_announcement.scss b/src/css/components/_announcement.scss index a84dd3cf3f..04c34e226e 100644 --- a/src/css/components/_announcement.scss +++ b/src/css/components/_announcement.scss @@ -17,11 +17,25 @@ font-weight: 500; letter-spacing: 0.25px; + @include mobile { + line-height: 1.3; + font-size: 13px; + } + &.announcementBarCloseable { padding-right: 56px; } - a { + .text { + margin: 0; + display: inline-block; + + @include mobile { + display: block; + } + } + + .btn { display: inline-block; margin-left: 15px; padding: 5px 23px 4px; @@ -34,6 +48,16 @@ letter-spacing: 0.5px; text-decoration: none; color: $white; + transition: background-color .2s ease-in-out, color .2s ease-in-out; + + @include mobile { + margin-top: 10px; + } + + &:hover { + background-color: $white; + color: $secondary-blue; + } } } diff --git a/src/css/components/_demos.scss b/src/css/components/_demos.scss index 978bd04a0c..b72a66e7e2 100644 --- a/src/css/components/_demos.scss +++ b/src/css/components/_demos.scss @@ -2,6 +2,10 @@ position: relative; padding-top: 68px; + @include mobile { + padding-top: 46px; + } + .container { position: relative; @@ -16,6 +20,10 @@ &:not(:first-child) { margin-top: 75px; + + @include mobile { + margin-top: 34px; + } } .code { @@ -25,6 +33,14 @@ height: 477.5px; user-select: none; } + + .col { + &:not(:last-child) { + @include mobile { + margin-bottom: 45px; + } + } + } } .terminal { @@ -32,7 +48,9 @@ position: relative; &.right { - margin-top: 60px; + @include desktop-tablet { + margin-top: 60px; + } } .terminal-header { @@ -41,11 +59,19 @@ border-radius: 10px 10px 0 0; background-color: $secondary-black; + @include mobile { + height: 31px; + } + svg { position: absolute; top: 50%; left: 17px; transform: translateY(-50%); + + @include mobile { + zoom: .85; + } } } @@ -57,10 +83,19 @@ border-top: none; background-color: $white; + @include mobile { + padding: 31px 25px 35px; + min-height: 220px; + } + .title { margin: 0; line-height: 1; font-size: 26px; + + @include mobile { + font-size: 22px; + } } .links { @@ -69,8 +104,16 @@ list-style: none; line-height: 1.45; + @include mobile { + font-size: 15px; + } + &:not(:first-child) { margin-top: 30px; + + @include mobile { + margin-top: 24px; + } } li { diff --git a/src/css/components/_footer.scss b/src/css/components/_footer.scss index c14b3e2cd6..70c2f9e32c 100644 --- a/src/css/components/_footer.scss +++ b/src/css/components/_footer.scss @@ -1,6 +1,7 @@ .footer { + position: relative; padding: 0; - border-radius: 10px; + overflow: hidden; background-color: $primary-black; .container { @@ -8,10 +9,19 @@ padding-top: 50px; padding-bottom: 38px; + @include mobile { + padding-top: 47px; + padding-bottom: 44px; + } + .shape { position: absolute; bottom: 0; left: -533px; + + @include mobile { + display: none; + } } .code { @@ -20,6 +30,12 @@ right: -145px; height: 338px; user-select: none; + + @include mobile { + zoom: .8; + top: 15px; + right: -55px; + } } .row { @@ -40,19 +56,45 @@ line-height: 1.25; font-size: 14.5px; font-weight: 600; + + @include tablet-mobile { + margin-bottom: 22px; + } } &__links { margin-bottom: 0; + + @include tablet-mobile { + margin-top: 45px; + } + } + + &__col { + margin-bottom: 0 !important; + + @include tablet { + --ifm-col-width: 33.33% !important; + } + + @include mobile { + --ifm-col-width: 50% !important; + } } &__items { - max-width: 168px; + @include desktop { + max-width: 168px; + } } &__item { &:not(:first-child) { margin-top: 3px; + + @include tablet-mobile { + margin-top: 15px; + } } } @@ -76,5 +118,9 @@ line-height: 1.25; font-size: 12px; color: $grey; + + @include tablet-mobile { + margin-top: 42px; + } } } diff --git a/src/css/components/_hero.scss b/src/css/components/_hero.scss index 0c50d94f89..49d4a0ba20 100644 --- a/src/css/components/_hero.scss +++ b/src/css/components/_hero.scss @@ -5,8 +5,24 @@ background-color: $primary-blue; color: $white; + @include mobile { + padding: 71px 0 62px; + } + .row { align-items: center; + + .col { + @include tablet-mobile { + &:first-child { + order: 2; + } + + &:last-child { + order: 1; + } + } + } } .hero-title { @@ -14,6 +30,15 @@ line-height: 1.1; font-size: 50px; font-weight: 500; + + @include tablet-mobile { + text-align: center; + } + + @include mobile { + line-height: 1.25; + font-size: 32px; + } } .hero-subtitle { @@ -21,12 +46,26 @@ line-height: 1.5; font-size: 18px; font-weight: 400; + + @include tablet-mobile { + text-align: center; + } + + @include mobile { + margin-top: 13px; + font-size: 14px; + } } .boxes { display: flex; margin-top: 42px; + @include mobile { + flex-direction: column; + margin-top: 36px; + } + .box { flex: 1; position: relative; @@ -34,12 +73,23 @@ border-radius: 3px; transition: background-color .2s ease-in-out; + @include mobile { + margin: 0 auto; + max-width: 282px; + } + &:hover { background-color: $red; } &:not(:first-child) { - margin-left: 12px; + @include desktop-tablet { + margin-left: 12px; + } + + @include mobile { + margin-top: 25px; + } } .bg { @@ -67,32 +117,64 @@ align-items: center; padding: 5px 21px 0; height: 69px; + + @include mobile { + justify-content: center; + } + + svg { + @include mobile { + zoom: 1.1; + } + } } .text { padding: 0 16px 23px 21px; + @include mobile { + padding-bottom: 25px; + } + .title { margin: 0; line-height: 1.5; font-size: 18px; font-weight: 400; + + @include mobile { + text-align: center; + line-height: 1.2; + font-size: 22px; + } } .description { margin: 5px 0 0 0; line-height: 1.5; font-size: 14.5px; + + @include mobile { + margin-top: 10px; + text-align: center; + line-height: 1.6; + font-size: 16px; + } } .more { display: flex; align-items: center; - margin-top: 9px; + margin-top: 14px; line-height: 1.2; font-size: 14.5px; font-weight: 700; + @include mobile { + justify-content: center; + font-size: 16px; + } + svg { margin-left: 8px; @@ -121,8 +203,16 @@ } .illustration { - display: block; - margin-left: 66px; max-width: 100%; + + @include desktop { + margin-left: 66px; + } + + @include tablet-mobile { + display: block; + margin: 0 auto 48px; + zoom: 0.48; + } } } diff --git a/src/css/components/_languages.scss b/src/css/components/_languages.scss index ca7c62a861..565dd25aa3 100644 --- a/src/css/components/_languages.scss +++ b/src/css/components/_languages.scss @@ -2,27 +2,53 @@ position: relative; padding-top: 76px; + @include mobile { + padding-top: 54px; + } + .shape { position: absolute; top: -61px; left: calc(50% - 154px); + + @include mobile { + zoom: .5; + top: 380px; + left: -150px; + } } .languages-list { z-index: 2; display: flex; - justify-content: space-between; + // justify-content: space-between; + justify-content: space-around; position: relative; margin: 0 auto; padding: 0; max-width: 1050px; list-style: none; + @include mobile { + flex-wrap: wrap; + justify-content: center; + } + &:not(:first-child) { margin-top: 76px; + + @include mobile { + margin-top: 12px; + } } li { + @include mobile { + flex: 0 0 50%; + margin-top: 42px; + text-align: center; + } + a { display: inline-flex; flex-direction: column; @@ -33,9 +59,15 @@ svg { margin-bottom: 27px; + + @include mobile { + zoom: .85; + margin-bottom: 21px; + } } .btn { + margin-top: auto; padding: 6px 15px 8px; border-radius: 3px; line-height: 1.3; @@ -44,6 +76,10 @@ font-weight: 500; color: $red; transition: background-color .2s ease-in-out, color .2s ease-in-out; + + @include mobile { + font-size: 14px; + } } &:hover .btn { diff --git a/src/css/components/_navbar.scss b/src/css/components/_navbar.scss index 7e63cf66cc..e6903b9126 100644 --- a/src/css/components/_navbar.scss +++ b/src/css/components/_navbar.scss @@ -1,18 +1,76 @@ +.navbar-sidebar--show .navbar-sidebar { + box-shadow: 0 5px 40px rgba($primary-blue, .5); +} + +.navbar-sidebar { + background-color: $primary-blue; + box-shadow: none; + + &__backdrop { + background-color: rgba($primary-blue, .5); + } + + &__brand { + box-shadow: none; + } + + &__items { + margin-top: 15px; + padding: 0; + } + + .menu { + &__list-item { + margin: 0; + + &:not(:first-child) { + margin-top: 10px; + } + } + + &__link { + padding: 5px 15px; + border-radius: 0; + background-color: transparent; + font-size: 17px; + color: $white; + } + } +} + .navbar { - padding: 15px; + padding: 14px 15px; height: auto; border-radius: 0 0 10px 10px; background-color: $primary-blue; box-shadow: none; - &__brand { - height: 26px; + &__toggle { + margin-right: 18px; + } + + &__brand, + &__logo { + width: 171px !important; + height: 26px !important; } &__link { - padding: 5px 21px; + padding: 7px 21px 8px; + line-height: 1; font-size: 17px; color: $white !important; + + &:hover { + text-decoration: underline; + } + } + + .DocSearch-Button-Container { + @include mobile { + justify-content: center; + width: 100%; + } } .DocSearch-Button { @@ -24,6 +82,11 @@ border-radius: 21px; background-color: $zircon; + @include mobile { + padding: 0; + width: 32px; + } + .DocSearch-Search-Icon { width: 16px; height: 16px; diff --git a/src/css/components/_resources.scss b/src/css/components/_resources.scss index 8705fe98c7..7bfb9251af 100644 --- a/src/css/components/_resources.scss +++ b/src/css/components/_resources.scss @@ -1,25 +1,89 @@ .rds-resources { margin-top: 75px; padding: 80px 0 85px; - border-radius: 10px; + border-radius: 10px 10px 0 0; background-color: $primary-blue; + @include mobile { + margin-top: 59px; + padding: 54px 0 53px; + } + .articles { - margin-top: 77px; + &:not(:first-child) { + margin-top: 77px; + + @include mobile { + margin-top: 52px; + } + } + + .slick-list { + margin: -10px 0; + } + + .slick-track { + display: flex; + padding: 10px 0; + } + + .slick-slide { + height: auto; + + >div { + height: 100%; + + >.col { + padding: 0 12.5px; + height: 100%; + } + } + } + + .slick-dots { + display: flex !important; + justify-content: center; + bottom: -15px; + + li { + margin: 0 6px; + width: auto; + height: auto; + + button { + margin: 0; + padding: 0; + width: 8px; + height: 8px; + border-radius: 100%; + background-color: $white; + transition: background-color .2s ease-in-out; + + &:before { + display: none; + } + } + + &.slick-active { + button { + background-color: $red; + } + } + } + } .article { position: relative; height: 100%; - transition: transform .2s ease-in-out; &:hover { - transform: translateY(-5px); - &:before { + top: 5px; opacity: 1; } .article-wrapper { + top: -5px; box-shadow: 12px 11px 6px rgba($primary-black, .17); } } @@ -33,16 +97,21 @@ opacity: 0; border-radius: 10px; background-color: $purple; - transition: opacity .2s ease-in-out; + transition: top .2s ease-in-out, opacity .2s ease-in-out; content: ''; + + @include mobile { + border-radius: 8px; + } } .article-wrapper { display: flex; flex-direction: column; position: relative; + top: 0; height: 100%; - transition: box-shadow .2s ease-in-out; + transition: top .2s ease-in-out, box-shadow .2s ease-in-out; } .thumb { @@ -51,6 +120,11 @@ height: 187px; object-fit: cover; border-radius: 10px 10px 0 0; + + @include mobile { + height: 151px; + border-radius: 8px 8px 0 0; + } } .article-body { @@ -59,6 +133,11 @@ border-radius: 0 0 10px 10px; background-color: $white; + @include mobile { + padding: 15px 19px 16px; + border-radius: 0 0 8px 8px; + } + .type { display: block; text-transform: uppercase; @@ -67,6 +146,10 @@ font-size: 14.5px; font-weight: 900; color: $red; + + @include mobile { + font-size: 13px; + } } .title { @@ -75,8 +158,16 @@ font-size: 18px; font-weight: 600; + @include mobile { + font-size: 16px; + } + &:not(:first-child) { margin-top: 4px; + + @include mobile { + margin-top: 3px; + } } } } @@ -98,6 +189,10 @@ margin-top: 55px; text-align: center; + @include mobile { + margin-top: 50px; + } + .btn { display: inline-block; padding: 11px 32px 12px; @@ -109,6 +204,12 @@ font-size: 14px; font-weight: 700; color: $white; + transition: background-color .2s ease-in-out, color .2s ease-in-out; + + &:hover { + background-color: $white; + color: $red; + } } } } diff --git a/src/css/custom.scss b/src/css/custom.scss index 355d7810b8..5c9815ba1e 100644 --- a/src/css/custom.scss +++ b/src/css/custom.scss @@ -5,6 +5,9 @@ * work well for content-centric websites. */ +@import '../slick/slick'; +@import '../slick/slick-theme'; + @import './config'; @import './typography'; @import './article'; @@ -17,6 +20,7 @@ @import './components/demos'; @import './components/resources'; + /* You can override the default Infima variables here. */ :root { --ifm-color-primary: #25c2a0; @@ -40,3 +44,7 @@ .container { max-width: 1140px; } + +.home-main { + overflow: hidden; +} diff --git a/src/pages/index.js b/src/pages/index.js index 7e1be4e822..88c9608b71 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -19,7 +19,7 @@ function Home() { title={`Hello from ${siteConfig.title}`} description="Description will go into a meta tag in "> -
+
diff --git a/src/slick/ajax-loader.gif b/src/slick/ajax-loader.gif new file mode 100644 index 0000000000..e0e6e9760b Binary files /dev/null and b/src/slick/ajax-loader.gif differ diff --git a/src/slick/fonts/slick.eot b/src/slick/fonts/slick.eot new file mode 100644 index 0000000000..2cbab9ca97 Binary files /dev/null and b/src/slick/fonts/slick.eot differ diff --git a/src/slick/fonts/slick.svg b/src/slick/fonts/slick.svg new file mode 100644 index 0000000000..b36a66a6c4 --- /dev/null +++ b/src/slick/fonts/slick.svg @@ -0,0 +1,14 @@ + + + +Generated by Fontastic.me + + + + + + + + + + diff --git a/src/slick/fonts/slick.ttf b/src/slick/fonts/slick.ttf new file mode 100644 index 0000000000..9d03461b65 Binary files /dev/null and b/src/slick/fonts/slick.ttf differ diff --git a/src/slick/fonts/slick.woff b/src/slick/fonts/slick.woff new file mode 100644 index 0000000000..8ee99721bb Binary files /dev/null and b/src/slick/fonts/slick.woff differ diff --git a/src/slick/slick-theme.scss b/src/slick/slick-theme.scss new file mode 100644 index 0000000000..ccf0076c1b --- /dev/null +++ b/src/slick/slick-theme.scss @@ -0,0 +1,214 @@ +@charset "UTF-8"; + +// Default Variables + +// Slick icon entity codes outputs the following +// "\2190" outputs ascii character "←" +// "\2192" outputs ascii character "→" +// "\2022" outputs ascii character "•" + +$slick-font-path: "/slick/fonts/" !default; +$slick-font-family: "slick" !default; +$slick-loader-path: "/slick/" !default; +$slick-arrow-color: white !default; +$slick-dot-color: black !default; +$slick-dot-color-active: $slick-dot-color !default; +$slick-prev-character: "\2190" !default; +$slick-next-character: "\2192" !default; +$slick-dot-character: "\2022" !default; +$slick-dot-size: 6px !default; +$slick-opacity-default: 0.75 !default; +$slick-opacity-on-hover: 1 !default; +$slick-opacity-not-active: 0.25 !default; + +@function slick-image-url($url) { + @if function-exists(image-url) { + @return image-url($url); + } + + @else { + @return url($slick-loader-path + $url); + } +} + +@function slick-font-url($url) { + @if function-exists(font-url) { + @return font-url($url); + } + + @else { + @return url($slick-font-path + $url); + } +} + +/* Slider */ + +.slick-list { + .slick-loading & { + background: #fff slick-image-url("ajax-loader.gif") center center no-repeat; + } +} + +/* Icons */ +@if $slick-font-family=="slick" { + @font-face { + font-family: "slick"; + src: slick-font-url("slick.eot"); + src: slick-font-url("slick.eot?#iefix") format("embedded-opentype"), slick-font-url("slick.woff") format("woff"), slick-font-url("slick.ttf") format("truetype"), slick-font-url("slick.svg#slick") format("svg"); + font-weight: normal; + font-style: normal; + } +} + +/* Arrows */ + +.slick-prev, +.slick-next { + position: absolute; + display: block; + height: 20px; + width: 20px; + line-height: 0px; + font-size: 0px; + cursor: pointer; + background: transparent; + color: transparent; + top: 50%; + -webkit-transform: translate(0, -50%); + -ms-transform: translate(0, -50%); + transform: translate(0, -50%); + padding: 0; + border: none; + outline: none; + + &:hover, + &:focus { + outline: none; + background: transparent; + color: transparent; + + &:before { + opacity: $slick-opacity-on-hover; + } + } + + &.slick-disabled:before { + opacity: $slick-opacity-not-active; + } + + &:before { + font-family: $slick-font-family; + font-size: 20px; + line-height: 1; + color: $slick-arrow-color; + opacity: $slick-opacity-default; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } +} + +.slick-prev { + left: -25px; + + [dir="rtl"] & { + left: auto; + right: -25px; + } + + &:before { + content: $slick-prev-character; + + [dir="rtl"] & { + content: $slick-next-character; + } + } +} + +.slick-next { + right: -25px; + + [dir="rtl"] & { + left: -25px; + right: auto; + } + + &:before { + content: $slick-next-character; + + [dir="rtl"] & { + content: $slick-prev-character; + } + } +} + +/* Dots */ + +.slick-dotted.slick-slider { + margin-bottom: 30px; +} + +.slick-dots { + position: absolute; + bottom: -25px; + list-style: none; + display: block; + text-align: center; + padding: 0; + margin: 0; + width: 100%; + + li { + position: relative; + display: inline-block; + height: 20px; + width: 20px; + margin: 0 5px; + padding: 0; + cursor: pointer; + + button { + border: 0; + background: transparent; + display: block; + height: 20px; + width: 20px; + outline: none; + line-height: 0px; + font-size: 0px; + color: transparent; + padding: 5px; + cursor: pointer; + + &:hover, + &:focus { + outline: none; + + &:before { + opacity: $slick-opacity-on-hover; + } + } + + &:before { + position: absolute; + top: 0; + left: 0; + content: $slick-dot-character; + width: 20px; + height: 20px; + font-family: $slick-font-family; + font-size: $slick-dot-size; + line-height: 20px; + text-align: center; + color: $slick-dot-color; + opacity: $slick-opacity-not-active; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + } + + &.slick-active button:before { + color: $slick-dot-color-active; + opacity: $slick-opacity-default; + } + } +} diff --git a/src/slick/slick.scss b/src/slick/slick.scss new file mode 100644 index 0000000000..8d1fc9f115 --- /dev/null +++ b/src/slick/slick.scss @@ -0,0 +1,100 @@ +/* Slider */ + +.slick-slider { + position: relative; + display: block; + box-sizing: border-box; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -ms-touch-action: pan-y; + touch-action: pan-y; + -webkit-tap-highlight-color: transparent; +} +.slick-list { + position: relative; + overflow: hidden; + display: block; + margin: 0; + padding: 0; + + &:focus { + outline: none; + } + + &.dragging { + cursor: pointer; + cursor: hand; + } +} +.slick-slider .slick-track, +.slick-slider .slick-list { + -webkit-transform: translate3d(0, 0, 0); + -moz-transform: translate3d(0, 0, 0); + -ms-transform: translate3d(0, 0, 0); + -o-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); +} + +.slick-track { + position: relative; + left: 0; + top: 0; + display: block; + margin-left: auto; + margin-right: auto; + + &:before, + &:after { + content: ""; + display: table; + } + + &:after { + clear: both; + } + + .slick-loading & { + visibility: hidden; + } +} +.slick-slide { + float: left; + height: 100%; + min-height: 1px; + [dir="rtl"] & { + float: right; + } + img { + display: block; + } + &.slick-loading img { + display: none; + } + + display: none; + + &.dragging img { + pointer-events: none; + } + + .slick-initialized & { + display: block; + } + + .slick-loading & { + visibility: hidden; + } + + .slick-vertical & { + display: block; + height: auto; + border: 1px solid transparent; + } +} +.slick-arrow.slick-hidden { + display: none; +} diff --git a/src/svg/ArrowRight/index.js b/src/svg/ArrowRight/index.js index 4480252e5d..f52f5173f7 100644 --- a/src/svg/ArrowRight/index.js +++ b/src/svg/ArrowRight/index.js @@ -1,7 +1,7 @@ import React from 'react'; const ArrowRight = ({ color = '#161F31', ...rest }) => ( - + ); export default ArrowRight; diff --git a/src/svg/CSharp/index.js b/src/svg/CSharp/index.js index f8c0776cc1..a164ec611d 100644 --- a/src/svg/CSharp/index.js +++ b/src/svg/CSharp/index.js @@ -1,7 +1,7 @@ import React from 'react'; const CSharp = ({ color = '#68217A', ...rest }) => ( - + ); export default CSharp; diff --git a/src/svg/Close/index.js b/src/svg/Close/index.js index 083f986f74..75708ef23d 100644 --- a/src/svg/Close/index.js +++ b/src/svg/Close/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Close = ({ color = '#161F31', ...rest }) => ( - + ); export default Close; diff --git a/src/svg/Create/index.js b/src/svg/Create/index.js index f4e92b588d..853f761fd8 100644 --- a/src/svg/Create/index.js +++ b/src/svg/Create/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Create = ({ color = '#161F31', ...rest }) => ( - + ); export default Create; diff --git a/src/svg/CreateBg/index.js b/src/svg/CreateBg/index.js index 79f4980b08..b70f215c35 100644 --- a/src/svg/CreateBg/index.js +++ b/src/svg/CreateBg/index.js @@ -1,7 +1,7 @@ import React from 'react'; const CreateBg = ({ color = '#161F31', ...rest }) => ( - + ); export default CreateBg; diff --git a/src/svg/Develop/index.js b/src/svg/Develop/index.js index 0f03b9b9d4..d36e116c66 100644 --- a/src/svg/Develop/index.js +++ b/src/svg/Develop/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Develop = ({ color = '#161F31', ...rest }) => ( - + ); export default Develop; diff --git a/src/svg/DevelopBg/index.js b/src/svg/DevelopBg/index.js index 3c703c1255..8d6d16f57a 100644 --- a/src/svg/DevelopBg/index.js +++ b/src/svg/DevelopBg/index.js @@ -1,7 +1,7 @@ import React from 'react'; const DevelopBg = ({ color = '#161F31', ...rest }) => ( - + ); export default DevelopBg; diff --git a/src/svg/Dots/index.js b/src/svg/Dots/index.js index a0fde087f3..ac3593ab08 100644 --- a/src/svg/Dots/index.js +++ b/src/svg/Dots/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Dots = ({ ...rest }) => ( - + ); export default Dots; diff --git a/src/svg/Explore/index.js b/src/svg/Explore/index.js index 585fd3b49b..4c20af2807 100644 --- a/src/svg/Explore/index.js +++ b/src/svg/Explore/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Explore = ({ color = '#161F31', ...rest }) => ( - + ); export default Explore; diff --git a/src/svg/ExploreBg/index.js b/src/svg/ExploreBg/index.js index 735858e6eb..68076e9fbb 100644 --- a/src/svg/ExploreBg/index.js +++ b/src/svg/ExploreBg/index.js @@ -1,7 +1,7 @@ import React from 'react'; const ExploreBg = ({ color = '#161F31', ...rest }) => ( - + ); export default ExploreBg; diff --git a/src/svg/Go/index.js b/src/svg/Go/index.js index 583bef6236..339ab467f6 100644 --- a/src/svg/Go/index.js +++ b/src/svg/Go/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Go = ({ color = '#000000', ...rest }) => ( - + ); export default Go; diff --git a/src/svg/Hamburger/index.js b/src/svg/Hamburger/index.js new file mode 100644 index 0000000000..505cf215ff --- /dev/null +++ b/src/svg/Hamburger/index.js @@ -0,0 +1,7 @@ +import React from 'react'; + +const Hamburger = ({ color = '#161F31', ...rest }) => ( + +); + +export default Hamburger; diff --git a/src/svg/Hero/index.js b/src/svg/Hero/index.js index 69e8297442..0bf6e5d5eb 100644 --- a/src/svg/Hero/index.js +++ b/src/svg/Hero/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Hero = ({ color = '#161F31', ...rest }) => ( - + ); export default Hero; diff --git a/src/svg/Java/index.js b/src/svg/Java/index.js index 2df9a871a7..91f0a42127 100644 --- a/src/svg/Java/index.js +++ b/src/svg/Java/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Java = ({ color = '#EA2D2E', ...rest }) => ( - + ); export default Java; diff --git a/src/svg/Node/index.js b/src/svg/Node/index.js index 1d0514287f..3aed60e204 100644 --- a/src/svg/Node/index.js +++ b/src/svg/Node/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Node = ({ color = '#83CD29', ...rest }) => ( - + ); export default Node; diff --git a/src/svg/Python/index.js b/src/svg/Python/index.js index 9d27f0a244..f029f166d7 100644 --- a/src/svg/Python/index.js +++ b/src/svg/Python/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Python = ({ color = '#FFD845', ...rest }) => ( - + ); export default Python; diff --git a/src/svg/Rectangles/index.js b/src/svg/Rectangles/index.js index 071142d877..f6677a935e 100644 --- a/src/svg/Rectangles/index.js +++ b/src/svg/Rectangles/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Rectangles = ({ color = '#1969FF', ...rest }) => ( - + ); export default Rectangles; diff --git a/src/svg/Shape/index.js b/src/svg/Shape/index.js index 161d4be6b6..18ce12c906 100644 --- a/src/svg/Shape/index.js +++ b/src/svg/Shape/index.js @@ -1,7 +1,7 @@ import React from 'react'; const Shape = ({ color = '#465282', ...rest }) => ( - + ); export default Shape; diff --git a/src/theme/Demos/index.js b/src/theme/Demos/index.js index 7779911857..47c3343228 100644 --- a/src/theme/Demos/index.js +++ b/src/theme/Demos/index.js @@ -7,7 +7,7 @@ function Demos() { return
-

Samples and Demos

+

Samples
and Demos

diff --git a/src/theme/DocSidebar/index.js b/src/theme/DocSidebar/index.js new file mode 100644 index 0000000000..0d8f7f609f --- /dev/null +++ b/src/theme/DocSidebar/index.js @@ -0,0 +1,212 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +import React, { useState, useCallback, useEffect, useRef } from 'react'; +import clsx from 'clsx'; +import { useThemeConfig, isSamePath } from '@docusaurus/theme-common'; +import useUserPreferencesContext from '@theme/hooks/useUserPreferencesContext'; +import useLockBodyScroll from '@theme/hooks/useLockBodyScroll'; +import useWindowSize, { windowSizes } from '@theme/hooks/useWindowSize'; +import useScrollPosition from '@theme/hooks/useScrollPosition'; +import Link from '@docusaurus/Link'; +import isInternalUrl from '@docusaurus/isInternalUrl'; +import Logo from '@theme/Logo'; +import IconArrow from '@theme/IconArrow'; +import IconMenu from '@theme/IconMenu'; +import styles from './styles.module.css'; +const MOBILE_TOGGLE_SIZE = 24; + +import useBaseUrl from '@docusaurus/useBaseUrl'; + +function usePrevious(value) { + const ref = useRef(value); + useEffect(() => { + ref.current = value; + }, [value]); + return ref.current; +} + +const isActiveSidebarItem = (item, activePath) => { + if (item.type === 'link') { + return isSamePath(item.href, activePath); + } + + if (item.type === 'category') { + return item.items.some(subItem => isActiveSidebarItem(subItem, activePath)); + } + + return false; +}; + +function DocSidebarItemCategory({ + item, + onItemClick, + collapsible, + activePath, + ...props +}) { + const { + items, + label + } = item; + const isActive = isActiveSidebarItem(item, activePath); + const wasActive = usePrevious(isActive); // active categories are always initialized as expanded + // the default (item.collapsed) is only used for non-active categories + + const [collapsed, setCollapsed] = useState(() => { + if (!collapsible) { + return false; + } + + return isActive ? false : item.collapsed; + }); + const menuListRef = useRef(null); + const [menuListHeight, setMenuListHeight] = useState(undefined); + + const handleMenuListHeight = (calc = true) => { + setMenuListHeight(calc ? `${menuListRef.current?.scrollHeight}px` : undefined); + }; // If we navigate to a category, it should automatically expand itself + + + useEffect(() => { + const justBecameActive = isActive && !wasActive; + + if (justBecameActive && collapsed) { + setCollapsed(false); + } + }, [isActive, wasActive, collapsed]); + const handleItemClick = useCallback(e => { + e.preventDefault(); + + if (!menuListHeight) { + handleMenuListHeight(); + } + + setTimeout(() => setCollapsed(state => !state), 100); + }, [menuListHeight]); + + if (items.length === 0) { + return null; + } + + return
  • + + {label} + +
      { + if (!collapsed) { + handleMenuListHeight(false); + } + }}> + {items.map(childItem => )} +
    +
  • ; +} + +function DocSidebarItemLink({ + item, + onItemClick, + activePath, + collapsible: _collapsible, + ...props +}) { + const { + href, + label + } = item; + const isActive = isActiveSidebarItem(item, activePath); + return
  • + + {label} + +
  • ; +} + +function DocSidebarItem(props) { + switch (props.item.type) { + case 'category': + return ; + + case 'link': + default: + return ; + } +} + +function DocSidebar({ + path, + sidebar, + sidebarCollapsible = true, + onCollapse, + isHidden +}) { + const [showResponsiveSidebar, setShowResponsiveSidebar] = useState(false); + const { + navbar: { + hideOnScroll + }, + hideableSidebar + } = useThemeConfig(); + const { + isAnnouncementBarClosed + } = useUserPreferencesContext(); + const { + scrollY + } = useScrollPosition(); + useLockBodyScroll(showResponsiveSidebar); + const windowSize = useWindowSize(); + useEffect(() => { + if (windowSize === windowSizes.desktop) { + setShowResponsiveSidebar(false); + } + }, [windowSize]); + return
    + {hideOnScroll &&
    } +
    + +
      + {sidebar.map(item => { + e.target.blur(); + setShowResponsiveSidebar(false); + }} collapsible={sidebarCollapsible} activePath={path} />)} +
    +
    + {hideableSidebar && } +
    ; +} + +export default DocSidebar; diff --git a/src/theme/DocSidebar/styles.module.css b/src/theme/DocSidebar/styles.module.css new file mode 100644 index 0000000000..33a82edb9f --- /dev/null +++ b/src/theme/DocSidebar/styles.module.css @@ -0,0 +1,121 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +:root { + --collapse-button-bg-color-dark: #2e333a; +} + +@media (min-width: 997px) { + .sidebar { + display: flex; + flex-direction: column; + height: 100vh; + position: sticky; + top: 0; + padding-top: var(--ifm-navbar-height); + width: var(--doc-sidebar-width); + transition: opacity 50ms ease; + } + + .sidebarWithHideableNavbar { + padding-top: 0; + } + + .sidebarHidden { + opacity: 0; + height: 0; + overflow: hidden; + visibility: hidden; + } + + .sidebarLogo { + display: flex !important; + align-items: center; + margin: 0 var(--ifm-navbar-padding-horizontal); + min-height: var(--ifm-navbar-height); + max-height: var(--ifm-navbar-height); + color: inherit !important; + text-decoration: none !important; + } + + .sidebarLogo img { + margin-right: 0.5rem; + height: 2rem; + } + + .menu { + flex-grow: 1; + padding: 0.5rem; + } + + .menuLinkText { + cursor: initial; + } + + .menuLinkText:hover { + background: none; + } + + .menuWithAnnouncementBar { + margin-bottom: var(--docusaurus-announcement-bar-height); + } + + .collapseSidebarButton { + display: block !important; + background-color: var(--ifm-button-background-color); + height: 40px; + position: sticky; + bottom: 0; + border-radius: 0; + } + + .collapseSidebarButtonIcon { + transform: rotate(180deg); + margin-top: 4px; + } + + html[data-theme='dark'] .collapseSidebarButton { + background-color: var(--collapse-button-bg-color-dark); + border: none; + border-left: 1px solid var(--ifm-toc-border-color); + } + + html[data-theme='dark'] .collapseSidebarButton:hover, + html[data-theme='dark'] .collapseSidebarButton:focus { + background-color: var(--ifm-color-emphasis-200); + } +} + +.sidebarLogo, +.collapseSidebarButton { + display: none; +} + +.sidebarMenuIcon { + vertical-align: middle; +} + +.sidebarMenuCloseIcon { + display: inline-flex; + justify-content: center; + align-items: center; + height: 24px; + font-size: 1.5rem; + font-weight: var(--ifm-font-weight-bold); + line-height: 0.9; + width: 24px; +} + +:global(.menu__list) :global(.menu__list) { + overflow-y: hidden; + will-change: height; + transition: height var(--ifm-transition-fast) linear; +} + +:global(.menu__list-item--collapsed) :global(.menu__list) { + height: 0px !important; +} diff --git a/src/theme/Navbar/index.js b/src/theme/Navbar/index.js index 7ca3b8c58e..5307c3d660 100644 --- a/src/theme/Navbar/index.js +++ b/src/theme/Navbar/index.js @@ -18,6 +18,8 @@ import Logo from '@theme/Logo'; import IconMenu from '@theme/IconMenu'; import styles from './styles.module.css'; // retrocompatible with v1 +import SvgHamburger from '@site/src/svg/Hamburger'; + const DefaultNavItemPosition = 'right'; // If split links by left/right // if position is unspecified, fallback to right (as v1) @@ -80,7 +82,7 @@ function Navbar() {
    {items != null && items.length !== 0 &&
    - +
    } ; } -export default Navbar; \ No newline at end of file +export default Navbar; diff --git a/src/components/RedisCard/index.jsx b/src/theme/RedisCard/index.jsx similarity index 100% rename from src/components/RedisCard/index.jsx rename to src/theme/RedisCard/index.jsx diff --git a/src/components/RedisCard/styles.css b/src/theme/RedisCard/styles.css similarity index 100% rename from src/components/RedisCard/styles.css rename to src/theme/RedisCard/styles.css diff --git a/src/theme/Resources/index.js b/src/theme/Resources/index.js index 5877073ebe..81f0202adb 100644 --- a/src/theme/Resources/index.js +++ b/src/theme/Resources/index.js @@ -1,19 +1,46 @@ import React from 'react'; import useBaseUrl from '@docusaurus/useBaseUrl'; +import Slider from 'react-slick'; function Resources() { + var sliderSettings = { + infinite: true, + centerMode: true, + centerPadding: '32.5px', + speed: 500, + arrows: false, + dots: true, + responsive: [ + { + breakpoint: 10000, + settings: 'unslick' + }, + { + breakpoint: 996, + settings: { + slidesToShow: 2, + } + }, + { + breakpoint: 750, + settings: { + slidesToShow: 1, + } + } + ] + }; return
    -

    Resources & Community

    +

    Resources
    & Community

    Find documentation, sample code ad tools to develop with your favorite language.

    -
    +
    - +
    Blog

    Serverless Development with AWS Lambda and Redis Enterprise Cloud

    @@ -51,7 +78,7 @@ function Resources() {
    -
    +
    Join the Community diff --git a/static/img/logo-1-dark.png b/static/img/logo-1-dark.png new file mode 100644 index 0000000000..1ff736ddbd Binary files /dev/null and b/static/img/logo-1-dark.png differ diff --git a/static/img/logo-2-dark.png b/static/img/logo-2-dark.png new file mode 100644 index 0000000000..d91a019ff6 Binary files /dev/null and b/static/img/logo-2-dark.png differ diff --git a/yarn.lock b/yarn.lock index f6b21cf0b2..eeeb71c36a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3590,6 +3590,10 @@ enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" +enquire.js@^2.1.6: + version "2.1.6" + resolved "https://registry.npm.taobao.org/enquire.js/download/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" + entities@^1.1.1, entities@~1.1.1: version "1.1.2" resolved "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1602896991143&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -5345,6 +5349,12 @@ json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" +json2mq@^0.2.0: + version "0.2.0" + resolved "https://registry.npm.taobao.org/json2mq/download/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" + dependencies: + string-convert "^0.2.0" + json3@^3.3.3: version "3.3.3" resolved "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" @@ -5508,6 +5518,10 @@ lodash.curry@^4.0.1: version "4.1.1" resolved "https://registry.npm.taobao.org/lodash.curry/download/lodash.curry-4.1.1.tgz#248e36072ede906501d75966200a86dab8b23170" +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.npm.taobao.org/lodash.debounce/download/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + lodash.defaults@^4.0.1: version "4.2.0" resolved "https://registry.npm.taobao.org/lodash.defaults/download/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" @@ -7618,6 +7632,16 @@ react-side-effect@^2.1.0: version "2.1.1" resolved "https://registry.npm.taobao.org/react-side-effect/download/react-side-effect-2.1.1.tgz#66c5701c3e7560ab4822a4ee2742dee215d72eb3" +react-slick@^0.28.0: + version "0.28.0" + resolved "https://registry.npm.taobao.org/react-slick/download/react-slick-0.28.0.tgz#b3f8511b0facca41cabe35cbf37771250f8287ea" + dependencies: + classnames "^2.2.5" + enquire.js "^2.1.6" + json2mq "^0.2.0" + lodash.debounce "^4.0.8" + resize-observer-polyfill "^1.5.0" + react-textarea-autosize@^6.1.0: version "6.1.0" resolved "https://registry.npm.taobao.org/react-textarea-autosize/download/react-textarea-autosize-6.1.0.tgz#df91387f8a8f22020b77e3833c09829d706a09a5" @@ -7925,6 +7949,10 @@ requires-port@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" +resize-observer-polyfill@^1.5.0: + version "1.5.1" + resolved "https://registry.npm.taobao.org/resize-observer-polyfill/download/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + resolve-cwd@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" @@ -8554,6 +8582,10 @@ strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" +string-convert@^0.2.0: + version "0.2.1" + resolved "https://registry.npm.taobao.org/string-convert/download/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" + string-width@^1.0.1: version "1.0.2" resolved "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"