@xuefx/ui 1.0.6 → 1.0.7

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.
@@ -0,0 +1,12 @@
1
+ import { default as React } from 'react';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ declare const alertVariants: (props?: ({
4
+ variant?: "default" | "destructive" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ export interface AlertProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof alertVariants> {
7
+ }
8
+ declare const Alert: React.ForwardRefExoticComponent<AlertProps & React.RefAttributes<HTMLDivElement>>;
9
+ declare const AlertTitle: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLHeadingElement> & React.RefAttributes<HTMLHeadingElement>>;
10
+ declare const AlertDescription: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
11
+ export { Alert, AlertTitle, AlertDescription, alertVariants };
12
+ //# sourceMappingURL=Alert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Alert.d.ts","sourceRoot":"","sources":["../../../components/Alert/Alert.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,aAAa,CAAC;AAErB,QAAA,MAAM,aAAa;;8EAUjB,CAAC;AAEH,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,aAAa,CAAC;CAAG;AAEzC,QAAA,MAAM,KAAK,mFAaV,CAAC;AAIF,QAAA,MAAM,UAAU,qHAad,CAAC;AAIH,QAAA,MAAM,gBAAgB,6GAapB,CAAC;AAIH,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Alert, AlertTitle, AlertDescription, alertVariants } from './Alert';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/Alert/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { default as React } from 'react';
2
+ import { VariantProps } from 'class-variance-authority';
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
8
+ }
9
+ declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
10
+ export { Button, buttonVariants };
11
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../components/Button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,cAAc,CAAC;AAEtB,QAAA,MAAM,cAAc;;;8EAqBlB,CAAC;AAEH,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;CAAG;AAE1C,QAAA,MAAM,MAAM,uFAaX,CAAC;AAIF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Button, buttonVariants } from './Button';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Button, buttonVariants } from './Button';
2
+ export { Alert, AlertTitle, AlertDescription, alertVariants } from './Alert';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Button, buttonVariants, Alert, AlertTitle, AlertDescription, alertVariants } from './components';
2
+ export { cn } from './lib';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1G,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC"}
package/dist/index.es.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { jsx as n } from "react/jsx-runtime";
2
- import i from "react";
2
+ import s from "react";
3
3
  import { cva as f } from "class-variance-authority";
