@bezdenegsvarkinet/ui-library 1.1.2 → 1.3.0
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/dist/index.cjs +69 -20
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +258 -69
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +60 -9
- package/dist/index.d.ts +60 -9
- package/dist/index.js +70 -21
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -37,8 +37,36 @@ var import_class_variance_authority = require("class-variance-authority");
|
|
|
37
37
|
|
|
38
38
|
// src/stories/typography/config/typography-sizes.ts
|
|
39
39
|
var typographySizes = {
|
|
40
|
+
"display/eb/64": "text-[64px] font-extrabold",
|
|
41
|
+
"display/b/56": "text-[56px] font-bold",
|
|
42
|
+
"heading/b/48": "text-[48px] font-bold",
|
|
43
|
+
"heading/sb/40": "text-[40px] font-semibold",
|
|
44
|
+
"heading/sb/36": "text-[36px] font-semibold",
|
|
45
|
+
"heading/sb/32": "text-[32px] font-semibold",
|
|
46
|
+
"heading/sb/28": "text-[28px] font-semibold",
|
|
47
|
+
"subtitle/sb/24": "text-[24px] font-semibold",
|
|
48
|
+
"subtitle/m/24": "text-[24px] font-medium",
|
|
49
|
+
"subtitle/sb/20": "text-[20px] font-semibold",
|
|
50
|
+
"subtitle/m/20": "text-[20px] font-medium",
|
|
51
|
+
"subtitle/sb/18": "text-[18px] font-semibold",
|
|
52
|
+
"subtitle/m/18": "text-[18px] font-medium",
|
|
53
|
+
"body/m/18": "text-[18px] font-medium",
|
|
54
|
+
"body/sb/16": "text-[16px] font-semibold",
|
|
55
|
+
"body/m/16": "text-[16px] font-medium",
|
|
56
|
+
"body/r/16": "text-[16px] font-normal",
|
|
57
|
+
"body/sb/14": "text-[14px] font-semibold",
|
|
58
|
+
"body/m/14": "text-[14px] font-medium",
|
|
59
|
+
"body/r/14": "text-[14px] font-normal",
|
|
60
|
+
"button/m/20": "text-[20px] font-medium",
|
|
61
|
+
"button/m/18": "text-[18px] font-medium",
|
|
40
62
|
"button/m/16": "text-[16px] font-medium",
|
|
41
|
-
"button/m/14": "text-[14px] font-medium"
|
|
63
|
+
"button/m/14": "text-[14px] font-medium",
|
|
64
|
+
"caption/r/14": "text-[14px] font-normal",
|
|
65
|
+
"caption/sb/12": "text-[12px] font-semibold",
|
|
66
|
+
"caption/m/12": "text-[12px] font-medium",
|
|
67
|
+
"caption/r/12": "text-[12px] font-normal",
|
|
68
|
+
"caption/m/10": "text-[10px] font-medium",
|
|
69
|
+
"caption/r/10": "text-[10px] font-normal"
|
|
42
70
|
};
|
|
43
71
|
|
|
44
72
|
// src/stories/typography/ui/typography.tsx
|
|
@@ -50,7 +78,7 @@ var typographyVariants = (0, import_class_variance_authority.cva)("transition-al
|
|
|
50
78
|
}
|
|
51
79
|
},
|
|
52
80
|
defaultVariants: {
|
|
53
|
-
size: "
|
|
81
|
+
size: "body/r/16"
|
|
54
82
|
}
|
|
55
83
|
});
|
|
56
84
|
var Typography = ({ children, tag = "p", size, className, ...props }) => {
|
|
@@ -61,11 +89,13 @@ var Typography = ({ children, tag = "p", size, className, ...props }) => {
|
|
|
61
89
|
// src/stories/button/ui/button.tsx
|
|
62
90
|
var import_class_variance_authority2 = require("class-variance-authority");
|
|
63
91
|
|
|
64
|
-
// src/stories/button/config/button-
|
|
65
|
-
var
|
|
66
|
-
primary: "bg-blue-500 text-white hover:bg-blue-
|
|
67
|
-
|
|
68
|
-
|
|
92
|
+
// src/stories/button/config/button-variants.ts
|
|
93
|
+
var buttonVariants = {
|
|
94
|
+
"primary-fill": "bg-primary-blue-500 text-white not-disabled:hover:bg-primary-blue-800 not-disabled:active:bg-primary-blue-700 disabled:bg-neutral-200 disabled:text-neutral-400",
|
|
95
|
+
"primary-outline": "bg-transparent border border-primary-blue-500 text-primary-blue-500 not-disabled:hover:border-primary-blue-800 not-disabled:hover:text-primary-blue-800 not-disabled:active:border-primary-blue-700 not-disabled:active:text-primary-blue-700 disabled:border-primary-neutral-200 disabled:text-primary-neutral-400",
|
|
96
|
+
"primary-ghost": "bg-transparent text-primary-blue-500 not-disabled:hover:text-primary-blue-800 not-disabled:active:text-primary-blue-700 disabled:text-primary-neutral-400",
|
|
97
|
+
"secondary-fill": "bg-primary-neutral-800 text-white hover:bg-primary-neutral-700",
|
|
98
|
+
"secondary-outline": "border-2 border-primary-neutral-800 text-primary-neutral-800 not-disabled:hover:bg-primary-neutral-700 not-disabled:active:bg-primary-neutral-700"
|
|
69
99
|
};
|
|
70
100
|
|
|
71
101
|
// src/stories/button/config/button-sizes.ts
|
|
@@ -77,23 +107,42 @@ var buttonSizes = {
|
|
|
77
107
|
};
|
|
78
108
|
|
|
79
109
|
// src/stories/button/ui/button.tsx
|
|
110
|
+
var import_lucide_react = require("lucide-react");
|
|
80
111
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
112
|
+
var buttonConfig = (0, import_class_variance_authority2.cva)(
|
|
113
|
+
"transition-all cursor-pointer duration-300 py-2 px-4 rounded-[8px] flex items-center gap-2 disabled:cursor-not-allowed ",
|
|
114
|
+
{
|
|
115
|
+
variants: {
|
|
116
|
+
variant: {
|
|
117
|
+
...buttonVariants
|
|
118
|
+
},
|
|
119
|
+
size: {
|
|
120
|
+
...buttonSizes
|
|
121
|
+
}
|
|
85
122
|
},
|
|
86
|
-
|
|
87
|
-
|
|
123
|
+
defaultVariants: {
|
|
124
|
+
variant: "primary-fill",
|
|
125
|
+
size: "56"
|
|
88
126
|
}
|
|
89
|
-
},
|
|
90
|
-
defaultVariants: {
|
|
91
|
-
bg: "primary",
|
|
92
|
-
size: "32"
|
|
93
127
|
}
|
|
94
|
-
|
|
95
|
-
var Button = ({
|
|
96
|
-
|
|
128
|
+
);
|
|
129
|
+
var Button = ({
|
|
130
|
+
children,
|
|
131
|
+
variant,
|
|
132
|
+
size,
|
|
133
|
+
className,
|
|
134
|
+
iconSide = "left",
|
|
135
|
+
textSize = "body/r/16",
|
|
136
|
+
showLoader = false,
|
|
137
|
+
icon,
|
|
138
|
+
...props
|
|
139
|
+
}) => {
|
|
140
|
+
const Icon = icon && import_lucide_react.icons[icon];
|
|
141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { ...props, className: cn(buttonConfig({ variant, size, className })), children: props.disabled && showLoader ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_lucide_react.Loader2, { size: 20, strokeWidth: 1.5, className: "animate-spin" }) }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
142
|
+
Icon && iconSide === "left" && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { size: 20, strokeWidth: 1.5 }),
|
|
143
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Typography, { size: textSize, children }),
|
|
144
|
+
Icon && iconSide === "right" && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Icon, { size: 20, strokeWidth: 1.5 })
|
|
145
|
+
] }) });
|
|
97
146
|
};
|
|
98
147
|
// Annotate the CommonJS export names for ESM import in node:
|
|
99
148
|
0 && (module.exports = {
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/lib/utils.ts","../src/stories/typography/ui/typography.tsx","../src/stories/typography/config/typography-sizes.ts","../src/stories/button/ui/button.tsx","../src/stories/button/config/button-
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/lib/utils.ts","../src/stories/typography/ui/typography.tsx","../src/stories/typography/config/typography-sizes.ts","../src/stories/button/ui/button.tsx","../src/stories/button/config/button-variants.ts","../src/stories/button/config/button-sizes.ts"],"sourcesContent":["// Экспортируем только компоненты, не stories и не CSS\nexport { Typography } from './stories/typography'\nexport { Button } from './stories/button'\n\n// export type { IButtonProps } from 'src/stories/button/ui/button'\n// export type { ITypographyProps } from 'src/stories/typography/ui/typography'\n\n// Импортируем CSS с Tailwind (он попадёт в сборку)\nimport './index.css'","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport { FC } from 'react'\nimport { cn } from '@/lib/utils'\nimport { cva, VariantProps } from 'class-variance-authority'\nimport { typographySizes } from '../config/typography-sizes'\n\nconst typographyVariants = cva('transition-all duration-300 leading-[100%]', {\n\tvariants: {\n\t\tsize: {\n\t\t\t...typographySizes,\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: 'body/r/16',\n\t},\n})\n\ntype TTag = 'p' | 'span'\n\nexport interface ITypographyProps\n\textends React.HTMLAttributes<HTMLParagraphElement>, VariantProps<typeof typographyVariants> {\n\tchildren: React.ReactNode\n\ttag?: TTag\n}\n\nexport const Typography: FC<ITypographyProps> = ({ children, tag = 'p', size, className, ...props }) => {\n\tconst Tag = tag\n\n\treturn (\n\t\t<Tag {...props} className={cn(typographyVariants({ size, className }))}>\n\t\t\t{children}\n\t\t</Tag>\n\t)\n}","export const typographySizes = {\n\t'display/eb/64': 'text-[64px] font-extrabold',\n\t'display/b/56': 'text-[56px] font-bold',\n\n\t'heading/b/48': 'text-[48px] font-bold',\n\t'heading/sb/40': 'text-[40px] font-semibold',\n\t'heading/sb/36': 'text-[36px] font-semibold',\n\t'heading/sb/32': 'text-[32px] font-semibold',\n\t'heading/sb/28': 'text-[28px] font-semibold',\n\n\t'subtitle/sb/24': 'text-[24px] font-semibold',\n\t'subtitle/m/24': 'text-[24px] font-medium',\n\t'subtitle/sb/20': 'text-[20px] font-semibold',\n\t'subtitle/m/20': 'text-[20px] font-medium',\n\t'subtitle/sb/18': 'text-[18px] font-semibold',\n\t'subtitle/m/18': 'text-[18px] font-medium',\n\n\t'body/m/18': 'text-[18px] font-medium',\n\t'body/sb/16': 'text-[16px] font-semibold',\n\t'body/m/16': 'text-[16px] font-medium',\n\t'body/r/16': 'text-[16px] font-normal',\n\t'body/sb/14': 'text-[14px] font-semibold',\n\t'body/m/14': 'text-[14px] font-medium',\n\t'body/r/14': 'text-[14px] font-normal',\n\n\t'button/m/20': 'text-[20px] font-medium',\n\t'button/m/18': 'text-[18px] font-medium',\n\t'button/m/16': 'text-[16px] font-medium',\n\t'button/m/14': 'text-[14px] font-medium',\n\n\t'caption/r/14': 'text-[14px] font-normal',\n\t'caption/sb/12': 'text-[12px] font-semibold',\n\t'caption/m/12': 'text-[12px] font-medium',\n\t'caption/r/12': 'text-[12px] font-normal',\n\t'caption/m/10': 'text-[10px] font-medium',\n\t'caption/r/10': 'text-[10px] font-normal',\n}","'use client'\n\nimport { FC } from 'react'\nimport { cva, VariantProps } from 'class-variance-authority'\nimport { cn } from '@/lib/utils'\nimport { Typography } from '@/stories/typography'\nimport { buttonSizes, buttonVariants } from '../config'\nimport { icons, Loader2 } from 'lucide-react'\nimport { TTypographySizes } from '@/stories/typography/types'\n\nconst buttonConfig = cva(\n\t'transition-all cursor-pointer duration-300 py-2 px-4 rounded-[8px] flex items-center gap-2 disabled:cursor-not-allowed ',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\t...buttonVariants,\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\t...buttonSizes,\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'primary-fill',\n\t\t\tsize: '56',\n\t\t},\n\t},\n)\n\nexport interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonConfig> {\n\t/** Контент кнопки (текст или иконки) */\n\tchildren: React.ReactNode\n\n\t/**\n\t * Иконка для отображения внутри кнопки.\n\t */\n\ticon?: keyof typeof icons\n\n\t/**\n\t * Расположение иконки внутри кнопки.\n\t * По умолчанию 'left'.\n\t */\n\ticonSide?: 'left' | 'right'\n\n\t/**\n\t * Размер текста внутри кнопки.\n\t * По умолчанию 'body/r/16'.\n\t */\n\ttextSize?: TTypographySizes\n\n\t/**\n\t * Отображение индикатора загрузки внутри кнопки.\n\t * Индикатор отображается только при disabled=true.\n\t * По умолчанию false.\n\t */\n\tshowLoader?: boolean\n}\n\n/**\n * Компонент Button используется для интерактивных элементов действия.\n * Поддерживает различные варианты оформления (variant) и размеры (size).\n *\n * @example\n * <Button variant=\"primary-fill\" size=\"40\">Нажми меня</Button>\n */\nexport const Button: FC<IButtonProps> = ({\n\tchildren,\n\tvariant,\n\tsize,\n\tclassName,\n\ticonSide = 'left',\n\ttextSize = 'body/r/16',\n\tshowLoader = false,\n\ticon,\n\t...props\n}) => {\n\tconst Icon = icon && icons[icon]\n\n\treturn (\n\t\t<button {...props} className={cn(buttonConfig({ variant, size, className }))}>\n\t\t\t{props.disabled && showLoader ? (\n\t\t\t\t<div className='flex items-center justify-center'>\n\t\t\t\t\t<Loader2 size={20} strokeWidth={1.5} className='animate-spin' />\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{Icon && iconSide === 'left' && <Icon size={20} strokeWidth={1.5} />}\n\n\t\t\t\t\t<Typography size={textSize}>{children}</Typography>\n\n\t\t\t\t\t{Icon && iconSide === 'right' && <Icon size={20} strokeWidth={1.5} />}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</button>\n\t)\n}","export const buttonVariants = {\n\t'primary-fill':\n\t\t'bg-primary-blue-500 text-white not-disabled:hover:bg-primary-blue-800 not-disabled:active:bg-primary-blue-700 disabled:bg-neutral-200 disabled:text-neutral-400',\n\n\t'primary-outline':\n\t\t'bg-transparent border border-primary-blue-500 text-primary-blue-500 not-disabled:hover:border-primary-blue-800 not-disabled:hover:text-primary-blue-800 not-disabled:active:border-primary-blue-700 not-disabled:active:text-primary-blue-700 disabled:border-primary-neutral-200 disabled:text-primary-neutral-400',\n\n\t'primary-ghost':\n\t\t'bg-transparent text-primary-blue-500 not-disabled:hover:text-primary-blue-800 not-disabled:active:text-primary-blue-700 disabled:text-primary-neutral-400',\n\n\t'secondary-fill': 'bg-primary-neutral-800 text-white hover:bg-primary-neutral-700',\n\n\t'secondary-outline':\n\t\t'border-2 border-primary-neutral-800 text-primary-neutral-800 not-disabled:hover:bg-primary-neutral-700 not-disabled:active:bg-primary-neutral-700',\n}","export const buttonSizes = {\n\t'32': 'h-[32px]',\n\t'40': 'h-[40px]',\n\t'48': 'h-[48px]',\n\t'56': 'h-[56px]',\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;ACDA,sCAAkC;;;ACJ3B,IAAM,kBAAkB;AAAA,EAC9B,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAEhB,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EAEjB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EAEjB,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,aAAa;AAAA,EAEb,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EACf,eAAe;AAAA,EAEf,gBAAgB;AAAA,EAChB,iBAAiB;AAAA,EACjB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB,gBAAgB;AACjB;;;ADNE;AAvBF,IAAM,yBAAqB,qCAAI,8CAA8C;AAAA,EAC5E,UAAU;AAAA,IACT,MAAM;AAAA,MACL,GAAG;AAAA,IACJ;AAAA,EACD;AAAA,EACA,iBAAiB;AAAA,IAChB,MAAM;AAAA,EACP;AACD,CAAC;AAUM,IAAM,aAAmC,CAAC,EAAE,UAAU,MAAM,KAAK,MAAM,WAAW,GAAG,MAAM,MAAM;AACvG,QAAM,MAAM;AAEZ,SACC,4CAAC,OAAK,GAAG,OAAO,WAAW,GAAG,mBAAmB,EAAE,MAAM,UAAU,CAAC,CAAC,GACnE,UACF;AAEF;;;AE/BA,IAAAA,mCAAkC;;;ACH3B,IAAM,iBAAiB;AAAA,EAC7B,gBACC;AAAA,EAED,mBACC;AAAA,EAED,iBACC;AAAA,EAED,kBAAkB;AAAA,EAElB,qBACC;AACF;;;ACdO,IAAM,cAAc;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AACP;;;AFEA,0BAA+B;AA0E1B,IAAAC,sBAAA;AAvEL,IAAM,mBAAe;AAAA,EACpB;AAAA,EACA;AAAA,IACC,UAAU;AAAA,MACT,SAAS;AAAA,QACR,GAAG;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,QACL,GAAG;AAAA,MACJ;AAAA,IACD;AAAA,IACA,iBAAiB;AAAA,MAChB,SAAS;AAAA,MACT,MAAM;AAAA,IACP;AAAA,EACD;AACD;AAsCO,IAAM,SAA2B,CAAC;AAAA,EACxC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX,aAAa;AAAA,EACb;AAAA,EACA,GAAG;AACJ,MAAM;AACL,QAAM,OAAO,QAAQ,0BAAM,IAAI;AAE/B,SACC,6CAAC,YAAQ,GAAG,OAAO,WAAW,GAAG,aAAa,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC,GACzE,gBAAM,YAAY,aAClB,6CAAC,SAAI,WAAU,oCACd,uDAAC,+BAAQ,MAAM,IAAI,aAAa,KAAK,WAAU,gBAAe,GAC/D,IAEA,8EACE;AAAA,YAAQ,aAAa,UAAU,6CAAC,QAAK,MAAM,IAAI,aAAa,KAAK;AAAA,IAElE,6CAAC,cAAW,MAAM,UAAW,UAAS;AAAA,IAErC,QAAQ,aAAa,WAAW,6CAAC,QAAK,MAAM,IAAI,aAAa,KAAK;AAAA,KACpE,GAEF;AAEF;","names":["import_class_variance_authority","import_jsx_runtime"]}
|
package/dist/index.css
CHANGED
|
@@ -8,19 +8,54 @@
|
|
|
8
8
|
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
|
9
9
|
"Courier New", monospace;
|
|
10
10
|
--color-red-500: oklch(63.7% 0.237 25.331);
|
|
11
|
-
--color-
|
|
12
|
-
--color-
|
|
13
|
-
--color-
|
|
14
|
-
--color-
|
|
15
|
-
--color-gray-300: oklch(87.2% 0.01 258.338);
|
|
16
|
-
--color-gray-800: oklch(27.8% 0.033 256.848);
|
|
11
|
+
--color-gray-400: oklch(70.7% 0.022 261.325);
|
|
12
|
+
--color-neutral-200: oklch(92.2% 0 0);
|
|
13
|
+
--color-neutral-400: oklch(70.8% 0 0);
|
|
14
|
+
--color-black: #000;
|
|
17
15
|
--color-white: #fff;
|
|
18
16
|
--spacing: 0.25rem;
|
|
17
|
+
--text-xs: 0.75rem;
|
|
18
|
+
--text-xs--line-height: calc(1 / 0.75);
|
|
19
|
+
--font-weight-normal: 400;
|
|
19
20
|
--font-weight-medium: 500;
|
|
21
|
+
--font-weight-semibold: 600;
|
|
22
|
+
--font-weight-bold: 700;
|
|
23
|
+
--font-weight-extrabold: 800;
|
|
24
|
+
--animate-spin: spin 1s linear infinite;
|
|
20
25
|
--default-transition-duration: 150ms;
|
|
21
26
|
--default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
22
27
|
--default-font-family: var(--font-sans);
|
|
23
28
|
--default-mono-font-family: var(--font-mono);
|
|
29
|
+
--color-primary-blue-50: var(--color-primary-blue-50);
|
|
30
|
+
--color-primary-blue-100: var(--color-primary-blue-100);
|
|
31
|
+
--color-primary-blue-200: var(--color-primary-blue-200);
|
|
32
|
+
--color-primary-blue-300: var(--color-primary-blue-300);
|
|
33
|
+
--color-primary-blue-400: var(--color-primary-blue-400);
|
|
34
|
+
--color-primary-blue-500: var(--color-primary-blue-500);
|
|
35
|
+
--color-primary-blue-600: var(--color-primary-blue-600);
|
|
36
|
+
--color-primary-blue-700: var(--color-primary-blue-700);
|
|
37
|
+
--color-primary-blue-800: var(--color-primary-blue-800);
|
|
38
|
+
--color-primary-blue-900: var(--color-primary-blue-900);
|
|
39
|
+
--color-primary-neutral-100: var(--color-primary-neutral-100);
|
|
40
|
+
--color-primary-neutral-200: var(--color-primary-neutral-200);
|
|
41
|
+
--color-primary-neutral-300: var(--color-primary-neutral-300);
|
|
42
|
+
--color-primary-neutral-400: var(--color-primary-neutral-400);
|
|
43
|
+
--color-primary-neutral-500: var(--color-primary-neutral-500);
|
|
44
|
+
--color-primary-neutral-600: var(--color-primary-neutral-600);
|
|
45
|
+
--color-primary-neutral-700: var(--color-primary-neutral-700);
|
|
46
|
+
--color-primary-neutral-800: var(--color-primary-neutral-800);
|
|
47
|
+
--color-primary-neutral-900: var(--color-primary-neutral-900);
|
|
48
|
+
--color-state-error-100: var(--color-state-error-100);
|
|
49
|
+
--color-state-error-200: var(--color-state-error-200);
|
|
50
|
+
--color-state-error-500: var(--color-state-error-500);
|
|
51
|
+
--color-state-error-800: var(--color-state-error-800);
|
|
52
|
+
--color-state-warning-100: var(--color-state-warning-100);
|
|
53
|
+
--color-state-warning-500: var(--color-state-warning-500);
|
|
54
|
+
--color-state-warning-800: var(--color-state-warning-800);
|
|
55
|
+
--color-state-info-100: var(--color-state-info-100);
|
|
56
|
+
--color-state-info-200: var(--color-state-info-200);
|
|
57
|
+
--color-state-info-500: var(--color-state-info-500);
|
|
58
|
+
--color-state-info-800: var(--color-state-info-800);
|
|
24
59
|
}
|
|
25
60
|
}
|
|
26
61
|
@layer base {
|
|
@@ -202,6 +237,12 @@
|
|
|
202
237
|
.transform {
|
|
203
238
|
transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
|
|
204
239
|
}
|
|
240
|
+
.animate-spin {
|
|
241
|
+
animation: var(--animate-spin);
|
|
242
|
+
}
|
|
243
|
+
.cursor-pointer {
|
|
244
|
+
cursor: pointer;
|
|
245
|
+
}
|
|
205
246
|
.flex-col {
|
|
206
247
|
flex-direction: column;
|
|
207
248
|
}
|
|
@@ -214,15 +255,24 @@
|
|
|
214
255
|
.items-start {
|
|
215
256
|
align-items: flex-start;
|
|
216
257
|
}
|
|
258
|
+
.justify-center {
|
|
259
|
+
justify-content: center;
|
|
260
|
+
}
|
|
217
261
|
.gap-2 {
|
|
218
262
|
gap: calc(var(--spacing) * 2);
|
|
219
263
|
}
|
|
220
264
|
.gap-4 {
|
|
221
265
|
gap: calc(var(--spacing) * 4);
|
|
222
266
|
}
|
|
267
|
+
.gap-8 {
|
|
268
|
+
gap: calc(var(--spacing) * 8);
|
|
269
|
+
}
|
|
223
270
|
.rounded-\[8px\] {
|
|
224
271
|
border-radius: 8px;
|
|
225
272
|
}
|
|
273
|
+
.rounded-lg {
|
|
274
|
+
border-radius: var(--radius);
|
|
275
|
+
}
|
|
226
276
|
.border {
|
|
227
277
|
border-style: var(--tw-border-style);
|
|
228
278
|
border-width: 1px;
|
|
@@ -231,43 +281,111 @@
|
|
|
231
281
|
border-style: var(--tw-border-style);
|
|
232
282
|
border-width: 2px;
|
|
233
283
|
}
|
|
234
|
-
.border-blue-500 {
|
|
235
|
-
border-color: var(--color-blue-500);
|
|
284
|
+
.border-primary-blue-500 {
|
|
285
|
+
border-color: var(--color-primary-blue-500);
|
|
236
286
|
}
|
|
237
|
-
.
|
|
238
|
-
|
|
287
|
+
.border-primary-neutral-800 {
|
|
288
|
+
border-color: var(--color-primary-neutral-800);
|
|
239
289
|
}
|
|
240
|
-
.bg-
|
|
241
|
-
background-color: var(--color-
|
|
290
|
+
.bg-black {
|
|
291
|
+
background-color: var(--color-black);
|
|
292
|
+
}
|
|
293
|
+
.bg-primary-blue-500 {
|
|
294
|
+
background-color: var(--color-primary-blue-500);
|
|
295
|
+
}
|
|
296
|
+
.bg-primary-neutral-800 {
|
|
297
|
+
background-color: var(--color-primary-neutral-800);
|
|
242
298
|
}
|
|
243
299
|
.bg-transparent {
|
|
244
300
|
background-color: transparent;
|
|
245
301
|
}
|
|
302
|
+
.p-8 {
|
|
303
|
+
padding: calc(var(--spacing) * 8);
|
|
304
|
+
}
|
|
246
305
|
.px-4 {
|
|
247
306
|
padding-inline: calc(var(--spacing) * 4);
|
|
248
307
|
}
|
|
249
308
|
.py-2 {
|
|
250
309
|
padding-block: calc(var(--spacing) * 2);
|
|
251
310
|
}
|
|
311
|
+
.text-xs {
|
|
312
|
+
font-size: var(--text-xs);
|
|
313
|
+
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
314
|
+
}
|
|
315
|
+
.text-\[10px\] {
|
|
316
|
+
font-size: 10px;
|
|
317
|
+
}
|
|
318
|
+
.text-\[12px\] {
|
|
319
|
+
font-size: 12px;
|
|
320
|
+
}
|
|
252
321
|
.text-\[14px\] {
|
|
253
322
|
font-size: 14px;
|
|
254
323
|
}
|
|
255
324
|
.text-\[16px\] {
|
|
256
325
|
font-size: 16px;
|
|
257
326
|
}
|
|
327
|
+
.text-\[18px\] {
|
|
328
|
+
font-size: 18px;
|
|
329
|
+
}
|
|
330
|
+
.text-\[20px\] {
|
|
331
|
+
font-size: 20px;
|
|
332
|
+
}
|
|
333
|
+
.text-\[24px\] {
|
|
334
|
+
font-size: 24px;
|
|
335
|
+
}
|
|
336
|
+
.text-\[28px\] {
|
|
337
|
+
font-size: 28px;
|
|
338
|
+
}
|
|
339
|
+
.text-\[32px\] {
|
|
340
|
+
font-size: 32px;
|
|
341
|
+
}
|
|
342
|
+
.text-\[36px\] {
|
|
343
|
+
font-size: 36px;
|
|
344
|
+
}
|
|
345
|
+
.text-\[40px\] {
|
|
346
|
+
font-size: 40px;
|
|
347
|
+
}
|
|
348
|
+
.text-\[48px\] {
|
|
349
|
+
font-size: 48px;
|
|
350
|
+
}
|
|
351
|
+
.text-\[56px\] {
|
|
352
|
+
font-size: 56px;
|
|
353
|
+
}
|
|
354
|
+
.text-\[64px\] {
|
|
355
|
+
font-size: 64px;
|
|
356
|
+
}
|
|
258
357
|
.leading-\[100\%\] {
|
|
259
358
|
--tw-leading: 100%;
|
|
260
359
|
line-height: 100%;
|
|
261
360
|
}
|
|
361
|
+
.font-bold {
|
|
362
|
+
--tw-font-weight: var(--font-weight-bold);
|
|
363
|
+
font-weight: var(--font-weight-bold);
|
|
364
|
+
}
|
|
365
|
+
.font-extrabold {
|
|
366
|
+
--tw-font-weight: var(--font-weight-extrabold);
|
|
367
|
+
font-weight: var(--font-weight-extrabold);
|
|
368
|
+
}
|
|
262
369
|
.font-medium {
|
|
263
370
|
--tw-font-weight: var(--font-weight-medium);
|
|
264
371
|
font-weight: var(--font-weight-medium);
|
|
265
372
|
}
|
|
266
|
-
.
|
|
267
|
-
|
|
373
|
+
.font-normal {
|
|
374
|
+
--tw-font-weight: var(--font-weight-normal);
|
|
375
|
+
font-weight: var(--font-weight-normal);
|
|
376
|
+
}
|
|
377
|
+
.font-semibold {
|
|
378
|
+
--tw-font-weight: var(--font-weight-semibold);
|
|
379
|
+
font-weight: var(--font-weight-semibold);
|
|
380
|
+
}
|
|
381
|
+
.text-gray-400 {
|
|
382
|
+
color: var(--color-gray-400);
|
|
383
|
+
}
|
|
384
|
+
.text-primary-blue-500 {
|
|
385
|
+
color: var(--color-primary-blue-500);
|
|
268
386
|
}
|
|
269
|
-
.text-
|
|
270
|
-
color: var(--color-
|
|
387
|
+
.text-primary-neutral-800 {
|
|
388
|
+
color: var(--color-primary-neutral-800);
|
|
271
389
|
}
|
|
272
390
|
.text-red-500 {
|
|
273
391
|
color: var(--color-red-500);
|
|
@@ -275,10 +393,6 @@
|
|
|
275
393
|
.text-white {
|
|
276
394
|
color: var(--color-white);
|
|
277
395
|
}
|
|
278
|
-
.outline {
|
|
279
|
-
outline-style: var(--tw-outline-style);
|
|
280
|
-
outline-width: 1px;
|
|
281
|
-
}
|
|
282
396
|
.transition-all {
|
|
283
397
|
transition-property: all;
|
|
284
398
|
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
@@ -288,29 +402,138 @@
|
|
|
288
402
|
--tw-duration: 300ms;
|
|
289
403
|
transition-duration: 300ms;
|
|
290
404
|
}
|
|
291
|
-
.hover\:bg-
|
|
405
|
+
.hover\:bg-primary-neutral-700 {
|
|
292
406
|
&:hover {
|
|
293
407
|
@media (hover: hover) {
|
|
294
|
-
background-color: var(--color-
|
|
408
|
+
background-color: var(--color-primary-neutral-700);
|
|
295
409
|
}
|
|
296
410
|
}
|
|
297
411
|
}
|
|
298
|
-
.hover\:
|
|
299
|
-
&:
|
|
300
|
-
|
|
301
|
-
|
|
412
|
+
.not-disabled\:hover\:border-primary-blue-800 {
|
|
413
|
+
&:not(*:disabled) {
|
|
414
|
+
&:hover {
|
|
415
|
+
@media (hover: hover) {
|
|
416
|
+
border-color: var(--color-primary-blue-800);
|
|
417
|
+
}
|
|
302
418
|
}
|
|
303
419
|
}
|
|
304
420
|
}
|
|
305
|
-
.hover\:bg-
|
|
306
|
-
&:
|
|
307
|
-
|
|
308
|
-
|
|
421
|
+
.not-disabled\:hover\:bg-primary-blue-800 {
|
|
422
|
+
&:not(*:disabled) {
|
|
423
|
+
&:hover {
|
|
424
|
+
@media (hover: hover) {
|
|
425
|
+
background-color: var(--color-primary-blue-800);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
.not-disabled\:hover\:bg-primary-neutral-700 {
|
|
431
|
+
&:not(*:disabled) {
|
|
432
|
+
&:hover {
|
|
433
|
+
@media (hover: hover) {
|
|
434
|
+
background-color: var(--color-primary-neutral-700);
|
|
435
|
+
}
|
|
309
436
|
}
|
|
310
437
|
}
|
|
311
438
|
}
|
|
439
|
+
.not-disabled\:hover\:text-primary-blue-800 {
|
|
440
|
+
&:not(*:disabled) {
|
|
441
|
+
&:hover {
|
|
442
|
+
@media (hover: hover) {
|
|
443
|
+
color: var(--color-primary-blue-800);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
.not-disabled\:active\:border-primary-blue-700 {
|
|
449
|
+
&:not(*:disabled) {
|
|
450
|
+
&:active {
|
|
451
|
+
border-color: var(--color-primary-blue-700);
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
.not-disabled\:active\:bg-primary-blue-700 {
|
|
456
|
+
&:not(*:disabled) {
|
|
457
|
+
&:active {
|
|
458
|
+
background-color: var(--color-primary-blue-700);
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
.not-disabled\:active\:bg-primary-neutral-700 {
|
|
463
|
+
&:not(*:disabled) {
|
|
464
|
+
&:active {
|
|
465
|
+
background-color: var(--color-primary-neutral-700);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
.not-disabled\:active\:text-primary-blue-700 {
|
|
470
|
+
&:not(*:disabled) {
|
|
471
|
+
&:active {
|
|
472
|
+
color: var(--color-primary-blue-700);
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
.disabled\:cursor-not-allowed {
|
|
477
|
+
&:disabled {
|
|
478
|
+
cursor: not-allowed;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
.disabled\:border-primary-neutral-200 {
|
|
482
|
+
&:disabled {
|
|
483
|
+
border-color: var(--color-primary-neutral-200);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
.disabled\:bg-neutral-200 {
|
|
487
|
+
&:disabled {
|
|
488
|
+
background-color: var(--color-neutral-200);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
.disabled\:text-neutral-400 {
|
|
492
|
+
&:disabled {
|
|
493
|
+
color: var(--color-neutral-400);
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
.disabled\:text-primary-neutral-400 {
|
|
497
|
+
&:disabled {
|
|
498
|
+
color: var(--color-primary-neutral-400);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
312
501
|
}
|
|
313
502
|
:root {
|
|
503
|
+
--color-primary-blue-50: #EFF5FF;
|
|
504
|
+
--color-primary-blue-100: #CFE3FF;
|
|
505
|
+
--color-primary-blue-200: #9EC7FF;
|
|
506
|
+
--color-primary-blue-300: #6EABFF;
|
|
507
|
+
--color-primary-blue-400: #3E8FFF;
|
|
508
|
+
--color-primary-blue-500: #005DDC;
|
|
509
|
+
--color-primary-blue-600: #004EB7;
|
|
510
|
+
--color-primary-blue-700: #003E93;
|
|
511
|
+
--color-primary-blue-800: #063B82;
|
|
512
|
+
--color-primary-blue-900: #002F6E;
|
|
513
|
+
--color-primary-neutral-50: #F9F9F9;
|
|
514
|
+
--color-primary-neutral-100: #F4F4F4;
|
|
515
|
+
--color-primary-neutral-200: #EDEDED;
|
|
516
|
+
--color-primary-neutral-300: #CBCBCB;
|
|
517
|
+
--color-primary-neutral-400: #A5A5A5;
|
|
518
|
+
--color-primary-neutral-500: #757575;
|
|
519
|
+
--color-primary-neutral-600: #515151;
|
|
520
|
+
--color-primary-neutral-700: #353535;
|
|
521
|
+
--color-primary-neutral-800: #282828;
|
|
522
|
+
--color-state-error-100: #FFEEEE;
|
|
523
|
+
--color-state-error-200: #FACCCC;
|
|
524
|
+
--color-state-error-500: #DC0000;
|
|
525
|
+
--color-state-error-800: #840000;
|
|
526
|
+
--color-state-success-100: #EEFFF0;
|
|
527
|
+
--color-state-success-200: #CCFACC;
|
|
528
|
+
--color-state-success-500: #009E00;
|
|
529
|
+
--color-state-success-800: #034203;
|
|
530
|
+
--color-state-warning-100: #FFEBB2;
|
|
531
|
+
--color-state-warning-500: #F6B500;
|
|
532
|
+
--color-state-warning-800: #7F5E00;
|
|
533
|
+
--color-state-info-100: #E4FFFF;
|
|
534
|
+
--color-state-info-200: #8BF2F2;
|
|
535
|
+
--color-state-info-500: #00AEAE;
|
|
536
|
+
--color-state-info-800: #044747;
|
|
314
537
|
--color-primary: #3b82f6;
|
|
315
538
|
--color-secondary: #64748b;
|
|
316
539
|
--font-base: system-ui, Avenir, Helvetica, Arial, sans-serif;
|
|
@@ -347,39 +570,6 @@
|
|
|
347
570
|
--sidebar-border: oklch(0.922 0 0);
|
|
348
571
|
--sidebar-ring: oklch(0.708 0 0);
|
|
349
572
|
}
|
|
350
|
-
.dark {
|
|
351
|
-
--background: oklch(0.145 0 0);
|
|
352
|
-
--foreground: oklch(0.985 0 0);
|
|
353
|
-
--card: oklch(0.205 0 0);
|
|
354
|
-
--card-foreground: oklch(0.985 0 0);
|
|
355
|
-
--popover: oklch(0.205 0 0);
|
|
356
|
-
--popover-foreground: oklch(0.985 0 0);
|
|
357
|
-
--primary: oklch(0.922 0 0);
|
|
358
|
-
--primary-foreground: oklch(0.205 0 0);
|
|
359
|
-
--secondary: oklch(0.269 0 0);
|
|
360
|
-
--secondary-foreground: oklch(0.985 0 0);
|
|
361
|
-
--muted: oklch(0.269 0 0);
|
|
362
|
-
--muted-foreground: oklch(0.708 0 0);
|
|
363
|
-
--accent: oklch(0.269 0 0);
|
|
364
|
-
--accent-foreground: oklch(0.985 0 0);
|
|
365
|
-
--destructive: oklch(0.704 0.191 22.216);
|
|
366
|
-
--border: oklch(1 0 0 / 10%);
|
|
367
|
-
--input: oklch(1 0 0 / 15%);
|
|
368
|
-
--ring: oklch(0.556 0 0);
|
|
369
|
-
--chart-1: oklch(0.488 0.243 264.376);
|
|
370
|
-
--chart-2: oklch(0.696 0.17 162.48);
|
|
371
|
-
--chart-3: oklch(0.769 0.188 70.08);
|
|
372
|
-
--chart-4: oklch(0.627 0.265 303.9);
|
|
373
|
-
--chart-5: oklch(0.645 0.246 16.439);
|
|
374
|
-
--sidebar: oklch(0.205 0 0);
|
|
375
|
-
--sidebar-foreground: oklch(0.985 0 0);
|
|
376
|
-
--sidebar-primary: oklch(0.488 0.243 264.376);
|
|
377
|
-
--sidebar-primary-foreground: oklch(0.985 0 0);
|
|
378
|
-
--sidebar-accent: oklch(0.269 0 0);
|
|
379
|
-
--sidebar-accent-foreground: oklch(0.985 0 0);
|
|
380
|
-
--sidebar-border: oklch(1 0 0 / 10%);
|
|
381
|
-
--sidebar-ring: oklch(0.556 0 0);
|
|
382
|
-
}
|
|
383
573
|
@layer base {
|
|
384
574
|
* {
|
|
385
575
|
border-color: var(--border);
|
|
@@ -426,15 +616,15 @@
|
|
|
426
616
|
syntax: "*";
|
|
427
617
|
inherits: false;
|
|
428
618
|
}
|
|
429
|
-
@property --tw-outline-style {
|
|
430
|
-
syntax: "*";
|
|
431
|
-
inherits: false;
|
|
432
|
-
initial-value: solid;
|
|
433
|
-
}
|
|
434
619
|
@property --tw-duration {
|
|
435
620
|
syntax: "*";
|
|
436
621
|
inherits: false;
|
|
437
622
|
}
|
|
623
|
+
@keyframes spin {
|
|
624
|
+
to {
|
|
625
|
+
transform: rotate(360deg);
|
|
626
|
+
}
|
|
627
|
+
}
|
|
438
628
|
@layer properties {
|
|
439
629
|
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
|
|
440
630
|
*, ::before, ::after, ::backdrop {
|
|
@@ -446,7 +636,6 @@
|
|
|
446
636
|
--tw-border-style: solid;
|
|
447
637
|
--tw-leading: initial;
|
|
448
638
|
--tw-font-weight: initial;
|
|
449
|
-
--tw-outline-style: solid;
|
|
450
639
|
--tw-duration: initial;
|
|
451
640
|
}
|
|
452
641
|
}
|
package/dist/index.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.css"],"sourcesContent":["@import \"tailwindcss\";\n\n@source \"../src/**/*.{ts,tsx}\";\n\n@custom-variant dark (&:is(.dark *));\n\n:root {\n --color-primary: #3b82f6;\n --color-secondary: #64748b;\n --font-base: system-ui, Avenir, Helvetica, Arial, sans-serif;\n --radius: 0.625rem;\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0 0);\n --primary: oklch(0.205 0 0);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --sidebar: oklch(0.985 0 0);\n --sidebar-foreground: oklch(0.145 0 0);\n --sidebar-primary: oklch(0.205 0 0);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.97 0 0);\n --sidebar-accent-foreground: oklch(0.205 0 0);\n --sidebar-border: oklch(0.922 0 0);\n --sidebar-ring: oklch(0.708 0 0);\n}\n\n@theme inline {\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --radius-2xl: calc(var(--radius) + 8px);\n --radius-3xl: calc(var(--radius) + 12px);\n --radius-4xl: calc(var(--radius) + 16px);\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n}\n\n.dark {\n --background: oklch(0.145 0 0);\n --foreground: oklch(0.985 0 0);\n --card: oklch(0.205 0 0);\n --card-foreground: oklch(0.985 0 0);\n --popover: oklch(0.205 0 0);\n --popover-foreground: oklch(0.985 0 0);\n --primary: oklch(0.922 0 0);\n --primary-foreground: oklch(0.205 0 0);\n --secondary: oklch(0.269 0 0);\n --secondary-foreground: oklch(0.985 0 0);\n --muted: oklch(0.269 0 0);\n --muted-foreground: oklch(0.708 0 0);\n --accent: oklch(0.269 0 0);\n --accent-foreground: oklch(0.985 0 0);\n --destructive: oklch(0.704 0.191 22.216);\n --border: oklch(1 0 0 / 10%);\n --input: oklch(1 0 0 / 15%);\n --ring: oklch(0.556 0 0);\n --chart-1: oklch(0.488 0.243 264.376);\n --chart-2: oklch(0.696 0.17 162.48);\n --chart-3: oklch(0.769 0.188 70.08);\n --chart-4: oklch(0.627 0.265 303.9);\n --chart-5: oklch(0.645 0.246 16.439);\n --sidebar: oklch(0.205 0 0);\n --sidebar-foreground: oklch(0.985 0 0);\n --sidebar-primary: oklch(0.488 0.243 264.376);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.269 0 0);\n --sidebar-accent-foreground: oklch(0.985 0 0);\n --sidebar-border: oklch(1 0 0 / 10%);\n --sidebar-ring: oklch(0.556 0 0);\n}\n\n@layer base {\n * {\n @apply border-border outline-ring/50;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/index.css"],"sourcesContent":["@import \"tailwindcss\";\n\n@source \"../src/**/*.{ts,tsx}\";\n\n@custom-variant dark (&:is(.dark *));\n\n:root {\n /* Основные цвета и настройки */\n --color-primary-blue-50: #EFF5FF;\n --color-primary-blue-100: #CFE3FF;\n --color-primary-blue-200: #9EC7FF;\n --color-primary-blue-300: #6EABFF;\n --color-primary-blue-400: #3E8FFF;\n --color-primary-blue-500: #005DDC;\n --color-primary-blue-600: #004EB7;\n --color-primary-blue-700: #003E93;\n --color-primary-blue-800: #063B82;\n --color-primary-blue-900: #002F6E;\n\n --color-primary-neutral-50: #F9F9F9;\n --color-primary-neutral-100: #F4F4F4;\n --color-primary-neutral-200: #EDEDED;\n --color-primary-neutral-300: #CBCBCB;\n --color-primary-neutral-400: #A5A5A5;\n --color-primary-neutral-500: #757575;\n --color-primary-neutral-600: #515151;\n --color-primary-neutral-700: #353535;\n --color-primary-neutral-800: #282828;\n\n --color-state-error-100: #FFEEEE;\n --color-state-error-200: #FACCCC;\n --color-state-error-500: #DC0000;\n --color-state-error-800: #840000;\n\n --color-state-success-100: #EEFFF0;\n --color-state-success-200: #CCFACC;\n --color-state-success-500: #009E00;\n --color-state-success-800: #034203;\n\n --color-state-warning-100: #FFEBB2;\n --color-state-warning-500: #F6B500;\n --color-state-warning-800: #7F5E00;\n\n --color-state-info-100: #E4FFFF;\n --color-state-info-200: #8BF2F2;\n --color-state-info-500: #00AEAE;\n --color-state-info-800: #044747;\n\n --color-primary: #3b82f6;\n --color-secondary: #64748b;\n --font-base: system-ui, Avenir, Helvetica, Arial, sans-serif;\n --radius: 0.625rem;\n --background: oklch(1 0 0);\n --foreground: oklch(0.145 0 0);\n --card: oklch(1 0 0);\n --card-foreground: oklch(0.145 0 0);\n --popover: oklch(1 0 0);\n --popover-foreground: oklch(0.145 0 0);\n --primary: oklch(0.205 0 0);\n --primary-foreground: oklch(0.985 0 0);\n --secondary: oklch(0.97 0 0);\n --secondary-foreground: oklch(0.205 0 0);\n --muted: oklch(0.97 0 0);\n --muted-foreground: oklch(0.556 0 0);\n --accent: oklch(0.97 0 0);\n --accent-foreground: oklch(0.205 0 0);\n --destructive: oklch(0.577 0.245 27.325);\n --border: oklch(0.922 0 0);\n --input: oklch(0.922 0 0);\n --ring: oklch(0.708 0 0);\n --chart-1: oklch(0.646 0.222 41.116);\n --chart-2: oklch(0.6 0.118 184.704);\n --chart-3: oklch(0.398 0.07 227.392);\n --chart-4: oklch(0.828 0.189 84.429);\n --chart-5: oklch(0.769 0.188 70.08);\n --sidebar: oklch(0.985 0 0);\n --sidebar-foreground: oklch(0.145 0 0);\n --sidebar-primary: oklch(0.205 0 0);\n --sidebar-primary-foreground: oklch(0.985 0 0);\n --sidebar-accent: oklch(0.97 0 0);\n --sidebar-accent-foreground: oklch(0.205 0 0);\n --sidebar-border: oklch(0.922 0 0);\n --sidebar-ring: oklch(0.708 0 0);\n}\n\n@theme inline {\n /* Основные настройки */\n --color-primary-blue-50: var(--color-primary-blue-50);\n --color-primary-blue-100: var(--color-primary-blue-100);\n --color-primary-blue-200: var(--color-primary-blue-200);\n --color-primary-blue-300: var(--color-primary-blue-300);\n --color-primary-blue-400: var(--color-primary-blue-400);\n --color-primary-blue-500: var(--color-primary-blue-500);\n --color-primary-blue-600: var(--color-primary-blue-600);\n --color-primary-blue-700: var(--color-primary-blue-700);\n --color-primary-blue-800: var(--color-primary-blue-800);\n --color-primary-blue-900: var(--color-primary-blue-900);\n\n --color-primary-neutral-100: var(--color-primary-neutral-100);\n --color-primary-neutral-200: var(--color-primary-neutral-200);\n --color-primary-neutral-300: var(--color-primary-neutral-300);\n --color-primary-neutral-400: var(--color-primary-neutral-400);\n --color-primary-neutral-500: var(--color-primary-neutral-500);\n --color-primary-neutral-600: var(--color-primary-neutral-600);\n --color-primary-neutral-700: var(--color-primary-neutral-700);\n --color-primary-neutral-800: var(--color-primary-neutral-800);\n --color-primary-neutral-900: var(--color-primary-neutral-900);\n\n --color-state-error-100: var(--color-state-error-100);\n --color-state-error-200: var(--color-state-error-200);\n --color-state-error-500: var(--color-state-error-500);\n --color-state-error-800: var(--color-state-error-800);\n\n --color-state-warning-100: var(--color-state-warning-100);\n --color-state-warning-500: var(--color-state-warning-500);\n --color-state-warning-800: var(--color-state-warning-800);\n\n --color-state-info-100: var(--color-state-info-100);\n --color-state-info-200: var(--color-state-info-200);\n --color-state-info-500: var(--color-state-info-500);\n --color-state-info-800: var(--color-state-info-800);\n\n --radius-sm: calc(var(--radius) - 4px);\n --radius-md: calc(var(--radius) - 2px);\n --radius-lg: var(--radius);\n --radius-xl: calc(var(--radius) + 4px);\n --radius-2xl: calc(var(--radius) + 8px);\n --radius-3xl: calc(var(--radius) + 12px);\n --radius-4xl: calc(var(--radius) + 16px);\n --color-background: var(--background);\n --color-foreground: var(--foreground);\n --color-card: var(--card);\n --color-card-foreground: var(--card-foreground);\n --color-popover: var(--popover);\n --color-popover-foreground: var(--popover-foreground);\n --color-primary: var(--primary);\n --color-primary-foreground: var(--primary-foreground);\n --color-secondary: var(--secondary);\n --color-secondary-foreground: var(--secondary-foreground);\n --color-muted: var(--muted);\n --color-muted-foreground: var(--muted-foreground);\n --color-accent: var(--accent);\n --color-accent-foreground: var(--accent-foreground);\n --color-destructive: var(--destructive);\n --color-border: var(--border);\n --color-input: var(--input);\n --color-ring: var(--ring);\n --color-chart-1: var(--chart-1);\n --color-chart-2: var(--chart-2);\n --color-chart-3: var(--chart-3);\n --color-chart-4: var(--chart-4);\n --color-chart-5: var(--chart-5);\n --color-sidebar: var(--sidebar);\n --color-sidebar-foreground: var(--sidebar-foreground);\n --color-sidebar-primary: var(--sidebar-primary);\n --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);\n --color-sidebar-accent: var(--sidebar-accent);\n --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);\n --color-sidebar-border: var(--sidebar-border);\n --color-sidebar-ring: var(--sidebar-ring);\n}\n\n@layer base {\n * {\n @apply border-border outline-ring/50;\n }\n body {\n @apply bg-background text-foreground;\n }\n}"],"mappings":"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","names":[]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
2
2
|
import { FC } from 'react';
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { icons } from 'lucide-react';
|
|
4
5
|
|
|
5
6
|
declare const typographyVariants: (props?: ({
|
|
6
|
-
size?: "button/m/16" | "button/m/14" | null | undefined;
|
|
7
|
+
size?: "body/r/16" | "display/eb/64" | "display/b/56" | "heading/b/48" | "heading/sb/40" | "heading/sb/36" | "heading/sb/32" | "heading/sb/28" | "subtitle/sb/24" | "subtitle/m/24" | "subtitle/sb/20" | "subtitle/m/20" | "subtitle/sb/18" | "subtitle/m/18" | "body/m/18" | "body/sb/16" | "body/m/16" | "body/sb/14" | "body/m/14" | "body/r/14" | "button/m/20" | "button/m/18" | "button/m/16" | "button/m/14" | "caption/r/14" | "caption/sb/12" | "caption/m/12" | "caption/r/12" | "caption/m/10" | "caption/r/10" | null | undefined;
|
|
7
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
8
9
|
type TTag = 'p' | 'span';
|
|
9
10
|
interface ITypographyProps extends React.HTMLAttributes<HTMLParagraphElement>, VariantProps<typeof typographyVariants> {
|
|
@@ -12,25 +13,75 @@ interface ITypographyProps extends React.HTMLAttributes<HTMLParagraphElement>, V
|
|
|
12
13
|
}
|
|
13
14
|
declare const Typography: FC<ITypographyProps>;
|
|
14
15
|
|
|
15
|
-
declare const
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
declare const typographySizes: {
|
|
17
|
+
'display/eb/64': string;
|
|
18
|
+
'display/b/56': string;
|
|
19
|
+
'heading/b/48': string;
|
|
20
|
+
'heading/sb/40': string;
|
|
21
|
+
'heading/sb/36': string;
|
|
22
|
+
'heading/sb/32': string;
|
|
23
|
+
'heading/sb/28': string;
|
|
24
|
+
'subtitle/sb/24': string;
|
|
25
|
+
'subtitle/m/24': string;
|
|
26
|
+
'subtitle/sb/20': string;
|
|
27
|
+
'subtitle/m/20': string;
|
|
28
|
+
'subtitle/sb/18': string;
|
|
29
|
+
'subtitle/m/18': string;
|
|
30
|
+
'body/m/18': string;
|
|
31
|
+
'body/sb/16': string;
|
|
32
|
+
'body/m/16': string;
|
|
33
|
+
'body/r/16': string;
|
|
34
|
+
'body/sb/14': string;
|
|
35
|
+
'body/m/14': string;
|
|
36
|
+
'body/r/14': string;
|
|
37
|
+
'button/m/20': string;
|
|
38
|
+
'button/m/18': string;
|
|
39
|
+
'button/m/16': string;
|
|
40
|
+
'button/m/14': string;
|
|
41
|
+
'caption/r/14': string;
|
|
42
|
+
'caption/sb/12': string;
|
|
43
|
+
'caption/m/12': string;
|
|
44
|
+
'caption/r/12': string;
|
|
45
|
+
'caption/m/10': string;
|
|
46
|
+
'caption/r/10': string;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
type TTypographySizes = keyof typeof typographySizes;
|
|
50
|
+
|
|
51
|
+
declare const buttonConfig: (props?: ({
|
|
52
|
+
variant?: "primary-fill" | "primary-outline" | "primary-ghost" | "secondary-fill" | "secondary-outline" | null | undefined;
|
|
53
|
+
size?: "56" | "32" | "40" | "48" | null | undefined;
|
|
18
54
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
19
|
-
interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof
|
|
55
|
+
interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonConfig> {
|
|
20
56
|
/** Контент кнопки (текст или иконки) */
|
|
21
57
|
children: React.ReactNode;
|
|
22
58
|
/**
|
|
23
|
-
*
|
|
59
|
+
* Иконка для отображения внутри кнопки.
|
|
60
|
+
*/
|
|
61
|
+
icon?: keyof typeof icons;
|
|
62
|
+
/**
|
|
63
|
+
* Расположение иконки внутри кнопки.
|
|
64
|
+
* По умолчанию 'left'.
|
|
65
|
+
*/
|
|
66
|
+
iconSide?: 'left' | 'right';
|
|
67
|
+
/**
|
|
68
|
+
* Размер текста внутри кнопки.
|
|
69
|
+
* По умолчанию 'body/r/16'.
|
|
70
|
+
*/
|
|
71
|
+
textSize?: TTypographySizes;
|
|
72
|
+
/**
|
|
73
|
+
* Отображение индикатора загрузки внутри кнопки.
|
|
74
|
+
* Индикатор отображается только при disabled=true.
|
|
24
75
|
* По умолчанию false.
|
|
25
76
|
*/
|
|
26
|
-
|
|
77
|
+
showLoader?: boolean;
|
|
27
78
|
}
|
|
28
79
|
/**
|
|
29
80
|
* Компонент Button используется для интерактивных элементов действия.
|
|
30
|
-
* Поддерживает различные варианты оформления (
|
|
81
|
+
* Поддерживает различные варианты оформления (variant) и размеры (size).
|
|
31
82
|
*
|
|
32
83
|
* @example
|
|
33
|
-
* <Button
|
|
84
|
+
* <Button variant="primary-fill" size="40">Нажми меня</Button>
|
|
34
85
|
*/
|
|
35
86
|
declare const Button: FC<IButtonProps>;
|
|
36
87
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
2
2
|
import { FC } from 'react';
|
|
3
3
|
import { VariantProps } from 'class-variance-authority';
|
|
4
|
+
import { icons } from 'lucide-react';
|
|
4
5
|
|
|
5
6
|
declare const typographyVariants: (props?: ({
|
|
6
|
-
size?: "button/m/16" | "button/m/14" | null | undefined;
|
|
7
|
+
size?: "body/r/16" | "display/eb/64" | "display/b/56" | "heading/b/48" | "heading/sb/40" | "heading/sb/36" | "heading/sb/32" | "heading/sb/28" | "subtitle/sb/24" | "subtitle/m/24" | "subtitle/sb/20" | "subtitle/m/20" | "subtitle/sb/18" | "subtitle/m/18" | "body/m/18" | "body/sb/16" | "body/m/16" | "body/sb/14" | "body/m/14" | "body/r/14" | "button/m/20" | "button/m/18" | "button/m/16" | "button/m/14" | "caption/r/14" | "caption/sb/12" | "caption/m/12" | "caption/r/12" | "caption/m/10" | "caption/r/10" | null | undefined;
|
|
7
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
8
9
|
type TTag = 'p' | 'span';
|
|
9
10
|
interface ITypographyProps extends React.HTMLAttributes<HTMLParagraphElement>, VariantProps<typeof typographyVariants> {
|
|
@@ -12,25 +13,75 @@ interface ITypographyProps extends React.HTMLAttributes<HTMLParagraphElement>, V
|
|
|
12
13
|
}
|
|
13
14
|
declare const Typography: FC<ITypographyProps>;
|
|
14
15
|
|
|
15
|
-
declare const
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
declare const typographySizes: {
|
|
17
|
+
'display/eb/64': string;
|
|
18
|
+
'display/b/56': string;
|
|
19
|
+
'heading/b/48': string;
|
|
20
|
+
'heading/sb/40': string;
|
|
21
|
+
'heading/sb/36': string;
|
|
22
|
+
'heading/sb/32': string;
|
|
23
|
+
'heading/sb/28': string;
|
|
24
|
+
'subtitle/sb/24': string;
|
|
25
|
+
'subtitle/m/24': string;
|
|
26
|
+
'subtitle/sb/20': string;
|
|
27
|
+
'subtitle/m/20': string;
|
|
28
|
+
'subtitle/sb/18': string;
|
|
29
|
+
'subtitle/m/18': string;
|
|
30
|
+
'body/m/18': string;
|
|
31
|
+
'body/sb/16': string;
|
|
32
|
+
'body/m/16': string;
|
|
33
|
+
'body/r/16': string;
|
|
34
|
+
'body/sb/14': string;
|
|
35
|
+
'body/m/14': string;
|
|
36
|
+
'body/r/14': string;
|
|
37
|
+
'button/m/20': string;
|
|
38
|
+
'button/m/18': string;
|
|
39
|
+
'button/m/16': string;
|
|
40
|
+
'button/m/14': string;
|
|
41
|
+
'caption/r/14': string;
|
|
42
|
+
'caption/sb/12': string;
|
|
43
|
+
'caption/m/12': string;
|
|
44
|
+
'caption/r/12': string;
|
|
45
|
+
'caption/m/10': string;
|
|
46
|
+
'caption/r/10': string;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
type TTypographySizes = keyof typeof typographySizes;
|
|
50
|
+
|
|
51
|
+
declare const buttonConfig: (props?: ({
|
|
52
|
+
variant?: "primary-fill" | "primary-outline" | "primary-ghost" | "secondary-fill" | "secondary-outline" | null | undefined;
|
|
53
|
+
size?: "56" | "32" | "40" | "48" | null | undefined;
|
|
18
54
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
19
|
-
interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof
|
|
55
|
+
interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonConfig> {
|
|
20
56
|
/** Контент кнопки (текст или иконки) */
|
|
21
57
|
children: React.ReactNode;
|
|
22
58
|
/**
|
|
23
|
-
*
|
|
59
|
+
* Иконка для отображения внутри кнопки.
|
|
60
|
+
*/
|
|
61
|
+
icon?: keyof typeof icons;
|
|
62
|
+
/**
|
|
63
|
+
* Расположение иконки внутри кнопки.
|
|
64
|
+
* По умолчанию 'left'.
|
|
65
|
+
*/
|
|
66
|
+
iconSide?: 'left' | 'right';
|
|
67
|
+
/**
|
|
68
|
+
* Размер текста внутри кнопки.
|
|
69
|
+
* По умолчанию 'body/r/16'.
|
|
70
|
+
*/
|
|
71
|
+
textSize?: TTypographySizes;
|
|
72
|
+
/**
|
|
73
|
+
* Отображение индикатора загрузки внутри кнопки.
|
|
74
|
+
* Индикатор отображается только при disabled=true.
|
|
24
75
|
* По умолчанию false.
|
|
25
76
|
*/
|
|
26
|
-
|
|
77
|
+
showLoader?: boolean;
|
|
27
78
|
}
|
|
28
79
|
/**
|
|
29
80
|
* Компонент Button используется для интерактивных элементов действия.
|
|
30
|
-
* Поддерживает различные варианты оформления (
|
|
81
|
+
* Поддерживает различные варианты оформления (variant) и размеры (size).
|
|
31
82
|
*
|
|
32
83
|
* @example
|
|
33
|
-
* <Button
|
|
84
|
+
* <Button variant="primary-fill" size="40">Нажми меня</Button>
|
|
34
85
|
*/
|
|
35
86
|
declare const Button: FC<IButtonProps>;
|
|
36
87
|
|
package/dist/index.js
CHANGED
|
@@ -10,8 +10,36 @@ import { cva } from "class-variance-authority";
|
|
|
10
10
|
|
|
11
11
|
// src/stories/typography/config/typography-sizes.ts
|
|
12
12
|
var typographySizes = {
|
|
13
|
+
"display/eb/64": "text-[64px] font-extrabold",
|
|
14
|
+
"display/b/56": "text-[56px] font-bold",
|
|
15
|
+
"heading/b/48": "text-[48px] font-bold",
|
|
16
|
+
"heading/sb/40": "text-[40px] font-semibold",
|
|
17
|
+
"heading/sb/36": "text-[36px] font-semibold",
|
|
18
|
+
"heading/sb/32": "text-[32px] font-semibold",
|
|
19
|
+
"heading/sb/28": "text-[28px] font-semibold",
|
|
20
|
+
"subtitle/sb/24": "text-[24px] font-semibold",
|
|
21
|
+
"subtitle/m/24": "text-[24px] font-medium",
|
|
22
|
+
"subtitle/sb/20": "text-[20px] font-semibold",
|
|
23
|
+
"subtitle/m/20": "text-[20px] font-medium",
|
|
24
|
+
"subtitle/sb/18": "text-[18px] font-semibold",
|
|
25
|
+
"subtitle/m/18": "text-[18px] font-medium",
|
|
26
|
+
"body/m/18": "text-[18px] font-medium",
|
|
27
|
+
"body/sb/16": "text-[16px] font-semibold",
|
|
28
|
+
"body/m/16": "text-[16px] font-medium",
|
|
29
|
+
"body/r/16": "text-[16px] font-normal",
|
|
30
|
+
"body/sb/14": "text-[14px] font-semibold",
|
|
31
|
+
"body/m/14": "text-[14px] font-medium",
|
|
32
|
+
"body/r/14": "text-[14px] font-normal",
|
|
33
|
+
"button/m/20": "text-[20px] font-medium",
|
|
34
|
+
"button/m/18": "text-[18px] font-medium",
|
|
13
35
|
"button/m/16": "text-[16px] font-medium",
|
|
14
|
-
"button/m/14": "text-[14px] font-medium"
|
|
36
|
+
"button/m/14": "text-[14px] font-medium",
|
|
37
|
+
"caption/r/14": "text-[14px] font-normal",
|
|
38
|
+
"caption/sb/12": "text-[12px] font-semibold",
|
|
39
|
+
"caption/m/12": "text-[12px] font-medium",
|
|
40
|
+
"caption/r/12": "text-[12px] font-normal",
|
|
41
|
+
"caption/m/10": "text-[10px] font-medium",
|
|
42
|
+
"caption/r/10": "text-[10px] font-normal"
|
|
15
43
|
};
|
|
16
44
|
|
|
17
45
|
// src/stories/typography/ui/typography.tsx
|
|
@@ -23,7 +51,7 @@ var typographyVariants = cva("transition-all duration-300 leading-[100%]", {
|
|
|
23
51
|
}
|
|
24
52
|
},
|
|
25
53
|
defaultVariants: {
|
|
26
|
-
size: "
|
|
54
|
+
size: "body/r/16"
|
|
27
55
|
}
|
|
28
56
|
});
|
|
29
57
|
var Typography = ({ children, tag = "p", size, className, ...props }) => {
|
|
@@ -34,11 +62,13 @@ var Typography = ({ children, tag = "p", size, className, ...props }) => {
|
|
|
34
62
|
// src/stories/button/ui/button.tsx
|
|
35
63
|
import { cva as cva2 } from "class-variance-authority";
|
|
36
64
|
|
|
37
|
-
// src/stories/button/config/button-
|
|
38
|
-
var
|
|
39
|
-
primary: "bg-blue-500 text-white hover:bg-blue-
|
|
40
|
-
|
|
41
|
-
|
|
65
|
+
// src/stories/button/config/button-variants.ts
|
|
66
|
+
var buttonVariants = {
|
|
67
|
+
"primary-fill": "bg-primary-blue-500 text-white not-disabled:hover:bg-primary-blue-800 not-disabled:active:bg-primary-blue-700 disabled:bg-neutral-200 disabled:text-neutral-400",
|
|
68
|
+
"primary-outline": "bg-transparent border border-primary-blue-500 text-primary-blue-500 not-disabled:hover:border-primary-blue-800 not-disabled:hover:text-primary-blue-800 not-disabled:active:border-primary-blue-700 not-disabled:active:text-primary-blue-700 disabled:border-primary-neutral-200 disabled:text-primary-neutral-400",
|
|
69
|
+
"primary-ghost": "bg-transparent text-primary-blue-500 not-disabled:hover:text-primary-blue-800 not-disabled:active:text-primary-blue-700 disabled:text-primary-neutral-400",
|
|
70
|
+
"secondary-fill": "bg-primary-neutral-800 text-white hover:bg-primary-neutral-700",
|
|
71
|
+
"secondary-outline": "border-2 border-primary-neutral-800 text-primary-neutral-800 not-disabled:hover:bg-primary-neutral-700 not-disabled:active:bg-primary-neutral-700"
|
|
42
72
|
};
|
|
43
73
|
|
|
44
74
|
// src/stories/button/config/button-sizes.ts
|
|
@@ -50,23 +80,42 @@ var buttonSizes = {
|
|
|
50
80
|
};
|
|
51
81
|
|
|
52
82
|
// src/stories/button/ui/button.tsx
|
|
53
|
-
import {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
83
|
+
import { icons, Loader2 } from "lucide-react";
|
|
84
|
+
import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
|
|
85
|
+
var buttonConfig = cva2(
|
|
86
|
+
"transition-all cursor-pointer duration-300 py-2 px-4 rounded-[8px] flex items-center gap-2 disabled:cursor-not-allowed ",
|
|
87
|
+
{
|
|
88
|
+
variants: {
|
|
89
|
+
variant: {
|
|
90
|
+
...buttonVariants
|
|
91
|
+
},
|
|
92
|
+
size: {
|
|
93
|
+
...buttonSizes
|
|
94
|
+
}
|
|
58
95
|
},
|
|
59
|
-
|
|
60
|
-
|
|
96
|
+
defaultVariants: {
|
|
97
|
+
variant: "primary-fill",
|
|
98
|
+
size: "56"
|
|
61
99
|
}
|
|
62
|
-
},
|
|
63
|
-
defaultVariants: {
|
|
64
|
-
bg: "primary",
|
|
65
|
-
size: "32"
|
|
66
100
|
}
|
|
67
|
-
|
|
68
|
-
var Button = ({
|
|
69
|
-
|
|
101
|
+
);
|
|
102
|
+
var Button = ({
|
|
103
|
+
children,
|
|
104
|
+
variant,
|
|
105
|
+
size,
|
|
106
|
+
className,
|
|
107
|
+
iconSide = "left",
|
|
108
|
+
textSize = "body/r/16",
|
|
109
|
+
showLoader = false,
|
|
110
|
+
icon,
|
|
111
|
+
...props
|
|
112
|
+
}) => {
|
|
113
|
+
const Icon = icon && icons[icon];
|
|
114
|
+
return /* @__PURE__ */ jsx2("button", { ...props, className: cn(buttonConfig({ variant, size, className })), children: props.disabled && showLoader ? /* @__PURE__ */ jsx2("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx2(Loader2, { size: 20, strokeWidth: 1.5, className: "animate-spin" }) }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
115
|
+
Icon && iconSide === "left" && /* @__PURE__ */ jsx2(Icon, { size: 20, strokeWidth: 1.5 }),
|
|
116
|
+
/* @__PURE__ */ jsx2(Typography, { size: textSize, children }),
|
|
117
|
+
Icon && iconSide === "right" && /* @__PURE__ */ jsx2(Icon, { size: 20, strokeWidth: 1.5 })
|
|
118
|
+
] }) });
|
|
70
119
|
};
|
|
71
120
|
export {
|
|
72
121
|
Button,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts","../src/stories/typography/ui/typography.tsx","../src/stories/typography/config/typography-sizes.ts","../src/stories/button/ui/button.tsx","../src/stories/button/config/button-
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts","../src/stories/typography/ui/typography.tsx","../src/stories/typography/config/typography-sizes.ts","../src/stories/button/ui/button.tsx","../src/stories/button/config/button-variants.ts","../src/stories/button/config/button-sizes.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","'use client'\n\nimport { FC } from 'react'\nimport { cn } from '@/lib/utils'\nimport { cva, VariantProps } from 'class-variance-authority'\nimport { typographySizes } from '../config/typography-sizes'\n\nconst typographyVariants = cva('transition-all duration-300 leading-[100%]', {\n\tvariants: {\n\t\tsize: {\n\t\t\t...typographySizes,\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tsize: 'body/r/16',\n\t},\n})\n\ntype TTag = 'p' | 'span'\n\nexport interface ITypographyProps\n\textends React.HTMLAttributes<HTMLParagraphElement>, VariantProps<typeof typographyVariants> {\n\tchildren: React.ReactNode\n\ttag?: TTag\n}\n\nexport const Typography: FC<ITypographyProps> = ({ children, tag = 'p', size, className, ...props }) => {\n\tconst Tag = tag\n\n\treturn (\n\t\t<Tag {...props} className={cn(typographyVariants({ size, className }))}>\n\t\t\t{children}\n\t\t</Tag>\n\t)\n}","export const typographySizes = {\n\t'display/eb/64': 'text-[64px] font-extrabold',\n\t'display/b/56': 'text-[56px] font-bold',\n\n\t'heading/b/48': 'text-[48px] font-bold',\n\t'heading/sb/40': 'text-[40px] font-semibold',\n\t'heading/sb/36': 'text-[36px] font-semibold',\n\t'heading/sb/32': 'text-[32px] font-semibold',\n\t'heading/sb/28': 'text-[28px] font-semibold',\n\n\t'subtitle/sb/24': 'text-[24px] font-semibold',\n\t'subtitle/m/24': 'text-[24px] font-medium',\n\t'subtitle/sb/20': 'text-[20px] font-semibold',\n\t'subtitle/m/20': 'text-[20px] font-medium',\n\t'subtitle/sb/18': 'text-[18px] font-semibold',\n\t'subtitle/m/18': 'text-[18px] font-medium',\n\n\t'body/m/18': 'text-[18px] font-medium',\n\t'body/sb/16': 'text-[16px] font-semibold',\n\t'body/m/16': 'text-[16px] font-medium',\n\t'body/r/16': 'text-[16px] font-normal',\n\t'body/sb/14': 'text-[14px] font-semibold',\n\t'body/m/14': 'text-[14px] font-medium',\n\t'body/r/14': 'text-[14px] font-normal',\n\n\t'button/m/20': 'text-[20px] font-medium',\n\t'button/m/18': 'text-[18px] font-medium',\n\t'button/m/16': 'text-[16px] font-medium',\n\t'button/m/14': 'text-[14px] font-medium',\n\n\t'caption/r/14': 'text-[14px] font-normal',\n\t'caption/sb/12': 'text-[12px] font-semibold',\n\t'caption/m/12': 'text-[12px] font-medium',\n\t'caption/r/12': 'text-[12px] font-normal',\n\t'caption/m/10': 'text-[10px] font-medium',\n\t'caption/r/10': 'text-[10px] font-normal',\n}","'use client'\n\nimport { FC } from 'react'\nimport { cva, VariantProps } from 'class-variance-authority'\nimport { cn } from '@/lib/utils'\nimport { Typography } from '@/stories/typography'\nimport { buttonSizes, buttonVariants } from '../config'\nimport { icons, Loader2 } from 'lucide-react'\nimport { TTypographySizes } from '@/stories/typography/types'\n\nconst buttonConfig = cva(\n\t'transition-all cursor-pointer duration-300 py-2 px-4 rounded-[8px] flex items-center gap-2 disabled:cursor-not-allowed ',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\t...buttonVariants,\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\t...buttonSizes,\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'primary-fill',\n\t\t\tsize: '56',\n\t\t},\n\t},\n)\n\nexport interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonConfig> {\n\t/** Контент кнопки (текст или иконки) */\n\tchildren: React.ReactNode\n\n\t/**\n\t * Иконка для отображения внутри кнопки.\n\t */\n\ticon?: keyof typeof icons\n\n\t/**\n\t * Расположение иконки внутри кнопки.\n\t * По умолчанию 'left'.\n\t */\n\ticonSide?: 'left' | 'right'\n\n\t/**\n\t * Размер текста внутри кнопки.\n\t * По умолчанию 'body/r/16'.\n\t */\n\ttextSize?: TTypographySizes\n\n\t/**\n\t * Отображение индикатора загрузки внутри кнопки.\n\t * Индикатор отображается только при disabled=true.\n\t * По умолчанию false.\n\t */\n\tshowLoader?: boolean\n}\n\n/**\n * Компонент Button используется для интерактивных элементов действия.\n * Поддерживает различные варианты оформления (variant) и размеры (size).\n *\n * @example\n * <Button variant=\"primary-fill\" size=\"40\">Нажми меня</Button>\n */\nexport const Button: FC<IButtonProps> = ({\n\tchildren,\n\tvariant,\n\tsize,\n\tclassName,\n\ticonSide = 'left',\n\ttextSize = 'body/r/16',\n\tshowLoader = false,\n\ticon,\n\t...props\n}) => {\n\tconst Icon = icon && icons[icon]\n\n\treturn (\n\t\t<button {...props} className={cn(buttonConfig({ variant, size, className }))}>\n\t\t\t{props.disabled && showLoader ? (\n\t\t\t\t<div className='flex items-center justify-center'>\n\t\t\t\t\t<Loader2 size={20} strokeWidth={1.5} className='animate-spin' />\n\t\t\t\t</div>\n\t\t\t) : (\n\t\t\t\t<>\n\t\t\t\t\t{Icon && iconSide === 'left' && <Icon size={20} strokeWidth={1.5} />}\n\n\t\t\t\t\t<Typography size={textSize}>{children}</Typography>\n\n\t\t\t\t\t{Icon && iconSide === 'right' && <Icon size={20} strokeWidth={1.5} />}\n\t\t\t\t</>\n\t\t\t)}\n\t\t</button>\n\t)\n}","export const buttonVariants = {\n\t'primary-fill':\n\t\t'bg-primary-blue-500 text-white not-disabled:hover:bg-primary-blue-800 not-disabled:active:bg-primary-blue-700 disabled:bg-neutral-200 disabled:text-neutral-400',\n\n\t'primary-outline':\n\t\t'bg-transparent border border-primary-blue-500 text-primary-blue-500 not-disabled:hover:border-primary-blue-800 not-disabled:hover:text-primary-blue-800 not-disabled:active:border-primary-blue-700 not-disabled:active:text-primary-blue-700 disabled:border-primary-neutral-200 disabled:text-primary-neutral-400',\n\n\t'primary-ghost':\n\t\t'bg-transparent text-primary-blue-500 not-disabled:hover:text-primary-blue-800 not-disabled:active:text-primary-blue-700 disabled:text-primary-neutral-400',\n\n\t'secondary-fill': 'bg-primary-neutral-800 text-white hover:bg-primary-neutral-700',\n\n\t'secondary-outline':\n\t\t'border-2 border-primary-neutral-800 text-primary-neutral-800 not-disabled:hover:bg-primary-neutral-700 not-disabled:active:bg-primary-neutral-700',\n}","export const buttonSizes = {\n\t'32': 'h-[32px]',\n\t'40': 'h-[40px]',\n\t'48': 'h-[48px]',\n\t'56': 'h-[56px]',\n}"],"mappings":"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","names":["cva","jsx","cva"]}
|