diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..6b7235f --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,15 @@ +/* eslint-env node */ +require("@rushstack/eslint-patch/modern-module-resolution"); + +module.exports = { + root: true, + extends: [ + "plugin:vue/vue3-essential", + "eslint:recommended", + "@vue/eslint-config-typescript/recommended", + "@vue/eslint-config-prettier", + ], + env: { + "vue/setup-compiler-macros": true, + }, +}; diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..38adffa --- /dev/null +++ b/.gitignore @@ -0,0 +1,28 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +.DS_Store +dist +dist-ssr +coverage +*.local + +/cypress/videos/ +/cypress/screenshots/ + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..e8eb4a6 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,676 @@ +### GNU GENERAL PUBLIC LICENSE + +Version 3, 29 June 2007 + +Copyright (C) 2007 Free Software Foundation, Inc. + + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +### Preamble + +The GNU General Public License is a free, copyleft license for +software and other kinds of works. + +The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom +to share and change all versions of a program--to make sure it remains +free software for all its users. We, the Free Software Foundation, use +the GNU General Public License for most of our software; it applies +also to any other work released this way by its authors. You can apply +it to your programs, too. + +When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you +have certain responsibilities if you distribute copies of the +software, or if you modify it: responsibilities to respect the freedom +of others. + +For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + +Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + +Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the +manufacturer can do so. This is fundamentally incompatible with the +aim of protecting users' freedom to change the software. The +systematic pattern of such abuse occurs in the area of products for +individuals to use, which is precisely where it is most unacceptable. +Therefore, we have designed this version of the GPL to prohibit the +practice for those products. If such problems arise substantially in +other domains, we stand ready to extend this provision to those +domains in future versions of the GPL, as needed to protect the +freedom of users. + +Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish +to avoid the special danger that patents applied to a free program +could make it effectively proprietary. To prevent this, the GPL +assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and +modification follow. + +### TERMS AND CONDITIONS + +#### 0. Definitions. + +"This License" refers to version 3 of the GNU General Public License. + +"Copyright" also means copyright-like laws that apply to other kinds +of works, such as semiconductor masks. + +"The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + +To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of +an exact copy. The resulting work is called a "modified version" of +the earlier work or a work "based on" the earlier work. + +A "covered work" means either the unmodified Program or a work based +on the Program. + +To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + +To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user +through a computer network, with no transfer of a copy, is not +conveying. + +An interactive user interface displays "Appropriate Legal Notices" to +the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +#### 1. Source Code. + +The "source code" for a work means the preferred form of the work for +making modifications to it. "Object code" means any non-source form of +a work. + +A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + +The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + +The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can +regenerate automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same +work. + +#### 2. Basic Permissions. + +All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, +without conditions so long as your license otherwise remains in force. +You may convey covered works to others for the sole purpose of having +them make modifications exclusively for you, or provide you with +facilities for running those works, provided that you comply with the +terms of this License in conveying all material for which you do not +control copyright. Those thus making or running the covered works for +you must do so exclusively on your behalf, under your direction and +control, on terms that prohibit them from making any copies of your +copyrighted material outside their relationship with you. + +Conveying under any other circumstances is permitted solely under the +conditions stated below. Sublicensing is not allowed; section 10 makes +it unnecessary. + +#### 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + +When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such +circumvention is effected by exercising rights under this License with +respect to the covered work, and you disclaim any intention to limit +operation or modification of the work as a means of enforcing, against +the work's users, your or third parties' legal rights to forbid +circumvention of technological measures. + +#### 4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + +You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + +#### 5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these +conditions: + +- a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. +- b) The work must carry prominent notices stating that it is + released under this License and any conditions added under + section 7. This requirement modifies the requirement in section 4 + to "keep intact all notices". +- c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. +- d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + +A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + +#### 6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of +sections 4 and 5, provided that you also convey the machine-readable +Corresponding Source under the terms of this License, in one of these +ways: + +- a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. +- b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the Corresponding + Source from a network server at no charge. +- c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. +- d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. +- e) Convey the object code using peer-to-peer transmission, + provided you inform other peers where the object code and + Corresponding Source of the work are being offered to the general + public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + +A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, +family, or household purposes, or (2) anything designed or sold for +incorporation into a dwelling. In determining whether a product is a +consumer product, doubtful cases shall be resolved in favor of +coverage. For a particular product received by a particular user, +"normally used" refers to a typical or common use of that class of +product, regardless of the status of the particular user or of the way +in which the particular user actually uses, or expects or is expected +to use, the product. A product is a consumer product regardless of +whether the product has substantial commercial, industrial or +non-consumer uses, unless such uses represent the only significant +mode of use of the product. + +"Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to +install and execute modified versions of a covered work in that User +Product from a modified version of its Corresponding Source. The +information must suffice to ensure that the continued functioning of +the modified object code is in no case prevented or interfered with +solely because modification has been made. + +If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + +The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or +updates for a work that has been modified or installed by the +recipient, or for the User Product in which it has been modified or +installed. Access to a network may be denied when the modification +itself materially and adversely affects the operation of the network +or violates the rules and protocols for communication across the +network. + +Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + +#### 7. Additional Terms. + +"Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders +of that material) supplement the terms of this License with terms: + +- a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or +- b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or +- c) Prohibiting misrepresentation of the origin of that material, + or requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or +- d) Limiting the use for publicity purposes of names of licensors + or authors of the material; or +- e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or +- f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions + of it) with contractual assumptions of liability to the recipient, + for any liability that these contractual assumptions directly + impose on those licensors and authors. + +All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + +If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; the +above requirements apply either way. + +#### 8. Termination. + +You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + +However, if you cease all violation of this License, then your license +from a particular copyright holder is reinstated (a) provisionally, +unless and until the copyright holder explicitly and finally +terminates your license, and (b) permanently, if the copyright holder +fails to notify you of the violation by some reasonable means prior to +60 days after the cessation. + +Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + +#### 9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run +a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + +#### 10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + +An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + +#### 11. Patents. + +A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + +A contributor's "essential patent claims" are all patent claims owned +or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + +In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + +If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + +A patent license is "discriminatory" if it does not include within the +scope of its coverage, prohibits the exercise of, or is conditioned on +the non-exercise of one or more of the rights that are specifically +granted under this License. You may not convey a covered work if you +are a party to an arrangement with a third party that is in the +business of distributing software, under which you make payment to the +third party based on the extent of your activity of conveying the +work, and under which the third party grants, to any of the parties +who would receive the covered work from you, a discriminatory patent +license (a) in connection with copies of the covered work conveyed by +you (or copies made from those copies), or (b) primarily for and in +connection with specific products or compilations that contain the +covered work, unless you entered into that arrangement, or that patent +license was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + +#### 12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under +this License and any other pertinent obligations, then as a +consequence you may not convey it at all. For example, if you agree to +terms that obligate you to collect a royalty for further conveying +from those to whom you convey the Program, the only way you could +satisfy both those terms and this License would be to refrain entirely +from conveying the Program. + +#### 13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + +#### 14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions +of the GNU General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in +detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies that a certain numbered version of the GNU General Public +License "or any later version" applies to it, you have the option of +following the terms and conditions either of that numbered version or +of any later version published by the Free Software Foundation. If the +Program does not specify a version number of the GNU General Public +License, you may choose any version ever published by the Free +Software Foundation. + +If the Program specifies that a proxy can decide which future versions +of the GNU General Public License can be used, that proxy's public +statement of acceptance of a version permanently authorizes you to +choose that version for the Program. + +Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + +#### 15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR +CORRECTION. + +#### 16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR +CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT +NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR +LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM +TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER +PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +#### 17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +### How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these +terms. + +To do so, attach the following notices to the program. It is safest to +attach them to the start of each source file to most effectively state +the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper +mail. + +If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands \`show w' and \`show c' should show the +appropriate parts of the General Public License. Of course, your +program's commands might be different; for a GUI interface, you would +use an "about box". + +You should also get your employer (if you work as a programmer) or +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. For more information on this, and how to apply and follow +the GNU GPL, see . + +The GNU General Public License does not permit incorporating your +program into proprietary programs. If your program is a subroutine +library, you may consider it more useful to permit linking proprietary +applications with the library. If this is what you want to do, use the +GNU Lesser General Public License instead of this License. But first, +please read . + diff --git a/README.md b/README.md new file mode 100644 index 0000000..52379f0 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# Wind (Vue) + +Rewriting of [Wind frontend](https://github.com/ChronosX88/wind) in Vue with old Reddit-like UI. + +## License + + + +This project is licensed under the GPLv3 license. For more information see [LICENSE.md](LICENSE.md) file. diff --git a/docs/GPLv3_Logo.svg b/docs/GPLv3_Logo.svg new file mode 100644 index 0000000..33838a7 --- /dev/null +++ b/docs/GPLv3_Logo.svg @@ -0,0 +1,22 @@ + + + + + + diff --git a/env.d.ts b/env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/env.d.ts @@ -0,0 +1 @@ +/// diff --git a/index.html b/index.html new file mode 100644 index 0000000..11603f8 --- /dev/null +++ b/index.html @@ -0,0 +1,13 @@ + + + + + + + Vite App + + +
+ + + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4894ea0 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,4796 @@ +{ + "name": "wind-vue", + "version": "0.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "wind-vue", + "version": "0.0.0", + "dependencies": { + "pinia": "^2.0.13", + "vue": "^3.2.33" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.1.0", + "@types/node": "^16.11.27", + "@vitejs/plugin-vue": "^2.3.1", + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-typescript": "^10.0.0", + "@vue/tsconfig": "^0.1.3", + "eslint": "^8.5.0", + "eslint-plugin-vue": "^8.2.0", + "less": "^4.1.2", + "prettier": "^2.5.1", + "sass": "^1.51.0", + "typescript": "~4.6.3", + "vite": "^2.9.5", + "vue-tsc": "^0.34.7" + } + }, + "node_modules/@babel/parser": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", + "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", + "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz", + "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.11.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.33.tgz", + "integrity": "sha512-0PJ0vg+JyU0MIan58IOIFRtSvsb7Ri+7Wltx2qAg94eMOrpg4+uuP3aUHCpxXc1i0jCXiC+zIamSZh3l9AbcQA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz", + "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/type-utils": "5.23.0", + "@typescript-eslint/utils": "5.23.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz", + "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", + "debug": "^4.3.2" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", + "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz", + "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.23.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", + "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", + "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz", + "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", + "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.23.0", + "eslint-visitor-keys": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.2.tgz", + "integrity": "sha512-umyypfSHS4kQLdYAnJHhaASq7FRzNCdvcRoQ3uYGNk1/M4a+hXUd7ysN7BLhCrWH6uBokyCkFeUAaFDzSaaSrQ==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "vite": "^2.5.10", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/code-gen": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.34.12.tgz", + "integrity": "sha512-5GAPsSjScnfMmMoh9qLW7CWQjjnT0fTUsPWnDMMjKIOqQF9J5mOyo7rprt1VzX63zwayqFfx7V8W3EVNhUCE3w==", + "dev": true, + "dependencies": { + "@volar/source-map": "0.34.12" + } + }, + "node_modules/@volar/source-map": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.34.12.tgz", + "integrity": "sha512-07imKws1cz9g3eo0VWXdioNfc1eCjqwK7GsxVuYSc7OCzKASt9PywUW+F39QGB9g2Kewof+PjCVIPeGqGRECTA==", + "dev": true + }, + "node_modules/@volar/vue-code-gen": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/@volar/vue-code-gen/-/vue-code-gen-0.34.12.tgz", + "integrity": "sha512-PFcft62eIvQvcB6H2Z88fouTu2JmYwimORziFGr3LlGriQUEVmyDtqddtb+E+j2wGChtLkh6hf1py94C5VpI/Q==", + "dev": true, + "dependencies": { + "@volar/code-gen": "0.34.12", + "@volar/source-map": "0.34.12", + "@vue/compiler-core": "^3.2.31", + "@vue/compiler-dom": "^3.2.31", + "@vue/shared": "^3.2.31" + } + }, + "node_modules/@volar/vue-typescript": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.34.12.tgz", + "integrity": "sha512-mY5cZ2OFOKt1HcCuoX1ViEsccltX3mdACk/FAjrSZTrilTdVHI1zkmQlrpCSnjmE1qowd8I6YoVt7THCaVrHdg==", + "dev": true, + "dependencies": { + "@volar/code-gen": "0.34.12", + "@volar/source-map": "0.34.12", + "@volar/vue-code-gen": "0.34.12", + "@vue/compiler-sfc": "^3.2.31", + "@vue/reactivity": "^3.2.31" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.33.tgz", + "integrity": "sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.33", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz", + "integrity": "sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==", + "dependencies": { + "@vue/compiler-core": "3.2.33", + "@vue/shared": "3.2.33" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.33.tgz", + "integrity": "sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.33", + "@vue/compiler-dom": "3.2.33", + "@vue/compiler-ssr": "3.2.33", + "@vue/reactivity-transform": "3.2.33", + "@vue/shared": "3.2.33", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.33.tgz", + "integrity": "sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.33", + "@vue/shared": "3.2.33" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.4.tgz", + "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==" + }, + "node_modules/@vue/eslint-config-prettier": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", + "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==", + "dev": true, + "dependencies": { + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0" + }, + "peerDependencies": { + "eslint": ">= 7.28.0", + "prettier": ">= 2.0.0" + } + }, + "node_modules/@vue/eslint-config-typescript": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-10.0.0.tgz", + "integrity": "sha512-F94cL8ug3FaYXlCfU5/wiGjk1qeadmoBpRGAOBq+qre3Smdupa59dd6ZJrsfRODpsMPyTG7330juMDsUvpZ3Rw==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "vue-eslint-parser": "^8.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0", + "eslint-plugin-vue": "^8.0.1" + } + }, + "node_modules/@vue/reactivity": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.33.tgz", + "integrity": "sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==", + "dependencies": { + "@vue/shared": "3.2.33" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz", + "integrity": "sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.33", + "@vue/shared": "3.2.33", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.33.tgz", + "integrity": "sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==", + "dependencies": { + "@vue/reactivity": "3.2.33", + "@vue/shared": "3.2.33" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.33.tgz", + "integrity": "sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==", + "dependencies": { + "@vue/runtime-core": "3.2.33", + "@vue/shared": "3.2.33", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.33.tgz", + "integrity": "sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==", + "dependencies": { + "@vue/compiler-ssr": "3.2.33", + "@vue/shared": "3.2.33" + }, + "peerDependencies": { + "vue": "3.2.33" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.33.tgz", + "integrity": "sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==" + }, + "node_modules/@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "2.6.20", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/esbuild": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.38.tgz", + "integrity": "sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "esbuild-android-64": "0.14.38", + "esbuild-android-arm64": "0.14.38", + "esbuild-darwin-64": "0.14.38", + "esbuild-darwin-arm64": "0.14.38", + "esbuild-freebsd-64": "0.14.38", + "esbuild-freebsd-arm64": "0.14.38", + "esbuild-linux-32": "0.14.38", + "esbuild-linux-64": "0.14.38", + "esbuild-linux-arm": "0.14.38", + "esbuild-linux-arm64": "0.14.38", + "esbuild-linux-mips64le": "0.14.38", + "esbuild-linux-ppc64le": "0.14.38", + "esbuild-linux-riscv64": "0.14.38", + "esbuild-linux-s390x": "0.14.38", + "esbuild-netbsd-64": "0.14.38", + "esbuild-openbsd-64": "0.14.38", + "esbuild-sunos-64": "0.14.38", + "esbuild-windows-32": "0.14.38", + "esbuild-windows-64": "0.14.38", + "esbuild-windows-arm64": "0.14.38" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.38.tgz", + "integrity": "sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.38.tgz", + "integrity": "sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.38.tgz", + "integrity": "sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.38.tgz", + "integrity": "sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.38.tgz", + "integrity": "sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.38.tgz", + "integrity": "sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.38.tgz", + "integrity": "sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.38.tgz", + "integrity": "sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.38.tgz", + "integrity": "sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.38.tgz", + "integrity": "sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.38.tgz", + "integrity": "sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.38.tgz", + "integrity": "sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.38.tgz", + "integrity": "sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.38.tgz", + "integrity": "sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.38.tgz", + "integrity": "sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.38.tgz", + "integrity": "sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.38.tgz", + "integrity": "sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.38.tgz", + "integrity": "sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.38.tgz", + "integrity": "sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.38.tgz", + "integrity": "sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", + "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.2.3", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz", + "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^8.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "dependencies": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "13.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.14.0.tgz", + "integrity": "sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "optional": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/less": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "source-map": "~0.6.0" + } + }, + "node_modules/less/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/needle/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinia": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.14.tgz", + "integrity": "sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==", + "dependencies": { + "@vue/devtools-api": "^6.1.4", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.2.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/node_modules/vue-demi": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.5.tgz", + "integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==", + "hasInstallScript": true, + "bin": { + "vue-demi-fix": "bin/vue-demi-fix.js", + "vue-demi-switch": "bin/vue-demi-switch.js" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "@vue/composition-api": "^1.0.0-rc.1", + "vue": "^3.0.0-0 || ^2.6.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + } + } + }, + "node_modules/postcss": { + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", + "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.3", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.72.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.72.1.tgz", + "integrity": "sha512-NTc5UGy/NWFGpSqF1lFY8z9Adri6uhyMLI6LvPAXdBKoPRFhIIiBUpt+Qg2awixqO3xvzSijjhnb4+QEZwJmxA==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "node_modules/sass": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz", + "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "devOptional": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vite": { + "version": "2.9.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.8.tgz", + "integrity": "sha512-zsBGwn5UT3YS0NLSJ7hnR54+vUKfgzMUh/Z9CxF1YKEBVIe213+63jrFLmZphgGI5zXwQCSmqIdbPuE8NJywPw==", + "dev": true, + "dependencies": { + "esbuild": "^0.14.27", + "postcss": "^8.4.13", + "resolve": "^1.22.0", + "rollup": "^2.59.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": ">=12.2.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "less": "*", + "sass": "*", + "stylus": "*" + }, + "peerDependenciesMeta": { + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.33.tgz", + "integrity": "sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.33", + "@vue/compiler-sfc": "3.2.33", + "@vue/runtime-dom": "3.2.33", + "@vue/server-renderer": "3.2.33", + "@vue/shared": "3.2.33" + } + }, + "node_modules/vue-eslint-parser": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", + "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vue-tsc": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.34.12.tgz", + "integrity": "sha512-CmuqLXHEW5UvS8UpT2RYom5MzOWBD142PLXxDX0ARdZ/u1oLobA3od4XY2XZACQYCFCzjTvfD1H5wrWwiGwoUA==", + "dev": true, + "dependencies": { + "@volar/vue-typescript": "0.34.12" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + }, + "dependencies": { + "@babel/parser": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", + "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==" + }, + "@eslint/eslintrc": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", + "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.3.2", + "globals": "^13.9.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.9.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", + "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rushstack/eslint-patch": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.3.tgz", + "integrity": "sha512-WiBSI6JBIhC6LRIsB2Kwh8DsGTlbBU+mLRxJmAe3LjHTdkDpwIbEOZgoXBbZilk/vlfjK8i6nKRAvIRn1XaIMw==", + "dev": true + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true + }, + "@types/node": { + "version": "16.11.33", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.33.tgz", + "integrity": "sha512-0PJ0vg+JyU0MIan58IOIFRtSvsb7Ri+7Wltx2qAg94eMOrpg4+uuP3aUHCpxXc1i0jCXiC+zIamSZh3l9AbcQA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.23.0.tgz", + "integrity": "sha512-hEcSmG4XodSLiAp1uxv/OQSGsDY6QN3TcRU32gANp+19wGE1QQZLRS8/GV58VRUoXhnkuJ3ZxNQ3T6Z6zM59DA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/type-utils": "5.23.0", + "@typescript-eslint/utils": "5.23.0", + "debug": "^4.3.2", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.1.8", + "regexpp": "^3.2.0", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/parser": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.23.0.tgz", + "integrity": "sha512-V06cYUkqcGqpFjb8ttVgzNF53tgbB/KoQT/iB++DOIExKmzI9vBJKjZKt/6FuV9c+zrDsvJKbJ2DOCYwX91cbw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", + "debug": "^4.3.2" + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.23.0.tgz", + "integrity": "sha512-EhjaFELQHCRb5wTwlGsNMvzK9b8Oco4aYNleeDlNuL6qXWDF47ch4EhVNPh8Rdhf9tmqbN4sWDk/8g+Z/J8JVw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.23.0.tgz", + "integrity": "sha512-iuI05JsJl/SUnOTXA9f4oI+/4qS/Zcgk+s2ir+lRmXI+80D8GaGwoUqs4p+X+4AxDolPpEpVUdlEH4ADxFy4gw==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.23.0", + "debug": "^4.3.2", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/types": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.23.0.tgz", + "integrity": "sha512-NfBsV/h4dir/8mJwdZz7JFibaKC3E/QdeMEDJhiAE3/eMkoniZ7MjbEMCGXw6MZnZDMN3G9S0mH/6WUIj91dmw==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.23.0.tgz", + "integrity": "sha512-xE9e0lrHhI647SlGMl+m+3E3CKPF1wzvvOEWnuE3CCjjT7UiRnDGJxmAcVKJIlFgK6DY9RB98eLr1OPigPEOGg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/visitor-keys": "5.23.0", + "debug": "^4.3.2", + "globby": "^11.0.4", + "is-glob": "^4.0.3", + "semver": "^7.3.5", + "tsutils": "^3.21.0" + } + }, + "@typescript-eslint/utils": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.23.0.tgz", + "integrity": "sha512-dbgaKN21drqpkbbedGMNPCtRPZo1IOUr5EI9Jrrh99r5UW5Q0dz46RKXeSBoPV+56R6dFKpbrdhgUNSJsDDRZA==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.23.0", + "@typescript-eslint/types": "5.23.0", + "@typescript-eslint/typescript-estree": "5.23.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.23.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.23.0.tgz", + "integrity": "sha512-Vd4mFNchU62sJB8pX19ZSPog05B0Y0CE2UxAZPT5k4iqhRYjPnqyY3woMxCd0++t9OTqkgjST+1ydLBi7e2Fvg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.23.0", + "eslint-visitor-keys": "^3.0.0" + } + }, + "@vitejs/plugin-vue": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.2.tgz", + "integrity": "sha512-umyypfSHS4kQLdYAnJHhaASq7FRzNCdvcRoQ3uYGNk1/M4a+hXUd7ysN7BLhCrWH6uBokyCkFeUAaFDzSaaSrQ==", + "dev": true, + "requires": {} + }, + "@volar/code-gen": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/@volar/code-gen/-/code-gen-0.34.12.tgz", + "integrity": "sha512-5GAPsSjScnfMmMoh9qLW7CWQjjnT0fTUsPWnDMMjKIOqQF9J5mOyo7rprt1VzX63zwayqFfx7V8W3EVNhUCE3w==", + "dev": true, + "requires": { + "@volar/source-map": "0.34.12" + } + }, + "@volar/source-map": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-0.34.12.tgz", + "integrity": "sha512-07imKws1cz9g3eo0VWXdioNfc1eCjqwK7GsxVuYSc7OCzKASt9PywUW+F39QGB9g2Kewof+PjCVIPeGqGRECTA==", + "dev": true + }, + "@volar/vue-code-gen": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/@volar/vue-code-gen/-/vue-code-gen-0.34.12.tgz", + "integrity": "sha512-PFcft62eIvQvcB6H2Z88fouTu2JmYwimORziFGr3LlGriQUEVmyDtqddtb+E+j2wGChtLkh6hf1py94C5VpI/Q==", + "dev": true, + "requires": { + "@volar/code-gen": "0.34.12", + "@volar/source-map": "0.34.12", + "@vue/compiler-core": "^3.2.31", + "@vue/compiler-dom": "^3.2.31", + "@vue/shared": "^3.2.31" + } + }, + "@volar/vue-typescript": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-0.34.12.tgz", + "integrity": "sha512-mY5cZ2OFOKt1HcCuoX1ViEsccltX3mdACk/FAjrSZTrilTdVHI1zkmQlrpCSnjmE1qowd8I6YoVt7THCaVrHdg==", + "dev": true, + "requires": { + "@volar/code-gen": "0.34.12", + "@volar/source-map": "0.34.12", + "@volar/vue-code-gen": "0.34.12", + "@vue/compiler-sfc": "^3.2.31", + "@vue/reactivity": "^3.2.31" + } + }, + "@vue/compiler-core": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.33.tgz", + "integrity": "sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.33", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz", + "integrity": "sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==", + "requires": { + "@vue/compiler-core": "3.2.33", + "@vue/shared": "3.2.33" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.33.tgz", + "integrity": "sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.33", + "@vue/compiler-dom": "3.2.33", + "@vue/compiler-ssr": "3.2.33", + "@vue/reactivity-transform": "3.2.33", + "@vue/shared": "3.2.33", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.33.tgz", + "integrity": "sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==", + "requires": { + "@vue/compiler-dom": "3.2.33", + "@vue/shared": "3.2.33" + } + }, + "@vue/devtools-api": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.1.4.tgz", + "integrity": "sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==" + }, + "@vue/eslint-config-prettier": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", + "integrity": "sha512-/CTc6ML3Wta1tCe1gUeO0EYnVXfo3nJXsIhZ8WJr3sov+cGASr6yuiibJTL6lmIBm7GobopToOuB3B6AWyV0Iw==", + "dev": true, + "requires": { + "eslint-config-prettier": "^8.3.0", + "eslint-plugin-prettier": "^4.0.0" + } + }, + "@vue/eslint-config-typescript": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/@vue/eslint-config-typescript/-/eslint-config-typescript-10.0.0.tgz", + "integrity": "sha512-F94cL8ug3FaYXlCfU5/wiGjk1qeadmoBpRGAOBq+qre3Smdupa59dd6ZJrsfRODpsMPyTG7330juMDsUvpZ3Rw==", + "dev": true, + "requires": { + "@typescript-eslint/eslint-plugin": "^5.0.0", + "@typescript-eslint/parser": "^5.0.0", + "vue-eslint-parser": "^8.0.0" + } + }, + "@vue/reactivity": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.33.tgz", + "integrity": "sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==", + "requires": { + "@vue/shared": "3.2.33" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz", + "integrity": "sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.33", + "@vue/shared": "3.2.33", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.33.tgz", + "integrity": "sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==", + "requires": { + "@vue/reactivity": "3.2.33", + "@vue/shared": "3.2.33" + } + }, + "@vue/runtime-dom": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.33.tgz", + "integrity": "sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==", + "requires": { + "@vue/runtime-core": "3.2.33", + "@vue/shared": "3.2.33", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.33.tgz", + "integrity": "sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==", + "requires": { + "@vue/compiler-ssr": "3.2.33", + "@vue/shared": "3.2.33" + } + }, + "@vue/shared": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.33.tgz", + "integrity": "sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==" + }, + "@vue/tsconfig": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@vue/tsconfig/-/tsconfig-0.1.3.tgz", + "integrity": "sha512-kQVsh8yyWPvHpb8gIc9l/HIDiiVUy1amynLNpCy8p+FoCiZXCo6fQos5/097MmnNZc9AtseDsCrfkhqCrJ8Olg==", + "dev": true, + "requires": {} + }, + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "requires": { + "is-what": "^3.14.1" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csstype": { + "version": "2.6.20", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.20.tgz", + "integrity": "sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "esbuild": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.38.tgz", + "integrity": "sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==", + "dev": true, + "requires": { + "esbuild-android-64": "0.14.38", + "esbuild-android-arm64": "0.14.38", + "esbuild-darwin-64": "0.14.38", + "esbuild-darwin-arm64": "0.14.38", + "esbuild-freebsd-64": "0.14.38", + "esbuild-freebsd-arm64": "0.14.38", + "esbuild-linux-32": "0.14.38", + "esbuild-linux-64": "0.14.38", + "esbuild-linux-arm": "0.14.38", + "esbuild-linux-arm64": "0.14.38", + "esbuild-linux-mips64le": "0.14.38", + "esbuild-linux-ppc64le": "0.14.38", + "esbuild-linux-riscv64": "0.14.38", + "esbuild-linux-s390x": "0.14.38", + "esbuild-netbsd-64": "0.14.38", + "esbuild-openbsd-64": "0.14.38", + "esbuild-sunos-64": "0.14.38", + "esbuild-windows-32": "0.14.38", + "esbuild-windows-64": "0.14.38", + "esbuild-windows-arm64": "0.14.38" + } + }, + "esbuild-android-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.38.tgz", + "integrity": "sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.38.tgz", + "integrity": "sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.38.tgz", + "integrity": "sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.38.tgz", + "integrity": "sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.38.tgz", + "integrity": "sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.38.tgz", + "integrity": "sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.38.tgz", + "integrity": "sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.38.tgz", + "integrity": "sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.38.tgz", + "integrity": "sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.38.tgz", + "integrity": "sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.38.tgz", + "integrity": "sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.38.tgz", + "integrity": "sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.38.tgz", + "integrity": "sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.38.tgz", + "integrity": "sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.38.tgz", + "integrity": "sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.38.tgz", + "integrity": "sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.38.tgz", + "integrity": "sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.38.tgz", + "integrity": "sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.38.tgz", + "integrity": "sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.38.tgz", + "integrity": "sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==", + "dev": true, + "optional": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", + "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.2.3", + "@humanwhocodes/config-array": "^0.9.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.2", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.6.0", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-plugin-vue": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz", + "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==", + "dev": true, + "requires": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^8.0.1" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "dev": true, + "requires": { + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz", + "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==", + "dev": true + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "globals": { + "version": "13.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.14.0.tgz", + "integrity": "sha512-ERO68sOYwm5UuLvSJTY7w7NP2c8S4UcXs3X1GBX8cwOr+ShOcDBbCY5mH4zxz0jsYCdJ8ve8Mv9n2YGJMB1aeg==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true, + "optional": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "immutable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", + "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "less": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true + } + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "nth-check": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", + "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, + "pinia": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.14.tgz", + "integrity": "sha512-0nPuZR4TetT/WcLN+feMSjWJku3SQU7dBbXC6uw+R6FLQJCsg+/0pzXyD82T1FmAYe0lsx+jnEDQ1BLgkRKlxA==", + "requires": { + "@vue/devtools-api": "^6.1.4", + "vue-demi": "*" + }, + "dependencies": { + "vue-demi": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.12.5.tgz", + "integrity": "sha512-BREuTgTYlUr0zw0EZn3hnhC3I6gPWv+Kwh4MCih6QcAeaTlaIX0DwOVN0wHej7hSvDPecz4jygy/idsgKfW58Q==", + "requires": {} + } + } + }, + "postcss": { + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", + "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", + "requires": { + "nanoid": "^3.3.3", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true, + "optional": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.72.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.72.1.tgz", + "integrity": "sha512-NTc5UGy/NWFGpSqF1lFY8z9Adri6uhyMLI6LvPAXdBKoPRFhIIiBUpt+Qg2awixqO3xvzSijjhnb4+QEZwJmxA==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "sass": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz", + "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "typescript": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.4.tgz", + "integrity": "sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==", + "devOptional": true + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "vite": { + "version": "2.9.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.8.tgz", + "integrity": "sha512-zsBGwn5UT3YS0NLSJ7hnR54+vUKfgzMUh/Z9CxF1YKEBVIe213+63jrFLmZphgGI5zXwQCSmqIdbPuE8NJywPw==", + "dev": true, + "requires": { + "esbuild": "^0.14.27", + "fsevents": "~2.3.2", + "postcss": "^8.4.13", + "resolve": "^1.22.0", + "rollup": "^2.59.0" + } + }, + "vue": { + "version": "3.2.33", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.33.tgz", + "integrity": "sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==", + "requires": { + "@vue/compiler-dom": "3.2.33", + "@vue/compiler-sfc": "3.2.33", + "@vue/runtime-dom": "3.2.33", + "@vue/server-renderer": "3.2.33", + "@vue/shared": "3.2.33" + } + }, + "vue-eslint-parser": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", + "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", + "dev": true, + "requires": { + "debug": "^4.3.2", + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.5" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "vue-tsc": { + "version": "0.34.12", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-0.34.12.tgz", + "integrity": "sha512-CmuqLXHEW5UvS8UpT2RYom5MzOWBD142PLXxDX0ARdZ/u1oLobA3od4XY2XZACQYCFCzjTvfD1H5wrWwiGwoUA==", + "dev": true, + "requires": { + "@volar/vue-typescript": "0.34.12" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..dc2449b --- /dev/null +++ b/package.json @@ -0,0 +1,31 @@ +{ + "name": "wind-vue", + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "vue-tsc --noEmit && vite build", + "preview": "vite preview --port 5050", + "typecheck": "vue-tsc --noEmit", + "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" + }, + "dependencies": { + "pinia": "^2.0.13", + "vue": "^3.2.33" + }, + "devDependencies": { + "@rushstack/eslint-patch": "^1.1.0", + "@types/node": "^16.11.27", + "@vitejs/plugin-vue": "^2.3.1", + "@vue/eslint-config-prettier": "^7.0.0", + "@vue/eslint-config-typescript": "^10.0.0", + "@vue/tsconfig": "^0.1.3", + "eslint": "^8.5.0", + "eslint-plugin-vue": "^8.2.0", + "less": "^4.1.2", + "prettier": "^2.5.1", + "sass": "^1.51.0", + "typescript": "~4.6.3", + "vite": "^2.9.5", + "vue-tsc": "^0.34.7" + } +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000..df36fcf Binary files /dev/null and b/public/favicon.ico differ diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..7a4ef6d --- /dev/null +++ b/src/App.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/src/assets/wind_logo.png b/src/assets/wind_logo.png new file mode 100644 index 0000000..c09e0c1 Binary files /dev/null and b/src/assets/wind_logo.png differ diff --git a/src/components/Header.vue b/src/components/Header.vue new file mode 100644 index 0000000..255fd0a --- /dev/null +++ b/src/components/Header.vue @@ -0,0 +1,43 @@ + + + \ No newline at end of file diff --git a/src/components/HeaderBarLink.vue b/src/components/HeaderBarLink.vue new file mode 100644 index 0000000..dd9fc83 --- /dev/null +++ b/src/components/HeaderBarLink.vue @@ -0,0 +1,13 @@ + + + \ No newline at end of file diff --git a/src/components/Post.vue b/src/components/Post.vue new file mode 100644 index 0000000..16ddaf0 --- /dev/null +++ b/src/components/Post.vue @@ -0,0 +1,47 @@ + + + + + \ No newline at end of file diff --git a/src/main.ts b/src/main.ts new file mode 100644 index 0000000..af33052 --- /dev/null +++ b/src/main.ts @@ -0,0 +1,9 @@ +import { createApp } from "vue"; +import { createPinia } from "pinia"; +import App from "./App.vue"; + +const app = createApp(App); + +app.use(createPinia()); + +app.mount("#app"); diff --git a/src/sfc.d.ts b/src/sfc.d.ts new file mode 100644 index 0000000..0e089d6 --- /dev/null +++ b/src/sfc.d.ts @@ -0,0 +1,4 @@ +declare module "*.vue" { + import Vue from 'vue' + export default typeof Vue +} \ No newline at end of file diff --git a/src/style/adminbar.less b/src/style/adminbar.less new file mode 100644 index 0000000..f2cce18 --- /dev/null +++ b/src/style/adminbar.less @@ -0,0 +1,363 @@ +.transition (@property, @duration, @function: ease, @delay: 0s) { + -webkit-transition: @arguments; + -moz-transition: @arguments; + -o-transition: @arguments; + -ms-transition: @arguments; + transition: @arguments; +} + +.no-select { + -webkit-user-select: none; + -moz-user-select: none; + -o-user-select: none; + -ms-user-select: none; + user-select: none; +} + +@debug-color: #ee0; +@debug-dark-color: #990; +@admin-color: #e00; +@admin-dark-color: #900; +#admin-bar { + position: fixed; + top: 0; + left: 0; + right: 0; + z-index: 100; + + .show-button { + display: none; + } + &.hidden { + .status-bar, .timings-bar { + display: none !important; + } + + .show-button { + display: block; + &:before, &:after { + content: ''; + border: 0 solid transparent; + position: absolute; + display: block; + top: 0; + } + + &:before { + @size: 12px; + right: -@size; + border-width: @size; + z-index: 101; + } + + &:after { + @size: 18px; + right: -@size; + border-width: @size; + border-top-color: gray; + z-index: 100; + } + } + + &.debug { + .show-button:before { + border-top-color: @debug-color; + } + .show-button:after { + border-top-color: @debug-dark-color; + } + } + + &.admin { + .show-button:before { + border-top-color: @admin-color; + } + .show-button:after { + border-top-color: @admin-dark-color; + } + } + } + + .status-bar { + font-size: 12px; + height: 14px; + line-height: 14px; + padding: 2px 5px; + border-bottom: 1px solid gray; + background: white; + z-index: 9999; + white-space: nowrap; + overflow: hidden; + box-shadow: 0 -5px 15px #cee3f8 inset; + .no-select; + + .caption { + font-weight: bold; + color: gray; + } + + .indicator { + margin-left: 14px; + } + + .indicator .icon { + display: inline-block; + width: 12px; + height: 12px; + border-radius: 2px; + vertical-align: bottom; + margin-right: 5px; + border: 1px solid black; + } + + .indicator.debug .icon { + background: @debug-color; + border-color: @debug-dark-color; + } + + .indicator.admin .icon { + background: @admin-color; + border-color: @admin-dark-color; + } + + .indicator.secure .icon { + background: #8e0; + border-color: #890; + } + + .indicator.dev-statics .icon { + background: #9ff; + border-color: #089; + border-top-width: 5px; + border-bottom-width: 5px; + height: 4px; + } + + .indicator.prod-statics .icon { + background: #0ee; + border-color: #089; + } + + .indicator.disabled { + opacity: .5; + } + + .indicator.disabled .icon { + display: none; + } + + .admin-off { + margin-left: 8px; + padding: 0 4px; + background: fade(@admin-dark-color, 5%); + border: 1px solid fade(@admin-dark-color, 40%); + border-radius: 3px; + font-size: 11px; + color: @admin-dark-color; + cursor: pointer; + vertical-align: top; + } + + .controls { + position: absolute; + right: 0; + + & > span { + border-left: 1px solid #ccc; + padding: 0 7px; + color: #369; + cursor: default; + + .state { + display: inline-block; + width: 1em; + } + } + + .dropdown.lightdrop .selected { + font-weight: normal; + text-decoration: none; + color: #369; + } + } + } + &.admin .status-bar { + box-shadow: 0 -5px 15px #ffcfc7 inset; + } + + .timings-bar { + position: relative; + display: block; + background: #eee; + border-bottom: 1px solid gray; + box-shadow: 0 -5px 15px #ddd inset; + + .expand-button { + display: inline-block; + width: 11px; + line-height: 11px; + margin: 1px 4px; + background: #f4f4f4; + border: 1px solid #bbb; + border-bottom-width: 2px; + border-radius: 2px; + font-size: 11px; + text-align: center; + cursor: pointer; + .no-select; + } + + &.mini-timings { + height: 16px; + line-height: 16px; + .timeline-browser { + display: none; + } + } + &.full-timings { + height: 25px; + line-height: 25px; + } + + .timelines { + position: absolute; + left: 20px; + right: 0; + top: 0; + bottom: 0; + cursor: -webkit-zoom-in; + cursor: -moz-zoom-in; + cursor: zoom-in; + + &.zoomed { + cursor: -webkit-zoom-out; + cursor: -moz-zoom-out; + cursor: zoom-out; + } + + } + + .timeline { + position: relative; + margin: 1px; + + .elapsed { + position: absolute; + top: 0; + right: 2px; + } + + .events { + position: relative; + margin-right: 40px; + } + + .event { + position: absolute; + top: 0; + bottom: 0; + border: 1px solid rgba(0, 0, 0, .5); + z-index: 2; + + opacity: .65; + .transition(opacity, .25s); + &:hover { + opacity: 1; + } + } + + .event.out-of-bounds { + left: 0; + right: 0; + border: 1px solid #888; + background: #aaa; + } + } + + .event-color(@color) { + background: @color; + border-color: darken(saturate(@color, 30%), 23%); + box-shadow: 0 -2px 0px darken(@color, 4%) inset; + } + + .timeline-browser { + @height: 8px; + height: @height; + .events { + height: @height; + } + + .elapsed { + font-size: 8px; + line-height: @height; + } + + .event.start { + .event-color(rgb(20, 200, 60)); + } + + .event.redirect { + .event-color(rgb(20, 200, 120)); + } + + .event.https { + .event-color(rgb(120, 100, 120)); + } + + .event.request { + .event-color(rgb(20, 150, 150)); + } + + .event.response { + .event-color(rgb(20, 90, 250)); + } + + .event.domLoading { + .event-color(rgb(50, 50, 150)); + } + + .event.domInteractive { + .event-color(rgb(80, 50, 150)); + } + + .event.domContentLoaded { + .event-color(rgb(120, 50, 150)); + } + } + + .timeline-server { + @height: 14px; + height: @height; + .events { + height: @height; + } + + .elapsed { + font-size: 10px; + line-height: @height; + } + + .event.web { + z-index: 1; + .event-color(rgb(50, 150, 20)); + } + + .event.render { + &.nocache { + .event-color(rgb(240, 200, 17)); + } + &.cached { + .event-color(rgb(200, 170, 50)); + } + } + + .event.cassandra { + .event-color(rgb(150, 50, 20)); + } + + .event.pg { + .event-color(rgb(20, 50, 150)); + } + } + } +} diff --git a/src/style/compact.css b/src/style/compact.css new file mode 100644 index 0000000..b676d3a --- /dev/null +++ b/src/style/compact.css @@ -0,0 +1,552 @@ +/* mixins */ +/* meat */ +body { background: #c5ccd3; font-family: Helvetica, "Helvetica Neue", Arial, sans-serif; margin: 0; width: 100%; height: 100%; -webkit-font-smoothing: antialiased; } + +p { margin: 0; padding: 0; } + +a { color: #517191; } + +a:visited { color: #4F565B; } + +textarea { font-family: inherit; } + +/*Preloading*/ +#preload { position: absolute; top: -1000px; left: -1000px; } + +/*UI stuff*/ +.newbutton { -moz-appearance: none; -webkit-appearance: none; border: 8px solid transparent; -moz-border-image: url("../compact/border-button.png") 8 fill; -o-border-image: url("../compact/border-button.png") 8 fill; -webkit-border-image: url("../compact/border-button.png") 8 fill; border-image: url("../compact/border-button.png") 8 fill; color: white; font-family: inherit; font-size: 12px; font-weight: bold; text-decoration: none; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.1), 0px -1px 1px rgba(0, 0, 0, 0.4); background: none; } +.newbutton:active, .newbutton:hover, .newbutton[selected], .newbutton.expanded, .newbutton.active { -moz-border-image: url("../compact/border-button-active.png") 8 fill; -o-border-image: url("../compact/border-button-active.png") 8 fill; -webkit-border-image: url("../compact/border-button-active.png") 8 fill; border-image: url("../compact/border-button-active.png") 8 fill; color: white; } + +.button, .button:visited { -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmZDBlMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzgwYTJjNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #bfd0e0), color-stop(100%, #80a2c4)); background: -moz-linear-gradient(top, #bfd0e0, #80a2c4); background: -webkit-linear-gradient(top, #bfd0e0, #80a2c4); background: linear-gradient(to bottom, #bfd0e0, #80a2c4); background-color: #9fb9d2; height: 30px; line-height: 30px; color: white; font-family: inherit; font-size: 12px; font-weight: bold; margin: 0px; padding: 5px; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; width: auto; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.1), 0px -1px 1px rgba(0, 0, 0, 0.4); border: 1px solid #517191; -moz-box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.75), 0px 1px 1px rgba(255, 255, 255, 0.6), 0px -1px 1px rgba(0, 0, 0, 0.1); -webkit-box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.75), 0px 1px 1px rgba(255, 255, 255, 0.6), 0px -1px 1px rgba(0, 0, 0, 0.1); box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.75), 0px 1px 1px rgba(255, 255, 255, 0.6), 0px -1px 1px rgba(0, 0, 0, 0.1); } + +.button:active, .button[selected], .button.active, .button.upmod, .button.downmod { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdlODk5NCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzgwYTJjNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #7e8994), color-stop(100%, #80a2c4)); background: -moz-linear-gradient(top, #7e8994, #80a2c4); background: -webkit-linear-gradient(top, #7e8994, #80a2c4); background: linear-gradient(to bottom, #7e8994, #80a2c4); background-color: #7f95ac; } + +button.button { padding: 0 5px; } + +.secondary_button { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2FiYmJjOSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzgzOTNhMyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #abbbc9), color-stop(100%, #8393a3)); background: -moz-linear-gradient(top, #abbbc9, #8393a3); background: -webkit-linear-gradient(top, #abbbc9, #8393a3); background: linear-gradient(to bottom, #abbbc9, #8393a3); background-color: #97a7b6; border: 1px solid #626D78; } + +.secondary_button:active, .second_button[selected], .second_button.active { background-color: #ABBBC9; background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzgzOTNhMyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2FiYmJjOSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #8393a3), color-stop(100%, #abbbc9)); background: -moz-linear-gradient(top, #8393a3, #abbbc9); background: -webkit-linear-gradient(top, #8393a3, #abbbc9); background: linear-gradient(to bottom, #8393a3, #abbbc9); background-color: #97a7b6; } + +.small_button, .small_button:visited { -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmZDBlMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzgwYTJjNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #bfd0e0), color-stop(100%, #80a2c4)); background: -moz-linear-gradient(top, #bfd0e0, #80a2c4); background: -webkit-linear-gradient(top, #bfd0e0, #80a2c4); background: linear-gradient(to bottom, #bfd0e0, #80a2c4); background-color: #9fb9d2; line-height: 20px; color: white; font-family: inherit; font-size: 12px; font-weight: bold; margin: 0px; padding: 1px; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; width: auto; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.1), 0px -1px 1px rgba(0, 0, 0, 0.4); border: 1px solid #517191; -moz-box-shadow: "0px 1px 1px rgba(255,255,255,.6), 0px -1px 1px rgba(0,0,0,.1) "; -webkit-box-shadow: "0px 1px 1px rgba(255,255,255,.6), 0px -1px 1px rgba(0,0,0,.1) "; box-shadow: "0px 1px 1px rgba(255,255,255,.6), 0px -1px 1px rgba(0,0,0,.1) "; } + +.small_button:active, .small_button[selected], .small_button.active { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzdlODk5NCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzgwYTJjNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #7e8994), color-stop(100%, #80a2c4)); background: -moz-linear-gradient(top, #7e8994, #80a2c4); background: -webkit-linear-gradient(top, #7e8994, #80a2c4); background: linear-gradient(to bottom, #7e8994, #80a2c4); background-color: #7f95ac; } + +.group_button { -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0; border-left: 1px solid #a6bed9; border-right: 1px solid #445d79; } + +.group_button:first-child { -moz-border-radius-topleft: 6px; -moz-border-radius-bottomleft: 6px; border-top-left-radius: 6px; border-bottom-left-radius: 6px; -webkit-border-top-left-radius: 6px; -webkit-border-bottom-left-radius: 6px; border-left: 1px solid #517090; } + +.group_button:last-child { -webkit-border-top-left-radius: 0px; -moz-border-radius-topleft: 0px; -webkit-border-bottom-left-radius: 0px; -moz-border-radius-bottomleft: 0px; -webkit-border-top-right-radius: 6px; -moz-border-radius-topright: 6px; -webkit-border-bottom-right-radius: 6px; -moz-border-radius-bottomright: 6px; border-right: 1px solid #517090; } + +/*Options popups*/ +.options_link { font-size: x-small; clear: left; margin: 2px 0px 0px 10px; display: inline-block; width: 30px; height: 30px; position: absolute; top: 35px; right: 10px; background-image: url("../compact/options.png"); /*SPRITE*/ } +.options_link.active { background-image: url("../compact/options-active.png"); /*SPRITE*/ } + +.comment .options_link { top: 10px; } + +/*Options expando*/ +.link .options_expando, .comment .options_expando, .message .options_expando { background: #213345; margin: 35px -5px -1px; border-top: 1px solid #111922; display: none; -moz-box-shadow: inset 0px 3px 8px rgba(0, 0, 0, 0.8); -webkit-box-shadow: inset 0px 3px 8px rgba(0, 0, 0, 0.8); box-shadow: inset 0px 3px 8px rgba(0, 0, 0, 0.8); text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.8); text-align: center; height: 60px; overflow: hidden; } +.link .options_expando a, .comment .options_expando a, .message .options_expando a { display: inline-block; color: white; text-decoration: none; font-size: 11px; padding: 10px; width: 50px; height: 40px; text-align: center; border-right: 1px solid #111922; border-left: 1px solid #324c67; -moz-transition: all 100ms ease-in; -o-transition: all 100ms ease-in; -webkit-transition: all 100ms ease-in; transition: all 100ms ease-in; } +.link .options_expando a:active, .comment .options_expando a:active, .message .options_expando a:active { background-color: #324c67; border-left: 1px solid #42668a; } +.link .options_expando a:hover, .comment .options_expando a:hover, .message .options_expando a:hover { background-color: #263340; -moz-box-shadow: inset 0px 3px 8px rgba(0, 0, 0, 0.8); -webkit-box-shadow: inset 0px 3px 8px rgba(0, 0, 0, 0.8); box-shadow: inset 0px 3px 8px rgba(0, 0, 0, 0.8); border-left: 1px solid #42668a; } +.link .options_expando a:first-child, .comment .options_expando a:first-child, .message .options_expando a:first-child { border-left: none; } +.link .options_expando a:last-child, .comment .options_expando a:last-child, .message .options_expando a:last-child { border-right: none; } +.link .options_expando.expanded, .comment .options_expando.expanded, .message .options_expando.expanded { display: block; } + +.comment .entry, .message .entry { margin-right: 50px; } +.comment .child .options_link, .message .child .options_link { top: 8px; } +.comment .options_expando, .message .options_expando { margin: 10px -50px 10px 0px; } + +.message .options_expando { margin: 25px -55px 10px -5px; } + +.options_icons, .email-icon, .report-icon, .save-icon, .unsave-icon, .domain-icon, .edit-icon, .reply-icon, .permalink-icon, .collapse-icon, .context-icon, .parent-icon, .unread-icon, .hide-icon, .unhide-icon { display: block; width: 24px; height: 24px; margin-left: auto; margin-right: auto; margin-bottom: 5px; } + +.email-icon { background-image: url("../compact/email.png"); /*SPRITE*/ } + +.report-icon { background-image: url("../compact/report.png"); /*SPRITE*/ } + +.save-icon { background-image: url("../compact/save.png"); /*SPRITE*/ } + +.unsave-icon { background-image: url("../compact/unsave.png"); /*SPRITE*/ } + +.domain-icon { background-image: url("../compact/domain.png"); /*SPRITE*/ } + +.edit-icon { background-image: url("../compact/edit.png"); /*SPRITE*/ } + +.reply-icon { background-image: url("../compact/reply.png"); /*SPRITE*/ } + +.permalink-icon { background-image: url("../compact/permalink.png"); /*SPRITE*/ } + +.collapse-icon { background-image: url("../compact/collapse.png"); /*SPRITE*/ } + +.context-icon { background-image: url("../compact/context.png"); /*SPRITE*/ } + +.parent-icon { background-image: url("../compact/context.png"); /*SPRITE*/ } + +.unread-icon { background-image: url("../compact/unread.png"); /*SPRITE*/ } + +.hide-icon { background-image: url("../compact/hide.png"); /*SPRITE*/ } + +.unhide-icon { background-image: url("../compact/unhide.png"); /*SPRITE*/ } + +/*Toolbar*/ +#topbar { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2NlZTNmOCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2E4YzRlMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #cee3f8), color-stop(100%, #a8c4e0)); background: -moz-linear-gradient(top, #cee3f8, #a8c4e0); background: -webkit-linear-gradient(top, #cee3f8, #a8c4e0); background: linear-gradient(to bottom, #cee3f8, #a8c4e0); background-color: #bbd3ec; border-bottom: 1px solid #7599BD; border-top: 1px solid #DCEAF7; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; padding: 0px 10px; height: 40px; position: relative; } +#topbar #header-img { height: 32px; width: auto; } +#topbar .left { position: absolute; left: 0; bottom: 3px; overflow: hidden; max-height: 40px; z-index: 1; } +#topbar .right { position: absolute; right: 10px; bottom: 1px; z-index: 3; } +#topbar > h1 { color: #444; font-size: 18px; font-weight: bold; text-align: center; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; margin: 0 10px; padding: 0; padding-top: 16px; text-shadow: rgba(255, 255, 255, 0.5) 0px 1px 0px, rgba(0, 0, 0, 0.1) 0px -1px 0px; -webkit-box-flex: 1; -moz-box-flex: 1; -ms-box-flex: 1; box-flex: 1; } + +#topbar > h1 a { position: relative; color: inherit; text-decoration: inherit; z-index: 2; } + +body[orient="landscape"] > #topbar > h1 { margin-left: -125px; width: 250px; } + +#topbar > .right > .button { padding-top: 8px; padding-bottom: 3px; } + +#topbar > .right > .button:first-child { margin-right: 5px; } + +#topbar > .right > #mail { width: 30px; height: 30px; display: inline-block; } +#topbar > .right > #mail.nohavemail { background-image: url("../compact/nomail.png"); /*SPRITE*/ } +#topbar > .right > #mail.nohavemail:active, #topbar > .right > #mail.nohavemail:hover { background-image: url("../compact/nomail-active.png"); /*SPRITE*/ } +#topbar > .right > #mail.havemail { background-image: url("../compact/havemail.png"); /*SPRITE*/ } +#topbar > .right > #mail.havemail:active, #topbar > .right > #mail.havemail:hover { background-image: url("../compact/havemail-active.png"); /*SPRITE*/ } + +#topbar > .right > #modmail { width: 30px; height: 30px; display: inline-block; } +#topbar > .right > #modmail.nohavemail { background-image: url("../compact/modmail.png"); /*SPRITE*/ } +#topbar > .right > #modmail.nohavemail:active, #topbar > .right > #modmail.nohavemail:hover { background-image: url("../compact/modmail-active.png"); /*SPRITE*/ } +#topbar > .right > #modmail.havemail { background-image: url("../compact/newmodmail.png"); /*SPRITE*/ } +#topbar > .right > #modmail.havemail:active, #topbar > .right > #modmail.havemail:hover { background-image: url("../compact/newmodmail-active.png"); /*SPRITE*/ } + +.topbar-options { width: 30px; height: 30px; display: inline-block; background-image: url("../compact/menu-options.png"); /*SPRITE*/ } +.topbar-options.active, .topbar-options:hover, .topbar-options:active { background-image: url("../compact/menu-options-active.png"); /*SPRITE*/ } + +#top_menu { position: absolute; right: 5px; top: 44px; background-color: white; border: 1px solid rgba(27, 47, 94, 0.4); border-top: 0px; -webkit-border-bottom-left-radius: 10px; -moz-border-radius-bottomleft: 10px; -webkit-border-bottom-right-radius: 10px; -moz-border-radius-bottomright: 10px; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; -moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); -webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3); z-index: 5; display: none; } + +#top_menu > .menuitem { padding: 5px; } + +#top_menu > .menuitem.bottm-bar { border-bottom: 1px solid rgba(27, 47, 94, 0.4); } + +#top_menu > .menuitem a { text-decoration: none; color: #222; font-weight: bold; } + +.status { color: red; margin-left: 20px; } + +/*Subtoolbar (eg hot)*/ +.subtoolbar { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; height: 32px; background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2NjY2NjYyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ffffff), color-stop(100%, #cccccc)); background: -moz-linear-gradient(top, #ffffff, #cccccc); background: -webkit-linear-gradient(top, #ffffff, #cccccc); background: linear-gradient(to bottom, #ffffff, #cccccc); background-color: #e5e5e5; border-bottom: 1px solid #bbb; padding: 6px; text-overflow: ellipsis; overflow: hidden; } + +.subtoolbar > ul { list-style-type: none; margin: 0; padding: 0; } + +.subtoolbar > ul > li { display: inline-block; text-overflow: ellipsis; overflow: hidden; } + +.subtoolbar > ul > li a { color: #4c566c; font-weight: bold; text-decoration: none; font-size: 12px; line-height: 20px; margin: 0; padding: 3px 10px; text-overflow: ellipsis; overflow: hidden; } + +.subtoolbar > ul > li.selected a { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2RkZGRkZCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2FhYWFhYSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #dddddd), color-stop(100%, #aaaaaa)); background: -moz-linear-gradient(top, #dddddd, #aaaaaa); background: -webkit-linear-gradient(top, #dddddd, #aaaaaa); background: linear-gradient(to bottom, #dddddd, #aaaaaa); background-color: #c3c3c3; -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; border: 1px solid #aaa; padding-top: 2px; padding-bottom: 1px; -moz-box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.8); -webkit-box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.8); box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.8); } + +/*Things*/ +/*Arrows*/ +.link .arrow, .comment .arrow, .message .arrow { width: 28px; height: 28px; cursor: pointer; display: block; margin: 1px auto 0px; outline: none; } +.link .arrow.up, .comment .arrow.up, .message .arrow.up { background-image: url("../compact/upvote.png"); /*SPRITE*/ } +.link .arrow.down, .comment .arrow.down, .message .arrow.down { background-image: url("../compact/downvote.png"); /*SPRITE*/ } +.link .arrow.upmod, .comment .arrow.upmod, .message .arrow.upmod { background-image: url("../compact/upvote-active.png"); /*SPRITE*/ } +.link .arrow.downmod, .comment .arrow.downmod, .message .arrow.downmod { background-image: url("../compact/downvote-active.png"); /*SPRITE*/ } + +/*Links*/ +.link { min-height: 70px; border-bottom: 1px solid #999; border-top: 1px solid #ddd; padding: 5px 5px; padding-bottom: 0px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; background: rgba(255, 255, 255, 0.6); position: relative; overflow: hidden; } + +.link:first-child { border-top: none; } + +.link:nth-child(odd) { background: rgba(206, 227, 248, 0.5); } + +/* Voting stuff */ +.link > .rank { float: left; margin-top: 17px; font-size: 12px; color: #aaa; } + +.link > .midcol { float: left; width: 25px; margin: 0 10px 1px 0px; padding-bottom: 5px; position: relative; } + +.link > .entry .score, .link > .entry.likes .score.unvoted, .link > .entry.dislikes .score.unvoted { display: none; } + +.link > .entry .score.unvoted, .link > .entry.likes .score.likes, .link > .entry.dislikes .score.dislikes { display: inline; font-weight: bold; } + +.link > .entry.likes .score.likes { color: #E07A7A; } + +.link > .entry.dislikes .score.dislikes { color: #7272D1; } + +/* experimental */ +.link .rank { display: none; } + +.link .modcol { float: left; } + +.comment { position: relative; } + +.comment > .entry > .tagline .score { display: none; } + +.comment > .entry.unvoted > .tagline .score.unvoted, .comment > .entry.likes > .tagline .score.likes, .comment > .entry.dislikes > .tagline .score.dislikes { display: inline; } + +/** Vote up **/ +.link > .midcol.likes > .score { color: #E07A7A; } + +/** Vote down **/ +.link > .midcol.dislikes > .score { color: #7272D1; } + +/*Image*/ +.link .thumbnail { float: right; margin: 0 0 5px 5px; overflow: hidden; max-height: 50px; } + +.link .thumbnail img { max-width: 50px; max-height: 50px; } + +/* Entry*/ +.link .entry { margin: 0px 50px 3px 0px; } + +.link a { text-decoration: none; color: #517191; color: #369; } + +.link p.title { margin: 0; padding: 0; text-overflow: ellipsis; word-wrap: break-word; font-size: .8em; font-weight: bold; } + +.link p.title > a { text-overflow: ellipsis; overflow: hidden; color: #25A; } + +.link.stickied p.title > a { color: #228822; } + +.link .domain { color: #737373; font-size: 9px; margin-left: 5px; } +.link .domain a, .link .domain a:hover { color: inherit; } + +.link .tagline { margin: 2px 0 5px; padding: 0; padding-top: 2px; font-size: 10px; color: #333; } + +.link .tagline > span { margin-right: 2px; } + +.link .tagline a { font-weight: bold; } + +.link .tagline .stickied-tagline { color: #228822; } + +/*Expando*/ +.link .expando-button { float: left; display: block; height: auto; line-height: inherit; margin: 3px 10px 2px 0; width: 30px; height: 30px; background-image: url("../compact/selftext.png"); /*SPRITE*/ } +.link .expando-button.expanded { background-image: url("../compact/selftext-active.png"); /*SPRITE*/ } + +.link > .expando { clear: both; margin: 5px 0; margin-bottom: 30px; border: 1px solid #999; background: #ddd; padding: 5px; -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; font-size: 11px; } + +.link > .thing_options { font-size: x-small; margin: none; display: block; float: left; clear: left; margin: 2px 0px 0px 10px; } + +.nsfw-warning, .quarantine-warning { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; color: #ac3939; text-decoration: none; font-weight: normal; font-size: 9px; margin-left: 5px; padding: 0 2px; border: 1px solid #d27979 !important; } + +/* Comment count */ +.commentcount { float: right; margin: 5px; width: 45px; text-align: right; } + +.commentcount > .comments { border: 8px solid transparent; -moz-border-image: url("../compact/border-button.png") 8 fill; -o-border-image: url("../compact/border-button.png") 8 fill; -webkit-border-image: url("../compact/border-button.png") 8 fill; border-image: url("../compact/border-button.png") 8 fill; color: white; font-family: inherit; font-size: 12px; font-weight: bold; text-decoration: none; text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.1), 0px -1px 1px rgba(0, 0, 0, 0.4); } +.commentcount > .comments:active, .commentcount > .comments:hover, .commentcount > .comments[selected], .commentcount > .comments.preloaded { -moz-border-image: url("../compact/border-button-active.png") 8 fill; -o-border-image: url("../compact/border-button-active.png") 8 fill; -webkit-border-image: url("../compact/border-button-active.png") 8 fill; border-image: url("../compact/border-button-active.png") 8 fill; } + +/* Comment styles */ +.commentarea > h1 { color: #4c566c; font-size: 17px; margin: 10px 10px 5px; border-bottom: 1px solid rgba(0, 0, 0, 0.2); -moz-box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.4); -webkit-box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.4); box-shadow: 0px 1px 1px rgba(255, 255, 255, 0.4); } + +.commentarea > .menuarea { display: none; /*TODO: Make dropdown menu*/ } + +.commentarea > .main-form-title { color: #4c566c; font-size: 17px; font-weight: bold; margin: 0 10px; } + +.commentarea > .usertext { background: white; margin: 0 10px 5px; border: 1px solid #d9d9d9; -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } + +.commentarea > .usertext textarea { margin: 0; padding: 5px; width: 100%; height: 100px; border: none; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; border-bottom: 1px solid #d9d9d9; } + +.cancel, .save { float: right; padding: 0 5px !important; } + +.save { margin-left: 5px; } + +/* Errors */ +.error { color: red; } + +.content > .error { color: rgba(255, 255, 255, 0.9); font-size: 25px; margin: 10px; text-align: center; text-shadow: rgba(0, 0, 0, 0.15) 0px -1px 0px; } + +.help-toggle { float: left; margin-top: 3px; } + +.bottom-area { padding: 5px; } + +.markhelp-parent { display: none; } + +.markhelp { width: 100%; border-collapse: collapse; } + +.markhelp th { background: #d9d9d9; } + +.markhelp th:first-child { -webkit-border-top-left-radius: 8px; -moz-border-radius-topleft: 8px; border-top-left-radius: 8px; } + +.markhelp th:last-child { -webkit-border-top-right-radius: 8px; -moz-border-radius-topright: 8px; border-top-right-radius: 8px; } + +.markhelp tr:nth-child(odd) td { background: rgba(0, 0, 100, 0.1); } + +.markhelp td { border: 1px solid #d9d9d9; padding: 5px; } + +.markhelp tr:last-child td:first-child { -webkit-border-bottom-left-radius: 8px; -moz-border-radius-bottomleft: 8px; border-bottom-left-radius: 8px; } + +.markhelp tr:last-child td:last-child { -webkit-border-bottom-right-radius: 8px; -moz-border-radius-bottomright: 8px; border-bottom-right-radius: 8px; } + +/*Cloned comment reply */ +.usertext textarea { margin: 0; padding: 5px; border: 1px solid #d9d9d9; width: 100%; min-height: 100px; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } + +.child form.usertext.cloneable { margin: 5px; } + +/**Actual comments*/ +.comment { background: white; border: 1px solid #d9d9d9; margin: 10px; -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } + +.comment > .midcol { float: left; margin: 7px; overflow: hidden; } + +.comment > .entry > .tagline { font-size: 11px; padding-bottom: 2px; } + +.child .comment { margin: 4px; margin-top: 0px; -webkit-border-top-right-radius: 0px; -moz-border-radius-topright: 0px; } + +.comment.collapsed .child, .comment.collapsed .usertext, .comment.collapsed .midcol, .comment.collapsed .button, .comment.collapsed .options_link, .comment.collapsed .options_expando { display: none; } + +.comment.collapsed { font-style: italcs; } + +.comment.collapsed .tagline { margin-left: 20px; font-style: italcs; color: #AAA; } + +/** gilding */ +.gilded-icon { position: relative; display: inline-block; margin: 0 0 -15px 8px; top: -8px; color: #99895F; font-size: .9em; vertical-align: middle; } + +.gilded-icon:before { display: inline-block; content: ''; background-image: url(../gold-coin.png); /* SPRITE */ background-repeat: no-repeat; height: 14px; width: 13px; margin-right: 2px; vertical-align: -3px; } + +.user-gilded > .entry .gilded-icon:before { width: 23px; } + +body.post-under-6h-old .gilded-icon { opacity: .55; } + +/** messages and inbox */ +.message { background: white; position: relative; border: 1px solid #d9d9d9; margin: 10px; -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; padding: 5px; } + +.message > .midcol { float: left; margin: 10px; overflow: hidden; } + +.message.unread { background-color: #FFFFAA; } + +.message .correspondent { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2NlZTNmOCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzllYmVkYyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #cee3f8), color-stop(100%, #9ebedc)); background: -moz-linear-gradient(top, #cee3f8, #9ebedc); background: -webkit-linear-gradient(top, #cee3f8, #9ebedc); background: linear-gradient(to bottom, #cee3f8, #9ebedc); background-color: #b6d0ea; /* TODO */ margin-right: 10px; padding: 2px 5px; -moz-border-radius: 15px; -webkit-border-radius: 15px; border-radius: 15px; } + +.message .correspondent a { text-decoration: none; } + +.message .message .subject { display: none; } + +.message > .entry > .tagline { font-size: 11px; padding-bottom: 2px; margin-bottom: 2px; } + +.message > .entry .usertext-body, .message > .entry .md { font-size: 11px; word-wrap: break-word; } + +.message > .metabuttons { float: right; margin: 10px; } + +.message .subject { font-weight: bold; font-size: 13px; border-bottom: 1px solid #d9d9d9; padding: 5px; overflow: hidden; } + +.message .subject a { margin-left: 5px; } + +.message .subject .correspondent a { margin-left: 0; } + +/* subreddit */ +.link .subreddit { background-color: transparent; margin: 0px; } + +.subreddit { background-color: white; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; margin: 5px; } + +.subreddit p.title { display: block; margin-left: 35px; margin-right: 30px; } + +.subreddit a.title { display: block; margin: 0; padding: 0; text-overflow: ellipsis; word-wrap: break-word; font-size: small; font-weight: bold; text-overflow: ellipsis; overflow: hidden; color: #25A; text-decoration: none; } + +.subreddit .title a.domain { font-size: x-small; color: #AAA; font-style: italic; display: block; } + +.subreddit .tagline { font-size: x-small; color: #666; } + +.subreddit .button.active { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JmZDBlMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzgwYTJjNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #bfd0e0), color-stop(100%, #80a2c4)); background: -moz-linear-gradient(top, #bfd0e0, #80a2c4); background: -webkit-linear-gradient(top, #bfd0e0, #80a2c4); background: linear-gradient(to bottom, #bfd0e0, #80a2c4); background-color: #9fb9d2; } + +.subreddit > .entry .score, .subreddit > .entry.likes .score.unvoted, .subreddit > .entry.dislikes .score.unvoted { display: none; } + +.subreddit > .entry .score.unvoted, .subreddit > .entry.likes .score.likes, .subreddit > .entry.dislikes .score.dislikes { display: inline; } + +.subreddit .midcol .button.add, .subreddit .midcol .button.remove { font-family: courier; font-size: small; } + +.subreddit .midcol { float: left; } + +.subreddit .midcol .button { display: none; margin: 4px; } + +.subreddit .midcol .button.active { display: block; width: auto; height: auto; padding: 0px 9px; } + +.subreddit .expando-button { float: right; height: 100%; } + +.subreddit .description { border-top: 1px solid #AAA; margin-top: 2px; padding-top: 2px; margin-left: 0px; padding-left: 10px; } + +/* Compose */ +#compose-message { background: white; border: 1px solid #d9d9d9; border-top: 0px; margin: 10px; margin-top: 0; padding: 10px; -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; } + +#compose-message label { display: block; font-size: 17px; font-weight: bold; } + +#compose-message input[type="text"] { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; border: 1px solid #757575; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; margin-bottom: 5px; padding: 5px; width: 100%; } + +#compose-message textarea { border-color: #757575; height: 200px; } + +.comment > .entry .usertext-body { font-size: 11px; word-wrap: break-word; } + +.comment > .entry .usertext-edit { margin-left: 42px; } + +.comment > .metabuttons { float: right; margin: 10px; } + +/*Child comment specific styles*/ +/*Reduce the bottom margin on the last child comment in a thread, to make viewing easier.*/ +.child .comment { margin-right: -1px; } + +.child .comment:last-child { margin-bottom: 2px; } + +.comment > .morecomments { margin: 5px; text-align: right; } + +/*Link colors*/ +.tagline .submitter { color: blue; } + +.tagline .friend { color: orange; /*Why not orangered? Because orangered can look very red on a mobile*/ } + +.tagline .moderator { color: #282; } + +.tagline .admin { color: #F01; } + +.tagline .userattrs .cakeday { display: inline-block; text-indent: -9999px; width: 11px; height: 8px; background-image: url(../cake.png); /* SPRITE */ vertical-align: middle; } + +/*Loading spinner, yay CSS animation*/ +@-webkit-keyframes rotateThis { from { -webkit-transform: scale(0.75) rotate(0deg); } + to { -webkit-transform: scale(0.75) rotate(360deg); } } +.loading { width: 100%; background-color: white; text-align: center; } + +.loading img { -webkit-animation-name: rotateThis; -webkit-animation-duration: .5s; -webkit-animation-iteration-count: infinite; -webkit-animation-timing-function: linear; } + +.throbber { display: none; margin: 0 2px; background: url("../compact/throbber.gif") no-repeat; width: 18px; height: 18px; } + +.working .throbber { display: inline-block; } + +/* Login and Register */ +#login_login, #login_reg { background: white; border: 1px solid #d9d9d9; margin: 10px; -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; max-width: 350px; margin-left: auto; margin-right: auto; } + +#login_login > div, #login_reg > div { padding: 10px; } + +#login_login > div > ul, #login_reg > div > ul { list-style-type: none; padding: 0; margin: 0 0 10px; } + +#login_login > div > ul li label, #login_reg > div > ul li label { display: block; font-size: 17px; font-weight: bold; } + +#login_login input[type="text"], #login_login input[type="password"], #login_reg input[type="text"], #login_reg input[type="password"] { width: 100%; margin: 0 0 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; border: 1px solid #757575; /*It was the coins fault!*/ font-size: 17px; padding: 5px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; } + +#login_login > div > ul li input[type="checkbox"] + label, #login_reg > div > ul li input[type="checkbox"] + label { display: inline; } + +.user-form .submit * { vertical-align: middle; } + +/* takdown page (sigh) */ +.infobar.red img { float: left; } + +.infobar.red { border: 1px solid red; padding: 10px; margin: 5px; background-color: #FFA177; } + +.clear { clear: both; } + +.clearleft { clear: left; } + +.cover { position: fixed; left: 0px; top: 0px; width: 100%; height: 100%; background-color: gray; opacity: .3; z-index: 1000; } + +.popup { position: absolute; top: 75px; left: 0; -moz-border-radius: 30px; -webkit-border-radius: 30px; border-radius: 30px; background-color: white; text-align: left; z-index: 1001; padding: 10px; border-color: #B2B2B2 black black #B2B2B2; border-style: solid; border-width: 1px; margin-left: auto; margin-right: auto; max-width: 350px; } + +.popup h1 { text-align: center; font-size: large; font-weight: normal; color: orangered; } + +/* Submit links */ +#newlink { background: white; border: 1px solid #d9d9d9; margin: 10px; -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; } + +#newlink .save { margin: 8px; } + +/** Tab switcher **/ +#newlink .tabmenu { display: -webkit-box; display: -moz-box; -webkit-box-orient: horizontal; -moz-box-orient: horizontal; margin: 10px; padding: 0; } + +#newlink .tabmenu li { display: block; webkit-box-flex: 1; background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2Q5ZDlkOSIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2IzYjNiMyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #d9d9d9), color-stop(100%, #b3b3b3)); background: -moz-linear-gradient(top, #d9d9d9, #b3b3b3); background: -webkit-linear-gradient(top, #d9d9d9, #b3b3b3); background: linear-gradient(to bottom, #d9d9d9, #b3b3b3); background-color: #c6c6c6; border: 1px solid #999999; position: relative; } + +#newlink .tabmenu li a { width: 100%; height: 100%; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; display: block; padding: 5px; color: #4d4d4d; text-shadow: rgba(255, 255, 255, 0.4) 0px 1px 1px; text-decoration: none; font-weight: bold; } + +#newlink .tabmenu li:first-child { -webkit-border-bottom-left-radius: 5px; -webkit-border-top-left-radius: 5px; -moz-border-radius-bottomleft: 5px; -moz-border-radius-topleft: 5px; } + +#newlink .tabmenu li:last-child { -webkit-border-bottom-right-radius: 5px; -webkit-border-top-right-radius: 5px; -moz-border-radius-bottomright: 5px; -moz-border-radius-topright: 5px; border-left-color: #cccccc; } + +#newlink li.selected { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzgwODA4MCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2IzYjNiMyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #808080), color-stop(100%, #b3b3b3)); background: -moz-linear-gradient(top, #808080, #b3b3b3); background: -webkit-linear-gradient(top, #808080, #b3b3b3); background: linear-gradient(to bottom, #808080, #b3b3b3); background-color: #999999; } + +#newlink li.selected a { text-shadow: rgba(0, 0, 0, 0.4) 0px -1px 1px; color: #f2f2f2; } + +#newlink .spacer { margin-bottom: 5px; } + +#newlink .infobar { margin: 5px; } + +/* Fields */ +#newlink textarea, #newlink input[type="text"], #newlink input[type="url"] { border: 1px solid #999999; } + +#newlink .roundfield { position: relative; padding: 0px 5px; } + +#newlink .roundfield-content textarea { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 5em; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; } + +#newlink .roundfield-content input[type="text"], #newlink .roundfield-content input[type="url"] { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; width: 100%; height: 2em; -moz-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; } + +#newlink .title { font-weight: bold; } + +/* Individual sections */ +#url-field .button { float: right; margin-top: 5px; } + +#url-field .title-status { background: #e6e6e6; border: 1px solid gray; padding: 2px 4px; margin-top: 5px; display: inline-block; } + +#suggested-reddits ul { background: #e6e6e6; border: 1px solid gray; padding: 8px; -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; } + +#suggested-reddits ul li { display: inline; } + +#suggested-reddits ul li a { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JlY2ZlMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzgxYTNjNSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #becfe0), color-stop(100%, #81a3c5)); background: -moz-linear-gradient(top, #becfe0, #81a3c5); background: -webkit-linear-gradient(top, #becfe0, #81a3c5); background: linear-gradient(to bottom, #becfe0, #81a3c5); background-color: #9fb9d2; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; display: inline-block; margin: 5px; padding: 3px 7px; text-decoration: none; border: 1px solid #507faf; color: #304c69; } + +/* Autocomplete */ +#sr-autocomplete-area { position: relative; z-index: 50; } + +#sr-drop-down { position: absolute; background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2U2ZTZlNiIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iI2JmYmZiZiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #e6e6e6), color-stop(100%, #bfbfbf)); background: -moz-linear-gradient(top, #e6e6e6, #bfbfbf); background: -webkit-linear-gradient(top, #e6e6e6, #bfbfbf); background: linear-gradient(to bottom, #e6e6e6, #bfbfbf); background-color: #d2d2d2; border: 1px solid gray; -webkit-border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; border-top: 0px; display: none; left: 5px; margin: 0px; padding: 0px; position: absolute; font-weight: bold; color: #333333; } + +#sr-drop-down li { display: block; padding: 2px 5px; } + +#sr-drop-down li:hover, #sr-drop-down li:active { background: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgeDE9IjAuNSIgeTE9IjAuMCIgeDI9IjAuNSIgeTI9IjEuMCI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2JlY2ZlMCIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzgxYTNjNSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #becfe0), color-stop(100%, #81a3c5)); background: -moz-linear-gradient(top, #becfe0, #81a3c5); background: -webkit-linear-gradient(top, #becfe0, #81a3c5); background: linear-gradient(to bottom, #becfe0, #81a3c5); background-color: #9fb9d2; color: white; text-shadow: rgba(255, 255, 255, 0.09766) 0px 1px 1px, rgba(0, 0, 0, 0.39844) 0px -1px 1px; -webkit-text-stroke: 1px solid #517090; } + +#sr-drop-down li:last-child { -webkit-border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; } + +/* markdown */ +.md { overflow: auto; font-size: small; } + +.md p, .md h1 { margin: 5px 0; } + +.md h1 { font-weight: bold; font-size: 100%; } + +.md h2 { font-weight: bold; font-size: 100%; } + +.md > * { margin-bottom: 0px; } + +.md strong { font-weight: bold; } + +.md em { font-style: italic; } + +.md strong em { font-style: italic; font-weight: bold; } + +.md img { display: none; } + +.md ol, .md ul { margin: 10px 2em; } + +.md ul { list-style: disc outside; } + +.md ol { list-style: decimal outside; } + +.md pre { margin: 10px; } + +.md blockquote, .help blockquote { border-left: 2px solid #369; padding-left: 4px; margin: 5px; margin-right: 15px; } + +.md td, .md th { border: 1px solid #EEE; padding: 1px 3px; } + +.md th { font-weight: bold; } + +.md table { margin: 5px 10px; } + +.md center { text-align: left; } + +.tryme { width: 100%; max-width: 280px; padding: 10px; background-color: white; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius: 10px; margin: 10px auto; } + +.tryme p { margin: 10px; font-size: small; } + +.tryme .choices .button { width: 260px; display: block; text-align: center; margin: 10px; } + +.deepthread { margin-left: 40px; } + +.morecomments a, .deepthread a { text-decoration: none; color: white; } + +.morechildren { margin: 5px 10px; } + +.morechildren a { display: block; text-align: center; max-width: 350px; color: white !important; } + +a.author { margin-right: 0.5em; } + +.flair, .linkflair { margin-top: 2px; margin-right: 0.5em; padding: 0px 2px; display: inline-block; background: whiteSmoke; color: #545454; border: 1px solid #dedede; font-size: 9px; -moz-border-radius: 2px; -webkit-border-radius: 2px; border-radius: 2px; -moz-box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.9); -webkit-box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.9); box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.9); } + +.linkflair { font-weight: normal; max-width: 10em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + +.mobile-web-redirect-bar { background: white; box-sizing: border-box; font-family: sans-serif; font-size: 14px; padding: 20px; width: 100%; z-index: 1000; } +.mobile-web-redirect-bar a { text-decoration: none; } +.mobile-web-redirect-bar .mobile-web-redirect-header { font-size: 18px; line-height: 25px; margin-bottom: 20px; } +.mobile-web-redirect-bar .mobile-web-redirect-optin { background-color: #4a7fc5; border-radius: 3px; box-shadow: inset 0 -3px 0 0 #3e6ab7; color: white; display: block; font-family: "Verdana", sans-serif; font-weight: bold; line-height: 20px; margin-bottom: 20px; padding: 10px 0; text-align: center; text-transform: uppercase; } +.mobile-web-redirect-bar .mobile-web-redirect-optout { color: #7f7f7f; } + +.commentspacer { clear: both; } diff --git a/src/style/compact.scss b/src/style/compact.scss new file mode 100644 index 0000000..8c48c75 --- /dev/null +++ b/src/style/compact.scss @@ -0,0 +1,1573 @@ +// Requires Compass and Sass to compile properly +// [$]> gem install haml compass +// [$]> cd r2/public/static/css +// [$]> scss --compass --sourcemap=none --no-cache --style compact --watch compact.scss:compact.css + +/* mixins */ + +@import "compass/css3"; +// TODO: Replace with non-deprecated +// http://compass-style.org/reference/compass/css3/flexbox/ . +@import "compass/css3/box"; + +@mixin vertical_gradient($from, $to) { + @include background(linear-gradient(top, $from, $to)); + background-color: mix($from, $to); //Takes 2 colors, and gives their combination. Looks good on gradual gradients, not on "exciting" gradients +} +@mixin sprite($url) { + background-image: url($url); /*SPRITE*/ +} +//Directory for compact static files +$static: "../compact/"; + +/* meat */ + + +body { + background: rgb(197,204,211); + font-family: Helvetica, "Helvetica Neue", Arial, sans-serif; + margin: 0; + width: 100%; height: 100%; + -webkit-font-smoothing: antialiased; +} +p { + margin: 0; padding: 0; +} +a { + color: #517191; +} +a:visited { + color: #4F565B; +} +textarea { + font-family: inherit; +} +/*Preloading*/ +#preload { + position: absolute; + top: -1000px; + left: -1000px; +} +/*UI stuff*/ +.newbutton { + @include appearance(none); + border: 8px solid transparent; + @include border-image(url($static + 'border-button.png') 8 fill); + color: white; + font: { + family: inherit; + size: 12px; + weight: bold; + } + text-decoration: none; + text-shadow: 0px 1px 1px rgba(255,255,255,.1), 0px -1px 1px rgba(0,0,0,.4); + background: none; + + &:active, &:hover, &[selected], &.expanded, &.active { + @include border-image(url($static + 'border-button-active.png') 8 fill); + color: white; + } +} +.button, .button:visited { + @include border-radius(6px); + @include vertical_gradient(#BFD0E0, #80A2C4); + + height: 30px; line-height: 30px; + color: white; + font-family: inherit; font-size: 12px; + font-weight: bold; + margin: 0px; + padding: 5px; + text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; + width: auto; + text-shadow: 0px 1px 1px rgba(255,255,255,.1), 0px -1px 1px rgba(0,0,0,.4); + border: 1px solid #517191; + @include box-shadow(inset 0px 1px 0px hsla(0,0%,100%,.75), 0px 1px 1px rgba(255,255,255,.6), 0px -1px 1px rgba(0,0,0,.1) ); +} +.button:active, .button[selected], .button.active, +/*Vote toolbar styles*/.button.upmod, .button.downmod + { + @include vertical_gradient(#7E8994, #80A2C4); +} +button.button { + padding: 0 5px; +} +.secondary_button { + @include vertical_gradient(#ABBBC9, #8393A3); + border: 1px solid #626D78; +} +.secondary_button:active, .second_button[selected], .second_button.active { + background-color: #ABBBC9; + @include vertical_gradient(#8393A3, #ABBBC9); +} + +.small_button, .small_button:visited { + @include border-radius(6px); + @include vertical_gradient(#BFD0E0, #80A2C4); + + line-height: 20px; + color: white; + font-family: inherit; font-size: 12px; + font-weight: bold; + margin: 0px; + padding: 1px; + text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; + width: auto; + text-shadow: 0px 1px 1px rgba(255,255,255,.1), 0px -1px 1px rgba(0,0,0,.4); + border: 1px solid #517191; + @include box-shadow( "0px 1px 1px rgba(255,255,255,.6), 0px -1px 1px rgba(0,0,0,.1) "); +} +.small_button:active, .small_button[selected], .small_button.active { + @include vertical_gradient(#7E8994, #80A2C4); +} + + +.group_button { + @include border-radius(0); + border-left: 1px solid hsl(211, 40%, 75%); + border-right: 1px solid hsl(211, 28%, 37%); +} +.group_button:first-child { + -moz-border-radius-topleft: 6px; + -moz-border-radius-bottomleft: 6px; + + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; + + -webkit-border-top-left-radius: 6px; + -webkit-border-bottom-left-radius: 6px; + border-left: 1px solid hsl(210, 28%, 44%); +} +.group_button:last-child { + -webkit-border-top-left-radius: 0px; -moz-border-radius-topleft: 0px; + -webkit-border-bottom-left-radius: 0px; -moz-border-radius-bottomleft: 0px; + -webkit-border-top-right-radius: 6px; -moz-border-radius-topright: 6px; + -webkit-border-bottom-right-radius: 6px; -moz-border-radius-bottomright: 6px; + border-right: 1px solid hsl(210, 28%, 44%); +} + +/*Options popups*/ +.options_link { + font-size: x-small; + clear: left; + margin: 2px 0px 0px 10px; + display: inline-block; + width: 30px; height: 30px; + position: absolute; + top: 35px; + right: 10px; + + @include sprite($static + 'options.png'); + + &.active { + @include sprite($static + 'options-active.png'); + } +} + +.comment .options_link { + top: 10px; +} + +/*Options expando*/ + +.link, .comment, .message { + .options_expando { + background: hsl(210,35%,20%); + margin: 35px -5px -1px; + border-top: 1px solid hsl(210,35%,10%); + display: none; + @include box-shadow(inset 0px 3px 8px hsla(0,0%,0%,.8)); + text-shadow: 0px -1px 0px hsla(0,0%,0%,.8); + text-align: center; + height: 60px; + overflow: hidden; + + a { + display: inline-block; + color: white; + text-decoration: none; + font-size: 11px; + padding: 10px; + width: 50px; height: 40px; + text-align: center; + border-right: 1px solid hsl(210,35%,10%); + border-left: 1px solid hsl(210,35%,30%); + @include transition(all 100ms ease-in); + + &:active { + background-color: hsl(210,35%,30%); + border-left: 1px solid hsl(210,35%,40%); + } + + &:hover { + background-color: hsl(210,25%,20%); + @include box-shadow(inset 0px 3px 8px hsla(0,0%,0%,.8)); + border-left: 1px solid hsl(210,35%,40%); + } + + &:first-child { + border-left: none; + } + &:last-child { + border-right: none; + } + } + + &.expanded { + display: block; + } + } +} +.comment, .message { //For the funky styles on comments/messages + .entry { + margin-right: 50px; + } + .child { + .options_link { + top: 8px; //Instead of 35px, for normal styles, we want 8px for these, as they are typically much smaller + } + } + .options_expando { + margin: 10px -50px 10px 0px; //Overwrite the link styles + } +} +.message { + + .options_expando { + margin: 25px -55px 10px -5px; + } +} + +.options_icons { + display: block; + width: 24px; + height: 24px; + margin: { + left: auto; + right: auto; + bottom: 5px; + } +} +.email-icon { + @extend .options_icons; + @include sprite($static + 'email.png'); +} +.report-icon { + @extend .options_icons; + @include sprite($static + 'report.png'); +} +.save-icon { + @extend .options_icons; + @include sprite($static + 'save.png'); +} +.unsave-icon { + @extend .options_icons; + @include sprite($static + 'unsave.png'); +} +.domain-icon { + @extend .options_icons; + @include sprite($static + 'domain.png'); +} +.edit-icon { + @extend .options_icons; + @include sprite($static + 'edit.png'); +} +.reply-icon { + @extend .options_icons; + @include sprite($static + 'reply.png'); +} +.permalink-icon { + @extend .options_icons; + @include sprite($static + 'permalink.png'); +} +.collapse-icon { + @extend .options_icons; + @include sprite($static + 'collapse.png'); +} +.context-icon { + @extend .options_icons; + @include sprite($static + 'context.png'); +} +.parent-icon { + @extend .options_icons; + @include sprite($static + 'context.png'); +} +.unread-icon { + @extend .options_icons; + @include sprite($static + 'unread.png'); +} +.hide-icon { + @extend .options_icons; + @include sprite($static + 'hide.png'); +} +.unhide-icon { + @extend .options_icons; + @include sprite($static + 'unhide.png'); +} + +/*Toolbar*/ +#topbar { + @include vertical_gradient(#CEE3F8, #A8C4E0); + border-bottom: 1px solid #7599BD; border-top: 1px solid #DCEAF7; + @include box-sizing(border-box); + padding: 0px 10px; //Left and right padding + height: 40px; + position: relative; + + #header-img { + height: 32px; + width: auto; + } + + .left { + position: absolute; + left: 0; + bottom: 3px; + overflow: hidden; + max-height: 40px; + z-index: 1; + } + .right { + position: absolute; + right: 10px; + bottom: 1px; + z-index: 3; + } + + & > h1 { + color: #444; + font-size: 18px; + font-weight: bold; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + margin: 0 10px; + padding: 0; + padding-top: 16px; + text-shadow: hsla(0, 100%, 100%, 0.5) 0px 1px 0px, hsla(0, 0%, 0%, 0.1) 0px -1px 0px; + @include box-flex(1); //This box will flex to fill avalible space + } +} + +#topbar > h1 a { + position: relative; + color: inherit; + text-decoration: inherit; + z-index: 2; +} +body[orient="landscape"] > #topbar > h1 { + margin-left: -125px; + width: 250px; +} + +#topbar > .right > .button { + padding-top: 8px; padding-bottom: 3px; +} +#topbar > .right > .button:first-child { + margin-right: 5px; +} +#topbar > .right > #mail { + width: 30px; + height: 30px; + display: inline-block; + + &.nohavemail { + @include sprite($static + 'nomail.png'); + + &:active, &:hover { + @include sprite($static + 'nomail-active.png'); + } + } + &.havemail { + @include sprite($static + 'havemail.png'); + + &:active, &:hover { + @include sprite($static + 'havemail-active.png'); + } + } +} +#topbar > .right > #modmail { + width: 30px; + height: 30px; + display: inline-block; + + &.nohavemail { + @include sprite($static + 'modmail.png'); + + &:active, &:hover { + @include sprite($static + 'modmail-active.png'); + } + } + &.havemail { + @include sprite($static + 'newmodmail.png'); + + &:active, &:hover { + @include sprite($static + 'newmodmail-active.png'); + } + } +} + +.topbar-options { + width: 30px; + height: 30px; + display: inline-block; + @include sprite($static + 'menu-options.png'); + + &.active, &:hover, &:active { + @include sprite($static + 'menu-options-active.png'); + } +} +#top_menu { + position: absolute; + right: 5px; top: 44px; + background-color: white; + border: 1px solid rgba(27,47,94,.4); border-top: 0px; + -webkit-border-bottom-left-radius: 10px; -moz-border-radius-bottomleft: 10px; + -webkit-border-bottom-right-radius: 10px; -moz-border-radius-bottomright: 10px; + border-bottom-left-radius: 10px; + border-bottom-right-radius: 10px; + @include box-shadow(0px 0px 8px rgba(0,0,0,.3) ); + z-index: 5; + display: none; +} +#top_menu > .menuitem { + padding: 5px; +} +#top_menu > .menuitem.bottm-bar { + border-bottom: 1px solid rgba(27,47,94,.4); +} +#top_menu > .menuitem a { + text-decoration: none; + color: #222; + font-weight: bold; +} + +.status { + color: red; + margin-left: 20px; +} + +/*Subtoolbar (eg hot)*/ +.subtoolbar { + @include box-sizing(border-box); + height: 32px; + @include vertical_gradient(white, #ccc); + border-bottom: 1px solid #bbb; + padding: 6px; + text-overflow: ellipsis; + overflow: hidden; +} +.subtoolbar > ul { + list-style-type: none; + margin: 0; padding: 0; +} +.subtoolbar > ul > li { + display: inline-block; + text-overflow: ellipsis; + overflow: hidden; +} +.subtoolbar > ul > li a { + color: rgb(76, 86, 108); + font-weight: bold; + text-decoration: none; + font-size: 12px; line-height: 20px; + margin: 0; + padding: 3px 10px; + text-overflow: ellipsis; + overflow: hidden; +} +.subtoolbar > ul > li.selected a { + @include vertical_gradient(#ddd, #aaa); + @include border-radius(8px); + border: 1px solid #aaa; + padding-top: 2px; + padding-bottom: 1px; + @include box-shadow(0px 1px 1px rgba(255,255,255,.8)); +} +/*Things*/ +/*Arrows*/ +.link , .comment, .message { + .arrow { + width: 28px; height: 28px; + cursor: pointer; + display: block; + margin: 1px auto 0px; + outline: none; + + //Unvoted + &.up { + @include sprite($static + 'upvote.png'); + } + &.down { + @include sprite($static + 'downvote.png'); + } + //Voted + &.upmod { + @include sprite($static + 'upvote-active.png'); + } + &.downmod { + @include sprite($static + 'downvote-active.png'); + } + } +} + +/*Links*/ +.link { + min-height: 70px; + border-bottom: 1px solid #999; + border-top: 1px solid #ddd; + padding: 5px 5px; + padding-bottom: 0px; + @include box-sizing(border-box); + background: rgba(255,255,255,.6); + position: relative; + overflow: hidden; +} +.link:first-child { + border-top: none; +} +.link:nth-child(odd) { + background: rgba(206, 227, 248, .5); +} +/* Voting stuff */ +.link > .rank { + float: left; + margin-top: 17px; + font-size: 12px; + color: #aaa; +} +.link > .midcol { + float: left; + width: 25px; + margin: 0 10px 1px 0px; + padding-bottom: 5px; + position: relative; +} + +.link > .entry .score, +.link > .entry.likes .score.unvoted, +.link > .entry.dislikes .score.unvoted { + display:none; +} + +.link > .entry .score.unvoted, +.link > .entry.likes .score.likes, +.link > .entry.dislikes .score.dislikes +{ + display:inline; + font-weight: bold; +} +.link > .entry.likes .score.likes { + color: #E07A7A; +} +.link > .entry.dislikes .score.dislikes { + color: #7272D1; +} + +/* experimental */ +.link .rank { display: none; } +.link .modcol { float: left; } + +.comment { + position: relative; +} +.comment > .entry > .tagline .score { + display:none; +} +.comment > .entry.unvoted > .tagline .score.unvoted, +.comment > .entry.likes > .tagline .score.likes, +.comment > .entry.dislikes > .tagline .score.dislikes +{ + display:inline; +} + + +/** Vote up **/ +.link > .midcol.likes > .score { + color: #E07A7A; +} + +/** Vote down **/ +.link > .midcol.dislikes > .score { + color: #7272D1; +} +/*Image*/ +.link .thumbnail { + float: right; + margin: 0 0 5px 5px; + overflow: hidden; + max-height: 50px; +} + +.link .thumbnail img { + max-width: 50px; + max-height: 50px; +} + +/* Entry*/ + +.link .entry { + margin: 0px 50px 3px 0px; +} + +.link a { + text-decoration: none; + color: #517191; + color: #369; +} + +.link p.title { + margin: 0; padding: 0; + text-overflow: ellipsis; + word-wrap: break-word; + font-size: .8em; + font-weight: bold; +} +.link p.title > a { + text-overflow: ellipsis; overflow: hidden; + color: #25A; +} +.link.stickied p.title > a { + color: #228822; +} + +.link .domain { + color: hsl(0,0%,45%); + font-size: 9px; + margin: { + left: 5px; + } + + a, a:hover { + color: inherit; + + } +} + +.link .tagline { + margin: 2px 0 5px; + padding: 0; + padding-top: 2px; + font-size: 10px; + color: #333; +} + +.link .tagline > span { + margin-right: 2px; +} + + +.link .tagline a { + font-weight: bold; +} + +.link .tagline .stickied-tagline { + color: #228822; +} + +/*Expando*/ +.link .expando-button { + float: left; + display: block; + height: auto; line-height: inherit; + margin: 3px 10px 2px 0; + width: 30px; + height: 30px; + @include sprite($static + 'selftext.png'); + + &.expanded { + @include sprite($static + 'selftext-active.png'); + } +} + +.link > .expando { + clear: both; + margin: 5px 0; + margin-bottom: 30px; + border: 1px solid #999; + background: #ddd; + padding: 5px; + @include border-radius(8px); + font-size: 11px; +} + +.link > .thing_options { + font-size: x-small; + margin: none; + display: block; + float: left; + clear: left; + margin: 2px 0px 0px 10px; +} +.link > .thing_options a{ +} + +.nsfw-warning { + @include border-radius(3px); + color: #ac3939; + text-decoration: none; + font-weight: normal; + font-size: 9px; + margin-left: 5px; + padding: 0 2px; + border: 1px solid #d27979 !important; +} + +/* Comment count */ +.commentcount { + float: right; + margin: 5px; + width: 45px; + text-align: right; +} +.commentcount > .comments { + border: 8px solid transparent; + @include border-image(url($static + 'border-button.png') 8 fill); + + color: white; font-family: inherit; font-size: 12px; + font-weight: bold; + text-decoration: none; + text-shadow: 0px 1px 1px rgba(255,255,255,.1), 0px -1px 1px rgba(0,0,0,.4); + + &:active, &:hover, &[selected], &.preloaded { + @include border-image(url($static + 'border-button-active.png') 8 fill); + } +} +/* Comment styles */ +.commentarea > h1 { + color: rgb(76,86,108); + font-size: 17px; + margin: 10px 10px 5px; + border-bottom: 1px solid rgba(0,0,0,.2); + @include box-shadow( 0px 1px 1px rgba(255,255,255,.4)); +} +.commentarea > .menuarea { + display: none; /*TODO: Make dropdown menu*/ +} +.commentarea > .main-form-title { + color: rgb(76,86,108); + font-size: 17px; + font-weight: bold; + margin: 0 10px; +} +.commentarea > .usertext { + background: white; + margin: 0 10px 5px; + border: 1px solid rgb(217,217,217); + @include border-radius(8px) +} +.commentarea > .usertext textarea { + margin: 0; padding: 5px; + width: 100%; + height: 100px; + border: none; + @include box-sizing(border-box); + @include border-radius(8px); + border-bottom: 1px solid rgb(217,217,217); + +} +.cancel, +.save { + float: right; + padding: 0 5px !important; +} +.save { + margin-left: 5px; +} +/* Errors */ +.error { + color: red; +} +.content > .error { + color: hsla(0, 100%, 100%, 0.9); + font-size: 25px; + margin: 10px; + text-align: center; + text-shadow: hsla(0, 0%, 0%, 0.15) 0px -1px 0px; +} + +.help-toggle { + float: left; + margin: { + top: 3px; + } +} +.bottom-area { +padding: 5px; +} +.markhelp-parent { + display: none; +} +.markhelp { + width: 100%; + border-collapse: collapse; +} +.markhelp tbody { +} +.markhelp th { + background: rgb(217,217,217); +} +.markhelp th:first-child { + -webkit-border-top-left-radius: 8px; + -moz-border-radius-topleft: 8px; + border-top-left-radius: 8px; +} +.markhelp th:last-child { + -webkit-border-top-right-radius: 8px; + -moz-border-radius-topright: 8px; + border-top-right-radius: 8px; +} +.markhelp tr:nth-child(odd) td { + background: rgba(0,0,100,.1); +} +.markhelp td { + border: 1px solid rgb(217,217,217); + padding: 5px; +} +.markhelp tr:last-child td:first-child { + -webkit-border-bottom-left-radius: 8px; + -moz-border-radius-bottomleft: 8px; + border-bottom-left-radius: 8px; +} +.markhelp tr:last-child td:last-child { + -webkit-border-bottom-right-radius: 8px; + -moz-border-radius-bottomright: 8px; + border-bottom-right-radius: 8px; +} +/*Cloned comment reply */ +.usertext textarea { + margin: 0; padding: 5px; + border: 1px solid rgb(217,217,217); + width: 100%; + min-height: 100px; + @include border-radius(5px); + @include box-sizing(border-box); +} +.child form.usertext.cloneable { + margin: 5px; +} + +/**Actual comments*/ +.comment { + background: white; + border: 1px solid rgb(217,217,217); + margin: 10px; + @include border-radius(8px) +} +.comment > .midcol { + float: left; + margin: 7px; + overflow: hidden; +} +.comment > .entry > .tagline { + font-size: 11px; + padding-bottom: 2px; +} +.comment > .admin_takedown { + background-color: #F7F7F7; + color: #888888; + + a:link { + color: #326699; + } +} + +.child .comment { + margin: 4px; + margin-top: 0px; + -webkit-border-top-right-radius: 0px; + -moz-border-radius-topright: 0px; +} + + +.comment.collapsed .child, +.comment.collapsed .usertext, +.comment.collapsed .midcol, +.comment.collapsed .button, +.comment.collapsed .options_link, +.comment.collapsed .options_expando +{ + display: none; +} + +.comment.collapsed { + font-style: italcs; +} + +.comment.collapsed .tagline { + margin-left: 20px; + font-style: italcs; + color: #AAA; +} + + +/** gilding */ +.gilded-icon { + position: relative; + display: inline-block; + margin: 0 0 -15px 8px; + top: -8px; + color: #99895F; + font-size: .9em; + vertical-align: middle; +} + +.gilded-icon:before { + display: inline-block; + content: ''; + background-image: url(../gold-coin.png); /* SPRITE */ + background-repeat: no-repeat; + height: 14px; + width: 13px; + margin-right: 2px; + vertical-align: -3px; +} + +.user-gilded > .entry .gilded-icon:before { + width: 23px; +} + +body.post-under-6h-old .gilded-icon { + opacity: .55; +} + + +/** messages and inbox */ +.message { + background: white; + position: relative; + border: 1px solid rgb(217,217,217); + margin: 10px; + @include border-radius(8px); + padding: 5px; +} +.message > .midcol { + float: left; + margin: 10px; + overflow: hidden; +} + +.message.unread { + background-color: #FFFFAA; +} + +.message .correspondent { + @include vertical_gradient(hsl(210, 75%, 89%), hsl(209, 47%, 74%)); + /* TODO */ + margin-right: 10px; + padding: 2px 5px; + @include border-radius(15px); +} +.message .correspondent a { + text-decoration: none; +} + +.message .message .subject { + display: none; +} + + +.message > .entry > .tagline { + font-size: 11px; + padding-bottom: 2px; margin-bottom: 2px; +} +.message > .entry .usertext-body, .message > .entry .md { + font-size: 11px; + word-wrap: break-word; +} +.message > .metabuttons { + float: right; + margin: 10px; +} + +.message .subject { + font-weight: bold; + font-size: 13px; + border-bottom: 1px solid rgb(217,217,217); + padding: 5px; overflow: hidden; +} + +.message .subject a { + margin-left: 5px; +} +.message .subject .correspondent a { + margin-left: 0; +} + +/* subreddit */ + +.link .subreddit { + background-color: transparent; + margin: 0px; +} + +.subreddit { + background-color: white; + @include border-radius(5px); + margin: 5px; +} + +.subreddit p.title { + display: block; + margin-left: 35px; + margin-right: 30px; +} + +.subreddit a.title { + display: block; + margin: 0; padding: 0; + text-overflow: ellipsis; + word-wrap: break-word; + font-size: small; + font-weight: bold; + text-overflow: ellipsis; overflow: hidden; + color: #25A; + text-decoration: none; +} +.subreddit .title a.domain { + font-size: x-small; + color: #AAA; + font-style: italic; + display: block; +} + +.subreddit .tagline { + font-size: x-small; + color: #666; +} + +.subreddit .button.active { + @include vertical_gradient(#BFD0E0, #80A2C4); +} + +.subreddit > .entry .score, +.subreddit > .entry.likes .score.unvoted, +.subreddit > .entry.dislikes .score.unvoted { + display:none; +} + +.subreddit > .entry .score.unvoted, +.subreddit > .entry.likes .score.likes, +.subreddit > .entry.dislikes .score.dislikes +{ + display:inline; +} + +.subreddit .midcol .button.add, +.subreddit .midcol .button.remove { + font-family: courier; + font-size: small; +} + +.subreddit .midcol { + float: left; +} + +.subreddit .midcol .button { + display: none; + margin: 4px; +} +.subreddit .midcol .button.active { + display: block; + width: auto; + height: auto; + padding: 0px 9px; +} +.subreddit .expando-button { + float: right; + height: 100%; +} + +.subreddit .description { + border-top: 1px solid #AAA; + margin-top: 2px; + padding-top: 2px; + margin-left: 0px; + padding-left: 10px; +} + +/* Compose */ +#compose-message { + background: white; + border: 1px solid rgb(217,217,217); border-top: 0px; + margin: 10px; margin-top: 0; + padding: 10px; + -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; + -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; +} +#compose-message label { + display: block; + font-size: 17px; + font-weight: bold; +} +#compose-message input[type="text"] { + @include box-sizing(border-box); + border: 1px solid rgb(117,117,117); + @include border-radius(5px); + margin-bottom: 5px; + padding: 5px; + width: 100%; +} +#compose-message textarea { + border-color: rgb(117,117,117); + height: 200px; +} + +.comment > .entry .usertext-body { + font-size: 11px; + word-wrap: break-word; +} +.comment > .entry .usertext-edit { + margin-left: 42px; +} +.comment > .metabuttons { + float: right; + margin: 10px; +} +/*Child comment specific styles*/ +/*Reduce the bottom margin on the last child comment in a thread, to make viewing easier.*/ +.child .comment { + margin-right: -1px; +} +.child .comment:last-child { + margin-bottom: 2px; +} + +.comment > .morecomments { + margin: 5px; + text-align: right; +} +.comment > .morecomments > a { + +} +/*Link colors*/ +.tagline .submitter { + color: blue; +} +.tagline .friend { + color: orange; /*Why not orangered? Because orangered can look very red on a mobile*/ +} +.tagline .moderator { + color: #282; +} +.tagline .admin { + color: #F01; +} + +.tagline .userattrs .cakeday { + display: inline-block; + text-indent: -9999px; + width: 11px; + height: 8px; + background-image: url(../cake.png); /* SPRITE */ + vertical-align: middle; +} + +/*Loading spinner, yay CSS animation*/ +@-webkit-keyframes rotateThis { + from {-webkit-transform:scale(0.75) rotate(0deg);} + to {-webkit-transform:scale(0.75) rotate(360deg);} +} +.loading { width: 100%; background-color: white; text-align: center; } +.loading img { + -webkit-animation-name: rotateThis; + -webkit-animation-duration: .5s; + -webkit-animation-iteration-count:infinite; + -webkit-animation-timing-function:linear; +} + +.throbber { + display: none; + margin: 0 2px; + background: url($static + 'throbber.gif') no-repeat; + width: 18px; + height: 18px; +} +.working .throbber { display: inline-block; } + +/* Login and Register */ +#login_login, #login_reg { + background: white; + border: 1px solid rgb(217,217,217); + margin: 10px; + -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; + -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; + max-width: 350px; + margin-left: auto; + margin-right: auto; +} +#login_login > div, #login_reg > div { + padding: 10px; +} +#login_login > div > ul, #login_reg > div > ul { + list-style-type: none; + padding: 0; + margin: 0 0 10px; +} +#login_login > div > ul li label, #login_reg > div > ul li label { + display: block; + font-size: 17px; + font-weight: bold; +} +#login_login input[type="text"], #login_login input[type="password"], #login_reg input[type="text"], #login_reg input[type="password"] { + width: 100%; + margin: 0 0 5px; + @include border-radius(5px); + border: 1px solid rgb(117,117,117); /*It was the coins fault!*/ + font-size:17px; + padding: 5px; + @include box-sizing(border-box); +} +#login_login > div > ul li input[type="checkbox"] + label, #login_reg > div > ul li input[type="checkbox"] + label { + display: inline; +} + +.user-form .submit * { + vertical-align: middle; +} + +/* takdown page (sigh) */ +.infobar.red img { + float: left; +} + +.infobar.red { + border: 1px solid red; + padding: 10px; + margin: 5px; + background-color: #FFA177; +} + +.clear { + clear: both; +} +.clearleft { + clear: left; +} + +.cover { + position: fixed; + left: 0px; + top: 0px; + width: 100%; + height: 100%; + background-color: gray; + opacity: .3; + z-index: 1000; +} + +.popup { + position: absolute; + top: 75px; + left: 0; + @include border-radius(30px); + background-color: white; + text-align: left; + z-index: 1001; + padding: 10px; + border-color: #B2B2B2 black black #B2B2B2; + border-style: solid; + border-width: 1px; + margin-left: auto; + margin-right: auto; + max-width: 350px; +} + +.popup h1 { + text-align: center; + font-size: large; + font-weight: normal; + color: orangered; +} + +/* Submit links */ +#newlink { + background: white; + border: 1px solid hsl(0, 0%, 85%); + margin: 10px; + -webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-right-radius: 8px; + -moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomright: 8px; +} +#newlink .save { + margin: 8px; +} +/** Tab switcher **/ +#newlink .tabmenu { + display: -webkit-box; + display: -moz-box; + -webkit-box-orient: horizontal; + -moz-box-orient: horizontal; + margin: 10px; padding: 0; + +} +#newlink .tabmenu li { + display: block; + webkit-box-flex: 1; + @include vertical_gradient(hsl(0, 0%, 85%), hsl(0, 0%, 70%)); + border: 1px solid hsl(0, 0%, 60%); + position: relative; +} +#newlink .tabmenu li a { + width: 100%; height: 100%; + @include box-sizing(border-box); + display: block; + padding: 5px; + color: hsl(0, 0%, 30%); + text-shadow: hsla(0, 100%, 100%, 0.40) 0px 1px 1px; + text-decoration: none; + font-weight: bold; +} +#newlink .tabmenu li:first-child { + -webkit-border-bottom-left-radius: 5px; -webkit-border-top-left-radius: 5px; + -moz-border-radius-bottomleft: 5px; -moz-border-radius-topleft: 5px; +} +#newlink .tabmenu li:last-child { + -webkit-border-bottom-right-radius: 5px; -webkit-border-top-right-radius: 5px; + -moz-border-radius-bottomright: 5px; -moz-border-radius-topright: 5px; + border-left-color: hsl(0, 0%, 80%); +} +#newlink li.selected { + @include vertical_gradient(hsl(0, 0%, 50%), hsl(0, 0%, 70%)); +} +#newlink li.selected a { + text-shadow: hsla(0, 0%, 0%, 0.40) 0px -1px 1px; + color: hsl(0, 0%, 95%); +} +#newlink .spacer { + margin-bottom: 5px; +} +#newlink .infobar { + margin: 5px; +} +/* Fields */ +#newlink textarea, #newlink input[type="text"], #newlink input[type="url"] { + border: 1px solid hsl(0, 0%, 60%); +} +#newlink .roundfield { + position: relative; + padding: 0px 5px; +} +#newlink .roundfield-content textarea { + @include box-sizing(border-box); + width: 100%; + height: 5em; + @include border-radius(5px); +} +#newlink .roundfield-content input[type="text"], #newlink .roundfield-content input[type="url"] { + @include box-sizing(border-box); + width: 100%; + height: 2em; + @include border-radius(5px); +} +#newlink .title { + font-weight: bold; +} +/* Individual sections */ +#url-field .button { + float: right; + margin-top: 5px; +} +#url-field .title-status { + background: hsl(0, 0%, 90%); + border: 1px solid hsl(0, 0%, 50%); + padding: 2px 4px; + margin-top: 5px; + display: inline-block; +} + +#suggested-reddits ul { + background: hsl(0, 0%, 90%); + border: 1px solid hsl(0, 0%, 50%); + padding: 8px; + @include border-radius(8px); +} +#suggested-reddits ul li { + display: inline; +} +#suggested-reddits ul li a { + @include vertical_gradient(hsl(210, 35%, 81%), hsl(210, 37%, 64%)); + @include border-radius(10px); + display: inline-block; + margin: 5px; + padding: 3px 7px; + text-decoration: none; + border: 1px solid hsl(210, 37%, 50%); + color: hsl(210, 37%, 30%); +} + +/* Autocomplete */ +#sr-autocomplete-area { + position: relative; + z-index: 50; + +} +#sr-drop-down { + position: absolute; + @include vertical_gradient(hsl(0, 0%, 90%), hsl(0, 0%, 75%)); + border: 1px solid hsl(0,0%,50%); + -webkit-border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; + -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; + border-top: 0px; + display: none; + left: 5px; + margin: 0px; + padding: 0px; + position: absolute; + font-weight: bold; color: hsl(0,0%,20%); +} +#sr-drop-down li { + display: block; + padding: 2px 5px; +} +#sr-drop-down li:hover, #sr-drop-down li:active { + @include vertical_gradient(hsl(209, 35%, 81%), hsl(210, 37%, 64%)); + color: white; + text-shadow: hsla(0, 100%, 100%, 0.0976563) 0px 1px 1px, hsla(0, 0%, 0%, 0.398438) 0px -1px 1px; + -webkit-text-stroke: 1px solid hsl(210, 28%, 44%); +} +#sr-drop-down li:last-child { + -webkit-border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; + -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px; +} + +/* markdown */ +.md { overflow: auto; font-size: small; } +.md p, .md h1 { margin: 5px 0} +.md h1 { font-weight: bold; font-size: 100%; } +.md h2 { font-weight: bold; font-size: 100%; } +.md > * { margin-bottom: 0px } +.md strong { font-weight: bold; } +.md em { font-style: italic; } +.md strong em { font-style: italic; font-weight: bold } +.md img { display: none } +.md ol, .md ul { margin: 10px 2em; } +.md ul { list-style: disc outside } +.md ol { list-style: decimal outside } +.md pre { margin: 10px; } +.md blockquote, .help blockquote { + border-left: 2px solid #369; + padding-left: 4px; + margin: 5px; + margin-right: 15px; +} +.md td, .md th { border: 1px solid #EEE; padding: 1px 3px; } +.md th { font-weight: bold; } +.md table { margin: 5px 10px; } +.md center { text-align: left; } + +.tryme { + width: 100%; + max-width: 280px; + padding: 10px; + background-color: white; + @include border-radius(10px); + margin: 10px auto; +} + +.tryme p { + margin: 10px; + font-size: small; +} + +.tryme .choices .button { + width: 260px; + display: block; + text-align: center; + margin: 10px; +} + +.deepthread { + margin-left: 40px; +} + +.morecomments a, +.deepthread a { + text-decoration: none; + color: white +} + +.morechildren { + margin: 5px 10px; +} + +.morechildren a { + display: block; + text-align: center; + max-width: 350px; + @warn "Evntually this needs to be swapped out for a more future-proof solution to solve the red text on 'load more->loading; for the morechildren button"; + color: white !important; +} + +a.author { margin-right: 0.5em; } + +.flair, .linkflair { + margin: { + top: 2px; + right: 0.5em; + } + padding: 0px 2px; + display: inline-block; + background: whiteSmoke; + color: hsl(0, 0%, 33%); + border: 1px solid hsl(0, 0%, 87%); + font-size: 9px; + + @include border-radius(2px); + @include box-shadow(inset 0px 1px 0px hsla(0,0%,100%,.9)); +} + +.linkflair { + font-weight: normal; + max-width: 10em; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.mobile-web-redirect-bar { + background: white; + box-sizing: border-box; + font-family: sans-serif; + font-size: 14px; + padding: 20px; + width: 100%; + z-index: 1000; + + a { + text-decoration: none; + } + + .mobile-web-redirect-header { + font-size: 18px; + line-height: 25px; + margin-bottom: 20px; + } + + .mobile-web-redirect-optin { + background-color: #4a7fc5; + border-radius: 3px; + box-shadow: inset 0 -3px 0 0 #3e6ab7; + color: white; + display: block; + font-family: "Verdana", sans-serif; + font-weight: bold; + line-height: 20px; + margin-bottom: 20px; + padding: 10px 0; + text-align: center; + text-transform: uppercase; + } + + .mobile-web-redirect-optout { + color: #7f7f7f; + } +} + +.commentspacer { + clear: both; +} diff --git a/src/style/components/alerts.less b/src/style/components/alerts.less new file mode 100644 index 0000000..1c95de2 --- /dev/null +++ b/src/style/components/alerts.less @@ -0,0 +1,12 @@ +.c-alert { + padding: 15px; + margin: 8px 0 19px; + border: 1px solid transparent; + border-radius: 2px; +} + +.c-alert-danger { + background-color: @alert-danger-bg; + border-color: @alert-danger-border; + color: @alert-danger-color !important; +} diff --git a/src/style/components/animations.less b/src/style/components/animations.less new file mode 100644 index 0000000..d890881 --- /dev/null +++ b/src/style/components/animations.less @@ -0,0 +1,11 @@ +@keyframes spin { + to { + transform: rotate(360deg) + } +} + +@-webkit-keyframes spin { + to { + -webkit-transform: rotate(360deg) + } +} \ No newline at end of file diff --git a/src/style/components/buttons.less b/src/style/components/buttons.less new file mode 100644 index 0000000..25e7cac --- /dev/null +++ b/src/style/components/buttons.less @@ -0,0 +1,49 @@ +.c-btn { + .box-sizing(border-box); + display: inline-block; + margin-bottom: 0; + text-align: center; + text-transform: uppercase; + font-weight: bold; + vertical-align: middle; + cursor: pointer; + background-image: none; + border: 1px solid transparent; + white-space: nowrap; + .button-size(4px; @padding-base-horizontal; 12px; 20px; 3px); + .no-select(); + + &:hover, + &:focus { + color: #fff; + text-decoration: none; + } + + &:active, + &.active { + outline: 0; + background-image: none; + } + + &.disabled, + &[disabled], + fieldset[disabled] & { + cursor: not-allowed; + pointer-events: none; + .opacity(.65); + box-shadow: none; + } + +} + +.c-btn-primary { + .button-variant(@text-color: #fff; @bg-color: #4f86b5; @bevel-color: #4270a2); +} + +.c-btn-secondary { + .button-variant(@text-color: #fff, @bg-color: #c6c6c6, @bevel-color: #b8b8b8); +} + +.c-btn-highlight { + .button-variant(@text-color: #fff; @bg-color: #DC6431; @bevel-color: #C9532B); +} diff --git a/src/style/components/close.less b/src/style/components/close.less new file mode 100644 index 0000000..9ed64fa --- /dev/null +++ b/src/style/components/close.less @@ -0,0 +1,12 @@ +.c-close { + display: block; + width: 12px; + height: 12px; + .hdpi-bg-image(@1x: data-uri('../close_x.png'); @2x: data-uri('../close_x_2x.png')); + background-size: 12px; + background-position: center; + + &:hover { + .hdpi-bg-image(@1x: data-uri('../close_x_hover.png'); @2x: data-uri('../close_x_hover_2x.png')); + } +} diff --git a/src/style/components/colors.less b/src/style/components/colors.less new file mode 100644 index 0000000..37689d1 --- /dev/null +++ b/src/style/components/colors.less @@ -0,0 +1,44 @@ +/* + do not use these colors directly! create local aliases with descriptive names + i.e. + + @my-background-color: @color-eggshell; + */ + +// Colors +@color-warning-red: #EA0027; +@color-orangered: #FF4500; +@color-orange: #FF8717; +@color-yellow: #FFD635; +@color-highlight: #FFF03E; +@color-gold: #D8C161; +@color-lime: #C7E223; +@color-green: #7CD344; +@color-teal: #25B79F; +@color-dark-teal: #008985; +@color-light-blue: #24A0ED; +@color-link-blue: #333df5; +@color-link-purple: #551a8b; +@color-periwinkle: #9494FF; +@color-white: #FFFFFF; +@color-off-white: #FCFCF7; +@color-eggshell: #F2F1E9; +@color-pale-grey: #E5E3DA; +@color-grey: #B5B3AC; +@color-semi-black: #222222; + +// Product-specific colors +@color-alien-blue: #0079D3; +@color-ads-blue: #6093BF; +@color-ads-grey: #F8F8F8; + +// non-styleguide colors: +@color-ui-blue: #336699; +@color-text-grey: #4F4F4F; +@color-dark-grey: #808080; + +// ban colors +@color-spam: #ff8b60; +@color-temp-ban: #ff0000; +@color-perma-ban: #cc0000; +@color-deleted: #c6c6c6; diff --git a/src/style/components/components.less b/src/style/components/components.less new file mode 100644 index 0000000..d8de156 --- /dev/null +++ b/src/style/components/components.less @@ -0,0 +1,17 @@ +@import "animations.less"; +@import "variables.less"; +@import "mixins.less"; +@import "utils.less"; +@import "forms.less"; +@import "buttons.less"; +@import "tooltip.less"; +@import "form-states.less"; +@import "alerts.less"; +@import "strength-meter.less"; +@import "modal.less"; +@import "close.less"; +@import "toggles.less"; +@import "read-next.less"; +@import "infobar.less"; +@import "progress.less"; +@import "image-upload.less"; diff --git a/src/style/components/form-states.less b/src/style/components/form-states.less new file mode 100644 index 0000000..e47ec86 --- /dev/null +++ b/src/style/components/form-states.less @@ -0,0 +1,150 @@ +.c-has-feedback { + position: relative; +} + +.c-has-error { + + .c-tooltip.right .tooltip-arrow { + border-right-color: @tooltip-danger-arrow-color; + } + + .c-tooltip.left .tooltip-arrow { + border-left-color: @tooltip-danger-arrow-color; + } + + .c-tooltip.top-right .tooltip-arrow, + .c-tooltip.top .tooltip-arrow { + border-top-color: @tooltip-danger-arrow-color; + } + + .c-tooltip.bottom .tooltip-arrow { + border-bottom-color: @tooltip-danger-arrow-color; + } + + .tooltip-inner { + background-color: @tooltip-danger-bg; + } + +} + +.c-has-success { + + .c-tooltip.right .tooltip-arrow { + border-right-color: @tooltip-success-arrow-color; + } + + .c-tooltip.left .tooltip-arrow { + border-left-color: @tooltip-success-arrow-color; + } + + .c-tooltip.top-right .tooltip-arrow, + .c-tooltip.top .tooltip-arrow { + border-top-color: @tooltip-success-arrow-color; + } + + .c-tooltip.bottom .tooltip-arrow { + border-bottom-color: @tooltip-success-arrow-color; + } + + .tooltip-inner { + background-color: @tooltip-success-bg; + } + +} + +.c-form-control-feedback-wrapper { + width: calc(100% + 25px); + width: 110%; + position: absolute; + left: 100%; + top: 0; + + &.inside-input { + margin-left: -30px; + } +} + +.c-form-control-feedback { + @vertical-space: ((@input-height-base - 20px) / 2); + display: none; + position: absolute; + left: 5px; + top: @vertical-space; + height: 20px; + width: 20px; + vertical-align: middle; +} + +.c-form-control-feedback-throbber, +.c-form-throbber:after { + .hdpi-bg-image(@1x: data-uri('../throbber_v2.gif'); @2x: data-uri('../throbber_v2_2x.gif')); + + .cssanimations & { + background: none; + .box-sizing(border-box); + .animation(spin .75s linear infinite); + border: 2px solid @throbber-color; + border-bottom-color: transparent; + border-left-color: transparent; + border-radius: 100%; + } +} + +.c-form-control-feedback-success { + .hdpi-bg-image(@1x: data-uri('../check.png'); @2x: data-uri('../check_2x.png')); +} + +.c-form-control-feedback-error { + .hdpi-bg-image(@1x: data-uri('../alert.png'); @2x: data-uri('../alert_2x.png')); + + &:hover { + .hdpi-bg-image(@1x: data-uri('../alert_mouseover.png'); @2x: data-uri('../alert_mouseover_2x.png')); + + + .c-tooltip { + .tooltip-inner { + background-color: @tooltip-danger-hover-bg; + } + + &.right .tooltip-arrow { + border-right-color: @tooltip-danger-hover-bg + } + + &.left .tooltip-arrow { + border-left-color: @tooltip-danger-hover-bg + } + + &.top-right .tooltip-arrow, + &.top .tooltip-arrow { + border-top-color: @tooltip-danger-hover-bg + } + + &.bottom .tooltip-arrow { + border-bottom-color: @tooltip-danger-hover-bg + } + } + } +} + +.c-has-throbber .c-form-control-feedback-throbber, +.c-has-success .c-form-control-feedback-success, +.c-has-error .c-form-control-feedback-error { + display: block; +} + +.c-form-throbber { + display: none; + float: right; + padding: 5px 0; + margin-right: -25px; + + &:after { + content: ''; + height: 20px; + width: 20px; + display: block; + } + + .working & { + display: block; + } +} diff --git a/src/style/components/forms.less b/src/style/components/forms.less new file mode 100644 index 0000000..5487aa6 --- /dev/null +++ b/src/style/components/forms.less @@ -0,0 +1,91 @@ +.c-form-control { + .box-sizing(border-box); + display: block; + width: 100%; + font-size: 14px; + height: @input-height-base; + line-height: (@input-height-base - (@padding-base-vertical * 2 + 2)); + padding: @padding-base-vertical @padding-base-horizontal; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; + box-shadow: inset 1px 1px 2px -1px rgba(0,0,0,0.15); + .transition-shorthand(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s"); + &:focus { + border-color: @input-focus-color; + outline: 0; + box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 4px @input-focus-color; + } + + .input-placeholder(); + + textarea& { + height: auto; + resize: vertical; + } +} + +.c-form-group { + margin-bottom: 10px; + position: relative; +} + +.c-form-inline { + .c-form-group { + display: inline-block; + vertical-align: top; + margin-bottom: 0; + vertical-align: middle; + } + + .c-form-control { + display: inline-block; + vertical-align: middle; + } +} + +.c-submit-group { + margin-top: @input-height-base; +} + +.c-radio, +.c-checkbox { + position: relative; + display: block; + font-size: 12px; + margin-top: 10px; + margin-bottom: 10px; + + label { + font-weight: normal; + cursor: pointer; + } + + &.c-input-height { + min-height: @input-height-base; + } +} + +.c-radio input[type="radio"], +.c-checkbox input[type="checkbox"] { + margin-right: .5em; + line-height: normal; + + &:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; + } +} + +.c-help-block { + display: block; + + .c-checkbox & { + margin-top: 5px; + } + + &.c-help-block-toggle { + display: none; + } +} diff --git a/src/style/components/image-upload.less b/src/style/components/image-upload.less new file mode 100644 index 0000000..0f36c16 --- /dev/null +++ b/src/style/components/image-upload.less @@ -0,0 +1,38 @@ +.c-image-upload-input { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: block; + margin: 0; + opacity: 0; + padding: 0; + width: 100%; + + &:hover { + cursor: pointer; + } +} + +.c-image-upload-preview-container { + border-width: 2px; + border-style: dashed; + border-color: lightgray; + display: inline-block; + margin: 5px 0; + overflow: hidden; + padding: 5px; + position: relative; +} + +.c-image-upload-preview { + display: block; + margin: 0 !important; +} + +.c-image-upload-btn { + display: block; + padding: 2px 8px !important; + font-size: 10px !important;; +} diff --git a/src/style/components/infobar.less b/src/style/components/infobar.less new file mode 100644 index 0000000..e95951f --- /dev/null +++ b/src/style/components/infobar.less @@ -0,0 +1,99 @@ +@infobar-legacy-color: #f6e69f; +@infobar-legacy-color-border: orange; +@infobar-color: #fff7d7; +@infobar-color-border: darken(@infobar-color, 32%); +@infobar-color-text: @color-semi-black; +@infobar-padding: unit(@margin-small, px); +@infobar-min-text-height: unit(@line-x-small, px) + unit(2 * @margin-x-small, px); +@infobar-icon-size: 2 * @infobar-padding + @infobar-min-text-height; + +.infobar { + background-color: @infobar-legacy-color; + border-color: @infobar-legacy-color-border; + border-style: solid; + border-width: 1px; + font-size: small; + margin: 5px 305px 5px 0px; + padding: 5px 10px; + + img { + display: inline; + vertical-align: middle; + } + + strong { + font-weight: bold; + } +} + +.reddit-infobar { + .box-sizing(border-box); + background-color: @infobar-color; + border-color: @infobar-color-border; + border-style: solid; + border-width: 1px; + margin-bottom: @infobar-padding; + margin-left: 0; + margin-top: unit(@margin-x-small, px); + overflow: auto; + padding: @infobar-padding; + position: relative; + + .md { + color: @infobar-color-text; + } + + &.with-icon { + min-height: @infobar-icon-size; + padding-left: @infobar-padding + @infobar-icon-size; + + &:before { + content: ''; + display: block; + width: @infobar-icon-size; + height: 100%; + background-color: @infobar-color-border; + position: absolute; + left: 0; + top: 0; + background-position: center; + } + } +} + +.locked-infobar:before { + @1x: url('../infobar-icon-lock.png'); + @2x: url('../infobar-icon-lock_2x.png'); + @2x-bg-size: 20px 25px; + .hdpi-bg-image(@1x: @1x, @2x: @2x, @2x-bg-size); +} + +.archived-infobar { + @archived-infobar-color: #FCFCFB; + @archived-infobar-color-border: @color-grey; + background-color: @archived-infobar-color; + border-color: @archived-infobar-color-border; + + &.with-icon:before { + background-color: @archived-infobar-color-border; + @1x: url('../infobar-icon-archived.png'); + @2x: url('../infobar-icon-archived_2x.png'); + @2x-bg-size: 25px 24px; + .hdpi-bg-image(@1x: @1x, @2x: @2x, @2x-bg-size); + } +} + +.timeout-infobar { + @timeout-infobar-color: #fff0f0; + @timeout-infobar-color-border: #e70028; + background-color: @timeout-infobar-color; + border-color: @timeout-infobar-color-border; + + &.with-icon:before { + @1x: url('../infobar-icon-banhammer.png'); + @2x: url('../infobar-icon-banhammer_2x.png'); + @2x-bg-size: 20px 27px; + .hdpi-bg-image(@1x: @1x, @2x: @2x, @2x-bg-size); + background-color: @timeout-infobar-color-border; + } +} diff --git a/src/style/components/mixins.less b/src/style/components/mixins.less new file mode 100644 index 0000000..784dbd6 --- /dev/null +++ b/src/style/components/mixins.less @@ -0,0 +1,198 @@ +.animation (@animation) { + -webkit-animation: @animation; + -moz-animation: @animation; + -ms-animation: @animation; + -o-animation: @animation; + animation: @animation; +} + +.transition (@property, @duration, @function: ease, @delay: 0s) { + -webkit-transition: @arguments; + -moz-transition: @arguments; + -o-transition: @arguments; + -ms-transition: @arguments; + transition: @arguments; +} + +.translate(@x; @y) { + -webkit-transform: translate(@x, @y); + -ms-transform: translate(@x, @y); + -o-transform: translate(@x, @y); + transform: translate(@x, @y); +} + +.transition-transform(@transition) { + -webkit-transition: -webkit-transform @transition; + -moz-transition: -moz-transform @transition; + -o-transition: -o-transform @transition; + transition: transform @transition; +} + +.transition-shorthand(@transition) { + -webkit-transition: @transition; + -moz-transition: @transition; + -o-transition: @transition; + -ms-transition: @transition; + transition: @transition; +} + +.linear-gradient(@color1, @color2) { + background: @color1; + background: -moz-linear-gradient(top, @color1 0%, @color2 100%); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,@color1), color-stop(100%, @color2)); + background: -webkit-linear-gradient(top, @color1 0%, @color2 100%); + background: -o-linear-gradient(top, @color1 0%, @color2 100%); + background: -ms-linear-gradient(top, @color1 0%, @color2 100%); + background: linear-gradient(to bottom, @color1 0%, @color2 100%); +} + +.box-shadow(@shadow) { + -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1 + box-shadow: @shadow; +} + +.box-sizing(@sizing) { + box-sizing: @sizing; + -webkit-box-sizing: @sizing; + -moz-box-sizing: @sizing; +} + +.transform(@transformation) { + transform: @transformation; + -webkit-transform: @transformation; + -moz-transform: @transformation; + -o-transform: @transformation; + -ms-transform: @transformation; +} + +.opacity(@opacity) { + opacity: @opacity; + @opacity-ie: (@opacity * 100); + filter: ~"alpha(opacity=@{opacity-ie})"; +} + +.flex(@props) { + -webkit-flex: @props; + flex: @props; +} + +.flex-wrap(@props) { + -webkit-flex-wrap: @props; + flex-wrap: @props; +} + +.flex-direction(@props) { + -webkit-flex-direction: @props; + flex-direction: @props; +} + +.display-flex() { + display: -webkit-flex; + display: flex; +} + +.align-items(@props) { + -webkit-align-items: @props; + align-items: @props; +} + +.justify-content(@props) { + -webkit-justify-content: @props; + justify-content: @props; +} + +.clearfix() { + &:before, + &:after { + content: " "; + display: table; + } + &:after { + clear: both; + } +} + +.button-variant(@text-color; @bg-color; @bevel-color;) { + background-color: @bg-color; + border-bottom: 2px solid @bevel-color; + color: @text-color; + + &:hover, + &:focus, + &:active, + &.disabled, + &[disabled] { + background-color: darken(@bg-color, 2.5%); + color: @text-color; + } + + &:focus { + outline-offset: 1px; + } + + &:active, + &.active { + border-bottom-width: 1px; + margin-top: 1px; + } +} + +.button-size(@padding-vertical; @padding-horizontal; @font-size; @line-height; @border-radius) { + padding: @padding-vertical @padding-horizontal (@padding-vertical - 1px); + font-size: @font-size; + line-height: @line-height; + border-radius: @border-radius; +} + +#gradient { + .horizontal(@start-color: #555, @end-color: #333) { + background-color: @end-color; + background-image: -moz-linear-gradient(left, @start-color, @end-color); + background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@start-color), to(@end-color)); + background-image: -webkit-linear-gradient(left, @start-color, @end-color); + background-image: -o-linear-gradient(left, @start-color, @end-color); + background-image: linear-gradient(to right, @start-color, @end-color); + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(start-colorstr='%d', end-colorstr='%d', GradientType=1)", argb(@start-color), argb(@end-color))); // IE9 and down + } + + .vertical(@start-color: #555, @end-color: #333) { + background-color: mix(@start-color, @end-color, 60%); + background-image: -moz-linear-gradient(top, @start-color, @end-color); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@start-color), to(@end-color)); + background-image: -webkit-linear-gradient(top, @start-color, @end-color); + background-image: -o-linear-gradient(top, @start-color, @end-color); + background-image: linear-gradient(to bottom, @start-color, @end-color); + background-repeat: repeat-x; + filter: e(%("progid:DXImageTransform.Microsoft.gradient(start-colorstr='%d', end-colorstr='%d', GradientType=0)", argb(@start-color), argb(@end-color))); // IE9 and down + } +} + +.hdpi-bg-image(@1x; @2x; @2x-bg-size: 100%; @bg-repeat: no-repeat) { + background-image: @1x; + background-repeat: @bg-repeat; + + @media + only screen and (min-resolution: 2dppx), + only screen and (-webkit-min-device-pixel-ratio: 2) { + background-image: @2x; + background-size: @2x-bg-size; + } +} + +.input-placeholder(@color: @input-placeholder-color;) { + &::-moz-placeholder { + color: @color; + opacity: 1; + } + + &:-ms-input-placeholder { color: @color; } + &::-webkit-input-placeholder { color: @color; } +} + +.no-select() { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} diff --git a/src/style/components/modal.less b/src/style/components/modal.less new file mode 100644 index 0000000..6cbba66 --- /dev/null +++ b/src/style/components/modal.less @@ -0,0 +1,137 @@ +// +// Modals +// -------------------------------------------------- + +// .modal-open - body class for killing the scroll +// .modal - container to scroll within +// .modal-dialog - positioning shell for the actual modal +// .modal-content - actual modal w/ bg and corners and shit + +// Kill the scroll on the body +.modal-open { + overflow: hidden; +} + +// Container that the modal scrolls within +.modal { + display: none; + overflow: hidden; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: @zindex-modal; + -webkit-overflow-scrolling: touch; + + // Prevent Chrome on Windows from adding a focus outline. For details, see + // https://github.com/twbs/bootstrap/pull/10951. + outline: 0; + + // When fading in the modal, animate it to slide down + &.fade .modal-dialog { + .translate(0, -25%); + .transition-transform(~"0.3s ease-out"); + } + &.in .modal-dialog { .translate(0, 0) } +} +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +// Shell div to position the modal with bottom padding +.modal-dialog { + position: relative; + width: auto; + margin: 10px; + + @media (min-width: @screen-sm-min) { + width: @modal-md; + margin: 30px auto; + } +} + +// Actual modal +.modal-content { + position: relative; + background-color: @modal-content-bg; + border-radius: @modal-border-radius; + border: 1px solid @modal-content-border-color; + .box-shadow(3px 3px 13px rgba(0,0,0,0.35)); + background-clip: padding-box; + // Remove focus outline from opened modal + outline: 0; + + @media (min-width: @screen-sm-min) { + .box-shadow(0 5px 15px rgba(0,0,0,.5)); + } +} + +// Modal background +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: @modal-backdrop-bg; + z-index: (@zindex-modal - 1); + // Fade for backdrop + &.fade { .opacity(0); } + &.in { .opacity(@modal-backdrop-opacity); } +} + +// Modal header +// Top section of the modal w/ title and dismiss +.modal-header { + position: absolute; + top: 12px; + right: 12px; +} + +// Title text +.modal-title { + color: @modal-title-color; + display: block; + + h1&, + h2&, + h3& { + font-size: 18px; + font-weight: normal; + margin: 12px 0 18px; + } + + h4&, + h5&, + h6& { + font-size: 12px; + font-weight: bold; + margin: 4px 0 6px; + text-transform: uppercase; + } +} + +// Modal body +// Where all modal content resides (sibling of .modal-header and .modal-footer) +.modal-body { + padding: @modal-padding; +} + +// Footer (for actions) +.modal-footer { + background: @modal-footer-bg; + border-bottom-left-radius: @modal-border-radius; + border-bottom-right-radius: @modal-border-radius; + border-top: 1px solid @modal-footer-border-color; +} + +// Measure scrollbar width for padding body during modal show/hide +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} diff --git a/src/style/components/progress.less b/src/style/components/progress.less new file mode 100644 index 0000000..743d8cd --- /dev/null +++ b/src/style/components/progress.less @@ -0,0 +1,19 @@ +.c-progress { + display: none; + height: 2px; + overflow: hidden; + background-color: #f5f5f5; + .box-shadow(~"inset 0 1px 2px rgba(0,0,0,.1)"); + position: relative; + margin-top: -2px; +} + +.c-progress-bar { + float: left; + width: 0; + height: 100%; + line-height: 2px; + background-color: #337ab7; + .box-shadow(~"inset 0 -1px 0 rgba(0,0,0,.15)"); + .transition-shorthand(width .6s ease); +} diff --git a/src/style/components/read-next.less b/src/style/components/read-next.less new file mode 100644 index 0000000..096776f --- /dev/null +++ b/src/style/components/read-next.less @@ -0,0 +1,157 @@ +@read-next-color-background: @color-white; +@read-next-color-header: #EFF7FF; +@read-next-color-button-background: lighten(@color-ui-blue, 5%); +@read-next-color-text: @color-semi-black; +@read-next-color-text-light: @color-dark-grey; +@read-next-height: 100px; +@read-next-width: 300px; +@read-next-link-height: 60px; +@read-next-thumbnail-size: 45px; +@zindex-read-next: @zindex-modal - 1; + +@read-next-font-base: @font-x-small; +@read-next-font-small: @font-xx-small; +@read-next-line-base: @line-x-small; +@read-next-line-large: @line-small; + +.read-next-font-size(@font:@read-next-font-base, @line:@read-next-line-base) { + .md-font-size(@read-next-font-base, @font, @line); +} + +.read-next-container { + font-size: @base-font-keyword; +} + +.read-next { + .md-base-font-size(@read-next-font-base); + .no-select(); + background: @read-next-color-background; + border: 1px solid darken(@read-next-color-background, 15%); + box-sizing: border-box; + color: @read-next-color-text; + display: none; + height: @read-next-height; + position: relative; + width: @read-next-width; + z-index: @zindex-read-next; + + &.active { + display: block; + } + + &.fixed { + border-bottom-width: 0; + bottom: 0; + position: fixed; + } + + .read-next-header { + background-color: @read-next-color-header; + border-bottom: 1px solid darken(@read-next-color-header, 5%); + color: @read-next-color-text-light; + padding-left: @margin-small * 1px; + padding-right: @margin-small * 1px; + padding-top: @margin-x-small * 1px; + } + + .read-next-header-title { + .read-next-font-size(@read-next-font-base, @read-next-line-large); + margin-left: (@read-next-line-base + @margin-x-small) * 2px; + position: relative; + // magic number, but it looks better ;_; + top: -2px; + } + + .read-next-title { + .read-next-font-size(); + display: block; + max-height: @read-next-line-base * 3px; + overflow: hidden; + text-overflow: ellipsis; + } + + .read-next-nav { + .read-next-font-size(@read-next-font-small); + position: absolute; + top: @margin-x-small * 1px; + } + + .read-next-nav-right { + right: @margin-x-small * 1px; + + > * { + margin-left: @margin-x-small * 1px; + } + } + + .read-next-nav-left { + left: @margin-x-small * 1px; + + > * { + margin-right: @margin-x-small * 1px; + } + } + + .read-next-dismiss, + .read-next-button { + .transform(scale(1, 1) translateY(0px)); + .transition(all, 0.2s); + cursor: pointer; + display: inline-block; + height: @read-next-line-base * 1px; + position: relative; + text-align: center; + width: @read-next-line-base * 1px; + + &:active { + .transform(scale(1.01, 1.01) translateY(1px)); + } + } + + .read-next-button { + background-color: @read-next-color-button-background; + border-radius: 50%; + color: @read-next-color-background; + + &:active { + background-color: darken(@read-next-color-button-background, 5%); + } + } + + .read-next-list { + padding: @margin-small * 1px; + padding-top: @margin-x-small * 1px; + } + + .read-next-link { + display: none; + float: left; + height: @read-next-link-height; + overflow: hidden; + width: 100%; + + &.active { + display: block; + } + + .read-next-thumbnail { + display: block; + float: left; + height: @read-next-thumbnail-size; + margin-right: @margin-x-small * 1px; + // magic number, but it just looks better + margin-top: 3px; + width: @read-next-thumbnail-size; + + img { + height: auto; + width: 100%; + } + } + } + + .read-next-meta { + .read-next-font-size(@read-next-font-small); + color: @read-next-color-text-light; + } +} diff --git a/src/style/components/strength-meter.less b/src/style/components/strength-meter.less new file mode 100644 index 0000000..9194168 --- /dev/null +++ b/src/style/components/strength-meter.less @@ -0,0 +1,34 @@ +.strength-meter { + background-color: @strength-meter-bg; + border-radius: 5px; + display: none; + position: absolute; + right: 5px; + top: 50%; + margin-top: -4px; + width: 50px; + height: 8px; + overflow: hidden; + pointer-events: none; + + .c-has-feedback & { + display: block; + } +} + +.strength-meter-fill { + height: 100%; + width: 0; + + .c-has-success & { + background-color: @strength-meter-fill-success; + } + + .c-has-error & { + background-color: @strength-meter-fill-error; + } + + .c-has-throbber & { + background-color: @strength-meter-fill-loading; + } +} diff --git a/src/style/components/toggles.less b/src/style/components/toggles.less new file mode 100644 index 0000000..578c3fa --- /dev/null +++ b/src/style/components/toggles.less @@ -0,0 +1,21 @@ +.c-toggle { + + &:after { + content: ' [+]'; + font-family: monospace; + font-size: 10px; + vertical-align: 1px; + } + + &.c-toggle-toggled:after { + content: ' [-]'; + } +} + +.c-toggle-content { + display: none; + + &.c-toggle-content-toggled { + display: block; + } +} diff --git a/src/style/components/tooltip.less b/src/style/components/tooltip.less new file mode 100644 index 0000000..9aabe93 --- /dev/null +++ b/src/style/components/tooltip.less @@ -0,0 +1,89 @@ +.c-tooltip { + position: absolute; + z-index: 1002; + display: block; + visibility: visible; + font-size: 11px; + line-height: 1.4; + .opacity(0); + + .tooltip-inner { + padding: 2px 8px 3px; + color: @tooltip-color; + text-decoration: none; + background-color: @tooltip-bg; + border-radius: 2px; + } + + .tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: @tooltip-arrow-width; + } + + &.in { + .opacity(@tooltip-opacity); + } + + &.top { + padding: @tooltip-arrow-width 0; + } + + &.right { + padding: 0 @tooltip-arrow-width; + } + + &.bottom { + padding: @tooltip-arrow-width 0; + } + + &.left { + padding: 0 @tooltip-arrow-width; + } + + &.top .tooltip-arrow { + bottom: 2px; + left: 50%; + margin-left: -@tooltip-arrow-width; + border-bottom-width: 0; + border-top-color: @tooltip-arrow-color; + } + + &.top-right { + .tooltip-arrow { + bottom: -@tooltip-arrow-width; + left: auto; + right: 2px; + border-bottom-width: 0; + border-top-color: @tooltip-arrow-color; + } + } + + &.right .tooltip-arrow { + top: 50%; + left: 2px; + margin-top: -@tooltip-arrow-width; + border-left-width: 0; + border-right-color: @tooltip-arrow-color; + } + + &.left .tooltip-arrow { + top: 50%; + right: 2px; + margin-top: -@tooltip-arrow-width; + border-right-width: 0; + border-left-color: @tooltip-arrow-color; + } + + &.bottom .tooltip-arrow { + top: 2px; + left: 50%; + margin-left: -@tooltip-arrow-width; + border-top-width: 0; + border-bottom-color: @tooltip-arrow-color; + } + +} diff --git a/src/style/components/utils.less b/src/style/components/utils.less new file mode 100644 index 0000000..25b7704 --- /dev/null +++ b/src/style/components/utils.less @@ -0,0 +1,34 @@ +.c-hidden { + display: none; +} + +.c-clearfix { + .clearfix(); +} + +.c-pull-right { + float: right; +} + +.c-pull-left { + float: left; +} + +.c-hide-text { + text-indent: 100%; + white-space: nowrap; + overflow: hidden; +} + +.c-hidden { + display: none; +} + +.fade { + opacity: 0; + .transition-shorthand(opacity .15s linear); + + &.in { + opacity: 1; + } +} diff --git a/src/style/components/variables.less b/src/style/components/variables.less new file mode 100644 index 0000000..643ec98 --- /dev/null +++ b/src/style/components/variables.less @@ -0,0 +1,104 @@ +@import "colors.less"; + +@reddit-sidebar-width: 300px; + +// States + +@brand-success: #6ec02a; +@brand-danger: #d4473f; + +// Shared + +@padding-base-vertical: 6px; +@padding-base-horizontal: 12px; + +// Forms + +@input-height-base: 34px; +@input-focus-color: #3c80d3; +@input-placeholder-color: #a6a6a6; + +// Tooltips + +@tooltip-max-width: 200px; +@tooltip-color: #fff; +@tooltip-bg: #000; +@tooltip-success-bg: @brand-success; +@tooltip-success-hover-bg: @tooltip-success-bg; +@tooltip-danger-bg: @brand-danger; +@tooltip-danger-hover-bg: rgb(191, 64, 57); +@tooltip-opacity: 1; +@tooltip-arrow-width: 8px; +@tooltip-arrow-color: @tooltip-bg; +@tooltip-success-arrow-color: @tooltip-success-bg; +@tooltip-danger-arrow-color: @tooltip-danger-bg; + +// Alerts + +@alert-danger-bg: lighten(@brand-danger, 40%); +@alert-danger-color: darken(@brand-danger, 10%); +@alert-danger-border: lighten(@brand-danger, 38%); + +// Screen Sizes + +@screen-xs-min: 480px; +@screen-sm-min: 768px; +@screen-md-min: 992px; +@screen-lg-min: 1200px; +@screen-xs-max: (@screen-sm-min - 1); +@screen-sm-max: (@screen-md-min - 1); +@screen-md-max: (@screen-lg-min - 1); + +// Throbber +@throbber-color: #606060; + +// Strength meter +@strength-meter-bg: #efefef; +@strength-meter-fill-loading: @throbber-color; +@strength-meter-fill-success: @brand-success; +@strength-meter-fill-error: @brand-danger; + +// Modal +@zindex-modal: 9999; +@modal-border-radius: 5px; +@modal-padding: 60px; +@modal-title-color: #4270a2; +@modal-title-line-height: 1.618; +@modal-content-bg: #f8fbfd; +@modal-content-border-color: rgba(0,0,0,.2); +@modal-backdrop-bg: #000; +@modal-backdrop-opacity: .5; +@modal-footer-border-color: #e9eef1; +@modal-footer-bg: #e9f0f7; +@modal-lg: 758px; +@modal-md: 728px; +@modal-sm: 300px; + +// Font size and vertical grid +@base-font-keyword: small; +@base-font-keyword-size: 13; // small == 13px; + +@font-xx-small: 10; +@font-x-small: 12; +@font-small: 14; +@font-medium: 16; +@font-large: 18; +@font-x-large: 20; +@font-xx-large: 24; +@font-xxx-large: 32; + +@line-x-small: 15; +@line-small: 20; +@line-medium: 20; +@line-large: 25; +@line-x-large: 25; +@line-xx-large: 30; +@line-xxx-large: 40; + +@margin-x-small: 5; +@margin-small: 10; +@margin-medium: 15; +@margin-large: 20; +@margin-x-large: 25; +@margin-xx-large: 30; +@margin-xxx-large: 40; diff --git a/src/style/config.rb b/src/style/config.rb new file mode 100644 index 0000000..bc31b9e --- /dev/null +++ b/src/style/config.rb @@ -0,0 +1,24 @@ +# Require any additional compass plugins here. + +# Set this to the root of your project when deployed: +http_path = "/" +css_dir = "." +sass_dir = "." +images_dir = "images" +javascripts_dir = "javascripts" + +# You can select your preferred output style here (can be overridden via the command line): +# output_style = :expanded or :nested or :compact or :compressed +output_style = :compact +# To enable relative paths to assets via compass helper functions. Uncomment: +# relative_assets = true + +# To disable debugging comments that display the original location of your selectors. Uncomment: + line_comments = false + + +# If you prefer the indented syntax, you might want to regenerate this +# project again passing --syntax sass, or you can uncomment this: +# preferred_syntax = :sass +# and then run: +# sass-convert -R --from scss --to sass sass scss && rm -rf sass && mv scss sass diff --git a/src/style/expando.less b/src/style/expando.less new file mode 100644 index 0000000..a1c8793 --- /dev/null +++ b/src/style/expando.less @@ -0,0 +1,45 @@ +.thing .entry .expando-button { + background-color: transparent; + cursor: pointer; + height: 20px; + margin: 4px 8px 4px 0; + width: 20px; + + &.expanded { + background-image: url('../icon-contract.png'); /* SPRITE */ + } + + &.expanded:hover { + background-image: url('../icon-contract-hover.png'); /* SPRITE */ + } + + &.collapsed { + background-image: url('../icon-expand.png'); /* SPRITE */ + } + + &.collapsed:hover { + background-image: url('../icon-expand-hover.png'); /* SPRITE */ + } + + @media + only screen and (min-resolution: 2dppx), + only screen and (-webkit-min-device-pixel-ratio: 2) { + background-size: 100%; + + &.expanded { + background-image: url(../icon-contract_2x.png); /* SPRITE pixel-ratio=2 */ + } + + &.expanded:hover { + background-image: url(../icon-contract-hover_2x.png); /* SPRITE pixel-ratio=2 */ + } + + &.collapsed { + background-image: url(../icon-expand_2x.png); /* SPRITE pixel-ratio=2 */ + } + + &.collapsed:hover { + background-image: url(../icon-expand-hover_2x.png); /* SPRITE pixel-ratio=2 */ + } + } +} diff --git a/src/style/highlight.css b/src/style/highlight.css new file mode 100644 index 0000000..95b717b --- /dev/null +++ b/src/style/highlight.css @@ -0,0 +1,238 @@ +/* subreddit stylesheet source viewer */ +.subreddit-stylesheet-source { + padding: 0.5em; + overflow-x: auto; + margin: 10px 7px; + font-size: medium; + font-family: "Bitstream Vera Sans Mono", Consolas, monospace; +} + +/* github.com style (c) Vasily Polovnyov - from the highlight.js source */ +pre { + color: #333; + background-color: #f8f8ff; +} + +pre .comment, +pre .template_comment, +pre .diff .header, +pre .javadoc { + color: #998; + font-style: italic +} + +pre .keyword, +pre .css .rule .keyword, +pre .winutils, +pre .javascript .title, +pre .nginx .title, +pre .subst, +pre .request, +pre .status { + color: #333; + font-weight: bold +} + +pre .number, +pre .hexcolor, +pre .ruby .constant { + color: #099; +} + +pre .string, +pre .tag .value, +pre .phpdoc, +pre .tex .formula { + color: #d14 +} + +pre .title, +pre .id { + color: #900; + font-weight: bold +} + +pre .javascript .title, +pre .lisp .title, +pre .clojure .title, +pre .subst { + font-weight: normal +} + +pre .class .title, +pre .haskell .type, +pre .vhdl .literal, +pre .tex .command { + color: #458; + font-weight: bold +} + +pre .tag, +pre .tag .title, +pre .rules .property, +pre .django .tag .keyword { + color: #000080; + font-weight: normal +} + +pre .attribute, +pre .variable, +pre .lisp .body { + color: #008080 +} + +pre .regexp { + color: #009926 +} + +pre .class { + color: #458; + font-weight: bold +} + +pre .symbol, +pre .ruby .symbol .string, +pre .lisp .keyword, +pre .tex .special, +pre .input_number { + color: #990073 +} + +pre .built_in, +pre .lisp .title, +pre .clojure .built_in { + color: #0086b3 +} + +pre .preprocessor, +pre .pi, +pre .doctype, +pre .shebang, +pre .cdata { + color: #999; + font-weight: bold +} + +pre .deletion { + background: #fdd +} + +pre .addition { + background: #dfd +} + +pre .diff .change { + background: #0086b3 +} + +pre .chunk { + color: #aaa +} + +/* Monokai style - ported by Luigi Maselli - http://grigio.org - from the highlight.js source */ +.res-nightmode pre { + background: #272822; + color: #ddd; +} + +.res-nightmode pre .tag, +.res-nightmode pre .tag .title, +.res-nightmode pre .keyword, +.res-nightmode pre .literal, +.res-nightmode pre .change, +.res-nightmode pre .winutils, +.res-nightmode pre .flow, +.res-nightmode pre .lisp .title, +.res-nightmode pre .clojure .built_in, +.res-nightmode pre .nginx .title, +.res-nightmode pre .tex .special { + color: #F92672; +} + +.res-nightmode pre code .constant { + color: #66D9EF; +} + +.res-nightmode pre .class .title { + color: white; +} + +.res-nightmode pre .attribute, +.res-nightmode pre .symbol, +.res-nightmode pre .symbol .string, +.res-nightmode pre .value, +.res-nightmode pre .regexp { + color: #BF79DB; +} + +.res-nightmode pre .tag .value, +.res-nightmode pre .string, +.res-nightmode pre .subst, +.res-nightmode pre .title, +.res-nightmode pre .haskell .type, +.res-nightmode pre ..res-nightmode preprocessor, +.res-nightmode pre .ruby .class .parent, +.res-nightmode pre .built_in, +.res-nightmode pre .sql .aggregate, +.res-nightmode pre .django .template_tag, +.res-nightmode pre .django .variable, +.res-nightmode pre .smalltalk .class, +.res-nightmode pre .javadoc, +.res-nightmode pre .django .filter .argument, +.res-nightmode pre .smalltalk .localvars, +.res-nightmode pre .smalltalk .array, +.res-nightmode pre .attr_selector, +.res-nightmode pre .pseudo, +.res-nightmode pre .addition, +.res-nightmode pre .stream, +.res-nightmode pre .envvar, +.res-nightmode pre .apache .tag, +.res-nightmode pre .apache .cbracket, +.res-nightmode pre .tex .command, +.res-nightmode pre .input_number { + color: #A6E22E; +} + +.res-nightmode pre .comment, +.res-nightmode pre .java .annotation, +.res-nightmode pre .python .decorator, +.res-nightmode pre .template_comment, +.res-nightmode pre .pi, +.res-nightmode pre .doctype, +.res-nightmode pre .deletion, +.res-nightmode pre .shebang, +.res-nightmode pre .apache .sqbracket, +.res-nightmode pre .tex .formula { + color: #75715E; +} + +.res-nightmode pre .keyword, +.res-nightmode pre .literal, +.res-nightmode pre .css .id, +.res-nightmode pre .phpdoc, +.res-nightmode pre .title, +.res-nightmode pre .haskell .type, +.res-nightmode pre .vbscript .built_in, +.res-nightmode pre .sql .aggregate, +.res-nightmode pre .rsl .built_in, +.res-nightmode pre .smalltalk .class, +.res-nightmode pre .diff .header, +.res-nightmode pre .chunk, +.res-nightmode pre .winutils, +.res-nightmode pre .bash .variable, +.res-nightmode pre .apache .tag, +.res-nightmode pre .tex .special, +.res-nightmode pre .request, +.res-nightmode pre .status { + font-weight: bold; +} + +.res-nightmode pre .coffeescript .javascript, +.res-nightmode pre .javascript .xml, +.res-nightmode pre .tex .formula, +.res-nightmode pre .xml .javascript, +.res-nightmode pre .xml .vbscript, +.res-nightmode pre .xml .css, +.res-nightmode pre .xml .cdata { + opacity: 0.5; +} diff --git a/src/style/interstitial.less b/src/style/interstitial.less new file mode 100644 index 0000000..e127e96 --- /dev/null +++ b/src/style/interstitial.less @@ -0,0 +1,76 @@ +@margin-interstitial-top: 60; + +.interstitial { + font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif; + margin: auto; + text-align: center; + width: 650px; +} + +.modal .interstitial { + width: auto; + + .interstitial-image { + margin-top: @margin-large * 1px; + } +} + +.interstitial-image { + margin-bottom: @margin-large * 1px; + margin-top: @margin-interstitial-top * 1px; +} + +.interstitial-message .note { + color: #a5a4a4; + font-size: @font-small; +} + +.interstitial .md { + h3 { + .md-font-size(@font-small, @font-x-large, @line-x-large); + .md-margins(@font-x-large, @margin-large, @margin-large); + } + + h5, + p { + .md-font-size(@font-small, @font-large, @line-large); + } + + p { + font-weight: 300; + } +} + +.interstitial-subreddit-description { + background-color: lighten(@color-pale-grey, 5%); + margin-bottom: @margin-large * 1px; + padding: (@margin-small * 1px) (@margin-large * 1px); + + h5 { + margin-bottom: @margin-large * 1px; + margin-top: 0; + } + + p { + margin: 0; + text-align: left; + } +} + +.interstitial .buttons { + .display-flex(); + .justify-content(center); + margin-left: auto; + margin-right: auto; + margin-top: @margin-xx-large * 1px; + width: 400px; + + .c-btn { + .flex(0 1 75%); + font-weight: 500; + margin-left: @margin-x-small * 1px; + margin-right: @margin-x-small * 1px; + padding-bottom: 8px; + padding-top: 8px; + } +} diff --git a/src/style/markdown.less b/src/style/markdown.less new file mode 100644 index 0000000..3123300 --- /dev/null +++ b/src/style/markdown.less @@ -0,0 +1,414 @@ +// markdown colors +@markdown-color-link: @color-alien-blue; +@markdown-color-code: @color-off-white; +@markdown-color-code-alt: @color-white; +@markdown-color-border-light: @color-pale-grey; +@markdown-color-border-heavy: darken(@color-pale-grey, 15%); +@markdown-color-font: @color-semi-black; +@markdown-color-font-light: @color-text-grey; + +// wiki page styles +@markdown-color-wiki-header: @color-text-grey; +@markdown-color-wiki-header-alt: @color-ui-blue; + + +.md-font-size(@base, @font, @line) { + font-size: (@font / @base) * 1em; + line-height: (@line / @font) * 1em; +} + +.md-margins(@font, @top, @bottom) { + margin-top: (@top / @font) * 1em; + margin-bottom: (@bottom / @font) * 1em; +} + +.md-base-font-size(@font-size) { + font-size: (@font-size / @base-font-keyword-size) * 1em; +} + +.md-container-small, +.md-container { + font-size: @base-font-keyword; +} + +.md { + h1, h2, h3, h4, h5, h6 { + &:extend(.md .-headers all); + } + + th, td { + &:extend(.md .-cells all); + } + + ul, ol { + &:extend(.md .-lists all); + } + + .-lists, pre, blockquote, table, p { + &:extend(.md .-blocks all); + } + + p, pre > code, th, td, li { + &:extend(.md .-text all); + } + + color: @markdown-color-font; + max-width: 60em; + overflow-wrap: break-word; + word-wrap: break-word; + + .-headers { + border: 0; + color: inherit; + -webkit-font-smoothing: antialiased; + + code { + font-size: inherit; + } + } + + blockquote, + del { + color: @markdown-color-font-light; + } + + a { + color: @markdown-color-link; + text-decoration: none; + + del { + color: inherit; + } + } + + h6 { + text-decoration: underline; + } + + em { + font-style: italic; + font-weight: inherit; + } + + th, + strong, + .-headers { + font-weight: 600; + font-style: inherit; + } + + h2, + h4 { + font-weight: 500; + } + + &, + h6 { + font-weight: 400; + } + + * { + margin-left: 0; + margin-right: 0; + } + + tr, + code, + .-cells, + .-lists, + .-blocks, + .-headers { + margin: 0; + padding: 0; + } + + hr { + border: 0; + color: transparent; + background: @markdown-color-border-heavy; + height: 2px; + padding: 0; + } + + blockquote { + border-left: 2px solid @markdown-color-border-heavy; + } + + code, + pre { + border: 1px solid darken(@markdown-color-code, 10%); + background-color: @markdown-color-code; + border-radius: 2px; + } + + code { + margin: 0 2px; + white-space: nowrap; + word-break: normal; + } + + p { + code { + line-height: 1em; + } + } + + pre { + overflow: auto; + + code { + white-space: pre; + background-color: transparent; + border: 0; + display: block; + padding: 0 !important; + } + } + + // can't rely on &:extend here, doesn't apply the align rules + td, th { + border: 1px solid @markdown-color-border-light; + text-align: left; + + &[align=center] { + text-align: center; + } + + &[align=right] { + text-align: right; + } + } + + img { + max-width: 100%; + } + + ul { + list-style-type: disc; + } + + ol { + list-style-type: decimal; + } + + blockquote { + // -2 to compensate for border + padding: 0 ((@margin-small - 2) * 1px); + margin-left: (@margin-x-small * 1px); + } + + code { + padding: 0 ((@margin-x-small - 1) * 1px); + } + + pre, + .-cells { + padding: ((@margin-x-small - 1) * 1px) ((@margin-small - 1) * 1px); + } + + .-lists { + padding-left: (@margin-xxx-large * 1px); + } + + sup { + font-size: 0.86em; + line-height: 0; + } + + li li, + li p { + font-size: 1em !important; + } +} + + +.link .usertext .md { + padding: (@margin-x-small * 1px) (@margin-small * 1px); +} + +.new-comment .md, +.link .md, +.usertext.border .md { + :not(pre) > code, + pre { + background-color: @markdown-color-code-alt; + } +} + +.linklisting .md, +.commentarea .md { + @vertical-margin: (@margin-x-small * 1px); + margin-top: @vertical-margin; + margin-bottom: @vertical-margin; +} + +textarea { + // prevent from using system default colors, since this can cause + // problems on systems with dark color schemes + background-color: white; + color: black; +} + +code { + // this hack fixes browsers automatically shrinking monospace fonts. weird. + // http://code.stephenmorley.org/html-and-css/fixing-browsers-broken-monospace-font-handling/ + font-family:monospace,monospace; +} + + +.md { + @font-base: @font-small; + @line-base: @line-small; + + .md-base-font-size(@font-base); + + h1, + h2 { + .md-font-size(@font-base, @font-large, @line-large); + .md-margins(@font-large, @margin-medium, @margin-medium); + } + + h3, + h4 { + .md-font-size(@font-base, @font-medium, @line-medium); + .md-margins(@font-medium, @margin-small, @margin-small); + } + + h5, + h6 { + .md-font-size(@font-base, @font-base, @line-base); + .md-margins(@font-base, @margin-small, @margin-x-small); + } + + .-blocks { + .md-margins(@font-base, @margin-x-small, @margin-x-small); + } + + textarea, + .-text { + .md-font-size(@font-base, @font-base, @line-base); + } +} + +.md-container-small .md, +.side .md { + @font-base: @font-x-small; + @line-base: @line-x-small; + + .md-base-font-size(@font-base); + + h1, + h2 { + .md-font-size(@font-base, @font-large, @line-large); + .md-margins(@font-large, @margin-small, @margin-small); + } + + h3, + h4 { + .md-font-size(@font-base, @font-medium, @line-medium); + .md-margins(@font-medium, @margin-small, @margin-small); + } + + h5, + h6 { + .md-font-size(@font-base, @font-small, @line-small); + .md-margins(@font-small, @margin-small, @margin-x-small); + } + + .-blocks { + .md-margins(@font-base, @margin-x-small, @margin-x-small); + } + + .-text { + .md-font-size(@font-base, @font-base, @line-base); + } +} + +.wiki-page-content .md { + @font-base: @font-small; + @line-base: @line-small; + + h1 { + .md-font-size(@font-base, @font-xxx-large, @line-xxx-large); + .md-margins(@font-xxx-large, @margin-xxx-large, @margin-x-large); + } + + h2 { + .md-font-size(@font-base, @font-xx-large, @line-xx-large); + .md-margins(@font-xx-large, @margin-xx-large, @margin-medium); + } + + h3 { + .md-font-size(@font-base, @font-x-large, @line-x-large); + .md-margins(@font-x-large, @margin-large, @margin-small); + } + + .-blocks { + .md-margins(@font-base, @margin-x-small, @margin-small); + } + + // Style changes for wiki pages + h1, + h6 { + color: @markdown-color-wiki-header; + font-weight: 300; + } + + h2 { + color: @markdown-color-wiki-header-alt; + } + + h2, + h3 { + font-weight: 600; + } + + h4 { + font-style: italic; + } + + h5 { + text-decoration: underline; + } + + h4, + h5 { + font-weight: 400; + } + + h6 { + .md-font-size(@font-base, @font-base, @line-base); + .md-margins(@font-base, @margin-medium, @margin-x-small); + + text-decoration: none; + text-transform: uppercase; + letter-spacing: 1px; + } +} + + +.md { + &, + .-cells, + .-lists, + .-blocks, + .-headers { + > :first-child { + margin-top: 0; + } + + > :last-child { + margin-bottom: 0; + } + } + + li { + > :first-child { + margin-top: 0; + + &:last-child { + margin-bottom: 0; + } + } + } +} diff --git a/src/style/mobile.css b/src/style/mobile.css new file mode 100644 index 0000000..92240a8 --- /dev/null +++ b/src/style/mobile.css @@ -0,0 +1,153 @@ +body { + font-family: verdana,arial,helvetica,sans-serif; + margin: 0; + padding: 0; + color: #888; +} + +a { + text-decoration: none; + color: #369; + } + +p { + margin: 0px; + padding: 0px; + } + +ul { + margin: 5px; + padding: 0px; + list-style: none; + } + +.link { + padding: 5px 5px 5px 5px; + /*padding-top: 5px; + padding-bottom: 5px; + margin-left: 2px; + display: inline;*/ + } + +.title { + color: black; + } + +.byline { + margin: 0px 0px .5em 2px; + display: inline; + font-size: small; + } + +.description { + margin-bottom: .5em; + } + +.domain { + color: #369; + } + +.comment .md, .subreddit .md { + color: black; +} + +.link .md { + color: black; + margin: 5px 5px 10px 5px; +} + +.comment .child { + border-left: 1px dotted #DDF; +} + +.child { + padding-left: 1em; + margin-left: 1em; + border-left: 1px dotted #DDF; + } + +.headerbar { + background-color: lightgrey; + margin: 5px 0px 5px 2px; +} + +.headerbar span { + background-color: white; + color: gray; + font-weight: bold; + margin-left: 15px; + padding: 0px 3px; +} + +.score { + margin: 0px .5em 0px .5em; +} + +.error { + color: red; + margin: 5px; + } + +.nextprev { + margin: 10px; + } + +.tabmenu { + list-style-type: none; + display: inline; +} + +.tabmenu li { + display: inline; + margin-right: .25em; + padding-left: .25em; + border-left: thin solid #000; + } + +.redditname { + font-weight: bold; + margin: 0px 3px 0px 3px; + } + +.selected { + font-weight: bold; + } + +.pagename { + font-weight: bold; + margin-right: 1ex; + color: black; + } + +.or { + border-left:thin solid #000000; + border-right:thin solid #000000; + padding: 0px .25em 0px .25em; + } + +#header { + background-color: #CEE3F8; + } + +#header .redditname a{ + color: black; + } + +#header img { + margin-right: 3px; + } + +/* markdown */ +.md { max-width: 60em; overflow: auto; } +.md p, .md h1 { margin-bottom: .5em;} +.md h1 { font-weight: normal; font-size: 100%; } +.md > * { margin-bottom: 0px } +.md strong { font-weight: bold; } +.md em { font-style: italic; } +.md img { display: none } +.md ol, .md ul { margin: 10px 2em; } +.md pre { margin: 10px; } +.flair, .linkflair { color: #545454; background-color: #F5F5F5; border: 1px solid #DEDEDE; } +.linkflair { display: inline-block; font-size: small; max-width: 10em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +a.author, .flair, .linkflair { margin-right: 0.5em } +.author.submitter { color: white; background-color: #5F99CF; padding: 0 4px; } \ No newline at end of file diff --git a/src/style/mod-action-icons.less b/src/style/mod-action-icons.less new file mode 100644 index 0000000..01d1a54 --- /dev/null +++ b/src/style/mod-action-icons.less @@ -0,0 +1,51 @@ +@mod-action-icon-size: 16px; + +.mod-action-icon { + display: inline-block; + width: @mod-action-icon-size; + height: @mod-action-icon-size; + background-position: center; +} + +.mod-action-icon-delete { + .hdpi-bg-image(@1x: url(../mod-action-icon-delete.png), + @2x: url(../mod-action-icon-delete_2x.png), + @2x-bg-size: @mod-action-icon-size); + + &:hover, + .mod-action-deleting & { + .hdpi-bg-image(@1x: url(../mod-action-icon-delete-active.png), + @2x: url(../mod-action-icon-delete-active_2x.png), + @2x-bg-size: @mod-action-icon-size); + } +} + +.mod-action-icon-edit { + .hdpi-bg-image(@1x: url(../mod-action-icon-edit.png), + @2x: url(../mod-action-icon-edit_2x.png), + @2x-bg-size: @mod-action-icon-size); + + &:hover { + .hdpi-bg-image(@1x: url(../mod-action-icon-edit-active.png), + @2x: url(../mod-action-icon-edit-active_2x.png), + @2x-bg-size: @mod-action-icon-size); + } +} + +.mod-action-icon-add { + .hdpi-bg-image(@1x: url(../mod-action-icon-add.png), + @2x: url(../mod-action-icon-add_2x.png), + @2x-bg-size: @mod-action-icon-size); +} + +.mod-action-icon-cancel { + .hdpi-bg-image(@1x: url(../mod-action-icon-cancel.png), + @2x: url(../mod-action-icon-cancel_2x.png), + @2x-bg-size: @mod-action-icon-size); +} + +.mod-action-icon-confirm { + .hdpi-bg-image(@1x: url(../mod-action-icon-confirm.png), + @2x: url(../mod-action-icon-confirm_2x.png), + @2x-bg-size: @mod-action-icon-size); +} diff --git a/src/style/modtools.less b/src/style/modtools.less new file mode 100644 index 0000000..b5bd986 --- /dev/null +++ b/src/style/modtools.less @@ -0,0 +1,20 @@ +@import "components/variables.less"; +@import "components/mixins.less"; +@import "markdown.less"; + +@import "mod-action-icons.less"; +@import "subreddit-rules.less"; + +#this_is_a_hack__please_ignore { + // lets me put this file in the SPRITED_STYLESHEETS section of the Makefile + background-image: url(../reddit.com.header.png); /* SPRITE */ +} + +.modtools-page { + & > div.content { + font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif; + margin: 0; + margin-right: @reddit-sidebar-width; + padding: 15px 20px; + } +} diff --git a/src/style/policies.less b/src/style/policies.less new file mode 100644 index 0000000..dc64a17 --- /dev/null +++ b/src/style/policies.less @@ -0,0 +1,234 @@ +.transition (@property, @duration, @function: ease, @delay: 0s) { + -webkit-transition: @arguments; + -moz-transition: @arguments; + -o-transition: @arguments; + -ms-transition: @arguments; + transition: @arguments; +} + +.policy-page { + position: relative; + margin: 0 auto; + padding-left: 195px; + width: 43em; + font-size: 11pt; + + .md { + line-height: 1.75em; + overflow: visible; + margin: 0; + + a:hover { + text-decoration: underline; + } + + h1 { + font-size: 1.75em; + font-weight: bold; + margin: 1.5em 0; + + a { + color: black; + padding-bottom: 2px; + + &:hover { + // the padding added to the em causes a break in the text-decoration underline + text-decoration: none; + border-bottom: 1px solid #777; + } + } + + strong { + margin-right: .5em; + } + + em { + font-size: .60em; + font-style: normal; + color: #777; + white-space: nowrap; + } + } + + h2 { + font-size: 1.4em; + margin: 1em 0 .75em; + padding-top: 1em; + color: #336699; + } + + h3 { + color: #333; + font-size: 1.1em; + margin-top: 1.5em; + + a { + color: black; + } + } + + h1, h2, h3 { + text-transform: lowercase; + } + + p { + margin-bottom: 1em; + color: #222; + } + + p em { + line-height: 1.5em; + font-style: normal; + display: block; + background: #fcfbd7; + padding: .5em .75em; + margin: 0 -.75em; + margin-top: 1.5em; + position: relative; + top: -.5em; + border-radius: 5px; + box-shadow: 0 2px 5px #d1d0bb; + } + + a.p-anchor { + float: left; + font-size: 10pt; + font-weight: normal; + color: #ddd; + margin-left: -3.5em; + width: 1.5em; + text-align: right; + .transition(color, 1.5s); + } + + h1:hover > a.p-anchor, + h2:hover > a.p-anchor, + h3:hover > a.p-anchor, + p:hover > a.p-anchor { + color: #555; + .transition(color, 0.25s, ease, 0.5s); + + &:hover { + .transition(color, 0s); + } + } + + blockquote { + margin: .5em 0; + padding: 0; + border: none; + font-size: 1.7em; + + p { + line-height: 1.5em; + color: #555; + } + } + } + + .doc-info, .md blockquote { + top: 2.5em; + margin-top: 1.5em; + h4 { + margin-bottom: .75em; + } + } + + .doc-info { + position: absolute; + margin-left: -13em; + width: 10em; + + h4 { + color: #555; + font-size: .9em; + } + + .revisions li { + font-size: .85em; + } + + .toc ul ul li { + font-size: .85em; + } + + li { + margin: .75em 0; + + &.selected { + font-weight: bold; + } + } + + .revisions li { + white-space: nowrap; + } + + .toc { + position: relative; + text-transform: lowercase; + + & > ul { + margin-bottom: 1.5em; + + // only display h2 sections in toc + + & > li { + display: none; + } + + & > li.toc_child { + display: block; + } + + ul ul { + display: none; + } + } + + .location { + position: absolute; + left: -11px; + margin-top: 2px; + border: 5px solid transparent; + border-left-color: orangered; + } + } + } +} + +@media (max-width: 835px) { + .policy-page { + padding-left: 0; + + .doc-info.scroll-fixed-standin { + display: none; + } + + .doc-info { + position: static; + margin: 2em 0; + width: auto; + + &.scroll-fixed { + position: static !important; + } + + .toc { + display: none; + } + + .revisions li { + display: inline-block; + margin: 0 .5em; + } + } + } +} + +@media (max-width: 635px) { + .policy-page { + margin: 0 1em; + width: auto; + } +} diff --git a/src/style/post-sharing.less b/src/style/post-sharing.less new file mode 100644 index 0000000..79babc4 --- /dev/null +++ b/src/style/post-sharing.less @@ -0,0 +1,245 @@ +@post-sharing-icon-size: 26px; +@post-sharing-max-width: 550px; +@post-sharing-shareplane-width: 50px; +@post-sharing-shareplane-height: 32px; + +@post-sharing-shareplane-image: '../share-paper-airplane.png'; +@post-sharing-facebook-image: '../share-to-facebook.png'; +@post-sharing-twitter-image: '../share-to-twitter.png'; +@post-sharing-tumblr-image: '../share-to-tumblr.png'; +@post-sharing-email-image: '../share-to-email.png'; +@post-sharing-reddit-pm-image: '../share-to-reddit-pm.png'; + +@post-sharing-color-success: @color-green; +@post-sharing-color-button-focus: @color-white; +@post-sharing-color-background: #fbfbfb; +@post-sharing-color-border: darken(@post-sharing-color-background, 10%); +@post-sharing-color-tooltip: @color-white; +@post-sharing-color-tooltip-border: darken(@color-white, 10%); +@post-sharing-color-tooltip-text: @color-semi-black; + +@post-sharing-font-base: @font-small; +@post-sharing-font-small: @font-x-small; +@post-sharing-line-base: @line-small; + +.post-sharing-font-size(@font:@post-sharing-font-base, @line:@post-sharing-line-base) { + .md-font-size(@post-sharing-font-base, @font, @line); +} + +.post-sharing { + background: @post-sharing-color-background; + border: 1px solid @post-sharing-color-border; + box-sizing: border-box; + display: none; + font-size: @base-font-keyword; + max-width: @post-sharing-max-width; + padding: (@margin-large * 1px); + position: relative; + + .c-close { + position: absolute; + top: 0; + right: 0; + padding: @margin-x-small * 1px; + } + + .post-sharing-form { + .md-base-font-size(@post-sharing-font-base); + display: none; + } + + .post-sharing-main { + display: block; + + .c-form-group { + .align-items(center); + .display-flex(); + + > * { + .flex(1 1 100%); + } + + > .post-sharing-label { + .flex(0 0 83px); + padding-right: @margin-small * 1px; + text-align: right; + } + + &:last-child { + margin-bottom: 0px; + } + } + } + + .post-sharing-email-form { + .c-form-group { + margin-bottom: @margin-small * 1px; + margin-top: @margin-small * 1px; + } + + &.shared { + .post-sharing-shareplane { + display: block; + + &:before { + .animation(post-sharing-shareplane .7s forwards); + } + } + + .post-sharing-buttons { + .c-btn { + opacity: 0; + } + } + } + } + + .post-sharing-label { + .post-sharing-font-size(); + color: @color-dark-grey; + } + + .post-sharing-option { + background-size: @post-sharing-icon-size @post-sharing-icon-size; + cursor: pointer; + display: inline-block; + height: @post-sharing-icon-size; + margin-right: @margin-x-small * 1px; + margin-top: @margin-x-small * 1px; + position: relative; + width: @post-sharing-icon-size; + + &:hover .c-tooltip { + bottom: 100%; + opacity: 1; + } + + .c-tooltip { + .transform(translate(-50%, @tooltip-arrow-width * -1)); + .transition(all, 0.15s); + bottom: 50%; + left: 50%; + pointer-events: none; + + .tooltip-inner { + .box-shadow(0 1px 3px rgba(0, 0, 0, 0.08)); + background: @post-sharing-color-tooltip; + border: 1px solid @post-sharing-color-tooltip-border; + color: @post-sharing-color-tooltip-text; + padding: @margin-small * 1px; + white-space: nowrap; + } + + .tooltip-arrow { + .transform(translate(-50%, -1px)); + border-top-color: @post-sharing-color-tooltip; + left: 50%; + top: 100%; + } + } + } + + .post-sharing-option-facebook { + background-image: data-uri(@post-sharing-facebook-image); + } + + .post-sharing-option-twitter { + background-image: data-uri(@post-sharing-twitter-image); + } + + .post-sharing-option-tumblr { + background-image: data-uri(@post-sharing-tumblr-image); + } + + .post-sharing-option-email { + background-image: data-uri(@post-sharing-email-image); + } + + .post-sharing-option-reddit-pm { + background-image: data-uri(@post-sharing-reddit-pm-image); + } + + .post-sharing-shareplane { + .post-sharing-font-size(@post-sharing-font-small); + bottom: 0; + color: @post-sharing-color-success; + display: none; + font-weight: bold; + padding: (@margin-x-small* 1px) (@margin-medium * 1px); + position: absolute; + right: 0; + text-transform: uppercase; + + &:before { + background-image: data-uri(@post-sharing-shareplane-image); + background-size: @post-sharing-shareplane-width @post-sharing-shareplane-height; + content: ''; + height: @post-sharing-shareplane-height; + position: absolute; + transform: translate(0, 0); + width: @post-sharing-shareplane-width; + } + } + + .post-sharing-buttons { + overflow: auto; + + .c-btn { + .no-select(); + margin-left: @margin-x-small * 1px; + margin-right: 0; + padding: (@margin-x-small * 1px) (@margin-medium * 1px); + + &:focus { + box-shadow: 0 0 0 1px @post-sharing-color-button-focus inset; + outline: none; + } + } + } +} + +.post-sharing-shareplane-animation() { + @keyframe-0-translate-x: 0px; + @keyframe-0-translate-y: 0px; + @keyframe-0-opacity: 0; + + @keyframe-1-translate-x: 20px; + @keyframe-1-translate-y: -10px; + @keyframe-1-opacity: 1; + + @keyframe-2-translate-x: -50px; + @keyframe-2-translate-y: -60px; + @keyframe-2-opacity: 0; + + 0% { + opacity: @keyframe-0-opacity; + transform: translate(@keyframe-0-translate-x, @keyframe-0-translate-y); + } + + 50% { + opacity: @keyframe-1-opacity; + transform: translate(@keyframe-1-translate-x, @keyframe-1-translate-y); + } + + 60% { + opacity: @keyframe-1-opacity; + transform: translate(@keyframe-1-translate-x, @keyframe-1-translate-y); + } + + 100% { + opacity: @keyframe-2-opacity; + transform: translate(@keyframe-2-translate-x, @keyframe-2-translate-y); + } +} + +@keyframes post-sharing-shareplane { + .post-sharing-shareplane-animation() +} + +@-o-keyframes post-sharing-shareplane { + .post-sharing-shareplane-animation() +} + +@-webkit-keyframes post-sharing-shareplane { + .post-sharing-shareplane-animation() +} diff --git a/src/style/reddit-embed.less b/src/style/reddit-embed.less new file mode 100644 index 0000000..20bc602 --- /dev/null +++ b/src/style/reddit-embed.less @@ -0,0 +1,160 @@ +@import "components/variables.less"; +@import "components/mixins.less"; +@import "markdown.less"; + + +* { + .box-sizing(border-box) +} + +body { + font: normal 14px verdana, arial, helvetica, sans-serif; + margin: 0; +} + +a { + color: #369; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +p { + margin: 0 0 .5em; +} + +.reddit-embed { + background: #fff; +} + +.reddit-embed-content { + border-bottom: 1px solid #f6f6f6; + padding: 20px; +} + +.reddit-embed-footer { + @snoo-height: 32px; + @snoo-width: 90px; + @snoo-padding: 12px; + + background: #fafbfd; + display: table; + font-size: 12px; + height: (@snoo-height + (@snoo-padding * 2)); + padding: 20px; + padding-right: (@snoo-width + (@snoo-padding * 2)); + position: relative; + width: 100%; + + p { + display: table-cell; + margin: 0; + padding: 0; + vertical-align: middle; + } + + .reddit-embed-footer-img { + display: block; + position: absolute; + right: @snoo-padding; + bottom: @snoo-padding; + width: @snoo-width; + height: @snoo-height; + .hdpi-bg-image(@1x: url(../reddit-embed-logo.png); @2x: url(../reddit-embed-logo_2x.png);); + text-indent: 100%; + white-space: nowrap; + overflow: hidden; + } +} + +.reddit-embed-list { + margin: 0; + padding: 0; + + .reddit-embed-list { + margin-left: 20px; + } +} + +.reddit-embed-list-item { + list-style: none; + margin-top: 24px; + + .reddit-embed-content > .reddit-embed-list > &:first-child { + margin-top: 0; + } +} + +.reddit-embed-author { + color: #6f6f6f; + font-weight: bold; +} + +// Comment embeds +.reddit-embed-comment-header { + position: relative; +} + +.reddit-embed-comment-meta { + font-size: 12px; + position: absolute; + right: 0; + bottom: 0; +} + +.reddit-embed-comment-meta-item { + color: #6f6f6f; + + &:after { + content: '•'; + display: inline-block; + margin: 0 5px; + } + + &:last-child:after { + display: none; + } +} + +.reddit-embed-comment-body { + margin: 10px 0 0; +} + +.reddit-embed-comment-edited, +.reddit-embed-comment-deleted { + background: #f7f7f7; + padding: 48px 18px; + text-align: center; +} + +.reddit-embed-comment-more { + display: none; +} + +.reddit-embed-comment-fade { + .reddit-embed-comment-body { + position: relative; + overflow: hidden; + margin-bottom: 8px; + + &:before { + content:''; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 40px; + + .linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 1)); + } + } + + .reddit-embed-comment-more { + position: relative; + top: -20px; + display: block; + padding-top: 20px; + } +} diff --git a/src/style/reddit.less b/src/style/reddit.less new file mode 100644 index 0000000..9fb0362 --- /dev/null +++ b/src/style/reddit.less @@ -0,0 +1,11500 @@ +@import "components/variables.less"; +@import "components/components.less"; +@import "markdown.less"; +@import "post-sharing.less"; +@import "search.less"; +@import "interstitial.less"; + +.no-select { + -webkit-user-select: none; + -moz-user-select: none; + -o-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.screenreader-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +.basic-button { + border-width: 1px; + border-style: solid; + border-radius: 5px; + + &:focus { + outline: 0; + box-shadow: inset 0 0 0 1px fadeout(white, 65%); + } + + &:active { + box-shadow: inset 0 1px 1px 1px fadeout(black, 90%); + } + + &:disabled, &.disabled { + .linear-gradient(#e9edf1, #dce3ea) !important; + color: #999999 !important; + text-shadow: 0 1px 0 lighten(#dce3ea, 15%) !important; + border-color: darken(#dce3ea, 5%) !important; + box-shadow: none !important; + } +} + +.button-style(@top-color, @bottom-color, @border-color) { + &:extend(.basic-button all); + .linear-gradient(@top-color, @bottom-color); + border-color: @border-color; + &:hover { + .linear-gradient(lighten(@top-color, 5%), @bottom-color); + } +} + +@gold-fonts: Palatino, georgia, garamond, FreeSerif, serif; +@gold-button-bg: #938870; +@gold-button-hover: #B8AB90; +@gold-button-active: #C3B598; +@gold-button-border: 1px solid #5E5137; + +html { + height: 100%; /* Needed for toolbar's comments panel's pinstripe */ +} + +body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,blockquote,th,td,iframe { + margin:0; + padding:0; +} + +table { border-collapse:collapse; } + +fieldset,img { border:0; } + +address,caption,cite,code,dfn,em,strong,th,var { font-style:normal; font-weight:normal; } +ol,ul { list-style:none; } +caption,th { text-align:left; } +h1,h2,h3,h4,h5,h6 { font-size:100%; } +q:before,q:after { content:''; } + +body { + font: normal x-small verdana, arial, helvetica, sans-serif; + background-color: white; + z-index: 1; + min-height: 100%; +} + +textarea { font: normal small verdana, arial, helvetica, sans-serif; } + +/* [1] fixes a bug in old versions of WebKit, as used in Android 4.0. See + * https://github.com/necolas/normalize.css/commit/79b3d21b697e , + * https://github.com/h5bp/mobile-boilerplate/issues/121 */ +button, +html input[type="button"], /* [1] */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; + /* Since we reset the padding on some of these things above, make it + * something reasonable (and consistent). */ + padding: 2px 6px 3px; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +/*html,body { height: 100%; }*/ + +/* IE dumbness patch. hidden input in a hidden block that is + * subsequently shown leads to the input to "show" and generate undesired + * )padding. This makes it go away. */ +input[type=hidden] { position: absolute; } + +/* html element defaults */ + +h1 { font-size: 18px; font-weight: normal; margin: 10px 0 } + +h2 { color: #369; font-size: 13px; } +h2 a { text-decoration: none } +h2 a:visited { color: #369 } +h2 a:hover { text-decoration: underline } +h3 { font-size:110%; /*text-transform:uppercase;*/ } + +a img { border: 0 none; } +a { text-decoration: none; color: #369; } + +/* Polyfill for HTML5 hidden attribute: http://caniuse.com/#feat=hidden */ +[hidden] { display: none; } + +/* +a:active { border: 0 none;} +a:focus { -moz-outline-style: none; } +*/ + +.rounded { + border-radius: 7px; +} + +.rounded .morelink { + border-top-right-radius: 6px; +} + + +div.autosize { display: table; width: 1px} +div.autosize > div { display: table-cell; } + +input.txt { + background-color:#f7f7f7; + border: 1px solid #369; +} + +input[type=checkbox], input[type=radio] { margin-top: .4em; } + +/* forms */ + +label.disabled { color: gray; } +.wrong {color: red; font-weight: normal} +.attention { + font-weight: bold; + border: solid 1px #ff6600; + padding: 3px; + border-radius: 7px; +} + +.subform input.text { width: 25em } +.subform textarea.text { width: 25em } +.subform label { margin: 0 5px 0 5px } +.subform td { padding: 0px 5px 5px 0} +.subform td.nopadding { padding: 0px} + +.nowrap { white-space: nowrap; } +.leftpad { padding-left: 1em } +.nomargin { margin: 0px } +.nopadding { padding: 0px } + +/* Fancy buttons */ + + +.fancybutton { + padding: 5px 10px; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from( hsl(210, 54%, 89%)), to( hsl(210, 54%, 79%))); + background: -moz-linear-gradient(top, hsl(210, 54%, 89%), hsl(210, 54%, 79%)); + background-color: #ADC9E6; + border: 1px solid #5E96CF; + border-radius: 7px; + -webkit-background-clip: padding-box; + -moz-background-clip: padding-box; + color: #2E6399; + text-shadow: 0px 1px 0px hsla(0, 0%, 100%, .7); + -webkit-box-shadow: inset 0px 1px 0px hsla(0, 0%, 100%, .8); + -moz-box-shadow: inset 0px 1px 0px hsla(0,0%, 100%, .8); + box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.8); + text-decoration: none; + font-weight: bold; +} +.fancybutton:hover { + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from( hsl(210, 54%, 93%)), to( hsl(210, 54%, 89%))); + background:-moz-linear-gradient(top, hsl(210, 54%, 93%), hsl(210, 54%, 89%)); + background-color: #D4E3F2; +} +.fancybutton:focus, .fancybutton:active { + background: -webkit-gradient(linear, 0% 0%, 0% 100%, to( hsl(210, 54%, 89%)), from( hsl(210, 54%, 79%))); + background: -moz-linear-gradient(top, hsl(210, 54%, 79%), hsl(210, 54%, 89%)); + background-color: #D4E3F2; + -webkit-box-shadow: inset 0px -1px 0px hsla(0,0%,100%,.7); + -moz-box-shadow: inset 0px -1px 0px hsla(0,0%,100%, .7); + box-shadow: inset 0px -1px 0px hsla(0,0%, 100%, .7); +} + +.fancybutton.disabled, +.fancybutton.disabled:active { + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from( hsl(210, 24%, 93%)), to( hsl(210, 24%, 89%))); + background:-moz-linear-gradient(top, hsl(210, 24%, 93%), hsl(210, 24%, 89%)); + background-color: #D4E3F2; + border-color: #999; + color: #999; +} + +/* header / menus */ + +.hover a:hover { text-decoration: underline } + +.selected, .choice.primary { font-weight: bold; } + +.flat-list {list-style-type: none; display: inline;} +.flat-list li, .flat-list form {display: inline; white-space: nowrap; } + +.flat-list li a.gold { color: #9a7d2e; font-weight: bold; } +.flat-list li.selected a { color: orangered; } + +.link .flat-list { display: block; padding: 1px 0; } +.link.compressed .flat-list { display: inline-block; padding: 0 0 1px 0; } + +ul.flat-vert {text-align: left;} +.flat-vert .separator { margin: 0 } + +.flat-vert.title { + font-family:arial,verdana,helvetica,sans-serif; + color: #777; + font-size: 18px; + font-weight: normal; + margin-bottom: 5px; + } + +.separator { color: gray; margin: 0px .7ex 0px .7ex; cursor: default; } + +.pref-lang { font-weight: bold; } +.pref { font-weight: bold; } + +#jumpToContent { position: absolute; left: 135px; top: 25px; font-weight: bold; margin-left: -1000px;} +#jumpToContent:focus { margin-left: 0 !important; } + +#header { + + border-bottom: 1px solid #5f99cf; + + position: relative; + background-color: #cee3f8; + z-index: 99; +} + +#header-img { + //margin-top: 2px; + margin-right: 5px; +} + +#header-img.default-header { + text-indent: -9999px; + //background-image: url(../reddit.com.header.png); /* SPRITE */ + height: 50px; + width: 120px; + display: inline-block; + vertical-align: bottom; + //margin-bottom: 3px; +} + +#header-top { + position: absolute; + right: 5px; +} + +#header-bottom-left { + font-size: larger; +} + +#header-bottom-right { + position: absolute; + right: 0px; + bottom: 0px; + background-color: #EFF7FF; + padding: 4px; + line-height: 12px; + border-top-left-radius: 7px; + } + +#mail { + position: relative; + top: 2px; + display: inline-block; + text-indent: -9999px; + overflow: hidden; + width: 15px; + height: 10px; +} +#mail.havemail { + background-image: url(../mail.png); /* SPRITE */ +} +#mail.nohavemail { + background-image: url(../mailgray.png); /* SPRITE */ +} +.message-count { + background-color: #FF7500; + color: #FFF; + font-size: 8px; + font-weight: bold; + padding: 0px 3px; + margin-left: 3px; + border-radius: 2px; + display: inline-block; +} +#modmail { + position: relative; + top: -2px; + display: inline-block; + text-indent: -9999px; + overflow: hidden; + width: 16px; + height: 16px; + margin-bottom: -6px; +} +#modmail.havemail { + background-image: url(../modmail.png); /* SPRITE */ +} +#modmail.nohavemail { + background-image: url(../modmailgray.png); /* SPRITE */ +} +.user {color: gray;} +.user .userkarma { + font-weight: bold; +} +.beta-hint { + position: absolute; + cursor: inherit; + height: 24px; + + opacity: 0.8; + &:hover { + opacity: 1; + } + + a { + position: absolute; + text-indent: 24px; + white-space: nowrap; + overflow: hidden; + margin-left: -24px; + display: inline-block; + width: 20px; + height: 13px; + background: transparent data-uri('image/svg+xml;charset=UTF-8', '../flask.svg') center left no-repeat; + background-size: contain; + } +} + +.pagename { + font-weight: bold; + margin-right: 1ex; + font-variant: small-caps; + font-size: 1.2em; + vertical-align: bottom; +} +.pagename a {color: black; } +.redditname { } + +.newpagelink { + padding: 3px 5px; + background-color: #ff9; +} + +.dropdown { + cursor: default; + display: inline; + position: relative; +} + +.drop-choices.inuse { display: block; } + +.drop-choices { + position: absolute; + left: 0px; /* top gets set in js */ + border: 1px solid gray; + z-index: 100; + background-color: white; + white-space: nowrap; + line-height: normal; + margin-top: 1px; + display: none; +} + + +.drop-choices a.choice { + cursor: pointer; + padding: 2px 3px 1px 3px; + display: block; + } + +.drop-choices a.choice:hover { + background-color: #c7def7; +} + +.drop-choices a.choice.selected { + display: none; +} + +.dropdown.lightdrop .selected { + position: relative; + background: none no-repeat scroll center right; + background-image: url(../droparrowgray.gif); + padding-right: 21px; + text-decoration: underline; + color: gray; + } + +.drop-choices.lightdrop { + margin-top: 2px; + } + +/*tab drop*/ +.dropdown.tabdrop .selected { + position: relative; + background: white none no-repeat scroll center right; + background-image: url(../droparrowgray.gif); + padding: 2px 21px 1px 5px; + margin-left: 3px; + border: 1px solid #5f99cf; + border-bottom: none; + color: orangered; +} + +.dropdown.tabdrop .selected.title { + background-color: #eff7ff; + color: #369; + padding-bottom: 0; + border:none; +} +.drop-choices.tabdrop {margin-top: 2px;} +.dropdown-title.tabdrop { display: none } + +.drop-choices .choice.hidden { + display: none; +} + +.tabmenu { + list-style-type: none; + white-space: nowrap; + display: inline-block; + margin-top: 5px; + vertical-align: bottom; +} + +.tabmenu li { + display: inline; + font-weight: bold; + margin: 0px 3px; +} + +.tabmenu li a { + padding: 2px 6px 0 6px; + background-color: #eff7ff; + } + +.tabmenu li.selected a{ + color: orangered; + background-color: white; + border: 1px solid #5f99cf; + border-bottom: 1px solid white; + z-index: 100; +} + +.tabpane-content { border: 1px solid #5f99cf; padding: 4px 4px 4px 4px; } + +.content { + z-index: 1; + margin: 7px 5px 0px 5px; +} + +.content .spacer { margin-bottom: 5px } + +.state-button { display:inline } + +/* side box menus */ + +.side { + float: right; + background-color: white; + margin: 0px 5px 0 5px; + width: 300px; +} + +.side .spacer { + margin: 7px 0 12px 0; + } + +.side .side-message { + background: lighten(@infobar-legacy-color, 10%) no-repeat 10px 10px; + border: 1px solid darken(@infobar-legacy-color, 20%); + border-radius: 2px; + padding: 10px; + line-height: 1.75em; + + &:before { + content: ''; + display: inline-block; + float: left; + background-image: url(../icon-info.png); /* SPRITE */ + width: 16px; + height: 16px; + margin-right: 7px; + } + + p { + font-size: .9em; + margin: 0; + + strong { + display: block; + font-weight: normal; + font-size: 1.25em; + } + } + + p + p { + margin-top: .25em; + } + + &.gold { + font-family: serif; + border: 1px solid lighten(#c4b487, 10%); + box-shadow: 0 0 10px lighten(#dad0b3, 10%) inset; + border-radius: 0; + + &:before { + background-image: url(../gold-coin.png); /* SPRITE */ + width: 13px; + height: 14px; + margin-top: 1px; + } + } +} + +.morelink { + display:block; + text-align: center; + position: relative; + + border: 1px solid #c4dbf1; + + background: white none repeat-x scroll center left; + background-image: url(../gradient-button.png); /* SPRITE stretch-x */ + + font-size:150%; + font-weight:bold; + + letter-spacing:-1px; + line-height: 29px; + height: 29px; +} + +.morelink:hover, .mlh { + border-color: #879eb4; + background-image: url(../gradient-button-hover.png); /* SPRITE stretch-x */ +} + +.morelink a { + display: block; + width: 100%; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + color:#369; +} + +.morelink:hover a { + color:white; +} + +.morelink .nub { + position: absolute; + top: -1px; + right: -1px; + height: 31px; + width: 24px; + background: white none no-repeat scroll center left; + background-image: url(../gradient-nub.png); /* SPRITE */ +} + +.morelink:hover .nub, .mlhn { + background-image: url(../gradient-nub-hover.png); /* SPRITE */ +} + +.disabled .morelink, .disabled .morelink:hover { + background-image: url(../gradient-button-gray.png); /* SPRITE stretch-x */ + border-color: #dadada; +} + +.disabled .morelink a { + cursor: default; + color: #aaa; +} + +.disabled .morelink .nub, .disabled .morelink:hover .nub { + background-image: url(../gradient-nub-gray.png); /* SPRITE */ +} + +/* raised box */ + +.raisedbox { + padding: 5px; + background: #E0E0E0; + border: 1px solid gray; +} + +.raisedbox h4 { margin-bottom: 3px } +.raisedbox li {margin-bottom: 2px;} + +.sidebox .spacer { + position: relative; + margin-top: 10px; + padding: 5px 0 0 44px; + min-height: 41px; + background: white none no-repeat scroll top left; +} + +.sidebox .spacer.no-icon { + padding: 0; + min-height: 0; +} + +.sidebox .spacer a { + position: absolute; + top: 0; left: 0px; + display: block; + height: 40px; + width: 40px; +} + +.sidebox.create .spacer a { + background-image: url(../create-a-reddit.png); /* SPRITE */ + background-repeat:no-repeat; +} + +.sidebox.gold .spacer a { + background-image: url(../reddit_gold-40.png); /* SPRITE */ + background-repeat:no-repeat; +} + +.sidebox.gold .morelink { + border:none; + background-color:transparent; + background-image: url(../goldmorelink.png); + background-position: 0 0; + background-repeat:no-repeat; + height:31px; +} + +.sidebox.gold .morelink a, .sidebox.gold .morelink a:visited { + color:#9a7d2e; +} + +.sidebox.gold .morelink:hover { + background-position: 0 -31px; +} + +.sidebox.gold .morelink:hover a { + color:#ffffff; + margin-top:1px; +} + +.sidebox.gold .morelink .nub { + display: none; +} + +.submit.mod-override .morelink { + a:after { + background-image: url("../shield.png"); + content: " "; + position: absolute; + height: 16px; + width: 16px; + margin: 7px; + } + + &:hover a:after { + opacity: 0.5; + } +} + +.sidebox .subtitle { + margin-left: 10px; + color: dimgray; + font-size: 110%; +} + +.account-activity-box { + text-align: center; +} + +#account-activity table { + margin: 2em 0 0 2em; + width: 45em; + font-size: larger; +} + +#account-activity th { + font-weight: bold; +} + +#account-activity td { + padding: .5em 0; +} + +.infotable { margin-top: 5px; margin-bottom: 10px; } +.infotable .small { font-size: smaller; } +.infotable td { padding-right: 1em; } +.infotable a:hover { text-decoration: underline } +.infotable .state-button a { background-color: #F0F0F0; color: gray; } +.infotable .bold { font-weight: bold; } +.infotable .invalid-user { background-color: pink} +.infotable .organic-vote { border: 1px solid green; } + + +/* used on profile pages */ + +.profile-attr {} +.profile-attr .label {font-weight: bold; } +.profile-attr .value {color: #404040; + margin-right: 5px; } + +.profile-attr .md { + margin-left: 10px; + margin-top: 5px; + border-color: #B2B2B2 #D0D0D0 #D0D0D0 #B2B2B2; + border-style: solid; + border-width: 1px; + padding: 10px; } + +.profile-attr .md ul { + float: none; + list-style-type: disc; + margin-left: 15px; +} + +.profile-attr .md p { margin-top: 0px; } + +.question { color: red; } +.question .yes { margin-left: 5px; margin-right: 3px; } +.question .no { margin: 0px 3px 0px 3px; } + +/* thing rendering */ + +.arrow { + margin: 2px 0px 0px 0px; + width: 100%; + height: 14px; + display: block; + cursor: pointer; + background-position: center center; + background-repeat: no-repeat; + width: 15px; + margin-left: auto; + margin-right: auto; + outline: none; +} + +.arrow.upmod { + background-image: url(../aupmod.gif); /* SPRITE */ +} +.arrow.downmod { + background-image: url(../adownmod.gif); /* SPRITE */ +} +.arrow.up { + background-image: url(../aupgray.gif); /* SPRITE */ +} +.arrow.down { + background-image: url(../adowngray.gif); /* SPRITE */ +} + +.midcol { + float: left; + margin-right: 7px; + margin-left: 7px; + background: transparent; + overflow: hidden; +} + +body > .content .link.compressed .midcol { + width: 15px; + margin-right: 5px; +} + +.entry { + overflow: hidden; + margin-left: 3px; + opacity: 1; +} +.domain { color: #888; font-size:x-small; white-space: nowrap; } +.domain a { + color: #888; + display: inline-block; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + vertical-align: middle; + max-width: 19em; +} +.domain a:hover { text-decoration: underline; max-width: none; } +.spam .domain, +.spam .domain a { + color: black; +} + +.link-note { + background-color: white; + color: #ff4444; + font-size:x-small; +} + +@moderator-color: #228822; +@admin-color: #ff0011; + +.user-distinction { + color: #888; + font-size:x-small; + margin: 5px 5px 0px 5px; +} + +.user-distinction .admin { + color: @admin-color; + text-decoration: none; + font-weight: bold; +} + +.tagline { color:#888; font-size:x-small; } +.tagline a {color: #369; text-decoration: none; } +.tagline .friend { color: orangered } +.tagline .submitter { color: #0055df } +.tagline .moderator, .green { color: @moderator-color } +.tagline .admin { color: @admin-color; } +.tagline .alum { color: #BE1337; } +.tagline a.author.admin { font-weight: bold } +.tagline a:hover { text-decoration: underline } +.tagline .edited-timestamp{ cursor: default } +.tagline .stickied-tagline { color: @moderator-color; } +.comment .tagline .stickied-tagline:before { + content: "- "; +} + +.tagline .userattrs .cakeday { + display: inline-block; + text-indent: -9999px; + width: 11px; + height: 8px; + background-image: url(../cake.png); /* SPRITE */ + vertical-align: middle; +} + +a.author { margin-right: 0.5em; } +.tagline .subreddit { + .userattrs { margin-left: 0.5em; } + .admin-distinguish { color: @admin-color; } + .moderator-distinguish { color: @moderator-color; } +} +a.banned-user { color: red; } + +.thing .parent { + .stamp, + .author { + margin-right: 0.5em; + } +} + + +.flair, .linkflairlabel { + display: inline-block; + margin-right: .5em; + padding: 0 2px; + background: #f5f5f5; + color: #555; + border: 1px solid #ddd; + border-radius: 2px; +} + +.collapsed .flair { display: none; } + +.flair input { + font-size: xx-small; +} + +.linkflairlabel { + font-size: x-small; + max-width: 10em; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.link .flair { + font-size: x-small; + margin-top: -1px; +} + +.flair-settings { margin-bottom: 16px; } + +.flairlist .flair-jump { + margin-bottom: 1em; +} + +.flairlist .flair-jump input[type="text"] { width:430px; } +.flair-jump button { font-size:100%; } + +.flairlist.pretty-form { font-size:inherit; } + +.flairlisthome, .flairlist .nextprev { + display: inline-block; + margin-top: 10px; +} + +.flairlisthome { font-size: smaller; } + +.flaircell, .flairlist .header { + display: inline-block; + text-align: center; + width: 30ex; + margin-right: 4ex; +} + +.flair-entry { display: inline-block; } + +.flaircell.narrow, .flairlist .header.narrow { width: 14ex; } + +.flairsample-left { text-align: right !important; } +.flairsample-right { text-align: left !important; } + +.flairrow .tagline { + display: inline-block; + margin-bottom: 8px; + margin-left: 6px; + text-align: left; + width: 36ex; +} +.flairlist .flaircell input[type="text"] { width: 28ex; } +.flairrow > form button { display: none; } +.flairrow .edited button { display: inline-block; } + +.flairrow .flairdeletebtn { display: inline; } +.flairrow:hover .flairdeletebtn { opacity: 1.0; } + +.reportform { + position: relative; + display: none; + max-width: 450px; +} + +.reportform.active { + display: block; +} + +.flairselector { + box-shadow: 4px 4px 4px #ccc; + font-size: x-small; + position: absolute; + width: 400px; +} + +.flairselector img { margin: none; } + +.flairselector h2 { + background: #cee3f8; + padding-bottom: 2px; + margin-bottom: 4px; + text-align: center; +} + +.flairselector.drop-choices.active { + border: 1px solid gray; + display: block; +} + +.flairselector .error { text-align: center; } +.flairselector ul { + display: inline-block; + max-width: 200px; + overflow: hidden; + vertical-align: top; +} + +.flairselector .selected, .flairselector.active li { + display: block; + font-weight: normal; + text-decoration: none !important; +} + +.flairselector li { + border: 1px solid white; + cursor: pointer; + display: block !important; + padding-left: 4px; +} + +.flairselector li a { + color: #369 !important; + font-weight: normal !important; +} + +.flairselector li:hover { background-color: #bbb; border: 1px solid #bbb; } +.flairselector li a:hover { text-decoration: none; } +.flairselector li.selected { border: dashed 1px black; } +.flairselector .title { font-size: x-small !important; } + +.flairselector form { + border-top: solid 1px gray; + clear: both; + display: block; + padding-top: 4px; + text-align: center; + + > div { + margin: 2px 0; + } + + button { + margin-left: 5px; + } +} + +.flairoptionpane { + margin-bottom: 4px; + max-height: 200px; + overflow: auto; + text-align: center; +} + +.flairselector .customizer { display: inline-block; } +.flairselector .customizer input { display: none; } +.flairselector .customizer button { display: inline !important; } + +.flairselector .flairremove { display: none; } + +.media-button .option { color: red; } +.media-button .option.active { + background: none no-repeat scroll right center; + background-image: url(../reddit-button-play.png); /* SPRITE */ + padding-right: 15px; + color: #336699; +} + +.embededmedia { margin-top: 5px; margin-left: 60px; } + +.thing .title { + color: blue; + outline: none; + margin-right: .4em; + padding: 0px; + overflow: hidden; +} + +.thing .title:visited, .thing.visited .title { color: #551a8b } + +.thing.stickied.link a.title { + font-weight: bold; + color: @moderator-color; +} + +body.with-listing-chooser.explore-page #header .pagename { + position: static; +} + +.explore-header { + font-weight: bold; + margin-bottom: 7px; + padding: 5px 0; + + #explore-settings { + input { + margin-left: 5px; + } + button { + color: #333; + font-weight: bold; + line-height: 10px; + margin-left: 8px; + } + } + + .explore-title { + font-size: 1.3em; + } +} + +.explore-item { + margin-bottom: 1em; + + .explore-label { + border-radius: 2px; + display: inline-block; + margin: 0 5px 1px 0; + padding: 1px 2px 2px; + } + + .explore-label-type, .explore-label-link { + padding: 0 5px; + } + + .explore-sr-details { + color: #777; + display: inline-block; + font-size: x-small; + font-weight: normal; + margin-left: 3px; + } + + .explore-feedback { + display: inline-block; + .fancy-toggle-button .add, .fancy-toggle-button .remove { + background-color: transparent; + background-image: none; + border: none; + color: #aaa; + border: 1px solid #ccc; + border-radius: 2px; + margin-left: 10px; + padding-top: 0; + + .option { + line-height: 7px; + } + + &:hover { + color: white; + border: 1px solid #444; + } + } + .fancy-toggle-button .add { + &:hover { + background-image: url(../bg-button-add.png); /* SPRITE stretch-x */ + } + } + .fancy-toggle-button .remove { + &:hover { + background-image: url(../bg-button-remove.png); /* SPRITE stretch-x */ + } + } + .subscribe-button { + display: inline-block; + margin: 0 4px 0 0; + } + } + + .explore-feedback-dismiss { + cursor: pointer; + display: inline-block; + text-indent: -9999px; + width: 9px; + height: 9px; + background-image: url(../close-small.png); /* SPRITE */ + background-repeat: no-repeat; + opacity: .3; + margin-left: 4px; + vertical-align: middle; + border: 3px solid transparent; + &:hover { + opacity: 1; + } + } + + .explore-sr { + display: inline-block; + font-size: 1.1em; + font-weight: bold; + margin-bottom: 3px; + padding: 2px 4px; + line-height: 13px; + height: 18px; + } + + .midcol { + display: none; + } + + .rank { + display: none; + } +} + +.explore-comment { + .explore-label { + background-color: #cee3f8; + border: solid thin #5f99cf; + } + .tagline, .buttons, .thumbnail, .expando-button { + display: none; + } + .comment { + border-left: solid 2px #eee; + color: #888; + margin: -3px 0 3px 5px; + max-height: 100px; + overflow-x: hidden; + overflow-y: hidden; + position: relative; + .md { + font-size: x-small; + padding-bottom: 2px; + p { + margin: 5px; + } + } + } + /* make long comment boxes fade to white instead of cutting off mid-line */ + .comment-fade { + background: -moz-linear-gradient(bottom, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%); + background: -webkit-gradient(linear, left bottom, left top, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(255,255,255,0))); + bottom: 0; + border: none; + height: 10px; + position: absolute; + width: 100%; + } + .comment-link { + color: #888; + display: inline-block; + font-weight: bold; + padding: 0 0 8px 5px; + } +} + +.explore-page.res-nightmode .comment-fade { + display: none; +} + +.explore-hot .explore-label { + background-color: #fff088; + border: solid thin #c4b487; +} + +.explore-rising .explore-label { + background-color: #d6fbcb; + border: solid thin #485; +} + +.explore-discovery .explore-label { + background-color: #dedede; + border: solid thin #aaa; +} + +.explore-subscribe-bubble { + margin-left: 22px; +} + +.sitetable { list-style-type: none; } +.ajaxhook { position: absolute; top: -1000px; left: 0px; } + +.nextprev, .next-suggestions { + color: gray; + font-size: larger; + margin-top: 10px; + + a { + padding: 1px 4px; + background: #eee; + border: 1px solid #ddd; + border-radius: 3px; + font-weight: bold; + } + + a:hover { + background: #f0f0f0; + border: 1px solid #82A6C9; + } + + a:active { + background: #e4e4e4; + } + + .separator { + margin: 0; + margin-left: .5em; + padding-left: .5em; + border-left: 1px solid #ccc; + } + +} + +.next-suggestions { + margin-left: 0.75em; + + a { + background: none; + font-weight: normal; + margin-left: .5em; + } +} + +.next-suggestions .mark-all-read-container .throbber { + position: absolute; + margin-left: 5px; + margin-top: -2px; + padding-left: 22px; + min-width: 18px; + width: auto; + font-size: 10px; + line-height: 16px; +} + +/* corner help */ +.help a.help { + color: #808080; + text-decoration: underline; +} + +.help.help-cover { + position: relative; + background-color: #F8F8F8; + border: 1px solid gray; + display:none; + padding: 5px 10px 10px 10px; + overflow:hidden; + } + +.help p, .help form { margin: 5px; font-size:110%; } +.help form { display: inline; } + +.help-hoverable { + cursor: help; +} + +.hover-bubble { + display: none; + position: absolute; + background: white; + color: #333; + border: 1px solid gray; + padding: 3px; + box-shadow: 0 2px 10px rgba(0,0,0,.25); + z-index: 100; + + &:before, &:after { + position: absolute; + display: block; + content: ''; + } + + &.anchor-top { + &:before, &:after { + right: 8px; + border: 9px solid transparent; + } + + &:before { + top: -19px; + border-bottom-color: gray; + } + + &:after { + top: -18px; + border-bottom-color: white; + } + } + + &.anchor-top-left { + &:before, &:after { + left: 8px; + border: 9px solid transparent; + } + + &:before { + top: -19px; + border-bottom-color: gray; + } + + &:after { + top: -18px; + border-bottom-color: white; + } + } + + &.anchor-top-centered { + &:before, &:after { + left: 50%; + margin-left: -9px; + border: 9px solid transparent; + } + + &:before { + top: -19px; + border-bottom-color: gray; + } + + &:after { + top: -18px; + border-bottom-color: white; + } + } + + &.anchor-right, &.anchor-left { + &:before, &:after { + top: 8px; + border: 9px solid transparent; + } + } + &.anchor-right { + &:before { + right: -19px; + border-left-color: gray; + } + + &:after { + right: -18px; + border-left-color: white; + } + } + + &.anchor-left { + &:before { + left: -19px; + border-right-color: gray; + } + + &:after { + left: -18px; + border-right-color: white; + } + } +} + +.help-bubble { + width: 35em; + + p, form { + margin: .5em; + } + + a { + font-weight: bold; + } + + a:hover { + text-decoration: underline + } +} + +.hover-bubble.multi-selector { + @arrow-offset: 40px; + margin-top: -7px - @arrow-offset; + min-width: 130px; + min-height: @arrow-offset; + padding: 8px 0; + .no-select; + + &:before, &:after { + top: 8px + @arrow-offset; + } + + strong, a.sr { + display: block; + margin: 3px 0; + text-align: center; + } + + strong { + font-size: 1.05em; + font-weight: bold; + color: #333; + } + + .throbber { + position: absolute; + top: 10px; + right: 8px; + } + + .multi-list { + margin-top: 5px; + } + + label { + font-size: 1.25em; + display: block; + padding: 5px 12px; + + &:hover { + background: #eee; + } + + input[type="checkbox"] { + margin-top: 0; + margin-right: 5px; + vertical-align: middle; + } + + a { + float: right; + margin-left: 7px; + width: 12px; + height: 12px; + line-height: 12px; + background: white; + border: 1px solid lighten(#369, 20%); + border-radius: 2px; + text-align: center; + opacity: .65; + + &:hover { + opacity: 1; + } + } + } + + .create-multi { + input[type="text"] { + .light-text-input; + } + } +} + +.infotext { + border: 1px solid #369; + background-color: #EFF7FF; + -webkit-box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.8), 0px 1px 0px hsla(0,0%,100%,.6); + -moz-box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.8), 0px 1px 0px hsla(0,0%,100%,.6); + box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.8), 0px 1px 0px hsla(0,0%,100%,.6); +} + +.infotext p { + font-size: small; + margin: 5px; +} + +.wikiaction-revisions::before { + background-image: url(../report.png); /* SPRITE */ +} + +.wikiaction-pages::before { + background-image: url(../page_white_copy.png); /* SPRITE */ +} + +/* organic listing */ +@min-uncompressed-height: 82px; +@min-compressed-height: 51px; + +.organic-listing { + border: solid 1px gray; + padding: 0; + overflow: hidden; + position: relative; + margin-bottom: 7px; + + &.loading { + display: none; + } + + .link { + background-color: #F8F8F8; + padding-top: 5px; + padding-bottom: 5px; + // subtract padding from min heights + min-height: @min-uncompressed-height - 10px; + } + + body.compressed-display & .link { + padding-top: 7px; + padding-bottom: 7px; + min-height: @min-compressed-height - 14px; + } +} + +.organic-listing.show-placeholder.loading { + display: block; + height: @min-uncompressed-height; + body.compressed-display & { + height: @min-compressed-height; + } + opacity: .5; + + & .help, & .throbber { + display: none; + } +} + +.organic-listing .link, +.organic-listing .link.compressed, +.organic-listing .link.promotedlink { + padding-right: 7em; + padding-left: 2px; + margin-bottom: 0px; +} + +.organic-listing .nextprev { + margin: 0px; + position: absolute; + right: 0px; + top: 0px; + vertical-align: top; + z-index: 1; +} + +.organic-listing .nextprev .arrow, .organic-listing .nextprev .throbber { + width: 21px; + height: 21px; + margin: 5px 5px 2px 0px; +} + +.organic-listing .nextprev .throbber { + vertical-align: top; + background-position: center center; +} + +.organic-listing .nextprev .arrow { + border: solid 1px #B3B3B3; + display: inline-block; + position: relative; + /* This is a really weird value, but it needs to be low to hide text without affecting layout in IE. */ + text-indent: 50px; +} +.organic-listing .nextprev .arrow.prev { + background-image: url(../prev_organic.png); /* SPRITE */ +} +.organic-listing .nextprev .arrow.next { + background-image: url(../next_organic.png); /* SPRITE */ +} +.organic-listing .nextprev .arrow:hover { + cursor: pointer; + border: solid 1px #336699; +} +.organic-listing .nextprev .arrow:active { + top: 1px; +} + +.organic-listing .help { + color: #336699; + margin: 0px 5px 5px 0; + position: absolute; + right: -1px; + bottom: 0px; + z-index: 1; +} + +.link.promotedlink { + /*background-color: lightgreen; */ + border: 1px solid gray; + padding: 5px 0 5px 3px; + overflow: hidden; + position: relative; +} +.link.promotedlink.unpaid { background-color: #FFC; } +.link.promotedlink.unseen { background-color: #FFC; } +.link.promotedlink.accepted { background-color: #9F9; } +.link.promotedlink.rejected { background-color: #FF9A9A; } +.link.promotedlink.accepted { background-color: #9F9; } +.link.promotedlink.pending { background-color: #BFC; } +.link.promotedlink.promoted { background-color: #EFF7FF; } +.link.promotedlink.finished { background-color: #DDD; } +.link.promotedlink.edited_live { background-color: #FFD59A; } +#promo-form + form #img-preview-container { display: none; } + +.profile-page .link.promotedlink.saved { + background-color: white; + border: none; + + .sponsored-tagline { + display: none; + } +} + +.rejection-form textarea { + width: 40em; + height: 10em; +} + +.promoted-list { font-size: larger; } +.promoted-list .unpromote-button { display: inline } +.promoted-list .unpromote-button a { color: gray; } + + +.help-cover.promoted { + background-color: #EFF7FF; +} + +.organic-listing .promoted { + background-color: #EFF7FF; + border: none; +} + +.organic-listing .sponsored-tagline { + right: 6.8em; +} + +.sponsored-tagline { + color: #808080; + bottom: 0; + margin: 0 5px 5px 0; + position: absolute; + font-weight: bold; + right: 0; +} + +.geotarget-notice { + margin: 5px 10px; + + .md p { + font-size: smaller; + margin: 1px 0 0; + } + + div:before { + content: ""; + float: left; + height: 16px; + width: 20px; + background-repeat: no-repeat; + } + + &.city div:before { + background-image: url(../map.png); /* SPRITE */ + } + + &.country div:before { + background-image: url(../world.png); /* SPRITE */ + } +} + +.promote-pixel { + position: absolute; + top: -1000px; + right: -1000px; +} + +.organic-help-button { padding: 0 .5ex; } + +.menuarea { + border-bottom: 1px dotted gray; + padding: 5px 10px; + margin: 5px; + overflow: hidden; + font-size: larger; +} + +.menuarea .spacer {display: inline; margin-right: 15px} + +.panestack-title { + margin: 10px 310px 0px 10px; + padding-bottom: 3px; + border-bottom: 1px dotted gray; +} + +.panestack-title .title { + font-size: 16px; + font-weight: normal; + margin: 10px 0; +} + +.panestack-title a.title-button { + font-size: 12px; + margin-left: 8px; +} + +.panestack-title a.title-button.gold { + background-color: #fff088; + color: #6a4d00; + border: 1px solid #9a7d2e; + padding: 1px 5px; + border-radius: 3px; +} + +.commentarea .menuarea { + border: none; + margin: 0 310px 10px 10px; + padding: 0; + color: gray; + + form.toggle { margin-left: 8px; } +} + +.commentarea .menuarea .toggle { + display: inline-block; +} + +.commentarea .menuarea .toggle a { + color: gray; + font-weight: bold; + font-size: x-small; +} + +.commentarea > .usertext { + margin: 0 0 10px 10px; + overflow: auto; +} + +.infobar.red { + padding: 5px; + background-color: #FFAEAE; + border-color: red; +} + +.infobar.red img { + float: left; + margin-right: 5px; +} + + +.infobar.mellow { + background-color: #eff8ff; + border: 1px solid #93abc2; +} + +.infobar.gold { + background-color: #fffdcc; + border: 1px solid #e1b000; + color: #9a7d2e; +} + +.content .infobar.gold:before { + margin-top: 5px; + margin-right: 7px; +} + +.infobar.welcome { + display: none; + background: url(../welcome-lines.png) top center; + border: 1px solid #ff8b60; + padding: 0; + height: 80px; + overflow: hidden; + margin-right: 0; /* work around safari 5 width issue */ + white-space: nowrap; +} + +.infobar.welcome h1, .infobar.welcome h2 { + display: inline-block; + font-weight: normal; + margin: 0; +} + +.infobar.welcome h1 { + margin-top: 14px; + margin-left: 2%; + padding: 7px 16px; + font-size: 16px; + background: white; + border-bottom: 2px solid #5f99cf; +} + +.infobar.welcome .button-row { + position: relative; + top: -8px; + margin-left: 10%; +} + +.infobar.welcome h2 { + padding: 4px 14px; + padding-left: 38px; + background: white url(../welcome-upvote.png) 12px center no-repeat; + font-size: 13px; + color: #222; + border-bottom: 2px solid #ff4500; +} + +.infobar.welcome a { + margin-left: 2%; + background: #e75018; + font-size: 11px; + font-weight: bold; + color: white; + padding: 5px 10px; + border-radius: 4px; + border-bottom: 2px solid #a73a11; +} + +.infobar.welcome a:hover { + background: #f0571e; + border-bottom-color: #c74514; +} + +.infobar.welcome a:active { + position: relative; + top: 1px; + background: #df531f; + border-bottom: 1px solid #a73a11; +} + +.infobar.newsletterbar { + .box-sizing(border-box); + position: relative; + overflow: hidden; + min-height: 80px; + padding: 15px 20px 20px 25px; + border: none; + border-radius: 2px; + background-color: #30659B; + + header { + float: left; + height: 45px; + width: 325px; + } + + a.newsletter-close { + position: absolute; + right: 3px; + top: 0; + font-size: 11px; + color: #CCC; + } + + form { + margin: 2px 150px 0 340px; + max-width: 400px; + min-width: 150px; + line-height: 45px; + white-space: nowrap; + } + + .subscribe-thanks { + display: none; + } + + &.success { + header { + padding-left: 65px; + + &:before { + content: "✓"; + color: #80d654; + font-weight: bold; + font-size: 60px; + position: absolute; + top: 0; + left: 15px; + } + } + + .subscribe-callout { + display: none; + } + + .subscribe-thanks { + display: block; + } + } + + h1 { + margin: 0; + + a:hover { + border-bottom: 1px dotted #999; + } + } + + h2 { + color: white; + font-weight: normal; + font-size: 14px; + margin-top: 5px; + } + + .c-form-group { + width: 100%; + } + + .c-form-control-feedback-wrapper { + top: 5px; + } + + button { + .button-size(@padding-base-vertical; @padding-base-horizontal; 12px; 20px; 3px); + margin-left: 10px; + } + + @media screen and (max-width: @screen-md-min) { + header { + float: none; + } + + form { + margin: 10px 0 0; + } + + .c-form-group { + max-width: 50%; + } + } +} + +.locationbar { + margin: 5px; + + .md, .md p, .options { + color: #888888; + font-weight: bold; + font-size: 11px; + display: inline; + } + + .options { + margin-left: 15px; + } +} + +/*top link*/ +a.star { text-decoration: none; color: #ff8b60 } + +.odd { } +.even { } + +/* buttons on main link style */ +.entry .buttons li { + display: inline-block; + border: none; + padding-right: 4px; + line-height: 1.6em; +} +.entry .buttons li + li { + padding-left: 4px; +} + +.entry .buttons li.stamp + li.stamp { + margin-left: 4px; +} + +.entry .buttons li a { + color: #888; + font-weight: bold; + padding: 0 1px; +} + +.entry .buttons li a.nonbutton { + color: #369; + font-weight: normal; +} + +.entry .buttons a:hover {text-decoration: underline} + +.entry .buttons .status-msg { + display: none; + margin-right: .5em; +} + +/* links */ + +.toggle .error { font-size: x-small; } +.toggle .option { display: none; } +.toggle .option.active { display: inline; } + +.thing .stub { display: none; } +.link.last-clicked { border: 1px dashed gray; overflow: hidden; } + +.link { margin: 0; margin-bottom: 8px; padding-left: 3px; } +.link .score {text-align: center; color: #c6c6c6;} +.link .title {font-size:medium; font-weight: normal; margin-bottom: 1px;} + +.link .child h3 { + margin: 15px; + text-transform: none; + font-size: medium; +} + +.rank { overflow: hidden } + +.profile-page .link .rank, .single-page .link .rank { display: none; } + +.link .midcol {font-weight: bold; font-size: small;} + +.link .score.likes { color: #FF8B60; } +.link .score.dislikes { color: #9494FF; } +.link .rank { + float:left; + margin-top: 15px; + color: #c6c6c6; + font-family: arial; + font-size: medium; + text-align: right; +} + +.rank-spacer { + font-size: medium; +} + +.midcol-spacer { + font-size: small; +} + +.link.compressed { margin-bottom: 5px; } +.link.compressed .rank { margin-top: 10px; } +.link.compressed .title { margin: -2px 0 3px } +.link.compressed .score { color: #888888 } +.link.compressed .score-placeholder { height: 3px } +.link.compressed .subreddit { font-weight: bold } +.link.compressed .tagline { display: inline; margin-right: 12px } +.link.compressed .expando-button { display: none; } + +/* display the right score based on whether they've voted */ +.score.likes, .score.dislikes {display: none;} +.likes .score, .dislikes .score {display: none;} +.likes .score.likes {display: inline;} +.dislikes .score.dislikes {display: inline;} +.likes div.score.likes {display: block;} +.dislikes div.score.dislikes {display: block;} + +.warm-entry .rank { color: #EDA179; } +.hot-entry .rank { color: #E47234; } +.cool-entry .rank { color: #A5ABFB; } +.cold-entry .rank { color: #4959F7; } + +/* recently viewed links */ + +.gadget { + font-size: x-small; + + .midcol { + width: 15px; + margin: 0; + } + + .reddit-link-end { + clear: left; + padding-top: 10px; + } + + .click-gadget { + font-size: small; + } + + small { + color: gray; + } + + .reddit-entry { + margin-left: 20px; + } + + .right { + text-align: right; + } + + .stamp:first-child { + margin-left: 0; + } + + .score { + margin-left: 0.5em; + } +} + +.quarantine-tool.noncollapsed { + .quarantine-info { + display: block; + } +} + +.quarantine-tool.collapsed { + .quarantine-info { + display: none; + } +} + +/* comments */ + +.comment, .content .details { margin-left: 10px; } + +.comment.noncollapsed { + .numchildren { + display: none; + } + + .usertext, .child, .buttons { + display: block; + } + + .midcol { + visibility: visible; + } +} + +body.show-controversial .comment.controversial > .entry .score:after { + content: '†'; + position: relative; + top: -2px; +} + +.comment.collapsed { + padding-bottom: 10px; + line-height: 14px; + + .numchildren { + display: inline; + } + + .usertext, .child, .buttons { + display: none; + } + + .midcol { + visibility: hidden; + height: 1px; + } + + .tagline, .tagline a { + color: gray; + + :not(.expand) { + font-style: italic; + } + } + + &.collapsed-for-reason { + .collapsed-reason { + display: inline; + } + + .score, .live-timestamp { + display: none; + } + } +} + +.admin_takedown { + background-color: #F7F7F7; + color: #888888; + padding: 3px; + + a:link { + color: #326699; + } +} + +.comment { + .midcol { + margin-left: 0px; + width: 15px; + } + + .title { + font-size: small; + margin-top: 10px; + } + + .author { + font-weight: bold; + } + + .expand { + margin-right: 3px; + padding: 1px; + } + + .child, .showreplies { + margin-top: 10px; + margin-left: 15px; + border-left: 1px dotted #DDF; + } + + &.collapsed-for-reason { + .collapsed-reason { + display: none; + } + } +} + +.comment.deleted > .midcol { + visibility: hidden; +} + +.comment .showreplies { + display: block; + margin-top: 7px; + margin-bottom: 15px; + padding: 5px; +} + +textarea.gray { color: gray; } + +.deepthread:after { + background-image: url(../continue-thread.png); /* SPRITE */ + content: " "; + display: inline-block; + width: 25px; + height: 9px; + margin: 5px 0 0 5px; +} + +.deepthread a { font-size: larger; color: #336699 } +.deepthread a:hover { text-decoration: underline} + +.morecomments {font-size: larger} +.morecomments a { color: #336699 } +.morecomments a:hover { text-decoration: underline} +.morecomments .gray {font-weight: normal; color: gray} + +.expand-btn { + font-size: smaller; + margin: 0px 5px; + margin-top: 4px; + display: inline-block; +} + +.message.noncollapsed { + .numchildren { + display: none; + } + + .child, .buttons, .md { + display: block; + } + + .midcol { + visibility: visible; + } +} + +.message.collapsed { + > .entry { + .buttons, .md { + display: none; + } + } + + &.threaded { + .tagline, .tagline a { + color: gray; + + :not(.expand) { + font-style: italic; + } + } + + .child { + display: none; + } + } + + .midcol { + visibility: hidden; + height: 20px; + } +} + +.message { + margin: 10px 10px 20px 5px; + padding-left: 5px; + margin:10px 10px 20px 5px; + padding:7px; +} + +.message .collapsed .head { + color: #888888; + font-style: italic; +} + + +.message .tagline { + color: #485; +} + +.message.message-parent > .entry, +.message.message-reply > .entry { + color: #485; + + .md, + blockquote, + del { + color: inherit; + } +} + +.message.recipient > .entry { + color: black; +} + +.message.message-reply.recipient > .entry .head, +.message.message-parent.recipient > .entry .head { + color: black; + font-weight: bold; +} + +.message.color-bar { + border-left: 5px solid transparent; +} + +.message { + .recipient a.author, .sender a.author, .subreddit { + font-weight: bold; + } +} + +.message.new > .entry .head { + color:orangered; font-weight: bold; +} +.message.new > .entry{ + background-color:#F7F7F7; + border:1px solid #E9E9E9; + padding: 6px; +} + +.message.new .unread { + display: none; +} + + +.message.threaded .child { + margin-left: 20px; + border-left: 2px dashed #E7E7E7; +} + +// message-reply and message-parent classes are only present in tree view +.message.message-reply, .message.message-parent { + &:not(.threaded) .entry { + margin-left: 10px; + border-left: 2px dashed #E7E7E7; + } +} + +.message .child .message, +.message .child .usertext { + margin-top: 10px; + margin-left: 12px; +} + +.message.was-comment .child .message, +.message.was-comment .child .usertext { + margin-top: 0px; + margin-left: 0px; +} + +.message .expand { + margin-right: 3px; + display: none; +} + +.message .entry { + margin-left: 0px; +} + +.message.message-parent .expand { + display: inline; +} + +/* threaded message styles: remove padding */ +.message.message-parent .child .message, +.message.message-reply .child .message + { + margin: 0; + padding: 0; +} + +.message.message-parent .subject { + margin-bottom: 10px; +} + +.message.message-parent .message .subject { + display: none; +} + +.message.message-reply .subject { + display:none; +} + +.message.message-reply .entry, +.message.message-parent .entry { + padding-left: 10px; + padding-bottom: 10px; +} + + +.message .buttons, +.message .md { margin-left: 15px; } +.message .entry .parent { + border: 1px solid #336699; + max-width: 60em; + margin: 3px 10px; +} + +.message .subject .correspondent { + background-color:#EFF7FF; + border:1px solid #336699; + color:#336699; + display:inline-block; + margin-right:10px; + padding:2px 5px; +} + +.message .subject .reddit .marker-dot { + border-radius: 50%; + width: 12px; + height: 12px; + float: left; + margin-top: 2px; + margin-right: 5px; +} + +.message .subject .title { + font-weight: normal; + font-style: italic; + margin-left: 10px; +} +.message .parent-link { + margin-left: 12px; + padding: 0 2px; + font-weight: bold; +} + +.message.was-comment .midcol { margin-left: 0px; } + +.message.was-comment .buttons, +.message.was-comment .parent-link { + margin-left: 0px; } + +.message.was-comment .md { + margin-left: 2px; + } + + +.message .subject { font-weight: bold; font-size: larger; } + +.message.gold { + font-family: "Bitstream Charter", "Hoefler Text", "Palatino Linotype", + "Book Antiqua", Palatino, georgia, garamond, FreeSerif, serif; + background: url(../gold/tikkit-bg.png); + max-width: 80em; + text-align: center; + padding: 20px; + border-radius: 4px; + border: 1px solid #555; + + .insignia { + float: left; + margin: 6em 20px 0 20px; + } + + .subject { + font-size: 2.6em; + line-height: 1.5em; + text-shadow: -1px -1px 0px rgba(255, 255, 255, 0.8); + } + + .tagline, .correspondent, .expand-btn, .unread-button, .block-button, .report-button, ul.buttons li.first { + display: none; + } + + .entry { + margin: 0; + border: 0; + } + + .md { + margin: 0; + margin-bottom: 10px; + padding: 15px; + max-width: 100%; + text-shadow: 0 0 2px #fff; + border: 0 dashed #000; + border-width: 1px 0; + } + + .md blockquote { + border: 0; + font-size: 0.7em; + font-style: italic; + } + + .md p { + font-size: 1.2em; + line-height: 1.4em; + } + + .usertext-edit { + margin: 0 auto; + } + + .usertext-buttons { + text-align: left; + } + + ul.buttons li a { + font-size: 2em; + text-shadow: 0 0 3px #fff; + color: #7a5d0e; + } + + ul.buttons, ul.buttons li { + margin: 0; + padding: 0; + } + + &.new > .entry { + background-color: transparent; + border: 0; + padding: 0; + } +} + +.message.gold-auto { + blockquote { + background-color: #fafafa; + border: 0; + padding: 4px; + margin-left: 0; + margin-top: 1em; + font-style: italic; + font-size: 0.8em; + color: #808080; + + p { margin: 2px; } + strong { font-style: inherit; } + } +} + +.clippy img { + float: left; +} + +.clippy-bubble { + background-color:#fffdd7; + border: solid black 1px; + width: 350px; + border-radius: 5px; + margin-left: 5px; + margin-bottom: 15px; + padding: 7px; + float: left; +} + +.clippy-headline { + font-weight:bold; + margin-bottom: 0.5em; +} + +.clippy-bubble ul { + list-style-type: disc; + list-style-image: url(../clippy-bullet.png); + padding-left: 15px; +} + +.clippy-bubble li { + margin-top: 0.5em; +} + +.subreddit { margin-bottom: 10px; } +.subreddit p { margin-top: 0px; margin-bottom: 1px; } +.subreddit .description {font-size: small; max-width: 60em;} +.subreddit .key {display: block;} +.subreddit .title { font-size: medium; margin-right: 5px; } +.subreddit .midcol { margin-right: 5px; margin-top: 5px; text-align: right; width: 12em !important; } + +.fancy-toggle-button { + display: block; + margin-bottom: 5px; +} +.fancy-toggle-button .active { + border: 1px solid #444; + padding: 1px 6px; + background: white none repeat-x scroll center left; + + color: white; + font-size: 10px; + font-weight: bold; + + line-height: 20px; + border-radius: 3px; +} + +.fancy-toggle-button .remove { + background-image: url(../bg-button-remove.png); /* SPRITE stretch-x */ +} +.fancy-toggle-button .add { + background-image: url(../bg-button-add.png); /* SPRITE stretch-x */ +} +.fancy-toggle-button .banned { + background-color: #666; + padding: 1px 1.9em; +} + + + +.commentbody.border { background-color: #ffc; padding-left: 5px} +.commentbody.grayed { + color: gray; + background-color: #E0E0E0; + padding-left: 5px; +} + +.fixedwidth { float: left; width: 100px; height: 0px; } +.clearleft { clear: left; height: 0px; } +.clear { clear: both; } + +.sharetable.preftable {margin-left: 20px; } +.sharetable.preftable th { padding-bottom: 5px; padding-top: 5px; } +.sharetable.preftable button { margin-top: 10px } + +.preftable.widget-preview { font-size:smaller; } +.preftable.widget-preview input[type="text"] { width: 150px; } +.preftable #css-options input[type="text"] { margin-left: 0px; width: 6em; } + +.share-summary { width: 95%; margin-top: 10px; } +.share-summary .head td { width: 50%; font-size: large; text-align: center } +.share-summary td { vertical-align: top;} +.share-summary > tbody > tr > td { + padding-left: 10px; + padding-bottom: 10px; +} +.share-summary th { padding: 5px; border-bottom: 1px solid #000; } + +.sponsored .entry { margin-right: 20px;} + +.sponsored .titlerow { background: #fcfcfc; + padding: 10px; + border-top: #BCBCBC solid 1px; + border-left: #BCBCBC solid 1px; + border-bottom: #E0E0E0 solid 1px; + border-right: #E0E0E0 solid 1px; +} + +/* footer */ +.footer-parent { + font-size: larger; + padding-top: 40px; + clear: both; + text-align: center; +} + +.footer { + color: gray; + padding: 5px; + margin: 15px auto; + border:1px solid #F0F0F0; + display: flex; + display: -webkit-flex; + max-width: 600px; +} + +.footer .col { + display: inline-block; + vertical-align: top; + -webkit-flex: 0 0 25%; + flex: 0 0 25%; + margin: 10px 0; + padding: 0 15px; + border-left: 1px solid #E0E0E0; + box-sizing: border-box; + } + +.footer .col:first-child {border: none;} + +.notes-button { + margin-top: 3px; +} + +.notes-status { + font-size: larger; +} + +.load0 { background-color: #FFFFFF; } /* white */ +.load1 { background-color: #f0f5FF; } /* pale blue */ +.load2 { background-color: #E2ECFF; } /* blue */ +.load3 { background-color: #d6f5cb; } /* pale green */ +.load4 { background-color: #CAFF98; } /* green */ +.load5 { background-color: #e4f484; } /* yellowgreen */ +.load6 { background-color: #FFEA71; } /* orange */ +.load7 { background-color: #ffdb81; } /* orangerose */ +.load8 { background-color: #FF9191; } /* pink */ +.load9 { background-color: #FF0000; color: #FFFFFF } /* red */ + +/* login form */ + +.orangered { color: orangered; } + +.logout { display: inline; } +.login-form-side { + border: 1px solid gray; +} + +.login-form-side input[type=text], +.login-form-side input[type=password] { + font-family: verdana; /* Override Chrome's defaults. */ + font-size: 11px; + .box-sizing(border-box); + border: 1px solid #999; + width: 141px; + margin: 5px 0px 0px 5px; + top: 5px; + padding: 6px; + } + +.login-form-side input[type=password] { + width: 142px; +} + +.login-form-side #remember-me, +.login-form-side .submit { + margin: 4px; +} + +.login-form-side .submit input[type=button] { + margin:1px; +} + +.login-form-side #remember-me { + float: left; + line-height: 24px; + margin-left: 5px; +} + +.login-form-side #remember-me * { + vertical-align:middle; +} + +/*the checkbox*/ +#rem-login-main { + position: static; + height: auto; + width: auto; + border: none; + margin-right: 5px; + margin-top: 0; +} + +.login-form-side label { + padding: 2px 0 2px 0; + margin-right: 5px; + white-space: nowrap; +} + +.login-form-side .recover-password { + margin-left: 1em; +} + +.login-form-side .status { display:none; } + +.login-form-side .submit { + float: right; +} + +.login-form-side .submit *, .user-form .submit * { + vertical-align: middle; +} + +.throbber { + display: none; + margin: 0 2px; + background: url(../throbber.gif) no-repeat; + width: 18px; + height: 18px; +} +.working .throbber { display: inline-block; } + +.working { + [type="submit"] { + cursor: not-allowed; + .opacity(.65); + pointer-events: none; + } +} + +.sr_style_toggle .throbber { + position: absolute; + margin-top: -2px; + margin-left: 4px; +} + +.status { margin: 5px 0 0 5px; font-size: small;} +.error { color: red; font-size: small; } +.red { color:red } +.buygold { color: #9A7D2E; font-weight: bold; } +.line-through { text-decoration: line-through } + +#noresults { margin-right: 310px; } + +#ad-frame, #ad_main { + border: 0px; + overflow: hidden; + width: 300px; + height: 280px; +} + +#ad_sponsorship { + border: 0px; + overflow: hidden; + width: 300px; + height: 100px; +} + +/* newsletter standalone page */ + +body.newsletter { + background: #EEF7FF; + font-size: 12px; +} + +.newsletter-box { + .box-shadow(0 3px 10px 4px rgba(0,0,0,0.1)); + margin: 10% auto; + background-color: white; + width: 90%; + max-width: 600px; + border-radius: 4px; + padding: 40px; + + h1 { + margin: 0; + min-height: 50px; + font-size: 15px; + } + + .upvoted-weekly-logo { + display: block; + margin-top: 15px; + min-height: 53px; + background: transparent url(../upvoted-weekly-logo.svg) 0 0 no-repeat; + background-size: contain; + } + + .subscribe-thanks { + display: none; + } + + &.success { + &:before { + content: "✓"; + display: block; + text-align: center; + color: #80d654; + font-weight: bold; + font-size: 60px; + line-height: 1; + } + + .result-message { + display: block; + margin: 0 auto; + text-align: center; + } + + .subscribe-callout { + display: none; + } + + .subscribe-thanks { + display: block; + text-align: center; + margin-top: 25px; + } + + form { + display: none; + } + } + + .result-message { + margin-top: 21px; + line-height: 1.5; + font-size: 14px; + max-width: 400px; + color: @color-text-grey; + font-weight: normal; + } + + form { + margin-top: 40px; + text-align: right; + } + + .c-form-group { + width: 50%; + } + + button { + .button-size(@padding-base-vertical; @padding-base-horizontal; 12px; 20px; 3px); + margin-left: 10px; + } + + .faq-toggle { + position: absolute; + margin-top: -13px; + min-width: 100px; + font-size: 11px; + font-weight: bold; + color: #79a6d2; + + &:after { + content: "▾"; + display: inline-block; + height: 15px; + width: 15px; + text-align: center; + position: absolute; + } + + &.active:after { + .transform(rotate(180deg)); + } + } + + .faq { + display: none; + + h3 { + margin-top: 1.5em; + } + } +} + +.upvoted-gradient { + position: fixed; + bottom: 0; + width: 100%; + height: 25%; + background: transparent url(../upvoted-arrow-bg.png); + z-index: -1; + + &:after { + content: ""; + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + .linear-gradient(#EEF7FF, rgba(255,255,255,0)); + } +} + +@media screen and (max-width: @screen-md-min) { + .newsletter-box { + position: static; + .transform(none); + margin: 10px auto; + padding: 15px; + max-width: 85%; + + h1, p { + font-size: 13px; + } + + .faq-toggle { + position: static; + display: block; + margin-top: 20px; + font-size: 13px; + } + } + + .upvoted-gradient { + display: none; + } +} + +/* search */ + +#searchmenu { margin: 10px 0 0px 0; padding: 2px 0 0 0; + border-bottom: 2px solid #369; + background-color: whitesmoke} + +#searchmenu .searchlabel { background-color: white; + padding: 2px 15px 0px 0px; + font-weight: bold; color: #369 } + +#searchmenu .searchtime { + font-weight: bold; + display: inline; + width: 305px; +} + +#searchexpando { + display: none; + margin: 5px 0 0 0; + padding-top: 10px; + border-radius: 3px; +} + +#searchexpando input, #searchexpando p { + margin-bottom: 10px; +} + +#searchexpando dl { + margin: 10px 0; +} + +#searchexpando dt { + margin: 0; +} + +#previoussearch p { + margin: 5px 0; +} + +#previoussearch label { + display: block; + margin: 5px 0; +} + +#moresearchinfo { + display: none; + padding-top: 5px; + max-width: 300px; + border: 0 solid orange; + margin-top: -5px; +} + +label + #moresearchinfo { + border-width: 1px 0 0 0; + margin-top: 0px; +} + +#previoussearch #moresearchinfo { + border-color: gray; + margin: 5px 0; +} + +#search_hidemore { + float: right; + margin-left: 5px; +} + +.searchparams { margin: 5px 20px 5px 20px +} +.searchparams .labels {text-align: right; + margin-left: 10px; } + + +.searchpane { + margin: 5px 305px 5px 0px; + padding-left: 96px; + background: #E0E0E0 url(../search-large.png) 26px center no-repeat; +} + +.search-summary { + float: right; + text-align: right; + margin: 6px 8px 0 0; +} + +.search-summary .result-count { + font-weight: bold; +} + +.searchfail { + color: #c00000; + font-size: larger; + line-height: 2em; +} + +.searchfail a { + color: red; + text-decoration: underline; +} + +#search { + /* Allow the search icon to be on the same line as the search box. */ + white-space: nowrap; +} + +#searchexpando, #moresearchinfo { + white-space: normal; +} + +#search input[type=text] { + border: 1px solid gray; + font-size: 13px; + font-family: verdana; /* Override Chrome's defaults. */ + width: 300px; + .box-sizing(border-box); + padding: 6px; + padding-right: 25px; /* 13px image + 6px right margin + 6px left margin */ + padding-left: 9px; + vertical-align: middle; +} + +#search input[type=submit] { + background-color: transparent; + background-image: url(../search.png); /* SPRITE */ + background-repeat: no-repeat; + height: 13px; + width: 13px; + .box-sizing(border-box); + border: none; + margin: 0; + margin-left: -22px; /* 13px image + 6px margin + 3px visual adjustment */ + vertical-align: middle; +} + +#search input[type=submit]:hover { + background-image: url(../search-mouseover.png); /* SPRITE */ +} + +@media +(-webkit-min-device-pixel-ratio: 2), +(min-resolution: 192dpi) { + #search input[type=submit] { + background-image: data-uri('../search-x2.png'); + background-size: 13px 13px; + background-position: 0 0; + } + + #search input[type=submit]:hover { + background-image: data-uri('../search-mouseover-x2.png'); + background-position: 0 0; + } +} + +/* login, register */ + + + +.legal {color: #808080; font-family: serif; font-size: small; margin-top: 20px; } +.legal a {text-decoration: underline} + +.divide { border-right: 2px solid #D3D3D3; margin-right: -2px; } + +.login-form-section { + position: relative; + float: left; + overflow: hidden; + padding-left: 2%; + padding-right: 2%; + + &.register { + width: 56%; + } + + &.login { + width: 36%; + } +} + +.login-form-section > h3 { + margin-bottom: 0; + margin-top: 10px; + font-size: large; + font-weight: bold; + font-variant: small-caps; + color: #404040; +} +.login-form-section p { + text-align: left; + margin-bottom: 10px; + color: #606060; + margin-bottom: 20px; +} + +.login-form-section.register .registration-info { + position: absolute; + left: 53%; + width: 40%; + min-width: 20em; + margin-top: 1.25em; + color: #777; + + .md { + font-size: 1.1em; + + li { + list-style-type: disc; + margin-bottom: .5em; + } + } +} + +.user-form label { + display: block; + font-weight: bold; + color: #606060; +} + +.user-form label.note { + font-weight: normal; +} + +.user-form .error { + display: inline-block; + margin-top: 2px; + line-height: 16px; + color: inherit; + font-size: inherit; +} + +/* Form-level errors. */ +.user-form .error.field-ratelimit, +.user-form .error.field-vdelay { + display: block; +} + +.user-form .remember { + display: inline; + margin-left: 2px; + text-transform: lowercase; +} + +.user-form input[type=checkbox] { + vertical-align: bottom; +} + +.user-form ul { margin: 7px; } +.user-form li { margin-top: 5px; } +.user-form p .btn { margin-top: 5px } +.user-form input.logtxt { width: 125px; } + +.user-form input[type=text], +.user-form input[type=password], +.user-form input[type=email] { + width: 125px; + border: 1px solid #A0A0A0; + margin-top: 2px; + margin-bottom: 2px; + margin-right: 10px; + padding: 1px; +} + +.user-form #captcha { + width: 250px; + } + +.user-form .submit { + margin-top: 10px; +} + +#passform h1 {margin-bottom: 0px} +#passform p {margin-bottom: 5px; font-size: small} + +.register-form .name-entry * { + vertical-align: middle; +} + +.notice-taken, .notice-available { + display: none; + line-height: 16px; +} + +.register-form.name-taken .notice-taken, .register-form.name-available .notice-available { + display: inline-block; + margin-top: 2px; +} + +.register-form .name-entry .throbber { + display: none; + margin-left: 5px; +} + +.register-form.name-checking { + .name-entry .throbber { + display: inline-block; + margin-left: -1px; + margin-top: 2px; + } +} + +.login-page { + #login { + margin-right: 300px; + } + + @media (max-width: @screen-sm-min) { + #login { + margin-right: 0; + } + + .side { + display: none; + } + } +} + +#cover-msg { + line-height: normal; + margin: 0 0 50px; +} + +#login { + .modal-title { + margin: 0 0 25px; + } + + .c-alert { + display: none; + font-size: 11px; + } + + @media (max-width: @screen-xs-min) { + + .c-btn { + display: block; + width: 100%; + } + + } +} + +.login-disclaimer { + color: #6a6a6a; +} + +.split-panel { + .clearfix(); + margin-bottom: 49px; + + .split-panel-section-responsive(@panel-break-point: @screen-sm-min;) { + float: none; + width: 100%; + + &:first-child { + padding-right: 0; + } + + &:last-child { + padding-left: 0; + } + + &.split-panel-divider { + &:first-child { + border: 0; + border-bottom: 1px solid #e0e0e0; + padding-bottom: 60px; + margin-bottom: 60px; + } + + &:last-child { + border: 0; + border-top: 1px solid #e0e0e0; + padding-top: 60px; + margin-top: 60px; + } + } + + @media (min-width: @panel-break-point) { + float: left; + width: 50%; + + &:first-child { + padding-right: 60px; + } + + &:last-child { + padding-left: 60px; + } + + &.split-panel-divider { + &:first-child { + border: 0; + border-right: 1px solid #e0e0e0; + margin-bottom: 0; + padding-bottom: 0; + } + + &:last-child { + border: 0; + border-left: 1px solid #e0e0e0; + margin-top: 0; + padding-top: 0; + } + } + } + } + + .split-panel-section { + .box-sizing(border-box); + .split-panel-section-responsive(); + + .login-page & { + .split-panel-section-responsive(@screen-md-min); + } + } +} + +.content > #login { + > .split-panel { + padding-left: 60px; + padding-right: 60px; + padding-top: 60px; + } + + > p { + margin-left: 60px; + margin-right: 60px; + } +} + +.popup h1 { + font-size: large; + font-weight: normal; + margin-left: 1em; +} + +.popup h2 { + text-align: center; + font-size: small; + margin-top: 0px; + color: black; + font-weight: normal; +} + +.usertable { margin-left: 10px;} +.usertable { font-size: larger } +.usertable td, .usertable th { padding: 0 .7em } +.usertable { white-space: nowrap } + +.usertable > .toggle { + display: inline-block; + margin: 1em 0 .5em; + padding: 11px 15px; + border: 1px solid #bbb; + border-radius: 2px; + background: #fdffe8; +} + +.usertable > .toggle .option.main:before { + margin-right: 7px; +} + +.usertable > .toggle .option { + display: inline; +} + +.usertable > .toggle .togglebutton, .usertable > .toggle .error { + display: none; + font-size: inherit; + border-left: 1px solid #bbb; + padding: 4px 15px; + padding-right: 0; + margin-left: 10px; +} + +.usertable > .toggle .active .togglebutton { + display: inline; +} + +.usertable > .toggle .error.active { + display: inline; +} + +.usertable tr:hover { + background-color: #e5efff; +} + +.usertable tr.banned-user, +.usertable tr.banned-user a, +.usertable tr.banned-user .user { + color: red; +} + +.aboutpage { margin-right: 320px; } +.aboutpage p { margin: 5px; } +.aboutpage h1, .aboutpage h2 { margin: 10px;} + +.aboutpage .usertable { width: 45%; } + +.little a { font-size: x-small; } + +.oldbylink a { background-color: #F0F0F0; margin: 2px; color: gray} + +.error-log { + clear: both; +} + +.error-log a:hover { text-decoration: underline } + +.error-log .rest { + display: none; +} + +.error-log:first-child .rest { + display: block; +} + +.error-log, .error-log .exception { + border: solid #aaa 1px; + padding: 3px 5px; + margin-bottom: 10px; +} + +.error-log .exception { + background-color: #f0f0f8; +} + +.error-log .exception.new { + border: dashed #ff6600 2px; +} + +.error-log .exception.severe { + border: solid #ff0000 2px; + background-color: #ffdfdf; +} + +.error-log .exception.interesting { + border: dotted black 2px; + background-color: #e0e0e8; +} + +.error-log .exception.fixed { + border: solid #008800 1px; + background-color: #e8f6e8; +} + +.error-log .exception span { + font-weight: bold; + margin-right: 5px; +} + +.error-log .exception span.normal { + margin-right: 0; + display: none; +} + +.error-log .exception span.new, .error-log .edit-area label.new { + color: #ff6600; +} + +.error-log .exception span.severe, .error-log .edit-area label.severe { + color: #ff0000; +} + +.error-log .exception span.interesting, .error-log .edit-area label.interesting { + font-weight: normal; + font-style: italic; +} + +.error-log .exception span.fixed, .error-log .edit-area label.fixed { + color: #008800; +} + +.error-log .exception-name { + margin-right: 5px; + display: inline-block; + max-height: 50px; + overflow: hidden; +} + +.error-log .nickname { + color: black; + font-weight: bold; + font-size: larger; +} + +.error-log .exception.fixed .nickname { + text-decoration: line-through; +} + +.error-log a:focus { + -moz-outline-style: none; +} + +.error-log .edit-area { + border: solid black 1px; + background-color: #eee; +} + +.error-log .edit-area label { + margin-right: 25px; +} + +.error-log .edit-area input[type=radio] { + margin-right: 4px; +} + +.error-log .edit-area input[type=text] { + width: 800px; +} + +.error-log .edit-area table td, .error-log .edit-area table th { + padding: 5px 0 0 5px; +} + +.error-log .save-button { + margin: 0 5px 5px 0; + font-size: small; + padding: 0; +} + +.error-log .date { + font-size: 150%; + font-weight: bold; +} + +.error-log .hexkey { + color: #997700; +} + +.error-log .exception-name { + font-size: larger; + color: #000077; +} + +.error-log .frequency { + font-size: larger; + float: right; + color: #886666; +} + +.error-log .occurrences { + border: solid #003300 1px; + margin: 5px 0 2px; + padding: 2px; +} + +.error-log .occurrence { + color: #003300; + font-family: monospace; + margin-right: 3em; + white-space: nowrap; +} + +.error-log table.stacktrace th, .error-log table.stacktrace td { + border: solid 1px #aaa; +} + +.error-log table.stacktrace td { + font-family: monospace; +} + +.error-log table.stacktrace td.col-1 { + text-align: right; + padding-right: 10px; +} + +.error-log .logtext.error { + color: black; + margin: 0 0 10px 0; +} + +.error-log .logtext { + margin-bottom: 10px; + border: solid #555 2px; + background-color: #eeece6; + padding: 5px; + font-size: small; +} + +.error-log .logtext * { + color: black; +} + +.error-log .logtext.error .loglevel { + color: white; + background-color: red; +} + +.error-log .logtext.warning .loglevel { + background-color: #ff6600; +} + +.error-log .logtext.info .loglevel { + background-color: #00bbff; +} + +.error-log .logtext.debug .loglevel { + background-color: #00ee00; +} + +.error-log .logtext .loglevel { + padding: 0 5px; + margin-right: 5px; + border: solid black 1px; +} +.error-log .logtext table { + margin: 8px 5px 2px 0; + font-family: monospace; +} + +.error-log .logtext table, +.error-log .logtext table th, +.error-log .logtext table td { + border: solid #aaa 1px; +} +.error-log .logtext table th, .error-log .logtext table td { + border: solid #aaa 1px; +} + +.error-log .logtext table .occ { + text-align: right; +} + +.error-log .logtext table .dotdotdot { + padding: 0; +} +.error-log .logtext table .dotdotdot a { + margin: 0; + display: block; + width: 100%; + height: 100%; + background-color: #e0e0e0; +} +.error-log .logtext table .dotdotdot a:hover { + background-color: #bbb; + text-decoration: none; +} + +.error-log .logtext .classification { + font-size: larger; + font-weight: bold; +} +.error-log .logtext .actual-text { + max-width: 600px; + overflow: hidden; +} +.error-log .logtext .occ { +} + +.details { + font-size: x-small; + margin-bottom: 10px; +} + +.details span { margin: 0 5px 0 5px; } +.details th { + text-align: right; + padding-right: 5px; + font-weight: bold; +} +.details td { + vertical-align: top; +} + +.ring { + font-weight:bold; + background-color:red; + color:white; + text-align:center; + padding-left: 3px; + padding-right: 4px !important; + cursor: pointer; +} + +.vote-note { + padding-left: 3px; + max-width: 150px; +} +.vote-a-notes { + color: red; +} +.vote-up { + color: orangered; +} +.vote-down { + color: #336699; +} +.vote-invalid { + color: #888888 !important; + font-style: italic; +} + +.unvotable-message { + border: solid 1px #ff6600; + margin-top: 4px; + padding: 1px 3px; + + border-radius: 3px; + + display: none; +} + +.bottommenu { color: gray; font-size: smaller; clear: both} +.bottommenu a { color: gray; text-decoration: underline; } +.bottommenu .updated { + color: green; +} + +.debuginfo { + text-align: right; + padding: 5px; + color: gray; + font-size: smaller; + clear: both; +} +.debuginfo .icon { color:#a0a0a0; font:1.5em serif; padding:0 2px; } +.debuginfo .content { display:none; } +.debuginfo:hover .content { display:inline; } + + +/* Buttons specific */ + + +.button { + border-collapse: collapse; + color: gray; + text-align: center; + margin: 1px; + color: #369; +} + +button.button[disabled] { + color: gray; +} + +.button #cover { + position: relative; + } + +.button .cover { + background: white; +} + +.button #popup { + position: absolute; + width: 80%; + z-index: 1001; + background: white; + padding: 1px; + left: 0px; + top: 0px; + margin: 0px; + border-color: #B2B2B2 black black #B2B2B2; + border-style: solid; + border-width: 1px; +} + + +.button .arrow { width: 15px; } + +.num { font-weight: bold; font-size: larger } + +.button.thing { + margin:0px; + padding:0px; +} + +.button-body { + background-color: transparent; +} +.button .blog { + border: 1px solid #c7def7; + color: gray; + text-align: center; + margin: 0px; + border-radius: 4px; + background-color:white; +} + +.button .blog .r { color: gray; } +.button .blog .score { white-space: nowrap; } + +.button a:hover { text-decoration: underline } + +.button .blog1 { font-size: x-small; } +.button .blog1 .arrow { float:left; margin-left: 2px; margin-right: 2px; } + +.button .blog1 .headimgcell { + background-color: #c7def7; + width: 18px; + float: left; +} +.button .blog1 .headimgcell a { + display: inline-block; +} +.button .blog1 .score { + float: center; + margin-top: 2px; + margin-right: 5px; +} + +.button .blog2 { font-size: small; } +.button .blog2 .arrow { width: 15px; margin-left: auto; margin-right: auto; } +.button .blog2 .bottomreddit { color: black; background-color: #c7def7; font-size: small; } +.button .blog2 .score .submit { + display: block; + font-size: x-small; + line-height: 17px; +} + +.button .blog.blog3 { + font-size: small; + border: none; + background-color: transparent; +} +.button .blog3 .left { float: left; width: 50%; } +.button .blog2 .arrow { width: 15px; margin-left: auto; margin-right: auto; } +.button .blog3 .right { float: right; margin-top: 5px; } +.button .blog3 .score .submit { + display: block; + font-size: x-small; + line-height: 17px; +} +.button .blog3 .snoo { + margin-top: -1px; +} + + +.blog5 .right { float: right; } +.blog5 .left { float: left; display:block; margin-top: 10px; } +.blog5 .clearleft { clear: left; } +.button .blog.blog5 { border: none; text-align: left; font-size: small; } +.blog5 a.bling { float:left; } +.blog5 .container { margin-left: 35px; margin-top: 2px; height: 50px;} +.blog5 ul { display: inline; } +.blog5 ul a { color: #515481; font-weight: bold; text-decoration: underline; } +.blog5 li { display: inline; padding: 1px 10px 1px 10px; } +.blog5 li.selected { + background-color: #F8F8F1; + color: #000; + border-color: #CCC; + border-style: solid solid none solid; + border-width: 1px; + +} +.blog5 .votes { + height: 25px; + background-color: #F8F8F1; + border: 1px solid #CCC; + padding-top: 5px; +} +.blog5 .arrow { + margin-right: 15px; + margin-left: 5px; + color: black; + cursor: pointer; + display: inline; + background-position: left center; + background-repeat: no-repeat; + padding-left: 20px; +} +.blog5 .votes.disabled .arrow { color: #888; } +.blog5 .arrow:hover { text-decoration: none; } +.blog5 .arrow b { font-size: larger; } +.blog5 .arrow.upmod b { color: #FF8B60; } +.blog5 .arrow.downmod b { color: #9494FF; } + +.blog5 .right { margin-right: 5px; font-size: medium; font-style: italic; } + +.optional {color: green} +.instructions { font-size: larger; } +.instructions h1, .instructions h2, .instructions h3 { margin-top: 20px; margin-bottom: 20px; } +.instructions p { margin: 10px; max-width: 60em} +.instructions pre { margin: 5px; margin-right: 10px; } +.instructions iframe { margin: 5px 10px 5px 0px; } +.instructions input, .instructions select { margin: 0 .5em } +.instructions a:focus { -moz-outline-style: none; } +.instructions strong { font-weight: bold; } +.instructions .buttons { margin-left: 1em; max-width: 50em; } +.instructions .buttons li { margin-top: 1em; + border-bottom: 1px solid #e0e0e0; + padding-bottom: 1em;} +.instructions code { + display: block; + font-family: monospace; + font-size: small; + margin: 5px; + background-color: #FF9; + padding: 10px; + max-width: 50em;} + +.self-service.instructions { + margin-bottom: 50px; + } + +.self-service.instructions p { + margin: 10px 0; +} + +.self-service.instructions ul { + list-style-type: circle; + margin-left: 60px; +} + +.self-service.instructions li + li { + padding-top: 10px; +} + +.self-service { + .ad-launch-buttons { + text-align: center; + + .button { + font-size: 22px; + padding: 10px 20px; + margin-bottom: 5px; + } + } + + .col-bottom-box { + margin-right: 20px; + } +} + +body.contact-us-page { + overflow-y: scroll; +} + +.contact-us-page .content { + width: 600px; + margin: 0px auto; +} + +.contact-us-page h1 { + font-size: xx-large; + text-align: center; + margin: 20px 0px; +} + +.contact-us-page .info { + font-size: larger; + text-align: center; + margin-bottom: 20px; +} + +.contact-us-page h2.button { + background-color: #cee2f5; + font-size: x-large; + font-weight: bold; + color: #369; + text-align: center; + border-radius: 7px; + border: 2px solid #369; + line-height: 1.5em; + margin: 0px 10px 10px 10px; +} + +.contact-us-page h2.button:hover { + background-color: #daeaf8; + cursor: pointer; +} + +.contact-us-page .details{ + margin: 0; + display: none; +} + +.contact-us-page li:target .details { + display: block; +} + +.contact-us-page .details li { + background-color: #fafafa; + font-size: small; + border: 1px solid #ccc; + margin: 0px 40px 10px 40px; + padding: 10px; + width: 500px; +} + +.contact-us-page img.space-snoo { + display: block; + margin: 50px auto 0 auto; +} + +.button-demo a.view-code, +.button-demo a.hide-code { float: right; margin-bottom: 1em; } +.button-demo a.hide-code { display: none; } +.instructions .button-demo code { display: none; } + +.button-demo.show-demo a.view-code { display: none; } +.button-demo.show-demo a.hide-code { display: inline; } +.button-demo.show-demo code { display: block; } + +#preview { float: right; width: 30em; margin: 10px; } +#preview span { color: lightgray; } +#preview #previewbox { + border-width: .2em; + border-style: dashed; + border-color: lightgray; + padding: 1em; + font-size: larger; +} + +.bookmarklet { + border: solid #888888 1px; + padding: 0px 2px; +} + +/* default form styles */ + +form .blurb { + margin-bottom: 5px; +} + +form .spacer + .spacer { + margin: 15px 0; +} + +form input[type=checkbox], +form input[type=radio] {margin: 2px .5em 0 0; } + +.pretty-form { + font-size: larger; + vertical-align: top; +} + +.pretty-form p {margin: 3px ;} +.pretty-form input[type=checkbox], +.pretty-form input[type=radio] {margin: 2px .5em 0 0; } +.pretty-form img { margin: 3px .5em} +.pretty-form input[type=text], +.pretty-form textarea, +.pretty-form input[type=password], +.pretty-form input[type=number]{ + border: 1px solid gray; + width: 300px; + padding: 2px; + + -webkit-box-shadow: inset 0px 1px 1px hsla(0,0%,0%,.3), 0px 1px 0px hsla(0,0%,100%,.6); + -moz-box-shadow: inset 0px 1px 1px hsla(0,0%,0%,.3), 0px 1px 0px hsla(0,0%,100%,.6); + box-shadow: inset 0px 1px 1px hsla(0,0%,0%,.3), 0px 1px 0px hsla(0,0%,100%,.6); +} + +.pretty-form.short-text input[type=text].number { + margin: 0 0.5em; +} + +.pretty-form.short-text input[type=text].text { + margin: 0 0.5em 0 0; + width: 10em; +} + +.pretty-form .infobar { + width: 285px; + margin: 5px; + } + +.pretty-form input[type=text], +.pretty-form input[type=file], +.pretty-form input[type=password], +.pretty-form input[type=number], +.pretty-form select, +.pretty-form b, +.pretty-form textarea, +.pretty-form button { margin: 3px 5px; } +.pretty-form th { text-align: right } +.pretty-form input[type=number] {width: 75px; } + + + +/* delete page */ +.white-field, .delete-field { + background-color: white; + padding: 10px; +} + +.delete-field td { + vertical-align: top; +} + +.pretty-form .delete-field { + background: transparent; +} + +.pretty-form .delete-field td label + label { + margin-left: 2em; +} + +#pref-deactivate textarea#deactivate-message { + font-size: smaller; + height: 5em; +} + +#pref-deactivate .md ul { + margin-top: 0; + margin-bottom: 0; +} + +#pref-deactivate .md ul li { + margin: .5em 0; +} + +#pref-deactivate .credentials input { + margin: .2em 0; +} + +#pref-deactivate .credentials .error, +#pref-deactivate .error.RATELIMIT { + margin-left: 5px; +} + +/*pref page boxes*/ +.pretty-form.short-text input[type=text], +.pretty-form.short-text textarea, +.pretty-form.short-text input[type=password] {width: 2em } + +/*submit*/ + +#url-field #suggest-title { text-align: right; } +#url-field button {margin: 10px 0 0 5px;} +#url-field .title-status { color: red; font-size: small} + +.content.submit .info-notice { + background-color: #E4F2FB; + border: 1px solid #5F99CF; + padding: 9px; + margin-bottom: 12px; + font-size: larger; +} + +.content.submit .info-notice a { + font-weight: bold; + text-decoration: underline; +} + +/*opt-out/in form*/ +.opt-form { font-size: larger } +.opt-form form { display: inline; } + +/* pref table - used for preferences and edit subreddit pages */ +.preftable th { + padding: 10px; + font-weight: bold; + vertical-align: top; + text-align: right; + white-space: nowrap; +} +.preftable th label { display: block; } +.sharetable.preftable th label { display: inline; } +.preftable th span { display: block; } + +.preftable td.prefright { + padding: 10px 0; + + h6 { + font-weight: normal; + font-style: italic; + text-transform: capitalize; + } +} + +.preferences-media { + label { + display: inline-block; + } + + label:first-letter { + text-transform: uppercase; + } +} + +.preftable select { margin: 0 .5em 0 .5em; } + +.preftable .spacer { margin-bottom: 5px; } +.preftable .note { width: 100%; vertical-align: top; padding-top: 10px; } + +.preftable .details { + font-size: smaller ; + color: gray; + margin: 0; + + &.reddit-gold{ + color: #9A7D2E; + } +} + +/* Stylesheets everywhere prefs */ +.preftable { + + @selected-theme-color: #a8c8ea; + + .reddit-themes-description { + max-width: 800px; + margin-bottom: 10px; + } + + .container.reddit-themes{ + max-width: 800px; + margin: 5px 0; + display: flex; + display: -webkit-flex; + flex-wrap: wrap; + -webkit-flex-wrap: wrap; + flex-direction: row; + -webkit-flex-direction: row; + justify-content: flex-start; + -webkit-justify-content: flex-start; + + .theme { + -webkit-flex: 1 0 250px; + flex: 1 0 250px; + padding: 7px 0 11px 0; + position: relative; + max-width: 270px; + + &.selected { + background-color: @selected-theme-color; + font-weight: normal; + } + + &.select-custom-theme { + -webkit-flex: 1 0 100%; + flex: 1 0 100%; + max-width: 100%; + width: 100%; + margin: 7px; + padding: 7px; + + input { + margin-left: 2px; + } + } + + img { + margin: 0; + } + + .theme-thumbnail { + display: block; + margin: 5px auto; + } + + .theme-container { + max-width: 240px; + margin: 0 auto; + + p { + display: inline; + } + } + + .theme-thumbnail { + margin: 5px auto; + + } + + .theme-thumbnail:hover .theme-preview { + visibility: visible; + opacity: 1; + } + + .theme-preview { + position: fixed; + top: 50%; + left: 50%; + .transform(translate(-50%, -50%)); + visibility: hidden; + opacity: 0; + z-index: 100; + .transition(opacity, 0.2s, ease, 0.3s); + .box-shadow(0 0 5px #000); + } + + .theme-preview img { + margin: 0; + display: block; + } + } + } +} + +.over18 button { margin: 0 10px 0 10px; padding: 5px} + +@color-stamp-text-dark: @color-semi-black; +@color-stamp-text-light: @color-white; +@color-nsfw-stamp: darken(@color-warning-red, 5%); +@color-quarantine: @color-yellow; +@color-private-stamp: darken(@color-orange, 10%); +@color-restricted-stamp: darken(@color-orange, 10%); +@color-archived-stamp: lighten(@color-text-grey, 15%); + +.stamp { + border-radius: 3px; + border: 1px solid; + display: inline-block; + font-size: 10px; + line-height: 14px; + padding: 0 4px; +} + +.nsfw-stamp { + color: @color-nsfw-stamp; + + acronym { + border: none; + text-decoration: none; + } +} + +.private-stamp { + color: @color-private-stamp; +} + +.restricted-stamp { + color: @color-restricted-stamp; +} + +.archived-stamp { + color: @color-archived-stamp; +} + +.quarantine-stamp { + background-color: @color-quarantine; + border-color: @color-quarantine; + color: @color-stamp-text-dark; +} + +.quarantine-notice { + .box-sizing(border-box); + background: @color-quarantine; + padding: @margin-small * 1px; + padding-top: @margin-x-small * 1px; + margin-bottom: @margin-small * 1px; + .md p { + margin-top: 0; + } +} + +.btn-quarantine { + font-weight: normal; + background-color: lighten(@color-quarantine, 13%); + text-transform: none; + width: 100%; + border: 1px solid darken(@color-quarantine, 15%); + + &:hover { + background-color: lighten(@color-quarantine, 17%); + color: @color-semi-black; + } + + &:active { + background-color: darken(@color-quarantine, 10%); + } + + &:focus { + color: @color-semi-black; + } +} + +.entry .buttons li.reported-stamp { + border: 1px solid black !important; + padding: 0 4px; + background-color: #f6e69f; +} + +.suspicious { background-color: #f6e69f } +.thing.spam { background-color: #FA8072 } + +.comment.spam > .child, .message.spam > .child { + background-color: white; +} +.comment.spam > .child { + margin-left: 0; + padding-left: 15px; +} +.message.spam > .child { + /* There's a thin pink "border" due to the parent's padding:7px, + which we could try to fix here some day. */ +} + +.thing.banned-user { + overflow: hidden; + background-color: rgba(250, 128, 114, 0.5); + + .title { + text-decoration: line-through; + } +} + +.approval-checkmark { + cursor: pointer; + height: 0.8em; + vertical-align: baseline; + margin-left: 3px; +} + +.tagline .approval-checkmark { + height: 1em; +} + +.little { font-size: smaller } +.gray { color: gray } + +/* stats page */ + +.stats { float: left; margin-right: 2em; border-collapse: collapse; font-size: larger; } +.stats td.space {width: 20px} +.stats td.sec { padding-bottom: 7px; font-size : 18px; font-weight: normal } +.stats a {color: #369} +.stats a:hover {text-decoration: underline;} +.stats td.k { color: gray } +.stats th { text-align: left; background-color: whitesmoke; + color: #369; font-weight: bold;} +.stats td.ri { padding-left: 20px; text-align: right} + +.thumbnail { + float: left; + font-size: 0; + margin: 0; + margin-right: 5px; + margin-bottom: 2px; + overflow: hidden; + width: 70px; +} + +.thumbnail.nsfw { + height: 70px; + background-image: url(../nsfw2.png); /* SPRITE */ +} + +.thumbnail.self { + height: 50px; + background-image: url(../self_default2.png); /* SPRITE */ +} + +.thumbnail.default { + height: 50px; + background-image: url(../noimage.png); /* SPRITE */ +} + + +/* CSS customisation page */ + +.stylesheet-customize-container { } +.stylesheet-customize-container textarea { font-family: "Bitstream Vera Sans Mono", Consolas, monospace; margin: 0; padding: 0px; } +.stylesheet-customize-container h2 { margin-top: 15px; margin-bottom: 10px; } + +.image-upload .new-image { margin-left: 20px } +.image-upload span { padding-left: 5px; } + + +ul#image-preview-list { + margin: 20px 320px 20px 20px; + font-size:larger; +} +ul#image-preview-list li { + padding-bottom: 10px; + margin-bottom: 20px; + vertical-align: top; + width: 45%; + height: 100px; + float: left; + position: relative; +} + +ul#image-preview-list .preview { + width: 100px; + float: left; + display: block; + text-align: center; + max-height: 100px; + overflow: hidden; +} +ul#image-preview-list .preview img { + max-width: 100px; + padding: auto; +} +ul#image-preview-list .description { + vertical-align: top; + margin-left: 105px; +} +ul#image-preview-list .description pre { + display: inline; + padding: 5px; + color: #000; + background-color: transparent; +} + + +.sheets { margin-right: 315px; } +.sheets .col { width: 100%; } +.sheets .col > div { margin: 0 5px; } +.sheets .col textarea { width: 100% } +.sheets .buttons { margin-left: 5px } +.sheets .btn { margin-left: 0px; margin-right: 5px; } +.sheets .btn.right { float: right; margin-right: 3px;} + + +#validation-errors { + margin-left: 40px; + margin-top: 10px; + list-style-type: disc; +} + +#validation-errors a, +#validation-errors li, +.errors h2 { color: red } + +#validation-errors a:hover { text-decoration: underline; } +#validation-errors pre { padding: 10px; color: black; } + +#preview-table { + padding-right: 15px; +} +#preview-table > table { + border-width: .2em; + border-style: dashed; + border-color: lightgray; + padding: 5px; + margin: 5px; + width: 900px; +} + +#preview-table > table > tbody > tr { padding-bottom: 10px; } +#preview-table > table > tbody > tr > td { padding: 5px; padding-right: 15px;} +#preview-table > table > tbody > tr > th { + padding: 5px; padding-right: 15px; + font-weight: bold; + vertical-align: top; + font-size: larger; + text-align: right; +} + +#img-preview-container { + border-width: .2em; + border-style: dashed; + border-color: lightgray; + padding: 5px; + margin: 5px; + float: left; +} + +#image-upload #img-preview-container img { + max-width: 160px; +} +#icon-upload #img-preview-container img { + width: 64px; + height: 64px; + margin: 0; +} +#banner-upload #img-preview-container img { + width: 160px; + height: 48px; + margin: 0; +} + +.linefield.mobile { + width: 512px; + background-color: #EFF7FF; + border: 1px solid #CEE3F8; +} + +.private-feeds.instructions .prefright { + line-height: 2em; +} + +.private-feeds.instructions .feedlink { + padding: 2px 5px; + font-weight: bold; + margin-right: 5px; + border: 1px solid #0000FF; + color: white; + padding-left: 22px; + background: #336699 none no-repeat scroll top left; +} + +.private-feeds.instructions .feedlink.rss-link { + background-image: url(../rss.png); +} + +.private-feeds.instructions .feedlink.json-link { + background-color: #DDDDDD; + background-image: url(../json.png); + color: black; +} + +#sr-header-area { + background-color: #f0f0f0; + white-space: nowrap; + text-transform: uppercase; + border-bottom: 1px solid gray; + font-size: 90%; + height: 18px; + line-height: 18px; + } + +#sr-header-area .width-clip { + position: absolute; + left: 0; + right: 0; +} + +#sr-header-area .selected a { + color: orangered; +} + +#sr-header-area .sr-list { + overflow: hidden; +} + +#sr-header-area .dropdown.srdrop { + float: left; + padding-left: 5px; +} + +#sr-header-area .drop-choices.srdrop { + margin-top: 0; + margin-left: 5px; +} + +.dropdown.srdrop .selected { + background: none no-repeat scroll center right; + background-image: url(../droparrowgray.gif); + display: inline-block; + vertical-align: bottom; + padding-right: 21px; + padding-left: 5px; /* have to use padding instead of margin cause of ie */ + color: black; + font-weight: normal; + margin-left: -5px; /* There's 5px margin intended for the SR list... */ + margin-right: 10px;/* ...so we move it to the right side plus 5 more */ + cursor: pointer; + } + +.srdrop .choice {padding-top: 3px;} + +.srdrop .choice.top-option { + font-style: italic; + border-bottom: 1px dotted #369; +} + + + +.srdrop .choice.bottom-option { + font-style: italic; + border-top: 1px dotted #369; +} + +.sr-bar .separator {color: gray; } +.sr-bar a {color: black;} +.sr-bar a.gold { color: #9a7d2e; font-weight: bold; } + +#sr-more-link { + color: black; + background-color: #f0f0f0; + position: absolute; + right: 0; + top: 0; + padding: 0 5px 0 15px; + font-weight: bold; + margin: 0; +} + +#sr-more-link:hover {text-decoration: underline;} + +.subscription-box li { + clear: left; + margin-bottom: 10px; +} + +.subscription-box .fancy-toggle-button { + margin-right: 5px; + float: left; +} + +.subscription-box .title { + font-size: medium; + color: blue; + margin-right: 5px; +} + +.subscription-box .title.banned { + color: dimgray; + text-decoration: line-through; +} + +.subscription-box .column { + width: 50%; + float: left; +} + +.subscription-box .box-top { + position: relative; + height: 20px; +} + +.subscription-box .box-separator { + border-style: none none dotted none; + border-width: 1px; + margin-bottom: 5px; +} + +.subscription-box h1{ text-align: center; } + +.toggle.deltranslator-button { display: inline; } + +/****************/ + +#sr { margin-left: 0px } + +#sr-list-wrapper { + width: 454px; + height: 200px; + border: 1px solid gray; + border-top: none; + margin: 0 5px; + font-size: smaller; + position: relative; +} + +#sr-list-cover { + position: absolute; + background: gray none no-repeat scroll center center; + background-color: url(../throbber.gif); + height: 100%; + width: 100%; + opacity: .7; + filter:alpha(opacity=70); /* IE patch */ + z-index: 1000; + display: none; +} + +#sr-list { + overflow: auto; + position: absolute; + height: 100%; + width: 100%; +} + + +#sr-searchfield { margin: 0 5px; } + +#sr-name-box { + display: inline-block; + span { + display: block; + unicode-bidi: isolate; + } + .tooltip { + border-bottom: 1px dotted; + margin-bottom: 2px; + } +} + +.sr-name { + font-size: small; + vertical-align: top; + padding: 3px 3px 3px 0; +} + +.sr-description { + padding: 3px + } + +.sr-row { + cursor: default; + } + +.sr-row.sr-selected { + background: #EFF7FF none no-repeat scroll 0px 5px; + background-image: url(../rightarrow.png); /* SPRITE */ +} + +.sr-arrow { + width: 10px; + height: 12px; + } + +#sr-autocomplete-area { + position: relative; + z-index: 100; + } + +#sr-drop-down { + position: absolute; + width: 100%; + margin: 0; + border: 1px solid gray; + background: white; + display: none; + left: 0; +} + +#sr-drop-down table { + width: 100%; +} + +.sr-name-row { + cursor: default; + } + +.sr-name-row.sr-selected { + background-color: #369; + color: white; +} + +.submit-header { + font-size: larger; + font-weight: bold; +} + +#suggested-reddits { + margin-top: 5px; + font-size: small; +} + +#suggested-reddits h3 { + font-size: 1em; + font-weight: normal; + margin-top: .5em; +} + +#suggested-reddits li { + display: inline; + padding-right: 5px; +} + + +/*** new menu shit ***/ + +.formtabs-content { + width: 520px; + border-top: 4px solid #5f99cf; + padding-top: 10px; + } + +.formtabs-content .infobar { + margin: 0; + padding: 5px; + } + +ul.tabmenu.formtab { + display: block; + padding-left: 10px; + font-size: larger; +} + +.tabmenu.formtab li { + margin: 0; + } + +.tabmenu.formtab a { + font-weight: normal; + outline: none; + padding: 0px 12px; + vertical-align: bottom; + + border: 1px solid #c1c1c1; + border-bottom: none; +} + +.tabmenu.formtab .selected a { + color:white; + font-size: 130%; + background-color: #5f99cf; + border: none; +} + + +/******* embed stuff ******/ +.expando { + clear: left; + margin: 5px 0 5px 0; + position: relative; + + .form-bar { + float: left; + } +} + +.link.over18 .expando-uninitialized { + .media-embed, + .media-preview { + visibility: hidden; + } +} + +.expando-content { + display: none; +} + +.expando-with-nsfw-interstitial { + .media-embed { + display: none; + } + + .media-preview { + img.preview { + display: none; + } + + img.censored-preview { + display: inline; + } + } +} + +.expando-nsfw-gate { + @expando-nsfw-gate-color: #545452; + @expando-nsfw-font-size: 12px; + + align-items: center; + color: @color-white; + font-size: @expando-nsfw-font-size; + .display-flex(); + .justify-content(center); + + &.expando-nsfw-interstitial { + background: @expando-nsfw-gate-color; + } + + &.expando-nsfw-overlay { + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 100%; + } + + &.expando-nsfw-normal { + .expando-nsfw-gate-text { + cursor: pointer; + } + } + + .expando-nsfw-gate-controls { + margin: auto; + text-align: center; + } + + .expando-nsfw-gate-show-once { + background: none; + border: 1px solid @color-white; + color: inherit; + margin: unit(@margin-large, px); + padding: unit(@margin-small, px); + text-transform: uppercase; + } +} + +.expando-nsfw-flow-complete { + @icon-size: 16px; + + .form-bar { + padding-left: @icon-size + unit(@margin-small * 2, px); + } + + .form-bar:before { + width: @icon-size; + height: @icon-size; + content: ""; + display: block; + position: absolute; + left: unit(@margin-small, px); + top: 50%; + .transform(translateY(-50%)); + .hdpi-bg-image(@1x: url(../mod-action-icon-confirm.png), + @2x: url(../mod-action-icon-confirm_2x.png), + @2x-bg-size: @icon-size); + } +} + +.form-bar { + background: lighten(@color-pale-grey, 10%); + border: 1px solid @color-pale-grey; + clear: left; + margin-top: unit(@margin-small, px); + padding: unit(@margin-x-small, px) unit(@margin-small, px); + position: relative; + + .md { + float: left; + } + + button { + float: right; + margin-right: 0; + } +} + +.media-preview { + overflow: auto; + position: relative; + + .media-preview-content { + float: left; + } + + img { + width: 100%; + height: auto; + } + + img.censored-preview { + display: none; + } +} + +.expando-button { + float: left; + height: 23px; + width: 23px; + margin: 2px 5px 2px 0; + background: white none no-repeat scroll center center; +} + +.expando-button.selftext.collapsed { + background-image: url(../blog-collapsed.png); /* SPRITE */ +} +.expando-button.selftext.collapsed:hover, .eb-sch { + background-image: url(../blog-collapsed-hover.png); /* SPRITE */ +} +.expando-button.selftext.expanded, .eb-se { + margin-bottom: 5px; + background-image: url(../blog-expanded.png); /* SPRITE */ +} +.expando-button.selftext.expanded:hover, .eb-seh { + background-image: url(../blog-expanded-hover.png); /* SPRITE */ +} + +.expando-button.video.collapsed { + background-image: url(../vid-collapsed.png); /* SPRITE */ +} + +.expando-button.video.collapsed:hover, .eb-vch { + background-image: url(../vid-collapsed-hover.png); /* SPRITE */ +} + +.expando-button.video.expanded, .eb-ve { + background-image: url(../vid-expanded.png); /* SPRITE */ +} +.expando-button.video.expanded:hover, .eb-veh { + background-image: url(../vid-expanded-hover.png); /* SPRITE */ +} + +.expando .psuedo-selftext { + border-radius: 7px; + border: 1px solid #369; + overflow: hidden; + max-width: 710px; + + /* webkit won't properly mask the overflow of iframe corners without this hack */ + -webkit-mask-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA5JREFUeNpiYGBgAAgwAAAEAAGbA+oJAAAAAElFTkSuQmCC'); +} + +.expando .psuedo-selftext iframe { + padding: 0; + margin: 0; + width: 100%; + border: 0; +} + + +/******** self text stuff ****/ +.subreddit .usertext .md { + padding: 2px 5px; + background-color: #fafafa; + border: 1px solid #CCC; + border-radius: 7px; +} + +.link .usertext-body .md { + background-color: #fafafa; + border: 1px solid #369; + border-radius: 7px; +} + + +.usertext { + font-size: small; +} + +.usertext-edit { + margin-top: 5px; + padding: 0 1px; /* so the border of help/textbox don't get chopped off */ + width: 500px; +} + +.usertext-edit textarea { + width: 500px; + height: 100px; +} + +/*permalinks*/ +.usertext.border .usertext-body { + background-color: #ffc; padding-left: 5px; +} + +.usertext.grayed .usertext-body { + color: gray; + background-color: #f0f0f0; + padding-left: 5px; + padding-right: 5px; + display: inline-block; +} + +.usertext button { + margin: 5px 5px 10px 0; +} + +.usertext .help-toggle, .usertext a.reddiquette { + font-size: smaller; + float:right; + margin-top: 5px; + margin-left: 10px; +} + +.usertext .bottom-area { + /* this restricts children floats to the container */ + overflow: hidden; + width: 100%; +} + +.usertext .markhelp { + padding: 4px; + margin: 5px 0px; + border-top: 1px dotted #c0c0c0; + + table { + width: 100%; + margin: 5px 0px; + } + + tr, td { + width: 50%; + border: 1px solid #c0c0c0; + } +} + +.usertext .markhelp .spaces {background-color: #c0c0c0} + +/*** roundfield stuff *******/ +.roundfield { + width: 500px; + background-color: #cee3f8; + border-radius: 4px; + padding: 5px 10px 10px 10px; + font-size: large; +} + +.roundfield-actions { + width: 520px; +} + +.roundfield .title { +} + +.roundfield .roundfield-content { + margin-top: 5px; + border: none; + vertical-align: top; +} + +.roundfield .usertext-edit { + width: 500px; +} + +.roundfield textarea, +.roundfield input[type=text], +.roundfield input[type=url], +.roundfield input[type=password], +.roundfield input[type=number], +#compose-message .roundfield select { + font-size: 100%; + width: 492px; + padding: 3px; + margin: 0; + border: 1px solid gray; +} + +.roundfield.captcha .capimage { + margin-bottom: 10px; +} +.roundfield label { font-size: smaller; padding-right: 2px; } + + + +/*** linefield stuff *****/ +.linefield { + width: 514px; + padding: 7px 5px; + font-size: large; + background-color: #CEE3F8; + margin-bottom: 10px; +} + +.linefield .title { + /*background-color:#CEE3F8; + /*background-color:#EFF7FF;*!/ + color: #336699;*/ + color: blue; + font-weight:bold; + padding:1px 10px; +} +.linefield .title + .gray { + font-size: x-small; +} +.linefield .small-field, .linefield .delete-field { + padding: 0; + font-size: smaller; +} + +.linefield span + span { + margin-left: 10px; +} + +.linefield .linefield-description { + display: block; +} + +ul.colors { + overflow: auto; + + li { + float: left; + width: 180px; + padding: 5px 10px; + } + + label { + display: block; + } + + .swatch { + display: inline-block; + width: 20px; + height: 20px; + margin-right: 0.5em; + vertical-align: middle; + } + + li.custom-color { + clear: left; + width: auto; + + p { + margin: 0 -10px 5px; + } + + .swatch { + border: 1px solid #CEE3F8; + } + + input[type=color] { + width: 100%; + height: 100%; + overflow: hidden; + cursor: default; + opacity: 0; + } + + input[type=text] { + width: 60px; + vertical-align: middle; + } + } +} + +.campaign .linefield span + span { + margin-left: 0; +} + + +.linefield .info { + font-style: italic; + color: red; + font-size: small; +} + +.linefield .linefield-content { + /*border-color:#CEE3F8; + /*border-color:#EFF7FE;*!/ + border-style:solid none none; + border-width:4px medium medium;*/ + padding:2px 7px 5px; + vertical-align:top; +} + +.linefield.usertext .usertext-edit { + font-size: small; +} + +.linefield.usertext .edit-usertext { + font-size: x-small; + float: right; +} + +.linefield .upload { + font-size: small; +} +.linefield .upload label { + font-size: small; +} +.linefield .upload > li { + margin-top: 10px; + + &:first-child { + margin-top: 0; + } +} + +.linefield.usertext .infobar { + width: 100%; +} + +.linefield.usertext .usertext-buttons { + display: none; +} + +.linefield textarea, +.linefield input[type=text], +.linefield input[type=password] { + font-size: 100%; + width: 492px; + padding: 3px; + margin: 0; + border: 1px solid gray; +} + +.linefield select { margin: 0; } + +.linefield.captcha .capimage { + margin-bottom: 10px; +} +.linefield label { font-size: smaller; margin-right: 0.5em; } +.linefield span{ font-size: smaller; } + +.linefield input[type="text"].small-text { + font-size: smaller; + width: 100%; +} + +.linefield .markhelp table { + background: #FFFFFF; +} + +#kind-selector label { + padding-right: 20px; +} + +.campaign .status { + font-size: x-small; +} + +.campaign-detail { + .existing-campaigns { + > table { + width: auto; + background-color: white; + border: 1px solid #cc9; + } + + .campaign-spent, .campaign-buttons, button { + display: none; + } + } + + .hidden { + display: none; + } +} + +.existing-campaigns > table { + font-size: x-small; + width: 100%; + margin: 0px 0; + border: none; +} + +.existing-campaigns { + td.campaign-total-budget span { + display: inline-block; + margin-right: 5px; + line-height: 20px; + margin-top: 3px; + vertical-align: top; + } + + td.campaign-total-budget.paid { + background: url(../green-check.png) no-repeat scroll center right; + } +} + +.existing-campaigns tr.refund { + color: red; + font-weight: bold; +} + +.frequency-cap-inputs { + margin-left: 20px; + .label { + width: 200px; + } +} + +.frequency-cap-message { + font-size: 12px; + margin-left: 20px; +} + +.frequency-cap-message.example { + margin-top: -15px; + font-style: italic; +} + +.frequency-cap-dur-unit { + vertical-align: sub; + margin-left: 5px; +} + +.minimum-spend, .daily-budget-minimum { + margin-left: 10px; + font-size: 13px; +} + +.minimum-spend.error { + font-weight: bold; + color: red; + font-size: 15px; +} + +.existing-campaigns > table { + margin: 10px 0; +} + +.existing-campaigns > table > tbody > tr > td { + border-bottom: 1px solid darken(white, 15%); + max-width: 120px; +} + +.existing-campaigns > table > tbody > tr#edit-campaign-tr > td { + text-align: left; +} + +.existing-campaigns > table > tbody > tr#edit-campaign-tr > td { + padding: 0; +} + +#edit-campaign-tr .campaign-editor > .linefield { + border-radius: 0; + margin: 0; +} + +.existing-campaigns > table > thead > tr > th { + @color: lighten(black, 45%); + font-weight: bold; + color: @color; + border-bottom: 1px solid lighten(@color, 20%); +} + +.existing-campaigns { + .campaign-target, + .campaign-location { + overflow: hidden; + text-overflow: ellipsis; + max-width: 100px; + } + + .campaign-bid { + width: 60px; + } + + .campaign-row, + .campaign-header-row { + > td, + > th { + padding: 8px 2px 5px 8px; + } + } + + .campaign-start-date { + text-align: right; + padding-right: 7px; + padding-left: 8px; + } + + .campaign-end-date, + .campaign-buttons, + .campaign-total-budget, + .campaign-duration, + .campaign-spent { + text-align: right; + padding-right: 8px; + padding-left: 2px; + } + + > table > thead { + .campaign-start-date, + .campaign-end-date, + .campaign-spent { + width: 10%; + } + .campaign-spent, + .campaign-priority, + .campaign-duration { + width: 8%; + } + .campaign-total-budget { + width: 12%; + } + .campaign-buttons { + width: 15%; + } + } +} + +.campaign .bid-info { font-size: x-small; } +.campaign .bid-info.error { color: red; } +.campaign td.prefright { + padding: 8px 4px 4px; +} +.campaign #bid, .campaign #impressions, +.campaign #cap, .campaign #duration, +.campaign #daily_budget { + text-align: right; + width: auto; + margin-bottom: 5px; +} + +.campaign .subreddit-targeting input{ + width: 95%; + border-radius: 7px; +} + +.campaign #suggested-reddits ul { + margin: 0 20px 10px 0; +} +.campaign th { + font-size: small; + padding: 4px; + padding-top: 8px; + width: 90px; +} + +.linefield-content .infotext { + margin-top: 5px; +} + .linefield-content .infotext p { + margin: 5px; + } + +#campaign label, +#campaign li { + font-size: small; +} + +#campaign .geotarget-select { + display: block; + margin-top: 2px; +} + +.geotargeting-disabled { + font-size: 13px; + color: grey; +} + +.collection-selector { + position: relative; + width: 100%; + height: 50px; + z-index: 100; + + .widget-container { + width: 100%; + background: #fff; + border: 1px solid #CECECE; + border-radius: 5px; + overflow: hidden; + position: absolute; + top: 0; + left: 0; + } + + .form-group-list { + position: relative; + .transition(all, 0.2s); + + .form-group { + display: block; + padding: 0; + margin: 0; + + > input[type=radio] { + display: none; + } + + > .label-group { + height: 50px; + width: 100%; + padding: 5px 10px; + .box-sizing(border-box); + cursor: pointer; + color: #404040; + + &:hover { + background: #E4EDF7; + } + + .label { + font-size: 15px; + } + .description { + font-size: 10px; + } + } + + > input[type=radio]:checked + .label-group { + background: #FFFFFF; + display: block; + } + } + } + + + .selected-style() { + background-color: #4A90E2; + color: #FFF; + box-shadow: none; + } + + &.expanded { + .form-group { + > input[type=radio]:checked + .label-group { + .selected-style(); + } + + } + } + &.collapsed { + input[type=radio]:checked + .label-group { + box-shadow: inset 0 -1px 0 1px #f2f2f2 + } + .widget-container:before { + display: block; + content: ""; + width: 0; + height: 0; + border-width: 15px 10px 0; + border-style: solid; + border-color: #CCC transparent; + position: absolute; + top: 18px; + right: 10px; + z-index: 100; + pointer-events: none; + } + } + + &.uninitialized { + .form-group { + > .label-group { + display: none; + } + + > input[type=radio]:checked + .label-group { + display: block; + } + } + &:hover .form-group { + > .label-group { + display: block; + } + + > input[type=radio]:checked + .label-group { + .selected-style(); + } + } + } +} + +.collection-subreddit-list { + font-size: 13px; + .label { + margin: 5px 0; + color: #404040; + font-size: 10px; + } + ul { + li { + display: inline-block; + margin-right: 5px; + } + } +} + +/***traffic stuff***/ +.traffic-table, +.traffic-tables-side fieldset { + margin: 1.5em 2em; + font-size: small; + border: 0; +} + +.traffic-table caption, +.traffic-tables-side fieldset legend{ + font-weight: bold; + text-align: left; + font-size: medium; + font-variant: small-caps; +} + +.traffic-table caption .normal { + font-weight: normal; + font-size: small; + font-variant: normal; + margin-left: .5em; +} + +.traffic-form { + float: left; + margin-right: 10em; + + p { + font-size: small; + margin-bottom: 1em; + max-width: 20em; + } + + textarea { + display: block; + } +} + +.traffic-table a:hover { text-decoration: underline; } +.traffic-table thead th { font-weight: bold; text-align: center; padding-left: 2em;} +.traffic-table thead th:first-child { text-align: left; padding-left: 0; } +.traffic-table tbody th, +.traffic-table tfoot th { text-align: left;} +.traffic-table td { padding: 0 5px; } +.traffic-table td { text-align: right; } + +.traffic-table tfoot tr { border-top: 1px solid black; } +.traffic-table tfoot th, +.traffic-table tfoot td { font-style: italic; } + +.traffic-table tr.max { border-width: 2px; border-style: solid; } +.traffic-table tr.min { border: 2px solid #336699; } +.traffic-table tbody tr:nth-child(even) { background-color: #E0E0E0; } +.traffic-table tr.mean { font-style: italic; border-top: 1px solid; } + +/* this injects a blank space between weeks so that weekly patterns + * are more visible. since the borders are collapsed, we need to use + * cell padding to achieve the effect. however, the zebra-striping of + * the table makes for ugly extra-wide stripes when a stripe and week + * gap coincide. the nth-child rules put the padding on the top of + * the next row instead of the bottom of the current one if the current + * one is a zebra stripe. */ +.traffic-table .dow-6 th, +.traffic-table .dow-6 td { padding-bottom: 1em; } +.traffic-table tr:nth-child(odd).dow-5 th, +.traffic-table tr:nth-child(odd).dow-5 td { padding-top: 1em; } +.traffic-table tr:nth-child(even).dow-6 th, +.traffic-table tr:nth-child(even).dow-6 td { padding-bottom: 0; } + +.traffic-tables-side { + float: left; + min-height: 50em; +} + +#promote-graph-table, +#traffic-hour { + display: none; +} + +div.timeseries { + padding: 10px; + border: 1px solid #B0B0B0; + margin: 10px 10px; + display: inline-block; + text-align: center; +} +.timeseries-placeholder { + width: 350px; + height: 200px; + font-family: verdana; + font-size: small; +} +div.timeseries span.title { + font-weight: bold; + font-size: medium; + font-variant: small-caps; +} + +#timeseries-unprocessed { + font-size: small; + font-weight: bold; + margin: 1em 0; + max-width: 60em; + + &.slow { + color: #900; + } +} + +.timeseries-tablebar { + height: 5px; + margin: 1px 0; +} + +.promoted-traffic .usertable { margin-left: 0px; } + +.promoted-traffic h1 a { + font-size: small; + margin-left: 10px; +} + +.promoted-traffic tfoot th, +.promoted-traffic tfoot td { + font-style: normal; + font-weight: bold; + text-transform: uppercase; + padding-top: .3em; +} + +.promocampaign-table td { + white-space: nowrap; +} + +.traffic-table.promocampaign-table { + margin: 10px; + + thead th { + text-align: right; + padding: 0 5px; + } + + tr.total { + border-top: 1px solid black; + } + + tr.active { + background-color: pink; + font-weight: bold; + border: 2px dotted red; + } +} + +.promo-traffic .content .tabmenu li { + font-size: 1.3em; +} + +.promo-traffic #helptext { + font-size: 1.2em; + padding: 3px 10px 6px; +} + +#promo-traffic-no-campaigns { + padding: 20px; +} + +.promo-traffic .tabpane-content { + margin-right: 305px; + min-width: 800px; + position: relative; +} + +.promo-traffic #timeseries-unprocessed { + font-size: 1.2em; + margin: 0 .1em; + padding: 0px; + position: absolute; + right: 1em; + top: -1.3em; +} + +.promo-traffic-csv-link { + font-size: 1.1em; + font-weight: bold; + position: absolute; + right: 15px; + top: 11px; +} + +.promo-traffic-help { + font-size: 1.2em; + margin: 20px; +} + +.promo-traffic-help p { + padding: 5px; +} + +#promo-traffic-lifetime-stats { + font-size: 1.1em; + font-weight: bold; + margin: 2px 10px; + padding-top: 5px; +} + +.promo-traffic-live { + background-color: #EFF7FF; + + td { + max-width: 150px; + overflow: hidden; + text-overflow: ellipsis; + } +} + +.promo-traffic-settings-instructions { + font-size: small; + margin: 0px 15px 10px; +} + +.promo-traffic-settings { + padding: 20px; +} + +p.totals-are-preliminary { + margin-left: 10px; +} + +.award-square-container { + max-width: 1000px; + overflow: hidden; +} + +.award-square { + float: left; + padding: 10px 0px 30px 40px; + white-space: nowrap; + width: 300px; +} + +.award-square.mini { + width: 100px; + white-space: normal; + text-align: center; +} + +.award-square img { + float: left; + margin: 0 10px; + width: 70px; + height: 70px; +} + +.award-square.mini img { + float: none; + margin-bottom: 7px; +} + +.award-square .award-name { + color: black; + font-size: 22px; + font-family: verdana, arial, helvetica, sans-serif; + font-weight: bold; + line-height: 1em; +} + +.award-square.mini .award-name { + font-size: 18px; + min-height: 36px; + display: block; +} + +.award-square .winner-info { + line-height: 15px; + margin-top: 15px; + color: gray; +} + +.award-square .winner-name { + font-size: 18px; + color: #336699; +} + +.lined-table { + margin: 5px; +} + +table.lined-table { + margin: 5px 3px; +} + +.lined-table th, .lined-table td { + border: solid #cdcdcd 1px; + padding: 3px; +} + +.lined-table th { + text-align: center; + font-weight: bold; +} + +.sponsorshipbox { + max-width: 300px; +} + +.sponsorshipbox span { + color: gray; +} + +.sponsorshipbox div { + border: 1px solid #D0D0D0; + width: 300px; + font-size: 0; +} + +/* otherwise the pixel will cause a horizontal scrollbar in firefox */ +.sponsorshipbox .promote-pixel { + right:0; +} + +.sidecontentbox a.helplink { + float: right; + margin-top: 4px; +} + +.confirm-award-claim .md { + max-width: none; + font-size: 18px; +} + +.trophy-table { + width: 100%; +} + +.trophy-area .content { + background-color: #f5f5f5; +} + +.trophy-info { + text-align: center; + vertical-align: top; +} + +.trophy-info div { + margin-left: auto; + margin-right: auto; + width: 130px; + vertical-align: top; + padding: 15px 0 15px; +} + +.trophy-icon { + margin-bottom: 2px; + width: 40px; + height: 40px; +} + +.trophy-info.left { + margin-right: 10px; +} + +.trophy-info.right { +} + +.trophy-name { + color: black !important; +} + +.trophy-description { + color: #555555; + font-size: x-small; +} + +.dust { + text-align: center; + margin: 45px auto; + color: #d0d0d0; +} + +.removecup-button { + display: inline; +} + +.cup-info-box { + border: dashed #eeaa33 2px; + padding: 5px; +} + +.cup-info-box tt { + background-color: #f5f5aa; +} + +/* Datepicker +----------------------------------*/ +.datepicker { + z-index: 1000; + display: none; + border-radius: 6px; + -webkit-box-shadow: 0px 4px 6px 3px hsla(0, 0%, 0%, .2), inset 0px 1px 0px 0px hsla(0, 0%, 100%, .9); + -moz-box-shadow: 0px 4px 6px 3px hsla(0, 0%, 0%, .2), inset 0px 1px 0px 0px hsla(0, 0%, 100%, .9); + box-shadow: 0px 4px 6px 3px hsla(0, 0%, 0%, .2), inset 0px 1px 0px 0px hsla(0, 0%, 100%, .9); + text-shadow: 0px 1px 0px hsla(0,0%,100%,.8); + } + /* @group CSS triangles*/ + .datepicker::before { + content: ' '; + display: block; + width: 0; + height: 0; + border: 10px solid; + position: absolute; + top: -20px; + left: 17px; + border-color: transparent transparent #369; + } + .datepicker::after { + content: ' '; + display: block; + width: 0; + height: 0; + border: 10px solid; + position: absolute; + top: -18px; + left: 17px; + border-color: transparent transparent #E5F2FF; + } + /* @end CSS Triangles*/ + +.datepicker.inuse { display: block; } + +.ui-datepicker-inline { + font-size: x-small; + padding: 5px; +} +.ui-corner-all { + border-radius: 6px; +} +.ui-datepicker-header { + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from( hsl(210, 54%, 89%)), to( hsl(210, 54%, 79%))); + background: -moz-linear-gradient(top, hsl(210, 54%, 89%), hsl(210, 54%, 79%)); + background-color: #ADC9E6; + border: 1px solid #5E96CF; + color: #2E6399; + font-weight: bold; + font-size: 1.3em; + text-shadow: 0px 1px 0px hsla(0,0%,100%,.7); + -webkit-box-shadow: inset 0px 1px 0px hsla(0,100%,100%,.8); + -moz-box-shadow: inset 0px 1px 0px hsla(0,100%,100%,.8); + box-shadow: inset 0px 1px 0px hsla(0,100%,100%,.8); +} +.ui-datepicker-inline .ui-datepicker-prev {float: left; } +.ui-datepicker-inline .ui-datepicker-next {float: right; } + +.ui-datepicker-inline .ui-datepicker-prev span, +.ui-datepicker-inline .ui-datepicker-next span { + display: block; + text-align: center; + margin-right: 1px; + margin-bottom: 1px; + font-size: 1.5em; +} +.ui-datepicker-inline .ui-datepicker-prev:active, +.ui-datepicker-inline .ui-datepicker-next:active { + color: white; +} + +.ui-datepicker-inline .ui-datepicker-prev.ui-state-disabled, +.ui-datepicker-inline .ui-datepicker-next.ui-state-disabled { + display: none; +} + +.ui-datepicker-inline .ui-datepicker-prev, +.ui-datepicker-inline .ui-datepicker-next { + display: block; + cursor: pointer; + padding: 0px 5px; +} + +.ui-datepicker-year { + margin-left: none !important; //Undoes linefield span +} + +.ui-datepicker-inline .ui-datepicker-title {text-align: center; padding: 5px; margin: 0em 2em;} +.ui-datepicker-inline table { + clear: right; + margin-top: 5px; + border: 1px solid hsl(210, 54%, 59%); +} + +.ui-datepicker-inline .ui-datepicker-calendar th, +.ui-datepicker-inline .ui-datepicker-calendar td { + padding: 0px; + border: 1px solid #5E96CF; + -webkit-box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.7); + -moz-box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.7); + box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.7); + } +.ui-datepicker-calendar th { + font-size: 1.1em; +} + +.ui-datepicker-inline .ui-datepicker-calendar th span, +.ui-datepicker-inline .ui-datepicker-calendar td span, +.ui-datepicker-inline .ui-datepicker-calendar td a { + border: 0px; + margin: auto; + padding: 3px; + display: block; + width: 30px; + height: 2em; + text-align: center; + vertical-align: middle; + color: black; + background-color: #C8DBEF; + font-size: 1.5em; + font-weight: bold; + -webkit-box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.7); + -moz-box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.7); + box-shadow: inset 0px 1px 0px hsla(0,0%,100%,.7); +} + +.ui-datepicker-inline .ui-datepicker-calendar th span { + text-align: center; + border: none; +} + +.ui-datepicker-inline .ui-datepicker-calendar td.ui-datepicker-today a, +.ui-datepicker-inline .ui-datepicker-calendar td.ui-datepicker-today span, +.ui-datepicker-inline .ui-datepicker-calendar td a.ui-state-active + { + color: white; + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from( hsl(210, 54%, 65%)), to( hsl(210, 54%, 45%))); + background: -moz-linear-gradient(top, hsl(210, 54%, 65%), hsl(210, 54%, 45%)); + background-color: #4F8AC9; + -webkit-box-shadow: inset 0px 2px 3px hsla(0,0%,0%,.6); + -moz-box-shadow: inset 0px 2px 3px hsla(0,0%,0%,.6); + box-shadow: inset 0px 2px 3px hsla(0,0%,0%,.6); + text-shadow: 0px -1px 0px hsla(0,0%,0%,.8); +} + +.ui-datepicker-inline .ui-datepicker-calendar td span { + color: #888; +} + +.ui-datepicker-inline .ui-datepicker-calendar td a.ui-state-hover { + background: #6BB3FF; + color: white; + text-shadow: 0px -1px 0px hsla(0,0%,0%,.6); +} + +.ui-datepicker-inline .ui-datepicker-calendar td a.ui-state-active { + background: -webkit-gradient(linear, 0% 0%, 0% 100%, from( hsl(0, 54%, 75%)), to( hsl(0, 54%, 55%))); + background: -moz-linear-gradient(top, hsl(0,54%,75%), hsl(0,54%,55%)); + background-color: #E19D9D; +} + +.date-input { + display: inline; + position: relative; +} +.date-input input { + border: 1px solid #888; + padding: 2px; + text-align: center; + margin: 0 2px; +} +.date-input .drop-choices { + position: absolute; + border: 1px solid #369; + background-color: #E5F2FF; + margin: 10px 3px; +} + + +.payment-setup input[name=bid] { width: 6em; text-align: right; } +.payment-setup form { margin: 20px; } +.payment-setup p { margin-bottom: 10px; } + +.pay-form textarea[disabled] { + font-size:smaller; + padding: 0; +} +.pay-form *[disabled], +.pay-form input[disabled] + { + border: none; + color: black; + font-weight: bold; + background-color: white; +} + +.bid-table { margin: 5px 10px; } +.bid-table td, +.bid-table th +{ + padding: 2px 5px; + text-align: right; +} + +.bid-table th +{ + text-align: center; + font-weight: bold; +} + +div #campaign-field { + width: auto; +} + +#promo-form { + .linefield { + width: auto; + } + + .usertext-edit { + width: auto; + } +} + +.form-group { + display: block; + + > label, + > .label, + > .label-group { + display: inline-block; + } + + > .label-group > .label { + display: block; + } +} + +.input-group { + display: inline-block; + vertical-align: top; +} + +.checkbox-group, +.radio-group { + font-size: 14px; + line-height: 20px; + + .form-group { + margin: 5px 0; + } + + input[type=radio], + input[type=checkbox] { + font-size: 20px; + line-height: 20px; + margin-right: 10px; + margin-left: 1px; + } +} + +.radio-group { + .label-group, + .label, + input[type=radio] { + vertical-align: middle; + } +} + +.dashboard { + header { + position: relative; + margin-bottom: 10px; + } +} + +.mobile-targeting-group { + display: block; +} + +.mobile-os-group, +.os-device-group { + display: inline-block; + vertical-align: top; +} + +.mobile-os-group { + width: 150px; +} + +.sponsored-page { + .checkbox-group, + .radio-group, + .form-group, + .select-group, + .collection-targeting, + .subreddit-targeting { + margin-bottom: 10px; + > .label:first-child { + width: 110px; + margin-right: 10px; + text-transform: uppercase; + font-size: 12px; + color: lighten(black, 40%); + letter-spacing: 0.6px; + } + > .label.cost-basis-label { + width: 150px; + } + } + + .radio-group .form-group { + margin-bottom: 5px; + } + + .inline-dollar { + position: absolute; + margin-left: 10px; + margin-top: 5px; + } + + .targeting-field .radio-group { + .label-group, + input[type=radio] { + vertical-align: middle; + } + + .label-group { + font-size: 15px; + } + + .label-group small { + font-size: 0.67em; + } + } + + .targeting-field .linefield-content { + > .radio-group, + > .target-group { + width: 50%; + display: inline-block; + vertical-align: top; + } + } + + .lookup-user-field, + .budget-field, + .pricing-field, + .timing-field, + .frequency-cap-field { + .group { + display: flex; + margin-bottom: 10px; + } + + .form-group { + flex-basis: 0; + flex-grow: 1; + label, .label { + display: block; + } + .cost-basis-label { + width: 300px; + } + } + } + + .display-text:before { + content: "\00a0"; + } + + .display-text.daily-max-spend:before { + content: "\00a0\0024"; + } + + .display-text { + font-weight: bold; + } + + .budget-field { + .group { + margin-bottom: 10px; + } + } + + .pricing-message, + .budget-message { + font-size: 13px; + } + + .pricing-message { + margin-top: 10px; + margin-bottom: 10px; + } + + .campaign-set { + padding: 10px; + background: #fff; + border-radius: 2px; + margin-bottom: 5px; + + .info-text { + display: block; + border-bottom: 1px solid #e6e6e6; + } + + .campaign-button { + padding: 5px 10px; + } + + .button-group { + white-space: nowrap; + + button:first-child { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + padding-right: 5px; + margin-right: 0; + } + + button + button { + border-top-left-radius: 0; + border-bottom-left-radius: 0; + border-left: 0; + padding-left: 5px; + margin-left: 0; + } + } + } + + .campaign-set + .campaign-set, + .campaign-set + .info-text { + margin-top: 20px; + } + + .campaign-option-table { + width: 100%; + + .date { + text-align: left; + width: 18%; + } + + .total-budget { + width: 20%; + } + + .total-budget + td { + width: 35%; + } + + td { + width: 18%; + line-height: 27px; + font-size: 14px; + font-weight: bold; + vertical-align: bottom; + text-align: right; + padding: 0 4px; + } + } + + .lookup-user { + input[name=name] { + width: 10em; + } + + input[name=email] { + width: 20em; + } + + } +} + +.os-device-group { + .radio-group + .device-version-group + .device-version-group { + border-top: 1px solid #e6e6e6; + padding-top: 10px; + } + .device-version-group { + padding-left: 24px; + } +} + +.device-version-group { + .checkbox-group { + width: 140px; + } + .checkbox-group, + .select-group { + display: inline-block; + vertical-align: top; + } +} + +.version-select { + .form-group { + margin: 5px 0 20px 0; + select { + width: 100px; + } + > .label:first-child { + width: 30px; + display: inline-block; + } + } +} + +.inventory-dashboard { + .geotargeting-group { + display: none; + } +} + +.sponsored-page { + @bg-color: lighten(#cee3f8, 5%); + width: 800px; + margin: auto; + color: lighten(black, 5%); + + textarea, + input[type=text] { + width: 100%; + .box-sizing(border-box); + } + + .hidden { + display: none; + } + + .help p { + margin: 0; + } + + .help a.help { + font-weight: bold; + text-decoration: none; + float: right; + color: orangered; + } + + h2 { + margin: 20px 0 5px; + font-size: 200%; + color: lighten(black, 40%); + font-weight: normal; + } + + .infobar { + margin: 5px 0; + padding: 0; + background: transparent; + border: 0; + color: lighten(black, 25%); + + a { + white-space: nowrap; + } + } + + .post-type-field, + .targeting-feild { + .radio-group { + .label-group { + font-size: 15px; + } + .label-group small { + font-size: 0.67em; + } + } + } + + .post-type-field { + .radio-group { + overflow: auto; + } + .form-group { + float: left; + width: 33%; + } + } + + > header { + margin: 10px; + } + + .rules { + float: left; + font-size: 13px; + line-height: 30px; + } + + .primary-button { + @color2: lighten(#FF4500, 15%); + @color1: lighten(@color2, 7%); + .button-style(@color1, @color2, darken(@color2, 10%)); + + color: white; + text-shadow: 0 1px 0 darken(@color2, 10%); + } + + button { + @color: desaturate(darken(#CEE3F8, 5%), 15%); + .button-style(@color, darken(@color, 5%), darken(@color, 15%)); + + margin: 0; + padding: 5px 20px; + font-size: 12px; + font-weight: bold; + color: lighten(#369, 5%); + text-shadow: 0 1px 0 lighten(#369, 45%); + vertical-align: text-top; + } + + .new-campaign { + position: absolute; + right: 0; + top: 10px; + padding: 10px 15px; + font-size: 13px; + } + + .campaign-buttons, + .campaign-total-budget { + button { + font-size: 10px; + font-weight: normal; + border-top-width: 1px; + box-shadow: none; + padding: 2px 4px; + margin: 2px 2px 0; + &:active { + box-shadow: inset 0 1px 0 1px fadeout(black, 90%); + } + &:hover, &:active { + margin-bottom: 0; + } + } + } + + .editor-group { + position: relative; + @background-color: darken(#FFFFFF, 1%); + background: @bg-color; + margin: 0 0 10px; + border-radius: 2px; + font-size: 15px; + line-height: 20px; + + footer { + margin: 0 20px; + padding: 10px 0; + } + } + + .promotelink-editor { + .collapsed-display { + .linefield { + border-bottom: 0; + padding-bottom: 0; + } + } + .thing { + border-color: darken(@bg-color, 10%); + font-size: 10px; + + .title { + padding: 0; + font-weight: normal; + } + + .rank { + display: none; + } + + .flat-list.buttons { + text-align: left; + } + + a.thumbnail { + line-height: 0; + } + } + } + + .dashboard { + padding: 20px; + border-bottom: 2px solid #ccc; + + .help p { + margin-bottom: 10px; + } + } + + .campaign-editor { + @color: #f8f8f8; + + .editor-group { + background: transparent; + background: @color; + border: none; + box-shadow: none; + font-size: 13px; + + >.linefield > .title:before { + background: darken(#f7f7f7, 10%); + margin-right: 0; + } + + >.linefield > .title { + color: lighten(black, 40%); + } + + .linefield { + border-bottom-color: darken(#FFFFFF, 10%); + } + } + + } + + .campaign-list-editor { + > .editor-group > .linefield { + border-bottom: 0; + padding-bottom: 10px; + + .help { + font-size: 12px; + margin-right: 120px; + } + } + } + + .campaign-list { + padding-bottom: 5px; + } + + .editor { + @background-color: #CEE3F8; + .image-field { + position: relative; + overflow: auto; + + input[type=file] { + margin-top: 10px; + margin-left: 0; + } + button.submit-img { + position: absolute; + bottom: 10px; + right: 20px; + } + img { + max-width: 600px; + } + } + .image-field.has-image { + .linefield-content { + margin-left: 110px; + } + .img-preview-container { + position: absolute; + left: 0; + top: 45px; + margin: 0; + padding: 5px; + img { + display: block; + width: 70px; + height: auto; + } + br { + display: none; + } + } + } + + textarea, + input[type=text], + .date-input input, + .linefield { + border-radius: 2px; + font-size: 15px; + line-height: 20px; + } + + textarea, + input[type=text], + .date-input input { + border: 1px solid; + border-color: darken(white, 25%) darken(white, 20%) darken(white, 15%); + background: darken(white, 1%); + padding: 5px 10px; + + &:focus { + background: white; + border-color: lighten(#369, 15%); + outline: none; + box-shadow: 0 0 3px white; + } + + &:disabled { + box-shadow: none; + color: darken(white, 40%); + border-color: darken(white, 20%); + background: darken(white, 2%); + } + } + + input[type=text], + .date-input input { + padding: 5px; + box-shadow: inset 0 1px 0 1px darken(white, 5%); + font-size: 15px; + } + + input[type=text].total_budget_pennies { + padding-left: 20px; + } + + textarea { + resize: vertical; + padding: 10px; + box-shadow: inset 0 2px 0 1px darken(white, 5%); + } + + .date-input .datepicker { + @color: lighten(#369, 30%); + text-shadow: none; + border-color: @color; + + .ui-corner-all, + & { + border-radius: 2px; + } + + .ui-datepicker-header, + .ui-datepicker-calendar, + td, + th, + th span { + box-shadow: none; + border-color: @color; + } + + table, + th { + border: 0; + } + + th span { + font-size: 12px; + font-weight: normal; + background: transparent; + height: auto; + } + + td a, + td span { + box-shadow: none; + font-size: 15px; + width: 100%; + .box-sizing(border-box); + text-align: right; + } + + .ui-datepicker-today span { + background: lighten(@color, 5%); + box-shadow: none; + text-shadow: none; + } + + a { + text-shadow: none; + } + + a.ui-state-active { + background: lighten(orangered, 50%); + color: orangered; + text-shadow: none; + } + + a.ui-state-hover { + text-shadow: none; + border-color: darken(@color, 5%); + } + + } + + .linefield { + width: auto; + padding: 20px 0; + margin: 0 20px; + border-radius: 0; + border-bottom: 1px solid darken(@bg-color, 10%); + background: transparent; + font-size: 15px; + + span { + font-size: inherit; + } + + &:last-child { + border-bottom: none; + } + > .linefield-content { + padding: 0; + } + + > .title { + padding: 0; + display: block; + margin: 5px 0; + color: #369; + font-size: 15px; + + &:before { + position: absolute; + width: 20px; + height: 20px; + right: 100%; + border-radius: 10px; + background: darken(@bg-color, 5%); + margin-right: -10px; + } + } + } + + > .linefield { + padding: 0; + background: transparent; + border: 0; + } + + > .linefield > .title { + font-weight: normal; + font-size: 18px; + line-height: 20px; + margin: 10px; + color: saturate(darken(#369, 10%), 100%); + } + + .buttons { + text-align: right; + button { + margin-left: 5px; + } + } + + .infotext { + border: 0; + background: transparent; + font-style: italic; + color: grey; + padding: 0; + font-size: 13px; + line-height: 20px; + box-shadow: none; + } + } + + .text-field { + textarea { + font-size: 13px; + } + } + + .existing-campaigns { + .campaign-editor .editor-group { + margin-bottom: 10px; + border-radius: 0; + } + + .campaign-editor footer { + margin-bottom: 10px; + } + + .campaign { + border: 0; + } + } + + .help { + font-size: 13px; + } + + .campaign-dashboard header { + .error, .help { + margin-right: 150px; + } + } +} + +.geotargeting-disabled { + font-size: 12px; + color: grey; +} + +.fancy-settings h1 { font-size: 200%; color: #999; margin:10px 5px; } +.fancy-settings h2 { font-size: 200%; font-weight:normal; color: #999; margin:10px 5px; } +.fancy-settings h1 strong { font-weight:bold; color: #666; } + +.bidding-history { + padding-top: 5px; + margin-right: 5px; +} +.bidding-history .linefield { + width: auto; + overflow: hidden; + padding-left: 10px; + border-left: 1px #DDD dashed; } +.bidding-history .linefield .bid-table, +.bidding-history .linefield .notes { font-size: x-small; } +.bidding-history .linefield .notes { margin-top: 10px; } +.bidding-history .linefield .notes p { + text-indent: -20px; + padding-left: 20px; + margin-bottom: 2px; + font-family: courier; +} + +.pay-form tr.input-error th { + color: red; + font-weight: bold; + font-style: italic; +} +.pay-form th { padding: 0px } + +.pay-form tr.input-error input, +.pay-form tr.input-error textarea, +.pay-form tr.input-error select { border: 1px solid red; } + +.pay-form input[name=expirationDate], +.pay-form input[name=cardCode] { width: 10ex; } + +.pay-form .optional { font-size: smaller; } +.pay-form .disabled .optional { display: none; } +.pay-form p.info { color: red; } +.pay-link { font-size: smaller; margin-left: 10px; } + +dt { margin-left: 10px; font-weight: bold; } +dd { margin-left: 20px; } + +.borderless td { + border: none; +} + +.promote-report-form { + margin: 1.5em 2em; +} + +.promote-report-csv { + font-size: small; +} + +.promote-report-table { + border: 0 none; + font-size: small; + margin: 1.5em 2em; + + thead th { + font-weight: bold; + text-align: center; + padding: 0 1em; + border: 1px solid white; + background-color: #CEE3F8; + } + + thead th.blank { + background: none; + } + + thead th[colspan] { + text-align: center; + } + + td { + text-align: right; + padding: 0 2em; + } + + td.text { + text-align: left; + padding: 0 2em 0 0; + } + tr.total { + background-color: #FFC; + border-top: 1px solid #000000; + font-weight: bold; + } +} + +.inventory-table { + font-size: smaller; + text-align: right; + margin-top: 20px; + width: 100%; + + th, td { + padding: 3px; + + &:last-child { + font-weight: bold; + } + } + + th { + border-bottom: 1px solid #000000; + text-align: right; + + &:first-child { + text-align: left; + } + } + + td.title { + width: 120px; + text-align: left; + } + + td:not(.title) { + border-left: 1px dashed #DDD; + } + + tr:nth-child(even) { + background-color: #EFF7FF; + } + + tr.total { + background-color: #FFC; + border-top: 1px solid #000000; + font-weight: bold; + } +} + +/* title box */ +.titlebox { + font-size: larger; +} + +.titlebox h1 { + font-family:arial,verdana,helvetica,sans-serif; + margin: 0px; + margin-bottom: 5px; + font-weight: bold; + font-size: 19px; +} + +.titlebox h1 a { + color: black; +} + +.titlebox .karma { + font-size: 18px; + font-weight: bold; +} + +.titlebox .fancy-toggle-button { + display: inline-block; + margin-right: 5px; +} + +.titlebox .bottom { + border-top: 1px solid gray; + padding-top: 2px; + font-size: 80%; + color: gray; +} + +.titlebox .age {float: right;} + +#side-mod-list { + line-height: 1.5; + + .sr-banned { + a { + color: @color-perma-ban; + } + } +} + +#side-multi-list { + li { + @columns: 3; + @column-spacing: 3px; + display: inline-block; + width: 288px / @columns - @column-spacing; + margin-right: @column-spacing; + text-overflow: ellipsis; + overflow: hidden; + } + + & + .expand-summary { + padding: 0 4px; + margin: 0; + margin-top: 3px; + font-size: x-small; + } +} + +.confirm-button .confirmation { + color: red; + white-space: nowrap; + + .prompt { + margin-right: .5em; + } +} + +.gray-buttons { + button, a { + padding: 0; + margin: 0; + border: none; + background: none; + color: #888; + font-weight: bold; + + &:hover { + text-decoration: underline; + } + } +} + +.multi-details, .filtered-details { + h1 { + margin-bottom: 0; + } + + h1 a, .throbber { + vertical-align: middle; + } + .throbber { + margin-left: 5px; + } + + h2 { + margin-top: 0; + margin-bottom: 3px; + } + + .settings { + margin-bottom: 5px; + + input[type="radio"] { + margin: 0; + margin-right: 3px; + vertical-align: middle; + } + + button { + cursor: pointer; + } + + label, & > button { + margin-right: 12px; + } + + .visibility-group { + margin-right: 8px; + margin-bottom: 8px; + } + } + + h3 { + font-weight: normal; + color: #777; + margin-bottom: 3px; + } + + form.copy-multi, form.rename-multi { + display: none; + margin-bottom: 10px; + + .multi-name { + border: 1px solid #ccc; + padding: 3px; + } + + button { + .light-button; + padding: 3px 4px; + } + + .throbber { + height: 22px; + display: none; + } + + &.working .throbber { + display: inline-block; + } + } + + form.copy-multi button { + background: #eeffdd; + } + + form.rename-multi { + button { + background: #ffffdd; + } + + .warning { + margin-top: .5em; + font-weight: bold; + color: #c2461f; + } + } + + .description { + margin: .75em 0; + + .usertext-edit, textarea { + // use !important to override legacy inline style width set by + // show_edit_usertext() + width: 294px !important; + } + } + + ul, form.add-sr { + margin-left: 12px; + } + + button.remove-sr, button.add { + .box-sizing(content-box); + text-indent: -9999px; + margin-left: 3px; + background: none no-repeat; + border: 3px solid transparent; + padding: 0; + opacity: .3; + + &:hover { + opacity: 1; + } + + &:active { + position: relative; + top: 1px; + } + + &.remove-sr { + width: 9px; + height: 9px; + background-image: url(../close-small.png); /* SPRITE */ + } + + &.add { + width: 15px; + height: 15px; + background-image: url(../add.png); /* SPRITE */ + } + } + + &.readonly { + button.remove-sr { + display: none; + } + } + + .share-in-sr { + display: none; + } + &.public { + .share-in-sr { + display: inline; + } + } + + form.add-sr { + .sr-name, button.add { + vertical-align: middle; + } + + .sr-name { + border: 1px solid #ccc; + padding: 3px; + } + + button.add { + border: 5px solid transparent; + } + } + + li { + font-size: 1.15em; + line-height: 1.5em; + + a, button { + vertical-align: middle; + } + } + + .bottom { + margin-top: 1em; + } +} + +.modsr-link { + display: block; + margin-top: 5px; + margin-left: 15px; + font-weight: bold; +} + +.filtered-details { + .unfilter { + font-weight: bold; + display: inline-block; + margin-top: 1em; + &:hover { + text-decoration: underline; + } + } + + .add-sr { + margin-top: 5px; + } +} + +.side .recommend-box { + margin: 15px 5px 30px 0px; + opacity: 0; + .transition(all, .1s, ease-in-out); + + h1 { + display: inline-block; + font-size: 1.35em; + font-weight: bold; + white-space: nowrap; + } + + ul { + margin: 4px 0; + } + + .rec-item { + background-color: rgb(247, 247, 247); + border: solid thin silver; + display: inline-block; + font-size: 1.0em; + margin: 2px; + padding: 0 0 1px 5px; + position: relative; + width: 136px; + white-space: nowrap; + + a { + display: inline-block; + height: 100%; + overflow: hidden; + line-height: 1.8em; + padding-left: 2px; + text-overflow: ellipsis; + vertical-align: middle; + width: 111px; + } + + button.add { + background-color: rgb(247, 247, 247); + background-image: none; + border: none; + cursor: pointer; + height: 100%; + opacity: 0.3; + + &:after { + background-image: url(../add.png); /* SPRITE */ + content: ""; + display: block; + height: 15px; + width: 15px; + } + + &:hover { + opacity: 1.0; + } + } + } + + .more { + color: #369; + cursor: pointer; + display: inline-block; + font-weight: bold; + vertical-align: top; + } + + .endoflist { + background-color: #f7f7f7; + padding: 15px 25px; + + h1 { + margin-bottom: 10px; + } + + .heading { + color: #555; + font-weight: bold; + } + + ul { + font-size: x-small; + list-style-type: disc; + margin: 4px 0 0 20px; + } + + .reset { + cursor: pointer; + } + } +} + +.readonly .recommend-box li > button { + display: none; +} + +.hover-bubble.multi-add-notice { + @bg-color: lighten(orange, 42%); + @border-color: lighten(orangered, 30%); + padding: 10px 15px; + margin-top: -5px; + margin-right: 10px; + background: @bg-color; + border-color: @border-color; + border-radius: 4px; + + &:before { + border-left-color: @border-color; + } + + &:after { + border-left-color: @bg-color; + } + + h3 { + font-size: 2em; + } + + p { + font-size: 1.5em; + color: gray; + } +} + +.sidecontentbox { + font-size: normal; +} + +.sidecontentbox .content { + margin: 0; + padding: 5px; + border: 1px solid gray; + font-size: larger; + list-style: none; +} + +.sidecontentbox .more { + margin-top: 5px; + text-align: right; + font-size: smaller; +} + +.sidecontentbox .more a { + color: gray; +} + +.sidecontentbox .title h1 { + display: inline; + text-transform:uppercase; + margin: 0; + color: gray; + font-size: 130%; +} + +.sidecontentbox.collapsible .title { + cursor: pointer; +} + +.sidecontentbox .collapse-button { + display: inline-block; + width: 10px; + height: 10px; + line-height: 10px; + text-align: center; + font-size: 10px; + background: #eee; + color: #333; + border: 1px solid #999; + border-radius: 2px; + margin: 1px 8px; + vertical-align: bottom; +} + +.sidecontentbox .stamp { + margin-left: 3px; +} + +.titlebox form.toggle, .leavemoderator { + margin: 0; + padding: 5px 0px; + font-size: smaller; + color: gray; + background: white none no-repeat scroll center left; +} + +.usertable .moderator.toggle .main:before, +.titlebox .leavemoderator:before, +.titlebox form.leavecontributor-button:before, +.icon-menu .reddit-edit:before, +.icon-menu .reddit-traffic:before, +.icon-menu .reddit-reported:before, +.icon-menu .reddit-spam:before, +.icon-menu .reddit-edited:before, +.icon-menu .reddit-automod:before, +.icon-menu .wikiaction-pages:before, +.icon-menu .wikiaction-revisions:before, +.icon-menu .reddit-ban:before, +.icon-menu .reddit-mute:before, +.icon-menu .reddit-flair:before, +.icon-menu .reddit-moderationlog:before, +.icon-menu .reddit-unmoderated:before, +.icon-menu .reddit-moderators:before, +.icon-menu .moderator-mail:before, +.icon-menu .edit-stylesheet:before, +.icon-menu .community-rules:before, +.icon-menu .reddit-contributors:before, +.icon-menu .reddit-modqueue:before, +.giftgold a:before, +.gilded-link a:before, +.infobar.gold:before, +.users-online:before, +.notice-taken:before, +.notice-available:before, +.user-form .error:before { + height: 16px; + width: 16px; + display: block; + content: " "; + float: left; + margin-right: 5px; +} + +.titlebox .leavemoderator:before, .moderator.toggle .main:before { + background-image: url(../shield.png); /* SPRITE */ +} + +.moderator.accept-invite .main:before { + background-image: url(../addmoderator.png); /* SPRITE */ +} + +.titlebox form.leavecontributor-button:before { + background-image: url(../pencil.png); /* SPRITE */ +} + +.titlebox form.flairtoggle { + padding: 0; +} + +.titlebox .tagline { + margin: 5px 0 5px 20px; +} + +.icon-menu a { + background: white none no-repeat scroll center left; +} +.icon-menu li {margin: 5px 0;} + +.icon-menu .reddit-edit:before { + background-image: url(../reddit_edit.png); /* SPRITE */ +} +.icon-menu .edit-stylesheet:before { + background-image: url(../css.png); /* SPRITE */ +} +.icon-menu .community-rules:before { + background-image: url(../reddit_rules.png); /* SPRITE */ +} +.icon-menu .reddit-traffic:before { + background-image: url(../reddit_traffic.png); /* SPRITE */ +} +.icon-menu .reddit-reported:before { + background-image: url(../reddit_reported.png); /* SPRITE */ +} +.icon-menu .reddit-spam:before { + background-image: url(../reddit_spam.png); /* SPRITE */ +} +.icon-menu .reddit-ban:before { + background-image: url(../reddit_ban.png); /* SPRITE */ +} +.icon-menu .reddit-mute:before { + background-image: url(../reddit_mute.png); /* SPRITE */ +} +.icon-menu .reddit-flair:before { + background-image: url(../reddit_flair.png); /* SPRITE */ + /* Work around a centering difference between this icon and reddit_ban.png */ + margin-left: 1px; +} +.icon-menu .reddit-moderationlog:before { + background-image: url(../reddit_moderationlog.png); /* SPRITE */ + margin-left: 1px; +} +.icon-menu .reddit-unmoderated:before { + background-image: url(../reddit_unmoderated.png); /* SPRITE */ + margin-left: 1px; +} +.icon-menu .reddit-edited:before { + background-image: url(../reddit_edited.png); /* SPRITE */ + margin-left: 1px; +} +.icon-menu .reddit-automod:before { + background-image: url(../reddit_automod.png); /* SPRITE */ +} +.icon-menu .reddit-moderators:before { + background-image: url(../shield.png); /* SPRITE */ +} +.icon-menu .moderator-mail:before { + background-image: url(../mailgray.png); /* SPRITE */ + width: 15px; + height: 10px; + margin-top: 4px; + margin-left: 1px; +} +.icon-menu .reddit-contributors:before { + background-image: url(../pencil.png); /* SPRITE */ +} +.icon-menu .reddit-modqueue:before { + background-image: url(../reddit_modqueue.png); /* SPRITE */ +} + +.users-online:before { + background-image: url(../online.png); /* SPRITE */ +} + +.notice-taken:before, .notice-available:before { + margin-right: 3px; +} + +.notice-taken:before, +.user-form .error:before { + background-image: url(../icon-circle-exclamation.png); /* SPRITE */ +} + +.notice-available:before { + background-image: url(../icon-circle-check.png); /* SPRITE */ +} + +.linkinfo { + padding: 5px; + border: 1px solid #5f99cf; + background-color: #EFF7FF; + font-family:arial,helvetica,sans-serif; + font-size: larger; + border-radius:3px; +} + +.linkinfo .score .number { + font-size: 22px; + font-weight: bold; + } + +.linkinfo .score .word { + font-size: 15px; + font-weight: bold; + } + + +.linkinfo .shortlink {font-size: 80%; margin-top: 3px; } + +.linkinfo .shortlink input { + border: 1px solid gray; + font-family: monospace; + font-size: 140%; + padding: 3px 2px; + width: 175px; +} + +.linkinfo .shortlink input:hover { + cursor: text; +} + +.linkinfo table {margin-top: 5px;} + +.linkinfo td, .linkinfo th { + padding: 2px; + font-size: smaller; + border: 1px solid gray; +} + +a.adminbox { + border: solid 1px #eeeeee; + color: #cdcdcd; + font-family: monospace; + text-align: center; + padding-right: 1px; +} + +a.adminbox:hover { + text-decoration: none; + color: orangered; + border: solid 1px orangered; +} + +.email { + font-family: monospace; + font-size: larger; +} + +.lined-table, .lined-table th, .lined-table td { + border: solid #cdcdcd 1px; + border-collapse: collapse; + padding: 2px; + margin-bottom: 10px; +} + +.lined-table th { + font-weight: bold; +} + +.wide { + width: 100%; +} + +.centered { + text-align: center; + vertical-align: middle; +} + +.sr-ad-table .inherited { + background-color: #ddeeff; +} +.sr-ad-table .overridden { + background-color: #ffeedd; +} +.sr-ad-table .unused { + background-color: #eee; +} +.sr-ad-table .inherited .whence { + font-style: italic; +} +.sr-ad-table .overridden .whence { + font-weight: bold; +} +.sr-ad-table .details { + font-size: 150%; + padding: 10px; + vertical-align: top; +} +.sr-ad-table .details div { +} +.sr-ad-table .details .codename { + font-size: 150%; + margin-bottom: 20px; +} +.sr-ad-table .weight { + width: 4em; +} + +.ad-assign-table .warning { + font-weight: bold; + color: red; +} + +a.pretty-button:hover { text-decoration: none !important } + +.pretty-button { + display: inline-block; + margin-left: 5px; + margin-bottom: 5px; + + border: 1px solid #666; + padding: 1px 6px; + background: white none repeat-x scroll center left; + + color: #111; + font-size: 10px; + font-weight: normal; + + border-radius: 3px; + outline-style: none; +} + +.pretty-button { + color: black; +} + +.pretty-button.pressed { + color: white; +} + +.pretty-button.negative { + background-image: url(../bg-button-negative-unpressed.png); /* SPRITE stretch-x */ +} + +.pretty-button.negative.pressed { + background-image: url(../bg-button-negative-pressed.png); /* SPRITE stretch-x */ +} + +.pretty-button.neutral { + background-image: url(../bg-button-neutral-unpressed.png); /* SPRITE stretch-x */ +} + +.pretty-button.neutral.pressed { + background-image: url(../bg-button-neutral-pressed.png); /* SPRITE stretch-x */ +} + +.pretty-button.positive { + background-image: url(../bg-button-positive-unpressed.png); /* SPRITE stretch-x */ +} + +.pretty-button.positive.pressed { + background-image: url(../bg-button-positive-pressed.png); /* SPRITE stretch-x */ +} + +.oatmeal img { + display: block; + margin: 5px auto; +} + +.gold-thanks.gold-accent { + font-size: small; + margin: 35px auto 0; + padding: 20px; + width: 600px; + position: relative; + display: block; + border-radius: 3px; +} + +.gold-thanks p { margin: 15px 0; text-align: center; } +.gold-thanks .lounge-msg p { font-size: medium; } +.gold-thanks .fancy-snoo img { + margin: 10px auto; + position: relative; + display: block; +} + +.gold-accent { + margin-top: 10px; + padding: 0 10px 5px; + background-color: #fffdcc; + border: solid 1px #e1b000; + color: #9a7d2e; + display: inline-block; +} + +tr.gold-accent { + display: table-row; + border-radius: 3px; +} + +tr.gold-accent + tr > td { + padding-top: 10px; +} + +.gold-accent.titlebox { + margin-top: 0; + padding-top: .5em; +} + +.allminus-link { + margin-top: 1em; +} + +body:not(.gold) .allminus-link { + opacity: .75; +} + +.allminus-link a { + font-size: 1.15em; +} + +.gilded-link { + margin-top: 1em; +} + +.gilded-link a { + color: #9a7d2e; + font-weight: bold; + font-size: 1.15em; +} + +.gilded-link a:before { + height: 14px; + width: 14px; + margin: 0 6px 0 1px; + background-image: url(../gold-coin.png); /* SPRITE */ +} + +#per-sr-karma { + width: 300px; + margin: .6em auto 0 auto; + table-layout: fixed; +} + +#per-sr-karma thead th, +#per-sr-karma td { + text-align: right; +} + +#per-sr-karma tbody th { + text-align: left; +} + +#per-sr-karma #sr-karma-header { + width: 150px; + text-align: left; +} + +#per-sr-karma thead th { + font-weight: bold; + padding-bottom: 2px; +} + +#per-sr-karma tbody th { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + -o-text-overflow: ellipsis; +} + +#per-sr-karma tbody td { + font-weight: bold; + color: #666; +} + +#per-sr-karma th.helpful span { + border-bottom: 1px dotted #666; + cursor: help; + display: inline-block; +} + +.more-karmas { + display: none; +} + +.karma-breakdown { + margin-top: .6em; + margin-bottom: 5px; +} + +.karma-breakdown a { + font-weight: bold; +} + +.rel-note button[type=submit] { + visibility: hidden; + font-size: x-small; + padding-top: 1px; + padding-bottom: 1px; + margin: 0px; + margin-left: 5px; +} +.rel-note.edited button[type=submit] { visibility: visible; } +.rel-note.edited input[name=note] { width: 65%; } + +.rel-note input[name=note] { + font-size: xx-small; + max-width: 200px; + width: 100%; +} + +form#banned textarea { + display: block; + margin-left: 0; +} + +.gold-accent h1, +.gold-accent th { + color: #6a4d00; + font-family: "Hoefler Text","Palatino Linotype","Book Antiqua", + Palatino,georgia,garamond,FreeSerif,serif; + font-variant: small-caps; +} + +.gold-accent .pretty-form input[type=text] { + margin-top: 1px; + margin-bottom: 2px; + margin-left: 0; /* or else friends with benefits' + "note" td and th don't line up */ +} + +.gold-accent .pretty-form input[type=text]#name { + border-radius: 3px; +} + +.gold-accent .pretty-form button { + background-color: #fff088; + color: #6a4d00; + border: 1px solid #9a7d2e; + border-radius: 3px; +} + +.gold-accent.snoovatar-link { + color: #9A7D2E; + display: block; + padding: 0; + margin: 3px 0; + border-radius: 5px; + text-align: center; + position: relative; + line-height: 30px; + + &:before { + background-image: url(../gold/snoo-head.png); + background-repeat: no-repeat; + content: ''; + display: inline-block; + background-size: 27px; + width: 27px; + height: 27px; + vertical-align: top; + background-position: center left; + margin-top: 1px; + margin-left: -13px; + margin-right: 7px; + } +} + +.gold-expiration-info { + display: block; + margin: 3px 0; + text-align: center; +} + +.gold-expiration-info div:last-of-type { + margin-top: -10px; +} + +.gold-expiration-info .karma { + color: #583800; +} + +.giftgold { + margin-bottom: 5px; +} +.giftgold a { + color: #9a7d2e; + font-weight: bold; +} +.giftgold a:before, +.infobar.gold:before +{ + background-image: url(../giftgold.png); /* SPRITE */ +} + +.gold-accent.comment-visits-box { + color: #583800; + margin: 0px 5px 15px; + padding: 7px 10px 7px 7px; + max-width: 550px; +} + +.gold-accent.roundfield { + margin-top: 0px; +} + +.gold-form .note { + font-size: 13px; + line-height: 16px; + font-style: italic; + color: #222; + margin-top: 25px; +} + +.gold-form p.goldtype-note { + .gold-form .note; + margin-top: 0; + margin-left: 22px; + padding-bottom: 7px; + border-bottom: 1px solid #e1b000; +} + +.gold-form label:last-of-type { + padding-right: 0; + + p.goldtype-note { + border-bottom: 0; + padding: 0; + } +} + +.gold-form .spacer { + margin-top: 20px !important; +} + +.gold-subsection { + display: none; + position: absolute; +} + +.gold-wrap.inline-gold { + .fancy { + width: 620px; + margin: 0; + } + + .fancy-content { + margin: 10px auto; + } + + .sidelines { + display: none; + } +} + +.gold-wrap.cloneable-link, .gold-wrap.cloneable-comment { + display: none; +} + +.gold-form { + .credit-card-input { + display: inline; + } + + .stripe-submit { + display: block; + margin-top: 10px; + } +} + +.gold-wrap form { + display: inline; +} + +.gold-logo { + float: left; + margin: 5px 0; +} + +.thing .gold-form { + margin: 10px 0 10px 4px; + min-height: 0; +} + +.gold-payment .roundfield-content { + margin-left: 80px; +} + +.gold-payment .close-button { + position: absolute; + top: 0; + right: 0; + width: 13px; + height: 13px; + margin: 6px 4px 6px 8px; + border: none; + background: url(../close.png) no-repeat; /* SPRITE */ + text-indent: -9999px; + opacity: .25; +} + +.gold-payment .close-button:hover { + opacity: .55; +} + +.giftmessage { + background-color: white; + border-radius: 3px; + border: solid #888 1px; + color: black; + margin-bottom: 15px; + margin-left: 20px; + padding: 0 10px; + max-width: 300px; + width: 90%; +} + +.gold-button { + margin-left: 5px; + padding: 10px 20px; + color: #fff; + font-size: 1.1em; + font-family: @gold-fonts; + text-align: center; + background-color: @gold-button-bg; + border-radius: 4px; + border: 1px solid transparent; + .transition(background-color, .2s); + .box-sizing(content-box); + box-shadow: inset 0 -2px 0 rgba(0,0,0,0.27); +} + +.gold-button:hover { + background-color: @gold-button-hover; +} + +.gold-button:active { + background-color: @gold-button-hover; + border: @gold-button-border; + box-shadow: inset 0px 0px 7px rgba(0,0,0,0.27); +} + +.gold-button.disabled, .gold-button:disabled { + color: #999; + background-color: #ccc; + border-color: #aaa; + text-shadow: none; +} + +.creddits-gold { + .remaining { + font-size: 10px; + text-align: center; + width: 125px; + position: absolute; + display: block; + line-height: 1.5; + } + + .gold-button { + padding-left: 35px; + position: relative; + + .snoo-head { + background-image: url(../gold/snoo-head.png); + background-repeat: no-repeat; + position: absolute; + top: 7px; + left: 7px; + right: 0; + bottom: 0; + background-size: 23px; + width: 23px; + opacity: 0.5; + .transition(opacity, 0.2s); + } + } + + .gold-button:hover{ + .snoo-head { + opacity: 1; + } + } +} + +.gold-dropdown, .goldvertisement { + font-family: "Bitstream Charter", "Hoefler Text", "Palatino Linotype", + "Book Antiqua", Palatino, georgia, garamond, FreeSerif, serif; +} + +.gold-dropdown { + color: #482800; + background-color: #fff088; + font-size: 16px; +} + +.gold-expiration-info, .server-seconds { + padding: 6px; + border-radius: 5px; +} + +.server-seconds { + background-color: #EFF7FF; + border: 1px solid #5F99CF; + text-align: center; + + p { + padding: 5px 0; + } + + em { + font-weight: bold; + color: #393939; + } +} + +.server-seconds-public { + &.bottom { + border-top-style: dashed; + border-top-color: #ccc; + margin-top: 6px; + padding-top: 10px; + text-align: left; + } + + * { + vertical-align: middle; + } + + input[type=radio] { + margin-top: 0; + } + + label { + margin: 0 5px; + position: relative; + top: -2px; + } + + .title { + float: left; + padding-left: 20px; + margin-right: 10px; + } + + .note { + font-style: italic; + margin-top: 10px; + text-align: center; + } +} + +.comment-visits-box .title { + font-weight: bold; + font-size: 12px; +} + +.new-comment .usertext-body { + background-color: #e5efff; + border: solid 1px #cddaf3; + margin: -1px 0; + padding: 0 4px; +} + +.role { + width: 800px; +} +/* Style that can override other styles. Applied as a class per-field */ +.styled-input { + border: 1px solid gray; + padding: 2px; + + -webkit-box-shadow: inset 0px 1px 1px hsla(0,0%,0%,.3), 0px 1px 0px hsla(0,0%,100%,.6); + -moz-box-shadow: inset 0px 1px 1px hsla(0,0%,0%,.3), 0px 1px 0px hsla(0,0%,100%,.6); + box-shadow: inset 0px 1px 1px hsla(0,0%,0%,.3), 0px 1px 0px hsla(0,0%,100%,.6); +} + +.infobar.client-info { + position: relative; + margin: 10px 2%; + width: 94%; + height: 48px; +} + +.infobar.client-info .icon img { + position: absolute; + left: 10px; + width: 48px; + height: 48px; +} + +.infobar.client-info div { + line-height: 48px; + margin-left: 56px; +} + +.infobar.client-info div p { + white-space: nowrap; +} + +.oauth2-authorize { + position: relative; + background: url(../snoo-tray.png) no-repeat; + width: 542px; + height: 235px; + margin: 40px auto 0; + padding-left: 268px; + padding-top: 18px; +} + +.oauth2-authorize h1 { + margin-left: 10px; +} + +.oauth2-authorize h1 a { + font-weight: bold; + letter-spacing: -.04em; +} + +.oauth2-authorize .icon { + position: absolute; + left: 160px; + top: 69px; + width: 72px; + height: 72px; + line-height: 72px; + text-align: center; + white-space: nowrap; +} + +.oauth2-authorize .icon img { + vertical-align: middle; +} + +.oauth2-authorize .access, +.infobar.client-info { + background: #f7f7f7; + border: 1px solid #b3b3b3; +} + +.oauth2-authorize .access { + position: relative; + float: right; + width: 510px; + padding: 10px 15px; + font-size: 1.5em; + line-height: 1.5em; +} + +.oauth2-authorize .access:before { + position: absolute; + display: block; + content: ''; + border-width: 9px; + border-style: solid solid outset; /* mitigates firefox drawing a thicker arrow */ + border-color: transparent #b3b3b3 transparent transparent; + left: -19px; + top: 13px; +} + +.oauth2-authorize .access:after { + position: absolute; + display: block; + content: ''; + border: 9px solid; + border-color: transparent #f7f7f7 transparent transparent; + left: -18px; + top: 13px; +} + +.oauth2-authorize .access .notice { line-height: normal; } + +.oauth2-authorize h2 { + font-size: 1em; + font-weight: normal; + color: black; +} + +.oauth2-authorize ul { + list-style-type: disc; + padding-left: 25px; +} + +.oauth2-authorize .notice { + color: #333; + font-size: .85em; + margin: .5em 0; +} + +.oauth2-authorize .fancybutton { + margin: 0; + margin-right: 1em; + cursor: pointer; +} + +.oauth2-authorize .fancybutton.allow { + color: white; + background: #ff4500; + border-color: #541700; + box-shadow: inset 0px 1px 0px rgba(255, 255, 255, .25); + text-shadow: 0px 1px 0px rgba(0, 0, 0, .7); +} + +.oauth2-authorize .fancybutton.allow:hover { + background: #ff571a; +} + +.oauth2-authorize .fancybutton.allow:active { + background: #eb3f00; + box-shadow: inset 0px -1px 0px rgba(255, 255, 255, .25); +} + +.oauth2-authorize .fancybutton.decline { + color: black; + background: #eee; + border-color: #555; + box-shadow: inset 0px 1px 0px rgba(255, 255, 255, .5); + text-shadow: 0px 1px 0px rgba(255, 255, 255, .7); +} + +.oauth2-authorize .fancybutton.decline:hover { + background: #f7f7f7; +} + +.oauth2-authorize .fancybutton.decline:active { + background: #e4e4e4; + box-shadow: inset 0px -1px 0px white; +} + +.modactionlisting table { + margin: 0 5px; +} + +.modactionlisting td.timestamp, .modactionlisting td.subreddit { + white-space: nowrap; +} + +.modactionlisting td.button { + padding-right: 0; + padding-left: 1.5em; +} + +.modactionlisting td.description em { + font-style: italic; +} + +.modactions td { + font-size: small; + text-align: left; + padding: 2px 10px; +} +.modactions.banuser, +.modactions.unbanuser, +.modactions.muteuser, +.modactions.unmuteuser, +.modactions.removelink, +.modactions.approvelink, +.modactions.removecomment, +.modactions.approvecomment, +.modactions.addmoderator, +.modactions.removemoderator, +.modactions.invitemoderator, +.modactions.uninvitemoderator, +.modactions.acceptmoderatorinvite, +.modactions.addcontributor, +.modactions.removecontributor, +.modactions.editsettings, +.modactions.editflair, +.modactions.distinguish, +.modactions.marknsfw, +.modactions.wikirevise, +.modactions.wikipermlevel, +.modactions.wikibanned, +.modactions.wikiunbanned, +.modactions.wikicontributor, +.modactions.wikipagelisted, +.modactions.removewikicontributor, +.modactions.ignorereports, +.modactions.unignorereports, +.modactions.setpermissions, +.modactions.setsuggestedsort, +.modactions.sticky, +.modactions.unsticky, +.modactions.setcontestmode, +.modactions.unsetcontestmode, +.modactions.lock, +.modactions.unlock, +.modactions.createrule, +.modactions.editrule, +.modactions.deleterule { + height: 16px; + width: 16px; + display: block; + content: " "; + float: left; + margin-right: 5px; +} +.modactions.banuser { + background-image: url(../modactions_banuser.png); /* SPRITE */ +} +.modactions.unbanuser { + background-image: url(../modactions_unbanuser.png); /* SPRITE */ +} +.modactions.muteuser { + background-image: url(../modactions_mute.png); /* SPRITE */ +} +.modactions.unmuteuser { + background-image: url(../modactions_unmute.png); /* SPRITE */ +} +.modactions.removelink { + background-image: url(../modactions_removelink.png); /* SPRITE */ +} +.modactions.approvelink { + background-image: url(../modactions_approvelink.png); /* SPRITE */ +} +.modactions.removecomment { + background-image: url(../modactions_removecomment.png); /* SPRITE */ +} +.modactions.approvecomment { + background-image: url(../modactions_approvecomment.png); /* SPRITE */ +} +.modactions.addmoderator, +.modactions.invitemoderator, +.modactions.acceptmoderatorinvite { + background-image: url(../modactions_addmoderator.png); /* SPRITE */ +} +.modactions.removemoderator, +.modactions.uninvitemoderator { + background-image: url(../modactions_removemoderator.png); /* SPRITE */ +} +.modactions.addcontributor { + background-image: url(../modactions_addcontributor.png); /* SPRITE */ +} +.modactions.removecontributor { + background-image: url(../modactions_removecontributor.png); /* SPRITE */ +} +.modactions.wikipagelisted, +.modactions.editsettings { + background-image: url(../modactions_editsettings.png); /* SPRITE */ +} +.modactions.editflair { + background-image: url(../modactions_editflair.png); /* SPRITE */ +} +.modactions.distinguish { + background-image: url(../modactions_distinguish.png); /* SPRITE */ +} +.modactions.marknsfw { + background-image: url(../modactions_marknsfw.png); /* SPRITE */ +} +.modactions.wikirevise { + background-image: url(../modactions_wikirevise.png); /* SPRITE */ +} +.modactions.wikipermlevel { + background-image: url(../modactions_wikipermlevel.png); /* SPRITE */ +} +.modactions.wikibanned { + background-image: url(../modactions_banuser.png); /* SPRITE */ +} +.modactions.wikiunbanned { + background-image: url(../modactions_unbanuser.png); /* SPRITE */ +} +.modactions.wikicontributor { + background-image: url(../modactions_addcontributor.png); /* SPRITE */ +} +.modactions.removewikicontributor { + background-image: url(../modactions_removecontributor.png); /* SPRITE */ +} +.modactions.ignorereports { + background-image: url(../modactions_mute.png); /* SPRITE */ +} +.modactions.unignorereports { + background-image: url(../modactions_unmute.png); /* SPRITE */ +} +.modactions.setpermissions { + background-image: url(../modactions_setpermissions.png); /* SPRITE */ +} +.modactions.setsuggestedsort { + background-image: url(../modactions_setsuggestedsort.png); /* SPRITE */ +} +.modactions.sticky { + background-image: url(../modactions_sticky.png); /* SPRITE */ +} +.modactions.unsticky { + background-image: url(../modactions_unsticky.png); /* SPRITE */ +} +.modactions.setcontestmode { + background-image: url(../modactions_setcontestmode.png); /* SPRITE */ +} +.modactions.unsetcontestmode { + background-image: url(../modactions_unsetcontestmode.png); /* SPRITE */ +} +.modactions.lock { + background-image: url(../modactions_lock.png); /* SPRITE */ +} +.modactions.unlock { + background-image: url(../modactions_unlock.png); /* SPRITE */ +} +.modactions.createrule { + background-image: url(../modactions_createrule.png); /* SPRITE */ +} +.modactions.editrule { + background-image: url(../modactions_editrule.png); /* SPRITE */ +} +.modactions.deleterule { + background-image: url(../modactions_deleterule.png); /* SPRITE */ +} + +.adminpasswordform { + display: block; + margin: .5em auto 0 auto; +} + +.adminpasswordform label { + display: block; + padding: .5em; +} + +.content.api-help { + font-size: 1.25em; + margin: 0 auto; + max-width: 950px; +} + +.api-help .contents { + padding: 0 20px; + margin-left: 24em; + margin-top: 20px; +} + +.api-help .contents .section { + margin-bottom: 2em; +} + +.api-help .sidebar { + float: left; + margin-left: 10px; +} + +.api-help .sidebar .head { + position: relative; + background: url(../xray-snoo-head.png) top center no-repeat; + height: 188px; + margin-bottom: -78px; + z-index: 2; +} + +.api-help .sidebar .feet { + position: relative; + background: url(../xray-snoo-feet.png) top center no-repeat; + height: 75px; + margin-top: -42px; + z-index: 2; +} + +.api-help .toc { + background: #181818 url(../xray-snoo-body.png) center repeat-y; + border: 5px solid #959595; + border-radius: 8px; + padding: 15px 2em 0 2em; + width: 18em; +} + +.api-help .contents .introduction { + position: relative; + border: 2px solid #ccc; + border-radius: 12px; + margin-bottom: -1em; +} + +.api-help .contents .introduction p { + margin: 1em 14px; +} + +.api-help .contents .introduction strong { + color: #222; + font-weight: bold; +} + +.api-help .contents .overview { + h3 { + margin-top: 1.5em; + } + + p { + margin: .8em 0; + } + + code { + background-color: #f0f0f0; + padding: 0 .5em; + border-radius: 3px; + } +} + +.api-help .toc ul { + position: relative; + margin-top: .5em; + margin-bottom: 1.5em; + z-index: 10; +} + +.api-help .toc > ul > li > strong { + color: #aaa; +} + +.api-help .toc a.section { + color: #888; + font-weight: bold; +} + +.api-help .toc a { + display: block; + color: #8EB0D2; +} + +.api-help .toc a:hover, .api-help .endpoint a:hover { + text-decoration: underline; +} + +.api-help .toc .mode-selector { + display: inline-block; + font-size: x-small; + border-radius: 5px; + border: 1px solid #888; + margin-top: 6px; + vertical-align: middle; +} + +.api-help .toc .mode-selector .mode { + display: inline-block; + margin: 2px; + padding-top: 2px; + padding-bottom: 3px; + border-radius: 3px; + text-align: center; + width: 107px; + color: #ddd; +} + +.api-help .toc .mode-selector .mode:hover { + background-color: #ccc; + color: black; + text-decoration: none; +} + +.api-help .toc .mode-selector .mode-current { + color: black; + background-color: #eee; +} + +.api-help .toc .mode-selector .mode-current:hover { + background-color: #ddd; +} + +.api-help em.placeholder { + font-style: italic; + font-weight: normal; +} + +.api-help .toc em.placeholder { + color: #8EB0D2; +} + +.api-help .toc li.supports-oauth a { background: none; } +.api-help .toc li.supports-oauth a:after { + content: 'oauth'; + display: inline-block; + position: absolute; + right: 0; + font-size: .75em; + background: #29440e; + color: #ddc; + padding: 0 2px; + margin-left: 2px; + border-radius: 2px; +} + +.api-help .endpoint em.placeholder { + color: #369; +} + +.api-help .endpoint, .api-help .section .description { + margin-bottom: 1.5em; +} + +.api-help .oauth-scope-list { display: inline; margin-left: 1em; } + +.api-help .api-badge { + display: inline-block; + margin-left: 0.5em; + font-size: .75em; + font-weight: normal; + vertical-align: bottom; + color: #fbfbf9; + padding: 2px 6px; + border-radius: 2px; +} + +.api-badge.oauth-scope { + background: #577439; +} + +.api-badge.rss-support { + background: #f38f35; +} + +.api-help .overview h2, +.api-help .methods h2 { + color: black; + font-size: 1.45em; + text-align: middle; + margin-top: 1.5em; + margin-bottom: 1em; + border-bottom: 1px solid #aaa; +} + +.api-help .methods h2 .scope-id { + margin-left: 1em; + font-size: small; + font-weight: normal; + font-style: italic; +} + +.api-help .endpoint .info { + padding-left: 1em; + border-left: 1px solid #ddd; +} + +.api-help .endpoint h3, .api-help .endpoint .uri-variants { + color: #369; + margin-bottom: .5em; +} + +.api-help .endpoint .uri-variants { + opacity: .85; + font-weight: bold; + margin-top: -.5em; + margin-left: 3em; +} + +.api-help .endpoint .method, .api-help .endpoint .extensions { + font-weight: normal; + color: gray; +} + +.api-help .endpoint .extensions { + margin-left: .5em; +} + +.api-help .endpoint .links { + float: right; +} + +.api-help .endpoint .links a { + margin-left: .85em; + opacity: .45; +} + +.api-help .endpoint:hover .links a { + opacity: 1; +} + +.api-help .parameters { + background: #f0f0f0; + border-collapse: separate; + border-radius: 3px; + padding: 5px 10px; + border-spacing: 0; + width: 100%; +} + +.api-help caption { + font-weight: bold; + margin: 1em 0 .5em .5em; +} + +.api-help .parameters th, +.api-help .parameters td { + vertical-align: top; + border-bottom: 1px dotted #ccc; + padding: 5px 0; + margin: 0; +} + +.api-help .parameters tr:last-child th, +.api-help .parameters tr:last-child td { + border: none; +} + +.api-help .parameters th { + font-family: 'Courier New', monospace; + line-height: 1.6; + width: 30%; + padding-right: 10px; +} + +.api-help .parameters td pre { + margin: .5em 0; +} + +.api-help .parameters code { + white-space: pre-wrap; +} + +#classy-error { + text-align: center; +} + +.errorpage-message { + margin: 1em auto; + width: 500px; + font-size: small; +} + +.errorpage-message.sr-description { + border-top: 1px solid black; + margin-top: 2em; + padding-top: 2em; +} + +.errorpage-message.sr-description h2 { + color: black; + font-weight: bold; + font-size: 125%; + margin-bottom: .7em; +} + +.sr-description p { + margin: .75em 0; +} + +#private-subreddit-message-link { + border-top: 1px solid black; + margin-top: 1em; + padding-top: 2em; + font-size: 1.4em; +} + +/** one-time password stuff **/ +#pref-otp .roundfield { + margin: 1em 0; +} + +#pref-otp-qr { + display: none; +} + +#otp-secret-info { + margin: 2em; + width: 512px; + font-size: small; +} + +#otp-secret-info div { + margin: 1em 0; +} + +#otp-secret-info .secret { + font-weight: bold; +} + +.users-online { + margin-bottom: .25em; +} + +.users-online .word, .users-online .number:after { + cursor: help; +} + +.sr-interest-bar { + position: relative; + background: #cee3f8 url(../snoo-upside-down.png) 15px top no-repeat; + padding: 5px; + overflow: hidden; + border: 1px solid #336699; + margin-bottom: 10px; +} + +.organic-listing .sr-interest-bar { + border: none; + margin: 0; +} + +.sr-interest-bar .bubble { + position: relative; + margin-left: 85px; + margin-right: 68px; + max-width: 700px; + font-size: 13px; + background: white; + padding: 6px; + border-radius: 8px; +} + +.sr-interest-bar .bubble:after { + position: absolute; + display: block; + content: ''; + border: 10px solid; + border-style: solid solid outset; + border-color: transparent; + border-right-color: white; + left: -20px; + top: 15px; +} + +.sr-interest-bar .bubble p { + margin: 6px 3px; + margin-top: 0; +} + +.sr-interest-bar .subscribe { + background-image: url(../bg-button-add.png); /* SPRITE stretch-x */ + border: 1px solid #444; + border-radius: 3px; + padding: 0 6px; + color: white; + font-weight: bold; +} + +.sr-interest-bar .query-box { + position: relative; + padding: 2px 4px; + border: 2px solid #979797; + border-radius: 5px; +} + +.sr-interest-bar.focus .query-box { + border-color: #5f99cf; +} + +.sr-interest-bar.error .query-box { + border-color: #cf5e5e; +} + +.sr-interest-bar .error-caption, .sr-interest-bar.error .caption { + display: none; +} + +.sr-interest-bar.error .error-caption { + display: block; +} + +.sr-interest-bar .query { + width: 100%; + font-size: 20px; + margin: 0; + padding: 0; + border: none; + outline: none; +} + +.sr-interest-bar .throbber { + position: absolute; + right: 3px; + top: 5px; +} + +.sr-interest-bar ul.results { + margin: 0; + margin-top: 6px; + padding-top: 2px; + border-top: 1px dotted #bbb; + display: none; +} + +.sr-interest-bar li { + display: inline-block; + margin: 6px 3px; +} + +.sr-interest-bar a { + padding: 1px 2px; +} + +.sr-interest-bar a:hover { + text-decoration: underline; +} + +.sr-interest-bar .results .random { + color: gray; + font-weight: bold; +} + +.ajax-upload-form iframe { display: none; } + +.developed-app, .authorized-app { + border: solid 1px black; + margin-left: 20px; + margin-bottom: 0.5em; + padding: 7px; + position: relative; + width: 880px; + font-size: x-small; +} + +.developed-app.collapsed, .authorized-app { min-height: 100px; } +.developed-app .collapsed { display: none; } + +.developed-app .ajax-upload-form { + display: none; +} + +.app-details { + display: inline-block; + width: 200px; + min-height: 72px; + margin-left: 1em; + vertical-align: top; +} + +.app-details h2 { font-size: medium; margin: 0px; } +.app-details h3 { font-size: x-small; margin: 0px; } + +.app-icon { + display: inline-block; + width: 72px; + height: 72px; + line-height: 72px; + text-align: center; + white-space: nowrap; +} + +.app-icon img { + vertical-align: middle; +} + +.app-permissions li { position: relative; } +.app-permissions-details { margin-top: 1em; } + +.app-scope { + display: none; + position: absolute; + top: 1ex; + left: 3ex; + border: 1px solid black; + background: #fffdcc; + z-index: 1; +} + +.app-description { + display: inline-block; + font-size: small; + width: 597px; + height: 80px; + overflow-y: auto; + vertical-align: top; +} + +.app-developers { + position: absolute; + left: 289px; + bottom: 1ex; + width: 600px; +} + +.edit-app-button, .revoke-app-button { + position: absolute; + bottom: 1ex; + left: 12px; + width: 200px; +} + +.edit-app.collapsed, .edit-app-icon, .developed-app .collapsed { + display: none; +} + +.edit-app-icon-button { display: block; text-align: center; width: 72px; } +.edit-app-form, .edit-app-form form { display: inline-block; } +.edit-app-form th, .edit-app-icon th { width: 12ex; } +.edit-app-form input.text { margin: 0px; width: 50ex; } +.edit-app-form input[name="name"] { width: 20ex !important; } +.edit-app-form input[type="file"] { width: auto !important; } +.edit-app-form input[type="submit"] { + margin-left: 10px; + width: auto !important; +} + +.delete-app-button { + position: absolute; + bottom: 7px; + left: 100px; +} + +#create-app { display: none; } + +table.diff {font-size: small;} +.diff_header {background-color:lightgrey} +.diff_next {background-color:lightgrey} +.diff_add {background-color:lightgreen} +.diff_chg {background-color:yellow} +.diff_sub {background-color:lightcoral} + +.gilded-icon { + position: relative; + display: inline-block; + margin: 0 0 -15px 8px; + top: -8px; + color: #99895F; + font-size: .9em; + vertical-align: middle; +} + +.gilded-icon:before { + display: inline-block; + content: ''; + background-image: url(../gold-coin.png); /* SPRITE */ + background-repeat: no-repeat; + height: 14px; + width: 13px; + margin-right: 2px; + vertical-align: -3px; +} + +.user-gilded > .entry .gilded-icon:before { + width: 23px; +} + +body.post-under-6h-old .gilded-icon { + opacity: .55; +} + +.gold-progress (@bar-height: 17px) { + padding: (@bar-height / 2 - 1) 0; + + .bar { + border: 1px solid #dad0b3; + height: @bar-height; + overflow: auto; + + border-radius: 10px; + + span { + display: block; + height: 100%; + background-color: #f3e287; + background-image: -webkit-linear-gradient(top, #fff8ba, #eccf90); + background-image: linear-gradient(to bottom, #fff8ba 0%, #eccf90 100%); + border-radius: (@bar-height/2); + } + } + + p { + float: right; + font-weight: bold; + font-size: @bar-height - 2; + color: #5a3f1a; + line-height: @bar-height + 2; // +2 to match border on bar + margin-left: 6px; + margin-top: 0; + } +} + +.goldvertisement { + @border-color: #c4b487; + @background-shadow: #dad0b3; + + border: 1px solid @border-color; + text-align: center; + line-height: 1.3em; + box-shadow: 0 0 10px @background-shadow inset; + color: darken(@border-color, 40%); + + .inner { + margin: 1px; + border: 1px solid #dbd1b5; + padding: 6px 8px; + } + + li { + display: inline-block; + margin-right: 2em; + } + + h2 { + margin: 0; + font-weight: normal; + color: inherit; + } + + .progress { + .gold-progress + } + + a { + display: inline-block; + margin: 0; + padding: 2px 4px; + border-radius: 3px; + background: lighten(@background-shadow, 20%); + border: 1px solid lighten(@border-color, 10%); + border-bottom-width: 2px; + color: darken(@border-color, 40%); + + &:hover { + background: #fdf4c5; + } + + &:active { + margin-top: 1px; + border-bottom-width: 1px; + } + } +} + +.gold-bubble { + width: 290px; + border-radius: 4px; + font-size: 125%; + line-height: 1.13; + font-family: "Hoefler Text","Palatino Linotype","Book Antiqua", + Palatino,georgia,garamond,FreeSerif,serif; + border-color: #907c47; + padding: 4px; + + &.anchor-top-centered:before { + border-bottom-color: #907c47; + } + + p + p { + margin-top: 1em; + } + + span.gold-branding { + display: inline-block; + vertical-align: bottom; + text-indent: -9999px; + background: transparent url(../gold/goldvertisement-logo.png) top left no-repeat; + width: 79px; + height: 18px; + margin-right: 1px; + } + + p.buy-gold { + background: transparent url(../gold/goldvertisement-gold.png) top left no-repeat; + margin-left: 13px; + padding-left: 67px; + min-height: 45px; + + a { + color: #825b25; + } + } + + p.give-gold { + background: transparent url(../gold/goldvertisement-gild.png) top left no-repeat; + margin-left: 23px; + padding-left: 57px; + min-height: 39px; + } + + p.aside { + color: #777; + font-style: italic; + + a { + color: inherit; + } + } + + div.history { + margin: 5px 0; + padding-top: 2px; + border-top: 1px solid #e2ddcf; + + p { + margin-bottom: 0; + } + + .progress { + .gold-progress(12px); + margin: 0 7px; + opacity: 0.8; + + p { + margin-right: 0; + font-weight: normal; + } + } + } +} + +#stripe-payment th { + padding:5px; + vertical-align:top; + text-align:right; + white-space:nowrap; + font-size:smaller; +} +#stripe-payment { + padding-top: 15px; + + .credit-card-amount, .credit-card-interval { + text-align: left; + } +} +#stripe-payment th label { display:inline; } +#stripe-payment td input { + font-size:small; + width:200px; +} + +#stripe-payment input.card-cvc { width:9ex; } +#stripe-payment input.card-address_zip { width:13ex; } + +.stripe-note a.icon { + position: relative; + float: left; + text-indent: -9999px; + margin-right: 10px; + width: 119px; + height: 33px; + background-image: url(../stripe.png); +} + +.stripe-note div { + float: left; + width: 250px; + font-size: small; +} + +.gold-subscription { + font-size: small; + padding: 2px; + + div.buttons { + padding: 10px 0; + } + + .cancel-button, .edit-button { + margin: 5px; + display: inline; + } + + .status, .error { + font-size: small; + margin: 0; + } + + .roundfield { + background-color: #fffdd7; + width: 400px; + } + + #stripe-cancel { + display: inline; + } +} + +.permissions { + display: inline-block; + font-size: small; + text-align: right; + width: 36ex; +} +#moderator_invite .permissions { width: 30ex; } +.permissions > form { display: none; } + +.permission-summary { + display: inline-block; + font-size: small; + border: 1px solid white; +} +.permission-summary.edited { border: dashed 1px black; } +.permission-bit.added { font-weight: bold; } +.permission-bit.removed { text-decoration: line-through; } +.permission-bit.none { font-style: italic; } + +.permissions-edit { font-size: x-small; } + +.permission-selector { + border: 1px solid black; + background-color: white; + position: absolute; + width: 24ex; +} +.permission-selector.active { display: block; } +.permission-selector label { + display: block; text-align: left; + padding: 0px 2px 1px 2px; +} +.permission-selector label:first-child { border-bottom: 1px solid black; } +.permission-selector label:hover { background-color: #bbb; } +.permission-selector label.disabled { background-color: #ddd; } +.permission-selector form { text-align: right; } +.permission-selector .status, .permission-selector .error { + text-align: left; + white-space: normal; +} + +.light-button { + background: none; + border: 1px solid #777; + border-radius: 3px; + box-shadow: 0 1px 1px rgba(0, 0, 0, .25); + opacity: .75; + + &:active { + position: relative; + top: 1px; + box-shadow: none; + } +} + +.light-text-input { + background: white; + border: 1px solid #ccc; + padding: 2px 5px; +} + +@lc-width: 130px; +@lc-shadow-width: 6px; +@lc-grippy-width: 8px; +body.with-listing-chooser { + @grippy-image-width: 6px; + @grippy-image-height: 65px; + @grippy-fudge: 6px; // extra width for easy targeting + position: relative; + + & #header .tabmenu { + margin-left: @lc-grippy-width; + li:first-child.selected { + margin-left: 2px; + } + } + + & #header .pagename { + position: absolute; + bottom: 20px; + margin-left: @lc-grippy-width + 2px; + } + + & > .content, & .footer-parent { + margin-left: 140px + @lc-grippy-width; + } + + .listing-chooser { + position: absolute; + top: 65px; + left: 0; + bottom: 0; + width: @lc-width; + padding-right: @lc-grippy-width + @grippy-fudge; + background: #f7f7f7; + overflow: hidden; + + &.initialized { + .transition(width, .25s); + + .grippy, .grippy:before, .grippy:after { + // the 0.03s delay here is intended to prevent flashes when the + // mouse is passing over en route to a tab. + .transition(all, 0.1s, ease, 0.03s); + } + } + + .grippy { + position: absolute; + right: 0; + width: @lc-grippy-width + @grippy-fudge; + height: 100%; + background: white; + border-left: 1px solid #ccc; + box-shadow: 0 0 @lc-shadow-width rgba(0, 0, 0, .2); + z-index: 25; + cursor: pointer; + + &:before { + content: ''; + display: block; + position: absolute; + width: @lc-grippy-width; + height: 100%; + background: url(../sidebar-grippy-hide.png) fixed no-repeat; + background-position: (@lc-width + (@lc-grippy-width - @grippy-image-width) / 2) center; + margin-left: (@lc-grippy-width - @grippy-image-width) / 2; + opacity: .5; + } + + &:after { + content: ''; + display: block; + position: absolute; + height: 100%; + right: @grippy-fudge - 1; + width: @lc-grippy-width; + border-right: 1px dotted #e5e5e5; + z-index: -1; + } + + &:hover { + &:before { + opacity: 1; + } + + &:after { + background: #f4f4f4; + } + } + } + + &:hover { + .grippy:before { + opacity: .8; + } + } + } + + &.listing-chooser-collapsed { + @lc-grippy-width: 9px; + + & #header .tabmenu { + margin-left: 0; + } + + & #header .pagename { + margin-left: 2px; + } + + & > .content, & .footer-parent { + margin-left: @lc-grippy-width + 6px; + } + + .listing-chooser { + width: 0; + padding-right: @lc-grippy-width + @grippy-fudge; + z-index: -1; + + .grippy { + z-index: 40; + width: @lc-grippy-width + @grippy-fudge; + + &:before { + background-image: url(../sidebar-grippy-show.png); + background-position: ((@lc-grippy-width - @grippy-image-width) / 2 + 1) center; + margin-left: (@lc-grippy-width - @grippy-image-width) / 2; + width: @lc-grippy-width; + } + + &:after { + right: @grippy-fudge - 1; + width: @lc-grippy-width; + border-right: 1px solid #ccc; + } + } + } + } +} + +.listing-chooser { + h3 { + color: #777; + text-align: right; + padding: 4px; + } + + .intro { + background: lighten(#f6e69f, 5%); + border: 1px solid lighten(orange, 5%); + border-left: none; + border-right: none; + margin-bottom: 10px; + + // set a static width so text doesn't wrap upon bar collapse + width: @lc-width; + + p { + font-size: 1.15em; + margin: 4px; + margin-left: 8px; + } + + ul.multis { + margin: 6px 0; + } + } + + ul.global, ul.other { + padding: 8px 0; + li { + margin-left: 4px; + + a { + font-size: 1.3em; + padding: 1em 5px; + padding-left: 12px; + } + } + } + + ul.other { + margin-top: 10px; + } + + ul.multis { + li { + margin-left: 12px; + .transition(all, 0.15s); + + &:hover { + margin-left: 9px; + } + + a { + font-size: 1.2em; + padding: .8em 5px; + padding-left: 10px; + } + } + } + + li { + text-align: left; + margin-bottom: 3px; + background: #fff; + border: 1px solid #ccc; + border-bottom-width: 2px; + border-right: none; + border-top-left-radius: 5px; + border-bottom-left-radius: 5px; + + a { + display: block; + position: relative; + overflow: hidden; + text-overflow: ellipsis; + margin-right: 5px; + + .description { + color: gray; + font-size: .8em; + font-weight: normal; + white-space: nowrap; + } + } + + &:last-child a { + border-bottom: none; + } + + &.selected { + position: relative; + background: lighten(#cee3f8, 6%); + border-color: lighten(#369, 40%); + margin-right: -@lc-grippy-width; + padding-right: @lc-grippy-width; + box-shadow: -30px 0 30px -15px rgba(255, 255, 255, .5) inset, + 0 2px @lc-shadow-width -1px rgba(0, 0, 0, .2); + z-index: 35; + + a { + font-weight: bold; + } + + &:before { + @size: 5px; + position: absolute; + top: 50%; + right: 0; + margin-top: -@size; + display: block; + content: ''; + border: @size solid ~"transparent"; + border-style: solid solid outset; // mitigates firefox drawing a thicker arrow + border-left-color: lighten(#369, 25%); + } + } + + &.gold-perks { + background: #fdfbf2; + a { + color: #9a7d2e; + } + + &.selected { + border-color: lighten(#c4b487, 6%); + + &:before { + border-left-color: lighten(#9a7d2e, 15%); + } + } + } + } + + + .create { + padding: 5px; + + input[type="text"] { + .light-text-input; + width: 95px; + margin-bottom: 3px; + display: none; + } + + .error { + margin: 4px 0; + width: 100px; + } + + button { + display: inline; + text-align: center; + padding: 1px 4px; + margin: 0; + + background: none; + border: 1px solid #777; + border-radius: 3px; + opacity: .5; + + &:hover { + opacity: .90; + } + + &:active { + background: #e9e9e9; + } + } + + button, .throbber { + vertical-align: middle; + } + + .throbber { + float: right; + } + + &.expanded { + input[type="text"] { + display: block; + } + + button { + .light-button; + } + } + } +} + +.user-jumped-to { + border-radius: 5px; + -moz-border-radius: 5px; + border: 1px solid #DDF; + display: inline-block; + margin-top: 10px; + padding: 10px 15px; + background-color: #EEF; +} + +.submit_text { + display: none; + max-height: 250px; + overflow: auto; + + ol, ul { + margin: 0; + margin-left: 2em; + } + + &.working .content:before { + content: ""; + width: 16px; + height: 16px; + display: block; + background-image: url(../throbber.gif); + } + + h1 { + color: rgb(51, 102, 153); + display: block; + font-size: 16px; + font-weight: bold; + } + + .content { + margin: 0; + + p { + word-wrap: break-word; + clear: both; + } + } + + &.enabled { + display: inline-block; + } +} + +.hover-bubble.save-selector { + label { + display: block; + font-weight: bold; + margin-left: 5px; + font-size: 10px; + } + .savedcategory { + border: 1px solid #ccc; + padding: 1px 3px; + margin: 0 2px; + } + display: none; +} + +.save-category { + &.hidden { + display: none; + } + margin-left: 2px; + background-color: #DDF; + padding: 2px 5px; + border-radius: 5px; + -moz-border-radius: 5px; +} + +#adminnotes-form { + textarea { + width: 285px; + } + + .notes-button { + margin: 3px 0px; + display: block; + } +} + +#past-notes { + overflow-y: auto; + max-height: 150px; + + li.adminnote { + border-top: 1px solid black; + overflow-x: auto; + } + + .adminnote-info { + text-align: right; + font-size: small; + font-style: italic; + } +} + +.trending-subreddits { + margin-top: -2px; + margin-bottom: 8px; + line-height: 1.75em; + + // the combined padding/margins of .link and .midcol + margin-left: 17px; + body.compressed-display & { + margin-left: 15px; + + .midcol-spacer { + width: 15px; + } + } + + // hax to align trending subreddits list with links/thumbnails + // this uses the overflow:hidden trick to create a block formatting context + // to shift the left edge of the trending subreddits list over + .rank-spacer, .midcol-spacer { + float: left; + height: 1px; + } + + .trending-subreddits-content { + overflow: hidden; + } + + strong { + color: #29541c; + + &:before { + height: 14px; + width: 14px; + display: inline-block; + content: " "; + margin-right: 5px; + background-image: url(../trending.png); /* SPRITE */ + vertical-align: middle; + } + } + + ul { + display: inline; + } + + li { + display: inline-block; + margin-left: 0.5em; + } + + li:first-child { + margin-left: 0; + } + + ul, .comments { + margin-left: 1em; + } + + .comments { + color: #888; + font-weight: bold; + white-space: nowrap; + + &:hover { + text-decoration: underline; + } + } +} + +/* Responsive gold paper-style fancy borders with endcaps */ +.fancy { + @endcap-height: 27px; + @endcap-overhang-width: 4px; + @endcap-width: 27px; + @fancy-bg-color: #FFFCFC; + @inner-padding-width: 12px; + + background-color: @fancy-bg-color; + border: 2px solid #D4D3CF; + margin: 10px auto; + max-width: 974px; + padding: 0; + position: relative; + width: 100%; + + .fancy-inner { + background-image: url(../gold/gold-laurel-bg.png); + background-position: top center; + background-repeat: no-repeat; + border: 1px solid #e3e2df; + margin: @inner-padding-width; + padding: 0; + position: relative; + } + + // end caps + &:before, + &:after, + .fancy-inner:before, + .fancy-inner:after { + background-image: url(../gold/endcap.png); + background-repeat: no-repeat; + background-size: 27px 27px; + content: ''; + display: block; + height: @endcap-height; + position: absolute; + width: 100%; + } + + // top right + &:before { + .transform(scaleX(-1)); + background-position: top left; // mirrored x + margin-left: @endcap-overhang-width - 1px; + margin-top: -@endcap-overhang-width + 1px; + } + + // bottom left + &:after { + .transform(scaleY(-1)); + background-position: top left; // mirrored y + margin-left: -@endcap-overhang-width + 1px; + margin-top: @endcap-overhang-width - @endcap-height - 1px; + } + + // top left + .fancy-inner:before { + background-position: top left; + margin-left: -@endcap-overhang-width - @inner-padding-width; + margin-top: -@endcap-overhang-width - @inner-padding-width; + } + + // bottom right + .fancy-inner:after { + .transform(scaleY(-1) scaleX(-1)); + background-position: top left; // mirrored xy + margin-left: @endcap-overhang-width + @inner-padding-width; + margin-top: @inner-padding-width + @endcap-overhang-width - @endcap-height; + } + + .fancy-content { + margin: 30px auto; + max-width: 600px; + padding: 3px; + } +} + +// Show nice little fancy lines on the side of a header. +// Adapted from http://css-tricks.com/line-on-sides-headers/ +.sidelines { + overflow: hidden; + text-align: center; + font-size: 1.75em; + color: #444; + font-weight: bold; + line-height: 1.6; + + span { + display: inline-block; + position: relative; + + &:before, + &:after { + content: ''; + position: absolute; + border: 0 solid #ccc; + height: 1px; + border-top-width: 1px; + top: 50%; + width: 600px; + } + + &:before { + right: 100%; + margin-right: 15px; + } + + &:after { + left: 100%; + margin-left: 15px; + } + } +} + +.gold-page, +.gilding { + overflow-y: scroll; +} + +.gold-wrap { + @dark: #686868; + @light: #cccccb; + @off-white: #fffdfd; + + font-family: @gold-fonts; + color: @dark; + font-size: 1.5em; + line-height: 1.6em; + + &.inline-gold { + margin: 10px 0; + + h1 { + display: none; + } + + .fancy-inner { + background-position: bottom center; + } + + .gold-snoo { + display: none; + } + + .gold-form { + margin: 0 20px 5px; + font-size: 1em; + + .gold-button { + font-size: 1em; + } + + .container { + padding: 0; + border: none; + background-color: transparent; + } + + .transaction-summary { + padding-bottom: 0; + } + } + } + + .gold-banner { + background: transparent url(../gold/reddit-golds.png) center center no-repeat; + background-size: contain; + height: 80px; + margin: 30px auto 20px; + text-indent: -9999px; + text-align: center; + max-width: 500px; + + a { + display: block; + height: 100%; + width: 100%; + } + } + + .container { + padding: 10px 30px; + border: 1px solid @light; + background-color: @off-white; + + a { + color: @dark; + text-decoration: underline; + } + } + + .tab { + display: none; + + &.active { + display: block; + } + } + + .error { + background: transparent center left no-repeat; + background-image: url(../icon-circle-exclamation.png); /* SPRITE */ + padding-left: 20px; + white-space: nowrap; + line-height: 1; + } + + #form-options section { + padding: 10px 0; + } + + .tab-chooser { + margin-bottom: 10px; + width: 100%; + display: inline-block; + + h3 { + text-align: center; + font-weight: normal; + font-size: 1em; + font-style: italic; + margin: 0; + line-height: 3em; + } + } + + a.tab-toggle { + .box-sizing(border-box); + background-color: @gold-button-bg; + border-radius: 0px; + border-top: @gold-button-border; + border-bottom: @gold-button-border; + border-right: @gold-button-border; + box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.27); + color: @off-white; + display: inline-block; + float: left; + font-family: @gold-fonts; + font-size: 1.1em; + height: 66px; + line-height: 66px; + text-align: center; + text-decoration: none; + vertical-align: middle; + width: 33%; + + &.active { + background-color: @gold-button-active; + box-shadow: inset 0px 0px 14px rgba(0,0,0,0.27); + } + + &:not(.active):hover { + background-color: @gold-button-hover; + box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.27); + } + + &:first-of-type { + border-radius: 3px 0 0 3px; + border-left: @gold-button-border; + } + + &:last-of-type { + border-right-width: 1px; + border-radius: 0 3px 3px 0; + } + } + + .buttons { + margin-top: 10px; + } + + h2 { + color: @dark; + } + + h3 { + font-size: 1.1em; + color: @dark; + margin-bottom: 10px; + } + + h3.toggle, dt.toggle { + cursor: pointer; + margin-bottom: 0; + } + + dt.toggle:before { + content: "[+] "; + } + + dt.toggle.toggled:before { + content: "[–] "; + } + + section#redeem-a-code { + margin-top: -10px; + + .sidelines { + font-size: 1em; + font-weight: normal; + padding: 0.7em; + color: #686868; + } + } + + .gold-payment { + .gift-message { + background-color: #fff; + margin: 10px 30px; + padding: 0 10px; + border: 1px solid #cccccb; + } + + .transaction-summary { + padding-bottom: 10px; + + p { + padding: 5px 0; + + strong { + font-weight: bold; + } + } + + blockquote { + font-size: 0.8em; + font-style: italic; + } + } + + .divider-text { + font-weight: bold; + font-size: 1.75em; + color: #444; + } + + .status { + margin: 5px 0 0 0; + } + } + + span.gold-snoo { + background: transparent url(../gold/gold-snoo.png) center center no-repeat; + background-size: 100px; + position: absolute; + right: 160px; + margin-top: -85px; + width: 100px; + height: 171px; + text-indent: -9999px; + } + + .login-note { + text-align: center; + font-size: 13px; + font-style: italic; + line-height: 1; + margin-bottom: 20px; + + a { + text-decoration: underline; + } + } + + section.gold-question { + margin-top: 20px; + + h3.toggle { + font-weight: normal; + font-size: 0.9em; + + &:before { + content: "[+] "; + } + + &.toggled:before { + content: "[–] "; + } + } + } + + section#give-as-gift { + padding-top: 10px; + } + + input[type=checkbox], input[type=radio] { + margin: 0 0.5em 0 0; + } + + input[type=text].inline, input[type=email].inline { + font-size: 0.9em; + margin: 2px 5px 5px 5px; + } + + input[type=text], input[type=email], textarea { + .box-sizing(border-box); + border: 1px solid @light; + color: @dark; + background-color: #fff; + font-family: @gold-fonts; + font-style: italic; + padding: 5px; + font-size: 1em; + } + + input[name="code"] { + width: 100%; + padding: 10px; + } + + input:focus::-webkit-input-placeholder, + textarea:focus::-webkit-input-placeholder, + input:focus:-moz-placeholder, + textarea:focus:-moz-placeholder, + input:focus:-ms-input-placeholder, + textarea:focus:-ms-input-placeholder { + opacity: 0.3; + } + + .hidden { + display: none; + } + + .gift-details { + margin-left: 1em; + overflow: hidden; + .transition(max-height, 0.75s); + } + + .gift-details.hidden { + display: block; + max-height: 0; + } + + .gift-details:not(.hidden) { + max-height: 400px; + } + + //explicit width for jquery slideToggle + .details { + font-size: 0.9em; + margin: 10px 0 0 0; + width: 600px; + } + + .gilding-info { + .details { + width: 538px; + } + + .examples { + margin-top: 10px; + + img { + display: block; + margin: 0 auto; + } + + p { + text-align: center; + font-size: 0.7em; + } + } + } + + .gold-dropdown { + color: @dark; + background-color: @off-white; + font-size: 16px; + } + + .indent { + margin-left: 20px; + } + + .loggedout-gold-form { + .loggedout-email { + display: block; + margin: 10px 0; + } + + .hint { + font-size: 12px; + font-style: italic; + } + } + + @media screen and (max-width: 1024px) { + .buttons { + text-align: center; + } + + span.gold-snoo { + display: block; + position: static; + width: 100%; + text-align: center; + margin-top: 25px; + } + } +} + +/* Page level logic for gold pages, outside of gold-wrap so we can use body classes. */ +.gold-page.creddits-purchase, +.gold-page.creddits-payment { + + .gold-snoo { + background-image: url(../gold/creddits-snoo.png); + } +} + +.gold-page.gilding { + .gold-banner { + background-image: url(../gold/reddit-gilding.png); + } + + dt { + margin: 0.9em 0 0.5em; + font-weight: bold; + padding-top: 1em; + border-top: 1px solid #CCC; + font-size: 1.2em; + } + + dt:first-of-type { + padding-top: 0; + border-top-width: 0; + } + + dd { + margin-left: 0; + line-height: 1.8em; + } + + .example { + margin: 1em 0; + + figure { + margin: 0 auto; + padding: 0; + width: 339px; + border: 1px solid #cccccb; + + &.userpage-gild { + height: 227px; + background: url('../gold/userpage-gild.png') no-repeat center center; + } + + &.comment-gild { + height: 160px; + background: url('../gold/comment-gild.png') no-repeat top left; + } + + &.using-creddits { + height: 90px; + background: url('../gold/using-creddits.png') no-repeat top left; + } + } + } + + .gold-button { + display: block; + .box-sizing(border-box); + margin: 0; + font-size: 1.3em; + } +} + +@media +(-webkit-min-device-pixel-ratio: 2), +(min-resolution: 192dpi) { + .gold-page.gilding .example figure { + + &.userpage-gild { + background: url('../gold/userpage-gild-x2.png') no-repeat center center; + background-size: 339px 227px; + } + + &.comment-gild { + background: url('../gold/comment-gild-x2.png') no-repeat top left; + background-size: 339px 160px; + } + + &.using-creddits { + background: url('../gold/using-creddits-x2.png') no-repeat top left; + background-size: 339px 90px; + } + } +} + +/* Gold only subreddits */ + +.gold-only { + @gold: #9a7d2e; + @light-gold: #faf1b3; + + #header { + border-bottom-color: @gold; + .linear-gradient(#d7cc7e, #e2ce3e); + + #header-bottom-right { + background-color: @light-gold; + + a { + color: @gold; + } + + .message-count { + background-color: #e2ce3e; + } + + #mail.havemail { + background-image: url(../gold/gold-only-mail-havemail.png); /* SPRITE */ + } + + #modmail.havemail { + background-image: url(../gold/gold-only-modmail-havemail.png); /* SPRITE */ + } + } + + .tabmenu li a { + background-color: @light-gold; + color: @gold; + } + + .tabmenu li.selected a { + background-color: #ffffff; + border-color: @gold; + border-bottom-color: #ffffff; + } + + #sr-header-area { + background-color: transparent; + border: none; + opacity: 0.5; + + &:hover { + opacity: 1; + } + } + } + + .arrow.upmod { + background-image: url(../gold/gold-only-upvote-mod.png); /* SPRITE */ + } + + .arrow.downmod { + background-image: url(../gold/gold-only-downvote-mod.png); /* SPRITE */ + } + + .link .score.dislikes { + color: #a98d79; + } + + .link .score.likes { + color: #dec145; + } +} + +/* Quarantined subreddits */ + +.quarantine { + #header-img.default-header { + background-image: url(../quarantine-header.png); /* SPRITE */ + width: 40px; + height: 40px; + margin-left: 3px; + } + + .sidebox.create .spacer { + display: none; + } +} + +.fraud-reason { + display: none; + + &:not(:empty) { + display: block; + padding-bottom: 5px; + margin-bottom: 5px; + border-bottom: 1px solid #d8bb3c; + } + + &:before { + content: 'reason(s): '; + display: inline; + } +} + +.report-action-form { + max-width: 300px; +} + +.subreddit-report-form, +.action-form { + display: none; + background-color: #f6e69f; + border: thin solid #d8bb3c; + padding: 5px; + margin: 5px 0; + font-size: larger; + + input { + + &[type="radio"] { + margin: 2px 0.5em 0 0; + } + + &[type="text"] { + margin-top: 5px; + width: 95%; + } + + &:disabled { + background: #dddddd; + } + } + + ol { + margin-bottom: 5px; + } +} + +.subreddit-report-form { + @bg-color: #FBFBFB; + @text-color: @color-semi-black; + + font-family: "Helvetica Neue", "Helvetica", "Arial", sans-serif; + background-color: @bg-color; + border: 1px solid darken(@bg-color, 10%); + border-radius: 0; + color: @text-color; + padding: 10px 15px; + font-size: 14px; + line-height: 20px; + position: relative; + + .report-header { + margin-bottom: 10px; + font-weight: 500; + } + + .report-reason-list { + margin-top: 10px; + margin-bottom: 10px; + } + + .report-reason-item { + margin-top: 5px; + margin-bottom: 5px; + + label { + cursor: pointer; + } + + input[type=radio] { + margin-right: 15px; + float: left; + } + + select { + max-width: 100%; + } + + .report-reason-display { + vertical-align: top; + overflow: auto; + } + } + + .report-reason-other { + input[type=text] { + width: 100%; + } + } + + .c-submit-group { + text-align: right; + margin-top: 10px; + } + + .action-icon { + width: 16px; + height: 16px; + display: inline-block; + } + + .action-icon-info { + .hdpi-bg-image( + @1x: url(../action-icon-info-color.png), + @2x: url(../action-icon-info-color_2x.png) + ); + } + + .action-icon { + position: absolute; + top: 12px; + right: 15px; + } +} + +.reported-stamp.has-reasons { + cursor: pointer; +} + +ul.report-reasons { + width: 80%; + background-color: #f6e69f; + border: thin solid black; + display: none; + + li { + &.report-reason { + padding: 1px 10px; + display: block; + overflow: hidden; + text-overflow: ellipsis; + } + + &.report-reason-title { + padding: 1px 10px; + font-weight: bold; + } + } +} + +#header { + @spam-bg: @color-spam; + @temp-ban-bg: @color-temp-ban; + @perma-ban-bg: @color-perma-ban; + @deleted-bg: @color-deleted; + @striped-bg-image: repeating-linear-gradient(45deg, transparent, + transparent 30px, + rgba(255,255,255,0.5) 30px, + rgba(255,255,255,0.5) 60px); + + body.deleted &, + body.user-deleted & { + background-color: @color-deleted; + background-image: @striped-bg-image; + } + + body.banned &, + body.user-banned &, + body.user-in-timeout-perma & { + background-color: @color-perma-ban; + } + + body.user-in-timeout-temp & { + background-color: @color-temp-ban; + } + + body.user-spam & { + background-color: @color-spam; + } +} + +.author { + &.user-banned { + color: @color-perma-ban; + font-weight: bold; + } + + &.user-in-timeout-temp { + color: @color-temp-ban; + font-weight: bold; + } + + &.user-in-timeout-perma { + color: @color-perma-ban; + font-weight: bold; + } + + &.user-spam { + color: @color-spam; + font-weight: bold; + } +} + +#compose-message select { + font-size: 100%; +} + +.embed-modal { + .modal-body, + .modal-footer { + padding: 40px; + } + + .modal-body { + padding-bottom: 10px; + + .c-checkbox { + margin: 10px 0; + } + } + + .modal-footer { + padding-top: 20px; + + .c-form-control { + margin-top: 10px; + } + } + + .modal-title { + margin: 0; + } + + #embed-preview { + overflow-y: hidden; + } +} + +#related-srs { + margin: 3px; + font-size: smaller; +} + +#add-related-sr { + margin-left: 3px; + font-size: smaller; + + #sr-autocomplete-area, + div.error { + display: inline-block; + } + + #sr-autocomplete { + width: 200px; + } + + #sr-drop-down { + width: 206px; + } +} + +.more-actions { + .title { + color: #888; + + &:hover { + cursor: pointer; + } + } +} + +.full-context-info { + .md { + padding: 10px 5px 5px; + border: 1px solid @color-warning-red; + border-radius: 5px; + background: @color-pale-grey; + } + + .parent { + padding: 0 (@margin-small - 1) * 1px; + } + + td { + color: @color-text-grey; + } + + .arrow { + display: inline-block; + margin-right: 100px; + + &:after { + display: inline-block; + margin-left: 20px; + width: 100px; + } + } + + .arrow.unvoted { + &:after { + content: "did not vote"; + margin-left: 0; + } + } + + .arrow.vote-changed { + background: data-uri('../close.png') no-repeat; + background-size: 13px 13px; + + &:after { + content: "changed vote"; + } + } + + .arrow.upmod:after { + content: "upvoted"; + } + + .arrow.downmod:after { + content: "downvoted"; + } +} + +.mobile-web-redirect { + background-color: #4a7fc5; + box-sizing: border-box; + color: #FFF; + font-size: 40px; + font-weight: bold; + padding: 30px 0; + text-align: center; + text-decoration: none; + text-transform: uppercase; + width: 100%; + display: block; + position: relative; + z-index: 50; +} + +body:not(.loggedin) .comment-save-button, +body:not(.loggedin) .give-gold-button, +body:not(.loggedin) .reply-button, +body:not(.loggedin) .report-button { + display: none; +} + +.sr-type-icon { + display: inline-block; + width: 16px; + height: 16px; + + &.sr-type-icon-banned { + .hdpi-bg-image(@1x: url(../sr-type-icon-banned.png), @2x: url(../sr-type-icon-banned_2x.png)); + } + + &.sr-type-icon-moderator { + .hdpi-bg-image(@1x: url(../sr-type-icon-moderator.png), @2x: url(../sr-type-icon-moderator_2x.png)); + } + + &.sr-type-icon-approved { + .hdpi-bg-image(@1x: url(../sr-type-icon-approved.png), @2x: url(../sr-type-icon-approved_2x.png)); + } + + &.sr-type-icon-restricted { + .hdpi-bg-image(@1x: url(../sr-type-icon-restricted.png), @2x: url(../sr-type-icon-restricted_2x.png)); + } + + &.sr-type-icon-private { + .hdpi-bg-image(@1x: url(../sr-type-icon-private.png), @2x: url(../sr-type-icon-private_2x.png)); + } + + &.sr-type-icon-quarantined { + .hdpi-bg-image(@1x: url(../sr-type-icon-quarantined.png), @2x: url(../sr-type-icon-quarantined_2x.png)); + } + + &.sr-type-icon-nsfw { + .hdpi-bg-image(@1x: url(../sr-type-icon-nsfw.png), @2x: url(../sr-type-icon-nsfw_2x.png)); + } +} + +.subscription-box .sr-type-icon { + margin-right: 3px; +} + +.subreddit .midcol .sr-type-icon { + margin-left: 3px; +} + +#auction-announcement-container { + #auction-announcement { + width: 100%; + margin: -5px 5px 0 5px; + background-color: #336699; + height: 86px; + text-align: center; + color: #FFF; + h1 { + font-size: 20px; + padding-top: 18px; + font-weight: bold; + } + p { + font-size: 12px; + font-weight: bold; + a { + color: #B2D6EE; + } + } + } +} diff --git a/src/style/search.less b/src/style/search.less new file mode 100644 index 0000000..3d15860 --- /dev/null +++ b/src/style/search.less @@ -0,0 +1,455 @@ +@color-body: @color-text-grey; +@color-meta: @color-dark-grey; +@color-link: darken(@color-alien-blue, 5%); +@color-link-visited: @color-link-purple; + +@color-unsubscribe: darken(@color-warning-red, 10%); +@color-subscribe: darken(@color-green, 10%); +@color-subscribe-button-focus: @color-white; +@color-group-header-border: @color-pale-grey; + +@color-subreddit: @color-meta; + +@max-width: 750px; +@min-width: 600px; + +@search-font-large: @font-medium; +@search-font-medium: @font-small; +@search-font-base: @font-x-small; +@search-font-small: @font-xx-small; +@search-line-base: @line-medium; +@search-line-small: @line-x-small; + +.search-font-size(@font:@search-font-base, @line:@search-line-base, @base:@search-font-base) { + .md-font-size(@base, @font, @line); +} + +.combined-search-page { + > .content { + font-size: @base-font-keyword; + } + + // needs the extra selector to override the default styles :/ + .search-subscribe-button { + display: inline-block; + margin: 0; + margin-right: @margin-x-small * 1px; + + .remove { + @color: @color-unsubscribe; + @color2: darken(@color, 10%); + + background: @color; + border-color: @color2; + + &:active { + background: @color2; + } + } + + .add { + @color: @color-subscribe; + @color2: darken(@color, 10%); + + background: @color; + border-color: @color2; + + &:active { + background: @color2; + } + } + + .add, .remove { + color: @color-white; + text-align: center; + transform: scale(1, 1); + transition: all 0.15s; + width: 90px; + + &:focus { + outline: none; + box-shadow: 0 0 0 1px @color-subscribe-button-focus inset; + } + + &.active { + display: inline-block; + line-height: 13px; + } + } + } + + .searchfacets { + .search-font-size(); + border: 1px solid @color-meta; + margin: 0; + margin-left: @margin-xx-large * 1px; + margin-top: @margin-large * 1px; + max-width: @max-width; + min-width: @min-width; + overflow: auto; + padding: @margin-medium * 1px; + white-space: pre-wrap; + + > h4.title { + color: @color-dark-grey; + margin-bottom: @margin-x-small * 1px; + } + + .facet:hover { + text-decoration: underline; + } + } + + li.searchfacet { + display: inline-block; + line-height: 20px; + min-width: 32%; + } + + .facet.count { + color: @color-meta; + + &:hover { + text-decoration: none; + } + } + + .searchpane { + background: none; + border: none; + padding: @margin-small * 1px; + padding-left: @margin-xx-large * 1px; + } + + #search { + padding-right: 120px; + } + + #search input[type=text] { + .search-font-size(@search-font-medium); + border-color: @color-dark-grey; + border-radius: 2px; + box-sizing: border-box; + max-width: @max-width; + min-width: @max-width / 2; + padding: @margin-x-small * 1px; + padding-left: @margin-small * 1px; + padding-right: @margin-x-large * 1px; + vertical-align: middle; + width: 100%; + } + + .search-submit-button { + margin-left: @margin-small * 1px; + .search-font-size(@search-font-base); + padding: (@margin-x-small * 1px) (@margin-medium * 1px); + vertical-align: middle; + } + + .menuarea { + font-size: 1em; + margin-left: @margin-large * 1px; + } + + .linkflairlabel { + line-height: 17px; + } + + // undo old styles, remove when unflagged + .searchfacets { + background: transparent; + box-shadow: none; + + .list { + margin: 0; + } + } + + .facet.count { + font-weight: normal; + } + + .search-icon { + background-image: data-uri('../search-button-icon.png'); + background-size: 20px 20px; + display: inline-block; + height: 20px; + transform: translateY(-1px); + vertical-align: middle; + width: 20px; + } +} + +.search-result-listing { + .md-base-font-size(@search-font-base); +} + +.search-result.visited { + .search-title, + .search-link { + &, > mark { + color: @color-link-visited; + } + } +} + +.search-result { + margin-bottom: @margin-x-large * 1px; + margin-top: @margin-small * 1px; + + :link { + &, > mark { + color: @color-link; + } + } + + :visited { + &, > mark { + color: @color-link-visited; + } + } + + &.has-thumbnail { + .display-flex(); + + > * { + .flex(1 1); + } + + > .thumbnail { + .flex(0 0 70px); + margin-right: @margin-small * 1px; + width: 70px; + + img { + display: block; + height: auto; + width: 100%; + } + } + } + + + mark { + background-color: transparent; + color: inherit; + font-weight: bold; + line-height: 1em; + } +} + +.search-result-meta, +.search-result-footer { + .search-font-size(); + vertical-align: baseline; + + > * { + // prevent unstyled children (e.g. spans) from adding to line-height + line-height: 1em; + } +} + +.search-result-header { + .search-font-size(); + + > * { + vertical-align: top; + } + +} + +.search-title { + font-size: @search-font-large * 1px; + margin-right: @margin-x-small * 1px; +} + +.search-result-meta { + // let this element inherit the same styles as the 'tagline' class + // we don't want to add the extra class to the markup because it will cause + // the line to potentially inherit a bunch of unwanted styles from subreddit + // stylesheets + &:extend(.tagline all); + + .search-font-size(@search-font-small, @search-line-base); + color: @color-meta; + + .search-result-icon { + vertical-align: text-bottom; + } +} + +.search-score { + .search-font-size(@search-font-base, @search-font-base, @search-font-small); + + &:after { + content: ' •'; + } +} + +.search-comments { + font-weight: bold; + color: @color-meta; +} + +.search-result-body { + .search-font-size(@search-font-base, @search-line-small); + color: @color-body; + padding-right: @margin-xxx-large * 1px; +} + +.search-expando { + overflow: hidden; + + &.collapsed { + max-height: 45px; + position: relative; + + &:before { + bottom: 0; + content:''; + height: 15px; + left: 0; + position: absolute; + width: 100%; + + .linear-gradient(rgba(255, 255, 255, 0), rgba(255, 255, 255, 1)); + } + } +} + +.search-expando-button { + color: @color-link; + + &:hover { + cursor: pointer; + text-decoration: underline; + } + + > span { + display: none; + } + + &.expanded .search-expando-button-label-expanded, + &.collapsed .search-expando-button-label-collapsed { + display: inline; + } +} + +.search-result-footer { + .search-font-size(); + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + + .search-link { + margin-left: @margin-x-small * 1px; + } +} + +.search-result-group { + max-width: @max-width; + min-width: @min-width; + padding-left: @margin-xx-large * 1px; + padding-right: @margin-large * 1px; + + + footer .nav-buttons { + .search-font-size(@search-font-base); + margin-top: @margin-small * 1px; + margin-bottom: @margin-xx-large * 1px; + + * { + font-size: inherit; + } + } + + footer .info { + color: @color-meta; + } +} + +.search-result-group-header { + border-bottom: 2px solid @color-group-header-border; + color: @color-dark-grey; + margin-bottom: @margin-large * 1px; + margin-top: @margin-xx-large * 1px; +} + +.search-header-label { + .search-font-size(@search-font-medium); + font-weight: bold; +} + +.search-header-menus { + float: right; +} + +.search-menu { + .search-font-size(@search-font-base); + display: inline-block; + margin-left: @margin-large * 1px; +} + +.search-result-icon { + background-position: center; + background-repeat: no-repeat; + display: inline-block; + height: 15px; + vertical-align: middle; + width: 16px; +} + +.search-result-icon-score { + background-image: data-uri('../ambivote-icon.png'); + background-size: 10px 14px; +} + +.search-result-icon-external { + background-image: data-uri('../external-link-icon.png'); + background-size: 15px 7px; +} + +.search-result-icon-filter { + background-image: data-uri('../search-icon.png'); + background-size: 11px 12px; +} + +.search-result-icon-internal { + background-image: data-uri('../internal-link-icon.png'); + background-size: 11px 10px; +} + + +// old styles, remove when unflagged +.searchfacets { + overflow: auto; + font-size: small; + white-space: pre-wrap; + border: 1px solid gray; + padding: 10px; + margin-top: -6px; + box-shadow: 0 4px 6px -1px #ccc inset; + background: #fefefe; +} + +.searchfacets .title { + margin: 5px; +} + +.searchfacets .facet:hover { + text-decoration: underline; +} + +.searchfacets .list { + margin: 0px 0px 0px 10px; +} + +li.searchfacet { + display: inline-block; + width: 15em; +} + +.facet.count { + color: #888888; + font-weight: bold; +} diff --git a/src/style/subreddit-rules.less b/src/style/subreddit-rules.less new file mode 100644 index 0000000..a01cfae --- /dev/null +++ b/src/style/subreddit-rules.less @@ -0,0 +1,209 @@ +.subreddit-rule-item { + margin-bottom: 10px; + margin-left: -10px; + margin-top: 10px; + padding: 10px; + + &:hover { + background: #F7F7F7; + } + + .subreddit-rule-delete-confirmation { + text-align: right; + } +} + +.subreddit-rule-item .editable .subreddit-rule-contents, +.subreddit-rule-form { + .display-flex(); +} + +.subreddit-rule-item .editable .subreddit-rule-contents-display, +.subreddit-rule-form .form-inputs { + .flex(1 1); +} + +.subreddit-rule-item .editable .subreddit-rule-buttons, +.subreddit-rule-form .form-buttons { + .flex(0 0 41px); + + > button { + margin-bottom: 5px; + margin-left: 5px; + + .mod-action-icon { + padding: 5px 10px; + } + } +} + +.subreddit-rule-form .form-buttons { + .display-flex(); + .flex-direction(column); + .justify-content(flex-end); +} + +.subreddit-rule-form { + .c-form-group { + position: relative; + margin-bottom: unit(@margin-medium, px); + + .label { + color: @color-grey; + } + + .label.required:after { + color: @color-warning-red; + content: ' *'; + display: inline; + } + + .text-counter { + color: @color-grey; + position: absolute; + right: 0; + top: 0; + + &.has-error { + color: @color-warning-red; + } + } + } + + .form-group-kind label { + margin-right: unit(@margin-large, px); + } +} + +.subreddit-rule-add-form-buttons .subreddit-rule-edit-button { + color: @color-light-blue; + font-size: 12px; + font-weight: bold; + line-height: 15px; + text-transform: uppercase; + + &[disabled] { + color: @color-grey; + } + + .mod-action-icon { + margin-right: 5px; + vertical-align: bottom; + } +} + +.error-fields { + color: @color-warning-red; + margin-top: unit(@margin-x-small, px); + text-align: right; + + > .error { + display: block; + } +} + +.subreddit-rule-too-many-notice { + color: @color-dark-teal; + margin-top: unit(@margin-x-small, px); +} + +.subreddit-rule-delete-confirmation { + color: @color-warning-red; + + button { + background: transparent; + border: none; + padding: 0 3px; + color: @color-light-blue; + font-size: 1em; + } + + .separator { + color: @color-grey; + } +} + +.subreddit-rules-page { + @icon-size: 52px; + + max-width: 700px; + padding-left: @icon-size + 20px; + padding-right: 20px; + padding-top: 10px; + position: relative; + + &:before { + .hdpi-bg-image(@1x: url(../modtools-page-icon-rules.png), + @2x: url(../modtools-page-icon-rules_2x.png)); + + content: ''; + display: block; + height: @icon-size; + left: 0; + position: absolute; + top: 0; + width: @icon-size; + } + + .subreddit-rule-buttons, + .subreddit-rule-add-form-buttons, + .form-buttons { + button { + background: transparent; + border: none; + padding: 0; + } + } + + > header { + margin-bottom: @margin-xx-large * 1px; + + p { + font-weight: 500; + } + } + + > footer { + margin-top: unit(@margin-xx-large, px); + } + + .md { + p:first-child { + margin-top: 0; + } + + p:last-child { + margin-bottom: 0; + } + } + + .md-container .md { + @font-base: @font-small; + @line-base: @line-small; + + h2 { + .md-font-size(@font-base, @font-xx-large, @line-xx-large); + .md-margins(@font-xx-large, 0, 0); + font-weight: 300; + } + + .subreddit-rule-title { + .md-font-size(@font-base, @font-medium, @line-medium); + margin-top: 0; + margin-bottom: unit(@margin-x-small, px); + font-weight: 500; + } + + .subreddit-rule-kind { + .md-font-size(@font-base, @font-x-small, @line-medium); + margin-bottom: unit(@margin-x-small, px); + font-weight: 500; + color: @color-dark-grey; + } + + .subreddit-rule-description { + color: @color-text-grey; + } + } +} + diff --git a/src/style/wiki.less b/src/style/wiki.less new file mode 100644 index 0000000..5976854 --- /dev/null +++ b/src/style/wiki.less @@ -0,0 +1,184 @@ +.transition (@prop: all, @time: 1s, @ease: linear) { + -webkit-transition: @prop @time @ease; + -moz-transition: @prop @time @ease; + -o-transition: @prop @time @ease; + -ms-transition: @prop @time @ease; + transition: @prop @time @ease; +} + +.wiki-page { + // Main content portion of the wiki pages + .wiki-page-content { + margin: 15px; + margin-right: 325px; + + // Wiki page listing + .pagelisting { + font-size: 1.2em; + font-weight: bold; + color: black; + padding-left: 25px; + ul { + list-style: disc; + padding: 2px; + padding-left: 10px; + } + } + + // Page action subtitle + .description { + padding-bottom: 5px; + h2 { + color: #222; + } + } + + // Revision listing + .wikirevisionlisting { + .generic-table { + width: 100%; + } + table tr td { + padding-right: 15px; + } + .revision { + .transition(opacity, 500ms); + } + .revision.deleted { + opacity: .5; + text-decoration: line-through; + } + .revision.hidden { + opacity: .5; + } + // Opera does not inherit the opacity to the td + .revision.hidden td { + opacity: inherit; + } + } + + // Wiki markdown + .wiki.md { + max-width: none; + } + + // Wiki table of contents + .wiki > .toc > ul { + float: right; + padding: 11px 22px; + margin: 0 0 11px 22px; + border: 1px solid #8D9CAA; + list-style: none; + max-width: 300px; + } + .wiki > .toc > ul ul { + margin: 4px 0; + padding-left: 22px; + border-left: 1px dotted #cce; + list-style: none; + } + .wiki > .toc > ul li { + margin: 0; + } + + // Page settings + .fancy-settings .toggle { + display: inline-block; + padding-right: 15px; + } + + // Reason for revision field + #wiki_revision_reason { + padding: 2px; + margin-left: 0; + width: 100%; + } + + // Save page button, save settings button, etc + .wiki_button { + padding: 2px; + } + + .throbber { + margin-bottom: -5px; + } + + // Submit Discussion button + .discussionlink { + display: inline-block; + margin-left: 15px; + padding-right: 50px; + margin-top: 5px; + a { + padding-left: 15px; + } + } + + .markhelp { + max-width: 500px; + font-size: 1.2em; + padding: 4px; + margin: 5px 0; + } + + } + + // Page title + .wikititle { + margin-left: 15px; + color: #666; + display: inline; + vertical-align: middle; + strong { + font-weight: bold; + } + } + + // Wiki tabs + .pageactions { + display: inline-block; + font-size: larger; + margin-left: 25px; + border-radius: 5px; + border: 1px solid #8D9CAA; + vertical-align: middle; + .wikiaction { + display: inline-block; + margin: 2px; + padding-top: 2px; + padding-bottom: 3px; + border-radius: 3px; + padding-right: 10px; + padding-left: 10px; + } + .wikiaction:hover { + background-color: #CEE3F8; + } + .wikiaction-current:hover { + background-color: #5F99CF; + } + .wikiaction-current { + color: white; + background-color: #5F99CF; + } + } + .source { + width: 100%; + display: none; + } + .toggle-source { + float: right; + } +} + +// Specific wiki page styles +.wiki-page-config-automoderator { + #editform textarea { + font-family: "Bitstream Vera Sans Mono", Consolas, monospace; + } + + .wiki-page-content pre { + word-wrap: break-word; + white-space: pre-wrap; + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..61952ee --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "@vue/tsconfig/tsconfig.web.json", + "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./src/*"] + } + }, + + "references": [ + { + "path": "./tsconfig.vite-config.json" + } + ] +} diff --git a/tsconfig.vite-config.json b/tsconfig.vite-config.json new file mode 100644 index 0000000..93fe584 --- /dev/null +++ b/tsconfig.vite-config.json @@ -0,0 +1,8 @@ +{ + "extends": "@vue/tsconfig/tsconfig.node.json", + "include": ["vite.config.*"], + "compilerOptions": { + "composite": true, + "types": ["node"] + } +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..5d02fc2 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,14 @@ +import { fileURLToPath, URL } from "url"; + +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + "@": fileURLToPath(new URL("./src", import.meta.url)), + }, + }, +});