@devup-ui/components 0.1.20 → 0.1.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -42,6 +42,12 @@ npm install @devup-ui/next-plugin
42
42
 
43
43
  # on vite
44
44
  npm install @devup-ui/vite-plugin
45
+
46
+ # on rsbuild
47
+ npm install @devup-ui/rsbuild-plugin
48
+
49
+ # on webpack
50
+ npm install @devup-ui/webpack-plugin
45
51
  ```
46
52
 
47
53
  ## Features
@@ -68,13 +74,19 @@ npm install @devup-ui/vite-plugin
68
74
 
69
75
  ## Comparison Benchmarks
70
76
 
71
- Next.js Build Time and Build Size (AMD Ryzen 9 9950X, 128GB RAM, Windows 11)
72
-
73
- | Library | Build Time | Build Size |
74
- |-----------|------------|--------------|
75
- | kuma-ui | 20.933s | 57,295,073b |
76
- | chakra-ui | 36.961s | 129,527,610b |
77
- | devup-ui | 15.162s | 48,047,678b |
77
+ Next.js Build Time and Build Size (github action - ubuntu-latest)
78
+
79
+ | Library | Version | Build Time | Build Size |
80
+ |--------------------------|----------|------------|-------------------|
81
+ | tailwindcss | 4.1.13 | 20.22s | 57,415,796 bytes |
82
+ | styleX | 0.15.4 | 38.97s | 76,257,820 bytes |
83
+ | vanilla-extract | 1.17.4 | 20.09s | 59,366,237 bytes |
84
+ | kuma-ui | 1.5.9 | 21.61s | 67,422,085 bytes |
85
+ | panda-css | 1.3.1 | 22.01s | 62,431,065 bytes |
86
+ | chakra-ui | 3.27.0 | 29.99s | 210,122,493 bytes |
87
+ | mui | 7.3.2 | 22.21s | 94,231,958 bytes |
88
+ | devup-ui(per-file css) | 1.0.18 | 18.23s | 57,440,953 bytes |
89
+ | devup-ui(single css) | 1.0.18 | 18.35s | 57,409,008 bytes |
78
90
 
79
91
  ## How it works
80
92
 
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),a=require("@devup-ui/react"),d=require("clsx"),y=a.css({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function f({variant:e="default",type:u="button",colors:r,danger:t=!1,children:n,size:o="md",className:m,icon:i,ellipsis:x=!1,typography:s,disabled:p,...b}){return l.jsx(a.Button,{_active:{primary:{bg:"color-mix(in srgb, var(--primary, #674DC7) 100%, #000 30%)"},default:{bg:{true:"var(--error, #D52B2E)",false:"color-mix(in srgb, var(--primary, #8163E1) 20%, #FFF 80%)"}[t.toString()],border:{true:"1px solid var(--error, #D52B2E)",false:"1px solid var(--primary, #8163E1)"}[t.toString()],color:"var(--text, #272727)"}}[e],_disabled:{primary:{color:"#D6D7DE",bgColor:"#F0F0F3",cursor:"not-allowed"},default:{color:"#D6D7DE",bgColor:"#F0F0F3",cursor:"not-allowed",borderColor:"var(--border, #E4E4E4)"}}[e],_focusVisible:{outline:"2px solid",outlineColor:{primary:"var(--primaryFocus, #9385D3)",default:{true:"var(--error, #FF5B5E)",false:"var(--primaryFocus, #9385D3)"}[t.toString()]}[e]},_hover:{primary:{bg:"color-mix(in srgb, var(--primary, #674DC7) 100%, #000 15%)"},default:{borderColor:{true:"var(--error, #D52B2E)",false:"var(--primary, #8163E1)"}[t.toString()],bg:!t&&"color-mix(in srgb, var(--primary, #8163E1) 10%, #FFF 90%)"}}[e],_themeDark:{_active:{primary:{bg:"color-mix(in srgb, var(--primary, #8163E1) 100%, #FFF 30%);"},default:{bg:{true:"var(--error, #FF5B5E)",false:"var(--primary, #8163E1)"}[t.toString()],color:"var(--text, #F6F6F6)"}}[e],_disabled:{primary:{color:"#373737",bgColor:"#47474A",borderColor:"transparent"},default:{color:"#373737",bgColor:"#47474A",borderColor:"transparent"}}[e],_hover:{primary:{bg:"color-mix(in srgb, var(--primary, #8163E1) 100%, #FFF 15%);",outlineColor:"var(--primary, #674DC7)"},default:{borderColor:{true:"var(--error, #FF5B5E)",false:"var(--primary, #8163E1)"}[t.toString()],bg:!t&&"color-mix(in srgb, var(--primary, #674DC7) 10%, var(--inputBackground, #2E2E2E) 90%)"}}[e],_focusVisible:{outlineColor:{primary:"var(--primaryFocus, #927CE4)",default:{true:"var(--error, #D52B2E)",false:"var(--primaryFocus, #927CE4)"}[t.toString()]}[e]},bg:{primary:"var(--primary, #8163E1)",default:"var(--inputBackground, #2E2E2E)"}[e]},"aria-disabled":p,"aria-label":"button",bg:{primary:"var(--primary, #8163E1)",default:"var(--inputBackground, #FFF)"}[e],border:{primary:"none",default:"1px solid var(--border, #E4E4E4)"}[e],borderRadius:{primary:"8px",default:"10px"}[e],boxSizing:"border-box",className:m,color:{primary:"#FFF",default:{true:"var(--error, #D52B2E)",false:"var(--text, #272727)"}[t.toString()]}[e],cursor:"pointer",disabled:p,fontSize:{default:["14px",null,null,null,"15px"],primary:["15px",null,null,null,"16px"]}[e],fontWeight:700,letterSpacing:{default:["-0.02em",null,null,null,"-0.03em"],primary:["0px",null,null,null,"-0.01em"]}[e],outlineOffset:"2px",pos:"relative",px:{false:{sm:"12px",md:"16px",lg:"20px"}[o],true:{sm:"24px",md:"28px",lg:"32px"}[o]}[(!!i).toString()],py:{sm:"8px",md:"10px",lg:"12px"}[o],styleOrder:1,styleVars:{primary:r==null?void 0:r.primary,error:r==null?void 0:r.error,text:r==null?void 0:r.text,border:r==null?void 0:r.border,inputBackground:r==null?void 0:r.inputBackground,primaryFocus:r==null?void 0:r.primaryFocus},transition:".25s",type:u,typography:s,...b,children:l.jsxs(a.Box,{maxW:"100%",mx:"auto",pos:"relative",w:"fit-content",children:[i&&l.jsx(a.Center,{boxSize:"24px",left:"4px",pos:"absolute",role:"presentation",selectors:{"&>svg":{color:"inherit"}},top:"50%",transform:"translate(-100%, -50%)",children:i}),l.jsx(a.Box,{className:d.clsx(x&&y),lineHeight:"1.2",minH:"1.2em",transform:!!i&&"translateX(8px)",children:n})]})})}exports.Button=f;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),a=require("@devup-ui/react");function s({variant:e="default",type:u="button",colors:r,danger:t=!1,children:m,size:l="md",className:n,icon:i,ellipsis:x=!1,typography:d,disabled:p,...b}){return o.jsx(a.Button,{_active:{primary:{bg:"color-mix(in srgb, var(--primary, #674DC7) 100%, #000 30%)"},default:{bg:{true:"var(--error, #D52B2E)",false:"color-mix(in srgb, var(--primary, #8163E1) 20%, #FFF 80%)"}[t.toString()],border:{true:"1px solid var(--error, #D52B2E)",false:"1px solid var(--primary, #8163E1)"}[t.toString()],color:"var(--text, #272727)"}}[e],_disabled:{primary:{color:"#D6D7DE",bgColor:"#F0F0F3",cursor:"not-allowed"},default:{color:"#D6D7DE",bgColor:"#F0F0F3",cursor:"not-allowed",borderColor:"var(--border, #E4E4E4)"}}[e],_focusVisible:{outline:"2px solid",outlineColor:{primary:"var(--primaryFocus, #9385D3)",default:{true:"var(--error, #FF5B5E)",false:"var(--primaryFocus, #9385D3)"}[t.toString()]}[e]},_hover:{primary:{bg:"color-mix(in srgb, var(--primary, #674DC7) 100%, #000 15%)"},default:{borderColor:{true:"var(--error, #D52B2E)",false:"var(--primary, #8163E1)"}[t.toString()],bg:!t&&"color-mix(in srgb, var(--primary, #8163E1) 10%, #FFF 90%)"}}[e],_themeDark:{_active:{primary:{bg:"color-mix(in srgb, var(--primary, #8163E1) 100%, #FFF 30%);"},default:{bg:{true:"var(--error, #FF5B5E)",false:"var(--primary, #8163E1)"}[t.toString()],color:"var(--text, #F6F6F6)"}}[e],_disabled:{primary:{color:"#373737",bgColor:"#47474A",borderColor:"transparent"},default:{color:"#373737",bgColor:"#47474A",borderColor:"transparent"}}[e],_hover:{primary:{bg:"color-mix(in srgb, var(--primary, #8163E1) 100%, #FFF 15%);",outlineColor:"var(--primary, #674DC7)"},default:{borderColor:{true:"var(--error, #FF5B5E)",false:"var(--primary, #8163E1)"}[t.toString()],bg:!t&&"color-mix(in srgb, var(--primary, #674DC7) 10%, var(--inputBackground, #2E2E2E) 90%)"}}[e],_focusVisible:{outlineColor:{primary:"var(--primaryFocus, #927CE4)",default:{true:"var(--error, #D52B2E)",false:"var(--primaryFocus, #927CE4)"}[t.toString()]}[e]},bg:{primary:"var(--primary, #8163E1)",default:"var(--inputBackground, #2E2E2E)"}[e]},"aria-disabled":p,"aria-label":"button",bg:{primary:"var(--primary, #8163E1)",default:"var(--inputBackground, #FFF)"}[e],border:{primary:"none",default:"1px solid var(--border, #E4E4E4)"}[e],borderRadius:{primary:"8px",default:"10px"}[e],boxSizing:"border-box",className:n,color:{primary:"#FFF",default:{true:"var(--error, #D52B2E)",false:"var(--text, #272727)"}[t.toString()]}[e],cursor:"pointer",disabled:p,fontSize:{default:["14px",null,null,null,"15px"],primary:["15px",null,null,null,"16px"]}[e],fontWeight:700,letterSpacing:{default:["-0.02em",null,null,null,"-0.03em"],primary:["0px",null,null,null,"-0.01em"]}[e],outlineOffset:"2px",pos:"relative",px:{false:{sm:"12px",md:"16px",lg:"20px"}[l],true:{sm:"24px",md:"28px",lg:"32px"}[l]}[(!!i).toString()],py:{sm:"8px",md:"10px",lg:"12px"}[l],styleOrder:1,styleVars:{primary:r==null?void 0:r.primary,error:r==null?void 0:r.error,text:r==null?void 0:r.text,border:r==null?void 0:r.border,inputBackground:r==null?void 0:r.inputBackground,primaryFocus:r==null?void 0:r.primaryFocus},transition:".25s",type:u,typography:d,...b,children:o.jsxs(a.Box,{maxW:"100%",mx:"auto",pos:"relative",w:"fit-content",children:[i&&o.jsx(a.Center,{boxSize:"24px",left:"4px",pos:"absolute",role:"presentation",selectors:{"&>svg":{color:"inherit"}},top:"50%",transform:"translate(-100%, -50%)",children:i}),o.jsx(a.Box,{className:x?a.css({overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}):void 0,lineHeight:"1.2",minH:"1.2em",transform:!!i&&"translateX(8px)",children:m})]})})}exports.Button=s;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAA;AAGxB,KAAK,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACjE,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC/B,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,UAAU,CAAC,EAAE,MAAM,oBAAoB,CAAA;IACvC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAQD,wBAAgB,MAAM,CAAC,EACrB,OAAmB,EACnB,IAAe,EACf,MAAM,EACN,MAAc,EACd,QAAQ,EACR,IAAW,EACX,SAAS,EACT,IAAI,EACJ,QAAgB,EAChB,UAAU,EACV,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CAsNlC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAA;AAExB,KAAK,WAAW,GAAG,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,GAAG;IACjE,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;IAC/B,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,eAAe,CAAC,EAAE,MAAM,CAAA;QACxB,YAAY,CAAC,EAAE,MAAM,CAAA;KACtB,CAAA;IACD,UAAU,CAAC,EAAE,MAAM,oBAAoB,CAAA;IACvC,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;IACzB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,MAAM,CAAC,EACrB,OAAmB,EACnB,IAAe,EACf,MAAM,EACN,MAAc,EACd,QAAQ,EACR,IAAW,EACX,SAAS,EACT,IAAI,EACJ,QAAgB,EAChB,UAAU,EACV,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,GAAG,KAAK,CAAC,YAAY,CA8NlC"}
@@ -1,12 +1,6 @@
1
- import { jsx as o, jsxs as s } from "react/jsx-runtime";
2
- import { css as f, Button as y, Box as p, Center as F } from "@devup-ui/react";
3
- import { clsx as E } from "clsx";
4
- const g = f({
5
- overflow: "hidden",
6
- textOverflow: "ellipsis",
7
- whiteSpace: "nowrap"
8
- });
9
- function B({
1
+ import { jsx as o, jsxs as f } from "react/jsx-runtime";
2
+ import { Button as s, Box as p, Center as y, css as F } from "@devup-ui/react";
3
+ function v({
10
4
  variant: e = "default",
11
5
  type: u = "button",
12
6
  colors: r,
@@ -15,13 +9,13 @@ function B({
15
9
  size: i = "md",
16
10
  className: n,
17
11
  icon: a,
18
- ellipsis: x = !1,
19
- typography: b,
12
+ ellipsis: d = !1,
13
+ typography: x,
20
14
  disabled: l,
21
- ...d
15
+ ...b
22
16
  }) {
23
17
  return /* @__PURE__ */ o(
24
- y,
18
+ s,
25
19
  {
26
20
  _active: {
27
21
  primary: {
@@ -178,11 +172,11 @@ function B({
178
172
  },
179
173
  transition: ".25s",
180
174
  type: u,
181
- typography: b,
182
- ...d,
183
- children: /* @__PURE__ */ s(p, { maxW: "100%", mx: "auto", pos: "relative", w: "fit-content", children: [
175
+ typography: x,
176
+ ...b,
177
+ children: /* @__PURE__ */ f(p, { maxW: "100%", mx: "auto", pos: "relative", w: "fit-content", children: [
184
178
  a && /* @__PURE__ */ o(
185
- F,
179
+ y,
186
180
  {
187
181
  boxSize: "24px",
188
182
  left: "4px",
@@ -201,7 +195,11 @@ function B({
201
195
  /* @__PURE__ */ o(
202
196
  p,
203
197
  {
204
- className: E(x && g),
198
+ className: d ? F({
199
+ overflow: "hidden",
200
+ textOverflow: "ellipsis",
201
+ whiteSpace: "nowrap"
202
+ }) : void 0,
205
203
  lineHeight: "1.2",
206
204
  minH: "1.2em",
207
205
  transform: !!a && "translateX(8px)",
@@ -213,5 +211,5 @@ function B({
213
211
  );
214
212
  }
215
213
  export {
216
- B as Button
214
+ v as Button
217
215
  };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime");function n({color:t,...i}){return e.jsx("svg",{height:"10",viewBox:"0 0 12 10",width:"12",xmlns:"http://www.w3.org/2000/svg",...i,children:e.jsx("path",{clipRule:"evenodd",d:"M11.6474 0.807113C12.0992 1.23373 12.1195 1.94575 11.6929 2.39745L5.31789 9.14745C5.10214 9.37589 4.80069 9.50369 4.48649 9.49992C4.1723 9.49615 3.874 9.36114 3.6638 9.12759L0.288803 5.37759C-0.126837 4.91576 -0.0893993 4.20444 0.372424 3.7888C0.834247 3.37315 1.54557 3.41059 1.96121 3.87242L4.51994 6.71544L10.0571 0.852551C10.4837 0.400843 11.1957 0.3805 11.6474 0.807113Z",fill:t,fillRule:"evenodd"})})}exports.CheckIcon=n;
@@ -0,0 +1,7 @@
1
+ import { SVGProps } from 'react';
2
+ type CheckIconProps = SVGProps<SVGSVGElement> & {
3
+ color?: string;
4
+ };
5
+ export declare function CheckIcon({ color, ...props }: CheckIconProps): import("react/jsx-runtime").JSX.Element;
6
+ export {};
7
+ //# sourceMappingURL=CheckIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckIcon.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/CheckIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhC,KAAK,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,2CAiB5D"}
@@ -0,0 +1,25 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ function t({ color: i, ...l }) {
3
+ return /* @__PURE__ */ e(
4
+ "svg",
5
+ {
6
+ height: "10",
7
+ viewBox: "0 0 12 10",
8
+ width: "12",
9
+ xmlns: "http://www.w3.org/2000/svg",
10
+ ...l,
11
+ children: /* @__PURE__ */ e(
12
+ "path",
13
+ {
14
+ clipRule: "evenodd",
15
+ d: "M11.6474 0.807113C12.0992 1.23373 12.1195 1.94575 11.6929 2.39745L5.31789 9.14745C5.10214 9.37589 4.80069 9.50369 4.48649 9.49992C4.1723 9.49615 3.874 9.36114 3.6638 9.12759L0.288803 5.37759C-0.126837 4.91576 -0.0893993 4.20444 0.372424 3.7888C0.834247 3.37315 1.54557 3.41059 1.96121 3.87242L4.51994 6.71544L10.0571 0.852551C10.4837 0.400843 11.1957 0.3805 11.6474 0.807113Z",
16
+ fill: i,
17
+ fillRule: "evenodd"
18
+ }
19
+ )
20
+ }
21
+ );
22
+ }
23
+ export {
24
+ t as CheckIcon
25
+ };
@@ -0,0 +1,7 @@
1
+ import { Meta, StoryObj } from '@storybook/react-vite';
2
+ import { Checkbox } from './index';
3
+ type Story = StoryObj<typeof meta>;
4
+ declare const meta: Meta<typeof Checkbox>;
5
+ export declare const Default: Story;
6
+ export default meta;
7
+ //# sourceMappingURL=Checkbox.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkbox.stories.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/Checkbox.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAEtD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAElC,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAA;AAGlC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,QAAQ,CAwB/B,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAA;AAED,eAAe,IAAI,CAAA"}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),t=require("@devup-ui/react"),m=require("react"),c=require("./CheckIcon.cjs");function h({children:i,disabled:e,checked:n,colors:r,onChange:p,...x}){const g=m.useId();return a.jsxs(t.Flex,{alignItems:"center",gap:"8px",children:[a.jsxs(t.Box,{h:"18px",pos:"relative",w:"fit-content",children:[a.jsx(t.Input,{_active:!e&&{bg:"light-dark(color-mix(in srgb, var(--primary, #6159D4) 20%, #FFF 80%), color-mix(in srgb, var(--primary, #6670F9) 30%, #000 70%))"},_checked:{bg:"light-dark(var(--primary, #6159D4), var(--primary, #6670F9))",border:"none",_hover:!e&&{bg:"light-dark(color-mix(in srgb, var(--primary, #6159D4) 100%, #000 15%), color-mix(in srgb, var(--primary, #6670F9) 100%, #FFF 15%))"},_disabled:{bg:"light-dark(#F0F0F3, #47474A)"}},_disabled:{bg:"light-dark( #F0F0F3, #47474A)"},_hover:!e&&{bg:"light-dark(color-mix(in srgb, var(--primary, #6159D4) 10%, #FFF 90%), color-mix(in srgb, var(--primary, #6670F9) 20%, #000 80%))",border:"1px solid light-dark(var(--primary, #6159D4), var(--primary, #6670F9))"},accentColor:"light-dark(var(--primary, #6159D4), var(--primary, #6670F9))",appearance:"none",bg:"light-dark(#FFF, var(--inputBg, #2E2E2E))",border:"1px solid light-dark(var(--border, #E0E0E0), var(--border, #333333))",borderRadius:"2px",boxSize:"16px",checked:n,cursor:e?"not-allowed":"pointer",disabled:e,id:g,m:"0",onChange:e||!p?void 0:F=>p(F.target.checked),styleOrder:1,styleVars:{primary:r==null?void 0:r.primary,border:r==null?void 0:r.border,text:r==null?void 0:r.text,inputBg:r==null?void 0:r.inputBg,checkIcon:r==null?void 0:r.checkIcon},type:"checkbox",...x}),n&&a.jsx(t.Box,{as:c.CheckIcon,props:{color:e?"light-dark(#D6D7DE, #373737)":"var(--checkIcon, #FFF)",className:t.css({left:"50%",pointerEvents:"none",pos:"absolute",top:"60%",transform:"translate(-50%, -50%)"})}})]}),a.jsx("label",{className:t.css({cursor:e?"not-allowed":"pointer"}),htmlFor:g,children:typeof i=="string"?a.jsx(t.Text,{color:e?"light-dark(#D6D7DE, #373737)":"light-dark(var(--text, #2F2F2F), var(--text, #EDEDED))",fontSize:"14px",userSelect:"none",children:i}):i})]})}exports.Checkbox=h;
@@ -0,0 +1,15 @@
1
+ import { ComponentProps } from 'react';
2
+ interface CheckboxProps extends Omit<ComponentProps<'input'>, 'type' | 'onChange'> {
3
+ children: React.ReactNode;
4
+ onChange?: (checked: boolean) => void;
5
+ colors?: {
6
+ primary?: string;
7
+ border?: string;
8
+ text?: string;
9
+ inputBg?: string;
10
+ checkIcon?: string;
11
+ };
12
+ }
13
+ export declare function Checkbox({ children, disabled, checked, colors, onChange, ...props }: CheckboxProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Checkbox/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAS,MAAM,OAAO,CAAA;AAI7C,UAAU,aACR,SAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC1D,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACrC,MAAM,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,wBAAgB,QAAQ,CAAC,EACvB,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,aAAa,2CAqGf"}
@@ -0,0 +1,102 @@
1
+ import { jsxs as g, jsx as a } from "react/jsx-runtime";
2
+ import { Flex as o, Box as m, Input as v, css as F, Text as d } from "@devup-ui/react";
3
+ import { useId as b } from "react";
4
+ import { CheckIcon as k } from "./CheckIcon.js";
5
+ function u({
6
+ children: e,
7
+ disabled: t,
8
+ checked: i,
9
+ colors: r,
10
+ onChange: n,
11
+ ...x
12
+ }) {
13
+ const p = b();
14
+ return /* @__PURE__ */ g(o, { alignItems: "center", gap: "8px", children: [
15
+ /* @__PURE__ */ g(m, { h: "18px", pos: "relative", w: "fit-content", children: [
16
+ /* @__PURE__ */ a(
17
+ v,
18
+ {
19
+ _active: !t && {
20
+ bg: "light-dark(color-mix(in srgb, var(--primary, #6159D4) 20%, #FFF 80%), color-mix(in srgb, var(--primary, #6670F9) 30%, #000 70%))"
21
+ },
22
+ _checked: {
23
+ bg: "light-dark(var(--primary, #6159D4), var(--primary, #6670F9))",
24
+ border: "none",
25
+ _hover: !t && {
26
+ bg: "light-dark(color-mix(in srgb, var(--primary, #6159D4) 100%, #000 15%), color-mix(in srgb, var(--primary, #6670F9) 100%, #FFF 15%))"
27
+ },
28
+ _disabled: {
29
+ bg: "light-dark(#F0F0F3, #47474A)"
30
+ }
31
+ },
32
+ _disabled: {
33
+ bg: "light-dark( #F0F0F3, #47474A)"
34
+ },
35
+ _hover: !t && {
36
+ bg: "light-dark(color-mix(in srgb, var(--primary, #6159D4) 10%, #FFF 90%), color-mix(in srgb, var(--primary, #6670F9) 20%, #000 80%))",
37
+ border: "1px solid light-dark(var(--primary, #6159D4), var(--primary, #6670F9))"
38
+ },
39
+ accentColor: "light-dark(var(--primary, #6159D4), var(--primary, #6670F9))",
40
+ appearance: "none",
41
+ bg: "light-dark(#FFF, var(--inputBg, #2E2E2E))",
42
+ border: "1px solid light-dark(var(--border, #E0E0E0), var(--border, #333333))",
43
+ borderRadius: "2px",
44
+ boxSize: "16px",
45
+ checked: i,
46
+ cursor: t ? "not-allowed" : "pointer",
47
+ disabled: t,
48
+ id: p,
49
+ m: "0",
50
+ onChange: t || !n ? void 0 : (h) => n(h.target.checked),
51
+ styleOrder: 1,
52
+ styleVars: {
53
+ primary: r == null ? void 0 : r.primary,
54
+ border: r == null ? void 0 : r.border,
55
+ text: r == null ? void 0 : r.text,
56
+ inputBg: r == null ? void 0 : r.inputBg,
57
+ checkIcon: r == null ? void 0 : r.checkIcon
58
+ },
59
+ type: "checkbox",
60
+ ...x
61
+ }
62
+ ),
63
+ i && /* @__PURE__ */ a(
64
+ m,
65
+ {
66
+ as: k,
67
+ props: {
68
+ color: t ? "light-dark(#D6D7DE, #373737)" : "var(--checkIcon, #FFF)",
69
+ className: F({
70
+ left: "50%",
71
+ pointerEvents: "none",
72
+ pos: "absolute",
73
+ top: "60%",
74
+ transform: "translate(-50%, -50%)"
75
+ })
76
+ }
77
+ }
78
+ )
79
+ ] }),
80
+ /* @__PURE__ */ a(
81
+ "label",
82
+ {
83
+ className: F({
84
+ cursor: t ? "not-allowed" : "pointer"
85
+ }),
86
+ htmlFor: p,
87
+ children: typeof e == "string" ? /* @__PURE__ */ a(
88
+ d,
89
+ {
90
+ color: t ? "light-dark(#D6D7DE, #373737)" : "light-dark(var(--text, #2F2F2F), var(--text, #EDEDED))",
91
+ fontSize: "14px",
92
+ userSelect: "none",
93
+ children: e
94
+ }
95
+ ) : e
96
+ }
97
+ )
98
+ ] });
99
+ }
100
+ export {
101
+ u as Checkbox
102
+ };
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./components/Button/index.cjs"),i=require("./components/Input/index.cjs"),o=require("./components/Radio/index.cjs"),p=require("./components/RadioGroup/index.cjs"),t=require("./components/Select/index.cjs"),e=require("./components/Stepper/index.cjs"),c=require("./components/Toggle/index.cjs"),r=require("./contexts/useSelect.cjs");exports.Button=n.Button;exports.Input=i.Input;exports.Radio=o.Radio;exports.RadioGroup=p.RadioGroup;exports.Select=t.Select;exports.SelectContainer=t.SelectContainer;exports.SelectDivider=t.SelectDivider;exports.SelectOption=t.SelectOption;exports.SelectTrigger=t.SelectTrigger;exports.Stepper=e.Stepper;exports.StepperContainer=e.StepperContainer;exports.StepperDecreaseButton=e.StepperDecreaseButton;exports.StepperIncreaseButton=e.StepperIncreaseButton;exports.StepperInput=e.StepperInput;exports.useStepper=e.useStepper;exports.Toggle=c.Toggle;exports.SelectContext=r.SelectContext;exports.useSelect=r.useSelect;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./components/Button/index.cjs"),o=require("./components/Checkbox/index.cjs"),i=require("./components/Input/index.cjs"),p=require("./components/Radio/index.cjs"),c=require("./components/RadioGroup/index.cjs"),t=require("./components/Select/index.cjs"),e=require("./components/Stepper/index.cjs"),u=require("./components/Toggle/index.cjs"),r=require("./contexts/useSelect.cjs");exports.Button=n.Button;exports.Checkbox=o.Checkbox;exports.Input=i.Input;exports.Radio=p.Radio;exports.RadioGroup=c.RadioGroup;exports.Select=t.Select;exports.SelectContainer=t.SelectContainer;exports.SelectDivider=t.SelectDivider;exports.SelectOption=t.SelectOption;exports.SelectTrigger=t.SelectTrigger;exports.Stepper=e.Stepper;exports.StepperContainer=e.StepperContainer;exports.StepperDecreaseButton=e.StepperDecreaseButton;exports.StepperIncreaseButton=e.StepperIncreaseButton;exports.StepperInput=e.StepperInput;exports.useStepper=e.useStepper;exports.Toggle=u.Toggle;exports.SelectContext=r.SelectContext;exports.useSelect=r.useSelect;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { Button } from './components/Button';
2
+ export { Checkbox } from './components/Checkbox';
2
3
  export { Input } from './components/Input';
3
4
  export { Radio } from './components/Radio';
4
5
  export { RadioGroup } from './components/RadioGroup';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EACL,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,UAAU,GACX,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/D,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EACL,MAAM,EACN,eAAe,EACf,aAAa,EACb,YAAY,EACZ,aAAa,GACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,YAAY,EACZ,UAAU,GACX,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC/D,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js CHANGED
@@ -1,28 +1,30 @@
1
1
  import { Button as r } from "./components/Button/index.js";
2
- import { Input as p } from "./components/Input/index.js";
3
- import { Radio as n } from "./components/Radio/index.js";
4
- import { RadioGroup as x } from "./components/RadioGroup/index.js";
5
- import { Select as i, SelectContainer as l, SelectDivider as m, SelectOption as u, SelectTrigger as a } from "./components/Select/index.js";
6
- import { Stepper as s, StepperContainer as d, StepperDecreaseButton as B, StepperIncreaseButton as C, StepperInput as I, useStepper as D } from "./components/Stepper/index.js";
7
- import { Toggle as T } from "./components/Toggle/index.js";
8
- import { SelectContext as G, useSelect as O } from "./contexts/useSelect.js";
2
+ import { Checkbox as p } from "./components/Checkbox/index.js";
3
+ import { Input as n } from "./components/Input/index.js";
4
+ import { Radio as c } from "./components/Radio/index.js";
5
+ import { RadioGroup as m } from "./components/RadioGroup/index.js";
6
+ import { Select as l, SelectContainer as u, SelectDivider as a, SelectOption as g, SelectTrigger as s } from "./components/Select/index.js";
7
+ import { Stepper as d, StepperContainer as B, StepperDecreaseButton as I, StepperIncreaseButton as D, StepperInput as R, useStepper as T } from "./components/Stepper/index.js";
8
+ import { Toggle as h } from "./components/Toggle/index.js";
9
+ import { SelectContext as v, useSelect as G } from "./contexts/useSelect.js";
9
10
  export {
10
11
  r as Button,
11
- p as Input,
12
- n as Radio,
13
- x as RadioGroup,
14
- i as Select,
15
- l as SelectContainer,
16
- G as SelectContext,
17
- m as SelectDivider,
18
- u as SelectOption,
19
- a as SelectTrigger,
20
- s as Stepper,
21
- d as StepperContainer,
22
- B as StepperDecreaseButton,
23
- C as StepperIncreaseButton,
24
- I as StepperInput,
25
- T as Toggle,
26
- O as useSelect,
27
- D as useStepper
12
+ p as Checkbox,
13
+ n as Input,
14
+ c as Radio,
15
+ m as RadioGroup,
16
+ l as Select,
17
+ u as SelectContainer,
18
+ v as SelectContext,
19
+ a as SelectDivider,
20
+ g as SelectOption,
21
+ s as SelectTrigger,
22
+ d as Stepper,
23
+ B as StepperContainer,
24
+ I as StepperDecreaseButton,
25
+ D as StepperIncreaseButton,
26
+ R as StepperInput,
27
+ h as Toggle,
28
+ G as useSelect,
29
+ T as useStepper
28
30
  };
package/package.json CHANGED
@@ -16,7 +16,7 @@
16
16
  "css-in-js-framework",
17
17
  "react"
18
18
  ],
19
- "version": "0.1.20",
19
+ "version": "0.1.22",
20
20
  "type": "module",
21
21
  "publishConfig": {
22
22
  "access": "public"
@@ -38,26 +38,26 @@
38
38
  "csstype": "^3.1.3",
39
39
  "react": "^19.1.1",
40
40
  "clsx": "^2.1",
41
- "@devup-ui/react": "1.0.18"
41
+ "@devup-ui/react": "1.0.19"
42
42
  },
43
43
  "devDependencies": {
44
- "@storybook/addon-docs": "^9.1.5",
45
- "@storybook/addon-onboarding": "^9.1.5",
46
- "@storybook/react-vite": "^9.1.5",
47
- "@types/react": "^19.1.12",
48
- "eslint-plugin-storybook": "^9.1.5",
44
+ "@storybook/addon-docs": "^9.1.7",
45
+ "@storybook/addon-onboarding": "^9.1.7",
46
+ "@storybook/react-vite": "^9.1.7",
47
+ "@types/react": "^19.1.13",
48
+ "eslint-plugin-storybook": "^9.1.7",
49
49
  "rollup-plugin-preserve-directives": "^0.4.0",
50
- "storybook": "^9.1.5",
50
+ "storybook": "^9.1.7",
51
51
  "typescript": "^5.9.2",
52
- "vite": "^7.1.5",
52
+ "vite": "^7.1.6",
53
53
  "vite-plugin-dts": "^4.5.4",
54
54
  "vitest": "^3.2.4",
55
- "@devup-ui/vite-plugin": "1.0.40"
55
+ "@devup-ui/vite-plugin": "1.0.41"
56
56
  },
57
57
  "peerDependencies": {
58
58
  "csstype": "*",
59
59
  "react": "*",
60
- "@devup-ui/react": "1.0.18"
60
+ "@devup-ui/react": "1.0.19"
61
61
  },
62
62
  "scripts": {
63
63
  "lint": "eslint",