vaultwarden-web/patches/v2024.2.4.patch

733 lines
81 KiB
Diff
Raw Normal View History

2024-03-06 06:53:41 +03:00
diff --git a/apps/web/src/app/admin-console/icons/admin-console-logo.ts b/apps/web/src/app/admin-console/icons/admin-console-logo.ts
index 32b2b7a13a..1f1e6827bf 100644
--- a/apps/web/src/app/admin-console/icons/admin-console-logo.ts
+++ b/apps/web/src/app/admin-console/icons/admin-console-logo.ts
@@ -1,5 +1,11 @@
import { svgIcon } from "@bitwarden/components";
export const AdminConsoleLogo = svgIcon`
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 580 104" fill="none"><path class="tw-fill-text-alt2" fill-rule="evenodd" d="M126.562 19.86c4.873 0 8.664 1.904 11.448 5.873 2.785 3.89 4.177 9.208 4.177 15.955 0 6.985-1.392 12.383-4.254 16.193-2.862 3.89-6.73 5.715-11.603 5.715-4.873 0-8.586-1.746-11.37-5.397h-.774l-1.47 3.73a1.428 1.428 0 0 1-1.315.874h-6.188c-.773 0-1.392-.635-1.392-1.43V5.572c0-.794.619-1.429 1.392-1.429h8.354c.774 0 1.393.635 1.393 1.429v12.224c0 1.747-.155 4.525-.464 8.335h.464c2.552-4.128 6.497-6.27 11.602-6.27Zm-3.558 9.286c-2.707 0-4.796.873-6.111 2.62-1.237 1.746-1.933 4.683-1.933 8.652v1.27c0 4.525.618 7.78 1.933 9.684 1.315 1.905 3.404 2.937 6.266 2.937 2.243 0 4.177-1.111 5.492-3.334 1.315-2.143 2.011-5.397 2.011-9.446 0-4.127-.696-7.223-2.011-9.287-1.393-2.064-3.326-3.096-5.647-3.096Zm37.593 33.736h-8.354c-.774 0-1.392-.635-1.392-1.429V22.161c0-.794.618-1.429 1.392-1.429h8.354c.773 0 1.392.635 1.392 1.429v39.213c.077.714-.619 1.508-1.392 1.508Zm30.553-8.493c1.625 0 3.559-.318 5.879-.953.619-.159 1.16.318 1.16.953v6.588a.978.978 0 0 1-.541.873c-2.63 1.111-5.956 1.667-9.669 1.667-4.486 0-7.735-1.111-9.746-3.492-2.011-2.303-3.094-5.795-3.094-10.4v-20.24h-4.409c-.542 0-.928-.397-.928-.953v-3.73c0-.08.077-.16.077-.239l6.111-3.73 3.016-8.256c.155-.397.464-.635.851-.635h5.569c.542 0 .929.397.929.952v8.018h11.061c.232 0 .464.238.464.476v7.144c0 .556-.387.953-.928.953h-10.52v20.162c0 1.587.464 2.857 1.315 3.572.773.873 2.011 1.27 3.403 1.27Zm52.058 8.493c-1.083 0-1.934-.714-2.398-1.746l-8.199-25.64c-.542-1.825-1.238-4.603-2.166-8.175h-.232l-.774 2.857-1.624 5.398-8.431 25.64c-.31 1.031-1.238 1.666-2.321 1.666-1.083 0-2.011-.714-2.32-1.826l-10.288-36.91c-.31-1.112.541-2.303 1.779-2.303h.232c.773 0 1.47.556 1.702 1.35l6.033 22.464c1.47 5.874 2.475 10.16 2.939 13.018h.232c1.393-5.874 2.476-9.764 3.172-11.748l7.812-23.496c.31-.952 1.161-1.588 2.243-1.588a2.26 2.26 0 0 1 2.166 1.588l7.271 23.337c1.779 5.954 2.862 9.764 3.249 11.748h.232c.232-1.587 1.16-6.032 2.939-13.176l5.802-22.147c.232-.794.928-1.35 1.702-1.35 1.16 0 2.011 1.112 1.701 2.302l-9.746 36.911c-.309 1.112-1.238 1.826-2.398 1.826h-.309Zm45.946 0c-.696 0-1.315-.555-1.392-1.27l-.696-5.239h-.387c-2.011 2.62-4.022 4.525-6.188 5.636-2.089 1.111-4.641 1.587-7.503 1.587-3.945 0-6.962-1.031-9.128-3.095-1.933-1.826-3.016-4.287-3.171-7.382-.309-4.128 1.392-8.097 4.641-10.399 3.326-2.223 7.967-3.572 14.233-3.572l7.58-.238v-2.7c0-3.969-.773-6.826-2.398-8.811-1.624-1.984-4.022-2.937-7.425-2.937-3.249 0-6.498.794-9.901 2.46-.851.398-1.857 0-2.244-.872-.386-.874 0-1.905.851-2.223 3.868-1.588 7.658-2.46 11.526-2.46 4.409 0 7.657 1.19 9.901 3.571 2.165 2.302 3.248 6.033 3.248 10.875v25.798c-.077.476-.773 1.27-1.547 1.27Zm-16.011-2.699c4.331 0 7.657-1.27 10.055-3.73 2.475-2.461 3.713-6.033 3.713-10.4v-3.968l-6.962.318c-5.646.238-9.591 1.19-12.066 2.698-2.398 1.509-3.636 3.97-3.636 7.144 0 2.54.774 4.604 2.243 6.033 1.702 1.19 3.868 1.905 6.653 1.905Zm45.791-39.133c1.161 0 2.321.08 3.636.238 1.005.159 1.624 1.111 1.47 2.064-.155.952-1.083 1.508-2.012 1.35-1.16-.16-2.32-.318-3.48-.318-3.404 0-6.188 1.508-8.354 4.445-2.166 2.937-3.249 6.747-3.249 11.192v20.797c0 1.032-.774 1.826-1.779 1.826-1.006 0-1.779-.794-1.779-1.826V23.511c0-.874.696-1.588 1.547-1.588s1.547.635 1.547 1.508l.309 5.874h.232c1.625-3.016 3.404-5.16 5.26-6.35 1.779-1.27 4.022-1.905 6.652-1.905Zm27.228 0c2.862 0 5.415.555 7.503 1.587 2.166 1.032 4.022 2.937 5.647 5.557h.232a193.03 193.03 0 0 1-.232-9.287V5.967c0-1.031.773-1.825 1.779-1.825 1.005 0 1.779.794 1.779 1.826v55.485c0 .715-.542 1.27-1.238 1.27-.619 0-1.16-.476-1.237-1.19l-.774-5.16h-.309c-3.017 4.683-7.426 6.985-13.073 6.985-5.569 0-9.669-1.746-12.685-5.318-2.862-3.572-4.409-8.652-4.409-15.4 0-7.064 1.392-12.462 4.331-16.272 2.94-3.413 7.117-5.318 12.686-5.318Zm0 3.413c-4.409 0-7.658 1.588-9.901 4.763-2.166 3.096-3.249 7.62-3.249 13.653 0 11.589 4.409 17.384 13.227 17.384 4.564 0 7.813-1.35 9.901-4.049 2.166-2.698 3.172-7.144 3.172-13.335v-.635c0-6.35-1.006-10.875-3.172-13.574-2.011-2.858-5.337-4.207-9.978-4.207Zm46.333 39.133c-5.80
+<svg version="1.1" viewBox="0 0 800 200" xmlns="http://www.w3.org/2000/svg">
+ <path class="tw-fill-text-alt2" d="m457.16 129.39-11.407-36.49q-1.0783-3.3482-4.0292-15.209h-.454q-2.27 9.9313-3.9725 15.322l-11.747 36.377h-10.896l-16.968-62.197h9.8744q6.0158 23.438 9.137 35.696 3.178 12.258 3.632 16.514h.454q.62424-3.2347 1.9863-8.342 1.4188-5.1642 2.4402-8.1717l11.407-35.696h10.215l11.123 35.696q3.178 9.7611 4.313 16.401h.454q.227-2.043 1.1918-6.2993 1.0215-4.2562 11.861-45.797h9.7611l-17.195 62.197zm77.858 0-1.8727-8.8528h-.454q-4.6535 5.8455-9.3072 7.9451-4.5968 2.043-11.52 2.043-9.2503 0-14.528-4.767-5.221-4.767-5.221-13.563 0-18.841 30.134-19.749l10.555-.3405v-3.859q0-7.3209-3.178-10.783-3.1212-3.5185-10.045-3.5185-7.7748 0-17.592 4.767l-2.8943-7.207q4.5968-2.497 10.045-3.9158 5.5048-1.4187 11.009-1.4187 11.123 0 16.457 4.9373 5.3912 4.9373 5.3912 15.833v42.449zm-21.281-6.6399q8.7964 0 13.79-4.8238 5.0508-4.8238 5.0508-13.506v-5.6183l-9.4205.39725q-11.237.39725-16.231 3.5185-4.9372 3.0645-4.9372 9.5908 0 5.1075 3.0645 7.7748 3.1212 2.6672 8.6825 2.6672zm76.045-56.693q4.1428 0 7.4343.68101l-1.3053 8.7395q-3.859-.85122-6.8101-.85122-7.5476 0-12.939 6.1291-5.3345 6.1291-5.3345 15.266v33.369h-9.4205v-62.197h7.7748l1.0783 11.52h.454q3.4617-6.0721 8.3425-9.3636 4.8805-3.2915 10.726-3.2915zm59.077 54.991h-.51081q-6.526 9.4775-19.522 9.4775-12.201 0-19.011-8.342-6.7532-8.342-6.7532-23.721t6.8102-23.892q6.8101-8.5122 18.954-8.5122 12.655 0 19.408 9.1933h.73779l-.39725-4.4832-.22704-4.3697v-25.311h9.4205v88.301h-7.6615zm-18.841 1.589q9.6478 0 13.96-5.221 4.3697-5.2777 4.3697-16.968v-1.9863q0-13.223-4.4264-18.841-4.3698-5.675-14.017-5.675-8.2856 0-12.712 6.4696-4.3698 6.4127-4.3698 18.16 0 11.918 4.3698 17.99 4.3697 6.0721 12.825 6.0721zm74 7.8881q-13.79 0-21.792-8.3989-7.9451-8.3989-7.9451-23.324 0-15.039 7.3773-23.892 7.4343-8.8528 19.919-8.8528 11.69 0 18.501 7.7179 6.8101 7.6615 6.8101 20.26v5.9588h-42.846q.28376 10.953 5.5048 16.628 5.2777 5.675 14.812 5.675 10.045 0 19.863-4.1995v8.3989q-4.994 2.1565-9.4775 3.0645-4.4265.96478-10.726.96478zm-2.5537-56.58q-7.4912 0-11.975 4.8805-4.4265 4.8805-5.221 13.506h32.518q0-8.9097-3.9725-13.62-3.9725-4.767-11.35-4.767zm84.047 55.445v-40.236q0-7.6045-3.4617-11.35-3.4618-3.7455-10.839-3.7455-9.7611 0-14.301 5.2777t-4.54 17.422v32.631h-9.4205v-62.197h7.6615l1.5322 8.5122h.45403q2.8942-4.5968 8.1153-7.0937 5.221-2.5537 11.634-2.5537 11.237 0 16.912 5.448 5.675 5.3912 5.675 17.309v40.576z"/>
+ <path class="tw-fill-text-alt2" d="m213.24 129.39-3.3482-8.6261h-.454q-4.3697 5.5048-9.023 7.6615-4.5968 2.0998-12.031 2.0998-9.137 0-14.415-5.221-5.221-5.221-5.221-14.869 0-10.102 7.0368-14.869 7.0937-4.8238 21.338-5.3345l11.009-.3405v-2.7808q0-9.6478-9.8744-9.6478-7.6045 0-17.876 4.5968l-5.7318-11.69q10.953-5.7318 24.289-5.7318 12.769 0 19.579 5.5615 6.8102 5.5615 6.8102 16.912v42.279zm-5.1075-29.397-6.6962.227q-7.5476.227-11.237 2.724-3.6888 2.497-3.6888 7.6045 0 7.321 8.3989 7.321 6.0158 0 9.5908-3.4617 3.632-3.4617 3.632-9.1933zm79.962 29.397-2.3268-8.1153h-.908q-2.7808 4.4265-7.8881 6.8665-5.1075 2.3835-11.634 2.3835-11.18 0-16.855-5.9588-5.675-6.0158-5.675-17.252v-41.371h17.309v37.058q0 6.8665 2.4402 10.328 2.4402 3.405 7.7748 3.405 7.264 0 10.499-4.8238 3.2348-4.8805 3.2348-16.117v-29.85h17.309v63.447zm48.748 0h-17.309v-88.301h17.309zm44.889-12.655q4.54 0 10.896-1.9863v12.882q-6.4696 2.8943-15.89 2.8943-10.385 0-15.152-5.221-4.7103-5.2777-4.7103-15.776v-30.588h-8.2856v-7.321l9.5338-5.7885 4.994-13.393h11.066v13.506h17.763v12.996h-17.763v30.588q0 3.6887 2.043 5.448 2.0998 1.7592 5.5047 1.7592z"/>
+ <path class="tw-fill-text-alt2" d="m51.982 33.947-15.322.002 41.131 115.17h14.518l41.131-115.17h-15.162l-25.971 73.872c-1.7205 4.7315-3.1706 9.1927-4.3535 13.387-1.1829 4.086-2.1516 8.0119-2.9043 11.775-.75272-3.7636-1.7195-7.7417-2.9023-11.936-1.1829-4.1938-2.635-8.7098-4.3555-13.549l-25.809-73.552z"/>
+ <path class="tw-fill-text-alt2" d="m84.264 5.0749a2.3288 2.3288 0 00-1.2122.99654l-4.145 6.9077c-.72599.06029-1.4502.12529-2.1701.20657l-5.406-5.9599a2.3288 2.3288 0 00-3.9203.77975l-2.7161 7.5796c-.7008.20184-1.4008.40458-2.0929.62653l-6.4616-4.7875a2.3288 2.3288 0 00-3.691 1.53l-1.1884 7.9871c-.63834.33084-1.2749.66363-1.9023 1.0124l-7.297-3.4482a2.3288 2.3288 0 00-3.3222 2.2201l.39272 8.0937c-.55229.44111-1.0997.8874-1.639 1.3438l-7.8588-1.9647a2.3288 2.3288 0 00-2.825 2.825l1.9647 7.8588c-.45646.53923-.90273 1.0867-1.3439 1.639l-8.0937-.39271a2.3288 2.3288 0 00-2.2201 3.3222l3.4482 7.297c-.3488.62737-.68158 1.2639-1.0124 1.9023l-7.9871 1.1884a2.3288 2.3288 0 00-1.53 3.6911l4.7875 6.4616c-.22196.69217-.4247 1.3921-.62653 2.093l-7.5796 2.7161a2.3288 2.3288 0 00-.77976 3.9203l5.9599 5.4061c-.08128.71995-.14628 1.4442-.20657 2.1701l-6.9077 4.1451a2.3288 2.3288 0 000 3.9952l6.9077 4.1439c.06028.72636.12524 1.451.20657 2.1713l-5.9599 5.4061a2.3288 2.3288 0 00.77976 3.9192l7.5796 2.7161c.20188.70099.4045 1.4017.62653 2.0941l-4.7875 6.4605a2.3288 2.3288 0 001.53 3.6922l7.9871 1.1884c.33079.63822.6637 1.275 1.0124 1.9023l-3.4482 7.297a2.3288 2.3288 0 002.2201 3.3222l8.0937-.39272c.44117.55235.88734 1.0997 1.3439 1.639l-1.9647 7.8588a2.3288 2.3288 0 002.825 2.825l7.8588-1.9647c.53923.45647 1.0867.90273 1.639 1.3438l-.39272 8.0926a2.3288 2.3288 0 003.3222 2.2201l7.297-3.447c.62736.34881 1.2639.68158 1.9023 1.0124l1.1884 7.987a2.3288 2.3288 0 003.691 1.5289l6.4616-4.7864c.69217.22197 1.3921.4247 2.0929.62654l2.7161 7.5796a2.3288 2.3288 0 003.9203.7786l5.4049-5.9588c.72031.0813 1.4449.14624 2.1713.20656l4.145 6.9077a2.3288 2.3288 0 003.9952 0l4.1439-6.9077c.72674-.0603 1.4517-.12518 2.1724-.20656l5.4049 5.9588a2.3288 2.3288 0 003.9192-.7786l2.7161-7.5796c.70103-.20189 1.4017-.4045 2.0941-.62654l6.4605 4.7864a2.3288 2.3288 0 003.6922-1.5289l1.1884-7.987c.63823-.33079 1.275-.6637 1.9023-1.0124l7.297 3.447a2.3288 2.3288 0 003.3222-2.2201l-.39271-8.0926c.55234-.44117 1.0997-.88734 1.639-1.3438l7.8588 1.9647a2.3288 2.3288 0 002.825-2.825l-1.9647-7.8588c.4565-.53928.90269-1.0866 1.3438-1.639l8.0926.39272a2.3288 2.3288 0 002.2201-3.3222l-3.447-7.297c.34872-.62723.68163-1.264 1.0124-1.9023l7.987-1.1884a2.3288 2.3288 0 001.5289-3.6922l-4.7863-6.4605c.22202-.69235.42462-1.3931.62652-2.0941l7.5796-2.7161a2.3288 2.3288 0 00.77862-3.9192l-5.9588-5.4049c.0814-.72069.14623-1.4457.20658-2.1724l6.9077-4.1439a2.3288 2.3288 0 000-3.9952l-6.9077-4.1451c-.0603-.72635-.12524-1.451-.20658-2.1713l5.9588-5.4049a2.3288 2.3288 0 00-.77862-3.9203l-7.5796-2.7161c-.20184-.70082-.40457-1.4008-.62652-2.093l4.7863-6.4616a2.3288 2.3288 0 00-1.5289-3.6911l-7.987-1.1884c-.33084-.63836-.66362-1.2749-1.0124-1.9023l3.447-7.297a2.3288 2.3288 0 00-2.2201-3.3222l-8.0926.39271c-.44112-.55229-.8874-1.0997-1.3438-1.639l1.9647-7.8588a2.3288 2.3288 0 00-2.825-2.825l-7.8588 1.9647c-.53927-.4565-1.0866-.9027-1.639-1.3438l.39271-8.0937a2.3288 2.3288 0 00-3.3222-2.2201l-7.297 3.4482c-.62726-.34873-1.264-.68165-1.9023-1.0124l-1.1884-7.9871a2.3288 2.3288 0 00-3.6922-1.53l-6.4605 4.7875c-.69236-.22201-1.3931-.42463-2.0941-.62653l-2.7161-7.5796a2.3288 2.3288 0 00-3.9192-.77975l-5.406 5.9599c-.72032-.08133-1.4449-.14626-2.1713-.20657l-4.1439-6.9077a2.3288 2.3288 0 00-2.783-.99654zm.78543 14.613a4.657 4.657 0 014.6569 4.6569 4.657 4.657 0 01-4.6569 4.6569 4.657 4.657 0 01-4.6569-4.6569 4.657 4.657 0 014.6569-4.6569zm-10.998 8.0064 7.7056 7.7056a4.6575 4.6575 0 006.5853 0l7.7056-7.7056c17.959 3.3214 33.023 14.65 41.468 30.141l-4.943 9.6998a4.6575 4.6575 0 002.0351 6.263l9.7123 4.9486c.32157 2.5182.49487 5.0839.49487 7.692 0 15.934-6.1974 30.369-16.306 41.066l-10.796-1.7093a4.6575 4.6575 0 00-5.3277 3.8704l-1.7116 10.804c-7.7603 3.6739-16.443 5.734-25.624 5.734-9.1812 0-17.864-2.0608-25.625-5.7352l-1.7116-10.803a4.6575 4.6575 0 00-5.3277-3.8715l-10.795 1.7105c-10.108-10.697-16.306-25.132-16.306-41.066 0-2.608.1733-5.1738.49487-7.692l9.7111-4.9486a4.6575 4.6575 0 002.0351-6.263l-4.9418-9.6986c8.4449-15.492 23.508-26.821 41.468-30.142zm-47.923 34.902a4.657 4.657 0 011.3064.22587 4.657 4
+ <path class="tw-fill-text-alt2" d="m406.1 185.44-4.8026-12.342h-15.803l-4.7468 12.342h-5.0817l15.58-40.04h4.5232l15.524 40.04zm-10.778-28.871q-.16753-.44674-.55844-1.6194-.3909-1.1727-.7818-2.4012-.33505-1.2844-.55843-1.9545-.39091 1.7312-.89345 3.4064-.50261 1.6194-.83768 2.5687l-4.5233 12.062h12.62zm31.384 29.429q-5.5844 0-8.9346-3.8532-3.3506-3.9091-3.3506-11.615t3.3506-11.615q3.4064-3.9649 8.9905-3.9649 3.4623 0 5.6402 1.2844 2.2338 1.2844 3.6298 3.1271h.33506q-.0559-.72595-.22337-2.122-.11169-1.4518-.11169-2.2895v-11.951h4.9142v42.441h-3.9649l-.72593-4.0207h-.22339q-1.3403 1.8987-3.574 3.2389-2.2338 1.3402-5.7519 1.3402zm.7818-4.0765q4.7468 0 6.6452-2.5687 1.9545-2.6246 1.9545-7.8738v-.89347q0-5.5844-1.8428-8.544-1.8428-3.0155-6.8127-3.0155-3.9649 0-5.975 3.1831-1.9545 3.1272-1.9545 8.4322 0 5.3609 1.9545 8.3206 2.0103 2.9597 6.0309 2.9597zm55.788-26.972q5.0817 0 7.5946 2.6246 2.5129 2.5687 2.5129 8.3764v19.489h-4.8584v-19.266q0-7.092-6.0867-7.092-4.3558 0-6.2542 2.5129-1.8428 2.5129-1.8428 7.3154v16.529h-4.8584v-19.266q0-7.092-6.1426-7.092-4.5232 0-6.2542 2.7922-1.7312 2.7922-1.7312 8.0414v15.524h-4.9142v-29.933h3.9649l.72595 4.0766h.27922q1.3961-2.3454 3.7416-3.4623 2.4012-1.1727 5.0817-1.1727 7.0362 0 9.1582 5.0258h.27921q1.5078-2.5687 4.0766-3.7974 2.6246-1.2286 5.5284-1.2286zm21.891-10.666q1.1169 0 1.9545.78178.89355.72598.89355 2.3454 0 1.5636-.89355 2.3454-.83765.78179-1.9545.78179-1.2286 0-2.0662-.78179-.83766-.7818-.83766-2.3454 0-1.6194.83766-2.3454.83763-.78178 2.0662-.78178zm2.4012 11.225v29.933h-4.9141v-29.933zm23.901-.55843q5.3609 0 8.0972 2.6246 2.7363 2.5687 2.7363 8.3765v19.489h-4.8584v-19.154q0-7.2037-6.701-7.2037-4.97 0-6.8686 2.7922-1.8987 2.7922-1.8987 8.0414v15.524h-4.9142v-29.933h3.9649l.72596 4.0766h.27921q1.4519-2.3454 4.0207-3.4623 2.5687-1.1727 5.4167-1.1727zm52.381-5.5285q-6.4218 0-10.108 4.3-3.6857 4.3-3.6857 11.783 0 7.4271 3.4064 11.783 3.4623 4.3 10.331 4.3 2.6246 0 4.97-.44675 2.3454-.44675 4.5792-1.1169v4.3558q-2.2337.83766-4.635 1.2286-2.3454.3909-5.6402.3909-6.0867 0-10.163-2.5129-4.0768-2.5129-6.1426-7.1479-2.0103-4.635-2.0103-10.889 0-6.0309 2.1778-10.61 2.2337-4.6351 6.5335-7.2037 4.3-2.6246 10.443-2.6246 6.3101 0 11.001 2.3454l-2.0103 4.2441q-1.8428-.83766-4.1325-1.5078-2.2337-.67011-4.9141-.67011zm43.558 20.997q0 7.4271-3.7974 11.503-3.7416 4.0765-10.163 4.0765-3.9649 0-7.092-1.787-3.0713-1.8428-4.8584-5.3051-1.787-3.5181-1.787-8.4881 0-7.4271 3.7416-11.448 3.7416-4.0207 10.163-4.0207 4.0765 0 7.1479 1.8428 3.1271 1.787 4.8584 5.2492 1.787 3.4064 1.787 8.3764zm-22.617 0q0 5.3051 2.0662 8.4322 2.122 3.0714 6.701 3.0714 4.5233 0 6.6452-3.0714 2.122-3.1271 2.122-8.4322t-2.122-8.3206q-2.122-3.0155-6.701-3.0155-4.5792 0-6.6452 3.0155-2.0662 3.0155-2.0662 8.3206zm44.786-15.468q5.361 0 8.0973 2.6246 2.7363 2.5687 2.7363 8.3765v19.489h-4.8584v-19.154q0-7.2037-6.701-7.2037-4.97 0-6.8685 2.7922-1.8987 2.7922-1.8987 8.0414v15.524h-4.9142v-29.933h3.9649l.72597 4.0765h.2792q1.4519-2.3454 4.0207-3.4623 2.5687-1.1727 5.4168-1.1727zm39.593 22.225q0 4.3558-3.2389 6.5894-3.2389 2.2338-8.7119 2.2338-3.1271 0-5.4168-.5026-2.2338-.50258-3.9649-1.396v-4.4675q1.787.89346 4.3 1.6753 2.5687.72594 5.1934.72594 3.7416 0 5.4168-1.1727 1.6752-1.2286 1.6752-3.2389 0-1.1169-.61424-2.0103-.61426-.89347-2.2337-1.787-1.5636-.89346-4.5233-2.0103-2.9039-1.1169-4.97-2.2337-2.0662-1.1169-3.1831-2.6805-1.1169-1.5636-1.1169-4.0208 0-3.7974 3.0714-5.8635 3.1272-2.0662 8.153-2.0662 2.7363 0 5.0818.55842 2.4012.50259 4.4675 1.4519l-1.6752 3.9091q-1.8987-.78179-3.9649-1.3403-2.0662-.55842-4.2441-.55842-3.0155 0-4.6351 1.0052-1.5636.94937-1.5636 2.6246 0 1.2286.72596 2.122.72595.83764 2.4012 1.6753 1.7311.78179 4.5792 1.8987 2.848 1.061 4.8584 2.1779 2.0104 1.1169 3.0713 2.7363 1.0611 1.5636 1.0611 3.9649zm33.283-6.7569q0 7.4271-3.7974 11.503-3.7416 4.0766-10.163 4.0766-3.9649 0-7.092-1.787-3.0714-1.8428-4.8583-5.3051-1.787-3.5181-1.787-8.4881 0-7.4271 3.7416-11.448 3.7416-4.0207 10.163-4.0207 4.0766 0 7.1479 1.8428 3.1271 1.787 4.8584 5.2492 1.787 3.4064 1.787 8.3764zm-22.617 0q0 5.3051 2.0662 8.4322 2.122 3.0714 6.
+</svg>
`;
diff --git a/apps/web/src/app/admin-console/organizations/create/organization-information.component.html b/apps/web/src/app/admin-console/organizations/create/organization-information.component.html
index 6029cfd833..04324b7d19 100644
--- a/apps/web/src/app/admin-console/organizations/create/organization-information.component.html
+++ b/apps/web/src/app/admin-console/organizations/create/organization-information.component.html
@@ -12,7 +12,7 @@
<input bitInput type="text" formControlName="name" />
</bit-form-field>
<bit-form-field class="tw-w-1/2">
- <bit-label>{{ "billingEmail" | i18n }}</bit-label>
+ <bit-label>{{ "email" | i18n }}</bit-label>
<input bitInput type="email" formControlName="billingEmail" />
</bit-form-field>
<bit-form-field class="tw-w-1/2" *ngIf="isProvider">
diff --git a/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.ts b/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.ts
index 7e50a09087..27ea8f09c9 100644
--- a/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.ts
+++ b/apps/web/src/app/admin-console/organizations/layouts/organization-layout.component.ts
@@ -105,6 +105,7 @@ export class OrganizationLayoutComponent implements OnInit, OnDestroy {
}
canShowBillingTab(organization: Organization): boolean {
+ return false; // disable billing tab in Vaultwarden
return canAccessBillingTab(organization);
}
diff --git a/apps/web/src/app/admin-console/organizations/organization-routing.module.ts b/apps/web/src/app/admin-console/organizations/organization-routing.module.ts
index 7abee6b0d0..2e3b789b23 100644
--- a/apps/web/src/app/admin-console/organizations/organization-routing.module.ts
+++ b/apps/web/src/app/admin-console/organizations/organization-routing.module.ts
@@ -68,13 +68,6 @@ const routes: Routes = [
(m) => m.OrganizationReportingModule,
),
},
- {
- path: "billing",
- loadChildren: () =>
- import("../../billing/organizations/organization-billing.module").then(
- (m) => m.OrganizationBillingModule,
- ),
- },
],
},
];
diff --git a/apps/web/src/app/admin-console/organizations/settings/account.component.html b/apps/web/src/app/admin-console/organizations/settings/account.component.html
index 7035b976ca..44b24584ae 100644
--- a/apps/web/src/app/admin-console/organizations/settings/account.component.html
+++ b/apps/web/src/app/admin-console/organizations/settings/account.component.html
@@ -17,7 +17,7 @@
<input bitInput id="orgName" type="text" formControlName="orgName" />
</bit-form-field>
<bit-form-field>
- <bit-label>{{ "billingEmail" | i18n }}</bit-label>
+ <bit-label>{{ "email" | i18n }}</bit-label>
<input bitInput id="billingEmail" formControlName="billingEmail" type="email" />
</bit-form-field>
<bit-form-field>
diff --git a/apps/web/src/app/admin-console/organizations/settings/account.component.ts b/apps/web/src/app/admin-console/organizations/settings/account.component.ts
index 8527aa1b17..971d78d8d5 100644
--- a/apps/web/src/app/admin-console/organizations/settings/account.component.ts
+++ b/apps/web/src/app/admin-console/organizations/settings/account.component.ts
@@ -99,7 +99,7 @@ export class AccountComponent {
) {}
async ngOnInit() {
- this.selfHosted = this.platformUtilsService.isSelfHost();
+ this.selfHosted = false; // set to false so we can rename organizations
this.route.params
.pipe(
@@ -204,6 +204,7 @@ export class AccountComponent {
}
submitCollectionManagement = async () => {
+ return; // flexible collections are not supported by Vaultwarden
// Early exit if self-hosted
if (this.selfHosted) {
return;
diff --git a/apps/web/src/app/app.component.ts b/apps/web/src/app/app.component.ts
index f9479a92ce..9a6c489c38 100644
--- a/apps/web/src/app/app.component.ts
+++ b/apps/web/src/app/app.component.ts
@@ -205,6 +205,10 @@ export class AppComponent implements OnDestroy, OnInit {
break;
}
case "showToast":
+ if (typeof message.text === "string" && typeof crypto.subtle === "undefined") {
+ message.title = "This browser requires HTTPS to use the web vault";
+ message.text = "Check the Vaultwarden wiki for details on how to enable it";
+ }
this.showToast(message);
break;
case "convertAccountToKeyConnector":
diff --git a/apps/web/src/app/auth/emergency-access/accept/accept-emergency.component.html b/apps/web/src/app/auth/emergency-access/accept/accept-emergency.component.html
index 4690a4e63a..9d297671d2 100644
--- a/apps/web/src/app/auth/emergency-access/accept/accept-emergency.component.html
+++ b/apps/web/src/app/auth/emergency-access/accept/accept-emergency.component.html
@@ -1,6 +1,6 @@
<div class="mt-5 d-flex justify-content-center" *ngIf="loading">
<div>
- <img class="mb-4 logo logo-themed" alt="Bitwarden" />
+ <img class="mb-4 logo logo-themed" alt="Vaultwarden" />
<p class="text-center">
<i
class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
diff --git a/apps/web/src/app/auth/login/login.component.html b/apps/web/src/app/auth/login/login.component.html
index 5c68058a3c..d0bac687b0 100644
--- a/apps/web/src/app/auth/login/login.component.html
+++ b/apps/web/src/app/auth/login/login.component.html
@@ -9,7 +9,7 @@
class="tw-mx-auto tw-mt-5 tw-flex tw-max-w-lg tw-flex-col tw-items-center tw-justify-center tw-p-8"
>
<div>
- <img class="logo logo-themed" alt="Bitwarden" />
+ <img class="logo logo-themed" alt="Vaultwarden" />
<p class="tw-mx-4 tw-mb-4 tw-mt-3 tw-text-center tw-text-xl">
{{ "loginOrCreateNewAccount" | i18n }}
</p>
@@ -51,7 +51,7 @@
</button>
</div>
- <div class="tw-mb-3 tw-flex tw-flex-col tw-items-center tw-justify-center">
+ <div class="tw-mb-3 tw-flex tw-flex-col tw-items-center tw-justify-center vw-hide">
<p class="tw-mb-3">{{ "or" | i18n }}</p>
<a
diff --git a/apps/web/src/app/auth/settings/change-password.component.html b/apps/web/src/app/auth/settings/change-password.component.html
index 7c3c22b3d7..9a6900104d 100644
--- a/apps/web/src/app/auth/settings/change-password.component.html
+++ b/apps/web/src/app/auth/settings/change-password.component.html
@@ -125,5 +125,3 @@
{{ "changeMasterPassword" | i18n }}
</button>
</form>
-
-<app-webauthn-login-settings></app-webauthn-login-settings>
diff --git a/apps/web/src/app/auth/settings/two-factor-authenticator.component.ts b/apps/web/src/app/auth/settings/two-factor-authenticator.component.ts
index 849e003440..de32156aad 100644
--- a/apps/web/src/app/auth/settings/two-factor-authenticator.component.ts
+++ b/apps/web/src/app/auth/settings/two-factor-authenticator.component.ts
@@ -109,11 +109,11 @@ export class TwoFactorAuthenticatorComponent
new window.QRious({
element: document.getElementById("qr"),
value:
- "otpauth://totp/Bitwarden:" +
+ "otpauth://totp/Vaultwarden:" +
Utils.encodeRFC3986URIComponent(email) +
"?secret=" +
encodeURIComponent(this.key) +
- "&issuer=Bitwarden",
+ "&issuer=Vaultwarden",
size: 160,
});
}, 100);
diff --git a/apps/web/src/app/billing/organizations/organization-billing-history-view.component.ts b/apps/web/src/app/billing/organizations/organization-billing-history-view.component.ts
index 78872aa6a9..eed953b91a 100644
--- a/apps/web/src/app/billing/organizations/organization-billing-history-view.component.ts
+++ b/apps/web/src/app/billing/organizations/organization-billing-history-view.component.ts
@@ -44,7 +44,7 @@ export class OrgBillingHistoryViewComponent implements OnInit, OnDestroy {
return;
}
this.loading = true;
- this.billing = await this.organizationApiService.getBilling(this.organizationId);
+ this.billing = null;
this.loading = false;
}
}
diff --git a/apps/web/src/app/billing/organizations/organization-plans.component.html b/apps/web/src/app/billing/organizations/organization-plans.component.html
index a77d42a359..7de4e33fe2 100644
--- a/apps/web/src/app/billing/organizations/organization-plans.component.html
+++ b/apps/web/src/app/billing/organizations/organization-plans.component.html
@@ -6,7 +6,7 @@
></i>
<span class="sr-only">{{ "loading" | i18n }}</span>
</ng-container>
-<ng-container *ngIf="createOrganization && selfHosted">
+<ng-container *ngIf="createOrganization && false">
<p>{{ "uploadLicenseFileOrg" | i18n }}</p>
<form #form (ngSubmit)="submit()" [appApiAction]="formPromise" ngNativeValidate>
<div class="form-group">
@@ -28,7 +28,7 @@
(ngSubmit)="submit()"
[appApiAction]="formPromise"
ngNativeValidate
- *ngIf="!loading && !selfHosted && this.passwordManagerPlans && this.secretsManagerPlans"
+ *ngIf="!loading"
class="tw-pt-6"
>
<app-org-info
diff --git a/apps/web/src/app/billing/organizations/organization-plans.component.ts b/apps/web/src/app/billing/organizations/organization-plans.component.ts
index 44d78ecce2..4fe484cfbe 100644
--- a/apps/web/src/app/billing/organizations/organization-plans.component.ts
+++ b/apps/web/src/app/billing/organizations/organization-plans.component.ts
@@ -151,10 +151,11 @@ export class OrganizationPlansComponent implements OnInit, OnDestroy {
async ngOnInit() {
if (this.organizationId) {
this.organization = this.organizationService.get(this.organizationId);
- this.billing = await this.organizationApiService.getBilling(this.organizationId);
- this.sub = await this.organizationApiService.getSubscription(this.organizationId);
+ this.billing = null; // no billing in Vaultwarden
+ this.sub = null; // no subscriptions in Vaultwarden;
}
+ /* no need to ask /api/plans because Vaultwarden only supports the free plan
if (!this.selfHosted) {
const plans = await this.apiService.getPlans();
this.passwordManagerPlans = plans.data.filter((plan) => !!plan.PasswordManager);
@@ -186,6 +187,7 @@ export class OrganizationPlansComponent implements OnInit, OnDestroy {
this.plan = providerDefaultPlan.type;
this.product = providerDefaultPlan.product;
}
+ end of asking /api/plans in Vaultwarden */
if (!this.createOrganization) {
this.upgradeFlowPrefillForm();
@@ -257,6 +259,7 @@ export class OrganizationPlansComponent implements OnInit, OnDestroy {
}
get selectableProducts() {
+ return null; // there are no products to select in Vaultwarden
if (this.acceptingSponsorship) {
const familyPlan = this.passwordManagerPlans.find(
(plan) => plan.type === PlanType.FamiliesAnnually,
@@ -287,6 +290,7 @@ export class OrganizationPlansComponent implements OnInit, OnDestroy {
}
get selectablePlans() {
+ return null; // no plans to select in Vaultwarden
const selectedProductType = this.formGroup.controls.product.value;
const result =
this.passwordManagerPlans?.filter(
@@ -427,10 +431,12 @@ export class OrganizationPlansComponent implements OnInit, OnDestroy {
}
get planOffersSecretsManager() {
+ return false; // no support for secrets manager in Vaultwarden
return this.selectedSecretsManagerPlan != null;
}
changedProduct() {
+ return; // no choice of products in Vaultwarden
const selectedPlan = this.selectablePlans[0];
this.setPlanType(selectedPlan.type);
@@ -543,7 +549,7 @@ export class OrganizationPlansComponent implements OnInit, OnDestroy {
const orgKeys = await this.cryptoService.makeKeyPair(orgKey[1]);
if (this.selfHosted) {
- orgId = await this.createSelfHosted(key, collectionCt, orgKeys);
+ orgId = await this.createCloudHosted(key, collectionCt, orgKeys, orgKey[1]);
} else {
orgId = await this.createCloudHosted(key, collectionCt, orgKeys, orgKey[1]);
}
@@ -643,7 +649,9 @@ export class OrganizationPlansComponent implements OnInit, OnDestroy {
request.name = this.formGroup.controls.name.value;
request.billingEmail = this.formGroup.controls.billingEmail.value;
request.keys = new OrganizationKeysRequest(orgKeys[0], orgKeys[1].encryptedString);
+ request.planType = PlanType.Free; // always select the free plan in Vaultwarden
+ /* there is no plan to select in Vaultwarden
if (this.selectedPlan.type === PlanType.Free) {
request.planType = PlanType.Free;
} else {
@@ -673,6 +681,7 @@ export class OrganizationPlansComponent implements OnInit, OnDestroy {
// Secrets Manager
this.buildSecretsManagerRequest(request);
+ end plan selection and no support for secret manager in Vaultwarden */
if (this.hasProvider) {
const providerRequest = new ProviderOrganizationCreateRequest(
@@ -754,6 +763,7 @@ export class OrganizationPlansComponent implements OnInit, OnDestroy {
}
private upgradeFlowPrefillForm() {
+ return; // Vaultwarden only supports free plan
if (this.acceptingSponsorship) {
this.formGroup.controls.product.setValue(ProductType.Families);
this.changedProduct();
diff --git a/apps/web/src/app/core/init.service.ts b/apps/web/src/app/core/init.service.ts
index 899a168479..5bb71b05f6 100644
--- a/apps/web/src/app/core/init.service.ts
+++ b/apps/web/src/app/core/init.service.ts
@@ -7,10 +7,7 @@ import { NotificationsService as NotificationsServiceAbstraction } from "@bitwar
import { TwoFactorService as TwoFactorServiceAbstraction } from "@bitwarden/common/auth/abstractions/two-factor.service";
import { CryptoService as CryptoServiceAbstraction } from "@bitwarden/common/platform/abstractions/crypto.service";
import { EncryptService } from "@bitwarden/common/platform/abstractions/encrypt.service";
-import {
- EnvironmentService as EnvironmentServiceAbstraction,
- Urls,
-} from "@bitwarden/common/platform/abstractions/environment.service";
+import { EnvironmentService as EnvironmentServiceAbstraction } from "@bitwarden/common/platform/abstractions/environment.service";
import { I18nService as I18nServiceAbstraction } from "@bitwarden/common/platform/abstractions/i18n.service";
import { StateService as StateServiceAbstraction } from "@bitwarden/common/platform/abstractions/state.service";
import { ConfigService } from "@bitwarden/common/platform/services/config/config.service";
@@ -38,11 +35,23 @@ export class InitService {
) {}
init() {
+ function getBaseUrl() {
+ // If the base URL is `https://vaultwarden.example.com/base/path/`,
+ // `window.location.href` should have one of the following forms:
+ //
+ // - `https://vaultwarden.example.com/base/path/`
+ // - `https://vaultwarden.example.com/base/path/#/some/route[?queryParam=...]`
+ //
+ // We want to get to just `https://vaultwarden.example.com/base/path`.
+ let baseUrl = window.location.href;
+ baseUrl = baseUrl.replace(/#.*/, ""); // Strip off `#` and everything after.
+ baseUrl = baseUrl.replace(/\/+$/, ""); // Trim any trailing `/` chars.
+ return baseUrl;
+ }
return async () => {
await this.stateService.init();
- const urls = process.env.URLS as Urls;
- urls.base ??= this.win.location.origin;
+ const urls = { base: getBaseUrl() };
await this.environmentService.setUrls(urls);
// Workaround to ignore stateService.activeAccount until process.env.URLS are set
// TODO: Remove this when implementing ticket PM-2637
diff --git a/apps/web/src/app/core/router.service.ts b/apps/web/src/app/core/router.service.ts
index 5a0d903ba7..d6fedadd38 100644
--- a/apps/web/src/app/core/router.service.ts
+++ b/apps/web/src/app/core/router.service.ts
@@ -26,7 +26,7 @@ export class RouterService {
.subscribe((event: NavigationEnd) => {
this.currentUrl = event.url;
- let title = i18nService.t("bitWebVault");
+ let title = "Vaultwarden Web";
if (this.currentUrl.includes("/sm/")) {
title = i18nService.t("bitSecretsManager");
diff --git a/apps/web/src/app/core/web-platform-utils.service.ts b/apps/web/src/app/core/web-platform-utils.service.ts
index 02c7c29e34..9fd100024a 100644
--- a/apps/web/src/app/core/web-platform-utils.service.ts
+++ b/apps/web/src/app/core/web-platform-utils.service.ts
@@ -133,14 +133,17 @@ export class WebPlatformUtilsService implements PlatformUtilsService {
}
isDev(): boolean {
+ return false; // treat Vaultwarden as production ready
return process.env.NODE_ENV === "development";
}
isSelfHost(): boolean {
+ return true; // treat Vaultwarden as self hosted
return WebPlatformUtilsService.isSelfHost();
}
static isSelfHost(): boolean {
+ return true; // treat Vaultwarden as self hosted
return process.env.ENV.toString() === "selfhosted";
}
diff --git a/apps/web/src/app/layouts/frontend-layout.component.html b/apps/web/src/app/layouts/frontend-layout.component.html
index 72f0f1f1da..cea0867131 100644
--- a/apps/web/src/app/layouts/frontend-layout.component.html
+++ b/apps/web/src/app/layouts/frontend-layout.component.html
@@ -1,6 +1,11 @@
<router-outlet></router-outlet>
<div class="container my-5 text-muted text-center">
- <environment-selector></environment-selector>
- &copy; {{ year }} Bitwarden Inc. <br />
+ Vaultwarden Web<br />
{{ "versionNumber" | i18n: version }}
+ <br /><br />
+ <div class="small">
+ A modified version of the Bitwarden&reg; Web Vault for Vaultwarden (an unofficial rewrite of the
+ Bitwarden&reg; server).<br />
+ Vaultwarden is not associated with the Bitwarden&reg; project nor Bitwarden Inc.
+ </div>
</div>
diff --git a/apps/web/src/app/layouts/header/web-header.component.html b/apps/web/src/app/layouts/header/web-header.component.html
index 514e5deebd..20165e5061 100644
--- a/apps/web/src/app/layouts/header/web-header.component.html
+++ b/apps/web/src/app/layouts/header/web-header.component.html
@@ -76,7 +76,12 @@
<i class="bwi bwi-fw bwi-user" aria-hidden="true"></i>
{{ "accountSettings" | i18n }}
</a>
- <a bitMenuItem href="https://bitwarden.com/help/" target="_blank" rel="noreferrer">
+ <a
+ bitMenuItem
+ href="https://github.com/dani-garcia/vaultwarden"
+ target="_blank"
+ rel="noreferrer"
+ >
<i class="bwi bwi-fw bwi-question-circle" aria-hidden="true"></i>
{{ "getHelp" | i18n }}
</a>
diff --git a/apps/web/src/app/layouts/password-manager-logo.ts b/apps/web/src/app/layouts/password-manager-logo.ts
index d93e2d5bb3..e15394f785 100644
--- a/apps/web/src/app/layouts/password-manager-logo.ts
+++ b/apps/web/src/app/layouts/password-manager-logo.ts
@@ -1,5 +1,11 @@
import { svgIcon } from "@bitwarden/components";
export const PasswordManagerLogo = svgIcon`
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 580 104" fill="none"><path fill="#fff" d="M102.539 52.27c0 28.315-22.954 51.269-51.27 51.269C22.955 103.539 0 80.585 0 52.269 0 23.955 22.954 1 51.27 1c28.315 0 51.269 22.954 51.269 51.27Z"/><path fill="#175DDC" fill-rule="evenodd" d="M75.971 26.765c-.516-.49-1.11-.777-1.786-.777H28.39a2.49 2.49 0 0 0-1.786.777c-.516.49-.754 1.145-.754 1.84v31.47c0 2.371.437 4.66 1.31 6.95.873 2.288 1.984 4.332 3.294 6.13s2.897 3.515 4.682 5.232a62.034 62.034 0 0 0 5 4.25 82.778 82.778 0 0 0 4.802 3.188c1.667.981 2.857 1.676 3.572 2.003.714.368 1.27.613 1.706.817.32.163.673.247 1.032.246.359.001.713-.083 1.032-.246.436-.204.992-.45 1.706-.817.715-.368 1.905-1.022 3.572-2.003a54.869 54.869 0 0 0 4.801-3.188c1.548-1.103 3.215-2.534 5.04-4.25 1.826-1.717 3.373-3.434 4.683-5.232 1.31-1.798 2.42-3.842 3.294-6.13.912-2.29 1.31-4.62 1.31-6.95v-31.47c.04-.695-.239-1.309-.715-1.84Zm-5.913 33.597c0 11.403-18.77 21.172-18.77 21.172V32.732h18.77v27.63Z" clip-rule="evenodd"/><path fill="#fff" d="M518.259 69.478V44.66h3.803l.35 4.753c.768-1.634 1.935-2.935 3.503-3.903 1.568-.967 3.503-1.45 5.804-1.45v4.402h-1.15c-1.468 0-2.819.267-4.054.801-1.234.5-2.218 1.368-2.952 2.602-.734 1.234-1.101 2.936-1.101 5.104v12.51h-4.203Zm-15.828.601c-2.369 0-4.47-.534-6.305-1.601-1.835-1.101-3.286-2.619-4.353-4.554-1.034-1.935-1.551-4.22-1.551-6.855 0-2.602.517-4.87 1.551-6.805 1.034-1.968 2.468-3.486 4.303-4.554 1.868-1.1 4.02-1.65 6.455-1.65 2.402 0 4.47.55 6.205 1.65 1.768 1.068 3.119 2.486 4.053 4.254a12.03 12.03 0 0 1 1.401 5.704c0 .367-.017.734-.05 1.1v1.252h-19.765c.1 1.901.534 3.486 1.301 4.753.8 1.235 1.784 2.169 2.952 2.802a8.036 8.036 0 0 0 3.803.951c1.735 0 3.186-.4 4.353-1.2 1.168-.801 2.018-1.885 2.552-3.253h4.153c-.667 2.301-1.951 4.22-3.853 5.754-1.868 1.501-4.27 2.252-7.205 2.252Zm0-22.467c-2.002 0-3.786.617-5.354 1.851-1.535 1.201-2.419 2.97-2.652 5.304h15.612c-.1-2.235-.868-3.986-2.302-5.254-1.435-1.267-3.203-1.901-5.304-1.901Zm-26.482 14.06c-1.401 0-2.686-.183-3.853-.55l-2.502 2.352c.367.267.817.5 1.351.7.567.167 1.368.334 2.402.5 1.034.134 2.485.284 4.353.451 3.336.234 5.721 1 7.155 2.302 1.435 1.3 2.152 3.002 2.152 5.104 0 1.434-.4 2.802-1.201 4.103-.767 1.3-1.968 2.368-3.603 3.202-1.601.834-3.669 1.251-6.204 1.251-2.235 0-4.22-.3-5.955-.9-1.734-.568-3.085-1.452-4.053-2.653-.967-1.167-1.451-2.652-1.451-4.453 0-.934.25-1.951.751-3.052.5-1.068 1.434-2.085 2.802-3.052-.734-.3-1.368-.618-1.902-.951-.5-.367-.967-.767-1.401-1.201v-1.151l4.253-4.203c-1.968-1.668-2.952-3.87-2.952-6.605 0-1.635.384-3.12 1.151-4.453.767-1.335 1.885-2.386 3.353-3.153 1.467-.8 3.252-1.2 5.354-1.2 1.434 0 2.735.2 3.903.6h9.157v3.152l-4.654.2c.967 1.401 1.451 3.02 1.451 4.854 0 1.634-.4 3.119-1.201 4.453-.767 1.334-1.885 2.402-3.352 3.203-1.435.767-3.203 1.15-5.304 1.15Zm0-3.452c1.768 0 3.169-.45 4.203-1.351 1.067-.934 1.601-2.269 1.601-4.003 0-1.701-.534-3.002-1.601-3.903-1.034-.934-2.435-1.401-4.203-1.401-1.802 0-3.236.467-4.304 1.4-1.034.902-1.551 2.203-1.551 3.904 0 1.734.517 3.069 1.551 4.003 1.068.9 2.502 1.35 4.304 1.35Zm-7.306 14.46c0 1.669.701 2.903 2.102 3.704 1.401.834 3.152 1.25 5.254 1.25 2.068 0 3.719-.45 4.953-1.35 1.268-.901 1.902-2.102 1.902-3.603 0-1.068-.434-2.002-1.301-2.802-.867-.768-2.469-1.218-4.804-1.351-1.834-.134-3.419-.3-4.753-.5-1.368.733-2.269 1.517-2.702 2.351-.434.867-.651 1.635-.651 2.302Zm-19.816-2.601c-2.068 0-3.786-.35-5.154-1.051-1.368-.7-2.385-1.635-3.052-2.802a7.536 7.536 0 0 1-1.001-3.803c0-2.535.967-4.487 2.902-5.854 1.935-1.368 4.57-2.052 7.906-2.052h6.705v-.3c0-2.168-.567-3.803-1.701-4.904-1.134-1.134-2.652-1.701-4.553-1.701-1.635 0-3.053.417-4.254 1.25-1.167.801-1.901 1.986-2.201 3.553h-4.304c.167-1.8.768-3.319 1.802-4.553 1.067-1.234 2.385-2.168 3.953-2.802a12.65 12.65 0 0 1 5.004-1c3.469 0 6.071.933 7.805 2.801 1.768 1.835 2.652 4.287 2.652 7.356v15.261h-3.752l-.251-4.453c-.7 1.401-1.734 2.602-3.102 3.603-1.334.967-3.136 1.45-5.404 1.45Zm.651-3.553c1.601 0 2.968-.417 4.103-1.25a7.919 7.919 0 0 0 2.652-3.253c.6-1.335.9-2.736.9-4.203v-.05h-6.354c-2.469 0-4.22.433-5.254 1.3-1.001.83
+<svg version="1.1" viewBox="0 0 800 200" xmlns="http://www.w3.org/2000/svg">
+ <path class="tw-fill-text-alt2" d="m457.16 129.39-11.407-36.49q-1.0783-3.3482-4.0292-15.209h-.454q-2.27 9.9313-3.9725 15.322l-11.747 36.377h-10.896l-16.968-62.197h9.8744q6.0158 23.438 9.137 35.696 3.178 12.258 3.632 16.514h.454q.62424-3.2347 1.9863-8.342 1.4188-5.1642 2.4402-8.1717l11.407-35.696h10.215l11.123 35.696q3.178 9.7611 4.313 16.401h.454q.227-2.043 1.1918-6.2993 1.0215-4.2562 11.861-45.797h9.7611l-17.195 62.197zm77.858 0-1.8727-8.8528h-.454q-4.6535 5.8455-9.3072 7.9451-4.5968 2.043-11.52 2.043-9.2503 0-14.528-4.767-5.221-4.767-5.221-13.563 0-18.841 30.134-19.749l10.555-.3405v-3.859q0-7.3209-3.178-10.783-3.1212-3.5185-10.045-3.5185-7.7748 0-17.592 4.767l-2.8943-7.207q4.5968-2.497 10.045-3.9158 5.5048-1.4187 11.009-1.4187 11.123 0 16.457 4.9373 5.3912 4.9373 5.3912 15.833v42.449zm-21.281-6.6399q8.7964 0 13.79-4.8238 5.0508-4.8238 5.0508-13.506v-5.6183l-9.4205.39725q-11.237.39725-16.231 3.5185-4.9372 3.0645-4.9372 9.5908 0 5.1075 3.0645 7.7748 3.1212 2.6672 8.6825 2.6672zm76.045-56.693q4.1428 0 7.4343.68101l-1.3053 8.7395q-3.859-.85122-6.8101-.85122-7.5476 0-12.939 6.1291-5.3345 6.1291-5.3345 15.266v33.369h-9.4205v-62.197h7.7748l1.0783 11.52h.454q3.4617-6.0721 8.3425-9.3636 4.8805-3.2915 10.726-3.2915zm59.077 54.991h-.51081q-6.526 9.4775-19.522 9.4775-12.201 0-19.011-8.342-6.7532-8.342-6.7532-23.721t6.8102-23.892q6.8101-8.5122 18.954-8.5122 12.655 0 19.408 9.1933h.73779l-.39725-4.4832-.22704-4.3697v-25.311h9.4205v88.301h-7.6615zm-18.841 1.589q9.6478 0 13.96-5.221 4.3697-5.2777 4.3697-16.968v-1.9863q0-13.223-4.4264-18.841-4.3698-5.675-14.017-5.675-8.2856 0-12.712 6.4696-4.3698 6.4127-4.3698 18.16 0 11.918 4.3698 17.99 4.3697 6.0721 12.825 6.0721zm74 7.8881q-13.79 0-21.792-8.3989-7.9451-8.3989-7.9451-23.324 0-15.039 7.3773-23.892 7.4343-8.8528 19.919-8.8528 11.69 0 18.501 7.7179 6.8101 7.6615 6.8101 20.26v5.9588h-42.846q.28376 10.953 5.5048 16.628 5.2777 5.675 14.812 5.675 10.045 0 19.863-4.1995v8.3989q-4.994 2.1565-9.4775 3.0645-4.4265.96478-10.726.96478zm-2.5537-56.58q-7.4912 0-11.975 4.8805-4.4265 4.8805-5.221 13.506h32.518q0-8.9097-3.9725-13.62-3.9725-4.767-11.35-4.767zm84.047 55.445v-40.236q0-7.6045-3.4617-11.35-3.4618-3.7455-10.839-3.7455-9.7611 0-14.301 5.2777t-4.54 17.422v32.631h-9.4205v-62.197h7.6615l1.5322 8.5122h.45403q2.8942-4.5968 8.1153-7.0937 5.221-2.5537 11.634-2.5537 11.237 0 16.912 5.448 5.675 5.3912 5.675 17.309v40.576z"/>
+ <path class="tw-fill-text-alt2" d="m213.24 129.39-3.3482-8.6261h-.454q-4.3697 5.5048-9.023 7.6615-4.5968 2.0998-12.031 2.0998-9.137 0-14.415-5.221-5.221-5.221-5.221-14.869 0-10.102 7.0368-14.869 7.0937-4.8238 21.338-5.3345l11.009-.3405v-2.7808q0-9.6478-9.8744-9.6478-7.6045 0-17.876 4.5968l-5.7318-11.69q10.953-5.7318 24.289-5.7318 12.769 0 19.579 5.5615 6.8102 5.5615 6.8102 16.912v42.279zm-5.1075-29.397-6.6962.227q-7.5476.227-11.237 2.724-3.6888 2.497-3.6888 7.6045 0 7.321 8.3989 7.321 6.0158 0 9.5908-3.4617 3.632-3.4617 3.632-9.1933zm79.962 29.397-2.3268-8.1153h-.908q-2.7808 4.4265-7.8881 6.8665-5.1075 2.3835-11.634 2.3835-11.18 0-16.855-5.9588-5.675-6.0158-5.675-17.252v-41.371h17.309v37.058q0 6.8665 2.4402 10.328 2.4402 3.405 7.7748 3.405 7.264 0 10.499-4.8238 3.2348-4.8805 3.2348-16.117v-29.85h17.309v63.447zm48.748 0h-17.309v-88.301h17.309zm44.889-12.655q4.54 0 10.896-1.9863v12.882q-6.4696 2.8943-15.89 2.8943-10.385 0-15.152-5.221-4.7103-5.2777-4.7103-15.776v-30.588h-8.2856v-7.321l9.5338-5.7885 4.994-13.393h11.066v13.506h17.763v12.996h-17.763v30.588q0 3.6887 2.043 5.448 2.0998 1.7592 5.5047 1.7592z"/>
+ <path class="tw-fill-text-alt2" d="m51.982 33.947-15.322.002 41.131 115.17h14.518l41.131-115.17h-15.162l-25.971 73.872c-1.7205 4.7315-3.1706 9.1927-4.3535 13.387-1.1829 4.086-2.1516 8.0119-2.9043 11.775-.75272-3.7636-1.7195-7.7417-2.9023-11.936-1.1829-4.1938-2.635-8.7098-4.3555-13.549l-25.809-73.552z"/>
+ <path class="tw-fill-text-alt2" d="m84.264 5.0749a2.3288 2.3288 0 00-1.2122.99654l-4.145 6.9077c-.72599.06029-1.4502.12529-2.1701.20657l-5.406-5.9599a2.3288 2.3288 0 00-3.9203.77975l-2.7161 7.5796c-.7008.20184-1.4008.40458-2.0929.62653l-6.4616-4.7875a2.3288 2.3288 0 00-3.691 1.53l-1.1884 7.9871c-.63834.33084-1.2749.66363-1.9023 1.0124l-7.297-3.4482a2.3288 2.3288 0 00-3.3222 2.2201l.39272 8.0937c-.55229.44111-1.0997.8874-1.639 1.3438l-7.8588-1.9647a2.3288 2.3288 0 00-2.825 2.825l1.9647 7.8588c-.45646.53923-.90273 1.0867-1.3439 1.639l-8.0937-.39271a2.3288 2.3288 0 00-2.2201 3.3222l3.4482 7.297c-.3488.62737-.68158 1.2639-1.0124 1.9023l-7.9871 1.1884a2.3288 2.3288 0 00-1.53 3.6911l4.7875 6.4616c-.22196.69217-.4247 1.3921-.62653 2.093l-7.5796 2.7161a2.3288 2.3288 0 00-.77976 3.9203l5.9599 5.4061c-.08128.71995-.14628 1.4442-.20657 2.1701l-6.9077 4.1451a2.3288 2.3288 0 000 3.9952l6.9077 4.1439c.06028.72636.12524 1.451.20657 2.1713l-5.9599 5.4061a2.3288 2.3288 0 00.77976 3.9192l7.5796 2.7161c.20188.70099.4045 1.4017.62653 2.0941l-4.7875 6.4605a2.3288 2.3288 0 001.53 3.6922l7.9871 1.1884c.33079.63822.6637 1.275 1.0124 1.9023l-3.4482 7.297a2.3288 2.3288 0 002.2201 3.3222l8.0937-.39272c.44117.55235.88734 1.0997 1.3439 1.639l-1.9647 7.8588a2.3288 2.3288 0 002.825 2.825l7.8588-1.9647c.53923.45647 1.0867.90273 1.639 1.3438l-.39272 8.0926a2.3288 2.3288 0 003.3222 2.2201l7.297-3.447c.62736.34881 1.2639.68158 1.9023 1.0124l1.1884 7.987a2.3288 2.3288 0 003.691 1.5289l6.4616-4.7864c.69217.22197 1.3921.4247 2.0929.62654l2.7161 7.5796a2.3288 2.3288 0 003.9203.7786l5.4049-5.9588c.72031.0813 1.4449.14624 2.1713.20656l4.145 6.9077a2.3288 2.3288 0 003.9952 0l4.1439-6.9077c.72674-.0603 1.4517-.12518 2.1724-.20656l5.4049 5.9588a2.3288 2.3288 0 003.9192-.7786l2.7161-7.5796c.70103-.20189 1.4017-.4045 2.0941-.62654l6.4605 4.7864a2.3288 2.3288 0 003.6922-1.5289l1.1884-7.987c.63823-.33079 1.275-.6637 1.9023-1.0124l7.297 3.447a2.3288 2.3288 0 003.3222-2.2201l-.39271-8.0926c.55234-.44117 1.0997-.88734 1.639-1.3438l7.8588 1.9647a2.3288 2.3288 0 002.825-2.825l-1.9647-7.8588c.4565-.53928.90269-1.0866 1.3438-1.639l8.0926.39272a2.3288 2.3288 0 002.2201-3.3222l-3.447-7.297c.34872-.62723.68163-1.264 1.0124-1.9023l7.987-1.1884a2.3288 2.3288 0 001.5289-3.6922l-4.7863-6.4605c.22202-.69235.42462-1.3931.62652-2.0941l7.5796-2.7161a2.3288 2.3288 0 00.77862-3.9192l-5.9588-5.4049c.0814-.72069.14623-1.4457.20658-2.1724l6.9077-4.1439a2.3288 2.3288 0 000-3.9952l-6.9077-4.1451c-.0603-.72635-.12524-1.451-.20658-2.1713l5.9588-5.4049a2.3288 2.3288 0 00-.77862-3.9203l-7.5796-2.7161c-.20184-.70082-.40457-1.4008-.62652-2.093l4.7863-6.4616a2.3288 2.3288 0 00-1.5289-3.6911l-7.987-1.1884c-.33084-.63836-.66362-1.2749-1.0124-1.9023l3.447-7.297a2.3288 2.3288 0 00-2.2201-3.3222l-8.0926.39271c-.44112-.55229-.8874-1.0997-1.3438-1.639l1.9647-7.8588a2.3288 2.3288 0 00-2.825-2.825l-7.8588 1.9647c-.53927-.4565-1.0866-.9027-1.639-1.3438l.39271-8.0937a2.3288 2.3288 0 00-3.3222-2.2201l-7.297 3.4482c-.62726-.34873-1.264-.68165-1.9023-1.0124l-1.1884-7.9871a2.3288 2.3288 0 00-3.6922-1.53l-6.4605 4.7875c-.69236-.22201-1.3931-.42463-2.0941-.62653l-2.7161-7.5796a2.3288 2.3288 0 00-3.9192-.77975l-5.406 5.9599c-.72032-.08133-1.4449-.14626-2.1713-.20657l-4.1439-6.9077a2.3288 2.3288 0 00-2.783-.99654zm.78543 14.613a4.657 4.657 0 014.6569 4.6569 4.657 4.657 0 01-4.6569 4.6569 4.657 4.657 0 01-4.6569-4.6569 4.657 4.657 0 014.6569-4.6569zm-10.998 8.0064 7.7056 7.7056a4.6575 4.6575 0 006.5853 0l7.7056-7.7056c17.959 3.3214 33.023 14.65 41.468 30.141l-4.943 9.6998a4.6575 4.6575 0 002.0351 6.263l9.7123 4.9486c.32157 2.5182.49487 5.0839.49487 7.692 0 15.934-6.1974 30.369-16.306 41.066l-10.796-1.7093a4.6575 4.6575 0 00-5.3277 3.8704l-1.7116 10.804c-7.7603 3.6739-16.443 5.734-25.624 5.734-9.1812 0-17.864-2.0608-25.625-5.7352l-1.7116-10.803a4.6575 4.6575 0 00-5.3277-3.8715l-10.795 1.7105c-10.108-10.697-16.306-25.132-16.306-41.066 0-2.608.1733-5.1738.49487-7.692l9.7111-4.9486a4.6575 4.6575 0 002.0351-6.263l-4.9418-9.6986c8.4449-15.492 23.508-26.821 41.468-30.142zm-47.923 34.902a4.657 4.657 0 011.3064.22587 4.657 4
+ <path class="tw-fill-text-alt2" d="m304.87 145.51q7.8436 0 11.429 3.0814t3.5857 8.684q0 3.3055-1.5127 6.2189-1.4567 2.8573-4.9863 4.6502-3.4736 1.7928-9.4684 1.7928h-4.5941v15.575h-5.0423v-40.003zm-.44821 4.314h-5.0984v15.799h4.0339q5.7147 0 8.516-1.8489 2.8013-1.8488 2.8013-6.2749 0-3.8658-2.4652-5.7707-2.4651-1.9049-7.7876-1.9049zm34.456 5.1544q5.4906 0 8.1238 2.4091t2.6332 7.6756v20.449h-3.5857l-.95244-4.258h-.2241q-1.9609 2.4651-4.1459 3.6417-2.129 1.1765-5.9388 1.1765-4.0899 0-6.7792-2.129-2.6892-2.185-2.6892-6.7791 0-4.4821 3.5296-6.8912 3.5296-2.4651 10.869-2.6892l5.0984-.16808v-1.7928q0-3.7537-1.6248-5.2104t-4.5941-1.4567q-2.3531 0-4.4821.72834-2.129.67231-3.9778 1.5687l-1.5127-3.6977q1.9609-1.0645 4.6502-1.7928 2.6892-.78437 5.6026-.78437zm1.4567 16.023q-5.6026.2241-7.7876 1.7928-2.129 1.5687-2.129 4.426 0 2.5212 1.5127 3.6977 1.5687 1.1766 3.9778 1.1766 3.8098 0 6.3309-2.073 2.5212-2.129 2.5212-6.499v-2.6892zm38.154 6.2189q0 4.37-3.2495 6.6111-3.2495 2.241-8.7401 2.241-3.1375 0-5.4345-.50423-2.241-.50424-3.9778-1.4006v-4.4821q1.7928.89641 4.314 1.6808 2.5772.72834 5.2104.72834 3.7537 0 5.4345-1.1766 1.6808-1.2326 1.6808-3.2495 0-1.1205-.61628-2.0169-.61629-.89642-2.241-1.7928-1.5687-.89641-4.5381-2.0169-2.9134-1.1205-4.9863-2.241t-3.1935-2.6892-1.1205-4.0339q0-3.8098 3.0814-5.8827 3.1374-2.073 8.1798-2.073 2.7453 0 5.0984.56026 2.4091.50423 4.4821 1.4567l-1.6808 3.9218q-1.9049-.78436-3.9778-1.3446t-4.258-.56026q-3.0254 0-4.6502 1.0085-1.5687.95244-1.5687 2.6332 0 1.2326.72834 2.129.72834.84039 2.4091 1.6808 1.7368.78436 4.5941 1.9049 2.8573 1.0645 4.8743 2.185t3.0814 2.7453q1.0645 1.5687 1.0645 3.9778zm26.836 0q0 4.37-3.2495 6.6111t-8.74 2.241q-3.1375 0-5.4345-.50423-2.241-.50424-3.9778-1.4006v-4.4821q1.7928.89641 4.314 1.6808 2.5772.72834 5.2104.72834 3.7537 0 5.4345-1.1766 1.6808-1.2326 1.6808-3.2495 0-1.1205-.61629-2.0169-.61628-.89642-2.241-1.7928-1.5687-.89641-4.5381-2.0169-2.9134-1.1205-4.9863-2.241-2.073-1.1205-3.1935-2.6892t-1.1205-4.0339q0-3.8098 3.0814-5.8827 3.1375-2.073 8.1798-2.073 2.7453 0 5.0984.56026 2.4091.50423 4.4821 1.4567l-1.6808 3.9218q-1.9049-.78436-3.9778-1.3446t-4.258-.56026q-3.0254 0-4.6502 1.0085-1.5687.95244-1.5687 2.6332 0 1.2326.72833 2.129.72834.84039 2.4091 1.6808 1.7368.78436 4.5941 1.9049 2.8573 1.0645 4.8743 2.185 2.0169 1.1205 3.0814 2.7453 1.0645 1.5687 1.0645 3.9778zm26.668-8.684q-.72834-2.2971-1.2886-4.4821-.50424-2.241-.78437-3.4736h-.2241q-.2241 1.2326-.72834 3.4736-.50423 2.185-1.2886 4.5381l-5.3785 16.864h-5.6026l-8.2358-30.03h5.0984l4.1459 16.023q.61628 2.4091 1.1765 4.8743.56026 2.4651.78437 4.0899h.2241q.2241-.95245.50423-2.3531.33616-1.4006.72834-2.9134.39218-1.5687.78437-2.8013l5.3225-16.92h5.3785l5.1544 16.92q.61629 1.9049 1.1766 4.1459.61629 2.241.84039 3.8658h.2241q.16808-1.4006.72834-3.8658.61629-2.4652 1.2886-5.0423l4.202-16.023h5.0423l-8.3479 30.03h-5.7707zm50.76 1.9049q0 7.4515-3.8098 11.541-3.7537 4.0899-10.197 4.0899-3.9778 0-7.1153-1.7928-3.0814-1.8489-4.8743-5.3225-1.7928-3.5296-1.7928-8.516 0-7.4515 3.7537-11.485t10.197-4.0339q4.0899 0 7.1713 1.8488 3.1375 1.7928 4.8743 5.2664 1.7928 3.4176 1.7928 8.4039zm-22.691 0q0 5.3225 2.073 8.4599 2.129 3.0814 6.7231 3.0814 4.5381 0 6.6671-3.0814 2.129-3.1374 2.129-8.4599t-2.129-8.3479q-2.129-3.0254-6.7231-3.0254t-6.6671 3.0254q-2.073 3.0254-2.073 8.3479zm44.485-15.519q.84039 0 1.7928.11205 1.0085.056 1.7368.2241l-.61628 4.5381q-.72834-.16808-1.6248-.28013-.84039-.11205-1.6248-.11205-2.2971 0-4.314 1.2886-2.0169 1.2326-3.2495 3.5296-1.1766 2.241-1.1766 5.2664v16.023h-4.9303v-30.03h4.0339l.56026 5.4905h.2241q1.4567-2.4651 3.7537-4.258 2.2971-1.7928 5.4345-1.7928zm18.657 31.15q-5.6026 0-8.9642-3.8658-3.3616-3.9218-3.3616-11.653t3.3616-11.653q3.4176-3.9778 9.0202-3.9778 3.4736 0 5.6586 1.2886 2.241 1.2886 3.6417 3.1375h.33615q-.056-.72834-.2241-2.129-.11205-1.4567-.11205-2.2971v-11.99h4.9303v42.58h-3.9778l-.72834-4.0339h-.2241q-1.3446 1.9049-3.5857 3.2495-2.241 1.3446-5.7707 1.3446zm.78437-4.0899q4.7622 0 6.6671-2.5772 1.9609-2.6332 1.9609-7.8997v-.89641q0-5.6026-1.8488-8.572-1.8489-3.0254-6.8352-3.0254-3.9778 0-
+</svg>
`;
diff --git a/apps/web/src/app/layouts/product-switcher/product-switcher-content.component.html b/apps/web/src/app/layouts/product-switcher/product-switcher-content.component.html
index 9068f9c071..e051dccc85 100644
--- a/apps/web/src/app/layouts/product-switcher/product-switcher-content.component.html
+++ b/apps/web/src/app/layouts/product-switcher/product-switcher-content.component.html
@@ -29,7 +29,7 @@
<!-- Other options -->
<section
- *ngIf="products.other.length > 0"
+ *ngIf="false"
class="tw-mt-4 tw-flex tw-w-full tw-flex-col tw-gap-2 tw-border-0 tw-border-t tw-border-solid tw-border-t-text-muted tw-p-2 tw-pb-0"
>
<span class="tw-mb-1 tw-text-xs tw-text-muted">{{ "moreFromBitwarden" | i18n }}</span>
diff --git a/apps/web/src/app/layouts/user-layout.component.html b/apps/web/src/app/layouts/user-layout.component.html
index 3593390113..ac78bcb651 100644
--- a/apps/web/src/app/layouts/user-layout.component.html
+++ b/apps/web/src/app/layouts/user-layout.component.html
@@ -33,9 +33,5 @@
></bit-nav-item>
</bit-nav-group>
</nav>
- <app-payment-method-banners
- *ngIf="false"
- class="-tw-m-6 tw-flex tw-flex-col tw-pb-6"
- ></app-payment-method-banners>
<router-outlet></router-outlet>
</bit-layout>
diff --git a/apps/web/src/app/oss-routing.module.ts b/apps/web/src/app/oss-routing.module.ts
index e5c2f353c0..845d8b86ab 100644
--- a/apps/web/src/app/oss-routing.module.ts
+++ b/apps/web/src/app/oss-routing.module.ts
@@ -222,13 +222,6 @@ const routes: Routes = [
component: DomainRulesComponent,
data: { titleId: "domainRules" },
},
- {
- path: "subscription",
- loadChildren: () =>
- import("./billing/individual/individual-billing.module").then(
- (m) => m.IndividualBillingModule,
- ),
- },
{
path: "emergency-access",
children: [
diff --git a/apps/web/src/app/settings/settings.component.ts b/apps/web/src/app/settings/settings.component.ts
index c2fd1c77fa..9e116d7f2c 100644
--- a/apps/web/src/app/settings/settings.component.ts
+++ b/apps/web/src/app/settings/settings.component.ts
@@ -53,14 +53,7 @@ export class SettingsComponent implements OnInit, OnDestroy {
}
async load() {
- this.premium = await this.stateService.getHasPremiumPersonally();
- this.hasFamilySponsorshipAvailable = await this.organizationService.canManageSponsorships();
- const hasPremiumFromOrg = await this.stateService.getHasPremiumFromOrganization();
- let billing = null;
- if (!this.selfHosted) {
- billing = await this.apiService.getUserBillingHistory();
- }
- this.hideSubscription =
- !this.premium && hasPremiumFromOrg && (this.selfHosted || billing?.hasNoHistory);
+ this.hasFamilySponsorshipAvailable = false; // disable family Sponsorships in Vaultwarden
+ this.hideSubscription = true; // always hide subscriptions in Vaultwarden
}
}
diff --git a/apps/web/src/app/shared/loose-components.module.ts b/apps/web/src/app/shared/loose-components.module.ts
index 770a862eab..863efc8769 100644
--- a/apps/web/src/app/shared/loose-components.module.ts
+++ b/apps/web/src/app/shared/loose-components.module.ts
@@ -59,7 +59,6 @@ import { UpdateTempPasswordComponent } from "../auth/update-temp-password.compon
import { VerifyEmailTokenComponent } from "../auth/verify-email-token.component";
import { VerifyRecoverDeleteComponent } from "../auth/verify-recover-delete.component";
import { DynamicAvatarComponent } from "../components/dynamic-avatar.component";
-import { PaymentMethodBannersComponent } from "../components/payment-method-banners/payment-method-banners.component";
import { SelectableAvatarComponent } from "../components/selectable-avatar.component";
import { FrontendLayoutComponent } from "../layouts/frontend-layout.component";
import { HeaderModule } from "../layouts/header/header.module";
@@ -106,7 +105,6 @@ import { SharedModule } from "./shared.module";
PipesModule,
PasswordCalloutComponent,
DangerZoneComponent,
- PaymentMethodBannersComponent,
LayoutComponent,
NavigationModule,
HeaderModule,
diff --git a/apps/web/src/app/tools/send/access.component.html b/apps/web/src/app/tools/send/access.component.html
index 6fef7d361d..1deb1164ff 100644
--- a/apps/web/src/app/tools/send/access.component.html
+++ b/apps/web/src/app/tools/send/access.component.html
@@ -2,7 +2,7 @@
<div
class="tw-mx-auto tw-mt-5 tw-flex tw-max-w-xl tw-flex-col tw-items-center tw-justify-center tw-p-8"
>
- <img class="logo logo-themed" alt="Bitwarden" />
+ <img class="logo logo-themed" alt="Vaultwarden" />
<div class="tw-mt-5 tw-w-full">
<h2 bitTypography="h2" class="tw-mb-4 tw-text-center">View Send</h2>
</div>
@@ -66,19 +66,6 @@
<div class="tw-mt-5 tw-w-10/12 tw-text-center tw-text-muted">
<p bitTypography="body2" class="tw-mb-0">
{{ "sendAccessTaglineProductDesc" | i18n }}
- {{ "sendAccessTaglineLearnMore" | i18n }}
- <a
- bitLink
- href="https://www.bitwarden.com/products/send?source=web-vault"
- target="_blank"
- rel="noreferrer"
- >Bitwarden Send</a
- >
- {{ "sendAccessTaglineOr" | i18n }}
- <a bitLink routerLink="/register" target="_blank" rel="noreferrer">{{
- "sendAccessTaglineSignUp" | i18n
- }}</a>
- {{ "sendAccessTaglineTryToday" | i18n }}
</p>
</div>
</div>
diff --git a/apps/web/src/index.html b/apps/web/src/index.html
index c3a2c03ed9..1a326771a6 100644
--- a/apps/web/src/index.html
+++ b/apps/web/src/index.html
@@ -5,7 +5,7 @@
<meta name="viewport" content="width=1010" />
<meta name="theme-color" content="#175DDC" />
- <title page-title>Bitwarden Web Vault</title>
+ <title page-title>Vaultwarden Web</title>
<link rel="apple-touch-icon" sizes="180x180" href="images/icons/apple-touch-icon.png" />
<link rel="icon" type="image/png" sizes="32x32" href="images/icons/favicon-32x32.png" />
@@ -17,7 +17,7 @@
<app-root>
<div class="mt-5 d-flex justify-content-center">
<div>
- <img class="mb-4 logo logo-themed" alt="Bitwarden" />
+ <img class="mb-4 logo logo-themed" alt="Vaultwarden" />
<p class="text-center">
<i
class="bwi bwi-spinner bwi-spin bwi-2x text-muted"
diff --git a/apps/web/src/manifest.json b/apps/web/src/manifest.json
index 92a1204c60..d9ff4771a3 100644
--- a/apps/web/src/manifest.json
+++ b/apps/web/src/manifest.json
@@ -1,5 +1,5 @@
{
- "name": "Bitwarden Vault",
+ "name": "Vaultwarden Web",
"icons": [
{
"src": "images/icons/android-chrome-192x192.png",
@@ -12,6 +12,6 @@
"type": "image/png"
}
],
- "theme_color": "#175DDC",
- "background_color": "#175DDC"
+ "theme_color": "#FFFFFF",
+ "background_color": "#FFFFFF"
}
diff --git a/apps/web/src/scss/styles.scss b/apps/web/src/scss/styles.scss
index 98b3512ba5..8691768352 100644
--- a/apps/web/src/scss/styles.scss
+++ b/apps/web/src/scss/styles.scss
@@ -56,3 +56,80 @@
@import "./tables";
@import "./toasts";
@import "./vault-filters";
+
+/**** START Vaultwarden CHANGES ****/
+/* This combines all selectors extending it into one */
+%vw-hide {
+ display: none !important;
+}
+
+/* This allows searching for the combined style in the browsers dev-tools (look into the head tag) */
+.vw-hide,
+head {
+ @extend %vw-hide;
+}
+
+/* Hide the Subscription Page tab */
+bit-nav-item[route="settings/subscription"] {
+ @extend %vw-hide;
+}
+
+/* Hide any link pointing to Free Bitwarden Families */
+a[href$="/settings/sponsored-families"] {
+ @extend %vw-hide;
+}
+
+/* Hide the `Enterprise Single Sign-On` button on the login page */
+a[routerlink="/sso"] {
+ @extend %vw-hide;
+}
+
+/* Hide Two-Factor menu in Organization settings */
+bit-nav-item[route="settings/two-factor"],
+a[href$="/settings/two-factor"] {
+ @extend %vw-hide;
+}
+
+/* Hide Business Owned checkbox */
+app-org-info > form:nth-child(1) > div:nth-child(3) {
+ @extend %vw-hide;
+}
+
+/* Hide the `This account is owned by a business` checkbox and label */
+#ownedBusiness,
+label[for^="ownedBusiness"] {
+ @extend %vw-hide;
+}
+
+/* Hide the radio button and label for the `Custom` org user type */
+#userTypeCustom,
+label[for^="userTypeCustom"] {
+ @extend %vw-hide;
+}
+
+/* Hide Business Name */
+app-org-account form div bit-form-field.tw-block:nth-child(3) {
+ @extend %vw-hide;
+}
+
+/* Hide organization plans */
+app-organization-plans > form > h2.mt-5 {
+ @extend %vw-hide;
+}
+
+/* Hide Device Verification form at the Two Step Login screen */
+app-security > app-two-factor-setup > form {
+ @extend %vw-hide;
+}
+
+/* Replace the Bitwarden Shield at the top left with a Vaultwarden icon */
+.bwi-shield:before {
+ content: "" !important;
+ width: 32px !important;
+ height: 40px !important;
+ display: block !important;
+ background-image: url(../images/icon-white.png) !important;
+ background-repeat: no-repeat;
+ background-position-y: bottom;
+}
+/**** END Vaultwarden CHANGES ****/
diff --git a/apps/web/src/scss/variables.scss b/apps/web/src/scss/variables.scss
index 9d3d8d6ad4..5bc773c0d8 100644
--- a/apps/web/src/scss/variables.scss
+++ b/apps/web/src/scss/variables.scss
@@ -3,7 +3,7 @@ $dark-icon-themes: "theme_dark";
$primary: #175ddc;
$primary-accent: #1252a3;
$secondary: #ced4da;
-$secondary-alt: #1a3b66;
+$secondary-alt: #212529;
$success: #017e45;
$info: #555555;
$warning: #8b6609;
diff --git a/apps/web/webpack.config.js b/apps/web/webpack.config.js
index 6ac384cb82..0492e09476 100644
--- a/apps/web/webpack.config.js
+++ b/apps/web/webpack.config.js
@@ -141,8 +141,6 @@ const plugins = [
{ from: "./src/favicon.ico" },
{ from: "./src/browserconfig.xml" },
{ from: "./src/app-id.json" },
- { from: "./src/404.html" },
- { from: "./src/404", to: "404" },
{ from: "./src/images", to: "images" },
{ from: "./src/locales", to: "locales" },
{ from: "../../node_modules/qrious/dist/qrious.min.js", to: "scripts" },
diff --git a/libs/angular/src/auth/components/register.component.ts b/libs/angular/src/auth/components/register.component.ts
index 3cffebe71b..c1229b5c2c 100644
--- a/libs/angular/src/auth/components/register.component.ts
+++ b/libs/angular/src/auth/components/register.component.ts
@@ -106,6 +106,14 @@ export class RegisterComponent extends CaptchaProtectedComponent implements OnIn
}
async submit(showToast = true) {
+ if (typeof crypto.subtle === "undefined") {
+ this.platformUtilsService.showToast(
+ "error",
+ "This browser requires HTTPS to use the web vault",
+ "Check the Vaultwarden wiki for details on how to enable it",
+ );
+ return;
+ }
let email = this.formGroup.value.email;
email = email.trim().toLowerCase();
let name = this.formGroup.value.name;
diff --git a/libs/angular/src/auth/components/two-factor-options.component.ts b/libs/angular/src/auth/components/two-factor-options.component.ts
index 4293eb9966..7a8e861e8d 100644
--- a/libs/angular/src/auth/components/two-factor-options.component.ts
+++ b/libs/angular/src/auth/components/two-factor-options.component.ts
@@ -30,7 +30,9 @@ export class TwoFactorOptionsComponent implements OnInit {
}
recover() {
- this.platformUtilsService.launchUri("https://vault.bitwarden.com/#/recover-2fa");
+ this.platformUtilsService.launchUri(
+ "https://bitwarden.com/help/two-step-recovery-code/#use-your-recovery-code",
+ );
this.onRecoverSelected.emit();
}
}