diff --git a/.cz.yaml b/.cz.yaml index 6a69b300..b0374b8a 100644 --- a/.cz.yaml +++ b/.cz.yaml @@ -3,6 +3,6 @@ commitizen: name: cz_conventional_commits tag_format: v$version update_changelog_on_bump: true - version: 3.7.0 + version: 3.8.0 version_files: - package.json diff --git a/.env.example b/.env.example index 2f762454..d4b23bbc 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,5 @@ PORT=8080 GOOGLE_ANALYTICS_MEASUREMENT_ID=G-XXXXXXX GOOGLE_API_KEY= -GOOGLE_CLIENT_ID= \ No newline at end of file +GOOGLE_CLIENT_ID= +GOOGLE_GAE_SERVICE_URL=https://your-project-id.region-id.r.appspot.com \ No newline at end of file diff --git a/@types/component.d.ts b/@types/component.d.ts index 117c88e2..3c3c3db9 100644 --- a/@types/component.d.ts +++ b/@types/component.d.ts @@ -1,8 +1,8 @@ -declare type TComponentPropsWithoutRef = ( +declare type TComponentPropsWithoutRef = ( Omit, keyof P> ); -declare type TComponentPropsWithoutRefWithAs = ( +declare type TComponentPropsWithoutRefWithAs = ( TComponentPropsWithoutRef & { as?: T; } diff --git a/CHANGELOG.md b/CHANGELOG.md index c7d8e691..b06d5695 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,50 @@ +## v3.8.0 (2022-11-05) + +### Feat + +- **components**: forward ref for `ToggleButton` +- **components**: add `SourcePostScreenshotButton` +- **label-form**: add image button +- **label-form**: change error message to error notification +- **editor**: change error message to error notification +- **label-form**: support screenshot in edit label form +- **helpers**: add `sleep()` +- **subscription**: revise `SubscriptionItem` layout +- **label**: revise `LabelInfo` layout + +### Fix + +- **label-form**: show screenshot toggle button only when the post is available + +### Refactor + +- **components**: update tooltip props +- **hooks**: add `useSourcePostScreenshot` +- **components**: spread props +- **components**: destructure and spread the remaining props + +## v3.8.0-alpha.2 (2022-11-02) + +### Feat + +- **label**: support capturing thread title for screenshot +- **label**: remove image enlarge buttons in screenshot +- **auth**: prompt user to select account + +### Refactor + +- **typings**: update `useGoogleAuthorization` + +## v3.8.0-alpha (2022-11-01) + +### Feat + +- **screenshot**: use proxy for cross-origin images + +### Refactor + +- **hooks**: update `useScreenshot` + ## v3.7.0 (2022-10-21) ### Feat diff --git a/README.md b/README.md index 572d1403..db35ca2a 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ pnpm install For a smooth development experience, you may want to execute the following commands simultaneously: -### Start development +### Start development server ```bash pnpm dev:main @@ -43,16 +43,15 @@ pnpm dev:main pnpm type:scss[:watch] ``` -### Install +### Install development build -When `webpack-dev-server` completed the first compilation, follow these steps to test on [LIHKG](https://lihkg.com/): +1. Start the development server +2. Install [Tampermonkey](https://www.tampermonkey.net/) (or your favourite userscript manager) +3. Visit [http://localhost:8080/libel.proxy.user.js](http://localhost:8080/libel.proxy.user.js) +4. Click **Install** +5. Go back to [LIHKG](https://lihkg.com/) and reload the page -1. Install [Tampermonkey](https://www.tampermonkey.net/) (or your favourite userscript manager) -2. Visit [http://localhost:8080/libel.proxy.user.js](http://localhost:8080/libel.proxy.user.js) -3. Click **Install** / **Reinstall** / **Update** -4. Go back to [LIHKG](https://lihkg.com/) and reload the page - -Whenever you made changes and `webpack-dev-server` recompiled the files, repeat step 2 to 4. +Whenever a file has changed, `webpack-dev-server` will recompile the code, and you can simply reload the page to see the changes. *** @@ -78,6 +77,8 @@ This project only provides technical support for the [features](https://github.c [Privacy Policy](https://github.com/kitce/libel/wiki/%E7%A7%81%E9%9A%B1%E6%94%BF%E7%AD%96) +*** + ## License MIT License diff --git a/config/config.ts b/config/config.ts index 32abb602..87616dc5 100644 --- a/config/config.ts +++ b/config/config.ts @@ -19,3 +19,4 @@ export const debugEgg = process.env.EGG === 'true'; export const publicURL = dev ? `http://localhost:${port}` : homepage; export const publicDataURL = `${publicURL}/${Directory.Data}`; export const publicDistURL = dev ? publicURL : `${publicURL}/${Directory.Dist}`; +export const imageProxyURL = dev ? `http://localhost:${port + 1}` : process.env.GOOGLE_GAE_SERVICE_URL; diff --git a/config/webpack/plugins/environment.ts b/config/webpack/plugins/environment.ts index 4884b64d..d8771f09 100644 --- a/config/webpack/plugins/environment.ts +++ b/config/webpack/plugins/environment.ts @@ -4,7 +4,8 @@ const { PORT, GOOGLE_ANALYTICS_MEASUREMENT_ID, GOOGLE_API_KEY, - GOOGLE_CLIENT_ID + GOOGLE_CLIENT_ID, + GOOGLE_GAE_SERVICE_URL } = process.env; const plugin = new EnvironmentPlugin({ @@ -13,7 +14,8 @@ const plugin = new EnvironmentPlugin({ PORT, GOOGLE_ANALYTICS_MEASUREMENT_ID, GOOGLE_API_KEY, - GOOGLE_CLIENT_ID + GOOGLE_CLIENT_ID, + GOOGLE_GAE_SERVICE_URL }); export default plugin; diff --git a/dist/egg.js b/dist/egg.js index 37c84907..879d75ef 100644 --- a/dist/egg.js +++ b/dist/egg.js @@ -1,3 +1,3 @@ /*! For license information please see egg.js.LICENSE.txt */ -!function(){var e={9803:function(e,t){var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t._3V1lN0nDwZVDoc14rz7D8w{align-items:center;display:flex;justify-content:center}@media (min-width:768px){body[data-app-ho] ._2k_IfadJWjcLJlSKkz_R2-._1LG9rEYF-ZGy3DZIlht7wo>._3V1lN0nDwZVDoc14rz7D8w{z-index:0}}._2k_IfadJWjcLJlSKkz_R2-._1LG9rEYF-ZGy3DZIlht7wo>._3V1lN0nDwZVDoc14rz7D8w .YfN4W{align-items:center;display:inline-flex;justify-content:center;margin-left:.5rem}","",{version:3,sources:["webpack://./src/eggs/martyr-rip/martyr-rip.module.scss","webpack://./src/stylesheets/mixins/_responsive.scss"],names:[],mappings:"AAGE,0EAAA,kBAAA,CAAA,YAAA,CAAA,sBAAA,CAGE,yBCCF,4FAAA,SAAA,CAAA,CDKE,iFAAA,kBAAA,CAAA,mBAAA,CAAA,sBAAA,CACA,iBADA",sourcesContent:["@import '../../stylesheets/base';\n\n:global(#{$lihkg-selector-nav-category}) {\n @apply flex items-center justify-center;\n \n @include desktop-mode() {\n @screen md {\n z-index: 0;\n }\n }\n \n .link {\n @apply inline-flex items-center justify-center;\n @apply ml-2;\n }\n}\n","@mixin mobile-mode() {\n body[data-app-mb] & {\n @content;\n }\n}\n\n@mixin desktop-mode() {\n body[data-app-ho] & {\n @content;\n }\n}\n"],sourceRoot:""}]),o.locals={link:"YfN4W"},t.Z=o},2438:function(e,t,n){"use strict";var r=n(8446),a=n.n(r),l=n(8218),o=n.n(l),i=n(3014),u=n.n(i),s=n(3253),c=o()(a()),f=u()(s);c.push([e.id,".F5yWj .notice{position:relative}.F5yWj .notice .yK\\+gl{display:inline-block;overflow:hidden;position:relative;width:100%}.F5yWj .notice .yK\\+gl:after,.F5yWj .notice .yK\\+gl:before{position:absolute}.F5yWj .notice .yK\\+gl:before{background-image:url("+f+'),linear-gradient(225deg,#000,transparent 50%);background-position:calc(100% - .5rem) .5rem,0 0;background-repeat:no-repeat;background-size:2rem,100%;content:"";height:4rem;padding:.5rem;right:0;top:0;width:4rem;z-index:1}.F5yWj .notice .yK\\+gl:after{--tw-translate-y:100%;background-image:linear-gradient(transparent,#000);bottom:0;box-sizing:border-box;color:#fff;content:attr(aria-label);font-size:1.25rem;left:0;line-height:1.75rem;padding:1rem;right:0;text-align:center;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.5s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:1}.F5yWj .notice .yK\\+gl:hover:after{--tw-translate-y:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.F5yWj .notice .yK\\+gl .sW4Zw{height:100%;left:0;position:absolute;top:0;width:100%}',"",{version:3,sources:["webpack://./src/eggs/prince-edward-831/prince-edward-831.module.scss","webpack://./src/stylesheets/mixins/_brand.scss","webpack://./src/stylesheets/variables/_colors.scss"],names:[],mappings:"AAGE,eAAA,iBAAA,CAGE,uBACA,oBAAA,CACA,eAAA,CAFA,iBAAA,CAGA,UAHA,CAOE,2DAAA,iBAAA,CAIF,8BCXF,qGAAA,CAIA,gDAAA,CARA,2BAAA,CAYA,yBAAA,CDII,UAAA,CCdJ,WAAA,CADA,aAAA,CAFA,OAAA,CAAA,KAAA,CAIA,UAAA,CDeI,SAAA,CAIF,6BAQE,qBAAA,CAGA,kDAAA,CATA,QAAA,CAEA,qBAAA,CAEA,UEHQ,CFFR,wBAAA,CAIA,iBAAA,CAHA,MAAA,CAGA,mBAAA,CAFA,YAAA,CADA,OAAA,CAGA,iBAAA,CAGA,6LAAA,CAEA,uBAAA,CADA,6BAAA,CAAA,kDAAA,CAGA,SAAA,CAKE,mCAAA,oBAAA,CAAA,6LAAA,CAKF,8BACA,WAAA,CADA,MAAA,CAAA,iBAAA,CAAA,KAAA,CACA,UADA",sourcesContent:["@import '../../stylesheets/base';\n\n.egg :global(#{$lihkg-selector-notice}) {\n @apply relative;\n\n .container {\n @apply relative;\n @apply inline-block;\n @apply overflow-hidden;\n @apply w-full;\n\n &:before,\n &:after {\n @apply absolute;\n }\n\n // logo\n &:before {\n content: '';\n @include logo();\n z-index: 1;\n }\n\n // caption\n &:after {\n content: attr(aria-label);\n @apply right-0 bottom-0 left-0;\n @apply p-4;\n @apply box-border;\n @apply text-center text-xl;\n color: $color-white;\n @apply transform;\n @apply translate-y-full;\n @apply transition-transform;\n @apply duration-500;\n background-image: linear-gradient(transparent, #000);\n z-index: 1;\n }\n\n &:hover {\n &:after {\n @apply translate-y-0;\n }\n }\n\n .slideshow {\n @apply absolute top-0 left-0;\n @apply h-full w-full;\n }\n }\n}\n","@mixin logo($size: 2rem, $margin: 0.5rem) {\n @apply top-0 right-0;\n @apply bg-no-repeat;\n @apply p-2;\n height: $size * 2;\n width: $size * 2;\n background-image: (\n $image-logo,\n linear-gradient(225deg, #000, transparent 50%)\n );\n background-position: (\n calc(100% - #{$margin}) $margin,\n 0 0\n );\n background-size: (\n $size,\n 100%\n );\n}\n","$color-grey01: #f2f2f2;\n$color-grey02: #e0e0e0;\n$color-grey03: #d9d9d9;\n$color-grey04: #cccccc;\n$color-grey05: #aaaaaa;\n$color-grey06: #444443;\n$color-grey07: #3f3f3f;\n$color-grey08: #3b3a39;\n$color-grey09: #333333;\n$color-grey10: #808080;\n$color-grey11: #a0a0a0;\n$color-grey12: #848482;\n\n$color-white01: #f6f6f6;\n\n$color-black01: #292827;\n$color-black02: #222222;\n$color-black03: #151515;\n\n$color-blue01: #3498db;\n$color-blue02: #2574a9;\n\n$color-red01: #fb0808;\n$color-red02: #c0392b;\n\n$color-yellow01: #fbc308;\n\n$color-white: #ffffff;\n$color-black: #000000;\n"],sourceRoot:""}]),c.locals={egg:"F5yWj",container:"yK+gl",slideshow:"sW4Zw"},t.Z=c},7669:function(e,t,n){"use strict";var r=n(8446),a=n.n(r),l=n(8218),o=n.n(l),i=n(3014),u=n.n(i),s=n(9919),c=o()(a()),f=u()(s);c.push([e.id,".Be-uC #leftPanel{position:relative}.Be-uC #leftPanel ._3sjc0{--tw-drop-shadow:drop-shadow(0 0 1rem #000);background-image:url("+f+");background-position:50%;background-repeat:no-repeat;background-size:contain;filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);height:100%;left:0;opacity:.1;position:fixed;top:0;width:100%}@media (min-width:768px){.Be-uC #leftPanel ._3sjc0{max-width:480px;min-width:300px;width:30%}}body[data-app-dm] .Be-uC #leftPanel ._3sjc0{opacity:.05}","",{version:3,sources:["webpack://./src/eggs/revolution-of-our-times/revolution-of-our-times.module.scss","webpack://./src/stylesheets/variables/_images.scss"],names:[],mappings:"AAGE,kBAAA,iBAAA,CAGE,0BAGA,2CAAA,CAGA,wDCXmB,CDUnB,uBAAA,CAAA,2BAAA,CAAA,uBAAA,CAHA,gLAAA,CADA,WAAA,CADA,MAAA,CAIA,UAAA,CAJA,cAAA,CAAA,KAAA,CACA,UADA,CAQA,yBATF,0BAYI,eAAA,CADA,eAAA,CADA,SAEA,CAAA,CAIA,4CAAA,WAAA",sourcesContent:["@import '../../stylesheets/base';\n\n.egg :global(#{$lihkg-selector-left-panel}) {\n @apply relative;\n\n .underlay {\n @apply fixed top-0 left-0;\n @apply h-full w-full;\n @apply filter;\n --tw-drop-shadow: drop-shadow(0 0 1rem black);\n @apply opacity-10;\n @apply bg-center bg-contain bg-no-repeat;\n background-image: $image-black-bauhinia;\n\n @screen md {\n width: 30%;\n min-width: 300px;\n max-width: 480px;\n }\n\n @include dark-mode() {\n @apply opacity-5;\n }\n }\n}\n","$image-721-yuen-long-mtr: url('/assets/images/721/yuen-long-mtr.jpg');\n$image-black-bauhinia: url('/assets/images/Black_Bauhinia.svg');\n$image-logo: url('/assets/logos/libel.png');\n$image-tiananmen-tank-man: url('/assets/images/tiananmen-tank-man/tiananmen-tank-man.jpg');\n"],sourceRoot:""}]),c.locals={egg:"Be-uC",underlay:"_3sjc0"},t.Z=c},8008:function(e,t,n){"use strict";var r=n(8446),a=n.n(r),l=n(8218),o=n.n(l)()(a());o.push([e.id,"._2k_IfadJWjcLJlSKkz_R2-._1LG9rEYF-ZGy3DZIlht7wo>._3V1lN0nDwZVDoc14rz7D8w{align-items:center;display:flex;justify-content:center}@media (min-width:768px){body[data-app-ho] ._2k_IfadJWjcLJlSKkz_R2-._1LG9rEYF-ZGy3DZIlht7wo>._3V1lN0nDwZVDoc14rz7D8w{z-index:0}}._2k_IfadJWjcLJlSKkz_R2-._1LG9rEYF-ZGy3DZIlht7wo>._3V1lN0nDwZVDoc14rz7D8w ._8itvU{align-items:center;display:inline-flex;justify-content:center;margin-left:.5rem;-webkit-text-decoration-line:none;text-decoration-line:none}","",{version:3,sources:["webpack://./src/eggs/tiananmen-square-massacre/tiananmen-square-massacre.module.scss","webpack://./src/stylesheets/mixins/_responsive.scss"],names:[],mappings:"AAGE,0EAAA,kBAAA,CAAA,YAAA,CAAA,sBAAA,CAGE,yBCCF,4FAAA,SAAA,CAAA,CDKE,kFAAA,kBAAA,CAAA,mBAAA,CAAA,sBAAA,CACA,iBAAA,CACA,iCAAA,CAAA,yBAFA",sourcesContent:["@import '../../stylesheets/base';\n\n:global(#{$lihkg-selector-nav-category}) {\n @apply flex items-center justify-center;\n\n @include desktop-mode() {\n @screen md {\n z-index: 0;\n }\n }\n\n .link {\n @apply inline-flex items-center justify-center;\n @apply ml-2;\n @apply no-underline;\n }\n}\n","@mixin mobile-mode() {\n body[data-app-mb] & {\n @content;\n }\n}\n\n@mixin desktop-mode() {\n body[data-app-ho] & {\n @content;\n }\n}\n"],sourceRoot:""}]),o.locals={link:"_8itvU"},t.Z=o},3399:function(e,t,n){"use strict";var r=n(8446),a=n.n(r),l=n(8218),o=n.n(l),i=n(3014),u=n.n(i),s=n(4676),c=n(3253),f=o()(a()),d=u()(s),p=u()(c);f.push([e.id,".yHOVa .notice{position:relative}.yHOVa .notice .fJIcl{background-image:url("+d+");background-position:50%;background-repeat:no-repeat;background-size:cover;display:inline-block;position:relative;width:100%}.yHOVa .notice .fJIcl:after,.yHOVa .notice .fJIcl:before{position:absolute}.yHOVa .notice .fJIcl:before{background-image:url("+p+'),linear-gradient(225deg,#000,transparent 50%);background-position:calc(100% - .5rem) .5rem,0 0;background-repeat:no-repeat;background-size:2rem,100%;content:"";height:4rem;padding:.5rem;right:0;top:0;width:4rem;z-index:1}',"",{version:3,sources:["webpack://./src/eggs/tiananmen-tank-man/tiananmen-tank-man.module.scss","webpack://./src/stylesheets/variables/_images.scss","webpack://./src/stylesheets/mixins/_brand.scss"],names:[],mappings:"AAGE,eAAA,iBAAA,CAGE,sBAIA,wDCPuB,CDMvB,uBAAA,CAAA,2BAAA,CAAA,qBAAA,CAFA,oBAAA,CADA,iBAAA,CAEA,UAFA,CAQE,yDAAA,iBAAA,CAIF,6BEZF,qGAAA,CAIA,gDAAA,CARA,2BAAA,CAYA,yBAAA,CFKI,UAAA,CEfJ,WAAA,CADA,aAAA,CAFA,OAAA,CAAA,KAAA,CAIA,UAAA,CFgBI,SAAA",sourcesContent:["@import '../../stylesheets/base';\n\n.egg :global(#{$lihkg-selector-notice}) {\n @apply relative;\n\n .image {\n @apply relative;\n @apply inline-block;\n @apply w-full;\n @apply bg-center bg-cover bg-no-repeat;\n background-image: $image-tiananmen-tank-man;\n\n &:before,\n &:after {\n @apply absolute;\n }\n\n // logo\n &:before {\n content: '';\n @include logo();\n z-index: 1;\n }\n }\n}\n","$image-721-yuen-long-mtr: url('/assets/images/721/yuen-long-mtr.jpg');\n$image-black-bauhinia: url('/assets/images/Black_Bauhinia.svg');\n$image-logo: url('/assets/logos/libel.png');\n$image-tiananmen-tank-man: url('/assets/images/tiananmen-tank-man/tiananmen-tank-man.jpg');\n","@mixin logo($size: 2rem, $margin: 0.5rem) {\n @apply top-0 right-0;\n @apply bg-no-repeat;\n @apply p-2;\n height: $size * 2;\n width: $size * 2;\n background-image: (\n $image-logo,\n linear-gradient(225deg, #000, transparent 50%)\n );\n background-position: (\n calc(100% - #{$margin}) $margin,\n 0 0\n );\n background-size: (\n $size,\n 100%\n );\n}\n"],sourceRoot:""}]),f.locals={egg:"yHOVa",image:"fJIcl"},t.Z=f},4586:function(e,t,n){"use strict";var r=n(8446),a=n.n(r),l=n(8218),o=n.n(l),i=n(3014),u=n.n(i),s=n(3253),c=o()(a()),f=u()(s);c.push([e.id,".awIEC .notice{position:relative}.awIEC .notice ._3MDdg{display:inline-block;overflow:hidden;position:relative;width:100%}.awIEC .notice ._3MDdg:after,.awIEC .notice ._3MDdg:before{position:absolute}.awIEC .notice ._3MDdg:before{background-image:url("+f+'),linear-gradient(225deg,#000,transparent 50%);background-position:calc(100% - .5rem) .5rem,0 0;background-repeat:no-repeat;background-size:2rem,100%;content:"";height:4rem;padding:.5rem;right:0;top:0;width:4rem;z-index:1}.awIEC .notice ._3MDdg:after{--tw-translate-y:100%;background-image:linear-gradient(transparent,#000);bottom:0;box-sizing:border-box;color:#fff;content:attr(aria-label);font-size:1.25rem;left:0;line-height:1.75rem;padding:1rem;right:0;text-align:center;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transition-duration:.5s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:1}.awIEC .notice ._3MDdg:hover:after{--tw-translate-y:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.awIEC .notice ._3MDdg .DED3s{height:100%;left:0;position:absolute;top:0;width:100%}',"",{version:3,sources:["webpack://./src/eggs/yuen-long-721/yuen-long-721.module.scss","webpack://./src/stylesheets/mixins/_brand.scss","webpack://./src/stylesheets/variables/_colors.scss"],names:[],mappings:"AAGE,eAAA,iBAAA,CAGE,uBACA,oBAAA,CACA,eAAA,CAFA,iBAAA,CAGA,UAHA,CAOE,2DAAA,iBAAA,CAIF,8BCXF,qGAAA,CAIA,gDAAA,CARA,2BAAA,CAYA,yBAAA,CDII,UAAA,CCdJ,WAAA,CADA,aAAA,CAFA,OAAA,CAAA,KAAA,CAIA,UAAA,CDeI,SAAA,CAIF,6BAQE,qBAAA,CAGA,kDAAA,CATA,QAAA,CAEA,qBAAA,CAEA,UEHQ,CFFR,wBAAA,CAIA,iBAAA,CAHA,MAAA,CAGA,mBAAA,CAFA,YAAA,CADA,OAAA,CAGA,iBAAA,CAGA,6LAAA,CAEA,uBAAA,CADA,6BAAA,CAAA,kDAAA,CAGA,SAAA,CAKE,mCAAA,oBAAA,CAAA,6LAAA,CAKF,8BACA,WAAA,CADA,MAAA,CAAA,iBAAA,CAAA,KAAA,CACA,UADA",sourcesContent:["@import '../../stylesheets/base';\n\n.egg :global(#{$lihkg-selector-notice}) {\n @apply relative;\n\n .container {\n @apply relative;\n @apply inline-block;\n @apply overflow-hidden;\n @apply w-full;\n\n &:before,\n &:after {\n @apply absolute;\n }\n\n // logo\n &:before {\n content: '';\n @include logo();\n z-index: 1;\n }\n\n // caption\n &:after {\n content: attr(aria-label);\n @apply right-0 bottom-0 left-0;\n @apply p-4;\n @apply box-border;\n @apply text-center text-xl;\n color: $color-white;\n @apply transform;\n @apply translate-y-full;\n @apply transition-transform;\n @apply duration-500;\n background-image: linear-gradient(transparent, #000);\n z-index: 1;\n }\n\n &:hover {\n &:after {\n @apply translate-y-0;\n }\n }\n\n .slideshow {\n @apply absolute top-0 left-0;\n @apply h-full w-full;\n }\n }\n}\n","@mixin logo($size: 2rem, $margin: 0.5rem) {\n @apply top-0 right-0;\n @apply bg-no-repeat;\n @apply p-2;\n height: $size * 2;\n width: $size * 2;\n background-image: (\n $image-logo,\n linear-gradient(225deg, #000, transparent 50%)\n );\n background-position: (\n calc(100% - #{$margin}) $margin,\n 0 0\n );\n background-size: (\n $size,\n 100%\n );\n}\n","$color-grey01: #f2f2f2;\n$color-grey02: #e0e0e0;\n$color-grey03: #d9d9d9;\n$color-grey04: #cccccc;\n$color-grey05: #aaaaaa;\n$color-grey06: #444443;\n$color-grey07: #3f3f3f;\n$color-grey08: #3b3a39;\n$color-grey09: #333333;\n$color-grey10: #808080;\n$color-grey11: #a0a0a0;\n$color-grey12: #848482;\n\n$color-white01: #f6f6f6;\n\n$color-black01: #292827;\n$color-black02: #222222;\n$color-black03: #151515;\n\n$color-blue01: #3498db;\n$color-blue02: #2574a9;\n\n$color-red01: #fb0808;\n$color-red02: #c0392b;\n\n$color-yellow01: #fbc308;\n\n$color-white: #ffffff;\n$color-black: #000000;\n"],sourceRoot:""}]),c.locals={egg:"awIEC",container:"_3MDdg",slideshow:"DED3s"},t.Z=c},4166:function(e,t,n){"use strict";var r=n(8446),a=n.n(r),l=n(8218),o=n.n(l)()(a());o.push([e.id,"*,:after,:before{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }","",{version:3,sources:["webpack://./src/stylesheets/main.scss"],names:[],mappings:"AAAA,iBAAA,kBAAA,CAAA,kBAAA,CAAA,aAAA,CAAA,aAAA,CAAA,aAAA,CAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,YAAA,CAAA,iBAAA,CAAA,qCAAA,CAAA,cAAA,CAAA,mBAAA,CAAA,qBAAA,CAAA,sBAAA,CAAA,uBAAA,CAAA,iBAAA,CAAA,0BAAA,CAAA,2BAAA,CAAA,mCAAA,CAAA,uCAAA,CAAA,gCAAA,CAAA,2BAAA,CAAA,mCAAA,CAAA,WAAA,CAAA,iBAAA,CAAA,eAAA,CAAA,gBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,eAAA,CAAA,YAAA,CAAA,kBAAA,CAAA,oBAAA,CAAA,0BAAA,CAAA,wBAAA,CAAA,yBAAA,CAAA,0BAAA,CAAA,sBAAA,CAAA,uBAAA,CAAA,wBAAA,CAAA,qBAAA",sourcesContent:["@tailwind base;\n"],sourceRoot:""}]),t.Z=o},6955:function(e,t,n){"use strict";var r=n(8446),a=n.n(r),l=n(8218),o=n.n(l)()(a());o.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]),o.locals={app:"#app",drawer:"._1H_MPAqZWxI0DjGT6LORkT","drawer-sidebar-top-items-container":"._3chEw1COjDsJDNGekjbxKP",drawerSidebarTopItemsContainer:"._3chEw1COjDsJDNGekjbxKP","emote-menu-toolbar":"._2tG3UoD9Ve4lFfCrubml-v",emoteMenuToolbar:"._2tG3UoD9Ve4lFfCrubml-v","emote-menu":"._1m7EaebkdoQj6IdUElH2nl",emoteMenu:"._1m7EaebkdoQj6IdUElH2nl","left-panel":"#leftPanel",leftPanel:"#leftPanel","modal-content":"._3dbMg7zkkTIVJ5VZ3ygu4-",modalContent:"._3dbMg7zkkTIVJ5VZ3ygu4-","modal-title":"._2b5VMoBy8yIXlX-wC8v57F",modalTitle:"._2b5VMoBy8yIXlX-wC8v57F",modal:"._34dVbr5A8khk2N65H9Nl-j","nav-category":"._2k_IfadJWjcLJlSKkz_R2-._1LG9rEYF-ZGy3DZIlht7wo > ._3V1lN0nDwZVDoc14rz7D8w",navCategory:"._2k_IfadJWjcLJlSKkz_R2-._1LG9rEYF-ZGy3DZIlht7wo > ._3V1lN0nDwZVDoc14rz7D8w","nav-sticky-hidden":"._2I64HtzXifGnzVwEZLvbxW",navStickyHidden:"._2I64HtzXifGnzVwEZLvbxW",nav:"._2QLPqUPPLd8fXI2JwZuY7A._2TGjRqy4HZOetvEnAViFOg",nickname:".ZZtOrmcIRcvdpnW09DzFk",notice:".notice","reply-item-blocked-user":"._1bzx9aiZMAUBeD_i_gRY4a",replyItemBlockedUser:"._1bzx9aiZMAUBeD_i_gRY4a","reply-item-inner-body-heading":"._1Hi94Pa6lplJ436NQaMbEt > ._1VcuFUmnOEK51TsshmrnJM",replyItemInnerBodyHeading:"._1Hi94Pa6lplJ436NQaMbEt > ._1VcuFUmnOEK51TsshmrnJM","reply-item-inner-body":"._1Hi94Pa6lplJ436NQaMbEt",replyItemInnerBody:"._1Hi94Pa6lplJ436NQaMbEt","reply-item-inner":"._2bokd4pLvU5_-Lc97NVqzn",replyItemInner:"._2bokd4pLvU5_-Lc97NVqzn","reply-item":"._36ZEkSvpdj_igmog0nluzh",replyItem:"._36ZEkSvpdj_igmog0nluzh","reply-list":"._3jxQCFWg9LDtkSkIVLzQ8L",replyList:"._3jxQCFWg9LDtkSkIVLzQ8L","reply-modal":"._15Y0ebHstpjSjX2xCZCZ8U",replyModal:"._15Y0ebHstpjSjX2xCZCZ8U","right-panel-container":".eslltWt3HgKnG_miBwvfx",rightPanelContainer:".eslltWt3HgKnG_miBwvfx","right-panel":"#rightPanel",rightPanel:"#rightPanel","split-view":"#splitView",splitView:"#splitView","submission-form":".Vo7qCfQ1zcxviGmeMySZl",submissionForm:".Vo7qCfQ1zcxviGmeMySZl","thread-item-inner":"._21IQKhlBjN2jlHS_TVgI3l",threadItemInner:"._21IQKhlBjN2jlHS_TVgI3l","thread-item":".wQ4Ran7ySbKd8PdMeHZZR",threadItem:".wQ4Ran7ySbKd8PdMeHZZR","thread-link":"._2A_7bGY9QAXcGu1neEYDJB",threadLink:"._2A_7bGY9QAXcGu1neEYDJB","user-card-buttons-container":"._2c5AwJ_0ePFIYub8OFE97J",userCardButtonsContainer:"._2c5AwJ_0ePFIYub8OFE97J"},t.Z=o},8218:function(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n=e(t);return t[2]?"@media ".concat(t[2]," {").concat(n,"}"):n})).join("")},t.i=function(e,n,r){"string"==typeof e&&(e=[[null,e,""]]);var a={};if(r)for(var l=0;le.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}},6838:function(e){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},5073:function(e){e.exports=function(e){return null!=e&&"object"==typeof e}},6764:function(e,t,n){var r=n(732),a=n(5073);e.exports=function(e){return"symbol"==typeof e||a(e)&&"[object Symbol]"==r(e)}},1102:function(e,t,n){var r=n(7017),a=n(7616),l=n(986),o=parseFloat,i=Math.min,u=Math.random;e.exports=function(e,t,n){if(n&&"boolean"!=typeof n&&a(e,t,n)&&(t=n=void 0),void 0===n&&("boolean"==typeof t?(n=t,t=void 0):"boolean"==typeof e&&(n=e,e=void 0)),void 0===e&&void 0===t?(e=0,t=1):(e=l(e),void 0===t?(t=e,e=0):t=l(t)),e>t){var s=e;e=t,t=s}if(n||e%1||t%1){var c=u();return i(e+c*(t-e+o("1e-"+((c+"").length-1))),t)}return r(e,t)}},986:function(e,t,n){var r=n(2931);e.exports=function(e){return e?Infinity===(e=r(e))||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}},2931:function(e,t,n){var r=n(3124),a=n(6838),l=n(6764),o=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,u=/^0o[0-7]+$/i,s=parseInt;e.exports=function(e){if("number"==typeof e)return e;if(l(e))return NaN;if(a(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=a(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=r(e);var n=i.test(e);return n||u.test(e)?s(e.slice(2),n?2:8):o.test(e)?NaN:+e}},4283:function(e,t,n){"use strict";var r=n(3236),a=n(9404);function l(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n