@de-kit/st-ui 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +143 -143
  2. package/dist/components/button/button.cjs +4 -3
  3. package/dist/components/button/button.cjs.map +1 -1
  4. package/dist/components/button/button.d.cts +5 -3
  5. package/dist/components/button/button.d.ts +5 -3
  6. package/dist/components/button/button.js +4 -3
  7. package/dist/components/button/button.js.map +1 -1
  8. package/dist/components/button/button.scss +147 -148
  9. package/dist/components/checkbox/checkbox.cjs.map +1 -1
  10. package/dist/components/checkbox/checkbox.js.map +1 -1
  11. package/dist/components/checkbox/checkbox.scss +137 -137
  12. package/dist/components/field/field-context.cjs.map +1 -1
  13. package/dist/components/field/field-context.js.map +1 -1
  14. package/dist/components/field/field.cjs.map +1 -1
  15. package/dist/components/field/field.js.map +1 -1
  16. package/dist/components/field/field.scss +43 -43
  17. package/dist/components/input/input.cjs.map +1 -1
  18. package/dist/components/input/input.js.map +1 -1
  19. package/dist/components/input/input.scss +127 -127
  20. package/dist/components/radio/radio.cjs.map +1 -1
  21. package/dist/components/radio/radio.js.map +1 -1
  22. package/dist/components/radio/radio.scss +144 -144
  23. package/dist/components/spinner/spinner.cjs.map +1 -1
  24. package/dist/components/spinner/spinner.js.map +1 -1
  25. package/dist/components/spinner/spinner.scss +29 -29
  26. package/dist/components/textarea/textarea.cjs.map +1 -1
  27. package/dist/components/textarea/textarea.js.map +1 -1
  28. package/dist/components/textarea/textarea.scss +85 -85
  29. package/dist/icons/icon-label-ozon.cjs +4 -4
  30. package/dist/icons/icon-label-ozon.cjs.map +1 -1
  31. package/dist/icons/icon-label-ozon.js +4 -4
  32. package/dist/icons/icon-label-ozon.js.map +1 -1
  33. package/dist/icons/icon-label-yandex.cjs +1 -1
  34. package/dist/icons/icon-label-yandex.cjs.map +1 -1
  35. package/dist/icons/icon-label-yandex.js +1 -1
  36. package/dist/icons/icon-label-yandex.js.map +1 -1
  37. package/dist/icons/svg.cjs.map +1 -1
  38. package/dist/icons/svg.js.map +1 -1
  39. package/dist/lib/cn.cjs.map +1 -1
  40. package/dist/lib/cn.js.map +1 -1
  41. package/dist/styles/global.scss +201 -201
  42. package/dist/styles/mixins.scss +51 -51
  43. package/dist/styles/vars.scss +87 -87
  44. package/package.json +1 -1
@@ -9,19 +9,19 @@ const IconLabelOzon = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(req
9
9
  children: [
10
10
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
11
11
  fill: "#005BFF",
12
- d: "M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\nC16,5.79,14.21,4,12,4z"
12
+ d: "M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\r\nC16,5.79,14.21,4,12,4z"
13
13
  }),
14
14
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
15
15
  fill: "#F91155",
16
- d: "M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\nL12.78,9.19z"
16
+ d: "M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\r\nL12.78,9.19z"
17
17
  }),
18
18
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
19
19
  fill: "#FFFFFF",
20
- d: "M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z"
20
+ d: "M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\r\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z"
21
21
  }),
22
22
  /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
23
23
  fill: "#F91155",
24
- d: "M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z"
24
+ d: "M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\r\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z"
25
25
  })
