@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 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: "button/m/16"
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-bgs.ts
65
- var buttonBgs = {
66
- primary: "bg-blue-500 text-white hover:bg-blue-600",
67
- secondary: "bg-gray-200 text-gray-800 hover:bg-gray-300",
68
- outline: "bg-transparent border-2 border-blue-500 text-blue-500 hover:bg-blue-50"
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 buttonVariants = (0, import_class_variance_authority2.cva)("transition-all duration-300 py-2 px-4 rounded-[8px] leading-[100%]", {
82
- variants: {
83
- bg: {
84
- ...buttonBgs
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
- size: {
87
- ...buttonSizes
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 = ({ children, bg, size, className, asChild = false, ...props }) => {
96
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { ...props, className: cn(buttonVariants({ bg, size, className })), children: asChild ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Typography, { children }) : children });
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 = {
@@ -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-bgs.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: 'button/m/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'button/m/16': 'text-[16px] font-medium',\n\t'button/m/14': 'text-[14px] font-medium',\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 { buttonBgs, buttonSizes } from '../config'\n\nconst buttonVariants = cva('transition-all duration-300 py-2 px-4 rounded-[8px] leading-[100%]', {\n\tvariants: {\n\t\tbg: {\n\t\t\t...buttonBgs,\n\t\t},\n\t\tsize: {\n\t\t\t...buttonSizes,\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tbg: 'primary',\n\t\tsize: '32',\n\t},\n})\n\nexport interface IButtonProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {\n\t/** Контент кнопки (текст или иконки) */\n\tchildren: React.ReactNode\n\t/**\n\t * Если true, оборачивает children в компонент Typography для единообразия.\n\t * По умолчанию false.\n\t */\n\tasChild?: boolean\n}\n\n/**\n * Компонент Button используется для интерактивных элементов действия.\n * Поддерживает различные варианты оформления (bg) и размеры (size).\n *\n * @example\n * <Button bg=\"primary\" size=\"40\">Нажми меня</Button>\n */\nexport const Button: FC<IButtonProps> = ({ children, bg, size, className, asChild = false, ...props }) => {\n\treturn (\n\t\t<button {...props} className={cn(buttonVariants({ bg, size, className }))}>\n\t\t\t{asChild ? <Typography>{children}</Typography> : children}\n\t\t</button>\n\t)\n}","export const buttonBgs = {\n\tprimary: 'bg-blue-500 text-white hover:bg-blue-600',\n\tsecondary: 'bg-gray-200 text-gray-800 hover:bg-gray-300',\n\toutline: 'bg-transparent border-2 border-blue-500 text-blue-500 hover:bg-blue-50',\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,eAAe;AAAA,EACf,eAAe;AAChB;;;AD2BE;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,YAAY;AAAA,EACxB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AACV;;;ACJO,IAAM,cAAc;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AACP;;;AFuCc,IAAAC,sBAAA;AApCd,IAAM,qBAAiB,sCAAI,sEAAsE;AAAA,EAChG,UAAU;AAAA,IACT,IAAI;AAAA,MACH,GAAG;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,MACL,GAAG;AAAA,IACJ;AAAA,EACD;AAAA,EACA,iBAAiB;AAAA,IAChB,IAAI;AAAA,IACJ,MAAM;AAAA,EACP;AACD,CAAC;AAoBM,IAAM,SAA2B,CAAC,EAAE,UAAU,IAAI,MAAM,WAAW,UAAU,OAAO,GAAG,MAAM,MAAM;AACzG,SACC,6CAAC,YAAQ,GAAG,OAAO,WAAW,GAAG,eAAe,EAAE,IAAI,MAAM,UAAU,CAAC,CAAC,GACtE,oBAAU,6CAAC,cAAY,UAAS,IAAgB,UAClD;AAEF;","names":["import_class_variance_authority","import_jsx_runtime"]}
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-blue-50: oklch(97% 0.014 254.604);
12
- --color-blue-500: oklch(62.3% 0.214 259.815);
13
- --color-blue-600: oklch(54.6% 0.245 262.881);
14
- --color-gray-200: oklch(92.8% 0.006 264.531);
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
- .bg-blue-500 {
238
- background-color: var(--color-blue-500);
287
+ .border-primary-neutral-800 {
288
+ border-color: var(--color-primary-neutral-800);
239
289
  }
240
- .bg-gray-200 {
241
- background-color: var(--color-gray-200);
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
- .text-blue-500 {
267
- color: var(--color-blue-500);
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-gray-800 {
270
- color: var(--color-gray-800);
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-blue-50 {
405
+ .hover\:bg-primary-neutral-700 {
292
406
  &:hover {
293
407
  @media (hover: hover) {
294
- background-color: var(--color-blue-50);
408
+ background-color: var(--color-primary-neutral-700);
295
409
  }
296
410
  }
297
411
  }
298
- .hover\:bg-blue-600 {
299
- &:hover {
300
- @media (hover: hover) {
301
- background-color: var(--color-blue-600);
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-gray-300 {
306
- &:hover {
307
- @media (hover: hover) {
308
- background-color: var(--color-gray-300);
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
  }
@@ -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 buttonVariants: (props?: ({
16
- bg?: "primary" | "secondary" | "outline" | null | undefined;
17
- size?: "32" | "40" | "48" | "56" | null | undefined;
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 buttonVariants> {
55
+ interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonConfig> {
20
56
  /** Контент кнопки (текст или иконки) */
21
57
  children: React.ReactNode;
22
58
  /**
23
- * Если true, оборачивает children в компонент Typography для единообразия.
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
- asChild?: boolean;
77
+ showLoader?: boolean;
27
78
  }
28
79
  /**
29
80
  * Компонент Button используется для интерактивных элементов действия.
30
- * Поддерживает различные варианты оформления (bg) и размеры (size).
81
+ * Поддерживает различные варианты оформления (variant) и размеры (size).
31
82
  *
32
83
  * @example
33
- * <Button bg="primary" size="40">Нажми меня</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 buttonVariants: (props?: ({
16
- bg?: "primary" | "secondary" | "outline" | null | undefined;
17
- size?: "32" | "40" | "48" | "56" | null | undefined;
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 buttonVariants> {
55
+ interface IButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonConfig> {
20
56
  /** Контент кнопки (текст или иконки) */
21
57
  children: React.ReactNode;
22
58
  /**
23
- * Если true, оборачивает children в компонент Typography для единообразия.
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
- asChild?: boolean;
77
+ showLoader?: boolean;
27
78
  }
28
79
  /**
29
80
  * Компонент Button используется для интерактивных элементов действия.
30
- * Поддерживает различные варианты оформления (bg) и размеры (size).
81
+ * Поддерживает различные варианты оформления (variant) и размеры (size).
31
82
  *
32
83
  * @example
33
- * <Button bg="primary" size="40">Нажми меня</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: "button/m/16"
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-bgs.ts
38
- var buttonBgs = {
39
- primary: "bg-blue-500 text-white hover:bg-blue-600",
40
- secondary: "bg-gray-200 text-gray-800 hover:bg-gray-300",
41
- outline: "bg-transparent border-2 border-blue-500 text-blue-500 hover:bg-blue-50"
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 { jsx as jsx2 } from "react/jsx-runtime";
54
- var buttonVariants = cva2("transition-all duration-300 py-2 px-4 rounded-[8px] leading-[100%]", {
55
- variants: {
56
- bg: {
57
- ...buttonBgs
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
- size: {
60
- ...buttonSizes
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 = ({ children, bg, size, className, asChild = false, ...props }) => {
69
- return /* @__PURE__ */ jsx2("button", { ...props, className: cn(buttonVariants({ bg, size, className })), children: asChild ? /* @__PURE__ */ jsx2(Typography, { children }) : children });
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-bgs.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: 'button/m/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'button/m/16': 'text-[16px] font-medium',\n\t'button/m/14': 'text-[14px] font-medium',\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 { buttonBgs, buttonSizes } from '../config'\n\nconst buttonVariants = cva('transition-all duration-300 py-2 px-4 rounded-[8px] leading-[100%]', {\n\tvariants: {\n\t\tbg: {\n\t\t\t...buttonBgs,\n\t\t},\n\t\tsize: {\n\t\t\t...buttonSizes,\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tbg: 'primary',\n\t\tsize: '32',\n\t},\n})\n\nexport interface IButtonProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {\n\t/** Контент кнопки (текст или иконки) */\n\tchildren: React.ReactNode\n\t/**\n\t * Если true, оборачивает children в компонент Typography для единообразия.\n\t * По умолчанию false.\n\t */\n\tasChild?: boolean\n}\n\n/**\n * Компонент Button используется для интерактивных элементов действия.\n * Поддерживает различные варианты оформления (bg) и размеры (size).\n *\n * @example\n * <Button bg=\"primary\" size=\"40\">Нажми меня</Button>\n */\nexport const Button: FC<IButtonProps> = ({ children, bg, size, className, asChild = false, ...props }) => {\n\treturn (\n\t\t<button {...props} className={cn(buttonVariants({ bg, size, className }))}>\n\t\t\t{asChild ? <Typography>{children}</Typography> : children}\n\t\t</button>\n\t)\n}","export const buttonBgs = {\n\tprimary: 'bg-blue-500 text-white hover:bg-blue-600',\n\tsecondary: 'bg-gray-200 text-gray-800 hover:bg-gray-300',\n\toutline: 'bg-transparent border-2 border-blue-500 text-blue-500 hover:bg-blue-50',\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,SAAS,YAA6B;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;ACDA,SAAS,WAAyB;;;ACJ3B,IAAM,kBAAkB;AAAA,EAC9B,eAAe;AAAA,EACf,eAAe;AAChB;;;AD2BE;AAvBF,IAAM,qBAAqB,IAAI,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,oBAAC,OAAK,GAAG,OAAO,WAAW,GAAG,mBAAmB,EAAE,MAAM,UAAU,CAAC,CAAC,GACnE,UACF;AAEF;;;AE/BA,SAAS,OAAAA,YAAyB;;;ACH3B,IAAM,YAAY;AAAA,EACxB,SAAS;AAAA,EACT,WAAW;AAAA,EACX,SAAS;AACV;;;ACJO,IAAM,cAAc;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AACP;;;AFuCc,gBAAAC,YAAA;AApCd,IAAM,iBAAiBC,KAAI,sEAAsE;AAAA,EAChG,UAAU;AAAA,IACT,IAAI;AAAA,MACH,GAAG;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,MACL,GAAG;AAAA,IACJ;AAAA,EACD;AAAA,EACA,iBAAiB;AAAA,IAChB,IAAI;AAAA,IACJ,MAAM;AAAA,EACP;AACD,CAAC;AAoBM,IAAM,SAA2B,CAAC,EAAE,UAAU,IAAI,MAAM,WAAW,UAAU,OAAO,GAAG,MAAM,MAAM;AACzG,SACC,gBAAAD,KAAC,YAAQ,GAAG,OAAO,WAAW,GAAG,eAAe,EAAE,IAAI,MAAM,UAAU,CAAC,CAAC,GACtE,oBAAU,gBAAAA,KAAC,cAAY,UAAS,IAAgB,UAClD;AAEF;","names":["cva","jsx","cva"]}
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"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bezdenegsvarkinet/ui-library",
3
3
  "private": false,
4
- "version": "1.1.2",
4
+ "version": "1.3.0",
5
5
  "type": "module",
6
6
  "files": [
7
7
  "dist"