diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 224c12b5751f7..ed825b761cbcc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2205,6 +2205,12 @@ importers: '@automattic/color-studio': specifier: 2.6.0 version: 2.6.0 + '@automattic/components': + specifier: 2.2.0 + version: 2.2.0(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@automattic/data-stores': + specifier: 3.1.0 + version: 3.1.0(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@automattic/i18n-utils': specifier: 1.2.3 version: 1.2.3 @@ -2214,6 +2220,9 @@ importers: '@automattic/jetpack-shared-extension-utils': specifier: workspace:* version: link:../../js-packages/shared-extension-utils + '@automattic/launchpad': + specifier: 1.1.0 + version: 1.1.0(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(@wordpress/element@6.9.0)(@wordpress/i18n@5.9.0)(debug@4.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) '@automattic/page-pattern-modal': specifier: 1.1.5 version: 1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1) @@ -2277,6 +2286,9 @@ importers: debug: specifier: 4.3.4 version: 4.3.4 + events: + specifier: ^3.3.0 + version: 3.3.0 preact: specifier: ^10.13.1 version: 10.22.1 @@ -2315,6 +2327,9 @@ importers: '@babel/preset-react': specifier: 7.24.7 version: 7.24.7(@babel/core@7.24.7) + '@babel/runtime': + specifier: 7.24.7 + version: 7.24.7 '@playwright/test': specifier: 1.45.1 version: 1.45.1 @@ -4970,18 +4985,44 @@ packages: '@automattic/babel-plugin-preserve-i18n@1.0.0': resolution: {integrity: sha512-dRmLP0Ytf2oDNbUbO8MXLKYnPZfqhtFQ8v1hgDo2Fde1Y0bUz2Ll1UmUOHdyZudnrN/8Zt95cG/fIOJ0dxHi8Q==} + '@automattic/calypso-analytics@1.1.2': + resolution: {integrity: sha512-+pPM41BL8XYxHKoEidk3/J3XjKxinVZfB0/t8E2KPBqGclDSVg7PXxslOzWsQsNju64rSWcjIY5+c8fnnWRW5g==} + '@automattic/calypso-color-schemes@3.1.3': resolution: {integrity: sha512-nzs36yfxUOcsD3HvB72IHgdUfIzTRnT7QmF78CBXEREawTEs0uDyELdx/rAOtW/PauxRYRGQ4zeK5c67FWqLxw==} '@automattic/calypso-config@1.2.0': resolution: {integrity: sha512-7NE5oVOEyQ4KRz1VNnPIHgW+mcwxnkcs/+Cymba7OA7SYKARiTg3ETGlZGX19S0F7gjYZMq+IeLHeAZSrNjz/Q==} + '@automattic/calypso-products@1.2.1': + resolution: {integrity: sha512-SeDOPquZRMV5ljubKQUbY3EHh0JZB5OCRUqqT9eN1J8SpWOZZArxYTxsqW3ocFb7dyvd/R1153TmDsNxfZILTw==} + peerDependencies: + '@wordpress/data': ^10.8.0 + react: ^18.3.1 + '@automattic/calypso-url@1.1.0': resolution: {integrity: sha512-oA6pzfrp538gq5JEjE0ARDjvR8Efhw+jrK15TJPjAq5Q+vhPSJhH8sYKEsMAoYZV3d5nnyUcmI5Evge+yq4zeg==} '@automattic/color-studio@2.6.0': resolution: {integrity: sha512-2LzB6bbQw1vayZxZy5Y+DnCYU7x8tPu+rZhNkWD7V8QZTSJMJO65XKZhYaCByC+C5OegXyGyZzcqEOHHdj5iiQ==} + '@automattic/color-studio@3.0.3': + resolution: {integrity: sha512-2GXkwfu4ndGEWWSlQQamCdXIQ9qJ1zbqbGROxJzE6F4kS2EXGgXvkMolpaa6X7ZjosqlGhtTTvYOwgIw/2qD7A==} + + '@automattic/components@2.2.0': + resolution: {integrity: sha512-AMuCD49xEPqR5b68l5MsVq/Lv/r8CpfXd/xJzZixhAFxTROtX+pcSaq7bR6SvMXuVhq+Mx+R+M7S2igS1H2L/g==} + peerDependencies: + '@wordpress/data': ^10.8.0 + react: ^18.3.1 + react-dom: ^18.3.1 + + '@automattic/data-stores@3.1.0': + resolution: {integrity: sha512-Z1FaeGAgzVFhOPkcdFS/sjWqZMEFoqs+roer3h535Auqn+Apzf9bw86nJkFFaP2hbYMIUvq5nE7bKAlL5KAGLA==} + peerDependencies: + '@wordpress/data': ^10.8.0 + react: ^18.3.1 + react-dom: ^18.3.1 + '@automattic/explat-client-react-helpers@0.1.1': resolution: {integrity: sha512-ilebWXmuleHg3BYThJvKW/iraS5kV9iQvm+vtJn6Mkl01rkMDCmsl4MGYOYiKLi/BpUq0QVlD8qKapOsz5g3Vg==} @@ -4991,12 +5032,47 @@ packages: '@automattic/format-currency@1.0.1': resolution: {integrity: sha512-RY2eiUlDiqNSHiJzz2YmH/mw4IjAUO5hkxbwcVGHJkBZowdq/WcSG2yhXc8N9cV9N1fTO/ryCuJvGnpHUe+mAg==} + '@automattic/format-currency@2.0.0': + resolution: {integrity: sha512-9A+oKRUm+n4f+cT4FHsDkCpo4mVRa/zBAvsXXq5vZpwfOWskAyDjdxA03Jl8A+z7pHYRimysG4WLM3jMRJutLw==} + '@automattic/i18n-utils@1.2.3': resolution: {integrity: sha512-zvZlazUoEasLATrta3ljfxu2uaZWgHRNKWf56KKBlrPiIxNQvx9D7YyN2MhiV27e/PuAhB0gI4ghqp3gzurKmA==} + '@automattic/interpolate-components@1.2.1': + resolution: {integrity: sha512-YNQtJsrs9KQ3lkBdtLyDheVRijoBA3y/PuHdgJ0eB4AX9JyjkDX7jd79Inh79+01CGNLbMQGrEJby2zvbJr17A==} + peerDependencies: + '@types/react': '>=16.14.23' + react: '>=16.2.0' + peerDependenciesMeta: + '@types/react': + optional: true + + '@automattic/js-utils@0.1.0': + resolution: {integrity: sha512-mo/BsXWCjR8fYzg66q3Qk3/fhLplMX6Wh8i1IFXPW4nwVsP3btryayn4xPdkMBPPuKwemBzHTHX3L7j4LUtwCw==} + '@automattic/languages@1.0.0': resolution: {integrity: sha512-froTyDbTmLitHkvY9WLCpFdjUo6moOLkDKw63J2fLiB2gBApy2thkBV+LRx4Z0kIF5iXVkQF4yYOPYkT9Sr13Q==} + '@automattic/launchpad@1.1.0': + resolution: {integrity: sha512-FQaQmS9DLH926IGgy0nMrqR60ps1SET8LBHkz79/sY6+U/WRY3d6Ac/yhNQxT4xwA9wtNXX1fPDwF6kP04b7Zg==} + peerDependencies: + '@wordpress/data': ^10.8.0 + '@wordpress/element': ^6.8.0 + '@wordpress/i18n': ^5.8.0 + debug: ^4.3.3 + react: ^18.3.1 + react-dom: ^18.3.1 + redux: ^4.2.1 + + '@automattic/load-script@1.0.0': + resolution: {integrity: sha512-Hc1mRmTK12OKrONnGhe7Ht1Gpo4B/ls8WQ1IZ1/qBws1bUZ6u7Crnpv3HZkN4UI7irG3OU4l4Pn1TXtoJLcKRw==} + + '@automattic/material-design-icons@1.0.0': + resolution: {integrity: sha512-8baJ1l8ftLq/UdLeucOeGXo4/wpaB/pSOBO587/pKC/xv2Oo8Ok21g1WKwp0Y8hEq4+3JNtCzOGVxmIgDBTYvA==} + + '@automattic/oauth-token@1.0.0': + resolution: {integrity: sha512-SaAQ7ZNiaGNkdVbE01qyYGhu1zKTF/gpO1O5te3s8NPQaUy7456zoQSnuZqNawBuU09RwccDqvaFiVT0SqSYBw==} + '@automattic/page-pattern-modal@1.1.5': resolution: {integrity: sha512-cFA82qWUDSSFhOHfOkOqh7X8I9As5fNGp7w3LVw7ZDRl6wSiQZveLvWp4msNDnLmeiJTpxWVOZWvCirxYUE3Sw==} peerDependencies: @@ -5010,6 +5086,12 @@ packages: '@automattic/request-external-access@1.0.0': resolution: {integrity: sha512-vhN72lwPFzhCVMP1l2ODBqt7fI5jfeJz1JyBnq/AUCg9PpsJfdk4vZxhSOLhSSds8VMkU5WaNnaztkYfkkYOiA==} + '@automattic/shopping-cart@2.0.1': + resolution: {integrity: sha512-Vnfi+PtgiJu9VSmenTgbFrzB8G7eShVm9EAov7zIt54KeOBS44pn01ZJiZwZRRiA8pi8CkPHRW1sfpR/SAcKiw==} + peerDependencies: + react: ^18.3.1 + react-dom: ^18.3.1 + '@automattic/social-previews@2.1.0-beta.8': resolution: {integrity: sha512-DakeRnV8JUhi8eD2Ft3HhrPPSnMgWnQDb0K/fuhrolNNbl/gVNng1gAF8Y8WrpGRVN5h0xdVhuszJeG6r4RotA==} peerDependencies: @@ -5023,9 +5105,21 @@ packages: '@automattic/typography@1.0.0': resolution: {integrity: sha512-TnT+vPaNUXQYwDsPCPxhNY0d4LnOKvrb0SizUCC5iybo5sfOlX/rYalGDyz6nPQDF0EBaQwMf7qhVsflFR0cBg==} + '@automattic/urls@1.0.0': + resolution: {integrity: sha512-dTunk7PqvF/w0b7DFb8aUW85XbkqEwChTllManUq1uMDdeA6S6YWeCs7t5bBei0D1RFUs9FDdyspeLisNxfbAg==} + + '@automattic/viewport-react@1.0.1': + resolution: {integrity: sha512-CFPY3rd0Stk2TdCVJRJ4KLerpjXTuJi0ArshwikYfQCcCcZm+YKbLi3oPiqmtBIN5QOzL7AlqbD9Wwc9NiBBMA==} + peerDependencies: + react: ^18.3.1 + react-dom: ^18.3.1 + '@automattic/viewport@1.0.0': resolution: {integrity: sha512-aSJRuZ80kds6kO+baIw8wK4nmlHG/e/sUPa7BDwalo8vBLtBnW07GsXm1zGgz9htgEogFuuxBdKR4IjO1z8phA==} + '@automattic/viewport@1.1.0': + resolution: {integrity: sha512-aZhGcaXVeT0rxZdsPq+xbQyIpT+GoS5gYiXAVrTrImOgWUEhP0LU9guil8Wy9/2FJrxfD3IkvNnzC1aWviXw1w==} + '@automattic/webpack-rtl-plugin@6.0.0': resolution: {integrity: sha512-hjKjxccXJltt+KU7Oxu6HUeFMfd9w5mec+orFGa97zPKxPNCG90dXhiWn+Hrf6ZmP+o0vqrdsGN5x3O0pnQMqA==} peerDependencies: @@ -5674,6 +5768,10 @@ packages: resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} engines: {node: '>=6.9.0'} + '@babel/runtime@7.25.7': + resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} + engines: {node: '>=6.9.0'} + '@babel/template@7.25.7': resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} engines: {node: '>=6.9.0'} @@ -6597,6 +6695,10 @@ packages: resolution: {integrity: sha512-XiY0IsyHR+DXYS5vBxpoBe/8veTeoRpMHP+vDosLZxL5bnpetzI0igkxkLZS235ldLzyfkxF+2divEwWHP3vMQ==} engines: {node: '>=14'} + '@remix-run/router@1.20.0': + resolution: {integrity: sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==} + engines: {node: '>=14.0.0'} + '@remix-run/router@1.5.0': resolution: {integrity: sha512-bkUDCp8o1MvFO+qxkODcbhSqRa6P2GXgrGZVpt0dCXNW2HCSCqYI0ZoAqEOSAjRWmmlKcYgFvN4B4S+zo/f8kg==} engines: {node: '>=14'} @@ -7169,6 +7271,9 @@ packages: '@tannin/postfix@1.1.0': resolution: {integrity: sha512-oocsqY7g0cR+Gur5jRQLSrX2OtpMLMse1I10JQBm8CdGMrDkh1Mg2gjsiquMHRtBs4Qwu5wgEp5GgIYHk4SNPw==} + '@tannin/sprintf@1.2.0': + resolution: {integrity: sha512-T0ORaQrH6kNFGzTg285RVPK+NCYZxOoA+r0QfKgHqK+yk5RuYPSKDa18XCLtycCNq+VWKpfyDpzGUGhYgCV+kw==} + '@tanstack/query-core@4.35.3': resolution: {integrity: sha512-PS+WEjd9wzKTyNjjQymvcOe1yg8f3wYc6mD+vb6CKyZAKvu4sIJwryfqfBULITKCla7P9C4l5e9RXePHvZOZeQ==} @@ -7690,6 +7795,10 @@ packages: peerDependencies: react: ^18.0.0 + '@wordpress/api-fetch@7.10.0': + resolution: {integrity: sha512-sL71KkvtdGdaZmy7T0+nsTaBVhN0LSwkm3nh/qnebIYzpjZeiPWF/QeoGtJk/lKB15HjbTbfwvFEjiMI4dFvhA==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/api-fetch@7.9.0': resolution: {integrity: sha512-iqH4lNiH8FnIkJ8Nxx4KQYQMd4c/4OwZfjrk0ITwMK5PaVJHnFZ7xZV6ncMbgXbf0VjuPjfKMRmPzxICXw08IQ==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7762,6 +7871,18 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 + '@wordpress/compose@6.35.0': + resolution: {integrity: sha512-PfruhCxxxJokDQHc2YBgerEiHV7BIxQk9g5vU4/f9X/0PBQWUTuxOzSFcAba03vnjfAgtPTSMp50T50hcJwXfA==} + engines: {node: '>=12'} + peerDependencies: + react: ^18.0.0 + + '@wordpress/compose@7.10.0': + resolution: {integrity: sha512-/j4+wXthaV/KMt0VANvhhRJEJfPc21c7Tq1ZeLxgsbkq4xmi9qXeDT91cvP/U+Ta3phf15K8vdxMr8MqHHiFoQ==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + peerDependencies: + react: ^18.0.0 + '@wordpress/compose@7.9.0': resolution: {integrity: sha512-6f1mZLwMD2woFSMLJ5JaCZQZz1kFD2X4gwT5c4IVnzpm+/9A0OqeTdncAi6I6wHRtKN9DzvaMQPuZitQz7HmNA==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7782,6 +7903,18 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 + '@wordpress/data-controls@4.10.0': + resolution: {integrity: sha512-a7IBnxmzZYIYQzj5iPgBfHZPR65gj+AONNFHM7EUIe9FuyqWtPHy/1jUB7z95ataadh+G4d62ZwZiR1O+prSxg==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + peerDependencies: + react: ^18.0.0 + + '@wordpress/data@10.10.0': + resolution: {integrity: sha512-oyYl89p86+U9W6vKDqScKhUGKKzsnETj9rg8zOnT4K9ceOScjGCgdCE+XxcY9exeRg33aSYDjmvnsXXYStBYmA==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + peerDependencies: + react: ^18.0.0 + '@wordpress/data@10.9.0': resolution: {integrity: sha512-hw8VYSPZuEqlEwRnQnKgqzbwCqoGY4U5kLCZA/1McOYspvkIceTVve4qBC17QUJhu2pLEXEc6p4zBpy+SXfToQ==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7804,6 +7937,14 @@ packages: peerDependencies: webpack: ^5.0.0 + '@wordpress/deprecated@3.58.0': + resolution: {integrity: sha512-knweE2lLEUxWRr6A48sHiO0ww5pPybGe2NVIZVq/y7EaYCMdpy6gYA0ZdVqMKZvtxKKqicJfwigcn+hinsTvUQ==} + engines: {node: '>=12'} + + '@wordpress/deprecated@4.10.0': + resolution: {integrity: sha512-lktJKX3AxrskTuLbJuKY/Mzg9De6MYcOzEEL+RUHxfIx8wMtiDnVTAf7epur9XuHVOmdgCCRT6D44I23MoS0sw==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/deprecated@4.9.0': resolution: {integrity: sha512-1PMCLULxTlI0iatsHxpPgtogMfvd/wvAqAOLGHUdkdbBtUEquGrRMo/h+TLU/ne2JDf5JKMA4ntQV6zDNO4+eg==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7812,6 +7953,14 @@ packages: resolution: {integrity: sha512-Kas5YaRl+HebAxFfv9ctB8bdmjbhISIBo747nXCK6KqojQ/Zn2Bctv2XTypR3GMb7OS7KqVMeyCJhjEpuc8Wlw==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/dom@3.58.0': + resolution: {integrity: sha512-t3xSr/nqekj2qwUGRAqSeGx6116JOBxzI+VBiUfZrjGEnuyKdLelXDEeYtcwbb7etMkj/6F60/NB7GTl5IwizQ==} + engines: {node: '>=12'} + + '@wordpress/dom@4.10.0': + resolution: {integrity: sha512-1ZRCrDB2TV44GLwaUH9HRGQGQqXcawSEmzVPABQwfwzkUKijfbRdsWqpHrTLqlSZRImHEdp6oSON+1JmCNhXSw==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/dom@4.9.0': resolution: {integrity: sha512-g9jRTxOpSfygEbKNGwYwx21b5GktI2SkwQSAPKpG4mmFAvLbqIzjVc2nkudRO914DKgPWrBsfKsc4Smbtpbkig==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7830,10 +7979,26 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 + '@wordpress/element@5.35.0': + resolution: {integrity: sha512-puswpGcIdS+0A2g28uHriMkZqqRCmzFczue5Tk99VNtzBdehyk7Ae+DZ4xw5yT6GqYai8NTqv6MRwCB78uh5Mw==} + engines: {node: '>=12'} + + '@wordpress/element@6.10.0': + resolution: {integrity: sha512-7zW+14vHqEn45nszSLMUqE5IbzOtvgUUgF56qlMhwabpG4l/zhaj3gO3wLDI19C13ih1vOdSjzPc3At4fB3tRQ==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/element@6.9.0': resolution: {integrity: sha512-G5W29cxfAVc/JQBzkKoXh1t4T+G3HWa1kIgXCqIZksonlYHzCVON1Or+rD/YJZSxT6RDkBVDzdl9p0pGOrccTg==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/escape-html@2.58.0': + resolution: {integrity: sha512-9YJXMNfzkrhHEVP1jFEhgijbZqW8Mt3NHIMZjIQoWtBf7QE86umpYpGGBXzYC0YlpGTRGzZTBwYaqFKxjeaSgA==} + engines: {node: '>=12'} + + '@wordpress/escape-html@3.10.0': + resolution: {integrity: sha512-3glY3MhXEHlPP0/hrS3vkRmAOHtutvoHGhkr8vnva6TLg4CsAeo42nYbuFJ+ukVMWdCtmV+28UjOeiYtG/fZOA==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/escape-html@3.9.0': resolution: {integrity: sha512-+/SnVUXzzr+0pgfAqK3pocGveSDS3SHrgJ1BTgV7DA1l6y9mbjnqKgFQkNW/nzca92ZuYg2vjLcq1dqDGz4v1Q==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7875,6 +8040,14 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 + '@wordpress/hooks@3.58.0': + resolution: {integrity: sha512-9LB0ZHnZRQlORttux9t/xbAskF+dk2ujqzPGsVzc92mSKpQP3K2a5Wy74fUnInguB1vLUNHT6nrNdkVom5qX1Q==} + engines: {node: '>=12'} + + '@wordpress/hooks@4.10.0': + resolution: {integrity: sha512-LcorV5Z9XoJCKyj5Ulgw1HPHyM2mxsSInC7wl5cuIgDFmuwPTfRndUDGWz/v86GX1GnUIB0h/ggd53vx1HiW4A==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/hooks@4.9.0': resolution: {integrity: sha512-nan2w5imPhTaJwWdKjm/0ZMDbWR3P6Vhl4OqnBZZcJqOyNSfwsnJ98I+BWjq0U6SmiCnZQERjN0SjVdmD1tCjw==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7883,6 +8056,16 @@ packages: resolution: {integrity: sha512-RaiMecK8Igqb4yreJncSZEBl6DR1eAj8M3mHwrJASJLiiBLcaWg0oi8iiabUEmgGCsIu2pCeXmV+8WO0FRDO5Q==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/i18n@4.58.0': + resolution: {integrity: sha512-VfvS3BWv/RDjRKD6PscIcvYfWKnGJcI/DEqyDgUMhxCM6NRwoL478CsUKTiGJIymeyRodNRfprdcF086DpGKYw==} + engines: {node: '>=12'} + hasBin: true + + '@wordpress/i18n@5.10.0': + resolution: {integrity: sha512-HZ6UcMHsjOocDI0zVAuP4JIl97LRmpGo/lVxzVIreaLoYitmYVDUzji02u1o7sEdRWc1Hpkm2/oO/9275rJg1w==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + hasBin: true + '@wordpress/i18n@5.9.0': resolution: {integrity: sha512-pKFV9S/l0TFlm0mlWLW51hAoRDNmZPGnfEpNXq43VKZkm1cco3Z1E54PHMGk8HdCECHqYNiJuQJOBOlqcYmnVQ==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7909,6 +8092,14 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 + '@wordpress/is-shallow-equal@4.58.0': + resolution: {integrity: sha512-NH2lbXo/6ix1t4Zu9UBXpXNtoLwSaYmIRSyDH34XNb0ic8a7yjEOhYWVW3LTfSCv9dJVyxlM5TJPtL85q7LdeQ==} + engines: {node: '>=12'} + + '@wordpress/is-shallow-equal@5.10.0': + resolution: {integrity: sha512-KOkZzOnmjpH7hzPiaXUjhUlfKIGTzL7qUdNHBC1SFDOYpnRUSw8f1AtWxRpPBHl5dieYVx0x1qjOWjm/DtTOXg==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/is-shallow-equal@5.9.0': resolution: {integrity: sha512-cKqgI6RQ27ZZRo4Zc/jioG3qInDKQqcT3xg5YxsduX2f1b6vQV42p0L4waLFeJZQ8WDUsgsR53AQivdInkO8gA==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7925,6 +8116,14 @@ packages: peerDependencies: react: ^18.0.0 + '@wordpress/keycodes@3.58.0': + resolution: {integrity: sha512-Q/LRKpx8ndzuHlkxSQ2BD+NTYYKQPIneNNMng8hTAfyU7RFwXpqj06HpeOFGh4XIdPKCs/8hmucoLJRmmLmZJA==} + engines: {node: '>=12'} + + '@wordpress/keycodes@4.10.0': + resolution: {integrity: sha512-2i+N90HBMqQegtGqeVB8pJz8ZgKAY1eZmQegE9MXczYVac85DDOoxhY/41c44s6Kwl3waJ2Zght6UXE0OUFMxw==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/keycodes@4.9.0': resolution: {integrity: sha512-WO4MPlO+uGaDP5jYB9f4hn0NgBwvlaUvj4MLOIDcQGE0ljElLGFeXvqjVH0KVtnZkIKiZNPK7eoQxTWnxWaTjw==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -7978,14 +8177,36 @@ packages: peerDependencies: react: ^18.0.0 + '@wordpress/priority-queue@2.58.0': + resolution: {integrity: sha512-W+qCS8HJWsXG8gE6yK/H/IObowcghPrQMM3cQHtfd/U05yFNU1Bd/fbj3AO1fVRztktS47lIpi9m3ll1evPEHA==} + engines: {node: '>=12'} + + '@wordpress/priority-queue@3.10.0': + resolution: {integrity: sha512-Gjbw5NmRLrZ9KkiROJlL4I/s96bMlpd7gGkQbcCyyeLIZduGxQDzI4Jih5s0Xrm7Gj8WFd57wRDe/voZJR0ZsQ==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/priority-queue@3.9.0': resolution: {integrity: sha512-QVfELUL4ei5Uf0DNG9wMVNBILasGWWWogVjVeP1xXqmfSDoeFpPzXpfL9zfANndE2S49DJP9ZoZsCaJHtMrYzA==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/private-apis@1.10.0': + resolution: {integrity: sha512-gH6ZHmkc01MC431nMyjxFmU/77jVliOwjuv6SffQUgHMJyM75LiKC8CU8LEeLWbn3obG87m/n7Quj5p2MjtaeA==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/private-apis@1.9.0': resolution: {integrity: sha512-hZbKVSlo5yOpssMshXwNlUyk83Ev55ZKMfJMVU5nWxiIM9bMCuhpwU+AXQ0GKxOzn2oMayVmtJ00FRbJFg+AMg==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/react-i18n@4.10.0': + resolution: {integrity: sha512-G8w6xUfbDtZvRKht4XwWDNj0IKeSTOPVs6qM36yf/l43NPNAAJ0g/pSnCvkcVH0P7T0J0SZ3MbqNQ41/1ConvA==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + + '@wordpress/redux-routine@5.10.0': + resolution: {integrity: sha512-oDqZDjz8H/bt02IEoIZCwsUsL17UOEnMg/heV0PoJxo3k5MTrvqJqzgBLoSC0PFzx/pwOo4TwvwCL+kjjm5gCQ==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + peerDependencies: + redux: '>=4' + '@wordpress/redux-routine@5.9.0': resolution: {integrity: sha512-eEb/otHMhOwVUydb5kErV3X+1R8qQ2hrLmlWIh+kiiKwFJVCl3ge/xN8Tiy1kEBEqgGRgPqxuLvNPZDd0ySpNg==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -8034,10 +8255,22 @@ packages: resolution: {integrity: sha512-mnwh8WcA9//DVwwZVfEaFHfIK1RaNQ8QvhD1fOtjJWjheS12QsQwjdlGTgvBVl66ErP65GdK7BM1pTv6NI0GwA==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/undo-manager@0.18.0': + resolution: {integrity: sha512-upbzPEToa095XG+2JXLHaolF1LfXEMFS0lNMYV37myoUS+eZ7/tl9Gx+yU2+OqWy57TMwx33NlWUX/n+ynzPRw==} + engines: {node: '>=12'} + + '@wordpress/undo-manager@1.10.0': + resolution: {integrity: sha512-WaLwZ+AlfXQm9PhLf6kwCBaD5DoKaIqelRsgAaqa4APjgMBlxktQ1dadime0CO9+e8R2kLwAE3rxQXhGjicRMw==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/undo-manager@1.9.0': resolution: {integrity: sha512-JLrcmeCTqITbChkJy+PeXcE03+6ZgIfQ22cBg1+0mzLQxglx1gndTnhRcnCSebvsXnmOVmxvE4HmJ84lv7liCQ==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/url@4.10.0': + resolution: {integrity: sha512-SKlXocsTlaSee2trXcB0N3jdIfEGMnPiqNxxvTjeeBmsP/47MMXu5lXYslYyYlQbluhAR5/RMf0o3WqZAF2uOg==} + engines: {node: '>=18.12.0', npm: '>=8.19.2'} + '@wordpress/url@4.9.0': resolution: {integrity: sha512-PjfExLOzaagtDZ20CAaCMh4SzeHWzJC3fiRzX4eV0esfHr4K58duxIEHXwOZ69L8/Cn596OCjrFO+CHd16jYdQ==} engines: {node: '>=18.12.0', npm: '>=8.19.2'} @@ -8585,6 +8818,9 @@ packages: caniuse-lite@1.0.30001667: resolution: {integrity: sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==} + canvas-confetti@1.9.3: + resolution: {integrity: sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==} + capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} @@ -8859,6 +9095,10 @@ packages: cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} + cookie@0.4.2: + resolution: {integrity: sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==} + engines: {node: '>= 0.6'} + cookie@0.7.0: resolution: {integrity: sha512-qCf+V4dtlNhSRXGAZatc1TasyFO6GjohcOul807YOb5ik3+kQSnb4d7iajeCL8QHaJ4uZEjCgiCJerKXwdRVlQ==} engines: {node: '>= 0.6'} @@ -9730,6 +9970,9 @@ packages: resolution: {integrity: sha512-tQbH0pH/8LHTnwTrsKWideqi6rFB/QNUawEwrn+WHyz7PX1Tuz2u7wfTvbaNBdP5JD5LVWxNo8/A8CHNZ3bV6g==} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + exenv@1.2.2: + resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==} + exit@0.1.2: resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} engines: {node: '>= 0.8.0'} @@ -10156,6 +10399,11 @@ packages: peerDependencies: react: 15 - 18 + gridicons@3.4.2: + resolution: {integrity: sha512-KC2BzPDh3F0vJzYa7KYBWJOO9gTHoKoFiHNazZEU9Gq2jIJ2zObOA67wlZjZkPHPCjZiLQrko3AYFLrMrHXKrA==} + peerDependencies: + react: 15 - 18 + has-ansi@2.0.0: resolution: {integrity: sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==} engines: {node: '>=0.10.0'} @@ -10186,6 +10434,9 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + hash.js@1.1.7: + resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} + hasha@5.2.2: resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} engines: {node: '>=8'} @@ -10305,6 +10556,11 @@ packages: engines: {node: '>=14'} hasBin: true + i18n-calypso@7.0.0: + resolution: {integrity: sha512-GQesQzd/VYXiJOrjMixJNFOqNOcp43kKGKZTimYu70RabvcObpjfAOqtrQganszXqXWxZ7fAXOnhCTd8NVtf/Q==} + peerDependencies: + react: ^18.2.0 + iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -11164,6 +11420,10 @@ packages: resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} engines: {node: '>=12'} + lru@3.1.0: + resolution: {integrity: sha512-5OUtoiVIGU4VXBOshidmtOsvBIvcQR6FD/RzWSvaeHyxCGB+PCUCu+52lqMfdc0h/2CLvHhZS4TwUmMQrrMbBQ==} + engines: {node: '>= 0.4.0'} + lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true @@ -11411,6 +11671,9 @@ packages: peerDependencies: webpack: ^5.0.0 + minimalistic-assert@1.0.1: + resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} + minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -12367,6 +12630,16 @@ packages: react-is@18.3.1: resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} + react-lifecycles-compat@3.0.4: + resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} + + react-modal@3.16.1: + resolution: {integrity: sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==} + engines: {node: '>=8'} + peerDependencies: + react: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 + react-dom: ^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18 + react-page-visibility@7.0.0: resolution: {integrity: sha512-d4Kq/8TtJSr8dQc8EJeAZcSKTrGzC5OPTm6UrMur9BnwP0fgTawI9+Nd+ZGB7vwCfn2yZS0qDF9DR3/QYTGazw==} engines: {node: '>=10'} @@ -12444,6 +12717,13 @@ packages: react: '>=16.8' react-dom: '>=16.8' + react-router-dom@6.27.0: + resolution: {integrity: sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + react-router-dom@6.6.2: resolution: {integrity: sha512-6SCDXxRQqW5af8ImOqKza7icmQ47/EMbz572uFjzvcArg3lZ+04PxSPp8qGs+p2Y+q+b+S/AjXv8m8dyLndIIA==} engines: {node: '>=14'} @@ -12479,6 +12759,12 @@ packages: peerDependencies: react: '>=16.8' + react-router@6.27.0: + resolution: {integrity: sha512-YA+HGZXz4jaAkVoYBE98VQl+nVzI+cVI2Oj/06F5ZM+0u3TgedN9Y9kmMRo2mnkSK2nCpNQn0DVob4HCsY/WLw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-router@6.6.2: resolution: {integrity: sha512-uJPG55Pek3orClbURDvfljhqFvMgJRo59Pktywkk8hUUkTY2aRfza8Yhl/vZQXs+TNQyr6tu+uqz/fLxPICOGQ==} engines: {node: '>=14'} @@ -13070,6 +13356,9 @@ packages: resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} engines: {node: '>= 0.4'} + store@2.0.12: + resolution: {integrity: sha512-eO9xlzDpXLiMr9W1nQ3Nfp9EzZieIQc10zPPMP5jsVV7bLOziSFFBP0XoDXACEIFtdI+rIz0NwWVA/QVJ8zJtw==} + storybook-addon-mock@5.0.0: resolution: {integrity: sha512-AGhfdAsksusJgh/VNcaGbXe1gJIVx8RKuPYMCkmCRyeMAEZggrWcU7nIADZWUJuD477mKUkaBP7I54p+3527Xg==} peerDependencies: @@ -13755,6 +14044,11 @@ packages: peerDependencies: react: '>=16.8.0' + use-debounce@3.4.3: + resolution: {integrity: sha512-nxy+opOxDccWfhMl36J5BSCTpvcj89iaQk2OZWLAtBJQj7ISCtx1gh+rFbdjGfMl6vtCZf6gke/kYvrkVfHMoA==} + peerDependencies: + react: '>=16.8.0' + use-memo-one@1.1.3: resolution: {integrity: sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ==} peerDependencies: @@ -13770,6 +14064,11 @@ packages: '@types/react': optional: true + use-subscription@1.6.0: + resolution: {integrity: sha512-0Y/cTLlZfw547tJhJMoRA16OUbVqRm6DmvGpiGbmLST6BIA5KU5cKlvlz8DVMrACnWpyEjCkgmhLatthP4jUbA==} + peerDependencies: + react: ^18.0.0 + use-sync-external-store@1.2.2: resolution: {integrity: sha512-PElTlVMwpblvbNqQ82d2n6RjStvdSoNe9FG28kNfz3WiXilJm4DdNkEzRhCZuIDwY8U08WVihhGR5iRqAwfDiw==} peerDependencies: @@ -13784,6 +14083,10 @@ packages: utila@0.4.0: resolution: {integrity: sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==} + utility-types@3.11.0: + resolution: {integrity: sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==} + engines: {node: '>= 4'} + utils-merge@1.0.1: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} @@ -13800,6 +14103,10 @@ packages: resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==} engines: {node: '>=10.12.0'} + validator@13.12.0: + resolution: {integrity: sha512-c1Q0mCiPlgdTVVVIJIrBuxNicYE+t/7oKeI9MWLj3fh/uq2Pxh/3eeWbVZ4OcGW1TUf53At0njHw5SMdA3tmMg==} + engines: {node: '>= 0.10'} + value-equal@1.0.1: resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} @@ -13988,6 +14295,9 @@ packages: wpcom-proxy-request@7.0.5: resolution: {integrity: sha512-IJ0AYAxA6zOaIt8mD3aKDcaTQrOQiaV41/AKU42fL+GkH2chV7MGYf02hQrtMifLAjdAg0Xwm7IlGCfv+cy9XQ==} + wpcom-proxy-request@7.0.6: + resolution: {integrity: sha512-Hzo3AWwT89/4TWHiMdzClu0hlDptZLmQjaP3vQL2kw7dhNsWD6yE52sOOrzyfCSsoJZbZOk9j38A1+2csNfppQ==} + wrap-ansi@3.0.1: resolution: {integrity: sha512-iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==} engines: {node: '>=4'} @@ -14211,10 +14521,38 @@ snapshots: '@automattic/babel-plugin-preserve-i18n@1.0.0': {} + '@automattic/calypso-analytics@1.1.2': + dependencies: + '@automattic/load-script': 1.0.0 + cookie: 0.4.2 + debug: 4.3.4 + hash.js: 1.1.7 + tslib: 2.5.0 + uuid: 9.0.1 + transitivePeerDependencies: + - supports-color + '@automattic/calypso-color-schemes@3.1.3': {} '@automattic/calypso-config@1.2.0': {} + '@automattic/calypso-products@1.2.1(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@automattic/calypso-config': 1.2.0 + '@automattic/components': 2.2.0(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@automattic/i18n-utils': 1.2.3 + '@automattic/shopping-cart': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@automattic/urls': 1.0.0 + '@wordpress/data': 10.9.0(react@18.3.1) + i18n-calypso: 7.0.0(@types/react@18.3.3)(react@18.3.1) + react: 18.3.1 + transitivePeerDependencies: + - '@babel/runtime' + - '@emotion/is-prop-valid' + - '@types/react' + - react-dom + - supports-color + '@automattic/calypso-url@1.1.0': dependencies: photon: 4.1.1 @@ -14223,6 +14561,88 @@ snapshots: '@automattic/color-studio@2.6.0': {} + '@automattic/color-studio@3.0.3': {} + + '@automattic/components@2.2.0(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@automattic/calypso-analytics': 1.1.2 + '@automattic/calypso-color-schemes': 3.1.3 + '@automattic/calypso-url': 1.1.0 + '@automattic/color-studio': 3.0.3 + '@automattic/format-currency': 2.0.0 + '@automattic/i18n-utils': 1.2.3 + '@automattic/load-script': 1.0.0 + '@automattic/material-design-icons': 1.0.0 + '@automattic/typography': 1.0.0 + '@automattic/viewport-react': 1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@emotion/css': 11.13.4 + '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.3.1) + '@emotion/styled': 11.13.0(@emotion/react@11.13.3(@types/react@18.3.3)(react@18.3.1))(@types/react@18.3.3)(react@18.3.1) + '@wordpress/base-styles': 5.9.0 + '@wordpress/components': 28.9.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/data': 10.9.0(react@18.3.1) + '@wordpress/icons': 10.9.0(react@18.3.1) + '@wordpress/react-i18n': 4.10.0 + canvas-confetti: 1.9.3 + clsx: 2.1.1 + colord: 2.9.3 + debug: 4.3.4 + gridicons: 3.4.2(react@18.3.1) + i18n-calypso: 7.0.0(@types/react@18.3.3)(react@18.3.1) + lodash: 4.17.21 + prop-types: 15.8.1 + qrcode.react: 3.1.0(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-modal: 3.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-router-dom: 6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-slider: 2.0.5(@babel/runtime@7.24.7)(react@18.3.1) + utility-types: 3.11.0 + uuid: 9.0.1 + transitivePeerDependencies: + - '@babel/runtime' + - '@emotion/is-prop-valid' + - '@types/react' + - supports-color + + '@automattic/data-stores@3.1.0(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@automattic/calypso-analytics': 1.1.2 + '@automattic/calypso-config': 1.2.0 + '@automattic/calypso-products': 1.2.1(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@automattic/format-currency': 2.0.0 + '@automattic/i18n-utils': 1.2.3 + '@automattic/js-utils': 0.1.0 + '@automattic/load-script': 1.0.0 + '@automattic/oauth-token': 1.0.0 + '@automattic/shopping-cart': 2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-query': 5.20.5(react@18.3.1) + '@wordpress/api-fetch': 7.9.0 + '@wordpress/data': 10.9.0(react@18.3.1) + '@wordpress/data-controls': 4.10.0(react@18.3.1) + '@wordpress/deprecated': 4.10.0 + '@wordpress/element': 6.9.0 + '@wordpress/i18n': 5.9.0 + '@wordpress/primitives': 4.9.0(react@18.3.1) + '@wordpress/url': 4.9.0 + debug: 4.3.4 + fast-json-stable-stringify: 2.1.0 + i18n-calypso: 7.0.0(@types/react@18.3.3)(react@18.3.1) + qs: 6.12.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + redux: 4.2.1 + tslib: 2.5.0 + use-debounce: 3.4.3(react@18.3.1) + utility-types: 3.11.0 + validator: 13.12.0 + wpcom-proxy-request: 7.0.6 + transitivePeerDependencies: + - '@babel/runtime' + - '@emotion/is-prop-valid' + - '@types/react' + - supports-color + '@automattic/explat-client-react-helpers@0.1.1': dependencies: '@automattic/explat-client': 0.1.0 @@ -14237,6 +14657,10 @@ snapshots: dependencies: tslib: 2.5.0 + '@automattic/format-currency@2.0.0': + dependencies: + tslib: 2.5.0 + '@automattic/i18n-utils@1.2.3': dependencies: '@automattic/calypso-config': 1.2.0 @@ -14249,10 +14673,63 @@ snapshots: transitivePeerDependencies: - supports-color + '@automattic/interpolate-components@1.2.1(@types/react@18.3.3)(react@18.3.1)': + dependencies: + react: 18.3.1 + optionalDependencies: + '@types/react': 18.3.3 + + '@automattic/js-utils@0.1.0': {} + '@automattic/languages@1.0.0': dependencies: tslib: 2.5.0 + '@automattic/launchpad@1.1.0(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(@wordpress/element@6.9.0)(@wordpress/i18n@5.9.0)(debug@4.3.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': + dependencies: + '@automattic/calypso-analytics': 1.1.2 + '@automattic/calypso-config': 1.2.0 + '@automattic/components': 2.2.0(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@automattic/data-stores': 3.1.0(@babel/runtime@7.24.7)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@automattic/i18n-utils': 1.2.3 + '@automattic/typography': 1.0.0 + '@automattic/viewport': 1.1.0 + '@tanstack/react-query': 5.20.5(react@18.3.1) + '@wordpress/base-styles': 5.9.0 + '@wordpress/components': 28.9.0(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@wordpress/data': 10.9.0(react@18.3.1) + '@wordpress/element': 6.9.0 + '@wordpress/i18n': 5.9.0 + '@wordpress/icons': 10.9.0(react@18.3.1) + '@wordpress/url': 4.9.0 + clsx: 2.1.1 + debug: 4.3.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + redux: 4.2.1 + tslib: 2.5.0 + utility-types: 3.11.0 + wpcom-proxy-request: 7.0.6 + transitivePeerDependencies: + - '@babel/runtime' + - '@emotion/is-prop-valid' + - '@types/react' + - supports-color + + '@automattic/load-script@1.0.0': + dependencies: + '@babel/runtime': 7.24.7 + debug: 3.2.7 + transitivePeerDependencies: + - supports-color + + '@automattic/material-design-icons@1.0.0': {} + + '@automattic/oauth-token@1.0.0': + dependencies: + cookie: 0.4.2 + store: 2.0.12 + '@automattic/page-pattern-modal@1.1.5(@types/react-dom@18.3.0)(@types/react@18.3.3)(@wordpress/data@10.9.0(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(redux@4.2.1)': dependencies: '@automattic/color-studio': 2.6.0 @@ -14286,6 +14763,14 @@ snapshots: dependencies: '@automattic/popup-monitor': 1.0.2 + '@automattic/shopping-cart@2.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + debug: 4.3.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + transitivePeerDependencies: + - supports-color + '@automattic/social-previews@2.1.0-beta.8(@babel/runtime@7.24.7)(@types/react@18.3.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@emotion/react': 11.13.3(@types/react@18.3.3)(react@18.3.1) @@ -14306,8 +14791,19 @@ snapshots: '@automattic/typography@1.0.0': {} + '@automattic/urls@1.0.0': {} + + '@automattic/viewport-react@1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@automattic/viewport': 1.1.0 + '@wordpress/compose': 7.9.0(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@automattic/viewport@1.0.0': {} + '@automattic/viewport@1.1.0': {} + '@automattic/webpack-rtl-plugin@6.0.0(webpack@5.94.0(webpack-cli@4.9.1))': dependencies: rtlcss: 3.5.0 @@ -15164,6 +15660,10 @@ snapshots: dependencies: regenerator-runtime: 0.14.1 + '@babel/runtime@7.25.7': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/template@7.25.7': dependencies: '@babel/code-frame': 7.25.7 @@ -16327,6 +16827,8 @@ snapshots: '@remix-run/router@1.2.1': {} + '@remix-run/router@1.20.0': {} + '@remix-run/router@1.5.0': {} '@remix-run/router@1.7.1': {} @@ -17075,6 +17577,8 @@ snapshots: '@tannin/postfix@1.1.0': {} + '@tannin/sprintf@1.2.0': {} + '@tanstack/query-core@4.35.3': {} '@tanstack/query-core@5.0.5': {} @@ -17751,6 +18255,12 @@ snapshots: react: 18.3.1 uuid: 9.0.1 + '@wordpress/api-fetch@7.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/i18n': 5.10.0 + '@wordpress/url': 4.10.0 + '@wordpress/api-fetch@7.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -18278,6 +18788,40 @@ snapshots: - '@types/react' - supports-color + '@wordpress/compose@6.35.0(react@18.3.1)': + dependencies: + '@babel/runtime': 7.24.7 + '@types/mousetrap': 1.6.15 + '@wordpress/deprecated': 3.58.0 + '@wordpress/dom': 3.58.0 + '@wordpress/element': 5.35.0 + '@wordpress/is-shallow-equal': 4.58.0 + '@wordpress/keycodes': 3.58.0 + '@wordpress/priority-queue': 2.58.0 + '@wordpress/undo-manager': 0.18.0 + change-case: 4.1.2 + clipboard: 2.0.11 + mousetrap: 1.6.5 + react: 18.3.1 + use-memo-one: 1.1.3(react@18.3.1) + + '@wordpress/compose@7.10.0(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@types/mousetrap': 1.6.15 + '@wordpress/deprecated': 4.10.0 + '@wordpress/dom': 4.10.0 + '@wordpress/element': 6.10.0 + '@wordpress/is-shallow-equal': 5.10.0 + '@wordpress/keycodes': 4.10.0 + '@wordpress/priority-queue': 3.10.0 + '@wordpress/undo-manager': 1.10.0 + change-case: 4.1.2 + clipboard: 2.0.11 + mousetrap: 1.6.5 + react: 18.3.1 + use-memo-one: 1.1.3(react@18.3.1) + '@wordpress/compose@7.9.0(react@18.2.0)': dependencies: '@babel/runtime': 7.24.7 @@ -18466,6 +19010,33 @@ snapshots: - supports-color - utf-8-validate + '@wordpress/data-controls@4.10.0(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/api-fetch': 7.10.0 + '@wordpress/data': 10.10.0(react@18.3.1) + '@wordpress/deprecated': 4.10.0 + react: 18.3.1 + + '@wordpress/data@10.10.0(react@18.3.1)': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/compose': 7.10.0(react@18.3.1) + '@wordpress/deprecated': 4.10.0 + '@wordpress/element': 6.10.0 + '@wordpress/is-shallow-equal': 5.10.0 + '@wordpress/priority-queue': 3.10.0 + '@wordpress/private-apis': 1.10.0 + '@wordpress/redux-routine': 5.10.0(redux@4.2.1) + deepmerge: 4.3.1 + equivalent-key-map: 0.2.2 + is-plain-object: 5.0.0 + is-promise: 4.0.0 + react: 18.3.1 + redux: 4.2.1 + rememo: 4.0.2 + use-memo-one: 1.1.3(react@18.3.1) + '@wordpress/data@10.9.0(react@18.2.0)': dependencies: '@babel/runtime': 7.24.7 @@ -18560,6 +19131,16 @@ snapshots: json2php: 0.0.7 webpack: 5.94.0(webpack-cli@4.9.1) + '@wordpress/deprecated@3.58.0': + dependencies: + '@babel/runtime': 7.24.7 + '@wordpress/hooks': 3.58.0 + + '@wordpress/deprecated@4.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/hooks': 4.10.0 + '@wordpress/deprecated@4.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -18569,6 +19150,16 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 + '@wordpress/dom@3.58.0': + dependencies: + '@babel/runtime': 7.24.7 + '@wordpress/deprecated': 3.58.0 + + '@wordpress/dom@4.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/deprecated': 4.10.0 + '@wordpress/dom@4.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -18839,6 +19430,28 @@ snapshots: - supports-color - utf-8-validate + '@wordpress/element@5.35.0': + dependencies: + '@babel/runtime': 7.24.7 + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@wordpress/escape-html': 2.58.0 + change-case: 4.1.2 + is-plain-object: 5.0.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@wordpress/element@6.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@types/react': 18.3.3 + '@types/react-dom': 18.3.0 + '@wordpress/escape-html': 3.10.0 + change-case: 4.1.2 + is-plain-object: 5.0.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + '@wordpress/element@6.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -18850,6 +19463,14 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@wordpress/escape-html@2.58.0': + dependencies: + '@babel/runtime': 7.24.7 + + '@wordpress/escape-html@3.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/escape-html@3.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -19006,6 +19627,14 @@ snapshots: - '@types/react-dom' - supports-color + '@wordpress/hooks@3.58.0': + dependencies: + '@babel/runtime': 7.24.7 + + '@wordpress/hooks@4.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/hooks@4.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -19014,6 +19643,24 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 + '@wordpress/i18n@4.58.0': + dependencies: + '@babel/runtime': 7.24.7 + '@wordpress/hooks': 3.58.0 + gettext-parser: 1.4.0 + memize: 2.1.0 + sprintf-js: 1.1.2 + tannin: 1.2.0 + + '@wordpress/i18n@5.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/hooks': 4.10.0 + gettext-parser: 1.4.0 + memize: 2.1.0 + sprintf-js: 1.1.2 + tannin: 1.2.0 + '@wordpress/i18n@5.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -19086,6 +19733,14 @@ snapshots: - '@types/react' - supports-color + '@wordpress/is-shallow-equal@4.58.0': + dependencies: + '@babel/runtime': 7.24.7 + + '@wordpress/is-shallow-equal@5.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/is-shallow-equal@5.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -19104,6 +19759,16 @@ snapshots: '@wordpress/keycodes': 4.9.0 react: 18.3.1 + '@wordpress/keycodes@3.58.0': + dependencies: + '@babel/runtime': 7.24.7 + '@wordpress/i18n': 4.58.0 + + '@wordpress/keycodes@4.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/i18n': 5.10.0 + '@wordpress/keycodes@4.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -19296,15 +19961,44 @@ snapshots: clsx: 2.1.1 react: 18.3.1 + '@wordpress/priority-queue@2.58.0': + dependencies: + '@babel/runtime': 7.24.7 + requestidlecallback: 0.3.0 + + '@wordpress/priority-queue@3.10.0': + dependencies: + '@babel/runtime': 7.25.7 + requestidlecallback: 0.3.0 + '@wordpress/priority-queue@3.9.0': dependencies: '@babel/runtime': 7.24.7 requestidlecallback: 0.3.0 + '@wordpress/private-apis@1.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/private-apis@1.9.0': dependencies: '@babel/runtime': 7.24.7 + '@wordpress/react-i18n@4.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/element': 6.10.0 + '@wordpress/i18n': 5.10.0 + utility-types: 3.11.0 + + '@wordpress/redux-routine@5.10.0(redux@4.2.1)': + dependencies: + '@babel/runtime': 7.25.7 + is-plain-object: 5.0.0 + is-promise: 4.0.0 + redux: 4.2.1 + rungen: 0.3.2 + '@wordpress/redux-routine@5.9.0(redux@4.2.1)': dependencies: '@babel/runtime': 7.24.7 @@ -19479,11 +20173,26 @@ snapshots: dependencies: '@babel/runtime': 7.24.7 + '@wordpress/undo-manager@0.18.0': + dependencies: + '@babel/runtime': 7.24.7 + '@wordpress/is-shallow-equal': 4.58.0 + + '@wordpress/undo-manager@1.10.0': + dependencies: + '@babel/runtime': 7.25.7 + '@wordpress/is-shallow-equal': 5.10.0 + '@wordpress/undo-manager@1.9.0': dependencies: '@babel/runtime': 7.24.7 '@wordpress/is-shallow-equal': 5.9.0 + '@wordpress/url@4.10.0': + dependencies: + '@babel/runtime': 7.25.7 + remove-accents: 0.5.0 + '@wordpress/url@4.9.0': dependencies: '@babel/runtime': 7.24.7 @@ -20160,6 +20869,8 @@ snapshots: caniuse-lite@1.0.30001667: {} + canvas-confetti@1.9.3: {} + capital-case@1.0.4: dependencies: no-case: 3.0.4 @@ -20503,6 +21214,8 @@ snapshots: cookie-signature@1.0.6: {} + cookie@0.4.2: {} + cookie@0.7.0: {} cookie@0.7.1: {} @@ -21576,6 +22289,8 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 3.0.0 + exenv@1.2.2: {} + exit@0.1.2: {} expand-tilde@1.2.2: @@ -22078,6 +22793,11 @@ snapshots: prop-types: 15.8.1 react: 18.3.1 + gridicons@3.4.2(react@18.3.1): + dependencies: + prop-types: 15.8.1 + react: 18.3.1 + has-ansi@2.0.0: dependencies: ansi-regex: 2.1.1 @@ -22100,6 +22820,11 @@ snapshots: dependencies: has-symbols: 1.0.3 + hash.js@1.1.7: + dependencies: + inherits: 2.0.4 + minimalistic-assert: 1.0.1 + hasha@5.2.2: dependencies: is-stream: 2.0.1 @@ -22253,6 +22978,24 @@ snapshots: husky@8.0.3: {} + i18n-calypso@7.0.0(@types/react@18.3.3)(react@18.3.1): + dependencies: + '@automattic/interpolate-components': 1.2.1(@types/react@18.3.3)(react@18.3.1) + '@babel/runtime': 7.24.7 + '@tannin/sprintf': 1.2.0 + '@wordpress/compose': 6.35.0(react@18.3.1) + debug: 4.3.4 + events: 3.3.0 + hash.js: 1.1.7 + lodash: 4.17.21 + lru: 3.1.0 + react: 18.3.1 + tannin: 1.2.0 + use-subscription: 1.6.0(react@18.3.1) + transitivePeerDependencies: + - '@types/react' + - supports-color + iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -23381,6 +24124,10 @@ snapshots: lru-cache@7.18.3: {} + lru@3.1.0: + dependencies: + inherits: 2.0.4 + lz-string@1.5.0: {} magic-string@0.27.0: @@ -23799,6 +24546,8 @@ snapshots: tapable: 2.2.1 webpack: 5.94.0(webpack-cli@4.9.1) + minimalistic-assert@1.0.1: {} + minimatch@3.1.2: dependencies: brace-expansion: 1.1.11 @@ -24769,6 +25518,17 @@ snapshots: react-is@18.3.1: {} + react-lifecycles-compat@3.0.4: {} + + react-modal@3.16.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + exenv: 1.2.2 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-lifecycles-compat: 3.0.4 + warning: 4.0.3 + react-page-visibility@7.0.0(react@18.3.1): dependencies: prop-types: 15.8.1 @@ -24867,6 +25627,13 @@ snapshots: react-dom: 18.3.1(react@18.3.1) react-router: 6.21.0(react@18.3.1) + react-router-dom@6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@remix-run/router': 1.20.0 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-router: 6.27.0(react@18.3.1) + react-router-dom@6.6.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@remix-run/router': 1.2.1 @@ -24907,6 +25674,11 @@ snapshots: '@remix-run/router': 1.14.0 react: 18.3.1 + react-router@6.27.0(react@18.3.1): + dependencies: + '@remix-run/router': 1.20.0 + react: 18.3.1 + react-router@6.6.2(react@18.3.1): dependencies: '@remix-run/router': 1.2.1 @@ -25574,6 +26346,8 @@ snapshots: dependencies: internal-slot: 1.0.7 + store@2.0.12: {} + storybook-addon-mock@5.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@storybook/blocks': 8.3.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.3.5) @@ -26294,6 +27068,10 @@ snapshots: dependencies: react: 18.3.1 + use-debounce@3.4.3(react@18.3.1): + dependencies: + react: 18.3.1 + use-memo-one@1.1.3(react@18.2.0): dependencies: react: 18.2.0 @@ -26316,6 +27094,10 @@ snapshots: react: 18.3.1 tslib: 2.5.0 + use-subscription@1.6.0(react@18.3.1): + dependencies: + react: 18.3.1 + use-sync-external-store@1.2.2(react@18.3.1): dependencies: react: 18.3.1 @@ -26332,6 +27114,8 @@ snapshots: utila@0.4.0: {} + utility-types@3.11.0: {} + utils-merge@1.0.1: {} uuid@8.3.2: {} @@ -26344,6 +27128,8 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 + validator@13.12.0: {} + value-equal@1.0.1: {} vary@1.1.2: {} @@ -26601,6 +27387,14 @@ snapshots: transitivePeerDependencies: - supports-color + wpcom-proxy-request@7.0.6: + dependencies: + debug: 4.3.4 + uuid: 9.0.1 + wp-error: 1.3.0 + transitivePeerDependencies: + - supports-color + wrap-ansi@3.0.1: dependencies: string-width: 2.1.1 diff --git a/projects/packages/jetpack-mu-wpcom/changelog/exp-launchpad-widget b/projects/packages/jetpack-mu-wpcom/changelog/exp-launchpad-widget new file mode 100644 index 0000000000000..75d3816982559 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/changelog/exp-launchpad-widget @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Launchpad Widget: Introduce the launchpad widget to the WP Admin Dashboard diff --git a/projects/packages/jetpack-mu-wpcom/package.json b/projects/packages/jetpack-mu-wpcom/package.json index 369e5da7d40d9..b8ad9e38ee515 100644 --- a/projects/packages/jetpack-mu-wpcom/package.json +++ b/projects/packages/jetpack-mu-wpcom/package.json @@ -34,6 +34,7 @@ "@babel/core": "7.24.7", "@babel/plugin-transform-react-jsx": "7.24.7", "@babel/preset-react": "7.24.7", + "@babel/runtime": "7.24.7", "@playwright/test": "1.45.1", "@types/node": "^20.4.2", "@types/react": "^18.2.28", @@ -49,9 +50,12 @@ "dependencies": { "@automattic/calypso-color-schemes": "3.1.3", "@automattic/color-studio": "2.6.0", + "@automattic/components": "2.2.0", + "@automattic/data-stores": "3.1.0", "@automattic/i18n-utils": "1.2.3", "@automattic/jetpack-base-styles": "workspace:*", "@automattic/jetpack-shared-extension-utils": "workspace:*", + "@automattic/launchpad": "1.1.0", "@automattic/page-pattern-modal": "1.1.5", "@automattic/typography": "1.0.0", "@popperjs/core": "^2.11.8", @@ -73,6 +77,7 @@ "@wordpress/url": "4.9.0", "clsx": "2.1.1", "debug": "4.3.4", + "events": "^3.3.0", "preact": "^10.13.1", "react": "^18.2.0", "react-dom": "^18.2.0", diff --git a/projects/packages/jetpack-mu-wpcom/src/common/components/error-boundary/index.tsx b/projects/packages/jetpack-mu-wpcom/src/common/components/error-boundary/index.tsx new file mode 100644 index 0000000000000..4225c31c1a157 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/src/common/components/error-boundary/index.tsx @@ -0,0 +1,45 @@ +import { __ } from '@wordpress/i18n'; +import React from 'react'; + +interface Props { + fallback?: React.ReactNode; + children: React.ReactNode; +} + +interface State { + hasError: boolean; + error: Error | null; +} + +class ErrorBoundary extends React.Component< Props, State > { + constructor( props: Props ) { + super( props ); + this.state = { hasError: false, error: null }; + } + + static getDerivedStateFromError( error: Error ): State { + return { hasError: true, error }; + } + + componentDidCatch( error: Error, errorInfo: React.ErrorInfo ): void { + // eslint-disable-next-line no-console + console.error( error, errorInfo ); + } + + render(): React.ReactNode { + const { children, fallback } = this.props; + const { hasError } = this.state; + + if ( hasError ) { + return fallback !== undefined ? ( + fallback + ) : ( +

{ __( 'Something went wrong', 'jetpack-mu-wpcom' ) }

+ ); + } + + return children; + } +} + +export default ErrorBoundary; diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/types.ts b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/types.ts new file mode 100644 index 0000000000000..b20955b146e4c --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/types.ts @@ -0,0 +1,19 @@ +export interface Site { + name: string; + domain: string; + iconUrl: string; + siteIntent: string; +} + +export interface DashboardWidgetsData { + site: Site; +} + +export interface ConfigData {} + +declare global { + interface Window { + wpcomDashboardWidgetsData: DashboardWidgetsData; + configData: ConfigData; + } +} diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.js b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.js deleted file mode 100644 index 1ffa9c2b60021..0000000000000 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.js +++ /dev/null @@ -1,21 +0,0 @@ -import '../../common/public-path'; -import React from 'react'; -import ReactDOM from 'react-dom/client'; -import WpcomSiteManagementWidget from './wpcom-site-management-widget'; - -const data = typeof window === 'object' ? window.JETPACK_MU_WPCOM_DASHBOARD_WIDGETS : {}; - -const widgets = [ - { - id: 'wpcom_site_management_widget_main', - Widget: WpcomSiteManagementWidget, - }, -]; - -widgets.forEach( ( { id, Widget } ) => { - const container = document.getElementById( id ); - if ( container ) { - const root = ReactDOM.createRoot( container ); - root.render( ); - } -} ); diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.php b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.php index c627f966f295a..dbe53de6b5390 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.php +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.php @@ -17,13 +17,24 @@ function load_wpcom_dashboard_widgets() { $wpcom_dashboard_widgets = array( array( - 'id' => 'wpcom_site_management_widget', + 'id' => 'wpcom-site-management-widget', 'name' => __( 'Site Management Panel', 'jetpack-mu-wpcom' ), 'priority' => 'high', + 'enabled' => true, + ), + array( + 'id' => 'wpcom-launchpad-widget', + 'name' => __( 'Site Setup Panel', 'jetpack-mu-wpcom' ), + 'priority' => 'high', + 'enabled' => get_option( 'launch-status' ) !== 'launched' && ! empty( $_GET['wpcom_launchpad_widget'] ), // phpcs:ignore WordPress.Security.NonceVerification.Recommended ), ); foreach ( $wpcom_dashboard_widgets as $wpcom_dashboard_widget ) { + if ( ! $wpcom_dashboard_widget['enabled'] ) { + continue; + } + wp_add_dashboard_widget( $wpcom_dashboard_widget['id'], $wpcom_dashboard_widget['name'], @@ -40,6 +51,20 @@ function () {}, } add_action( 'wp_dashboard_setup', 'load_wpcom_dashboard_widgets' ); +/** + * Get the site data + */ +function wpcom_dashboard_widgets_get_site_data() { + $data = array( + 'name' => get_bloginfo( 'name' ), + 'domain' => wp_parse_url( home_url(), PHP_URL_HOST ), + 'iconUrl' => get_site_icon_url( 38 ), + 'siteIntent' => get_option( 'site_intent' ), + ); + + return $data; +} + /** * Enqueue the assets of the wpcom dashboard widgets. */ @@ -48,15 +73,16 @@ function enqueue_wpcom_dashboard_widgets() { $data = wp_json_encode( array( - 'siteName' => get_bloginfo( 'name' ), - 'siteDomain' => wp_parse_url( home_url(), PHP_URL_HOST ), - 'siteIconUrl' => get_site_icon_url( 38 ), + 'site' => wpcom_dashboard_widgets_get_site_data(), ) ); wp_add_inline_script( $handle, - "var JETPACK_MU_WPCOM_DASHBOARD_WIDGETS = $data;", + " + var wpcomDashboardWidgetsData = $data; + var configData = {}; + ", 'before' ); } @@ -69,7 +95,7 @@ function enqueue_wpcom_dashboard_widgets() { */ function render_wpcom_dashboard_widget( $post, $callback_args ) { $args = $callback_args['args']; - $widget_id = $args['id'] . '_main'; + $widget_id = implode( '-', array( $args['id'], 'main' ) ); $widget_class = $args['class'] ?? $args['id']; $widget_name = $args['name']; diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.tsx b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.tsx new file mode 100644 index 0000000000000..abb29c93e1820 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-dashboard-widgets.tsx @@ -0,0 +1,43 @@ +import '../../common/public-path'; +import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; +import React from 'react'; +import ReactDOM from 'react-dom/client'; +import ErrorBoundary from '../../common/components/error-boundary'; +import WpcomLaunchpadWidget from './wpcom-launchpad-widget'; +import WpcomSiteManagementWidget from './wpcom-site-management-widget'; + +const renderWidgets = () => { + // Initialize configData. + window.configData = window.configData || {}; + + const widgets = [ + { + id: 'wpcom-site-management-widget-main', + Widget: WpcomSiteManagementWidget, + }, + { + id: 'wpcom-launchpad-widget-main', + Widget: WpcomLaunchpadWidget, + }, + ]; + + const queryClient = new QueryClient(); + + widgets.forEach( ( { id, Widget } ) => { + const container = document.getElementById( id ); + if ( container ) { + const root = ReactDOM.createRoot( container ); + root.render( + + + + + + ); + } + } ); +}; + +if ( typeof window !== 'undefined' ) { + renderWidgets(); +} diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-launchpad-widget/index.tsx b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-launchpad-widget/index.tsx new file mode 100644 index 0000000000000..7671188b12f5a --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-launchpad-widget/index.tsx @@ -0,0 +1,51 @@ +import { CircularProgressBar } from '@automattic/components'; +import { useSortedLaunchpadTasks } from '@automattic/data-stores'; +import { Launchpad } from '@automattic/launchpad'; +import { __ } from '@wordpress/i18n'; +import type { Site } from '../types'; +import './style.scss'; + +interface Props { + site: Site; +} + +const LAUNCHPAD_CONTEXT = 'dashboard-widget'; + +const WpcomLaunchpadWidget = ( { site }: Props ) => { + const { domain, siteIntent } = site; + const { + data: { checklist, title }, + } = useSortedLaunchpadTasks( domain, siteIntent, LAUNCHPAD_CONTEXT ); + + const numberOfSteps = checklist?.length || 0; + const completedSteps = ( checklist?.filter( task => task.completed ) || [] ).length; + const hasChecklist = checklist !== undefined && checklist !== null; + const launchpadTitle = hasChecklist + ? title ?? __( 'Next steps for your site', 'jetpack-mu-wpcom' ) + : ' '; + + return ( + <> +
+

{ launchpadTitle }

+ { numberOfSteps > completedSteps && ( +
+ +
+ ) } +
+ + + ); +}; + +export default WpcomLaunchpadWidget; diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-launchpad-widget/style.scss b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-launchpad-widget/style.scss new file mode 100644 index 0000000000000..80a36cc894ba6 --- /dev/null +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-launchpad-widget/style.scss @@ -0,0 +1,26 @@ +#wpcom-launchpad-widget { + color: #1e1e1e; + + .postbox-title-action { + display: none; + } +} + +#wpcom-launchpad-widget-main { + .wpcom-launchpad-widget__header { + display: flex; + align-items: center; + + .wpcom-launchpad-widget__title { + flex: 1; + font-size: 1.125rem; + font-weight: 500; + } + + .wpcom-launchpad-widget__progress-bar-container { + display: flex; + flex-direction: row; + gap: 20px; + } + } +} diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/index.js b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/index.tsx similarity index 51% rename from projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/index.js rename to projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/index.tsx index e7a8363f85897..42c8486edcc22 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/index.js +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/index.tsx @@ -1,66 +1,72 @@ import { __ } from '@wordpress/i18n'; import React from 'react'; import './style.scss'; +import type { Site } from '../types'; -const WpcomSiteManagementWidget = ( { siteName, siteDomain, siteIconUrl } ) => { +interface Props { + site: Site; +} + +const WpcomSiteManagementWidget = ( { site }: Props ) => { + const { name, domain, iconUrl } = site; const devToolItems = [ { name: __( 'Deployments', 'jetpack-mu-wpcom' ), - href: `/github-deployments/${ siteDomain }`, + href: `/github-deployments/${ domain }`, }, { name: __( 'Monitoring', 'jetpack-mu-wpcom' ), - href: `/site-monitoring/${ siteDomain }`, + href: `/site-monitoring/${ domain }`, }, { name: __( 'Logs', 'jetpack-mu-wpcom' ), - href: `/site-logs/${ siteDomain }/php`, + href: `/site-logs/${ domain }/php`, }, { name: __( 'Staging Site', 'jetpack-mu-wpcom' ), - href: `/staging-site/${ siteDomain }`, + href: `/staging-site/${ domain }`, }, { name: __( 'Server Settings', 'jetpack-mu-wpcom' ), - href: `/hosting-config/${ siteDomain }`, + href: `/hosting-config/${ domain }`, }, ]; return ( <> -
-
+
+
{ /* webclip.png is the default on WoA sites. Anything other than that means we have a custom site icon. */ - siteIconUrl && siteIconUrl !== 'https://s0.wp.com/i/webclip.png' ? ( - favicon + iconUrl && iconUrl !== 'https://s0.wp.com/i/webclip.png' ? ( + favicon ) : ( - { siteName[ 0 ] } + { name[ 0 ] } ) }
-
-
{ siteName }
-
{ siteDomain }
+
+
{ name }
+
{ domain }
- -
+

{ __( 'Get a quick overview of your plans, storage, and domains, or easily access your development tools using the links provided below:', 'jetpack-mu-wpcom' ) }

-
-
+
+
{ __( 'DEV TOOLS:', 'jetpack-mu-wpcom' ) }
-
+
    { devToolItems.map( item => (
  • diff --git a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/style.scss b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/style.scss index 2bd4bd4577d90..0f76b7787717f 100644 --- a/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/style.scss +++ b/projects/packages/jetpack-mu-wpcom/src/features/wpcom-dashboard-widgets/wpcom-site-management-widget/style.scss @@ -1,4 +1,4 @@ -#wpcom_site_management_widget { +#wpcom-site-management-widget { color: #1e1e1e; .postbox-title-action { @@ -6,14 +6,14 @@ } } -#wpcom_site_management_widget_main { - .wpcom_site_management_widget__header { +#wpcom-site-management-widget-main { + .wpcom-site-management-widget__header { display: flex; align-items: center; gap: 12px; } - .wpcom_site_management_widget__site-favicon { + .wpcom-site-management-widget__site-favicon { display: flex; align-items: center; justify-content: center; @@ -29,17 +29,17 @@ cursor: default; } - .wpcom_site_management_widget__site-favicon img { + .wpcom-site-management-widget__site-favicon img { width: 100%; height: auto; } - .wpcom_site_management_widget__site-info { + .wpcom-site-management-widget__site-info { flex-grow: 1; overflow: hidden; } - .wpcom_site_management_widget__site-name { + .wpcom-site-management-widget__site-name { font-size: 14px; font-weight: 500; line-height: 20px; @@ -48,7 +48,7 @@ white-space: nowrap; } - .wpcom_site_management_widget__site-url { + .wpcom-site-management-widget__site-url { color: #3a434a; font-size: 12px; font-weight: 400; @@ -58,18 +58,18 @@ white-space: nowrap; } - .wpcom_site_management_widget__site-actions { + .wpcom-site-management-widget__site-actions { flex-shrink: 0; } - .wpcom_site_management_widget__content p { + .wpcom-site-management-widget__content p { margin: 12px 0; font-size: 13px; font-weight: 400; line-height: 18px; } - .wpcom_site_management_widget__dev-tools-title { + .wpcom-site-management-widget__dev-tools-title { margin-bottom: 12px; font-size: 11px; font-weight: 600; @@ -77,7 +77,7 @@ text-transform: uppercase; } - .wpcom_site_management_widget__dev-tools-content { + .wpcom-site-management-widget__dev-tools-content { ul { display: grid; grid-template-columns: 1fr 1fr; diff --git a/projects/packages/jetpack-mu-wpcom/webpack.config.js b/projects/packages/jetpack-mu-wpcom/webpack.config.js index bdc247cca9bd0..baf8d6852cf6f 100644 --- a/projects/packages/jetpack-mu-wpcom/webpack.config.js +++ b/projects/packages/jetpack-mu-wpcom/webpack.config.js @@ -70,6 +70,10 @@ module.exports = [ /** Replace the classnames used by @automattic/newspack-blocks with clsx because we changed to use clsx */ classnames: findPackage( 'clsx' ), }, + fallback: { + ...jetpackWebpackConfig.resolve.fallback, + events: require.resolve( 'events/' ), + }, }, node: false, plugins: [ @@ -90,9 +94,9 @@ module.exports = [ exclude: /node_modules\//, } ), - // Transpile @automattic/jetpack-* in node_modules too. + // Transpile @automattic/* in node_modules too. jetpackWebpackConfig.TranspileRule( { - includeNodeModules: [ '@automattic/jetpack-' ], + includeNodeModules: [ '@automattic/' ], } ), // Handle CSS. diff --git a/projects/plugins/mu-wpcom-plugin/changelog/exp-launchpad-widget b/projects/plugins/mu-wpcom-plugin/changelog/exp-launchpad-widget new file mode 100644 index 0000000000000..75d3816982559 --- /dev/null +++ b/projects/plugins/mu-wpcom-plugin/changelog/exp-launchpad-widget @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Launchpad Widget: Introduce the launchpad widget to the WP Admin Dashboard diff --git a/projects/plugins/wpcomsh/changelog/exp-launchpad-widget b/projects/plugins/wpcomsh/changelog/exp-launchpad-widget new file mode 100644 index 0000000000000..75d3816982559 --- /dev/null +++ b/projects/plugins/wpcomsh/changelog/exp-launchpad-widget @@ -0,0 +1,4 @@ +Significance: minor +Type: added + +Launchpad Widget: Introduce the launchpad widget to the WP Admin Dashboard