26
26
  ]
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"icon-label-ozon.cjs","names":["Svg"],"sources":["../../src/icons/icon-label-ozon.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelOzon = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <path\n fill=\"#005BFF\"\n d={\n 'M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\\nC16,5.79,14.21,4,12,4z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\\nL12.78,9.19z'\n }\n />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,iBAAiB,UAC5B,iBAAA,GAAA,kBAAA,KAAA,CAACA,YAAAA,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA;EACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;CACE"}
1
+ {"version":3,"file":"icon-label-ozon.cjs","names":["Svg"],"sources":["../../src/icons/icon-label-ozon.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelOzon = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <path\n fill=\"#005BFF\"\n d={\n 'M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\\r\\nC16,5.79,14.21,4,12,4z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\\r\\nL12.78,9.19z'\n }\n />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\\r\\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\\r\\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,iBAAiB,UAC5B,iBAAA,GAAA,kBAAA,KAAA,CAACA,YAAAA,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA;EACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;CACE"}
@@ -9,19 +9,19 @@ const IconLabelOzon = (props) => /* @__PURE__ */ jsxs(Svg, {
9
9
  children: [
10
10
  /* @__PURE__ */ jsx("path", {
11
11
  fill: "#005BFF",
12
- d: "M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\nC16,5.79,14.21,4,12,4z"
12
+ d: "M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\r\nC16,5.79,14.21,4,12,4z"
13
13
  }),
14
14
  /* @__PURE__ */ jsx("path", {
15
15
  fill: "#F91155",
16
- d: "M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\nL12.78,9.19z"
16
+ d: "M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\r\nL12.78,9.19z"
17
17
  }),
18
18
  /* @__PURE__ */ jsx("path", {
19
19
  fill: "#FFFFFF",
20
- d: "M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z"
20
+ d: "M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\r\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z"
21
21
  }),
22
22
  /* @__PURE__ */ jsx("path", {
23
23
  fill: "#F91155",
24
- d: "M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z"
24
+ d: "M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\r\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z"
25
25
  })
26
26
  ]
27
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"icon-label-ozon.js","names":[],"sources":["../../src/icons/icon-label-ozon.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelOzon = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <path\n fill=\"#005BFF\"\n d={\n 'M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\\nC16,5.79,14.21,4,12,4z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\\nL12.78,9.19z'\n }\n />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,iBAAiB,UAC5B,qBAAC,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA;EACE,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;CACE"}
1
+ {"version":3,"file":"icon-label-ozon.js","names":[],"sources":["../../src/icons/icon-label-ozon.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelOzon = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <path\n fill=\"#005BFF\"\n d={\n 'M12,4H8C5.79,4,4,5.79,4,8v4c0,2.21,1.79,4,4,4h4c2.21,0,4-1.79,4-4V8\\r\\nC16,5.79,14.21,4,12,4z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.78,9.19L7,10.62v5.23C7.32,15.94,7.65,16,8,16h4c1.92,0,3.53-1.36,3.91-3.17\\r\\nL12.78,9.19z'\n }\n />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M14.27,8.98c-0.4-1.69-2.65-2.6-5.01-2.03c-2.36,0.56-3.95,2.39-3.54,4.08\\r\\nc0.4,1.69,2.65,2.6,5.01,2.03C13.09,12.49,14.68,10.66,14.27,8.98z'\n }\n />\n <path\n fill=\"#F91155\"\n d={\n 'M12.65,9.37c-0.17-0.71-1.49-1.24-3.01-0.88c-1.51,0.36-2.46,1.43-2.29,2.15\\r\\nc0.17,0.71,1.49,1.24,3.01,0.88C11.88,11.15,12.82,10.08,12.65,9.37z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,iBAAiB,UAC5B,qBAAC,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA;EACE,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;EACD,oBAAC,QAAD;GACE,MAAK;GACL,GACE;EAEH,CAAA;CACE"}
@@ -13,7 +13,7 @@ const IconLabelYandex = (props) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(r
13
13
  r: "6"
14
14
  }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)("path", {
15
15
  fill: "#FFFFFF",
16
- d: "M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z"
16
+ d: "M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\r\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z"
17
17
  })]
18
18
  });
19
19
  exports.IconLabelYandex = IconLabelYandex;
@@ -1 +1 @@
1
- {"version":3,"file":"icon-label-yandex.cjs","names":["Svg"],"sources":["../../src/icons/icon-label-yandex.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelYandex = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <circle fill=\"#FC3F1D\" cx=\"10\" cy=\"10\" r=\"6\" />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,iBAAA,GAAA,kBAAA,KAAA,CAACA,YAAAA,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;EAAQ,MAAK;EAAU,IAAG;EAAK,IAAG;EAAK,GAAE;CAAK,CAAA,GAC9C,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,MAAK;EACL,GACE;CAEH,CAAA,CACE"}
1
+ {"version":3,"file":"icon-label-yandex.cjs","names":["Svg"],"sources":["../../src/icons/icon-label-yandex.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelYandex = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <circle fill=\"#FC3F1D\" cx=\"10\" cy=\"10\" r=\"6\" />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\\r\\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,iBAAA,GAAA,kBAAA,KAAA,CAACA,YAAAA,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;EAAQ,MAAK;EAAU,IAAG;EAAK,IAAG;EAAK,GAAE;CAAK,CAAA,GAC9C,iBAAA,GAAA,kBAAA,IAAA,CAAC,QAAD;EACE,MAAK;EACL,GACE;CAEH,CAAA,CACE"}
@@ -13,7 +13,7 @@ const IconLabelYandex = (props) => /* @__PURE__ */ jsxs(Svg, {
13
13
  r: "6"
14
14
  }), /* @__PURE__ */ jsx("path", {
15
15
  fill: "#FFFFFF",
16
- d: "M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z"
16
+ d: "M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\r\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z"
17
17
  })]
18
18
  });
19
19
  export { IconLabelYandex };