4
- import { clsx as c } from "clsx";
5
- import { twMerge as u } from "tailwind-merge";
6
- function l(...t) {
7
- return u(c(t));
4
+ import { clsx as u } from "clsx";
5
+ import { twMerge as c } from "tailwind-merge";
6
+ function i(...t) {
7
+ return c(u(t));
8
8
  }
9
9
  const m = f("fx-btn", {
10
10
  variants: {
@@ -27,15 +27,15 @@ const m = f("fx-btn", {
27
27
  variant: "default",
28
28
  size: "default"
29
29
  }
30
- }), x = i.forwardRef(
31
- ({ className: t, variant: e, size: r, type: a = "button", children: s, ...o }, d) => /* @__PURE__ */ n(
30
+ }), x = s.forwardRef(
31
+ ({ className: t, variant: e, size: r, type: a = "button", children: l, ...o }, d) => /* @__PURE__ */ n(
32
32
  "button",
33
33
  {
34
34
  ref: d,
35
35
  type: a,
36
- className: l(m({ variant: e, size: r, className: t })),
36
+ className: i(m({ variant: e, size: r, className: t })),
37
37
  ...o,
38
- children: s
38
+ children: l
39
39
  }
40
40
  )
41
41
  );
@@ -50,32 +50,34 @@ const b = f("fx-alert", {
50
50
  defaultVariants: {
51
51
  variant: "default"
52
52
  }
53
- }), p = i.forwardRef(({ className: t, variant: e, children: r, ...a }, s) => /* @__PURE__ */ n(
54
- "div",
55
- {
56
- ref: s,
57
- role: "alert",
58
- className: l(b({ variant: e, className: t })),
59
- ...a,
60
- children: r
61
- }
62
- ));
53
+ }), p = s.forwardRef(
54
+ ({ className: t, variant: e, children: r, ...a }, l) => /* @__PURE__ */ n(
55
+ "div",
56
+ {
57
+ ref: l,
58
+ role: e === "destructive" ? "alert" : "status",
59
+ className: i(b({ variant: e, className: t })),
60
+ ...a,
61
+ children: r
62
+ }
63
+ )
64
+ );
63
65
  p.displayName = "Alert";
64
- const v = i.forwardRef(({ className: t, children: e, ...r }, a) => /* @__PURE__ */ n(
66
+ const v = s.forwardRef(({ className: t, children: e, ...r }, a) => /* @__PURE__ */ n(
65
67
  "h5",
66
68
  {
67
69
  ref: a,
68
- className: l("fx-alert-title", t),
70
+ className: i("fx-alert-title", t),
69
71
  ...r,
70
72
  children: e
71
73
  }
72
74
  ));
73
75
  v.displayName = "AlertTitle";
74
- const N = i.forwardRef(({ className: t, children: e, ...r }, a) => /* @__PURE__ */ n(
76
+ const N = s.forwardRef(({ className: t, children: e, ...r }, a) => /* @__PURE__ */ n(
75
77
  "div",
76
78
  {
77
79
  ref: a,
78
- className: l("fx-alert-desc", t),
80
+ className: i("fx-alert-desc", t),
79
81
  ...r,
80
82
  children: e
81
83
  }
@@ -86,5 +88,7 @@ export {
86
88
  N as AlertDescription,
87
89
  v as AlertTitle,
88
90
  x as Button,
89
- l as cn
91
+ b as alertVariants,
92
+ m as buttonVariants,
93
+ i as cn
90
94
  };
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(t,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react/jsx-runtime"),require("react"),require("class-variance-authority"),require("clsx"),require("tailwind-merge")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","class-variance-authority","clsx","tailwind-merge"],r):(t=typeof globalThis<"u"?globalThis:t||self,r(t.ImxUI={},t.jsxRuntime,t.React,t.classVarianceAuthority,t.clsx,t.tailwindMerge))})(this,function(t,r,l,u,m,v){"use strict";function s(...e){return v.twMerge(m.clsx(e))}const y=u.cva("fx-btn",{variants:{variant:{default:"fx-btn-primary",destructive:"fx-btn-destructive",outline:"fx-btn-outline",secondary:"fx-btn-secondary",ghost:"fx-btn-ghost",link:"fx-btn-link"},size:{default:"fx-btn-md",sm:"fx-btn-sm",lg:"fx-btn-lg",icon:"fx-btn-icon"}},defaultVariants:{variant:"default",size:"default"}}),c=l.forwardRef(({className:e,variant:n,size:a,type:i="button",children:f,...p},A)=>r.jsx("button",{ref:A,type:i,className:s(y({variant:n,size:a,className:e})),...p,children:f}));c.displayName="Button";const b=u.cva("fx-alert",{variants:{variant:{default:"fx-alert-default",destructive:"fx-alert-destructive"}},defaultVariants:{variant:"default"}}),d=l.forwardRef(({className:e,variant:n,children:a,...i},f)=>r.jsx("div",{ref:f,role:"alert",className:s(b({variant:n,className:e})),...i,children:a}));d.displayName="Alert";const o=l.forwardRef(({className:e,children:n,...a},i)=>r.jsx("h5",{ref:i,className:s("fx-alert-title",e),...a,children:n}));o.displayName="AlertTitle";const x=l.forwardRef(({className:e,children:n,...a},i)=>r.jsx("div",{ref:i,className:s("fx-alert-desc",e),...a,children:n}));x.displayName="AlertDescription",t.Alert=d,t.AlertDescription=x,t.AlertTitle=o,t.Button=c,t.cn=s,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
1
+ (function(t,r){typeof exports=="object"&&typeof module<"u"?r(exports,require("react/jsx-runtime"),require("react"),require("class-variance-authority"),require("clsx"),require("tailwind-merge")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","class-variance-authority","clsx","tailwind-merge"],r):(t=typeof globalThis<"u"?globalThis:t||self,r(t.ImxUI={},t.jsxRuntime,t.React,t.classVarianceAuthority,t.clsx,t.tailwindMerge))})(this,function(t,r,l,u,b,y){"use strict";function s(...e){return y.twMerge(b.clsx(e))}const c=u.cva("fx-btn",{variants:{variant:{default:"fx-btn-primary",destructive:"fx-btn-destructive",outline:"fx-btn-outline",secondary:"fx-btn-secondary",ghost:"fx-btn-ghost",link:"fx-btn-link"},size:{default:"fx-btn-md",sm:"fx-btn-sm",lg:"fx-btn-lg",icon:"fx-btn-icon"}},defaultVariants:{variant:"default",size:"default"}}),d=l.forwardRef(({className:e,variant:n,size:a,type:i="button",children:f,...p},A)=>r.jsx("button",{ref:A,type:i,className:s(c({variant:n,size:a,className:e})),...p,children:f}));d.displayName="Button";const o=u.cva("fx-alert",{variants:{variant:{default:"fx-alert-default",destructive:"fx-alert-destructive"}},defaultVariants:{variant:"default"}}),x=l.forwardRef(({className:e,variant:n,children:a,...i},f)=>r.jsx("div",{ref:f,role:n==="destructive"?"alert":"status",className:s(o({variant:n,className:e})),...i,children:a}));x.displayName="Alert";const m=l.forwardRef(({className:e,children:n,...a},i)=>r.jsx("h5",{ref:i,className:s("fx-alert-title",e),...a,children:n}));m.displayName="AlertTitle";const v=l.forwardRef(({className:e,children:n,...a},i)=>r.jsx("div",{ref:i,className:s("fx-alert-desc",e),...a,children:n}));v.displayName="AlertDescription",t.Alert=x,t.AlertDescription=v,t.AlertTitle=m,t.Button=d,t.alertVariants=o,t.buttonVariants=c,t.cn=s,Object.defineProperty(t,Symbol.toStringTag,{value:"Module"})});
@@ -0,0 +1,3 @@
1
+ import { clsx } from 'clsx';
2
+ export declare function cn(...inputs: Parameters<typeof clsx>): string;
3
+ //# sourceMappingURL=cn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../lib/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,GAAG,MAAM,CAE7D"}
@@ -0,0 +1,2 @@
1
+ export { cn } from './cn.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC"}
package/dist/style.css CHANGED
@@ -1,2 +1,2 @@
1
1
  :root{--background: 0 0% 100%;--foreground: 222.2 84% 4.9%;--card: 0 0% 100%;--card-foreground: 222.2 84% 4.9%;--popover: 0 0% 100%;--popover-foreground: 222.2 84% 4.9%;--primary: 222.2 47.4% 11.2%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96.1%;--secondary-foreground: 222.2 47.4% 11.2%;--muted: 210 40% 96.1%;--muted-foreground: 215.4 16.3% 46.9%;--accent: 210 40% 96.1%;--accent-foreground: 222.2 47.4% 11.2%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 210 40% 98%;--border: 214.3 31.8% 91.4%;--input: 214.3 31.8% 91.4%;--ring: 222.2 84% 4.9%;--radius: .5rem}.dark{--background: 222.2 84% 4.9%;--foreground: 210 40% 98%;--card: 222.2 84% 4.9%;--card-foreground: 210 40% 98%;--popover: 222.2 84% 4.9%;--popover-foreground: 210 40% 98%;--primary: 210 40% 98%;--primary-foreground: 222.2 47.4% 11.2%;--secondary: 217.2 32.6% 17.5%;--secondary-foreground: 210 40% 98%;--muted: 217.2 32.6% 17.5%;--muted-foreground: 215 20.2% 65.1%;--accent: 217.2 32.6% 17.5%;--accent-foreground: 210 40% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 210 40% 98%;--border: 217.2 32.6% 17.5%;--input: 217.2 32.6% 17.5%;--ring: 212.7 26.8% 83.9%}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com
2
- */*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.flex{display:flex}.h-11{height:2.75rem}.w-24{width:6rem}.max-w-lg{max-width:32rem}.flex-col{flex-direction:column}.items-center{align-items:center}.gap-4{gap:1rem}.gap-8{gap:2rem}.bg-destructive{background-color:hsl(var(--destructive))}.bg-primary{background-color:hsl(var(--primary))}.p-8{padding:2rem}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.text-muted-foreground{color:hsl(var(--muted-foreground))}.outline{outline-style:solid}.fx-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;border-radius:calc(var(--radius) - 2px);font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.fx-btn:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: hsl(var(--ring));--tw-ring-offset-width: 2px }.fx-btn:disabled{pointer-events:none;opacity:.5}.fx-btn svg{pointer-events:none;width:1rem;height:1rem;flex-shrink:0}.fx-btn-primary{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.fx-btn-primary:hover{background-color:hsl(var(--primary) / .9)}.fx-btn-destructive{background-color:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.fx-btn-destructive:hover{background-color:hsl(var(--destructive) / .9)}.fx-btn-outline{border-width:1px;border-color:hsl(var(--input));background-color:hsl(var(--background))}.fx-btn-outline:hover{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.fx-btn-secondary{background-color:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.fx-btn-secondary:hover{background-color:hsl(var(--secondary) / .8)}.fx-btn-ghost:hover{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.fx-btn-link{color:hsl(var(--primary));text-underline-offset:4px}.fx-btn-link:hover{text-decoration-line:underline}.fx-btn-md{height:2.5rem;padding:.5rem 1rem}.fx-btn-sm{height:2.25rem;border-radius:calc(var(--radius) - 2px);padding-left:.75rem;padding-right:.75rem}.fx-btn-lg{height:2.75rem;border-radius:calc(var(--radius) - 2px);padding-left:2rem;padding-right:2rem}.fx-btn-icon{height:2.5rem;width:2.5rem}.fx-alert{position:relative;width:100%;border-radius:var(--radius);border-width:1px;padding:1rem}.fx-alert>svg~*{padding-left:1.75rem}.fx-alert>svg+div{transform:translateY(-3px)}.fx-alert>svg{position:absolute;left:1rem;top:1rem;color:hsl(var(--foreground))}.fx-alert-default{background-color:hsl(var(--background));color:hsl(var(--foreground))}.fx-alert-destructive{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}@media (prefers-color-scheme: dark){.fx-alert-destructive{border-color:hsl(var(--destructive))}}.fx-alert-destructive>svg{color:hsl(var(--destructive))}.fx-alert-title{margin-bottom:.25rem;font-weight:500;line-height:1;letter-spacing:-.025em}.fx-alert-desc{font-size:.875rem;line-height:1.25rem}.fx-alert-desc p{line-height:1.625}
2
+ */*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.fx-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;white-space:nowrap;border-radius:calc(var(--radius) - 2px);font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.fx-btn:focus-visible{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-color: hsl(var(--ring));--tw-ring-offset-width: 2px }.fx-btn:disabled{pointer-events:none;opacity:.5}.fx-btn svg{pointer-events:none;width:1rem;height:1rem;flex-shrink:0}.fx-btn-primary{background-color:hsl(var(--primary));color:hsl(var(--primary-foreground))}.fx-btn-primary:hover{background-color:hsl(var(--primary) / .9)}.fx-btn-destructive{background-color:hsl(var(--destructive));color:hsl(var(--destructive-foreground))}.fx-btn-destructive:hover{background-color:hsl(var(--destructive) / .9)}.fx-btn-outline{border-width:1px;border-color:hsl(var(--input));background-color:hsl(var(--background))}.fx-btn-outline:hover{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.fx-btn-secondary{background-color:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.fx-btn-secondary:hover{background-color:hsl(var(--secondary) / .8)}.fx-btn-ghost:hover{background-color:hsl(var(--accent));color:hsl(var(--accent-foreground))}.fx-btn-link{color:hsl(var(--primary));text-underline-offset:4px}.fx-btn-link:hover{text-decoration-line:underline}.fx-btn-md{height:2.5rem;padding:.5rem 1rem}.fx-btn-sm{height:2.25rem;border-radius:calc(var(--radius) - 2px);padding-left:.75rem;padding-right:.75rem}.fx-btn-lg{height:2.75rem;border-radius:calc(var(--radius) - 2px);padding-left:2rem;padding-right:2rem}.fx-btn-icon{height:2.5rem;width:2.5rem}.fx-alert{position:relative;width:100%;border-radius:var(--radius);border-width:1px;padding:1rem}.fx-alert>svg~*{padding-left:1.75rem}.fx-alert>svg+div{transform:translateY(-3px)}.fx-alert>svg{position:absolute;left:1rem;top:1rem;color:hsl(var(--foreground))}.fx-alert-default{background-color:hsl(var(--background));color:hsl(var(--foreground))}.fx-alert-destructive{border-color:hsl(var(--destructive) / .5);color:hsl(var(--destructive))}@media (prefers-color-scheme: dark){.fx-alert-destructive{border-color:hsl(var(--destructive))}}.fx-alert-destructive>svg{color:hsl(var(--destructive))}.fx-alert-title{margin-bottom:.25rem;font-weight:500;line-height:1;letter-spacing:-.025em}.fx-alert-desc{font-size:.875rem;line-height:1.25rem}.fx-alert-desc p{line-height:1.625}
package/package.json CHANGED
@@ -1,12 +1,14 @@
1
1
  {
2
2
  "name": "@xuefx/ui",
3
- "version": "1.0.6",
3
+ "version": "1.0.7",
4
4
  "description": "React UI component library",
5
5
  "type": "module",
6
6
  "main": "dist/index.es.js",
7
7
  "module": "dist/index.es.js",
8
+ "types": "dist/index.d.ts",
8
9
  "exports": {
9
10
  ".": {
11
+ "types": "./dist/index.d.ts",
10
12
  "import": "./dist/index.es.js",
11
13
  "require": "./dist/index.umd.js"
12
14
  },
@@ -18,16 +20,30 @@
18
20
  "keywords": [],
19
21
  "author": "",
20
22
  "license": "ISC",
23
+ "peerDependencies": {
24
+ "react": ">=19.0.0",
25
+ "react-dom": ">=19.0.0"
26
+ },
21
27
  "dependencies": {
22
28
  "class-variance-authority": "^0.7.1",
23
29
  "clsx": "^2.1.1",
24
30
  "tailwind-merge": "^3.6.0"
25
31
  },
26
32
  "devDependencies": {
27
- "tailwindcss": "^3.4.17"
33
+ "@testing-library/jest-dom": "^6.9.1",
34
+ "@testing-library/react": "^16.3.2",
35
+ "@testing-library/user-event": "^14.6.1",
36
+ "jsdom": "^29.1.1",
37
+ "tailwindcss": "^3.4.17",
38
+ "typescript": "^6.0.3",
39
+ "vite-plugin-dts": "^5.0.3",
40
+ "vitest": "^4.1.9",
41
+ "@xuefx/ui-theme": "^1.0.4"
28
42
  },
29
43
  "scripts": {
30
44
  "build": "vite build",
31
- "dev": "vite build --watch"
45
+ "dev": "vite build --watch",
46
+ "test": "vitest run",
47
+ "test:watch": "vitest"
32
48
  }
33
49
  }