@zevra/ui 0.50.1 → 0.51.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DECISIONS.md +45 -0
- package/dist/css-inline.d.ts.map +1 -1
- package/dist/css-inline.js +1 -1
- package/dist/css-inline.js.map +1 -1
- package/dist/partenaires-data.d.ts +8 -0
- package/dist/partenaires-data.d.ts.map +1 -0
- package/dist/partenaires-data.js +12 -0
- package/dist/partenaires-data.js.map +1 -0
- package/dist/partenaires.d.ts +29 -0
- package/dist/partenaires.d.ts.map +1 -0
- package/dist/partenaires.js +29 -0
- package/dist/partenaires.js.map +1 -0
- package/logos/partenaires/docusign.webp +0 -0
- package/logos/partenaires/google.svg +1 -0
- package/logos/partenaires/henrri.webp +0 -0
- package/logos/partenaires/index.json +34 -0
- package/logos/partenaires/maileva.webp +0 -0
- package/logos/partenaires/microsoft.svg +1 -0
- package/logos/partenaires/signaturit.svg +6 -0
- package/package.json +6 -2
- package/react/css-inline.ts +1 -1
- package/react/partenaires-data.ts +20 -0
- package/react/partenaires.tsx +55 -0
- package/src/forms.css +3 -1
- package/src/icons.css +33 -0
- package/src/tokens.css +13 -1
- package/tokens/index.js +3 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// GÉNÉRÉ par scripts/build-partenaires-data.mjs : ne pas éditer à la main.
|
|
2
|
+
// Source : logos/partenaires/ (provenance de chaque fichier dans index.json).
|
|
3
|
+
|
|
4
|
+
export type PartenaireId =
|
|
5
|
+
| 'docusign'
|
|
6
|
+
| 'google'
|
|
7
|
+
| 'henrri'
|
|
8
|
+
| 'maileva'
|
|
9
|
+
| 'microsoft'
|
|
10
|
+
| 'signaturit'
|
|
11
|
+
|
|
12
|
+
/** Les logos des services partenaires, inlinés, et le nom de la marque. */
|
|
13
|
+
export const LOGOS_PARTENAIRES: Record<PartenaireId, { src: string; nom: string; plein: boolean }> = {
|
|
14
|
+
'docusign': { src: 'data:image/webp;base64,UklGRkgFAABXRUJQVlA4WAoAAAAQAAAAXwAAXwAAQUxQSA8CAAABoETbtmnbmXvv+227btu2bf9ftq3U0lKybZRSYylF27ad3Hv3WjPO+efPOGktIiYAxUfMetGcZbRPXnnw6n2TmgNIEeUNaPMajSWuvXb9qrZACqWJGFJzL4m75UySb1/QC0jlGfAty/Kz7jmTn13YGTGUZeB35fqpZfLNTUCSRXomb+uIpIu0zOeHIgkj6/xgBirKmFlbjqSM5t+OQVJG4/t9EJUx8+GmMShj5qVI0pg5H0ma+ZPNY1DGzH1I0szfax+CMmYeQZJm/kKTEJQx+5JQ0ca7EaQ5P+kGacxcJ67Oy4AQC67EwQKcT1Uiiu8p4cue6DhkYLGDB6ysCXBfOuf1774t+JsqBWYefJfSM6+jefEKjPc6pTufproP5X0p7q/Q78Q535P3gjjjQ+IybxVX5/nijFu1OasT1b3bSpvxQWir85g2d07XZnylubbMSxClmU1CUmZ8pEEIyjK3IUGY+TvtQlCWuQsJwsyfbBKDMM+chwRhmTcgBmHGl9rHAF1uX49Bgi4zLkOCLjfuRIKuTG5Hgiyv87NlqECVZ/LhQUgQZZn84kQTJMhxN8vZyeoN/YEIPb/4+Hm9gRQgqPb5u0/fc2h8QyBG/FYFzuqqnj0iAKSI367h254AYkoBRYoYHCsBRYsYiIj/bXIJ3ww4G3QBXh1yNh6nnXPG19ogFDfyUfdzzO3FWYgoHgBWUDggEgMAAPAVAJ0BKmAAYAA+MRaJQqIhIRgLHHAgAwSxAGk3AL9J/ADaEepfhb+0n+k5JvurythyOoP8z+QH9m+iHor8Rf/DfZL3APMB+nP7K9iD0AP1262b0AP2j9Kz2Mf29/4f/A+Af9c//Q0gNJ3MG8aGoH+qPoAdSB+laEZgR3iv2AwhLHYdOsaluNDFnQs241z2Fa2xKZeHggqLHWCUIMBqnZhLegQGZzHLVNkmuG7OTFK3HtKDTGh1hIAA/v7usEQurJYDnzZuaEty0/pLuG8V+gCnix0ijD36wHNsySlro1acCpUC+MSWl0HIEUAQwJJBGeStHf/b/90fKi/dlvxq0s/Oh3p/zG8b4f6gf2yWdCpOX67m20mGgL/Qh/Dd72O8/jIvkRrOosvlsgyLJ5Hutr/A/n1RiWIUACnzAmzS2JCQOxy3JC8j+qT4ct2BGmy0j/vSpG6/1UBazxDlbu839JqhBeVpIoEoOlMz9DAXp/C70ApMAUY3PE64Ya7XYcb523P7yKke+cYCpaKC3uYzK0HIncy5Pszu+rH1zNhFOtcPdBAj1tZfRLImjY4cKx4WKythwc7NPXiZ3apAytZ1/T7Wuq1SwE7h5ZDhNwiKT/UHCUeo6jWVwLT3QfXbtRVBr5zGOhiHi2KsvHafx/JAMRXUPDAjaKTc2mYuTOVIMH7pym1qbzgIIC1uAsMdkWoLsIVRJa47UrYL1+gX149HTyTVSgV0xhCqJn2pz5Pg7Br85XWPW8IQK78lKaYfqL0UCq9g+bB2l1lCq3rJWcDRwA+EFVV/jVZ7xdPGdpyWA0UL5EO3wmlQt3Qbi5ONgtnXobZwFWsHY3lWlHPYgBWOBWXx4DoT31P2So9qTu8Ab2hOq9UZdinjJg1b4g/f/gfWpNMxnpYyhKB5ITQmj8aPYokyqInXP/ydHbOrJebrwcuZ9JD/SIs+dfv+mY5X8sJW/ApFjv/u0EQoDA3HsxHwx7pJbo8+IsMz8Ij3ut/ZQkTTiQsNDkvLTQnCSyiU/2rHYQz4GFWLMTG5qFZVrNFRq2AAAA==', nom: "DocuSign", plein: false },
|
|
15
|
+
'google': { src: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0Ij48cGF0aCBkPSJNMjIuNTYgMTIuMjVjMC0uNzgtLjA3LTEuNTMtLjItMi4yNUgxMnY0LjI2aDUuOTJjLS4yNiAxLjM3LTEuMDQgMi41My0yLjIxIDMuMzF2Mi43N2gzLjU3YzIuMDgtMS45MiAzLjI4LTQuNzQgMy4yOC04LjA5eiIgZmlsbD0iIzQyODVGNCIvPjxwYXRoIGQ9Ik0xMiAyM2MyLjk3IDAgNS40Ni0uOTggNy4yOC0yLjY2bC0zLjU3LTIuNzdjLS45OC42Ni0yLjIzIDEuMDYtMy43MSAxLjA2LTIuODYgMC01LjI5LTEuOTMtNi4xNi00LjUzSDIuMTh2Mi44NEMzLjk5IDIwLjUzIDcuNyAyMyAxMiAyM3oiIGZpbGw9IiMzNEE4NTMiLz48cGF0aCBkPSJNNS44NCAxNC4wOWMtLjIyLS42Ni0uMzUtMS4zNi0uMzUtMi4wOXMuMTMtMS40My4zNS0yLjA5VjcuMDdIMi4xOEMxLjQzIDguNTUgMSAxMC4yMiAxIDEycy40MyAzLjQ1IDEuMTggNC45M2wyLjg1LTIuMjIuODEtLjYyeiIgZmlsbD0iI0ZCQkMwNSIvPjxwYXRoIGQ9Ik0xMiA1LjM4YzEuNjIgMCAzLjA2LjU2IDQuMjEgMS42NGwzLjE1LTMuMTVDMTcuNDUgMi4wOSAxNC45NyAxIDEyIDEgNy43IDEgMy45OSAzLjQ3IDIuMTggNy4wN2wzLjY2IDIuODRjLjg3LTIuNiAzLjMtNC41MyA2LjE2LTQuNTN6IiBmaWxsPSIjRUE0MzM1Ii8+PHBhdGggZD0iTTEgMWgyMnYyMkgxeiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg==', nom: "Google Workspace", plein: false },
|
|
16
|
+
'henrri': { src: 'data:image/webp;base64,UklGRrgFAABXRUJQVlA4IKwFAACQHgCdASpgAGAAPjEWiUMiISEXiPTYIAMEsgBqYri/APxu7lyn/Wvxp/LH5i63/PvvZyasu+Z14h+e/5/7dPrN6DPsr9wD9O/8H1APMB+sv7Te0f+rnuA/Tv2AP6Z/lPWA9SP+sf7f2AP1h9NX9mfg3/b39xvadvGT8HysiQ37H/oeH/YR3orIXET2zHIBfSP8Z52vP00bPQvsI/yX+vb6ahQciI39yrPWkj5LEo8aImSVYgK7JqT+zpAddnCZPSLMXeOmYMszqDj62U8IhaM3INGjflWeF2bD83ozTB6i0tRgp2/ZbCnsvFFJaBUW4VW3ptUkW2uAaQ9s8bgAAP7xTYVq77cxtvoUT8iX8iX8oEWUOLh+Tf4FFYPh9CJ/rcey/1W+9K3RmjH0Q2ToquREs5KySoANutbkzjl4dZrpCpHdkcoXQuKfZe10q0MVoS9xFefQ1VogpVds4908KQ4G1AZHX5PjjP+4mMp08dO3f21xrpfsHeC5GA1X+xZgUeulXVaH6PnTTxMbOf+08tvEuViAib0GCa3gSideogTUymOtQXKjDSRKjeIt0DoVOpgMnBn9BeFPjrF1hnBkaV32SaiI2gBc3HUM2gll+USLRnJbZ97R7xnaKD8nkZ2+XGIGeQQzhuD4RNVNpfD/rEKuzDwqAmc5KCu7GGL/Vi22thly5L2NSBem5b1qs1HEz68Oa++gqBG0zTO4JN1hkfJtP/aKxQCurZSx+R/+/9L3on//427rufZ/pqqwDjYprGeexcST5Me+Re/T+9so12oPxTDlUXaiHqGid1o1dbwaJflAE6VaWVuXBZjycDLnjaQkBz/APqfkHfJQnb1IycGnrR4V7MCZl3/z09VjDu3a1yRTZsP3Ut73QYiV4KFvNqpj7ty70rk3u2IYc68Mn8PKOp1P842CSGgRvMDuWDFiA6w88G1SdVOTCHqsB0Q7L0T9/y09//TvNfv3wgvMGTw1DxUOMekHK+wj3s3XMSUJjV9gI3uL9ToNbMIQHF/ENmTj9Ftf88prMgB1//9nBo0eFFe++l0j54Q84D2+ZyYkY2I2ylLOryhVwCs/cCGYlszPE2fHJpJAGcxWigRKlw+UEQpuu3GEsGAphOD3q/sR9xs0x5IbvwNblE8LeFUx2i/0KDtQtXXxdBa+BXnW09zk1WXAOXRmeDD9ukzB1KlXKOujMD5+ZclfXirEcfnQ2OzH+Qdyg6QzolQTdMnmlEbsDmP/EVpoAaFWnHldj26VvH3FbXR1bwdl5rmdKXfDbLxTDEi0dvvJl9LCyW5wA9aNBt1r+K9/bPCUw1Fqmo/HKZPSrid0kCYDG08EZnW74/Fxxb8DTNzjo0FMAT0GLruQg30oMCfQtRfQnqAGxzvc+eLqTylsC96DHmcl0bvON02eR1yNlHdE05/Svnk3oq+3XF6rED/8ddsVQuherFVxnbQGtCdb7clCJBadVNZo6R2G91R/8S4k68URD/pS7lyS6Plxaij69rWRnwnVE3LgZywwsLH264BZsyz05nfl7fyQdgnq3dRGwfNCE0xELt/VvvAKwhlantrqrh5yBIINoRZFlKeXgkT0To5Z5/N5LSOuw0dO0KDv2MK/FVcFQC9sq0oEl/MPT7EXzqKcN3SvaYGHVM6ed6Wh9I3YFh3MZu6YEa30GmI5fY7AwKRsKEPjEgwGX3k++Wk5rwi5mIMWwNS49XG1zwC8mbUG5R+WMnn4Yc/cIWsDjcwqLOTHb42zuk6+OSzBVVKYvnSh5KL2gmN+RdDCqmF6mbdNPEFB9KXh39TE1NYKWJ1QRF2PLEYALWOvrHuFbgZ72YihavKilRZ1dynXEegZITqWnR+J1ZMQbpv2km6OPbJG5dChRj48a8WITagCZgoRaYMi3mrkrvYHB4QXYmxrkSGYhhnTyOn+zvAK7kMPiwAAAAA=', nom: "Henrri", plein: true },
|
|
17
|
+
'maileva': { src: 'data:image/webp;base64,UklGRuwKAABXRUJQVlA4WAoAAAAQAAAAXwAAXwAAQUxQSCMEAAANsGNbmyJJ0vvMzSkipc5eQQ+TxMw68xJ4RuIdzMgttTjMzMxMW2i5pK6ccDCzT0jyiDB1zomICWB76VG697TNa2PzioYtpzA9MZc/5/zHpAPnaBcQBBBbFyicp1CLOlghmbyVetEA8gTZp6RL2ne1zRu6ZUo5lcy2A937Or0gGs3fWsrfs6bTcUED6jm2WtSC8VzIFieqhjDAbCYTdJTrGSKhF8gH4+MNji8P3ft305STzQkONC8K3VuHvIbDZyc98NGKFdGeU1YDvWx8ZY4t2MnGVyboZK4XK6I9TIV0BF2U3afHTHMoFqc9EF8euvfvrx6fy2/SdhS0E5I5QzWEAa5wZmvBKM8mWeEMABe0l5NJm+iijB8flykVI85Tl+4/Ni4/X8tv0hYUtJMz5yw0yDPObKlRnnHWOQEF7eRk0n2GMnxmt0ypcOa68PjxcfnB4j+nexiNcub8BaM8m8I9W8iQdX5AgREW8F3iS1ujlSrqwv2bd//79hIe+g4EaKiloIO5SNwq1MPBqA5AgFaeb9FlHt+/f6oQqGV8meLT2vnzy03Xd2AqGpHwyq2dPFuqCbiDBAa5e2e/TA7UtXvbMP9qbh4YoJUT1e3kheuCCGt9gE5e4NHcv76fXB1dun9TN39tEdDJ9UEQ5RU6WKh0Cwneo3VyU6XubcP0kzm0kKh0Jy9WA7lWRhFeG1KtdEF4rCHiWiEI0EC1gAZeoUytB+Kzm9JQczXU3tX7v5gTDBU7oICpuGBCfa0MKzxR+vd2dfJVmH+5aEYdtZYXKCBVKkEUfy7x+W0eapT/m+IjgQyRShcQ1wyxRl6tVvwRcHxhrM7UzN+YhpaUIECguoLZiiCYrVbVSRAgwIH5G9Pw9j4PdUn/SMKR616tnuoWKNxaIENbE8MCA/ha+kdmLd1LYz38MCzfOYwtmRsTBAhUVCqLFblV+AC9UDVmq4Vw28T0uaf27x/KpSqxfGmO+yju6gPsZVNJLRb3lXwFI6gCCRt1vpsfaHr86uIjY7nQ2aXflPLk2ot7Gs+wE+bslU2y7gUUM1sj6KwSTtYY7Pul35T158v48bFc6IzSb8r682UMKmyYcLJ24qxDMrMlNlY2E3QinoNhdcHaibJV+k1Zf3QY39yFl8XT80PNX1rLk2kMKmye8GoNouH0JZhgReKoyvJkQlALOh1nvEAUA5TjpD+X5TuH7mkhvqPlUicyKf+9rN+d2r06qXDkhBdoYRAnG0SizCZwmhJMeIZOikLHMGSYjdAgmnIafqjpC0v+5dK/qYnvaH0hhq18RfpvWb41BcoQY+BUDQteoBeDOKYCJMpsjDh1BTzh2QrQbuXFRNQHIi6n5gesX13zj5f4NDXPit7ioPUXa3tJH2MQ5uSNVzxDEA1bLxDEOUuB6/YmAnE9HQkAVlA4IKIGAACQIQCdASpgAGAAPjEUiEKiISEU66dYIAMEtgxPk4V2BzgXSeRfkZ+XfzDU/+bfej94fdn5Cc6fQB8OPJ/+e+4v37f272Afd37gH6Yf4/7b+4b5gP2q/Yb3jfSZ6AH9I/u/WhegB+y3pj/tp8IX9k/4/7Xezd/8M1V+ivy2r3992Zwwc4x/CUw/5gCWz5zpUA6FnihqqlOP+f4HDanJxK9xWJ0VbXZEmYJbzTeqZVa4tZ0C9L63ukZj5P8DKShp0PEolVNINiYrO4cBYBNiLmjoG+R08N3p69g099j+L1PnluqT44DhNl1xqKbe6KST/NhuL5FEYhXq7kcUl+N1m9L0OM8vUnGqoSKpWWE3EqWkkWWvJJAAAP7/Qdp/8k5Ef+RCiseAJHXDGZYcjT+lleSdZqX+f/7rBAs64K1pB+D3Dm4IorfuzZ4Q1GVwbTbd98T3tuvZrnvHIjG+6VHzQhAPEepw0mQQvhV1HS7g5XF/ggtQwbkQ6rSupWtxpSWNQ1lvQphiiccx+dXQxH5LTKwRc3RTBcf+jeQ2L3/EicQZM3WlztQRZ6hJ2DmHs/JdGFoYXIOyqUPTDvIfraEClepoLDyB8ons0YJjtgBO51mJ8C+km+dbDTb8yKQbAe2dny26lmvZNTHPtSdhQWV3Ct0jbgQFx+BNWlx9Hso93+P42BmB4/pPXlacM413nxYh/+QPq525McO2f+JreXQpuqScGK21Qnccy+OPaW/zAxmepfrZrwtoEbpSv2rBZhWqsqPLdvSlABh3PXbYj9/Q+9wX92jpOYr3f7TsM6DEqWeuaSFSxl73ulzXX6cinxmDq2XkSd8wtJ0/viPeHlc2c6jWHtFgGZ+4cbtX+xbGBGAp6DjDJbhIJhNHrzbpJCIpS7NZ54miQZ8lVTjyJqnHeIAYA4ZkA78YVoYfusxEPNlXKvDTQyoUL2vE+dyGfJje9Uub9Isem8P/DQ4HGiqT82qEJZr96npaazedw5X6Oln9ERL6VpbCxzcg+m6VOj8+PL94pUJdfi0anlt6y0tPz+Q6WyCsBsZq/3t33YJ+IOtpHu9F14UVWSW5GTawAnDNYj+Ju8oW2Lob1QKeegZSxfCrSffl7Ig7lLnUJnN8aaDSnxAzKpZ7qoLh5asQwqtxBZG/kFQ0Z218LIRfeAFJSjWDk68EKYrCtkR1xwYw+YzXIj3qeiUJCoYynQU6LPFzJabGIYo+LRfUd9g81230colOPuF9W8Wk2UC2HtzveGD1mbSl6IvC5K1BCQs1Zf+x4KQmMZbyz+Mr5WLXnB1G2NVKqKJ2u3UQ6xx6DJGUm8xvHITm6JiKCWqGtOK7g7Z/OGGNNaB7a5WM/AffnBvwzmI7GEReR753jfTZ7QKURrENEUeTk5hHB32aMYa+MVRcaEOS3kK8SXs1x5ro9PHr3AMA6XanRNs/CwhCzdARU7oxEjcdy95M3n5n2KFhlZvQ0Z5+5fVTWBf9xCLqdqE6rka7W7grmtFFZ1+MVvIqBoABfDpfflPV9T1gVDRvNECz5YoJOyOlmRmPiu3yqunHSDqudzJEiUCAEvWOSx4/t95lI8Bl3+20iL+lbwN0MuN0ECFhA+1zQtPt4qIVgCxo+clw6l6xWafH0k6y3byZ2nVY6rKZLX2QagtTAl/fRVcKtsVUIrn4xt5UHyL11RQZ4XAp9JouhTOBUsFGltZw8oSO+5HCNRcH8E8NA0nJxgOVKko6LsmLxlJ7GueUwHg99yb2pIHQUv4g86z5RGmDXYqdeJpSy9hW/RRUbHU27PRl+Ko8emi1HNjIm6HYdbq79/wD2PSr1yu85LfwxFvb9TdwRI5OfwYer/nqieNKmqDmG/+g5HsmrvaB9ft7ocey1g9Tm4x9eo8nwivdWOTza4Vlh7zCPYSgfcGZxPSEcs+LspsZGD4vaOVgKWujjlioRsLSwvd2G2/n6im3YGD3PymN30vkUHa8TWwm0wg17k5sEZWR/MQYRu+tcJwoDLWukNlEmecBYNfZgBdTQNGuEY1phJ1cWsUT4wQz9qffaH6Ri/s5BZveH4K5pGlfuLNBzgq7Y+P4Hkf5lfm+5ArkeqQzLmRWAtiUeviGbpcM9K9HfnDKhskBCNGg4gN7wr2e5p/6LZhBx6HkCxF7Re9RshnbnLBV1lHVHrTjAXxqlhuoiOjXI8YpDDbVMFa+4fnKpnK6xE8IUuELgpCYSA/RSv/7sPh7Sbqtiqpz/+88ZkHqROP+K+wsV1g6iLAB5mfxHutsAAA=', nom: "Maileva", plein: false },
|
|
18
|
+
'microsoft': { src: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMyAyMyI+PHBhdGggZmlsbD0iI2YzZjNmMyIgZD0iTTAgMGgyM3YyM0gweiIvPjxwYXRoIGZpbGw9IiNmMzUzMjUiIGQ9Ik0xIDFoMTB2MTBIMXoiLz48cGF0aCBmaWxsPSIjODFiYzA2IiBkPSJNMTIgMWgxMHYxMEgxMnoiLz48cGF0aCBmaWxsPSIjMDVhNmYwIiBkPSJNMSAxMmgxMHYxMEgxeiIvPjxwYXRoIGZpbGw9IiNmZmJhMDgiIGQ9Ik0xMiAxMmgxMHYxMEgxMnoiLz48L3N2Zz4=', nom: "Microsoft 365", plein: false },
|
|
19
|
+
'signaturit': { src: 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMTkiIGhlaWdodD0iMjE5IiB2aWV3Qm94PSIwIDAgMjE5IDIxOSIgZmlsbD0ibm9uZSI+CiAgPHJlY3Qgd2lkdGg9IjIxOSIgaGVpZ2h0PSIyMTkiIGZpbGw9IiMwQTBBRjQiPjwvcmVjdD4KICA8cGF0aCBkPSJNMTU1LjQzNiAxMzguMDE5QzE1NS40MTMgMTQ1LjQzMyAxNTMuMzkzIDE1MS45OTkgMTQ5LjMxMyAxNTcuNjE0QzE0NS4xOTQgMTYzLjIzIDEzOS42MDIgMTY3LjUzOSAxMzIuNDI1IDE3MC41MjVDMTI1LjIwMSAxNzMuNDc5IDExNy4wNjUgMTc1IDEwNy45IDE3NUM5Mi44ODE1IDE3NC45NzYgODEuMjYwOSAxNzEuMTk4IDcyLjk2NzIgMTYzLjU4NkM2NC42NDE5IDE1NS45MzUgNjAuMzU2NSAxNDUuNzY1IDYwIDEzMi45NUg4MC4xNTk4QzgwLjUwMDQgMTQwLjA2MiA4My4wNjY5IDE0NS43NjUgODcuODAzOSAxNDkuOTI0QzkyLjUxNzEgMTU0LjA2NiA5OS4yNDIzIDE1Ni4xNzMgMTA3LjkgMTU2LjE3M0MxMTYuNjc3IDE1Ni4xMjUgMTIzLjQwMiAxNTQuNTU3IDEyOC4wMDUgMTUxLjMyNUMxMzIuNTk5IDE0OC4wNyAxMzQuOTIgMTQzLjY2NiAxMzQuOTIgMTM4LjAyN0MxMzQuODczIDEzMy4xMjQgMTMzLjQ2MyAxMjkuMzM4IDEzMC41NTUgMTI2LjU4MkMxMjcuNjA5IDEyMy43ODYgMTIzLjE4OSAxMjEuNzM0IDExNy4xOTIgMTIwLjMyNEw5Ny42NTAxIDExNS42NDNDODcuMjI1NiAxMTMuMDUzIDc5LjI1NjggMTA5LjAyMiA3My43MTk4IDEwMy41MjVDNjguMTU5IDk3Ljk5NjQgNjUuNDE4MiA5MC41OTA3IDY1LjQxODIgODEuMTg5QzY1LjM3MDcgNzAuNDY0NiA2OS4zMjM0IDYxLjc3NTcgNzcuMTQxOCA1NS4wNjdDODQuODgwOSA0OC4zNTA0IDk1LjQ2MzggNDUuMDMxNyAxMDguNzg4IDQ1SDEwOS4xNjhDMTIyLjQ2OCA0NSAxMzMuMjg4IDQ4Ljc1NDMgMTQxLjU5IDU2LjE0NDJDMTQ0LjIyOCA1OC41MDQ1IDE0Ni40NjkgNjEuMDYyOSAxNDguMjkxIDYzLjgzNTFIMTA5LjI3OUMxMDkuMTEyIDYzLjgyNzIgMTA4Ljk1NCA2My44MjcxIDEwOC43ODggNjMuODI3MUMxMDEuMzQxIDYzLjgxMTMgOTUuNjE0MyA2NS4zNjM3IDkxLjU5ODIgNjguNDIxMUM4Ny41ODIxIDcxLjQ4NjMgODUuNTc4IDc1LjU0OTYgODUuNTc4IDgwLjYxMDhDODUuNTcwMSA4NC45OTA5IDg2Ljk4OCA4OC40NTIxIDg5LjgwMDEgOTAuODZDOTIuNTk2MyA5My4yMjgyIDk3LjA3OTggOTUuMjQ4IDEwMy4xNzkgOTYuNzg0NkwxMjIuODA4IDEwMS42NzJDMTMzLjc2NCAxMDQuNDM2IDE0MS45ODYgMTA4Ljg1NSAxNDcuMzY0IDExNC43OTZDMTUyLjczNSAxMjAuNzA1IDE1NS40MzYgMTI4LjQ3NSAxNTUuNDM2IDEzOC4wMTlaIiBmaWxsPSIjRkFGQUZGIj48L3BhdGg+CiAgPHBhdGggZD0iTTE1OS4yMTQgNDUuMDAwMUwxNTAuNTY0IDYzLjgzNTJIMTA4Ljc4N1Y0NS4wMDAxSDE1OS4yMTRaIiBmaWxsPSIjRkFGQUZGIj48L3BhdGg+Cjwvc3ZnPgo=', nom: "Signaturit", plein: true },
|
|
20
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Les logos des services qu'une app branche : Microsoft 365, Google
|
|
2
|
+
// Workspace, DocuSign, Henrri, Maileva, Signaturit. Premier usage : la Marketplace de
|
|
3
|
+
// Tésope (03/11/2026), où chaque extension se reconnaît à sa marque.
|
|
4
|
+
//
|
|
5
|
+
// ⚠️ ENTRÉE SÉPARÉE (`@zevra/ui/react/partenaires`) : les logos y sont
|
|
6
|
+
// inlinés, le barrel React n'en porte pas un octet. Voir
|
|
7
|
+
// scripts/build-partenaires-data.mjs.
|
|
8
|
+
//
|
|
9
|
+
// Ce sont les marques des ÉDITEURS, en couleur, telles qu'ils les publient :
|
|
10
|
+
// on ne les recolore pas, on ne les redessine pas. Un service sans logo ici
|
|
11
|
+
// garde son `IconTile` : on n'invente pas de marque.
|
|
12
|
+
|
|
13
|
+
import { cx } from './cx.js'
|
|
14
|
+
import { LOGOS_PARTENAIRES, type PartenaireId } from './partenaires-data.js'
|
|
15
|
+
|
|
16
|
+
export type { PartenaireId }
|
|
17
|
+
|
|
18
|
+
/** Les services dont le paquet porte le logo. */
|
|
19
|
+
export const PARTENAIRES = Object.keys(LOGOS_PARTENAIRES) as PartenaireId[]
|
|
20
|
+
|
|
21
|
+
/** Le paquet a-t-il le logo de ce service ? Sinon, l'app garde son `IconTile`. */
|
|
22
|
+
export const aUnLogo = (id: string): id is PartenaireId => id in LOGOS_PARTENAIRES
|
|
23
|
+
|
|
24
|
+
export interface LogoPartenaireProps {
|
|
25
|
+
/** Un service dont le paquet porte le logo. */
|
|
26
|
+
id?: PartenaireId
|
|
27
|
+
/**
|
|
28
|
+
* Une image du paquet À LA PLACE d'un service partenaire : le glyphe d'un
|
|
29
|
+
* produit Zevra (`GLYPHES.memoire` de `@zevra/ui/glyphes`) quand le
|
|
30
|
+
* service branché est l'un des nôtres. Jamais une image de l'app : un logo
|
|
31
|
+
* se range dans le paquet, pas dans un public/.
|
|
32
|
+
*/
|
|
33
|
+
src?: string
|
|
34
|
+
/** Avec `src` : l'image couvre toute la tuile (icône d'application à fond plein). */
|
|
35
|
+
plein?: boolean
|
|
36
|
+
/** Nom lu par un lecteur d'écran. Par défaut, celui de la marque. Vide : décoratif (le nom est écrit à côté). */
|
|
37
|
+
titre?: string
|
|
38
|
+
className?: string
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* La tuile d'un service : même gabarit que `IconTile` (40×40), fond blanc
|
|
43
|
+
* au filet, le logo au centre. Une icône d'application à fond plein
|
|
44
|
+
* (Henrri) occupe toute la tuile.
|
|
45
|
+
*/
|
|
46
|
+
export function LogoPartenaire({ id, src, plein, titre, className }: LogoPartenaireProps) {
|
|
47
|
+
const l = id ? LOGOS_PARTENAIRES[id] : { src: src ?? '', nom: '', plein: Boolean(plein) }
|
|
48
|
+
const alt = titre ?? l.nom
|
|
49
|
+
return (
|
|
50
|
+
<span className={cx('zv-icon-tile', 'zv-icon-tile--logo', l.plein && 'zv-icon-tile--logo-plein', className)}
|
|
51
|
+
role={alt ? 'img' : undefined} aria-label={alt || undefined} aria-hidden={alt ? undefined : true}>
|
|
52
|
+
<img src={l.src} alt="" />
|
|
53
|
+
</span>
|
|
54
|
+
)
|
|
55
|
+
}
|
package/src/forms.css
CHANGED
|
@@ -598,6 +598,8 @@
|
|
|
598
598
|
height: 20px;
|
|
599
599
|
flex: none;
|
|
600
600
|
border: 1px solid var(--line);
|
|
601
|
+
/* Carrée par défaut, en gélule sous `zv-arrondi` (tokens.css). */
|
|
602
|
+
border-radius: var(--r-switch);
|
|
601
603
|
background: var(--white);
|
|
602
604
|
/* La courbe est celle du paquet (motion.css, `--zv-easing`), recopiée en
|
|
603
605
|
* clair : forms.css ne dépend pas de motion.css et n'a pas à en dépendre
|
|
@@ -632,7 +634,7 @@
|
|
|
632
634
|
inset-inline-start: 2px;
|
|
633
635
|
width: 14px;
|
|
634
636
|
height: 14px;
|
|
635
|
-
border-radius:
|
|
637
|
+
border-radius: var(--r-switch-knob);
|
|
636
638
|
background: var(--label);
|
|
637
639
|
transition:
|
|
638
640
|
inset-inline-start 150ms cubic-bezier(0.2, 0.7, 0.2, 1),
|
package/src/icons.css
CHANGED
|
@@ -132,6 +132,39 @@
|
|
|
132
132
|
height: 40px;
|
|
133
133
|
flex: none;
|
|
134
134
|
border: 1px solid var(--accent-line);
|
|
135
|
+
/* Suit l'option arrondie (`zv-arrondi`, 03/11/2026) : nul par défaut. */
|
|
136
|
+
border-radius: var(--r-pill);
|
|
135
137
|
background: var(--accent-soft);
|
|
136
138
|
color: var(--accent);
|
|
137
139
|
}
|
|
140
|
+
|
|
141
|
+
/* La tuile d'un SERVICE (DECISIONS, « Les logos des partenaires »,
|
|
142
|
+
* 03/11/2026). HORS RELEVÉ. Même gabarit que la tuile d'icône (40×40, même
|
|
143
|
+
* filet), mais sur papier blanc : la marque de l'éditeur garde ses couleurs,
|
|
144
|
+
* le fond indigo pâle les aurait salies. Le logo occupe 60 % de la tuile,
|
|
145
|
+
* l'air autour est celui des icônes tracées. Une icône d'application à fond
|
|
146
|
+
* plein (Henrri) prend toute la tuile : un carré coloré dans un carré blanc
|
|
147
|
+
* se lirait comme un cadre de trop. */
|
|
148
|
+
.zv-icon-tile--logo {
|
|
149
|
+
overflow: hidden;
|
|
150
|
+
border-color: var(--line);
|
|
151
|
+
background: var(--white);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.zv-icon-tile--logo img {
|
|
155
|
+
display: block;
|
|
156
|
+
width: 60%;
|
|
157
|
+
height: 60%;
|
|
158
|
+
object-fit: contain;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* À fond plein, le filet ferait un cadre autour du cadre de la marque. */
|
|
162
|
+
.zv-icon-tile--logo-plein {
|
|
163
|
+
border-color: transparent;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.zv-icon-tile--logo-plein img {
|
|
167
|
+
width: 100%;
|
|
168
|
+
height: 100%;
|
|
169
|
+
object-fit: cover;
|
|
170
|
+
}
|
package/src/tokens.css
CHANGED
|
@@ -107,6 +107,9 @@
|
|
|
107
107
|
--r-pill: 0;
|
|
108
108
|
--r-panel: 0;
|
|
109
109
|
--r-card: 0;
|
|
110
|
+
/* L'interrupteur : carré ici, en gélule sous `zv-arrondi` (03/11/2026). */
|
|
111
|
+
--r-switch: 0;
|
|
112
|
+
--r-switch-knob: 0;
|
|
110
113
|
|
|
111
114
|
/* Ombres */
|
|
112
115
|
--shadow-card: 0 2px 10px rgba(11, 16, 32, 0.05);
|
|
@@ -183,18 +186,27 @@
|
|
|
183
186
|
* lui seul. `zv-vif` remet un élément au carré dans une zone arrondie.
|
|
184
187
|
*
|
|
185
188
|
* Légèrement, et c'est voulu : à peu près la moitié du relevé d'avant le
|
|
186
|
-
* 25/08. Le rond de forme (pastille, radio
|
|
189
|
+
* 25/08. Le rond de forme (pastille, radio) n'en dépend pas.
|
|
190
|
+
*
|
|
191
|
+
* L'interrupteur, lui, en dépend depuis le 03/11/2026 (DECISIONS,
|
|
192
|
+
* « L'interrupteur suit l'option arrondie ») : carré en angle vif, piste en
|
|
193
|
+
* gélule et bouton rond sous `zv-arrondi`. Deux tokens à part, parce qu'un
|
|
194
|
+
* rayon de 3 px sur une piste de 20 px ne se lit ni carré ni rond. */
|
|
187
195
|
.zv-arrondi {
|
|
188
196
|
--r-btn: 4px;
|
|
189
197
|
--r-pill: 3px;
|
|
190
198
|
--r-panel: 6px;
|
|
191
199
|
--r-card: 8px;
|
|
200
|
+
--r-switch: 999px;
|
|
201
|
+
--r-switch-knob: 50%;
|
|
192
202
|
}
|
|
193
203
|
.zv-vif {
|
|
194
204
|
--r-btn: 0;
|
|
195
205
|
--r-pill: 0;
|
|
196
206
|
--r-panel: 0;
|
|
197
207
|
--r-card: 0;
|
|
208
|
+
--r-switch: 0;
|
|
209
|
+
--r-switch-knob: 0;
|
|
198
210
|
}
|
|
199
211
|
/* L'enveloppe `Angles` : elle ne porte que les tokens, sans ajouter de
|
|
200
212
|
* boîte à la mise en page (l'héritage passe par l'arbre, pas par la boîte). */
|
package/tokens/index.js
CHANGED