diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 72b5a21060..54e872569a 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -30,6 +30,25 @@ importers:
specifier: ^3.3.3
version: 3.3.3
+ v2/legacy:
+ dependencies:
+ '@appwrite.io/pink-icons':
+ specifier: 1.0.0
+ version: 1.0.0
+ normalize.css:
+ specifier: ^8.0.1
+ version: 8.0.1
+ the-new-css-reset:
+ specifier: ^1.11.2
+ version: 1.11.2
+ devDependencies:
+ stylelint:
+ specifier: ^14.9.1
+ version: 14.16.1
+ stylelint-config-standard-scss:
+ specifier: ^4.0.0
+ version: 4.0.0(postcss@8.4.41)(stylelint@14.16.1)
+
v2/pink-icons:
devDependencies:
'@sveltejs/adapter-auto':
@@ -220,6 +239,9 @@ packages:
resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
engines: {node: '>=6.0.0'}
+ '@appwrite.io/pink-icons@1.0.0':
+ resolution: {integrity: sha512-+zpksP07MvOYwhx9AZDFW0pxXQNC2juKwyOQVRAwAOkN1ACSQKPlyytkI1u2ci6CQPWjJe20CzbvBBuRNXOKjA==}
+
'@babel/code-frame@7.24.7':
resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==}
engines: {node: '>=6.9.0'}
@@ -944,6 +966,12 @@ packages:
peerDependencies:
'@clerc/core': '*'
+ '@csstools/selector-specificity@2.2.0':
+ resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==}
+ engines: {node: ^14 || ^16 || >=18}
+ peerDependencies:
+ postcss-selector-parser: ^6.0.10
+
'@emnapi/runtime@1.2.0':
resolution: {integrity: sha512-bV21/9LQmcQeCPEg3BDFtvwL6cwiTMksYNWQQ4KOxCZikEGalWtenoZ0wCiukJINlGCIi2KXx01g4FoH/LxpzQ==}
@@ -1992,6 +2020,9 @@ packages:
'@types/mime@1.3.5':
resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==}
+ '@types/minimist@1.2.5':
+ resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
+
'@types/node@12.20.55':
resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
@@ -2001,6 +2032,12 @@ packages:
'@types/node@20.14.15':
resolution: {integrity: sha512-Fz1xDMCF/B00/tYSVMlmK7hVeLh7jE5f3B7X1/hmV0MJBwE27KlS7EvD/Yp+z1lm8mVhwV5w+n8jOZG8AfTlKw==}
+ '@types/normalize-package-data@2.4.4':
+ resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
+
+ '@types/parse-json@4.0.2':
+ resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
+
'@types/prop-types@15.7.12':
resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==}
@@ -2152,6 +2189,9 @@ packages:
ajv@6.12.6:
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ ajv@8.17.1:
+ resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==}
+
ansi-colors@4.1.3:
resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
engines: {node: '>=6'}
@@ -2215,6 +2255,10 @@ packages:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
+ arrify@1.0.1:
+ resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
+ engines: {node: '>=0.10.0'}
+
asn1@0.2.6:
resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==}
@@ -2225,6 +2269,10 @@ packages:
resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==}
engines: {node: '>=4'}
+ astral-regex@2.0.0:
+ resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
+ engines: {node: '>=8'}
+
asynckit@0.4.0:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
@@ -2305,6 +2353,9 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ balanced-match@2.0.0:
+ resolution: {integrity: sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==}
+
bare-events@2.4.2:
resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==}
@@ -2407,6 +2458,10 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
+ camelcase-keys@6.2.2:
+ resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
+ engines: {node: '>=8'}
+
camelcase@5.3.1:
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
engines: {node: '>=6'}
@@ -2548,6 +2603,9 @@ packages:
resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==}
engines: {node: '>=12.5.0'}
+ colord@2.9.3:
+ resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==}
+
combined-stream@1.0.8:
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
engines: {node: '>= 0.8'}
@@ -2607,6 +2665,10 @@ packages:
core-js-compat@3.38.0:
resolution: {integrity: sha512-75LAicdLa4OJVwFxFbQR3NdnZjNgX6ILpVcVzcC4T2smerB5lELMrJQQQoWV6TiuC/vlaFqgU2tKQx9w5s0e0A==}
+ cosmiconfig@7.1.0:
+ resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==}
+ engines: {node: '>=10'}
+
cpu-features@0.0.10:
resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==}
engines: {node: '>=10.0.0'}
@@ -2627,6 +2689,10 @@ packages:
resolution: {integrity: sha512-x8dy3RnvYdlUcPOjkEHqozhiwzKNSq7GcPuXFbnyMOCHxX8V3OgIg/pYuabl2sbUPfIJaeAQB7PMOK8DFIdoRA==}
engines: {node: '>=12'}
+ css-functions-list@3.2.3:
+ resolution: {integrity: sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==}
+ engines: {node: '>=12 || >=16'}
+
css-select@5.1.0:
resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==}
@@ -2682,6 +2748,10 @@ packages:
supports-color:
optional: true
+ decamelize-keys@1.1.1:
+ resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
+ engines: {node: '>=0.10.0'}
+
decamelize@1.2.0:
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
engines: {node: '>=0.10.0'}
@@ -3121,6 +3191,9 @@ packages:
fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ fast-uri@3.0.6:
+ resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==}
+
fastest-levenshtein@1.0.16:
resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==}
engines: {node: '>= 4.9.1'}
@@ -3357,10 +3430,18 @@ packages:
resolution: {integrity: sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==}
engines: {node: '>=0.10.0'}
+ global-modules@2.0.0:
+ resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==}
+ engines: {node: '>=6'}
+
global-prefix@0.1.5:
resolution: {integrity: sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==}
engines: {node: '>=0.10.0'}
+ global-prefix@3.0.0:
+ resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==}
+ engines: {node: '>=6'}
+
globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
@@ -3388,6 +3469,9 @@ packages:
resolution: {integrity: sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==}
engines: {node: '>=18'}
+ globjoin@0.1.4:
+ resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==}
+
globrex@0.1.2:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
@@ -3400,6 +3484,10 @@ packages:
graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+ hard-rejection@2.1.0:
+ resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
+ engines: {node: '>=6'}
+
has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
@@ -3453,9 +3541,20 @@ packages:
resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
engines: {node: '>=0.10.0'}
+ hosted-git-info@2.8.9:
+ resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
+
+ hosted-git-info@4.1.0:
+ resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
+ engines: {node: '>=10'}
+
html-escaper@2.0.2:
resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==}
+ html-tags@3.3.1:
+ resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
+ engines: {node: '>=8'}
+
html-void-elements@3.0.0:
resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==}
@@ -3521,6 +3620,10 @@ packages:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
engines: {node: '>=6'}
+ import-lazy@4.0.0:
+ resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==}
+ engines: {node: '>=8'}
+
import-local@3.2.0:
resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==}
engines: {node: '>=8'}
@@ -3616,10 +3719,18 @@ packages:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
+ is-plain-obj@1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+ engines: {node: '>=0.10.0'}
+
is-plain-object@2.0.4:
resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
engines: {node: '>=0.10.0'}
+ is-plain-object@5.0.0:
+ resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
+ engines: {node: '>=0.10.0'}
+
is-platform@1.0.0:
resolution: {integrity: sha512-AKxe6+dvzAQsDXhhhxGRL9G67q5rKiyTL0BUl5mCyQz2NdvmqWNmMsjoCOIVdyXOYpP6MhkmZ1DPYGkfgv0MpA==}
@@ -3916,6 +4027,9 @@ packages:
json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ json-schema-traverse@1.0.0:
+ resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==}
+
json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
@@ -3952,6 +4066,9 @@ packages:
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
engines: {node: '>=6'}
+ known-css-properties@0.26.0:
+ resolution: {integrity: sha512-5FZRzrZzNTBruuurWpvZnvP9pum+fe0HcK8z/ooo+U+Hmp4vtbyp1/QDsqmufirXy4egGzbaH/y2uCZf+6W5Kg==}
+
known-css-properties@0.34.0:
resolution: {integrity: sha512-tBECoUqNFbyAY4RrbqsBQqDFpGXAEbdD5QKr8kACx3+rnArmuuR22nKQWKazvp07N9yjTyDZaw/20UIH8tL9DQ==}
@@ -4010,6 +4127,9 @@ packages:
lodash.startcase@4.4.0:
resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
+ lodash.truncate@4.4.2:
+ resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==}
+
lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
@@ -4040,6 +4160,10 @@ packages:
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ lru-cache@6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+
lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
@@ -4066,6 +4190,14 @@ packages:
makeerror@1.0.12:
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
+ map-obj@1.0.1:
+ resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
+ engines: {node: '>=0.10.0'}
+
+ map-obj@4.3.0:
+ resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
+ engines: {node: '>=8'}
+
map-or-similar@1.5.0:
resolution: {integrity: sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg==}
@@ -4075,6 +4207,9 @@ packages:
peerDependencies:
react: '>= 0.14.0'
+ mathml-tag-names@2.1.3:
+ resolution: {integrity: sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==}
+
mdast-util-to-hast@13.2.0:
resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==}
@@ -4091,6 +4226,10 @@ packages:
memoizerific@1.11.3:
resolution: {integrity: sha512-/EuHYwAPdLtXwAwSZkh/Gutery6pD2KYd44oQLhAvQp/50mpyduZh8Q7PYHXTCJ+wuXxt7oij2LXyIJOOYFPog==}
+ meow@9.0.0:
+ resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==}
+ engines: {node: '>=10'}
+
merge-descriptors@1.0.1:
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
@@ -4164,6 +4303,10 @@ packages:
resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==}
engines: {node: '>=16 || 14 >=14.17'}
+ minimist-options@4.1.0:
+ resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
+ engines: {node: '>= 6'}
+
minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
@@ -4305,10 +4448,20 @@ packages:
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
hasBin: true
+ normalize-package-data@2.5.0:
+ resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
+
+ normalize-package-data@3.0.3:
+ resolution: {integrity: sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==}
+ engines: {node: '>=10'}
+
normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
+ normalize.css@8.0.1:
+ resolution: {integrity: sha512-qizSNPO93t1YUuUhP22btGOo3chcvDFqFaj2TRybP0DMxkHOCTYwp3n34fel4a31ORXy4m1Xq0Gyqpb5m33qIg==}
+
npm-bundled@2.0.1:
resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==}
engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
@@ -4591,6 +4744,12 @@ packages:
ts-node:
optional: true
+ postcss-media-query-parser@0.2.3:
+ resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==}
+
+ postcss-resolve-nested-selector@0.1.6:
+ resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==}
+
postcss-safe-parser@6.0.0:
resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
engines: {node: '>=12.0'}
@@ -4607,6 +4766,9 @@ packages:
resolution: {integrity: sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==}
engines: {node: '>=4'}
+ postcss-value-parser@4.2.0:
+ resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
+
postcss@8.4.41:
resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==}
engines: {node: ^10 || ^12 || >=14}
@@ -4714,6 +4876,10 @@ packages:
queue-tick@1.0.1:
resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==}
+ quick-lru@4.0.1:
+ resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
+ engines: {node: '>=8'}
+
range-parser@1.2.1:
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
engines: {node: '>= 0.6'}
@@ -4750,6 +4916,14 @@ packages:
resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==}
engines: {node: '>=0.10.0'}
+ read-pkg-up@7.0.1:
+ resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
+ engines: {node: '>=8'}
+
+ read-pkg@5.2.0:
+ resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
+ engines: {node: '>=8'}
+
read-yaml-file@1.1.0:
resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
engines: {node: '>=6'}
@@ -4812,6 +4986,10 @@ packages:
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
+ require-from-string@2.0.2:
+ resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==}
+ engines: {node: '>=0.10.0'}
+
require-main-filename@2.0.0:
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
@@ -4998,6 +5176,10 @@ packages:
resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==}
engines: {node: '>=14.16'}
+ slice-ansi@4.0.0:
+ resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
+ engines: {node: '>=10'}
+
smart-buffer@4.2.0:
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
@@ -5045,6 +5227,18 @@ packages:
spawndamnit@2.0.0:
resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==}
+ spdx-correct@3.2.0:
+ resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
+
+ spdx-exceptions@2.5.0:
+ resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
+
+ spdx-expression-parse@3.0.1:
+ resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
+
+ spdx-license-ids@3.0.21:
+ resolution: {integrity: sha512-Bvg/8F5XephndSK3JffaRqdT+gyhfqIPwDHpX80tJrF8QQRYMo8sNMeaZ2Dp5+jhwKnUmIOyFFQfHRkjJm5nXg==}
+
split-ca@1.0.1:
resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==}
@@ -5139,9 +5333,42 @@ packages:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
+ style-search@0.1.0:
+ resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==}
+
style-value-types@5.1.2:
resolution: {integrity: sha512-Vs9fNreYF9j6W2VvuDTP7kepALi7sk0xtk2Tu8Yxi9UoajJdEVpNpCov0HsLTqXvNGKX+Uv09pkozVITi1jf3Q==}
+ stylelint-config-recommended-scss@6.0.0:
+ resolution: {integrity: sha512-6QOe2/OzXV2AP5FE12A7+qtKdZik7Saf42SMMl84ksVBBPpTdrV+9HaCbPYiRMiwELY9hXCVdH4wlJ+YJb5eig==}
+ peerDependencies:
+ stylelint: ^14.4.0
+
+ stylelint-config-recommended@7.0.0:
+ resolution: {integrity: sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==}
+ peerDependencies:
+ stylelint: ^14.4.0
+
+ stylelint-config-standard-scss@4.0.0:
+ resolution: {integrity: sha512-xizu8PTEyB6zYXBiVg6VtvUYn9m57x+6ZtaOdaxsfpbe5eagLPGNlbYnKfm/CfN69ArUpnwR6LjgsTHzlGbtXQ==}
+ peerDependencies:
+ stylelint: ^14.4.0
+
+ stylelint-config-standard@25.0.0:
+ resolution: {integrity: sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==}
+ peerDependencies:
+ stylelint: ^14.4.0
+
+ stylelint-scss@4.7.0:
+ resolution: {integrity: sha512-TSUgIeS0H3jqDZnby1UO1Qv3poi1N8wUYIJY6D1tuUq2MN3lwp/rITVo0wD+1SWTmRm0tNmGO0b7nKInnqF6Hg==}
+ peerDependencies:
+ stylelint: ^14.5.1 || ^15.0.0
+
+ stylelint@14.16.1:
+ resolution: {integrity: sha512-ErlzR/T3hhbV+a925/gbfc3f3Fep9/bnspMiJPorfGEmcBbXdS+oo6LrVtoUZ/w9fqD6o6k7PtUlCOsCRdjX/A==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ hasBin: true
+
supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
engines: {node: '>=4'}
@@ -5154,6 +5381,10 @@ packages:
resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
engines: {node: '>=10'}
+ supports-hyperlinks@2.3.0:
+ resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==}
+ engines: {node: '>=8'}
+
supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
@@ -5240,6 +5471,9 @@ packages:
resolution: {integrity: sha512-sWJRa4qOfRdSORSVw9GhfDEwsbsYsegnDzBevUCF6k/Eis/QqCu9lJ6I0+d/E2wOWCjOhlcJ3+jl/Iur+5mmCw==}
engines: {node: '>=10.0.0'}
+ svg-tags@1.0.0:
+ resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
+
svgo@3.3.2:
resolution: {integrity: sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==}
engines: {node: '>=14.0.0'}
@@ -5248,6 +5482,10 @@ packages:
tabbable@6.2.0:
resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
+ table@6.9.0:
+ resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==}
+ engines: {node: '>=10.0.0'}
+
tar-fs@2.0.1:
resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==}
@@ -5340,6 +5578,10 @@ packages:
trim-lines@3.0.1:
resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==}
+ trim-newlines@3.0.1:
+ resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
+ engines: {node: '>=8'}
+
ts-api-utils@1.3.0:
resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
engines: {node: '>=16'}
@@ -5377,6 +5619,10 @@ packages:
resolution: {integrity: sha512-Acylog8/luQ8L7il+geoSxhEkazvkslg7PSNKOX59mbB9cOveP5aq9h74Y7YU8yDpJwetzQQrfIwtf4Wp4LKcw==}
engines: {node: '>=4'}
+ type-fest@0.18.1:
+ resolution: {integrity: sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==}
+ engines: {node: '>=10'}
+
type-fest@0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
@@ -5385,6 +5631,10 @@ packages:
resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
engines: {node: '>=10'}
+ type-fest@0.6.0:
+ resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
+ engines: {node: '>=8'}
+
type-fest@0.8.1:
resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==}
engines: {node: '>=8'}
@@ -5528,6 +5778,9 @@ packages:
resolution: {integrity: sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==}
engines: {node: '>=10.12.0'}
+ validate-npm-package-license@3.0.4:
+ resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
+
vary@1.1.2:
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
engines: {node: '>= 0.8'}
@@ -5700,6 +5953,10 @@ packages:
resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
engines: {node: '>=6'}
+ yargs-parser@20.2.9:
+ resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==}
+ engines: {node: '>=10'}
+
yargs-parser@21.1.1:
resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
engines: {node: '>=12'}
@@ -5732,6 +5989,8 @@ snapshots:
'@jridgewell/gen-mapping': 0.3.5
'@jridgewell/trace-mapping': 0.3.25
+ '@appwrite.io/pink-icons@1.0.0': {}
+
'@babel/code-frame@7.24.7':
dependencies:
'@babel/highlight': 7.24.7
@@ -6765,6 +7024,10 @@ snapshots:
dependencies:
'@clerc/core': 0.44.0
+ '@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.1.1)':
+ dependencies:
+ postcss-selector-parser: 6.1.1
+
'@emnapi/runtime@1.2.0':
dependencies:
tslib: 2.6.3
@@ -8000,6 +8263,8 @@ snapshots:
'@types/mime@1.3.5': {}
+ '@types/minimist@1.2.5': {}
+
'@types/node@12.20.55': {}
'@types/node@18.19.44':
@@ -8010,6 +8275,10 @@ snapshots:
dependencies:
undici-types: 5.26.5
+ '@types/normalize-package-data@2.4.4': {}
+
+ '@types/parse-json@4.0.2': {}
+
'@types/prop-types@15.7.12': {}
'@types/pug@2.0.10': {}
@@ -8195,6 +8464,13 @@ snapshots:
json-schema-traverse: 0.4.1
uri-js: 4.4.1
+ ajv@8.17.1:
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-uri: 3.0.6
+ json-schema-traverse: 1.0.0
+ require-from-string: 2.0.2
+
ansi-colors@4.1.3: {}
ansi-escapes@4.3.2:
@@ -8244,6 +8520,8 @@ snapshots:
array-union@2.1.0: {}
+ arrify@1.0.1: {}
+
asn1@0.2.6:
dependencies:
safer-buffer: 2.1.2
@@ -8254,6 +8532,8 @@ snapshots:
dependencies:
tslib: 2.6.3
+ astral-regex@2.0.0: {}
+
asynckit@0.4.0: {}
available-typed-arrays@1.0.7:
@@ -8371,6 +8651,8 @@ snapshots:
balanced-match@1.0.2: {}
+ balanced-match@2.0.0: {}
+
bare-events@2.4.2:
optional: true
@@ -8518,6 +8800,12 @@ snapshots:
callsites@3.1.0: {}
+ camelcase-keys@6.2.2:
+ dependencies:
+ camelcase: 5.3.1
+ map-obj: 4.3.0
+ quick-lru: 4.0.1
+
camelcase@5.3.1: {}
camelcase@6.3.0: {}
@@ -8668,6 +8956,8 @@ snapshots:
color-convert: 2.0.1
color-string: 1.9.1
+ colord@2.9.3: {}
+
combined-stream@1.0.8:
dependencies:
delayed-stream: 1.0.0
@@ -8708,6 +8998,14 @@ snapshots:
dependencies:
browserslist: 4.23.3
+ cosmiconfig@7.1.0:
+ dependencies:
+ '@types/parse-json': 4.0.2
+ import-fresh: 3.3.0
+ parse-json: 5.2.0
+ path-type: 4.0.0
+ yaml: 1.10.2
+
cpu-features@0.0.10:
dependencies:
buildcheck: 0.0.6
@@ -8745,6 +9043,8 @@ snapshots:
dependencies:
type-fest: 1.4.0
+ css-functions-list@3.2.3: {}
+
css-select@5.1.0:
dependencies:
boolbase: 1.0.0
@@ -8790,6 +9090,11 @@ snapshots:
dependencies:
ms: 2.1.2
+ decamelize-keys@1.1.1:
+ dependencies:
+ decamelize: 1.2.0
+ map-obj: 1.0.1
+
decamelize@1.2.0: {}
decompress-response@6.0.0:
@@ -9327,6 +9632,8 @@ snapshots:
fast-levenshtein@2.0.6: {}
+ fast-uri@3.0.6: {}
+
fastest-levenshtein@1.0.16: {}
fastq@1.17.1:
@@ -9606,6 +9913,10 @@ snapshots:
global-prefix: 0.1.5
is-windows: 0.2.0
+ global-modules@2.0.0:
+ dependencies:
+ global-prefix: 3.0.0
+
global-prefix@0.1.5:
dependencies:
homedir-polyfill: 1.0.3
@@ -9613,6 +9924,12 @@ snapshots:
is-windows: 0.2.0
which: 1.3.1
+ global-prefix@3.0.0:
+ dependencies:
+ ini: 1.3.8
+ kind-of: 6.0.3
+ which: 1.3.1
+
globals@11.12.0: {}
globals@13.24.0:
@@ -9643,6 +9960,8 @@ snapshots:
slash: 5.1.0
unicorn-magic: 0.1.0
+ globjoin@0.1.4: {}
+
globrex@0.1.2: {}
gopd@1.0.1:
@@ -9653,6 +9972,8 @@ snapshots:
graphemer@1.4.0: {}
+ hard-rejection@2.1.0: {}
+
has-flag@3.0.0: {}
has-flag@4.0.0: {}
@@ -9714,8 +10035,16 @@ snapshots:
dependencies:
parse-passwd: 1.0.0
+ hosted-git-info@2.8.9: {}
+
+ hosted-git-info@4.1.0:
+ dependencies:
+ lru-cache: 6.0.0
+
html-escaper@2.0.2: {}
+ html-tags@3.3.1: {}
+
html-void-elements@3.0.0: {}
htmlparser2-svelte@4.1.0:
@@ -9790,6 +10119,8 @@ snapshots:
parent-module: 1.0.1
resolve-from: 4.0.0
+ import-lazy@4.0.0: {}
+
import-local@3.2.0:
dependencies:
pkg-dir: 4.2.0
@@ -9860,10 +10191,14 @@ snapshots:
is-path-inside@3.0.3: {}
+ is-plain-obj@1.1.0: {}
+
is-plain-object@2.0.4:
dependencies:
isobject: 3.0.1
+ is-plain-object@5.0.0: {}
+
is-platform@1.0.0: {}
is-reference@3.0.2:
@@ -10391,6 +10726,8 @@ snapshots:
json-schema-traverse@0.4.1: {}
+ json-schema-traverse@1.0.0: {}
+
json-stable-stringify-without-jsonify@1.0.1: {}
json5@2.2.3: {}
@@ -10424,6 +10761,8 @@ snapshots:
kleur@4.1.5: {}
+ known-css-properties@0.26.0: {}
+
known-css-properties@0.34.0: {}
kons@0.7.1:
@@ -10476,6 +10815,8 @@ snapshots:
lodash.startcase@4.4.0: {}
+ lodash.truncate@4.4.2: {}
+
lodash@4.17.21: {}
log-symbols@4.1.0:
@@ -10516,6 +10857,10 @@ snapshots:
dependencies:
yallist: 3.1.1
+ lru-cache@6.0.0:
+ dependencies:
+ yallist: 4.0.0
+
lz-string@1.5.0: {}
magic-string@0.30.11:
@@ -10556,12 +10901,18 @@ snapshots:
dependencies:
tmpl: 1.0.5
+ map-obj@1.0.1: {}
+
+ map-obj@4.3.0: {}
+
map-or-similar@1.5.0: {}
markdown-to-jsx@7.4.7(react@18.3.1):
dependencies:
react: 18.3.1
+ mathml-tag-names@2.1.3: {}
+
mdast-util-to-hast@13.2.0:
dependencies:
'@types/hast': 3.0.4
@@ -10584,6 +10935,21 @@ snapshots:
dependencies:
map-or-similar: 1.5.0
+ meow@9.0.0:
+ dependencies:
+ '@types/minimist': 1.2.5
+ camelcase-keys: 6.2.2
+ decamelize: 1.2.0
+ decamelize-keys: 1.1.1
+ hard-rejection: 2.1.0
+ minimist-options: 4.1.0
+ normalize-package-data: 3.0.3
+ read-pkg-up: 7.0.1
+ redent: 3.0.0
+ trim-newlines: 3.0.1
+ type-fest: 0.18.1
+ yargs-parser: 20.2.9
+
merge-descriptors@1.0.1: {}
merge-stream@2.0.0: {}
@@ -10642,6 +11008,12 @@ snapshots:
dependencies:
brace-expansion: 2.0.1
+ minimist-options@4.1.0:
+ dependencies:
+ arrify: 1.0.1
+ is-plain-obj: 1.1.0
+ kind-of: 6.0.3
+
minimist@1.2.8: {}
minipass-collect@2.0.1:
@@ -10769,8 +11141,24 @@ snapshots:
dependencies:
abbrev: 2.0.0
+ normalize-package-data@2.5.0:
+ dependencies:
+ hosted-git-info: 2.8.9
+ resolve: 1.22.8
+ semver: 5.7.2
+ validate-npm-package-license: 3.0.4
+
+ normalize-package-data@3.0.3:
+ dependencies:
+ hosted-git-info: 4.1.0
+ is-core-module: 2.15.0
+ semver: 7.6.3
+ validate-npm-package-license: 3.0.4
+
normalize-path@3.0.0: {}
+ normalize.css@8.0.1: {}
+
npm-bundled@2.0.1:
dependencies:
npm-normalize-package-bin: 2.0.0
@@ -11063,6 +11451,10 @@ snapshots:
optionalDependencies:
postcss: 8.4.41
+ postcss-media-query-parser@0.2.3: {}
+
+ postcss-resolve-nested-selector@0.1.6: {}
+
postcss-safe-parser@6.0.0(postcss@8.4.41):
dependencies:
postcss: 8.4.41
@@ -11076,6 +11468,8 @@ snapshots:
cssesc: 3.0.0
util-deprecate: 1.0.2
+ postcss-value-parser@4.2.0: {}
+
postcss@8.4.41:
dependencies:
nanoid: 3.3.7
@@ -11183,6 +11577,8 @@ snapshots:
queue-tick@1.0.1: {}
+ quick-lru@4.0.1: {}
+
range-parser@1.2.1: {}
raw-body@2.5.2:
@@ -11223,6 +11619,19 @@ snapshots:
dependencies:
loose-envify: 1.4.0
+ read-pkg-up@7.0.1:
+ dependencies:
+ find-up: 4.1.0
+ read-pkg: 5.2.0
+ type-fest: 0.8.1
+
+ read-pkg@5.2.0:
+ dependencies:
+ '@types/normalize-package-data': 2.4.4
+ normalize-package-data: 2.5.0
+ parse-json: 5.2.0
+ type-fest: 0.6.0
+
read-yaml-file@1.1.0:
dependencies:
graceful-fs: 4.2.11
@@ -11305,6 +11714,8 @@ snapshots:
require-directory@2.1.1: {}
+ require-from-string@2.0.2: {}
+
require-main-filename@2.0.0: {}
resolve-cwd@3.0.0:
@@ -11549,6 +11960,12 @@ snapshots:
slash@5.1.0: {}
+ slice-ansi@4.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+
smart-buffer@4.2.0: {}
socks-proxy-agent@8.0.4:
@@ -11612,6 +12029,20 @@ snapshots:
cross-spawn: 5.1.0
signal-exit: 3.0.7
+ spdx-correct@3.2.0:
+ dependencies:
+ spdx-expression-parse: 3.0.1
+ spdx-license-ids: 3.0.21
+
+ spdx-exceptions@2.5.0: {}
+
+ spdx-expression-parse@3.0.1:
+ dependencies:
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.21
+
+ spdx-license-ids@3.0.21: {}
+
split-ca@1.0.1: {}
sprintf-js@1.0.3: {}
@@ -11741,11 +12172,90 @@ snapshots:
strip-json-comments@3.1.1: {}
+ style-search@0.1.0: {}
+
style-value-types@5.1.2:
dependencies:
hey-listen: 1.0.8
tslib: 2.4.0
+ stylelint-config-recommended-scss@6.0.0(postcss@8.4.41)(stylelint@14.16.1):
+ dependencies:
+ postcss-scss: 4.0.9(postcss@8.4.41)
+ stylelint: 14.16.1
+ stylelint-config-recommended: 7.0.0(stylelint@14.16.1)
+ stylelint-scss: 4.7.0(stylelint@14.16.1)
+ transitivePeerDependencies:
+ - postcss
+
+ stylelint-config-recommended@7.0.0(stylelint@14.16.1):
+ dependencies:
+ stylelint: 14.16.1
+
+ stylelint-config-standard-scss@4.0.0(postcss@8.4.41)(stylelint@14.16.1):
+ dependencies:
+ stylelint: 14.16.1
+ stylelint-config-recommended-scss: 6.0.0(postcss@8.4.41)(stylelint@14.16.1)
+ stylelint-config-standard: 25.0.0(stylelint@14.16.1)
+ transitivePeerDependencies:
+ - postcss
+
+ stylelint-config-standard@25.0.0(stylelint@14.16.1):
+ dependencies:
+ stylelint: 14.16.1
+ stylelint-config-recommended: 7.0.0(stylelint@14.16.1)
+
+ stylelint-scss@4.7.0(stylelint@14.16.1):
+ dependencies:
+ postcss-media-query-parser: 0.2.3
+ postcss-resolve-nested-selector: 0.1.6
+ postcss-selector-parser: 6.1.1
+ postcss-value-parser: 4.2.0
+ stylelint: 14.16.1
+
+ stylelint@14.16.1:
+ dependencies:
+ '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.1.1)
+ balanced-match: 2.0.0
+ colord: 2.9.3
+ cosmiconfig: 7.1.0
+ css-functions-list: 3.2.3
+ debug: 4.3.6
+ fast-glob: 3.3.2
+ fastest-levenshtein: 1.0.16
+ file-entry-cache: 6.0.1
+ global-modules: 2.0.0
+ globby: 11.1.0
+ globjoin: 0.1.4
+ html-tags: 3.3.1
+ ignore: 5.3.1
+ import-lazy: 4.0.0
+ imurmurhash: 0.1.4
+ is-plain-object: 5.0.0
+ known-css-properties: 0.26.0
+ mathml-tag-names: 2.1.3
+ meow: 9.0.0
+ micromatch: 4.0.7
+ normalize-path: 3.0.0
+ picocolors: 1.0.1
+ postcss: 8.4.41
+ postcss-media-query-parser: 0.2.3
+ postcss-resolve-nested-selector: 0.1.6
+ postcss-safe-parser: 6.0.0(postcss@8.4.41)
+ postcss-selector-parser: 6.1.1
+ postcss-value-parser: 4.2.0
+ resolve-from: 5.0.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ style-search: 0.1.0
+ supports-hyperlinks: 2.3.0
+ svg-tags: 1.0.0
+ table: 6.9.0
+ v8-compile-cache: 2.4.0
+ write-file-atomic: 4.0.2
+ transitivePeerDependencies:
+ - supports-color
+
supports-color@5.5.0:
dependencies:
has-flag: 3.0.0
@@ -11758,6 +12268,11 @@ snapshots:
dependencies:
has-flag: 4.0.0
+ supports-hyperlinks@2.3.0:
+ dependencies:
+ has-flag: 4.0.0
+ supports-color: 7.2.0
+
supports-preserve-symlinks-flag@1.0.0: {}
svelte-check@3.8.5(@babel/core@7.25.2)(postcss-load-config@3.1.4(postcss@8.4.41))(postcss@8.4.41)(sass@1.77.8)(svelte@4.2.18):
@@ -11854,6 +12369,8 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ svg-tags@1.0.0: {}
+
svgo@3.3.2:
dependencies:
'@trysound/sax': 0.2.0
@@ -11866,6 +12383,14 @@ snapshots:
tabbable@6.2.0: {}
+ table@6.9.0:
+ dependencies:
+ ajv: 8.17.1
+ lodash.truncate: 4.4.2
+ slice-ansi: 4.0.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
tar-fs@2.0.1:
dependencies:
chownr: 1.1.4
@@ -11973,6 +12498,8 @@ snapshots:
trim-lines@3.0.1: {}
+ trim-newlines@3.0.1: {}
+
ts-api-utils@1.3.0(typescript@5.5.4):
dependencies:
typescript: 5.5.4
@@ -11999,10 +12526,14 @@ snapshots:
type-detect@4.1.0: {}
+ type-fest@0.18.1: {}
+
type-fest@0.20.2: {}
type-fest@0.21.3: {}
+ type-fest@0.6.0: {}
+
type-fest@0.8.1: {}
type-fest@1.4.0: {}
@@ -12134,6 +12665,11 @@ snapshots:
'@types/istanbul-lib-coverage': 2.0.6
convert-source-map: 2.0.0
+ validate-npm-package-license@3.0.4:
+ dependencies:
+ spdx-correct: 3.2.0
+ spdx-expression-parse: 3.0.1
+
vary@1.1.2: {}
vfile-message@4.0.2:
@@ -12282,6 +12818,8 @@ snapshots:
camelcase: 5.3.1
decamelize: 1.2.0
+ yargs-parser@20.2.9: {}
+
yargs-parser@21.1.1: {}
yargs@15.4.1:
diff --git a/v2/legacy/.gitignore b/v2/legacy/.gitignore
new file mode 100644
index 0000000000..21a6ff0c6b
--- /dev/null
+++ b/v2/legacy/.gitignore
@@ -0,0 +1,7 @@
+node_modules/
+.DS_Store
+icons-dist/
+*.local
+.turbo
+.vercel
+.idea
\ No newline at end of file
diff --git a/v2/legacy/package.json b/v2/legacy/package.json
new file mode 100644
index 0000000000..833fe4d79f
--- /dev/null
+++ b/v2/legacy/package.json
@@ -0,0 +1,20 @@
+{
+ "name": "@appwrite.io/pink-legacy",
+ "version": "1.0.0",
+ "description": "",
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1",
+ "build": "sass --style=compressed --load-path=../../node_modules src/_index.scss:dist/pink.css"
+ },
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "@appwrite.io/pink-icons": "1.0.0",
+ "normalize.css": "^8.0.1",
+ "the-new-css-reset": "^1.11.2"
+ },
+ "main": "dist/pink.css",
+ "style": "dist/pink.css",
+ "jsdelivr": "dist/pink.css",
+ "unpkg": "dist/pink.css"
+}
diff --git a/v2/legacy/src/1-css-variables/_border-radius.scss b/v2/legacy/src/1-css-variables/_border-radius.scss
new file mode 100644
index 0000000000..c0d16441fe
--- /dev/null
+++ b/v2/legacy/src/1-css-variables/_border-radius.scss
@@ -0,0 +1,8 @@
+@use '../abstract' as *;
+:root {
+ --border-radius-xsmall: #{pxToRem(4)};
+ --border-radius-small: #{pxToRem(8)};
+ --border-radius-medium: #{pxToRem(16)};
+ --border-radius-large: #{pxToRem(24)};
+ --border-radius-circular: 50%;
+}
\ No newline at end of file
diff --git a/v2/legacy/src/1-css-variables/_colors.scss b/v2/legacy/src/1-css-variables/_colors.scss
new file mode 100644
index 0000000000..1be060c3bb
--- /dev/null
+++ b/v2/legacy/src/1-css-variables/_colors.scss
@@ -0,0 +1,125 @@
+@use '../abstract' as *;
+:root {
+ /** Primary **/
+ --color-primary-hue: 343;
+ --color-primary-100: var(--color-primary-hue) 87% 56%; /* #f02e65 */
+ --color-primary-200: calc(var(--color-primary-hue) - 3) 79% 48%; /* #DA1A5B */
+ --color-primary-300: calc(var(--color-primary-hue) - 6) 87% 40%; /* #c00D53 */
+
+ /** Neutral **/
+
+ --color-neutral-0: 0 0% 100%; /* #ffffff */
+ --color-neutral-5: 240 11% 98%; /* #FAFAFB */
+ --color-neutral-10: 240 9% 94%; /* #EDEDF0 */
+ --color-neutral-15: 240 4% 85%; /* #D8D8DB */
+ --color-neutral-20: 240 3% 77%; /* #C3C3C6 */
+
+ --color-neutral-50: 240 2% 52%; /* #818186 */
+ --color-neutral-60: 240 2% 43%; /* #6C6C71 */
+ --color-neutral-70: 240 3% 35%; /* #56565C */
+
+ --color-neutral-80: 240 4% 27%; /* #414146 */
+ --color-neutral-85: 240 4% 18%; /* #2D2D31 */
+ --color-neutral-90: 240 7% 12%; /* #1D1D21 */
+ --color-neutral-100: 240 6% 10%; /* #19191C */
+ --color-neutral-105: 240 5% 8%; /* #141416 */
+ --color-neutral-1000:0 0% 0%; /* #000000 */
+
+ /** Information **/
+ --color-information-hue: 189;
+ --color-information-10: calc(var(--color-information-hue) + 4) 88% 94%; /* #E1F7FD */
+ --color-information-50: calc(var(--color-information-hue) + 13) 90% 89%; /* #C8F2FC */
+ --color-information-100: var(--color-information-hue) 100% 38%; /* #00A7C3 */
+ --color-information-120: calc(var(--color-information-hue) + 1) 100% 26%; /* #007187 */
+ --color-information-200: calc(var(--color-information-hue) - 1) 87% 12%; /* #04333A */
+
+ /** Success **/
+ --color-success-hue: 150;
+ --color-success-10: var(--color-success-hue) 88% 93%; /* #DFFDEE */
+ --color-success-50: var(--color-success-hue) 91% 87%; /* #BFFCDD */
+ --color-success-100: var(--color-success-hue) 100% 37%; /* #00BC5D */
+ --color-success-120: calc(var(--color-success-hue) + 8) 100% 23%; /* #00754A */
+ --color-success-200: calc(var(--color-success-hue) - 1) 79% 11%; /* #06331C */
+
+ /** Warning **/
+ --color-warning-hue: 33;
+ --color-warning-10: calc(var(--color-warning-hue) + 1) 100% 94%; /* #FFF1DF */
+ --color-warning-50: calc(var(--color-warning-hue) - 2) 100% 88%; /* #FFE1C0 */
+ --color-warning-100: var(--color-warning-hue) 100% 48%; /* #F38500 */
+ --color-warning-120: calc(var(--color-warning-hue) - 9) 100% 35%; /* #B34700 */
+ --color-warning-200: var(--color-warning-hue) 97% 14%; /* #462701 */
+
+ /** Danger **/
+ --color-danger-hue: 3;
+ --color-danger-10: calc(var(--color-danger-hue) - 3) 100% 96%; /* #FFEBEB */
+ --color-danger-50: calc(var(--color-danger-hue) - 2) 100% 92%; /* #FFD5D4 */
+ --color-danger-100: var(--color-danger-hue) 100% 61%; /* #FF453A */
+ --color-danger-120: calc(var(--color-danger-hue) - 3) 82% 39%; /* #B31212 */
+ --color-danger-200: calc(var(--color-danger-hue) - 1) 91% 13%; /* #3E0503 */
+
+ /** Blue **/
+ --color-blue-hue: 218;
+ --color-blue-100: var(--color-blue-hue) 100% 82%; /* #A1C4FF */
+
+ /** Green **/
+ --color-green-hue: 172;
+ --color-green-100: var(--color-green-hue) 50% 72%; /* #94DBD1 */
+
+ /** Orange **/
+ --color-orange-hue: 32;
+ --color-orange-100: var(--color-orange-hue) 97% 75%; /* #FDC584 */
+
+ /** Red **/
+ --color-red-hue: 0;
+ --color-red-100: var(--color-red-hue) 100% 82%; /* #FFA1A1 */
+
+ /** Purple **/
+ --color-purple-hue: 261;
+ --color-purple-100: var(--color-purple-hue) 93% 84%; /* #CBB1FC */
+
+ /** Pink **/
+ --color-pink-hue: 331;
+ --color-pink-100: var(--color-pink-hue) 100% 82%; /* #FFA1CE */
+
+ /* [Newly added] mint */
+ --color-mint-hue: 177;
+ --color-mint-500: calc(var(--color-mint-hue) + 1) 54% 69%;
+ /* [Finish added] */
+
+
+ /* transparent */
+ --transparent: 0 0% 0% / 0;
+}
+
+
+:root {
+ --color-pink-text: var(--color-primary-100);
+
+ --color-text-disabled: var(--color-neutral-20);
+ --color-text-offline: var(--color-neutral-50);
+ --color-text-info: var(--color-information-100);
+ --color-text-danger: var(--color-danger-100);
+ --color-text-warning: var(--color-warning-100);
+ --color-text-success: var(--color-success-100);
+
+ --color-text-gray: var(--color-neutral-50);
+
+ --color-border: var(--color-neutral-10);
+ --scroll-color: var(--color-neutral-20);
+
+ #{$theme-dark} {
+ --color-pink-text: var(--color-primary-200);
+
+ --color-text-disabled: var(--color-neutral-60);
+ --color-text-offline: var(--color-neutral-50);
+ --color-text-info: var(--color-information-100);
+ --color-text-danger: var(--color-danger-100);
+ --color-text-warning: var(--color-warning-100);
+ --color-text-success: var(--color-success-100);
+
+ --color-text-gray: var(--color-neutral-20);
+
+ --color-border: var(--color-neutral-85);
+ --scroll-color: var(--color-neutral-80);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/1-css-variables/_common.scss b/v2/legacy/src/1-css-variables/_common.scss
new file mode 100644
index 0000000000..a5057055ad
--- /dev/null
+++ b/v2/legacy/src/1-css-variables/_common.scss
@@ -0,0 +1,5 @@
+@use '../abstract' as *;
+/* common CSS native variables */
+:root {
+ --transition: 0.2s;
+}
\ No newline at end of file
diff --git a/v2/legacy/src/1-css-variables/_fonts.scss b/v2/legacy/src/1-css-variables/_fonts.scss
new file mode 100644
index 0000000000..7c97602a2e
--- /dev/null
+++ b/v2/legacy/src/1-css-variables/_fonts.scss
@@ -0,0 +1,17 @@
+@use '../abstract' as *;
+:root {
+ --heading-font: 'Poppins', arial, sans-serif;
+ --content-font: 'Inter', arial, sans-serif;
+ --code-font: 'Source Code Pro', monospace;
+
+ --font-size-00: #{pxToRem(12)};
+ --font-size-0: #{pxToRem(14)};
+ --font-size-1: #{pxToRem(16)};
+ --font-size-2: #{pxToRem(18)};
+ --font-size-3: #{pxToRem(20)};
+ --font-size-4: #{pxToRem(24)};
+ --font-size-5: #{pxToRem(28)};
+ --font-size-6: #{pxToRem(32)};
+ --font-size-7: #{pxToRem(36)};
+ --font-size-8: #{pxToRem(40)};
+}
\ No newline at end of file
diff --git a/v2/legacy/src/1-css-variables/_index.scss b/v2/legacy/src/1-css-variables/_index.scss
new file mode 100644
index 0000000000..ab4f3cff98
--- /dev/null
+++ b/v2/legacy/src/1-css-variables/_index.scss
@@ -0,0 +1,7 @@
+@forward "language";
+@forward "common";
+@forward "fonts";
+@forward "colors";
+@forward "sizes";
+@forward "border-radius";
+@forward "shadows";
\ No newline at end of file
diff --git a/v2/legacy/src/1-css-variables/_language.scss b/v2/legacy/src/1-css-variables/_language.scss
new file mode 100644
index 0000000000..202d0b8e3c
--- /dev/null
+++ b/v2/legacy/src/1-css-variables/_language.scss
@@ -0,0 +1,11 @@
+:root {
+ --transform-direction: 1;
+ --start-direction: left;
+ --end-direction: right;
+
+ &[dir="rtl"] {
+ --transform-direction: -1;
+ --start-direction: right;
+ --end-direction: left;
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/1-css-variables/_shadows.scss b/v2/legacy/src/1-css-variables/_shadows.scss
new file mode 100644
index 0000000000..859355254d
--- /dev/null
+++ b/v2/legacy/src/1-css-variables/_shadows.scss
@@ -0,0 +1,19 @@
+@use '../abstract' as *;
+
+:root {
+ --shadow-color: var(--color-neutral-80);
+
+ --shadow-small: #{pxToRem(0) pxToRem(16) pxToRem(32) hsl(var(--shadow-color) / 0.02)};
+ --shadow-large: #{pxToRem(0) pxToRem(16) pxToRem(32) hsl(var(--shadow-color) / 0.04)};
+
+ /* focus state shadow */
+ $focus: 0 0 0 pxToRem(1) hsl(var(--color-information-100)), 0 0 0 pxToRem(4) hsl(var(--color-information-100) / 0.25);
+ --focus-box-shadow: #{$focus};
+
+ #{$theme-dark} {
+ --shadow-color: var(--color-neutral-105);
+
+ --shadow-small: #{pxToRem(0) pxToRem(16) pxToRem(32) hsl(var(--shadow-color) / 0.5)};
+ --shadow-large: #{pxToRem(0) pxToRem(16) pxToRem(32) hsl(var(--shadow-color) / 1)};
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/1-css-variables/_sizes.scss b/v2/legacy/src/1-css-variables/_sizes.scss
new file mode 100644
index 0000000000..73a586cce5
--- /dev/null
+++ b/v2/legacy/src/1-css-variables/_sizes.scss
@@ -0,0 +1,16 @@
+@use '../abstract' as *;
+:root {
+ --container-size-small: #{pxToRem(320)};
+ --container-size-medium: #{pxToRem(496)};
+ --container-size-large: #{pxToRem(700)};
+ --container-size-xl: #{pxToRem(928)};
+ --container-size-xxl: #{pxToRem(1260)};
+ --container-size-xxxl: #{pxToRem(1394)};
+
+ /* icons */
+ --icon-size-small: #{pxToRem(16)};
+ --icon-size-medium: #{pxToRem(20)}; /* default */
+ --icon-size-large: #{pxToRem(24)};
+ --icon-size-extra-large: #{pxToRem(32)};
+
+}
\ No newline at end of file
diff --git a/v2/legacy/src/2-resets/_custom-css-reset.scss b/v2/legacy/src/2-resets/_custom-css-reset.scss
new file mode 100644
index 0000000000..8c3d552e7b
--- /dev/null
+++ b/v2/legacy/src/2-resets/_custom-css-reset.scss
@@ -0,0 +1,28 @@
+@use '../abstract' as *;
+/** custom reset **/
+
+img[src=""] {
+ visibility: hidden;
+}
+
+button {
+ cursor: pointer;
+}
+
+pre {
+ margin-block: 0;
+}
+
+details summary::-webkit-details-marker {
+ display:none;
+}
+
+summary::-webkit-details-marker { display:none!important; }
+
+input::-webkit-datetime-edit { line-height:1; padding:0; margin-bottom:-2px; }
+
+
+#{$theme-dark} {
+ input[type="date"]::-webkit-calendar-picker-indicator { filter:invert(0.8); }
+ input[type="time"]::-webkit-calendar-picker-indicator { filter:invert(0.8); }
+}
diff --git a/v2/legacy/src/2-resets/_index.scss b/v2/legacy/src/2-resets/_index.scss
new file mode 100644
index 0000000000..06dee4fa34
--- /dev/null
+++ b/v2/legacy/src/2-resets/_index.scss
@@ -0,0 +1,10 @@
+@use 'sass:meta';
+@layer the-new-css-reset, typography;
+
+@layer the-new-css-reset {
+ @include meta.load-css('the-new-css-reset/css/reset.css');
+}
+
+@layer typography {
+ @include meta.load-css('typography');
+}
diff --git a/v2/legacy/src/2-resets/_typography.scss b/v2/legacy/src/2-resets/_typography.scss
new file mode 100644
index 0000000000..111c5a7dc2
--- /dev/null
+++ b/v2/legacy/src/2-resets/_typography.scss
@@ -0,0 +1,108 @@
+@use '../abstract' as *;
+
+/* remove bounce affect on Safari mac */
+html, body {
+ overscroll-behavior-y: none;
+}
+
+html {
+ //@include scroll(); //Eldad ask to try to use if without for MacOS affect (hide when not being use)
+ scrollbar-gutter: stable;
+ overflow: overlay; // fallback macOS
+ overflow-x: hidden;
+ &:has(:where(body#{$theme-dark})) { color-scheme:dark; }
+}
+
+body {
+ --p-body-text-color: var(--color-neutral-60);
+ --p-body-bg-color: var(--color-neutral-5);
+ font-family: var(--content-font);
+ -webkit-font-smoothing: antialiased;
+ font-weight: 400;
+ font-size: 14px;
+ line-height: 1.5;
+ color: hsl(var(--p-body-text-color));
+ background-color: hsl(var(--p-body-bg-color));
+
+ {$theme-dark} {
+ --p-body-text-color: var(--color-neutral-20);
+ --p-body-bg-color: var(--color-neutral-105);
+ }
+}
+
+/*
+ Native element affect
+
+ there also utilities classes:
+ - u-small-text
+ - u-font-bold
+*/
+small { font-size:pxToRem(14); }
+b { font-weight:600; }
+code {
+ font-family: var(--code-font);
+ font-size: pxToRem(14);
+ line-height: 1.5;
+ letter-spacing: 0.08em;
+ white-space: pre-wrap;
+}
+
+/** heading **/
+
+/* color for both heading */
+[class*="heading-"] {
+ --p-heading-text-color: var(--heading-text-color, var(--color-neutral-80));
+ color: hsl(var(--p-heading-text-color));
+ #{$theme-dark} & {
+ --p-heading-text-color: var(--heading-text-color, var(--color-neutral-10));
+ }
+}
+
+[class*="heading-level"] {
+ font-family: var(--heading-font, arial);
+ line-height: 1.5;
+}
+
+.heading-level {
+ @media #{$break1}, #{$break2} {
+ &-1 { font-size:var(--font-size-7); font-weight:700; }
+ &-2 { font-size:var(--font-size-6); font-weight:700; }
+ &-3 { font-size:var(--font-size-5); font-weight:600; }
+ &-4 { font-size:var(--font-size-4); font-weight:500; }
+ &-5 { font-size:var(--font-size-3); font-weight:500; }
+ &-6 { font-size:var(--font-size-2); font-weight:500; }
+ &-7 { font-size:var(--font-size-1); font-weight:500; }
+ }
+ @media #{$break3open} {
+ &-1 { font-size:var(--font-size-8); font-weight:700; }
+ &-2 { font-size:var(--font-size-7); font-weight:700; }
+ &-3 { font-size:var(--font-size-6); font-weight:700; }
+ &-4 { font-size:var(--font-size-5); font-weight:600; }
+ &-5 { font-size:var(--font-size-4); font-weight:500; }
+ &-6 { font-size:var(--font-size-3); font-weight:500; }
+ &-7 { font-size:var(--font-size-2); font-weight:500; }
+ }
+}
+
+[class*="eyebrow-heading"] {
+ text-transform: uppercase;
+ font-weight: 600;
+ line-height: 1.5;
+}
+
+.eyebrow-heading {
+ &-1 { font-size:var(--font-size-1); letter-spacing:0.08em; }
+ &-2 { font-size:var(--font-size-0); letter-spacing:0.08em; }
+ &-3 { font-size:var(--font-size-00); letter-spacing:0.12em; }
+}
+
+.body-text {
+ &-1 { font-size:var(--font-size-1); }
+ &-2 { font-size:var(--font-size-0); }
+}
+
+::selection {
+ color: hsl(var(--color-neutral-1000)); -webkit-text-fill-color: hsl(var(--color-neutral-1000));
+ background-color: hsl(var(--color-mint-500)); background-clip:revert; -webkit-background-clip:revert;
+}
+
diff --git a/v2/legacy/src/5-animations/_bounce.scss b/v2/legacy/src/5-animations/_bounce.scss
new file mode 100644
index 0000000000..69ab59108a
--- /dev/null
+++ b/v2/legacy/src/5-animations/_bounce.scss
@@ -0,0 +1,19 @@
+@use '../abstract' as *;
+/* usage class */
+.animation-bounce {
+ animation:bounce infinite 2s;
+ @media (prefers-reduced-motion) { animation:none; }
+}
+
+/** Bounce Animation **/
+@keyframes bounce {
+ 0%, 20%, 50%, 80%, 100% {
+ transform: translateY(pxToRem(0));
+ }
+ 40% {
+ transform: translateY(pxToRem(-15));
+ }
+ 60% {
+ transform: translateY(pxToRem(-7));
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/5-animations/_index.scss b/v2/legacy/src/5-animations/_index.scss
new file mode 100644
index 0000000000..be2e06fbad
--- /dev/null
+++ b/v2/legacy/src/5-animations/_index.scss
@@ -0,0 +1,2 @@
+@forward "bounce";
+@forward "rotate";
\ No newline at end of file
diff --git a/v2/legacy/src/5-animations/_rotate.scss b/v2/legacy/src/5-animations/_rotate.scss
new file mode 100644
index 0000000000..e5472fd0d9
--- /dev/null
+++ b/v2/legacy/src/5-animations/_rotate.scss
@@ -0,0 +1,13 @@
+@use '../abstract' as *;
+/* usage class */
+.animation-rotate {
+ animation: rotate 1s infinite linear;
+ @media (prefers-reduced-motion) { animation-duration:0s; }
+}
+
+/** Bounce Animation **/
+@keyframes rotate {
+ 100% {
+ transform: rotate(360deg);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_avatar.scss b/v2/legacy/src/6-elements/_avatar.scss
new file mode 100644
index 0000000000..6f7e15d8be
--- /dev/null
+++ b/v2/legacy/src/6-elements/_avatar.scss
@@ -0,0 +1,243 @@
+@use '../abstract' as *;
+
+.avatar {
+ --p-text-size: var(--text-size, var(--font-size-0));
+ --p-image-size: var(--image-size, #{pxToRem(20)} );
+ --p-size: var(--size, #{pxToRem(40)} ); /* default is medium size */
+
+ --p-avatar-text-color: var(--p-avatar-text-color-default);
+ --p-avatar-bg-color: var(--p-avatar-bg-color-default);
+ --p-avatar-border-color: var(--p-avatar-border-color-default);
+
+ /* default */
+ --p-avatar-text-color-default: var(--color-neutral-60);
+ --p-avatar-bg-color-default: var(--color-neutral-5);
+ --p-avatar-border-color-default: var(--color-neutral-10);
+
+ /* empty */
+ --p-avatar-text-color-empty: var(--color-neutral-20);
+ --p-avatar-bg-color-empty: var(--transparent);
+ --p-avatar-border-color-empty: var(--color-neutral-20);
+
+ /* orange */
+ --p-avatar-text-color-orange: var(--color-neutral-0);
+ --p-avatar-bg-color-orange: var(--color-orange-100);
+ --p-avatar-border-color-orange: var(--p-avatar-bg-color-orange);
+
+ /* green */
+ --p-avatar-text-color-green: var(--color-neutral-0);
+ --p-avatar-bg-color-green: var(--color-green-100);
+ --p-avatar-border-color-green: var(--p-avatar-bg-color-green);
+
+ /* blue */
+ --p-avatar-text-color-blue: var(--color-neutral-0);
+ --p-avatar-bg-color-blue: var(--color-blue-100);
+ --p-avatar-border-color-blue: var(--p-avatar-bg-color-blue);
+
+ /* pink */
+ --p-avatar-text-color-pink: var(--color-neutral-0);
+ --p-avatar-bg-color-pink: var(--color-pink-100);
+ --p-avatar-border-color-pink: var(--p-avatar-bg-color-pink);
+
+ /* red */
+ --p-avatar-text-color-red: var(--color-neutral-0);
+ --p-avatar-bg-color-red: var(--color-red-100);
+ --p-avatar-border-color-red: var(--p-avatar-bg-color-red);
+
+
+ --color-text-info: var(--color-information-100);
+ --color-text-danger: var(--color-danger-100);
+ --color-text-warning: var(--color-warning-100);
+ --color-text-success: var(--color-success-100);
+
+
+ /* info */
+ --p-avatar-text-info: var(--color-neutral-0);
+ --p-avatar-bg-info: var(--color-text-info);
+ --p-avatar-border-info: var(--p-avatar-bg-info);
+
+ /* danger */
+ --p-avatar-text-danger: var(--color-neutral-0);
+ --p-avatar-bg-danger: var(--color-text-danger);
+ --p-avatar-border-danger: var(--p-avatar-bg-danger);
+
+ /* warning */
+ --p-avatar-text-warning: var(--color-neutral-0);
+ --p-avatar-bg-warning: var(--color-text-warning);
+ --p-avatar-border-warning: var(--p-avatar-bg-warning);
+
+ /* success */
+ --p-avatar-text-success: var(--color-neutral-0);
+ --p-avatar-bg-success: var(--color-text-success);
+ --p-avatar-border-success: var(--p-avatar-bg-success);
+
+ color: hsl(var(--p-avatar-text-color));
+ background-color: hsl(var(--p-avatar-bg-color));
+ border: solid pxToRem(1) hsl(var(--p-avatar-border-color));
+
+ font-size: var(--p-text-size);
+ inline-size: var(--p-size);
+ block-size: var(--p-size);
+
+ /* fix shrinking issue */
+ min-inline-size: var(--p-size);
+ min-block-size: var(--p-size);
+ max-inline-size: var(--p-size);
+ max-block-size: var(--p-size);
+
+ border-radius: var(--border-radius-circular);
+
+ display: grid;
+ place-content: center;
+ flex-shrink: 0; /* in case it a child of flexbox */
+ box-sizing: content-box;
+ overflow: hidden;
+ text-transform: uppercase;
+ -webkit-user-select: none;
+ user-select: none;
+ line-height: 1;
+
+ [class*="icon"] { font-size:var(--p-text-size)!important; }
+ img, svg { inline-size:var(--p-image-size); block-size:var(--p-image-size); }
+ &-link {
+ display:block; border-radius:var(--border-radius-circular);
+ &:focus-visible { box-shadow:var(--focus-box-shadow); }
+ }
+ /* sizes */
+ &.is-size-x-small {
+ --p-text-size: #{pxToRem(10)};
+ --p-size: #{pxToRem(24)};
+ --p-image-size: #{pxToRem(16)};
+ &.is-with-3-char { --p-text-size:#{pxToRem(8)}; }
+ [class*="icon"] { --p-text-size:var(--font-size-0); }
+ }
+ &.is-size-small {
+ --p-text-size: var(--font-size-00);
+ --p-size: #{pxToRem(32)};
+ --p-image-size: #{pxToRem(20)};
+ &.is-with-3-char { --p-text-size:#{pxToRem(10)}; }
+ [class*="icon"] { --p-text-size:var(--font-size-0); }
+ .icon-question-mark-circle { --p-text-size:var(--font-size-2); }
+ }
+ &.is-size-medium {
+ /* default */
+ &.is-with-3-char { --p-text-size:var(--font-size-0); }
+ [class*="icon"] { --p-text-size:var(--font-size-1); }
+ }
+ &.is-size-large {
+ --p-text-size:var(--font-size-1);
+ --p-size:#{pxToRem(48)};
+ --p-image-size: #{pxToRem(24)};
+ &.is-with-3-char { --p-text-size:var(--font-size-0); }
+ [class*="icon"] { --p-text-size:var(--font-size-4); }
+ }
+ &.is-size-x-large {
+ --p-text-size:var(--font-size-4);
+ --p-size:#{pxToRem(64)};
+ --p-image-size: #{pxToRem(24)};
+ &.is-with-3-char { --p-text-size:var(--font-size-2); }
+ [class*="icon"] { --p-text-size:var(--font-size-4); }
+ }
+
+ /* color states */
+ &.is-color-empty {
+ border-style: dashed;
+ --p-avatar-text-color: var(--p-avatar-text-color-empty);
+ --p-avatar-bg-color: var(--p-avatar-bg-color-empty);
+ --p-avatar-border-color: var(--p-avatar-border-color-empty);
+ }
+ &.is-color-orange {
+ --p-avatar-text-color: var(--p-avatar-text-color-orange);
+ --p-avatar-bg-color: var(--p-avatar-bg-color-orange);
+ --p-avatar-border-color: var(--p-avatar-border-color-orange);
+ }
+ &.is-color-green {
+ --p-avatar-text-color: var(--p-avatar-text-color-green);
+ --p-avatar-bg-color: var(--p-avatar-bg-color-green);
+ --p-avatar-border-color: var(--p-avatar-border-color-green);
+ }
+ &.is-color-blue {
+ --p-avatar-text-color: var(--p-avatar-text-color-blue);
+ --p-avatar-bg-color: var(--p-avatar-bg-color-blue);
+ --p-avatar-border-color: var(--p-avatar-border-color-blue);
+ }
+ &.is-color-pink {
+ --p-avatar-text-color: var(--p-avatar-text-color-pink);
+ --p-avatar-bg-color: var(--p-avatar-bg-color-pink);
+ --p-avatar-border-color: var(--p-avatar-border-color-pink);
+ }
+ &.is-color-red {
+ --p-avatar-text-color: var(--p-avatar-text-color-red);
+ --p-avatar-bg-color: var(--p-avatar-bg-color-red);
+ --p-avatar-border-color: var(--p-avatar-border-color-red);
+ }
+
+ /* message Avatars colors */
+ &.is-info {
+ --p-avatar-text-color: var(--p-avatar-text-info);
+ --p-avatar-bg-color: var(--p-avatar-bg-info);
+ --p-avatar-border-color: var(--p-avatar-border-info);
+ }
+
+ &.is-warning {
+ --p-avatar-text-color: var(--p-avatar-text-warning);
+ --p-avatar-bg-color: var(--p-avatar-bg-warning);
+ --p-avatar-border-color: var(--p-avatar-border-warning);
+ }
+
+ &.is-danger {
+ --p-avatar-text-color: var(--p-avatar-text-danger);
+ --p-avatar-bg-color: var(--p-avatar-bg-danger);
+ --p-avatar-border-color: var(--p-avatar-border-danger);
+ }
+
+ &.is-success {
+ --p-avatar-text-color: var(--p-avatar-text-success);
+ --p-avatar-bg-color: var(--p-avatar-bg-success);
+ --p-avatar-border-color: var(--p-avatar-border-success);
+ }
+
+
+ #{$theme-dark} & {
+ /* default */
+ --p-avatar-text-color-default: var(--color-neutral-20);
+ --p-avatar-bg-color-default: var(--color-neutral-85);
+ --p-avatar-border-color-default: var(--color-neutral-80);
+
+ /* colors avatars*/
+ --p-avatar-text-color-orange: var(--color-neutral-80);
+ --p-avatar-text-color-green: var(--color-neutral-80);
+ --p-avatar-text-color-blue: var(--color-neutral-80);
+ --p-avatar-text-color-pink: var(--color-neutral-80);
+ --p-avatar-text-color-red: var(--color-neutral-80);
+
+
+ }
+}
+
+.avatars-group {
+ --p-avatar-group-border-color: var(--avatar-group-border-color, var(--color-neutral-10));
+ position:relative; z-index:0; display:flex;
+ &-item {
+ position: relative;
+ display: inline-flex;
+ @for $i from 1 through 10 {
+ &:nth-child(#{$i}) {
+ $zindex: 10 - $i;
+ z-index: $zindex;
+ }
+ }
+ .avatar {
+ border:solid pxToRem(1) hsl(var(--p-avatar-group-border-color)); border-radius:var(--border-radius-circular);
+ margin-inline-start: -.6rem;
+ }
+ .image-item { margin-inline-start: -.6rem; }
+
+ .is-size-x-small { margin-inline-start: -.5rem; }
+ .is-size-small { margin-inline-start: -.5rem; }
+ .is-size-large { margin-inline-start: -0.8rem; }
+ }
+ #{$theme-dark} & {
+ --p-avatar-group-border-color: var(--color-neutral-80);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_box.scss b/v2/legacy/src/6-elements/_box.scss
new file mode 100644
index 0000000000..23ec2c1e46
--- /dev/null
+++ b/v2/legacy/src/6-elements/_box.scss
@@ -0,0 +1,62 @@
+@use '../abstract' as *;
+
+.box {
+ --p-box-text-color: var(--color-neutral-60);
+
+ --p-box-background-color: var(--p-box-background-color-default);
+ --p-box-background-color-default: var(--color-neutral-5);
+ --p-box-background-color-hover: var(--color-neutral-10);
+
+ --p-box-border-color: var(--color-neutral-15);
+
+ --p-box-padding: var(--box-padding, #{pxToRem(24)} );
+ --p-box-border-radius: var(--box-border-radius, var(--border-radius-xsmall));
+
+ position: relative;
+ background-color: hsl(var(--p-box-background-color));
+ border: solid pxToRem(1) hsl(var(--p-box-border-color));
+
+ border-radius: var(--p-box-border-radius);
+ padding: var(--p-box-padding);
+ color: hsl(var(--p-box-text-color));
+
+ max-inline-size:100%;
+
+ &-footer-button {
+ position:absolute; inset-inline:0; inset-block-end:0; text-align:center;
+ inline-size:100%; padding-block-start:pxToRem(60); padding-block-end:pxToRem(8);
+ background: linear-gradient(
+ to bottom,
+ hsl(var(--p-box-background-color) / 0), hsl(var(--p-box-background-color) / 1)
+ );
+ }
+
+ &.is-border-dashed { border-style:dashed; }
+ &.is-hover-with-file { --p-box-background-color: var(--p-box-background-color-hover); }
+
+ #{$theme-dark} & {
+ --p-box-text-color: var(--color-neutral-5);
+ --p-box-background-color-default: var(--color-neutral-85);
+ --p-box-background-color-hover: var(--color-neutral-80);
+ --p-box-border-color: var(--color-neutral-80);
+ }
+}
+
+.boxes-wrapper {
+ display:grid;
+ .box {
+ border-radius: 0;
+ &:first-child {
+ border-start-start-radius: var(--border-radius-xsmall);
+ border-start-end-radius: var(--border-radius-xsmall);
+ }
+ &:last-child {
+ border-top: 0;
+ border-end-start-radius: var(--border-radius-xsmall);
+ border-end-end-radius: var(--border-radius-xsmall);
+ }
+ &:not(:first-child):not(:last-child) {
+ border-block-start: 0;
+ }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_button.scss b/v2/legacy/src/6-elements/_button.scss
new file mode 100644
index 0000000000..96519b529b
--- /dev/null
+++ b/v2/legacy/src/6-elements/_button.scss
@@ -0,0 +1,225 @@
+@use '../abstract' as *;
+
+.button {
+ $button-size: pxToRem(40);
+ --p-button-size: var(--button-size, #{$button-size});
+
+ $padding-horizontal: pxToRem(16);
+ --padding-horizontal: #{$padding-horizontal};
+
+ $font-size: pxToRem(14);
+ --p-font-size: #{$font-size};
+
+ /* Light Theme */
+ --p-text-color: var(--p-text-color-default);
+ --p-button-color: var(--p-button-color-default);
+ --p-border-color: var(--p-border-color-default);
+
+ --p-text-color-default: var(--color-neutral-5);
+ --p-button-color-default: var(--color-primary-200);
+ --p-border-color-default: var(--color-primary-300);
+
+ --p-text-color-hover: var(--p-text-color-default);
+ --p-button-color-hover: var(--color-primary-100);
+ --p-border-color-hover: var(--p-border-color-default);
+
+ --p-text-color-focus: var(--p-text-color-default);
+ --p-button-color-focus: var(--color-primary-200);
+ --p-border-color-focus: var(--color-primary-200);
+
+ --p-text-color-active: var(--p-text-color-default);
+ --p-button-color-active: var(--color-primary-300);
+ --p-border-color-active: var(--color-primary-300);
+
+ --p-text-color-disabled: var(--color-neutral-20);
+ --p-button-color-disabled: var(--color-neutral-10);
+ --p-border-color-disabled: var(--color-neutral-10);
+
+ /* End Light theme variables */
+
+ @include trim();
+ display:flex; gap:pxToRem(8); align-items:center; inline-size:fit-content; block-size:var(--p-button-size);
+ padding-inline:var(--padding-horizontal); cursor:pointer; font-size:var(--p-font-size); font-weight:600;
+ color:hsl(var(--p-text-color)); background-color:hsl(var(--p-button-color)); text-align:center;
+ border:solid pxToRem(1) hsl(var(--p-border-color)); border-radius:var(--border-radius-xsmall); flex-shrink:0;
+ -webkit-user-select:none; user-select:none;
+
+ [class*="icon"] {
+ line-height: 1;
+ &::before { vertical-align:middle; }
+ }
+
+ &.is-small {
+ $button-size: pxToRem(32);
+ --p-button-size: var(--button-size, #{$button-size});
+ }
+ &.is-big {
+ $font-size: pxToRem(16);
+ --p-font-size: #{$font-size};
+
+ $button-size:pxToRem(48); --p-button-size:#{$button-size};
+ $padding-horizontal:pxToRem(20); --padding-horizontal: #{$padding-horizontal};
+ }
+ &.is-only-icon { aspect-ratio:1 / 1; padding:0; justify-content:center; align-items:center; border-radius:var(--border-radius-circular); }
+ &.is-full-width { inline-size:100%; justify-content:center; }
+ &.is-full-width-mobile { @media #{$break1} {inline-size:100%; justify-content:center; } }
+ &.is-full-width-in-stack-mobile { @media #{$break1} { flex-grow:1; justify-content:center; } }
+ /* default - PRIMARY */
+ &:is(:hover) {
+ &:where(:not(#{$disabled})) {
+ --p-text-color: var(--p-text-color-hover);
+ --p-button-color: var(--p-button-color-hover);
+ --p-border-color: var(--p-border-color-hover);
+ }
+ }
+ &:is(:focus-visible) {
+ &:where(:not(#{$disabled})) {
+ --p-text-color: var(--p-text-color-focus);
+ --p-button-color: var(--p-button-color-focus);
+ --p-border-color: var(--p-border-color-focus);
+ }
+ }
+ &:is(:active) {
+ &:where(:not(#{$disabled})) {
+ --p-text-color: var(--p-text-color-active);
+ --p-button-color: var(--p-button-color-active);
+ --p-border-color: var(--p-border-color-active);
+ }
+ }
+ &:where(#{$disabled}) {
+ --p-text-color: var(--p-text-color-disabled);
+ --p-button-color: var(--p-button-color-disabled);
+ --p-border-color: var(--p-border-color-disabled);
+ cursor: unset;
+ /* opacity:0.3; filter:grayscale(1); - old styles */
+ }
+ /** DARK MODE **/
+ #{$theme-dark} & {
+ --p-button-color-default: var(--color-primary-200);
+ --p-border-color-default: var(--color-primary-200);
+
+ --p-button-color-hover: var(--color-primary-100);
+ --p-border-color-hover: var(--color-primary-100);
+
+ --p-border-color-focus: var(--color-primary-300);
+
+ --p-border-color-active: var(--color-primary-300);
+
+ --p-text-color-disabled: var(--color-neutral-60);
+ --p-button-color-disabled: var(--color-neutral-80);
+ --p-border-color-disabled: var(--color-neutral-80);
+ }
+ /** end main button */
+
+ /* special color */
+ &.is-github {
+ --p-text-color-default: var(--color-neutral-0);
+ --p-button-color-default: var(--color-neutral-80);
+ --p-border-color-default: var(--color-neutral-80);
+
+ --p-text-color-hover: var(--p-text-color-default);
+ --p-button-color-hover: var(--p-button-color-default);
+ --p-border-color-hover: var(--p-border-color-default);
+
+ --p-text-color-focus: var(--p-text-color-default);
+ --p-button-color-focus: var(--p-button-color-default);
+ --p-border-color-focus: var(--p-border-color-default);
+
+ --p-text-color-active: var(--p-text-color-default);
+ --p-button-color-active: var(--p-button-color-default);
+ --p-border-color-active: var(--p-border-color-default);
+ }
+
+ &.is-secondary {
+ --p-text-color-default: var(--color-neutral-60);
+ --p-button-color-default: var(--color-neutral-5);
+ --p-border-color-default: var(--color-neutral-15);
+
+ --p-text-color-hover: var(--p-text-color-default);
+ --p-button-color-hover: var(--color-neutral-10);
+ --p-border-color-hover: var(--p-border-color-default);
+
+ --p-text-color-focus: var(--p-text-color-default);
+ --p-button-color-focus: var(--p-button-color-default);
+ --p-border-color-focus: var(--transparent);
+
+ --p-text-color-active: var(--color-neutral-90);
+ --p-button-color-active: var(--color-neutral-15);
+ --p-border-color-active: var(--color-neutral-15);
+
+ --p-text-color-disabled: var(--color-neutral-20);
+ --p-button-color-disabled: var(--p-button-color-default);
+ --p-border-color-disabled: var(--color-neutral-15);
+
+
+ /** DARK MODE **/
+ #{$theme-dark} & {
+ --p-text-color-default: var(--color-neutral-5);
+ --p-button-color-default: var(--color-neutral-90);
+ --p-border-color-default: var(--color-neutral-80);
+
+ --p-text-color-hover: var(--p-text-color-default);
+ --p-button-color-hover: var(--transparent);
+ --p-border-color-hover: var(--color-neutral-70);
+
+ --p-text-color-focus: var(--p-text-color-default);
+ --p-button-color-focus: var(--p-button-color-default);
+ --p-border-color-focus: var(--transparent);
+
+ --p-text-color-active: var(--p-text-color-default);
+ --p-button-color-active: var(--p-button-color-default);
+ --p-border-color-active: var(--color-neutral-60);
+
+ --p-text-color-disabled: var(--color-neutral-60);
+ --p-button-color-disabled: var(--p-button-color-default);
+ --p-border-color-disabled: var(--color-neutral-80);
+ }
+ }
+
+ &.is-text {
+ --p-text-color-default: var(--color-neutral-60);
+ --p-button-color-default: var(--transparent);
+ --p-border-color-default: var(--transparent);
+
+ --p-text-color-hover: var(--color-neutral-70);
+ --p-button-color-hover: var(--p-button-color-default);
+ --p-border-color-hover: var(--p-border-color-default);
+
+ --p-text-color-focus: var(--p-text-color-default);
+ --p-button-color-focus: var(--color-neutral-5);
+ --p-border-color-focus: var(--p-border-color-default);
+
+ --p-text-color-active: var(--color-neutral-90);
+ --p-button-color-active: var(--p-button-color-default);
+ --p-border-color-active: var(--p-border-color-default);
+
+
+ --p-text-color-disabled: var(--color-neutral-20);
+ --p-button-color-disabled: var(--p-button-color-default);
+ --p-border-color-disabled: var(--p-border-color-default);
+
+ /** DARK MODE **/
+ #{$theme-dark} & {
+
+ --p-text-color-default: var(--color-neutral-5);
+ --p-button-color-default: var(--transparent);
+ --p-border-color-default: var(--transparent);
+
+ --p-text-color-hover: var(--color-neutral-20);
+ --p-button-color-hover: var(--p-button-color-default);
+ --p-border-color-hover: var(--p-border-color-default);
+
+ --p-text-color-focus: var(--color-neutral-5);
+ --p-button-color-focus: var(--p-button-color-default);
+ --p-border-color-focus: var(--p-border-color-default);
+
+ --p-text-color-active: var(--p-text-color-default);
+ --p-button-color-active: var(--p-button-color-default);
+ --p-border-color-active: var(--p-border-color-default);
+
+ --p-text-color-disabled: var(--color-neutral-60);
+ --p-button-color-disabled: var(--p-button-color-default);
+ --p-border-color-disabled: var(--p-border-color-default);
+ }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_card.scss b/v2/legacy/src/6-elements/_card.scss
new file mode 100644
index 0000000000..c28dc2fdc6
--- /dev/null
+++ b/v2/legacy/src/6-elements/_card.scss
@@ -0,0 +1,98 @@
+@use '../abstract' as *;
+.card {
+ --p-card-bg-color: var(--p-card-bg-color-default);
+ --p-card-bg-color-default: var(--card-bg-color , var(--color-neutral-0));
+ --p-card-bg-color-hover: var(--color-neutral-5);
+
+ --p-card-border-color: var(--p-card-border-color-default);
+ --p-card-border-color-default: var(--color-border);
+ --p-card-border-color-hover: var(--color-neutral-15);
+
+ --p-card-border-radius: var(--card-border-radius, var(--border-radius-medium));
+
+ $padding: pxToRem(32);
+ --p-card-padding: var(--card-padding, #{$padding});
+
+ position:relative; display:block;
+ transition: var(--transition) background-color;
+ background: hsl(var(--p-card-bg-color));
+ border-radius: var(--p-card-border-radius);
+ box-shadow: var(--shadow-small);
+ padding: var(--p-card-padding);
+ border: solid pxToRem(1) hsl(var(--p-card-border-color));
+
+ &-header {
+ min-block-size:pxToRem(210); padding:var(--p-card-padding); margin:calc(var(--p-card-padding) * -1);
+ border-start-start-radius:inherit; border-start-end-radius:inherit; overflow:hidden;
+ background:linear-gradient(271.77deg, #FCFCFF 0%, #FDFDFF 82.19%, #FFFFFF 99.87%);
+ #{$theme-dark} & { background:linear-gradient(96.46deg, #1B1B28 8.56%, #282A3B 115.77%); }
+
+ &-image { margin:calc(var(--p-card-padding) * -1); max-block-size:pxToRem(178); margin-inline-end:0; }
+ }
+ &:focus-visible {
+ /* focus styles */
+ box-shadow: var(--focus-box-shadow);
+ }
+ &-separator {
+ padding-block-start: var(--p-card-padding);
+ padding-inline: var(--p-card-padding);
+ margin-block-start: var(--p-card-padding);
+ margin-inline: calc(var(--p-card-padding) * -1);
+ border-block-start: solid pxToRem(1) hsl(var(--p-card-border-color));
+ }
+
+ /* upload state */
+ &:where(a, button) {
+ &:hover {
+ --p-card-bg-color: var(--p-card-bg-color-hover);
+ --p-card-border-color: var(--p-card-border-color-hover);
+ }
+ }
+ &.is-border-dashed { border:dashed pxToRem(1) hsl(var(--p-card-border-color)); }
+ //&.is-hover-with-file { --p-card-bg-color: var(--p-card-bg-color-hover-file); }
+
+ &.is-no-shadow { box-shadow:none; }
+
+ &.is-allow-focus {
+ cursor: pointer;
+ &:hover {
+ --p-card-bg-color: var(--p-card-bg-color-hover);
+ --p-card-border-color: var(--p-card-border-color-hover);
+ }
+ &:has(:focus-visible) { box-shadow:var(--focus-box-shadow); }
+ }
+
+ &.is-danger {
+ &::before {
+ position:absolute; inset-inline-start:pxToRem(12); inset-block:pxToRem(18);
+ content:""; display:block; inline-size:pxToRem(2); border-radius:pxToRem(1);
+ background-color:hsl(var(--color-text-danger));
+ }
+ [class*="heading-level"] { color:hsl(var(--color-text-danger)); }
+ .card-separator { padding-inline:0; margin-inline:0; }
+ }
+
+ #{$theme-dark} & {
+ --p-card-bg-color-default: var(--color-neutral-90);
+ --p-card-bg-color-hover: var(--color-neutral-85);
+ --p-card-border-color-hover: var(--color-neutral-80);
+ }
+
+ @media #{$break1} {
+ $padding: pxToRem(16);
+ --p-card-padding: var(--card-padding-mobile, #{$padding});
+ }
+}
+
+.separator-with-text {
+ --p-text-color: var(--color-neutral-20);
+ display:flex; gap:pxToRem(16); align-items:center; margin-block:pxToRem(48);
+ color:hsl(var(--p-text-color)); font-size:var(--font-size-00); line-height:1;
+
+ &::before,
+ &::after { content:""; display:block; flex:1; block-size:0; border-block-start:solid pxToRem(1) hsl(var(--color-border)); }
+
+ #{$theme-dark} & {
+ --p-text-color: var(--color-neutral-50);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_container.scss b/v2/legacy/src/6-elements/_container.scss
new file mode 100644
index 0000000000..0c16b27006
--- /dev/null
+++ b/v2/legacy/src/6-elements/_container.scss
@@ -0,0 +1,21 @@
+@use '../abstract' as *;
+.container {
+ --p-container-max-size: var(--container-max-size, var(--container-size-xxl));
+
+ $padding-block:pxToRem(20);
+ --p-container-padding-block: var(--container-padding-block, #{$padding-block});
+
+ inline-size: 100%;
+ padding-inline: var(--p-container-padding-inline);
+ padding-block: var(--p-container-padding-block);
+ margin-inline: auto;
+ max-inline-size: var(--p-container-max-size);
+ &.is-size-xl { --p-container-max-size:var(--container-size-xl); }
+ @media #{$break1} { $padding-inline:pxToRem(16); --p-container-padding-inline:#{$padding-inline}; }
+ @media #{$break2} { $padding-inline:pxToRem(30); --p-container-padding-inline:#{$padding-inline}; }
+ @media #{$break3open} { $padding-inline:pxToRem(50); --p-container-padding-inline:#{$padding-inline}; }
+}
+
+:where(.common-section) {
+ &:where(:nth-child(n + 2)) { margin-block-start:pxToRem(24); }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_divider.scss b/v2/legacy/src/6-elements/_divider.scss
new file mode 100644
index 0000000000..d8fd164e55
--- /dev/null
+++ b/v2/legacy/src/6-elements/_divider.scss
@@ -0,0 +1,7 @@
+@use "../abstract" as *;
+
+.divider {
+ height: 1px;
+ width: calc(100% + 2rem);
+ background-color: hsl(var(--color-border));
+}
diff --git a/v2/legacy/src/6-elements/_image-item.scss b/v2/legacy/src/6-elements/_image-item.scss
new file mode 100644
index 0000000000..fc8d4acdfc
--- /dev/null
+++ b/v2/legacy/src/6-elements/_image-item.scss
@@ -0,0 +1,31 @@
+@use '../abstract' as *;
+/* TODO: check if can be merged with Avatar */
+.image-item {
+ --p-image-item-bg-color: var(--color-neutral-5);
+ --p-image-item-border-color: var(--color-neutral-10);
+
+ $size-item: pxToRem(40);
+ --p-image-item-full-size: #{$size-item};
+
+ $size-item-image: pxToRem(20);
+ --p-image-item-size: #{$size-item-image};
+
+ display:grid; place-content:center;
+ flex-shrink:0; /* in case it a child of flexbox */
+ inline-size:var(--p-image-item-full-size); block-size:var(--p-image-item-full-size);
+ background-color:hsl(var(--p-image-item-bg-color)); border:solid pxToRem(1) hsl(var(--p-image-item-border-color));
+ border-radius:var(--border-radius-circular);
+ img { inline-size:var(--p-image-item-size) ; block-size:var(--p-image-item-size); }
+
+ &.is-smaller {
+ $size-item: pxToRem(32);
+ --p-image-item-full-size: #{$size-item};
+
+ $size-item-image: pxToRem(15);
+ --p-image-item-size: #{$size-item-image};
+ }
+ #{$theme-dark} & {
+ --p-image-item-bg-color: var(--color-neutral-85);
+ --p-image-item-border-color: var(--color-neutral-80);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_index.scss b/v2/legacy/src/6-elements/_index.scss
new file mode 100644
index 0000000000..5d6bd06733
--- /dev/null
+++ b/v2/legacy/src/6-elements/_index.scss
@@ -0,0 +1,17 @@
+@forward "link";
+@forward "button";
+@forward "kbd";
+@forward "image-item";
+// @forward "form";
+@forward "tooltip";
+@forward "tag";
+@forward "inline-tag";
+@forward "logo";
+@forward "avatar";
+@forward "card";
+@forward "table";
+@forward "container";
+@forward "box";
+@forward "loader";
+@forward "inline-code";
+@forward "divider";
diff --git a/v2/legacy/src/6-elements/_inline-code.scss b/v2/legacy/src/6-elements/_inline-code.scss
new file mode 100644
index 0000000000..3f1b9156fe
--- /dev/null
+++ b/v2/legacy/src/6-elements/_inline-code.scss
@@ -0,0 +1,16 @@
+@use '../abstract' as *;
+.inline-code {
+ --p-bg-color-inline-code: var(--color-neutral-10);
+ --p-text-color-inline-code: var(--color-neutral-60);
+
+ background-color: hsl(var(--p-bg-color-inline-code));
+ color: hsl(var(--p-text-color-inline-code));
+ border-radius: var(--border-radius-xsmall);
+
+ padding: pxToRem(4);
+
+ #{$theme-dark} & {
+ --p-bg-color-inline-code: var(--color-neutral-100);
+ --p-text-color-inline-code: var(--color-neutral-15);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_inline-tag.scss b/v2/legacy/src/6-elements/_inline-tag.scss
new file mode 100644
index 0000000000..ecdd294711
--- /dev/null
+++ b/v2/legacy/src/6-elements/_inline-tag.scss
@@ -0,0 +1,45 @@
+@use '../abstract' as *;
+.inline-tag {
+ $tag-height: pxToRem(22);
+ --p-inline-tag-height: #{$tag-height};
+
+ $padding-inline: pxToRem(6);
+ --p-inline-tag-padding-inline: #{$padding-inline};
+
+ --p-inline-tag-text-color: var(--inline-tag-text-color, var(--p-inline-tag-text-color-default));
+ --p-inline-tag-bg-color: var(--inline-tag-bg-color, var(--p-inline-tag-bg-color-default));
+
+ --p-inline-tag-text-color-default: var(--p-text-color, var(--color-neutral-60));
+ --p-inline-tag-bg-color-default: var(--color-neutral-10);
+
+ --p-inline-tag-text-color-disabled: var(--color-neutral-15);
+
+
+ --p-inline-tag-text-color-info: var(--color-neutral-0);
+ --p-inline-tag-bg-color-info: var(--color-information-100);
+
+ display:inline-grid; place-content:center; padding-inline:var(--p-inline-tag-padding-inline);
+
+ background-color: hsl(var(--p-inline-tag-bg-color));
+ color: hsl(var(--p-inline-tag-text-color));
+ border-radius: var(--border-radius-xsmall);
+
+ flex-shrink:0; font-weight:600;
+
+ &.is-info {
+ --p-inline-tag-text-color: var(--p-inline-tag-text-color-info);
+ --p-inline-tag-bg-color: var(--p-inline-tag-bg-color-info);
+ }
+
+ &:where(#{$disabled}) {
+ --p-inline-tag-text-color: var(--p-inline-tag-text-color-disabled);
+ }
+
+ /* Theme Dark */
+ #{$theme-dark} & {
+ --p-inline-tag-text-color-default: var(--p-text-color, var(--color-neutral-20));
+ --p-inline-tag-bg-color-default: var(--color-neutral-80);
+
+ --p-inline-tag-text-color-disabled: var(--color-neutral-60);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_kbd.scss b/v2/legacy/src/6-elements/_kbd.scss
new file mode 100644
index 0000000000..5a2adb2ac7
--- /dev/null
+++ b/v2/legacy/src/6-elements/_kbd.scss
@@ -0,0 +1,22 @@
+@use '../abstract' as *;
+
+.kbd {
+ --p-kbd-text-color: var(--color-neutral-60);
+ --p-kbd-bg-color: var(--color-neutral-5);
+ --p-kbd-border-color: var(--color-neutral-15);
+
+ color: hsl(var(--p-kbd-text-color));
+ background-color: hsl(var(--p-kbd-bg-color));
+ border: solid pxToRem(1) hsl(var(--p-kbd-border-color));
+
+ display:inline-flex; justify-content:center; align-items:center;
+ min-inline-size:pxToRem(24); block-size:pxToRem(24);
+ border-radius:var(--border-radius-xsmall); flex-shrink:0;
+ -webkit-user-select:none; user-select:none;
+
+ #{$theme-dark} & {
+ --p-kbd-text-color: var(--color-neutral-5);
+ --p-kbd-bg-color: var(--color-neutral-90);
+ --p-kbd-border-color: var(--color-neutral-80);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_link.scss b/v2/legacy/src/6-elements/_link.scss
new file mode 100644
index 0000000000..cbf2d3c7f0
--- /dev/null
+++ b/v2/legacy/src/6-elements/_link.scss
@@ -0,0 +1,9 @@
+@use '../abstract' as *;
+.link {
+ cursor:pointer; text-decoration:underline;
+ > * { vertical-align:middle; }
+ &.is-5px-offset { text-underline-offset:pxToRem(5); }
+ &.is-add-sep {
+ > *:nth-child(n + 2)::before { content:"|"; margin-inline:pxToRem(4); font-size:pxToRem(10); }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_loader.scss b/v2/legacy/src/6-elements/_loader.scss
new file mode 100644
index 0000000000..db9e2f01c8
--- /dev/null
+++ b/v2/legacy/src/6-elements/_loader.scss
@@ -0,0 +1,58 @@
+@use '../abstract' as *;
+.loader {
+ --loading: 0%;
+
+ --p-loader-border-base-color: var(--color-neutral-10);
+ --p-loader-base-full-color: var(--color-neutral-20);
+
+ --p-loader-size: var(--loader-size, #{pxToRem(24)});
+ --p-loader-border-size: var(--loader-border-size, #{pxToRem(2.5)});
+
+ /* loading inner bg color */
+ --p-loader-bg-color: var(--loader-bg-color-default, var(--p-loader-bg-color-default));
+ --p-loader-bg-color-default: var(--loader-bg-color-light, var(--p-loader-bg-color-light));
+ --p-loader-bg-color-light: var(--color-neutral-5);
+ --p-loader-bg-color-dark: var(--color-neutral-200);
+
+ animation: rotate 1s infinite linear; /* global animation */
+
+ position:relative;
+ inline-size:var(--p-loader-size); block-size:var(--p-loader-size);
+ border:solid var(--p-loader-border-size) hsl(var(--p-loader-border-base-color));
+ border-radius: var(--border-radius-circular);
+ border-block-start-color:hsl(var(--p-loader-base-full-color)); border-inline-start-color:hsl(var(--p-loader-base-full-color));
+ svg { inline-size:100%; block-size:100%; }
+ &.is-loading {
+ animation:none;
+ border-block-start-color: hsl(var(--p-loader-border-base-color));
+ border-inline-start-color: hsl(var(--p-loader-border-base-color));
+ &::before {
+ content:""; display:flex;
+ position:absolute; inset:calc(var(--p-loader-border-size) * -1);
+ inline-size:calc(100% + var(--p-loader-border-size)*2);
+ block-size:calc(100% + var(--p-loader-border-size)*2);
+ border-radius:var(--border-radius-circular);
+ background:conic-gradient(hsl(var(--p-loader-base-full-color)) 0deg, hsl(var(--p-loader-base-full-color)) var(--loading), transparent var(--loading), transparent 360deg);
+ }
+ &::after {
+ content:""; display:block;
+ position:absolute; inset:0;
+ inline-size:100%; block-size:100%;
+ border-radius:var(--border-radius-circular);
+ background: hsl(var(--p-loader-bg-color));
+ }
+ }
+ &.is-transparent { --p-loader-base-full-color:var(--transparent)!important; }
+
+ &.is-small {
+ --p-loader-size: var(--loader-size, #{pxToRem(16)});
+ --p-loader-border-size: var(--loader-border-size, #{pxToRem(1.5)});
+ }
+
+ /* Theme Dark */
+ #{$theme-dark} & {
+ --p-loader-border-base-color: var(--color-neutral-20);
+ --p-loader-base-full-color: var(--color-neutral-100);
+ --p-loader-bg-color-default: var(--p-loader-bg-color-dark);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_logo.scss b/v2/legacy/src/6-elements/_logo.scss
new file mode 100644
index 0000000000..cbb61972ac
--- /dev/null
+++ b/v2/legacy/src/6-elements/_logo.scss
@@ -0,0 +1,7 @@
+@use '../abstract' as *;
+
+.logo {
+ flex-shrink: 0; /* if in container of flex can't shrink */
+ display: block; /* if on link element */
+ img { display:block; }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_table.scss b/v2/legacy/src/6-elements/_table.scss
new file mode 100644
index 0000000000..7e8d2788e8
--- /dev/null
+++ b/v2/legacy/src/6-elements/_table.scss
@@ -0,0 +1,166 @@
+@use '../abstract' as *;
+.table {
+ /* global variable */
+ --heading-text-color: var(--color-neutral-60);
+
+ /* local variable */
+ --p-table-bg-color: var(--color-neutral-0);
+ --p-table-bg-color-focus: var(--color-neutral-5);
+ //--p-table-bg-even-row-color: var(--color-neutral-0);
+ --p-table-border-color: var(--color-neutral-10);
+ --p-tbody-color-text: var(--color-neutral-60);
+
+ --p-border-radius: var(--border-radius-medium);
+
+ display: table;
+ table-layout: fixed;
+ border-collapse: collapse;
+ background-color: hsl(var(--p-table-bg-color));
+ border-radius: var(--p-border-radius);
+ box-shadow: 0 0 0 pxToRem(1) hsl(var(--color-border)), var(--shadow-small);
+ inline-size: 100%;
+ line-height: 1.2;
+
+ &-with-scroll {
+ @include tableScroll; overflow:hidden;
+ border-radius:var(--border-radius-medium);
+
+ .table {
+ border-end-start-radius:0; border-end-end-radius:0;
+ &-row {
+ &:where(:last-child) .table-col{ border-radius:unset;}
+ }
+ }
+ }
+ &-wrapper { overflow:auto; }
+ :where(.table-thead-col, .table-col) {
+ display:table-cell; box-sizing:content-box;
+ padding-block:pxToRem(24); padding-inline:pxToRem(16); vertical-align:middle;
+ @media #{$break1} { padding-inline:pxToRem(12); }
+ //> * {vertical-align:middle;} //make issue when there is text unwrap with wrap
+ &:not(:first-child) { @include trim(); display:table-cell; }
+ :where(.image) {
+ $size: pxToRem(30);
+ --size: #{$size};
+ flex-shrink: 0;
+ img { vertical-align:bottom; }
+ }
+ }
+ :where(.table-thead-col) {
+ padding-block:pxToRem(16);
+ }
+ :where(.table-col) {
+ /* for
list tables */
+ --p-col-width: auto;
+ inline-size: calc(var(--p-col-width) / 16 * 1rem);
+ /** **/
+ padding-block:pxToRem(16); block-size:pxToRem(40);
+ }
+ &-thead {
+ display: table-header-group;
+ border-block-end: solid pxToRem(1) hsl(var(--p-table-border-color));
+ .table-row { min-block-size:pxToRem(54); }
+ &-col {
+ --p-col-width: auto;
+ inline-size: calc(var(--p-col-width) / 16 * 1rem);
+ min-inline-size: calc(var(--p-col-width) / 16 * 1rem);
+ text-align: unset;
+ }
+ }
+ &-tbody {
+ display: table-row-group;
+ color: hsl(var(--p-tbody-color-text));
+ }
+ &-tfoot {
+ display: table-footer-group;
+ }
+ &-row {
+ display: table-row;
+ min-block-size: pxToRem(88);
+ &:where(a, [role*="button"]) {
+ cursor:pointer;
+ &:where(:hover, :focus) {
+ background-color:hsl(var(--p-table-bg-color-focus));
+ :is(.table-col):first-child { background-color:hsl(var(--p-table-bg-color-focus))!important; }
+ }
+ }
+ &:where(:not(:first-child)) { border-block-start:solid pxToRem(1) hsl(var(--p-table-border-color));}
+ &:where(:last-child) {
+ :where(.table-col:first-child) { border-end-start-radius:var(--p-border-radius); }
+ :where(.table-col:last-child) { border-end-end-radius:var(--p-border-radius); }
+ }
+ }
+ .button.is-text {
+ --p-text-color-default: var(--color-neutral-20);
+ }
+
+ &.is-table-layout-auto { table-layout:auto; }
+ &.is-remove-outer-styles {
+ border-width:0; box-shadow:none; outline:none; border-radius:initial; background-color:transparent;
+ :where(.table-thead-col) {
+ padding-inline:0;
+ &:where(:not(:last-child)) { padding-inline-end:pxToRem(8); }
+ }
+ :where(.table-col) {
+ padding-inline:0; padding-block:pxToRem(4);
+ &:where(:not(:last-child)) { padding-inline-end:pxToRem(8); }
+ }
+ :where(.table-row:last-child) { border-block-end:solid pxToRem(1) hsl(var(--p-table-border-color)); }
+ }
+ &.is-sticky-scroll {
+ table-layout: revert;
+ @media #{$break3open} {
+ :where(.table-thead-col, .table-col):first-child {
+ position: sticky;
+ inset-inline-start: 0;
+ background-color: hsl(var(--p-table-bg-color));
+ box-shadow: var(--shadow-large);
+ > .text { @include trim; box-sizing:border-box; max-inline-size:pxToRem(150); }
+ }
+ :where(.table-thead-col, .table-col):first-child {
+ z-index: 2;
+ &::before {
+ content: "";
+ position:absolute; inset-block:0; inset-inline-start:100%;
+ display:block; inline-size:pxToRem(20);
+ background: linear-gradient(to right, rgb(0 0 0 / 0.05), rgb(0 0 0 / 0) );
+ }
+ }
+ }
+ }
+ &.is-table-row-medium-size {
+ :where(.table-col) {
+ padding-block:pxToRem(8);
+ }
+ }
+
+ #{$theme-dark} & {
+ /* global variable */
+ --heading-text-color: var(--color-neutral-20);
+
+ /* local variable */
+ --p-table-bg-color: var(--color-neutral-90);
+ --p-table-bg-color-focus: var(--color-neutral-100);
+ --p-table-border-color: var(--color-neutral-85);
+ --p-tbody-color-text: var(--color-neutral-15);
+
+ }
+ @media #{$break1}, #{$break2} {
+ &.is-vertical{
+ display: block;
+ .table {
+ &-thead { display:none; }
+ &-tbody { display:block; }
+ &-row { display: flex; flex-direction:column; }
+ &-col {
+ &:where([data-title])::before {
+ content: attr(data-title) ": ";
+ font-size: pxToRem(16);
+ font-weight: 400;
+ }
+ }
+ }
+ }
+ }
+ @media #{$break3open} { }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_tag.scss b/v2/legacy/src/6-elements/_tag.scss
new file mode 100644
index 0000000000..6c4fd7efc8
--- /dev/null
+++ b/v2/legacy/src/6-elements/_tag.scss
@@ -0,0 +1,128 @@
+@use '../abstract' as *;
+.tag {
+ $tag-height: pxToRem(32);
+ --p-tag-height: #{$tag-height};
+
+ $tag-content-height: pxToRem(30);
+ --p-tag-content-height: #{$tag-content-height};
+
+ $padding-inline: pxToRem(12);
+ --p-tag-padding-inline: #{$padding-inline};
+
+ /* Light Theme */
+ --p-tag-text-color: var(--tag-text-color, var(--p-tag-text-color-default));
+ --p-tag-bg-color: var(--tag-bg-color, var(--p-tag-bg-color-default));
+ --p-tag-border-color: var(--tag-border-color , var(--p-tag-border-color-default));
+
+ --p-tag-text-color-default: var(--color-neutral-70);
+ --p-tag-bg-color-default: var(--color-neutral-10);
+ --p-tag-border-color-default:var(--p-tag-bg-color-default);
+
+ --p-tag-text-color-success: var(--color-success-120);
+ --p-tag-bg-color-success: var(--color-success-10);
+ --p-tag-border-color-success:var(--p-tag-bg-color-success);
+
+ --p-tag-text-color-warning: var(--color-warning-120);
+ --p-tag-bg-color-warning: var(--color-warning-10);
+ --p-tag-border-color-warning:var(--p-tag-bg-color-warning);
+
+ --p-tag-text-color-danger: var(--color-danger-120);
+ --p-tag-bg-color-danger: var(--color-danger-10);
+ --p-tag-border-color-danger: var(--p-tag-bg-color-danger);
+
+ --p-tag-text-color-info: var(--color-information-120);
+ --p-tag-bg-color-info: var(--color-information-10);
+ --p-tag-border-color-info: var(--p-tag-bg-color-info);
+
+ /* clickable states */
+ --p-tag-text-color-clickable:var(--color-neutral-60);
+ --p-tag-bg-color-clickable: var(--color-neutral-5);
+ --p-tag-border-color-clickable:var(--color-neutral-10);
+
+ --p-tag-text-color-hover: var(--color-neutral-70);
+ --p-tag-bg-color-hover: var(--color-neutral-10);
+ --p-tag-border-color-hover: var(--p-tag-bg-color-hover);
+
+ --p-tag-text-color-active: var(--color-neutral-70);
+ --p-tag-bg-color-active: var(--color-neutral-15);
+ --p-tag-border-color-active: var(--p-tag-bg-color-active);
+
+ --p-tag-text-color-selected: var(--p-tag-text-color-clickable);
+ --p-tag-bg-color-selected: var(--p-tag-bg-color-clickable);
+ --p-tag-border-color-selected: var(--color-neutral-50);
+
+ --p-tag-text-color-disabled: var(--color-neutral-20);
+ --p-tag-bg-color-disabled: var(--color-neutral-5);
+ --p-tag-border-color-disabled: var(--color-neutral-10);
+ /* End Light theme variables */
+
+ color: hsl(var(--p-tag-text-color));
+ background-color: hsl(var(--p-tag-bg-color));
+ border: solid pxToRem(1) hsl(var(--p-tag-border-color));
+
+ display:inline-flex; gap:pxToRem(4); justify-self:start; padding-inline:var(--p-tag-padding-inline);
+ block-size:var(--p-tag-height); line-height:var(--p-tag-content-height); border-radius:calc(var(--p-tag-height) / 2);
+ font-size:var(--font-size-0); font-weight:400; white-space:nowrap; -webkit-user-select:none; user-select:none;
+ [class*="icon"] { align-self:center; font-size: inherit; }
+
+ &:where(button, a) {
+ --p-tag-text-color: var(--p-tag-text-color-clickable);
+ --p-tag-bg-color: var(--p-tag-bg-color-clickable);
+ --p-tag-border-color: var(--p-tag-border-color-clickable);
+ /* is-selected is twice, because border need to keep on hover, ans text + bg color need to be less strong then hover */
+ &:where(.is-selected) { --p-tag-text-color:var(--p-tag-text-color-selected); --p-tag-bg-color: var(--p-tag-bg-color-selected); }
+ &:where(:hover) { --p-tag-text-color:var(--p-tag-text-color-hover); --p-tag-bg-color:var(--p-tag-bg-color-hover); --p-tag-border-color:var(--p-tag-border-color-hover); }
+ &:where(:active) { --p-tag-text-color:var(--p-tag-text-color-active); --p-tag-bg-color: var(--p-tag-bg-color-active); --p-tag-border-color:var(--p-tag-border-color-active); }
+ &:where(.is-selected) { --p-tag-border-color:var(--p-tag-border-color-selected); }
+ &:where(#{$disabled}) { --p-tag-text-color:var(--p-tag-text-color-disabled); --p-tag-bg-color:var(--p-tag-bg-color-disabled); --p-tag-border-color:var(--p-tag-border-color-disabled); }
+
+ /* smartphones, touchscreens */
+ @media (hover: none) and (pointer: coarse) {
+ $tag-height: pxToRem(42);
+ --p-tag-height: #{$tag-height};
+
+ $tag-content-height: pxToRem(40);
+ --p-tag-content-height: #{$tag-content-height};
+ }
+ }
+
+ &.is-success { --p-tag-text-color:var(--p-tag-text-color-success); --p-tag-bg-color:var(--p-tag-bg-color-success); --p-tag-border-color:var(--p-tag-border-color-success); }
+ &.is-warning { --p-tag-text-color:var(--p-tag-text-color-warning); --p-tag-bg-color:var(--p-tag-bg-color-warning); --p-tag-border-color:var(--p-tag-border-color-warning); }
+ &.is-danger { --p-tag-text-color:var(--p-tag-text-color-danger); --p-tag-bg-color:var(--p-tag-bg-color-danger); --p-tag-border-color:var(--p-tag-border-color-danger); }
+ &.is-info { --p-tag-text-color:var(--p-tag-text-color-info); --p-tag-bg-color:var(--p-tag-bg-color-info); --p-tag-border-color:var(--p-tag-border-color-info); }
+
+ /* Theme Dark */
+ #{$theme-dark} & {
+ --p-tag-text-color-default: var(--color-neutral-20);
+ --p-tag-bg-color-default: var(--color-neutral-80);
+
+ --p-tag-text-color-success: var(--color-success-100);
+ --p-tag-bg-color-success: var(--color-success-200);
+
+ --p-tag-text-color-warning: var(--color-warning-100);
+ --p-tag-bg-color-warning: var(--color-warning-200);
+
+ --p-tag-text-color-danger: var(--color-danger-100);
+ --p-tag-bg-color-danger: var(--color-danger-200);
+
+ --p-tag-text-color-info: var(--color-information-100);
+ --p-tag-bg-color-info: var(--color-information-200);
+
+ /* clickable state */
+ --p-tag-text-color-clickable: var(--color-neutral-20);
+ --p-tag-bg-color-clickable: var(--color-neutral-85);
+ --p-tag-border-color-clickable: var(--color-neutral-80);
+
+ --p-tag-text-color-hover: var(--color-neutral-20);
+ --p-tag-bg-color-hover: var(--color-neutral-80);
+ --p-tag-border-color-hover: var(--color-neutral-80);
+
+ --p-tag-text-color-active: var(--color-neutral-20);
+ --p-tag-bg-color-active: var(--color-neutral-100);
+ --p-tag-border-color-active: var(--color-neutral-100);
+
+ --p-tag-text-color-disabled: var(--color-neutral-70);
+ --p-tag-bg-color-disabled: var(--color-neutral-85);
+ --p-tag-border-color-disabled: var(--color-neutral-85);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/_tooltip.scss b/v2/legacy/src/6-elements/_tooltip.scss
new file mode 100644
index 0000000000..a783c3c802
--- /dev/null
+++ b/v2/legacy/src/6-elements/_tooltip.scss
@@ -0,0 +1,39 @@
+@use '../abstract' as *;
+.tooltip {
+ /* Light Theme */
+ --p-tooltip-text-color: var(--color-neutral-10);
+ --p-tooltip--bg-color: var(--color-neutral-60);
+ /* End Light theme variables */
+
+ position:relative; line-height:1;
+ [class*="icon"]::before { vertical-align:middle; }
+ &-popup {
+ display: none;
+ position:absolute; inset-inline-start:0; inset-block-end:calc(100% + 6px);
+ padding-block:pxToRem(4); padding-inline:pxToRem(8); max-inline-size:pxToRem(180); inline-size:max-content;
+ background-color: hsl(var(--p-tooltip--bg-color));
+ font-size:var(--font-size-0); line-height:1.5;
+ color: hsl(var(--p-tooltip-text-color));
+ border-radius: var(--border-radius-small);
+
+ &.is-bottom { inset-block-start:calc(100% + 10px); inset-block-end:auto; }
+ &.is-center { inset-inline-start:50%; transform:translateX(-50%); }
+ &.is-end { inset-inline-start:auto; inset-inline-end:0; }
+
+ //&::before {
+ // position:absolute; inset-block-start:100%; inset-inline-start:pxToRem(25);
+ // content: ""; display:block; inline-size:pxToRem(12); block-size:pxToRem(6);
+ // clip-path: polygon(0% 0%, 100% 0%, 50% 100%);
+ // background-color: hsl(var(--p-bg-color));
+ //}
+ }
+ &:hover, &:focus-visible {
+ .tooltip-popup { display:block; white-space: initial; }
+ }
+
+ /* Theme Dark */
+ #{$theme-dark} & {
+ //--p-bg-color-default: var(--color-neutral-10);
+ //--p-pill-text-color-default: var(--color-neutral-200);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_form.scss b/v2/legacy/src/6-elements/form/_form.scss
new file mode 100644
index 0000000000..2d6b3ce93f
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_form.scss
@@ -0,0 +1,31 @@
+@use '../../abstract' as *;
+.form {
+ display:flex; flex-direction:column;
+ &-header {
+ display: grid;
+ gap: pxToRem(16);
+ padding-block-end: pxToRem(32);
+ border-block-end: solid pxToRem(1) hsl(var(--color-border));
+ margin-block-end: pxToRem(32);
+ :where([class*=heading-]) { margin-block:0; }
+ }
+ &-content {
+ display:flex; flex-direction:column; gap:pxToRem(16); padding-block-end:pxToRem(32);
+ }
+ &-footer {
+ padding-block:pxToRem(32); margin-block-start:pxToRem(32);
+ border-block-start:solid pxToRem(1) hsl(var(--color-border));
+ }
+ &-list {
+ $gap: pxToRem(24);
+ --p-form-list-gap:var(--form-list-gap, #{$gap});
+ display:grid; gap:var(--p-form-list-gap);
+
+ &.is-multiple { grid-template-columns: repeat(auto-fit, minmax(pxToRem(180), 1fr)); }
+ }
+ &-item {
+ &.is-multiple { display:flex; gap:pxToRem(8); }
+ &.is-span-2 { grid-column:span 2;}
+ &-part { }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_helper.scss b/v2/legacy/src/6-elements/form/_helper.scss
new file mode 100644
index 0000000000..ae48e38582
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_helper.scss
@@ -0,0 +1,16 @@
+@use '../../abstract' as *;
+.helper {
+ --p-text-color: var(--color-neutral-50);
+ display:flex;
+ font-size:var(--font-size-0); line-height:2; color:hsl(var(--p-text-color)); font-weight:400;
+
+ [class*="icon"] {
+ line-height:1.3;
+ &::before { vertical-align:pxToRem(-3); }
+ &:first-child { margin-inline-end:pxToRem(4); }
+ }
+
+ #{$theme-dark} &{
+ --p-text-color: var(--color-neutral-20);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_index.scss b/v2/legacy/src/6-elements/form/_index.scss
new file mode 100644
index 0000000000..a6dcc30e5c
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_index.scss
@@ -0,0 +1,14 @@
+@forward "label";
+@forward "optional";
+@forward "helper";
+@forward "placeholder";
+@forward "text-inputs";
+@forward "password-meter";
+@forward "radio-and-checkbox";
+@forward "switch";
+@forward "notification";
+@forward "pulse-notification";
+@forward "interactive-text-output";
+
+/* form layout */
+@forward "form";
diff --git a/v2/legacy/src/6-elements/form/_interactive-text-output.scss b/v2/legacy/src/6-elements/form/_interactive-text-output.scss
new file mode 100644
index 0000000000..4cb173e1f0
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_interactive-text-output.scss
@@ -0,0 +1,42 @@
+@use '../../abstract' as *;
+.interactive-text-output {
+
+ --p-text-color: var(--color-neutral-60);
+ --p-background-color: var(--color-neutral-10);
+
+ position:relative;
+ display:flex; gap:pxToRem(12); max-inline-size:100%; min-block-size:pxToRem(28);
+ padding-inline:pxToRem(8); padding-block:pxToRem(4);
+ inline-size: fit-content; min-inline-size:pxToRem(146);
+ border-radius: var(--border-radius-xsmall);
+ color:hsl(var(--p-text-color)); line-height:1;
+
+ .text { @include break-word(); flex:1; align-self:center; font-family:var(--code-font); }
+
+ &:is(:hover, :has(:focus) ) {
+ background-color: hsl(var(--p-background-color));
+ .interactive-text-output-button { opacity:1; }
+ }
+ /* wrapper for button/s */
+ &-buttons { display:flex; gap:pxToRem(8); align-self:start; }
+
+ &-button {
+ border-radius: var(--border-radius-circular);
+ &.is-hidden { opacity:0; }
+ }
+
+ &.is-buttons-on-top {
+ background-color:hsl(var(--p-background-color));
+ .interactive-text-output-buttons {
+ position:absolute; inset-inline-end:pxToRem(8); inset-block-start:pxToRem(4);
+ filter: drop-shadow(0px 0px pxToRem(4) hsl(var(--p-background-color)))
+ drop-shadow(0px 0px pxToRem(6) hsl(var(--p-background-color)))
+ drop-shadow(0px 0px pxToRem(8) hsl(var(--p-background-color)));
+ }
+ }
+
+ #{$theme-dark} & {
+ --p-text-color: var(--color-neutral-20);
+ --p-background-color: var(--color-neutral-80);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_label.scss b/v2/legacy/src/6-elements/form/_label.scss
new file mode 100644
index 0000000000..e4dfa0f4a0
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_label.scss
@@ -0,0 +1,17 @@
+@use '../../abstract' as *;
+.label {
+ --p-label-text-color: var(--color-neutral-80);
+
+ color: hsl(var(--p-label-text-color));
+ display: inline-block;
+ cursor: pointer;
+ line-height: 1.5;
+ margin-bottom: pxToRem(4);
+ font-size: var(--font-size-0);
+
+ &:where(.is-required)::after { content:"*"; color:hsl(var(--color-danger-100)); }
+
+ #{$theme-dark} & {
+ --p-label-text-color: var(--color-neutral-5);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_notification.scss b/v2/legacy/src/6-elements/form/_notification.scss
new file mode 100644
index 0000000000..3ed9df7600
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_notification.scss
@@ -0,0 +1,7 @@
+@use '../../abstract' as *;
+.notification {
+ inline-size:pxToRem(6); block-size:pxToRem(6); box-sizing:content-box;
+ background-color:hsl(var(--color-primary-100));
+ border:solid pxToRem(2) hsl(var(--p-body-bg-color));
+ border-radius:var(--border-radius-circular);
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_optional.scss b/v2/legacy/src/6-elements/form/_optional.scss
new file mode 100644
index 0000000000..6327f81570
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_optional.scss
@@ -0,0 +1,5 @@
+@use "../../abstract" as *;
+.optional {
+ color: hsl(var(--color-neutral-50));
+ font-size: pxToRem(14);
+}
diff --git a/v2/legacy/src/6-elements/form/_password-meter.scss b/v2/legacy/src/6-elements/form/_password-meter.scss
new file mode 100644
index 0000000000..242b2c9cba
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_password-meter.scss
@@ -0,0 +1,23 @@
+@use '../../abstract' as *;
+
+.password-meter {
+ position:absolute; z-index:2; bottom:pxToRem(4); inset-inline:pxToRem(8);
+ width:0%; height:pxToRem(2); max-width:#{calc(100% - pxToRem(16))}; background:none;
+ transition:var(--transition);
+
+ &::-webkit-meter-optimum-value { background-image:none; } /* Safari */
+ &::-webkit-meter-bar { background:none; } /* Safari */
+ &::-moz-meter-bar { background:none; } /* FireFox */
+ &.is-weak {
+ background: hsl(var(--color-danger-100)); width:33.33%;
+ &::-webkit-meter-optimum-value { background-color:hsl(var(--color-danger-100)); } /* Safari */
+ }
+ &.is-medium {
+ background: hsl(var(--color-warning-100)); width:66.66%;
+ &::-webkit-meter-optimum-value { background-color:hsl(var(--color-warning-100)); } /* Safari */
+ }
+ &.is-strong {
+ background: hsl(var(--color-success-100)); width:100%;
+ &::-webkit-meter-optimum-value { background-color:hsl(var(--color-success-100)); } /* Safari */
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_placeholder.scss b/v2/legacy/src/6-elements/form/_placeholder.scss
new file mode 100644
index 0000000000..3da539c4ba
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_placeholder.scss
@@ -0,0 +1,27 @@
+@use '../../abstract' as *;
+
+::placeholder,
+[contentEditable="true"] {
+ --p-placeholder-color: var(--color-neutral-20);
+ --p-placeholder-color-disabled: var(--color-neutral-20);
+
+ #{$theme-dark} & {
+ --p-placeholder-color: var(--color-neutral-60);
+ }
+}
+
+::placeholder {
+ color: hsl(var(--p-placeholder-color));
+}
+
+:disabled::placeholder {
+ color: hsl(var(--p-placeholder-color-disabled));
+ #{$theme-dark} & {
+ --p-placeholder-color: var(--color-neutral-70);
+ --p-placeholder-color-disabled: var(--color-neutral-70);
+ }
+}
+
+[contentEditable="true"] {
+ &::before { color:hsl(var(--p-placeholder-color)); }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_pulse-notification.scss b/v2/legacy/src/6-elements/form/_pulse-notification.scss
new file mode 100644
index 0000000000..a3b013926d
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_pulse-notification.scss
@@ -0,0 +1,33 @@
+@use '../../abstract' as *;
+
+.pulse-notification {
+ --p-pulse-color: var(--color-primary-200);
+ box-sizing: content-box;
+ inline-size: pxToRem(8);
+ block-size: pxToRem(8);
+ background-color: hsl(var(--p-pulse-color));
+ border-radius: 50%;
+ position: relative;
+ &::before {
+ content:''; display:block;
+ position:absolute; inset:pxToRem(-1);
+ border-radius:50%; border:pxToRem(0.25) double hsl(var(--p-pulse-color));
+ animation: pulse 1s ease infinite;
+ @media (prefers-reduced-motion) { animation:none; }
+ }
+}
+
+@keyframes pulse {
+ 0% {
+ transform: scale(1);
+ opacity: 1;
+ }
+ 60% {
+ transform: scale(1.2);
+ opacity: 0.6;
+ }
+ 100% {
+ transform: scale(1.3);
+ opacity: 0.3;
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_radio-and-checkbox.scss b/v2/legacy/src/6-elements/form/_radio-and-checkbox.scss
new file mode 100644
index 0000000000..3825d9f42d
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_radio-and-checkbox.scss
@@ -0,0 +1,215 @@
+@use '../../abstract' as *;
+
+[type="checkbox"],
+[type="radio"] {
+ $size: pxToRem(20);
+ --p-size: #{$size};
+ --p-icon-size: calc(var(--p-size) * 0.85);
+
+ /* Theme Light */
+ --p-icon-color: var(--p-icon-color-default);
+ --p-bg-color: var(--p-bg-color-default);
+ --p-border-color: var(--p-border-color-default);
+
+ --p-icon-color-default: var(--color-neutral-0);
+ --p-bg-color-default: var(--color-neutral-0);
+ --p-border-color-default: var(--color-neutral-20);
+
+ --p-bg-color-checked: var(--color-information-100);
+ --p-border-color-checked: var(--color-information-100);
+
+ --p-bg-color-hover: var(--color-neutral-5);
+ --p-border-color-hover:var(--color-neutral-20);
+
+ --p-bg-color-hover-checked: var(--color-information-100);
+ --p-border-color-hover-checked: var(--color-information-100);
+
+ --p-bg-color-indeterminate: var(--color-information-100);
+ --p-border-color-indeterminate: var(--color-information-100);
+
+ --p-bg-color-active: var(--color-neutral-0);
+ --p-border-color-active: var(--color-information-120);
+
+ --p-bg-color-active-checked: var(--color-information-120);
+ --p-border-color-active-checked: var(--color-information-120);
+
+ --p-bg-color-disabled: var(--color-neutral-10);
+ --p-border-color-ddisabled: var(--color-neutral-15);
+
+ --p-icon-color-disabled-checked: var(--color-neutral-0);
+ --p-bg-color-disabled-checked: var(--color-neutral-15);
+ --p-border-color-disabled-checked: var(--color-neutral-15);
+/* End theme variables */
+
+ display:inline-grid; place-content:center; flex-shrink:0;
+ inline-size:var(--p-size); block-size:var(--p-size);
+ background:hsl(var(--p-bg-color)); border:solid pxToRem(1) hsl(var(--p-border-color));
+ color:hsl(var(--p-icon-color)); vertical-align:middle; cursor:pointer;
+
+ &.is-small { $size:pxToRem(16); --p-size:#{$size}; }
+ &.is-large { $size:pxToRem(24); --p-size:#{$size}; }
+ //&:where(:disabled) { opacity:0.5; filter:grayscale(1); }
+
+ &:where(:focus) {
+ $focus: 0 0 0 pxToRem(1) hsl(var(--color-information-100)), 0 0 0 pxToRem(2) hsl(var(--color-information-100) / 0.25);
+ --focus-box-shadow: #{$focus};
+ }
+
+ &:where(:checked) {
+ --p-bg-color: var(--p-bg-color-checked);
+ --p-border-color: var(--p-border-color-checked);
+ }
+
+ &:where(:hover) {
+ --p-bg-color: var(--p-bg-color-hover);
+ --p-border-color: var(--p-border-color-hover);
+ &:where(:checked) {
+ --p-bg-color: var(--p-bg-color-hover-checked);
+ --p-border-color: var(--p-border-color-hover-checked);
+ }
+ }
+ &:where(:indeterminate) {
+ --p-bg-color: var(--p-bg-color-indeterminate);
+ --p-border-color: var(--p-border-color-indeterminate);
+ }
+ &:where(:active) {
+ --p-bg-color: var(--p-bg-color-active);
+ --p-border-color: var(--p-border-color-active);
+ &:where(:checked) {
+ --p-bg-color: var(--p-bg-color-active-checked);
+ --p-border-color: var(--p-border-color-active-checked);
+ }
+ }
+ &:where(:disabled) {
+ --p-bg-color: var(--p-bg-color-disabled);
+ --p-border-color: var(--p-border-color-ddisabled);
+ cursor: initial;
+ &:where(:checked) {
+ --p-icon-color: var(--p-icon-color-disabled-checked);
+ --p-bg-color: var(--p-bg-color-disabled-checked);
+ --p-border-color: var(--p-border-color-disabled-checked);
+ }
+ }
+
+ /* Theme Dark */
+ #{$theme-dark} & {
+ --p-bg-color-disabled: var(--color-neutral-80);
+ --p-border-color-ddisabled: var(--color-neutral-70);
+
+ --p-icon-color-disabled-checked: var(--color-neutral-60);
+ --p-bg-color-disabled-checked: var(--color-neutral-80);
+ --p-border-color-disabled-checked: var(--color-neutral-80);
+ }
+}
+
+
+[type="radio"] {
+ position:relative; border-radius:var(--border-radius-circular);
+ &:where(:checked) {
+ padding:calc(var(--p-size) * 0.2);
+ &::before {
+ content:""; display:block;
+ position:absolute; inset:30%;
+ background-color:hsl(var(--p-icon-color)); border-radius:var(--border-radius-circular);
+ }
+ }
+}
+[type="checkbox"] {
+ border-radius: var(--border-radius-xsmall);
+ &:where(:indeterminate) {
+ &::after {
+ content:""; display:block; inline-size:pxToRem(10); block-size:pxToRem(2); border-radius:pxToRem(1);
+ background-color:hsl(var(--color-neutral-0));
+ }
+
+ }
+ &:where(:checked) {
+ &::before {
+ font-family: 'icon' !important;
+ content: var(--icon-check);
+ vertical-align: middle;
+ margin-bottom: calc(var(--p-size) / 8 * -1);
+ font-size: var(--p-icon-size);
+ }
+ }
+ &:where(:not(:checked)) {
+ &::before { display:none; }
+ }
+}
+
+.checkboxes {
+ &-header { display:flex; justify-content:space-between; }
+ &-options { display:flex; gap:pxToRem(10); font-size:pxToRem(13); }
+ &-list { display:grid; grid-template-columns:repeat(2, 1fr); gap:pxToRem(30);}
+ &-item {
+ :where([type="checkbox"], [type="radio"]) { margin-inline-end:pxToRem(10); }
+ }
+}
+
+.radio-button {
+ all:unset;
+
+ --p-radio-bitton-text-color: var(--p-radio-bitton-text-color-default);
+ --p-radio-bitton-bg-color: var(--p-radio-bitton-bg-color-default);
+ --p-radio-bitton-border-color: var(--p-radio-bitton-border-color-default);
+
+ --p-radio-bitton-text-color-default: var(--color-neutral-60);
+ --p-radio-bitton-bg-color-default: var(--color-neutral-5);
+ --p-radio-bitton-border-color-default: var(--color-neutral-15);
+
+ --p-radio-bitton-text-color-checked: var(--p-radio-bitton-text-color-default);
+ --p-radio-bitton-bg-color-checked: var(--color-neutral-15);
+ --p-radio-bitton-border-color-checked: var(--p-radio-bitton-border-color-default);
+
+ color: hsl(var(--p-radio-bitton-text-color));
+ background-color: hsl(var(--p-radio-bitton-bg-color));
+ border: solid pxToRem(1) hsl(var(--p-radio-bitton-border-color));
+
+ display:grid; place-content:center; box-sizing:border-box; padding:0;
+ inline-size:pxToRem(33); block-size:pxToRem(36); border-radius:var(--border-radius-small);
+ font-weight:bold; cursor:pointer; transition:var(--transition);
+
+ &::before { content: attr(data-text); }
+
+ &:where(:hover) {
+ scale:1.1;
+ }
+ &:where(:focus-visible) {
+ box-shadow:var(--focus-box-shadow); scale:1.1;
+ }
+ &:where(:checked) {
+ &::before { position:initial; background:initial; } /* overrides default radio */
+ --p-radio-bitton-text-color: var(--p-radio-bitton-text-color-checked);
+ --p-radio-bitton-bg-color: var(--p-radio-bitton-bg-color-checked);
+ --p-radio-bitton-border-color: var(--p-radio-bitton-border-color-checked);
+ }
+
+ #{$theme-dark} & {
+ --p-radio-bitton-text-color-default: var(--color-neutral-20);
+ --p-radio-bitton-bg-color-default: var(--color-neutral-85);
+ --p-radio-bitton-border-color-default: var(--color-neutral-80);
+
+ --p-radio-bitton-text-color-checked: var(--p-radio-bitton-text-color-default);
+ --p-radio-bitton-bg-color-checked: var(--color-neutral-80);
+ --p-radio-bitton-border-color-checked: var(--color-neutral-60);
+ }
+}
+
+.image-radio {
+ display:flex; flex-direction:column; gap:pxToRem(12); cursor:pointer;
+ [type="radio"] { display:block; margin-inline:auto; }
+}
+
+.choice-item {
+ --p-choice-item-title-color: var(--color-neutral-70);
+ --p-choice-item-text-color: var(--color-neutral-60);
+ display:flex; gap:pxToRem(8);
+ &-content { display:flex; flex-direction:column; gap:pxToRem(4); line-height:1.5; }
+ &-title { color:hsl(var(--p-choice-item-title-color)); font-weight:600;}
+ &-paragraph { color:hsl(var(--p-choice-item-text-color)); }
+
+ #{$theme-dark} & {
+ --p-choice-item-title-color: var(--color-neutral-10);
+ --p-choice-item-text-color: var(--color-neutral-20);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_switch.scss b/v2/legacy/src/6-elements/form/_switch.scss
new file mode 100644
index 0000000000..acdfebedeb
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_switch.scss
@@ -0,0 +1,81 @@
+@use '../../abstract' as *;
+.switch {
+
+ --p-switch-bg-color: var(--p-switch-bg-color-default);
+ --p-switch-bg-color-default: var(--color-neutral-0);
+ --p-switch-bg-color-disabled: var(--p-switch-bg-color-default);
+
+ --p-bg-color: var(--p-bg-color-default);
+ --p-bg-color-default: var(--color-neutral-20);
+
+ --p-bg-color-checked: var(--color-information-100);
+
+ --p-bg-color-hover: var(--color-neutral-20);
+ --p-bg-color-checked-hover: var(--color-information-100);
+
+ --p-bg-color-active: var(--color-neutral-60);
+ --p-bg-color-checked-active: var(--color-information-120);
+
+ --p-bg-color-disabled: var(--color-neutral-15);
+ --p-bg-color-checked-disabled: var(--color-information-50);
+
+
+ all:unset; position:relative; display:inline-flex; box-sizing:border-box; flex-shrink:0;
+ inline-size:pxToRem(36); block-size:pxToRem(20); border-radius:var(--border-radius-medium);
+ padding:pxToRem(2); background-color:hsl(var(--p-bg-color));
+ cursor:pointer; transition:var(--transition);
+ &::before {
+ content:""; position:absolute; inset-inline-start:pxToRem(2);
+ display:block; inline-size:pxToRem(16); block-size:pxToRem(16);
+ background-color:hsl(var(--p-switch-bg-color)); border-radius:var(--border-radius-circular);
+ box-shadow:var(--shadow-small); transition:var(--transition);
+ }
+ /* give back after reset */
+ &:where(:focus-visible) {
+ box-shadow: var(--focus-box-shadow);
+ }
+
+ /* states */
+ &.is-small {
+ inline-size:pxToRem(30); block-size:pxToRem(16);
+ &::before{ inline-size:pxToRem(12); block-size:pxToRem(12);}
+ &:where(:checked)::before { transform:translateX(calc( pxToRem(14) * var(--transform-direction) )); }
+ }
+
+ &.is-large {
+ inline-size:pxToRem(40); block-size:pxToRem(24);
+ &::before{ inline-size:pxToRem(20); block-size:pxToRem(20);}
+ &:where(:checked)::before { transform:translateX(calc(pxToRem(16) * var(--transform-direction) )); }
+ }
+
+ &:where(:focus) {
+ $focus: 0 0 0 pxToRem(1) hsl(var(--color-information-100)), 0 0 0 pxToRem(2) hsl(var(--color-information-100) / 0.25);
+ --focus-box-shadow: #{$focus};
+ }
+
+ &:where(:checked) {
+ --p-bg-color: var(--p-bg-color-checked);
+ &::before { transform:translateX(calc(pxToRem(16) * var(--transform-direction))); }
+ }
+ &:where(:hover) {
+ --p-bg-color: var(--p-bg-color-hover);
+ &:where(:checked) { --p-bg-color: var(--p-bg-color-checked-hover); }
+ }
+ &:where(:active) {
+ --p-bg-color: var(--p-bg-color-active);
+ &:where(:checked) { --p-bg-color: var(--p-bg-color-checked-active); }
+ }
+ &:where(:disabled) {
+ --p-bg-color: var(--p-bg-color-disabled);
+ --p-switch-bg-color: var(--p-switch-bg-color-disabled);
+ cursor: default;
+ &:where(:checked) { --p-bg-color: var(--p-bg-color-checked-disabled); }
+ }
+
+
+ #{$theme-dark} & {
+ --p-switch-bg-color-disabled: var(--color-neutral-70);
+ --p-bg-color-disabled: var(--color-neutral-85);
+ --p-bg-color-checked-disabled: var(--color-information-200);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/6-elements/form/_text-inputs.scss b/v2/legacy/src/6-elements/form/_text-inputs.scss
new file mode 100644
index 0000000000..b5a2197cd8
--- /dev/null
+++ b/v2/legacy/src/6-elements/form/_text-inputs.scss
@@ -0,0 +1,348 @@
+@use '../../abstract' as *;
+
+$input-text-wrapper: ".input-text-wrapper";
+
+[contentEditable]{
+ &.input-text { min-block-size:pxToRem(80); }
+ &:empty:not(:focus)::before {
+ content:attr(data-text);
+ }
+}
+
+#{$input-text-wrapper} {
+ position:relative;
+ $button-size: pxToRem(48);
+ --button-size: #{$button-size};
+ --amount-of-buttons: 0;
+ .input-text,
+ input:where(:not([type="datetime-local"])) { padding-inline-end: calc(var(--button-size) * var(--amount-of-buttons)); }
+ [type="text"] { min-block-size:pxToRem(22); } /* use for DIV textbox */
+ &:where(.is-with-end-button) {
+ .button { position:absolute; inset-block:pxToRem(8); inset-inline-end:pxToRem(8); }
+ }
+ .icon-search {
+ position:absolute; inset-inline-start:pxToRem(16); inset-block-start:pxToRem(8);
+ font-size:pxToRem(19); pointer-events:none;
+ }
+ :where(.options-list) {
+ position:absolute; inset-block-start:pxToRem(8); inset-inline-end:pxToRem(12);
+ }
+ .buttons-list {
+ --p-bg-input-color: var(--color-neutral-0);
+ background-color: hsl(var(--p-bg-input-color));
+ #{$theme-dark} & {
+ --p-bg-input-color: var(--color-neutral-100);
+ }
+ }
+}
+
+.options-list {
+ --p-sep-color: var(--color-neutral-15);
+ --p-button-text-color: var(--p-button-text-color-default);
+ --p-button-text-color-default: var(--color-neutral-50);
+ --p-button-text-color-disabled: var(--color-neutral-15);
+
+ --p-button-bg-color: var(--p-button-bg-color-default);
+ --p-button-bg-color-default: var(--transparent);
+ --p-button-bg-color-focus: var(--color-neutral-10);
+
+ display:flex;
+ &::before { content:""; align-self:center; inline-size:pxToRem(1); block-size:pxToRem(20); background-color:hsl(var(--p-sep-color)); margin-inline-end:pxToRem(12); }
+ &-button {
+ inline-size:pxToRem(24); block-size:pxToRem(24);
+ background-color:hsl(var(--p-button-bg-color)); border-radius:var(--border-radius-xsmall);
+ color:hsl(var(--p-button-text-color)); font-size:var(--fon); line-height:pxToRem(24); text-align:center;
+ &:disabled {
+ --p-button-text-color:var(--p-button-text-color-disabled); cursor:not-allowed;
+ }
+ &:where(:hover, :focus):not(:disabled) {
+ --p-button-bg-color:var(--p-button-bg-color-focus); box-shadow:none;
+ }
+ &:where(:not(:last-child)) { margin-inline-end:pxToRem(8); }
+ }
+ &.is-no-separator {
+ &::before { display:none; }
+ }
+ #{$theme-dark} & {
+ --p-sep-color: var(--color-neutral-80);
+ --p-button-text-color: var(--p-button-text-color-default);
+ --p-button-text-color-default: var(--color-neutral-50);
+ --p-button-text-color-disabled: var(--color-neutral-80);
+
+ --p-button-bg-color: var(--p-button-bg-color-default);
+ --p-button-bg-color-default: var(--transparent);
+ --p-button-bg-color-focus: var(--color-neutral-85);
+ }
+
+}
+
+.input-text,
+[type="text"],
+[type="number"],
+[type="password"],
+[type="email"],
+[type="url"],
+[type="search"],
+[type="tel"],
+[type="file"],
+[type="date"],
+[type="time"],
+select,
+textarea {
+ --p-text-color: var(--p-text-color-default);
+ --p-bg-color: var(--p-bg-color-default);
+ --p-border-color: var(--p-border-color-default);
+
+ --p-text-color-default: var(--color-neutral-60);
+ --p-bg-color-default: var(--color-neutral-0);
+ --p-border-color-default: var(--color-neutral-15);
+
+ --p-text-color-hover: var(--p-text-color-default);
+ --p-bg-color-hover: var(--p-bg-color-default);
+ --p-border-color-hover: var(--color-neutral-20);
+
+ --p-text-color-focus: var(--p-text-color-default);
+ --p-bg-color-focus: var(--p-bg-color-default);
+ --p-border-color-focus: var(--color-neutral-20);
+
+ --p-text-color-readonly: var(--color-neutral-20);
+ --p-bg-color-readonly: var(--color-neutral-5);
+ --p-border-color-readonly: var(--p-border-color-default);
+
+ --p-text-color-disabled: var(--color-neutral-20);
+ --p-bg-color-disabled: var(--color-neutral-0);
+ --p-border-color-disabled: var(--p-border-color-default);
+
+
+ display:block; inline-size:100%; block-size:pxToRem(40); outline:none;
+ padding-block:pxToRem(9.5); padding-inline:pxToRem(12);
+ color:hsl(var(--p-text-color)); line-height:1.3572; font-weight:400;
+ background-color:hsl(var(--p-bg-color));
+ border:solid pxToRem(1) hsl(var(--p-border-color)); border-radius:var(--border-radius-xsmall);
+ &:hover {
+ &:where(:not(#{$disabled})) {
+ --p-border-color:var(--p-border-color-hover);
+ }
+ }
+ /* UnNative textbox element */
+ &.is-resizable {
+ @include scroll();
+ word-break:break-all; min-block-size:auto; max-block-size:pxToRem(200); overflow:auto;
+ &:empty { color:hsl(var(--p-placeholder-color)); }
+ &:empty::before { content: attr(aria-placeholder); }
+ }
+
+ &.is-error { box-shadow:0 0 0 pxToRem(1) hsl(var(--color-danger-100)), 0 0 0 pxToRem(4) hsl(var(--color-danger-100) / 0.25); }
+ &.is-warning { box-shadow:0 0 0 pxToRem(1) hsl(var(--color-warning-100)), 0 0 0 pxToRem(4) hsl(var(--color-warning-100) / 0.25); }
+ &.is-success { box-shadow:0 0 0 pxToRem(1) hsl(var(--color-success-100)), 0 0 0 pxToRem(4) hsl(var(--color-success-100) / 0.25); }
+ &:where(:focus) {
+ --p-text-color: var(--p-text-color-focus);
+ --p-bg-color: var(--p-bg-color-focus);
+ --p-border-color: var(--p-border-color-focus);
+ box-shadow: none;
+ }
+ &:where([readonly], .is-read-only) {
+ --p-bg-color:var(--p-bg-color-readonly);
+ }
+ &:where(#{$disabled}) {
+ --p-text-color: var(--p-text-color-disabled);
+ --p-bg-color: var(--p-bg-color-disabled);
+ --p-border-color: var(--p-border-color-disabled);
+
+ --p-border-color-hover: var(--color-neutral-60);
+ }
+
+ #{$theme-dark} & {
+ --p-text-color-default: var(--color-neutral-20);
+ --p-bg-color-default: var(--color-neutral-100);
+ --p-border-color-default: var(--color-neutral-80);
+
+ --p-text-color-hover: var(--p-text-color-default);
+ --p-bg-color-hover: var(--p-bg-color-default);
+ --p-border-color-hover: var(--color-neutral-70);
+
+ --p-text-color-focus: var(--p-text-color-default);
+ --p-bg-color-focus: var(--p-bg-color-default);
+ --p-border-color-focus: var(--color-neutral-70);
+
+ --p-text-color-readonly: var(--color-neutral-60);
+ --p-bg-color-readonly: var(--color-neutral-85);
+ --p-border-color-readonly: var(--color-neutral-80);
+
+ --p-text-color-disabled: var(--color-neutral-70);
+ --p-bg-color-disabled: var(--p-bg-color-default);
+ --p-border-color-disabled: var(--color-neutral-85);
+
+
+ &:where([readonly], .is-read-only) {
+ + .input-button { --p-border-color: var(--color-neutral-60); }
+ }
+ &:where(#{$disabled}) {
+ + .input-button { --p-border-color: var(--color-neutral-80); }
+ }
+ }
+}
+
+textarea.input-text { block-size:pxToRem(200); }
+
+[type="search"]{
+ padding-inline-start: pxToRem(48);
+ &:disabled {
+ + .icon-search {
+ color:hsl(var(--color-neutral-20));
+ #{$theme-dark} & { color:hsl(var(--color-neutral-70));}
+ }
+ }
+ &::-webkit-search-cancel-button { display:none; }
+}
+
+[type="password"] {
+ padding-inline-end: pxToRem(48);
+ &:where(:not(:placeholder-shown)) { font-weight:bold; }
+ &:where(:placeholder-shown) {
+ ~ .show-password-button { opacity:0.5; }
+ }
+}
+
+/* datetime input calendar icon in dark-mode change it to bright */
+input[type="datetime-local" i]::-webkit-calendar-picker-indicator {
+ #{$theme-dark} & {
+ filter: contrast(0) brightness(1.5);
+ }
+}
+
+.show-password-button {
+ display:grid; place-content:center;
+ position:absolute; inset-block:pxToRem(4); inset-inline-end:pxToRem(0);
+ padding-inline:pxToRem(16); border-radius: var(--border-radius-small); font-size:pxToRem(18); transition:var(--transition);
+}
+
+.transparent-password-input {
+ display:flex; gap:pxToRem(16); align-items:center;
+ button {
+ display:grid; place-content:center; inline-size:pxToRem(32); block-size:pxToRem(32);
+ border-radius:var(--border-radius-circular); flex-shrink:0;
+ }
+ input { padding:0; border-width:0; font-size:pxToRem(24); }
+}
+
+.select {
+ position: relative;
+ select {
+ white-space: pre;
+ cursor: pointer;
+ padding-inline-end: pxToRem(48);
+ &:focus { outline:unset; }
+ }
+ :where([class*="icon"]) {
+ position:absolute; inset-block-start:pxToRem(10); inset-inline-end:pxToRem(12);
+ pointer-events:none; color:hsl(var(--p-text-color)); line-height:1;
+ }
+}
+
+.custom-select {
+ position:relative;
+ .drop {
+ --drop-border-color: var(--color-neutral-15);
+ --drop-border-radius: var(--border-radius-xsmall);
+ inset-inline:0; max-inline-size:none;
+ #{$theme-dark} & {
+ --drop-border-color: var(--color-neutral-80);
+ }
+ }
+ .input-text-wrapper {
+ .icon-cheveron-down { display:block; transition:var(--transition); }
+ }
+ &.is-open {
+ .input-text-wrapper {
+ .icon-cheveron-down { transform:rotateZ(-180deg); }
+ }
+ }
+}
+
+[type="file"] {
+ cursor:pointer;
+ &::-webkit-file-upload-button{ line-height:1; }
+}
+
+.text-counter {
+ --p-text-counter-color: var(--color-neutral-50);
+ display: flex;
+ user-select: none;
+ font-size: var(--font-size-00);
+ color: hsl(var(--p-text-counter-color));
+ &-separator::before { content:"/"; }
+ input:placeholder-shown + & {
+ --p-text-counter-color: var(--color-neutral-20);
+ #{$theme-dark} & { --p-text-counter-color: var(--color-neutral-50); }
+ }
+ #{$input-text-wrapper} > & { position:absolute; inset-block-start:pxToRem(12); inset-inline-end:pxToRem(16); }
+}
+
+.wysiwyg {
+ --p-options-bg-color: var(--color-neutral-5);
+ display:flex; flex-direction:column; min-block-size:pxToRem(176);
+ &-options {
+ block-size:pxToRem(40); padding:pxToRem(4); margin-block-end:pxToRem(16);
+ background-color:hsl(var(--p-options-bg-color)); border-radius:var(--border-radius-xsmall);
+ }
+ [contenteditable] {
+ flex:1;
+ &:empty::before { content: attr(data-placeholder); }
+ }
+}
+
+/* tags input partial */
+.tags-input {
+ @extend .input-text;
+ min-block-size:pxToRem(40); padding-block:pxToRem(5); padding-inline:pxToRem(15); block-size:auto;
+ display:flex; gap:10px; align-items:center; flex-wrap:wrap;
+ &-text { all:unset; flex:1; font-size:pxToRem(14); }
+ &.is-focus {box-shadow: var(--focus-box-shadow); }
+ .tags-input-text:not(input)::before { content: attr(placeholder); opacity:0.5; }
+
+ /* default not read-only!!! this pseudo-class affect on div element and I need to overwrite this behavior */
+ &.is-read-only {
+ #{$theme-dark} &{
+ --p-bg-color: var(--color-neutral-80);
+ --p-border-color: var(--color-neutral-60);
+ .tag {
+ --tag-bg-color: var(--color-neutral-60);
+ --tag-text-color: var(--color-neutral-15);
+ }
+ }
+ }
+
+}
+.tags {
+ display:contents;
+ &-list { display:contents; gap:10px; flex-wrap:wrap; }
+}
+.input-tag {
+ --p-bg-color: var(--tag-bg-color, var(--color-neutral-15));
+ --p-text-color: var(--tag-text-color, var(--color-neutral-60));
+ display:flex; height:pxToRem(28); gap:6px; align-items:center;
+ background-color:hsl(var(--p-bg-color)); padding-inline:pxToRem(8); padding-block:pxToRem(6); border-radius:var(--border-radius-xsmall);
+ color:hsl(var(--p-text-color));
+ &-delete-button {
+ aspect-ratio:1 / 1; line-height:1; border-radius:var(--border-radius-xsmall); text-align:center;
+ [class*="icon"]::before { vertical-align:middle; }
+ }
+ &.is-disabled { --p-text-color:var(--color-neutral-20); }
+ #{$theme-dark} &{
+ --tag-bg-color: var(--color-neutral-80);
+ --tag-text-color: var(--color-neutral-20);
+ }
+}
+.verification-code-input {
+ --p-input-size: var(--input-size, #{pxToRem(40)});
+ inline-size: var(--p-input-size);
+ block-size: var(--p-input-size);
+ font-size: pxToRem(20);
+ text-align: center;
+
+ &.is-large {
+ --input-size: #{pxToRem(60)};
+ font-size: pxToRem(30);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_action-bar.scss b/v2/legacy/src/7-components/_action-bar.scss
new file mode 100644
index 0000000000..85ad12e082
--- /dev/null
+++ b/v2/legacy/src/7-components/_action-bar.scss
@@ -0,0 +1,24 @@
+@use '../abstract' as *;
+.action-bar {
+ --p-action-bar-bg-color: var(--color-neutral-0);
+ --p-action-bar-border-color: var(--color-neutral-0);
+ --p-action-bar-box-shadow: 0 #{pxToRem(6)} #{pxToRem(16)} hsl(var(--color-neutral-80) / 0.14);
+
+ display:flex; gap:pxToRem(8); justify-content:space-between; align-items:baseline;
+ inline-size:pxToRem(312); padding-inline:pxToRem(12); padding-block:pxToRem(8);
+
+ background-color: hsl(var(--p-action-bar-bg-color));
+ border: solid pxToRem(1) hsl(var(--p-action-bar-border-color));
+ border-radius: var(--border-radius-small);
+ box-shadow: var(--p-action-bar-box-shadow); /* isn't standard box shadow */
+ transition: var(--transition);
+
+ /* tablet & desktop */
+ @media #{$break2open} { inline-size:pxToRem(500); padding-inline:pxToRem(16); padding-block:pxToRem(12); }
+
+ #{$theme-dark} & {
+ --p-action-bar-bg-color: var(--color-neutral-90);
+ --p-action-bar-border-color: var(--color-neutral-85);
+ --p-action-bar-box-shadow: 0 #{pxToRem(6)} #{pxToRem(16)} #{pxToRem(8)} hsl(var(--color-neutral-105));
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_alert-sticky.scss b/v2/legacy/src/7-components/_alert-sticky.scss
new file mode 100644
index 0000000000..aa3b1354ad
--- /dev/null
+++ b/v2/legacy/src/7-components/_alert-sticky.scss
@@ -0,0 +1,71 @@
+@use '../abstract' as *;
+
+.alert-sticky {
+ $width-alert: pxToRem(440);
+ --p-alert-sticky-width-size: #{$width-alert};
+
+ --p-alert-content-text-color: var(--color-neutral-70);
+ --p-alert-content-bg-color: var(--color-neutral-0);
+ --p-alert-content-border-color: var(--color-neutral-10);
+
+ /** type of messages colors **/
+ --p-alert-bg-color: var(--p-alert-bg-color-default);
+ /* default */
+ --p-alert-bg-color-default: var(--color-neutral-20);
+ /* info */
+ --p-alert-bg-color-info: var(--color-information-100);
+ /* success */
+ --p-alert-bg-color-success: var(--color-success-100);
+ /* warning */
+ --p-alert-bg-color-warning: var(--color-warning-100);
+ /* danger */
+ --p-alert-bg-color-danger: var(--color-danger-100);
+
+ position: relative;
+ display: grid;
+ grid-template-columns: pxToRem(72) 1fr;
+ grid-template-areas: "image content"
+ "image buttons";
+
+ inline-size: var(--p-alert-sticky-width-size); /* request of Chen */
+ font-size: var(--font-size-0);
+ color: hsl(var(--p-alert-content-text-color));
+ border: solid pxToRem(1) hsl(var(--p-alert-content-border-color));
+ border-radius: var(--border-radius-xsmall);
+ box-shadow: var(--shadow-large);
+ user-select: none;
+
+ > .button { position:absolute; inset-inline-end:pxToRem(16); inset-block-start:pxToRem(16); }
+ &-image {
+ grid-area: image;
+ display:grid; place-content:center; margin:pxToRem(-1); margin-inline-end:0;
+ background-color:hsl(var(--p-alert-bg-color)); border-start-start-radius:inherit; border-end-start-radius:inherit;
+ color:hsl(var(--color-neutral-0)); font-size:pxToRem(24);
+ [class^=icon-],
+ [class*=" icon-"]{ font-size:var(--icon-size-large); }
+ }
+ &-content {
+ grid-area:content;
+ flex:1; background-color:hsl(var(--p-alert-content-bg-color));
+ padding:pxToRem(16); padding-block-end:0; padding-inline-end:pxToRem(48); border-start-end-radius:inherit;
+ &:last-child { padding-block-end:pxToRem(16); }
+ }
+ &-buttons { grid-area:buttons; background-color:hsl(var(--p-alert-content-bg-color)); padding-block-end:pxToRem(8); border-end-end-radius:inherit;}
+ &-title { font-size:var(--font-size-0); font-weight:600; margin-bottom:pxToRem(4); }
+
+ /* alert types */
+ &.is-info { --p-alert-bg-color:var(--p-alert-bg-color-info); }
+ &.is-success { --p-alert-bg-color:var(--p-alert-bg-color-success); }
+ &.is-warning { --p-alert-bg-color:var(--p-alert-bg-color-warning); }
+ &.is-danger { --p-alert-bg-color:var(--p-alert-bg-color-danger); }
+
+ #{$theme-dark} & {
+ --p-alert-content-text-color: var(--color-neutral-10);
+ --p-alert-content-bg-color: var(--color-neutral-85);
+ --p-alert-content-border-color: var(--color-neutral-80);
+ }
+
+ @media #{$break1} {
+ --p-alert-sticky-width-size: auto;
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_alert.scss b/v2/legacy/src/7-components/_alert.scss
new file mode 100644
index 0000000000..aaa24c3e9e
--- /dev/null
+++ b/v2/legacy/src/7-components/_alert.scss
@@ -0,0 +1,92 @@
+@use '../abstract' as *;
+
+.alert {
+ --p-alert-text-color: var(--color-neutral-70);
+ --p-alert-bg-color: var(--color-neutral-5);
+ --p-alert-border-color: var(--color-neutral-15);
+
+ /* states colors */
+ --p-alert-color: var(--p-alert-color-default);
+
+ --p-alert-color-default: var(--color-neutral-20);
+ --p-alert-color-info: var(--color-information-100);
+ --p-alert-color-success: var(--color-success-100);
+ --p-alert-border-warning: var(--color-warning-100);
+ --p-alert-border-danger: var(--color-danger-100);
+
+ /*** End inner variables */
+
+ /* use inner variables */
+ color: hsl(var(--p-alert-text-color));
+ background-color: hsl(var(--p-alert-bg-color));
+ border: solid pxToRem(1) hsl(var(--p-alert-border-color));
+
+ /* other styles */
+ padding: pxToRem(12);
+ padding-inline-start: pxToRem(8);
+ border-radius: var(--border-radius-xsmall);
+
+ &-grid {
+ display: flex;
+ gap: pxToRem(16);
+ &::before {
+ content:""; display:block; inline-size:pxToRem(2);
+ background-color:hsl(var(--p-alert-color)); border-radius:pxToRem(1);
+ }
+ > [class*="icon-"]:where(:not(.icon-x)) { color:hsl(var(--p-alert-color)); font-size:var(--icon-size-large); line-height:1.25; }
+ > .button { order: 1; }
+ }
+
+ &-content { display:flex; flex-direction:column; gap:pxToRem(8); flex:1; line-height:1.5; }
+ &-title { font-weight:bold; }
+ &-message { }
+ &-buttons { margin-block-start:pxToRem(12); margin-inline-start:pxToRem(-16); }
+
+ .button { --button-size:1.25rem; font-size:var(--font-size-0); }
+
+ /* alert layout state */
+ &.is-action {
+ position:relative; padding:pxToRem(16); padding-block-start:pxToRem(18);
+ border-width:0; border-radius:0;
+ .alert-buttons { display:flex; flex-wrap:wrap; margin-block-start:0; margin-inline-start:0; }
+ .button { --button-size:2.5rem; }
+ .alert-grid {
+ flex-wrap:wrap;
+ &::before {
+ position:absolute; inset-inline:0; inset-block-start:0; border-radius:0;
+ block-size:pxToRem(4); inline-size:100%;
+ }
+ }
+
+ &-and-top-sticky {
+ --p-alert-bg-color: var(--color-neutral-0);
+ // #{$theme-dark} & { --p-alert-bg-color: var(--color-neutral-0); }
+ }
+ @media #{$break1} {
+ .alert-buttons { flex-direction:column; inline-size:100%; }
+ }
+ }
+ &.is-standalone {
+ --p-alert-bg-color: var(--color-neutral-0);
+ --p-alert-border-color: var(--color-neutral-10);
+ box-shadow: var(--shadow-small);
+ #{$theme-dark} & {
+ --p-alert-bg-color: var(--color-neutral-90);
+ --p-alert-border-color: var(--color-neutral-85);
+ }
+ }
+
+ /* alert types (colors) */
+ &.is-info { --p-alert-color:var(--p-alert-color-info); }
+ &.is-success { --p-alert-color:var(--p-alert-color-success); }
+ &.is-warning { --p-alert-color:var(--p-alert-border-warning); }
+ &.is-danger { --p-alert-color:var(--p-alert-border-danger); }
+
+ &.is-no-bg { border-width:0; background-color:hsl(var(--transparent)); }
+
+ #{$theme-dark} & {
+ --p-alert-text-color: var(--color-neutral-5);
+ --p-alert-bg-color: var(--color-neutral-85);
+ --p-alert-border-color: var(--color-neutral-80);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_breadcrumbs.scss b/v2/legacy/src/7-components/_breadcrumbs.scss
new file mode 100644
index 0000000000..cc931d68ca
--- /dev/null
+++ b/v2/legacy/src/7-components/_breadcrumbs.scss
@@ -0,0 +1,24 @@
+@use '../abstract' as *;
+
+.breadcrumbs {
+ --p-text-color: var(--color-neutral-50);
+ --p-text-color-current: var(--color-neutral-80);
+
+ color: hsl(var(--p-text-color));
+ -webkit-user-select:none; user-select:none;
+
+ &-list { display:flex; }
+ &-item {
+ @include trim; flex-shrink:0; text-transform:capitalize;
+ > * { padding-inline:pxToRem(16); }
+ &::before { content:"/"; color:hsl(var(--p-text-color)); }
+ &:last-child {
+ color: hsl(var(--p-text-color-current)); flex-shrink:1;
+ }
+ }
+
+ #{$theme-dark} & {
+ --p-text-color: var(--color-neutral-20);
+ --p-text-color-current: var(--color-neutral-5);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_buttons-list.scss b/v2/legacy/src/7-components/_buttons-list.scss
new file mode 100644
index 0000000000..ce12eacce3
--- /dev/null
+++ b/v2/legacy/src/7-components/_buttons-list.scss
@@ -0,0 +1,32 @@
+@use '../abstract' as *;
+
+.buttons-list {
+ display: flex;
+ --p-button-list-border-color: var(--color-neutral-15);
+ &-item {
+ position: relative;
+ &:nth-child(n + 2) {
+ border-inline-start: solid pxToRem(1) transparent;
+ &::before {
+ content:""; display:block;
+ position:absolute; inset-inline-start:0; inset-block:0; margin-block:auto;
+ inline-size:pxToRem(1); block-size:75%; background-color:hsl(var(--p-button-list-border-color));
+ }
+ }
+ }
+ &.is-with-padding {
+ .buttons-list-item {
+ padding-inline: pxToRem(12);
+ &:first-child { padding-inline-start:0; }
+ &:last-child { padding-inline-end:0; }
+ }
+ }
+
+ #{$theme-dark} & {
+ --p-button-list-border-color: var(--color-neutral-80);
+ }
+}
+
+
+/* TODO: similar inline links */
+/* maybe new name interactive list */
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_clickable-list.scss b/v2/legacy/src/7-components/_clickable-list.scss
new file mode 100644
index 0000000000..de15b7d025
--- /dev/null
+++ b/v2/legacy/src/7-components/_clickable-list.scss
@@ -0,0 +1,34 @@
+@use '../abstract' as *;
+.clickable-list {
+ --p-clickable-button-bg-color-hover: var(--color-neutral-10);
+ --p-clickable-title-text-color: var(--color-neutral-60);
+ --p-clickable-desc-text-color: var(--color-neutral-50);
+ --p-clickable-sep-color: var(--color-neutral-20);
+ --color-border: var(--color-neutral-15); /* override global */
+
+ &-item {
+ padding-block:pxToRem(4); -webkit-user-select:none; user-select:none;
+ &:not(:last-child) {
+ border-block-end:solid pxToRem(1) hsl(var(--color-border));
+ }
+ }
+ &-button {
+ display:block; padding-block:pxToRem(8); padding-inline:pxToRem(16); border-radius:var(--border-radius-small);
+ &:hover, &:focus { background-color:hsl(var(--p-clickable-button-bg-color-hover)); }
+ }
+
+ &-title {
+ color:hsl(var(--p-clickable-title-text-color));
+ &-sep { color:hsl(var(--p-clickable-sep-color)); margin-inline:pxToRem(4); }
+ }
+ &-desc { color:hsl(var(--p-clickable-desc-text-color)); font-size:var(--font-size-00); }
+
+ #{$theme-dark} & {
+ --p-clickable-button-bg-color-hover: var(--color-neutral-85);
+ --p-clickable-title-text-color: var(--color-neutral-10);
+ --p-clickable-desc-text-color: var(--color-neutral-20);
+ --p-clickable-sep-color: var(--color-neutral-80);
+
+ --color-border: var(--color-neutral-80); /* override global */
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_code-panel.scss b/v2/legacy/src/7-components/_code-panel.scss
new file mode 100644
index 0000000000..fa0e730aa1
--- /dev/null
+++ b/v2/legacy/src/7-components/_code-panel.scss
@@ -0,0 +1,28 @@
+@use "../abstract" as *;
+
+.code-panel {
+ --p-code-panel-header: var(--color-neutral-5);
+ --p-code-panel-border-color: var(--color-neutral-15);
+ --p-code-panel-content: var(--color-neutral-0);
+ //--p-code-panel-text-color: var(--color-neutral-120);
+
+ display:flex; flex-direction:column; block-size:100%; flex-shrink:0; overflow:hidden;
+ border: solid pxToRem(1) hsl(var(--p-code-panel-border-color));
+ border-radius: var(--border-radius-xsmall);
+ //color: hsl(var(--p-code-panel-text-color));
+ &-header {
+ display:flex; padding:pxToRem(16);
+ background-color: hsl(var(--p-code-panel-header));
+ border-block-end: solid pxToRem(1) hsl(var(--p-code-panel-border-color));
+ }
+ &-content {
+ flex:1; padding:pxToRem(24); overflow:auto;
+ background-color: hsl(var(--p-code-panel-content));
+ }
+ #{$theme-dark} & {
+ --p-code-panel-header: var(--color-neutral-100);
+ --p-code-panel-border-color: var(--color-neutral-85);
+ --p-code-panel-content: var(--color-neutral-200);
+ --p-code-panel-text-color: var(--color-neutral-5);
+ }
+}
diff --git a/v2/legacy/src/7-components/_collapsible.scss b/v2/legacy/src/7-components/_collapsible.scss
new file mode 100644
index 0000000000..d4262c226e
--- /dev/null
+++ b/v2/legacy/src/7-components/_collapsible.scss
@@ -0,0 +1,73 @@
+@use '../abstract' as *;
+.collapsible {
+ --p-toggle-border-color: var(--color-neutral-10);
+ --p-toggle-optional-color: var(--color-neutral-50);
+
+ ::-webkit-details-marker { display:none; }
+
+ &-item {
+ &:where( :not(:last-child) ) { border-block-end:solid pxToRem(1) hsl(var(--p-toggle-border-color)); }
+ /* state */
+ &.is-info {
+ --p-bg-color-info-focus-hover-opened: var(--color-neutral-5);
+ --color-border: var(--color-neutral-10);
+ .collapsible-wrapper {
+ padding:pxToRem(8); margin-block:pxToRem(8);
+ border-radius:var(--border-radius-small);
+ &:has(:hover),
+ &:where([open]) { background-color:hsl(var(--p-bg-color-info-focus-hover-opened)); }
+ &.is-disabled { background-color:transparent; opacity:0.4; }
+ .collapsible-button {
+ padding-block:0;
+ .icon:last-child { margin-inline-end:pxToRem(8); }
+ }
+ .collapsible-content { padding-block-end:pxToRem(8); }
+ &:has(:focus-visible) {
+ box-shadow:var(--focus-box-shadow);
+ .collapsible-button {
+ &:focus-visible { box-shadow:none; }
+ }
+ }
+ #{$theme-dark} & {
+ --p-bg-color-info-focus-hover-opened: var(--color-neutral-85);
+ --color-border: var(--color-neutral-80);
+ }
+ }
+ }
+ }
+
+ /* logic */
+ &-wrapper {
+ padding:pxToRem(8);
+ &:where([open]):not(#{$disabled}) {
+ .icon-cheveron-right { rotate:90deg; }
+ .icon-cheveron-down { rotate:180deg; }
+ }
+ &:is(#{$disabled}) {
+ cursor:not-allowed;
+ * { cursor:not-allowed; }
+ .collapsible {
+ &-content { display:none!important; }
+ }
+ }
+ }
+
+ &-button {
+ position:relative; padding-block:pxToRem(10);
+ display:flex; gap:pxToRem(10); align-items:center; font-size:pxToRem(16); line-height:1.5;
+ .text { align-self:center; font-weight:600; }
+ .icon { align-self:center; }
+ [class*="icon-"] { display:block; transition:var(--transition); }
+ .icon:first-child { margin-inline-end:pxToRem(8); }
+ .icon:last-child { margin-inline-start:auto; }
+ &-optional { font-size:pxToRem(13); color:hsl(var(--p-toggle-optional-color)); }
+ &:where(summary) { cursor:pointer; }
+ }
+
+ &-content {
+ padding-block-start:0; padding-block-end:pxToRem(24);
+ }
+ #{$theme-dark} & {
+ --p-toggle-border-color: var(--color-neutral-80);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_drop.scss b/v2/legacy/src/7-components/_drop.scss
new file mode 100644
index 0000000000..aecc9875d0
--- /dev/null
+++ b/v2/legacy/src/7-components/_drop.scss
@@ -0,0 +1,159 @@
+@use '../abstract' as *;
+.drop {
+ --p-drop-bg-color: var(--color-neutral-0);
+ --p-drop-border-color: var(--drop-border-color, var(--color-neutral-10));
+
+ --p-drop-width-size-desltop: var(--drop-width-size-desktop);
+
+ --p-drop-border-radius: var(--drop-border-radius, var(--border-radius-small));
+
+ position:absolute; inset-inline-start:0; inset-block-end:calc(100% + #{pxToRem(10)});
+ background-color:hsl(var(--p-drop-bg-color)); color:hsl(var(--p-drop-text-color)); padding:0;
+ border:solid pxToRem(1) hsl(var(--p-drop-border-color)); border-radius:var(--p-drop-border-radius); box-shadow:var(--shadow-small);
+ min-inline-size: pxToRem(208);
+ max-inline-size: pxToRem(280);
+
+
+ @media #{$break3open} {
+ inline-size: var(--p-drop-width-size-desltop);
+ max-inline-size: none;
+ }
+
+ &-header-mobile {
+ position:sticky; top:0; z-index:10;
+ display:flex; align-items:center;
+ padding-block:pxToRem(16); padding-inline:pxToRem(16); border-block-end:solid pxToRem(1) hsl(var(--color-border));
+ background-color:hsl(var(--p-drop-bg-color));
+
+ @media #{$break3open} {
+ display:none;
+ }
+ }
+ &-footer {
+ @media #{$break1} {
+ position:sticky; inset-block-end:0; background-color:hsl(var(--p-drop-bg-color));
+ }
+ }
+
+ &::before {
+ content: ""; position:absolute; z-index:3; inset-inline-start:pxToRem(30); inset-block-end:pxToRem(-8);
+ inline-size:pxToRem(8); block-size:pxToRem(8); clip-path:polygon(0% 0%, 100% 0%, 50% 100%);
+ background-color:hsl(var(--p-drop-bg-color));
+ }
+ &::after {
+ content: ""; position:absolute; z-index:2;
+ inset-inline-start:pxToRem(29.5); inset-block-end:pxToRem(-8); transform:translateY(pxToRem(2));
+ inline-size:pxToRem(9); block-size:pxToRem(9); clip-path:polygon(0% 0%, 100% 0%, 50% 100%);
+ background-color:hsl(var(--p-drop-border-color));
+ }
+ &-wrapper {
+ position:relative; inline-size:fit-content;
+ &.is-open { z-index:1; }
+ }
+ &-section {
+ $padding-horizontal: pxToRem(12);
+ $padding-vertical: pxToRem(16);
+
+ --p-section-padding-horizontal: var(--section-padding-horizontal, #{$padding-horizontal});
+ --p-section-padding-vertical: var(--section-padding-vertical, #{$padding-vertical});
+
+ --p-section-border-color: var(--color-neutral-10);
+
+ padding-inline:var(--p-section-padding-horizontal);
+ padding-block:var(--p-section-padding-vertical);
+
+ @include scroll();
+ max-inline-size:pxToRem(520); margin-inline:auto;
+
+ &:where(:nth-child(n +2)) {
+ border-block-start:solid pxToRem(1) hsl(var(--p-section-border-color));
+ }
+ #{$theme-dark} & {
+ --p-section-border-color: var(--color-neutral-85);
+ }
+ }
+ /** states **/
+ /* align states */
+ &:where(.is-inline-end) { inset-inline-end:pxToRem(-10); inset-inline-start:auto; }
+ &:where(.is-block-end) {
+ inset-block-start:calc(100% + #{pxToRem(10)}); inset-block-end:auto;
+ &::before, &::after { inset-block-start:pxToRem(-8); inset-block-end:auto; clip-path:polygon(50% 0%, 100% 100%, 0% 100%); }
+ &::after { transform:translateY(pxToRem(-2)); }
+ }
+ /* arrow align */
+ &.is-arrow-end {
+ &::before, &::after {
+ inset-inline-end:pxToRem(30); inset-inline-start:auto;
+ }
+ &::after { inset-inline-end:pxToRem(29.5); }
+ }
+ &.is-arrow-center {
+ &::before, &::after {
+ inset-inline-start:50%; transform:translateX(-50%);
+ }
+ &::after { transform:translateX(-50%) translateY(pxToRem(2)); }
+ }
+ &.is-no-arrow {
+ &::before, &::after {
+ display:none;
+ }
+ }
+ &.is-full-screen-mobile {
+ @media #{$break1}, #{$break2} {
+ max-inline-size: none;
+ inset: 0;
+ }
+ }
+ &.is-modal-screen-mobile {
+ @media #{$break1} {
+ position:fixed; inset-block:0; inset-inline:pxToRem(8);
+ padding:0; inline-size:auto; max-inline-size:none;
+ &::backdrop { background-color:hsl(240 22% 10% / 0.6); }
+ }
+
+ }
+
+ &-list {
+ display:flex; flex-direction:column; gap:pxToRem(8);
+ font-size: var(--font-size-0);
+ &-item { flex-shrink:0}
+ }
+ &-button {
+ --p-drop-icon-color: var(--color-neutral-20);
+ --p-drop-text-color: var(--color-neutral-60);
+ --p-drop-item-bg-color-hover: var(--color-neutral-10);
+ --p-drop-item-bg-color-selected: var(--color-neutral-10);
+
+ $padding-horizontal: pxToRem(12);
+ $padding-vertical: pxToRem(10);
+
+ --p-button-padding-horizontal: var(--button-padding-horizontal, #{$padding-horizontal});
+ --p-button-padding-vertical: var(--button-padding-vertical, #{$padding-vertical});
+
+
+ display:flex; gap:pxToRem(12); inline-size:100%;
+ padding-inline:var(--p-button-padding-horizontal);
+ padding-block:var(--p-button-padding-vertical);
+ background-color:hsl(var(--p-drop-bg-color)); border-radius:var(--border-radius-small);
+ -webkit-user-select:none; user-select:none; line-height: 1.5; /* 20 / 14 font-size */
+ .text { color:hsl(var(--p-drop-text-color)); }
+ [class*="icon"] {
+ align-self:center; font-size:pxToRem(16); line-height:1; color:hsl(var(--p-drop-icon-color));
+ &::before { vertical-align:middle; }
+ }
+ &:where(:focus-visible) { }
+ &:where(:hover, :focus) { --p-drop-bg-color:var(--p-drop-item-bg-color-hover); outline:none; }
+ &:where(.is-selected) { --p-drop-bg-color:var(--p-drop-item-bg-color-selected); }
+ .text + [class*="icon"] { margin-inline-start:auto; }
+ }
+
+ #{$theme-dark} &{
+ --p-drop-bg-color: var(--color-neutral-105);
+ --p-drop-border-color: var(--drop-border-color, var(--color-neutral-85));
+ &-button {
+ --p-drop-text-color: var(--color-neutral-15);
+ --p-drop-item-bg-color-hover: var(--color-neutral-85);
+ --p-drop-item-bg-color-selected: var(--color-neutral-85);
+ }
+ }
+}
diff --git a/v2/legacy/src/7-components/_file-preview.scss b/v2/legacy/src/7-components/_file-preview.scss
new file mode 100644
index 0000000000..f2c4ad4019
--- /dev/null
+++ b/v2/legacy/src/7-components/_file-preview.scss
@@ -0,0 +1,37 @@
+@use '../abstract' as *;
+.file-preview {
+ --p-file-preview-text-color: var(--color-neutral-20);
+ --p-file-preview-bg-color: var(--color-neutral-0);
+ --p-file-preview-border-color: var(--color-neutral-5);
+
+ position: relative;
+ display: grid;
+ place-content: center;
+ inline-size: pxToRem(205);
+ aspect-ratio: 16 / 10;
+ gap: pxToRem(8);
+ color: hsl(var(--p-file-preview-text-color));
+ background-color: hsl(var(--p-file-preview-bg-color));
+ border: solid pxToRem(1) hsl(var(--p-file-preview-border-color));
+ border-radius: var(--border-radius-small);
+ overflow: hidden;
+
+ &:where(:focus, :hover) {
+ .file-preview-image { opacity:1; }
+ }
+
+ &-image {
+ position:absolute; inset:0; inline-size:100%; block-size:100%; opacity:0.65; transition:opacity var(--transition);
+ img { display:block; inline-size:100%; block-size:100%; object-fit:cover; }
+ }
+ &-content { position:relative; display:grid; gap:pxToRem(8); justify-items:center; }
+ .avatar {}
+ &.is-with-image { border-width:0; }
+ &.is-full-cover-image { place-content:revert; }
+
+ #{$theme-dark} & {
+ --p-file-preview-text-color: var(--color-neutral-20);
+ --p-file-preview-bg-color: var(--color-neutral-90);
+ --p-file-preview-border-color: var(--color-neutral-85);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_grid-item-1.scss b/v2/legacy/src/7-components/_grid-item-1.scss
new file mode 100644
index 0000000000..6603e5845d
--- /dev/null
+++ b/v2/legacy/src/7-components/_grid-item-1.scss
@@ -0,0 +1,26 @@
+@use '../abstract' as *;
+.grid-item-1 {
+ --small-title-color: var(--color-neutral-20);
+
+ display: grid;
+ grid-template-areas: "start-start start-end"
+ "end-start end-end";
+ grid-template-columns: 1fr auto;
+ grid-template-rows: auto 1fr;
+ column-gap: pxToRem(16);
+ row-gap: pxToRem(48);
+
+ block-size: 100%;
+
+ &-start-start { grid-area:start-start; }
+ &-start-end { grid-area:start-end; }
+ &-end-start { grid-area:end-start; justify-content:end; align-self:end; }
+ &-end-end { grid-area:end-end; display:flex; justify-content:end; align-items:end; }
+
+ /* specific styles */
+ .eyebrow-heading-3 { color:hsl(var(--small-title-color)); }
+ .icons {
+ line-height: 1;
+ [class*="icon"]::before { vertical-align:sub; }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_index.scss b/v2/legacy/src/7-components/_index.scss
new file mode 100644
index 0000000000..47880dfe70
--- /dev/null
+++ b/v2/legacy/src/7-components/_index.scss
@@ -0,0 +1,35 @@
+@forward "alert";
+@forward "alert-sticky";
+@forward "action-bar";
+@forward "list";
+@forward "collapsible";
+@forward "tabs";
+@forward "secondary-tabs";
+@forward "modal";
+@forward "drop";
+@forward "inline-links";
+@forward "upload-image";
+@forward "status";
+@forward "upload-box";
+@forward "upload-file-box";
+@forward "file-preview";
+@forward "grid-item-1";
+@forward "pagination";
+@forward "steps";
+@forward "buttons-list";
+@forward "toggle-button";
+@forward "clickable-list";
+@forward "progress-bar";
+@forward "top-cover";
+
+@forward "code-panel";
+@forward "tab-text-ediror";
+
+@forward "top-banner";
+
+/* main parts */
+@forward "main-header";
+@forward "breadcrumbs";
+@forward "user-profile";
+@forward "side-nav";
+@forward "main-footer";
diff --git a/v2/legacy/src/7-components/_inline-links.scss b/v2/legacy/src/7-components/_inline-links.scss
new file mode 100644
index 0000000000..2f665a79ed
--- /dev/null
+++ b/v2/legacy/src/7-components/_inline-links.scss
@@ -0,0 +1,20 @@
+@use '../abstract' as *;
+.inline-links {
+ display: flex;
+ align-items: baseline;
+ font-size: pxToRem(14);
+
+ &-item {
+ padding-inline:pxToRem(20);
+ &:where(:not(:last-child)) { border-inline-end:solid pxToRem(1) hsl(var(--color-border)); }
+ }
+ /* states */
+ &:where(.is-center) { justify-content:center; }
+
+ &:where(.is-no-padding-first-and-last) {
+ :where(.inline-links-item) {
+ &:first-child { padding-inline-start:0; }
+ &:last-child { padding-inline-end:0; }
+ }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_list.scss b/v2/legacy/src/7-components/_list.scss
new file mode 100644
index 0000000000..8d045c6035
--- /dev/null
+++ b/v2/legacy/src/7-components/_list.scss
@@ -0,0 +1,71 @@
+@use "../abstract" as *;
+.list {
+ --p-list-text-color: var(--color-neutral-60);
+ color: hsl(var(--p-list-text-color));
+
+ display:flex; flex-direction:column; gap:pxToRem(24); font-size:pxToRem(16);
+
+ &-item {
+ display:flex; align-items:baseline; gap:pxToRem(20);
+ > * { vertical-align:middle; }
+ [class*="icon"] { line-height:1; }
+ .text { align-self:center; line-height:1.5; }
+ }
+
+ .icon-check {
+ flex-shrink:0; display:inline-grid; place-content:center;
+ inline-size:pxToRem(24); block-size:pxToRem(24);
+ color:hsl(var(--color-neutral-0)); font-size:pxToRem(14);
+ background-color:hsl(var(--color-primary-100)); border-radius:50%;
+ }
+
+ #{$theme-dark} & {
+ --p-list-text-color: var(--color-neutral-20);
+ }
+}
+
+.un-order-list {
+ display:flex; flex-direction:column;
+ list-style-type:disc; line-height:1.8;
+ padding-inline-start:pxToRem(16);
+ > *::marker { all:revert; }
+}
+
+.numeric-list {
+ --p-numeric-border-color: var(--color-neutral-10);
+ --p-numeric-bg-color: var(--color-neutral-5);
+ --p-numeric-text-color: var(--color-neutral-60);
+ counter-reset: number;
+ display:grid; row-gap:pxToRem(24);
+ &-item {
+ counter-increment: number;
+ display:flex; align-items:baseline; column-gap:pxToRem(24);
+ &::before {
+ content: counter(number); flex-shrink:0;
+ display:grid; place-content:center; inline-size:pxToRem(32); block-size:pxToRem(32);
+ background-color:hsl(var(--p-numeric-bg-color)); color:hsl(var(--p-numeric-text-color));
+ border:solid pxToRem(1) hsl(var(--p-numeric-border-color));
+ border-radius:var(--border-radius-circular);
+ }
+ }
+ #{$theme-dark} & {
+ --p-numeric-border-color: var(--color-neutral-80);
+ --p-numeric-bg-color: var(--color-neutral-85);
+ --p-numeric-text-color: var(--color-neutral-20);
+ }
+}
+
+.order-list {
+ counter-reset: number;
+ display:flex; flex-direction:column; gap:pxToRem(32);
+
+ &-item {
+ counter-increment: number;
+ display:flex; flex-direction:column; flex-wrap:wrap; gap:pxToRem(16);
+ }
+ &-content {
+ display:flex; gap:pxToRem(16);
+ &::before { content:counter(number); }
+ &.is-hide-number::before { opacity:0; }
+ }
+}
diff --git a/v2/legacy/src/7-components/_main-footer.scss b/v2/legacy/src/7-components/_main-footer.scss
new file mode 100644
index 0000000000..1561fe98e8
--- /dev/null
+++ b/v2/legacy/src/7-components/_main-footer.scss
@@ -0,0 +1,20 @@
+@use '../abstract' as *;
+
+.main-footer {
+ display: flex;
+ flex-wrap: wrap;
+ padding-block: pxToRem(16);
+ border-block-start: solid pxToRem(1) hsl(var(--color-border));
+ margin-inline: pxToRem(32);
+ margin-block-start: pxToRem(32);
+ font-size: var(--font-size-00);
+ @media #{$break1}, #{$break2} {
+ gap:pxToRem(16);
+ &-start { margin-inline-end:auto; }
+ }
+ @media #{$break3open} {
+ display: flex;
+ flex-direction: row-reverse;
+ justify-content: space-between;
+ }
+}
diff --git a/v2/legacy/src/7-components/_main-header.scss b/v2/legacy/src/7-components/_main-header.scss
new file mode 100644
index 0000000000..ab44b15dcb
--- /dev/null
+++ b/v2/legacy/src/7-components/_main-header.scss
@@ -0,0 +1,57 @@
+@use '../abstract' as *;
+:root {
+ $main-header-height: pxToRem(64);
+ --main-header-height: #{$main-header-height};
+}
+.main-header {
+ --p-main-header-bg-color: var(--color-neutral-0);
+ --p-main-header-border-color: var(--color-border);
+
+ display:flex; align-items:center; gap:pxToRem(24); block-size:var(--main-header-height); padding-inline:pxToRem(24);
+ background-color:hsl(var(--p-main-header-bg-color));
+ border-block-end:solid pxToRem(1) hsl(var(--p-main-header-border-color));
+ -webkit-user-select:none; user-select:none;
+
+ > * { min-inline-size:0; }
+ &-end { flex-shrink:0; display:flex; align-items:center; block-size:100%; gap:pxToRem(24); }
+
+ /* override */
+ .drop {
+ @media #{$break1}, #{$break2} {
+ position:fixed; z-index:5; inset-block-start:var(--main-header-height); inset-inline:0;
+ inline-size:100%; max-inline-size:none;
+ }
+ }
+
+
+ #{$theme-dark} & {
+ --p-main-header-bg-color: var(--color-neutral-105);
+ }
+
+ @media #{$break1}, #{$break2} {
+ gap:pxToRem(8); padding-inline-start:pxToRem(8);
+ .logo { margin-inline-end:auto; }
+ .user-profile {
+ .drop { max-inline-size:initial; }
+ .drop-wrapper { position:static; }
+ }
+ #Support { inset-block-end:0; overflow:auto; border-start-start-radius:0; border-start-end-radius:0; }
+ }
+ @media #{$break3open} {
+ &-end { margin-inline-start:auto; }
+
+ .user-profile-button + .drop {
+ border-start-start-radius:0; border-start-end-radius:0;
+ inset-inline:pxToRem(-1) 0; inset-block-start:100%;
+ }
+ #Support {
+ margin-block-start:pxToRem(2);
+ &.drop {
+ &::before, &::after { inset-block-start:pxToRem(-7); }
+ &::before { inline-size:pxToRem(16); }
+ &::after { inline-size:pxToRem(17); }
+ }
+ }
+ }
+}
+
diff --git a/v2/legacy/src/7-components/_modal.scss b/v2/legacy/src/7-components/_modal.scss
new file mode 100644
index 0000000000..e47a103fa6
--- /dev/null
+++ b/v2/legacy/src/7-components/_modal.scss
@@ -0,0 +1,154 @@
+@use '../abstract' as *;
+.modal {
+ --p-modal-title-color: var(--color-neutral-80);
+ --p-modal-text-color: var(--color-neutral-60);
+ --p-modal-bg-color: var(--color-neutral-0);
+ --p-modal-border-color: var(--color-neutral-10);
+
+ --p-modal-border-radius: var(--border-radius-medium);
+
+ --p-modal-content-bg-color: var(--color-neutral-5);
+
+ $modal-padding: pxToRem(32);
+ --p-modal-padding: #{$modal-padding};
+
+ $header-padding-bottom: pxToRem(16);
+ --padding-header-bottom: #{$header-padding-bottom};
+
+ display:flex; flex-direction:column;
+ box-sizing:border-box; padding:0;
+
+ inline-size: fit-content;
+ min-inline-size: min(pxToRem(410), 95%);
+ max-inline-size: min(pxToRem(640), 95%);
+ max-block-size: 90vh;
+
+ box-shadow: var(--shadow-large);
+ background-color: hsl(var(--p-modal-bg-color));
+ border-radius: var(--p-modal-border-radius);
+ border: solid pxToRem(1) hsl(var(--p-modal-border-color));
+ color: hsl(var(--p-modal-text-color));
+
+ &:where([open]) { display:flex; }
+ &-form { min-block-size:0; display:flex; flex-direction:column; inline-size:100%; padding:var(--p-modal-padding); }
+ &.is-small { @media #{$break2open} { inline-size:pxToRem(410); } }
+ &.is-big { @media #{$break3open} { inline-size:pxToRem(640); } }
+ &.is-huge { @media #{$break2open} { inline-size:pxToRem(1200); max-inline-size:90vw; } }
+ &.is-secondary {
+ $modal-padding: pxToRem(24);
+ --p-modal-padding: #{$modal-padding};
+
+ $header-padding-bottom: pxToRem(16);
+ --padding-header-bottom: #{$header-padding-bottom};
+ }
+ &.is-inner-modal {
+ --p-modal-title-color: var(--color-neutral-105);
+ --p-modal-text-color: var(--color-neutral-60);
+ --p-modal-bg-color: var(--color-neutral-5);
+ --p-modal-border-color: var(--color-neutral-10);
+
+ $modal-padding: pxToRem(24);
+ --p-modal-padding: #{$modal-padding};
+
+ --p-modal-border-radius:var(--border-radius-small);
+
+ max-inline-size:none; box-shadow:none;
+
+ .modal-header { margin-block-end:0; }
+ .modal-content {
+ padding-block-start: var(--p-modal-padding);
+ margin-block-start: var(--p-modal-padding);
+
+ margin-inline: calc(var(--p-modal-padding) * -1);
+ padding-inline: calc(var(--p-modal-padding));
+ border-block-start:solid pxToRem(1) hsl(var(--p-modal-border-color));
+ }
+ #{$theme-dark} & {
+ --p-modal-bg-color: var(--color-neutral-85);
+ --p-modal-border-color: var(--color-neutral-80);
+ }
+ }
+ &.is-separate-header {
+ > .modal-form {
+ > .modal-header {
+ padding: var(--p-modal-padding); padding-block-start: 0;
+ border-block-end: solid pxToRem(1) hsl(var(--color-border));
+ margin-inline: calc(var(--p-modal-padding) * -1); margin-block-end:0;
+ }
+ > .modal-content { padding-block:var(--p-modal-padding); margin-block:0; }
+ > .modal-footer { margin-block-start:0; }
+ }
+ }
+ &.is-page-in-mobile {
+ @media #{$break1} {
+ all:unset; block-size:unset!important; inline-size:100%;
+ .modal {
+ &-form { min-block-size:100dvh; padding:0; }
+ &-header,
+ &-footer { position:relative; z-index:1; background-color:hsl(var(--p-modal-bg-color)); padding-inline:pxToRem(16)!important; margin-inline:0!important; }
+ &-header { position:sticky; inset-block-start:0; padding-block-start:pxToRem(16)!important; }
+ &-footer { position:sticky; inset-block-end:0; padding-block-end:pxToRem(16); }
+ }
+ &::backdrop { background-color:transparent; }
+ }
+ }
+
+ &-header {
+ display:flex; flex-direction:column; gap:pxToRem(4);
+ flex-shrink:0; margin-block-end:var(--padding-header-bottom);
+ p { font-size:var(--font-size-1); }
+ }
+ &-title { color:hsl(var(--p-modal-title-color)); line-height:1; }
+ &-content {
+ @include scroll; overflow:auto; min-block-size:0;
+ padding-block:pxToRem(4); margin-block:pxToRem(-4); /* used to show focus outline */
+ margin-inline: calc(var(--p-modal-padding) * -1); padding-inline: calc(var(--p-modal-padding));
+ &-main { background-color:hsl(var(--p-modal-content-bg-color)); }
+ &-spacer {
+ display:grid; gap:pxToRem(24);
+ }
+ }
+ &-footer {
+ display:grid; gap:pxToRem(16);
+ flex-shrink:0; padding:var(--p-modal-padding); padding-block-end:pxToRem(0);
+ margin-inline:calc(var(--p-modal-padding) * -1); margin-block-start:var(--p-modal-padding);
+ border-block-start:solid pxToRem(1) hsl(var(--color-border));
+ }
+
+ &::backdrop {
+ background-color:hsl(240 5% 8% / 0.3);
+ backdrop-filter: blur(#{pxToRem(3)});
+ }
+
+ @media #{$break1} {
+ $modal-padding: pxToRem(16);
+ --p-modal-padding: #{$modal-padding};
+
+ $header-padding-bottom: pxToRem(12);
+ --padding-header-bottom: #{$header-padding-bottom};
+ }
+
+ #{$theme-dark} & {
+ --p-modal-title-color: var(--color-neutral-10);
+ --p-modal-text-color: var(--color-neutral-20);
+ --p-modal-bg-color: var(--color-neutral-90);
+ --p-modal-border-color: var(--color-neutral-85);
+
+ --p-modal-content-bg-color: var(--color-neutral-90);
+
+ --color-border: var(--color-neutral-80);
+
+ &::backdrop { background-color:hsl(240 5% 8% / 0.6); }
+
+ &-curtain { --p-modal-curtain-opacity: 0.6; }
+ }
+}
+
+
+.modal-open-full-screen-mobile {
+ @media #{$break1} {
+ main,
+ .wizard,
+ .grid-with-side { display:none!important; }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_pagination.scss b/v2/legacy/src/7-components/_pagination.scss
new file mode 100644
index 0000000000..25e72e5c1c
--- /dev/null
+++ b/v2/legacy/src/7-components/_pagination.scss
@@ -0,0 +1,30 @@
+@use '../abstract' as *;
+.pagination {
+ $button-size: pxToRem(32);
+ --button-size: #{$button-size};
+
+ display:flex; gap:pxToRem(20);
+
+ &-list {
+ display:flex; gap:pxToRem(8);
+ }
+ .button {
+ flex-shrink:0; padding-inline:pxToRem(12);
+ [class*="icon"] {
+ transform: scaleX(var(--transform-direction));
+ &::before { vertical-align:middle; }
+ }
+
+ /* adjust color from default button */
+ &:where(:not(.is-text)) {
+ --p-text-color-disabled: var(--color-neutral-90);
+ #{$theme-dark} & {
+ --p-text-color-disabled: var(--color-neutral-20);
+ }
+ }
+ }
+
+ /* states */
+ &.is-center { justify-content:center; }
+ &.is-end { justify-content:flex-end; }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_progress-bar.scss b/v2/legacy/src/7-components/_progress-bar.scss
new file mode 100644
index 0000000000..dd54fb8cca
--- /dev/null
+++ b/v2/legacy/src/7-components/_progress-bar.scss
@@ -0,0 +1,43 @@
+@use '../abstract' as *;
+.progress-bar {
+ --p-graph-bg-color: var(--color-neutral-15);
+ --p-graph-color-fill: var(--color-information-100);
+ --p-graph-color-warning: var(--color-warning-100);
+ --p-graph-color-danger: var(--color-danger-100);
+
+ --p-graph-icon-color: var(--color-neutral-50);
+ --p-graph-text-color: var(--color-neutral-60);
+ --p-graph-used-text-color: var(--color-neutral-70);
+ --p-graph-max-text-color: var(--color-neutral-50);
+
+ display:flex; flex-direction:column; gap:pxToRem(8);
+ -webkit-user-select:none; user-select:none;
+
+ &-container {
+ display:flex; block-size:pxToRem(8); border-radius:var(--border-radius-xsmall);
+ background-color:hsl(var(--p-graph-bg-color));
+ /* fill graph */
+ &::before {
+ content:""; display:block; block-size:100%; flex-basis:var(--graph-size, 0);
+ border-radius:inherit; inline-size:var(--graph-size);
+ background-color:hsl(var(--p-graph-color-fill));
+ }
+ /* states */
+ &.is-warning { --p-graph-color-fill:var(--p-graph-color-warning); }
+ &.is-danger { --p-graph-color-fill:var(--p-graph-color-danger); }
+ }
+ &-top-line {
+ color:hsl(var(--p-graph-text-color));
+ [class*="icon"] { color:hsl(var(--p-graph-icon-color)); }
+ }
+ &-text-used { color:hsl(var(--p-graph-used-text-color)); }
+ &-text-max { color:hsl(var(--p-graph-max-text-color)); }
+
+
+ #{$theme-dark} & {
+ --p-graph-bg-color: var(--color-neutral-85);
+ --p-graph-icon-color: var(--color-neutral-20);
+ --p-graph-text-color: var(--color-neutral-20);
+ --p-graph-used-text-color: var(--color-neutral-20);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_secondary-tabs.scss b/v2/legacy/src/7-components/_secondary-tabs.scss
new file mode 100644
index 0000000000..d3bd542714
--- /dev/null
+++ b/v2/legacy/src/7-components/_secondary-tabs.scss
@@ -0,0 +1,45 @@
+@use '../abstract' as *;
+.secondary-tabs {
+ --p-drop-tab-text-color: var(--color-neutral-60);
+ --p-drop-tab-bg-color: var(--transparent);
+
+ $drop-tab-height: pxToRem(32);
+ --p-drop-tab-height: #{$drop-tab-height};
+
+ $drop-tab-padding-horizontal: pxToRem(12);
+ --p-drop-tab-padding-horizontal: #{$drop-tab-padding-horizontal};
+
+ display:flex; gap:pxToRem(16);
+
+ &-item {}
+ &-button {
+ display:block; padding-inline:var(--p-drop-tab-padding-horizontal); user-select:none;
+ line-height:var(--p-drop-tab-height); border-radius:var(--border-radius-small);
+ color:hsl(var(--p-drop-tab-text-color)); background-color:hsl(var(--p-drop-tab-bg-color));
+ &:where(#{$disabled}) { --p-drop-tab-bg-color:var(--color-neutral-10); cursor:default; }
+ &:where(:not(#{$disabled})) { cursor:pointer; }
+ }
+
+ &:where(.is-large) {
+ $drop-tab-height: pxToRem(38);
+ --p-drop-tab-height: #{$drop-tab-height};
+
+ $drop-tab-padding-horizontal: pxToRem(20);
+ --p-drop-tab-padding-horizontal: #{$drop-tab-padding-horizontal};
+ }
+ &:where(.is-stretch) {
+ inline-size:100%;
+ .secondary-tabs {
+ &-item { flex:1; }
+ &-button { inline-size:100%; text-align:center; }
+ }
+ }
+ #{$theme-dark} & {
+ --p-drop-tab-text-color: var(--color-neutral-20);
+ &-button {
+ &:where(#{$disabled}) {
+ --p-drop-tab-bg-color: var(--color-neutral-85);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_side-nav.scss b/v2/legacy/src/7-components/_side-nav.scss
new file mode 100644
index 0000000000..77f6d55c01
--- /dev/null
+++ b/v2/legacy/src/7-components/_side-nav.scss
@@ -0,0 +1,114 @@
+@use '../abstract' as *;
+
+.side-nav {
+ --p-side-nav-bg-color: var(--color-neutral-0);
+ --p-side-nav-border-color: var(--color-border);
+
+ --p-side-nav-header-text-color: var(--color-neutral-50);
+
+ background-color: hsl(var(--p-side-nav-bg-color));
+ border-inline-end: solid pxToRem(1) hsl(var(--p-side-nav-border-color));
+
+ &-level-1,
+ &-level-2 { display:flex; flex-direction:column; }
+
+ &-level-1 {
+ position:relative; transition:var(--transition);
+ &.is-narrow {
+ @media #{$break3open} {
+ inline-size: pxToRem(72);
+ .drop-section { padding-inline-end:pxToRem(16); }
+ }
+ }
+ }
+ &-level-2 {
+ display:none; border-inline-start:solid pxToRem(1) hsl(var(--color-border));
+ &.is-open { display:flex; }
+ }
+
+ &-top { }
+ &-main {
+ flex:1; overflow-y:auto;
+ @include scroll(); scrollbar-gutter:initial;
+ overflow: overlay; // fallback macOS
+ overflow-x: hidden;
+
+ &:not(:hover) {
+ &::-webkit-scrollbar-thumb {
+ background: hsl(var(--transparent));
+ }
+
+ &::-webkit-scrollbar-corner {
+ background: hsl(var(--transparent));
+ }
+ }
+ }
+ &-bottom { }
+
+ /* override drop partial */
+ .drop {
+ &-section {
+ $padding-horizontal: pxToRem(16);
+ $padding-vertical: pxToRem(24);
+ --section-padding-horizontal: #{$padding-horizontal};
+ --section-padding-vertical: #{$padding-vertical};
+ }
+ &-list { }
+ &-button {
+ $padding-horizontal: pxToRem(12);
+ $padding-vertical: pxToRem(8);
+ --button-padding-horizontal: #{$padding-horizontal};
+ --button-padding-vertical: #{$padding-vertical};
+
+ line-height: 1.7145;
+ .text { @include trim(1); }
+ }
+ }
+ &-button {
+ position:absolute; inset-inline-end:pxToRem(-16); inset-block-end:pxToRem(28);
+ display:grid; place-content:center; padding-inline:0; inline-size:pxToRem(32);
+ border-radius:var(--border-radius-small);
+ .icon-cheveron-right { display:block; transition:var(--transition);}
+ &.is-open {
+ .icon-cheveron-right { transform:rotateZ(180deg); }
+ }
+ }
+ .collapsible-wrapper { padding:0; }
+ .eyebrow-heading-3 { color: var(--p-side-nav-header-text-color); }
+
+ #{$theme-dark} & {
+ --p-side-nav-bg-color: var(--color-neutral-105);
+
+ --p-side-nav-header-text-color: var(--color-neutral-20);
+ }
+ @media #{$break1}, #{$break2} {
+ &.is-mobile-center {
+ .drop {
+ &-list {
+ &-item {
+ display:flex; justify-content:center;
+ }
+ }
+ &-button {
+ justify-content:center;
+ [class*="icon"] { display:none; }
+ }
+ }
+ }
+
+ .side-nav-level-1 { display:block; }
+ .side-nav-level-2 { display:none; }
+ &.is-open-level-2 {
+ .side-nav-level-1 { display:none; }
+ .side-nav-level-2 { display:block; }
+ }
+ }
+ @media #{$break3open} {
+ display:flex; block-size:100%;
+
+ &-level-1,
+ &-level-2 { inline-size:pxToRem(200); }
+
+ .drop-section { margin-inline:0; }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_status.scss b/v2/legacy/src/7-components/_status.scss
new file mode 100644
index 0000000000..5e840a0de6
--- /dev/null
+++ b/v2/legacy/src/7-components/_status.scss
@@ -0,0 +1,22 @@
+@use '../abstract' as *;
+
+.status {
+ --p-status-color: var(--color-neutral-50);
+
+ display: flex;
+ align-items: baseline;
+ gap: pxToRem(8);
+ user-select: none;
+ &-icon {
+ inline-size:pxToRem(12); block-size:pxToRem(12); border-radius:var(--border-radius-circular);
+ background-color:hsl(var(--p-status-color));
+ }
+
+ /* Status */
+ &.is-offline { --p-status-color:var(--color-neutral-50); }
+ &.is-waiting { --p-status-color:var(--color-warning-50); }
+ &.is-pending { --p-status-color:var(--color-warning-100); }
+ &.is-failed { --p-status-color:var(--color-danger-100); }
+ &.is-complete { --p-status-color:var(--color-success-100); }
+ &.is-processing { --p-status-color:var(--color-information-100);}
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_steps.scss b/v2/legacy/src/7-components/_steps.scss
new file mode 100644
index 0000000000..732255e332
--- /dev/null
+++ b/v2/legacy/src/7-components/_steps.scss
@@ -0,0 +1,112 @@
+@use '../abstract' as *;
+.steps {
+ --p-step-bullet-icon-color: var(--color-neutral-0);
+ --p-step-bullet-content-color: var(--color-neutral-0);
+ --p-step-bullet-padding-color: var(--color-neutral-0);
+ --p-step-bullet-border-color: var(--color-neutral-20);
+
+ --p-step-bullet-sep-color: var(--color-neutral-20);
+
+ // Done step
+ --p-step-bullet-icon-color-done: var(--color-neutral-0);
+ --p-step-bullet-content-color-done: var(--color-neutral-20);
+ --p-step-bullet-padding-color-done: var(--color-neutral-20);
+ //--p-step-bullet-border-color-done: var(--color-neutral-50);
+
+ // Current Step
+ //--p-step-bullet-icon-color-current: var(--color-neutral-0);
+ --p-step-bullet-content-color-current: var(--color-primary-100);
+ //--p-step-bullet-padding-color-current:var(--color-neutral-0);
+ --p-step-bullet-border-color-current: var(--color-primary-100);
+
+ /* Color Text */
+ --p-step-text-color: var(--color-neutral-60);
+ --p-step-text-color-done: var(--color-neutral-50);
+ --p-step-text-color-current: var(--color-primary-100);
+
+ --p-substep-text-color: var(--color-neutral-50);
+ --p-substep-text-color-done: var(--color-neutral-50);
+ --p-substep-text-color-current: var(--color-neutral-80);
+
+ display:grid;
+ &-item {
+ position: relative;
+ font-size: var(--font-size-1);
+ color: hsl(var(--p-step-text-color));
+
+ [class*="heading"] { margin-block-start:pxToRem(12); margin-block-end:pxToRem(24); }
+ .bullet {
+ position:relative; inline-size:pxToRem(24); block-size:pxToRem(24);
+ .icon-check {
+ text-align:center; line-height:pxToRem(24);
+ color: hsl(var(--p-step-bullet-icon-color));
+ }
+ &::before {
+ content:""; display:block; inline-size:pxToRem(24); block-size:pxToRem(24); flex-shrink:0;
+ background-color: hsl(var(--p-step-bullet-content-color));
+ border: solid pxToRem(6) hsl(var(--p-step-bullet-padding-color));
+ box-shadow: 0 0 0 pxToRem(1) hsl(var(--p-step-bullet-border-color)) ;
+ border-radius: var(--border-radius-circular);
+ }
+ &.is-done {
+ --p-step-bullet-icon-color: var(--p-step-bullet-icon-color-done);
+ --p-step-bullet-content-color: var(--p-step-bullet-content-color-done);
+ --p-step-bullet-padding-color: var(--p-step-bullet-padding-color-done);
+ --p-step-text-color: var(--p-step-text-color-done);
+ &::before { line-height:0.9; text-indent:pxToRem(-1); }
+ .icon-check { position:absolute; inset:0; }
+ }
+ &.is-current {
+ --p-step-bullet-content-color: var(--p-step-bullet-content-color-current);
+ --p-step-bullet-border-color: var(--p-step-bullet-border-color-current);
+ --p-step-text-color: var(--p-step-text-color-current);
+ }
+ }
+
+ &-content { line-height:1.5; }
+ &-wrapper {
+ position:relative; display:flex; gap:pxToRem(24); min-block-size:pxToRem(72);
+ &::after {
+ content:""; display:block; inline-size:pxToRem(1);
+ position:absolute; inset-block-start:35px; inset-block-end:8px; inset-inline-start:pxToRem(11.5);
+ background-color:hsl(var(--p-step-bullet-sep-color));
+ }
+ }
+ &:last-child {
+ min-block-size: 0;
+ .steps-item-wrapper::after {display:none;}
+ }
+
+ &.is-disabled { opacity:0.38; }
+ }
+
+ &-sub {
+ display:grid; gap:pxToRem(16); padding-block:pxToRem(16);
+ font-size:var(--font-size-0);
+ &-item {
+ color:hsl(var(--p-substep-text-color));
+ &.is-done { --p-substep-text-color:var(--p-substep-text-color-done); }
+ &.is-current { --p-substep-text-color:var(--p-substep-text-color-current); }
+ }
+ }
+
+ #{$theme-dark} &{
+ --p-step-bullet-content-color: var(--color-neutral-100);
+ --p-step-bullet-padding-color: var(--color-neutral-100);
+ --p-step-bullet-border-color: var(--color-neutral-60);
+
+ --p-step-bullet-sep-color: var(--color-neutral-60);
+
+ --p-step-bullet-content-color-done: var(--color-neutral-50);
+ --p-step-bullet-padding-color-done: var(--color-neutral-50);
+
+ /* Color Text */
+ --p-step-text-color: var(--color-neutral-15);
+ --p-step-text-color-done: var(--color-neutral-50);
+ --p-step-text-color-current: var(--color-primary-100);
+
+ --p-substep-text-color: var(--color-neutral-60);
+ --p-substep-text-color-done: var(--color-neutral-60);
+ --p-substep-text-color-current: var(--color-neutral-20);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_tab-text-ediror.scss b/v2/legacy/src/7-components/_tab-text-ediror.scss
new file mode 100644
index 0000000000..61e5910470
--- /dev/null
+++ b/v2/legacy/src/7-components/_tab-text-ediror.scss
@@ -0,0 +1,26 @@
+@use '../abstract' as *;
+
+.tab-text-editor {
+ --p-tab-text-editor-bg-color: var(--color-neutral-0);
+
+ background-color:hsl(var(--p-tab-text-editor-bg-color));
+ border:solid pxToRem(1) hsl(var(--color-border)); border-radius:var(--border-radius-small);
+
+ &-nav { padding:pxToRem(8); border-block-end:solid pxToRem(1) hsl(var(--color-border)); }
+ &-content-box { position:relative; }
+ &-content { padding:pxToRem(12); block-size:pxToRem(200); overflow:auto; border-width:0; font-family:var(--code-font); }
+ &-options {
+ opacity:0; transition:var(--transition);
+ padding-inline-end:pxToRem(8); padding-block-end:pxToRem(8);
+ position:absolute; inset-inline-end:0; inset-block-end:0;
+ background: linear-gradient(315deg, hsl(var(--p-tab-text-editor-bg-color)) 35%, hsl(var(--p-tab-text-editor-bg-color) / 0) 100%);
+ > * {filter:none; }
+ }
+ &:where(:focus-within, :hover, :focus) {
+ .tab-text-editor-options { opacity:1; }
+ }
+
+ #{$theme-dark} & {
+ --p-tab-text-editor-bg-color: var(--color-neutral-100);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_tabs.scss b/v2/legacy/src/7-components/_tabs.scss
new file mode 100644
index 0000000000..94e1df85f2
--- /dev/null
+++ b/v2/legacy/src/7-components/_tabs.scss
@@ -0,0 +1,108 @@
+@use '../abstract' as *;
+
+.tabs {
+ --p-tabs-text-color: var(--p-tabs-text-color-default);
+ --p-tabs-text-color-default: var(--color-neutral-50);
+ --p-tabs-text-color-hover: var(--color-neutral-80);
+ --p-tabs-text-color-active: var(--color-neutral-80);
+ --p-tabs-text-color-selected: var(--color-neutral-80);
+
+ --p-tabs-bg-color: var(--p-tabs-bg-defalut);
+ --p-tabs-bg-defalut: var(--transparent);
+ --p-tabs-bg-color-hover: var(--color-neutral-10);
+
+ --p-tabs-outline-color: var(--p-tabs-outline-color-default);
+ --p-tabs-outline-color-default: var(--transparent);
+ --p-tabs-outline-color-focus: var(--color-neutral-1000) / 0.16;
+
+ --p-tabs-border-color: var(--p-tabs-border-color-default);
+ --p-tabs-border-color-default: var(--transparent);
+ --p-tabs-border-color-selected: var(--color-neutral-80);
+
+ --tabs-shadow-color: var(--color-neutral-0);
+ --tabs-button-arrow-color: var(--color-neutral-80);
+
+ position:relative;
+
+ &-button {
+ position:relative; display:flex; align-items:center;
+ padding-inline:pxToRem(4); padding-block:pxToRem(7);
+ user-select:none; border-radius:pxToRem(10);
+
+ color:hsl(var(--p-tabs-text-color));
+ background-color:hsl(var(--p-tabs-bg-color)); background-clip:padding-box;
+ border:solid pxToRem(4) hsl(var(--p-tabs-outline-color));
+
+
+ .text {
+ display:flex; align-items:center; padding-inline:pxToRem(12); inline-size:100%;
+ }
+ &::before {
+ content:""; display:block; block-size:pxToRem(1); background-color:transparent;
+ position:absolute; inset-inline:0; inset-block-end:pxToRem(-4);
+ border-radius:var(--border-radius-xsmall);
+ }
+ &::after {
+ content:""; display:block; border-radius:var(--border-radius-small);
+ }
+ &:where(:hover, &:focus) {
+ box-shadow: none;
+ }
+ &:where(:hover):not(#{$disabled}) {
+ --p-tabs-text-color: var(--p-tabs-text-color-hover);
+ --p-tabs-bg-color: var(--p-tabs-bg-color-hover);
+ }
+ &:where(:focus-visible):not(#{$disabled}) {
+ --p-tabs-outline-color: var(--p-tabs-outline-color-focus);
+ }
+ &:where(:active):not(#{$disabled}) {
+ --p-tabs-text-color: var(--p-tabs-text-color-active);
+ }
+ &:where(#{$disabled}) {
+ opacity: 0.4;
+ }
+ &:is(.is-selected) {
+ --p-tabs-text-color: var(--p-tabs-text-color-selected);
+ &::before{ background-color:hsl(var(--p-tabs-border-color-selected)); }
+ }
+ }
+
+ &-list {
+ display:flex; gap:pxToRem(16); overflow:auto; margin-block-end:pxToRem(-1);
+ /* remove Scroll */
+ -ms-overflow-style:none;/* IE and Edge */ scrollbar-width:none;/* Firefox */
+ &::-webkit-scrollbar { display:none; } /* Webkit */
+ }
+ &-item { }
+ &-button-scroll {
+ position:absolute; z-index:3; inset-block:0;
+ display:flex; align-items:center; inline-size:pxToRem(80); block-size:100%; padding-block-end:pxToRem(5); opacity:0.4; transition:var(--transition);
+ color:hsl(var(--tabs-button-arrow-color)); font-size:var(--font-size-3);
+ > * { margin-inline:-3px; transform:scaleX(var(--transform-direction)); }
+ &:where(:hover, :focus) { opacity:1; }
+ &.is-start {
+ inset-inline-start:0;
+ background:linear-gradient(to right, hsl(var(--tabs-shadow-color)) 0%, hsl(var(--tabs-shadow-color) / 0) 100%);
+ }
+ &.is-end {
+ inset-inline-end:0; justify-content:end;
+ background:linear-gradient(to left, hsl(var(--tabs-shadow-color)) 0%, hsl(var(--tabs-shadow-color) / 0) 100%);
+ }
+ }
+
+ #{$theme-dark} & {
+ --p-tabs-text-color-hover: var(--color-neutral-10);
+ --p-tabs-text-color-active: var(--color-neutral-10);
+ --p-tabs-text-color-selected: var(--color-neutral-10);
+
+ --p-tabs-bg-color-hover: var(--color-neutral-0) / 0.04;
+
+ --p-tabs-outline-color-focus: var(--color-neutral-0) / 0.16;
+
+ --p-tabs-border-color-selected: var(--color-neutral-10);
+
+ --tabs-button-arrow-color: var(--color-neutral-20);
+
+ --tabs-shadow-color: var(--color-neutral-100);
+ }
+}
diff --git a/v2/legacy/src/7-components/_toggle-button.scss b/v2/legacy/src/7-components/_toggle-button.scss
new file mode 100644
index 0000000000..e5d46d5c93
--- /dev/null
+++ b/v2/legacy/src/7-components/_toggle-button.scss
@@ -0,0 +1,40 @@
+@use '../abstract' as *;
+.toggle-button {
+ --p-icon-toggle-bg-color: var(--color-neutral-0);
+ --p-icon-toggle-border-color: var(--color-neutral-15);
+
+ --p-icon-text-color: var(--p-icon-text-color-default);
+ --p-icon-text-color-default: var(--color-neutral-60);
+ --p-icon-text-color-didabled: var(--color-neutral-20);
+
+ --p-button-color: var(--p-button-color-default);
+ --p-button-color-default: var(--transparent);
+ --p-button-color-selected: var(--color-neutral-10);
+
+ background-color: hsl(var(--p-icon-toggle-bg-color));
+ &-list {
+ display:flex; gap:pxToRem(8); padding:pxToRem(2);
+ border:solid pxToRem(1) hsl(var(--p-icon-toggle-border-color)); border-radius:var(--border-radius-xsmall);
+ }
+ &-item {}
+ &-element {
+ display:grid; place-content:center;
+ inline-size:pxToRem(36); block-size:pxToRem(36);
+ background-color:hsl(var(--p-button-color)); color:hsl(var(--p-icon-text-color)); border-radius:var(--border-radius-xsmall);
+ &.is-selected { --p-button-color: var(--p-button-color-selected); }
+ {$disabled} {
+ --p-icon-text-color: var(--p-icon-text-color-didabled);
+ cursor: initial;
+ }
+ }
+
+ #{$theme-dark} & {
+ --p-icon-toggle-bg-color: var(--color-neutral-90);
+ --p-icon-toggle-border-color: var(--color-neutral-80);
+
+ --p-icon-text-color-default: var(--color-neutral-20);
+ --p-icon-text-color-didabled: var(--color-neutral-70);
+
+ --p-button-color-selected: var(--color-neutral-80);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_top-banner.scss b/v2/legacy/src/7-components/_top-banner.scss
new file mode 100644
index 0000000000..62704a60ad
--- /dev/null
+++ b/v2/legacy/src/7-components/_top-banner.scss
@@ -0,0 +1,42 @@
+@use '../abstract' as *;
+.top-banner {
+ position:relative; overflow:hidden; display:flex; justify-content:center;
+ padding-block:pxToRem(5); padding-inline:pxToRem(12);
+
+ &-bg {
+ position:absolute; inset:0;
+ block-size:60px; inline-size:100%;
+ svg, img {
+ animation:rotate 7s infinite linear;
+ inline-size:100vw;
+ filter:blur(8px);
+ max-inline-size:none; max-block-size:none;
+ @media (prefers-reduced-motion) { animation:none; }
+ }
+ }
+ &-bg-1 {
+ position:absolute; inset-inline-start:0; inset-block-start:0;
+ transform:translateX(-60%) translateY(-35%); /* for inline svg */
+
+ inline-size:100vw;
+ }
+ &-bg-2 {
+ position:absolute; inset-inline-end:0; inset-block-start:0;
+ transform:translateX(55%) translateY(-50%); /* for inline svg */
+ inline-size:100vw;
+ }
+ &-content { position:relative; z-index:1; line-height:pxToRem(50); transition:var(--transition); }
+ &-button { position:absolute; inset-block:0; inset-inline-end:pxToRem(12); }
+
+ [data-banner-hidden] & {
+ display: none;
+ }
+ @media #{$break1} {
+ inline-size:100%; padding:pxToRem(16);
+ &-content { display:flex; flex-direction:column; inline-size:100%; line-height:1.5; transition:var(--transition); }
+ &-button {
+ position:static; line-height:1; align-self:end; order:-1;
+ margin-block-start:-4px; margin-inline-end:-5px; margin-block-end:pxToRem(8);
+ }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_top-cover.scss b/v2/legacy/src/7-components/_top-cover.scss
new file mode 100644
index 0000000000..930da89585
--- /dev/null
+++ b/v2/legacy/src/7-components/_top-cover.scss
@@ -0,0 +1,32 @@
+@use '../abstract' as *;
+.top-cover {
+ --p-cover-bg-color: var(--color-neutral-0);
+ --p-cover-border-color: var(--color-border);
+
+ background-color: hsl(var(--p-cover-bg-color));
+ display: flex;
+ flex-direction: column;
+ min-block-size: pxToRem(186);
+ border-block-end: solid pxToRem(1) hsl(var(--p-cover-border-color));
+
+ :where(.container) {
+ flex:1; display:flex; flex-direction:column;
+ .tabs{ margin-block-start:auto; margin-block-end:calc(var(--p-container-padding-block) * -1); }
+ }
+ @media #{$break3open} {
+ [class*="heading-level-"] {
+ position:relative;
+ .button {
+ position:absolute; inset-inline-start:0;
+ transform: translateX( calc(-100% * var(--transform-direction)) )
+ scaleX(var(--transform-direction));
+ }
+ }
+ }
+
+
+
+ #{$theme-dark} & {
+ --p-cover-bg-color: var(--color-neutral-100);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_upload-box.scss b/v2/legacy/src/7-components/_upload-box.scss
new file mode 100644
index 0000000000..813db1a4c2
--- /dev/null
+++ b/v2/legacy/src/7-components/_upload-box.scss
@@ -0,0 +1,76 @@
+ @use '../abstract' as *;
+.upload-box {
+ --p-header-text-color: var(--color-neutral-70);
+ --p-header-bg-color: var(--color-neutral-10);
+
+ --p-content-text-color: var(--color-neutral-60);
+ --p-content-bg-color: var(--color-neutral-0);
+
+ --p-border-color: var(--color-neutral-10);
+
+ overflow:hidden; min-inline-size:pxToRem(285);
+ box-shadow:var(--shadow-small);
+ border-radius:var(--border-radius-small);
+ font-size:pxToRem(14); line-height:1;
+
+ &-button {
+ $size: #{pxToRem(20)};
+ --p-icon-button-size:var(--icon-button-size, #{$size});
+
+ inline-size: var(--p-icon-button-size);
+ block-size: var(--p-icon-button-size);
+ font-size: var(--p-icon-button-size);
+ transition: var(--transition);
+
+ line-height:1; text-align:center; flex-shrink:0; cursor:pointer;
+
+ &.is-open { transform:rotate(180deg); }
+ &.is-success { color:var(--config-color-success); }
+ }
+ &-header {
+ display:flex; padding:pxToRem(16);
+ color:hsl(var(--p-header-text-color)); background-color:hsl(var(--p-header-bg-color));
+ .upload-box-button { margin-inline-start:pxToRem(16); }
+ }
+ &-title {
+ align-self:center; margin-inline-end:auto;
+ .text { text-transform:uppercase; letter-spacing:0.12em; }
+ .amount {
+ &::before { content:"("; }
+ &::after { content:")"; }
+ }
+ }
+ &-content {
+ @include scroll;
+ background-color:hsl(var(--p-content-bg-color)); color:hsl(var(--p-content-text-color));
+ block-size:0; overflow:auto;
+ transition:var(--transition);
+ &.is-open {block-size:auto; max-block-size:pxToRem(218); /* consider to change to rem */}
+ }
+ &-list { }
+ &-item {
+ display:flex; align-items:center; gap:pxToRem(16); padding:pxToRem(16) pxToRem(24);
+ .file-name { @include trim; line-height:1.2; align-self:center; margin-inline-end:auto; }
+ &-button { align-self:center; margin-inline-start:pxToRem(16);}
+ .icon-check { color:hsl(var(--color-text-success)); }
+ &:not(:last-child) { border-bottom:solid pxToRem(1) hsl(var(--p-border-color)); }
+ }
+
+ /* states */
+ &.is-float {
+ position:fixed;
+ @media #{$break1} { inset-inline:pxToRem(16); inset-block-end:pxToRem(20); }
+ @media #{$break2open} { inset-inline-end:pxToRem(24); inset-block-end:pxToRem(24); }
+ }
+
+ /* dark theme */
+ #{$theme-dark} &{
+ --p-header-text-color: var(--color-neutral-20);
+ --p-header-bg-color: var(--color-neutral-100);
+
+ --p-content-text-color: var(--color-neutral-20);
+ --p-content-bg-color: var(--color-neutral-90);
+
+ --p-border-color: var(--color-neutral-85);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_upload-file-box.scss b/v2/legacy/src/7-components/_upload-file-box.scss
new file mode 100644
index 0000000000..925a7d55a9
--- /dev/null
+++ b/v2/legacy/src/7-components/_upload-file-box.scss
@@ -0,0 +1,74 @@
+@use '../abstract' as *;
+.upload-file-box {
+ //--color-border: var(--color-neutral-50);
+ --p-icon-file: var(--color-neutral-20);
+ --p-title-color: var(--color-neutral-70);
+ --p-info-text: var(--color-neutral-60);
+ --p-file-size: var(--color-neutral-50);
+
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ gap: pxToRem(16);
+
+
+ &-list {
+ @media #{$break2open} {
+ border-block-start:solid pxToRem(1) hsl(var(--color-border)); padding-block-start:pxToRem(16); margin-block-start:pxToRem(8);
+ }
+ }
+ &-title {
+ color:hsl(var(--p-title-color)); vertical-align:baseline;
+ + *,+ * *, + * [class*="icon"]::before { vertical-align:baseline; }
+ }
+ &-info,
+ &-name { color:hsl(var(--p-info-text)); }
+ &-size {
+ color: hsl(var(--p-file-size));
+ &::before { content: "("; }
+ &::after { content: ")"; }
+ }
+ &-image {
+ $size: pxToRem(48);
+ --p-size: #{$size};
+
+ --p-image-color: var(--color-neutral-60);
+ --p-bg-color: var(--color-neutral-5);
+ --p-border-color: var(--color-neutral-15);
+
+ color: hsl(var(--p-image-color));
+ background-color: hsl(var(--p-bg-color));
+ border: solid pxToRem(1) hsl(var(--p-border-color));
+
+ display:grid; place-content:center; align-self:center; flex-shrink:0;
+ inline-size:var(--p-size); block-size:var(--p-size); min-inline-size:0;
+ border-radius:var(--border-radius-circular);
+
+ @media #{$break1} {
+ $size: pxToRem(40);
+ --p-size: #{$size};
+ }
+
+ #{$theme-dark} & {
+ --p-image-color: var(--color-neutral-60);
+ --p-bg-color: var(--color-neutral-90);
+ --p-border-color: var(--color-neutral-80);
+ }
+
+ }
+ .icon-document { color:hsl(var(--p-icon-file)); margin-inline-end:pxToRem(8); }
+
+ @media #{$break1} {
+ gap: pxToRem(8);
+ &-list { grid-column:span 2; }
+ }
+ @media #{$break2open} {
+
+ &-list { grid-column:2; }
+ }
+ /* Theme Dark */
+ #{$theme-dark} & {
+ --p-title-color: var(--color-neutral-5);
+ --p-info-text: var(--color-neutral-20);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_upload-image.scss b/v2/legacy/src/7-components/_upload-image.scss
new file mode 100644
index 0000000000..e3bce5c022
--- /dev/null
+++ b/v2/legacy/src/7-components/_upload-image.scss
@@ -0,0 +1,48 @@
+@use '../abstract' as *;
+.upload-image {
+ $upload-image-size-default: #{pxToRem(40)};
+
+ --p-upload-image-size: var(--upload-image-size, #{$upload-image-size-default});
+ --p-upload-bg-color: var(--color-neutral-10);
+ --p-upload-border-color: var(--color-neutral-10);
+ --p-upload-icon-color: var(--color-neutral-20);
+ --p-upload-text-color: var(--color-neutral-50);
+
+ position:relative; display:grid; place-content:center;
+ inline-size: var(--p-upload-image-size);
+ block-size: var(--p-upload-image-size);
+ background-color: hsl(var(--p-upload-bg-color));
+ border:solid pxToRem(1) hsl(var(--p-upload-border-color));
+ border-radius:50%; flex-shrink:0;
+
+ [class*="icon"] { position:relative; z-index:2; color:hsl(var(--p-upload-icon-color)); }
+ .text { position:relative; z-index:2; color:hsl(var(--p-upload-text-color)); }
+ .progress {
+ --progress:var(--progress-value, 0);
+ position:absolute; z-index:1; inset:0; border-radius:var(--border-radius-circular);
+ background:
+ radial-gradient(
+ hsl(var(--p-upload-bg-color)) 0%,
+ hsl(var(--p-upload-bg-color)) 64%,
+ transparent 64.01%,
+ transparent 100%),
+
+ conic-gradient(
+ hsl(194 66% 50%) 0%,
+ hsl(97 66% 50%) calc(var(--progress) * 1%),
+ hsl(0 0% 0% / 0%) calc(var(--progress) * 1%),
+ hsl(0 0% 0% / 0%) 100%);
+ }
+ &.is-finished {
+ --p-upload-border-color: var(--p-upload-border-color);
+ .progress{ display:none; }
+ #{$theme-dark} & { --p-upload-border-color: var(--color-neutral-80); }
+ }
+ /* dark theme */
+ #{$theme-dark} & {
+ --p-upload-bg-color: var(--color-neutral-85);
+ --p-upload-border-color: var(--color-neutral-85);
+ --p-upload-icon-color: var(--color-neutral-20);
+ --p-upload-text-color: var(--color-neutral-20);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/7-components/_user-profile.scss b/v2/legacy/src/7-components/_user-profile.scss
new file mode 100644
index 0000000000..693908d6bb
--- /dev/null
+++ b/v2/legacy/src/7-components/_user-profile.scss
@@ -0,0 +1,45 @@
+@use '../abstract' as *;
+
+.user-profile {
+ display: grid;
+ grid-template-columns: auto 1fr;
+ column-gap: pxToRem(16);
+ row-gap: pxToRem(12);
+
+ &-sep { grid-column:span 2; border-block-start:solid pxToRem(1) hsl(var(--color-border)); }
+ &-button {
+ /* variables */
+ --p-name-color-text: var(--color-neutral-60);
+ --p-title-color-text: var(--color-neutral-50);
+ --p-icon-color: var(--color-neutral-20);
+
+ position:relative; z-index:2;
+ display:flex; block-size:100%; align-items:center; padding-inline:pxToRem(24); gap:pxToRem(12);
+ background-color:hsl(var(--p-main-header-bg-color)); /* get from parent partial */
+ > * { flex-shrink:0; }
+ [class*="icon"] { font-size:var(--icon-size-medium); color:hsl(var(--p-icon-color)); transition:var(--transition); }
+ &.is-open {
+ [class*="icon"] { transform:rotateZ(180deg); }
+ }
+ #{$theme-dark} & {
+ --p-name-color-text: var(--color-neutral-5);
+ --p-title-color-text: var(--color-neutral-20);
+ --p-icon-color: var(--color-neutral-20);
+ }
+ }
+ &-info {
+ flex:1; font-size:var(--font-size-0); line-height:1.35;
+ > {
+ .text,
+ .name,
+ .title { display:block ;}
+ }
+ .name { @include trim(); color:hsl(var(--p-name-color-text)); }
+ .title { @include trim(); color:hsl(var(--p-title-color-text));}
+ }
+
+ @media #{$break3open} {
+ border-inline-start:solid pxToRem(1) hsl(var(--p-main-header-border-color));
+ &-button { min-inline-size:pxToRem(240); }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_cover-frame.scss b/v2/legacy/src/8-grids/_cover-frame.scss
new file mode 100644
index 0000000000..a4ee9f405e
--- /dev/null
+++ b/v2/legacy/src/8-grids/_cover-frame.scss
@@ -0,0 +1,21 @@
+@use '../abstract/index' as *;
+
+.cover-frame {
+ --p-cover-frame-bg-header: var(--transparent);
+
+ display:flex; flex-direction:column;
+ block-size:100vh; block-size:100lvh;
+ &-header {
+ padding-inline:pxToRem(32); padding-block:pxToRem(20); border-block-end:solid pxToRem(1) hsl(var(--color-border));
+ background-color: hsl(var(--p-cover-frame-bg-header));
+ }
+ &-content {
+ flex:1; padding:pxToRem(32); overflow:hidden;
+ }
+
+ /* state */
+ &.is-color-header {
+ --p-cover-frame-bg-header:var(--color-neutral-0);
+ #{$theme-dark} & { --p-cover-frame-bg-header:var(--color-neutral-500); }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_grid-1-1.scss b/v2/legacy/src/8-grids/_grid-1-1.scss
new file mode 100644
index 0000000000..3fb4ae3c32
--- /dev/null
+++ b/v2/legacy/src/8-grids/_grid-1-1.scss
@@ -0,0 +1,56 @@
+@use '../abstract' as *;
+
+.grid-1-1 {
+ display: grid;
+ &.is-full-page {
+ --p-side-1-color: var(--color-neutral-5);
+ --p-side-2-color: var(--color-neutral-0);
+
+ #{$theme-dark} &{
+ --p-side-1-color: var(--color-neutral-90);
+ --p-side-2-color: var(--color-neutral-105);
+ }
+ @media #{$break1} {
+ grid-template-rows:auto 1fr;
+ min-block-size:100vh; min-block-size:100dvh;
+ background-color: hsl(var(--p-side-2-color));
+ .grid-1-1-col-2 {
+ .container {
+ $padding-block: pxToRem(0);
+ --container-padding-block: #{$padding-block};
+ }
+ }
+ .grid-1-1-col-1 {
+ .container {
+ $padding-block: pxToRem(16);
+ --container-padding-block: #{$padding-block};
+ }
+ }
+ }
+ @media #{$break2open} {
+ .grid-1-1-col {
+ &-1 {
+ background-color: hsl(var(--p-side-1-color));
+ }
+ &-2 {
+ background-color: hsl(var(--p-side-2-color));
+ > .container {
+ block-size:100vh; block-size:100lvh;
+ }
+ }
+ }
+ }
+ }
+
+ @media #{$break2open} {
+ grid-template-columns: repeat(2, 1fr);
+ &-col {
+ &-1 {
+
+ }
+ &-2 {
+
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_grid-1-2.scss b/v2/legacy/src/8-grids/_grid-1-2.scss
new file mode 100644
index 0000000000..403647fd9f
--- /dev/null
+++ b/v2/legacy/src/8-grids/_grid-1-2.scss
@@ -0,0 +1,16 @@
+@use '../abstract' as *;
+
+.grid-1-2 {
+ display: grid;
+ row-gap: pxToRem(32);
+
+ @media #{$break2open} {
+ grid-template-columns: 1fr 1.5fr;
+ column-gap: pxToRem(100);
+
+ &-col {
+ &-1 {}
+ &-2 {}
+ }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_grid-2-1.scss b/v2/legacy/src/8-grids/_grid-2-1.scss
new file mode 100644
index 0000000000..52402c3a61
--- /dev/null
+++ b/v2/legacy/src/8-grids/_grid-2-1.scss
@@ -0,0 +1,15 @@
+@use '../abstract' as *;
+
+.grid-2-1 {
+ --p-gap: #{pxToRem(16)};
+ --p-gap-mobile: var(--p-gap);
+ display: grid;
+ gap: var(--p-gap);
+
+ @media #{$break1} {
+ gap: var(--p-gap-mobile);
+ }
+ @media #{$break2open} {
+ grid-template-columns: 2fr 1fr;
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_grid-300px-1fr.scss b/v2/legacy/src/8-grids/_grid-300px-1fr.scss
new file mode 100644
index 0000000000..2ea2dcedee
--- /dev/null
+++ b/v2/legacy/src/8-grids/_grid-300px-1fr.scss
@@ -0,0 +1,10 @@
+@use '../abstract' as *;
+
+.grid-300px-1fr {
+ display: grid;
+ gap: pxToRem(32);
+
+ @media #{$break3open} {
+ grid-template-columns: pxToRem(300) 1fr;
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_grid-box.scss b/v2/legacy/src/8-grids/_grid-box.scss
new file mode 100644
index 0000000000..c13cbd2d49
--- /dev/null
+++ b/v2/legacy/src/8-grids/_grid-box.scss
@@ -0,0 +1,21 @@
+@use '../abstract' as *;
+.grid-box {
+ $grid-gap: pxToRem(24);
+ --p-grid-gap: var(--grid-gap, #{$grid-gap});
+
+ $grid-item-size: pxToRem(210);
+ --p-grid-item-size: var(--grid-item-size, #{$grid-item-size});
+
+ $grid-item-size-small-screens: pxToRem(210);
+ --p-grid-item-size-small-screens: var(--grid-item-size-small-screens, #{$grid-item-size-small-screens});
+
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(var(--p-grid-item-size), 1fr));
+ grid-auto-rows: 1fr;
+ gap: var(--p-grid-gap);
+ flex-shrink: 0;
+
+ @media #{$break1} {
+ --p-grid-item-size: var(--p-grid-item-size-small-screens);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_grid-code.scss b/v2/legacy/src/8-grids/_grid-code.scss
new file mode 100644
index 0000000000..5ff4267a74
--- /dev/null
+++ b/v2/legacy/src/8-grids/_grid-code.scss
@@ -0,0 +1,21 @@
+@use '../abstract' as *;
+
+.grid-code {
+ display: grid;
+ grid-template-columns: auto 1fr;
+ grid-auto-rows: auto;
+ column-gap: pxToRem(8);
+ align-content: start;
+
+ font-family: var(--code-font);
+
+ counter-reset: lineNumbers;
+
+ &-line-number {
+ color: hsl(var(--color-neutral-50));
+ &::before {
+ counter-increment: lineNumbers;
+ content: counter(lineNumbers);
+ }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_grid-dashboard-1s-2m-6l.scss b/v2/legacy/src/8-grids/_grid-dashboard-1s-2m-6l.scss
new file mode 100644
index 0000000000..c4e7cb094c
--- /dev/null
+++ b/v2/legacy/src/8-grids/_grid-dashboard-1s-2m-6l.scss
@@ -0,0 +1,22 @@
+@use '../abstract' as *;
+
+.grid-dashboard-1s-2m-6l {
+ /* all screens */
+ display: grid;
+ gap: pxToRem(24);
+
+ /* medium screen */
+ @media #{$break2} {
+ grid-template-columns: repeat(2, 1fr);
+ .is-2-columns-medium-screen { grid-column:span 2; }
+ }
+
+ /* large screen */
+ @media #{$break3open} {
+ grid-template-columns: repeat(6, 1fr);
+ .is-2-columns-large-screen { grid-column:span 2; }
+ .is-3-columns-large-screen { grid-column:span 3; }
+ .is-location-row-2-end-large-screen { grid-row-start:2; grid-column-end:-1; }
+ .is-2-rows-large-screen { grid-row-end:span 2; }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_grid-header.scss b/v2/legacy/src/8-grids/_grid-header.scss
new file mode 100644
index 0000000000..260bacb741
--- /dev/null
+++ b/v2/legacy/src/8-grids/_grid-header.scss
@@ -0,0 +1,21 @@
+@use '../abstract' as *;
+.grid-header {
+ gap: pxToRem(24);
+
+ /* mobile */
+ @media #{$break1} {
+ display:grid; grid-template-columns:auto auto;
+ grid-template-areas: "col-1 col-2"
+ "col-3 col-4";
+ &-col {
+ &-1 { grid-area:col-1; }
+ &-2 { grid-area:col-2; justify-self:end; }
+ &-3 { grid-area:col-3; justify-self:start; }
+ &-4 { grid-area:col-4; justify-self:end; }
+ }
+ }
+ /* tablet & desktop */
+ @media #{$break2}, #{$break3open} {
+ display:flex; justify-content:space-between;
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_grid-with-side.scss b/v2/legacy/src/8-grids/_grid-with-side.scss
new file mode 100644
index 0000000000..13200d5e2f
--- /dev/null
+++ b/v2/legacy/src/8-grids/_grid-with-side.scss
@@ -0,0 +1,61 @@
+@use "../abstract" as *;
+.grid-with-side {
+ position: relative;
+ --p-side-size: #{pxToRem(200)};
+ > {
+ :where(.alert) { grid-area:alert; }
+ :where(.top-banner) { grid-area:alert; }
+ :where(.main-header) { grid-area:header; }
+ :where(.main-side) { grid-area:side; }
+ :where(.main-content) { grid-area:main; }
+ }
+
+ @media #{$break1}, #{$break2} {
+ .main-side { display:none; max-block-size:none; }
+
+ &:where(.is-open) {
+ .main-side { display:block; position:static; }
+ .main-content { display:none; }
+ }
+ }
+ @media #{$break3open} {
+ display: grid;
+ grid-template-columns: minmax(var(--p-side-size), auto) 1fr;
+ grid-template-rows: auto auto 1fr;
+ grid-template-areas: "alert alert"
+ "header header"
+ "side main";
+ > .main-content { max-inline-size:calc(100vw - var(--p-side-size)); }
+
+ &.is-fixed-layout {
+ block-size:100vh; block-size:100lvh;
+ max-block-size:100vh; max-block-size:100lvh;
+ .main-side { block-size:auto; }
+ .main-content { overflow:auto; }
+ }
+
+ &.is-empty-side {
+ grid-template-areas: "header header"
+ "main main";
+ .main-side { block-size:unset; }
+ .main-content > * { padding-inline-start:var(--p-side-size); }
+ }
+ .main-side { block-size:calc(100vh - var(--main-header-height)); }
+ }
+}
+/* no side */
+.is-fixed-alert-layout {
+ @media #{$break3open} {
+ display: flex; flex-direction:column;
+ block-size:100vh; block-size:100lvh;
+ max-block-size:100vh; max-block-size:100lvh;
+ .main-content { overflow:auto; flex:1; }
+ }
+}
+
+.main-content {
+ position:relative; display:flex; flex-direction:column; flex:1; /* z-index:1; */
+ > * { flex-shrink:0; }
+} /* remove z-index, mage nug in modals */
+.main-header { position:sticky; z-index:5; inset-block-start:0; }
+.main-side { position:sticky; z-index:5; inset-block-start:var(--main-header-height); max-block-size:100vh; overflow:hidden;}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_index.scss b/v2/legacy/src/8-grids/_index.scss
new file mode 100644
index 0000000000..2a1ccee38e
--- /dev/null
+++ b/v2/legacy/src/8-grids/_index.scss
@@ -0,0 +1,16 @@
+@forward "grid-with-side";
+@forward "grid-box";
+@forward "grid-header";
+@forward "grid-code";
+@forward "grid-1-1";
+@forward "grid-1-2";
+@forward "grid-2-1";
+@forward "grid-300px-1fr";
+@forward "grid-dashboard-1s-2m-6l";
+
+@forward "wizard";
+@forward "wizard-secondary";
+@forward "cover-frame";
+
+/* old grid from old console */
+@forward "inner-grid";
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_inner-grid.scss b/v2/legacy/src/8-grids/_inner-grid.scss
new file mode 100644
index 0000000000..68c6e22dac
--- /dev/null
+++ b/v2/legacy/src/8-grids/_inner-grid.scss
@@ -0,0 +1,13 @@
+/* from old layout */
+@use '../abstract' as *;
+.inner-grid {
+ display:flex; column-gap:pxToRem(40); row-gap:pxToRem(20); flex-wrap:wrap;
+
+ &-main { flex-grow:1; flex-basis: pxToRem(580); }
+ &-side {flex:1; flex-basis: pxToRem(320); }
+
+ &-main,
+ &-side {
+ display:flex; flex-direction:column; gap:pxToRem(20);
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_wizard-secondary.scss b/v2/legacy/src/8-grids/_wizard-secondary.scss
new file mode 100644
index 0000000000..b33b3dcf15
--- /dev/null
+++ b/v2/legacy/src/8-grids/_wizard-secondary.scss
@@ -0,0 +1,48 @@
+@use '../abstract/index' as *;
+
+.wizard-secondary {
+ --wizard-aecondary-bg-color: var(--color-neutral-0);
+ display:block; min-block-size:100dvh; padding-inline:pxToRem(32);
+ background-color:hsl(var(--wizard-aecondary-bg-color));
+ &-container { max-inline-size:pxToRem(1200); margin-inline:auto; }
+ &-header {
+ position:sticky; z-index:1; inset-block-start:0;
+ display:flex; flex-direction:column; gap:pxToRem(16);
+ padding-block-start:pxToRem(32); padding-block-end:pxToRem(16);
+ background-color:hsl(var(--wizard-aecondary-bg-color));
+ }
+ &-content {
+ display:flex; gap:pxToRem(32); padding-block-start:pxToRem(16);
+ &-sep { flex-basis:pxToRem(1); flex-shrink:0; background-color:hsl(var(--color-border)); }
+ }
+ &-options {
+ position:sticky; inset-block-end:0; display:flex; gap:pxToRem(16); justify-content:space-between;
+ padding-block:pxToRem(32); border-block-start:solid pxToRem(1) hsl(var(--color-border)); margin-block-start:pxToRem(32);
+ background-color:hsl(var(--wizard-aecondary-bg-color));
+ &-start { display:flex; gap:pxToRem(16); }
+ &-end { display:flex; gap:pxToRem(16); }
+ }
+
+ #{$theme-dark} & {
+ --wizard-aecondary-bg-color: var(--color-neutral-90);
+ }
+
+ @media #{$break1} {
+ &-options {
+ flex-direction:column-reverse;
+ &-start,
+ &-end { flex-direction:column-reverse; }
+ }
+ }
+ @media (max-width:1127.99px) {
+ &-content { flex-direction:column; }
+ }
+
+ @media (min-width: 1128px) {
+ &-content {
+ &-1 { flex:2.25; }
+ &-2 { flex:1; }
+ &-sticky { position:sticky; inset-block-start:pxToRem(155); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/8-grids/_wizard.scss b/v2/legacy/src/8-grids/_wizard.scss
new file mode 100644
index 0000000000..d52d12c6d4
--- /dev/null
+++ b/v2/legacy/src/8-grids/_wizard.scss
@@ -0,0 +1,97 @@
+@use '../abstract/index' as *;
+
+.wizard {
+ --p-header-color: var(--color-neutral-0);
+ --p-start-color: var(--color-neutral-5);
+ --p-end-color: var(--color-neutral-0);
+
+ $header-height: pxToRem(64);
+ --p-header-height: #{$header-height};
+
+
+ /* bg layout */
+ &-header-strip { background-color:hsl(var(--p-header-color)); border-block-end:solid pxToRem(1) hsl(var(--color-border)); }
+ &-start-bg { }
+ &-end-bg { background-color:hsl(var(--p-end-color)); }
+
+ /* content layout */
+ &-header { padding-inline:pxToRem(32); }
+ &-side { padding-inline:pxToRem(32); }
+ &-main { padding-inline:pxToRem(32); }
+ &-media { }
+
+
+ /* content layout */
+ &-header-strip { position:sticky; z-index:2; inset-block-start:0; }
+ &-header {
+ position:sticky; z-index:2; inset-block-start:0;
+ display:flex; align-items:center; gap:pxToRem(12);
+ }
+ &-side { align-self:start; }
+ &-media {
+ display:grid; justify-content:center; align-items:end; position:relative;
+ > * { position:sticky; inset-inline:pxToRem(32); inset-block-end:pxToRem(32); margin-inline:auto; max-inline-size:calc(100% - 64px); max-block-size:320px; }
+ @media (max-height:860px) { display:none; }
+ }
+ &-main { display:flex; flex-direction:column; padding-block-start:pxToRem(40); padding-inline:pxToRem(40); min-inline-size:0; }
+ .form {
+ block-size:100%; max-block-size:100%;
+ &-footer {
+ position:sticky; inset-block-end:0;
+ background-color: hsl(var(--p-end-color));
+ }
+ }
+
+ @media #{$break1} {
+ display: grid;
+ grid-template-rows: var(--p-header-height);
+ min-block-size: 100dvh;
+ &-header-strip,
+ &-header { padding-inline:pxToRem(16); grid-row:1; grid-column:1; }
+ .form-footer { padding-inline:pxToRem(40); margin-inline:pxToRem(-16); }
+
+ &-side {
+ display:none; padding:pxToRem(16);
+ &.is-shown-mobile { display:block; }
+ }
+ &-main { padding:pxToRem(16); padding-block-end:0; background-color:hsl(var(--p-end-color)); }
+ &-media { display:none; }
+ &-start-bg,
+ &-end-bg { display:none; }
+ }
+ @media #{$break2open} {
+ display: grid;
+ grid-template-columns: 1fr minmax(pxToRem(240),pxToRem(330)) minmax(pxToRem(0), pxToRem(100)) minmax(pxToRem(480),pxToRem(750)) 1fr;
+ grid-auto-rows: var(--p-header-height) auto 1fr;
+ min-block-size: 100vh;
+
+ &.is-no-gap-middle { grid-template-columns: 1fr minmax(pxToRem(240),pxToRem(330)) 0 minmax(pxToRem(480),pxToRem(750)) 1fr; }
+
+ &-side { position:sticky; z-index:2; inset-block-start:var(--p-header-height); padding-block-start:pxToRem(54); }
+
+ /* bg layout */
+ &-header-strip { grid-row:1; grid-column:1 / -1; }
+ &-start-bg { grid-row:2 / 4; grid-column:1 / 3; background-color:hsl(var(--p-start-color)); border-inline-end:solid pxToRem(1) hsl(var(--color-border));}
+ &-end-bg { grid-row:2 / 4; grid-column:3 / 6; }
+
+ /* content layout */
+ &-header { grid-row:1; grid-column:2 / 5; }
+ &-side { grid-row:2; grid-column:2; }
+ &-main { grid-row:2 / 4; grid-column:4; }
+ &-media { grid-row:3; grid-column:1 / 3; }
+
+ /* full layout */
+ &.is-full-center-layout {
+ .wizard-container {
+ grid-column:2 / 5; padding-inline:pxToRem(32);
+ }
+ }
+ }
+
+
+ #{$theme-dark} & {
+ --p-header-color: var(--color-neutral-105);
+ --p-start-color: var(--color-neutral-100);
+ --p-end-color: var(--color-neutral-90);
+ }
+}
diff --git a/v2/legacy/src/_4-icons.scss b/v2/legacy/src/_4-icons.scss
new file mode 100644
index 0000000000..d01689f8f3
--- /dev/null
+++ b/v2/legacy/src/_4-icons.scss
@@ -0,0 +1,5 @@
+html [class^="icon-"],
+html [class*=" icon-"] {
+ font-size: var(--icon-size-medium);
+ &::before { vertical-align:middle; } /* add for centering */
+}
\ No newline at end of file
diff --git a/v2/legacy/src/_9-utilities.scss b/v2/legacy/src/_9-utilities.scss
new file mode 100644
index 0000000000..3b7504fb88
--- /dev/null
+++ b/v2/legacy/src/_9-utilities.scss
@@ -0,0 +1,267 @@
+@use "abstract" as *;
+
+/* hide */
+.u-hide { display:none!important; }
+.u-opacity-0 { opacity:0!important; }
+.u-opacity-20 { opacity:0.2!important; }
+.u-opacity-50 { opacity:0.5!important; }
+
+.u-overflow-hidden { overflow:hidden!important; }
+.u-overflow-visible { overflow:visible!important;}
+.u-overflow-x-auto { overflow-x:auto !important; }
+.u-overflow-y-auto { overflow-y: auto !important;}
+
+/* text */
+.u-direction-ltr { direction:ltr!important; }
+.u-direction-rtl { direction:rtl!important; }
+.u-x-small { font-size:pxToRem(12)!important; }
+.u-small { font-size:pxToRem(14)!important; }
+.u-medium { font-size:pxToRem(16)!important; }
+.u-font-size-20 { font-size:pxToRem(20)!important; }
+.u-font-size-32 { font-size:pxToRem(32)!important; }
+.u-bold { font-weight:600!important; }
+.u-normal { font-weight:normal!important; }
+.u-underline { text-decoration:underline!important; }
+.u-text-start { text-align:start!important; }
+.u-text-center { text-align:center!important; }
+.u-text-end { text-align:end!important; }
+.u-line-height-0-7 { line-height:0.7!important; }
+.u-line-height-1 { line-height:1; }
+.u-line-height-1-25 { line-height:1.25; }
+.u-line-height-1-5 { line-height:1.5; }
+.u-line-height-2 { line-height:2; }
+.u-trim { @include trim; }
+.u-trim-1 { @include trim(1); }
+.u-trim-2 { @include trim(2); }
+.u-trim-3 { @include trim(3); }
+.u-trim-start { @include trim; direction:rtl; text-align:left; }
+.u-break-word { @include break-word; white-space:initial; }
+.u-break-all { @include break-all; white-space:initial; }
+.u-un-break-text { white-space:nowrap!important; }
+.u-capitalize { text-transform:capitalize!important; }
+.u-icon-small { font-size:var(--icon-size-small)!important; }
+
+/* Font family */
+.u-font-heading { font-family:var(--heading-font)!important; }
+.u-font-content { font-family:var(--content-font)!important; }
+.u-font-code { font-family:var(--code-font)!important; }
+
+/* Mouse Cursor */
+.u-cursor-pointer { cursor:pointer!important; }
+.u-cursor-text { cursor:text!important; }
+
+/* color text */
+.u-color-text-disabled { color:hsl(var(--color-text-disabled))!important; }
+.u-color-text-offline { color:hsl(var(--color-text-offline))!important; }
+.u-color-text-info { color:hsl(var(--color-text-info))!important; }
+.u-color-text-danger { color:hsl(var(--color-text-danger))!important; }
+.u-color-text-warning { color:hsl(var(--color-text-warning))!important; }
+.u-color-text-success { color:hsl(var(--color-text-success))!important; }
+
+.u-color-text-gray { color:hsl(var(--color-text-gray))!important; }
+.u-color-text-pink { color:hsl(var(--color-pink-text))!important; }
+
+/* color text light mode only */
+:where(body:not(#{$theme-dark})) {
+ .u-color-light-only-text-neutral-70 { color:hsl(var(--color-neutral-50))!important; }
+}
+
+
+/* color text dark mode only */
+#{$theme-dark} {
+ .u-color-dark-only-text-neutral-50 { color:hsl(var(--color-neutral-20))!important; }
+}
+
+/* position */
+
+.u-position-sticky {
+ --inset-block-start: auto;
+ --inset-block-end: auto;
+ --inset-inline-start: auto;
+ --inset-inline-end: auto;
+
+ position:sticky;
+ inset-block: var(--inset-block-start) var(--inset-block-end)!important;
+ inset-inline: var(--inset-inline-start) var(--inset-inline-end)!important;
+}
+.u-position-relative { position:relative!important; }
+.u-position-absolute { position:absolute!important; }
+.u-position-fixed { position:fixed!important; }
+.u-position-static { position:static!important; }
+
+.u-z-index-0 { z-index:0!important; }
+.u-z-index-1 { z-index:1!important; }
+.u-z-index-5 { z-index:5!important; }
+.u-z-index-10 { z-index:10!important; }
+.u-z-index-15 { z-index:15!important; }
+.u-z-index-20 { z-index:20!important; }
+
+/* display */
+.u-block { display:block!important; }
+.u-inline { display:inline!important; }
+.u-grid { display:grid!important; }
+.u-flex { display:flex!important; }
+.u-inline-flex { display:inline-flex!important; }
+.u-contents { display:contents!important; }
+.u-contents-mobile{ @media #{$break1} {display:contents!important;} }
+
+.u-box-sizing-content { box-sizing:content-box!important; }
+.u-sep-inline-start { border-inline-start:solid pxToRem(1) hsl(var(--color-border))!important; }
+.u-sep-block-start { border-block-start:solid pxToRem(1) hsl(var(--color-border))!important; }
+.u-sep-block-end { border-block-end:solid pxToRem(1) hsl(var(--color-border))!important; }
+
+.u-flex-vertical { display:flex!important; flex-direction:column!important; }
+.u-flex-vertical-mobile { @media #{$break1} { flex-direction:column!important; } }
+.u-flex-wrap { flex-wrap:wrap!important; }
+.u-stretch { flex:1!important; }
+.u-flex-basis-140 { flex-basis:pxToRem(140)!important;}
+.u-flex-basis-250 { flex-basis:pxToRem(250)!important;}
+.u-flex-basis-500 { flex-basis:pxToRem(500)!important;}
+.u-flex-basis-50-percent { flex-basis:50%!important; }
+.u-flex-basis-100-percent { flex-basis:100%!important; }
+.u-flex-shrink-0 { flex-shrink:0!important; }
+.u-flex-basis-auto { flex-basis:auto!important; }
+
+.u-grid-columns-auto-1fr { display:grid; grid-template-columns:auto 1fr; }
+.u-grid-cols-2 { display:grid; grid-template-columns:1fr 1fr; }
+.u-grid-equal-row-size { display:grid; grid-auto-rows:1fr; align-items:center; }
+
+.u-width-fit-content { inline-size:fit-content!important; }
+.u-width-full-line { inline-size:100%!important; }
+.u-width-140 { inline-size:pxToRem(140)!important; }
+.u-width-150 { inline-size:pxToRem(150)!important; }
+.u-width-200 { inline-size:pxToRem(200)!important; }
+.u-width-250 { inline-size:pxToRem(250)!important; }
+.u-width-280-desktop { @media #{$break3open} { inline-size:pxToRem(280)!important; } }
+.u-width-600 { inline-size:pxToRem(600)!important; }
+.u-min-width-0 { min-inline-size:0!important; } /*use to solve flexbox un-shrink problem;*/
+.u-min-width-200 { min-inline-size:pxToRem(200)!important; }
+.u-min-width-100-percent { min-inline-size:100%!important; }
+
+.u-max-width-250 { max-inline-size:pxToRem(250)!important; }
+.u-max-width-300 { max-inline-size:pxToRem(300)!important; }
+.u-max-width-350 { max-inline-size:pxToRem(350)!important; }
+.u-max-width-400 { max-inline-size:pxToRem(400)!important; }
+.u-max-width-450 { max-inline-size:pxToRem(440)!important; }
+.u-max-width-500 { max-inline-size:pxToRem(500)!important; }
+.u-max-width-600 { max-inline-size:pxToRem(600)!important; }
+.u-max-width-650 { max-inline-size:pxToRem(650)!important; }
+.u-max-width-700 { max-inline-size:pxToRem(700)!important; }
+.u-max-width-100-percent { max-inline-size:100%!important; }
+
+.u-height-100-percent { block-size:100%!important; }
+.u-height-auto { block-size:auto!important; }
+
+.u-min-height-100 { min-block-size:pxToRem(100)!important; }
+.u-min-height-184 { min-block-size:pxToRem(184)!important; }
+.u-min-height-100-percent { min-block-size:100%!important; }
+
+.u-max-height-200 { max-block-size:pxToRem(200)!important; }
+
+.u-full-screen-height { block-size:100vh!important; block-size:100lvh!important; }
+
+/* alignments */
+.u-main-start { justify-content:start!important; }
+.u-main-center { justify-content:center!important; }
+.u-main-space-between { justify-content:space-between!important; }
+.u-main-end { justify-content:end!important; }
+
+.u-cross-start { align-items:start!important; }
+.u-cross-baseline { align-items:baseline!important; }
+.u-cross-center { align-items:center!important; }
+.u-cross-end { align-items:end!important; }
+
+.u-cross-child-start { align-self:start!important; }
+.u-cross-child-center { align-self:center!important; }
+.u-cross-child-end { align-self:end!important; }
+
+/* box model */
+$spacings: 0, 1, 2, 4, 8, 12, 16, 20, 24, 28, 32, 40, 48, 52, 56, 64, 80, 96, 128, 160, 192, 100, 200, 300;
+$directions: "", "-inline", "-block", "-inline-start", "-inline-end", "-block-start", "-block-end";
+
+@each $spacing in $spacings {
+ @each $direction in $directions {
+ .u-margin#{$direction}-#{$spacing} { margin#{$direction}:pxToRem($spacing)!important; }
+ .u-margin#{$direction}-negative-#{$spacing} { margin#{$direction}:pxToRem(-$spacing)!important; }
+ .u-padding#{$direction}-#{$spacing} { padding#{$direction}:pxToRem($spacing)!important; }
+
+ .u-inset#{$direction}-#{$spacing} { inset#{$direction}:pxToRem($spacing)!important; }
+ }
+
+ .u-gap-#{$spacing} { gap:pxToRem($spacing)!important; }
+ .u-row-gap-#{$spacing} { row-gap:pxToRem($spacing)!important; }
+ .u-column-gap-#{$spacing} { column-gap:pxToRem($spacing)!important; }
+}
+
+@each $direction in $directions {
+ .u-margin#{$direction}-auto { margin#{$direction}:auto!important; }
+}
+
+/* special cases */
+.u-margin-16-negative { margin:pxToRem(-16)!important; }
+.u-margin-block-start-negative-56 { margin-block-start:pxToRem(-56)!important; }
+.u-margin-block-start-negative-168 { margin-block-start:pxToRem(-168)!important; }
+
+.u-border-width-0 { border-width:0!important; }
+.u-mobile-border-width-0 { @media #{$break1} { border-width:0!important; } }
+
+.u-border-radius-4 { border-radius:var(--border-radius-xsmall)!important; }
+.u-border-radius-8 { border-radius:var(--border-radius-small)!important; }
+.u-border-radius-16 { border-radius:var(--border-radius-medium)!important; }
+.u-border-radius-24 { border-radius:var(--border-radius-large)!important; }
+.u-border-radius-circle { border-radius:var(--border-radius-circular)!important; }
+
+.u-image-object-fit-contain { object-fit:contain!important; }
+.u-image-object-fit-cover { object-fit:cover!important; }
+
+/* container queries */
+.u-container-inline-size { container-type: inline-size; }
+
+/* Shadows */
+.u-drop-shadow-large { filter:drop-shadow(var(--shadow-large))!important;}
+
+/* reset inputs */
+/** remove number button inputs **/
+/* Chrome, Safari, Edge, Opera */
+.u-remove-input-number-buttons::-webkit-outer-spin-button,
+.u-remove-input-number-buttons::-webkit-inner-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+}
+
+/* Firefox */
+.u-remove-input-number-buttons {
+ -moz-appearance: textfield;
+}
+
+/* only light / only dark */
+.u-only-light,
+.u-only-dark { display:none!important; }
+
+#{$theme-dark} {
+ .u-only-dark { display:block!important; }
+}
+body:not(#{$theme-dark}) {
+ .u-only-light { display:block!important; }
+}
+
+/* responsive global state classes */
+.is-only-mobile {
+ @media #{$break2open} { display:none!important; }
+}
+
+.is-only-tablet {
+ @media #{$break1}, #{$break3open} { display:none!important; }
+}
+
+.is-only-desktop {
+ @media #{$break1}, #{$break2} { display:none!important; }
+}
+
+.is-not-mobile {
+ @media #{$break1} { display:none!important; }
+}
+
+.is-not-desktop {
+ @media #{$break3open} { display:none!important; }
+}
diff --git a/v2/legacy/src/_index.scss b/v2/legacy/src/_index.scss
new file mode 100644
index 0000000000..0eefa6d432
--- /dev/null
+++ b/v2/legacy/src/_index.scss
@@ -0,0 +1,28 @@
+@use 'sass:meta';
+
+@layer css-variables, resets, icons, animations, elements, components, grids, utilities;
+
+@layer css-variables {
+ @include meta.load-css('1-css-variables');
+}
+@layer resets {
+ @include meta.load-css('2-resets');
+}
+@layer icons {
+ @include meta.load-css('4-icons');
+}
+@layer animations {
+ @include meta.load-css('5-animations');
+}
+@layer elements {
+ @include meta.load-css('6-elements');
+}
+@layer components {
+ @include meta.load-css('7-components');
+}
+@layer grids {
+ @include meta.load-css('8-grids');
+}
+@layer utilities {
+ @include meta.load-css('9-utilities');
+}
diff --git a/v2/legacy/src/abstract/_index.scss b/v2/legacy/src/abstract/_index.scss
new file mode 100644
index 0000000000..d1b8ce0f07
--- /dev/null
+++ b/v2/legacy/src/abstract/_index.scss
@@ -0,0 +1,3 @@
+@forward "variables";
+@forward "mixins";
+@forward "functions";
\ No newline at end of file
diff --git a/v2/legacy/src/abstract/functions/_index.scss b/v2/legacy/src/abstract/functions/_index.scss
new file mode 100644
index 0000000000..040b97a131
--- /dev/null
+++ b/v2/legacy/src/abstract/functions/_index.scss
@@ -0,0 +1 @@
+@forward "pxToRem";
\ No newline at end of file
diff --git a/v2/legacy/src/abstract/functions/_pxToRem.scss b/v2/legacy/src/abstract/functions/_pxToRem.scss
new file mode 100644
index 0000000000..0fc2daba79
--- /dev/null
+++ b/v2/legacy/src/abstract/functions/_pxToRem.scss
@@ -0,0 +1,5 @@
+@use "sass:math" as math;
+@function pxToRem($value) {
+ $remValue: calc($value * 1rem / 16);
+ @return $remValue;
+}
\ No newline at end of file
diff --git a/v2/legacy/src/abstract/mixins/_break-word.scss b/v2/legacy/src/abstract/mixins/_break-word.scss
new file mode 100644
index 0000000000..671553e75f
--- /dev/null
+++ b/v2/legacy/src/abstract/mixins/_break-word.scss
@@ -0,0 +1,32 @@
+@mixin break-word {
+ /* These are technically the same, but use both */
+ overflow-wrap: break-word;
+ word-wrap: break-word;
+
+ -ms-word-break: break-all;
+ /* This is the dangerous one in WebKit, as it breaks things wherever */
+ word-break: break-all;
+ /* Instead use this non-standard one: */
+ word-break: break-word;
+
+ /* Adds a hyphen where the word breaks, if supported (No Blink) */
+ -ms-hyphens: auto;
+ -moz-hyphens: auto;
+ -webkit-hyphens: auto;
+ hyphens: auto;
+}
+
+@mixin break-all {
+ /* These are technically the same, but use both */
+ overflow-wrap: break-all;
+ word-wrap: break-all;
+
+ -ms-word-break: break-all;
+ word-break: break-all;
+
+ /* Adds a hyphen where the word breaks, if supported (No Blink) */
+ -ms-hyphens: auto;
+ -moz-hyphens: auto;
+ -webkit-hyphens: auto;
+ hyphens: auto;
+}
diff --git a/v2/legacy/src/abstract/mixins/_index.scss b/v2/legacy/src/abstract/mixins/_index.scss
new file mode 100644
index 0000000000..7ac0ca9f99
--- /dev/null
+++ b/v2/legacy/src/abstract/mixins/_index.scss
@@ -0,0 +1,4 @@
+@forward "trim";
+@forward "break-word";
+
+@forward "scroll";
\ No newline at end of file
diff --git a/v2/legacy/src/abstract/mixins/_scroll.scss b/v2/legacy/src/abstract/mixins/_scroll.scss
new file mode 100644
index 0000000000..94df142cfb
--- /dev/null
+++ b/v2/legacy/src/abstract/mixins/_scroll.scss
@@ -0,0 +1,53 @@
+@use '../../abstract/functions/pxToRem' as *;
+@use '../../abstract/variables/common' as *;
+@mixin scroll {
+ &::-webkit-scrollbar {
+ opacity: 0.7;
+ width: pxToRem(8);
+ height: pxToRem(8);
+ }
+
+ &::-webkit-scrollbar-track {
+ border-radius: pxToRem(4);
+ margin-right: pxToRem(8);
+ }
+
+ &::-webkit-scrollbar-thumb {
+ border-radius: pxToRem(4);
+ background: hsl(var(--scroll-color));
+ }
+
+ &::-webkit-scrollbar-corner {
+ background: hsl(var(--scroll-color));
+ border-radius: pxToRem(6);
+ }
+}
+
+@mixin tableScroll {
+ --p-track-bg-color: var(--track-bg-color, var(--color-neutral-5));
+ --p-track-border-color: var(--track-border-color, var(--color-neutral-10));
+ --p-scroll-bg-color: var(--scroll-bg-color, var(--color-neutral-15));
+ ::-webkit-scrollbar {
+ width: 12px;
+ }
+
+ ::-webkit-scrollbar-track {
+ border-block:solid pxToRem(1) hsl(var(--p-track-border-color));
+ background-color: hsl(var(--p-track-bg-color));
+ border-radius: 0;
+ }
+
+ ::-webkit-scrollbar-thumb {
+ border-radius: 100px;
+ border: pxToRem(3) solid transparent;
+ background-clip: content-box;
+ background-color: hsl(var(--p-scroll-bg-color));
+ }
+
+ #{$theme-dark} & {
+ --track-bg-color: var(--color-neutral-105);
+ --track-border-color: var(--color-neutral-85);
+ --scroll-bg-color: var(--color-neutral-80);
+ }
+}
+
diff --git a/v2/legacy/src/abstract/mixins/_trim.scss b/v2/legacy/src/abstract/mixins/_trim.scss
new file mode 100644
index 0000000000..6757b864cb
--- /dev/null
+++ b/v2/legacy/src/abstract/mixins/_trim.scss
@@ -0,0 +1,15 @@
+@mixin trim($numLines: null){
+ @if $numLines != null {
+ display:-webkit-box;
+ -webkit-line-clamp:$numLines;
+ -webkit-box-orient:vertical;
+ overflow:hidden;
+ word-break:break-all;
+ }
+ @else{
+ text-overflow:ellipsis;
+ white-space:nowrap;
+ overflow:hidden;
+ display:block;
+ }
+}
\ No newline at end of file
diff --git a/v2/legacy/src/abstract/variables/_common.scss b/v2/legacy/src/abstract/variables/_common.scss
new file mode 100644
index 0000000000..cd4dd84213
--- /dev/null
+++ b/v2/legacy/src/abstract/variables/_common.scss
@@ -0,0 +1,2 @@
+$theme-dark: ".theme-dark";
+$disabled: ":disabled, .is-disabled";
\ No newline at end of file
diff --git a/v2/legacy/src/abstract/variables/_devices.scss b/v2/legacy/src/abstract/variables/_devices.scss
new file mode 100644
index 0000000000..4188f17db7
--- /dev/null
+++ b/v2/legacy/src/abstract/variables/_devices.scss
@@ -0,0 +1,5 @@
+// Responsive Variables
+$break1: "(max-width:767.99px)";
+$break2: "(min-width:768px) and (max-width:1198.99px)";
+$break2open:"(min-width:768px)";
+$break3open:"(min-width:1199px)";
\ No newline at end of file
diff --git a/v2/legacy/src/abstract/variables/_index.scss b/v2/legacy/src/abstract/variables/_index.scss
new file mode 100644
index 0000000000..2d67eee4ce
--- /dev/null
+++ b/v2/legacy/src/abstract/variables/_index.scss
@@ -0,0 +1,2 @@
+@forward "common";
+@forward "devices";
\ No newline at end of file