@@ -1 +1 @@
1
- {"version":3,"file":"icon-label-yandex.js","names":[],"sources":["../../src/icons/icon-label-yandex.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelYandex = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <circle fill=\"#FC3F1D\" cx=\"10\" cy=\"10\" r=\"6\" />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,qBAAC,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA,CACE,oBAAC,UAAD;EAAQ,MAAK;EAAU,IAAG;EAAK,IAAG;EAAK,GAAE;CAAK,CAAA,GAC9C,oBAAC,QAAD;EACE,MAAK;EACL,GACE;CAEH,CAAA,CACE"}
1
+ {"version":3,"file":"icon-label-yandex.js","names":[],"sources":["../../src/icons/icon-label-yandex.tsx"],"sourcesContent":["// Generated by scripts/build-icons.mjs. Do not edit.\nimport { Svg, type IconProps } from './svg';\n\nexport const IconLabelYandex = (props: IconProps) => (\n <Svg viewBox=\"0 0 20 20\" width={20} height={20} {...props}>\n <circle fill=\"#FC3F1D\" cx=\"10\" cy=\"10\" r=\"6\" />\n <path\n fill=\"#FFFFFF\"\n d={\n 'M10.28,6.31c-1.85,0-2.82,0.94-2.82,2.33c0,1.11,0.53,1.76,1.48,2.44L7.3,13.51h1.37\\r\\nl1.84-2.73l-0.64-0.43C9.09,9.84,8.72,9.44,8.72,8.57c0-0.77,0.54-1.29,1.58-1.29h0.56v6.23h1.26V6.31H10.28z'\n }\n />\n </Svg>\n);\n"],"mappings":";;;AAGA,MAAa,mBAAmB,UAC9B,qBAAC,KAAD;CAAK,SAAQ;CAAY,OAAO;CAAI,QAAQ;CAAI,GAAI;CAApD,UAAA,CACE,oBAAC,UAAD;EAAQ,MAAK;EAAU,IAAG;EAAK,IAAG;EAAK,GAAE;CAAK,CAAA,GAC9C,oBAAC,QAAD;EACE,MAAK;EACL,GACE;CAEH,CAAA,CACE"}
@@ -1 +1 @@
1
- {"version":3,"file":"svg.cjs","names":[],"sources":["../../src/icons/svg.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\n\nexport interface IconProps extends SVGProps<SVGSVGElement> {\n title?: string;\n}\n\nexport const Svg = ({ title, children, ...props }: IconProps) => {\n const accessibleName = props['aria-label'] ?? title;\n const labelled = Boolean(accessibleName);\n\n return (\n <svg\n {...props}\n xmlns=\"http://www.w3.org/2000/svg\"\n role={props.role ?? (labelled ? 'img' : undefined)}\n aria-label={labelled ? accessibleName : undefined}\n aria-hidden={props['aria-hidden'] ?? (labelled ? undefined : true)}\n >\n {title ? <title>{title}</title> : null}\n {children}\n </svg>\n );\n};\n"],"mappings":";;AAMA,MAAa,OAAO,EAAE,OAAO,UAAU,GAAG,YAAuB;CAC/D,MAAM,iBAAiB,MAAM,iBAAiB;CAC9C,MAAM,WAAW,QAAQ,cAAc;CAEvC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACE,GAAI;EACJ,OAAM;EACN,MAAM,MAAM,SAAS,WAAW,QAAQ,KAAA;EACxC,cAAY,WAAW,iBAAiB,KAAA;EACxC,eAAa,MAAM,mBAAmB,WAAW,KAAA,IAAY;EAL/D,UAAA,CAOG,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD,EAAA,UAAQ,MAAa,CAAA,IAAI,MACjC,QACE;;AAET"}
1
+ {"version":3,"file":"svg.cjs","names":[],"sources":["../../src/icons/svg.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\r\n\r\nexport interface IconProps extends SVGProps<SVGSVGElement> {\r\n title?: string;\r\n}\r\n\r\nexport const Svg = ({ title, children, ...props }: IconProps) => {\r\n const accessibleName = props['aria-label'] ?? title;\r\n const labelled = Boolean(accessibleName);\r\n\r\n return (\r\n <svg\r\n {...props}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n role={props.role ?? (labelled ? 'img' : undefined)}\r\n aria-label={labelled ? accessibleName : undefined}\r\n aria-hidden={props['aria-hidden'] ?? (labelled ? undefined : true)}\r\n >\r\n {title ? <title>{title}</title> : null}\r\n {children}\r\n </svg>\r\n );\r\n};\r\n"],"mappings":";;AAMA,MAAa,OAAO,EAAE,OAAO,UAAU,GAAG,YAAuB;CAC/D,MAAM,iBAAiB,MAAM,iBAAiB;CAC9C,MAAM,WAAW,QAAQ,cAAc;CAEvC,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EACE,GAAI;EACJ,OAAM;EACN,MAAM,MAAM,SAAS,WAAW,QAAQ,KAAA;EACxC,cAAY,WAAW,iBAAiB,KAAA;EACxC,eAAa,MAAM,mBAAmB,WAAW,KAAA,IAAY;EAL/D,UAAA,CAOG,QAAQ,iBAAA,GAAA,kBAAA,IAAA,CAAC,SAAD,EAAA,UAAQ,MAAa,CAAA,IAAI,MACjC,QACE;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"svg.js","names":[],"sources":["../../src/icons/svg.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\n\nexport interface IconProps extends SVGProps<SVGSVGElement> {\n title?: string;\n}\n\nexport const Svg = ({ title, children, ...props }: IconProps) => {\n const accessibleName = props['aria-label'] ?? title;\n const labelled = Boolean(accessibleName);\n\n return (\n <svg\n {...props}\n xmlns=\"http://www.w3.org/2000/svg\"\n role={props.role ?? (labelled ? 'img' : undefined)}\n aria-label={labelled ? accessibleName : undefined}\n aria-hidden={props['aria-hidden'] ?? (labelled ? undefined : true)}\n >\n {title ? <title>{title}</title> : null}\n {children}\n </svg>\n );\n};\n"],"mappings":";;AAMA,MAAa,OAAO,EAAE,OAAO,UAAU,GAAG,YAAuB;CAC/D,MAAM,iBAAiB,MAAM,iBAAiB;CAC9C,MAAM,WAAW,QAAQ,cAAc;CAEvC,OACE,qBAAC,OAAD;EACE,GAAI;EACJ,OAAM;EACN,MAAM,MAAM,SAAS,WAAW,QAAQ,KAAA;EACxC,cAAY,WAAW,iBAAiB,KAAA;EACxC,eAAa,MAAM,mBAAmB,WAAW,KAAA,IAAY;EAL/D,UAAA,CAOG,QAAQ,oBAAC,SAAD,EAAA,UAAQ,MAAa,CAAA,IAAI,MACjC,QACE;;AAET"}
1
+ {"version":3,"file":"svg.js","names":[],"sources":["../../src/icons/svg.tsx"],"sourcesContent":["import type { SVGProps } from 'react';\r\n\r\nexport interface IconProps extends SVGProps<SVGSVGElement> {\r\n title?: string;\r\n}\r\n\r\nexport const Svg = ({ title, children, ...props }: IconProps) => {\r\n const accessibleName = props['aria-label'] ?? title;\r\n const labelled = Boolean(accessibleName);\r\n\r\n return (\r\n <svg\r\n {...props}\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n role={props.role ?? (labelled ? 'img' : undefined)}\r\n aria-label={labelled ? accessibleName : undefined}\r\n aria-hidden={props['aria-hidden'] ?? (labelled ? undefined : true)}\r\n >\r\n {title ? <title>{title}</title> : null}\r\n {children}\r\n </svg>\r\n );\r\n};\r\n"],"mappings":";;AAMA,MAAa,OAAO,EAAE,OAAO,UAAU,GAAG,YAAuB;CAC/D,MAAM,iBAAiB,MAAM,iBAAiB;CAC9C,MAAM,WAAW,QAAQ,cAAc;CAEvC,OACE,qBAAC,OAAD;EACE,GAAI;EACJ,OAAM;EACN,MAAM,MAAM,SAAS,WAAW,QAAQ,KAAA;EACxC,cAAY,WAAW,iBAAiB,KAAA;EACxC,eAAa,MAAM,mBAAmB,WAAW,KAAA,IAAY;EAL/D,UAAA,CAOG,QAAQ,oBAAC,SAAD,EAAA,UAAQ,MAAa,CAAA,IAAI,MACjC,QACE;;AAET"}
@@ -1 +1 @@
1
- {"version":3,"file":"cn.cjs","names":[],"sources":["../../src/lib/cn.ts"],"sourcesContent":["type ClassDictionary = Record<string, boolean | null | undefined>;\ntype ClassValue =\n | string\n | number\n | null\n | undefined\n | false\n | ClassDictionary\n | ClassValue[];\n\nconst pushClass = (classes: string[], value: ClassValue): void => {\n if (!value) return;\n\n if (typeof value === 'string' || typeof value === 'number') {\n classes.push(String(value));\n return;\n }\n\n if (Array.isArray(value)) {\n value.forEach(item => pushClass(classes, item));\n return;\n }\n\n for (const key of Object.keys(value)) {\n if (value[key]) classes.push(key);\n }\n};\n\n/** Склейка классов. Без tailwind-merge: одноимённые правила решает специфичность. */\nexport const cn = (...inputs: ClassValue[]): string => {\n const classes: string[] = [];\n inputs.forEach(input => pushClass(classes, input));\n return classes.join(' ');\n};\n\n/** Условный класс. Пустая строка и `undefined` в `cn` не попадают. */\nexport const when = (\n enabled: boolean | undefined,\n className: string | undefined,\n): string | false => (Boolean(enabled) && className ? className : false);\n"],"mappings":";AAUA,MAAM,aAAa,SAAmB,UAA4B;CAChE,IAAI,CAAC,OAAO;CAEZ,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;EAC1D,QAAQ,KAAK,OAAO,KAAK,CAAC;EAC1B;CACF;CAEA,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxB,MAAM,SAAQ,SAAQ,UAAU,SAAS,IAAI,CAAC;EAC9C;CACF;CAEA,KAAK,MAAM,OAAO,OAAO,KAAK,KAAK,GACjC,IAAI,MAAM,MAAM,QAAQ,KAAK,GAAG;AAEpC;;AAGA,MAAa,MAAM,GAAG,WAAiC;CACrD,MAAM,UAAoB,CAAC;CAC3B,OAAO,SAAQ,UAAS,UAAU,SAAS,KAAK,CAAC;CACjD,OAAO,QAAQ,KAAK,GAAG;AACzB;;AAGA,MAAa,QACX,SACA,cACoB,QAAQ,OAAO,KAAK,YAAY,YAAY"}
1
+ {"version":3,"file":"cn.cjs","names":[],"sources":["../../src/lib/cn.ts"],"sourcesContent":["type ClassDictionary = Record<string, boolean | null | undefined>;\r\ntype ClassValue =\r\n | string\r\n | number\r\n | null\r\n | undefined\r\n | false\r\n | ClassDictionary\r\n | ClassValue[];\r\n\r\nconst pushClass = (classes: string[], value: ClassValue): void => {\r\n if (!value) return;\r\n\r\n if (typeof value === 'string' || typeof value === 'number') {\r\n classes.push(String(value));\r\n return;\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n value.forEach(item => pushClass(classes, item));\r\n return;\r\n }\r\n\r\n for (const key of Object.keys(value)) {\r\n if (value[key]) classes.push(key);\r\n }\r\n};\r\n\r\n/** Склейка классов. Без tailwind-merge: одноимённые правила решает специфичность. */\r\nexport const cn = (...inputs: ClassValue[]): string => {\r\n const classes: string[] = [];\r\n inputs.forEach(input => pushClass(classes, input));\r\n return classes.join(' ');\r\n};\r\n\r\n/** Условный класс. Пустая строка и `undefined` в `cn` не попадают. */\r\nexport const when = (\r\n enabled: boolean | undefined,\r\n className: string | undefined,\r\n): string | false => (Boolean(enabled) && className ? className : false);\r\n"],"mappings":";AAUA,MAAM,aAAa,SAAmB,UAA4B;CAChE,IAAI,CAAC,OAAO;CAEZ,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;EAC1D,QAAQ,KAAK,OAAO,KAAK,CAAC;EAC1B;CACF;CAEA,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxB,MAAM,SAAQ,SAAQ,UAAU,SAAS,IAAI,CAAC;EAC9C;CACF;CAEA,KAAK,MAAM,OAAO,OAAO,KAAK,KAAK,GACjC,IAAI,MAAM,MAAM,QAAQ,KAAK,GAAG;AAEpC;;AAGA,MAAa,MAAM,GAAG,WAAiC;CACrD,MAAM,UAAoB,CAAC;CAC3B,OAAO,SAAQ,UAAS,UAAU,SAAS,KAAK,CAAC;CACjD,OAAO,QAAQ,KAAK,GAAG;AACzB;;AAGA,MAAa,QACX,SACA,cACoB,QAAQ,OAAO,KAAK,YAAY,YAAY"}
@@ -1 +1 @@
1
- {"version":3,"file":"cn.js","names":[],"sources":["../../src/lib/cn.ts"],"sourcesContent":["type ClassDictionary = Record<string, boolean | null | undefined>;\ntype ClassValue =\n | string\n | number\n | null\n | undefined\n | false\n | ClassDictionary\n | ClassValue[];\n\nconst pushClass = (classes: string[], value: ClassValue): void => {\n if (!value) return;\n\n if (typeof value === 'string' || typeof value === 'number') {\n classes.push(String(value));\n return;\n }\n\n if (Array.isArray(value)) {\n value.forEach(item => pushClass(classes, item));\n return;\n }\n\n for (const key of Object.keys(value)) {\n if (value[key]) classes.push(key);\n }\n};\n\n/** Склейка классов. Без tailwind-merge: одноимённые правила решает специфичность. */\nexport const cn = (...inputs: ClassValue[]): string => {\n const classes: string[] = [];\n inputs.forEach(input => pushClass(classes, input));\n return classes.join(' ');\n};\n\n/** Условный класс. Пустая строка и `undefined` в `cn` не попадают. */\nexport const when = (\n enabled: boolean | undefined,\n className: string | undefined,\n): string | false => (Boolean(enabled) && className ? className : false);\n"],"mappings":";AAUA,MAAM,aAAa,SAAmB,UAA4B;CAChE,IAAI,CAAC,OAAO;CAEZ,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;EAC1D,QAAQ,KAAK,OAAO,KAAK,CAAC;EAC1B;CACF;CAEA,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxB,MAAM,SAAQ,SAAQ,UAAU,SAAS,IAAI,CAAC;EAC9C;CACF;CAEA,KAAK,MAAM,OAAO,OAAO,KAAK,KAAK,GACjC,IAAI,MAAM,MAAM,QAAQ,KAAK,GAAG;AAEpC;;AAGA,MAAa,MAAM,GAAG,WAAiC;CACrD,MAAM,UAAoB,CAAC;CAC3B,OAAO,SAAQ,UAAS,UAAU,SAAS,KAAK,CAAC;CACjD,OAAO,QAAQ,KAAK,GAAG;AACzB;;AAGA,MAAa,QACX,SACA,cACoB,QAAQ,OAAO,KAAK,YAAY,YAAY"}
1
+ {"version":3,"file":"cn.js","names":[],"sources":["../../src/lib/cn.ts"],"sourcesContent":["type ClassDictionary = Record<string, boolean | null | undefined>;\r\ntype ClassValue =\r\n | string\r\n | number\r\n | null\r\n | undefined\r\n | false\r\n | ClassDictionary\r\n | ClassValue[];\r\n\r\nconst pushClass = (classes: string[], value: ClassValue): void => {\r\n if (!value) return;\r\n\r\n if (typeof value === 'string' || typeof value === 'number') {\r\n classes.push(String(value));\r\n return;\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n value.forEach(item => pushClass(classes, item));\r\n return;\r\n }\r\n\r\n for (const key of Object.keys(value)) {\r\n if (value[key]) classes.push(key);\r\n }\r\n};\r\n\r\n/** Склейка классов. Без tailwind-merge: одноимённые правила решает специфичность. */\r\nexport const cn = (...inputs: ClassValue[]): string => {\r\n const classes: string[] = [];\r\n inputs.forEach(input => pushClass(classes, input));\r\n return classes.join(' ');\r\n};\r\n\r\n/** Условный класс. Пустая строка и `undefined` в `cn` не попадают. */\r\nexport const when = (\r\n enabled: boolean | undefined,\r\n className: string | undefined,\r\n): string | false => (Boolean(enabled) && className ? className : false);\r\n"],"mappings":";AAUA,MAAM,aAAa,SAAmB,UAA4B;CAChE,IAAI,CAAC,OAAO;CAEZ,IAAI,OAAO,UAAU,YAAY,OAAO,UAAU,UAAU;EAC1D,QAAQ,KAAK,OAAO,KAAK,CAAC;EAC1B;CACF;CAEA,IAAI,MAAM,QAAQ,KAAK,GAAG;EACxB,MAAM,SAAQ,SAAQ,UAAU,SAAS,IAAI,CAAC;EAC9C;CACF;CAEA,KAAK,MAAM,OAAO,OAAO,KAAK,KAAK,GACjC,IAAI,MAAM,MAAM,QAAQ,KAAK,GAAG;AAEpC;;AAGA,MAAa,MAAM,GAAG,WAAiC;CACrD,MAAM,UAAoB,CAAC;CAC3B,OAAO,SAAQ,UAAS,UAAU,SAAS,KAAK,CAAC;CACjD,OAAO,QAAQ,KAAK,GAAG;AACzB;;AAGA,MAAa,QACX,SACA,cACoB,QAAQ,OAAO,KAAK,YAAY,YAAY"}
@@ -1,201 +1,201 @@
1
- // База приложения. Шрифт Inter подключает хост — файлы лежат в splittest-frontend/src/app/fonts.
2
- // Токены (`--color-*`) подключает вход пакета, этот файл их не эмитит.
3
- @use './mixins.scss' as mixins;
4
-
5
- :root {
6
- --window-max-height: 100vh;
7
- --wrapper-padding: 20px;
8
-
9
- @include mixins.min-width(md) {
10
- --wrapper-padding: 30px;
11
- }
12
- }
13
-
14
- *,
15
- *:before,
16
- *:after {
17
- box-sizing: border-box;
18
- }
19
-
20
- * {
21
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
22
- }
23
-
24
- html,
25
- body {
26
- height: 100%;
27
- scrollbar-gutter: stable;
28
- }
29
-
30
- body {
31
- display: flex;
32
- flex-direction: column;
33
- margin: 0;
34
- font-family: var(--font-sans);
35
- -webkit-font-smoothing: antialiased;
36
- -moz-osx-font-smoothing: grayscale;
37
- color: var(--color-foreground);
38
- background-color: var(--color-background);
39
- font-size: var(--text-sm);
40
- line-height: var(--text-sm--line-height);
41
- font-weight: 400;
42
-
43
- &::after {
44
- content: '';
45
- display: block;
46
- background-color: var(--color-overlay);
47
- position: fixed;
48
- left: 0;
49
- top: 0;
50
- right: 0;
51
- bottom: 0;
52
- z-index: 100;
53
- opacity: 0;
54
- visibility: hidden;
55
- transition:
56
- opacity 0.3s ease,
57
- visibility 0.3s ease;
58
- }
59
- }
60
-
61
- .body {
62
- &--close {
63
- height: 100vh;
64
- overflow-y: hidden;
65
- }
66
-
67
- &--modal {
68
- &::after {
69
- opacity: 1;
70
- visibility: visible;
71
- }
72
- }
73
- }
74
-
75
- #root {
76
- display: flex;
77
- flex-direction: column;
78
- height: 100%;
79
- }
80
-
81
- .main {
82
- flex: 1 0 auto;
83
- }
84
-
85
- .wrapper {
86
- min-width: 340px;
87
- width: 100%;
88
- margin-left: auto;
89
- margin-right: auto;
90
- padding-left: var(--wrapper-padding);
91
- padding-right: var(--wrapper-padding);
92
-
93
- @include mixins.min-width(md) {
94
- max-width: 680px;
95
- }
96
-
97
- @include mixins.min-width(lg) {
98
- max-width: 1000px;
99
- }
100
- }
101
-
102
- .scroll-block::-webkit-scrollbar {
103
- -webkit-appearance: none;
104
- width: 8px;
105
- height: 8px;
106
- }
107
-
108
- // Ползунок — производная от текста, обводка — от фона: в тёмной теме
109
- // ползунок светлеет вместе с ней, как и остальные серые в этом файле.
110
- .scroll-block::-webkit-scrollbar-thumb {
111
- border-radius: 4px;
112
- background-color: color-mix(
113
- in srgb,
114
- var(--color-foreground) 24%,
115
- var(--color-background)
116
- );
117
- box-shadow: 0 0 1px
118
- color-mix(in srgb, var(--color-background) 50%, transparent);
119
- }
120
-
121
- a {
122
- text-decoration: none;
123
- transition: color 0.3s ease;
124
- color: var(--color-foreground);
125
- }
126
-
127
- button {
128
- color: var(--color-foreground);
129
- font-size: var(--text-sm);
130
- font-family: var(--font-sans);
131
-
132
- &:not(:disabled) {
133
- cursor: pointer;
134
- }
135
- }
136
-
137
- img {
138
- display: block;
139
- max-width: 100%;
140
- max-height: 100%;
141
- }
142
-
143
- table {
144
- width: 100%;
145
- border-collapse: collapse;
146
-
147
- tr {
148
- vertical-align: top;
149
- }
150
-
151
- td {
152
- word-break: break-word;
153
- border-top: 1px solid var(--color-border);
154
- padding: 15px 0;
155
- }
156
-
157
- tr:last-of-type td {
158
- border-bottom: 1px solid var(--color-border);
159
- }
160
-
161
- th {
162
- color: var(--color-muted-foreground);
163
- font-size: var(--text-xs);
164
- line-height: var(--text-xs--line-height);
165
- text-align: left;
166
- font-weight: normal;
167
- padding: 15px 0;
168
- }
169
- }
170
-
171
- h1,
172
- h2,
173
- h3 {
174
- text-align: left;
175
- font-weight: 900;
176
- }
177
-
178
- h1 {
179
- font-size: var(--text-2xl);
180
- line-height: var(--text-2xl--line-height);
181
-
182
- @include mixins.min-width(md) {
183
- font-size: var(--text-3xl);
184
- line-height: var(--text-3xl--line-height);
185
- }
186
- }
187
-
188
- h2 {
189
- font-size: var(--text-2xl);
190
- line-height: var(--text-2xl--line-height);
191
- }
192
-
193
- h3 {
194
- font-size: var(--text-lg);
195
- line-height: var(--text-lg--line-height);
196
- }
197
-
198
- h4 {
199
- font-size: var(--text-sm);
200
- line-height: var(--text-sm--line-height);
201
- }
1
+ // База приложения. Шрифт Inter подключает хост — файлы лежат в splittest-frontend/src/app/fonts.
2
+ // Токены (`--color-*`) подключает вход пакета, этот файл их не эмитит.
3
+ @use './mixins.scss' as mixins;
4
+
5
+ :root {
6
+ --window-max-height: 100vh;
7
+ --wrapper-padding: 20px;
8
+
9
+ @include mixins.min-width(md) {
10
+ --wrapper-padding: 30px;
11
+ }
12
+ }
13
+
14
+ *,
15
+ *:before,
16
+ *:after {
17
+ box-sizing: border-box;
18
+ }
19
+
20
+ * {
21
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
22
+ }
23
+
24
+ html,
25
+ body {
26
+ height: 100%;
27
+ scrollbar-gutter: stable;
28
+ }
29
+
30
+ body {
31
+ display: flex;
32
+ flex-direction: column;
33
+ margin: 0;
34
+ font-family: var(--font-sans);
35
+ -webkit-font-smoothing: antialiased;
36
+ -moz-osx-font-smoothing: grayscale;
37
+ color: var(--color-foreground);
38
+ background-color: var(--color-background);
39
+ font-size: var(--text-sm);
40
+ line-height: var(--text-sm--line-height);
41
+ font-weight: 400;
42
+
43
+ &::after {
44
+ content: '';
45
+ display: block;
46
+ background-color: var(--color-overlay);
47
+ position: fixed;
48
+ left: 0;
49
+ top: 0;
50
+ right: 0;
51
+ bottom: 0;
52
+ z-index: 100;
53
+ opacity: 0;
54
+ visibility: hidden;
55
+ transition:
56
+ opacity 0.3s ease,
57
+ visibility 0.3s ease;
58
+ }
59
+ }
60
+
61
+ .body {
62
+ &--close {
63
+ height: 100vh;
64
+ overflow-y: hidden;
65
+ }
66
+
67
+ &--modal {
68
+ &::after {
69
+ opacity: 1;
70
+ visibility: visible;
71
+ }
72
+ }
73
+ }
74
+
75
+ #root {
76
+ display: flex;
77
+ flex-direction: column;
78
+ height: 100%;
79
+ }
80
+
81
+ .main {
82
+ flex: 1 0 auto;
83
+ }
84
+
85
+ .wrapper {
86
+ min-width: 340px;
87
+ width: 100%;
88
+ margin-left: auto;
89
+ margin-right: auto;
90
+ padding-left: var(--wrapper-padding);
91
+ padding-right: var(--wrapper-padding);
92
+
93
+ @include mixins.min-width(md) {
94
+ max-width: 680px;
95
+ }
96
+
97
+ @include mixins.min-width(lg) {
98
+ max-width: 1000px;
99
+ }
100
+ }
101
+
102
+ .scroll-block::-webkit-scrollbar {
103
+ -webkit-appearance: none;
104
+ width: 8px;
105
+ height: 8px;
106
+ }
107
+
108
+ // Ползунок — производная от текста, обводка — от фона: в тёмной теме
109
+ // ползунок светлеет вместе с ней, как и остальные серые в этом файле.
110
+ .scroll-block::-webkit-scrollbar-thumb {
111
+ border-radius: 4px;
112
+ background-color: color-mix(
113
+ in srgb,
114
+ var(--color-foreground) 24%,
115
+ var(--color-background)
116
+ );
117
+ box-shadow: 0 0 1px
118
+ color-mix(in srgb, var(--color-background) 50%, transparent);
119
+ }
120
+
121
+ a {
122
+ text-decoration: none;
123
+ transition: color 0.3s ease;
124
+ color: var(--color-foreground);
125
+ }
126
+
127
+ button {
128
+ color: var(--color-foreground);
129
+ font-size: var(--text-sm);
130
+ font-family: var(--font-sans);
131
+
132
+ &:not(:disabled) {
133
+ cursor: pointer;
134
+ }
135
+ }
136
+
137
+ img {
138
+ display: block;
139
+ max-width: 100%;
140
+ max-height: 100%;
141
+ }
142
+
143
+ table {
144
+ width: 100%;
145
+ border-collapse: collapse;
146
+
147
+ tr {
148
+ vertical-align: top;
149
+ }
150
+
151
+ td {
152
+ word-break: break-word;
153
+ border-top: 1px solid var(--color-border);
154
+ padding: 15px 0;
155
+ }
156
+
157
+ tr:last-of-type td {
158
+ border-bottom: 1px solid var(--color-border);
159
+ }
160
+
161
+ th {
162
+ color: var(--color-muted-foreground);
163
+ font-size: var(--text-xs);
164
+ line-height: var(--text-xs--line-height);
165
+ text-align: left;
166
+ font-weight: normal;
167
+ padding: 15px 0;
168
+ }
169
+ }
170
+
171
+ h1,
172
+ h2,
173
+ h3 {
174
+ text-align: left;
175
+ font-weight: 900;
176
+ }
177
+
178
+ h1 {
179
+ font-size: var(--text-2xl);
180
+ line-height: var(--text-2xl--line-height);
181
+
182
+ @include mixins.min-width(md) {
183
+ font-size: var(--text-3xl);
184
+ line-height: var(--text-3xl--line-height);
185
+ }
186
+ }
187
+
188
+ h2 {
189
+ font-size: var(--text-2xl);
190
+ line-height: var(--text-2xl--line-height);
191
+ }
192
+
193
+ h3 {
194
+ font-size: var(--text-lg);
195
+ line-height: var(--text-lg--line-height);
196
+ }
197
+
198
+ h4 {
199
+ font-size: var(--text-sm);
200
+ line-height: var(--text-sm--line-height);
201
+ }