kz-design-system 0.0.19 → 0.1.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/avatar.d.mts +1 -1
- package/dist/avatar.d.ts +1 -1
- package/dist/avatar.js.map +1 -1
- package/dist/avatar.mjs.map +1 -1
- package/dist/button.d.mts +5 -3
- package/dist/button.d.ts +5 -3
- package/dist/button.js +152 -30
- package/dist/button.js.map +1 -1
- package/dist/button.mjs +151 -30
- package/dist/button.mjs.map +1 -1
- package/dist/card.d.mts +1 -1
- package/dist/card.d.ts +1 -1
- package/dist/card.js.map +1 -1
- package/dist/card.mjs.map +1 -1
- package/dist/checkbox.d.mts +1 -1
- package/dist/checkbox.d.ts +1 -1
- package/dist/checkbox.js.map +1 -1
- package/dist/checkbox.mjs.map +1 -1
- package/dist/color-picker.d.mts +1 -1
- package/dist/color-picker.d.ts +1 -1
- package/dist/color-picker.js +142 -26
- package/dist/color-picker.js.map +1 -1
- package/dist/color-picker.mjs +142 -26
- package/dist/color-picker.mjs.map +1 -1
- package/dist/date-range-picker.d.mts +1 -1
- package/dist/date-range-picker.d.ts +1 -1
- package/dist/date-range-picker.js +142 -26
- package/dist/date-range-picker.js.map +1 -1
- package/dist/date-range-picker.mjs +142 -26
- package/dist/date-range-picker.mjs.map +1 -1
- package/dist/date-time-picker.d.mts +1 -1
- package/dist/date-time-picker.d.ts +1 -1
- package/dist/date-time-picker.js +142 -26
- package/dist/date-time-picker.js.map +1 -1
- package/dist/date-time-picker.mjs +142 -26
- package/dist/date-time-picker.mjs.map +1 -1
- package/dist/dropdown.d.mts +1 -1
- package/dist/dropdown.d.ts +1 -1
- package/dist/dropdown.js +141 -25
- package/dist/dropdown.js.map +1 -1
- package/dist/dropdown.mjs +141 -25
- package/dist/dropdown.mjs.map +1 -1
- package/dist/{enum-V2pNihYX.d.mts → enum-BXb6AbOQ.d.mts} +12 -4
- package/dist/{enum-V2pNihYX.d.ts → enum-BXb6AbOQ.d.ts} +12 -4
- package/dist/file-uploader.d.mts +1 -1
- package/dist/file-uploader.d.ts +1 -1
- package/dist/form-group.d.mts +1 -1
- package/dist/form-group.d.ts +1 -1
- package/dist/icon-picker.d.mts +1 -1
- package/dist/icon-picker.d.ts +1 -1
- package/dist/icon-picker.js +142 -26
- package/dist/icon-picker.js.map +1 -1
- package/dist/icon-picker.mjs +142 -26
- package/dist/icon-picker.mjs.map +1 -1
- package/dist/index-0bTjZ-iO.d.mts +33 -0
- package/dist/index-plipErXS.d.ts +33 -0
- package/dist/index.d.mts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +461 -112
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +459 -112
- package/dist/index.mjs.map +1 -1
- package/dist/number-input.d.mts +1 -1
- package/dist/number-input.d.ts +1 -1
- package/dist/number-input.js +141 -25
- package/dist/number-input.js.map +1 -1
- package/dist/number-input.mjs +141 -25
- package/dist/number-input.mjs.map +1 -1
- package/dist/pagination.js +141 -25
- package/dist/pagination.js.map +1 -1
- package/dist/pagination.mjs +141 -25
- package/dist/pagination.mjs.map +1 -1
- package/dist/qr-renderer.d.mts +7 -5
- package/dist/qr-renderer.d.ts +7 -5
- package/dist/qr-renderer.js +273 -42
- package/dist/qr-renderer.js.map +1 -1
- package/dist/qr-renderer.mjs +272 -42
- package/dist/qr-renderer.mjs.map +1 -1
- package/dist/radio-button.d.mts +1 -1
- package/dist/radio-button.d.ts +1 -1
- package/dist/radio-button.js.map +1 -1
- package/dist/radio-button.mjs.map +1 -1
- package/dist/select.d.mts +7 -1
- package/dist/select.d.ts +7 -1
- package/dist/select.js +66 -30
- package/dist/select.js.map +1 -1
- package/dist/select.mjs +66 -30
- package/dist/select.mjs.map +1 -1
- package/dist/sql-editor.js +142 -25
- package/dist/sql-editor.js.map +1 -1
- package/dist/sql-editor.mjs +142 -25
- package/dist/sql-editor.mjs.map +1 -1
- package/dist/styles.css +2 -2
- package/dist/table.js +142 -26
- package/dist/table.js.map +1 -1
- package/dist/table.mjs +142 -26
- package/dist/table.mjs.map +1 -1
- package/dist/tabs.d.mts +4 -2
- package/dist/tabs.d.ts +4 -2
- package/dist/tabs.js +11 -5
- package/dist/tabs.js.map +1 -1
- package/dist/tabs.mjs +11 -5
- package/dist/tabs.mjs.map +1 -1
- package/dist/text-area.d.mts +1 -1
- package/dist/text-area.d.ts +1 -1
- package/dist/text-area.js.map +1 -1
- package/dist/text-area.mjs.map +1 -1
- package/dist/text-input.d.mts +1 -1
- package/dist/text-input.d.ts +1 -1
- package/dist/text-input.js.map +1 -1
- package/dist/text-input.mjs.map +1 -1
- package/dist/theme.d.mts +2 -2
- package/dist/theme.d.ts +2 -2
- package/dist/theme.js +48 -12
- package/dist/theme.js.map +1 -1
- package/dist/theme.mjs +48 -12
- package/dist/theme.mjs.map +1 -1
- package/dist/toast.d.mts +1 -1
- package/dist/toast.d.ts +1 -1
- package/dist/toggle-button.d.mts +1 -1
- package/dist/toggle-button.d.ts +1 -1
- package/dist/toggle-button.js.map +1 -1
- package/dist/toggle-button.mjs.map +1 -1
- package/dist/tooltip.d.mts +1 -1
- package/dist/tooltip.d.ts +1 -1
- package/dist/tooltip.js.map +1 -1
- package/dist/tooltip.mjs.map +1 -1
- package/dist/typography.d.mts +1 -1
- package/dist/typography.d.ts +1 -1
- package/dist/typography.js.map +1 -1
- package/dist/typography.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/index-BSUTucuB.d.ts +0 -33
- package/dist/index-Dsxf7W2Q.d.mts +0 -33
package/dist/avatar.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { A as AvatarSize, a as AvatarStatus } from './enum-
|
|
2
|
+
import { A as AvatarSize, a as AvatarStatus } from './enum-BXb6AbOQ.mjs';
|
|
3
3
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
package/dist/avatar.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import { A as AvatarSize, a as AvatarStatus } from './enum-
|
|
2
|
+
import { A as AvatarSize, a as AvatarStatus } from './enum-BXb6AbOQ.js';
|
|
3
3
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
package/dist/avatar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/avatar/index.ts","../src/components/avatar/Avatar.tsx","../src/constants/enum.ts","../src/components/avatar/avatar.variants.ts","../src/utils/cn.ts"],"sourcesContent":["export {\n Avatar,\n avatarVariants,\n type AvatarProps,\n type AvatarVariants,\n} from \"./Avatar\";\nexport { AvatarSize, AvatarStatus } from \"../../constants/enum\";\n","import * as React from \"react\";\nimport { User } from \"lucide-react\";\nimport { AvatarSize, AvatarStatus } from \"../../constants/enum\";\nimport { avatarVariants, type AvatarVariants } from \"./avatar.variants\";\nimport { cn } from \"../../utils/cn\";\n\nconst ICON_SIZE_MAP: Record<AvatarSize, number> = {\n [AvatarSize.Sm]: 16,\n [AvatarSize.Md]: 20,\n [AvatarSize.Lg]: 24,\n [AvatarSize.Xl]: 32,\n};\n\nexport interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n fallbackIcon?: React.ReactNode;\n size?: AvatarSize;\n status?: AvatarStatus;\n className?: string;\n}\n\nconst Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n src,\n alt = \"\",\n initials,\n fallbackIcon,\n size = AvatarSize.Md,\n status,\n className,\n ...props\n },\n ref\n ) => {\n const [imgError, setImgError] = React.useState(false);\n\n React.useEffect(() => {\n setImgError(false);\n }, [src]);\n\n const showImage = src && !imgError;\n const showIndicator = status === AvatarStatus.Online;\n\n return (\n <div\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n role=\"img\"\n aria-label={alt || initials || \"Avatar\"}\n {...props}\n >\n {showImage ? (\n <span className=\"kz-avatar-image\">\n <img\n src={src}\n alt={alt}\n className=\"h-full w-full object-cover\"\n onError={() => setImgError(true)}\n draggable={false}\n />\n </span>\n ) : initials ? (\n <span className=\"kz-avatar-initials\" aria-hidden=\"true\">\n {initials}\n </span>\n ) : (\n <span className=\"kz-avatar-fallback-icon\" aria-hidden=\"true\">\n {fallbackIcon ?? <User size={ICON_SIZE_MAP[size]} />}\n </span>\n )}\n\n {showIndicator && (\n <span\n className={cn(\"kz-avatar-status\", `kz-avatar-status--${size}`)}\n aria-label=\"Online\"\n role=\"status\"\n />\n )}\n </div>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n\nexport { Avatar, avatarVariants };\nexport type { AvatarVariants };\n","export enum Theme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport enum ThemeStyle {\n Enterprise = \"enterprise\",\n Neumorphic = \"neumorphic\",\n Standard = \"standard\",\n Glassmorphic = \"glassmorphic\",\n}\n\nexport enum KezelVariant {\n Standard = \"standard\",\n Neumorphic = \"neumorphic\",\n}\n\nexport enum KezelMode {\n Light,\n Dark,\n}\n\nexport enum ButtonVariant {\n Primary = \"primary\",\n
|
|
1
|
+
{"version":3,"sources":["../src/components/avatar/index.ts","../src/components/avatar/Avatar.tsx","../src/constants/enum.ts","../src/components/avatar/avatar.variants.ts","../src/utils/cn.ts"],"sourcesContent":["export {\n Avatar,\n avatarVariants,\n type AvatarProps,\n type AvatarVariants,\n} from \"./Avatar\";\nexport { AvatarSize, AvatarStatus } from \"../../constants/enum\";\n","import * as React from \"react\";\nimport { User } from \"lucide-react\";\nimport { AvatarSize, AvatarStatus } from \"../../constants/enum\";\nimport { avatarVariants, type AvatarVariants } from \"./avatar.variants\";\nimport { cn } from \"../../utils/cn\";\n\nconst ICON_SIZE_MAP: Record<AvatarSize, number> = {\n [AvatarSize.Sm]: 16,\n [AvatarSize.Md]: 20,\n [AvatarSize.Lg]: 24,\n [AvatarSize.Xl]: 32,\n};\n\nexport interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n fallbackIcon?: React.ReactNode;\n size?: AvatarSize;\n status?: AvatarStatus;\n className?: string;\n}\n\nconst Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n src,\n alt = \"\",\n initials,\n fallbackIcon,\n size = AvatarSize.Md,\n status,\n className,\n ...props\n },\n ref\n ) => {\n const [imgError, setImgError] = React.useState(false);\n\n React.useEffect(() => {\n setImgError(false);\n }, [src]);\n\n const showImage = src && !imgError;\n const showIndicator = status === AvatarStatus.Online;\n\n return (\n <div\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n role=\"img\"\n aria-label={alt || initials || \"Avatar\"}\n {...props}\n >\n {showImage ? (\n <span className=\"kz-avatar-image\">\n <img\n src={src}\n alt={alt}\n className=\"h-full w-full object-cover\"\n onError={() => setImgError(true)}\n draggable={false}\n />\n </span>\n ) : initials ? (\n <span className=\"kz-avatar-initials\" aria-hidden=\"true\">\n {initials}\n </span>\n ) : (\n <span className=\"kz-avatar-fallback-icon\" aria-hidden=\"true\">\n {fallbackIcon ?? <User size={ICON_SIZE_MAP[size]} />}\n </span>\n )}\n\n {showIndicator && (\n <span\n className={cn(\"kz-avatar-status\", `kz-avatar-status--${size}`)}\n aria-label=\"Online\"\n role=\"status\"\n />\n )}\n </div>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n\nexport { Avatar, avatarVariants };\nexport type { AvatarVariants };\n","export enum Theme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport enum ThemeStyle {\n Enterprise = \"enterprise\",\n Neumorphic = \"neumorphic\",\n Standard = \"standard\",\n Glassmorphic = \"glassmorphic\",\n}\n\nexport enum KezelVariant {\n Standard = \"standard\",\n Neumorphic = \"neumorphic\",\n}\n\nexport enum KezelMode {\n Light,\n Dark,\n}\n\nexport enum ButtonVariant {\n Primary = \"primary\",\n Ghost = \"ghost\",\n Container = \"container\",\n}\n\nexport enum ButtonStatus {\n Brand = \"brand\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n Info = \"info\",\n}\n\nexport enum ButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ButtonType {\n Button = \"button\",\n Submit = \"submit\",\n Reset = \"reset\",\n}\n\nexport enum ButtonAspectRatio {\n Auto = \"auto\",\n Square = \"square\",\n}\n\nexport enum DropdownTriggerVariant {\n Default = \"default\",\n Ghost = \"ghost\",\n}\n\nexport enum TypographyVariant {\n H1 = \"h1\",\n H2 = \"h2\",\n H3 = \"h3\",\n H4 = \"h4\",\n H5 = \"h5\",\n Body = \"body\",\n Small = \"small\",\n Caption = \"caption\",\n Label = \"label\",\n Link = \"link\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TypographyTone {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Muted = \"muted\",\n Disabled = \"disabled\",\n Inverse = \"inverse\",\n Link = \"link\",\n}\n\nexport enum TypographyAlign {\n Left = \"left\",\n Center = \"center\",\n Right = \"right\",\n}\n\nexport enum TypographyWeight {\n Regular = \"regular\",\n Medium = \"medium\",\n Semibold = \"semibold\",\n Bold = \"bold\",\n}\n\nexport enum TokenCategory {\n Color = \"color\",\n Shadow = \"shadow\",\n Length = \"length\",\n Number = \"number\",\n LineHeight = \"lineHeight\",\n FontFamily = \"fontFamily\",\n FontWeight = \"fontWeight\",\n Duration = \"duration\",\n Easing = \"easing\",\n}\n\nexport enum OverrideMode {\n Safe = \"safe\",\n Strict = \"strict\",\n}\n\nexport enum TextInputVariant {\n Default = \"default\",\n Container = \"container\",\n Ghost = \"ghost\",\n}\n\nexport enum TextInputSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TextInputState {\n Default = \"default\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TextInputType {\n Text = \"text\",\n Email = \"email\",\n Password = \"password\",\n Number = \"number\",\n Search = \"search\",\n Tel = \"tel\",\n Url = \"url\",\n}\n\nexport enum TooltipSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TooltipPosition {\n Top = \"top\",\n Right = \"right\",\n Bottom = \"bottom\",\n Left = \"left\",\n}\n\nexport enum TooltipAlign {\n Start = \"start\",\n Center = \"center\",\n End = \"end\",\n}\n\nexport enum TooltipColor {\n Default = \"default\",\n Inverse = \"inverse\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n}\n\nexport enum ToggleButtonVariant {\n Default = \"default\",\n Primary = \"primary\",\n Container = \"container\",\n}\n\nexport enum ToggleButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxVariant {\n Default = \"default\",\n Container = \"container\",\n}\n\nexport enum RadioSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum AvatarSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n Xl = \"xl\",\n}\n\nexport enum AvatarStatus {\n Online = \"online\",\n Busy = \"busy\",\n Away = \"away\",\n Offline = \"offline\",\n}\n\nexport enum ToastVariant {\n Success = \"success\",\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\",\n}\n\nexport enum CardShadow {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ToastPosition {\n TopRight = \"top-right\",\n TopLeft = \"top-left\",\n BottomRight = \"bottom-right\",\n BottomLeft = \"bottom-left\",\n}\n\nexport enum QrPattern {\n Square = \"square\",\n Circle = \"circle\",\n Diamond = \"diamond\",\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { AvatarSize } from \"../../constants/enum\";\n\nconst base = [\n \"kz-avatar\",\n \"relative inline-flex items-center justify-center\",\n \"rounded-full\",\n \"shrink-0\",\n \"[box-shadow:none]\",\n].join(\" \");\n\nexport const avatarVariants = cva(base, {\n variants: {\n size: {\n [AvatarSize.Sm]: \"size-8 text-xs\",\n [AvatarSize.Md]: \"size-10 text-sm\",\n [AvatarSize.Lg]: \"size-12 text-base\",\n [AvatarSize.Xl]: \"size-16 text-lg\",\n },\n },\n defaultVariants: {\n size: AvatarSize.Md,\n },\n});\n\nexport type AvatarVariants = VariantProps<typeof avatarVariants>;\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,YAAuB;AACvB,0BAAqB;;;ACqMd,IAAK,aAAL,kBAAKA,gBAAL;AACL,EAAAA,YAAA,QAAK;AACL,EAAAA,YAAA,QAAK;AACL,EAAAA,YAAA,QAAK;AACL,EAAAA,YAAA,QAAK;AAJK,SAAAA;AAAA,GAAA;AAOL,IAAK,eAAL,kBAAKC,kBAAL;AACL,EAAAA,cAAA,YAAS;AACT,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,aAAU;AAJA,SAAAA;AAAA,GAAA;;;AC7MZ,sCAAuC;AAGvC,IAAM,OAAO;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG;AAEH,IAAM,qBAAiB,qCAAI,MAAM;AAAA,EACtC,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,cAAc,GAAG;AAAA,MACjB,cAAc,GAAG;AAAA,MACjB,cAAc,GAAG;AAAA,MACjB,cAAc,GAAG;AAAA,IACnB;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf;AAAA,EACF;AACF,CAAC;;;ACvBD,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;AH0CM;AAzCN,IAAM,gBAA4C;AAAA,EAChD,cAAc,GAAG;AAAA,EACjB,cAAc,GAAG;AAAA,EACjB,cAAc,GAAG;AAAA,EACjB,cAAc,GAAG;AACnB;AAYA,IAAM,SAAe;AAAA,EACnB,CACE;AAAA,IACE;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,CAAC,UAAU,WAAW,IAAU,eAAS,KAAK;AAEpD,IAAM,gBAAU,MAAM;AACpB,kBAAY,KAAK;AAAA,IACnB,GAAG,CAAC,GAAG,CAAC;AAER,UAAM,YAAY,OAAO,CAAC;AAC1B,UAAM,gBAAgB;AAEtB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,eAAe,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,QACjD,MAAK;AAAA,QACL,cAAY,OAAO,YAAY;AAAA,QAC9B,GAAG;AAAA,QAEH;AAAA,sBACC,4CAAC,UAAK,WAAU,mBACd;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA,WAAU;AAAA,cACV,SAAS,MAAM,YAAY,IAAI;AAAA,cAC/B,WAAW;AAAA;AAAA,UACb,GACF,IACE,WACF,4CAAC,UAAK,WAAU,sBAAqB,eAAY,QAC9C,oBACH,IAEA,4CAAC,UAAK,WAAU,2BAA0B,eAAY,QACnD,0BAAgB,4CAAC,4BAAK,MAAM,cAAc,IAAI,GAAG,GACpD;AAAA,UAGD,iBACC;AAAA,YAAC;AAAA;AAAA,cACC,WAAW,GAAG,oBAAoB,qBAAqB,IAAI,EAAE;AAAA,cAC7D,cAAW;AAAA,cACX,MAAK;AAAA;AAAA,UACP;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;","names":["AvatarSize","AvatarStatus"]}
|
package/dist/avatar.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/avatar/Avatar.tsx","../src/constants/enum.ts","../src/components/avatar/avatar.variants.ts","../src/utils/cn.ts"],"sourcesContent":["import * as React from \"react\";\nimport { User } from \"lucide-react\";\nimport { AvatarSize, AvatarStatus } from \"../../constants/enum\";\nimport { avatarVariants, type AvatarVariants } from \"./avatar.variants\";\nimport { cn } from \"../../utils/cn\";\n\nconst ICON_SIZE_MAP: Record<AvatarSize, number> = {\n [AvatarSize.Sm]: 16,\n [AvatarSize.Md]: 20,\n [AvatarSize.Lg]: 24,\n [AvatarSize.Xl]: 32,\n};\n\nexport interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n fallbackIcon?: React.ReactNode;\n size?: AvatarSize;\n status?: AvatarStatus;\n className?: string;\n}\n\nconst Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n src,\n alt = \"\",\n initials,\n fallbackIcon,\n size = AvatarSize.Md,\n status,\n className,\n ...props\n },\n ref\n ) => {\n const [imgError, setImgError] = React.useState(false);\n\n React.useEffect(() => {\n setImgError(false);\n }, [src]);\n\n const showImage = src && !imgError;\n const showIndicator = status === AvatarStatus.Online;\n\n return (\n <div\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n role=\"img\"\n aria-label={alt || initials || \"Avatar\"}\n {...props}\n >\n {showImage ? (\n <span className=\"kz-avatar-image\">\n <img\n src={src}\n alt={alt}\n className=\"h-full w-full object-cover\"\n onError={() => setImgError(true)}\n draggable={false}\n />\n </span>\n ) : initials ? (\n <span className=\"kz-avatar-initials\" aria-hidden=\"true\">\n {initials}\n </span>\n ) : (\n <span className=\"kz-avatar-fallback-icon\" aria-hidden=\"true\">\n {fallbackIcon ?? <User size={ICON_SIZE_MAP[size]} />}\n </span>\n )}\n\n {showIndicator && (\n <span\n className={cn(\"kz-avatar-status\", `kz-avatar-status--${size}`)}\n aria-label=\"Online\"\n role=\"status\"\n />\n )}\n </div>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n\nexport { Avatar, avatarVariants };\nexport type { AvatarVariants };\n","export enum Theme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport enum ThemeStyle {\n Enterprise = \"enterprise\",\n Neumorphic = \"neumorphic\",\n Standard = \"standard\",\n Glassmorphic = \"glassmorphic\",\n}\n\nexport enum KezelVariant {\n Standard = \"standard\",\n Neumorphic = \"neumorphic\",\n}\n\nexport enum KezelMode {\n Light,\n Dark,\n}\n\nexport enum ButtonVariant {\n Primary = \"primary\",\n
|
|
1
|
+
{"version":3,"sources":["../src/components/avatar/Avatar.tsx","../src/constants/enum.ts","../src/components/avatar/avatar.variants.ts","../src/utils/cn.ts"],"sourcesContent":["import * as React from \"react\";\nimport { User } from \"lucide-react\";\nimport { AvatarSize, AvatarStatus } from \"../../constants/enum\";\nimport { avatarVariants, type AvatarVariants } from \"./avatar.variants\";\nimport { cn } from \"../../utils/cn\";\n\nconst ICON_SIZE_MAP: Record<AvatarSize, number> = {\n [AvatarSize.Sm]: 16,\n [AvatarSize.Md]: 20,\n [AvatarSize.Lg]: 24,\n [AvatarSize.Xl]: 32,\n};\n\nexport interface AvatarProps extends React.HTMLAttributes<HTMLDivElement> {\n src?: string;\n alt?: string;\n initials?: string;\n fallbackIcon?: React.ReactNode;\n size?: AvatarSize;\n status?: AvatarStatus;\n className?: string;\n}\n\nconst Avatar = React.forwardRef<HTMLDivElement, AvatarProps>(\n (\n {\n src,\n alt = \"\",\n initials,\n fallbackIcon,\n size = AvatarSize.Md,\n status,\n className,\n ...props\n },\n ref\n ) => {\n const [imgError, setImgError] = React.useState(false);\n\n React.useEffect(() => {\n setImgError(false);\n }, [src]);\n\n const showImage = src && !imgError;\n const showIndicator = status === AvatarStatus.Online;\n\n return (\n <div\n ref={ref}\n className={cn(avatarVariants({ size }), className)}\n role=\"img\"\n aria-label={alt || initials || \"Avatar\"}\n {...props}\n >\n {showImage ? (\n <span className=\"kz-avatar-image\">\n <img\n src={src}\n alt={alt}\n className=\"h-full w-full object-cover\"\n onError={() => setImgError(true)}\n draggable={false}\n />\n </span>\n ) : initials ? (\n <span className=\"kz-avatar-initials\" aria-hidden=\"true\">\n {initials}\n </span>\n ) : (\n <span className=\"kz-avatar-fallback-icon\" aria-hidden=\"true\">\n {fallbackIcon ?? <User size={ICON_SIZE_MAP[size]} />}\n </span>\n )}\n\n {showIndicator && (\n <span\n className={cn(\"kz-avatar-status\", `kz-avatar-status--${size}`)}\n aria-label=\"Online\"\n role=\"status\"\n />\n )}\n </div>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n\nexport { Avatar, avatarVariants };\nexport type { AvatarVariants };\n","export enum Theme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport enum ThemeStyle {\n Enterprise = \"enterprise\",\n Neumorphic = \"neumorphic\",\n Standard = \"standard\",\n Glassmorphic = \"glassmorphic\",\n}\n\nexport enum KezelVariant {\n Standard = \"standard\",\n Neumorphic = \"neumorphic\",\n}\n\nexport enum KezelMode {\n Light,\n Dark,\n}\n\nexport enum ButtonVariant {\n Primary = \"primary\",\n Ghost = \"ghost\",\n Container = \"container\",\n}\n\nexport enum ButtonStatus {\n Brand = \"brand\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n Info = \"info\",\n}\n\nexport enum ButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ButtonType {\n Button = \"button\",\n Submit = \"submit\",\n Reset = \"reset\",\n}\n\nexport enum ButtonAspectRatio {\n Auto = \"auto\",\n Square = \"square\",\n}\n\nexport enum DropdownTriggerVariant {\n Default = \"default\",\n Ghost = \"ghost\",\n}\n\nexport enum TypographyVariant {\n H1 = \"h1\",\n H2 = \"h2\",\n H3 = \"h3\",\n H4 = \"h4\",\n H5 = \"h5\",\n Body = \"body\",\n Small = \"small\",\n Caption = \"caption\",\n Label = \"label\",\n Link = \"link\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TypographyTone {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Muted = \"muted\",\n Disabled = \"disabled\",\n Inverse = \"inverse\",\n Link = \"link\",\n}\n\nexport enum TypographyAlign {\n Left = \"left\",\n Center = \"center\",\n Right = \"right\",\n}\n\nexport enum TypographyWeight {\n Regular = \"regular\",\n Medium = \"medium\",\n Semibold = \"semibold\",\n Bold = \"bold\",\n}\n\nexport enum TokenCategory {\n Color = \"color\",\n Shadow = \"shadow\",\n Length = \"length\",\n Number = \"number\",\n LineHeight = \"lineHeight\",\n FontFamily = \"fontFamily\",\n FontWeight = \"fontWeight\",\n Duration = \"duration\",\n Easing = \"easing\",\n}\n\nexport enum OverrideMode {\n Safe = \"safe\",\n Strict = \"strict\",\n}\n\nexport enum TextInputVariant {\n Default = \"default\",\n Container = \"container\",\n Ghost = \"ghost\",\n}\n\nexport enum TextInputSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TextInputState {\n Default = \"default\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TextInputType {\n Text = \"text\",\n Email = \"email\",\n Password = \"password\",\n Number = \"number\",\n Search = \"search\",\n Tel = \"tel\",\n Url = \"url\",\n}\n\nexport enum TooltipSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TooltipPosition {\n Top = \"top\",\n Right = \"right\",\n Bottom = \"bottom\",\n Left = \"left\",\n}\n\nexport enum TooltipAlign {\n Start = \"start\",\n Center = \"center\",\n End = \"end\",\n}\n\nexport enum TooltipColor {\n Default = \"default\",\n Inverse = \"inverse\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n}\n\nexport enum ToggleButtonVariant {\n Default = \"default\",\n Primary = \"primary\",\n Container = \"container\",\n}\n\nexport enum ToggleButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxVariant {\n Default = \"default\",\n Container = \"container\",\n}\n\nexport enum RadioSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum AvatarSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n Xl = \"xl\",\n}\n\nexport enum AvatarStatus {\n Online = \"online\",\n Busy = \"busy\",\n Away = \"away\",\n Offline = \"offline\",\n}\n\nexport enum ToastVariant {\n Success = \"success\",\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\",\n}\n\nexport enum CardShadow {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ToastPosition {\n TopRight = \"top-right\",\n TopLeft = \"top-left\",\n BottomRight = \"bottom-right\",\n BottomLeft = \"bottom-left\",\n}\n\nexport enum QrPattern {\n Square = \"square\",\n Circle = \"circle\",\n Diamond = \"diamond\",\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { AvatarSize } from \"../../constants/enum\";\n\nconst base = [\n \"kz-avatar\",\n \"relative inline-flex items-center justify-center\",\n \"rounded-full\",\n \"shrink-0\",\n \"[box-shadow:none]\",\n].join(\" \");\n\nexport const avatarVariants = cva(base, {\n variants: {\n size: {\n [AvatarSize.Sm]: \"size-8 text-xs\",\n [AvatarSize.Md]: \"size-10 text-sm\",\n [AvatarSize.Lg]: \"size-12 text-base\",\n [AvatarSize.Xl]: \"size-16 text-lg\",\n },\n },\n defaultVariants: {\n size: AvatarSize.Md,\n },\n});\n\nexport type AvatarVariants = VariantProps<typeof avatarVariants>;\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":";AAAA,YAAY,WAAW;AACvB,SAAS,YAAY;;;ACqMd,IAAK,aAAL,kBAAKA,gBAAL;AACL,EAAAA,YAAA,QAAK;AACL,EAAAA,YAAA,QAAK;AACL,EAAAA,YAAA,QAAK;AACL,EAAAA,YAAA,QAAK;AAJK,SAAAA;AAAA,GAAA;AAOL,IAAK,eAAL,kBAAKC,kBAAL;AACL,EAAAA,cAAA,YAAS;AACT,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,aAAU;AAJA,SAAAA;AAAA,GAAA;;;AC7MZ,SAAS,WAA8B;AAGvC,IAAM,OAAO;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,EAAE,KAAK,GAAG;AAEH,IAAM,iBAAiB,IAAI,MAAM;AAAA,EACtC,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,cAAc,GAAG;AAAA,MACjB,cAAc,GAAG;AAAA,MACjB,cAAc,GAAG;AAAA,MACjB,cAAc,GAAG;AAAA,IACnB;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf;AAAA,EACF;AACF,CAAC;;;ACvBD,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;;;AH0CM,SASM,KATN;AAzCN,IAAM,gBAA4C;AAAA,EAChD,cAAc,GAAG;AAAA,EACjB,cAAc,GAAG;AAAA,EACjB,cAAc,GAAG;AAAA,EACjB,cAAc,GAAG;AACnB;AAYA,IAAM,SAAe;AAAA,EACnB,CACE;AAAA,IACE;AAAA,IACA,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,CAAC,UAAU,WAAW,IAAU,eAAS,KAAK;AAEpD,IAAM,gBAAU,MAAM;AACpB,kBAAY,KAAK;AAAA,IACnB,GAAG,CAAC,GAAG,CAAC;AAER,UAAM,YAAY,OAAO,CAAC;AAC1B,UAAM,gBAAgB;AAEtB,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,WAAW,GAAG,eAAe,EAAE,KAAK,CAAC,GAAG,SAAS;AAAA,QACjD,MAAK;AAAA,QACL,cAAY,OAAO,YAAY;AAAA,QAC9B,GAAG;AAAA,QAEH;AAAA,sBACC,oBAAC,UAAK,WAAU,mBACd;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA,WAAU;AAAA,cACV,SAAS,MAAM,YAAY,IAAI;AAAA,cAC/B,WAAW;AAAA;AAAA,UACb,GACF,IACE,WACF,oBAAC,UAAK,WAAU,sBAAqB,eAAY,QAC9C,oBACH,IAEA,oBAAC,UAAK,WAAU,2BAA0B,eAAY,QACnD,0BAAgB,oBAAC,QAAK,MAAM,cAAc,IAAI,GAAG,GACpD;AAAA,UAGD,iBACC;AAAA,YAAC;AAAA;AAAA,cACC,WAAW,GAAG,oBAAoB,qBAAqB,IAAI,EAAE;AAAA,cAC7D,cAAW;AAAA,cACX,MAAK;AAAA;AAAA,UACP;AAAA;AAAA;AAAA,IAEJ;AAAA,EAEJ;AACF;AAEA,OAAO,cAAc;","names":["AvatarSize","AvatarStatus"]}
|
package/dist/button.d.mts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { e as ButtonVariant, b as ButtonSize, c as ButtonStatus, d as ButtonType, B as ButtonAspectRatio } from './enum-BXb6AbOQ.mjs';
|
|
3
3
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const buttonVariants: (props?: ({
|
|
7
|
-
variant?: "primary" | "
|
|
7
|
+
variant?: "primary" | "ghost" | "container" | null | undefined;
|
|
8
|
+
status?: "brand" | "success" | "warning" | "error" | "info" | null | undefined;
|
|
8
9
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
9
10
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
11
|
type ButtonVariants = VariantProps<typeof buttonVariants>;
|
|
@@ -12,6 +13,7 @@ type ButtonVariants = VariantProps<typeof buttonVariants>;
|
|
|
12
13
|
interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "children" | "onClick"> {
|
|
13
14
|
variant: ButtonVariant;
|
|
14
15
|
size: ButtonSize;
|
|
16
|
+
status?: ButtonStatus;
|
|
15
17
|
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
16
18
|
asChild?: boolean;
|
|
17
19
|
children: React.ReactNode;
|
|
@@ -21,4 +23,4 @@ interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>
|
|
|
21
23
|
}
|
|
22
24
|
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
23
25
|
|
|
24
|
-
export { Button, ButtonAspectRatio, type ButtonProps, ButtonSize, ButtonType, ButtonVariant, type ButtonVariants, buttonVariants };
|
|
26
|
+
export { Button, ButtonAspectRatio, type ButtonProps, ButtonSize, ButtonStatus, ButtonType, ButtonVariant, type ButtonVariants, buttonVariants };
|
package/dist/button.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import { e as ButtonVariant, b as ButtonSize, c as ButtonStatus, d as ButtonType, B as ButtonAspectRatio } from './enum-BXb6AbOQ.js';
|
|
3
3
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const buttonVariants: (props?: ({
|
|
7
|
-
variant?: "primary" | "
|
|
7
|
+
variant?: "primary" | "ghost" | "container" | null | undefined;
|
|
8
|
+
status?: "brand" | "success" | "warning" | "error" | "info" | null | undefined;
|
|
8
9
|
size?: "sm" | "md" | "lg" | null | undefined;
|
|
9
10
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
10
11
|
type ButtonVariants = VariantProps<typeof buttonVariants>;
|
|
@@ -12,6 +13,7 @@ type ButtonVariants = VariantProps<typeof buttonVariants>;
|
|
|
12
13
|
interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "children" | "onClick"> {
|
|
13
14
|
variant: ButtonVariant;
|
|
14
15
|
size: ButtonSize;
|
|
16
|
+
status?: ButtonStatus;
|
|
15
17
|
onClick?: React.MouseEventHandler<HTMLButtonElement>;
|
|
16
18
|
asChild?: boolean;
|
|
17
19
|
children: React.ReactNode;
|
|
@@ -21,4 +23,4 @@ interface ButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>
|
|
|
21
23
|
}
|
|
22
24
|
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
23
25
|
|
|
24
|
-
export { Button, ButtonAspectRatio, type ButtonProps, ButtonSize, ButtonType, ButtonVariant, type ButtonVariants, buttonVariants };
|
|
26
|
+
export { Button, ButtonAspectRatio, type ButtonProps, ButtonSize, ButtonStatus, ButtonType, ButtonVariant, type ButtonVariants, buttonVariants };
|
package/dist/button.js
CHANGED
|
@@ -33,6 +33,7 @@ __export(button_exports, {
|
|
|
33
33
|
Button: () => Button,
|
|
34
34
|
ButtonAspectRatio: () => ButtonAspectRatio,
|
|
35
35
|
ButtonSize: () => ButtonSize,
|
|
36
|
+
ButtonStatus: () => ButtonStatus,
|
|
36
37
|
ButtonType: () => ButtonType,
|
|
37
38
|
ButtonVariant: () => ButtonVariant,
|
|
38
39
|
buttonVariants: () => buttonVariants
|
|
@@ -46,14 +47,18 @@ var import_react_slot = require("@radix-ui/react-slot");
|
|
|
46
47
|
// src/constants/enum.ts
|
|
47
48
|
var ButtonVariant = /* @__PURE__ */ ((ButtonVariant2) => {
|
|
48
49
|
ButtonVariant2["Primary"] = "primary";
|
|
49
|
-
ButtonVariant2["Secondary"] = "secondary";
|
|
50
|
-
ButtonVariant2["Outline"] = "outline";
|
|
51
50
|
ButtonVariant2["Ghost"] = "ghost";
|
|
52
|
-
ButtonVariant2["
|
|
53
|
-
ButtonVariant2["Warning"] = "warning";
|
|
54
|
-
ButtonVariant2["Error"] = "error";
|
|
51
|
+
ButtonVariant2["Container"] = "container";
|
|
55
52
|
return ButtonVariant2;
|
|
56
53
|
})(ButtonVariant || {});
|
|
54
|
+
var ButtonStatus = /* @__PURE__ */ ((ButtonStatus2) => {
|
|
55
|
+
ButtonStatus2["Brand"] = "brand";
|
|
56
|
+
ButtonStatus2["Success"] = "success";
|
|
57
|
+
ButtonStatus2["Warning"] = "warning";
|
|
58
|
+
ButtonStatus2["Error"] = "error";
|
|
59
|
+
ButtonStatus2["Info"] = "info";
|
|
60
|
+
return ButtonStatus2;
|
|
61
|
+
})(ButtonStatus || {});
|
|
57
62
|
var ButtonSize = /* @__PURE__ */ ((ButtonSize2) => {
|
|
58
63
|
ButtonSize2["Sm"] = "sm";
|
|
59
64
|
ButtonSize2["Md"] = "md";
|
|
@@ -85,15 +90,6 @@ var buttonVariants = (0, import_class_variance_authority.cva)(base, {
|
|
|
85
90
|
variants: {
|
|
86
91
|
variant: {
|
|
87
92
|
primary: [
|
|
88
|
-
"bg-[var(--kz-component-button-primary-bg)]",
|
|
89
|
-
"text-[var(--kz-component-button-primary-text)]",
|
|
90
|
-
"rounded-[var(--kz-component-button-radius,8px)]",
|
|
91
|
-
"[box-shadow:var(--kz-component-button-primary-shadow,none)]",
|
|
92
|
-
"hover:bg-[var(--kz-component-button-primary-bg-hover)]",
|
|
93
|
-
"hover:[box-shadow:var(--kz-component-button-primary-shadow-hover,var(--kz-component-button-primary-shadow,none))]",
|
|
94
|
-
"active:bg-[var(--kz-component-button-primary-bg-active)]"
|
|
95
|
-
].join(" "),
|
|
96
|
-
secondary: [
|
|
97
93
|
"bg-[var(--kz-component-button-secondary-bg)]",
|
|
98
94
|
"text-[var(--kz-component-button-secondary-text)]",
|
|
99
95
|
"rounded-[var(--kz-component-button-radius,8px)]",
|
|
@@ -102,15 +98,6 @@ var buttonVariants = (0, import_class_variance_authority.cva)(base, {
|
|
|
102
98
|
"hover:[box-shadow:var(--kz-component-button-secondary-shadow-hover,var(--kz-component-button-secondary-shadow,none))]",
|
|
103
99
|
"active:bg-[var(--kz-component-button-secondary-bg-active)]"
|
|
104
100
|
].join(" "),
|
|
105
|
-
outline: [
|
|
106
|
-
"bg-[var(--kz-component-button-outline-bg)]",
|
|
107
|
-
"text-[var(--kz-component-button-outline-text)]",
|
|
108
|
-
"border border-[var(--kz-component-button-outline-border)]",
|
|
109
|
-
"rounded-[var(--kz-component-button-radius,8px)]",
|
|
110
|
-
"[box-shadow:var(--kz-component-button-outline-shadow,none)]",
|
|
111
|
-
"hover:bg-[var(--kz-component-button-outline-bg-hover,var(--kz-component-button-outline-bg))]",
|
|
112
|
-
"hover:[box-shadow:var(--kz-component-button-outline-shadow-hover,var(--kz-component-button-outline-shadow,none))]"
|
|
113
|
-
].join(" "),
|
|
114
101
|
ghost: [
|
|
115
102
|
"bg-[var(--kz-component-button-ghost-bg)]",
|
|
116
103
|
"text-[var(--kz-component-button-ghost-text)]",
|
|
@@ -120,29 +107,56 @@ var buttonVariants = (0, import_class_variance_authority.cva)(base, {
|
|
|
120
107
|
"hover:bg-[var(--kz-component-button-ghost-bg-hover,transparent)]",
|
|
121
108
|
"active:opacity-80"
|
|
122
109
|
].join(" "),
|
|
110
|
+
container: [
|
|
111
|
+
"bg-[var(--kz-component-button-container-bg)]",
|
|
112
|
+
"text-[var(--kz-component-button-container-text)]",
|
|
113
|
+
"border border-[var(--kz-component-button-container-border)]",
|
|
114
|
+
"rounded-[var(--kz-component-button-radius,8px)]",
|
|
115
|
+
"[box-shadow:var(--kz-component-button-container-shadow)]",
|
|
116
|
+
"hover:bg-[var(--kz-component-button-ghost-bg-hover,transparent)]",
|
|
117
|
+
"hover:[box-shadow:var(--kz-component-button-container-shadow-hover)]"
|
|
118
|
+
].join(" ")
|
|
119
|
+
},
|
|
120
|
+
status: {
|
|
121
|
+
brand: [
|
|
122
|
+
"bg-[var(--kz-component-button-brand-bg)]",
|
|
123
|
+
"text-[var(--kz-component-button-brand-text)]",
|
|
124
|
+
"[box-shadow:var(--kz-component-button-brand-shadow,none)]",
|
|
125
|
+
"hover:bg-[var(--kz-component-button-brand-bg-hover,var(--kz-component-button-brand-bg))]",
|
|
126
|
+
"hover:[box-shadow:var(--kz-component-button-brand-shadow-hover,var(--kz-component-button-brand-shadow,none))]",
|
|
127
|
+
"active:!bg-[var(--kz-component-button-brand-bg-hover,var(--kz-component-button-brand-bg))]"
|
|
128
|
+
].join(" "),
|
|
123
129
|
success: [
|
|
124
130
|
"bg-[var(--kz-component-button-success-bg)]",
|
|
125
131
|
"text-[var(--kz-component-button-success-text)]",
|
|
126
|
-
"rounded-[var(--kz-component-button-radius,8px)]",
|
|
127
132
|
"[box-shadow:var(--kz-component-button-success-shadow,none)]",
|
|
128
133
|
"hover:bg-[var(--kz-component-button-success-bg-hover,var(--kz-component-button-success-bg))]",
|
|
129
|
-
"hover:[box-shadow:var(--kz-component-button-success-shadow-hover,var(--kz-component-button-success-shadow,none))]"
|
|
134
|
+
"hover:[box-shadow:var(--kz-component-button-success-shadow-hover,var(--kz-component-button-success-shadow,none))]",
|
|
135
|
+
"active:!bg-[var(--kz-component-button-success-bg-hover,var(--kz-component-button-success-bg))]"
|
|
130
136
|
].join(" "),
|
|
131
137
|
warning: [
|
|
132
138
|
"bg-[var(--kz-component-button-warning-bg)]",
|
|
133
139
|
"text-[var(--kz-component-button-warning-text)]",
|
|
134
|
-
"rounded-[var(--kz-component-button-radius,8px)]",
|
|
135
140
|
"[box-shadow:var(--kz-component-button-warning-shadow,none)]",
|
|
136
141
|
"hover:bg-[var(--kz-component-button-warning-bg-hover,var(--kz-component-button-warning-bg))]",
|
|
137
|
-
"hover:[box-shadow:var(--kz-component-button-warning-shadow-hover,var(--kz-component-button-warning-shadow,none))]"
|
|
142
|
+
"hover:[box-shadow:var(--kz-component-button-warning-shadow-hover,var(--kz-component-button-warning-shadow,none))]",
|
|
143
|
+
"active:!bg-[var(--kz-component-button-warning-bg-hover,var(--kz-component-button-warning-bg))]"
|
|
138
144
|
].join(" "),
|
|
139
145
|
error: [
|
|
140
146
|
"bg-[var(--kz-component-button-error-bg)]",
|
|
141
147
|
"text-[var(--kz-component-button-error-text)]",
|
|
142
|
-
"rounded-[var(--kz-component-button-radius,8px)]",
|
|
143
148
|
"[box-shadow:var(--kz-component-button-error-shadow,none)]",
|
|
144
149
|
"hover:bg-[var(--kz-component-button-error-bg-hover,var(--kz-component-button-error-bg))]",
|
|
145
|
-
"hover:[box-shadow:var(--kz-component-button-error-shadow-hover,var(--kz-component-button-error-shadow,none))]"
|
|
150
|
+
"hover:[box-shadow:var(--kz-component-button-error-shadow-hover,var(--kz-component-button-error-shadow,none))]",
|
|
151
|
+
"active:!bg-[var(--kz-component-button-error-bg-hover,var(--kz-component-button-error-bg))]"
|
|
152
|
+
].join(" "),
|
|
153
|
+
info: [
|
|
154
|
+
"bg-[var(--kz-component-button-info-bg)]",
|
|
155
|
+
"text-[var(--kz-component-button-info-text)]",
|
|
156
|
+
"[box-shadow:var(--kz-component-button-info-shadow,none)]",
|
|
157
|
+
"hover:bg-[var(--kz-component-button-info-bg-hover,var(--kz-component-button-info-bg))]",
|
|
158
|
+
"hover:[box-shadow:var(--kz-component-button-info-shadow-hover,var(--kz-component-button-info-shadow,none))]",
|
|
159
|
+
"active:!bg-[var(--kz-component-button-info-bg-hover,var(--kz-component-button-info-bg))]"
|
|
146
160
|
].join(" ")
|
|
147
161
|
},
|
|
148
162
|
size: {
|
|
@@ -166,6 +180,112 @@ var buttonVariants = (0, import_class_variance_authority.cva)(base, {
|
|
|
166
180
|
].join(" ")
|
|
167
181
|
}
|
|
168
182
|
},
|
|
183
|
+
compoundVariants: [
|
|
184
|
+
// Ghost + brand: brand text, transparent bg, brand-tinted hover
|
|
185
|
+
{
|
|
186
|
+
variant: "ghost",
|
|
187
|
+
status: "brand",
|
|
188
|
+
className: [
|
|
189
|
+
"!bg-transparent text-[var(--kz-color-brand-accent)]",
|
|
190
|
+
"hover:!bg-[var(--kz-component-button-ghost-brand-bg-hover,rgba(0,150,137,0.1))]",
|
|
191
|
+
"[box-shadow:none] hover:[box-shadow:none]"
|
|
192
|
+
].join(" ")
|
|
193
|
+
},
|
|
194
|
+
// Ghost + status: text color = status, bg transparent, hover = light tint
|
|
195
|
+
{
|
|
196
|
+
variant: "ghost",
|
|
197
|
+
status: "success",
|
|
198
|
+
className: [
|
|
199
|
+
"!bg-transparent text-[var(--kz-color-status-success)]",
|
|
200
|
+
"hover:!bg-[var(--kz-component-button-ghost-success-bg-hover,rgba(0,201,80,0.1))]",
|
|
201
|
+
"[box-shadow:none] hover:[box-shadow:none]"
|
|
202
|
+
].join(" ")
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
variant: "ghost",
|
|
206
|
+
status: "warning",
|
|
207
|
+
className: [
|
|
208
|
+
"!bg-transparent text-[var(--kz-color-status-warning)]",
|
|
209
|
+
"hover:!bg-[var(--kz-component-button-ghost-warning-bg-hover,rgba(245,158,11,0.1))]",
|
|
210
|
+
"[box-shadow:none] hover:[box-shadow:none]"
|
|
211
|
+
].join(" ")
|
|
212
|
+
},
|
|
213
|
+
{
|
|
214
|
+
variant: "ghost",
|
|
215
|
+
status: "error",
|
|
216
|
+
className: [
|
|
217
|
+
"!bg-transparent text-[var(--kz-color-status-error)]",
|
|
218
|
+
"hover:!bg-[var(--kz-component-button-ghost-error-bg-hover,rgba(251,44,54,0.1))]",
|
|
219
|
+
"[box-shadow:none] hover:[box-shadow:none]"
|
|
220
|
+
].join(" ")
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
variant: "ghost",
|
|
224
|
+
status: "info",
|
|
225
|
+
className: [
|
|
226
|
+
"!bg-transparent text-[var(--kz-color-status-info)]",
|
|
227
|
+
"hover:!bg-[var(--kz-component-button-ghost-info-bg-hover,rgba(37,99,235,0.1))]",
|
|
228
|
+
"[box-shadow:none] hover:[box-shadow:none]"
|
|
229
|
+
].join(" ")
|
|
230
|
+
},
|
|
231
|
+
// Container + brand: brand text, brand border, no shadow, brand-tinted hover
|
|
232
|
+
{
|
|
233
|
+
variant: "container",
|
|
234
|
+
status: "brand",
|
|
235
|
+
className: [
|
|
236
|
+
"!bg-transparent",
|
|
237
|
+
"!text-[var(--kz-component-button-container-brand-text,var(--kz-color-brand-accent))]",
|
|
238
|
+
"!border-[var(--kz-component-button-container-brand-border,var(--kz-color-brand-accent))]",
|
|
239
|
+
"[box-shadow:none] hover:[box-shadow:none]",
|
|
240
|
+
"hover:!bg-[var(--kz-component-button-container-brand-bg-hover,rgba(0,150,137,0.08))]"
|
|
241
|
+
].join(" ")
|
|
242
|
+
},
|
|
243
|
+
// Container + status: keep container shape/shadow, override bg/text with status colors
|
|
244
|
+
{
|
|
245
|
+
variant: "container",
|
|
246
|
+
status: "success",
|
|
247
|
+
className: [
|
|
248
|
+
"!bg-transparent",
|
|
249
|
+
"!text-[var(--kz-color-status-success)]",
|
|
250
|
+
"!border-[var(--kz-color-status-success)]",
|
|
251
|
+
"[box-shadow:none] hover:[box-shadow:none]",
|
|
252
|
+
"hover:!bg-[var(--kz-component-button-ghost-success-bg-hover,rgba(0,201,80,0.1))]"
|
|
253
|
+
].join(" ")
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
variant: "container",
|
|
257
|
+
status: "warning",
|
|
258
|
+
className: [
|
|
259
|
+
"!bg-transparent",
|
|
260
|
+
"!text-[var(--kz-color-status-warning)]",
|
|
261
|
+
"!border-[var(--kz-color-status-warning)]",
|
|
262
|
+
"[box-shadow:none] hover:[box-shadow:none]",
|
|
263
|
+
"hover:!bg-[var(--kz-component-button-ghost-warning-bg-hover,rgba(245,158,11,0.1))]"
|
|
264
|
+
].join(" ")
|
|
265
|
+
},
|
|
266
|
+
{
|
|
267
|
+
variant: "container",
|
|
268
|
+
status: "error",
|
|
269
|
+
className: [
|
|
270
|
+
"!bg-transparent",
|
|
271
|
+
"!text-[var(--kz-color-status-error)]",
|
|
272
|
+
"!border-[var(--kz-color-status-error)]",
|
|
273
|
+
"[box-shadow:none] hover:[box-shadow:none]",
|
|
274
|
+
"hover:!bg-[var(--kz-component-button-ghost-error-bg-hover,rgba(251,44,54,0.1))]"
|
|
275
|
+
].join(" ")
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
variant: "container",
|
|
279
|
+
status: "info",
|
|
280
|
+
className: [
|
|
281
|
+
"!bg-transparent",
|
|
282
|
+
"!text-[var(--kz-color-status-info)]",
|
|
283
|
+
"!border-[var(--kz-color-status-info)]",
|
|
284
|
+
"[box-shadow:none] hover:[box-shadow:none]",
|
|
285
|
+
"hover:!bg-[var(--kz-component-button-ghost-info-bg-hover,rgba(37,99,235,0.1))]"
|
|
286
|
+
].join(" ")
|
|
287
|
+
}
|
|
288
|
+
],
|
|
169
289
|
defaultVariants: {
|
|
170
290
|
variant: "primary" /* Primary */,
|
|
171
291
|
size: "md" /* Md */
|
|
@@ -198,6 +318,7 @@ var Button = React.forwardRef(
|
|
|
198
318
|
className,
|
|
199
319
|
variant,
|
|
200
320
|
size,
|
|
321
|
+
status,
|
|
201
322
|
onClick,
|
|
202
323
|
asChild = false,
|
|
203
324
|
children,
|
|
@@ -210,7 +331,7 @@ var Button = React.forwardRef(
|
|
|
210
331
|
const Comp = asChild ? import_react_slot.Slot : "button";
|
|
211
332
|
const isDisabled = disabled || loading;
|
|
212
333
|
const buttonClassName = cn(
|
|
213
|
-
buttonVariants({ variant, size }),
|
|
334
|
+
buttonVariants({ variant, size, status }),
|
|
214
335
|
loading && "opacity-[var(--kz-component-button-loading-opacity,0.8)]",
|
|
215
336
|
aspectRatio === "square" /* Square */ && "kz-button--aspect-1-1",
|
|
216
337
|
className
|
|
@@ -261,6 +382,7 @@ Button.displayName = "Button";
|
|
|
261
382
|
Button,
|
|
262
383
|
ButtonAspectRatio,
|
|
263
384
|
ButtonSize,
|
|
385
|
+
ButtonStatus,
|
|
264
386
|
ButtonType,
|
|
265
387
|
ButtonVariant,
|
|
266
388
|
buttonVariants
|
package/dist/button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/button/index.ts","../src/components/button/Button.tsx","../src/constants/enum.ts","../src/components/button/button.variants.ts","../src/icon/icon-sizes.ts","../src/utils/cn.ts"],"sourcesContent":["export {\n Button,\n buttonVariants,\n type ButtonProps,\n type ButtonVariants,\n} from \"./Button\";\nexport {\n ButtonVariant,\n ButtonSize,\n ButtonType,\n ButtonAspectRatio,\n} from \"../../constants/enum\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonType,\n ButtonAspectRatio,\n} from \"../../constants/enum\";\nimport { buttonVariants, type ButtonVariants } from \"./button.variants\";\nimport { Loader2 } from \"lucide-react\";\nimport { iconSize } from \"../../icon/icon-sizes\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\" | \"onClick\"\n> {\n variant: ButtonVariant;\n size: ButtonSize;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n asChild?: boolean;\n children: React.ReactNode;\n type?: ButtonType;\n loading?: boolean;\n aspectRatio?: ButtonAspectRatio;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n onClick,\n asChild = false,\n children,\n type = ButtonType.Button,\n loading = false,\n aspectRatio = ButtonAspectRatio.Auto,\n disabled,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const isDisabled = disabled || loading;\n\n const buttonClassName = cn(\n buttonVariants({ variant, size }),\n loading && \"opacity-[var(--kz-component-button-loading-opacity,0.8)]\",\n aspectRatio === ButtonAspectRatio.Square && \"kz-button--aspect-1-1\",\n className\n );\n\n if (asChild) {\n return (\n <Comp\n ref={ref}\n type={asChild ? undefined : type}\n className={buttonClassName}\n onClick={onClick}\n disabled={isDisabled}\n aria-busy={loading}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n\n return (\n <Comp\n ref={ref}\n type={type}\n className={buttonClassName}\n onClick={onClick}\n disabled={isDisabled}\n aria-busy={loading}\n {...props}\n >\n {loading && (\n <Loader2\n className=\"kz-button-spinner\"\n size={iconSize.md}\n color=\"currentColor\"\n />\n )}\n {children}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\nexport type { ButtonVariants };\n","export enum Theme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport enum ThemeStyle {\n Enterprise = \"enterprise\",\n Neumorphic = \"neumorphic\",\n Standard = \"standard\",\n Glassmorphic = \"glassmorphic\",\n}\n\nexport enum KezelVariant {\n Standard = \"standard\",\n Neumorphic = \"neumorphic\",\n}\n\nexport enum KezelMode {\n Light,\n Dark,\n}\n\nexport enum ButtonVariant {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Outline = \"outline\",\n Ghost = \"ghost\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n}\n\nexport enum ButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ButtonType {\n Button = \"button\",\n Submit = \"submit\",\n Reset = \"reset\",\n}\n\nexport enum ButtonAspectRatio {\n Auto = \"auto\",\n Square = \"square\",\n}\n\nexport enum DropdownTriggerVariant {\n Default = \"default\",\n Ghost = \"ghost\",\n}\n\nexport enum TypographyVariant {\n H1 = \"h1\",\n H2 = \"h2\",\n H3 = \"h3\",\n H4 = \"h4\",\n H5 = \"h5\",\n Body = \"body\",\n Small = \"small\",\n Caption = \"caption\",\n Label = \"label\",\n Link = \"link\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TypographyTone {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Muted = \"muted\",\n Disabled = \"disabled\",\n Inverse = \"inverse\",\n Link = \"link\",\n}\n\nexport enum TypographyAlign {\n Left = \"left\",\n Center = \"center\",\n Right = \"right\",\n}\n\nexport enum TypographyWeight {\n Regular = \"regular\",\n Medium = \"medium\",\n Semibold = \"semibold\",\n Bold = \"bold\",\n}\n\nexport enum TokenCategory {\n Color = \"color\",\n Shadow = \"shadow\",\n Length = \"length\",\n Number = \"number\",\n LineHeight = \"lineHeight\",\n FontFamily = \"fontFamily\",\n FontWeight = \"fontWeight\",\n Duration = \"duration\",\n Easing = \"easing\",\n}\n\nexport enum OverrideMode {\n Safe = \"safe\",\n Strict = \"strict\",\n}\n\nexport enum TextInputVariant {\n Default = \"default\",\n Container = \"container\",\n Ghost = \"ghost\",\n}\n\nexport enum TextInputSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TextInputState {\n Default = \"default\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TextInputType {\n Text = \"text\",\n Email = \"email\",\n Password = \"password\",\n Number = \"number\",\n Search = \"search\",\n Tel = \"tel\",\n Url = \"url\",\n}\n\nexport enum TooltipSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TooltipPosition {\n Top = \"top\",\n Right = \"right\",\n Bottom = \"bottom\",\n Left = \"left\",\n}\n\nexport enum TooltipAlign {\n Start = \"start\",\n Center = \"center\",\n End = \"end\",\n}\n\nexport enum TooltipColor {\n Default = \"default\",\n Inverse = \"inverse\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n}\n\nexport enum ToggleButtonVariant {\n Default = \"default\",\n Primary = \"primary\",\n Container = \"container\",\n}\n\nexport enum ToggleButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxVariant {\n Default = \"default\",\n Container = \"container\",\n}\n\nexport enum RadioSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum AvatarSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n Xl = \"xl\",\n}\n\nexport enum AvatarStatus {\n Online = \"online\",\n Busy = \"busy\",\n Away = \"away\",\n Offline = \"offline\",\n}\n\nexport enum ToastVariant {\n Success = \"success\",\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\",\n}\n\nexport enum CardShadow {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ToastPosition {\n TopRight = \"top-right\",\n TopLeft = \"top-left\",\n BottomRight = \"bottom-right\",\n BottomLeft = \"bottom-left\",\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { ButtonVariant, ButtonSize } from \"../../constants/enum\";\n\nconst base = [\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium\",\n \"transition-all duration-150 ease-out\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--kz-color-border-focus)]\",\n \"disabled:pointer-events-none disabled:opacity-[var(--kz-component-button-disabled-opacity,0.5)]\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n].join(\" \");\n\nexport const buttonVariants = cva(base, {\n variants: {\n variant: {\n primary: [\n \"bg-[var(--kz-component-button-primary-bg)]\",\n \"text-[var(--kz-component-button-primary-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-primary-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-primary-bg-hover)]\",\n \"hover:[box-shadow:var(--kz-component-button-primary-shadow-hover,var(--kz-component-button-primary-shadow,none))]\",\n \"active:bg-[var(--kz-component-button-primary-bg-active)]\",\n ].join(\" \"),\n secondary: [\n \"bg-[var(--kz-component-button-secondary-bg)]\",\n \"text-[var(--kz-component-button-secondary-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-secondary-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-secondary-bg-hover)]\",\n \"hover:[box-shadow:var(--kz-component-button-secondary-shadow-hover,var(--kz-component-button-secondary-shadow,none))]\",\n \"active:bg-[var(--kz-component-button-secondary-bg-active)]\",\n ].join(\" \"),\n outline: [\n \"bg-[var(--kz-component-button-outline-bg)]\",\n \"text-[var(--kz-component-button-outline-text)]\",\n \"border border-[var(--kz-component-button-outline-border)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-outline-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-outline-bg-hover,var(--kz-component-button-outline-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-outline-shadow-hover,var(--kz-component-button-outline-shadow,none))]\",\n ].join(\" \"),\n ghost: [\n \"bg-[var(--kz-component-button-ghost-bg)]\",\n \"text-[var(--kz-component-button-ghost-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"border border-transparent\",\n \"[box-shadow:none]\",\n \"hover:bg-[var(--kz-component-button-ghost-bg-hover,transparent)]\",\n \"active:opacity-80\",\n ].join(\" \"),\n success: [\n \"bg-[var(--kz-component-button-success-bg)]\",\n \"text-[var(--kz-component-button-success-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-success-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-success-bg-hover,var(--kz-component-button-success-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-success-shadow-hover,var(--kz-component-button-success-shadow,none))]\",\n ].join(\" \"),\n warning: [\n \"bg-[var(--kz-component-button-warning-bg)]\",\n \"text-[var(--kz-component-button-warning-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-warning-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-warning-bg-hover,var(--kz-component-button-warning-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-warning-shadow-hover,var(--kz-component-button-warning-shadow,none))]\",\n ].join(\" \"),\n error: [\n \"bg-[var(--kz-component-button-error-bg)]\",\n \"text-[var(--kz-component-button-error-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-error-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-error-bg-hover,var(--kz-component-button-error-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-error-shadow-hover,var(--kz-component-button-error-shadow,none))]\",\n ].join(\" \"),\n },\n size: {\n sm: [\n \"h-[var(--kz-component-button-height-sm,2rem)]\",\n \"px-[var(--kz-component-button-px-sm,0.75rem)]\",\n \"text-[length:var(--kz-component-button-text-sm,0.875rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-sm,1rem)]\",\n ].join(\" \"),\n md: [\n \"h-[var(--kz-component-button-height-md,2.5rem)]\",\n \"px-[var(--kz-component-button-px-md,1rem)]\",\n \"text-[length:var(--kz-component-button-text-md,0.875rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-md,1rem)]\",\n ].join(\" \"),\n lg: [\n \"h-[var(--kz-component-button-height-lg,3rem)]\",\n \"px-[var(--kz-component-button-px-lg,1.25rem)]\",\n \"text-[length:var(--kz-component-button-text-lg,1rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-lg,1.25rem)]\",\n ].join(\" \"),\n },\n },\n defaultVariants: {\n variant: ButtonVariant.Primary,\n size: ButtonSize.Md,\n },\n});\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n","/** Preset icon sizes (px). Use with Icon size prop. */\nexport const iconSize = {\n xs: 12,\n sm: 16,\n md: 24,\n lg: 32,\n xl: 40,\n} as const;\n\nexport type IconSizeKey = keyof typeof iconSize;\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":["ButtonVariant","ButtonSize","ButtonType","ButtonAspectRatio"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/button/index.ts","../src/components/button/Button.tsx","../src/constants/enum.ts","../src/components/button/button.variants.ts","../src/icon/icon-sizes.ts","../src/utils/cn.ts"],"sourcesContent":["export {\n Button,\n buttonVariants,\n type ButtonProps,\n type ButtonVariants,\n} from \"./Button\";\nexport {\n ButtonVariant,\n ButtonSize,\n ButtonStatus,\n ButtonType,\n ButtonAspectRatio,\n} from \"../../constants/enum\";\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonStatus,\n ButtonType,\n ButtonAspectRatio,\n} from \"../../constants/enum\";\nimport { buttonVariants, type ButtonVariants } from \"./button.variants\";\nimport { Loader2 } from \"lucide-react\";\nimport { iconSize } from \"../../icon/icon-sizes\";\nimport { cn } from \"../../utils/cn\";\n\nexport interface ButtonProps extends Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"children\" | \"onClick\"\n> {\n variant: ButtonVariant;\n size: ButtonSize;\n status?: ButtonStatus;\n onClick?: React.MouseEventHandler<HTMLButtonElement>;\n asChild?: boolean;\n children: React.ReactNode;\n type?: ButtonType;\n loading?: boolean;\n aspectRatio?: ButtonAspectRatio;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant,\n size,\n status,\n onClick,\n asChild = false,\n children,\n type = ButtonType.Button,\n loading = false,\n aspectRatio = ButtonAspectRatio.Auto,\n disabled,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const isDisabled = disabled || loading;\n\n const buttonClassName = cn(\n buttonVariants({ variant, size, status }),\n loading && \"opacity-[var(--kz-component-button-loading-opacity,0.8)]\",\n aspectRatio === ButtonAspectRatio.Square && \"kz-button--aspect-1-1\",\n className\n );\n\n if (asChild) {\n return (\n <Comp\n ref={ref}\n type={asChild ? undefined : type}\n className={buttonClassName}\n onClick={onClick}\n disabled={isDisabled}\n aria-busy={loading}\n {...props}\n >\n {children}\n </Comp>\n );\n }\n\n return (\n <Comp\n ref={ref}\n type={type}\n className={buttonClassName}\n onClick={onClick}\n disabled={isDisabled}\n aria-busy={loading}\n {...props}\n >\n {loading && (\n <Loader2\n className=\"kz-button-spinner\"\n size={iconSize.md}\n color=\"currentColor\"\n />\n )}\n {children}\n </Comp>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\nexport { Button, buttonVariants };\nexport type { ButtonVariants };\n","export enum Theme {\n Light = \"light\",\n Dark = \"dark\",\n}\n\nexport enum ThemeStyle {\n Enterprise = \"enterprise\",\n Neumorphic = \"neumorphic\",\n Standard = \"standard\",\n Glassmorphic = \"glassmorphic\",\n}\n\nexport enum KezelVariant {\n Standard = \"standard\",\n Neumorphic = \"neumorphic\",\n}\n\nexport enum KezelMode {\n Light,\n Dark,\n}\n\nexport enum ButtonVariant {\n Primary = \"primary\",\n Ghost = \"ghost\",\n Container = \"container\",\n}\n\nexport enum ButtonStatus {\n Brand = \"brand\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n Info = \"info\",\n}\n\nexport enum ButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ButtonType {\n Button = \"button\",\n Submit = \"submit\",\n Reset = \"reset\",\n}\n\nexport enum ButtonAspectRatio {\n Auto = \"auto\",\n Square = \"square\",\n}\n\nexport enum DropdownTriggerVariant {\n Default = \"default\",\n Ghost = \"ghost\",\n}\n\nexport enum TypographyVariant {\n H1 = \"h1\",\n H2 = \"h2\",\n H3 = \"h3\",\n H4 = \"h4\",\n H5 = \"h5\",\n Body = \"body\",\n Small = \"small\",\n Caption = \"caption\",\n Label = \"label\",\n Link = \"link\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TypographyTone {\n Primary = \"primary\",\n Secondary = \"secondary\",\n Muted = \"muted\",\n Disabled = \"disabled\",\n Inverse = \"inverse\",\n Link = \"link\",\n}\n\nexport enum TypographyAlign {\n Left = \"left\",\n Center = \"center\",\n Right = \"right\",\n}\n\nexport enum TypographyWeight {\n Regular = \"regular\",\n Medium = \"medium\",\n Semibold = \"semibold\",\n Bold = \"bold\",\n}\n\nexport enum TokenCategory {\n Color = \"color\",\n Shadow = \"shadow\",\n Length = \"length\",\n Number = \"number\",\n LineHeight = \"lineHeight\",\n FontFamily = \"fontFamily\",\n FontWeight = \"fontWeight\",\n Duration = \"duration\",\n Easing = \"easing\",\n}\n\nexport enum OverrideMode {\n Safe = \"safe\",\n Strict = \"strict\",\n}\n\nexport enum TextInputVariant {\n Default = \"default\",\n Container = \"container\",\n Ghost = \"ghost\",\n}\n\nexport enum TextInputSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TextInputState {\n Default = \"default\",\n Error = \"error\",\n Success = \"success\",\n Warning = \"warning\",\n}\n\nexport enum TextInputType {\n Text = \"text\",\n Email = \"email\",\n Password = \"password\",\n Number = \"number\",\n Search = \"search\",\n Tel = \"tel\",\n Url = \"url\",\n}\n\nexport enum TooltipSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum TooltipPosition {\n Top = \"top\",\n Right = \"right\",\n Bottom = \"bottom\",\n Left = \"left\",\n}\n\nexport enum TooltipAlign {\n Start = \"start\",\n Center = \"center\",\n End = \"end\",\n}\n\nexport enum TooltipColor {\n Default = \"default\",\n Inverse = \"inverse\",\n Success = \"success\",\n Warning = \"warning\",\n Error = \"error\",\n}\n\nexport enum ToggleButtonVariant {\n Default = \"default\",\n Primary = \"primary\",\n Container = \"container\",\n}\n\nexport enum ToggleButtonSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum CheckboxVariant {\n Default = \"default\",\n Container = \"container\",\n}\n\nexport enum RadioSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum AvatarSize {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n Xl = \"xl\",\n}\n\nexport enum AvatarStatus {\n Online = \"online\",\n Busy = \"busy\",\n Away = \"away\",\n Offline = \"offline\",\n}\n\nexport enum ToastVariant {\n Success = \"success\",\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\",\n}\n\nexport enum CardShadow {\n Sm = \"sm\",\n Md = \"md\",\n Lg = \"lg\",\n}\n\nexport enum ToastPosition {\n TopRight = \"top-right\",\n TopLeft = \"top-left\",\n BottomRight = \"bottom-right\",\n BottomLeft = \"bottom-left\",\n}\n\nexport enum QrPattern {\n Square = \"square\",\n Circle = \"circle\",\n Diamond = \"diamond\",\n}\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { ButtonVariant, ButtonSize } from \"../../constants/enum\";\n\nconst base = [\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap font-medium\",\n \"transition-all duration-150 ease-out\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-[var(--kz-color-border-focus)]\",\n \"disabled:pointer-events-none disabled:opacity-[var(--kz-component-button-disabled-opacity,0.5)]\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0\",\n].join(\" \");\n\nexport const buttonVariants = cva(base, {\n variants: {\n variant: {\n primary: [\n \"bg-[var(--kz-component-button-secondary-bg)]\",\n \"text-[var(--kz-component-button-secondary-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-secondary-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-secondary-bg-hover)]\",\n \"hover:[box-shadow:var(--kz-component-button-secondary-shadow-hover,var(--kz-component-button-secondary-shadow,none))]\",\n \"active:bg-[var(--kz-component-button-secondary-bg-active)]\",\n ].join(\" \"),\n ghost: [\n \"bg-[var(--kz-component-button-ghost-bg)]\",\n \"text-[var(--kz-component-button-ghost-text)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"border border-transparent\",\n \"[box-shadow:none]\",\n \"hover:bg-[var(--kz-component-button-ghost-bg-hover,transparent)]\",\n \"active:opacity-80\",\n ].join(\" \"),\n container: [\n \"bg-[var(--kz-component-button-container-bg)]\",\n \"text-[var(--kz-component-button-container-text)]\",\n \"border border-[var(--kz-component-button-container-border)]\",\n \"rounded-[var(--kz-component-button-radius,8px)]\",\n \"[box-shadow:var(--kz-component-button-container-shadow)]\",\n \"hover:bg-[var(--kz-component-button-ghost-bg-hover,transparent)]\",\n \"hover:[box-shadow:var(--kz-component-button-container-shadow-hover)]\",\n ].join(\" \"),\n },\n status: {\n brand: [\n \"bg-[var(--kz-component-button-brand-bg)]\",\n \"text-[var(--kz-component-button-brand-text)]\",\n \"[box-shadow:var(--kz-component-button-brand-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-brand-bg-hover,var(--kz-component-button-brand-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-brand-shadow-hover,var(--kz-component-button-brand-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-brand-bg-hover,var(--kz-component-button-brand-bg))]\",\n ].join(\" \"),\n success: [\n \"bg-[var(--kz-component-button-success-bg)]\",\n \"text-[var(--kz-component-button-success-text)]\",\n \"[box-shadow:var(--kz-component-button-success-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-success-bg-hover,var(--kz-component-button-success-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-success-shadow-hover,var(--kz-component-button-success-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-success-bg-hover,var(--kz-component-button-success-bg))]\",\n ].join(\" \"),\n warning: [\n \"bg-[var(--kz-component-button-warning-bg)]\",\n \"text-[var(--kz-component-button-warning-text)]\",\n \"[box-shadow:var(--kz-component-button-warning-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-warning-bg-hover,var(--kz-component-button-warning-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-warning-shadow-hover,var(--kz-component-button-warning-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-warning-bg-hover,var(--kz-component-button-warning-bg))]\",\n ].join(\" \"),\n error: [\n \"bg-[var(--kz-component-button-error-bg)]\",\n \"text-[var(--kz-component-button-error-text)]\",\n \"[box-shadow:var(--kz-component-button-error-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-error-bg-hover,var(--kz-component-button-error-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-error-shadow-hover,var(--kz-component-button-error-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-error-bg-hover,var(--kz-component-button-error-bg))]\",\n ].join(\" \"),\n info: [\n \"bg-[var(--kz-component-button-info-bg)]\",\n \"text-[var(--kz-component-button-info-text)]\",\n \"[box-shadow:var(--kz-component-button-info-shadow,none)]\",\n \"hover:bg-[var(--kz-component-button-info-bg-hover,var(--kz-component-button-info-bg))]\",\n \"hover:[box-shadow:var(--kz-component-button-info-shadow-hover,var(--kz-component-button-info-shadow,none))]\",\n \"active:!bg-[var(--kz-component-button-info-bg-hover,var(--kz-component-button-info-bg))]\",\n ].join(\" \"),\n },\n size: {\n sm: [\n \"h-[var(--kz-component-button-height-sm,2rem)]\",\n \"px-[var(--kz-component-button-px-sm,0.75rem)]\",\n \"text-[length:var(--kz-component-button-text-sm,0.875rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-sm,1rem)]\",\n ].join(\" \"),\n md: [\n \"h-[var(--kz-component-button-height-md,2.5rem)]\",\n \"px-[var(--kz-component-button-px-md,1rem)]\",\n \"text-[length:var(--kz-component-button-text-md,0.875rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-md,1rem)]\",\n ].join(\" \"),\n lg: [\n \"h-[var(--kz-component-button-height-lg,3rem)]\",\n \"px-[var(--kz-component-button-px-lg,1.25rem)]\",\n \"text-[length:var(--kz-component-button-text-lg,1rem)]\",\n \"[&_svg]:size-[var(--kz-component-button-icon-lg,1.25rem)]\",\n ].join(\" \"),\n },\n },\n compoundVariants: [\n // Ghost + brand: brand text, transparent bg, brand-tinted hover\n {\n variant: \"ghost\",\n status: \"brand\",\n className: [\n \"!bg-transparent text-[var(--kz-color-brand-accent)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-brand-bg-hover,rgba(0,150,137,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n // Ghost + status: text color = status, bg transparent, hover = light tint\n {\n variant: \"ghost\",\n status: \"success\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-success)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-success-bg-hover,rgba(0,201,80,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n {\n variant: \"ghost\",\n status: \"warning\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-warning)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-warning-bg-hover,rgba(245,158,11,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n {\n variant: \"ghost\",\n status: \"error\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-error)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-error-bg-hover,rgba(251,44,54,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n {\n variant: \"ghost\",\n status: \"info\",\n className: [\n \"!bg-transparent text-[var(--kz-color-status-info)]\",\n \"hover:!bg-[var(--kz-component-button-ghost-info-bg-hover,rgba(37,99,235,0.1))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n ].join(\" \"),\n },\n // Container + brand: brand text, brand border, no shadow, brand-tinted hover\n {\n variant: \"container\",\n status: \"brand\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-component-button-container-brand-text,var(--kz-color-brand-accent))]\",\n \"!border-[var(--kz-component-button-container-brand-border,var(--kz-color-brand-accent))]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-container-brand-bg-hover,rgba(0,150,137,0.08))]\",\n ].join(\" \"),\n },\n // Container + status: keep container shape/shadow, override bg/text with status colors\n {\n variant: \"container\",\n status: \"success\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-success)]\",\n \"!border-[var(--kz-color-status-success)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-success-bg-hover,rgba(0,201,80,0.1))]\",\n ].join(\" \"),\n },\n {\n variant: \"container\",\n status: \"warning\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-warning)]\",\n \"!border-[var(--kz-color-status-warning)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-warning-bg-hover,rgba(245,158,11,0.1))]\",\n ].join(\" \"),\n },\n {\n variant: \"container\",\n status: \"error\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-error)]\",\n \"!border-[var(--kz-color-status-error)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-error-bg-hover,rgba(251,44,54,0.1))]\",\n ].join(\" \"),\n },\n {\n variant: \"container\",\n status: \"info\",\n className: [\n \"!bg-transparent\",\n \"!text-[var(--kz-color-status-info)]\",\n \"!border-[var(--kz-color-status-info)]\",\n \"[box-shadow:none] hover:[box-shadow:none]\",\n \"hover:!bg-[var(--kz-component-button-ghost-info-bg-hover,rgba(37,99,235,0.1))]\",\n ].join(\" \"),\n },\n ],\n defaultVariants: {\n variant: ButtonVariant.Primary,\n size: ButtonSize.Md,\n },\n});\n\nexport type ButtonVariants = VariantProps<typeof buttonVariants>;\n","/** Preset icon sizes (px). Use with Icon size prop. */\nexport const iconSize = {\n xs: 12,\n sm: 16,\n md: 24,\n lg: 32,\n xl: 40,\n} as const;\n\nexport type IconSizeKey = keyof typeof iconSize;\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":["ButtonVariant","ButtonStatus","ButtonSize","ButtonType","ButtonAspectRatio"]}
|