@de-kit/st-ui 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/dist/components/button/button.cjs +2 -4
- package/dist/components/button/button.cjs.map +1 -1
- package/dist/components/button/button.js +2 -2
- package/dist/components/button/button.js.map +1 -1
- package/dist/components/button/button.scss +93 -0
- package/dist/components/checkbox/checkbox.cjs +4 -6
- package/dist/components/checkbox/checkbox.cjs.map +1 -1
- package/dist/components/checkbox/checkbox.js +4 -4
- package/dist/components/checkbox/checkbox.js.map +1 -1
- package/dist/components/checkbox/{checkbox.module.scss → checkbox.scss} +11 -13
- package/dist/components/input/input.cjs +2 -4
- package/dist/components/input/input.cjs.map +1 -1
- package/dist/components/input/input.js +2 -2
- package/dist/components/input/input.js.map +1 -1
- package/dist/components/input/{input.module.scss → input.scss} +11 -13
- package/dist/components/radio/radio.cjs +4 -6
- package/dist/components/radio/radio.cjs.map +1 -1
- package/dist/components/radio/radio.js +4 -4
- package/dist/components/radio/radio.js.map +1 -1
- package/dist/components/radio/{radio.module.scss → radio.scss} +14 -13
- package/dist/components/spinner/spinner.cjs +2 -4
- package/dist/components/spinner/spinner.cjs.map +1 -1
- package/dist/components/spinner/spinner.js +2 -2
- package/dist/components/spinner/spinner.js.map +1 -1
- package/dist/components/spinner/{spinner.module.scss → spinner.scss} +3 -3
- package/dist/components/textarea/textarea.cjs +4 -6
- package/dist/components/textarea/textarea.cjs.map +1 -1
- package/dist/components/textarea/textarea.js +4 -4
- package/dist/components/textarea/textarea.js.map +1 -1
- package/dist/components/textarea/textarea.scss +58 -0
- package/dist/index.cjs +1 -0
- package/dist/index.js +1 -0
- package/dist/lib/cn.cjs +2 -2
- package/dist/lib/cn.cjs.map +1 -1
- package/dist/lib/cn.js +2 -2
- package/dist/lib/cn.js.map +1 -1
- package/dist/styles/global.scss +17 -17
- package/dist/styles/mixins.scss +22 -24
- package/dist/styles/vars.scss +31 -34
- package/package.json +2 -2
- package/dist/_virtual/_rolldown/runtime.cjs +0 -22
- package/dist/components/button/button.module.scss +0 -95
- package/dist/components/textarea/textarea.module.scss +0 -60
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.cjs","names":["cn","
|
|
1
|
+
{"version":3,"file":"spinner.cjs","names":["cn","when"],"sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nimport { cn, when } from '../../lib/cn';\nimport './spinner.scss';\n\nconst spinnerPosition = {\n top: 'top',\n center: 'center',\n} as const;\n\nexport type SpinnerPosition =\n (typeof spinnerPosition)[keyof typeof spinnerPosition];\n\nexport interface SpinnerProps {\n className?: string;\n position?: SpinnerPosition;\n}\n\nconst dotDelays = [\n '0s',\n '0.125s',\n '0.25s',\n '0.375s',\n '0.5s',\n '0.625s',\n '0.75s',\n '0.875s',\n] as const;\n\nconst Dot = ({ begin, rotate }: { begin: string; rotate: number }) => (\n <circle transform={`rotate(${rotate} 16 16)`} cx=\"16\" cy=\"3\" r=\"0\">\n <animate\n attributeName=\"r\"\n values=\"0;3;0;0\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n begin={begin}\n keySplines=\"0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8\"\n calcMode=\"spline\"\n />\n </circle>\n);\n\nconst svgProps: SVGProps<SVGSVGElement> = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': '0 0 32 32',\n 'width': 64,\n 'height': 64,\n 'fill': '#ecebeb',\n 'aria-hidden': true,\n};\n\nexport const Spinner: FC<SpinnerProps> = ({\n className,\n position = spinnerPosition.center,\n}) => (\n <div\n className={cn(\n 'spinner',\n className,\n when(position === spinnerPosition.top, 'spinner--top'),\n )}\n >\n <svg {...svgProps}>\n {dotDelays.map((begin, index) => (\n <Dot key={begin} begin={begin} rotate={index * 45} />\n ))}\n </svg>\n </div>\n);\n"],"mappings":";;;;AAKA,MAAM,kBAAkB;CACtB,KAAK;CACL,QAAQ;AACV;AAUA,MAAM,YAAY;CAChB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,OAAO,EAAE,OAAO,aACpB,iBAAA,GAAA,kBAAA,IAAA,CAAC,UAAD;CAAQ,WAAW,UAAU,OAAO;CAAU,IAAG;CAAK,IAAG;CAAI,GAAE;CAC7D,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,WAAD;EACE,eAAc;EACd,QAAO;EACP,KAAI;EACJ,aAAY;EACL;EACP,YAAW;EACX,UAAS;CACV,CAAA;AACK,CAAA;AAGV,MAAM,WAAoC;CACxC,SAAS;CACT,WAAW;CACX,SAAS;CACT,UAAU;CACV,QAAQ;CACR,eAAe;AACjB;AAEA,MAAa,WAA6B,EACxC,WACA,WAAW,gBAAgB,aAE3B,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;CACE,WAAWA,WAAAA,GACT,WACA,WACAC,WAAAA,KAAK,aAAa,gBAAgB,KAAK,cAAc,CACvD;CAEA,UAAA,iBAAA,GAAA,kBAAA,IAAA,CAAC,OAAD;EAAK,GAAI;EACN,UAAA,UAAU,KAAK,OAAO,UACrB,iBAAA,GAAA,kBAAA,IAAA,CAAC,KAAD;GAAwB;GAAO,QAAQ,QAAQ;EAAK,GAA1C,KAA0C,CACrD;CACE,CAAA;AACF,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { cn, when } from "../../lib/cn.js";
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
|
-
import
|
|
3
|
+
import "./spinner.scss";
|
|
4
4
|
// src/components/spinner/spinner.tsx
|
|
5
5
|
const spinnerPosition = {
|
|
6
6
|
top: "top",
|
|
@@ -40,7 +40,7 @@ const svgProps = {
|
|
|
40
40
|
"aria-hidden": true
|
|
41
41
|
};
|
|
42
42
|
const Spinner = ({ className, position = spinnerPosition.center }) => /* @__PURE__ */ jsx("div", {
|
|
43
|
-
className: cn(
|
|
43
|
+
className: cn("spinner", className, when(position === spinnerPosition.top, "spinner--top")),
|
|
44
44
|
children: /* @__PURE__ */ jsx("svg", {
|
|
45
45
|
...svgProps,
|
|
46
46
|
children: dotDelays.map((begin, index) => /* @__PURE__ */ jsx(Dot, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spinner.js","names":[],"sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nimport { cn, when } from '../../lib/cn';\nimport
|
|
1
|
+
{"version":3,"file":"spinner.js","names":[],"sources":["../../../src/components/spinner/spinner.tsx"],"sourcesContent":["import type { FC, SVGProps } from 'react';\n\nimport { cn, when } from '../../lib/cn';\nimport './spinner.scss';\n\nconst spinnerPosition = {\n top: 'top',\n center: 'center',\n} as const;\n\nexport type SpinnerPosition =\n (typeof spinnerPosition)[keyof typeof spinnerPosition];\n\nexport interface SpinnerProps {\n className?: string;\n position?: SpinnerPosition;\n}\n\nconst dotDelays = [\n '0s',\n '0.125s',\n '0.25s',\n '0.375s',\n '0.5s',\n '0.625s',\n '0.75s',\n '0.875s',\n] as const;\n\nconst Dot = ({ begin, rotate }: { begin: string; rotate: number }) => (\n <circle transform={`rotate(${rotate} 16 16)`} cx=\"16\" cy=\"3\" r=\"0\">\n <animate\n attributeName=\"r\"\n values=\"0;3;0;0\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n begin={begin}\n keySplines=\"0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8;0.2 0.2 0.4 0.8\"\n calcMode=\"spline\"\n />\n </circle>\n);\n\nconst svgProps: SVGProps<SVGSVGElement> = {\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': '0 0 32 32',\n 'width': 64,\n 'height': 64,\n 'fill': '#ecebeb',\n 'aria-hidden': true,\n};\n\nexport const Spinner: FC<SpinnerProps> = ({\n className,\n position = spinnerPosition.center,\n}) => (\n <div\n className={cn(\n 'spinner',\n className,\n when(position === spinnerPosition.top, 'spinner--top'),\n )}\n >\n <svg {...svgProps}>\n {dotDelays.map((begin, index) => (\n <Dot key={begin} begin={begin} rotate={index * 45} />\n ))}\n </svg>\n </div>\n);\n"],"mappings":";;;;AAKA,MAAM,kBAAkB;CACtB,KAAK;CACL,QAAQ;AACV;AAUA,MAAM,YAAY;CAChB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,OAAO,EAAE,OAAO,aACpB,oBAAC,UAAD;CAAQ,WAAW,UAAU,OAAO;CAAU,IAAG;CAAK,IAAG;CAAI,GAAE;CAC7D,UAAA,oBAAC,WAAD;EACE,eAAc;EACd,QAAO;EACP,KAAI;EACJ,aAAY;EACL;EACP,YAAW;EACX,UAAS;CACV,CAAA;AACK,CAAA;AAGV,MAAM,WAAoC;CACxC,SAAS;CACT,WAAW;CACX,SAAS;CACT,UAAU;CACV,QAAQ;CACR,eAAe;AACjB;AAEA,MAAa,WAA6B,EACxC,WACA,WAAW,gBAAgB,aAE3B,oBAAC,OAAD;CACE,WAAW,GACT,WACA,WACA,KAAK,aAAa,gBAAgB,KAAK,cAAc,CACvD;CAEA,UAAA,oBAAC,OAAD;EAAK,GAAI;EACN,UAAA,UAAU,KAAK,OAAO,UACrB,oBAAC,KAAD;GAAwB;GAAO,QAAQ,QAAQ;EAAK,GAA1C,KAA0C,CACrD;CACE,CAAA;AACF,CAAA"}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
const require_runtime = require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
1
|
const require_cn = require("../../lib/cn.cjs");
|
|
3
2
|
let react = require("react");
|
|
4
3
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
5
|
-
|
|
6
|
-
src_components_textarea_textarea_module_scss = require_runtime.__toESM(src_components_textarea_textarea_module_scss, 1);
|
|
4
|
+
require("./textarea.scss");
|
|
7
5
|
// src/components/textarea/textarea.tsx
|
|
8
6
|
const TextArea = (0, react.forwardRef)(function TextArea({ maxLength, value = "", recommended, error, hideCounter = false, className, ...props }, ref) {
|
|
9
7
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
10
|
-
className:
|
|
8
|
+
className: "textarea__wrap",
|
|
11
9
|
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("textarea", {
|
|
12
10
|
ref,
|
|
13
|
-
className: require_cn.cn(
|
|
11
|
+
className: require_cn.cn("textarea", className, require_cn.when(recommended, "textarea--recommended"), require_cn.when(error, "textarea--error")),
|
|
14
12
|
value,
|
|
15
13
|
maxLength,
|
|
16
14
|
"aria-invalid": error || void 0,
|
|
17
15
|
...props
|
|
18
16
|
}), maxLength && !hideCounter ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("span", {
|
|
19
|
-
className:
|
|
17
|
+
className: "textarea__counter",
|
|
20
18
|
children: [
|
|
21
19
|
"Максимум ",
|
|
22
20
|
maxLength,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.cjs","names":["forwardRef","
|
|
1
|
+
{"version":3,"file":"textarea.cjs","names":["forwardRef","cn","when"],"sources":["../../../src/components/textarea/textarea.tsx"],"sourcesContent":["import { forwardRef, type TextareaHTMLAttributes } from 'react';\n\nimport { cn, when } from '../../lib/cn';\nimport './textarea.scss';\n\nexport interface TextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n recommended?: boolean;\n error?: boolean;\n /** В приложении проп называется `noMaxMoty`. */\n hideCounter?: boolean;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(\n {\n maxLength,\n value = '',\n recommended,\n error,\n hideCounter = false,\n className,\n ...props\n },\n ref,\n ) {\n return (\n <div className=\"textarea__wrap\">\n <textarea\n ref={ref}\n className={cn(\n 'textarea',\n className,\n when(recommended, 'textarea--recommended'),\n when(error, 'textarea--error'),\n )}\n value={value}\n maxLength={maxLength}\n aria-invalid={error || undefined}\n {...props}\n />\n {maxLength && !hideCounter ? (\n <span className=\"textarea__counter\">\n Максимум {maxLength} символов\n </span>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":";;;;;AAYA,MAAa,YAAA,GAAWA,MAAAA,WAAAA,CACtB,SAAS,SACP,EACE,WACA,QAAQ,IACR,aACA,OACA,cAAc,OACd,WACA,GAAG,SAEL,KACA;CACA,OACE,iBAAA,GAAA,kBAAA,KAAA,CAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,iBAAA,GAAA,kBAAA,IAAA,CAAC,YAAD;GACO;GACL,WAAWC,WAAAA,GACT,YACA,WACAC,WAAAA,KAAK,aAAa,uBAAuB,GACzCA,WAAAA,KAAK,OAAO,iBAAiB,CAC/B;GACO;GACI;GACX,gBAAc,SAAS,KAAA;GACvB,GAAI;EACL,CAAA,GACA,aAAa,CAAC,cACb,iBAAA,GAAA,kBAAA,KAAA,CAAC,QAAD;GAAM,WAAU;GAAhB,UAAA;IAAoC;IACxB;IAAU;GAChB;EACJ,CAAA,IAAA,IACD;;AAET,CACF"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import { cn, when } from "../../lib/cn.js";
|
|
2
2
|
import { forwardRef } from "react";
|
|
3
3
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
-
import
|
|
4
|
+
import "./textarea.scss";
|
|
5
5
|
// src/components/textarea/textarea.tsx
|
|
6
6
|
const TextArea = forwardRef(function TextArea({ maxLength, value = "", recommended, error, hideCounter = false, className, ...props }, ref) {
|
|
7
7
|
return /* @__PURE__ */ jsxs("div", {
|
|
8
|
-
className:
|
|
8
|
+
className: "textarea__wrap",
|
|
9
9
|
children: [/* @__PURE__ */ jsx("textarea", {
|
|
10
10
|
ref,
|
|
11
|
-
className: cn(
|
|
11
|
+
className: cn("textarea", className, when(recommended, "textarea--recommended"), when(error, "textarea--error")),
|
|
12
12
|
value,
|
|
13
13
|
maxLength,
|
|
14
14
|
"aria-invalid": error || void 0,
|
|
15
15
|
...props
|
|
16
16
|
}), maxLength && !hideCounter ? /* @__PURE__ */ jsxs("span", {
|
|
17
|
-
className:
|
|
17
|
+
className: "textarea__counter",
|
|
18
18
|
children: [
|
|
19
19
|
"Максимум ",
|
|
20
20
|
maxLength,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"textarea.js","names":[],"sources":["../../../src/components/textarea/textarea.tsx"],"sourcesContent":["import { forwardRef, type TextareaHTMLAttributes } from 'react';\n\nimport { cn, when } from '../../lib/cn';\nimport
|
|
1
|
+
{"version":3,"file":"textarea.js","names":[],"sources":["../../../src/components/textarea/textarea.tsx"],"sourcesContent":["import { forwardRef, type TextareaHTMLAttributes } from 'react';\n\nimport { cn, when } from '../../lib/cn';\nimport './textarea.scss';\n\nexport interface TextAreaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n recommended?: boolean;\n error?: boolean;\n /** В приложении проп называется `noMaxMoty`. */\n hideCounter?: boolean;\n}\n\nexport const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(\n function TextArea(\n {\n maxLength,\n value = '',\n recommended,\n error,\n hideCounter = false,\n className,\n ...props\n },\n ref,\n ) {\n return (\n <div className=\"textarea__wrap\">\n <textarea\n ref={ref}\n className={cn(\n 'textarea',\n className,\n when(recommended, 'textarea--recommended'),\n when(error, 'textarea--error'),\n )}\n value={value}\n maxLength={maxLength}\n aria-invalid={error || undefined}\n {...props}\n />\n {maxLength && !hideCounter ? (\n <span className=\"textarea__counter\">\n Максимум {maxLength} символов\n </span>\n ) : null}\n </div>\n );\n },\n);\n"],"mappings":";;;;;AAYA,MAAa,WAAW,WACtB,SAAS,SACP,EACE,WACA,QAAQ,IACR,aACA,OACA,cAAc,OACd,WACA,GAAG,SAEL,KACA;CACA,OACE,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA,CACE,oBAAC,YAAD;GACO;GACL,WAAW,GACT,YACA,WACA,KAAK,aAAa,uBAAuB,GACzC,KAAK,OAAO,iBAAiB,CAC/B;GACO;GACI;GACX,gBAAc,SAAS,KAAA;GACvB,GAAI;EACL,CAAA,GACA,aAAa,CAAC,cACb,qBAAC,QAAD;GAAM,WAAU;GAAhB,UAAA;IAAoC;IACxB;IAAU;GAChB;EACJ,CAAA,IAAA,IACD;;AAET,CACF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
.textarea__wrap {
|
|
2
|
+
position: relative;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.textarea {
|
|
6
|
+
box-sizing: border-box;
|
|
7
|
+
width: 100%;
|
|
8
|
+
min-height: 160px;
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
padding: 10px 15px;
|
|
12
|
+
font-size: 14px;
|
|
13
|
+
line-height: 20px;
|
|
14
|
+
background-color: transparent;
|
|
15
|
+
color: var(--color-black);
|
|
16
|
+
border-radius: var(--radius-sm);
|
|
17
|
+
resize: none;
|
|
18
|
+
font-family: var(--font-sans);
|
|
19
|
+
border: 1px solid var(--color-input);
|
|
20
|
+
outline: 1px solid transparent;
|
|
21
|
+
transition:
|
|
22
|
+
background 0.3s,
|
|
23
|
+
border-color 0.3s,
|
|
24
|
+
box-shadow 0.2s;
|
|
25
|
+
|
|
26
|
+
&:focus {
|
|
27
|
+
border-color: var(--color-black);
|
|
28
|
+
outline: 1px solid var(--color-black);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
&:disabled {
|
|
32
|
+
background-color: var(--color-neutral-200);
|
|
33
|
+
border-color: var(--color-neutral-200);
|
|
34
|
+
color: color-mix(in srgb, var(--color-black) 50%, transparent);
|
|
35
|
+
fill: var(--color-neutral-500);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@media (min-width: 680px) {
|
|
39
|
+
min-height: 80px;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&--recommended {
|
|
43
|
+
background-color: color-mix(in srgb, var(--color-yellow) 10%, transparent);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
&--error {
|
|
47
|
+
border-color: color-mix(in srgb, var(--color-red) 50%, transparent);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.textarea__counter {
|
|
52
|
+
display: block;
|
|
53
|
+
margin-top: 5px;
|
|
54
|
+
font-size: 11px;
|
|
55
|
+
line-height: 20px;
|
|
56
|
+
color: color-mix(in srgb, var(--color-black) 50%, transparent);
|
|
57
|
+
text-align: left;
|
|
58
|
+
}
|
package/dist/index.cjs
CHANGED
|
@@ -5,6 +5,7 @@ const require_input = require("./components/input/input.cjs");
|
|
|
5
5
|
const require_radio = require("./components/radio/radio.cjs");
|
|
6
6
|
const require_spinner = require("./components/spinner/spinner.cjs");
|
|
7
7
|
const require_textarea = require("./components/textarea/textarea.cjs");
|
|
8
|
+
require("./styles/vars.scss");
|
|
8
9
|
exports.Button = require_button.Button;
|
|
9
10
|
exports.CheckboxInput = require_checkbox.CheckboxInput;
|
|
10
11
|
exports.Input = require_input.Input;
|
package/dist/index.js
CHANGED
|
@@ -4,4 +4,5 @@ import { Input } from "./components/input/input.js";
|
|
|
4
4
|
import { RadioInput } from "./components/radio/radio.js";
|
|
5
5
|
import { Spinner } from "./components/spinner/spinner.js";
|
|
6
6
|
import { TextArea } from "./components/textarea/textarea.js";
|
|
7
|
+
import "./styles/vars.scss";
|
|
7
8
|
export { Button, CheckboxInput, Input, RadioInput, Spinner, TextArea };
|
package/dist/lib/cn.cjs
CHANGED
|
@@ -11,13 +11,13 @@ const pushClass = (classes, value) => {
|
|
|
11
11
|
}
|
|
12
12
|
for (const key of Object.keys(value)) if (value[key]) classes.push(key);
|
|
13
13
|
};
|
|
14
|
-
/** Склейка классов. Без tailwind-merge:
|
|
14
|
+
/** Склейка классов. Без tailwind-merge: одноимённые правила решает специфичность. */
|
|
15
15
|
const cn = (...inputs) => {
|
|
16
16
|
const classes = [];
|
|
17
17
|
inputs.forEach((input) => pushClass(classes, input));
|
|
18
18
|
return classes.join(" ");
|
|
19
19
|
};
|
|
20
|
-
/**
|
|
20
|
+
/** Условный класс. Пустая строка и `undefined` в `cn` не попадают. */
|
|
21
21
|
const when = (enabled, className) => Boolean(enabled) && className ? className : false;
|
|
22
22
|
exports.cn = cn;
|
|
23
23
|
exports.when = when;
|
package/dist/lib/cn.cjs.map
CHANGED
|
@@ -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:
|
|
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"}
|
package/dist/lib/cn.js
CHANGED
|
@@ -11,13 +11,13 @@ const pushClass = (classes, value) => {
|
|
|
11
11
|
}
|
|
12
12
|
for (const key of Object.keys(value)) if (value[key]) classes.push(key);
|
|
13
13
|
};
|
|
14
|
-
/** Склейка классов. Без tailwind-merge:
|
|
14
|
+
/** Склейка классов. Без tailwind-merge: одноимённые правила решает специфичность. */
|
|
15
15
|
const cn = (...inputs) => {
|
|
16
16
|
const classes = [];
|
|
17
17
|
inputs.forEach((input) => pushClass(classes, input));
|
|
18
18
|
return classes.join(" ");
|
|
19
19
|
};
|
|
20
|
-
/**
|
|
20
|
+
/** Условный класс. Пустая строка и `undefined` в `cn` не попадают. */
|
|
21
21
|
const when = (enabled, className) => Boolean(enabled) && className ? className : false;
|
|
22
22
|
export { cn, when };
|
|
23
23
|
|
package/dist/lib/cn.js.map
CHANGED
|
@@ -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:
|
|
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"}
|
package/dist/styles/global.scss
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// База приложения. Шрифт Inter подключает хост — файлы лежат в splittest-frontend/src/app/fonts.
|
|
2
|
-
|
|
2
|
+
// Токены (`--color-*`) подключает вход пакета, этот файл их не эмитит.
|
|
3
3
|
|
|
4
4
|
:root {
|
|
5
5
|
--pink: #ff00ff;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
--window-max-height: 100vh;
|
|
8
8
|
--wrapper-padding: 20px;
|
|
9
9
|
|
|
10
|
-
@media (min-width:
|
|
10
|
+
@media (min-width: 680px) {
|
|
11
11
|
--wrapper-padding: 30px;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
@@ -32,19 +32,19 @@ body {
|
|
|
32
32
|
display: flex;
|
|
33
33
|
flex-direction: column;
|
|
34
34
|
margin: 0;
|
|
35
|
-
font-family:
|
|
35
|
+
font-family: var(--font-sans);
|
|
36
36
|
-webkit-font-smoothing: antialiased;
|
|
37
37
|
-moz-osx-font-smoothing: grayscale;
|
|
38
|
-
color:
|
|
39
|
-
background-color:
|
|
40
|
-
font-size:
|
|
38
|
+
color: var(--color-black);
|
|
39
|
+
background-color: var(--color-white);
|
|
40
|
+
font-size: var(--text-sm);
|
|
41
41
|
line-height: 20px;
|
|
42
42
|
font-weight: 400;
|
|
43
43
|
|
|
44
44
|
&::after {
|
|
45
45
|
content: '';
|
|
46
46
|
display: block;
|
|
47
|
-
background-color:
|
|
47
|
+
background-color: color-mix(in srgb, var(--color-black) 30%, transparent);
|
|
48
48
|
position: fixed;
|
|
49
49
|
left: 0;
|
|
50
50
|
top: 0;
|
|
@@ -91,11 +91,11 @@ body {
|
|
|
91
91
|
padding-left: var(--wrapper-padding);
|
|
92
92
|
padding-right: var(--wrapper-padding);
|
|
93
93
|
|
|
94
|
-
@media (min-width:
|
|
94
|
+
@media (min-width: 680px) {
|
|
95
95
|
max-width: 680px;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
@media (min-width:
|
|
98
|
+
@media (min-width: 1000px) {
|
|
99
99
|
max-width: 1000px;
|
|
100
100
|
}
|
|
101
101
|
}
|
|
@@ -115,13 +115,13 @@ body {
|
|
|
115
115
|
a {
|
|
116
116
|
text-decoration: none;
|
|
117
117
|
transition: color 0.3s ease;
|
|
118
|
-
color:
|
|
118
|
+
color: var(--color-black);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
button {
|
|
122
|
-
color:
|
|
123
|
-
font-size:
|
|
124
|
-
font-family:
|
|
122
|
+
color: var(--color-black);
|
|
123
|
+
font-size: var(--text-sm);
|
|
124
|
+
font-family: var(--font-sans);
|
|
125
125
|
|
|
126
126
|
&:not(:disabled) {
|
|
127
127
|
cursor: pointer;
|
|
@@ -144,16 +144,16 @@ table {
|
|
|
144
144
|
|
|
145
145
|
td {
|
|
146
146
|
word-break: break-word;
|
|
147
|
-
border-top: 1px solid
|
|
147
|
+
border-top: 1px solid var(--color-border);
|
|
148
148
|
padding: 15px 0;
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
tr:last-of-type td {
|
|
152
|
-
border-bottom: 1px solid
|
|
152
|
+
border-bottom: 1px solid var(--color-border);
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
th {
|
|
156
|
-
color:
|
|
156
|
+
color: color-mix(in srgb, var(--color-black) 50%, transparent);
|
|
157
157
|
font-size: 11px;
|
|
158
158
|
line-height: 15px;
|
|
159
159
|
text-align: left;
|
|
@@ -173,7 +173,7 @@ h1 {
|
|
|
173
173
|
font-size: 28px;
|
|
174
174
|
line-height: 30px;
|
|
175
175
|
|
|
176
|
-
@media (min-width:
|
|
176
|
+
@media (min-width: 680px) {
|
|
177
177
|
font-size: 45px;
|
|
178
178
|
line-height: 50px;
|
|
179
179
|
}
|
package/dist/styles/mixins.scss
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@import './vars.scss';
|
|
2
|
-
|
|
3
1
|
@mixin btn-focus {
|
|
4
2
|
&:focus {
|
|
5
3
|
outline: initial;
|
|
@@ -10,7 +8,7 @@
|
|
|
10
8
|
}
|
|
11
9
|
|
|
12
10
|
&:focus-visible {
|
|
13
|
-
outline: 1px solid
|
|
11
|
+
outline: 1px solid var(--color-black);
|
|
14
12
|
background: transparent;
|
|
15
13
|
}
|
|
16
14
|
}
|
|
@@ -39,12 +37,12 @@
|
|
|
39
37
|
padding: 0 9px;
|
|
40
38
|
font-size: 14px;
|
|
41
39
|
font-weight: 700;
|
|
42
|
-
color:
|
|
43
|
-
background-color:
|
|
40
|
+
color: var(--color-white);
|
|
41
|
+
background-color: var(--color-blue);
|
|
44
42
|
border: none;
|
|
45
43
|
border-radius: 5px;
|
|
46
44
|
cursor: pointer;
|
|
47
|
-
transition:
|
|
45
|
+
transition: all var(--default-transition-duration) var(--default-transition-timing-function);
|
|
48
46
|
|
|
49
47
|
&:disabled {
|
|
50
48
|
background-color: rgba(0, 0, 0, 0.1);
|
|
@@ -54,19 +52,19 @@
|
|
|
54
52
|
|
|
55
53
|
&:active,
|
|
56
54
|
&:hover {
|
|
57
|
-
background-color:
|
|
55
|
+
background-color: var(--color-black);
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
58
|
|
|
61
59
|
@mixin input-min {
|
|
62
60
|
height: 38px;
|
|
63
|
-
border-radius:
|
|
64
|
-
border: 4px solid
|
|
61
|
+
border-radius: var(--radius-sm);
|
|
62
|
+
border: 4px solid var(--color-white);
|
|
65
63
|
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
66
64
|
padding: 0 15px;
|
|
67
65
|
font-size: 14px;
|
|
68
|
-
transition:
|
|
69
|
-
background-color:
|
|
66
|
+
transition: all var(--default-transition-duration) var(--default-transition-timing-function);
|
|
67
|
+
background-color: var(--color-white);
|
|
70
68
|
appearance: none;
|
|
71
69
|
outline: none;
|
|
72
70
|
|
|
@@ -76,10 +74,10 @@
|
|
|
76
74
|
}
|
|
77
75
|
|
|
78
76
|
&--recommend {
|
|
79
|
-
background-color:
|
|
77
|
+
background-color: color-mix(in srgb, var(--color-yellow) 10%, transparent);
|
|
80
78
|
|
|
81
79
|
&:not([value='']) {
|
|
82
|
-
background-color:
|
|
80
|
+
background-color: var(--color-white);
|
|
83
81
|
}
|
|
84
82
|
}
|
|
85
83
|
|
|
@@ -87,14 +85,14 @@
|
|
|
87
85
|
background-color: rgba(#ff002a, 0.1);
|
|
88
86
|
|
|
89
87
|
&:valid {
|
|
90
|
-
background-color:
|
|
88
|
+
background-color: var(--color-white);
|
|
91
89
|
}
|
|
92
90
|
}
|
|
93
91
|
|
|
94
92
|
&:disabled {
|
|
95
93
|
background-color: rgba(0, 0, 0, 0.1);
|
|
96
|
-
border-color:
|
|
97
|
-
color:
|
|
94
|
+
border-color: var(--color-border);
|
|
95
|
+
color: color-mix(in srgb, var(--color-black) 50%, transparent);
|
|
98
96
|
outline-offset: 0;
|
|
99
97
|
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1);
|
|
100
98
|
|
|
@@ -105,10 +103,10 @@
|
|
|
105
103
|
}
|
|
106
104
|
|
|
107
105
|
&::-webkit-input-placeholder {
|
|
108
|
-
color:
|
|
106
|
+
color: color-mix(in srgb, var(--color-black) 50%, transparent);
|
|
109
107
|
}
|
|
110
108
|
|
|
111
|
-
@media (max-width:
|
|
109
|
+
@media (max-width: 680px) {
|
|
112
110
|
font-size: 16px;
|
|
113
111
|
}
|
|
114
112
|
}
|
|
@@ -122,7 +120,7 @@
|
|
|
122
120
|
display: block;
|
|
123
121
|
width: calc(100% - 1px);
|
|
124
122
|
height: 2px;
|
|
125
|
-
background-color:
|
|
123
|
+
background-color: var(--color-black);
|
|
126
124
|
}
|
|
127
125
|
|
|
128
126
|
@mixin popupShow {
|
|
@@ -141,11 +139,11 @@
|
|
|
141
139
|
z-index: 0;
|
|
142
140
|
max-width: $maxWidth;
|
|
143
141
|
padding: $padding;
|
|
144
|
-
box-shadow:
|
|
145
|
-
background:
|
|
142
|
+
box-shadow: var(--shadow-xl);
|
|
143
|
+
background: var(--color-white);
|
|
146
144
|
border-radius: 5px;
|
|
147
145
|
text-align: left;
|
|
148
|
-
color:
|
|
146
|
+
color: var(--color-black);
|
|
149
147
|
}
|
|
150
148
|
|
|
151
149
|
@mixin buttonArea($width: 20px) {
|
|
@@ -168,7 +166,7 @@
|
|
|
168
166
|
line-height: 20px;
|
|
169
167
|
font-weight: 900;
|
|
170
168
|
|
|
171
|
-
@media (min-width:
|
|
169
|
+
@media (min-width: 680px) {
|
|
172
170
|
margin-bottom: 15px;
|
|
173
171
|
}
|
|
174
172
|
}
|
|
@@ -177,7 +175,7 @@
|
|
|
177
175
|
display: flex;
|
|
178
176
|
align-items: center;
|
|
179
177
|
justify-content: center;
|
|
180
|
-
border: 1px solid
|
|
178
|
+
border: 1px solid var(--color-border);
|
|
181
179
|
overflow: hidden;
|
|
182
180
|
|
|
183
181
|
img {
|
package/dist/styles/vars.scss
CHANGED
|
@@ -1,39 +1,36 @@
|
|
|
1
|
-
// Токены splittest.
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
// Токены splittest. Имена как у Tailwind, значения свои — не дефолтная шкала.
|
|
2
|
+
// В @media custom properties нельзя: там те же px, что у --breakpoint-*.
|
|
3
|
+
:root {
|
|
4
|
+
--color-black: #000;
|
|
5
|
+
--color-white: #fff;
|
|
6
|
+
--color-blue: #002bff;
|
|
7
|
+
--color-red: #ff0000;
|
|
8
|
+
--color-green: #00a66f;
|
|
9
|
+
--color-yellow: #ffbf00;
|
|
10
|
+
--color-orange: #ff7f00;
|
|
11
|
+
--color-gray: #808080;
|
|
12
|
+
--color-neutral-100: #f7f7f7;
|
|
13
|
+
--color-neutral-200: #e5e5e5;
|
|
14
|
+
--color-neutral-500: #727272;
|
|
15
|
+
--color-input: #d9d9d9;
|
|
16
|
+
--color-border: color-mix(in srgb, var(--color-black) 10%, transparent);
|
|
17
|
+
--color-sidebar: color-mix(in srgb, var(--color-black) 3%, transparent);
|
|
4
18
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
$colorGreen: #00a66f;
|
|
8
|
-
$colorYellow: #ffbf00;
|
|
9
|
-
$colorGray: #e5e5e5;
|
|
10
|
-
$colorGrayIcon: #727272;
|
|
11
|
-
$colorGrayTwo: #808080;
|
|
12
|
-
$colorOrange: #ff7f00;
|
|
13
|
-
$colorBackground: #f7f7f7;
|
|
19
|
+
--radius-sm: 5px;
|
|
20
|
+
--radius-lg: 10px;
|
|
14
21
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
$borderColor: rgba($colorBlack, 0.1);
|
|
18
|
-
$borderShadowTop: 0 -1px 0 0 $borderColor;
|
|
19
|
-
$borderShadowBottom: 0 1px 0 0 $borderColor;
|
|
20
|
-
$borderInputColor: #d9d9d9;
|
|
21
|
-
$tr: all 0.3s ease;
|
|
22
|
-
$trParam: 0.3s ease;
|
|
23
|
-
$trBg: background-color 0.3s ease;
|
|
24
|
-
$popupBoxShadow: 0px 10px 40px 0px rgba(0, 0, 0, 0.15);
|
|
25
|
-
$bgColorSidebarBlock: rgba(0, 0, 0, 0.03);
|
|
22
|
+
--font-sans: 'Inter', sans-serif;
|
|
23
|
+
--text-sm: 14px;
|
|
26
24
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
25
|
+
--shadow-xl: 0 10px 40px 0 rgb(0 0 0 / 0.15);
|
|
26
|
+
--shadow-t: 0 -1px 0 0 var(--color-border);
|
|
27
|
+
--shadow-b: 0 1px 0 0 var(--color-border);
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
29
|
+
--breakpoint-sm: 576px;
|
|
30
|
+
--breakpoint-md: 680px;
|
|
31
|
+
--breakpoint-lg: 1000px;
|
|
32
|
+
--breakpoint-xl: 1200px;
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
$mainIndexBgColor: #f0f1f5;
|
|
34
|
+
--default-transition-duration: 0.3s;
|
|
35
|
+
--default-transition-timing-function: ease;
|
|
36
|
+
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@de-kit/st-ui",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "React-компоненты splittest: SCSS
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"description": "React-компоненты splittest: глобальный SCSS и токены из основного фронтенда",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// \0rolldown/runtime.js
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __copyProps = (to, from, except, desc) => {
|
|
9
|
-
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
-
key = keys[i];
|
|
11
|
-
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
-
get: ((k) => from[k]).bind(null, key),
|
|
13
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
|
19
|
-
value: mod,
|
|
20
|
-
enumerable: true
|
|
21
|
-
}) : target, mod));
|
|
22
|
-
exports.__toESM = __toESM;
|